You will not be able to post if you are still using Microsoft email addresses such as Hotmail etc
See here for more information viewtopic.php?f=20&t=7296
DO NOT USE MOBILE / CGNAT DEVICES WHERE THE IP CHANGES CONSTANTLY!
At this time, it is unfortunately not possible to whitelist users when your IP changes constantly.
You may inadvertently get banned because a previous attack may have used the IP you are now on.
So I suggest people only use fixed IP address devices until I can think of a solution for this problem!

The Naked Atari 800

Blogs & guides and tales of woo by forum members.
User avatar
rubber_jonnie
Site Admin
Site Admin
Posts: 14014
Joined: Thu Aug 17, 2017 7:40 pm
Location: Essex
Contact:

Re: The Naked Atari 800

Post by rubber_jonnie »

stephen_usher wrote: Sun Jan 04, 2026 1:24 pm
And, yes, I agree with your idea for the clock generator connection.
Cool thanks 😁
Collector of many retro things!
800XL and 65XE both with Ultimate1MB,VBXL/XE & PokeyMax, SIDE3, SDrive Max, 2x 1010 cassette, 2x 1050 one with Happy mod, 3x 2600 Jr, 7800 and Lynx II
Approx 20 STs, including a 520 STM, 520 STFMs, 3x Mega ST, MSTE & 2x 32 Mhz boosted STEs
Plus the rest, totalling around 50 machines including a QL, 3x BBC Model B, Electron, Spectrums, ZX81 etc...
ijor
Posts: 759
Joined: Fri Nov 30, 2018 8:45 pm

Re: The Naked Atari 800

Post by ijor »

rubber_jonnie wrote: Sat Jan 03, 2026 3:28 pm So I'm going to get back to the Si5351 shortly, but I had a care package from Best today:
And in it was a PAL GTIA, Antic, 6502B, 6502C (Sally) and four PAL 3.546894 MHz crystals.
...
OK, so the naked 800 is fully working :)
Great. One of the best things you can do on an 800, that doesn't work on XL/XE models, is to play MULE with 4 players. Of course, you need 3 other players :)
http://github.com/ijor/fx68k 68000 cycle exact FPGA core
FX CAST Cycle Accurate Atari ST core
http://pasti.fxatari.com
User avatar
rubber_jonnie
Site Admin
Site Admin
Posts: 14014
Joined: Thu Aug 17, 2017 7:40 pm
Location: Essex
Contact:

Re: The Naked Atari 800

Post by rubber_jonnie »

ijor wrote: Mon Jan 05, 2026 1:39 pm
rubber_jonnie wrote: Sat Jan 03, 2026 3:28 pm So I'm going to get back to the Si5351 shortly, but I had a care package from Best today:
And in it was a PAL GTIA, Antic, 6502B, 6502C (Sally) and four PAL 3.546894 MHz crystals.
...
OK, so the naked 800 is fully working :)
Great. One of the best things you can do on an 800, that doesn't work on XL/XE models, is to play MULE with 4 players. Of course, you need 3 other players :)
Indeed, one of my favourite games, even single player :)

I used to play M.U.L.E on my XLs, wonder if it was a later version?
Collector of many retro things!
800XL and 65XE both with Ultimate1MB,VBXL/XE & PokeyMax, SIDE3, SDrive Max, 2x 1010 cassette, 2x 1050 one with Happy mod, 3x 2600 Jr, 7800 and Lynx II
Approx 20 STs, including a 520 STM, 520 STFMs, 3x Mega ST, MSTE & 2x 32 Mhz boosted STEs
Plus the rest, totalling around 50 machines including a QL, 3x BBC Model B, Electron, Spectrums, ZX81 etc...
ijor
Posts: 759
Joined: Fri Nov 30, 2018 8:45 pm

Re: The Naked Atari 800

Post by ijor »

rubber_jonnie wrote: Mon Jan 05, 2026 1:44 pm I used to play M.U.L.E on my XLs, wonder if it was a later version?
There is only one version. The difference is that the 800 has 4 joystick ports, and the XL has only two. MULE supports paddles, and you can put two paddles per joystick port. But at least one joystick is required. So in the XL you can connect two paddles and one joystick for maximum 3 players. For 4 players, an 800 is required.
http://github.com/ijor/fx68k 68000 cycle exact FPGA core
FX CAST Cycle Accurate Atari ST core
http://pasti.fxatari.com
User avatar
rubber_jonnie
Site Admin
Site Admin
Posts: 14014
Joined: Thu Aug 17, 2017 7:40 pm
Location: Essex
Contact:

