mirror of
https://github.com/a2-4am/4cade.git
synced 2025-01-02 06:30:47 +00:00
macros for reset vector
fixes https://github.com/a2-4am/4cade/issues/79
This commit is contained in:
parent
ac36258131
commit
3a906762c4
27
src/macros.a
27
src/macros.a
@ -177,3 +177,30 @@
|
||||
jsr ROM_TEXT2COPY ; set alternate display mode on IIgs (required for some games)
|
||||
+
|
||||
}
|
||||
|
||||
!macro RESET_VECTOR .addr {
|
||||
lda #<.addr
|
||||
sta $3F2
|
||||
lda #>.addr
|
||||
sta $3F3
|
||||
eor #$A5
|
||||
sta $3F4
|
||||
}
|
||||
|
||||
; for games that clobber $100-$105, the prelaunch code constructs a new reset vector
|
||||
; somewhere else and sets its
|
||||
!macro NEW_RESET_VECTOR .addr {
|
||||
lda #$2C
|
||||
sta .addr
|
||||
lda #$88
|
||||
sta .addr+1
|
||||
lda #$C0
|
||||
sta .addr+2
|
||||
lda #$6C ; JMP ($FFFC) points to 'Reenter'
|
||||
sta .addr+3
|
||||
lda #$FC
|
||||
sta .addr+4
|
||||
lda #$FF
|
||||
sta .addr+5
|
||||
+RESET_VECTOR .addr
|
||||
}
|
||||
|
@ -19,12 +19,8 @@
|
||||
|
||||
+ENABLE_ACCEL
|
||||
|
||||
lda #0
|
||||
sta $3f2
|
||||
lda #1
|
||||
sta $3f3
|
||||
lda #$A4 ; reset vector patch
|
||||
sta $3f4 ; (doesn't work during copyright)
|
||||
; re-patch reset vector (doesn't work during copyright sequence)
|
||||
+RESET_VECTOR $100
|
||||
|
||||
lda #$6c
|
||||
sta $bd40
|
||||
|
@ -7,25 +7,7 @@
|
||||
|
||||
!source "src/prelaunch/common.a"
|
||||
|
||||
lda #$2C
|
||||
sta $7000
|
||||
lda #$88
|
||||
sta $7001
|
||||
lda #$C0
|
||||
sta $7002
|
||||
lda #$6C ; JMP ($FFFC)
|
||||
sta $7003 ; 'Reenter'
|
||||
lda #$FC
|
||||
sta $7004
|
||||
lda #$FF
|
||||
sta $7005 ; re-establish LC hook
|
||||
|
||||
lda #0
|
||||
sta $3F2
|
||||
lda #$70
|
||||
sta $3F3
|
||||
lda #$D5
|
||||
sta $3F4 ; reset vector patch
|
||||
+NEW_RESET_VECTOR $7000
|
||||
|
||||
jmp $2000
|
||||
|
||||
|
@ -21,18 +21,8 @@
|
||||
sta $2d07
|
||||
sta $1c17
|
||||
+
|
||||
ldy #6
|
||||
- lda $100-1,y ; game uses $100 as variable
|
||||
sta $1B0-1,y ; move hook to $1B0
|
||||
dey
|
||||
bne -
|
||||
|
||||
lda #$B0
|
||||
sta $3F2
|
||||
lda #$01
|
||||
sta $3F3
|
||||
lda #$A4
|
||||
sta $3F4 ; reset vector patch
|
||||
; game uses $100 as variable, so move reset vector to $1B0
|
||||
+NEW_RESET_VECTOR $1B0
|
||||
|
||||
+DISABLE_ACCEL
|
||||
jmp $919
|
||||
|
@ -21,12 +21,8 @@
|
||||
sta $948
|
||||
jsr $940
|
||||
|
||||
lda #0
|
||||
sta $3F2
|
||||
lda #1
|
||||
sta $3F3
|
||||
lda #$A4
|
||||
sta $3F4 ; reset vector patch
|
||||
; re-patch reset vector
|
||||
+RESET_VECTOR $100
|
||||
|
||||
jmp $950
|
||||
|
||||
|
@ -11,25 +11,7 @@
|
||||
sta $872
|
||||
jsr $800 ; title
|
||||
|
||||
lda #$2C
|
||||
sta $100
|
||||
lda #$88
|
||||
sta $101
|
||||
lda #$C0
|
||||
sta $102
|
||||
lda #$6C ; JMP ($FFFC)
|
||||
sta $103 ; 'Reenter'
|
||||
lda #$FC
|
||||
sta $104
|
||||
lda #$FF
|
||||
sta $105 ; re-establish LC hook
|
||||
|
||||
lda #0
|
||||
sta $3f2
|
||||
lda #1
|
||||
sta $3f3
|
||||
lda #$A4
|
||||
sta $3f4 ; reset vector patch
|
||||
+NEW_RESET_VECTOR $100
|
||||
|
||||
jmp $2007
|
||||
|
||||
|
@ -18,12 +18,8 @@
|
||||
sta $1DB2
|
||||
jsr $1D1F
|
||||
|
||||
lda #0
|
||||
sta $3f2
|
||||
lda #1
|
||||
sta $3f3
|
||||
lda #$A4
|
||||
sta $3f4 ; reset vector patch
|
||||
; re-patch reset vector
|
||||
+RESET_VECTOR $100
|
||||
|
||||
jmp $42BC
|
||||
|
||||
|
@ -19,12 +19,8 @@
|
||||
sta $BD19
|
||||
jsr $BCFA
|
||||
|
||||
lda #0
|
||||
sta $3F2
|
||||
lda #1
|
||||
sta $3F3
|
||||
lda #$A4
|
||||
sta $3F4 ; reset vector patch
|
||||
; re-patch reset vector
|
||||
+RESET_VECTOR $100
|
||||
|
||||
jmp $7E00
|
||||
|
||||
|
@ -12,12 +12,8 @@
|
||||
sta $2078
|
||||
jsr $2000 ; decompress
|
||||
|
||||
lda #0
|
||||
sta $3F2
|
||||
lda #1
|
||||
sta $3F3
|
||||
lda #$A4
|
||||
sta $3F4 ; reset vector patch
|
||||
; re-patch reset vector
|
||||
+RESET_VECTOR $100
|
||||
|
||||
+DISABLE_ACCEL
|
||||
jmp $817
|
||||
|
@ -12,18 +12,7 @@
|
||||
sta $9318
|
||||
jsr $6BD1 ; decompress/title
|
||||
|
||||
ldy #6
|
||||
- lda $100-1,y
|
||||
sta $280-1,y ; move hook to $280
|
||||
dey
|
||||
bne -
|
||||
|
||||
lda #$80
|
||||
sta $3F2
|
||||
lda #$02
|
||||
sta $3F3
|
||||
lda #$A7
|
||||
sta $3F4 ; reset vector patch
|
||||
+NEW_RESET_VECTOR $280
|
||||
|
||||
jmp $6000
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user