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.
|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|
|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|
|@||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|
|[ ]||optional part|
|$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.
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:
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
-calls ZXVGS menu
This isn't supported because of different structure of ZXVGS:
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.
Loads only monochrome pictures with 256×192 size.
BZX.RZX is simple BASIC extension that provides some new instructions.
LOAD *f CODE [i][,j]
LOAD *f DATA @[$]()
LOAD *f SCREEN$
SAVE *f [LINE i]
SAVE *f CODE i,j
SAVE *f DATA @[$]()
SAVE *f SCREEN$
VERIFY *f CODE [i][,j]
VERIFY *f DATA @[$]()
VERIFY *f SCREEN$
Their meaning is the same as tape equvalents. The difference is that name
length must be in range 1..127. The asterisk "
be placed just after keyword. If no file extension specified, will be added
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:
2 Variable not found- variable used in command is undefined;
8 End of file- reading from file was impossible or wrong header type;
C Nonsense in BASIC- unrecognized syntax;
F Invalid file name- name length is outside range 1..127 characters or directory name is used with command different than
O Invalid stream- writing to file was impossible;
R Tape loading error- file or directory not found or verification fail.
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.
"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:
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.
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
|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
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.
|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.