Polski English Russian
Home Guide RSXes Files Functions Versions Releases Users Download
CP/M MEMDISK IDEDOS

Resident System Extensions

There are special modules for ZXVGS, that increase possibilities and are indepenent from hardware and system code. They are loaded to memory available only for system and reside there.

Existing or developed RSXes
type name description state
syntax extension $B.RZX TR-DOS emulator - access to real files, low compatibility available, limited
BA2.RZX extends BASIC syntax - TOS A.2 compatibility in plans
BD1.RZX extends BASIC syntax - DISCiPLE/+D compatibility
BI1.RZX extends BASIC syntax - Microdrive compatibility
BJR.RZX extends BASIC syntax - ELWRO 800 Junior compatibility
BZX.RZX extends BASIC syntax - allows load and save disk files available
PRG.RZX extends BASIC syntax - ELWRO 800 Junior compatibility in plans
data loader BLK.RZX loads "*.BLK" files, like TAP.RZX available
SCL.RZX TR-DOS emulator - reading file storage, middle compatibility available, limited
TAP.RZX loads "*.TAP" files available
Z80.RZX loads "*.Z80" snapshots available
SNA.RZX loads "*.SNA" snapshots in development
SLT.RZX loads "*.SLT" snapshots with tape traps in development
disk driver DSK.RZX diskimage of ??? in plans
FDI.RZX TR-DOS emulator - diskimage access, full compatibility
MDR.RZX Interface 2 emulator
MGT.RZX diskimages
TRD.RZX TR-DOS emulator - diskimage access, high compatibility
PLUS3DOS.RZX allows to use disks with PLUS3DOS headers
TRDOS.RZX TR-DOS emulator - uses real floppy disk drive
picture loader BMP.RZX allows load and save BMP picture available, very limited
GIF.RZX allows load and save GIF pictures in plans
GRP.RZX allows load and save GRP pictures
IFF.RZX allows load and save ILBM pictures
JPG.RZX allows load and save JPG pictures
PCX.RZX allows load and save PCX pictures
printer driver DESKJET.RZX installs HP DeskJet printer in plans
EPSONFX.RZX installs 9 pins matrix printer available, limited
GP500AS.RZX installs Seikosha GP500AS in plans
LASERJET.RZX installs HP LaserJet printer
PRINTER.RZX currently used printer driver created by user from other
other 51X24.RZX 51 columns screen driver in plans
SAMTAPE.RZX (SAM only) allows load from tape via SAMROM code
ZXVGSVBM.RZX virtual banks manager
(simplified Backus-Nauer form): x, y, z ... represent numerical expressions x$, y$ ... represent alphanumeric expressions c represent any character d represent a single digit (0..9) b represent any BASIC command [A] means 'A can be omitted' {A|B|C} means 'A or B or C' [A...] means 'A can be omitted or repeated many times'
Syntax definitions of BASIC (simplified Backus-Nauer form)
sign meaning
@ a single letter
v, v1, v2 ... numerical variable names
x, y, z number expression (real)
i, j, k number expression (rounded to integer)
e number or string expression
f string expression
[ ] optional part


51X24.RZX - Character Screen Driver


$B.RZX - HoBeta TR-DOS Emulator

Fatal errors

$B.RZX: Unknown function #nn

$B.RZX: Unknown call to #nnnn

$B.RZX: Access to outside file

$B.RZX: Directory not avaiable

RSX is too limited to execute this TR-DOS program. Try to copy it to a "*.SCL" storage or "*.TRD" or "*.FDI" diskimages.


BA2.RZX - Timex Operating System Emulator


BD1.RZX - DISCiPLE/+D Syntax

This RSX not exists now.

At start, if the assign not exist, "D1:" is assigned to current path. Other drives are requested to assign while first use.

SNAPSHOT BUTTON - halt program temporarily & allow selection of:

  1. - 32 column screen-dump;
  2. - Large-size printer dump;
  3. - Screen save;
  4. - 48K Snapshot save;
  5. - 128K Snapshot save;

Key X breaks out of Snapshot and returns to program

These work different from original.

LOAD D1"filename"S Loads 48K Snapshot file

-loads via RSX

LOAD D1"filename"K Loads 128K Snapshot file

