reset vector additions

This commit is contained in:
Peter Ferrie 2020-05-26 14:52:16 -07:00
parent f0e0b599c9
commit c42d434281
11 changed files with 108 additions and 13 deletions

View File

@ -309,8 +309,7 @@
; for 64k games on ][+ which either hang or restart
; updates reset hook to reboot on ctrl-reset
!macro LC_REBOOT {
lda #$82 ; (assumes LC is switched in)
sta $101
inc $101 ; (assumes LC is switched in)
lda #$A6
sta $104
lda #$FA

View File

@ -12,7 +12,10 @@
sta $9F4
jsr $800 ; load "DOS"
+DISABLE_ACCEL
+READ_RAM2_WRITE_RAM2
jsr DisableAccelerator
+LC_REBOOT
+READ_ROM_NO_WRITE
jmp $B700
!if * > $1C0 {

View File

@ -14,6 +14,7 @@
jsr DisableAccelerator
jsr $A001
+LC_REBOOT
jmp $9FE9
!if * > $1C0 {

View File

@ -0,0 +1,31 @@
;license:MIT
;(c) 2020 by qkumba
!cpu 6502
!to "build/PRELAUNCH/LAST.GLADIATOR",plain
*=$106
!source "src/prelaunch/common.a"
+ENABLE_ACCEL
lda #$60
sta $11EA
jsr $1000 ; decompress
lda #$4C
sta $BC00
lda #<callback
sta $BC01
lda #>callback
sta $BC02
+DISABLE_ACCEL
jmp $11EF
callback
+RESET_VECTOR $100
rts
!if * > $1C0 {
!error "code is too large, ends at ", *
}

View File

@ -2,7 +2,7 @@
;(c) 2020 by qkumba
!cpu 6502
!to "build/PRELAUNCH/PHAROAHS.REVNG",plain
!to "build/PRELAUNCH/PHARAOHS.REVNG",plain
*=$106
!source "src/prelaunch/common.a"
@ -16,6 +16,7 @@
and #CHEATS_ENABLED
php
jsr DisableAccelerator
+LC_REBOOT
lda #$60
sta $85F
jsr $862
@ -25,6 +26,8 @@
lda #$a5
sta $CF7 ; patch - don't decrease lives
+
lda #1
sta $AC6
jmp $A00
!if * > $1C0 {

View File

@ -26,6 +26,10 @@
lda #>callback
sta $15C9
+DISABLE_ACCEL
lda #<callback2
sta $88E
lda #>callback2
sta $88F
jmp $800
callback
@ -33,6 +37,13 @@ callback
sta $A393
jmp $A19A
callback2
ldx #0
stx $A1C2
inx
stx $A1C7
jmp $A190
!if * > $1C0 {
!error "code is too large, ends at ", *
}

View File

@ -10,18 +10,40 @@
lda #$60
sta $A23
jsr $800 ; load "DOS"
lda #0
sta $E084
lsr $E08F
lda #$82
sta $101
lda #$A6
sta $104
lda #$FA
sta $105 ; update reset hook to reboot
inc $3F4 ; force reboot
lda #<callback1
sta $E0BD
lda #>callback1
sta $E0BE
jmp $E03A
callback1
ldy #$4C
sty $DA9D
ldy #<callback2
sty $DA9E
ldy #>callback2
sty $DA9F
jmp $D000
callback2
lda #$A2
sta $DA9D
ldx #$FF
stx $DA9E
lda #$9A
sta $DA9F
inc $3F4
inx
stx $A2C
lsr $A37
jmp $A00
!if * > $1C0 {
!error "code is too large, ends at ", *
}

View File

@ -14,9 +14,22 @@
jsr DisableAccelerator
jsr $B8C2
+LC_REBOOT
inc $3F4
jmp $B840
lda #$60
sta $B859
jsr $B840
ldx #0
stx $7323
inx
stx $732B
inc $101
lda #$A6
sta $104
lda #$FA
sta $105 ; update reset hook to reboot
jmp $800
!if * > $1C0 {
!error "code is too large, ends at ", *

View File

@ -12,9 +12,9 @@
sta $9B3
jsr $800 ; decompress
+LC_REBOOT
jsr DisableAccelerator
jsr $BE44
+LC_REBOOT
jmp $9B6
!if * > $1C0 {

View File

@ -13,7 +13,19 @@
jsr $2000 ; decompress
jsr DisableAccelerator
jsr $B801
jmp $21C1
lda #$4C
sta $21C8
jsr $21C1
ldx #0
stx $600D
inx
stx $6012
inc $101
lda #$A6
sta $104
lda #$FA
sta $105 ; update reset hook to reboot
jmp $21CB
!if * > $1C0 {
!error "code is too large, ends at ", *