TRS-80 NEWDOS/80 2.0 Zaps



CAREFULLY STUDY chapter 11 of NEWDOS/80 documentation for instructions on how to apply zaps.

Some modules have multiple versions with the zaps different in each version. Use the verify to determine which version you have and apply the appropriate zap(a). If you have a version different from any listed (i.e., the verify(s) do not match. contact the program's distributor or Apparat). Apparat is tryin to get the program creator/maintainer/distributor to create and distribute the necessary zaps to run with NEWDOS/80, Version 2, but where this does not occur and for widely used programs, Apparat will generate any necessary zaps. if Apparat decides to generate the zaps and does not have your particular version you will be asked to send the version you have on a diskette (as a gift to' Apparat, see chapter 11) to Apparat so that Apparat may determine the appropriate zaps; Apparat will not seek out your version from another source, and will not create a zap from a paper listing.
* * * NEWDOS/80 Version 2.0 Model I ZAP Index * * *
(Index listed in order of Filename)
ZAP#    TypeAreaProgramReference
05Mandatory    UserAPL80/CMDAPL80/CMD
80MandatoryUtilityASPOOL/MAS*ASP,S function
14MandatoryBASIC    BASIC/CMDBasic Editing
21MandatoryBASICBASIC/CMDMarked & Fixed Item File Processing
52MandatoryBASICBASIC/CMDCLOSE command
87MandatoryBASICBASIC/CMDCMD"O" function
53MandatoryUserBRUM/CMDMicrosoft BASIC COMPILER v 5.23
19MandatoryUtilityCHAINBLD/BAS    Version 1 Format
74MandatoryUtilityCHAINBLD/BASNon-Displayed Character
53OptionalUserDIR/SYSMicrosoft BASIC COMPILER v 5.23
27MandatoryUtilityDISASSEM/CMDRTD Option
10MandatoryUserDSMB/CMDRacet’s DSM module DSMB/CMD
01MandatoryUserEDIT/CMDMicrosoft’s EDIT/CMD
06OptionalUtilityEDTASM/CMDDisable LC to UC Conversion
22MandatoryUtilityEDTASM/CMDCursor Display
36InformationUtilityEDTASM/CMDDocumentation errors
36InformationUtilityEDTASM/CMDTape I/O for Mod III disabled
48MandatoryUtilityEDTASM/CMDFilespec Response &
54MandatoryUtilityEDTASM/CMDObject Code to Cassette
59MandatoryUtilityEDTASM/CMDCorrect & Restate ZAP #54
86MandatoryUtilityEDTASM/CMDFile Close Problem
37MandatoryUserFIREUP/CMDBIONIC BASIC
09MandatoryUserIBLOAD/CMDRacet’s INFINITE BASIC
08MandatoryUserINITRadio Shack’s Model I PROFILE
37MandatoryUserINSTALL/CMDBIONIC BASIC
53OptionalUserL80/CMDMicrosoft BASIC COMPILER v 5.23
58MandatoryUtilityLMOFFSET/CMDObject Code Block Load
81MandatoryUtilityLMOFFSET/CMDAppendage
02MandatoryUserPENCIL/CMDELECTRIC PENCIL
26MandatoryUserPENCIL/CMDELECTRIC PENCIL
39MandatoryUserPENCIL/CMDELECTRIC PENCIL
08OptionalUserPROFILE/CMDReenable Interrupts
37MandatoryUserREMOVE/CMDBIONIC BASIC
34MandatoryUserRS COBOL/CMDRyan-McFarland Corp COBOL v l.3B
34MandatoryUserRUNCOBOL/CMDRyan-McFarland Corp COBOL v l.3B
83MandatoryUserSCRI7/CTLRadio Shack’s Model I SUPERSCRIPSIT
51InformationUserSCRIPSITModel I Cassette I/O
83MandatoryUserSCRIPSIT/CMDRadio Shack’s Model I SUPERSORIPSIT
03MandatoryUserSCRIPSIT/LCRadio Shack’s Model I SCRIPSIT
38OptionalUserSCRIPSIT/LCDouble Density & END command
03MandatoryUserSCRIPSIT/UCRadio Shack’s Model I SCRIPSIT
38OptionalUserSCRIPSIT/UCDouble Density & END command
18MandatoryUtilitySUPERZAP/CMDDM,P functions
33MandatoryUtilitySUPERZAP/CMDDM & F functions
69MandatoryUtilitySUPERZAP/CMDDMDB function
04OptionalDOSSYS0/SYSIncrease Drive Power-On Delay
20MandatoryDOSSYS0/SYSROUTE command
43MandatoryDOSSYS0/SYSROUTE command
55OptionalDOSSYS0/SYSPatch LC Keyboard Modification
60MandatoryDOSSYS0/SYSDisk Status Register Reads
62MandatoryDOSSYS0/SYS4445H call to DOS
77OptionalDOSSYS0/SYSDouble Density Write Precomp Logic
40MandatoryDOSSYS2/SYSDirectory Entries
35MandatoryDOSSYS30/SYSCLOSE & KILL commands
46OptionalDOSSYS3/SYS‘JKL’ : Graphics to Epson Printers
12OptionalDOSSYS6/SYSDouble Density Format Sensitivity
13OptionalDOSSYS6/SYSTo allow COPY of TRSDOS 1.2 (Mod 3)
15MandatoryDOSSYS6/SYSCOPY Format 5
17MandatoryDOSSYS6/SYSCOPY & FORMAT: DDSL parameter
23MandatoryDOSSYS6/SYSGranule Lockout Table in Directory
24MandatoryDOSSYS6/SYSFORMAT & COPY commands
28MandatoryDOSSYS6/SYSFORMAT: PFST parameter
31MandatoryDOSSYS6/SYSTRSDOS 2.3B (I) or TRSDOS 1.3 (III)
32MandatoryDOSSYS6/SYSTRSDOS 2.3B (I) or TRSDOS for Mod 3
44MandatoryDOSSYS6/SYSSYSTEM: 3M parameter disabled
47MandatoryDOSSYS6/SYSPDRIVE: 8 Inch, Double Density
56MandatoryDOSSYS6/SYSCOPY: CBF param & Model III TRSDOS
57MandatoryDOSSYS6/SYSCOPY command
76MandatoryDOSSYS6/SYSRadio Shack’s Double Density Board
77OptionalDOSSYS6/SYSDouble Density Write Precomp Logic
78OptionalDOSSYS6/SYSModel I TRSDOS 2.7DD Diskettes
79MandatoryDOSSYS6/SYSCOPY: TRSDOS 2.3B or Higher
85MandatoryDOSSYS6/SYSCOPY Format 5
49MandatoryDOSSYS8/SYSDIR $ or DIR $0
61OptionalDOSSYS8/SYSDIR: Remote Terminal Operators
64MandatoryDOSSYS9/SYSChaining: /./5Y function
42MandatoryBASICSYS11/SYSRENUM function
45MandatoryBASICSYS12/SYSREF$ function
20MandatoryDOSSYS14/SYSROUTE command
50OptionalDOSSYS14/SYSPRINT & LIST: Control Characters
68MandatoryDOSSYS14/SYSCREATE: Old File’s EOF
16MandatoryDOSSYS16/SYSPDRIVE error
31MandatoryDOSSYS16/SYSTRSDOS 2.3B (I) or TRSDOS 1.3 (III)
47MandatoryDOSSYS16/SYSPDRIVE: 8 Inch, Double Density
76MandatoryDOSSYS16/SYSRadio Shack’s Double Density Board
44MandatoryDOSSYS17/SYSSYSTEM: BM parameter disabled
57MandatoryDOSSYS17/SYSCOPY command
14MandatoryBASICSYS18/SYSBasic Editing
45MandatoryBASICSYS18/SYSREF$ function
75MandatoryBASICSYS18/SYSREF= statement
66MandatoryBASICSYS19/SYSDynamic MERGE
70MandatoryBASICSYS21/SYSCMD"O" function
87MandatoryBASICSYS21/SYSCMD"O" function
11MandatoryUserVC/CMDRadio Shack’s Model I VISICALC
25MandatoryUserVC/CMDRadio Shack’s Model I VISICALC
67MandatoryUserVC/CMDModel III VISICALC v VC-150Y0-T83
71MandatoryUserVC/CMDModel III VISICALC v VC-150Y0-T83
07InformationDOSCommandATTRIB: LRL=xxx Parameter
07InformationDOSCommandROUTE: display of routes
07InformationDOSCommandCOPY: DFO parameter
07InformationDOSCommandFORMAT: RWF parameter
29InformationDOSCommandPDRIVE & COPY: Double Density
29InformationDOSCommandPDRIVE: OMIKRON & 8 Inch Drives
30InformationDOSCommandModel I & Model III Data Exchange
30InformationDOSCommandCOPY: Formats 5 & 6 discussed
36InformationDOSCommandDocumentation Correction
41InformationDOSCommandROUTE: Documentation Correction
41InformationDOSCommandAutomatic Density Recognition
41InformationBASICCommandCMD"O": explanation
41InformationDOSCommandSYSTEM: AX parameter correction
51InformationDOSCommandSYSTEM: AJ=N explanation expanded
63InformationDOSCommandDIR & FREE Error Messages
63InformationUserCommandProgram Parameters
65InformationDOSCommandCOPY: Format 6
65InformationDOSCommandGAT Overflow & CBF with FMT COPY
65InformationDOSCommandLIST & PRINT: no graphics
72InformationDOSCommandAccessing files on Model III TRSDOS
73InformationDOSCommandAccessing Model I TRSDOS 2.3B & Up
82InformationDOSCommandLC,Y & LC,N without Disk I/O
84InformationBASICCommandCMD"O" & Multi-Dimension Arrays
63InformationBASICCommandsLOAD, RUN, MERGE & RENUM
63InformationDOSCommandsFORMS & SETCOM omission in Model I
63InformationDOSFeaturesMain Memory, High Memory, MINI-DOS
07InformationDOSGeneralReserved ZAP Areas in NEWDOS/BO
41InformationDOSGeneralCassette I/O
51InformationDOSGeneralTRSDOS 2.3B (I) & TRSDOS 1.3 (III)
51InformationDOSGeneralChain Filename & /JCL extension
41InformationDOSHardwareCPU Speed Up Modifications
63InformationDOSHardwareLNW-80 Computer Users
65InformationDOSHardwareCPU Speed Up Modifications
07InformationDOSMini-dosIllegal under DOS-CALL
30InformationBASICUtilityRENUM usage


******** ZAP 001 ******** 08/04/81 ******** V2M1
Mandatory zaps to Microsoft's EDIT/CMD to enable it to run with NEWDOS/80. You must maintain separate copies of this module for each of TRSDOS and NEWDOS as the module for one system is incompatible with the that for other though the files they manipulate are compatible. These changes are due to the FCB's NEXT and EOF fields being defined in NEWDOS differently than in TRSDOS.
EDIT/CMD,38,E8    change 7E E6 7F 7E 21 FE FF CA 58 78 EE 80 87 DA 5D 78 to
                         7E 60 69 D6 01 30 01 2B 29 07 30 01 23 18 04 78

EDIT/CMD,32,A2    change 78 E6 7F C2 28 72 78 EE
                    to   78 D6 01 30 08 18 04 EE
      

******** ZAP 002 ******** 08/04/81 ******** V2M1
Mandatory zap for PENCIL/CMD to disable the alteration of a DOS location by PENCIL. This alteration of DOS by PENCIL is not needed in either NEWDOS/80 or NEWDOS/21.
PENCIL/CMD,00,AE    change  F3 32 9B 46 C3
                        to  F3 00 00 00 C3
       
Apparat has been advised that the following two zaps to PENCIL/CMD will (1) allow PENCIL/CMD to read the directory properly and (2) enable the use of MINI-DOS under PENCIL/CMD.
PENCIL/CMD,05,60    change  58 23 22
                    to      58 00 22

PENCIL/CMD,00,61    change  54 22 16 40 21
                    to      54 00 00 00 21
       
This latter zap prevents PENCIL/CMD from using its own keyboard routine, thereby defaulting back to NEWDOS/80's wherein 'DFG' invoking MINI-DOS can be spotted.

******** ZAP 003 ******** 08/04/81 ******** V2M1
Mandatory zap to Radio Shack's programs SCRIPSIT/UC and SCRIPSIT/LC to run under NEWDOS/80 (and NEWDOS/21). The user should maintain separate copies for NEWDOS and for TRSDOS as the programs for each system are incompatible with the other system even though the files they manipulate are compatible. The first 3 changes are necessary because of the different way the PC3's NEXT and EOF fields are maintained. If you are running NEWDOS and files appear to load .short one sector, check to make sure these zapa are in. The 4th zap causes DOS' HIMEM address value in 4049H - 404AH to be used as SCRIPSIT's high memory. The 5th zap re-enables the interrupts so MINI-DOS can be invoked from SCRIPSIT.
SCRIPSIT/UC,11,75 and SCRIPSIT/UC,11,75
change 47 00 CD 6E 7A 4F
    to 47 00 3A B9 7C 4F

SCRIPSITJ/UC,11,FB and SCRIPSIT/LC,11,FB
change B7 C4 EF 5D 79
to     B7 32 B6 7C C4

SCRIPSITJ/UC,12,00 and SCRIPSIT/LC,12,00
change 32 B9 7C 11
    to EF 5D 00 11

SCRIPSIT/UC,00,63 and SCRIPSIT/LC1,00,63
change 7C 21 FF 00 25 7E 2F 77 AE 20 F9 22
to     7C 2A 49 40 00 00 00 00 00 00 00 22

SCRIPSIT/UC,00,C3 and SCRIPSIT/LC,00,0
change 57 F3 ED
to     57 00 ED
      

******** ZAP 004 ******** 08/04/81 ******** V2M1
Optional zap to increase drive power on delay to the full one second used in older DOSs. NEWDOS/80 waits only 112 second for the the drives to attain rotational speed during power on select. If you feel the drives would perform better with the longer delay, apply this zap.
SYS0/SYS,04 C3    change     06 80 CB     to     06 FF CB
      

******** ZAP 005 ******** 08/04/81 ******** V2M1
Mandatory zap for APL80/CMD to enable it to run with NEWDOS/80. AFL80/CMD references a routine internal to DOS that in in a different location in NEWDOS/80 than it was for TRSDOS and NEWDOS/21.
APL80/CMD,12,74    change  21 A2 4B    to      21 B4 4B

APL80/CMD,14,52    change  21 A2 4B    to      21 B4 4B
      

******** ZAP 006 ******** 08/04/81 ******** V2M1 ********
Optional zap to EDTASM/CMD to disable the lower case to upper case conversion done by EDTASM's keyboard input routine. Most functions within EDTASM will still require upper case, but comments and operands enclosed in single quotes (for DEFM and DEFB) will accept lower case.
EDTASM/CMD,28,El   change  FE 61 D8    to      FE 80 D8
      

