
PROGRAM LISTING: 85-06/TURBO3.ASM
05 ; TURBO TYPO
06 ; BY J.D. McLAUGHLIN
07 ; (c) 1985, ANTIC PUBLISHING
10 *= $0600
20 BASIC1 = 1789 ;FIRST
30 BASIC2 = 1790 ;SECOND AND
40 BASIC3 = 1791 ;THIRD BYTES OF ANS FROM BASIC PROGRAM
50 LDA #1
60 STA $CB ;ESTABLISH COUNTER (TYPOII'S VARIABLE C)
70 PLA ;DISCARD #OF BYTES PASSED
80 PLA
90 STA $CD ;HI BYTE OF ADR(LINE$)
0100 PLA
0110 STA $CC ;LO BYTE OF ADR(LINE$)
0120 PLA ;BASIC ALWAYS PASSES A 0 HERE AS HI BYTE OF LEN(LINE$)
0130 PLA
0140 STA $CF ;LO BYTE OF LEN(LINE$)
0150 LDA #0
0160 STA BASIC1 ;ZERO ALL
0170 STA BASIC2 ;BYTES OF
0180 STA BASIC3 ;ANS
0190 LDY #0 ;SET COUNTER
0200 LOOPA LDA $CB ;GET VALUE OF 'C'
0210 STA $D0 ;USE AS A COUNTER
0220 LDA ($CC),Y ;GET CHARACTER FROM LINE$
0230 STA $CE
0240 LOOPB CLC ;LOOPB 'MULTIPLIES' CHAR. BY 'C'
0250 LDA $CE
0260 ADC BASIC1
0270 STA BASIC1
0280 BCC ONW
0290 INC BASIC2
0300 LDA BASIC2
0310 BNE ONW
0320 INC BASIC3
0330 ONW DEC $D0
0340 BNE LOOPB
0350 INY
0360 INC $CB ;SAME AS C=C+1
0370 DEC $CF ;REDUCE NUMBER OF CHAR.S REMAINING
0380 BNE LOOPA ;ALL CHARS. PROCESSED?
0390 RTS ;YES,THEN RETURN
Back to previous page