Model IIII Bugs Errors and Fixes

Model III TRSDOS 1.2

On page 79 of the Model III TRSDOS manual, it states that the number given to the "LINES = 'bbb"' option is "the maximum number of lines to print before an automatic form feed...". This is not so. In Model III TRSDOS 1.2, when the maximum number of lines is reached, the line counter restarts at one and NO automatic eject is done. The lines counter serves only to tell the printer driver how many lines have been printed since the last top-of-form. It is the responsibility of the programmer to examine the line counter at location 4029 Hex (16425 decimal) to determine if it is time to send the printer driver a top-of-form character (decimal 1.2) to eject the paper.

The manual is also in error when it states, about the LINES option, "... If omitted, 60 is used...". If no entry is made, whatever the maximum lines counter has in it will remain unchanged. The power-up default is 60, but after power-up, if the value is changed for any reason, you will need to specify 60 if that is the number of lines you need.

Also in the Model III TRSDOS 1.2 manual, under the section on Fundamental TRSDOS I/O Calls, pages 124 and 125, it should be noted that the OPEN and INIT TRSDOS I/O calls destroy the contents of the IY register. This is a bug in TRSDOS 1.2 and is scheduled to be corrected in the next release of Model III TRSDOS. Until then, if you are using the TRSDOS I/O calls in your machine language routines, remember to save and restore the contents of IY before and after a CALL to INIT or OPEN.

Tape Mailing List (26-1503)

In versions 3.0 and earlier, when printing labels the linefeeds are off and the labels print incorrectly

To correct this problem, make the following changes to the program:

19010 LPRINTFI$( I ,2):LPR INTFI $(I >3) 5 " "5 FI$<I»4)i"-"!FI$(I»5): LPRINT" ": LPRI NT " " 19015 IFE=0THENLPRINT" ";ELSE IF FI $(I tl) = ""THENLPRINT" "

Standard & Poor's Stockpak® (26-1507)

You may receive a "FILE FULL" message when you try to add the 31st stock.

To correct this, follow this procedure:

1) Go to the security entry part of the program and DELETE the 31st ticker that you just added.

2) ADD a ticker XXX, with a dividend rate of 0.00, X-date 00/00/00, current price 0.000, PE Ratio 0.00, S & P index 0.00

3) After entering this dummy ticker, you should be able to proceed as usual.

Accounts Payable (26-1554)

In version 3.0 only, the program will not print or subtract the discount from the amount of the Cash Requirement Report. The checks are subtracted when printed.

To correct this problem, make the following changes to the REPORTS program:

173 IU$=I 1$:D=ABS(CUI(12$)):G0SUB61:DA$=D$:D= ABS(CUI<13$)):DU=D:G0SUBG1:DU$=D$:D=CUI (14$);DD=D:

G0SUBG1;DD$ = D$:M$ =I 5$:G0SUB57: A1=A:Y$=IG$:G0SUB57: A2=A:V$= 17$:G0SUB57:A3 = A:U$=18$:G0SUB57:A4 = A: V$=19$:G0SUB57:A5=A

Disk Payroll (26-1556)

Computer Services has received new state tax tables for Mississippi, Nebraska and New York. If you need these new tax tables, contact Computer Services (Address and phone numbers on the back page of the Newsletter).

Business Mailing List (26-1558)

New version 3.0 copies of this program should be available. These new versions include the ability to print two "up" (across) labels. The Model I version is 700-2211 and the Model III version is 700-2212. This new version is available free to current owners of 26-1558. You will be required to exchange your ORIGINAL program disk for the new version diskette.

Real Estate Vol. I (26-1571)

In the "Rate of Return" program, the modified internal rate incorrectly equals regular internal rate of return.

To correct this, the following change should be made to the "Rate of Return" program:

800 R1=R1+R2;D9=0;D0=C:D0=D0-(D0*R3);F0RI= 1T0D1-1: ONAGOTO810 »820

Advanced Statistical Analysis

In Time Series II, a "subscript out of range error" may occur. To correct this, make the following changes:

DELETE line 1090

1060 GOSUBG000:JJ=0:FORJ=1T08:JJ=JJ+1:IFZ

(J)="@" N(K)=M+JJ-1:JL=J:GOSUB7000:JJ= 0:K = K +1iIFMT=3M=M-JL 10090 E = 0:KL=1:FORK = 1TONT:E=E+1;IFZD(K) =

"@"THEN KL = KL+1: E = E-1:GOTO 10100;ELSE IFZI = "Y"LPRI NT "ELEMENT «"5Et"GROUP #"5 KL >ZD(K)

10095 PRINT"ELEMENT #"5E» "GROUP »" 5KL >ZD(K) :GOSUB9900

Note that we added a large section in the middle of line 10090 and "chopped ofF' the end of line 10095.

Johnson/Caire Screen Print Routine

Mr. John P. Caire, Jr. of Hamden, CT recently purchased a line Printer IV for his Level II 48K Model ITRS-80. Mr. Caire has provided us with a modified version of Myron F.Johnson's Screen Print Routine (Jan/Feb 1980). Mr. Caire's modification corrects a small problem which the original version had, allows it to print lower case, automatically puts the printer in 132 column mode for the graph, then returns the printer to 80 column mode.