******** ZAP 007 ******** 08/04/81 ******** V2M1
This is information rather than an actual zap.
1. Where possible, the NEWDOS/80 modules have reserved zap areas. Apparat purposely did not mention them in its documentation as it did not want to draw attention to them. Users are hereby warned that Apparat will preempt these areas without preliminary notice and in its zap verifies will expect these areas to contain zeroes. Users who apply non-Apparat zaps into these areas should carefully maintain logs of what they have done to compare against future NEWDOS/80 zap& for area conflicts.
2. The DOS command ATTRIB (see section 2.3) has an additional optional parameter, LRL-xxx, not specified in that section. LRL-xxx specifies the new logical record length of records in the file where xxx is an integer between 1 and 256. This record length is used now only by DIR, but if user processing assumes a file has a given record length, some users may want the DIR display to reflect it.
3. MINI-DOS (see section 4.2) is illegal under DOS-CALL (see section 4.4). If the DPG keys are depressed while DOS is under DOS-CALL, the triple key depression will be ignored.
4. DOS command ROUTE (see section 2.43) has been altered such that existing routes are displayed only if the ROUTE command has no parameters.
5. DOS command COPY (see section 2.14), format 6 (CBF) has a new optional parameter DFO (Destination Files Only). If DFO is specified, then file contents are copied if and only if the file previously existed on both the destination and source diskette&. DFO is mutually exclusive with FMT.
6. DOS command FORMAT (see section 2.22) has a new optional parameter RWF (R&W Format).- If RWF is specified, all errors are ignored and each track is formatted once, whether or not the format actually takes. RWF is used when the user wishes to obliterate the information on a damaged diskette and doesn't have a magnet. RWF is mutually exclusive with KDN, KDD, DDSL, DDGA and PFST.

**************** ZAP 008 ******** 08/04/81********* V2 M1
MANDATORY zap to PROFILE's module INIT to correct for a different error code returned by NEWDOS/80 and to allow for NZ error state to take precedence over C or NC state on return from 4420R call. With this change, the zapped module will still run under TRSDOS. This zap is for 3 different versions of the same module.
INIT,00,54   change   44 38 09 28 0F FE 1A 28 13 C3 3F 52 CD
                 to   44 20 19 00 00 00 00 00 00 00 30 08 CD
      
If the above doesn't verify, then try one or the other locations below.
INIT,00,63 or INIT,00,64    change  44 38 11 28 07 FE 1A 28 13 C3 47 52 CD
                                to  44 20 19 00 00 00 00 00 00 00 38 08 CD
      
For those interested and for come PROFILE modules, the following optional zap will reenable the interrupts so '123' and *DFG' can be used under PROFILE and NEWDOS/80.
PROFILE/CMD,11,45    change    F3 CD
                     to        00 CD
      

*********** ZAP 009 ******** 08/04/81 ********* V2M1 ********
Mandatory zap to Racet's Infinite Basic IBLOAD/CMD module to enable it to run under NEWDOS/80 as well as TRSDOS.
IBLOAD/CMD/CMD,08,15
change 15 21 B6 79 11 F4 79 CD 36 44 28
    to 15 11 F4 79 CD 13 00 32 B6 79 28
      

******** ZAP 010 ******** 08/04/81 ********* V2M1 ********
Mandatory zap to Racet's DSH module DSHB/CMD to adjust for NEWDOS/80's requirement that a filespec's type have a maximum of 3 chars and that a filespec end with a terminator. This corrects only for the filespec DS14C/CUDPATCHPATCHPATCH such that if a user patches in a different filespec, he/she will have to apply the 03 byte at the end of that filespec.
DSMB/CMD,03,C2    change    44 50 41     to    44 03 41
      

************ ZAP 011 ******** 08/04/81 ******** V2M1 ********
Mandatory zap to allow VISICALC to operate with NEWDOS/80. The resulting zapped module will not run with TRSDOS or NEWDOS21; so maintain 2 different versions. This zap deals with the different handling by NEWDOS/80 of the user 25ms interrupt routines (see sections 3.8 and 3.9).
VC/CMD,03,2B
change 09 3E 00 21 20 03 22 51 9F C9 79
    to 09 18 BB 00 00 08 08 C3 EF 9B 79

VC/CMD,75,15
change    11 28 9C 22
    to    11 1E 55 22

VC/CMD,75,24
change    C9 3E 03 C3 13 44 CD 4E 53 F5 CD 16 9C 28 0E 3E
    to    C9 11 lE 55 C3 13 44 CD 4E 53 CD 16 9C C8 00 3E
       
Mandatory zap to VISICALC to adjust for NEWDOS/80's difference from TRSDOS on a returned error code causing VISICALC's directory search to hang if any of the 4 drives are not present or have no diskette mounted. This zap is not incompatible with TRSDOS.
VC/CMD,73,01
change    C9 FE 18 20
    to    C9 37 C9 20
      

********* ZAP 012 ******** 08104181 ******** V2M1 ********
Optional zap to increase or decrease the sensitivity of double density diskette formatting. One of three byte patterns can be chosen, depending on the reliability of your interface, drive and diskettes. The more sensitive the byte pattern, the greater the probability a marginal diskette will fail format and the lesser the probability that having formatted successfully, the diskette will fail later (under normal careful handling). The less sensitive the byte pattern, the lesser the probability a marginal diskette will fail format and the greater the probability that having formatted successfully, the diskette will fail later. The byte patterns are:
1.E5 E5 - least sensitive during formatting. This was and is the single density standard pattern.
[this is 10100111 10100111 in Binary]
2.5B 5B - intermediate sensitivity during formatting. This in the TRSDOS Model III pattern.
[this is 11011010 11011010 in Binary]
3.6D B6 - most sensitive during formatting. This pattern strains the disk formatting and if the interface, drives and diskettes are not in first class condition, 30% or more of the diskettes will fail formatting.
[this is 01101101 10110110 in Binary]
Depending upon the frequency of format failures to diskette failures at other times, the user chooses which of the three 2 byte patterns to use and inserts them in the following locations, first checking that one of the three patterns in already at those locations. Each location receives both bytes, and as a check on each location, the preceding byte is F5.
SYS6/SYS,31,D9

SYS6/SYS,31,F3
      

******* ZAP 013 ******** 08/03/81 ******** V2M1 ********
Optional zap to allow the COPY function to use Model III diskettes in the TRSDOS 1.2 or earlier directory format instead of the TRSDOS 1.3 format the COPY command is prepared to handle. The zap must be backed off when the user wants to reenable COPY to handle TRSDOS 1.3 format Model III diskettes.
SYS6/SYS,14,75     change    01 00 7B         to    01 01 7B

SYS6/SYS,14,C8     change    01 00 40 4E 01 13 00      to    01 13 40 4E 01 00 00

SYS6/SYS,20,EA     change    61 C8 5E         to    61 C9 SE
      

******** ZAP 014 ******** 08/08/81 ******** V2M1 ********
Mandatory zap to correct an error in BASIC that was causing SYNTAX error to occur when the short editing codes A, D, E and L were being used. This error was introduced into BASIC just before Version 2 release in the correction of another but more trivial error.
SYS18/SYS,02,31
change 2C D7 28 06 FE 3D 20 F9 18 23 El
to     2C CD CF 65 28 27 FE 0D 20 F7 El

BASIC/CMD,14,D8
change    00 00 00 00 00
    to    23 7E FE 3D C9
      

******** ZAP 015 ******** 08/18/81 ******** V2M1 ********
Mandatory zap to correct error in format 5 COPY where the BOOT sector was not receiving the correct directory starting lump number if this differed from the PDRIVE specification. The error would manifest itself by directory read error in DIR.
SYS6/SYS,05,96
change 64 01 00 01 18
to     64 CD 80 5C 18

SYS6/SY5,15,46
change 00 00 00 00 00 00 00 00 00 00 00 00 00 00
to     01 00 01 B7 C0 13 13 1A 32 BC 64 1B 1B C9

      

******** ZAP 016 ******** 08/18/81 ******** V2M1
Correct error in PDRIVE causing SYSTEM PROGRAM NOT FOUND error when the second drive number is specified wrongly as greater than 9.
SYS16/SYS,00,6A    change    C3 1A 52 CB        to    C3 4B 50 CB
      

******** ZAP 017 ******** 08/18/81 ******** V2M1
Mandatory zap to correct error in COPY and FORMAT where DDSL parameter was being erroneously rejected.
SYS6/SYS,01,FA     change    CB 70 20     to    CB 52 20
      

******** ZAP 018 ******** 08/25/81 ******** V2M1 ********
Mandatory zap to SUPERZAP to correct an error where the DH8P functions was not sending the correct memory contents to the printer.
SUPERZAP/CMD,00,04
change    00 00 00 00 00 00 00 00 00 00 00 00 00
    to    3A 91 54 CB 5F C0 2A B4 54 22 95 54 C9

SUPERZAP/CMD,03,43     change    54 3A 91 54 CB     to    54 CD 00 52 CB
      

******** ZAP 019 ******** 08/25/81 ******** V2M1 ********
Mandatory zap to correct next-without-for error occuring when CHAINBLD is saving a file in version 1 format and the last line starts with a /./ sequence.
Add to the end of line 126 of CHAINBLD/BAS the following eight characters:
:GOTO130
      

*********** ZAP 020 ******** 08/28/81 ******** V2M1
Mandatory zap to DOS to allow ROUTE of the display to cause the BASIC PRINT of a numeric value to not output the value twice.
SYS0/SYS,07,E6    change    28 39 CD    to    28 5D CD

SYS0/SYS,08,1F
change

                                             C9
23 7E 23 66 6F 7C B5 C8 7E BB 23 20 02 7E BA 23
20 EE E5 D5 C5 7E A0 23 23 23 5E 23 56 D5 DD El
7A B3 C4 D4 03 Cl D1 El CB 40 28 D4 B7 28 D1 C9
CD

to

                                             C9
7E BB 23 20 02 7E BA 23 20 1A E5 D5 C5 7E A0 23
23 23 5E 23 56 D5 DD El CD D4 03 Cl D1 El CB 40
28 02 B7 C0 23 7E 23 66 6F 7C B5 20 D3 C3 F8 4C
CD

SYS0/SYS,10,08    change C9 00 00 00 00 00 00 00 00
                      to C9 CB 40 C0 79 C9 A4 4B 00

SYS14/SYS,02,74    change    43 00 00 43
                       to    43 FC 4C 43
      

*********** ZAP 021 ******** 08/28/81 ******** V2M1
Mandatory zap to BASIC to correct error during marked item and fixed item file processing causing strings greater than 127 characters to be written erroneously and IGEL expressions of the form (len)# and (len)$ to malfunction.
BASIC/CMD,11,18    change    CD E1 61 79 DD    to    CD D4 65 00 DD

BASIC/CMD,14,DD    change   00 00 00 00 00 00 00
                       to   C5 CD El 61 79 Cl C9
      

*********** ZAP 022 ******** 08/28/81 ******** V2M1
Mandatory zap to EDTASM to cause the cursor display to be forced every time the * prompt is displayed, waiting for the next command. This allows the cursor to be turned back on after a return from the DEBUG 123 function. which turns it off.
EDTASM/CMD,05,12    change    CD 39 59 0E
                        to    CD 00 57 0E

EDTASM/CMD,03,1A    change 40 7D E6 3F C0 11 C0 FF 19 C9
                        to 40 CD 39 59 3E 0E C3 39 59 C9
      

******** ZAP 023******** 08/28/81 ******** V2M1 ********
Mandatory zap to DOS to ease some of the problems caused by the fact that NEWDOS/80 Version 1 always used a granule lockout table in the directory GAT sector whereas Version 2 many times does not, leaving that part of the GAT sector for use by the extension for the free/allocated table. Early in the development of Version 2, the rule was that if the PDRIVE specification for GPL, was greater than 2, then the lockout table was not used. Later on, the rule was changed to be if the number of lumps in greater than 60H (96 decimal) or if relative byte 60H of the GAT sector - 0FFE, then the lockout table is not used. Some code in SYS6 was not changed to reflect this rule change, causing either a lock out table to not be created or to not be properly extended when the destination diskette has more granule* than the source diskette. This change corrects this. However, users are warned that diskettes with GPL, greater than 2 (such an 8 inch or double sided, single density 5 inch diskettes coming from Version 1) converted previous to this zap may have trouble with DIRCHECK, on either Version 1 or 2, complaining thst one or more granules are locked out but free or locked out but allocated to a file. The diskettes can still be used as it is only DIRCHECK that has the problem, but sooner or later the diskettes should be re-copyied using CBF with FMT so this lockout table conflict will be straightened out and DIRCHECK will stop complaining.
SYS6/SYS,10,0A    change 3A CA 59 FE 02 C0 7D
                      to 3A C6 59 FE 61 D0 7D
      

*********** ZAP 024 ******** 08/30/81 ******** V2M1
Mandatory zap to DOS to:
1. Correct error in format 5 and 6 COPY where destination verify error was causing erroneous END OF FILE ENCOUNTERED or INPUT PAST END error to be triggered for the next sector.
2. Allow FORMAT with BDU option and format 5 COPY with FMT and BDU options to format the destination diskette even though the destination has PDRIVE TI flag M set MSDOS model III diskette). The BDU option prevents any NMOS/80 system control data from being written on the diskette during format, and thus allows the Model III diskette to copied via format 5. Warning, the resulting diskette is no more processable by NEWDOS/80 then was the source diskette; the purpose here is to allow a NEWDOS/80 format to occur as would have happened had TI flag L been set instead of H (which also implies I if for double density diskettes, see zap 031). Remember, this is not a TRSDOS Model III format.
SYS6/SYS,07,1E    change    C6 22 1A 5B 3E
                      to    C6 CD 8E 5C 3E

SYS6/SYS,15,54    change 00 00 00 00 00 00 00 00
                      to 22 1A 5B DD CB 01 F6 C9

SYS6/SY5,27,5D    change    6F C2 47 67
                      to    6F C4 51 67
      

******** ZAP 025 ******** 09/01/81 ******** V2M1 ********
This mandatory zap in an extension to zap 011 for VISICALC.
Change to enable directory search feature.
Note, to work, the directory must start at diskette relative sector 170 and contain only 2 granules (this it the standard: GPL=2,DDSL=17 and DDGA=2).
VC/CMD,68,B8    change    90 80 40
                    to    90 82 40
      

******** ZAP 026 ******** 09/01/81 ******** V2M1
This mandatory zap is an extension to zap 002.
Change to enable DI directory search feature. Note, to work, the directory must start at diskette relative sector 170 and contain only 2 granules (this is the standard: GPL=2, DDSL=17, DDGA=2).
PENCIL/CMD,05,AB    change    3C 80 40
                        to    3C 82 40
      

