mirror of
https://github.com/a2-4am/4cade.git
synced 2025-01-21 15:32:21 +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)
|
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
|
+ENABLE_ACCEL
|
||||||
|
|
||||||
lda #0
|
; re-patch reset vector (doesn't work during copyright sequence)
|
||||||
sta $3f2
|
+RESET_VECTOR $100
|
||||||
lda #1
|
|
||||||
sta $3f3
|
|
||||||
lda #$A4 ; reset vector patch
|
|
||||||
sta $3f4 ; (doesn't work during copyright)
|
|
||||||
|
|
||||||
lda #$6c
|
lda #$6c
|
||||||
sta $bd40
|
sta $bd40
|
||||||
|
@ -7,25 +7,7 @@
|
|||||||
|
|
||||||
!source "src/prelaunch/common.a"
|
!source "src/prelaunch/common.a"
|
||||||
|
|
||||||
lda #$2C
|
+NEW_RESET_VECTOR $7000
|
||||||
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
|
|
||||||
|
|
||||||
jmp $2000
|
jmp $2000
|
||||||
|
|
||||||
|
@ -21,18 +21,8 @@
|
|||||||
sta $2d07
|
sta $2d07
|
||||||
sta $1c17
|
sta $1c17
|
||||||
+
|
+
|
||||||
ldy #6
|
; game uses $100 as variable, so move reset vector to $1B0
|
||||||
- lda $100-1,y ; game uses $100 as variable
|
+NEW_RESET_VECTOR $1B0
|
||||||
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
|
|
||||||
|
|
||||||
+DISABLE_ACCEL
|
+DISABLE_ACCEL
|
||||||
jmp $919
|
jmp $919
|
||||||
|
@ -21,12 +21,8 @@
|
|||||||
sta $948
|
sta $948
|
||||||
jsr $940
|
jsr $940
|
||||||
|
|
||||||
lda #0
|
; re-patch reset vector
|
||||||
sta $3F2
|
+RESET_VECTOR $100
|
||||||
lda #1
|
|
||||||
sta $3F3
|
|
||||||
lda #$A4
|
|
||||||
sta $3F4 ; reset vector patch
|
|
||||||
|
|
||||||
jmp $950
|
jmp $950
|
||||||
|
|
||||||
|
@ -11,25 +11,7 @@
|
|||||||
sta $872
|
sta $872
|
||||||
jsr $800 ; title
|
jsr $800 ; title
|
||||||
|
|
||||||
lda #$2C
|
+NEW_RESET_VECTOR $100
|
||||||
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
|
|
||||||
|
|
||||||
jmp $2007
|
jmp $2007
|
||||||
|
|
||||||
|
@ -18,12 +18,8 @@
|
|||||||
sta $1DB2
|
sta $1DB2
|
||||||
jsr $1D1F
|
jsr $1D1F
|
||||||
|
|
||||||
lda #0
|
; re-patch reset vector
|
||||||
sta $3f2
|
+RESET_VECTOR $100
|
||||||
lda #1
|
|
||||||
sta $3f3
|
|
||||||
lda #$A4
|
|
||||||
sta $3f4 ; reset vector patch
|
|
||||||
|
|
||||||
jmp $42BC
|
jmp $42BC
|
||||||
|
|
||||||
|
@ -19,12 +19,8 @@
|
|||||||
sta $BD19
|
sta $BD19
|
||||||
jsr $BCFA
|
jsr $BCFA
|
||||||
|
|
||||||
lda #0
|
; re-patch reset vector
|
||||||
sta $3F2
|
+RESET_VECTOR $100
|
||||||
lda #1
|
|
||||||
sta $3F3
|
|
||||||
lda #$A4
|
|
||||||
sta $3F4 ; reset vector patch
|
|
||||||
|
|
||||||
jmp $7E00
|
jmp $7E00
|
||||||
|
|
||||||
|
@ -12,12 +12,8 @@
|
|||||||
sta $2078
|
sta $2078
|
||||||
jsr $2000 ; decompress
|
jsr $2000 ; decompress
|
||||||
|
|
||||||
lda #0
|
; re-patch reset vector
|
||||||
sta $3F2
|
+RESET_VECTOR $100
|
||||||
lda #1
|
|
||||||
sta $3F3
|
|
||||||
lda #$A4
|
|
||||||
sta $3F4 ; reset vector patch
|
|
||||||
|
|
||||||
+DISABLE_ACCEL
|
+DISABLE_ACCEL
|
||||||
jmp $817
|
jmp $817
|
||||||
|
@ -12,18 +12,7 @@
|
|||||||
sta $9318
|
sta $9318
|
||||||
jsr $6BD1 ; decompress/title
|
jsr $6BD1 ; decompress/title
|
||||||
|
|
||||||
ldy #6
|
+NEW_RESET_VECTOR $280
|
||||||
- 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
|
|
||||||
|
|
||||||
jmp $6000
|
jmp $6000
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user