diff --git a/src/index/artwork.idx.a b/src/index/artwork.idx.a index d544a21b1..32750b3bb 100644 --- a/src/index/artwork.idx.a +++ b/src/index/artwork.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11434637 + !be24 11435149 !le16 4545 diff --git a/src/index/attract.idx.a b/src/index/attract.idx.a index 04602701e..b863cfd74 100644 --- a/src/index/attract.idx.a +++ b/src/index/attract.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11385850 + !be24 11386362 !le16 5294 diff --git a/src/index/cache00.idx.a b/src/index/cache00.idx.a index afc9eb484..b1c714b5d 100644 --- a/src/index/cache00.idx.a +++ b/src/index/cache00.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11326212 + !be24 11326724 !le16 3654 diff --git a/src/index/cache01.idx.a b/src/index/cache01.idx.a index 2c867da14..d77ab7a83 100644 --- a/src/index/cache01.idx.a +++ b/src/index/cache01.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11338993 + !be24 11339505 !le16 4064 diff --git a/src/index/cache10.idx.a b/src/index/cache10.idx.a index 344c7f418..20265b494 100644 --- a/src/index/cache10.idx.a +++ b/src/index/cache10.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11355033 + !be24 11355545 !le16 5245 diff --git a/src/index/cache11.idx.a b/src/index/cache11.idx.a index ff11e83d6..85baad48f 100644 --- a/src/index/cache11.idx.a +++ b/src/index/cache11.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11373547 + !be24 11374059 !le16 5870 diff --git a/src/index/coverfade.idx.a b/src/index/coverfade.idx.a index 286813020..47cab0d86 100644 --- a/src/index/coverfade.idx.a +++ b/src/index/coverfade.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11439182 + !be24 11439694 !le16 410 diff --git a/src/index/credits.idx.a b/src/index/credits.idx.a index 0abb6ef8e..26bc2a576 100644 --- a/src/index/credits.idx.a +++ b/src/index/credits.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11439936 + !be24 11440448 !le16 448 diff --git a/src/index/decrunch.idx.a b/src/index/decrunch.idx.a index 5dcec32f3..d4f1e0db5 100644 --- a/src/index/decrunch.idx.a +++ b/src/index/decrunch.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11440384 + !be24 11440896 !le16 303 diff --git a/src/index/dfx.idx.a b/src/index/dfx.idx.a index 16ac9bfea..ed95e62a8 100644 --- a/src/index/dfx.idx.a +++ b/src/index/dfx.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11393290 + !be24 11393802 !le16 1242 diff --git a/src/index/dgr.fizzle.idx.a b/src/index/dgr.fizzle.idx.a index 196f36637..e5db261b4 100644 --- a/src/index/dgr.fizzle.idx.a +++ b/src/index/dgr.fizzle.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11439668 + !be24 11440180 !le16 67 diff --git a/src/index/dgr.idx.a b/src/index/dgr.idx.a index d80b5e6d4..415288a6d 100644 --- a/src/index/dgr.idx.a +++ b/src/index/dgr.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11434578 + !be24 11435090 !le16 59 diff --git a/src/index/dhgr.idx.a b/src/index/dhgr.idx.a index 2ddeed3ce..745a42c9c 100644 --- a/src/index/dhgr.idx.a +++ b/src/index/dhgr.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11433093 + !be24 11433605 !le16 1404 diff --git a/src/index/dtitle.idx.a b/src/index/dtitle.idx.a index 511bc0a32..f497eff2a 100644 --- a/src/index/dtitle.idx.a +++ b/src/index/dtitle.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11418710 + !be24 11419222 !le16 521 diff --git a/src/index/fx.idx.a b/src/index/fx.idx.a index 914024788..0fb7af819 100644 --- a/src/index/fx.idx.a +++ b/src/index/fx.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11391144 + !be24 11391656 !le16 2146 diff --git a/src/index/gamehelp.idx.a b/src/index/gamehelp.idx.a index 759aea937..c4a6edfc8 100644 --- a/src/index/gamehelp.idx.a +++ b/src/index/gamehelp.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11394890 + !be24 11395402 !le16 6433 diff --git a/src/index/gr.fizzle.idx.a b/src/index/gr.fizzle.idx.a index 6af91cc90..00600a351 100644 --- a/src/index/gr.fizzle.idx.a +++ b/src/index/gr.fizzle.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11439592 + !be24 11440104 !le16 76 diff --git a/src/index/gr.idx.a b/src/index/gr.idx.a index c47a92f37..e678eb902 100644 --- a/src/index/gr.idx.a +++ b/src/index/gr.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11434497 + !be24 11435009 !le16 81 diff --git a/src/index/helptext.idx.a b/src/index/helptext.idx.a index e5bef0c90..83d824cec 100644 --- a/src/index/helptext.idx.a +++ b/src/index/helptext.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11439735 + !be24 11440247 !le16 201 diff --git a/src/index/hgr0.idx.a b/src/index/hgr0.idx.a index 957a0f641..8e7197d8a 100644 --- a/src/index/hgr0.idx.a +++ b/src/index/hgr0.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11419231 + !be24 11419743 !le16 4511 diff --git a/src/index/hgr1.idx.a b/src/index/hgr1.idx.a index b7c12559b..b9a745ef4 100644 --- a/src/index/hgr1.idx.a +++ b/src/index/hgr1.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11423742 + !be24 11424254 !le16 1591 diff --git a/src/index/hgr2.idx.a b/src/index/hgr2.idx.a index 399732e86..a8d95bc56 100644 --- a/src/index/hgr2.idx.a +++ b/src/index/hgr2.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11425333 + !be24 11425845 !le16 1053 diff --git a/src/index/hgr3.idx.a b/src/index/hgr3.idx.a index 2540fec1d..527a8167e 100644 --- a/src/index/hgr3.idx.a +++ b/src/index/hgr3.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11426386 + !be24 11426898 !le16 3237 diff --git a/src/index/hgr4.idx.a b/src/index/hgr4.idx.a index 2724cb4c0..e3a328400 100644 --- a/src/index/hgr4.idx.a +++ b/src/index/hgr4.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11429623 + !be24 11430135 !le16 2877 diff --git a/src/index/hgr5.idx.a b/src/index/hgr5.idx.a index dcb4f3600..27bb357ac 100644 --- a/src/index/hgr5.idx.a +++ b/src/index/hgr5.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11432500 + !be24 11433012 !le16 479 diff --git a/src/index/hgr6.idx.a b/src/index/hgr6.idx.a index 62f341e41..5d99fec6c 100644 --- a/src/index/hgr6.idx.a +++ b/src/index/hgr6.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11432979 + !be24 11433491 !le16 114 diff --git a/src/index/joystick.idx.a b/src/index/joystick.idx.a index 1cb7b7a0c..d3126fd40 100644 --- a/src/index/joystick.idx.a +++ b/src/index/joystick.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11440687 + !be24 11441199 !le16 2370 diff --git a/src/index/miniattract0.idx.a b/src/index/miniattract0.idx.a index 3e0581c89..3d1e72075 100644 --- a/src/index/miniattract0.idx.a +++ b/src/index/miniattract0.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11406279 + !be24 11406791 !le16 3642 diff --git a/src/index/miniattract1.idx.a b/src/index/miniattract1.idx.a index 8a6a5d7c5..b1a20ace0 100644 --- a/src/index/miniattract1.idx.a +++ b/src/index/miniattract1.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11409921 + !be24 11410433 !le16 2795 diff --git a/src/index/prelaunch.idx.a b/src/index/prelaunch.idx.a index 3e1d60d49..4e66fd9a4 100644 --- a/src/index/prelaunch.idx.a +++ b/src/index/prelaunch.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11379417 + !be24 11379929 !le16 6433 diff --git a/src/index/res.cover.idx.a b/src/index/res.cover.idx.a index 4be6c9612..ea45f6507 100644 --- a/src/index/res.cover.idx.a +++ b/src/index/res.cover.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 3698688 + !be24 3699200 !le16 8192 diff --git a/src/index/res.help.idx.a b/src/index/res.help.idx.a index 20d3d2d29..6763921ad 100644 --- a/src/index/res.help.idx.a +++ b/src/index/res.help.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 3715072 + !be24 3715584 !le16 8192 diff --git a/src/index/res.title.idx.a b/src/index/res.title.idx.a index 828c09c63..f4affdeb2 100644 --- a/src/index/res.title.idx.a +++ b/src/index/res.title.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 3706880 + !be24 3707392 !le16 8192 diff --git a/src/index/search00.idx.a b/src/index/search00.idx.a index f4ad18c57..7594d06d1 100644 --- a/src/index/search00.idx.a +++ b/src/index/search00.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11317929 + !be24 11318441 !le16 8283 diff --git a/src/index/search01.idx.a b/src/index/search01.idx.a index 8e837b793..bdc9f75b9 100644 --- a/src/index/search01.idx.a +++ b/src/index/search01.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11329866 + !be24 11330378 !le16 9127 diff --git a/src/index/search10.idx.a b/src/index/search10.idx.a index 72649b580..b75043984 100644 --- a/src/index/search10.idx.a +++ b/src/index/search10.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11343057 + !be24 11343569 !le16 11976 diff --git a/src/index/search11.idx.a b/src/index/search11.idx.a index 03e5156db..9f5d4d526 100644 --- a/src/index/search11.idx.a +++ b/src/index/search11.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11360278 + !be24 11360790 !le16 13269 diff --git a/src/index/sfx.idx.a b/src/index/sfx.idx.a index 44200b96a..42b2271a5 100644 --- a/src/index/sfx.idx.a +++ b/src/index/sfx.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11394532 + !be24 11395044 !le16 358 diff --git a/src/index/slideshow.idx.a b/src/index/slideshow.idx.a index d01e9aa43..ec2d4f828 100644 --- a/src/index/slideshow.idx.a +++ b/src/index/slideshow.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11401323 + !be24 11401835 !le16 4956 diff --git a/src/index/title.idx.a b/src/index/title.idx.a index 81e23eeb9..c0ea67782 100644 --- a/src/index/title.idx.a +++ b/src/index/title.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11412716 + !be24 11413228 !le16 5994 diff --git a/src/macros.a b/src/macros.a index 106557921..95aa60a07 100755 --- a/src/macros.a +++ b/src/macros.a @@ -375,7 +375,7 @@ eor #$A5 sta $3F4 } else { - !if >.addr != 1 { + !if (>.addr != 1) or (.addr = $100) { lda #>.addr sta $3F3 eor #$A5 @@ -385,17 +385,22 @@ } } +!macro RESET_VECTOR_HALF .addr { + lda #>.addr + sta $3F3 + eor #$A5 + sta $3F4 +} + !macro RESET_AND_IRQ_VECTOR .addr { lda #<.addr sta $3F2 sta $3FE - !if >.addr != 1 { lda #>.addr sta $3F3 sta $3FF eor #$A5 sta $3F4 - } } ; for games that clobber $100-$105, the prelaunch code constructs a new reset vector ; somewhere else and sets its diff --git a/src/prelaunch/cannonball.bltz.a b/src/prelaunch/cannonball.bltz.a index bac353da2..3598a0b4f 100755 --- a/src/prelaunch/cannonball.bltz.a +++ b/src/prelaunch/cannonball.bltz.a @@ -18,7 +18,7 @@ sta $7dbf ; patch - don't increase lives sta $9c01 ; patch - don't decrease lives + - +RESET_VECTOR $100 + +RESET_VECTOR_HALF $100 lda #$2C sta $A0D2 sta $A0D5 diff --git a/src/prelaunch/head.on.a b/src/prelaunch/head.on.a index 1eaf0ee1e..73c4aef16 100755 --- a/src/prelaunch/head.on.a +++ b/src/prelaunch/head.on.a @@ -13,13 +13,6 @@ ; clobbers $100, sets LC & page 3 reset vectors +NEW_RESET_VECTOR $7000 - lda #$4C - sta $7003 ; JMP not (JMP) - lda $104 - sta $7004 - lda $105 ; clone actual TR reentry point to $7000 - sta $7005 ; loops between LC and $7000 otherwise - lda #0 sta $FFFC lda #$70 diff --git a/src/prelaunch/jellyfish.a b/src/prelaunch/jellyfish.a index 17aac8f77..eaf47ccf7 100644 --- a/src/prelaunch/jellyfish.a +++ b/src/prelaunch/jellyfish.a @@ -9,21 +9,25 @@ +ENABLE_ACCEL - lda #reset - sta $2049+2 - - ldx #(reset_e-reset)-1 -- lda callback,x + ldx # $1C0 { !error "code is too large, ends at ", * diff --git a/src/prelaunch/mazeblox.a b/src/prelaunch/mazeblox.a index 8d7c5b641..5999f5198 100644 --- a/src/prelaunch/mazeblox.a +++ b/src/prelaunch/mazeblox.a @@ -24,10 +24,13 @@ hook2 lda #hook3 sta $9E4D+2 + ldx #0 + stx $9E52 + inx + stx $9E53 ; reset vector fix jmp $9D84 ; decompress3 -hook3 +RESET_VECTOR $100 - +READ_RAM2_NO_WRITE +hook3 +READ_RAM2_NO_WRITE lda MachineStatus and #CHEATS_ENABLED beq + diff --git a/src/prelaunch/micro.invaders.a b/src/prelaunch/micro.invaders.a index 20a31bc89..237bd4103 100644 --- a/src/prelaunch/micro.invaders.a +++ b/src/prelaunch/micro.invaders.a @@ -19,7 +19,7 @@ sta $144B ; patch - don't decrease lives sta $E96 ; patch - don't increase lives + - +RESET_VECTOR $100 + +RESET_VECTOR_HALF $100 +DISABLE_ACCEL jmp $305 diff --git a/src/prelaunch/quadrant.6112.a b/src/prelaunch/quadrant.6112.a index ebc7c548f..1845b018c 100755 --- a/src/prelaunch/quadrant.6112.a +++ b/src/prelaunch/quadrant.6112.a @@ -7,12 +7,12 @@ !source "src/prelaunch/common.a" + +NEW_RESET_VECTOR $160 + lda #$60 sta $872 jsr $800 ; title - +NEW_RESET_VECTOR $100 - jmp $2007 diff --git a/src/prelaunch/saracen.a b/src/prelaunch/saracen.a index 12a2f8da0..a121b9ccf 100644 --- a/src/prelaunch/saracen.a +++ b/src/prelaunch/saracen.a @@ -25,7 +25,7 @@ callback dec $8A5 ; patch - don't decrease lives dec $8DE ; patch - don't decrease lives + - +RESET_VECTOR $100 + +RESET_VECTOR_HALF $100 lda $7fe ; Saracen code pha +DISABLE_ACCEL diff --git a/src/prelaunch/vindicator.a b/src/prelaunch/vindicator.a index ddc304f26..da4552a71 100755 --- a/src/prelaunch/vindicator.a +++ b/src/prelaunch/vindicator.a @@ -8,11 +8,11 @@ !source "src/prelaunch/common.a" +ENABLE_ACCEL + +NEW_RESET_VECTOR $BFF0 lda #$60 sta $1867 jsr $180F ; decompress - +NEW_RESET_VECTOR $BFF0 lda #$F0 sta $4001 lda #$BF diff --git a/src/prelaunch/zoo.master.a b/src/prelaunch/zoo.master.a index 5278f0fe1..3a0f2e442 100644 --- a/src/prelaunch/zoo.master.a +++ b/src/prelaunch/zoo.master.a @@ -11,7 +11,7 @@ lda #$60 sta $60A4 jsr $6000 ; decompress - +RESET_VECTOR $100 + +RESET_VECTOR_HALF $100 lda #$60 sta $89F jsr $800 ; decompress more