4cade/src/prelaunch/nightmare.a

62 lines
1.4 KiB
Plaintext

;license:MIT
;(c) 2020, 2022 by Frank M., qkumba
!cpu 6502
!to "build/PRELAUNCH.INDEXED/NI",plain
*=$106
!source "src/prelaunch/common.a"
+ENABLE_ACCEL
+NEW_RESET_VECTOR $BE00
lda #$60
sta $404B
jsr $4000 ; decompress
ldx #(callback_e-callback)-1
- lda callback,x
sta $BE20,x
dex
bpl -
lda #$20 ; lets fix ROM calls to WAIT/$FCA8
sta $16A9 ; which behave differently
sta $80EE ; on different machines
sta $8799 ; (fixes slow scream on //c+ & //gs)
sta $8C8F
sta $8CC4
sta $8CE1
lda #$BE
sta $16AA
sta $80EF
sta $879A
sta $8C90
sta $8CC5
sta $8CE2
+READ_RAM2_NO_WRITE
lda MachineStatus
and #CHEATS_ENABLED
beq +
lda #$AD
sta $8718 ; patch - don't decrease lives
sta $8980 ; patch - don't increase lives
+
jsr DisableAccelerator
+READ_ROM_NO_WRITE
jmp $1206
callback sec ; non-ROM WAIT
wait2 pha
wait3 sbc #$01
bne wait3
pla
sbc #$01
bne wait2
rts
callback_e
!if * > $1C0 {
!error "code is too large, ends at ", *
}