Ira Goldklang's TRS-80 Revived Site

TRS-80 Revived Site by Ira Goldklang's is an archive of everything related to the Tandy Radio Shack TRS-80 microcomputer lines. Site contains emulators, programs, manuals, books, patches, games, hints, discussions, questions, forums, and tons more.

TRS-80 Zaps/Patches/Pokes/Tips – NEWDOS/80 v2.0 Unofficial Zaps

by @ 5:47 pm on May 11, 2009.
[Model I]      [Model III]
TRS-80 Model I NEWDOS/80 Version 2 *Unofficial* ZAPS
    
[Model IV]      [Model 100]




Add “,B” parameter to PDRIVE to Change in Resident RAM Only – Model I
This zap allows temporary ‘in memory’ change of the PDRIVE table thereby not altering the disc record.

Use PDRIVE as normal except ,B is substituted instead of the regular ,A in the PDRIVE command viz: PDRIVE,0,1=7,B.

This will alter the PDRIVE configuration in memory (you can leave the write-protect tab on) and you can do this as many times as required for the next time you RESET your PDRIVE table will not have been affected.

You could then copy SYS16/SYS onto other work discs in use.

SYS16/SYS,02,FB     change  FE 41 21 20 06
                        to  C3 C0 51 00 00

SYS16/SYS,04,D4     change 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
                           00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
                        to FE 41 12 20 03 C3 F1 4F FE 42 C2 F7 4F 3E 41 12 77
                           C5 E5 01 00 07 21 E2 4D 71 23 10 FC E1 C1 C3 F1 4F
							



Add “,B” parameter to PDRIVE to Change in Resident RAM Only – Model III
This zap allows temporary ‘in memory’ change of the PDRIVE table thereby not altering the disc record.

Use PDRIVE as normal except ,B is substituted instead of the regular ,A in the PDRIVE command viz: PDRIVE,0,1=7,B.

This will alter the PDRIVE configuration in memory (you can leave the write-protect tab on) and you can do this as many times as required for the next time you RESET your PDRIVE table will not have been affected.

You could then copy SYS16/SYS onto other work discs in use.

SYS16/SYS,02,E8     change  7E FE 41 12 20
                        to  7E C3 CB 51 20

SYS16/SYS,04,DF     change 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
                           00 00 00 00 00 00 00 00 00 00 00 00 00
                        to FE 41 12 20 03 C3 E0 4F 3D FE 41 20 F8 C5 E5 01 00
                           07 21 D3 4D 71 23 10 FC E1 C1 18 E3 02
							



Boot In Lower Case – Model III
SYS0/SYS,11,2F      change  28 05
                        to  00 00
							



Boot in 4MHz on the Model 4 – Model 4
SYS0/SYS,13,B4 change  00 00 00 00 00 00 00 00 00 00 00 00
                   to  3A 10 42 F6 40 32 10 42 C3 B6 48 00

SYS0/SYS,11,DF change  C3 B6 48
                   to  C3 A8 50

Also execute the command SYSTEM,0,BJ=2
							



Correct date & time updating on warm boot – Model 4
SYS0/SYS,02,20 change  1E 20 0D 36 1E 21
                   to  19 20 0D 36 19 21
							



Allow the date in DD/MM/YY format – Model Unknown
SYS0/SYS,12,2B change  20 ED
                   to  00 00

SYS0/SYS,12,3E change  20 ED
                   to  00 00

SYS0/SYS,13,4E change  4D 4D 2F 44 44 2F
                   to  44 44 2F 4D 4D 2F
							



Allow the date in DD/MM/YY in the FORMAT commands – Model Unknown
SYS6/SYS,12,45 change  32
                   to  34
							



Display DIRectories without Clearing the Screen – Model Unknown
SYS8/SYS,00,DE change  CC 8F
                   to  21 8F
							



Change Ampersand Default from Octal to Hex – Model Unknown
     REWRITE OF NEWDOS/80 DISK BASIC AMPERSAND (&) ROUTINE
                     by Gil Spencer

     I never think in octal.  It's hard enough to work in