-loads via RSX

LOAD Pn Loads the program

-uses fileselector to select program; number ignored

RUN

-calls ZXVGS menu

This isn't supported because of different structure of ZXVGS:


BI1.RZX - Interface 1 Emulator


BJR.RZX - Elwro 800 Junior Emulator


BLK.RZX - Tape Simulation

The same as TAP.RZX. Only file extension is different. No more included in releases. If you have "*.BLK" files, rename them to "*.TAP" or duplicate the TAP.RZX to BLK.RZX.


BMP.RZX - Picture Driver

Loads only monochrome pictures with 256×192 size.


BZX.RZX - Disk Syntax in BASIC

BZX.RZX is simple BASIC extension that provides some new instructions.

Their meaning is the same as tape equvalents. The difference is that name length must be in range 1..127. The asterisk "*" must be placed just after keyword. If no file extension specified, will be added one automaticly:

The command LOAD *f has special use. With directory name changes default directory (like in PLUS3DOS, but here is only one default for both LOAD and SAVE). Remeber that directory name always ends with "/" or ":".

The RSX generates following BASIC errors:


DESKJET.RZX - Ink Printer Driver


DSK.RZX - Diskimage Driver


EPSONFX.RZX - Dot Matrix Printer Driver


FDI.RZX - TR-DOS Diskimage Driver


GIF.RZX - Picture Driver


GP500AS.RZX - Dot Matrix Printer Driver


GRP.RZX - Picture Driver


IFF.RZX - Picture Driver


JPG.RZX - Picture Driver


LASERJET.RZX - Laser Printer Driver


MDR.RZX - Interface 1 Mediaimage Driver


MGT.RZX - Diskimage Driver


PCX.RZX - Picture Driver


PLUS3DOS.RZX - PLUS3DOS Disk Driver


PRG.RZX - Elwro 800 Junior Emulator


PRINTER.RZX - Current Printer Driver

This name is used by ZXVGS while first call to printer functions #F0..#F6. This RSX is generated from a existing printer driver RSX (e.g. EPSONFX.RZX) by changing its name to PRINTER.RZX.


SAMTAPE.RZX - Tape Loader for Sam Coupé


TAP.RZX - Tape Simulation

"TAP.RZX" allows to load "tape files", from "*.TAP" file selected by #AF function.

To load the "*.TAP" file, select it from SHELL.V00. After reset type:
LOAD ""
or you can type:
PRINT USR 8
then load from SHELL.V00 other program, that can load from tape (ARTSTDIO.V00, ZEBRA.V00, COPYNEW1.V00) and load the "*.TAP" contents into it.

To load data from "*.TAP" file, the ZXROM must be patched to call #7E hook code. Contents of IX must be moved into HL, AF (that is moved then to AF') into BC (bit 6 in C can be set to load type byte as chunk contents). Number of bytes to load is in DE (for values greater than chunk length loads also checksum and returns #01 error).

Standard RST #08 error is generated when "*.TAP" files are not supported (like without ZXVGS). Otherwise A returns error information:

#00 - chunk loaded correctly,

#01 - loading error ("*.TAP" file not found or <SPACE> pressed),

#02 - wrong chunk type.

Number of loaded bytes is in BC (should be added to IX), number of not loaded bytes is in DE, last loaded byte in L and computed checksum in H.

Caution. Do not use #7E hook code in programs! It can be only used in ZXROM patch.

!!! Temporaily in L is returned "computed checksum" also.

#7E TAPLOAD

(DE=length,HL=address,B=type,C=flags)(DEHL=standard,BC=readed,A=error)

ZXROM (48kB model) patch for "TAP.RZX". Successful test on 2002-03-21. It is possible to add this changes in PROM and EPROM without erasing. Place this in ZXROM:

       ORG  #0025
#0025  JP   #3881        ;#C3, #81, #38 instead of #FF, #FF, #FF
;not needed for EPROM, see next note

       ORG  #056C
#056C  CALL #0025        ;#CD, #25, #00 instead of #CD, #E7, #05
;or just can be CALL #3881 when empty EPROM is used

;byte at #3880 is readed by Timex Interface to check for ZX128
;or use #3CA1 for ZX128 ROM1
       ORG  #3881        ;here starts area of #FF only