Re: The Naked Atari 800

Post by rubber_jonnie »

ijor wrote: Mon Jan 05, 2026 1:54 pm
rubber_jonnie wrote: Mon Jan 05, 2026 1:44 pm I used to play M.U.L.E on my XLs, wonder if it was a later version?
There is only one version. The difference is that the 800 has 4 joystick ports, and the XL has only two. MULE supports paddles, and you can put two paddles per joystick port. But at least one joystick is required. So in the XL you can connect two paddles and one joystick for maximum 3 players. For 4 players, an 800 is required.
Sorry, I misunderstood, I thought you meant M.U.L.E didn't work at all on the XL, my mistake.

I hadn't heard about the paddles though, I must try that!
Collector of many retro things!
800XL and 65XE both with Ultimate1MB,VBXL/XE & PokeyMax, SIDE3, SDrive Max, 2x 1010 cassette, 2x 1050 one with Happy mod, 3x 2600 Jr, 7800 and Lynx II
Approx 20 STs, including a 520 STM, 520 STFMs, 3x Mega ST, MSTE & 2x 32 Mhz boosted STEs
Plus the rest, totalling around 50 machines including a QL, 3x BBC Model B, Electron, Spectrums, ZX81 etc...
ijor
Posts: 759
Joined: Fri Nov 30, 2018 8:45 pm

Re: The Naked Atari 800

Post by ijor »

rubber_jonnie wrote: Mon Jan 05, 2026 1:59 pm Sorry, I misunderstood, I thought you meant M.U.L.E didn't work at all on the XL, my mistake.
Sorry, I can see now it was my phrasing that was misleading. But come on, if MULE wouldn't work in the XL, who will buy an XL at all in the first place? :)
I hadn't heard about the paddles though, I must try that!
Yep. One of the many brilliant details implemented in MULE. Be aware it is a little bit awkward, though. You need the joystick for the developing phase. So if you are playing with paddles and it's your developing turn, you must take the joystick. This is why at least one joystick is required.
http://github.com/ijor/fx68k 68000 cycle exact FPGA core
FX CAST Cycle Accurate Atari ST core
http://pasti.fxatari.com
User avatar
rubber_jonnie
Site Admin
Site Admin
Posts: 14014
Joined: Thu Aug 17, 2017 7:40 pm
Location: Essex
Contact:

Re: The Naked Atari 800

Post by rubber_jonnie »

ijor wrote: Mon Jan 05, 2026 2:20 pm
Sorry, I can see now it was my phrasing that was misleading. But come on, if MULE wouldn't work in the XL, who will buy an XL at all in the first place? :)
100%, it was the first game I EVER saw running on an 8 Bit Atari and if you want to phrase it in modern terms, then it was a 'killer app'

Now I saw it first on an 800, and didn't realise that there were some compatibility issues with the XL I bought later on, but M.U.L.E always worked with my 800XL and 1050 combo. Epic game IMHO.
ijor wrote: Mon Jan 05, 2026 2:20 pm Yep. One of the many brilliant details implemented in MULE. Be aware it is a little bit awkward, though. You need the joystick for the developing phase. So if you are playing with paddles and it's your developing turn, you must take the joystick. This is why at least one joystick is required.
I do have another 800 as well, fully cased and with Incognito Gold and I love it to bits, the 'Naked 800' is purely because I want spares and it is useful for tesing some stuff I'm doing.

I will have to try the paddles out at some point.
Collector of many retro things!
800XL and 65XE both with Ultimate1MB,VBXL/XE & PokeyMax, SIDE3, SDrive Max, 2x 1010 cassette, 2x 1050 one with Happy mod, 3x 2600 Jr, 7800 and Lynx II
Approx 20 STs, including a 520 STM, 520 STFMs, 3x Mega ST, MSTE & 2x 32 Mhz boosted STEs
Plus the rest, totalling around 50 machines including a QL, 3x BBC Model B, Electron, Spectrums, ZX81 etc...
User avatar
rubber_jonnie
Site Admin
Site Admin
Posts: 14014
Joined: Thu Aug 17, 2017 7:40 pm
Location: Essex
Contact:

