4cade/src/prelaunch/last.gladiator.a

71 lines
1.3 KiB
Plaintext
Raw Permalink Normal View History

2020-05-26 21:52:16 +00:00
;license:MIT
2022-05-19 04:42:49 +00:00
;(c) 2020, 2022 by qkumba
2020-05-26 21:52:16 +00:00
!cpu 6502
!to "build/PRELAUNCH.INDEXED/LG",plain
2020-05-26 21:52:16 +00:00
*=$106
!source "src/macros.a"
2020-05-26 21:52:16 +00:00
+ENABLE_ACCEL
lda #$60
sta $11EA
jsr $1000 ; decompress
2020-08-11 19:51:53 +00:00
lda #$4C
2020-05-26 21:52:16 +00:00
sta $BC00
2022-05-19 04:42:49 +00:00
lda #<callback1
2020-08-11 19:51:53 +00:00
sta $BC01
2022-05-19 04:42:49 +00:00
lda #>callback1
2020-08-11 19:51:53 +00:00
sta $BC02
2022-05-19 04:42:49 +00:00
ldx #<callback2
stx $BC0B
2020-08-11 19:51:53 +00:00
sta $BC0C
2022-05-19 04:42:49 +00:00
ldx #(reset_e-reset_b)-1
- lda reset_b,x
sta callback1,x
2020-08-11 19:51:53 +00:00
dex
bpl -
2020-05-26 21:52:16 +00:00
+DISABLE_ACCEL
jmp $11EF
2022-05-19 04:42:49 +00:00
reset_b !pseudopc $240 {
callback1
+GET_MACHINE_STATUS
and #CHEATS_ENABLED
beq +
lda #$ad
sta $6FA4 ; patch - don't increase lives
sta $7604 ; patch - don't decrease lives
+
2020-08-11 19:51:53 +00:00
lda #<reset
sta $3F2
lda #>reset
sta $3F3
jmp $FB6F
reset
+READ_RAM1_NO_WRITE
jmp ($FFFC)
callback2
jsr $BC16
lda $BD4C
cmp #8
bne +
lda $2D
bne +
2022-05-19 04:42:49 +00:00
lda #<reset xor $58
2020-08-11 19:51:53 +00:00
sta $5FF2
2022-05-19 04:42:49 +00:00
lda #>reset
2020-08-11 19:51:53 +00:00
sta $5FF3
2022-05-19 04:42:49 +00:00
lda #(>reset xor $A5) xor $59
2020-08-11 19:51:53 +00:00
sta $5FF4
+ rts
}
reset_e
2020-05-26 21:52:16 +00:00
!if * > $1C0 {
!error "code is too large, ends at ", *
}