Here is the Johnson/Caire routine: 2200 K7, = 0

2240 IF P 0 IN T ( X» Y1) THEN P$=P$+ "»" ELSE

22B0 IF I NT ( ( Y/3 ) - ♦ 1 ) = ( Y7,- 1 ) / 3 THEN GOTO 2330

ELSE 2270 2270 LPRINT CHR$<27)5 CHR$(20)5 P$ 2280 NEXT Y% 2290 K 1 = 13

2300 LPRINT CHR$(27)5 CHR$(19) 2310 RETURN 2320 END

2330 K1 = K%+1 s Q$=" 11 : R$ = " " 2340 FOR L= 0 TO S3

23G0 IF A"/„< =32 THEN A7, = 32:G0T0 2380

2390 NEXT LX

2410 IF MID$(Q$» Hit 1) < > " " THEN R$ = R$ +

MID$(Q$»MZ»1) ELSE R$=R$+ MID$(P$»M'/,»1) 2420 NEXT WL 2430 LPRINT R$ 2440 GOTO 2280 2450 END

If you have an upper-case only printer, Mr. Caire suggests you add line 2365:

23S5 IF A7=> 97 AND A%< = 127 THEN A5f. = A%-32:

GOTO 2380 Happy graphics!


90 DATA 175 » 17» 10» 0» 205» 11» 0» 25» 34» 22 » 64

100 DATA 205» 37» 27» 195» 25» 26» 33» 54» E4 » 1

110 DATA 1» 56» 22» 0» 10» 95» 174» 115» 163» 32» 8

120 DATA 20» 44» 203» 1» 242» 226» 127» 201» 95» 197

Sort Modification

Mr. Konrad Kuzmanoff of Ohio State University sent us this modification to our machine language sort routine (July 1980):

"I found the machine language sort published in the July issue of the TRS-80 newsletter most useful. I especially appreciate the additions that you mention in the November issue.

"You may be interested in printing the following modification which allows one to load the sorting routine from the DOS. The modification protects the sort routine by changing the high memory pointer at &H4049. To put the sort on disk:

1. Load and run the BASIC program.

4. Use the memory modification to insert the following code at &HFFCB (MFFCB):

49 40 C3 2D 40

Mr. Bob Pollock sent us this information: "For those of us that still have problems with the old ROM Level II keybounce problem, here is your KBFIX program rewritten in BASIC. On power-up, respond to MEMORY SIZE with 32712. CLOAD this BASIC program, then run it. If you have keyed in the program correctly, the computer will go directly into SYSTEM mode. Activate the debounce program by responding /32713.

"This is (a) faster loading program than the machine language version."

Here is Mr. Pollack's program for 16K Level II Model I's:






Note: You will still be in DEBUG. To execute TAPEDISK, press (G) (ENTER). The TAPEDISK prompt (a question mark '?') will appear.

7. Under TAPEDISK type:


"The sort routine is now saved as SORT/CMD, and can be loaded from the DOS simply by entering the command 'SORT.' The sort routine will be loaded, high memory will be set to protect it, and you will be returned to the DOS."

Editors Notes: This modification is for Disk based Model I computers only. Model III Disk users should check their TRSDOS manual for information on using the DUMP utility to transfer the machine code from RAM to disk. Please note that in the TAPEDISK command above, 'FF00' is the START address, 'FFD5' is the END address, and 'FFCB' is the TRAnsfer address. There is no relocation of the code.

The modification given above works for a 48K system. If you have a 32K system change the third pair of values in the memory modification from "FE" to "BE." You should also change the 'FF's in the TAPEDISK command to 'BF's. For a 16K system, change the 'FE' to '7E,' and change the 'FF's to '7F's.

The modification allows you to load the machine language program directly from DOS, without having to use the DATA statements. To see that this works, modify the sample program given in the July News by DELETEing line 60 and all lines from 1000 to the end of the program (make sure you save a BACKUP of the original program, just in case something goes wrong). This will allow you to execute the sort demonstration program, but the program will never have to call the sort load subroutine.

From DOS, follow this procedure after you have created SORT/CMD and modified the demo program:

2. When DOS READY appears type: BASIC (ENTER)

3. Press (ENTER) for both the Files and Memory Size questions. (Continued on Page 6)

Sort Modification (From Page 5)

4. Type: R U N" S 0 R T / B A S" CENTER) (use your program name!)

I used this change in a 48K Model I and the program handled 1500 strings very well. This change lets you forget about Memory Size, which I find to be a very useful feature.

If you would like to use this procedure with the two dimensional sort routine we published in March 1981, here is the information you need:

For a 16K machine, the code to add using M7FEE is: 21 DE 7E 22 49 40 C3 2D 40

For 32K change the '7E' to 'BE' and modify memory beginning at Hex BFEE. For 48K change the '7E' to 'FE' and modify memory beginning at Hex FFEE.

The TAPEDISK command for 16K would be: F S0RT2D/CMD:0 7EDF 7FF7 7FEE

For 32K, change the '7E' to 'BE' and the two '7F's to 'BF.' For 48K change the '7E' to 'FE' and the two '7F's to 'FF.'

0 0

Post a comment