******** ZAP 027 ******** 09/02/81 ******** V2M1
Mandatory zap to DISASSEM to correct causing the RTD option to write extraneous data to the diskette and correct a wrong specification in the manual.
On page 6-9, 6th paragraph, change "lst byte = low value, 2nd = high." to be "let byte = high value, 2nd byte = low.".
DISASSEM/CMD,04,11    change    5A D5 DD El DD
                          to    5A CD E0 6D DD

DISASSEM/CMD,24,60    change    00 00 00 00 00 00 00
                          to    D5 DD E1 21 A0 6F C9

      

******** ZAP 028 ******** 09/02/81 ******** V2M1
Mandatory zap to DOS to specify the mutual exclusivity of the FORMAT parameter PFST and to correct the rejection of the combination of the Y and the PFST parameters in FORMAT (see 4th format example on page 2-26).
Append to the end of the PHT-tn3 paragraph on page 2-25 the following: PFST is mutually exclusive with N, DDND, ODN, KDN, KDD, DDSL, DDGA and W. The user will notice that neither KDD or W were specified in the FORMAT command; however, KDD is a legal parameter and RWF was defined in zap 007.
SYS6/SYS,03,BE    change    02 F9 86
                      to    02 B9 86

SYS6/SYS,04,90    change    00 02 4E
                      to    00 00 4E
      

******** ZAP 029 ******** 09/02/81 ******** V2M1
This is an information zap. Many people on the model 1 are having trouble initially shifting NEWDOS/80 Version 2 to a system diskette other than 35 track, single density, single sided, which is the format of the distribution diskette. For this discussion, you are assumed to have read chapter 12 and sections 2.14 and 2.37.
1. To make a double density, single sided NEWDOS/80 Version 2 system diskette.
1. You must have an excellent working Percom or LNW double density modification in your expansion interface.
2.Take the NEWDOS/80 NEWDOS/80 Version 2 master diskette or an exact duplicate of it, place a write protect tab on it, place it in drive 0 and press RESET to bring up the system to NEWDOS/80 READY, responding with date and time if necessary.
3.Execute the DOS command:
COPY,0,0,,USD,FMT,DPDN=6
The SYSTEM and SOURCE are both the diskette with the write protect tab on. The DESTINATION diskette is the diskette to contain the double density, single sided NEWDOS/80 Version 2 system. If you have two drives available, you may use the command COPY,0,1,,USD,FMT,DPDN=6 instead. If the destination drive is not a 40 track drive, then use COPY,O,dn2-tc2,,USD,FMT,DPDN=6 where dn2 is the destination drive number and tc2 is one less than the number of tracks for that drive (i.e., 34 for 35 track drive and 79 for an 80 track drive)(example, COPY,0,1-79,,USD,FMT,DPDN=6). Further, if the destination drive has more than 40 tracks, that drive must be other than drive 0 during the COPY (otherwise you must obtain a special system diskette from Apparat at an extra charge)(after the COPY is over, you may shift that drive back as drive 0 to use it as the system drive).
4.When the COPY command completes successfully and the system has returned to NEWDOS/80 READY, mount the destination diskette on drive 0 and press RESET.
The NEWDOS/80 system on that double density, single sided diskette is now the system.
5.Perform a DIR 0 command to ascertain the extra granules are available. Then execute PDRIVE,0 to observe that the specifications for drive 0 are now single aided, double density with track 0 reserved for opposite density. Please note that the specifications for drives 1 through 9 have not been changed. If they are to be changed, you must do it, studying carefully the PDRIVE command, see section 2.37
2. To make a double sided, single density NEWDOS/80 Version 2 system diskette.
1.Make a copy of the NEWDOS/80 Version 2 master diskette. When done, mount that copy of the NEWDOS/80 Version 2 system in drive 0 and press RESET.
2.Execute the following DOS command:
PDRIVE,0,6,TI=A,TD=C,TC=40,SPT=20
This changes the specifications for drive 6 to be 5 inch, single sided, single density, 40 tracks. If you wish other than 40 tracks, change the TC parameter above to the desired track count.
3.Place a write protect tab on the system diskette you have just changed.
4.Execute the following command:
COPY,0,0,,USD,FMT,DPDN=6
The source and system diskettes are the same and are the one with the vrite protect tab. The destination diskette is the one to contain the double sided, single density NEWDOS/80 Version 2 system. If you have two drives available, you may use COPY 0,1,,USD,FMT,DPDN=6 instead. The destination must be on drive 1 if it is to have more than 40 tracks (when the COPY in finished, that drive can be made drive 0).
5.When the COPY command has completed successfully and returns to NEWDOS/80 READY, mount the destination diskette in drive 0 and press RESET to bring up the double sided, single density system. Perform DIR 0 and PDRIVE,0 as discussed above to observe the changed system. Proceed with additional PDRIVE re-specifications, if necessary.
3. To make a double sided, double density NEWDOS/80 Version 2 system diskette.
1.You must have an excellent working Percom or LNW double density interface in your expansion interface.
2.Proceed as for single sided, single density discussed above excepting that the PDRIVE command is:
PDRIVE,0,6,TI=CK,TD=G,TC=39,SPT=36,GPL=2,DDGA=2
This is for a 40 track drive, for 35 use TC=34, for 80 use TC=79.
Further:
1. For a destination drive more than 40 tracks use GPL=8 and you will probably want an expanded directory, say DDGA=6 for maximum size, giving 224 directory entries. However, if any of GPL, DDSL or DDGA are different between the source and destination drives during COPY or if the number of sectors, granules or tracks for the destination diskette is less than the source diskette, the CBF (Copy By File) parameter must be specified in the COPY command (example: COPY 0,0,,USD,FMT,DPDN=6,CBF). So, in the case here for driven over 40 tracks, since the GPL is different (the source's GPL is 2 and the destination's GPL in now 8), you must use the CBF parameter. Actually, you could have used the W option in any of the COPY's mentioned above in this zap, but CBP runs slower and should only be used where necessary.
2. For LNW interface, you can specify TI flag E instead of flag C (example, TI=EK instead of TI=CK, if any 8 inch drives are to be used with the LNW, E must be specified instead of C). However, remember, flags E and C are interdrive mutually exclusive; so if you change one of the 10 drive specs from using flag C to using flag E, you must change any of the others that use flag B or C (see next section).
3. Users setting up their systems to use the 8 inch drives through the OMIKRON interface (TI=BH) are experiencing trouble with the PDRIVE error code **** TISPEC BETWEEN DRIVES INCOMPATIBLE. Please refer to the last two sentences of the TItypel paragraph in the middle of page 2-34. If any drive's TI specifies flag B, then no other can specify either flag C or E. You must change the PDRIVE specifications for drives 4, 6, 8 and 9 an they conflict with flag B. To do this, simply execute the DOS co~nds
PDRIVE,0,4=0
PDRIVE,0,6=0
PDRIVE,0,8=0
PDRIVE,0,9=0
      
Remember, you should not make any PDRIVE changes to the NEWDOS/80 Version 2 matter diskette; perform the changes on working copies of it.

******** ZAP 030 ******** 09/02/81 ******** V2M1
This is an information zap.
1. Chapter 12 failed to make it clear that though disketteg are content interchangeable under NEWDOS/80 Version 2 between the Model I and Model III, there is a problem dealing with a format control byte for directory sectors of single density diskettes. Carefully read SYSTEM options BK and BN (even though you have only Model III) on page 2-49, WRDIRP command on page 2-52 and the W function of DIRCHECK on page 6-14.
1.For Model III NEWDOS/80 Version 2 users, single density diskettes coming from the model 1 can be processed on the Model III by setting SYSTEM option BK-Y, setting up the proper single density PDRIVE and then for each such diskette, execute once either the DOS com-nd WRDIRP or the W function of DIRCRECK. After this is done, the diskette can be used as any other diskette under Model III NEWDOS/80 Version 2. Subsequently, this diskette can not be processed by the Model 1 TRSDOS 2.3, but it can be processed by the Model 1 NEWDOS/80 Version 1 provided the format of the diskette is not changed to one of the variety of formats available on Version 2 but not available on Version 1). However, once this diskette is used back on the Model I NEWDOS/80 Version 1 and a directory sector is updated, the diskette cannot be reused on the Model 111 without performing again the WRDIRP or DIRCHECK function on that diskette on the Model III (remember, NEWDOS/80 Version 1 does not have either of these two functions).
2.For users that have NEWDOS/80 Version 2 for both the Model I and III and wish to use single density 5 inch diskettes interchangeably between the model 1 and model III, set SYSTEM options BK-Y and BN-Y on the Model 1 and BK-Y on the Model III. Then, for each such single density diskette, execute once either WRDIRP or the W function of DIRCHECK. This can be done on either the Model I or III and all such diskette* do not have to be done at the same session. Each such diskette can now be used interchangeably between the Model I and Model III under NWOS/80 Version 2 (don't forget the proper PDRIVE specifications), but the diskette cannot be processed by TRSDOS 2.3
2. For BASIC function RENUM (see section 7.9 on page 7-5) the 4th and 5th formats listed ( RENUM X and RENUM U,X ) are not valid and should be deleted from the middle of page 7-5. If the X parameter is to be used, it must be done via the 1st format listed as X is meaningless unless specific values for ppppp and/or qqqqq are also specified.
3. Some users have asked for more distinctions between full diskette COPY (format 5) or Copy By File COPY (format 6), both specified in section 2.14.
1. Format 5 copies a full diskette sector by sector and is generally faster than format 6, which copies files individually. However, if the source diskette in relatively empty, format 6 may be faster.
2. In format 5 the source directory becomes the destination directory, including the same size and relative sector position on the diskette, while in format 6, the two directories are considered separate just as in a format 1 through format 4 COPY.
3. Generally, if format 5 is used, both the source and destination PDRIVE specifications for GPL, DDSL and DDGA must be the same (though only the restriction on GPL is enforced, but not if BDU is specified); the other PDRIVE parameters may be different provided the destination diskette is to have atleast as many sectors as the source diskette (though the format 5 specifications say that sectors per track must be the same; this is not so in Version 2 where it was in Version 1).
4. Format 5 with the BDU option allows some alien diskette& to be copied that otherwise could not be copied.
5. Format 6 allows a diskette's contents to be copied between diskettes having a different number of granules per lump (GPL), the directories positioned differently on the diskettes, the directories of different sizes, or the destination diskette having less sectors than the source.
6. Format 6 copies all of a source diskette's files or a selected subset of those files.
7. Both format 5 and 6 allow the option of formatting the destination diskette UMT) or not (NFMT). Formatting a diskette magnetically init ializes the entire diskette including the inter-sector control bytes used only by the drives and the controller. Many users prefer to do this everytime a back up is done. Of course, formatting a diskette destroys the previous contents.
8. If format 6 is being used to copy a NEWDOS/80 Version 2 system diskette, the FMT option must be specified. This assure& the correct BOOT, SYSTEM and PDRIVE control informat is stored on the destination diskette, and the correct positioning of SYSTEM files which, excepting for BOOT/SYS and SYS0/SYS, are all positioned on the destination diskette in came posi tion relative to the directory that they are on the source diskette.
9. In format 6 where NFMT is specified, system files are NOT copied to the destination diskette if they are not already existing in the destination directory. This is because system files usually use specitic FDE& in the directory, and only YMT can assure that these FDE# are available.
10. Format 5 without BDU and format 6 with FMT both assume the possibility of the destination diskette being used later as the system diskette and the destination drive or one like it being used later as drive 0; therefore both initialize the BOOTISYS file to contain the proper BOOT code and drive 0 PDRIVE specifications.

******** ZAP 031 ******** 09/06/81 ******** V2M1
Mandatory zap to DOS to allow files to be copied from and to diskettes used by Model I TRSDOS 2.3B and higher as well as from and to diskettes used by Model III TRSDOS 1.3 or higher. After applying the documentation changes given below, see section 12.5.1 on page 12-7, the 'flag M' paragraph on page 2-35 and the bottom half of page 2-15.
This enhancement expands the definition of PDRIVE TI flag M (see page 2-35). When the M flag is specified and the TD field specifies double density (i.e., TD=E), the PDRIVE specification is assumed for a Model III TRSDOS diskette and TI flag 1 is implied (see example 3 on page 2-38). When the M flag is specified and the TD field specifies single density (i.e., TD=A), the PDRIVE specification is assumed for Model I TRSDOS 2.3B or higher diskette, and TI flag I in not implied and must not be specified (see example 1 on page 2-38 with TI-AM).
Radio Shack has started distributing certain new programs (i.e., COBOL) with or on Model 1 TRSDOS 2.3B or higher diskette& with that system being somewhat different than Model I TRSDOS 2.3, including the use of RBAs an discussed in section 12.1 for the Model III. These diskettea are NOT compatible with NEWDOS/80 diskettes, and, as with Model III TRSDOS diakettes, COPY is the only function of NEWDOS/80 that can be used with the Model I TR5DOS 2.3B diskettes (though FREE and DIR (except EOF and special flags) appear to work).
Files on either Model III TRSDOS or.Model 1 TRSDOS 2.3B diskette* that are to be used either by NEWDOS/80 or user programs executing with NEWDOS/80 must be copied to NEWDOS/80 diskettes. FORMAT or COPY with FMT option cannot be used to format a diskette in either the Model III TRSDOS or the Model I TRSDOS 2.3B format; however, format 5 COPY with the BDU option can be used to make copies of those diskettes.
ZAP 013 must NOT be installed in a NEWDOS/80 to be used to copy Model I TRSDOS 2.3B files. ZAP 013 must be used for Model III TRSDOS 1.1 & 1.2 diskettes.
Insert the following notes in the outside margin of the specified paragraph:
1. Page 2-9, next to last paragraph: "For Model III TRSDOS and Model 1 TRSDOS 2.3B diskette&, see ZAP 03l."
2. Page 2-15, "The COPY command" paragraph: "This section applies also to standard 35 track, single aided, single density diskette* for Model I TRSDOS 2.3B or higher."
3. Page 2-15, "The user musC par&: "See examples 1 and 3, section 2.37".
4. Page 2-35. "Flag W' paragraph: "Expanded to include Model I TRSDOS 2.3B or higher diskettes. See ZAP 031
5. Page 2-38, example 1: "For Model 1 TRSDOS 2.3B diskette@, use TI-AM (aee ZAP 031M' Also in this same paragraph, change the last two words to read "option W' instead of AN.
6. Page 12-7, paragraph 12.5.1: "See ZAP 03l."
SYS6/SYS,00,7D    change    CD B3 63 21    to    CD 96 SC 21

SYS6/SYS,15,5C     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 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
00 00 00 00 00 00 00 00 00 00

