AgonLight 2 : High performance Z80 retro computing
Together Avec le Commander X16, l'AgonLight2 are very popular and appealing retro computer plateformes of 2023.
AgonLight2 is beated by an eZ80 processir running 20 MHz, a graphical processor named VDP and 512 Kio of RAM.
The eZ80 is a moderne implementation of the Z80 processor which includes many Z80 peripherals and a 24 but adress bus!
Fitted with 512 Kio of RAM, the AgonLight2 can handle up to 16 Mio of RAM (where usual 16 bits address bus is limited to 64 Kio address space).
AgonLight2 is a complete redesign of the original AgonLight from Bernardo Kastrup (knowns as TheByteAttic) running with the Dean Belfield's firmware.
The interest of such plateform:
- Switch it on, it is instantly ready-to-use. You do not need to wait for the operating system to be loaded from the hard-drive.
- HACKABLE by nature! You can update the firmware, the MOS (the micro OS stored in ROM), the VDP (visual display peripheral) and even the Z80 version of the BBC Basic.
L'AgonLight is not an emulator but a real retro plateform featuring:
- MOS: the minimalist operating system loaded from ROM. It allows the processor to interact with the peripherals. MOS also handle the user interaction through a terminal like software. Finally MOS allows the user to load binaries, Basic file, datas and plateform upgrade from the microSD. Note that BBC Basic is available as a binary loaded from the SD.
- BBCBasic: the BBCMaster BBC Basic has been ported to Z80. It is one of the most powerful basic existing on earth. BBC Basic allow to include inline assembly into your code to speed up computation.
- micro SD: this reader is controled directly by the eZ80 processor (through the MOS api). So your programs can have access to "hard-drive" alike to reading and storing data.
- GPIO & UEXT port: would allow the AgonLight to interact with the world around. The ports can be used as input/output to control relais, read data from sensor by using one of the buses: I2C, SPI (shared on microSD) and UART (serial port).
- I2C Port: the eZ80 does have an I2C bus made available on a dedicated I2C connector, the GPIO and UEXT port (from Olimex).
- VGA output: driven by the VDP, it offer many graphical and non graphical resolution to the VDP.
- Keyboard: an USB connector to connect USB Keyboard offering PS2 mode (see note).
- Buzzer: to produce user response.
- Audio outout: get a better result by connecting an amplifier speaker on the jack connector.
- USB-C: to power-up the the Agon (and upgrading the VDP with Arduino IDE).
- Chargeur Lipo: this connector allows to plug a Lipo battery and transforming the l'AgopnLight into an autonomous system.
About the VDP
Video Display Peripheral (or VDP) is the firmware responsible for:
- The VGA output,
- The audio output or buzzer (when jack is not connected),
- The keyboard input.
The VDP offers many graphical features to VGA with standard modes like 320x200 64 colors, 512x384 16 colors, 640x480 16 colors, 1024x768 2 colors.
It also takes in charge the Sprite display, collision detection, etc. On the sound side, the VDP offers several channels with different waveform.
VDP does also manage the user interaction thank to the terminal mode (used to display characters and grab keystrokes).
The VDP is build around the ESP32-C4 and 1 Mio PSRAM. It is programmed with C thanks to Arduino IDE throught the IDE (open-source and IDE widely available on the Net).
L'ESP32 is used for the VDP for its powerful microcontroler (not for WiFi support).
Using an ESP32-C4 instead of a FPGA made it easier to upgrade the VPD with software widely spread over the world (and easy to use).
Presently, there is work to improve sprite rendering (partial-transparency support) and audio rendering (increasing the number of channels).
Finally, the eZ80 communicates with the VDP via the UART at 115200 bauds.
USB keyboard with PS/2 mode
Long-long time ago in the computer history, the USB keyboard did born. At that point in time, most computer were PS/2 one. So, USB keyboards where sold with a passive USB-To-PS2 adapter (just wirings).
Those olds USB keyboard did add the required circuitry to detect if the keyboard was connected to an USB or a PS/2 port (through passive adapter). So such old USB keyboard can speak either USB, either PS/2. You can connect them to the AgonLight... such keyboard will work on the Agon.
Recent USB keyboard doesn't matter about PS/2 mode, they will not work on the Agon... nothing will happens when pressing keys.
If you have a PS/2 Keyboard, plug a passive PS/2--to-->USB converter. They will work on the Agon.
Programming the AgonLight
AgonLight2 combine modern and retro worlds. You can program old school game in basic (they will run blazing fast) or create home automation tasks or wire sensors (and relais) on the GPIO/UEXT connectors.
Agon also have the nano editor very well known in Linux world.
The Retro Desk did published a very nice video about programming langage available for AgonLight.
BBC Basic is one of the most powerful Basic ever made (also in 2023). It has been ported to numerous Z80 processor by R.T. Russell. The BBC Basic do great job on AgonLight!
BBC Basic also includes instruction for graphical modes and audio support. It can manage files, load & save basic program from/to the microSD. BBC Basic is not in ROM, it is loaded in memory from the microSD by the MOS (MicroOS).
BBC Basic also allow to encore inline assembler into you basic program to speedup execution.
Enthusiast programmer could also expand the Basic to include extra features (as the code is open-source).
AgonLight do use a 24 bits address bus, so the assembler is specialized for eZ80.
- Support for ADL mode (Long Address & Long Data mode).
- Support for the MOS API with restart vector in RAM ($00 reset, $08 MOS, $10 chars, $18 string VDU).
- ez80asm : an assembler running on many plateforms (including the Agon)
AgonLight can also be programmed in C with SDCC (Small Device C Compiler).
Such compiler is used on compter. It could probably run on the Agon but compilation would take ages. The SDCC compiler is available for Linux/Mac/Windows
- Support the eZ80 in Z80 mode (ADL support will come later)
- Require implementing a standard C library for the Agon.
putchar/getchar are already implemented but the full C library is not yet ready.
For each order, you will receive the AgonLight2 fully assembled and tested. microSD Card, audio heaset, speaker, keyboard, GPIO expansion card, Lipo battery are not included.
This product requires extra to work properly:
- An USB-C 5V output Power Supply (see black PSU or white PSU)
- a VGA monitor with VGA cable
- an USB keyboard with PS/2 mode