binary, hex, and decimal.  It always seemed to me that the
default for the '&' function should be hex, NOT octal.  I
finally dug out the source code (from Apparat's Disk BASIC)
which I found in SYS20/SYS.  My rewrite fits within the
required extra space.  Although a quantity of bytes are
changed, this is because the code is "re-arranged" more than
because it is "re-written".
     First, here is the Disk BASIC (&) routine found in
Apparat's NEWDOS/80 version 2.0 - specifically SYS20/SYS,
addresses 54C5H-5503H.  If you are using SUPERZAP, address
54C5H is found at FRS 2, byte D1H and address 5503H is at
FRS 3, byte 13H.  Note that the four bytes at FRS 3, bytes 06H-
09H (which are 01 00 FA 54) are loader codes and must NOT be
changed.

54C5          00100         ORG     54C5H
54C5 D7       00110         RST     10H
54C6 4F       00120         LD      C,A
54C7 110000   00130         LD      DE,0000H
54CA 79       00140 Q54CAH  LD      A,C
54CB FE48     00150         CP      48H
54CD 2022     00160         JR      NZ,Q54F1H
54CF D7       00170         RST     10H
54D0 EB       00180         EX      DE,HL
54D1 D630     00190         SUB     30H
54D3 FE0A     00200         CP      0AH
54D5 3808     00210         JR      C,Q54DFH
54D7 D611     00220         SUB     11H
54D9 FE06     00230         CP      06H
54DB 3022     00240         JR      NC,Q54FFH
54DD C60A     00250         ADD     A,0AH
54DF 29       00260 Q54DFH  ADD     HL,HL
54E0 3807     00270         JR      C,Q54E9H
54E2 29       00280 Q54E2H  ADD     HL,HL
54E3 3804     00290         JR      C,Q54E9H
54E5 29       00300         ADD     HL,HL
54E6 3801     00310         JR      C,Q54E9H
54E8 29       00320         ADD     HL,HL
54E9 DAB207   00330 Q54E9H  JP      C,07B2H
54EC 85       00340         ADD     A,L
54ED 6F       00350         LD      L,A
54EE EB       00360         EX      DE,HL
54EF 18D9     00370         JR      Q54CAH
54F1 0E4F     00380 Q54F1H  LD      C,4FH
54F3 B9       00390         CP      C
54F4 2801     00400         JR      Z,Q54F7H
54F6 2B       00410         DEC     HL
54F7 D7       00420 Q54F7H  RST     10H
54F8 EB       00430         EX      DE,HL
54F9 D630     00440         SUB     30H
54FB FE08     00450         CP      08H
54FD 38E3     00460         JR      C,Q54E2H
54FF CD9A0A   00470 Q54FFH  CALL    0A9AH
5502 EB       00480         EX      DE,HL
5503 C9       00490         RET

     This is the REWRITE of the Disk BASIC ampersand (&)
routine.  Now the octal argument MUST be specified by '&O'.
Hex argument MAY be specified by '&H'.  No suffix (i.e. '&')
now defaults to hex rather than octal.

54C5          00100         ORG     54C5H
54C5 D7       00110         RST     10H
54C6 4F       00120         LD      C,A
54C7 110000   00130         LD      DE,0000H
54CA 79       00140 Q54CAH  LD      A,C
54CB FE4F     00150         CP      4FH
54CD 2828     00160         JR      Z,Q54F7H
54CF 0E48     00170         LD      C,48H
54D1 B9       00180         CP      C
54D2 2801     00190         JR      Z,Q54D5H
54D4 2B       00200         DEC     HL
54D5 D7       00210 Q54D5H  RST     10H
54D6 EB       00220         EX      DE,HL
54D7 D630     00230         SUB     30H
54D9 FE0A     00240         CP      0AH
54DB 3808     00250         JR      C,Q54E5H
54DD D611     00260         SUB     11H
54DF FE06     00270         CP      06H
54E1 301C     00280         JR      NC,Q54FFH
54E3 C60A     00290         ADD     A,0AH
54E5 29       00300 Q54E5H  ADD     HL,HL
54E6 3807     00310         JR      C,Q54EFH
54E8 29       00320 Q54E8H  ADD     HL,HL
54E9 3804     00330         JR      C,Q54EFH
54EB 29       00340         ADD     HL,HL
54EC 3801     00350         JR      C,Q54EFH
54EE 29       00360         ADD     HL,HL
54EF DAB207   00370 Q54EFH  JP      C,07B2H
54F2 85       00380         ADD     A,L
54F3 6F       00390         LD      L,A
54F4 EB       00400         EX      DE,HL
54F5 18D3     00410         JR      Q54CAH
54F7 D7       00420 Q54F7H  RST     10H
54F8 EB       00430         EX      DE,HL
54F9 D630     00440         SUB     30H
54FB FE08     00450         CP      08H
54FD 38E9     00460         JR      C,Q54E8H
54FF CD9A0A   00470 Q54FFH  CALL    0A9AH
5502 EB       00480         EX      DE,HL
5503 C9       00490         RET
							

Comments are closed.

[Ira Goldklang's TRS-80 Revived Site is proudly powered by WordPress.]