SOL20 Terminal Computer
Posted: Thu Dec 23, 2021 8:21 am
Has anyone ever compiled for the SOL20 Terminal Computer ? I tried with the +cpm -m8080 -clib8080 options but my program crashes on startup. I also tried with a minimal crt0.asm which only sets the stack; the program starts normally but it hangs sometime later for no apparent reason.
It would be great if we could have this target added to Z88DK. The info I've gathered so far:
How to quickly test a program on the sol-20 emulator:
There is an emulator for Windows called Solace. After you run it, go to "File" -> "Load Program..." and choose a .ENT file. Then type EXEC DF80 (where DF80 is the loading address shown in the status bar on the bottom of the window).
An ENT file is a monitor-like text dump like this:
Useful links:
- Mame's ptcsol.cpp
- Sol20.org
- Sol-20 Wikipedia article
It would be great if we could have this target added to Z88DK. The info I've gathered so far:
Code: Select all
CPU 8080 with 48K RAM
VIDEO: 64x16 text, screen memory at $CC00-$CCFF
CHARSET: plain ASCII with reverse characters, 0-31 are special (useless) glyphs
KEYBOARD:
- status port: $FA (~INP($FA) & 1) == 0 means no key pressed
- data port: $FC plain 7 bit ascii
AUDIO: 1 bit audio triggered by the interrupt enable line (flipping DI / EI)
Peripherarls: tape and disk, it can run CP/M but the most common configuration is the tape-only one with builtin ROM monitor.
According to MAME, the memory layout is the following:
// map(0x0000, 0x07ff).bankrw("boot");
// map(0x0800, 0xbfff).ram(); // optional s100 ram
// map(0xc000, 0xc7ff).rom();
// map(0xc800, 0xcbff).ram(); // system ram
// map(0xcc00, 0xcfff).ram().share("videoram");
// map(0xd000, 0xffff).ram(); // optional s100 ram
There is an emulator for Windows called Solace. After you run it, go to "File" -> "Load Program..." and choose a .ENT file. Then type EXEC DF80 (where DF80 is the loading address shown in the status bar on the bottom of the window).
An ENT file is a monitor-like text dump like this:
Code: Select all
EN DF80
DF80: 23 7E FE C3 C2 24 E0 2E 1F 7E FE 3A C2 24 E0 7C
DF90: 32 D0 DF 32 FC DF 2E 00 2B 22 91 D1 21 E9 DF 22
... omitted ...
FFE0: CA C7 FF 2B C3 DF FF FE 0D C8 7E FE 0D CA C1 FF
FFF0: C3 CE FF 2A EF D0 22 91 D1 C3 60 E0/
Useful links:
- Mame's ptcsol.cpp
- Sol20.org
- Sol-20 Wikipedia article