...
However some useful Z88 software does not function on the newer OZ versions, since authors were known to deviate from the Cambridge developer guidelines. Vision2 VT100 terminal is one such application. Using a Z88 as a portable serial terminal, with its full size keyboard and long battery life, remains a useful proposition even today.
Once Historically, once a Z88 had a Slot 0 flash modification and an OZ upgrade was performed, it could no longer run legacy applications… until now!
Legacy OZ Version Selection
One of the most cumbersome constraints of OZ 3.0 and earlier was the dependence on a RAM card in Slot 1 for Expanded mode, which Vision requires. However, by using OZ 4.0 on a Z88 with an internal RAM upgrade we can achieve a fully backward compatible Expanded machine without needing any other cards.
OZ ROM Modifications
By copying the card header and the Application Front DOR to the end of the 512KB flash memory, editing the card size, and by amending the last of the linked application DORs in the OZ ROM image - we can add extra applications to the Index. We can also fix several bugs in OZ 4.0 at the same time. Both processes are explained on Dennis Gröning's website.
As was done with OZ 4.3 onwards, we can then add a file area to make use of the remaining unused flash memory. We can pre-populate this with the BBC BASIC versions of Installer, RomCombiner, and RomUpdate. These have the advantage of being usable without needing to be blown to a card and, since we will be running OZ 4.0, their requirement for an Expanded Z88 will always be met (assuming a Slot 0 RAM upgrade).
The simplest way to create the file area data is to use OZvm emulator, add a new flash card, format a file area, add the files, eject the card, and choose to save the 16KB banks.
Bundled Tools
With 512KB of flash memory available, we can add software to address many of the shortcomings of early OZ versions:
XY-Modem - for fastest file transfers over serial.
EazyLink2 - fallback option for reliable serial comms.
FlashStore - for managing flash file storage.
RomUpdate - for simple application ROM blowing to flash, and to update OZ (to return to OZ 4.7.1 or OZ 5.0).
RomCombiner - for managing multiple application ROMs on flash, and erasing cards.
Installer - to install and run application ROMs from RAM (no flash card needed, but a RAM card is required).
...
Vision2 - a VT100, VT102, VT220, and VT320 terminal emulator. The main reason I embarked on this project.
SpellMaster Spell-Master - a companion to PipeDream which would be very useful to have available at all times.
ROM Modifications
By copying the card header and the Application Front DOR to the end of the 512KB flash memory, editing the card size, and by amending the last of the linked application DORs in the OZ ROM image - we can add extra applications to the Index. We can also fix several bugs in OZ 4.0 at the same time. Both processes are explained on Dennis Gröning's website.
...
,
...
without having to dedicate an entire card to it.
Installer Constraints
Note that to use RAM apps, Installer will require a dedicated RAM card because OZ 4.0 is not capable of detecting applications installed to the RAM portion of a hybrid RAM/flash card, nor in Slot 0 RAM. Installer cannot in fact use hybrid card RAM but, even were it possible, OZ 4.0 would only evaluate the Front DOR at bank $3f (63) at the top of the card (in flash), and that would contain no reference to any RAM app. The newer OZ versions have been modified to also scan bank $1f (31) of hybrid cards (top of RAM).
...
Vision's code binds its ROM banks using static addressing which fails when not running from a 32KB Eprom. Furthermore it can only run in card slots 2 or 3. It needed to have this fixed prior to inclusion in this ROM image:Vision2 Fix Patch
Likewise SpellMaster Spell-Master has two banks of ROM code but it somewhat unconventionally pages in six more banks of dictionary data. It uses static bank addressing (relative only to the current card slot) which also needed to be converted to fully relative addressing prior to inclusion: SpellMaster Spell-Master Fix Patches
XY-Modem was able to fit within some unused space in the top bank of SpellMasterSpell-Master, but it needed to be recompiled with a new org address to achieve this.
Flashing the ROM
Note |
---|
This ROM image is intended for an internal 512KB flash memory modification. It is confirmed working on a real Z88. Proceed at own risk! |
ROM image for OZvm emulator:
View file | ||
---|---|---|
|
Downgrade files:
View file | ||
---|---|---|
|
OZ version | Downgrade Method | Notes |
---|---|---|
5.0 | Index | None |
4.7.1 | Index | The screen may occasionally stay off after the write to flash and the Z88 may not reset automatically. |
< 4.7.1 |
(the Z88 application version of RomUpdate does not work here) | Copy both romupdate.bas and romupdate.crc to RAM. |
Downgrade ROM Manifest
Code Block | ||
---|---|---|
| ||
CFG.V3 ; OZ ROM for slot 0 and total of 24 banks to update. OZ.0,24 ; Bank file, CRC, destination bank in slot 0. "ozs0-400.32",$9de67a39,$00 "ozs0-400.33",$1d32d297,$01 "ozs0-400.34",$65ed5623,$02 "ozs0-400.35",$e2e022c6,$03 "ozs0-400.36",$8758704a,$04 "ozs0-400.37",$b860cf23,$05 "ozs0-400.38",$d3104e3f,$06 "ozs0-400.39",$5c5de229,$07 "eazylnk-524.40",$9732f962,$08 "flashst-198.41",$cfa6c666,$09 "spell.42",$96ee9077,$0a "spell.43",$05f85bc3,$0b "spell.44",$ff58c545,$0c "spell.45",$ebfef5c3,$0d "spell.46",$f3badaf9,$0e "spell.47",$3a7c540b,$0f "spell.48",$853282d3,$10 "spell-xymdm.49",$c84cab67,$11 "vision2-206.50",$eca18d37,$12 "vision2-206.51",$7cbc18ea,$13 "file-area.52",$7c344d49,$14 "file-area.53",$ffdd48b4,$15 "file-area.54",$4a2d56c7,$16 "ozs0-400.63",$ffce2400$d5daddb3,$1f |