to

                                    CD B3 63 3A
BE 59 47 3A B9 59 4F 3A CC 59 57 3A C7 59 5F 79
A3 CB 6F 28 06 78 AA 0F DA 47 67 78 CB 69 20 04
CB 6B C8 7A 0F D8 21 5B 5E 22 F7 55 21 Bl 5B 22
5D 5B 21 00 5C 22 61 5B AF 32 7F 61 67 6F 22 BF
61 22 B5 5B 3E 18 32 2D 61 C9

SYS6/SYS,22,6B    change    CD B3 63 CD
                      to    CD 96 5C CD

SYS16/SYS,01,F8   change    05 28 02 3E 03 CD
                      to    05 00 C4 81 51 CD

SYS16/SYS,02,AF   change    CB E3 DD 7E 05 FE 06 C0
                      to    CB 43 3E 06 C4 87 51 C0

SYS16/SYS,04,9A   change    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
                      to    00 CB E3 DD BE 05 C9 DD CB 0F 56 C8 3E 03 C9
      

******************* ZAP 032 ******** 09/10/81 ******** V2M1
Mandatory zap to DOS to:
1. prevent COPY from setting file update flag on in Model 1 TRSDOS 2.3B and Model III TRSDOS diskettes when that bit is used differently in those systems.
2. enable /ext type CBF file selection when the source is a Model I TRSDOS 2.3B or Model III TRSDOS diskette.
SYS6/SY5,10,83    change    C3 39 44 DD    to    C3 E4 5C DD

SYS6/SY5,15,AA
change    00 00 00 00 00 00 01 00 EA 5C 00 00 00 00 00 00 00 00
    to    3A 0C 43 CB 6F 28 01 00 EA 5C 04 DD CB 02 EE C3 39 44

SYS6/SYS,16,F0
change    61 20 0D 3A 96 59 CB
    to    61 3A 96 59 20 0A CB

      

******** ZAP 033 ******** 09/10/81 ******** V2M1 ********
Mandatory zap to correct error in SUPERZAP during the DM function and during the F, find function.
SUPERZAP/CMD,00,11
change   00 00 00 00 00 00 00
    to   6B 63 4B 22 C3 54 C9

SUPERZAP/CMD,05,0B
change   00 6B 63 4B CB
   to    00 CD 0D 52 CB
      

************ZAP 034 ******** 09/11/81 ******** V2M1
Mandatory zap to the Ryan-McFarland Corp's COBOL version 1.3B distributed by Radio Shock to allow it to run with NEWDOS/80 Version 2 for the Model I and Model III. This zapped version will not run under TRSDOS. Users must copy the COBOL multiple files onto NEWDOS/80 diskettes (see zap 031).
RSCOBOL/CMD,99,7D    change    44 24 3E 40 49          to    44 82 27 44 49

RSCOBOL/CMD,99,CF    change    44 13 1F 44             to    44 82 27 44

RUNCOBOL/CMD,115,82  change    44 3E 40 49 40 24 17    to    44 27 44 49 40 82 17

RUNCOBOL/CMD,115,99  change    02 1F 44 11 44 13 0A    to    02 27 44 11 44 82 0A
      

******** ZAP 035 ******** 09/13/81 ******** V2M1
Mandatory zap to DOS to correct a directory clobbering error that occurs when either CLOSE or KILL frees up a FPDE or FXDE that occupies the first PDE slot in a directory sector. This error wan missed during BETA testing as it was caused by a late adjustment to handle the TRSDOS Model III diskette&. A few persons were complaining about directories being clobbered, but only on September 12th was an error report made that lead to the discovery. Though the problem would appear to affect many users, apparently to date it has not.
SYS3/SYS,01,CC
change    00 7D D6 17 BB 30 1D
    to    00 7B C6 16 BD 38 1D
      

******** ZAP 036 ******** 09/13/81 ******** V2M1
This is an information zap.
1. Documentation correction for EDTASM. Tape I/O is NOT available for the Model III. If it is attempted, BAD PARAMETER(S) error will be given.
1. Place in the outside margin of the "2. L T=nnnnnn" paragraph of page 6-15 the following restriction: "Model I only"
2.Place in the outside margin of the 2nd line of page 6-16 of page 6-16 the following restriction: "Model I only"
2. Correct the "A list of all" paragraph on page 1-3 to read "NWD80V2/ILF and NWD8OV2/XLF" instead of "NWD82V2/ILF and NWD82V2/XLF".
3. Delete the words "sectors per track, " from the "Format 5 is a full" paragraph of page 2-11.
4. The MM=addr1 function of ROUTE requires the main memory location addr1 to be greater than 51FFH. In the "Any of the devices" paragraph of page 2-43, insert the words "greater than 51FFH" after the word "location" in the phrase 19memory location of a user".

******** ZAP 037 ******** 09/14/81 ******** V2M1 ********
Mandatory zap to BIONIC BASIC to make it compatible with NEWDOS/80 Version 2 for the Model I. These zaps were provided to Apparat and have not been checked out by Apparat. One or more of the zaps may already be installed in your modules. When these zaps are applied, the BIONIC BASIC must not be used with any other version of NEWDOS/80.
FIREUP/CMD,02,51  change    3A 31 0D       to    3A 30 0D
FIREUP/CMD,04,90  change    21 86 63 22    to    21 FC 61 22
FIREUP/CMD,05,3C  change    40 09 58 01    to    40 FF 57 01
FIREUP/CMD,05,40  change    05 28 65       to    05 86 65
FIREUP/CMD,05,4E  change    05 30 5F       to    05 8E 5F
FIREUP/CMD,05,55  change    05 60 5F       to    05 BE 5F
FIREUP/CMD,05,5C  change    05 CF 64 21    to    05 2D 65 21
FIREUP/CMD,05,63  change    05 BE 64 21    to    05 1C 65 21
FIREUP/CMD,05,6A  change    05 95 64       to    05 F3 64

INSTALL/CMD,01,0D change    3A 31 0D       to    3A 30 0D
INSTALL/CMD,01,4F change    44 C8 FE       to    44 C9 FE

REMOVE/CMD,01,12  change    3A 31 0D       to    3A 30 0D
REMOVE/CMD,01,54  change    44 C8 FE       to    44 C9 FE
      

************* ZAP 038 ******** 09/14/81 ******** V2M1 ********
Optional zap to Model I SCRIPSIT to eliminate the 'hang' occuring when the END function is executed and the last disk I/O was to a double density drive. SCRIPTSIT execute& the END function by jumping to location 0, causing a software but not a hardware RESET.
The double density modifications to the expansion interface require a hardware RESET to reset them to the single density disk I/O assumed by the software RESET in the ROM. SCRIPSIT uses the RESET to restore the keyboard, display, printer and other interface# it has changed.
If the Z-80 HALT instruction is executed instead of a jump to location 0, the Model I (this does not hold for the Model III) hardware RESET is triggered which in turn triggers the software RESET. In both cases, either the jump to 0 or the HALT, the red lights on the disk drives must be off. The zap is applicable under TRSDOS as well as all versions of NEWDOS.
SCRIPSIT/LC,19,E3 and SCRIPSIT/UC,19,E3
change    6F C3 00      to    6F 76 00
      

******** ZAP 039 ******** 09/24/81 ******** V2M1 ********
Mandatory zap to PENCIL to enable it to run with NEWDOS/80, version 2. This zap is an extension of zaps 002 and 026. We apologize for the large number of zaps to PENCIL, but Apparat doen't use PENCIL and so must rely upon the users to find the discrepancies.
PENCIL/CMD,03,25
change    53 36 A0 Cl
    to    53 CB FE Cl
      

******** ZAP 040 ******** 09/29/81 ******** V2M1 ********
Mandatory zap to DOS to correct rare occuring error that could, if the same HIT code is used more than 31 times in a directory, cause file open to not find a file and to put two files with the same namelext on the diskette.
SYS2/SYS,01,CB
change    FE CD 28
    to    FE CC 28
      

******** ZAP 041 ******** 09/29/81 ******** V2M1
Information and manual corrections.
1. A number of users have had trouble with tape 110 under NEWDOS/80 Version 2. Some of the early copies of NEWDOS/80 Version 2 had errors due to undetected RAM errors during duplication and in maybe an many as 20 cases this affected the EDTASM or LMOFFSET module. However, if these modules were bad, they usually also had problems with disk I/O as well as cassette I/O and so if disk I/O works fine, we assume it is not a bad copy of NEWDOS/80.
Tape I/O has long history of trouble, varying from computer to computer and especially from tape unit to tape unit such that any particular tape will fail on somebody's cassette unit.
This has always been an exasperating problem and the main reason why cassettes are not used at Apparat (though we do act as a retailer/distributor for products distributed on cassettes produced by others). Because cassettes are not used at Apparat, NEWDOS receives very little testing with cassettes, and in the future we are considering withdrawing all support (i.e., LMOFFSET and EDTASM) from cassettes. Cassette support for EDTASM for the Model III has already been withdrawn and will probably soon be withdrawn for the Model I (since the purpose of our EDTASM was to give disk support, not cassette).
For now though, we will restrict our error study to those problems presented to us on a diskette containing the actual NEWDOS system used. If the user presents us with a cassette along with the diskette we will test that as well; otherwise we will test with simple programs from disk in-house. Neither the diskette nor the cassette will be returned to the user. Lastly, if you can avoid use of cassettes, DO!!!!!
2. The specifications for ROUTE using the MM=addr1 operand are in error in the manual.
1. Page 2-43, 3rd paragraph, 3rd line, change "12" to "16".
2. Same paragraph, 5th line, change "13th" to "17th".
3. Page 2-44, top line, change "0FE8CH" to "0FE90H".
3. A number of users has asked why Automatic Density Recognition (ADR) was not used in NEWDOS/80 Version 2.
We wanted to included ADR but found it impractical unless we limited or expanded other capabilities made available by PDRIVE. Since we were already two months late in releasing Version 2, we decided to release without it.
Part of the problem is in providing a second SPT parameter and an extra indicator for track 0 useage (remember, Version 2 operates with double density diskettes that may or may not have track 0 reserved for single density). We also felt that if we included ADR, we should also include ASR (automatic side recognition). For now, we will remain without ADR and ASR, but will not rule it out for a subsequent NEWDOS/80 version.
4. For BASIC CMD "0" and multi-dimensional arrays, a few users have asked for clarification of term REN used in the documentation for on pages 7-14 through 7-17. CMCC does not care whether an array is single or multi-dimensional as CMD'V' only concerns itself with the relative positioning in main memory between array elements and not with the actual subscripts for a given element, except for determining the main memory position of the first element participating in the sort as specified in the CMD "0" statement.
As an aide to the programmer to understand the sort order, a formula was given for two and three dimensional arrays to determine the REN of any array element given its subscripts.
The following working BASIC program demonstrates the relationship between REN and subscripts for a three dimensional array, using Rl, R2, R3, Xl, X2 and X3 to correspond with the useage at the bottom of page 7-14 and top of page 7-15.
10 R1=3: R2=4: R3=2: DIM A(R1,R2,R3)
20 REN=0: FOR X3=0 TO R3: FOR X2=0 TO R2: FOR Xl=0 TO R1 'CREATE ARRAY IN REN ORDER
30 IF REN <> X1 + X2 * (R1+1) + X3 * (R1+1) * (R2+1) THEN PRINT"ERROR": STOP
35 ' THE ABOVE ASSURES THE FORMULA COMPUTES TO THE CURRENT REN NUMBER
40 A(X1,X2,X3)=REN: REN=REN+l: NEXT X1, X2, X3 'STORE THE REN NUMBER IN THAT ELEMENT
50 CMD"O",0,A(0,0,0) 'SORT ARRAY IN ASCENDING NUMERIC ORDER
60 ' THE ARRAY ORDER SHOULD NOT RAVE BEEN CHANGED.
70 FOR X3 = 0 TO R3: FOR X2 = 0 TO R2: FOR Xl = 0 TO R1 'LIST ARRAY IN SAME ORDER STORED
80 PRINT A(X1,X2,X3);: NEXT X1, X2, X3 'AND THIS SHOULD BE ALSO THE SORTED ORDER
Elements with one or more zero subscripts do participate in the sort if that element is within the main memory range of elements sorted, i.e., has a REN greater than or equal to the REN of the lat sort element and less than or equal to the REN of the last sort element.
5. Correct the last paragraph of page 2-27 by deleting the 3rd sentence and changing the 4th sentence to read "Hex codes less than 20H or greater than the SYSTEM option AX value will be displayed as periods.".
6. A number of users having CPU speed up modifications in their computers and setting the slow-down-during-I/O switch have complained that NEWDOS/80 continuously toggles the fast/normal CPU speed state (in many cases a light flickers on/off or red/green).
Indeed this is true. In the original TRSDOS,there were 8 interrupts, 0 - 7, of which only 6 and 7 were used.
Interrupt 6 only read the disk controller status register; so NEWDOS/80, to save resident DOS space which is critical, combined interrupt 6's function with interrupt 7,reading the controller status register every 25 ms interrupt.
Though the fast/normal CPU toggling is interested only in the controller command register,the hardware connection actually toggles on both the read of the status register and the write of the command register.
Normal disk I/O cannot operate without the statue register read when the controller has interrupt status; so we cannot eliminate the interrupt 7's read of the status register without re-enabling interrupt 6 and we don't have the patch space for that. Therefore, users must turn off the switch on their computers that allows the fast/normal toggling to take place, and simply use the fast speed all the time (be sure SYSTEM option BJ is set correctly). There is no guarantee that your computer will actually work at the faster speeds. Doubling the CPU speed seems OK; tripling appears NOT. The LNW computer at 2.5 times the TRS-80's normal speed is reported by LNW to work fine.

******** ZAP 042 ******** 09/30/81 ******** V2M1 ********
Mandatory zap to correct error in BASIC’s RENUM function giving SEQ # OVERFLOW when large programs, say over 26,000 bytes of text, are renumbered. Though a number of users called on this problem, it wasn’t until a user sent us a written error report with the problem program on a system diskette that we finally had enough to go on.
SYS11/SYS,03,BB    change    0F ED 42 DF 38  to  0F CD 9D 51 38

SYS11/SYS,04,A5    change    00 00 00 00 00  to  ED 42 D8 DF C9
      

******** ZAP 043 ******** 10/07/81 ******** V2M1 ********
Mandatory zap to DOS to correct omision from ZAP 020 (ROUTE) which caused SYSTEM option BA to cause hang on reset.
SYS0/SYS,00,BF   change    FF 00 00 00  to  FF FC 4C 00
      

