diff --git a/res/DEMO/LABYRINTH b/res/DEMO/LABYRINTH index f5327a993..f06f7ef85 100755 Binary files a/res/DEMO/LABYRINTH and b/res/DEMO/LABYRINTH differ diff --git a/res/DEMO/LABYRINTH.1 b/res/DEMO/LABYRINTH.1 deleted file mode 100755 index 8d025d160..000000000 Binary files a/res/DEMO/LABYRINTH.1 and /dev/null differ diff --git a/res/DEMO/PIEMAN.1 b/res/DEMO/PIEMAN.1 deleted file mode 100755 index 29374b688..000000000 Binary files a/res/DEMO/PIEMAN.1 and /dev/null differ diff --git a/res/DEMO/PIEMAN.HI b/res/DEMO/PIEMAN.HI deleted file mode 100755 index b02f26a2f..000000000 Binary files a/res/DEMO/PIEMAN.HI and /dev/null differ diff --git a/res/DEMO/PM b/res/DEMO/PM index 389229a59..2e37ba948 100755 Binary files a/res/DEMO/PM and b/res/DEMO/PM differ diff --git a/res/DEMO/WARP.DESTROY.1 b/res/DEMO/WARP.DESTROY.1 deleted file mode 100755 index b9fab90de..000000000 Binary files a/res/DEMO/WARP.DESTROY.1 and /dev/null differ diff --git a/res/DEMO/WARP.DESTROYER b/res/DEMO/WARP.DESTROYER index 2bf637ee4..c2771b34e 100755 Binary files a/res/DEMO/WARP.DESTROYER and b/res/DEMO/WARP.DESTROYER differ diff --git a/res/DEMO/_FileInformation.txt b/res/DEMO/_FileInformation.txt index cd7d0dceb..98795ed52 100644 --- a/res/DEMO/_FileInformation.txt +++ b/res/DEMO/_FileInformation.txt @@ -80,8 +80,7 @@ KARATEKA=Type(06),AuxType(0300),Access(C3) KARATEKA.1=Type(F1),AuxType(0000),Access(C3) KAMUNGAS.1=Type(F1),AuxType(0000),Access(C3) KAMUNGAS.HI=Type(F1),AuxType(0000),Access(C3) -LABYRINTH=Type(06),AuxType(0300),Access(C3) -LABYRINTH.1=Type(F1),AuxType(0000),Access(C3) +LABYRINTH=Type(06),AuxType(0310),Access(C3) LADY.TUT=Type(06),AuxType(0300),Access(C3) LADY.TUT.1=Type(F1),AuxType(0000),Access(C3) LASER.BOUNCE=Type(06),AuxType(0300),Access(C3) @@ -101,9 +100,7 @@ NIBBLER=Type(06),AuxType(0300),Access(C3) OM=Type(06),AuxType(08FD),Access(C3) PACMAN=Type(06),AuxType(0300),Access(C3) PEST.PATROL=Type(06),AuxType(0300),Access(C3) -PM=Type(06),AuxType(0300),Access(C3) -PIEMAN.1=Type(F1),AuxType(0000),Access(C3) -PIEMAN.HI=Type(F1),AuxType(0000),Access(C3) +PM=Type(06),AuxType(0210),Access(C3) PITFALL.II=Type(06),AuxType(0300),Access(C3) PLASMANIA=Type(06),AuxType(0200),Access(C3) PHASER.FIRE=Type(06),AuxType(9200),Access(C3) @@ -154,7 +151,6 @@ THUNDERBOMBS=Type(06),AuxType(2000),Access(C3) THUNDER.1=Type(F1),AuxType(0000),Access(C3) TB=Type(06),AuxType(0300),Access(C3) TUNNEL.TERROR=Type(06),AuxType(BD00),Access(C3) -WARP.DESTROYER=Type(06),AuxType(0300),Access(C3) -WARP.DESTROY.1=Type(F1),AuxType(0000),Access(C3) +WARP.DESTROYER=Type(06),AuxType(0320),Access(C3) WAVY.NAVY=Type(06),AuxType(0300),Access(C3) VINDICATOR=Type(06),AuxType(0300),Access(C3) diff --git a/src/demo/labyrinth.a b/src/demo/labyrinth.a new file mode 100644 index 000000000..b129d2bf8 --- /dev/null +++ b/src/demo/labyrinth.a @@ -0,0 +1,73 @@ +;license:MIT +;(c) 2021 by Frank M. + +!cpu 6502 +!to "res/DEMO/LABYRINTH",plain +*=$310 + + !source "src/constants.a" ; no code in these + !source "src/macros.a" + + +READ_RAM2_WRITE_RAM2 + jsr EnableAccelerator + +;+LOAD_FILE_KEEP_DIR + ldx #0 ; read to main memory + stx ldrhi + stx ldrlo + +LDADDR title + jsr iLoadFileDirect + +READ_ROM_NO_WRITE + + ldx #12-1 ; we also need to copy the length byte +- lda newpath,x + sta $BFD0,x + dex + bpl - + + lda #$60 + sta $3874 + jsr $37F6 ; decompress + + lda #$D0 + sta $1072 + sta $107A ; disable sound + + lda #$60 + sta $BC41 + +DISABLE_ACCEL + jsr $BC00 ; show title animation + + lda #$EA + sta $1F00 + lda #$A9 + sta $1F00+1 + lda #$00 + sta $1F00+2 ; disable joystick button detection + + lda #$4C + sta $1E66 + sta $1EE9 + sta $8CAA + lda #0 + sta $1E66+1 + sta $1EE9+1 + sta $8CAA+1 + lda #1 + sta $1E66+2 + sta $1EE9+2 + sta $8CAA+2 ; set exits + + jmp $1E3E + +newpath + !byte 11 + !text "X/LABYRINTH" + +title !byte x_e-x_b +x_b !text "X/LABYRINTH/LABYRINTH" +x_e + +!if * > $BFD0 { + !error "code is too large, ends at ", * +} diff --git a/src/demo/pieman.a b/src/demo/pieman.a new file mode 100644 index 000000000..35526bf24 --- /dev/null +++ b/src/demo/pieman.a @@ -0,0 +1,71 @@ +;license:MIT +;(c) 2021 by Frank M. + +!cpu 6502 +!to "res/DEMO/PM",plain +*=$210 + + !source "src/constants.a" ; no code in these + !source "src/macros.a" + + +READ_RAM2_WRITE_RAM2 + jsr EnableAccelerator + +;+LOAD_FILE_KEEP_DIR + ldx #0 ; read to main memory + stx ldrhi + stx ldrlo + +LDADDR title + jsr iLoadFileDirect + + ldx #5-1 ; we also need to copy the length byte +- lda newpath,x + sta $BFD0,x + dex + bpl - + + +ENABLE_ACCEL + lda #$60 + sta $3EA9 + jsr $3E88 ; decompress + +DISABLE_ACCEL + + lda #$60 + sta $A050 + jsr $A000 ; title + + lda #$60 + sta $0948 + jsr $0940 + + +RESET_AND_IRQ_VECTOR $100 + + lda #$4C + sta $0EA6 + sta $13B7 + sta $09A1 + lda #0 + sta $0EA6+1 + sta $13B7+1 + lda #1 + sta $0EA6+2 + sta $13B7+2 ; set exits + + lda #$97 + sta $09A1+1 + lda #$0A + sta $09A1+2 ; start quiet demo immediately + + jmp $0950 + +newpath + !byte 4 + !text "X/PM" + +title !byte x_e-x_b +x_b !text "X/PM/PM" +x_e + +!if * > $2FF { + !error "code is too large, ends at ", * +} diff --git a/src/demo/warp.destroyer.a b/src/demo/warp.destroyer.a new file mode 100644 index 000000000..d49a0e5ac --- /dev/null +++ b/src/demo/warp.destroyer.a @@ -0,0 +1,88 @@ +;license:MIT +;(c) 2021 by Frank M. + +!cpu 6502 +!to "res/DEMO/WARP.DESTROYER",plain +*=$320 + + !source "src/constants.a" ; no code in these + !source "src/macros.a" + + +READ_RAM2_WRITE_RAM2 + jsr EnableAccelerator + +;+LOAD_FILE_KEEP_DIR + ldx #0 ; read to main memory + stx ldrhi + stx ldrlo + +LDADDR title + jsr iLoadFileDirect + + ldx #17-1 ; we also need to copy the length byte +- lda newpath,x + sta $BFD0,x + dex + bpl - + + +READ_ROM_NO_WRITE + + lda #$4C + sta $893 + jsr $800 ; decompress, show title + + ldx #1 + stx $6692 + dex + stx $669C ; reset vector patch + + lda #$B0 + sta $76D1 + lda #$13 ; disable unknown hardware support + sta $76D2 ; otherwise hangs on IIgs + + lda #$A9 + sta $7AA6 + lda #$CB + sta $7AA6+1 + lda #$EA + sta $7AA6+2 ; auto-select keyboard control + + lda #$D0 + sta $65D6 ; disable sound + + +DISABLE_ACCEL + + lda #$60 + sta $8BB + lda #0 + jsr $896 ; memory move, show second title + + lda #$4C + sta $8051 + sta $8107 + sta $8157 + sta $839D + lda #0 + sta $8051+1 + sta $8107+1 + sta $8157+1 + sta $839D+1 + lda #1 + sta $8051+2 + sta $8107+2 + sta $8157+2 + sta $839D+2 ; set exits + + jmp $667D + +newpath + !byte 16 + !text "X/WARP.DESTROYER" + +title !byte x_e-x_b +x_b !text "X/WARP.DESTROYER/WARP.DESTROYER" +x_e + +!if * > $3F0 { + !error "code is too large, ends at ", * +} diff --git a/src/prelaunch/pieman.a b/src/prelaunch/pieman.a index de439ff38..a7020f608 100755 --- a/src/prelaunch/pieman.a +++ b/src/prelaunch/pieman.a @@ -21,6 +21,8 @@ sta $948 jsr $940 + +RESET_AND_IRQ_VECTOR $100 + ldx #0 stx $10AD inx