Classic Computer Magazine Archive 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