Re: The Naked Atari 800

Post by rubber_jonnie »

OK folks, I decided today would be the day to try replacing the 3.546894 MHz crystal on The Naked 800 with an Si55351 based clock generator as I'd discussed in earlier posts.

I pulled the existing crystal, removed R106 and Q102 thus turning off the old oscillator circuit and placed the clock generator in place of R106, with GND to GND and the clock out to pin C of the CPU card socket.

You can see it in the next couple of photos:

IMG20260111153017.jpg
IMG20260111153017.jpg (348.09 KiB) Viewed 25 times
IMG20260111152959.jpg
IMG20260111152959.jpg (279.11 KiB) Viewed 25 times

At present, and since the Si5351 doesn't retain config when powered off, I have a Pi Zero 2W attached so that I can inject the config over I2C on demand and prior to powering on the 800. This give me a nice clock signal:

IMG20260111153028.jpg
IMG20260111153028.jpg (214.99 KiB) Viewed 25 times

And the machine runs just fine in PAL mode with all the colours present and correct :)

IMG20260111153021.jpg
IMG20260111153021.jpg (270.03 KiB) Viewed 25 times

I'm pretty pleased this works since the 3.546894 MHz crystals (Which I do now have BTW) are so damn hard to get hold of in the UK. Of course the beauty of this is that the Si5351 modules are quite inexpensive and readily available and can create a clock signal of anywhere between 8Khz and 160Mhz. That flexibility along with up to 3 clock outputs on the modules I have means missing crystals don't have to be the end of the world.

The next stage for me will be to make the whole thing stand alone rather than need an RPi that I need to execute code on in order to start the Si5351 clocks up.

So what I intend to do next is sort out an ATTiny 85 that will boot and send the config to the Si5351 as soon as power comes on, and all driven by 5v from the Atari 800.

Will post more when I get to that stage :)
Collector of many retro things!
800XL and 65XE both with Ultimate1MB,VBXL/XE & PokeyMax, SIDE3, SDrive Max, 2x 1010 cassette, 2x 1050 one with Happy mod, 3x 2600 Jr, 7800 and Lynx II
Approx 20 STs, including a 520 STM, 520 STFMs, 3x Mega ST, MSTE & 2x 32 Mhz boosted STEs
Plus the rest, totalling around 50 machines including a QL, 3x BBC Model B, Electron, Spectrums, ZX81 etc...
User avatar
stephen_usher
Site sponsor
Site sponsor
Posts: 7127
Joined: Mon Nov 13, 2017 7:19 pm
Location: Oxford, UK.
Contact:

Re: The Naked Atari 800

Post by stephen_usher »

Looks excellent!

How easy is it to get the ATTiny85 to program the clock gen? The ATTiny 85 only has a little memory and four(?) I/O pins.
Intro retro computers since before they were retro...
ZX81->Spectrum->Memotech MTX->Sinclair QL->520STM->BBC Micro->TT030->PCs & Sun Workstations.
Added code to the MiNT kernel (still there the last time I checked) + put together MiNTOS.
Collection now with added Macs, Amigas, Suns and Acorns.
User avatar
rubber_jonnie
Site Admin
Site Admin
Posts: 14014
Joined: Thu Aug 17, 2017 7:40 pm
Location: Essex
Contact:

Re: The Naked Atari 800

Post by rubber_jonnie »

stephen_usher wrote: Sun Jan 11, 2026 4:44 pm Looks excellent!

How easy is it to get the ATTiny85 to program the clock gen? The ATTiny 85 only has a little memory and four(?) I/O pins.
It's using I2C to send over the data to the clockgen, so only 2 pins required for that, and the code should be very small. The current Python code on the RPi is this:

Code: Select all

#SMBUS programming script to directly program the Si5351 boards. Used because the I2C method failed.
#This requires the registers from Clockbuilder Pro to work. This programs the Si5351 to output 3.546894 MHz on CLK0.

from smbus2 import SMBus

# I2C bus 1 on Raspberry Pi
bus = SMBus(1)
addr = 0x60  # Si5351 default I2C address

