TRS-80 Zaps - DOS - NEWDOS/80 v2.0 (Official, Model III)

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(s). 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 trying 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 to Apparat (as a gift to Apparat, see chapter 11) 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.

The zaps for NEWDOS/80 Version 2.0 on the Model I are on the Model I official zap page. Where a zap exists for both machines, a link under the zap leads to its counterpart.

About This Page: Corrected Zaps

This page is not an exact reproduction of the zaps as Apparat printed them. When the printed zaps were checked against the code they patch and against actual NEWDOS/80 disk images, errors were found in the official zap sheets: wrong bytes, bytes that did not print, and dates out of sequence. This page gives the corrected zaps. Where a printed byte was wrong, a note under that zap gives the printed value and explains from the code why it is wrong.

* * * NEWDOS/80 Version 2.0 Model III ZAP Index * * *

ZAP Reference Index

ZAP# Type/Area/Program Reference
75Mandatory — Utility
ASPOOL/MAS
*ASP,S function
50Mandatory — User
BASCOM/CMD
Microsoft BASIC COMPILER v.5.23
16Mandatory — BASIC
BASIC/CMD
Marked & Fixed Item File Processing
48Mandatory — BASIC
BASIC/CMD
CLOSE command
82Mandatory — BASIC
BASIC/CMD
CMD"O" function
85Mandatory — BASIC
BASIC/CMD
RBA Extended to 16,777,215
50Mandatory — User
BRUN/CMD
Microsoft BASIC COMPILER v 5.23
50Optional — User
BRUN/CMD
Microsoft BASIC COMPILER v.5.23
13Mandatory — Utility
CHAINBLD/BAS
Version 1 Format
70Mandatory — Utility
CHAINBLD/BAS
Non-Displayed Character
50Optional — User
DIR/SYS
Microsoft BASIC COMPILER v.5.23
22Mandatory — Utility
DISASSEM/CMD
RTD Option
72Mandatory — User
EDIT/CMD
Microsoft FORTRAN
30Info — Utility
EDTASM/CMD
Documentation errors
30Info — Utility
EDTASM/CMD
Tape I/O for Mod III not available
17Mandatory — Utility
EDTASM/CMD
Cursor Display
41Mandatory — Utility
EDTASM/CMD
Filespec Response & <Sh-Lf-Arrow>
81Mandatory — Utility
EDTASM/CMD
File Close Problem
83Mandatory — Utility
EDTASM/CMD
Drives stopping
03Optional — Utility
EDTASM/CMD
Disable LC to UC Conversion
72Mandatory — User
F80/CMD
Microsoft FORTRAN
46Mandatory — User
INIT
PROFILE v 3.0
50Mandatory — User
L80/CMD
Microsoft BASIC COMPILER v.5.23
72Mandatory — User
L80/CMD
Microsoft FORTRAN
50Optional — User
L80/CMD
Microsoft BASIC COMPILER v.5.23
53Mandatory — Utility
LMOFFSET/CMD
Object Code Block Load
76Mandatory — Utility
LMOFFSET/CMD
Appendage
28Mandatory — User
RSCOBOL/CMD
Ryan-McFarland Corp COBOL v 1.3B
28Mandatory — User
RUNCOBOL/CMD
Ryan-McFarland Corp's COBOL v 1.3B
77Mandatory — User
SCR17/CTL
R. S. Model III SuperScripsit V1.0
84Mandatory — User
SCR17/CTL
R. S. Model III SuperScripsit V1.1
01Mandatory — User
SCRIPSIT/CMD
SCRIPSIT for Model III (TRSDOS 1.2)
42Mandatory — User
SCRIPSIT/CMD
SCRIPSIT v 3.1 (TRSDOS 1.1 or 1.2)
43Mandatory — User
SCRIPSIT/CMD
Correction to Zap 1, 42
77Mandatory — User
SCRIPSIT/CMD
R. S. Model III SuperScripsit V1.0
84Mandatory — User
SCRIPSIT/CMD
R. S. Model III SuperScripsit V1.1
78Mandatory — User
SCRIPSIT/CMD
Model III Scripsit v 3.2
02Mandatory — User
SCRIPSIT/LC
Radio Shack's Model I SCRIPSIT
14Mandatory — User
SCRIPSIT/LC
Radio Shack's Model I SCRIPSIT
02Mandatory — User
SCRIPSIT/UC
Radio Shack's Model I SCRIPSIT
14Mandatory — User
SCRIPSIT/UC
Radio Shack's Model I SCRIPSIT
12Mandatory — Utility
SUPERZAP/CMD
DM,P functions
27Mandatory — Utility
SUPERZAP/CMD
DM & F functions
65Mandatory — Utility
SUPERZAP/CMD
DMDB function
15Mandatory — DOS
SYS0/SYS
ROUTE command
20Mandatory — DOS
SYS0/SYS
Sector Write Retries
34Mandatory — DOS
SYS0/SYS
ROUTE command
38Mandatory — DOS
SYS0/SYS
Remove Unreleased Zap
39Mandatory — DOS
SYS0/SYS
Disk Write Precompensation
54Mandatory — DOS
SYS0/SYS
AM Disk Controllers
54Mandatory — DOS
SYS0/SYS
8 Inch Disk Operation
56Mandatory — DOS
SYS0/SYS
4445H call to DOS
31Mandatory — DOS
SYS2/SYS
Directory Entries
29Mandatory — DOS
SYS3/SYS
CLOSE & KILL commands
37Optional — DOS
SYS3/SYS
'JKL': Graphics to Epson Printers
09Mandatory — DOS
SYS6/SYS
COPY Format 5
11Mandatory — DOS
SYS6/SYS
COPY & FORMAT: DDSL parameter
18Mandatory — DOS
SYS6/SYS
Granule Lockout Table in Directory
19Mandatory — DOS
SYS6/SYS
FORMAT & COPY commands
20Mandatory — DOS
SYS6/SYS
Sector Write Retries
23Mandatory — DOS
SYS6/SYS
FORMAT: PFST parameter
25Mandatory — DOS
SYS6/SYS
TRSDOS 2.3B (I) or TRSDOS 1.3 (III)
26Mandatory — DOS
SYS6/SYS
TRSDOS 2.3B (I) or TRSDOS for Mod 3
35Mandatory — DOS
SYS6/SYS
SYSTEM: BM parameter disabled
39Mandatory — DOS
SYS6/SYS
Disk Write Precompensation
40Mandatory — DOS
SYS6/SYS
PDRIVE: 8 Inch, Double Density
49Mandatory — DOS
SYS6/SYS
Disk Write Precompensation
51Mandatory — DOS
SYS6/SYS
COPY: CBF param & Model III TRSDOS
52Mandatory — DOS
SYS6/SYS
COPY command
74Mandatory — DOS
SYS6/SYS
COPY: TRSDOS 2.3B or Higher
80Mandatory — DOS
SYS6/SYS
COPY Format 5
07Optional — DOS
SYS6/SYS
Double Density Format Sensitivity
08Optional — DOS
SYS6/SYS
To allow COPY of TRSDOS 1.2 (Mod 3)
73Optional — DOS
SYS6/SYS
Model I TRSDOS 2.7DD Diskettes
44Mandatory — DOS
SYS8/SYS
DIR $ or DIR $0
55Optional — DOS
SYS8/SYS
DIR: Remote Terminal Operators
59Mandatory — DOS
SYS9/SYS
Chaining: /./5Y function
85Mandatory — BASIC
SYS10/SYS
RBA Extended to 16,777,215
33Mandatory — BASIC
SYS11/SYS
RENUM function
36Mandatory — BASIC
SYS12/SYS
REF$ function
15Mandatory — DOS
SYS14/SYS
ROUTE command
64Mandatory — DOS
SYS14/SYS
CREATE: Old File's EOF
45Optional — DOS
SYS14/SYS
PRINT & LIST: Control Characters
10Mandatory — DOS
SYS16/SYS
PDRIVE error
25Mandatory — DOS
SYS16/SYS
TRSDOS 2.3B (I) or TRSDOS 1.3 (III)
40Mandatory — DOS
SYS16/SYS
PDRIVE: 8 Inch, Double Density
35Mandatory — DOS
SYS17/SYS
SYSTEM: BM parameter disabled
52Mandatory — DOS
SYS17/SYS
COPY command
36Mandatory — BASIC
SYS18/SYS
REF$ function
58Mandatory — DOS
SYS18/SYS
Bad Sector Information
71Mandatory — BASIC
SYS18/SYS
REF= statement
62Mandatory — BASIC
SYS19/SYS
Dynamic MERGE
66Mandatory — BASIC
SYS21/SYS
CMD"O" function
82Mandatory — BASIC
SYS21/SYS
CMD"O" function
05Mandatory — User
VC/CMD
VISICALC Model 3 (TRSDOS 1.2)
06Mandatory — User
VC/CMD
Radio Shack's Model I VISICALC
21Mandatory — User
VC/CMD
Radio Shack's Model I VISICALC
63Mandatory — User
VC/CMD
Model III VISICALC v.VC-150Y0-T83
67Mandatory — User
VC/CMD
Model III VISICALC v.VC-160Y0-T83
04Info — DOS
Command
ATTRIB: LRL=xxx Parameter
04Info — DOS
Command
ROUTE: display of routes
04Info — DOS
Command
COPY: DFO parameter
04Info — DOS
Command
FORMAT: RWF parameter
04Info — DOS
Command
TRSDOS $RAMDIR & $FILPTR
24Info — DOS
Command
Model I & Model III Data Exchange
24Info — DOS
Command
COPY: Formats 5 & 6 discussed
30Info — DOS
Command
Documentation Correction
32Info — DOS
Command
ROUTE: Documentation Correction
32Info — BASIC
Command
CMD"O": explanation
32Info — DOS
Command
SYSTEM: AX parameter correction
47Info — DOS
Command
SYSTEM: AJ=N explanation expanded
57Info — DOS
Command
DIR & FREE Error Messages
57Info — User
Command
Program Parameters
59Info — User
Command
Program Parameters
60Info — DOS
Command
COPY: Format 6
60Info — DOS
Command
GAT Overflow & CBF with FMT COPY
60Info — DOS
Command
LIST & PRINT: no graphics
68Info — DOS
Command
Accessing files on Model III TRSDOS
69Info — DOS
Command
Accessing Model I TRSDOS 2.3B & Up
79Info — BASIC
Command
CMD"O" & Multi-Dimension Arrays
57Info — BASIC
Command
BASIC Line Number Sequence
57Info — DOS
Features
Main Memory, High Memory, MINI-DOS
04Info — DOS
General
Reserved Zap Areas in NEWDOS/80
32Info — DOS
General
Cassette I/O
32Info — DOS
General
Automatic Density Recognition
47Info — DOS
General
TRSDOS 2.3B (I) & TRSDOS 1.3 (III)
47Info — DOS
General
Chain Filename & /JCL Extension
04Info — DOS
Mini-dos
Illegal under DOS-CALL
24Info — BASIC
Utility
RENUM usage
32Info — DOS
Zap 25
Documentation Correction
60Info — DOS
Zap 54
AM Disk Controllers
86Info — DOS
Zaps
NEWDOS/80 VERSION 2.5

