Fuzix updates

A place to discuss everything Dragon related that doesn't fall into the other categories.
Post Reply
sixxie
Posts: 1486
Joined: Fri Jul 18, 2008 8:36 am
Location: Hertfordshire
Contact:

Fuzix updates

Post by sixxie »

So Alan decided to pull the "no more GCC" lever for 6809 Fuzix, and after a while of him bashing against the fallout, the results seem to be pretty good. It sounds like the rapid 6809 development has settled down now, so seems like a good time to write this.

It does mean all the 6809 platform-specific code needs adapting. I've done the Dragon+SAMx8 platform, and it's working pretty well, plus or minus an odd behaviour here and there. The only stuff I've touched in the NX32/MOOH or CoCo 3 platform code is what the SAMx8 platform borrows - I don't want to steal the fun of the port from Tormod or Brett.

The (well, an) upside of all this is you don't have to patch & build an ancient GCC to build Fuzix any more. It only depends on the Fuzix toolchains. The downside is you do have to build and install those.

So here's a quick howto, assuming a unix-style dev environment, which might need editing if people try it and find the holes.

Here's the first hole to plug: you need to install libbsd. In Debian:

Code: Select all

apt install libbsd-dev
Ensure /opt/fcc/bin is in your $PATH. You might need to pre-create /opt/fcc - sorry, been a while since I did this from scratch.

Clone & install the Fuzix Bintools. This includes the assembler and linker:

Code: Select all

git clone https://codeberg.org/EtchedPixels/Fuzix-Bintools
cd Fuzix-Bintools
make all
sudo make install
cd ..
Clone & install the Fuzix Compiler Kit:

Code: Select all

git clone https://codeberg.org/EtchedPixels/Fuzix-Compiler-Kit
cd Fuzix-Compiler-Kit
make bootstuff
sudo make bootinst
# building the rest needs the bootstrap stuff in your PATH
make all
sudo make install
cd ..
And now finally you're ready for Fuzix itself! Clone Fuzix:

Code: Select all

git clone https://codeberg.org/EtchedPixels/FUZIX
cd FUZIX
Now there are options. To test under emulation, build a DriveWire version:

Code: Select all

make TARGET=dragon-samx8 SUBTARGET=emu diskimage
Test by exporting Images/dragon-samx8/filesys.img in DriveWire, and run XRoar:

Code: Select all

xroar -m dragonx8 -cart dragondos -cart-becker -run /path/to/FUZIX/Images/dragon-samx8/fuzix-ddos.DSK
This will boot the kernel off an emulated floppy. Enter 'dw' as your boot device to use DriveWire for its root filesystem.

To build for a real Dragon 64 + SAMx8 + CoCoSDC:

Code: Select all

make TARGET=dragon-samx8 SUBTARGET=sdc diskimage
Copy Images/dragon-samx8/fuzix-sdc.img to your SD card, possible as FUZIX.VHD. Mount that on your Dragon and BOOT. Enter 'hda1' as your boot device.

If you edit your /etc/inittab to enable the getty on tty5, you can connect a serial terminal.

If you happen to have dzip installed, you can get a quicker kernel load by appending FZLOAD09_FORMAT=dzip to those 'make' lines.

Phew! But now you get to play top-notch games like Zork, 2048, Centipede and Sudoku :) ASCII Invaders is still there too. Some of these need or are better with an 80-column terminal...

Of course if you want an image without having to jump through all those hoops, let me know and I'll build the current state of things and upload it somewhere.

..ciaran
Post Reply