Platform Laser 350 500 700 - z88dk/z88dk GitHub Wiki

VTech Laser 350/500/700.

Hardware summary

  • Z80 @3.694700 MHz
  • 32k ROM
  • 16k banking model in all 4 segments
  • Banked graphics memory (custom ASIC)
  • 16/64/128k memory available

Classic library support

  • Native console output
  • Native console input
  • ANSI vt100 engine
  • Generic console
    • Redefinable font (mode 2)
    • UDG support (mode 2)
    • Paper colour (mode 0, 2)
    • Ink colour (mode 0, 2)
    • Inverse attribute (all modes)
    • Bold attribute (mode 2)
    • Underline attribute (mode 2)
  • Lores graphics
  • Hires graphics
  • PSG sound
  • One bit sound
  • Inkey driver
  • Hardware joystick
  • File I/O
  • Interrupts

Compilation

zcc +laser500 world.c -create-app -Cz--audio

Will create a file that will load on real hardware.

zcc +laser500 world.c -create-app -Cz--audio -Cz--fast

Will create a file that will load on the Mame emulator (Mame reads/writes files with a different speed to the real hardware)

To load and run the file enter:

cload
run

Emulator

In addition to Mame, laser500emu is available. To load a file in this web based emulator, drag and drop the generated ".bin" file onto the display and then type run to start.

Features

Generic console

The generic console is enabled by default on this port. The following screen modes are supported:

  • Mode 0 - 40x24, 16 colours
  • Mode 1 - 80x24, 2 colours
  • Mode 2 - 40x24, 16 colours hires, 320x192

To select the colours in mode 1, you can use textbackground()/textcolor() to select background/foreground colours. They will only take effect the next time the screen is cleared.

Mode 2 is hires 320x192x16, in this mode the generic console supports custom fonts and 128 UDGs.

Graphics

Graphical functions are supported in all 3 modes. The library automatically switches the implementation based on the current screen mode. When plotting the values set via textbackground()/textcolor() are respected.

In mode 2, the colour resolution is 1x8 (hires) pixels, for mode 0 the colour resolution is 2x2 (lores) pixels.

Limitations

  • The generated program will not work on the unexpanded (16k) VZ350
  • Scanning the keyboard temporarily disables interrupts

Maths Library

The Laser500 port supports the single precision (32 bit) Microsoft float library. This utilises ROM routines and provides a fairly compact alternative to the standard 48 bit maths libraries normally used by z88dk.

This mode is only available when using sccz80 as the compiler.

To compile:

zcc +laser500 -fp-mode=mbf32 fp.c -lmbf32

Reference