*** ZAP 001 *** 08/10/81 *** V2M3 ***

Mandatory zap to Model III TRSDOS 1.2 Version of SCRIPSIT to run under NEWDOS/80 Version 2. This zap module will not run on other DOSs. If you are running NEWDOS and files appear to load short one sector, be sure these zaps are in. The first two zaps allow for the difference between NEWDOS/80 and the older TRSDOSs in the FCB NEXT and EOF fields. The next 2 zaps move the stack area down so MINI-DOS can be used.

FileAddressPatch Data
SCRIPSIT/CMD11,3E
Change:01 05 4F
To:01 00 4F
SCRIPSIT/CMD11,C9
Change:B7 C4 D8 5D 79 32 FC 7B 11
To:B7 32 F9 7B C4 D8 5D 00 11
SCRIPSIT/CMD00,1E
Change:31 FF 41
To:31 E0 41
SCRIPSIT/CMD00,B2
Change:31 FF 41
To:31 E0 41
SCRIPSIT/CMD04,11
Change:31 FD 41
To:31 DE 41
SCRIPSIT/CMD06,C0
Change:31 FD 41
To:31 DE 41
SCRIPSIT/CMD12,35
Change:31 FD 41
To:31 DE 41
SCRIPSIT/CMD17,33
Change:31 FD 41
To:31 DE 41
SCRIPSIT/CMD18,E1
Change:31 FD 41
To:31 DE 41
SCRIPSIT/CMD27,ED
Change:31 FD 41
To:31 DE 41
SCRIPSIT/CMD30,0D
Change:31 FD 41
To:31 DE 41

Correction to the printed zap: the official zap sheet prints the third byte of the SCRIPSIT/CMD,11,C9 “to” bytes as FC. Apparat corrected it to F9 in ZAP 043; the bytes above show the corrected value.

*** ZAP 002 *** 08/10/81 *** V2M3 ***

Mandatory zap to the old Model I versions of SCRIPSIT/UC and SCRIPSIT/LC to run under NEWDOS/80 Version 2 on the Model III. This zapped module will not run on other DOSs. The first 3 changes are necessary because of the different way the FCB'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 zaps are in. The 4th zap causes DOS' HIMEM address value in 4411H - 4412H to be used as SCRIPSIT's high memory. The 5th zap re-enables the interrupts so MINI-DOS can be invoked from SCRIPSIT. The 6th through 9th zaps cause parallel printer output to go to port 0F8H. The 10th zap allows for the Model III treating each shift key as an individual code. The 11th through 13th zaps change the stack ptr to allow for MINI-DOS.

FileAddressPatch Data
SCRIPSIT/UC and SCRIPSIT/LC11,75
Change:47 00 CD 6E 7A 4F
To:47 00 3A B9 7C 4F
SCRIPSIT/UC and SCRIPSIT/LC11,FB
Change:B7 C4 EF 5D 79
To:B7 32 B6 7C C4
SCRIPSIT/UC and SCRIPSIT/LC12,00
Change:32 B9 7C 11
To:EF 5D 00 11
SCRIPSIT/UC and SCRIPSIT/LC00,63
Change:7C 21 FF 00 25 7E 2F 77 AE 20 F9 22
To:7C 2A 11 44 00 00 00 00 00 00 00 22
SCRIPSIT/UC and SCRIPSIT/LC00,C3
Change:57 F3 ED
To:57 00 ED
SCRIPSIT/UC and SCRIPSIT/LC00,47
Change:0A 32 E8 37 AF
To:0A D3 F8 00 AF
SCRIPSIT/UC and SCRIPSIT/LC20,B1
Change:0D 32 E8 37 32
To:0D D3 F8 00 32
SCRIPSIT/UC and SCRIPSIT/LC21,79
Change:0D 32 E8 37 D3
To:0D D3 F8 00 D3
SCRIPSIT/UC and SCRIPSIT/LC41,3A
Change:20 32 E8 37 08 C3 74 5F 32 E8 37 C3
To:20 D3 F8 00 08 C3 74 5F D3 F8 00 C3
SCRIPSIT/UC and SCRIPSIT/LC15,43
Change:10 CB 08 30 34 FD 34 4E FD 35 4E 20 2C C6 20 18 28 D6
To:10 57 78 E6 03 28 33 FD 7E 4E B7 20 2D CB EA 18 29 D6
SCRIPSIT/UC and SCRIPSIT/LC00,43
Change:31 FC 41
To:31 E0 41
SCRIPSIT/UC and SCRIPSIT/LC00,D3
Change:31 FC 41
To:31 E0 41
SCRIPSIT/UC and SCRIPSIT/LC04,32
Change:31 FA 41
To:31 DE 41
SCRIPSIT/UC and SCRIPSIT/LC07,00
Change:31 FA 41
To:31 DE 41
SCRIPSIT/UC and SCRIPSIT/LC12,63
Change:31 FA 41
To:31 DE 41
SCRIPSIT/UC and SCRIPSIT/LC17,52
Change:31 FA 41
To:31 DE 41
SCRIPSIT/UC and SCRIPSIT/LC28,CD
Change:31 FA 41
To:31 DE 41
SCRIPSIT/UC and SCRIPSIT/LC30,ED
Change:31 FA 41
To:31 DE 41
SCRIPSIT/UC and SCRIPSIT/LC40,E5
Change:31 FA 41
To:31 DE 41

Model I: ZAP 003

*** ZAP 003 *** 08/10/81 *** V2M3 ***

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.

FileAddressPatch Data
EDTASM/CMD28,DD
Change:FE 61 D8
To:FE 80 D8

Model I: ZAP 006

*** ZAP 004 *** 08/10/81 *** V2M3 ***

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 zaps 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 DFG 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 diskettes. DFO is mutually exclusive with FMT.