******** ZAP 044 ******** 10/07/81 ******** V2M1 ********
Mandatory zap to DOS to disable SYSTEM option EM. SYSTEM option BHN caused the full diskette verify to be bypassed when the user felt the track verify that occurred immediately after a track was formatted was sufficient. However, if the user is formatting more tracks that the drive can physically handle, FORMAT with SYSTEM option BMN will not detect the error whereas it will with SYSTEM option BM=Y. Therefore, SYSTEM option EM is dropped, and the full diskette verify will always be done.
On the outside margin of the BM=yn paragraph of page 2-49, write the following: "eliminated by ZAP 044".
SYS6/SYS,10,35    change   E1 3A 6D 43 CB 5F C8 3E
                      to   E1 00 00 00 00 00 00 3E

SYSl7/SYS,02,55   change   FE 31 7A  to  FE FE 7A
      

******** ZAP 045 ******** 10/07/81 ******** V2M1 ********
Mandatory zap to correct BASIC function REF$ to (1) avoid occasional misses of printer line advance and (2) disable printer operations after the function.
SYS12/SYS,04,BA    change  FE 38 30        to  FE 35 30

SYSl8/SYS,03,57    change  D2 B5 57 3D     to  D2 59 55 3D

SYS18/SYS,03,69    change  00 00 00 00 00  to  11 45 64 D5 EF
      

******** ZAP 046 ******** 10/09/81 ******** V2M1 ********
Optional zap to DOS to allow 'JKL' to print graphics on the EPSON printers that use graphic codes OAOH - ODFH. This is done by converting hex codes 80H through OBFH to OAOH through ODFE.
SYS3/SYS,04,BF    change  30 02 3E  to  30 07 3E

SYS3/SYS,04,C8    change  00 00 00 00 00 00 00 00
                      to  FE 80 38 F7 C6 20 18 E3
      
Use next zap if 0BFH rather than SYSTEM option AX is to govern as high ASCII for JKL.
SYS3/SYS,04,B9    change  47 3A 70 43 B8  to  47 00 3E BF B8
      

******** ZAP 047 ******** 10/21/81 ******** V2M1 ********
Mandatory zap to correct DOS handling of 8 inch, double density, single or double sided, single volume drives (PDRIVE TD=H) where the computer hardware is modified to handle double CPU speed and 8 inch, double density, single or double sided, single volume operations. The PDRIVE SET maximum values are 30 for single sided and 60 for double sided. The PDRIVE GPL must be atleast 3 for single sided and atleast 5 for double sided; however 8 is recommended in both cases. This zap does NOT mean that your particular computer can handle this type of drive. However, LMW reports the LNDOUBLER 5/8 (CPU speed up modification required) and the LNW8O computer systems both support 8 inch double density under NEWDOS/80, Version 2 (also see zap 041 part 6).
SYS6/SYS,27,BD    change  E6 41 DD  to  E6 Cl DD

SYS6/SYS,31,F5    change  34 0A 26 0A 86 01 9C 27 44 00
                      to  13 0A 14 0A 53 01 BA 27 26 00

SYS16/SYS,04,2D   change  12 lA 24 34 82  to  12 lE 24 3C 82
      

******** ZAP 048 ******** 10/21/81 ******** V2M1 ********
Mandatory zap to EDTASM to correct error occurring when shift-left-arrow is used to erase a filespec response.
EDTASM/CMD,31,00    change
58 C5 CD 2F 59 E1 E5 3A AA 53 F5 0E 01 CD 47 5B F1 32 AA   to
58 D5 C5 CD 2F 59 El 06 1F CD 40 00 DA D7 58 Dl 7E C9 AA
      

******** ZAP 049 ******** 11/09/81 ******** V2M1 ********
Mandatory zap to DOS to correct error in DIR $ or DIR $0 command where DOS hangs if any response other than ENTER is given to the diskette mount requests.
SYS8/SYS,02,B8    change  20 FC C9  to  20 F9 C9
      

******** ZAP 050 ******** 11/09/81 ******** V2M1 ********
Optional zap to DOS to allow the DOS PRINT and LIST commands to accept all control characters in the hexidecimal range 00 to 1F instead of just OD (end of line). If this zap is used, users must assure that files used with PRINT and LIST do not contain control characters the display or printer cannot handle. Remember, the high bit of all characters is zeroed, thus display graphic characters 80 - 9F will be transmitted as 00 - 1F.
SYSl4/SYS,04,5A    change  20 D0 FE  to  20 C9 FE
      

******** ZAP 051 ******** 11/09/81 ******** V2M1
Information zap.
1. Users must remember that the Model I TRSDOS 2.3B or higher and Model III TRSDOS 1.3 or higher, amongst other things, both went to using RBAs in the NEXT and EOF fields of the FCB, thus intentionally or unintentionally restablishing compatibility with NEWDOS 2.1 and NEWDOS/80 in the use of those two fields (which many user programs use), even though the EOF fields in the directories (which most user programs don’t use) are now incompatible. Though files from those systems must be copied to NEWDOS diskettes, assembly language programs upgraded to run with those TRSDOS systems are more like to run with NEWDOS without change then they were before. For example, on the Model III, SCRIPSIT Version 3.2 has been found to work as-is. So, before calling Apparat to see if zaps exist for a given program, try it out, giving special attention to the file I/O.
2. The manual failed to explain that when SYSTEM option AJ=N or when the up-arrow key is held down during reset/power-on, DOS loses the ability use the lower case driver (Model I only) or to actually input keyboard characters from the chain file during chaining as these functions depend upon DOS's keyboard intercept routine being enabled. SYSTEM options AU=N and BF=N (Model I only) and are also forced. DOS will think it is activating chaining, but actually the input characters will continue to come from the keyboard; the DOS READY prompts will not be seen as DOS thinks it is chaining. For LCDVR (Model I only), the command will execute but the key input functions for lower case drive will not be done. Insert the note "see ZAP 051, part 2" in the outside margin at the following places in the manual.
1. Page 2-7, the "CHAINING is discussed" paragraph.
2. Page 2-29, the "In NEWDOS/80" paragraph.
3. Page 2-47, the "AJ=yn" paragraph.
4. Page 4-9, the "If a DOS recognized" paragraph.
3. Chain files must always have a name-extension. When creating a CHAIN file, you must always specify a name-extension in the filespec, excepting that CHAINBLD/BAS will assume name extension /JCL if you don’t give one. If the filespec given in a DO or CHAIN command does not specify a name-extension, then /JCL is assumed; therefore it is recommended that the name-extension /JCL be used on chain files when created. Place the note "See ZAP 051, part 3" in the outside margin in the following places in the manual.
1. Page 2-7, the "When the system" paragraph.
2. Page 4-8, the "Chain file creators" paragraph.
4. For Model I SCRIPSIT where the user wishes to use tape I/O, the user must back off the last zap of ZAP 003 (the SCRIPSIT/xx,00,C3 zap) in order that interrupts will remain disabled, a requirement for Model I tape I/O. This means the user cannot invoke MINI-DOS from SCRIPSIT.

******** ZAP 052 ******** 11/09/81 ******** V2M1 ********
Mandatory zap to BASIC to correct CLOSE without explicit fan(s) where filearea 2 and up was not being closed if filearea 1 was not open and the V parameter was specified in the BASIC invocation sequence.
BASIC/CMD,08,C8   change  66 11 2D 01 7E  to  66 CD DB 65 7E

BASIC/CMD,l4,E4   change  00 00 00 00 00  to  ED 5B C5 64 C9
      

******** ZAP 053 ******** 11/09/81 ******** V2M1 ********
Part mandatory and part optional zap to MICROSOFT’s BASIC compilier Version 5.23 (the release Version for a long time)(the first line a /LST file created by the compilier gives the compilier version number) to allow it to run with NEWDOS/80. This zap has been provided to Apparat by MICROSOFT and if there are questions with this zap, please contact MICROSOFT. Once these zaps are applied, this compilier and the compiled programs cannot be used with TRSDOSIII Future enhancements to the compilier may require the optional changes below to be backed off; therefore users should maintain copies of the compilier (1) as it existed before the mandatory changes below were applied, (2) after the mandatory changes but before the optional changes below are applied and (3) the final result. Also, remember, the BASIC compilier’s L80/CMD is not for use with FORTRAN, assembler, etc., but only with BASIC.

The production of this zap required a large amount of research and testing by MICROSOFT, and APPARAT sincerely thanks MICROSOFT for this extensive effort to make the BASIC compilier operate with NEWDOS/80, Version 2.
****** Mandatory section
BRUN/CMD,10,1D    change  46 0B 70  to  46 00 70
      
******* Optional section
The following optional zaps are for:
1. The LOF function is changed to work like NEWDOS/80, rounding up the returned value if EOF is not integer divisible by the logical record length used in the OPEN statement. Further, if the result exceeds 32767, BAD RECORD NUMBER error results.
2. PUT and GET without explicit record number works correctly.
3. LOC functions correctly for the logical record length in the OPEN statement.
DIR/SYS,xx,yy Search the directory for BRUN/CMD’s directory entry, the associated line on the SUPERZAP display should look something like this:
1020 0062 0042 52 55 4E20 2020 2043 4D44 ...b.BRUN....CMD
      
change the 62 (the 4th) byte to F6.
BRUN/CMD,40,4A    change
21 0C 00 09 5E 23 56 EB Dl Cl C9 CD     to
DD 21 6E 8A CB 23 DD 19 C3 2E 8A CD

BRUN/CMD,40,63    change  00 C3 AD 79 El  to  00 C3 37 8A E1

BRUN/CMD,40,B3    change  C5 21 0C 00 09  to  C5 C3 00 8A 09

BRUN/CMD,40,CE    change  lB 42 4B  to  CD 11 8A

BRUN/CMD,42,7F    change  CD 17 58  to  CD lB 8A

BRUN/CMD,56,84    change 02 02 00 52 (the rest is immaterial)
     to
          016D 008A CB23 DD21 6E8A DD19
DD5E 00DD 5601 C317 7ADD 7300 DD72 011B
424B C9C5 CB21 DD21 6E8A DD09 DD70 00DD
7001 C1C3 1758 DD6E 00DD 6601 D1C1 C9C5
DDE1 DD6E OADD 660E DD5E 0FDD 4E0B AFB9
281D AF06 18ED 6ACB 1317 9130 0181 3F10
F4ED 6AB7 2801 23D1 C1CB 7CC8 C39A 7D6C
6318 F402 0200 52

L80/CMD,00,7A    change  00 8A 22  to  00 8B 22
      
Note, the above zap to L80/CMD changes the default data address for compilied BASIC programs from 8A00H to 8B00H to allow an extra 256 bytes for BASIC system use. If the -R switch is issued during the linking process, the -D switch must be reset to 8B00 instead of 8A00 as mentioned in the compilier manual.

******** ZAP 054 ******** 11/19/81 ******** V2M1 ********
Mandatory zap to EDTASM correct error in object code write to tape where checksums were being computed wrong. The NEWDOS/80 author apologizes to the ten or so persons who complained of this error over the last 4 months.
EDTASM/CMD,27,30    change  CD A9 70 03  to  CD 8B 72 03

EDTASM/CMD,31,12    change  AA 53 36 00 E1 7E  to  F5 CD A9 70 Fl C9
      

******** ZAP 055 ******** 11/19/81 ******** V2M1 ********
Optional zap to DOS to allow the PATCH LC keyboard modification to work with NEWDOS/80 Version 2.
SYS0/SYS,02,34    change
            2E 36 01 01 38 16 FF 0A 5F AE 73 A3
20 0D 7A C6 08 57 2C CB 01 F2 4A 45 AF 18 0F 5F
      to
            2E 35 01 80 38 16 F7 7A C6 08 57 2C
CB 01 0A 5F AF CB 79 20 15 7B AE 73 A3 28 EC 5F
      

******** ZAP 056 ******** 11/29/81 ******** V2M1 ********
Mandatory zap to DOS to allow COPY with CBF option to allocate space on Model III TRSDOS diskettes beyond track 23.
SYS6/SYS,25,F0    change  CD B2 4C DD  to  CD F2 5C DD

SYS6/SYS,15,BC    change
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   to
DD CB 02 6E 28 04 DD CB 07 46 CA B2 4C 3E 03 C3 B4 4C
      

