Saturday, August 22, 2026

reZet80 SENTINEL R1 released

The second reZet80 SENTINEL release R1 is out!
Documentation, screenshots, source code, technical specifications, schematics and ROM images as always at GitHub

10 games are included (6 action games and 2 text adventures plus 2 more):
  • New Camel Race game
  • New Dino Chase game
  • New Donkey Race game
  • New Obstacle Runner game
  • New text adventure The Lighthouse
  • Enhanced Asteroid Belt game
  • Enhanced Black Jack game
  • Enhanced Haunted House text adventure
  • Enhanced Hex Invaders game
  • Hex Man (Hexadecimal Hangman) game
  • RV command (show release version)
  • reZet80 custom character splash screen
  • additional LCD displays 40x1 and 16x2
  • 128 KiB RAM divided into 4 memory banks
  • lower-case letters
The hardware runs on a breadboard.

What's next?
Work on the memory cartridge has begun for R2.
I'm also experimenting with a file system and DOS-like commands.
Maybe I'll also introduce a tiny disassembler in R2, too.
Not quite sure about 16x4 and 20x4 but 40x4 displays are pretty cool.
I'm thinking about replacing some support ICs with a PAL or GAL chip (R3 or later).

Wednesday, July 29, 2026

Haunted House walkthrough

Let's play my tiny text adventure on a Hitachi LM058 40-character display!
A few words to begin with:
  • Have a look at the SENTINEL Haunted House README first
  • You can type I at any time to view your inventory
  • Type L to find out where you are
  • Press any key until the sentence has finished and the prompt appears
  • If you die you can restart the game and continue your adventure, except that you're back at the outside, but the game progress will be preserved because it runs from RAM
HH
Haunted House
You are at the outside.
A crumpled piece of paper is on the ground.
The front door is closed.
OPEN DOOR
The door can't be opened.
[ TAKE PAPER ]
READ PAPER
It says, 'Loud magic word is REZET'.
YELL REZET
You materialize inside the door.
You are at the foyer.
E
You are at the living room.
A scroll is on the ground.
In the middle of the room a knife is levitating.
TAKE KNIFE
[ TAKE SCROLL ]
READ SCROLL
It says, 'Escape from the second floor'.
E
You are at the dining room.
S
You are at the kitchen.
You see a bucket of water.
TAKE BUCKET
[ DRINK WATER ]
[ You just died. It was poison. ]
S
You are at the breakfast room.
An animated suit of armour blocks your way.
ATTACK ARMOUR
A suit of armour flees when it sees your knife.
E
You are at the servants rooms.
A cabinet is on one wall.
OPEN CABINET
It's empty.
N
You are at the servants rooms.
A cabinet is on one wall.
OPEN CABINET
You find a key.
TAKE KEY
S
W
N
W
You are at the den.
N
W
You are at the hall, east end.
N
You are at the green bedroom.
On the west wall you see a panel.
MOVE PANEL
You are at the secret passage.
You see a rope.
TAKE ROPE
W
You are at the blue bedroom.
On the east wall you see a panel.
[ MOVE PANEL ]
S
You are at the hall, west end.
A door bars the way south.
OPEN DOOR
You need a key.
USE KEY
You are at the master bedroom.
A wall of raging fire blocks the way east.
POUR WATER
A wise decision.
E
You are at the library.
There is a hole in the ceiling.
USE ROPE
You attach the rope to the hole in the ceiling.
CLIMB ROPE
You reach the second floor.
You are in a dimly lit room.
A magic sword is on the floor.
There is a hole in the floor.
[ JUMP HOLE ]
[ You fall and break your neck. You are dead. ]
TAKE SWORD
READ SWORD
An inscription reads 'GHOST KILLER'.
E
You are in a dimly lit room.
A ghost is here.
KILL GHOST
Your magic sword enables you to kill the ghost.
A dead ghost is on the floor.
W
S
You are in a dimly lit room.
A ghost is here.
KILL GHOST
Your magic sword enables you to kill the ghost.
A dead ghost is on the floor.
N
W
You are in a dimly lit room.
A ghost is here.
KILL GHOST
Your magic sword enables you to kill the ghost.
A dead ghost is on the floor.
W
You are in a dimly lit room.
A ghost is here.
KILL GHOST
The ghost is immune to your attack.
DROP SWORD
N
You are in a dimly lit room.
A ghost is here.
KILL GHOST
You can't kill a ghost with your bare hands.
W
You are in a dimly lit room.
A ghost is here.
KILL GHOST
You can't kill a ghost with your bare hands.
S
You are in a dimly lit room.
A rusty old sign is lying on the ground.
TAKE SIGN
READ SIGN
It says, 'Three exits from this room are true.
But this clue is a burden'.
[ S ][ E ][ W ]
[ You are in a cellar. You fell through a trap door to your death. ]
DROP SIGN
S E W
You are in a park.
You escaped to a balcony and climbed down a huge tree.
Congratulations. You made it.

