Platform AgonLight - z88dk/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.

Classic library support (+agon)

  • 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:

Resources