Platform AgonLight - marinus-lab/z88dk GitHub Wiki
Hardware summary
- eZ80 @18MHz with 128KB flash 8KB SRAM
- 512kb SRAM
- ESP32 providing 320x200 64 colors, 512x384 16 colors, 640x480 16 colors, 1024x768 2 colors.
+agon
)
Classic library support (- Native console output
- Native console input
- ANSI vt100 engine
- Generic console
- Redefinable font
- UDG support
- Paper colour
- Ink colour
- Inverse attribute
- Bold attribute
- Underline attribute
- Lores graphics
- Hires graphics
- PSG sound
- ETracker (SAA tracker)
- PSG Lib (SN76489)
- Arkos2 Player (AY)
- WYZ Player (AY)
- Vortex tracker (AY)
- One bit sound
- Inkey driver
- Hardware joystick
- File I/O
- Interrupts
- RS232
Quick start
zcc +agon adv_a.c
This will generate the file a.bin
which can be copied to the devices SD card.
CPU support
At present, z88dk generates programs that run in 64k ADL=0 mode
MOS Commands
Applications created by z88dk can be run as MOS executables (that is accept command line arguments), simply move the binary to the MOS directory on the SD card.
Command line processing can be disabled by compiling with -pragma-define:CRT_ENABLE_COMMANDLINE=0
.
Screen modes
Mode switching is delegated to the VDP and all dimensions are dynamically obtained. At the time of writing the following screen modes are available:
Mode number | Graphics Resolution | Text Resolution | # Colours |
---|---|---|---|
0 | 1024x768 | 128x96 | 2 |
1 | 512x384 | 64x48 | 16 |
2 | 320x200 | 40x25 | 64 |
3 | 640x480 | 80x60 | 16 |
The target starts up by default in mode 1, this can be changed using the pragma CLIB_DEFAULT_SCREEN_MODE
and setting to a mode number.
The ANSI colour names are mapped for mode 2 only. To disable this compile with -pragma-define:CONIO_NATIVE_COLOUR=1
.
As a note, the VDP firmware automatically scrolls the screen when a character is printed in the bottom right corner so if this is problematic reduce the number of rows returned by screensize()
by one.
Fonts and UDGs
The Agon supports an 8x8 font, which can be changed using IOCTL_GENCON_SET_FONT32
. Up to 128 UDGs are supported and can be set using IOCTL_GENCON_SET_UDGS
. Note that at present, cvpeek()
can only detect characters with codes in the range 32 to 127.
Bugs and issues
The Agon firmware is under active development, so of course there are bugs, the following are issues that have been noted to affect z88dk developed software:
- https://github.com/breakintoprogram/agon-mos/pull/73
- https://github.com/breakintoprogram/agon-vdp/issues/55
- https://github.com/breakintoprogram/agon-vdp/issues/56