diff --git a/src/prelaunch/a.city.dies.a b/src/prelaunch/a.city.dies.a index 00172b347..431a8df54 100644 --- a/src/prelaunch/a.city.dies.a +++ b/src/prelaunch/a.city.dies.a @@ -22,16 +22,10 @@ sta $B743 jmp $B700 ; decompress2 -hook lda #$A9 - sta $9E30 - sta $9E3B - lda #$EA - sta $9E32 - sta $9E3D - lda #$02 - sta $9E31 - lda #$80 - sta $9E3C ; change vector to $280 +hook lda #$80 + sta $9E52 + lda #2 + sta $9E53 ; reset vector fix +DISABLE_ACCEL jmp $BFC8 diff --git a/src/prelaunch/apple.invader.a b/src/prelaunch/apple.invader.a new file mode 100644 index 000000000..7616abcf2 --- /dev/null +++ b/src/prelaunch/apple.invader.a @@ -0,0 +1,44 @@ +;license:MIT +;(c) 2021 by Frank M. + +!cpu 6502 +!to "build/PRELAUNCH/APPLE.INVADER",plain +*=$106 + + !source "src/prelaunch/common.a" + + ;+ENABLE_ACCEL ; text on screen + + lda #$60 + sta $6020 + jsr $6002 ; decompress + + lda #$D8 ; move location from $3F2 to $3D8 + sta $1113 ; (program uses reset vector for storage) + sta $1245 + sta $4A2C + sta $4A34 + sta $4A41 + sta $5A9C + sta $5AA4 + sta $5AB1 + sta $5A9C + + lda #$D9 ; move location from $3F3 to $3D9 + sta $1FA0 + sta $4A31 + sta $4F4D + sta $5AA1 + + lda #$DA ; move location from $3F4 to $3DA + sta $11AF + sta $1824 + sta $19DF + sta $1DE8 + sta $1E5A + + jmp $5F00 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} \ No newline at end of file diff --git a/src/prelaunch/artesians.a b/src/prelaunch/artesians.a new file mode 100644 index 000000000..b7c8d69ae --- /dev/null +++ b/src/prelaunch/artesians.a @@ -0,0 +1,23 @@ +;license:MIT +;(c) 2021 by Frank M. + +!cpu 6502 +!to "build/PRELAUNCH/ARTESIANS",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #hook + sta $87B+2 + jmp $800 ; decompress + +hook +RESET_VECTOR $100 + +DISABLE_ACCEL + jmp $B31B + +!if * > $1C0 { + !error "code is too large, ends at ", * +} \ No newline at end of file diff --git a/src/prelaunch/caverns.freitag.a b/src/prelaunch/caverns.freitag.a new file mode 100644 index 000000000..785e02b78 --- /dev/null +++ b/src/prelaunch/caverns.freitag.a @@ -0,0 +1,18 @@ +;license:MIT +;(c) 2021 by Frank M. + +!cpu 6502 +!to "build/PRELAUNCH/CAVERNS.FREITAG",plain +*=$106 + + !source "src/prelaunch/common.a" + + ;+ENABLE_ACCEL ; shows title + + +NEW_RESET_VECTOR $280 + + jmp $4000 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} \ No newline at end of file diff --git a/src/prelaunch/infiltrator.a b/src/prelaunch/infiltrator.a new file mode 100644 index 000000000..c26061b9b --- /dev/null +++ b/src/prelaunch/infiltrator.a @@ -0,0 +1,22 @@ +;license:MIT +;(c) 2021 by Frank M. + +!cpu 6502 +!to "build/PRELAUNCH/INFILTRATOR",plain +*=$106 + + !source "src/prelaunch/common.a" + + +READ_RAM1_WRITE_RAM1 + +LC_REBOOT + +READ_ROM_NO_WRITE + lda #$B4 + sta $98E + lda #$EF + sta $98D ; reset vector fix + + jmp $800 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} \ No newline at end of file diff --git a/src/prelaunch/its.the.pits.a b/src/prelaunch/its.the.pits.a new file mode 100644 index 000000000..9e60ec0d9 --- /dev/null +++ b/src/prelaunch/its.the.pits.a @@ -0,0 +1,28 @@ +;license:MIT +;(c) 2021 by Frank M. + +!cpu 6502 +!to "build/PRELAUNCH/ITS.THE.PITS",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #$60 + sta $813 + jsr $800 ; decompress + + lda #$2C + sta $1806 + sta $180B + sta $1810 + sta $1833 + sta $1838 + sta $183D ; reset vector fix + + +DISABLE_ACCEL + jmp $1800 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} \ No newline at end of file diff --git a/src/prelaunch/jellyfish.a b/src/prelaunch/jellyfish.a new file mode 100644 index 000000000..90d30fd92 --- /dev/null +++ b/src/prelaunch/jellyfish.a @@ -0,0 +1,34 @@ +;license:MIT +;(c) 2021 by Frank M. + +!cpu 6502 +!to "build/PRELAUNCH/JELLYFISH",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + + lda #reset + sta $2049+2 + + ldx #(reset_e-reset)-1 +- lda callback,x + sta $50,x + dex + bpl - + + jmp $2000 + +callback !pseudopc $50 { +reset +NEW_RESET_VECTOR $2F0 + +DISABLE_ACCEL + jmp $B800 +reset_e +} + +!if * > $1C0 { + !error "code is too large, ends at ", * +} \ No newline at end of file diff --git a/src/prelaunch/lunar.leepers.a b/src/prelaunch/lunar.leepers.a new file mode 100644 index 000000000..58c4a45e5 --- /dev/null +++ b/src/prelaunch/lunar.leepers.a @@ -0,0 +1,23 @@ +;license:MIT +;(c) 2021 by Frank M. + +!cpu 6502 +!to "build/PRELAUNCH/LUNAR.LEEPERS",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + + lda #$60 + sta $87D + jsr $800 ; decompress + + +RESET_VECTOR $100 + + +DISABLE_ACCEL + jmp $6000 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} \ No newline at end of file diff --git a/src/prelaunch/marauder.a b/src/prelaunch/marauder.a new file mode 100644 index 000000000..05279e161 --- /dev/null +++ b/src/prelaunch/marauder.a @@ -0,0 +1,27 @@ +;license:MIT +;(c) 2021 by Frank M. + +!cpu 6502 +!to "build/PRELAUNCH/MARAUDER",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + + lda #$60 + sta $864 + jsr $800 ; decompress + + +NEW_RESET_VECTOR $1A0 + lda #$2C + sta $B5D1 + sta $B5D4 + sta $B5D9 ; reset vector fix + + +DISABLE_ACCEL + jmp $B5B9 + +!if * > $1A0 { + !error "code is too large for reset vector hook, ends at ", * +} \ No newline at end of file diff --git a/src/prelaunch/mazeblox.a b/src/prelaunch/mazeblox.a new file mode 100644 index 000000000..2d8bfdf64 --- /dev/null +++ b/src/prelaunch/mazeblox.a @@ -0,0 +1,35 @@ +;license:MIT +;(c) 2021 by Frank M. + +!cpu 6502 +!to "build/PRELAUNCH/MAZEBLOX",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #hook1 + sta $A10+2 + jmp $800 ; decompress1 + +hook1 lda #hook2 + sta $B747+2 + jmp $B700 ; decompress2 + +hook2 lda #hook3 + sta $9E4D+2 + jmp $9D84 ; decompress3 + +hook3 +RESET_VECTOR $100 + +DISABLE_ACCEL + jmp $A180 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} \ No newline at end of file diff --git a/src/prelaunch/neut.tower.a b/src/prelaunch/neut.tower.a new file mode 100644 index 000000000..edf29f89f --- /dev/null +++ b/src/prelaunch/neut.tower.a @@ -0,0 +1,15 @@ +;license:MIT +;(c) 2021 by Frank M. + +!cpu 6502 +!to "build/PRELAUNCH/NEUT.TOWER",plain +*=$106 + + !source "src/prelaunch/common.a" + + +NEW_RESET_VECTOR $280 + jmp $5000 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} \ No newline at end of file diff --git a/src/prelaunch/on.the.run.a b/src/prelaunch/on.the.run.a new file mode 100644 index 000000000..285805c11 --- /dev/null +++ b/src/prelaunch/on.the.run.a @@ -0,0 +1,24 @@ +;license:MIT +;(c) 2021 by Frank M. + +!cpu 6502 +!to "build/PRELAUNCH/ON.THE.RUN",plain +*=$106 + + !source "src/prelaunch/common.a" + + ;+ENABLE_ACCEL ; can't, shows title + + lda #hook + sta $9437 + jmp $9400 ; decompress + +hook +RESET_VECTOR $100 + + jmp $800 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} \ No newline at end of file diff --git a/src/prelaunch/peeping.tom.a b/src/prelaunch/peeping.tom.a new file mode 100644 index 000000000..05ee06947 --- /dev/null +++ b/src/prelaunch/peeping.tom.a @@ -0,0 +1,29 @@ +;license:MIT +;(c) 2021 by Frank M. + +!cpu 6502 +!to "build/PRELAUNCH/PEEPING.TOM",plain +*=$106 + + !source "src/prelaunch/common.a" + + ;+ENABLE_ACCEL ; shows title right away + + lda #hook1 + sta $6969+2 + jmp $68F5 ; decompress1 + +hook1 lda #hook2 + sta $BEA4+2 + jmp $BE81 ; decompress2 + +hook2 +RESET_VECTOR $100 + jmp $17E3 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} \ No newline at end of file diff --git a/src/prelaunch/space.kadet.a b/src/prelaunch/space.kadet.a new file mode 100644 index 000000000..0822a68e2 --- /dev/null +++ b/src/prelaunch/space.kadet.a @@ -0,0 +1,42 @@ +;license:MIT +;(c) 2021 by Frank M. + +!cpu 6502 +!to "build/PRELAUNCH/SPACE.KADET",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + + lda #hook1 + sta $3631+2 + jmp $3600 ; decompress1 + +hook1 lda #hook2 + sta $9A68+2 + jmp $9A4A ; decompress2 + +hook2 lda #hook3 + sta $9A7A+2 + +DISABLE_ACCEL + jmp $800 ; show title + +hook3 lda #0 + sta $6914 + lda #1 + sta $690F + lda #$A4 + sta $690A ; reset vector fix + + jmp $1200 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} \ No newline at end of file diff --git a/src/prelaunch/star.dance.a b/src/prelaunch/star.dance.a new file mode 100644 index 000000000..5ef0b0fb6 --- /dev/null +++ b/src/prelaunch/star.dance.a @@ -0,0 +1,27 @@ +;license:MIT +;(c) 2021 by Frank M. + +!cpu 6502 +!to "build/PRELAUNCH/STAR.DANCE",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #hook + sta $1FB9+2 + jmp $1F74 ; decompress + +hook lda #0 + sta $7007 + lda #1 + sta $700C ; reset vector fix + + +DISABLE_ACCEL + jmp $7000 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} \ No newline at end of file diff --git a/src/prelaunch/starball.a b/src/prelaunch/starball.a new file mode 100644 index 000000000..c28bc0aae --- /dev/null +++ b/src/prelaunch/starball.a @@ -0,0 +1,27 @@ +;license:MIT +;(c) 2021 by Frank M. + +!cpu 6502 +!to "build/PRELAUNCH/STARBALL",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #hook + sta $A1E+2 + jmp $800 ; decompress + +hook lda #0 + sta $9E52 + lda #1 + sta $9E53 ; reset vector fix + + +DISABLE_ACCEL + jmp $9D84 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} \ No newline at end of file diff --git a/src/prelaunch/super.taxman.2.a b/src/prelaunch/super.taxman.2.a new file mode 100644 index 000000000..5a5e04db4 --- /dev/null +++ b/src/prelaunch/super.taxman.2.a @@ -0,0 +1,30 @@ +;license:MIT +;(c) 2021 by Frank M. + +!cpu 6502 +!to "build/PRELAUNCH/SUPER.TAXMAN.2",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #hook + sta $C81+2 + jmp $C00 ; decompress + +hook lda #0 + sta $4056 + lda #1 + sta $4061 ; reset vector fix + + lda #$2C ; annunciator fix - kills Gizmo/joyport support + sta $666A ; but fixes ][+ 80-col softswitch and //c+ coloring + + +DISABLE_ACCEL + jmp $4000 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} \ No newline at end of file diff --git a/src/prelaunch/titan.cronus.a b/src/prelaunch/titan.cronus.a new file mode 100644 index 000000000..f2c1c8a02 --- /dev/null +++ b/src/prelaunch/titan.cronus.a @@ -0,0 +1,33 @@ +;license:MIT +;(c) 2021 by Frank M. + +!cpu 6502 +!to "build/PRELAUNCH/TITAN.CRONUS",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #hook + sta $1053+2 + jmp $1000 ; decompress + +hook +NEW_RESET_VECTOR $280 + + lda #$8C ; CALL + sta $C84 + lda #$36 ; "640" / $280 + sta $C84+1 + lda #$34 + sta $C84+2 ; return to TR instead of BASIC + lda #$30 + sta $C84+3 ; (replaces TEXT:HOME:END) + + +DISABLE_ACCEL + jmp $D566 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} \ No newline at end of file diff --git a/src/prelaunch/vortex.a b/src/prelaunch/vortex.a new file mode 100644 index 000000000..9889328d6 --- /dev/null +++ b/src/prelaunch/vortex.a @@ -0,0 +1,23 @@ +;license:MIT +;(c) 2021 by Frank M. + +!cpu 6502 +!to "build/PRELAUNCH/VORTEX",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #hook + sta $407E+2 + jmp $4000 ; decompress2 + +hook +RESET_VECTOR $100 + +DISABLE_ACCEL + jmp $D566 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} \ No newline at end of file