Home » Archimedes archive » Micro User » MU 1990-06.adf » PrgList
PrgList
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Micro User » MU 1990-06.adf |
Filename: | PrgList |
Read OK: | ✔ |
File size: | 0D78 bytes |
Load address: | FFFFFB43 |
Exec address: | 6D397138 |
Duplicates
There is 1 duplicate copy of this file in the archive:
- Archimedes archive » Micro User » MU 1990-06.adf » PrgList
- AEW website » mu » mu_5_25_discs_Micro_User_08_04_D-MU08_04.ssd » PrgList
File contents
10REM > PROGLST 20REM By Jon Harston 30REM (C) The Micro User 40OSARGS=&FFDA:OSFIND=&FFCE:OSBGET=&FFD7 50OSASCI=&FFE3:OSBYTE=&FFF4 60mcode%=&FFFF0900 70FOR P=0 TO 1 80P%=mcode% 90[OPT P*3 100.handle:BRK 110.num:.line_num:BRK:BRK 120.subnum:BRK:BRK 130.flag:BRK 140.r_flag:BRK 150.quotes:BRK 160\ Uses start of prog for vars 170] 180P%=mcode% 190[OPT P*3 200.start 210LDX &24B:CPX #&FF:BNE basic_present 220BRK:OPT FNs(CHR$254+"BASIC not present"):BRK 230.basic_present 240LDA &F4:PHA:STX &F4:STX &FE30:\ Page in BASIC 250LDY #0:LDA #1:LDX #&A8:JSR OSARGS 260LDX &A8:LDY &A9:LDA #&40:JSR OSFIND 270CMP #0:BNE file_found 280BRK:OPT FNs(CHR$214+"File not found"):BRK 290.file_found 300STA handle:TAY 310JSR OSBGET:CMP #13:BEQ basic_file 320LDA #0:JSR OSFIND 330BRK:OPT FNs(CHR$254+"Not a BASIC file"):BRK 340.addrs 350OPT FNw(&806D):\ BASIC 1 360OPT FNw(&8071):\ BASIC 2 370OPT FNw(&0000):\ ? 380OPT FNw(&8071):\ HIBASIC 390OPT FNw(&8456):\ BASIC 4, Master 400OPT FNw(&8257):\ BASIC 4, Z80 410.basic_file 420LDA #5:LDX &8006:STX r_flag 430BMI set_up2:LDA &8008 440.set_up2 450ASL A:TAX:\ Find the address of the token table 460LDA addrs,X:STA &AB 470LDA addrs+1,X:STA &AC 480.line_loop 490LDA #0:STA quotes 500JSR OSBGET:BCS end_of_file 510STA line_num+1:JSR OSBGET:BCS end_of_file:\ Line number 520STA line_num:LDA #32:STA flag 530JSR pr_line 540JSR OSBGET:BCS end_of_file:\ Line length 550.pr_loop 560BIT &FF:BMI escape 570LDY handle:JSR OSBGET:BCS end_of_file 580BIT quotes:BNE in_quotes 590CMP #128:BCS do_token 600.in_quotes 610CMP #34:BNE not_a_quote 620LDA #255:EOR quotes:STA quotes:LDA #34 630.not_a_quote 640JSR OSASCI 650CMP #13:BNE pr_loop 660BEQ line_loop 670.escape 680.end_of_file 690LDA #0:JSR OSFIND 700PLA:STA &F4:STA &FE30:RTS 710.do_token:CMP #141:BEQ do_tok2 720JSR pr_token 730LDY handle:BNE pr_loop 740.do_tok2 750JSR OSBGET:BCS end_of_file:STA line_num+1 760JSR OSBGET:BCS end_of_file:STA line_num 770LDA line_num+1:ASL A:ASL A:PHA:AND #&C0:EOR line_num 780STA line_num:PLA:ASL A:ASL A:STA line_num+1 790JSR OSBGET:BCS end_of_file 800EOR line_num+1:STA line_num+1 810LDA #0:STA flag 820JSR pr_line:JMP pr_loop 830.pr_token:STA &A8 840LDA &AB:STA &A9:LDA &AC:STA &AA 850.loop1 860LDY #255 870.loop:INY 880LDA (&A9),Y 890BPL loop 900CMP &A8:BEQ got_it 910INY:INY:TYA:CLC:ADC &A9:STA &A9 920LDA #0:ADC &AA:STA &AA:JMP loop1 930.got_it 940INY:BIT r_flag:BMI pr_t_loop 950LDY #0:.pr_t_loop 960LDA (&A9),Y:BMI pr_t_end 970BEQ pr_t_end 980JSR OSASCI:INY:BNE pr_t_loop 990.pr_t_end:RTS 1000.pr_line 1010\ General purpose 16 bit decimal 1020\ printout routine. 1030\ num holds number. flag holds 1040\ leading character, or zero 1050\ eg 32 = leading spaces 1060\ eg 48 = leading zeros 1070\ eg 0 = no leading characters 1080LDA #&27:STA subnum+1 1090LDA #&10:STA subnum 1100JSR do_subtracts:\ 10000s 1110LDA #&3:STA subnum+1 1120LDA #&E8:STA subnum 1130JSR do_subtracts:\ 1000s 1140LDA #0:STA subnum+1 1150LDA #&64:STA subnum 1160JSR do_subtracts:\ 100s 1170LDA #&0A:STA subnum 1180JSR do_subtracts:\ 10s 1190LDA num:ORA #48:JMP OSASCI:\ 1s 1200.do_subtracts 1210LDX #255 1220.loop 1230INX 1240SEC 1250LDA num:SBC subnum:STA num 1260LDA num+1:SBC subnum+1:STA num+1 1270BCS loop:CLC 1280LDA num:ADC subnum:STA num 1290LDA num+1:ADC subnum+1:STA num+1 1300TXA:BEQ zero 1310ORA #48:JSR OSASCI 1320LDA #48:STA flag 1330.zero_exit 1340RTS 1350.zero 1360LDA flag:BEQ zero_exit 1370JMP OSASCI 1380]NEXT 1390PRINT"*SAVE PrList ";~mcode%;" ";~P% 1400END 1410DEFFNs(A$):$P%=A$:P%=P%+LENA$:=P*3 1420DEFFNw(A%):!P%=A%:P%=P%+2:=P*3
� > PROGLST � By Jon Harston � (C) The Micro User (*OSARGS=&FFDA:OSFIND=&FFCE:OSBGET=&FFD7 2OSASCI=&FFE3:OSBYTE=&FFF4 <mcode%=&FFFF0900 F � P=0 � 1 P P%=mcode% Z[OPT P*3 d.handle:BRK n.num:.line_num:BRK:BRK x.subnum:BRK:BRK � .flag:BRK �.r_flag:BRK �.quotes:BRK �!\ Uses start of prog for vars �] � P%=mcode% �[OPT P*3 � .start �'LDX &24B:CPX #&FF:BNE basic_present �,BRK:OPT �s(�254+"BASIC not present"):BRK �.basic_present �1LDA &F4:PHA:STX &F4:STX &FE30:\ Page in BASIC �%LDY #0:LDA #1:LDX #&A8:JSR OSARGS 'LDX &A8:LDY &A9:LDA #&40:JSR OSFIND CMP #0:BNE file_found )BRK:OPT �s(�214+"File not found"):BRK ".file_found ,STA handle:TAY 6%JSR OSBGET:CMP #13:BEQ basic_file @LDA #0:JSR OSFIND J+BRK:OPT �s(�254+"Not a BASIC file"):BRK T .addrs ^OPT �w(&806D):\ BASIC 1 hOPT �w(&8071):\ BASIC 2 rOPT �w(&0000):\ ? |OPT �w(&8071):\ HIBASIC �#OPT �w(&8456):\ BASIC 4, Master � OPT �w(&8257):\ BASIC 4, Z80 �.basic_file �LDA #5:LDX &8006:STX r_flag �BMI set_up2:LDA &8008 �.set_up2 �3ASL A:TAX:\ Find the address of the token table �LDA addrs,X:STA &AB �LDA addrs+1,X:STA &AC �.line_loop �LDA #0:STA quotes �JSR OSBGET:BCS end_of_file �;STA line_num+1:JSR OSBGET:BCS end_of_file:\ Line number !STA line_num:LDA #32:STA flag JSR pr_line ,JSR OSBGET:BCS end_of_file:\ Line length &.pr_loop 0BIT &FF:BMI escape :)LDY handle:JSR OSBGET:BCS end_of_file DBIT quotes:BNE in_quotes NCMP #128:BCS do_token X.in_quotes bCMP #34:BNE not_a_quote l(LDA #255:� quotes:STA quotes:LDA #34 v.not_a_quote �JSR OSASCI �CMP #13:BNE pr_loop �BEQ line_loop �.escape �.end_of_file �LDA #0:JSR OSFIND �PLA:STA &F4:STA &FE30:RTS �".do_token:CMP #141:BEQ do_tok2 �JSR pr_token �LDY handle:BNE pr_loop �.do_tok2 �-JSR OSBGET:BCS end_of_file:STA line_num+1 �+JSR OSBGET:BCS end_of_file:STA line_num 4LDA line_num+1:ASL A:ASL A:PHA:� #&C0:� line_num /STA line_num:PLA:ASL A:ASL A:STA line_num+1 JSR OSBGET:BCS end_of_file � line_num+1:STA line_num+1 *LDA #0:STA flag 4JSR pr_line:JMP pr_loop >.pr_token:STA &A8 H#LDA &AB:STA &A9:LDA &AC:STA &AA R .loop1 \LDY #255 f .loop:INY pLDA (&A9),Y zBPL loop �CMP &A8:BEQ got_it �#INY:INY:TYA:CLC:ADC &A9:STA &A9 �$LDA #0:ADC &AA:STA &AA:JMP loop1 �.got_it � INY:BIT r_flag:BMI pr_t_loop �LDY #0:.pr_t_loop �LDA (&A9),Y:BMI pr_t_end �BEQ pr_t_end � JSR OSASCI:INY:BNE pr_t_loop �.pr_t_end:RTS �.pr_line �$\ General purpose 16 bit decimal �\ printout routine. "\ num holds number. flag holds \ leading character, or zero \ eg 32 = leading spaces $\ eg 48 = leading zeros ."\ eg 0 = no leading characters 8LDA #&27:STA subnum+1 BLDA #&10:STA subnum LJSR do_subtracts:\ 10000s VLDA #&3:STA subnum+1 `LDA #&E8:STA subnum jJSR do_subtracts:\ 1000s tLDA #0:STA subnum+1 ~LDA #&64:STA subnum �JSR do_subtracts:\ 100s �LDA #&0A:STA subnum �JSR do_subtracts:\ 10s �"LDA num:�A #48:JMP OSASCI:\ 1s �.do_subtracts �LDX #255 � .loop �INX �SEC �LDA num:SBC subnum:STA num �$LDA num+1:SBC subnum+1:STA num+1 �BCS loop:CLC LDA num:ADC subnum:STA num $LDA num+1:ADC subnum+1:STA num+1 TXA:BEQ zero �A #48:JSR OSASCI (LDA #48:STA flag 2.zero_exit <RTS F .zero PLDA flag:BEQ zero_exit ZJMP OSASCI d]� n$�"*SAVE PrList ";~mcode%;" ";~P% x� �!ݤs(A$):$P%=A$:P%=P%+�A$:=P*3 �ݤw(A%):!P%=A%:P%=P%+2:=P*3 �
00000000 0d 00 0a 0f f4 20 3e 20 50 52 4f 47 4c 53 54 0d |..... > PROGLST.| 00000010 00 14 14 f4 20 42 79 20 4a 6f 6e 20 48 61 72 73 |.... By Jon Hars| 00000020 74 6f 6e 0d 00 1e 18 f4 20 28 43 29 20 54 68 65 |ton..... (C) The| 00000030 20 4d 69 63 72 6f 20 55 73 65 72 0d 00 28 2a 4f | Micro User..(*O| 00000040 53 41 52 47 53 3d 26 46 46 44 41 3a 4f 53 46 49 |SARGS=&FFDA:OSFI| 00000050 4e 44 3d 26 46 46 43 45 3a 4f 53 42 47 45 54 3d |ND=&FFCE:OSBGET=| 00000060 26 46 46 44 37 0d 00 32 1d 4f 53 41 53 43 49 3d |&FFD7..2.OSASCI=| 00000070 26 46 46 45 33 3a 4f 53 42 59 54 45 3d 26 46 46 |&FFE3:OSBYTE=&FF| 00000080 46 34 0d 00 3c 14 6d 63 6f 64 65 25 3d 26 46 46 |F4..<.mcode%=&FF| 00000090 46 46 30 39 30 30 0d 00 46 0d e3 20 50 3d 30 20 |FF0900..F.. P=0 | 000000a0 b8 20 31 0d 00 50 0d 50 25 3d 6d 63 6f 64 65 25 |. 1..P.P%=mcode%| 000000b0 0d 00 5a 0c 5b 4f 50 54 20 50 2a 33 0d 00 64 0f |..Z.[OPT P*3..d.| 000000c0 2e 68 61 6e 64 6c 65 3a 42 52 4b 0d 00 6e 1a 2e |.handle:BRK..n..| 000000d0 6e 75 6d 3a 2e 6c 69 6e 65 5f 6e 75 6d 3a 42 52 |num:.line_num:BR| 000000e0 4b 3a 42 52 4b 0d 00 78 13 2e 73 75 62 6e 75 6d |K:BRK..x..subnum| 000000f0 3a 42 52 4b 3a 42 52 4b 0d 00 82 0d 2e 66 6c 61 |:BRK:BRK.....fla| 00000100 67 3a 42 52 4b 0d 00 8c 0f 2e 72 5f 66 6c 61 67 |g:BRK.....r_flag| 00000110 3a 42 52 4b 0d 00 96 0f 2e 71 75 6f 74 65 73 3a |:BRK.....quotes:| 00000120 42 52 4b 0d 00 a0 21 5c 20 55 73 65 73 20 73 74 |BRK...!\ Uses st| 00000130 61 72 74 20 6f 66 20 70 72 6f 67 20 66 6f 72 20 |art of prog for | 00000140 76 61 72 73 0d 00 aa 05 5d 0d 00 b4 0d 50 25 3d |vars....]....P%=| 00000150 6d 63 6f 64 65 25 0d 00 be 0c 5b 4f 50 54 20 50 |mcode%....[OPT P| 00000160 2a 33 0d 00 c8 0a 2e 73 74 61 72 74 0d 00 d2 27 |*3.....start...'| 00000170 4c 44 58 20 26 32 34 42 3a 43 50 58 20 23 26 46 |LDX &24B:CPX #&F| 00000180 46 3a 42 4e 45 20 62 61 73 69 63 5f 70 72 65 73 |F:BNE basic_pres| 00000190 65 6e 74 0d 00 dc 2c 42 52 4b 3a 4f 50 54 20 a4 |ent...,BRK:OPT .| 000001a0 73 28 bd 32 35 34 2b 22 42 41 53 49 43 20 6e 6f |s(.254+"BASIC no| 000001b0 74 20 70 72 65 73 65 6e 74 22 29 3a 42 52 4b 0d |t present"):BRK.| 000001c0 00 e6 12 2e 62 61 73 69 63 5f 70 72 65 73 65 6e |....basic_presen| 000001d0 74 0d 00 f0 31 4c 44 41 20 26 46 34 3a 50 48 41 |t...1LDA &F4:PHA| 000001e0 3a 53 54 58 20 26 46 34 3a 53 54 58 20 26 46 45 |:STX &F4:STX &FE| 000001f0 33 30 3a 5c 20 50 61 67 65 20 69 6e 20 42 41 53 |30:\ Page in BAS| 00000200 49 43 0d 00 fa 25 4c 44 59 20 23 30 3a 4c 44 41 |IC...%LDY #0:LDA| 00000210 20 23 31 3a 4c 44 58 20 23 26 41 38 3a 4a 53 52 | #1:LDX #&A8:JSR| 00000220 20 4f 53 41 52 47 53 0d 01 04 27 4c 44 58 20 26 | OSARGS...'LDX &| 00000230 41 38 3a 4c 44 59 20 26 41 39 3a 4c 44 41 20 23 |A8:LDY &A9:LDA #| 00000240 26 34 30 3a 4a 53 52 20 4f 53 46 49 4e 44 0d 01 |&40:JSR OSFIND..| 00000250 0e 19 43 4d 50 20 23 30 3a 42 4e 45 20 66 69 6c |..CMP #0:BNE fil| 00000260 65 5f 66 6f 75 6e 64 0d 01 18 29 42 52 4b 3a 4f |e_found...)BRK:O| 00000270 50 54 20 a4 73 28 bd 32 31 34 2b 22 46 69 6c 65 |PT .s(.214+"File| 00000280 20 6e 6f 74 20 66 6f 75 6e 64 22 29 3a 42 52 4b | not found"):BRK| 00000290 0d 01 22 0f 2e 66 69 6c 65 5f 66 6f 75 6e 64 0d |.."..file_found.| 000002a0 01 2c 12 53 54 41 20 68 61 6e 64 6c 65 3a 54 41 |.,.STA handle:TA| 000002b0 59 0d 01 36 25 4a 53 52 20 4f 53 42 47 45 54 3a |Y..6%JSR OSBGET:| 000002c0 43 4d 50 20 23 31 33 3a 42 45 51 20 62 61 73 69 |CMP #13:BEQ basi| 000002d0 63 5f 66 69 6c 65 0d 01 40 15 4c 44 41 20 23 30 |c_file..@.LDA #0| 000002e0 3a 4a 53 52 20 4f 53 46 49 4e 44 0d 01 4a 2b 42 |:JSR OSFIND..J+B| 000002f0 52 4b 3a 4f 50 54 20 a4 73 28 bd 32 35 34 2b 22 |RK:OPT .s(.254+"| 00000300 4e 6f 74 20 61 20 42 41 53 49 43 20 66 69 6c 65 |Not a BASIC file| 00000310 22 29 3a 42 52 4b 0d 01 54 0a 2e 61 64 64 72 73 |"):BRK..T..addrs| 00000320 0d 01 5e 1b 4f 50 54 20 a4 77 28 26 38 30 36 44 |..^.OPT .w(&806D| 00000330 29 3a 5c 20 42 41 53 49 43 20 31 0d 01 68 1b 4f |):\ BASIC 1..h.O| 00000340 50 54 20 a4 77 28 26 38 30 37 31 29 3a 5c 20 42 |PT .w(&8071):\ B| 00000350 41 53 49 43 20 32 0d 01 72 15 4f 50 54 20 a4 77 |ASIC 2..r.OPT .w| 00000360 28 26 30 30 30 30 29 3a 5c 20 3f 0d 01 7c 1b 4f |(&0000):\ ?..|.O| 00000370 50 54 20 a4 77 28 26 38 30 37 31 29 3a 5c 20 48 |PT .w(&8071):\ H| 00000380 49 42 41 53 49 43 0d 01 86 23 4f 50 54 20 a4 77 |IBASIC...#OPT .w| 00000390 28 26 38 34 35 36 29 3a 5c 20 42 41 53 49 43 20 |(&8456):\ BASIC | 000003a0 34 2c 20 4d 61 73 74 65 72 0d 01 90 20 4f 50 54 |4, Master... OPT| 000003b0 20 a4 77 28 26 38 32 35 37 29 3a 5c 20 42 41 53 | .w(&8257):\ BAS| 000003c0 49 43 20 34 2c 20 5a 38 30 0d 01 9a 0f 2e 62 61 |IC 4, Z80.....ba| 000003d0 73 69 63 5f 66 69 6c 65 0d 01 a4 1f 4c 44 41 20 |sic_file....LDA | 000003e0 23 35 3a 4c 44 58 20 26 38 30 30 36 3a 53 54 58 |#5:LDX &8006:STX| 000003f0 20 72 5f 66 6c 61 67 0d 01 ae 19 42 4d 49 20 73 | r_flag....BMI s| 00000400 65 74 5f 75 70 32 3a 4c 44 41 20 26 38 30 30 38 |et_up2:LDA &8008| 00000410 0d 01 b8 0c 2e 73 65 74 5f 75 70 32 0d 01 c2 33 |.....set_up2...3| 00000420 41 53 4c 20 41 3a 54 41 58 3a 5c 20 46 69 6e 64 |ASL A:TAX:\ Find| 00000430 20 74 68 65 20 61 64 64 72 65 73 73 20 6f 66 20 | the address of | 00000440 74 68 65 20 74 6f 6b 65 6e 20 74 61 62 6c 65 0d |the token table.| 00000450 01 cc 17 4c 44 41 20 61 64 64 72 73 2c 58 3a 53 |...LDA addrs,X:S| 00000460 54 41 20 26 41 42 0d 01 d6 19 4c 44 41 20 61 64 |TA &AB....LDA ad| 00000470 64 72 73 2b 31 2c 58 3a 53 54 41 20 26 41 43 0d |drs+1,X:STA &AC.| 00000480 01 e0 0e 2e 6c 69 6e 65 5f 6c 6f 6f 70 0d 01 ea |....line_loop...| 00000490 15 4c 44 41 20 23 30 3a 53 54 41 20 71 75 6f 74 |.LDA #0:STA quot| 000004a0 65 73 0d 01 f4 1e 4a 53 52 20 4f 53 42 47 45 54 |es....JSR OSBGET| 000004b0 3a 42 43 53 20 65 6e 64 5f 6f 66 5f 66 69 6c 65 |:BCS end_of_file| 000004c0 0d 01 fe 3b 53 54 41 20 6c 69 6e 65 5f 6e 75 6d |...;STA line_num| 000004d0 2b 31 3a 4a 53 52 20 4f 53 42 47 45 54 3a 42 43 |+1:JSR OSBGET:BC| 000004e0 53 20 65 6e 64 5f 6f 66 5f 66 69 6c 65 3a 5c 20 |S end_of_file:\ | 000004f0 4c 69 6e 65 20 6e 75 6d 62 65 72 0d 02 08 21 53 |Line number...!S| 00000500 54 41 20 6c 69 6e 65 5f 6e 75 6d 3a 4c 44 41 20 |TA line_num:LDA | 00000510 23 33 32 3a 53 54 41 20 66 6c 61 67 0d 02 12 0f |#32:STA flag....| 00000520 4a 53 52 20 70 72 5f 6c 69 6e 65 0d 02 1c 2c 4a |JSR pr_line...,J| 00000530 53 52 20 4f 53 42 47 45 54 3a 42 43 53 20 65 6e |SR OSBGET:BCS en| 00000540 64 5f 6f 66 5f 66 69 6c 65 3a 5c 20 4c 69 6e 65 |d_of_file:\ Line| 00000550 20 6c 65 6e 67 74 68 0d 02 26 0c 2e 70 72 5f 6c | length..&..pr_l| 00000560 6f 6f 70 0d 02 30 16 42 49 54 20 26 46 46 3a 42 |oop..0.BIT &FF:B| 00000570 4d 49 20 65 73 63 61 70 65 0d 02 3a 29 4c 44 59 |MI escape..:)LDY| 00000580 20 68 61 6e 64 6c 65 3a 4a 53 52 20 4f 53 42 47 | handle:JSR OSBG| 00000590 45 54 3a 42 43 53 20 65 6e 64 5f 6f 66 5f 66 69 |ET:BCS end_of_fi| 000005a0 6c 65 0d 02 44 1c 42 49 54 20 71 75 6f 74 65 73 |le..D.BIT quotes| 000005b0 3a 42 4e 45 20 69 6e 5f 71 75 6f 74 65 73 0d 02 |:BNE in_quotes..| 000005c0 4e 19 43 4d 50 20 23 31 32 38 3a 42 43 53 20 64 |N.CMP #128:BCS d| 000005d0 6f 5f 74 6f 6b 65 6e 0d 02 58 0e 2e 69 6e 5f 71 |o_token..X..in_q| 000005e0 75 6f 74 65 73 0d 02 62 1b 43 4d 50 20 23 33 34 |uotes..b.CMP #34| 000005f0 3a 42 4e 45 20 6e 6f 74 5f 61 5f 71 75 6f 74 65 |:BNE not_a_quote| 00000600 0d 02 6c 28 4c 44 41 20 23 32 35 35 3a 82 20 71 |..l(LDA #255:. q| 00000610 75 6f 74 65 73 3a 53 54 41 20 71 75 6f 74 65 73 |uotes:STA quotes| 00000620 3a 4c 44 41 20 23 33 34 0d 02 76 10 2e 6e 6f 74 |:LDA #34..v..not| 00000630 5f 61 5f 71 75 6f 74 65 0d 02 80 0e 4a 53 52 20 |_a_quote....JSR | 00000640 4f 53 41 53 43 49 0d 02 8a 17 43 4d 50 20 23 31 |OSASCI....CMP #1| 00000650 33 3a 42 4e 45 20 70 72 5f 6c 6f 6f 70 0d 02 94 |3:BNE pr_loop...| 00000660 11 42 45 51 20 6c 69 6e 65 5f 6c 6f 6f 70 0d 02 |.BEQ line_loop..| 00000670 9e 0b 2e 65 73 63 61 70 65 0d 02 a8 10 2e 65 6e |...escape.....en| 00000680 64 5f 6f 66 5f 66 69 6c 65 0d 02 b2 15 4c 44 41 |d_of_file....LDA| 00000690 20 23 30 3a 4a 53 52 20 4f 53 46 49 4e 44 0d 02 | #0:JSR OSFIND..| 000006a0 bc 1d 50 4c 41 3a 53 54 41 20 26 46 34 3a 53 54 |..PLA:STA &F4:ST| 000006b0 41 20 26 46 45 33 30 3a 52 54 53 0d 02 c6 22 2e |A &FE30:RTS...".| 000006c0 64 6f 5f 74 6f 6b 65 6e 3a 43 4d 50 20 23 31 34 |do_token:CMP #14| 000006d0 31 3a 42 45 51 20 64 6f 5f 74 6f 6b 32 0d 02 d0 |1:BEQ do_tok2...| 000006e0 10 4a 53 52 20 70 72 5f 74 6f 6b 65 6e 0d 02 da |.JSR pr_token...| 000006f0 1a 4c 44 59 20 68 61 6e 64 6c 65 3a 42 4e 45 20 |.LDY handle:BNE | 00000700 70 72 5f 6c 6f 6f 70 0d 02 e4 0c 2e 64 6f 5f 74 |pr_loop.....do_t| 00000710 6f 6b 32 0d 02 ee 2d 4a 53 52 20 4f 53 42 47 45 |ok2...-JSR OSBGE| 00000720 54 3a 42 43 53 20 65 6e 64 5f 6f 66 5f 66 69 6c |T:BCS end_of_fil| 00000730 65 3a 53 54 41 20 6c 69 6e 65 5f 6e 75 6d 2b 31 |e:STA line_num+1| 00000740 0d 02 f8 2b 4a 53 52 20 4f 53 42 47 45 54 3a 42 |...+JSR OSBGET:B| 00000750 43 53 20 65 6e 64 5f 6f 66 5f 66 69 6c 65 3a 53 |CS end_of_file:S| 00000760 54 41 20 6c 69 6e 65 5f 6e 75 6d 0d 03 02 34 4c |TA line_num...4L| 00000770 44 41 20 6c 69 6e 65 5f 6e 75 6d 2b 31 3a 41 53 |DA line_num+1:AS| 00000780 4c 20 41 3a 41 53 4c 20 41 3a 50 48 41 3a 80 20 |L A:ASL A:PHA:. | 00000790 23 26 43 30 3a 82 20 6c 69 6e 65 5f 6e 75 6d 0d |#&C0:. line_num.| 000007a0 03 0c 2f 53 54 41 20 6c 69 6e 65 5f 6e 75 6d 3a |../STA line_num:| 000007b0 50 4c 41 3a 41 53 4c 20 41 3a 41 53 4c 20 41 3a |PLA:ASL A:ASL A:| 000007c0 53 54 41 20 6c 69 6e 65 5f 6e 75 6d 2b 31 0d 03 |STA line_num+1..| 000007d0 16 1e 4a 53 52 20 4f 53 42 47 45 54 3a 42 43 53 |..JSR OSBGET:BCS| 000007e0 20 65 6e 64 5f 6f 66 5f 66 69 6c 65 0d 03 20 1f | end_of_file.. .| 000007f0 82 20 6c 69 6e 65 5f 6e 75 6d 2b 31 3a 53 54 41 |. line_num+1:STA| 00000800 20 6c 69 6e 65 5f 6e 75 6d 2b 31 0d 03 2a 13 4c | line_num+1..*.L| 00000810 44 41 20 23 30 3a 53 54 41 20 66 6c 61 67 0d 03 |DA #0:STA flag..| 00000820 34 1b 4a 53 52 20 70 72 5f 6c 69 6e 65 3a 4a 4d |4.JSR pr_line:JM| 00000830 50 20 70 72 5f 6c 6f 6f 70 0d 03 3e 15 2e 70 72 |P pr_loop..>..pr| 00000840 5f 74 6f 6b 65 6e 3a 53 54 41 20 26 41 38 0d 03 |_token:STA &A8..| 00000850 48 23 4c 44 41 20 26 41 42 3a 53 54 41 20 26 41 |H#LDA &AB:STA &A| 00000860 39 3a 4c 44 41 20 26 41 43 3a 53 54 41 20 26 41 |9:LDA &AC:STA &A| 00000870 41 0d 03 52 0a 2e 6c 6f 6f 70 31 0d 03 5c 0c 4c |A..R..loop1..\.L| 00000880 44 59 20 23 32 35 35 0d 03 66 0d 2e 6c 6f 6f 70 |DY #255..f..loop| 00000890 3a 49 4e 59 0d 03 70 0f 4c 44 41 20 28 26 41 39 |:INY..p.LDA (&A9| 000008a0 29 2c 59 0d 03 7a 0c 42 50 4c 20 6c 6f 6f 70 0d |),Y..z.BPL loop.| 000008b0 03 84 16 43 4d 50 20 26 41 38 3a 42 45 51 20 67 |...CMP &A8:BEQ g| 000008c0 6f 74 5f 69 74 0d 03 8e 23 49 4e 59 3a 49 4e 59 |ot_it...#INY:INY| 000008d0 3a 54 59 41 3a 43 4c 43 3a 41 44 43 20 26 41 39 |:TYA:CLC:ADC &A9| 000008e0 3a 53 54 41 20 26 41 39 0d 03 98 24 4c 44 41 20 |:STA &A9...$LDA | 000008f0 23 30 3a 41 44 43 20 26 41 41 3a 53 54 41 20 26 |#0:ADC &AA:STA &| 00000900 41 41 3a 4a 4d 50 20 6c 6f 6f 70 31 0d 03 a2 0b |AA:JMP loop1....| 00000910 2e 67 6f 74 5f 69 74 0d 03 ac 20 49 4e 59 3a 42 |.got_it... INY:B| 00000920 49 54 20 72 5f 66 6c 61 67 3a 42 4d 49 20 70 72 |IT r_flag:BMI pr| 00000930 5f 74 5f 6c 6f 6f 70 0d 03 b6 15 4c 44 59 20 23 |_t_loop....LDY #| 00000940 30 3a 2e 70 72 5f 74 5f 6c 6f 6f 70 0d 03 c0 1c |0:.pr_t_loop....| 00000950 4c 44 41 20 28 26 41 39 29 2c 59 3a 42 4d 49 20 |LDA (&A9),Y:BMI | 00000960 70 72 5f 74 5f 65 6e 64 0d 03 ca 10 42 45 51 20 |pr_t_end....BEQ | 00000970 70 72 5f 74 5f 65 6e 64 0d 03 d4 20 4a 53 52 20 |pr_t_end... JSR | 00000980 4f 53 41 53 43 49 3a 49 4e 59 3a 42 4e 45 20 70 |OSASCI:INY:BNE p| 00000990 72 5f 74 5f 6c 6f 6f 70 0d 03 de 11 2e 70 72 5f |r_t_loop.....pr_| 000009a0 74 5f 65 6e 64 3a 52 54 53 0d 03 e8 0c 2e 70 72 |t_end:RTS.....pr| 000009b0 5f 6c 69 6e 65 0d 03 f2 24 5c 20 47 65 6e 65 72 |_line...$\ Gener| 000009c0 61 6c 20 70 75 72 70 6f 73 65 20 31 36 20 62 69 |al purpose 16 bi| 000009d0 74 20 64 65 63 69 6d 61 6c 0d 03 fc 17 5c 20 70 |t decimal....\ p| 000009e0 72 69 6e 74 6f 75 74 20 72 6f 75 74 69 6e 65 2e |rintout routine.| 000009f0 0d 04 06 22 5c 20 6e 75 6d 20 68 6f 6c 64 73 20 |..."\ num holds | 00000a00 6e 75 6d 62 65 72 2e 20 66 6c 61 67 20 68 6f 6c |number. flag hol| 00000a10 64 73 0d 04 10 20 5c 20 6c 65 61 64 69 6e 67 20 |ds... \ leading | 00000a20 63 68 61 72 61 63 74 65 72 2c 20 6f 72 20 7a 65 |character, or ze| 00000a30 72 6f 0d 04 1a 1c 5c 20 65 67 20 33 32 20 3d 20 |ro....\ eg 32 = | 00000a40 6c 65 61 64 69 6e 67 20 73 70 61 63 65 73 0d 04 |leading spaces..| 00000a50 24 1b 5c 20 65 67 20 34 38 20 3d 20 6c 65 61 64 |$.\ eg 48 = lead| 00000a60 69 6e 67 20 7a 65 72 6f 73 0d 04 2e 22 5c 20 65 |ing zeros..."\ e| 00000a70 67 20 30 20 3d 20 6e 6f 20 6c 65 61 64 69 6e 67 |g 0 = no leading| 00000a80 20 63 68 61 72 61 63 74 65 72 73 0d 04 38 19 4c | characters..8.L| 00000a90 44 41 20 23 26 32 37 3a 53 54 41 20 73 75 62 6e |DA #&27:STA subn| 00000aa0 75 6d 2b 31 0d 04 42 17 4c 44 41 20 23 26 31 30 |um+1..B.LDA #&10| 00000ab0 3a 53 54 41 20 73 75 62 6e 75 6d 0d 04 4c 1e 4a |:STA subnum..L.J| 00000ac0 53 52 20 64 6f 5f 73 75 62 74 72 61 63 74 73 3a |SR do_subtracts:| 00000ad0 5c 20 20 31 30 30 30 30 73 0d 04 56 18 4c 44 41 |\ 10000s..V.LDA| 00000ae0 20 23 26 33 3a 53 54 41 20 73 75 62 6e 75 6d 2b | #&3:STA subnum+| 00000af0 31 0d 04 60 17 4c 44 41 20 23 26 45 38 3a 53 54 |1..`.LDA #&E8:ST| 00000b00 41 20 73 75 62 6e 75 6d 0d 04 6a 1c 4a 53 52 20 |A subnum..j.JSR | 00000b10 64 6f 5f 73 75 62 74 72 61 63 74 73 3a 5c 20 31 |do_subtracts:\ 1| 00000b20 30 30 30 73 0d 04 74 17 4c 44 41 20 23 30 3a 53 |000s..t.LDA #0:S| 00000b30 54 41 20 73 75 62 6e 75 6d 2b 31 0d 04 7e 17 4c |TA subnum+1..~.L| 00000b40 44 41 20 23 26 36 34 3a 53 54 41 20 73 75 62 6e |DA #&64:STA subn| 00000b50 75 6d 0d 04 88 1b 4a 53 52 20 64 6f 5f 73 75 62 |um....JSR do_sub| 00000b60 74 72 61 63 74 73 3a 5c 20 31 30 30 73 0d 04 92 |tracts:\ 100s...| 00000b70 17 4c 44 41 20 23 26 30 41 3a 53 54 41 20 73 75 |.LDA #&0A:STA su| 00000b80 62 6e 75 6d 0d 04 9c 1a 4a 53 52 20 64 6f 5f 73 |bnum....JSR do_s| 00000b90 75 62 74 72 61 63 74 73 3a 5c 20 31 30 73 0d 04 |ubtracts:\ 10s..| 00000ba0 a6 22 4c 44 41 20 6e 75 6d 3a 84 41 20 23 34 38 |."LDA num:.A #48| 00000bb0 3a 4a 4d 50 20 4f 53 41 53 43 49 3a 5c 20 31 73 |:JMP OSASCI:\ 1s| 00000bc0 0d 04 b0 11 2e 64 6f 5f 73 75 62 74 72 61 63 74 |.....do_subtract| 00000bd0 73 0d 04 ba 0c 4c 44 58 20 23 32 35 35 0d 04 c4 |s....LDX #255...| 00000be0 09 2e 6c 6f 6f 70 0d 04 ce 07 49 4e 58 0d 04 d8 |..loop....INX...| 00000bf0 07 53 45 43 0d 04 e2 1e 4c 44 41 20 6e 75 6d 3a |.SEC....LDA num:| 00000c00 53 42 43 20 73 75 62 6e 75 6d 3a 53 54 41 20 6e |SBC subnum:STA n| 00000c10 75 6d 0d 04 ec 24 4c 44 41 20 6e 75 6d 2b 31 3a |um...$LDA num+1:| 00000c20 53 42 43 20 73 75 62 6e 75 6d 2b 31 3a 53 54 41 |SBC subnum+1:STA| 00000c30 20 6e 75 6d 2b 31 0d 04 f6 10 42 43 53 20 6c 6f | num+1....BCS lo| 00000c40 6f 70 3a 43 4c 43 0d 05 00 1e 4c 44 41 20 6e 75 |op:CLC....LDA nu| 00000c50 6d 3a 41 44 43 20 73 75 62 6e 75 6d 3a 53 54 41 |m:ADC subnum:STA| 00000c60 20 6e 75 6d 0d 05 0a 24 4c 44 41 20 6e 75 6d 2b | num...$LDA num+| 00000c70 31 3a 41 44 43 20 73 75 62 6e 75 6d 2b 31 3a 53 |1:ADC subnum+1:S| 00000c80 54 41 20 6e 75 6d 2b 31 0d 05 14 10 54 58 41 3a |TA num+1....TXA:| 00000c90 42 45 51 20 7a 65 72 6f 0d 05 1e 15 84 41 20 23 |BEQ zero.....A #| 00000ca0 34 38 3a 4a 53 52 20 4f 53 41 53 43 49 0d 05 28 |48:JSR OSASCI..(| 00000cb0 14 4c 44 41 20 23 34 38 3a 53 54 41 20 66 6c 61 |.LDA #48:STA fla| 00000cc0 67 0d 05 32 0e 2e 7a 65 72 6f 5f 65 78 69 74 0d |g..2..zero_exit.| 00000cd0 05 3c 07 52 54 53 0d 05 46 09 2e 7a 65 72 6f 0d |.<.RTS..F..zero.| 00000ce0 05 50 1a 4c 44 41 20 66 6c 61 67 3a 42 45 51 20 |.P.LDA flag:BEQ | 00000cf0 7a 65 72 6f 5f 65 78 69 74 0d 05 5a 0e 4a 4d 50 |zero_exit..Z.JMP| 00000d00 20 4f 53 41 53 43 49 0d 05 64 06 5d ed 0d 05 6e | OSASCI..d.]...n| 00000d10 24 f1 22 2a 53 41 56 45 20 50 72 4c 69 73 74 20 |$."*SAVE PrList | 00000d20 22 3b 7e 6d 63 6f 64 65 25 3b 22 20 22 3b 7e 50 |";~mcode%;" ";~P| 00000d30 25 0d 05 78 05 e0 0d 05 82 21 dd a4 73 28 41 24 |%..x.....!..s(A$| 00000d40 29 3a 24 50 25 3d 41 24 3a 50 25 3d 50 25 2b a9 |):$P%=A$:P%=P%+.| 00000d50 41 24 3a 3d 50 2a 33 0d 05 8c 1f dd a4 77 28 41 |A$:=P*3......w(A| 00000d60 25 29 3a 21 50 25 3d 41 25 3a 50 25 3d 50 25 2b |%):!P%=A%:P%=P%+| 00000d70 32 3a 3d 50 2a 33 0d ff |2:=P*3..| 00000d78