Platform Mattel Aquarius - marinus-lab/z88dk GitHub Wiki
- Z80 @ 3.5Mhz
- 4kb RAM (expandable to 52kb)
- 8kb ROM (Microsoft BASIC)
- 40x25 character mapped display
- Optional AY-3-8190 (via Mini Expander/Micro Expander)
- Optional Hand Controller/joystick pads (via Mini Expander/Micro Expander)
- Z80 @ 3.5Mhz
- 512kb RAM (expandable to 52kb)
- 8kb ROM (Microsoft BASIC)
- Display capabilities
- 40x25 character mapped display with redefinable PCG
- 320x192 hiresolution screen with 40x24 colour resolution
- Tile map mode
- Hardware sprites
- 2x AY-3-8190
- ESP32 providing file and network facilities
- 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 (80x72 and 80x48)
- Hires graphics
- PSG sound
- ETracker (SAA tracker)
- PSG Lib (SN76489)
- Arkos2 Player (AY)
- WYZ Player (AY)
- Vortex tracker (AY)
- One bit sound (on the keyboard speaker)
- Inkey driver
- Hardware joystick
- File I/O
- Interrupts
- RS232
- Native console output
- Native console input
- ANSI vt100 engine
- Generic console
- Redefinable font
- UDG support
- Paper colour
- Ink colour
- Inverse attribute (Bitmap mode)
- Bold attribute (Bitmap mode)
- Underline attribute (Bitmap mode)
- Lores graphics (80x72 and 80x48)
- Hires graphics
- PSG sound
- ETracker (SAA tracker)
- PSG Lib (SN76489)
- Arkos2 Player (AY)
- WYZ Player (AY)
- Vortex tracker (AY)
- One bit sound (on the keyboard speaker)
- Inkey driver
- Hardware joystick
- File I/O
- Interrupts
- RS232
zcc +aquarius -lm -create-app -o adventure adv_a.c
-or-
zcc +aquarius -clib=ansi -lm -create-app -o adventure adv_a.c
The binary converter (appmake) will create two files: _adventure.caq and adventure.caq
The first one is the BASIC loader, and the second one is the binary block. They should be loaded in sequence; type CLOAD, play the first file, then type RUN and play the second one.
With the flag "-Cz--audio" and the related appmake options z88dk now creates a single WAV file with a short pause to permit typing "RUN" in the LOAD process.
z88dk supports building 8k ROM images for the Aquarius:
zcc +aquarius world.c -subtype=rom -create-app
The ROM file can then be inserted using the emulator. Depending on the emulator, you may need to reset the machine following insertion.
The stack address chosen is at the top of unexpanded RAM. If your program requires more RAM, then move the stack using -pragma-define:REGISTER_SP=xxxx
. If using Aquarius+ graphics, do not set it to higher than 0x8000
.
The ROM printer doesn't appear to work correctly when used from cartridges. If you wish to print to console then you should use --generic-console
to switch to the generic console.
Compiling with -subtype=banked
will enable banking support and the code to automatically load banked code from the attached ESP32/sd card. With this option a .bin
file will be generating along with a series of ..BANK_nn.bin
files.
To specify the filename of the banks loaded, use -pragma-string:basename=xxxx
where xxxx
is the filename which is then appended with .01
... .1d
. For ease of sharing code with other banked systems, z88dk refers to the banks as 1 .. 29
which map into AQ+ banks 35 .. 63
.
Although the text display is 40x25, the top line also controls the border colour. As a result, z88dk deliberately doesn't use the top row of the screen reducing the resolution to 40x24.
Lores graphics by default is 80x72, a more evenly sized 80x48 graphical mode is available by linking -lgfxaq48
.
Compiling with -clib=aqplus
enables Aquarius Plus support which provides additional screen modes.
The screen mode value is passed directly through to the hardware and is bit orientated.
Bit number | Value | Purpose |
---|---|---|
0 | 1 | Enable text mode (40x24) |
1 | 2 | Enable tile map mode |
2 | 4 | Enable bitmap mode (320x200) |
3 | 8 | Enable sprites |
4 | 16 | Text mode priority (i.e. on top of other modes) |
Note that only one of tile map or bitmap mode can be enabled at one time. When text mode is enabled, the --generic-console
preferentially prints to the text layer, however graphics will preferentially plot to the bitmap layer.
Note for the Aquarius+, high resolution graphics are supported and the default lores graphics resolution is 80x48.
Compiling with -clib=aqplus
allows access to fcntl provided by the ESP32 and attached SD storage.
- Mame
- Aquarius+ emulator
- AquaLite (Richard Chandler - maintained)
- Virtual Aquarius (James the Animal Tamer - no longer maintained)
For emulators that can read the .caq format, the following procedure should be used:
- Run the emulator
- From within the emulator, load the loader:
cload
- Press then play the "_filename.caq" cassette file (loader)
- at the "OK" prompt, type
RUN
- Press then play the "filename.caq" cassette file (code)
The easiest way to test with the Aquarius Plus emulator is to copy the generated .bin file into the emulated drive and then:
load "a.bin",14768
call 14768