6. DOS command FORMAT (see section 2.22) has a new optional parameter RWF (RaW 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.

7. NEWDOS/80 Version 2 does not have the equivalent of Model III TRSDOS's $RAMDIR or $FILPTR functions.

Model I: ZAP 007

*** ZAP 005 *** 08/10/81 *** V2M3 ***

Mandatory zap to allow the TRSDOS 1.2 Model III VISICALC to operate with Model III NEWDOS/80 Version 2. The first zap sets the proper BREAK key enable address. The 2nd zap disables VISICALC's directory search feature.

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.

FileAddressPatch Data
VC/CMD00,F7
Change:52 AE 42 36
To:52 78 44 36
VC/CMD72,0D
Change:E5 CD 90 42 FD
To:E5 3E 08 B7 FD

*** ZAP 006 *** 08/10/81 *** V2M3 ***

Mandatory zap to allow the old Model I VISICALC to operate with Model III NEWDOS/80. The resulting zapped module will not run with TRSDOS or NEWDOS21; so maintain 2 different versions. The first 3 zaps deal with the different handling by NEWDOS/80 of the user 25ms interrupt routines (see sections 3.8 and 3.9). The 4th zap adjusts 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. The 5th and 6th zaps adjust for the different HIMEM location in the Model III. The 7th zap disables the 431>H disable of DEBUG (not used on Model III).

FileAddressPatch Data
VC/CMD03,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/CMD75,15
Change:11 28 9C 22
To:11 1E 55 22
VC/CMD75,21
Change:CD 10 44 C9 3E 03 C3 13 44 CD 4E 53 F5 CD 16 9C 28 0E 3E
To:CD 7B 44 C9 11 1E 55 C3 13 44 CD 4E 53 CD 16 9C C8 00 3E
VC/CMD73,01
Change:C9 FE 18 20
To:C9 37 C9 20
VC/CMD00,18
Change:2A 49 40 7D
To:2A 11 44 7D
VC/CMD00,DC
Change:2A 49 40 11
To:2A 11 44 11
VC/CMD00,F2
Change:00 77 01
To:00 00 01

Model I: ZAP 011

*** ZAP 007 *** 08/10/81 *** V2M3 ***

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.

2. 5B 5B = intermediate sensitivity during formatting. This is the TRSDOS Model III pattern.

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.

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 is already at those locations. Each location receives both bytes, and as a check on each location, the preceding byte is F5.

SYS6/SYS,31,E3
SYS6/SYS,31,FD

Model I: ZAP 012

*** ZAP 008 *** 08/10/81 *** V2M3 ***

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 re-enable COPY to handle TRSDOS 1.3 format Model III diskettes.

FileAddressPatch Data
SYS6/SYS14,75
Change:01 00 7B
To:01 01 7B
SYS6/SYS14,C8
Change:01 00 1D 4E 01 13 00
To:01 13 1D 4E 01 00 00
SYS6/SYS20,EA
Change:61 C8 5E
To:61 C9 5E

Model I: ZAP 013

*** ZAP 009 *** 08/18/81 *** V2M3 ***

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.

FileAddressPatch Data
SYS6/SYS05,96
Change:64 01 00 01 18
To:64 CD 80 5C 18
SYS6/SYS15,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

Model I: ZAP 015

*** ZAP 010 *** 08/18/81 *** V2M3 ***

Correct error in PDRIVE causing SYSTEM PROGRAM NOT FOUND error when the second drive number is specified wrongly as greater than 9.

FileAddressPatch Data
SYS16/SYS00,6A
Change:C3 1A 52 CB
To:C3 3C 50 CB

Model I: ZAP 016

*** ZAP 011 *** 08/18/81 *** V2M3 ***

Mandatory zap to correct error in COPY and FORMAT where DDSL parameter was being erroneously rejected.

FileAddressPatch Data
SYS6/SYS01,FA
Change:CB 70 20
To:CB 52 20

Model I: ZAP 017

*** ZAP 012 *** 08/25/81 *** V2M3 ***

Mandatory zap to SUPERZAP to correct an error where the DM,P functions was not sending the correct memory contents to the printer.

FileAddressPatch Data
SUPERZAP/CMD00,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/CMD03,43
Change:54 3A 91 54 CB
To:54 CD 00 52 CB

Model I: ZAP 018

*** ZAP 013 *** 08/25/81 *** V2M3 ***

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

Model I: ZAP 019

*** ZAP 014 *** 08/25/81 *** V2M3 ***

This zap is an extension of ZAP 002.

FileAddressPatch Data
SCRIPSIT/UC and SCRIPSIT/LC00,28
Change:56 49 53 49 4F 4E 20 4F 46 20 54 41 4E 44 59 20 43 4F 52 50 4F 52 41 54 49 4F 4E 31
To:56 20 4F 46 20 54 41 4E 44 59 20 43 4F 52 50 3A 80 38 CB 4F C8 F6 01 C9 00 00 00 31
SCRIPSIT/UC and SCRIPSIT/LC15,08
Change:0B 3A 80 38 FD
To:0B CD 33 52 FD
SCRIPSIT/UC and SCRIPSIT/LC15,34
Change:0D 3A 80 38 47
To:0D CD 33 52 47

*** ZAP 015 *** 08/28/81 *** V2M3 ***

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.

FileAddressPatch Data
SYS0/SYS07,61
Change:28 39 CD
To:28 5D CD
SYS0/SYS07,9A
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 E1 7A B3 C4 8B 06 C1 D1 E1 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 E1 CD 8B 06 C1 D1 E1 CB 40 28 02 B7 C0 23 7E 23 66 6F 7C B5 20 D3 C3 9D 4C CD
SYS0/SYS09,7F
Change:C9 00 00 00 00 00 00 00 00
To:C9 CB 40 C0 79 C9 49 4B 00
SYS14/SYS02,86
Change:43 00 00 43
To:43 A1 4C 43

Model I: ZAP 020

*** ZAP 016 *** 08/28/81 *** V2M3 ***

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.

FileAddressPatch Data
BASIC/CMD10,F1
Change:CD BA 61 79 DD
To:CD A8 65 00 DD
BASIC/CMD14,B1
Change:00 00 00 00 00 00 00
To:C5 CD BA 61 79 C1 C9

Model I: ZAP 021

*** ZAP 017 *** 08/28/81 *** V2M3 ***

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.

FileAddressPatch Data
EDTASM/CMD05,12
Change:CD 39 59 0E
To:CD 00 57 0E
EDTASM/CMD03,1A
Change:40 7D E6 3F C0 11 C0 FF 19 C9
To:40 CD 39 59 3E 0E C3 39 59 C9

Model I: ZAP 022

*** ZAP 018 *** 08/28/81 *** V2M3 ***

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 is greater than 60H (96 decimal) or if relative byte 60H of the GAT sector = 0FFH, 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 granules than the source diskette. This change corrects this. However, users are warned that diskettes with GPL greater than 2 (such as 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 that 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-copyed using CBF with FMT so this lockout table conflict will be straightened out and DIRCHECK will stop complaining.

FileAddressPatch Data
SYS6/SYS10,0A
Change:3A CA 59 FE 02 C0 7D
To:3A C6 59 FE 61 D0 7D

Model I: ZAP 023

*** ZAP 019 *** 08/30/81 *** V2M3 ***

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 (TRSDOS model III diskette). The BDU option prevents any NEWDOS/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 than 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 M (which also implies I for Model III TRSDOS diskettes). Remember, this is not a TRSDOS Model III format.

FileAddressPatch Data
SYS6/SYS07,1E
Change:C6 22 1A 5B 3E
To:C6 CD 8E 5C 3E
SYS6/SYS15,54
Change:00 00 00 00 00 00 00 00
To:22 1A 5B DD CB 01 F6 C9
SYS6/SYS27,6A
Change:6F C2 47 67
To:6F C4 51 67

Model I: ZAP 024

*** ZAP 020 *** 08/31/81 *** V2M3 ***

Mandatory zap to DOS to eliminate an excessive number of sector write retries due to LOST DATA. Usually the error retry worked, but efficiency suffered as one diskette revolution (200ms) was lost each time.

FileAddressPatch Data
SYS0/SYS02,BD
Change:C5 06 A2 28 03 04 3E 08 32 E1 46 78 32 AC 46 32 B1 46
To:C5 01 02 A2 28 05 01 97 A3 3E 08 32 E1 46 79 CD AB 46
SYS0/SYS03,62
Change:02 3A 87 46 CB 6F 28 07 DB F0 A2 28 FB ED A3 DB F0 A2 28 FB ED A2 7B D3 F4 ED A2 20 FA 18 FE AF
To:02 DB F0 A2 28 FB ED A2 10 FE 05 7B D3 F4 ED A2 20 FA 18 FE 32 8F 46 78 32 9E 46 32 A6 46 C9 AF
SYS6/SYS15,5C
Change:00 00 00 00 00 00 00 00 00
To:32 A6 46 3E 02 32 8F 46 C9
SYS6/SYS30,C9
Change:3A F4 45 32 AC 46 32 B1 46 21
To:3A F5 45 32 9E 46 CD 96 5C 21

*** ZAP 021 *** 09/01/81 *** V2M3 ***

This mandatory zap is an extension to zap 006 for the old Model I VISICALC being used on the Model III.

Changes to enable use of the right shift key.

FileAddressPatch Data
VC/CMD03,69
Change:E6 01 28
To:E6 03 28
VC/CMD03,B3
Change:E6 01 28
To:E6 03 28

Change to enable directory search feature. Note, to work, the directory must start at diskette relative sector 170 and contain only 2 granules (this is the standard when GPL=2, DDSL=17 and DDGA=2 are in effect).

FileAddressPatch Data
VC/CMD68,B8
Change:90 80 40
To:90 82 40

Model I: ZAP 025

*** ZAP 022 *** 09/02/81 *** V2M3 ***

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 "1st byte = low value, 2nd = high." to be "1st byte = high value, 2nd byte = low.".

FileAddressPatch Data
DISASSEM/CMD04,11
Change:5A D5 DD E1 DD
To:5A CD E0 6D DD
DISASSEM/CMD24,60
Change:00 00 00 00 00 00 00
To:D5 DD E1 21 A0 6F C9

Model I: ZAP 027

*** ZAP 023 *** 09/02/81 *** V2M3 ***

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 PFST=tn3 paragraph on page 2-25 the following: PFST is mutually exclusive with N, DDND, ODN, KDN, KDD, DDSL, DDGA and RWF.

The user will notice that neither KDD or RWF were specified in the FORMAT command; however, KDD is a legal parameter and RWF was defined in zap 004.

FileAddressPatch Data
SYS6/SYS03,BE
Change:02 F9 86
To:02 B9 86
SYS6/SYS04,90
Change:00 02 4E
To:00 00 4E

Model I: ZAP 028

*** ZAP 024 *** 09/02/81 *** V2M3 ***

Information only.

1. Chapter 12 failed to make it clear that though diskettes 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 I 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 command WRDIRP or the W function of DIRCHECK. 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 I TRSDOS 2.3, but it can be processed by the Model I 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 III 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 I and model III, set SYSTEM options BK=Y and BN=Y on the Model I 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 diskettes 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 NEWDOS/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 is 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 at least 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 diskettes 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 (FMT) or not (NFMT). Formatting a diskette magnetically initializes the entire diskette including the inter-sector control bytes used only by the drives and the controller. Many users prefer to do this every time 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 assures 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 same position 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 specific FDEs in the directory, and only FMT can assure that these FDEs 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 BOOT/SYS file to contain the proper BOOT code and drive 0 PDRIVE specifications.

Model I: ZAP 030

*** ZAP 025 *** 09/10/81 *** V2M3 ***

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 I 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 is 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 I TRSDOS 2.3B or higher diskettes with that system being somewhat different than Model I TRSDOS 2.3, including the use of RBAs as discussed in section 12.1 for the Model III. These diskettes are NOT compatible with NEWDOS/80 diskettes, and, as with Model III TRSDOS diskettes, COPY is the only function of NEWDOS/80 that can be used with the Model I TRSDOS 2.3B diskettes (though FREE and DIR (except EOF and special flags) appear to work).

Files on either Model III TRSDOS or Model I TRSDOS 2.3B diskettes 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 008 must NOT be installed in a NEWDOS/80 that is used to copy Model I TRSDOS 2.3B files. ZAP 008 must be used for Model III TRSDOS 1.1 or 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 I TRSDOS 2.3B diskettes, see ZAP 025."

2. Page 2-15, "The COPY command" paragraph: "This section applies also to standard 35 track, single sided, single density diskettes for Model I TRSDOS 2.3B or higher."

3. Page 2-15, "The user must" paragraph: "See examples 1 and 3, section 2.37".

4. Page 2-35, "Flag M" paragraph: "Expanded to include Model I TRSDOS 2.3B or higher diskettes. See ZAP 025

5. Page 2-38, example 1: "For Model I TRSDOS 2.3B diskettes, use TI=AM (see ZAP 025)." Also in this paragraph, change the last two words to read "option BN" instead of AN.

6. Page 12-7, paragraph 12.5.1: "See ZAP 025."

FileAddressPatch Data
SYS6/SYS00,7D
Change:CD B3 63 21
To:CD 9F 5C 21
SYS6/SYS15,65
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 01 00 EA 5C 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 5B 22 F7 55 21 B1 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 01 00 EA 5C 2D 61 C9
SYS6/SYS22,6B
Change:CD B3 63 CD
To:CD 9F 5C CD
SYS16/SYS01,E9
Change:05 28 02 3E 03 CD
To:05 00 C4 7E 51 CD
SYS16/SYS02,A0
Change:CB E3 DD 7E 05 FE 06 C0
To:CB 43 3E 06 C4 78 51 C0
SYS16/SYS04,8B
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

Model I: ZAP 031

*** ZAP 026 *** 09/10/81 *** V2M3 ***

Mandatory zap to DOS to:

1. prevent COPY from setting file update flag on in Model I 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.

FileAddressPatch Data
SYS6/SYS10,83
Change:C3 39 44 DD
To:C3 ED 5C DD
SYS6/SYS15,B7
Change:00 00 00 00 00 00 00 00 00 00 00 00 00 00
To:3A 82 42 CB 6F 28 04 DD CB 02 EE C3 39 44
SYS6/SYS16,F0
Change:61 20 0D 3A 96 59 CB
To:61 3A 96 59 20 0A CB

Model I: ZAP 032

*** ZAP 027 *** 09/10/81 *** V2M3 ***

Mandatory zap to correct error in SUPERZAP during the DM function and during the F, find function.

FileAddressPatch Data
SUPERZAP/CMD00,11
Change:00 00 00 00 00 00 00
To:6B 63 4B 22 C3 54 C9
SUPERZAP/CMD05,0B
Change:00 6B 63 4B CB
To:00 CD 0D 52 CB

Model I: ZAP 033

*** ZAP 028 *** 09/11/81 *** V2M3 ***

Mandatory zap to the Ryan-McFarland Corp's COBOL version 1.3B distributed by Radio Shack 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 025).

FileAddressPatch Data
RSCOBOL/CMD99,7D
Change:44 24 3E 40 49
To:44 82 27 44 49
RSCOBOL/CMD99,CF
Change:44 13 1F 44
To:44 82 27 44
RUNCOBOL/CMD115,82
Change:44 3E 40 49 40 24 17
To:44 27 44 49 40 82 17
RUNCOBOL/CMD115,99
Change:02 1F 44 11 44 13 0A
To:02 27 44 11 44 82 0A

Model I: ZAP 034

*** ZAP 029 *** 09/13/81 *** V2M3 ***

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 FDE slot in a directory sector. This error was missed during BETA testing as it was caused by a late adjustment to handle the TRSDOS Model III diskettes. 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.

FileAddressPatch Data
SYS3/SYS01,A9
Change:00 7D D6 17 BB 30 1D
To:00 7B C6 16 BD 38 1D

Model I: ZAP 035

*** ZAP 030 *** 09/13/81 *** V2M3 ***

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 NWD80V2/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=addrl function of ROUTE requires the main memory location addrl 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 "memory location of a user".

Model I: ZAP 036

*** ZAP 031 *** 09/29/81 *** V2M3 ***

Mandatory zap to DOS to correct rare occurring 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 name/ext on the diskette.

FileAddressPatch Data
SYS2/SYS01,CB
Change:FE CD 28
To:FE CC 28

Model I: ZAP 040

*** ZAP 032 *** 09/29/81 *** V2M3 ***

Information and manual corrections.

1. A number of users have had trouble with tape I/O 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 as 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=addrl 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 include 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 usage (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 "O" 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. CMD"O" does not care whether an array is single or multi-dimensional as CMD"O" 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 "O" 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 R1, R2, R3, X1, X2 and X3 to correspond with the usage 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=0TOR3: FOR X2=0TOR2: FOR X1=0TOR1 '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+1: 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 HAVE BEEN CHANGED.
70 FOR X3=0TOR3: FOR X2=0TOR2: FOR X1=0TOR1 '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 1st 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. ZAP 025 has in its 7th, 10th, 11th and 12 paragraphs, references to ZAP 031 which must be changed to refer to ZAP 025.

Model I: ZAP 041

*** ZAP 033 *** 09/30/81 *** V2M3 ***

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.

FileAddressPatch Data
SYS11/SYS03,BB
Change:0F ED 42 DF 38
To:0F CD 9D 51 38
SYS11/SYS04,A5
Change:00 00 00 00 00
To:ED 42 D8 DF C9

Model I: ZAP 042

*** ZAP 034 *** 10/07/81 *** V2M3 ***

Mandatory zap to DOS to correct omission from ZAP 015 (ROUTE) which caused SYSTEM option BA to cause hang on reset.

FileAddressPatch Data
SYS0/SYS00,B9
Change:FF 00 00 00
To:FF A1 4C 00

Model I: ZAP 043

*** ZAP 035 *** 10/07/81 *** V2M3 ***

Mandatory zap to DOS to disable SYSTEM option BM. SYSTEM option BM=N 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 BM=N will not detect the error whereas it will with SYSTEM option BM=Y. Therefore, SYSTEM option BM 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 035".

FileAddressPatch Data
SYS6/SYS10,35
Change:E1 3A 8D 42 CB 5F C8 3E
To:E1 00 00 00 00 00 00 3E
SYS17/SYS02,55
Change:FE 31 FE
To:FE FE FE

Model I: ZAP 044

*** ZAP 036 *** 10/07/81 *** V2M3 ***

Mandatory zap to correct BASIC function REF$ to (1) avoid occasional misses of printer line advance and (2) disable printer operations after the function.

FileAddressPatch Data
SYS12/SYS04,BA
Change:FE 38 30
To:FE 35 30
SYS18/SYS03,2F
Change:D2 B5 57 3D
To:D2 31 55 3D
SYS18/SYS03,41
Change:00 00 00 00 00
To:11 1E 64 D5 EF

Model I: ZAP 045

*** ZAP 037 *** 10/09/81 *** V2M3 ***

Optional zap to DOS to allow 'JKL' to print graphics on the EPSOM printers that use graphic codes 0A0H - 0DFH. This is done by converting hex codes 80H through 0BFH to CA0H through 0DFH.

FileAddressPatch Data
SYS3/SYS04,9A
Change:30 02 3E
To:30 07 3E
SYS3/SYS04,A3
Change:00 00 00 00 00 00 00 00
To:FE 80 38 F7 C6 20 18 F3

Use next zap if 0BFH rather than SYSTEM option AX is to govern as high ASCII for JKL.

FileAddressPatch Data
SYS3/SYS04,94
Change:47 3A 90 42 B8
To:47 00 3E BF B8

Model I: ZAP 046

*** ZAP 038 *** 10/21/81 *** V2M3 ***

Mandatory zap to remove a part of a unreleased zap that inadvertently was placed on some master diskettes. If the 'before' contents do not exist on your master diskette, ignore this zap. If the 'before' contents do exist, then this zap must be done before zap 039 as 039 uses some of the affected area. Please note that 4 bytes of loader control information remain unchanged by this zap.

FileAddressPatch Data
SYS0/SYS09,87
Change:DD E5 E1 11 E5 41 DF 28 0A 1E ED DF 01 00 B0 4C 28 07 0E 0C 3E E3 EF 3C 4F DD 77 03 79 C9
To:00 00 00 00 00 00 00 00 00 00 00 00 01 00 B0 4C 00 00 00 00 00 00 00 00 00 00 00 00 00 00

*** ZAP 039 *** 10/21/81 *** V2M3 ***

Mandatory zap to DOS to correct an error where disk write precompensation was not being done for high numbered tracks if the PDRIVE TC parameter was an odd, vice even, number (i.e., TC=35)

FileAddressPatch Data
SYS0/SYS02,FE
Change:FE 3A
To:FE CD
SYS0/SYS03,00
Change:83 42 0F BA
To:A4 4C 00 BA
SYS0/SYS09,87
Change:00 00 00 00 00 00
To:3A 83 42 CB 3F C9
SYS6/SYS29,63
Change:4F 3A 83 42 0F B9
To:4F CD A4 4C 00 B9

*** ZAP 040 *** 10/21/81 *** V2M3 ***

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 SPT maximum values are 30 for single sided and 60 for double sided. The PDRIVE GPL must be at least 3 for single sided and at least 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; for now we know of no Model III's that can, but 8 inch double density support was included in anticapation that eventually some would.

FileAddressPatch Data
SYS6/SYS27,C9
Change:E6 41 DD
To:E6 C1 DD
SYS6/SYS31,FF
Change:34
To:13
SYS6/SYS32,00
Change:0A 26 0A 86 01 9C 27 44 00
To:0A 14 0A 53 01 BA 27 26 00
SYS16/SYS04,1E
Change:12 1A 24 34 82
To:12 1E 24 3C 82

Model I: ZAP 047

*** ZAP 041 *** 10/21/81 *** V2M3 ***

Mandatory zap to EDTASM to correct error occurring when shift-left-arrow is used to erase a filespec response.

FileAddressPatch Data
EDTASM/CMD30,EC
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 E1 06 1F CD 40 00 DA D7 58 D1 7E C9 AA

Model I: ZAP 048

*** ZAP 042 *** 10/25/81 *** V2M3 ***

Mandatory zap to Version 3.1 of SCRIPSIT for TRSDOS 1.1 or 1.2 to run with NEWDOS/80.

FileAddressPatch Data
SCRIPSIT/CMD11,43
Change:01 05 4F
To:01 00 4F
SCRIPSIT/CMD11,CE
Change:B7 C4 BE 5E 79 32 E2 7C 11
To:B7 32 DF 7C C4 BE 5E 00 11

Correction to the printed zap: the official zap sheet prints the third “to” byte of SCRIPSIT/CMD,11,43 as 45 and the third “to” byte of SCRIPSIT/CMD,11,CE as E2. Apparat corrected them to 4F and DF in ZAP 043 (the 45 was a fatal error that kept SCRIPSIT from running); the bytes above show the corrected values.

*** ZAP 043 *** 11/09/81 *** V2M3 ***

Correction to ZAP 001, in the SCRIPSIT/CMD,11,C9 zap, change the 3rd byte of the 'to' part from FC to F9 if it not already F9. This was not a fatal error.

Correction to ZAP 042, the 3rd byte of the 'to' part of the SCRIPSIT/CMD,11,43 zap is to be changed from 45 to 4F if not already 4F. This was a fatal error not allowing SCRIPSIT to run.

Correction to ZAP 042, the 3rd byte of the 'to' part of the SCRIPSIT/CMD,11,CE zap is to be changed from E2 to DF if not already DF. This was not a fatal error.

*** ZAP 044 *** 11/09/81 *** V2M3 ***

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.

FileAddressPatch Data
SYS8/SYS02,B8
Change:20 FC C9
To:20 F9 C9

Model I: ZAP 049

*** ZAP 045 *** 11/09/81 *** V2M3 ***

Optional zap to DOS to allow the DOS PRINT and LIST commands to accept all control characters in the hexadecimal range 00 to 1F instead of just 0D (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.

FileAddressPatch Data
SYS14/SYS04,6C
Change:20 D0 FE
To:20 C9 FE

Model I: ZAP 050

*** ZAP 046 *** 11/09/81 *** V2M3 ***

Mandatory zap for PROFILE Version 3.0 being issued to run with TRSDOS 1.3. This zap disables some of the error checking being done to determine if a drive is available.

FileAddressPatch Data
INIT00,65
Change:FE 02 28 19 FE 1B 28 1F C3 47 52 38
To:FE 1B 28 23 18 17 00 00 00 00 00 38

Note, during some testing, PROFILE did not have enough space on drive 0 to initialize the files. You may find that some files must be deleted from drive 0 to have enough room.

*** ZAP 047 *** 11/09/81 *** V2M3 ***

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 NEWDOS21 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 047, 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 047, 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.

Model I: ZAP 051

*** ZAP 048 *** 11/09/81 *** V2M3 ***

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.

FileAddressPatch Data
BASIC/CMD08,A1
Change:66 11 2D 01 7E
To:66 CD AF 65 7E
BASIC/CMD14,B8
Change:00 00 00 00 00
To:ED 5B 9E 64 C9

Model I: ZAP 052

*** ZAP 049 *** 11/09/81 *** V2M3 ***

Mandatory zap to DOS to extend ZAP 039. After that zap, we found that precompensation was going on all of the time during diskette format. Some users were complaining about this, but our test routines were just not seeing it.

FileAddressPatch Data
SYS6/SYS29,60
Change:3A 74 6C 4F
To:3A 24 6B 4F

*** ZAP 050 *** 11/09/81 *** V2M3 ***

Part mandatory and part optional zap to MICROSOFT's BASIC compiler Version 5.23 for the Model I (the release Version for a long time)(the first line a /LST file created by the compiler gives the compiler version number) to allow it to run with NEWDOS/80 Version 2 on the Model III. 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 compiler and the compiled programs cannot be used with TRSDOS!!! Future enhancements to the compiler may require the optional changes below to be backed off; therefore users should maintain copies of the compiler (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 compiler's L80/CMD is not for use with FORTRAN, assembler, etc., but only with BASIC. Lastly, remember it is the model I compiler that is being zapped.

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 compiler operate with NEWDOS/80, Version 2.

FileAddressPatch Data
BASCOM/CMD00,08
Change:32 15 43 2A 13 43
To:00 00 00 2A 79 44
BASCOM/CMD00,14
Change:22 13 43
To:22 79 44
BASCOM/CMD31,C0
Change:95 5B A0
To:95 5E A0
BASCOM/CMD62,9E
Change:2A 49 40
To:2A 11 44
BASCOM/CMD66,15
Change:32 15 43
To:00 00 00
BASCOM/CMD66,1B
Change:22 13 43
To:22 79 44
L80/CMD00,07
Change:AF 32 15 43 2A 13 43 22
To:AF 00 00 00 2A 79 44 22
L80/CMD00,13
Change:6D 22 13 43 C3
To:6D 22 79 44 C3
L80/CMD00,2A
Change:44 2A 49 40 F9
To:44 2A 11 44 F9
L80/CMD07,0D
Change:C3 32 15 43 2A A0 6D 22 13 43 E1
To:C3 00 00 00 2A A0 6D 22 79 44 E1
BRUN/CMD00,04
Change:EB 2A 49 40 F9
To:EB 2A 11 44 F9
BRUN/CMD01,13
Change:52 32 15 43 2A 13 43 22
To:52 00 00 00 2A 79 44 22
BRUN/CMD01,1F
Change:52 22 13 43 2A 49 40 2B
To:52 22 79 44 2A 11 44 2B
BRUN/CMD01,F1
Change:C3 32 15 43 2A 00 53 22 13 43 C3
To:C3 00 00 00 2A 00 53 22 79 44 C3
BRUN/CMD02,0C
Change:52 11 46 40 CD
To:52 11 1C 42 CD
BRUN/CMD02,A9
Change:56 21 46 40 06
To:56 21 1C 42 06
BRUN/CMD10,1D
Change:46 0B 70
To:46 00 70
BRUN/CMD40,DC
Change:E1 CA 53 7A FE 1C CA 46 7A FE 1D C2 69 55 3A 81 7D B7 CA 65 7A CD 39 44 C3 5D 7A 3A 81 7D B7 C2
To:E1 C2 69 55 3A 81 7D B7 28 05 CD 39 44 18 03 CD 36 44 28 14 FE 1D 28 10 FE 1C C2 69 55 18 09 C2

Note, in the above zap both the before and after portions contain a CD 39 44 sequence, which is a sector-write-without-verify-read. If the sequence is CD 3C 44, then it is really a sector-write-with-verify-read (which uses an extra disk revolution (200 ms) per sector write). Thus the old contents may have the 3C and you may optionally use the 3C in the new sequence if you want the verify read.

FileAddressPatch Data
BRUN/CMD41,D8
Change:E1 3A 0F 43 E6
To:E1 C3 44 7B E6
BRUN/CMD42,16
Change:B7 CA 7F
To:B7 C3 7F

*** 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.

FileAddressPatch Data
BRUN/CMD40,4A
Change:21 0C 00 09 5E 23 56 EB D1 C1 C9 CD
To:DD 21 6E 8A CB 23 DD 19 C3 2E 8A CD
BRUN/CMD40,63
Change:00 C3 AD 79 E1
To:00 C3 37 8A E1
BRUN/CMD40,B3
Change:C5 21 0C 00 09
To:C5 C3 00 8A 09
BRUN/CMD40,CE
Change:1B 42 4B
To:CD 11 8A
BRUN/CMD42,7F
Change:CD 17 58
To:CD 1B 8A
BRUN/CMD56,84
Change:02 02 00 52 (the rest is immaterial)
To:01 6D 00 8A CB 23 DD 21 6E 8A DD 19 DD 5E 00 DD 56 01 C3 17 7A DD 73 00 DD 72 01 1B 42 4B C9 C5 CB 21 DD 21 6E 8A DD 09 DD 70 00 DD 70 01 C1 C3 17 58 DD 6E 00 DD 66 01 D1 C1 C9 C5 DD E1 DD 6E 0A DD 66 0E DD 5E 0F DD 4E 0B AF B9 28 1D AF 06 18 ED 6A CB 13 17 91 30 01 81 3F 10 F4 ED 6A B7 28 01 23 D1 C1 CB 7C C8 C3 9A 7D 6C 63 18 F4 02 02 00 52
L80/CMD00,7A
Change:00 8A 22
To:00 8B 22

Note, the above zap to L80/CMD changes the default data address for compiled 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 compiler manual.

Model I: ZAP 053

*** ZAP 051 *** 11/29/81 *** V2M3 ***

Mandatory zap to DOS to allow COPY with CBF option to allocate space on Model III TRSDOS diskettes beyond track 23.

FileAddressPatch Data
SYS6/SYS25,FB
Change:CD 57 4C DD
To:CD FB 5C DD
SYS6/SYS15,C5
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 57 4C 3E 03 C3 59 4C

Model I: ZAP 056

*** ZAP 052 *** 11/29/81 *** V2M3 ***

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/80 Version 2, in order to allow a maximum of C0H (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 FMT 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.

FileAddressPatch Data
SYS6/SYS07,79
Change:52 CD 35 55 ED
To:52 C3 2C 50 ED
SYS6/SYS21,85
Change:3E E6 28
To:3E F3 28
SYS17/SYS00,0C
Change:2A C2 81 4E 78
To:2A C0 00 00 78
SYS17/SYS03,3C
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 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 35 55 ED 5B C1 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 43 79 E6 0C 01 10 00 11 D0 43 21 83 59 20 07 21 8B 59 1E D8 0E 08 ED B0 2A D1 59 ED 5B C3 59 B7 ED 52 EB 38 11 28 0F 2A C3 59 3A BC 59 CD 59 4C 26 43 4F CD 62 57 CD C4 48 C2 CB 54 C3 2D 55

Model I: ZAP 057

*** ZAP 053 *** 12/01/81 *** V2M3 ***

Mandatory zap to LMOFFSET to correct error occurring when a object code block's load point is in the range 3F00 to 3FFFH.

FileAddressPatch Data
LMOFFSET/CMD01,36
Change:78 05 85
To:78 3D 85

Model I: ZAP 058

*** ZAP 054 *** 12/28/81 *** V2M3 ***

Mandatory zap to DOS to correct I/O timing loop found to be too long to support 8 inch disk operations on the Model III.

FileAddressPatch Data
SYS0/SYS02,C3
Change:01 97 A3
To:01 40 A3

*** ZAP 055 *** 12/28/81 *** V2M3 ***

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. NEWDOS/80 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.

FileAddressPatch Data
SYS8/SYS02,94
Change:0A 16 0F CD 6B 50 CB
To:0A CD 6B 50 16 0F CB
SYS8/SYS03,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

Model I: ZAP 061

*** ZAP 056 *** 01/12/82 *** V2M3 ***

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).

FileAddressPatch Data
SYS0/SYS07,F2
Change:38 31 2B 18 1D CD
To:38 10 2B 18 0D CD

Model I: ZAP 062

*** ZAP 057 *** 01/18/82 *** V2M3 ***

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/80 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's 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 or pre-sorting the text files, and since leading zeroes are suppressed from line numbers (causing line 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 #1,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 #1,CD$(X): Y=LEN(CD$(X)): Z=1: W=0: SN!=0: K=K+1
100 IFY=0 THEN 160
110 IF Z>Y THEN 130 ELSE J=ASC(MID$(CD$(X),Z,1)): Z=Z+1: IF J=32 THEN 110
120 IF J>=48 AND J<58 THEN W=W+1: SN!=10*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-1: GOTO 80
170 CLOSE: IF NR=0 THEN PRINT"NO RECORDS TO SORT": END
180 CMD"O",NR,*IX(1),SN(1)
190 PRINT"SORTED OUTPUT FILESPEC? "; LINEINPUT FS$
200 OPEN"O",1,FS$
210 FOR X=1 TO NR: PRINT #1,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 (0DH) since there are no parameters following the program's filespec. Note, in absence of a name-extension for the filespec XXXXX, /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 XXXXX/CMD.

2. YYYY/OBJ:1,5,JJJ:1 This DOS command causes user program YYYY/OBJ:1 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 (0DH) 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 51FFH, 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/80 entirely within the 4D00-51FFH DOS overlay region. This complicates the effort to extend the capabilities of any given DOS command.

4. 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.

Model I: ZAP 063

*** ZAP 058 *** 01/21/82 *** V2M3 ***

Mandatory zap to DOS if and only if the following two verifies exist.

SYS18/SYS,02,A9 59 00 0F 30 06
SYS18/SYS,02,FC 54 5B 5B 5B

If these two conditions do not exist, then ignore this entire ZAP. During production of the NEWDOS/80 Version 2 diskettes for the Model III, the master diskettes, dated 01/12/82, were found to be bad on 01/21/82, after some 100 to 300 NEWDOS/80 diskettes had been created and shipped with the bad sector. We don't understand how this alteration of the master diskette appeared, but it did, must be corrected, and we apologize.

FileAddressPatch Data
SYS18/SYS02,A9
Change:59 00 0F 30 06 CD E4 2B CD F8 1A C1 E1 D1 2B C3 A7 1A 52 45 4E 45 57 C0 01 01 52 45 4E 55 4D C0 4F 01 52 45 46 C0 2E 01 44 49 A1 00 00 44 55 A0 00 00 41 80 F5 54 44 80 EE 54 45 80 E9 54 4C 80 E3 54 00 04 4C 49 53 54 0D 04 45 44 49 54 06 44 45 4C 45 54 5B 5B 5B
To:59 C1 D5 3E 00 0F 30 06 CD E4 2B CD F8 1A C1 E1 D1 2B C3 A7 1A 52 45 4E 45 57 C0 01 01 52 45 4E 55 4D C0 4F 01 52 45 46 C0 2E 01 44 49 A1 00 00 44 55 A0 00 00 41 80 F5 54 44 80 EE 54 45 80 E9 54 4C 80 E3 54 00 04 4C 49 53 54 0D 04 45 44 49 54 06 44 45 4C 45 54

*** ZAP 059 *** 02/15/82 *** V2M3 ***

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.

FileAddressPatch Data
SYS9/SYS01,8E
Change:42 B7 20 06 CB
To:42 CD 1B 51 CB
SYS9/SYS04,2F
Change:00 00 00 00 00 00 00 00 00 00 00 00 00
To:B7 C2 90 4E 78 E6 50 FE 40 CA 2D 40 C9

Model I: ZAP 064

*** ZAP 060 *** 02/15/82 *** V2M3 ***

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) SYS0/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 the 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 directory 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 usage in Version 2. For a subsequent release of NEWDOS80, we will try to add more capabilities to allow for graphics, but for now we simply apologize that the capability is not there.

4. ZAP 054 causes Model III's with AM disk controllers to malfunction with LOST DATA DURING WRITE. This is because the AM controller CPU-hold-for-DRQ interval is too short compared with the standard Radio Shack interval, which is specified at 1000 microseconds. If you have this type of disk controller, back off ZAP 054.

Model I: ZAP 065

*** ZAP 061 ***

No zap with this number appears in the Model III zap list or index.

*** ZAP 062 *** 03/16/82 *** V2M3 ***

Mandatory zap to BASIC to correct error in dynamic MERGE occurring 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.

FileAddressPatch Data
SYS19/SYS00,DA
Change:C5 21 3E 54 22
To:C5 CD 20 56 22
SYS19/SYS02,9D
Change:C1 D1 E1 C9 2A
To:C1 C3 2A 56 2A
SYS19/SYS02,E2
Change:CD F2 54 CD
To:CD 38 56 CD
SYS19/SYS03,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/SYS04,34
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
To:21 00 00 22 42 56 21 3E 54 C9 2A 42 56 ED 5B 7A 55 19 22 42 56 D1 E1 C9 47 4F ED 43 42 56 C3 F2 54 01 00 00 09 ED 52 18 03 ED 52 3F D0 F1 C3 99 55

Model I: ZAP 066

*** ZAP 063 *** 03/25/82 *** V2M3 ***

Mandatory zap to allow the TRSDOS 1.2 Model III VISICALC Version VC-150Y0-T83 to operate with Model III NEWDOS/80 Version 2. This zap disables VISICALC's directory search feature.

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.

FileAddressPatch Data
VC/CMD86,CA
Change:E5 CD 90 42 FD
To:E5 3E 08 B7 FD

Model I: ZAP 067

*** ZAP 064 *** 04/13/82 *** V2M3 ***

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=0 parameter spec'ed or defaulted to.

FileAddressPatch Data
SYS14/SYS03,14
Change:28 47 78
To:28 41 78

Model I: ZAP 068

*** ZAP 065 *** 04/13/82 *** V2M3 ***

Mandatory zap to DOS to correct error in the DMDB function of SUPERZAP where the F, function was not displaying the correct dump location.

FileAddressPatch Data
SUPERZAP/CMD05,12
Change:03 2A B2 54 CD
To:03 CD 14 52 CD
SUPERZAP/CMD00,18
Change:00 00 00 00 00 00
To:3A B3 54 67 18 F6

Correction to the printed zap: the official zap sheet prints the verify bytes for SUPERZAP/CMD,05,12 as 03 3A B2 54 CD. That is a misprint: the bytes in the file are 03 2A B2 54 CD, which are shown above, and SUPERZAP will not verify 3A. The code shows why:

  • 05,12 is memory 585CH. The 03 is the offset of JR Z,5860H at 585BH, which skips the three bytes at 585DH-585FH unless the command is DMDB (bit 3 of Register B). Those three bytes are the instruction the zap replaces with CALL 5214H.
  • 2A B2 54 is LD HL,(54B2H): Register Pair HL gets the dump's base address, the first two bytes of the DMDB file (stored at 54B2H by 5609H). The routine called next, 5E37H, saves and restores Register Pair HL, so that value reaches the search as its start position.
  • 3A B2 54 would be LD A,(54B2H): only the low byte of the address, into Register A. 5E37H returns the key typed in Register A straight afterwards, so the byte would be lost and the DMDB branch would do nothing.
  • The zap's own routine at 5214H (00,18) shows what was meant: it builds Register Pair HL from the base address's high byte at 54B3H (Register L stays 00H) and stores it at 54C3H, the page address the search displays. The original code loaded Register Pair HL but never set 54C3H, which 520DH had left at 0000H, so the F function showed the wrong dump location.

Model I: ZAP 069

*** ZAP 066 *** 04/23/82 *** V2M3 ***

Mandatory zap to BASIC to correct an error in CMD"O" sort of floating point values and, to a much lesser degree, of characters 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.

FileAddressPatch Data
SYS21/SYS03,1E
Change:18 29 B7
To:18 2B B7

Model I: ZAP 070

*** ZAP 067 *** 05/04/82 *** V2M3 ***

Mandatory zap to VISICALC Version VC-160Y0-T83 for Model III TRSDOS 1.3 to operate with Model III NEWDOS/80 Version 2. Refer to ZAP 063 as this zap performs the same functions as that zap did for the TRSDOS 1.2 version.

FileAddressPatch Data
VC/CMD86,EB
Change:E5 CD 90 42 FD
To:E5 3E 08 B7 FD

Model I: ZAP 071

*** ZAP 068 *** 05/04/82 *** V2M3 ***

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 diskette 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.

Most programs generated for Model III TRSDOS will operate under NEWDOS/80 Version 2. Try each program out using replacable data before using valued data. If in doubt, ask your program vendor.

Realizing that data files and 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 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 TRSDOS 1.3 type diskettes (see zap 008 for TRSDOS 1.2 or 1.1 diskettes; see zap 025 for Model I TRSDOS 2.3B diskettes). For the remainder of this discussion, we will assume PDRIVE specification 4 contains the following values:

TI=AM,TD=E,TC=40,SPT=18,TSR=3,GPL=6,DDSL=17,DDGA=2

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.

1. To copy file XXX/DAT from a Model III TRSDOS type diskette to a preformatted 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,1,,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:1,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,1,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,1=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.

Model I: ZAP 072

*** ZAP 069 *** 05/04/82 *** V2M3 ***

Information zap on Model I TRSDOS 2.3B and higher diskettes. Refer also to ZAP 025.

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 TRSDOS will continue with the implementation of RBA format in the FCBs 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 includes TI flag M. 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.

Model I: ZAP 073

*** ZAP 070 *** 05/12/82 *** V2M3 ***

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 GOSUB36 of line 92. Load the program under BASIC, delete the character, and SAVE the CHAINBLD/BAS file back. Line 92 should display exactly the same after the character delete as before.

Model I: ZAP 074

*** ZAP 071 *** 05/12/82 *** V2M3 ***

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 1A8B - 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.

FileAddressPatch Data
SYS18/SYS02,14
Change:36 20 23 DF 38 FA 2B 36 FF 18 3A EB
To:36 FF 23 DF 30 3F 36 20 23 18 F8 EB

Model I: ZAP 075

*** ZAP 072 *** 06/13/82 *** V2M3 ***

Mandatory zap to Microsoft's FORTRAN sold by Radio Shack as Catalog # 26-2200 (EDIT/CMD version 2.02, L80/CMD version 3.43, F80/CMD version not specified) to run with NEWDOS/80 Version 2 on the Model III (and no longer with TRSDOS 1.3). This change deals with the insert-default-extension vector being 4473 in NEWDOS as opposed to being 444B in TRSDOS. User having other versions can search the EDIT/CMD, F80/CMD and L80/CMD modules using the SUPERZAP display mode command L,CD,4B,44 to find the occurrences of this call.

FileAddressPatch Data
EDIT/CMD22,36
Change:CD 4B 44
To:CD 73 44
F80/CMD42,6D
Change:CD 4B 44
To:CD 73 44
F80/CMD42,90
Change:CD 4B 44
To:CD 73 44
F80/CMD42,AE
Change:CD 4B 44
To:CD 73 44
F80/CMD46,99
Change:CD 4B 44
To:CD 73 44
L80/CMD14,91
Change:CD 4B 44
To:CD 73 44

*** ZAP 073 *** 06/18/82 *** V2M3 ***

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:

TI=xM,TD=E,TC=tc,SPT=18,TSR=3,GPL=6,DDSL=dt,DDGA=2

x = A for the standard Radio Shack disk controller, and D for Apparat's disk controller.

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 008 is applied to the diskette receiving this zap, ZAP 008 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 TRSDOS 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 files 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.

FileAddressPatch Data
SYS6/SYS14,25
Change:00 E8 45 01 A8 EC 45 01 A9 E7 46 03 C3 0B 5C DC 47 01 0D 1C 48 03 C3
To:00 4A 48 01 3E 93 48 01 00 98 48 07 ED 5B B9 42 CD 0B 5C 8A 5B 00 C3
SYS6/SYS14,67
Change:01 50 D0
To:01 80 D0
SYS6/SYS14,76
Change:00 7B 4F 01 1A AF
To:00 38 50 01 C9 AF
SYS6/SYS14,82
Change:00 61 50 03 3E 1A B7 D6
To:00 67 50 03 36 80 23 D6
SYS6/SYS14,8E
Change:5C 12 51 01 1A 55 51 04 21 EF 5C C9
To:5C 0E 51 01 00 55 51 04 21 CD 40 C9
SYS6/SYS14,A2
Change:00 3E 4E 01 0D 49
To:00 6C 4E 01 80 49
SYS6/SYS14,B1
Change:5B 18 CC 4E 02 35 56 B7 4E 01 2F 68 4E 01 18 4F
To:5B 28 CC 4E 02 35 56 C6 4F 02 36 00 00 5C 00 4F
SYS6/SYS14,D0
Change:00 FB C1 20 0A 3A 87 46 E6
To:00 21 08 00 19 7E 12 C9 E6
SYS6/SYS14,E9
Change:3E 05 CD
To:3E 08 CD
SYS6/SYS14,FB
Change:3E 30 CD
To:3E 20 CD
SYS6/SYS15,21
Change:06 50 7E
To:06 80 7E
SYS6/SYS20,11
Change:01 EF 5C 23
To:01 CD 40 23
SYS6/SYS20,97
Change:3E 50 20
To:3E 80 20

Model I: ZAP 078

*** ZAP 074 *** 06/27/82 *** V2M3 ***

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.

FileAddressPatch Data
SYS6/SYS05,C5
Change:52 3A 14 53 B7 C8 CD 35 55 2A
To:52 CD 35 55 3A 14 53 B7 C8 2A

Model I: ZAP 079

*** ZAP 075 *** 07/19/82 *** V2M3 ***

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.

FileAddressPatch Data
ASPOOL/MAS02,E8
Change:44 C2 09 44 21 8A 58 CD 67 44 C3 2D 40 01
To:44 C1 21 08 44 B7 ED 42 C8 C3 15 55 00 01

Model I: ZAP 080

*** ZAP 076 *** 08/17/82 *** V2M3 ***

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.

FileAddressPatch Data
LMOFFSET/CMD00,34
Change:53 21 40 5A CD
To:53 CD 17 5D CD
LMOFFSET/CMD09,91
Change:00 00 00 00 00 00 00 00 00
To:3E 50 32 C5 58 21 40 5A C9

Model I: ZAP 081

*** ZAP 077 *** 09/02/82 *** V2M3 ***

Mandatory zap to Radio Shack's Model III SuperSCRIPSIT to enable it to work with the Model III NEWDOS/80 Version 2:

1. Allow the Main Menu Directory function to work with NEWDOS/80. An actual NEWDOS/80 directory is executed via DOS-CALL; so the display will look different from that for TRSDOS.

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 III.

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.

FileAddressPatch Data
SCRIPSIT/CMD09,06
Change:AB 47 0E FF 21 9B AC CD 90 42 C0 23 23 46 21 03 00 CD 71 66 06 04 CD 51 66 7D 32 22 7E AF 01 02 00 5B C9 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:AB C6 30 32 22 5B 21 1E 5B CD 19 44 C0 06 04 11 33 3C 21 DC AC 1A 77 13 D6 30 FE 0A 30 01 01 02 00 5B 23 10 F4 36 84 CD B2 68 06 05 CD 71 66 06 04 CD 51 66 7D 24 25 28 02 3E FF 32 22 7E AF C9 44 49 52 20 30 2C 2F 51 39 51 0D 00
SCR17/CTL02,3A
Change:69 FE 30 38 F9 FE 34 30 F5 CD E5 75 0E 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 C0 CD 09 44 18 06 44 49 52 20 30 0D 21

Model I: ZAP 083

*** ZAP 078 *** 09/03/82 *** V2M3 ***

Mandatory zap to Model III SCRIPSIT Version 3.2 to enable it to run with NEWDOS/80 Version 2.

FileAddressPatch Data
SCRIPSIT/CMD11,4A
Change:5E 13 30
To:5E 00 30
SCRIPSIT/CMD11,DE
Change:FE 13 38
To:FE 00 38

*** ZAP 079 *** 09/17/82 *** V2M3 ***

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 32.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 "O" 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,0) 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):

X1 = 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 X1.

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 X1.

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=lenl exists, allowing the user to alter the Logical Record Length of the file to the value lenl (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).

Model I: ZAP 084

*** ZAP 080 *** 11/29/82 *** V2M3 ***

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.

FileAddressPatch Data
SYS6/SYS22,36
Change:5A 28 0E CB
To:5A 00 00 CB

Model I: ZAP 085

*** ZAP 081 *** 12/17/82 *** V2M3 ***

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.

FileAddressPatch Data
EDTASM/CMD30,5F
Change:CA F8 01 CD
To:CA 08 57 CD
EDTASM/CMD03,23
Change:C9 3A 28 52 F6 08 32
To:AF 32 F2 75 C3 F8 01

Model I: ZAP 086

*** ZAP 082 *** 12/21/82 *** V2M3 ***

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.

FileAddressPatch Data
SYS21/SYS01,14
Change:04 DD 77 04 D7
To:04 CD B4 65 D7
SYS21/SYS01,7F
Change:DF C2 4A 1E F1
To:DF CD B9 65 F1
SYS21/SYS01,8E
Change:01 32 02 4F F1
To:01 CD EB 65 F1
SYS21/SYS02,88
Change:DD 7E 04 B7 28
To:DD CB 04 7E 28
SYS21/SYS03,EE
Change:C9 DD 5E 13 DD
To:C9 CD F4 65 DD
SYS21/SYS04,2C
Change:14 19 10 FD C9
To:14 C3 FF 65 C9
SYS21/SYS04,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 08 66 20 22 00 DD
BASIC/CMD14,BD
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
To:DD CB 04 FE C9 C2 4A 1E 3A 02 51 B7 FD 21 00 43 28 04 FD 21 17 43 E5 DD 6E 05 DD 66 06 FD 5E 05 FD 56 06 DF 20 04 DD CB 04 F6 11 17 00 FD 19 FD 7E 00 B9 38 E8 E1 C9 DD CB 04 76 C0 32 02 4F C9 DD 5E 13
BASIC/CMD15,00
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
To:DD CB 04 76 C8 F1 09 C9 DD CB 04 76 C0 19 10 FD C9 DD 74 0A 09 EB DD CB 04 76 C0 78 B1 28 04 2B 1B ED B8 AF C9

Model I: ZAP 087

*** ZAP 083 *** 02/26/83 *** V2M3 ***

Mandatory zap to EDTASM to disable a faulty attempt to keep the drives rotating which was actually causing the drive motors to stop. A number of users had complained of this, and finally a user from Australia showed us a disassembly of exactly what was wrong.

FileAddressPatch Data
EDTASM/CMD29,2D
Change:80 C0 32
To:80 C9 32

Model I: ZAP 088

*** ZAP 084 *** 04/25/83 *** V2M3 ***

Mandatory zap to Radio Shack's Model III SuperScripsit Version 1.1 to enable it to work with the Model III NEWDOS/80 Version 2. This zap is identical in function to ZAP 077 for SuperScripsit 1.0.

FileAddressPatch Data
SCRIPSIT/CMD09,0A
Change:AB 47 0E FF 21 9B AC CD 90 42 C0 23 23 46 21 03 00 CD 51 66 06 04 CD 31 66 7D 32 22 7E AF C9 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:AB C6 30 32 22 5B 21 1E 5B CD 19 44 C0 06 04 11 33 3C 21 DC AC 1A 77 13 D6 30 FE 0A 30 01 23 10 F4 36 84 CD B4 68 06 05 CD 51 66 06 04 CD 31 66 7D 24 25 28 02 3E FF 32 22 7E AF C9 44 49 52 20 30 2C 2F 51 39 51 0D 00
SCR17/CTL00,2F
Change:7D 69 FE 30 38 F9 FE 34 30 F5 CD 89 75 0E 00 32 71 42 CD 19 44 3E 0F CD 33 00 21
To:7D 69 32 72 8D 21 6E 8D CD 19 44 28 05 F6 C0 CD 09 44 18 06 44 49 52 20 30 0D 21

Following is an optional zap which will correct the SuperScripsit display to read NEWDOS instead of TRSDOS.

FileAddressPatch Data
SCR17/CTL02,61
Change:20 54 52 53 44
To:20 4E 45 57 44

*** ZAP 085 *** 05/03/83 *** V2M3 ***

Mandatory zap to BASIC to (1) correct error where an RBA exceeds 8,388,607 (uses the 24th bit) and (2) to extend the allowable range for record numbers from 1 - 32767 to 1 - 16777215 (even though the file itself is limited to 16 million bytes). The extension of the record number range was needed as FF and MF processing using RBAs was generating bad record number errors when BASIC converts the RBA to record number to assure that the RBA was on a record boundary and the resulting record number was greater than 32767. This zap is especially important to NEWDOS/80 2.5 users.

FileAddressPatch Data
BASIC/CMD07,C8
Change:06 20 0F CD EF 0A 7C 55 59 06 98 21 57 63 E5 C3 69 09 DD CB 00 56 CA A9 5D CD E9 5E 21 57 63 E5 60 69 C3 9A 0A AF 45 6C 67 ED 5B 02 57 3E 11 18 07 B7 ED 52 30 01 19 3F
To:06 C4 34 66 C4 E1 5E CD EF 0A 59 4C 55 06 00 21 24 41 36 98 23 36 80 CD 65 07 C3 57 63 EB 21 00 00 79 ED 4B 02 57 08 3E 18 08 87 EB ED 6A EB ED 6A 38 06 B7 ED 42 09 38
BASIC/CMD08,00
Change:CB 11 CB 10 CB 15 CB 14 38 0B 3D 20 EC 7C B5 28 01 03 CB 78 C8 C3
To:04 B7 ED 42 3C 08 3D 20 E8 08 EB 4F 7A B3 C8 0C C0 23 7C B5 C0 C3
BASIC/CMD15,25
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
To:CD 23 66 E5 C3 17 4E CD 90 61 E1 E3 E5 C3 E4 4D B5 B1 CA B2 5D 79 B7 C9 DD CB 00 56 CA A9 5D C9
SYS10/SYS00,E4
Change:C5 CD 90 61 28
To:C5 C3 1C 66 28
SYS10/SYS00,FD
Change:6F 18 2B
To:6F C9 00
SYS10/SYS01,1D
Change:F0 E5 C5
To:F0 C9 C5
SYS10/SYS01,26
Change:CD E9 5E 7C B5 20
To:CD E1 5E 00 00 20
SYS10/SYS01,68
Change:CD 90 61 28 A1 CD 7F 0A EB 7A B7 FA B2 5D B3 CA B2 5D 1B DD CB 00 56 CA A9 5D ED 4B 02 57 78 21 00 00 06 11 CB 3C CB 1D 1F CB 19 30 01 19 10 F4 24 25 C2 B2 5D 65 6F C3
To:CD 23 66 7C CD 2C 66 20 01 2B 0D DD CB 00 56 CA A9 5D EB 79 ED 4B 02 57 21 00 00 08 3E 19 08 CB 3C CB 1D CB 1A CB 1B 1F 30 01 09 08 3D 20 EF 7C B5 C2 B2 5D 08 EB 4F C3

Model I: ZAP 089

*** ZAP 086 *** 05/03/83 *** V2M3 ***

Information zap. For those users with the Hard Disk Operating System NEWDOS/80 Version 2.5, be sure to apply zaps separately to each of NEWDOS/80 Version 2.0 and to NEWDOS/80 Version 2.5. Do NOT just apply the patch to one of the two systems and copy the module over to the other as you may eliminate some 2.5 zaps or end up applying some 2.5 zaps to 2.0, which can be disastrous. If a zap applies only to Version 2.0 or only to Version 2.5, we will state such; otherwise, the zap applies to both systems.

Model I: ZAP 090