Platform VZ200 - z88dk/z88dk GitHub Wiki

Hardware Summary

  • z80 @ 3.57950 MHz (VZ200), 3.546894 (VZ300)
  • MC6847 with 2k VRAM
  • 6k RAM (VZ200), 16k RAM (VZ300) + RAM expansions

Classic library support

  • Native console output
  • Native console input
  • ANSI vt100 engine
  • Generic console
    • Redefinable font
    • UDG support
  • Lores graphics (64x32)
  • Hires graphics (128x64)
  • PSG sound
  • One bit sound
  • Inkey driver
  • Hardware joystick
  • File I/O
  • Interrupts
  • RS232

Quick start

zcc +vz -lm -o adventure.vz adv_a.c

-or-

zcc +vz -clib=ansi -lm -o adventure.vz adv_a.c

Using The "-subtype=basic" option a BASIC loader block is embedded in the CRT0 stub, so that the resulting binary file is ready for the "RUN" command. By default an auto-run binary block is created.

To get a WAV version of the program it is necessary to add the "-create-app" and the "-Cz--audio" options. To tweak the speed and gain little time "-Cz--fast" is available.

Firmware problems

When printing characters using the firmware routines, the keyboard is also read, a character printed on screen and a beep emitted. To avoid this behaviour:

  • Compile with the generic console (--generic-console)
  • Consider using the "inkey" keyboard routines: (--hardware-keyboard)

Using the options above, the firmware is avoided and your application will hopefully behave as expected.

Additional Library

The VZ library is available for compatibility with older programs written with different toolchains. It has a parallel way of interacting with the (in particular) graphics hardware.

Graphics modes

The generic console implementation for the VZ supports 2 different screen modes:

  • Mode 0: 32x16 text + 64x32 block graphics
  • Mode 1: 128x64 graphics

In Mode 1 the standard 8x8 font is somewhat large so the putc46 driver might be more suitable. The z88dk graphics library detects which screen mode is active and plots accordingly.

The screenmode can be changed using either console_ioctl() as with other targets or the VZ specific vz_mode().

Appmake extras

Appmake is able to convert the compiled program from VZ to the newer CAS format; optionally a wav can be created for loading onto the original hardware, even in a slightly 'faster' mode.

To compile a program and generate a CAS and a WAV file:

zcc +vz -create-app -o rpn rpn.c -Cz--audio

To use appmake as a dumb converter and speed-up a little the audio stream:

appmake +vz -b airstrip.vz --audio --fast

Emulators

The port has been testing using both the VZ emulator and Mame. In Mame, the "snapshot dump" files is the default ".vz" output file generated by z88dk

Links