Skip to content

ZX80 hardware ​

The screen, colour, graphics and sound hardware of each machine that runs ZX80 BASIC, and where machine-code and data blocks live in its memory.

Sinclair ZX80 ​

Screen modes ​

The ZX80 has a single 32×24 character display, with the bottom lines reserved for input and reports. The picture is generated by the CPU itself and there is no equivalent of the ZX81's SLOW mode: the screen goes blank while a program runs, and reappears when the program stops or waits at INPUT.

Colour ​

The ZX80 has no colour hardware — the display is black on white. Individual characters can be shown in inverse video (white on black) using the inverse character set (see the escape codes page).

Graphics ​

There is no bitmap mode, and the integer BASIC has no PLOT command. Graphics are drawn by printing the charset's block-graphics characters — each character cell is a 2×2 group of block pixels (see escape codes).

Sound ​

The ZX80 has no sound hardware.

Memory ​

The whole of the machine's address space, region by region. Zoom in to open a band into the parts it groups, and select a region for its addresses and what sits there.

A ZX80 program can carry machine code or data — memory blocks — by hiding the bytes inside a REM line, so they travel in the single standard .O file that real emulators and hardware load. The bytes live in the program listing itself.

Each hidden-code REM line shows in the editor as a block tab next to the BASIC tab. Open the tab to edit the block's assembly; saving rewrites the hidden REM line, keeping the machine code part of the program. Add a block with the + button, or import a .O that already holds one and the IDE gives it a tab.

A block's address is fixed by where its REM line sits — the address is shown in the block tab and can't be typed in; move the REM line to change it. You can mark a block as code or data and name it; those labels are remembered in the project bundle.

One ZX80 caveat: a line ends at a newline byte, so a block can't hold that byte (0x76, the Z80 HALT opcode) — the editor tells you if your code hits this. Because the bytes ride in the listing, they export and import with the ordinary .O file and run on a real ZX80 unchanged.

See the machine code guide and the cross-dialect Machine code & data blocks overview. Every mnemonic, directive and operand form the assembly editor accepts is in the Z80 assembly reference.

Released under GNU GPL v3.0. Some ROM images are third-party copyrighted works, separate to this project, strictly for personal/educational purposes.