Disassembled NABU Stash
Collection of disassembled NABU software, such as the 8k and 4k ROMs, communication protocol, boot loader, and IOS. Please be courteous and credit authors for their effort if you build off what you learn from these verbose annotations.
NABU PC ROM (BIOS) Communication Protocol Definition
The NABU PC was designed to boot and load its software over a network instead of from local storage. To make that work, the computer communicates with an external network adapter using a small binary protocol over an I/O port. Through this protocol, the PC asks the adapter if it’s present, requests status information, sends a user-defined channel number, sets up a download session, and then receives the operating system and application data in blocks.
The NABU Internet Adapter emulates the NABU Network Adapter which allows loading applications from a PC to the NABU.
Every part of the boot process depends on that exchange. If the adapter doesn’t respond with the right handshakes and markers, the NABU PC won’t load anything—there’s no disk fallback in the default 4k NABU ROM. That makes the protocol essential for anyone trying to emulate the adapter, build replacement hardware, archive the platform, or simply understand how the machine actually works at power-on.
The PDF below documents that entire communication protocol based strictly on how the NABU BIOS ROM behaves. Since no official modern documentation exists, this PDF fills a gap for developers, archivists, and hardware hobbyists who want to keep the NABU ecosystem alive. It defines each command, explains the handshakes, describes the block transfer format, and lays out how the PC expects the adapter to behave—making it possible to build fully compatible modern replacements.
0x000001 Boot Loader
The ROM requests 0x000001 from the cycle, which contains a position-independent, self-relocating bootloader. The payload within the bootloader PAK contains the IOS (Input/Output System) and main menu. The bootloader can execute from different memory ; locations and dynamically relocates the IOS code before transferring control.