# ClockBuilder Pro register dump
registers = [
    (2, 0x53),
    (3, 0x00),
    (4, 0x20),
    (7, 0x00),
    (15, 0x00),
    (16, 0x0F),
    (17, 0x8C),
    (18, 0x8C),
    (19, 0x8C),
    (20, 0x8C),
    (21, 0x8C),
    (22, 0x8C),
    (23, 0x8C),
    (26, 0xEB),
    (27, 0xC2),
    (28, 0x00),
    (29, 0x0F),
    (30, 0xF2),
    (31, 0xB6),
    (32, 0x04),
    (33, 0x1C),
    (42, 0x00),
    (43, 0x01),
    (44, 0x00),
    (45, 0x7C),
    (46, 0x80),
    (47, 0x00),
    (48, 0x00),
    (49, 0x00),
    (90, 0x00),
    (91, 0x00),
    (149, 0x00),
    (150, 0x00),
    (151, 0x00),
    (152, 0x00),
    (153, 0x00),
    (154, 0x00),
    (155, 0x00),
    (162, 0x00),
    (163, 0x00),
    (164, 0x00),
    (165, 0x00),
    (183, 0x92),
]

# Write all registers
for reg, val in registers:
    bus.write_byte_data(addr, reg, val)

print("Si5351 programmed successfully.")

Which should become this:

Code: Select all

#include <TinyWireM.h>   // I2C master library for ATtiny85

#define SI5351_ADDR 0x60

// ClockBuilder Pro register dump
const uint8_t regs[][2] = {
    {2, 0x53},
    {3, 0x00},
    {4, 0x20},
    {7, 0x00},
    {15, 0x00},
    {16, 0x0F},
    {17, 0x8C},
    {18, 0x8C},
    {19, 0x8C},
    {20, 0x8C},
    {21, 0x8C},
    {22, 0x8C},
    {23, 0x8C},
    {26, 0xEB},
    {27, 0xC2},
    {28, 0x00},
    {29, 0x0F},
    {30, 0xF2},
    {31, 0xB6},
    {32, 0x04},
    {33, 0x1C},
    {42, 0x00},
    {43, 0x01},
    {44, 0x00},
    {45, 0x7C},
    {46, 0x80},
    {47, 0x00},
    {48, 0x00},
    {49, 0x00},
    {90, 0x00},
    {91, 0x00},
    {149, 0x00},
    {150, 0x00},
    {151, 0x00},
    {152, 0x00},
    {153, 0x00},
    {154, 0x00},
    {155, 0x00},
    {162, 0x00},
    {163, 0x00},
    {164, 0x00},
    {165, 0x00},
    {183, 0x92}
};

void writeReg(uint8_t reg, uint8_t val) {
    TinyWireM.beginTransmission(SI5351_ADDR);
    TinyWireM.write(reg);
    TinyWireM.write(val);
    TinyWireM.endTransmission();
}

void setup() {
    TinyWireM.begin();

    // Write all registers
    for (uint8_t i = 0; i < sizeof(regs)/2; i++) {
        writeReg(regs[i][0], regs[i][1]);
    }

    // Optional: reset PLLs (recommended by Silicon Labs)
    // Register 177: bit 7 = reset PLLA, bit 6 = reset PLLB
    // writeReg(177, 0xA0);

    // Done
}

void loop() {
    // Nothing to do — ATtiny just configures the Si5351 once at boot
}

AFAIK this should cause the ATTiny85 to power up, inject the config into the Si5351 and then just sit idle. Config is only injected once at boot.

I just need to try it next on the bench, see if it works. If it does then I'll see if I can wire it independently for the 800.

I should be able to program it over USB using the Arduino IDE.
Collector of many retro things!
800XL and 65XE both with Ultimate1MB,VBXL/XE & PokeyMax, SIDE3, SDrive Max, 2x 1010 cassette, 2x 1050 one with Happy mod, 3x 2600 Jr, 7800 and Lynx II
Approx 20 STs, including a 520 STM, 520 STFMs, 3x Mega ST, MSTE & 2x 32 Mhz boosted STEs
Plus the rest, totalling around 50 machines including a QL, 3x BBC Model B, Electron, Spectrums, ZX81 etc...
Post Reply

Return to “MEMBER BLOGS”