| Crates.io | kz80_db |
| lib.rs | kz80_db |
| version | 0.1.1 |
| created_at | 2025-12-21 01:38:10.470783+00 |
| updated_at | 2025-12-21 01:38:10.470783+00 |
| description | dBASE II clone for Z80 - Retro database on the RetroShield |
| homepage | https://github.com/ajokela/kz80_db |
| repository | https://github.com/ajokela/kz80_db |
| max_upload_size | |
| id | 1997204 |
| size | 100,095 |
A dBASE II clone for the Z80 RetroShield.
This project generates a Z80 ROM that implements a subset of dBASE II, the classic database management system from 1981. It runs on the RetroShield Z80 with SD card storage emulation.
| Command | Description |
|---|---|
USE <file> |
Open a database file |
LIST |
Display all records |
DISPLAY |
Show current record in detail |
GO <n> |
Navigate to record n |
SKIP |
Move to next record |
DELETE [n] |
Mark record as deleted |
RECALL [n] |
Unmark deleted record |
PACK |
Permanently remove deleted records |
REPLACE |
Update a field value |
LOCATE |
Search for a record |
COUNT |
Count total records |
CREATE |
Create a new database |
APPEND |
Add a new record |
QUIT |
Exit the program |
Like the original dBASE II, kz80_db supports automatic command execution at startup. If a file named STARTUP.CMD exists in the storage directory, its contents will be executed as commands when the program starts.
Example STARTUP.CMD:
USE MYDB
COUNT
This will automatically open the MYDB database and display the record count.
The .DBF extension is automatically appended to database filenames if no extension is provided, matching original dBASE II behavior:
USE MYDB opens MYDB.DBFUSE MYDB.DBF also opens MYDB.DBFcargo build --release
./target/release/kz80_db
This generates db.bin, a Z80 ROM image.
Use with the RetroShield emulator:
../emulator/retroshield db.bin
cargo test
Runs both unit tests and integration tests (requires the emulator).
The implementation uses the authentic dBASE II format:
Header (8 bytes):
Field Descriptors (16 bytes each):
Records:
BSD 3-Clause. See LICENSE.