NOW LET US – AI RAG SaaS Studio TP.HCM
NOW LET US
Digital Product Studio
Back to news
DEV-TOOLS...6 min read

Fuzix OS

Share
NOW LET US Article – Fuzix OS

Fuzix OS 0.4 introduces significant kernel improvements, unified binary formats, and expanded support for a wide range of vintage 8-bit to 32-bit processors.

For source code and licenses please visit the Github repository. The matching tag is '0.4'.

Install images for 0.4 targets. See the git source README files in Kernel/platform-* for install information.

The core of the Fuzix kernel remains much the same for this release. A number of bugs have been fixed and some interfaces improved. The networking layer has been completely reworked to be more modular so that in future it can run in a different address space to the kenel on 8bit machines.

Executable formats have changed. The 8080, 8085 and Z80 binary formats are now properly unified so that 8085 and Z80 can run 8080 binaries directly. The 68HC11 and 6803 formats are somewhat different but the syscall ABI is arranged so that the 68HC11 can run 6803 binaries.

The 32bit binaries that were using a bodged Linux binflt format are now using a.out with some small extensions to handle the relocation maps. This should hopefully now become a stable executable format for the future.

Building has, where possible, been made easier. The tool chains remain a bit of pain because of the fact many are somewhat obscure, and those that are not tend to get broken on a regular basis forcing specific releases to be used. The actual system build however now has a "make diskimage" target that puts together all the pieces for a bootable system in one go rather than requiring the builder understands the finer details of the system in question and how to merge all the pieces together.

The make environment is much better than it was. It is still terrible however so a "make clean" is needed when switching processors and a "make kclean" is strongly recommended when tweaking any kernel config options or switching target. A lot of the make rules have been merged which should make the problem of sorting out all the rules and dependencies more tractable for 0.5.

The N8VEM project rebranded as 'Retrobrew' at the request of its founder who had ceased to be so involved. The 0.3 release fixed most N8VEM naming, 0.4 completes this.

There is now a distinction between RC2014 (the product line) and RCbus (the bus standard). In particular the bus has been extended beyond the original concept and now has its own standard document and keepers. Fuzix should now only use the 'RC2014' nomenclature for official RC2014 products but there may be a few that have been missed. Systems that were previously rc2014-xyz are now rcbus-xyz.

Hitachi 6303 and Motorola 6803 processors. These are supported by the CC68 compiler chain and tools derived from cc65 and specifically designed for Fuzxi. Currently the only target board is the rcbus 6803/6303 processor card. Floating point is not supported, but adding it would only require someone writes the basic underlying soft fp routines (add, subtract etc).

Other targets should not be hard to add.

These are supported by cc65 (v2.18 or later). Due to compiler limits floating point is not supported. 65C816 is treated as a 65C02 with extras because of the lack of an open 65C816 compiler.

Currently this port targets the RCbus 65C02/65C816 cards and the PZ1. Most of the "classic" 6502 systems have neither the memory or the I/O, and in most cases even when they are upgraded with some of the late era processor upgrades still lack decent I/O.

This port uses gcc 6809 and lwtools. It supports a range of classic and modern systems including Dragon, Tandy COCO, Thomson and RCBus machines. You may need to use an old lwtools (eg 4.13) if using a modern lwtoools and it reports a segmentation fault or similar from lwasm.

The final generation of the 6800 processor line this port uses gcc and has a very different ABI to the 6800/6803. It can run 6800 and 6803 binaries however, but not 6303. At the moment this port targets the Mini11 SBC and the RCbus 68HC11 card.

Motorola 68000 series processors with flat memory space. The port is now a lot more stable and has a sensible binary format. Processors up to 68EC020 are catered for. An additional memory model has been added for systems with low memory and it is now just about possible to run Fuzix on a 128K system without relying on fast disks. GCC and binutils need to be built in a particular way for pre 68020 processors otherwise they will insert unsupported instructions. See the README for 68000.

The 8080 is supported using the Fuziz C compiler. This is a new compiler so there may be a few bugs left to shake out.

This port now uses the full 8085 instruction set (including the stuff Intel decided to not to document). It uses a new compiler built specifically for Fuzix. This port is thus currently a little bit flaky and there are tool and system bugs to nail down. Performance is several times faster than the pure 8080 build as the extra instructions make a huge difference when executing high level languages. Floating point is not yet supported as it needs the base low level FP routines for 8085 writing

The supported target is the rcbus 8085 card with onboard bank MMU.

ARM M0 is supported using gcc and targetting the Raspberry Pi Pico. ARM M4 targets for the DK-TM4C129X and EK-TM4C129X.

This target is specific to the ESP8266 variant of the Tensilica L106.

A complete port for MMUless NS32K processors. This port is new as of 0.4. It targets the in-progress RCbus NS32FX16 processor card design.

These processors are all supported by the main tree using a fork of SDCC 3.8. The newer SDCC changes a lot of calling conventions so no move to it has been made at this point. That may change in the future.

Supporting code libraries make most flat Z180 systems trivial and provide all the mapping and peripheral support.

These are processors which are in the tree but not yet fully functional. In some cases this is merely used to help catch portability problems in the libraries.

Work in progress to extend CC68 and Fuzix to the original 6800/6800 processor line. Not yet usable

This is currently just the base sketches for a future PC and Rcbus-80C188 port.

An initial experimental port only

Initial support for booting on an ez80 based platform. In this case the Jee Retro development platform. This should form a good basis for enabling any other ez80 platform, but none have been enabled yet.

Retired

Tracking the state of the GCC PDP11 compiler and binutils. Not yet at a point the toolchain works well enough.

At this point used as a build check on the user space. Hopefully some Rabbit board enabling will happen during the 0.5 work.

Tool chain testing and portability work. At the moment this is another compiler chain that we break. In theory Fuzix should be able to run on some of the upcoming and recent RiscV micro-controllers with 128K or so of SRAM.

This target is being used to slowly debug the C compiler. Not a useable port as the compiler is still a fair way from working correctly.

Warrex CPU6. Being used for compiler debug but also on hold until the documentation of the system is in a better state to make progress.

Work in progress. The Z280 is very Z80 like but the different privilege structure and interrupt behaviour meand that for the Fuzix at least this will need its own variant of the low level core code.

For more details on each system consult the relevant README.md in that Kernel/platform-xxxx directory. There are othee platforms but if not listed here they are likely works in progress or special cases.

John Winan's 2063-Retro system as featured in his "John's Basement" youtube series. A fairly classic Z80 Retro system with somewhat slow bitbang SD card interface.

The 68K nano design from Matt Sarnoff. A minimalist 68000 system with 16bit IDE interface. This makes a very nice and easy to build little Fuzix box.

The Ampro Littleboard was a classic Z80 CP/M board designed to be the same size as a floppy disk. This port requires the Plus version of the board with SCSI controller.

An pre-laptop portable word processing machine with PCMCIA slot.

The sequel to the NC100 with a floppy drive and much nicer display.

© 2026 Now Let Us. All rights reserved.

Source: Hacker News

Advertisement
Ad slot ready: 5887729102

More in this category

EXPLORE TOPICS

Discover All Categories

Deep dive into the specific technology sectors that matter most to you.