******** ZAP 057 ******** 11/29/81 ******** V2M1 ********
Mandatory zap to DOS to correct directory errors created during format 5 COPY when copying to a destination diskette that is to contain more granules than the source diskette and when the source diskette has less than 61H (97 decimal) lumps and the destination diskette is to have more than 60H (96 decimal) lumps. In NEWDOS/SO Version 2, in order to allow a maximum of COH (192 decimal) lumps in the granule allocation table, that table (normally in 00 -5F of the GAT sector) expands into and supercedes the granule lockout table (normally in 60 -BF of the GAT sector. This error was leaving the GAT granule lockout table in existence in the destination directory (remember, it is transferred over from the source diskette in format 5 COPY) when it should have been done away with to make room for the expanded granule allocation table. The error is immediately detectable by DIRCHECK after the format 5 COPY by the presence of one or more BAD "GAT" SECTOR BYTE errors. Otherwise, the error is not seen until TRACK # TOO HIGH error occurs when writing to the diskette and a granule beyond those allowed for the diskette is erroneously allocated; the file getting the error will NOT have had its EOF increased to include the erroneous sector. DIRCHECK will, in addition to the GAD "GAT" SECTOR BYTE errors, then display EXTENT SPACE OVERFLOWS DISKETTE for that file, but since EOF does not include that bad granule, single file COPY or format 6 COPY will still be able to copy the file. Therefore, any bad diskettes should be recoverable by using a format 6 COPY with fliT option to copy the contents of the bad diskette onto another diskette. You can then use either format 5 or 6 COPY with FMT option to copy it back.

This zap is large as part of SYS6/SYS is being moved to SYS17/SYS to make more patch area available in SYS6/SYS
SYS6/SYS,07,79    change  52 CD 35 55 ED  to  52 C3 1C 50 ED

SYS6/SYS,21,85    change  3E E6 28  to  3E F3 28

SYS17/SYS,00,0C   change  2A C2 81 4E 78  to  2A C0 00 00 78

SYS17/SYS,03,2C   through  9E was all zeroes, change to

                                    CD 35 55 ED
5B Cl 59 CD 84 57 ED 4B 94 59 CB 49 20 5E CD F9
56 1E 61 3A C6 59 BB 38 0E 3A B8 59 BB 30 08 1D
6B 36 FF 1D 23 20 FA CB 68 28 06 2A 81 59 22 CE
42 79 E6 0C 01 10 00 11 D0 42 21 83 59 20 07 21
8B 59 1E D8 0E 08 ED B0 2A Dl 59 ED 5B C3 59 B7
ED 52 EB 38 11 28 0F 2A C3 59 3A BC 59 CD B4 4C
26 42 4F CD 62 57 CD 1F 49 C2 CB 54 C3 2D 55
      

******** ZAP 058 ******** 12/01/81 ******** V2M1 ********
Mandatory zap to LMOFFSET to correct error occuring when a object code block load point is in the range 3F00 to 3FFFH.
LMOFFSET/CMD,01,36    change  78 05 85  to  78 3D 85
      

******** ZAP 059 ******** 12/28/81 ******** V2M1 ********
Mandatory zap to correct 3 bytes wrong in ZAP 054 (EDTASM), if not already corrected. The entire correct zap is given here. The corrections are to change to two occurrences of EB in the 1st part to 03 and the occurrence of 30 in the 2nd part to 31.
EDTASM/CMD,27,30    change  CD A9 70 03  to  CD 8B 72 03

EDTASM/CMD,31,12    change  AA 53 36 00 El 7E  to  F5 CD A9 70 F1 09
      

******** ZAP 060 ******** 12/28/81 ******** V2M1 ********
Mandatory zap to DOS to eliminate disk status register read for all interrupts except the disk I/O (taking NEWDOS/80 back to the original TRSDOS way). NEWDOS/BO read the status on every interrupt in order to eliminate some code in the eternal quest to make more space available in SYSO. This worked fine until CPU speed up hardware modifications were devised that shift the CPU to slow speed for a number of milliseconds each time the status register was accessed. With NEWDOS/80 reading the status register every 25 ms, the CPU was spending most of its time at the slow speed if the user was using high speed and had set the switch enabling low speed to be temporarily switched. Most users just let the computer run always at the high speed and there was no problem; however, the 5MHZ speed is very marginal in supporting I/O thus requiring the slowdown. This zap does not eliminate other status reads done by NEWDOS/80 (such as to keep drives rotating if they are already rotating). This zap should eliminate most of the CPU slowdowns that were occuring. This zap was long delayed as it uses 7 of the last 10 zap bytes available in SYS0.
SYS0/SYS,00,33    change
00 00 00 00 00 00 00  to  F5 07 DC E8 47 F1 C9

SYS0/SYS,02,E7    change
3A EC 37 3A E0 37 01 00 FC 45 07 DC  to
3A E0 37 07 CD 53 01 00 FC 45 40 DC
      

******** ZAP 061 ******** 12/28/81 ******** V2M1 ********
Optional zap to DOS to cause DIR to actually read ENTER and BREAK from the keyboard rather than just look at the keyboard matrix. This zap allows BREAK to work for that function only if the BREAK key is enabled. This zap allows remote terminal operators of NEWDOS/80 to perform the DIR function when more than one display page will be involved. MEWDOS/8O was not designed to be run from remote terminals and at many places in its code looks directly at the keyboard matrix rather than actually accepting an input key when looking for BREAK, ENTER, UP or RIGHT ARROW. This zap changes only one of these situations, but a number of users have said they would be happy with that.
SYS8/SYS,02,94    change  0A 16 0F CD 6B 50 0B  to  0A CD 6B 50 16 0F CB

SYS8/SYS,03,8A    change
50 3A 40 38 E6 05 28 F9 0F D2 2D 40 3E  to
50 CD 49 00 3D CA 2D 40 FE 0C 20 F5 3E
      

******** ZAP 062 ******** 01/12/82 ******** V2M1 ********
Mandatory zap to DOS force the 4445H call to DOS (back up one record) to set bit 6 of the FCB 2nd byte (disables EOF truncation).
SYS0/SYS,08,77    change  38 31 2B 18 1D CD  to  38 10 2B 18 0D CD
      

******** ZAP 063 ******** 01/18/82 ******** V2M1
Information zap.
1. NEWDOS/80 V2 BASIC functions LOAD, RUN and MERGE implicitly require that the text file being read be already in ascending sorted line number order whereas NEWDOS/SO Version 1, NEWDOS/21, TRSDOS, VTOS, LDOS, DOSPLUS and the other DOS’s do not. Normally, the BASIC program files are in sorted line number order; so this difference was not noticed for some time into Version 2’B release. Some users prefer to create text files in random line number order, relying on the implicit sort (not in NEWDOS/80 V2) done during LOAD, MERGE or RUN to sort the lines. These users must find some way of pre-sorting the text files, and since leading zeroes are suppressed from line numbers (causing lime 5000 to sort before line 51), normal sorts won’t work. The following sort program (known as CODESORT/BAS) will perform the sort, sorting the input text file into a different output text file.
10 CLEAR 2000: DEFINT A-Z: NR=0
20 PRINT"FILESPEC OF BASIC PROGRAM TO BE SORTED?": LINEINPUT FS$
30 OPEN"I",1,FS$: BC!=LOC(1)%
40 IF EOF(1)=0 THEN NR=NR+1: LINEINPUT #l,A$: GOTO 40
50 A$="": CLOSE
60 DIM CD$(NR), IX(NR), SN(NR): CMD"F=SASZ",BC!-NR+200
70 OPEN"I",1,FS$: X=1: K=1
80 IF X>NR THEN 170
90 LINEINPUT #l,CD$(X): Y=LEN(CD$(X)): Z=1: W=0: SN!=0: K=K+l
100 IF Y=0 THEN 160
110 IF Z>Y THEN 130 ELSE J=ASC(MID$(CD$(X),Z,l)): Z=Z+l: IF J=32 THEN 110
120 IF J>=48 AND J<58 THEN W=W+l: SN!=l0*SN!+J-48: GOTO 110
130 IF W>0 AND SN!<65530 THEN SN(X)=SN!-32768: X=X+1: GOTO 80
140 PRINT K;"TH LINE HAS BAD OR MISSING LINE NUMBER. BYPASS IT? (Y/N) ";
145 INPUT A$
150 IF A$="N" THEN END ELSE IF A$<>"Y" THEN INPUT"BAD REPLY";A$: GOTO 150
160 NR=NR-l: GOTO 80
170 CLOSE: IF NR=0 THEN PRINT"NO RECORDS TO SORT": END
180 CMD"O",NR,*IX(l),SN(1)
190 PRINT"SORTED OUTPUT FILESPEC? ";: LINEINPUT FS$
200 OPEN"O",l,FS$
210 FOR X=l TO NR: PRINT #l,CD$(IX(X)): NEXT
220 CLOSE: PRINT"DONE":END
2. In BASIC, RENUM does not renumber the CMD"F",DELETE statement properly. No zap will be issued to correct this.
3. The manual failed to inform programmers building programs to be executed that the command keyword or program name (filespec) is the first parameter of each DOS command and that, on entry to that program or DOS command function, register HL points to the parameters following the program name (filespec) in the DOS command statement that invoked the program. Examples:
1. XXXXXX This DOS command causes user program XXXXXX/CMD to be loaded from whichever drive it is found on into memory and program execution commenced at its entry location. At that time, register HL points to the EOL character (ODH) since there are no parameters following the program’s filespec. Note, in absence of a name-extension for the filespec XXXXXX, /CMD was substituted. Also, since no drive number was given, the drives were searched, starting with the drive 0, looking for the first occurrence of XXXXXX/CMD.
2. YYYY/OBJ:1,5,JJJ:l This DOS command causes user program YYYY/OBJ:l to be loaded into main memory from drive 1 and program execution commences at its entry location. At this time, register HL points the character 5 in the above command, as this is the first character of the first parameter following the program filespec. The user program may interrogate the parameter(s) with the EOL character (ODH) indicating the end of parameters.
3. ZZZ,Y,N,MYFILE This DOS command causes user program ZZZ/CMD to be loaded into main memory and execution started at its entry location with HL pointing to the character Y.
3. A number of users have asked why NEWDOS/80 Version 2 lacks features that other DOS’s have. For the most part and for obscure reasons, we just elected to exclude them, but in many cases the main problem is that sufficient resident main memory space or overlay main memory space or both is not available.
1. In the DOS main memory region, 4000H thru 5IFFH, NEWDOS/80 has 256 bytes less resident (always in memory) code/data than other DOS’s have as it uses this 256 bytes to make the DOS overlay programs (i.e., SYS1/SYS) bigger.
2. Some DOS’s have taken part of their resident code/data into high memory in order to gain more resident memory for DOS. For NEWDOS/80 Version 2, it was decided to remain out of high main memory, with the exception of the spooler, which was already there.
3. NEWDOS/80 has MINI-DOS which most other DOS’s do not. This means that most of the DOS commands (DIR, FREE, LOAD, etc.) that execute in the 5200H thru 6FFFH region of main memory (and may call overlay routines that execute in the 4E00H thru 51FFH region) in other DOS’s must execute in NEWDOS/SO entirely within the 4D00-5lFFH DOS overlay region. This complicates the effort to extend the capabilities of any given DOS command.
4. A number of users have asked why SETCOM and FORMS were not included in Version 2 for the Model I like they were for the Model III. The author’s excuses, weak as they are, are as follows:
1. For FORMS, of the two parameters, only LINES could have been accommodated as that is all the Model I ROM printer routine (used by NEWDOS/80) allows for. Most users that had to change the lines-per-page value at 4018H (16424 decimal) were already doing so, either via the POKE function of BASIC or the M function of DEBUG.
2. For SETCOM, this command changes the parameters in 3 control blocks for the RS-232C interface. NEWDOS/80 Vl and V2 for the Model I have no main memory allocated for these three control blocks, and the Model I ROM does not have some of the routines used to change these control blocks. whereas the Model III does. Lastly, many excellent widely used RS-232C programs were already in existence handling the interface quite well without NEWDOS/80.
5. A number of users have asked why DIRECTORY READ ERROR or DIRECTORY’WRITE ERROR appear as the DOS error message when an error occurs with a directory sector. Why not display the regular error code? We did this in order that normal file processing, the user would know that the directory, rather than his/her file, was the source of the error. At the time the error code substitution takes place, the system does not know whether or not the directory I/O was subsidiary to file I/O. We do apologize for the confusion created when the directory I/O was the main I/O (i.e., in DIR, FREE, etc.). The user can go to SUPERZAP and step through the directory (via DD, DTS or DFS (on DIR/SYS) to determine which sector is bad and what is the actual complaint. VDS mode can, also be used.
6. LNW-80 users should be aware that that computer does not use the Z-80 instruction HALT to trigger the computers RESET line as does, the TRS-80 Model I. Therefore, the BOOT DOS command and any other program that uses the Z-80 HALT instruction to RESET the computer will simply stop execution, which is what the normal Z-80 HALT instruction does. The user will have to actually press the RESET keys.

******** ZAP 064 ******** 02/15/82 ******** V2M1 ********
Mandatory zap to DOS to cause the /./5Y function of chaining (see page 4-11) to properly exit the current DOS-CALL level, if any, under certain circumstances where it was not. This problem can also be avoided by using CHNON,Y instead of /./5Y if DOS is awaiting its next command at that DOS level.
SYS9/SYS,01,97    change  43 B7 20 06 CB
                      to  43 CD 3A 51 CB

SYS9/SYS,04,4E    change
00 00 00 00 00 00 00 00 00 00 00 00 00  to
B7 C2 99 4E 78 E6 50 FE 40 CA 2D 40 C9
      

******** ZAP 065 ******** 02/15/82 ******** V2M1
Information zap.
1. When COPY format 6 (CBF) is used to copy a system diskette and the system files are to be copied, the FMT parameter MUST be specified!!! On page 2-14, last paragraph, is stated "If NFMT is specified, ..... system files are not copied unless already existent in the destination file directory.". This is not true; if NFMT is specified or implied, the files are copied, but (1) SYSO/SYS will usually be in the wrong position causing BOOT to fail and (2) other system files may be in the wrong directory slots, eventually causing even worse trouble.
2. Some users have had GAT OVERFLOW error occur when using CBF with FMT to copy a system diskette. The system files SYS1/SYS through SYS21/SYS on a system diskette are positioned near tbe directory, some file above and some below, to enhance system efficiency. During the CBF COPY, the each system file is assIgned space on the destination diskette in the same position relative to the directdry as on the source diskette, and if that position is beyond either end of the diskette, GAT OVERFLOW error occurs. The solution to the problem is to cause the directory to be positioned nearer the center of the diskette. Two of the destination diskette’s PDRIVE parameters are involved in the directory positioning: GPL and DDSL. Compute the number of lumps on the diskette and compare against DDSL to determine which end of the diskette the directory is too close to. You can take one of three actions to cause the directory to move closer to the diskette center: (1) change the DDSL value, (2) decrease the GPL value if the directory was too near the end of the diskette, or (3) increase the GPL value if the directory was too near track 0.
3. A number of users have complained that the LIST and PRINT commands do not allow for graphic characters. This was done so purposely as the intent with both LIST and PRINT was to provide a rudimentary, emergency method of listing or printing regular text files (files whose printable characters are between 20H and 7FH ASCII or that modulate to those values). These two commands were seldom used in NEWDOS+ or NEWDOS/80 Version 1, and we have been surprised by the increased useage in Version 2. For a subsequent release of NEWDOS8O, we will try to add more capabilities to allow for graphics, but for now we simply apologize that the capability is not there.
4. For Model I users having CPU speed up modification installed that find that NEWDOS/80 Version 2 fails in double density I/O (or single density 8") where NEWDOS/80 Version 1 (using someone else’s double density patches) worked, the user should ask the purveyor whether the speed up modification, when set to normal speed, actually causes the CPU to run slower than the standard Model I speed of 1.772 MHZ. Some of the earlier speed up mods did, and NEWDOS/80 Version 2 cannot tolerate any slowdown below 1.772 MHZ.

******** ZAP 066 ******** 03/16/82 ******** V2M1 ********
Mandatory zap to BASIC to correct error in dynamic MERGE occuring when the old text has lines within the range of the merging text (though not matching line numbers, which is not allowed). This is an unusual condition but nevertheless legal. This error was causing string variables whose strings are in the text area to not be properly repointed into the resulting text.
SYS19/SYS,00,DA     change  C5 21 3E 54 22  to  C5 CD 20 56 22

SYSl9/SYS,02,9D     change  Cl Dl El C9 2A  to  Cl C3 2A 56 2A

SYS19/SYS,02,E2     change  CD F2 54 CD  to  CD 38 56 CD

SYS19/SYS,03,76     change
00 ED 52 38 2E 21 00 00 ED 52 30 27 AF    to
00 00 CD 41 56 21 00 00 09 CD 49 56 AF

SYS19/SYS,04,34     change
          0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 00

            to

          2100 0022 4256 213E 54C9 2A42
56ED 5B7A 5519 2242 56D1 ElC9 474F ED43
4256 C3F2 5401 0000 09ED 5218 03ED 523F
D0Fl C399 55
      

******** ZAP 067 ******** 03/25/82 ******** V2M1 ********
Mandatory zap to allow the TRSDOS 1.2 Model III VISICALC Version VC-150Y0-T83 to operate with Model I NEWDOS/80 Version 2. The 1st zap disables VISICALC’s directory search feature. The 2nd and 3rd zaps insert the Model I HIMEM value. The 4th and 5th zaps disable the disabling of the Model III abort-on-BREAK RS-232 function which is not available on the Model I. The 6th zap performs a Model I check for the BREAK key. The 7th, 8th and 9th zaps disable VISICALC’s direct printer interface (command /PR) with the RS-232 serial port which is not available on the Model I (the user may still use his/her own driver that takes /PP parallel printer output to the RS-232).

The directory search capability of VISICALC is disabled as NEWDOS/80 does not have the RAMDIR facility that Model III TRSDOS does. However, it is possible to use MINI-DOS to search the directory by (1) typing in the /SL command, (2) pressing DFG to enter MINI-DOS, (3) perform the MINI-DOS functions, (4) clear the display, (5) exit from MINI-DOS, (6) back in VISICALC, press three or more CLEARs to clear the command state, (7) execution one of the /T commands to restore the VISICALC display.
VC/CMD,86,CA    change  E5 CD 90 42 FD  to  E5 3E 08 B7 FD

VC/CMD,00,1E    change  2A 11 44 7D  to  2A 49 40 7D

VC/CMD,00,AA    change  2A 11 44 11  to  2A 49 40 11

VC/CMD,84,CB    change  C9 32 03 42 CD  to  C9 00 00 00 CD

VC/CMD,85,25    change  09 32 03 42 CD  to  C9 00 00 00 CD

VC/CMD,83,9D    change
F5 C5 D5 E5 CD 8D 02 28 0A CD 2D A4 El Dl Cl Fl   to
F5 3A 40 38 E6 04 CC 35 A4 C4 2D A4 28 0B 00 Fl

VC/CMD,84,C2    change E5 CD 5A 00  to  E5 00 00 00

VC/CMD,85,05    change E5 CD 55 00  to  E5 00 00 00

VC/CMD,84,BB    change FF 32 FA 41 DD  to  FF 00 00 00 DD
      

******** ZAP 068 ******** 04/13/82 ******** V2M1 ********
Mandatory zap to DOS to correct an error in CREATE whereby the old file’s (not the new) EOF was not being set = 0 when REC=O parameter spec ‘ed or defaulted to.
SYS14/SYS,02,FE    change  28 47  to  28 41
      

******** ZAP 069 ******** 04/13/82 ******** V2M1 ********
Mandatory zap to DOS to correct error in the DMDB function of SUPERZAP where the F, function was not displaying the correct dump location.
SUPERZAP/CMD,05,12    change  03 2A B2 54 CD  to  03 CD 14 52 CD

SUPERZAP/CMD,00,18    change  00 00 00 00 00 00  to  3A B3 54 67 18 F6
      

******** ZAP 070 ******** 04/23/82 ******** V2M1 ********
Mandatory zap to BASIC to correct an error in CMD"O" sort of floating point values and, to a much lesser degreee, of character strings. It is astonishing that this error was finally reported 8 months after Version 2 release; we simply refused to believe it as this meant virtually no one is using the floating point sort feature. The reporting user was persistent, however, sending in a very detailed problem report even so far as providing the zap! Well done!!! We thank this user and all others that persist in proving their point.
SYS21/SYS,03,1E    change  18 29 B7  to  18 2B B7
      

******** ZAP 071 ******** 05/04/82 ******** V2M1 ********
Mandatory zap to VISICALC version VC-160Y0-T83 for Model III TRSDOS 1.3 to operate with Model I NEWDOS/80 Version 2. Refer to ZAP 067 as this zap performs the same functions as that zap did for TRSDOS 1.2 version.
VC/CMD,86,EB    change     E5 CD 90 42 FD       to    E5 3E 08 B7 FD

VC/CMD,00,1E    change     2A 11 44 7D          to    2A 49 40 7D

VC/CMD,00,B5    change     2A 11 44 11          to    2A 49 40 11

VC/CMD,84,EF    change     C9 32 03 42 CD       to    C9 00 00 00 CD

VC/CMD,85,46    change     C9 32 03 42 CD       to    C9 00 00 00 CD

VC/CMD,83,BB    change
F5 C5 D5 E5 CD 8D 02 28 0A CD 4B A4 E1 D1 C1 F1 to
F5 3A 40 E8 E6 04 CC 53 A4 C4 4B A4 28 0B 00 F1

VC/CMD,84,E6    change     E5 CD 5A 00          to    E5 00 00 00

VC/CMD,85,26    change     E5 CD 55 00          to    E5 00 00 00

VC/CMD,84,DF    change     FF 32 FA 41 DD       to    FF 00 00 00 DD
      

******** ZAP 072 ******** 05/04/82 ******** V2M1 ********
Information zap on Model III TRSDOS diskettes.
Despite explicit and implicit statements in the manual and the zaps, users continue to think that Model III TRSDOS type diskettes are directly useable with NEWDOS/80 Version 2. NEWDOS/80 Version 2, with two exceptions, CANNOT, repeat, CANNOT operate with TRSDOS Model III system or data diskettes. Please believe us; this is so!!!! DO NOT ATTEMPT to use Model III type diskettes (data or system) with NEWDOS/80 except for the special conditions of COPY and SUPERZAP wherein PDRIVE TI flag M is used!!!!! If you must use the DIR command to determine what is on a Model III TRSDOS type diskette, do so under TRSDOS, not NEWDOS.
The directory for Model III TRSDOS system and data diskettes is markedly different from the directory used on Model I TRSDOS 2.3 and all NEWDOS diskettes. For NEWDOS/80 Version 2 on the Model III, Apparat elected to remain with the old style directory so that data diskettes (once the address mark had been adjusted; see WRDIRP command and SYSTEM option BN) could be used interchangeably between the Model I and Model III under NEWDOS/80 Version 2 on both computers.
Realizing that data files and some program files must be transferable between TRSDOS Model III type diskettes and NEWDOS/80 Version 2 type diskettes. NEWDOS/80's COPY command, formats 1-4 and 6, allow, via special PDRIVE conditions, files to be copied from a Model III TRSDOS type diskette to a NEWDOS/80 Version 2 type diskette and from a NEWDOS/80 Version 2 type diskette to a Model III TRSDOS type diskette (note, COPY formats 1 and 2 filespecs for Model III TRSDOS files must have an explicit drive number). The special PDRIVE state is given in PDRIVE, example 3, page 2-38, and provides only for Model III TRSDOS type diskettes that are single sided, double density, 40 track. On your master Model III NEWDOS/80 system diskette, PDRIVE display slot # 4 was initialized to the correct value to use with these Model III TR8DOS 1.3 type diskettes (see zap 013 for TRSDOS 1.2 or 1.1 diskettes; see zap 031 far Model I TRSDOS 2.3B diskettes). For the remainder of this discussion, we will assume PDRIVE specification 4 contains the following values:
TI=xM,TD=E,TC=40,SPT=18,TSR=3,GPL=6,DDSL=17,DDGA=2
where x is C for PERCOM type double density interface and E for LNW type interface.
There are many variations available for copying to/from Model III TRSDOS diskettes which the more experienced NEWDOS user will adapt for his/her own uses. The following examples are to get the novice through the first anxious moments. In each example, drive 0 is assumed a double density drive.
1. To copy file XXX/DAT from a Model III TRSDOS type diskette to a preformated NEWDOS/80 Version 2 diskette, the following command will work:
COPY,XXX/DAT:0,XXX/DAT:1 ,SPDN=4
NEWDOS/80 will ask for the mount of the source diskette (the Model III TRSDOS type diskette) and the system diskette (the NEWDOS/80 system diskette) on drive 0 as necessary.
2. To copy multiple files from a Model III TRSDOS type diskette to a previously formatted NEWDOS/80 type diskette, the following command will work:
COPY,0,l, ,NFMT,CBF,CFWO,SPDN=4
NEWDOS/80 will ask for the mount of the source diskette (the Model III TRSDOS type diskette) and the system diskette (the NEWDOS/80 system diskette) on drive 0 as necessary. The user will be asked, one file at a time, which files are to be copied, except that files marked as system files are excluded automatically from the copy. To copy a system file, use the single file copy example above.
3. To copy file XXX/DAT from a NEWDOS/80 Version 2 diskette to Model III TRSDOS diskette, the following command will work:
COPY,XXX/DAT:l,XXX/DAT:0,DPDN=4
NEWDOS/80 will ask for the mount of the destination diskette (the Model III TRSDOS type diskette) and the system diskette (the NEWDOS/80 system diskette) on drive 0 as necessary.
4. To copy multiple files from a NEWDOS/80 type diskette to a previously formatted (under TRSDOS) Model III TRSDOS type diskette, the following command will work:
COPY,l,0,,NFMT,CBF,CFWO,DPDN=4
NEWDOS/80 will ask for the mount of the destination diskette (the Model III TRSDOS type diskette) and the system diskette (the NEWDOS/80 system diskette) on drive 0 as necessary. The operator will be asked, one file at a time, to select which files are to be copied, excepting that any files marked as system files are automatically excluded from the copy. To copy a system file, use the single file copy example given above.
NEWDOS/80 Version 2 does not provide a method of copying to/from DOS's other than itself and TRSDOS. It is our intention that the TRSDOS diskette remain the common media for moving data between non-TRSDOS DOS's which is why we took the extra trouble to be able to copy TO a Model III TRSDOS diskette.
For the experienced user, SUPERZAP modes DD and DTS can be used to inspect Model III TRSDOS type diskettes provided the PDRIVE specifications are set correctly. The command
PDRIVE,0,l=4,A
will activate the drive #4 specifications as drive #1's specifications, thus allowing SUPERZAP to inspect a Model III TRSDOS type diskette on drive 1. When done, don't forget to change the PDRIVE specifications for drive 1 back. The Model III TRSDOS directory is 18 sectors long, starting at relative sector 306; remember, the directory format is different than that for NEWDOS/80.

******** ZAP 073 ******** 05/04/82 ******** V2M1 ********
Information zap on Model I TRSDOS 2.3B and higher diskettes. Refer also to ZAP 031.
Some time ago Radio Shack announced a double density modification to the Model I TRSDOS. To date, this modification is not available and Apparat does not know what zaps will have to be issued to operate with the new Model I TRSDOS 2.3B or higher double density diskettes. We assume that the new Model I TRBDOS will continue with the implementation of RBA format in the FCB’s and the directories (which make the new TRSDOS diskettes incompatible with the old TRSDOS and with NEWDOS diskettes), and that like Model III TRSDOS diskettes, the new Model I TRSDOS diskettes will useable with NEWDOS/80 Version 2 only with COPY and SUPERZAP (see above zap) when the PDRIVE setting indudes TI flagM. However, for now, use of flag M does not allow access to Model I TRSDOS double density diskettes as a TD code for double density implies Model III.

******** ZAP 074 ******** 05/04/82 ******** V2M1 ********
Mandatory zap to CHAINBLD/BAS to eliminate an unintended and non-displayed CLEAR character that causes trouble during PRINT of an ASCII copy of the program. This character is non-displayed but is the character in text immediately following the G0SUB36 of line 92. Load the program under BASIC, delete the character, and SAVE the CHAIBLD/BAS file back. Line 92 should display exactly the same after the character delete as before.

******** ZAP 075 ******** 05/04/82 ******** V2M1 ********
Mandatory zap to BASIC to correct memory-wipe-out error caused in certain circumstances by a REF= statement containing a ‘ character. The actual error is at lA8B - 90 in the ROM and can be triggered in non-disk BASIC by keying in twice the direct command sss' where sss is three spaces. By making a change to NEWDOS/80's BASIC, the problem with REF is avoided.
SYS18/SYS,02,1A         change
36 20 23 DF 38 FA 2B 36 FF 18 39 EB             to
36 FF 23 DF 30 3E 36 20 23 18 F8 EB
      

******** ZAP 076 ******** 06/18/82 ******** V2M1 ********
Mandatory zap to DOS to allow NEWDOS/80 to run with the Radio Shack double density modification. This zap does NOT enable NEWDOS/80 to operate with Model I TRSDOS 2.7DD double density diskettes (see ZAP 078). PDRIVE TI flag D is hereby activated (please note this in the margin on page 2-34) for the Model I to mean the Radio Shack double density interface, and all PDRIVE specifications for this interface must use TI flag A or D for single density diskettes and TI flag D for double density diskettes. If drive 0 is to be double density, TI=DK must be specified (with TC reduced by 1 (i.e., 34, 40, 76 or 79)). The Percom, LNW and Omikron double density interfaces for the Model I do not use write precompensation as does the Radio Shack interface. Since there is not enough resident DOS patch area to patch in precompensation and still retain system diskette interchangeability with other interfaces, it has been left out of this mandatory zap, but has been included as optional zap 077 below wherein the zapped NEWDOS/8O system diskette must only be run with an unmodified interface or with the Radio Shack DD interface.
******** Creating a system diskette to operate with a different I/O interface (i.e. , the R. S. doubler) requires that the system diskette be created by format 5 or 6 COPY with FMT parameter specified.
******** TI flag D is interdrive mutually exclusive with flags B, C and E meaning that if D is specified in any drive's specification, then no other drive's specification may contain TI flags B, C or E. "TI= SPEC BETWEEN DRIVES INCOMPATIBLE" error will be given if this interdrive mutual exclusion is violated, requesting that you alter the various PDRIVE specs until atmost one of TI flags B, C, D or E is represented in the various PDRIVE specifications.
********* NEVER, NEVER, NEVER reset or boot the computer with PDRIVE showing an error. If this is done, the initialization routines will simply refuse to boot.
SYS6/SYS,07,7D  change
                                ED 5BC1
59CD 8457 ED4B 9459 CB49 2047 CDF9 56CB
6828 062A 8159 22CE 42
to
                                DD 5604
DD4E 06DD 7E02 E6lC FEO8 C079 EE20 DD77
06C9 DD71 06DD 7307 C9

SYS6/SYS,27,Cl  change  07 DD 56 04 DD  to      07 CD D7 54 DD

SYS6/SYS,27,CD  change
01 CD 59 69 20 03 CD AA 67 Dl DD E3 F5 DD 73 07 DD      to
01 C5 CD 59 69 CC AA 67 Cl Dl DD E3 F5 CD EC 54 DD

SYS16/SYS,00,D6 change  05 7B 07 F6 FC 57 DD    to   05 16 80 CD 95 51 DD

SYS16/SYS,02,56 change  E6 68 CO        to      E6 60 CO

SYS16/SYS,02,6A change  20 1D CB        to      20 10 CB

SYS16/SYS,04,A9 change  00 00 00 00 00 00       to      CB 43 C0 16 A0 C9
      

******** ZAP 077 ******** 06/18/82 ******** V2M1 ********
Optional zap to DOS to enable the Radio Shack double density write precompensation logic. When this zap is applied, the system diskette must only be used with either an expansion interface that has not been modified for disk double density or 8 inch drives or has been modified for the Radio Shack double density disk I/O. Once the diskette is modified, indicate on its label that this zap is installed.
SYS0/SYS,01,40  change
EF 00 00 00 3E 2A 18 AE C3      to      EF 32 EE 37 C3 67 47 00 C3

SYS0/SYS,01,62  change
EF 00 00 00 00 00 00 18 D9 AF   to      EF 3E CO 30 DA 3E E0 18 D6 AF

SYS0/SYS,03,9A  change
CD 67 47        to      CD B3 47

SYS0/SYS,04,A9  change
5E F3 3A 11 43 F6 FE 77 36 D0 FB 23             to
5E 18 08 3A 0D 43 0F BA C3 76 44 23

SYS6/SYS,29,5F  change  CD 67 47        to      CD B3 47
      

******** ZAP 078 ******** 06/18/82 ******** V2M1 ********
Optional zap to allow COPY formats 1, 2, 3, 4 and 6 to copy files from or to Model I TRSDOS 2.7DD double density diskettes when the PDRIVE for that diskette is:
TI=xM,TD=E,TC=tc,SPT=18,TSR=3,GPL=6,DDSL=dt,DDGA=2
where:
x = C for Percom type double density modification, D for Radio Shack type modification and E for LNW type modification.
tc = diskette track count, 35, 40 or whatever. This track count includes the single density track 0.
dt = the directory track number (the standard is 17).
NEWDOS/80 must be given the correct value as it does not obtain the value from the diskette's boot sector in the single density track 0.
See example 3, page 2-38. If ZAP 013 is applied to the diskette receiving this zap, ZAP 013 must be taken out before this zap is applied. Once this zap has been applied, the zapped diskette cannot be used to copy to/from Model III TRSDOS diskettes or to/from Model I TRSDOS 2.3B diskettes; this zap should only be applied to a special NEWDOS/80 system diskette whose sole function is to be used when copying files to/from Model I TRBDOS 2.7DD double density diskettes.
A Model I TRSDOS 2.7DD double density diskette cannot be formatted by NEWDOS/80, and it cannot be format 5 copied by NEWDOS/80, not even via the BDU option. Further, remember, format 6 (CBF) COPY does not copy system file, to/from TRSDOS diskettes; formats 1 through 4 do, however.
Users must be aware that Model I TRSDOS 2.7DD double density diskettes are written with track 0 in single density and all other tracks in double density; the directory information assumes track 0 is in double density and counts its information from track 0's 1st sector. Note, that track 0 is allocated on all diskettes to BOOT, a file that contains 10 sectors, not 18.
SYS6/SYS,14,25  change
00 3D 46 01 A8 41 46 01 A9 37 47 03 C3 0B 5C 37 48 01 0D 77 48 03 C3    to
00 A5 48 01 3E EE 48 01 00 F3 48 07 ED 5B 99 43 CD 0B 5C 8A 5B 00 C3

SYS6/SYS,14,67  change  01 50 D0        to      01 80 D0

SYS6/SYS,14,82  change
00 61 50 03 3E lA B7 D6         to      O0 67 50 03 36 80 23 D6

SYS6/SYS,14,8E  change
5C 12 51 01 1A 55 51 04 21 EF 5C C9   to   5C OE 51 01 00 55 51 04 21 CD 40 C9

SYS6/SYS,14,A2  change  00 61 4E 01 OD 6C    to   00 8F 4E 01 80 6C

SYS6/SYS,14,Bl  change
5B 18 EF 4E 02 35 56 DA 4E 01 2F 8B 4E 01 18 72         to
5B 28 EF 4E 02 35 56 E9 4F 02 36 00 00 5C 00 72

SYS6/SYS,14,DO  change
00 FB C1 20 OA 3A C4 46 36      to      00 21 08 00 19 7E 12 C9 E6

SYS6/SYS,14,E9  change  3E 05 CD        to      3E 08 CD

SYS6/SYS,14,FB  change  3E 30 CD        to      3E 20 CD

SYS6/SYS,15,21  change  06 50 7E        to      06 80 7E

SYS6/SYS,20,11  change  01 EF 5C 23     to      01 CD 40 23

SYS6/SYS,20,97  change  3E 50 20        to      3E 80 20
      

******** ZAP 079 ******** 06/27/82 ******** V2M1 ********
Mandatory zap to DOS to correct error occurring when a file with EOF = 0 is copied (via single file COPY) to a NEWDOS/80 diskette from TRSDOS diskette other than the old TRSDOS 2.3 (or as now being called TRSDOS 2.3A) diskettes.
SYS6/SYS,05,C5  change
52 3A 14 53 B7 C8 CD 35 55 2A           to
52 CD 35 55 3A 14 53 B7 C8 2A
      

******** ZAP 080 ******** 07/19/82 ******** V2M1 ********
Mandatory zap to NEWDOS/80's ASPOOL program to correct error in the *ASP,S function where the computer is forced to DOS READY after the remaining spooled print completes printing. Instead, the delayed completion of the function should simply continue the interrupted program. To make room for this correction, the SPOOL PURGED message is no longer displayed. To determine that the spooler is gone, simply execute the *ASP command asking for spooler status. If the response is FILE NOT IN DIRECTORY, the spooler is gone.
ASPOOL/MAS,02,E8        change
44 C2 09 44 21 8B 58 CD 67 44 C3 2D 40 01       to
44 C1 21 08 44 B7 ED 42 C8 C3 15 55 00 01
      

******** ZAP 081 ******** 08/17/82 ******** V2M1 ********
Mandatory zap to LMOFFSET to correct error where the first program is stored with a disable-DOS appendage and the second program is stored with an appendage that does not disable DOS. This error causes the 2nd stored program to have a bad appendage.
LMOFFSET/CMD,00,34      change  53 21 3E 5A CD  to      53 CD 15 5D CD

LMOFFSET/CMD,09,8F      change

00 00 00 00 00 00 00 00 00  to  3E 50 32 C3 58 21 3E 5A C9
      

******** ZAP 082 ******** 08/31/82 ******** V2M1 ********
Information zap to allow BASIC and assembler programs to set the lower case state with the Model I NEWDOS/80 Version 2 DOS resident code. To execute the equivalent of the DOS command LC,N without causing disk I/O, BASIC programs execute POKE 17844,0 and assembler programs store 00 into 45B4H. To execute the equivalent of DOS command LC,Y without causing disk I/O, BASIC programs do POKE 17844,201 and assembler language programs store 0C9H into 45B4H. Remember, the lower case driver (see DOS command LCDVR) must be active for these POKEs to work.
********* WARNING!!!!! This 17844 (45B4H) location is NEWDOS/80 Version 2 dependent and definitely will be different in any subsequent NEWDOS/80 release. Users should mark this carefully in their programs. This is why we were so reluctant to release this information.

******** ZAP 083 ******** 09/02/82 ******** V2M1 ********
Mandatory zap to Radio Shack's Model I SuperSCRIPSIT for TRSDOS 2.3 (not 2.3B or 2.7DD) to enable it to run with the Model I NEWDOS/80 Version 2:
1. Allow the Main Menu Directory function to work. An actual NEWDOS/80 directory is executed via DOS-CALL; so the display will look different from that for TRSD0S. NOTE, the main menu display for the Model I does not show the ' Display disk directory option' as it does for the Model III, but a response of D will trigger it.
2. Allow the program to determine the number of 1024 byte page units of diskette space are available on the target drive. To do this, the DOS command DIR x,/Q9Q (where x is the drive #) is executed via DOS-CALL as NEWDOS/80 does not have the RAMDIR function. This causes an extra directory display to appear for during Main Memory function 0 that opens a document (appears after you have adjusted the document control data). This extra directory display may also appear at other times.
This zapped SuperSCRIPSIT must only be used with NEWDOS/80 Version 2 for the Model I.
With SuperSCRIPSIT, users may use DOS functions DFG (MINI-DOS) and 123 (DEBUG), but they must be very careful when pressing the three keys as SuperSCRIPSIT is likely to receive one or more of them. When a page of text is displayed, using the control-H command (HELP) puts the users where DFG or 123 may be pressed. Upon executing DOS command MDRET (to exit Mini-DOS back to SuperSCRIPT) or DEBUG command G (to exit DEBUG back to SuperSCRIPT), press BREAK to return to the page. If HELP was not available, you will additionally have to press control-T followed by BREAK to get back the full display. From the main menu, use option D to display a directory; then while the program is awaiting BREAK, you can press DFG or 123. WARNING!!!! Do not exit directly to DOS from Mini-DOS or DEBUG without giving SuperSCRIPSIT its chance to write data from memory and close its files; this can be disastrous to your document file.
SCRIPSIT/CMD,09,06      change
               AB4F CDF0 4AC0 2100 4D01
2300 CB1E 3801 04CB 1E38 0104 0D23 20F2
0405 2801 0102 005B 0521 0500 CD7l 6606
04CD 5166 7D32 227E AFC9 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000
t0
               ABC6 3032 225B 211E 5BCD
1944 C006 0411 333C 21DC AC1A 7713 D630
FE0A 3001 0102 005B 2310 F436 84CD B268
0605 CD71 6606 04CD 5166 7D24 2528 023E
FF32 227E AFC9 4449 5220 302C 2F51 3951
0D00

SCR17/CTL,02,3A change
69 FE 30 38 F9 FE 34 30 F5 CD E5 75 OE 00 32 71 42 CD 19 44 3E 0F CD 33 00 21
        to
69 32 70 8D 21 6C 8D CD 19 44 28 05 F6 CO CD 09 44 18 06 44 49 52 20 30 OD 21

SCR17/CTL,04,AF change  8E 00 4E        to      8E 44 4E
      

******** ZAP 084 ******** 09/17/82 ******** V2M1 ********
Information zap.
1. Most users are still puzzled about using multi-dimension arrays with BASIC's. CMD"O". Please refer to section 7.21 in the manual and ZAP 41.4. CMD"O" was intended for single dimension arrays only, but it was found that a multi-dimension array could also be sorted if the user understands that the arrays items sorted (directly or indirectly) actually occupy consecutive memory locations (as assigned by BASIC during execution of the associated DIM statement) starting with the element specified in the CMD "0" statement. For single dimension arrays, this is the same order as ascending order of subscript, but for multi-dimension arrays, the order of elements used in the sort is COMPLEX and is given by the REN formulas. If you are going to sort a multi-dimension array, it is highly recommend that the sort start with the array's first element (i.e., the array's item specified in the CMD"O" statement should have all zero subscripts (i.e., A(0,0,O) for a 3 dimension array)). If you use anything other than zero subscripts for the sort of a multi-dimension array, you must be very clever to figure out which elements actually participate in the sort.
The REN formulas given on pages 7-14 and 7-15 show how to compute the REN for a given element in the array. Following are the formulas for computing the element subscripts corresponding to a given REN value (remember, the first REN value is zero).
1. For a single dimension array whose DIM statement is DIM A(R1) and for array element A(X1):
Xl = REN
2. For a two dimension array whose DIM statement is DIM A(R1,R2) and for array element A(X1,X2):
REN/(R1+1) gives a quotient that is X2 and a remainder that is Xl.
3. For a three dimension array whose DIM statement is DIM A(R1,R2,R3) and for array element A(X1,X2,X3):
REN/((R1+1)*(R2+1)) gives a quotient that is X3 and remainder M2 such that M2/(R1+1) gives a quotient that is X2 and a remainder that is Xl.
For an n dimension array (where n is not 1) the calculation involves REN being divided by product of all the ranges (a range is 1 greater than the value given in the DIM statement) except the nth, giving a quotient that is the nth subscript and a remainder that can be used as the REN value for calculating n-1th subscript as if the array had only n-1 dimensions. Continue this loop until n is reduced to 1.
2. Manual correction for ATTRIB, section 2-3, page 2-4. Place a note there to indicate that parameter LRL=1en1 exists, allowing the user to alter the Logical Record Length of the file to the value 1en1 ( 1 to 256 ). This value, kept in the file's FPDE in the directory, is hardly ever used except by DIR, but some people want DIR to show the correct value. Remember, in NEWDOS/80 OPENs of a file, the LRL value is taken from register B rather than from the directory (in BASIC, it comes explicitly or implicitly from the OPEN statement).

******** ZAP 085 ******** 11/29/82 ******** V2M1 ********
Mandatory zap to DOS to correct error that was allowing a format 5 COPY to occur when both diskettes had the same number of sectors but different GPL values.
SYS6/SYS,22,36  change  5A 28 OE CB             to      5A 00 00 CB
      

******** ZAP 086 ******** 12/17/82 ******** V2M1 ********
Mandatory zap to EDTASM to correct error where an error flag was not being reset after failure of a file open, thus causing the next file operation to fail to CLOSE a file properly.
EDTASM/CMD,30,61        change   CA F8 01 CD            to      CA 08 57 CD

EDTASM/CMD,03,23        change   C9 3A 28 52 F6 08 32   to      AF 32 2E 76 C3 F8 01
      

******** ZAP 087 ******** 12/21/82 ******** V2M1 ********
Mandatory zap to BASIC to correct error in CMD"O" direct sort where an array is specified twice in the command sequence (i.e., two parts of a string supply independent sorting criteria.
SYS21/SYS,01,14 change  04 DD 77 04 D7  to      04 CD E0 65 D7

SYS21/SYS,0l,7F change  DF C2 4A 1E Fl  to      DF CD E5 65 Fl

SYS21/SYS,01,8E change  01 32 02 4F Fl  to      01 CD 17 66 F1

SYS2l/SYS,02,88 change  DD 7E 04 B7 28  to      DD CB O4 7E 28

SYS21/SYS,03,EE change  C9 DD 5E 13 DD  to      C9 CD 20 66 DD

SYS21/SYS,04,2C change  14 19 10 FD C9  to      14 C3 2B 66 C9

SYS21/SYS,04,B5         change
0C 28 05 2B 1B ED B8 13 DD 73 09 DD 72 0A DD    to
0C EB B7 ED 42 DD 75 09 CD 34 66 20 22 00 DD

BASIC/CMD,14,E9         change
                      00 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
to
                      DD CB04 FEC9 C24A
1E3A 0251 B7FD 2100 4228 O4FD 2117 42E5

BASIC/CMD,15,00         change
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
00
to
DD6E 05DD 6606 ED5E 05FD 5606 DF20 04DD
CB04 F611 1700 FD19 FD7E 00B9 38E8 E1C9
DDCB 0476 C032 024F C9DD 5E13 DDCB 0476
C8F1 09C9 DDCB 0476 C019 10FD C9DD 740A
09EB DDCB 0476 C078 B128 042B 1BED B8AF
C9