passport/src/mods/t00only.a

110 lines
4.1 KiB
Plaintext

!cpu 6502
*=$2000
!to "../../build/t00only.bin",plain
MODULE=1
!source "../apidefs.a"
!source "../strings/enid.a"
WILDCARD = $97 ; from compare.a
;-------------------------------
; AnalyzeT00
; apply track $00-specific patchers
;
; in: Track $00 in data buffer
; out: all flags clobbered
; all registers clobbered
;-------------------------------
AnalyzeT00
lda #$07
ldx #$04
ldy #$21
jsr compare ; if T00,S07,$04 ==
!byte $A0,$02
!byte $8C,WILDCARD,WILDCARD
!byte $A0,$04
!byte $8C,WILDCARD,WILDCARD
!byte $A0,$01
!byte $B1,$48
!byte $AA
!byte $A0,$0F
!byte $D1,$48
!byte $F0,$1B
!byte $8A
!byte $48
!byte $B1,$48
!byte $AA
!byte $68
!byte $48
!byte $91,$48
!byte $BD,$8E,$C0
bcc +
jmp T00_IsNotRWTS
+
; DOS 3.3 RWTS patchers
!source "../patchers/t00_artsci.a" ; A=0A,X=FE,Y=02; out none
!source "../patchers/t00_bademu.a" ; Y=05; out none
!source "../patchers/t00_border.a" ; A=08,X=5A,Y=0A; out A=08,X=5A,Y=0A
!source "../patchers/t00_dakin5.a" ; A=00,X=B3,Y=0C; out A=03,X=9A,Y=03
!source "../patchers/t00_datasoft2.a" ; A=0A,X=3A,Y=06; out A=01,X=48,Y=02
!source "../patchers/t00_jmpb500.a"
!source "../patchers/t00_earthware.a" ; out A=02,X=F6,Y=03
!source "../patchers/t00_jmpb660.a" ; in A=02,X=F6,Y=03
!source "../patchers/t00_jmpbbfe.a"
!source "../patchers/t00_jmpbcf0.a" ; A=03,X=94,Y=08; out A=03,X=94,Y=08
!source "../patchers/t00_jmpbeb1.a"
!source "../patchers/t00_jmpbeca.a"
!source "../patchers/t00_jsrb6cc.a"
!source "../patchers/t00_mastery.a"
!source "../patchers/t00_methods.a"
!source "../patchers/t00_microfun.a"
!source "../patchers/t00_microfun2.a"
!source "../patchers/t00_microlearn.a"
!source "../patchers/t00_milliken.a"
!source "../patchers/t00_muserwts.a"
!source "../patchers/t00_panglosdos.a"
!source "../patchers/t00_rps.a"
!source "../patchers/t00_rwtsswap.a"
!source "../patchers/t00_rwtsswapmicrofun.a"
!source "../patchers/t00_springboard.a"
!source "../patchers/t00_sunburst.a"
!source "../patchers/t00_sve.a"
!source "../patchers/t00_swordthrust.a"
!source "../patchers/t00_scottforesman_dos33.a"
!source "../patchers/t00_neosoft.a"
; ----- add new DOS 3.3 patchers above this line -----
!source "../patchers/t00_nibtable.a" ; clobbers $2000..$2095 (AnalyzeT00 is decompressed into $2000)
!source "../patchers/t00_rwts.a" ; must run after all other patchers that might modify RWTS code
!source "../patchers/t00_diskvol.a"
; /!\ execution falls through here
T00_IsNotRWTS
; patchers that run on every disk
!source "../patchers/t00_rwtslog.a"
; ----- add new patchers below this line -----
!source "../patchers/t00_bb03.a"
!source "../patchers/t00_datasoft.a"
!source "../patchers/t00_dos32.a"
!source "../patchers/t00_dos32dlm.a"
!source "../patchers/t00_hoffman.a"
!source "../patchers/t00_jsr8b3.a"
!source "../patchers/t00_laureate.a"
!source "../patchers/t00_mecc.a"
!source "../patchers/t00_micrograms.a"
!source "../patchers/t00_pascalrwts.a"
!source "../patchers/t00_rdos13.a"
!source "../patchers/t00_rol1e.a"
!source "../patchers/t00_sigcheck.a"
!source "../patchers/t00_baudville.a"
!source "../patchers/t00_enlightenment.a"
!source "../patchers/t00_scottforesman.a"
!source "../patchers/t00_jmp600.a"
rts
!if * > $3200 {
!serious "code is too large to fit in available space!"
}