tapld  LD   HL,(#5C68)
       PUSH HL
       LD   HL,(#5C65)
       PUSH HL
       LD   HL,(#5C5F)
       PUSH HL
       LD   H,(IY+0)
       LD   L,C          ;added on 1999-12-08
       PUSH HL
       LD   HL,(#5C3D)
       PUSH HL
       LD   HL,taperr    ;jump there if there's no ZXVGS
       PUSH HL
       LD   (#5C3D),SP
       PUSH IX
       POP  HL
       EX   AF,AF'       ;here are flags and chunk type byte
       PUSH AF
       POP  BC
       EX   AF,AF'       ;placed back on their place
       RST  #08
       DEFB #7E          ;loads DE bytes to HL address
       ADD  IX,BC        ;add amount of loaded to IX
       POP  BC           ;pop "taperr"
       POP  BC           ;pop (#5C3D)
       LD   (#5C3D),BC   ;this was formerly here, other unchanged
       POP  BC           ;pop (IY+0) and C
       POP  BC           ;pop (#5C5F)
       POP  BC           ;pop (#5C65)
       POP  BC           ;pop (#5C68)
       POP  BC           ;pop return addres to tape loading code
       LD   BC,#0022     ;simulation of BC after loading... needs improve!!!
       CP   #01          ;Cy=0 - error
       RET  NC           ;Z=1 - loading error, Z=0 - wrong chunk type
       LD   A,H
       CP   #01
       RET
;when ZXVGS (or "TAP.RZX" file) not found, standard error service was called 
taperr POP  HL
       LD   (#5C3D),HL   ;all these were changed
       POP  HL
       LD   (IY+0),H
       LD   C,L          ;added on 1999-12-08
       POP  HL
       LD   (#5C5F),HL
       POP  HL
       LD   (#5C65),HL
       POP  HL
       LD   (#5C68),HL
       LD   B,#00        ;added on 2002-03-21
       JP   #05E7        ;LD-EDGE-1 - standard tape loading goes on

TRD.RZX - TR-DOS Diskimage Driver


TRDOS.RZX - TR-DOS Disk Driver


TZX.RZX - Tape Simulation


SCL.RZX - Archive TR-DOS Emulator

Fatal errors

SCL.RZX: Unknown function #nn

SCL.RZX: Unknown call to #nnnn

RSX is too limited to execute this TR-DOS program. Try to copy it to a "*.$B" files or "*.TRD" or "*.FDI" diskimages


SLT.RZX - Snapshot Loader


SNA.RZX - Snapshot Loader


Z80.RZX - Snapshot Loader

To load "*.Z80" snapshot just select it from SHELL.V00. The loading takes a bit of time, as the file is compressed. White lines on the border and buzzer noise mean that the decompression is in progress. After correct load main menu appears, what is inteded to use pOke option. Please select Continue to run the snapshot.

Not all snapshots are loadable with Z80.RZX. Remember that this data form is dedicated to emulators, not for real hardware. Except extra hardware there can be problem with interrupts. ZXVGS has a limitation here - the interrupt mode (IM) is selected on the ground of I register contents. For I=#3F ZXVGS selects the IM1, while for other I values - the IM2. But the snapshot can have activated IM1 with I<>#3F! In this case ZXVGS sets IM2.

The Z80.RZX opens ZX128 banks and AY-3-891X if possible.

Fatal errors

Z80.RZX: Wrong file structure

RSX doesn't understand the contents of file. Perhaps not snapshot (one of CP/M assemblers uses such extension), snapshot is dameged or contains new features unknown to the RSX.

Z80.RZX: No I'face 1 support

Z80.RZX: SamRam not available

RSX can't execute snapshots with above hardware activated.

Z80.RZX: ZX128 banks required

Your hardware not allows to switch memory banks with #7FFD port, what requires the snapshot.

Z80.RZX: AY-3-8910/2 not found

Snapshot requires this sound chip in ports #BFFD and #FFFD and you do not have one or the chip is disabled inside ZXVGS.


ZXVGSVBM.RZX - Virtual Bank Manager


© 05-07-13 22:14:41 Jarek Adamski zxvgs@yarek.com, http://zxvgs.yarek.com