Friday, June 26, 2026

Full keyboard using 23 keys

The 74C923 key encoder chip is a remarkable IC.
First of all, it supports key debouncing so there's no need to filter out the noise in software.
And it triggers an interrupt (I use the /NMI) once a key is pressed.
Actually, it provides a high-active data available output (DA) which is fed to the /NMI by an inverter.
Unfortunately it can only detect 20 key. That’s enough for a hexadecimal keyboard 0 - F and four special keys: ENTER, BACK, ESC and SHIFT.
The solution is to add three ALT keys: red ALT 1, green ALT 2 and blue ALT 3.
So that I can map all the alphanumeric characters and 28 punctuation symbols to the 16 hexadecimal keys.
Additionally you can check the NMI service routine and the char encoding (key codes) on GitHub.

Monday, May 25, 2026

SENTINEL hardware

The reZet80 SENTINEL is a computer system that could have been built in the 80s.
It is built in CMOS technology with HCMOS chips, only the UVEPROM is NMOS.
Only technologies that were available in the 80s are used.

The Z80 CMOS CPU is clocked at 2 MHz (currently in the prototyping phase) but I'm planning to use frequencies up to 20 MHz (maximum frequency for CMOS). I'd like to have a go at overclocking, too. I've never overclocked my Z80 CPUs but I'll do so as part of my tests used to determine which CPUs are genuine and which are counterfeit. So far I've only carried out CMOS/NMOS tests but the CPU speed tests are due to take place next.
schematic for R0 and R1

The reZet80 SENTINEL is equipped with 128 KiB of RAM and 4 KiB of ROM.
The 128 KiB RAM are divided into 4 banks of 32 KiB each but only the first two banks are addressed in R0 and R1.
circuit diagram for R1

128 I/O ports are provided, actually 8 ports of 16 addresses each.
4 ports are currently in use for the configuration and status registers, the keyboard and the LCD display.
One additional port will be used in R2 for the memory cartridge (NAND memcart).
I/O demultiplexing schematic for R0 and R1

The SENTINEL keyboard features a full keyboard (alphanumericals, 28 punctuation symbols and 7 special keys) with just 23 keys! More on this in my next post. It uses the 74C923 key encoder chip that supports key debouncing and interrupts. It triggers /NMI once a key is pressed.
circuit diagrams for R0 and R1

An LCD display is used for visual output. All LCD displayes that use Hitachi's HD44780 dot matrix LCD controller or a compatible chip can be connected. In R0 only a 16x1 LCD module is supported but 16x2 and 40x1 modules will be added in R1 and even more in R2.
schematic for R0 and R1

A configuration register (8-bit latch) is used for addressing the physical memory banks and to switch ROM out after boot.
circuit diagram for R1

The status register is an 8-bit buffer. It's used to control keyboard and memcart.
schematic for R2

For the sake of completeness: inverter, oscillator and reset switch.

Friday, April 24, 2026

Tiny Games

Tiny games are games that fit into one chunk of memory (256 bytes).
They are bundled with a 2 or 4 KiB debug monitor as they need additional display and keyboard routines.
A game size of 512 bytes is also acceptable for a system without a storage unit.
These tiny games are available for my reZet80 PIONEER and reZet80 SENTINEL systems.

Availability for different display types:
16x140x116x2
Asteroid Belt XXX
Black Jack XXX
Camel Race X
Dino Chase X
Donkey Race X
Hex Invaders XXX
Hex Man XXX
Obstacle Runner X

