ca65 V2.17 - Git 582aa41 Main file : tape_programs.ca65 Current file: tape_programs.ca65 000000r 1 ; 000000r 1 ; ACORN System 1 Applications: Tape Use Programs 000000r 1 ; 000000r 1 ; From the Acorn System 1 User's Manual 000000r 1 ; 000000r 1 ; (Chris Oddy January 2022) 000000r 1 ; 000000r 1 ; entry points Test: $0200, Retag: $0208 000000r 1 ; 000000r 1 .setcpu "6502" 000000r 1 .listbytes unlimited 000000r 1 ; 000000r 1 D := $10 000000r 1 QDATFET := $FE88 ; quad data fetch 000000r 1 COM16 := $FEA0 ; compare 16-bit numbers 000000r 1 PUTBYTE := $FEB1 ; put byte to tape 000000r 1 RESTART := $FF04 ; Monitor reentry point 000000r 1 ; 000000r 1 .org $0200 000200 1 ; 000200 1 A9 55 TEST: lda #$55 ; the test byte 000202 1 20 B1 FE jsr PUTBYTE ; send it 000205 1 4C 00 02 jmp TEST ; keep sending it 000208 1 ; 000208 1 A9 F1 RETAG: lda #$F1 ; F. prompt 00020A 1 85 10 sta D 00020C 1 A2 06 ldx #$06 00020E 1 20 88 FE jsr QDATFET ; first address 000211 1 A2 08 ldx #$08 000213 1 86 10 stx D ; prompt 000215 1 20 88 FE jsr QDATFET ; second address 000218 1 A9 46 lda #$46 ; prompt 00021A 1 85 10 sta D 00021C 1 A2 20 ldx #$20 00021E 1 20 88 FE jsr QDATFET ; last address: actual data start 000221 1 A2 04 ldx #$04 000223 1 B5 05 ADRSS: lda $05,x ; send fake address 000225 1 20 B1 FE jsr PUTBYTE 000228 1 CA dex 000229 1 D0 F8 bne ADRSS 00022B 1 A0 00 DATAS1: ldy #$00 00022D 1 B1 20 lda ($20),y ; proper data 00022F 1 E6 20 inc $20 ; increment proper data counter 000231 1 D0 02 bne NOINC 000233 1 E6 21 inc $21 000235 1 20 B1 FE NOINC: jsr PUTBYTE ; send data 000238 1 20 A0 FE jsr COM16 ; check fake addresses for end 00023B 1 D0 EE bne DATAS1 00023D 1 4C 04 FF jmp RESTART 00023D 1