A tiny text adventure is at least 2 KiB in size due to the descriptive text and the dictionary:
16x140x116x2
Haunted House XXX
The Lighthouse XXX

The reZet80 PIONEER uses a 14-segment 16-char display so only 16x1 games are available.
The reZet80 SENTINEL provides various LCD displays (16x1, 40x1 and 16x2 for now).

More screenshots and game previews and walkthroughs will be added soon.

Sunday, March 1, 2026

reZet80 status

The first reZet80 SENTINEL release R0 is out!
Screenshots, source code, technical specifications and ROM images for now only at GitHub but everything will be added here as well.
This release includes the following games:
  • Asteroid Belt
  • Hex Invaders
  • Black Jack
  • Haunted House text adventure
  • Hex Man (Hexadecimal Hangman)
In the next release I'll add a NAND memory cartridge and more games:
  • Dino Chase
  • Camel Race
  • Donkey Race
  • Obstacle Runner
  • enhanced Hex Invaders game
  • The Lighthouse text adventure
  • enhanced Haunted House text adventure

So many Z80 projects and always so little time...
reZet80 stands for "Reset me back to the 80s with the Z80".
reZet80 features a set of retro projects to develop computing and arcade systems that resemble the Z80 machines of the late 70s and 80s.
All systems are built from scratch and not copies of any other Z80 system.
The development process includes hardware design and software programming in Assembler.
I started reZet80 back in 2016.

reZet80 releases (including documentation, schematics and source code at GitHub):
  • 2026-02: reZet80 SENTINEL R0
  • 2023-10: reZet80 PIONEER R1 (Haunted House-only release)
  • 2022-12: reZet80 SCOUT R0 (prototype, unfinished code)
  • 2022-06: reZet80 PIONEER R0
  • 2021-06: reZet80 HWDK R0
  • 2021-02: reZet80 DEV R1 (unfinished code)
  • 2020-11: reZet80 DEV R0

Off-topic note: The letter Z stands for the company Zilog and the Z80 CPU. The Z is in NO WAY related to the Russian war against Ukraine!

Friday, February 27, 2026

Tiny Text Adventure Engine

The tiny text adventure engine is intended for Z80 systems of the 70s like my reZet80 PIONEER.
It also runs on systems of the 80s like my reZet80 SENTINEL.
The game size of my first release of the Haunted House text adventure was 2236 bytes. For the second release I managed to squeeze out another 42 bytes but with 2194 bytes it's still too big for a 2 KiB ROM.
The size excludes the keyboard and display handling that need to fit in the same ROM, so for Haunted House at least 3 KiB of ROM are needed.
But depending on the descriptive text and the dictionary a text adventure that fits in 2 KiB is feasible.
So what to expect from a 2 KiB text adventure?
  • It runs on a 16-character LCD display.
  • The descriptive text is short and the dictionary is limited.
  • It uses a simple parser that understands one and two word commands made of a verb and a noun.
  • The focus lies on solving puzzles.
  • The atmosphere is secondary.
  • There is no time limit and no score.
And how to achieve this with so little space?
  • It is written entirely in Assembler.
  • I use 5-bit packed chars.
So the texts are 37,5% smaller. Unfortunately only 32 characters can be used.
That's 26 capital letters, 4 punctuation symbols (" ", ".", "," and "'") and 2 special codes: ENTER (used as delimiter after 16 characters) and EOS (end of string).
  • Only the first letter of verb and noun are distinguished.
So to open a door enter "OPEN DOOR". Or just "O D".
You could also enter "OPEN DRAWER" and the door will still be opened.
The trick ist to use unique, unambiguous verb / noun combinations for each location.
So you won't find a door and a drawer at the same location.
In order to overcome this unpleasant behaviour the parser has to check for "O DO" and "O DR".
This increases code size and leads to my tiny text adventure engine becoming a text adventure engine.
BTW, I started coding my second text adventure The Lighthouse.
I will add support for more LCD displays (40x1, 16x2, 16x4, ...).
Releases of both games for a 16-char 14-segment display are also in the pipeline.