From 4a3b829cde2765f7fcf703daa1c10d46b460f323 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Wed, 16 Oct 2024 23:35:21 -0400 Subject: [PATCH] peasant: prepare disk4 --- games/peasant/Makefile | 19 +++++++-- games/peasant/wrong_boot/Makefile | 13 +++++- games/peasant/wrong_boot/wrong_boot4.s | 58 ++++++++++++++++++++++++++ 3 files changed, 84 insertions(+), 6 deletions(-) create mode 100644 games/peasant/wrong_boot/wrong_boot4.s diff --git a/games/peasant/Makefile b/games/peasant/Makefile index 7b0c7a8d..870b9565 100644 --- a/games/peasant/Makefile +++ b/games/peasant/Makefile @@ -11,7 +11,8 @@ PRODOS = ../../utils/prodos-utils/prodos PRODOS_RAW = ../../utils/prodos-utils/prodos_raw -all: peasant_disk1.dsk peasant_disk2.dsk peasant_disk3.dsk peasant.2mg +all: peasant_disk1.dsk peasant_disk2.dsk peasant_disk3.dsk \ + peasant_disk4.dsk peasant.2mg peasant_disk1.dsk: QBOOT QLOAD \ ./vid_logo/VID_LOGO ./title/TITLE ./intro/INTRO \ @@ -60,6 +61,14 @@ peasant_disk3.dsk: ./trogdor/TROGDOR ./ending/ENDING \ $(DOS33_RAW) peasant_disk3.dsk 26 0 ./climb/CLIMB 0 0 $(DOS33_RAW) peasant_disk3.dsk 30 0 ./cliff_heights/CLIFF_HEIGHTS 0 0 +peasant_disk4.dsk: ./wrong_boot/WBOOT4 \ + ./cliff_base/CLIFF_BASE ./climb/CLIMB \ + ./cliff_heights/CLIFF_HEIGHTS \ + ./trogdor/TROGDOR ./ending/ENDING + cp $(EMPTY_DISK)/empty.dsk peasant_disk4.dsk + $(DOS33_RAW) peasant_disk4.dsk 0 0 ./wrong_boot/WBOOT4 0 1 + + peasant.2mg: dts_block PROBOOTHD QLOAD_HD \ ./vid_logo/VID_LOGO ./title/TITLE ./intro/INTRO \ ./music/MUSIC ./copy/COPY_CHECK ./inventory/INVENTORY \ @@ -516,8 +525,10 @@ text/common.inc.lookup: submit: peasant_floppies.zip peasant.2mg.zip -peasant_floppies.zip: peasant_disk1.dsk peasant_disk2.dsk peasant_disk3.dsk - zip peasant_floppies.zip peasant_disk1.dsk peasant_disk2.dsk peasant_disk3.dsk +peasant_floppies.zip: peasant_disk1.dsk peasant_disk2.dsk \ + peasant_disk3.dsk peasant_disk4.dsk + zip peasant_floppies.zip peasant_disk1.dsk peasant_disk2.dsk \ + peasant_disk3.dsk peasant_disk4.dsk peasant.2mg.zip: peasant.2mg zip peasant.2mg.zip peasant.2mg @@ -553,7 +564,7 @@ distclean: clean: rm -f *~ *.o *.lst qload.inc \ PEASANT1 PEASANT2 PEASANT3 PEASANT4 \ - *.ZX02 dialog_peasant2 \ + *.ZX02 \ generate_common generate_all_symbols cd archery && make clean cd cliff_base && make clean diff --git a/games/peasant/wrong_boot/Makefile b/games/peasant/wrong_boot/Makefile index 5f5911a6..ae326084 100644 --- a/games/peasant/wrong_boot/Makefile +++ b/games/peasant/wrong_boot/Makefile @@ -2,7 +2,7 @@ include ../../../Makefile.inc LINKER_SCRIPTS = ../../../linker_scripts -all: WBOOT2 WBOOT3 +all: WBOOT2 WBOOT3 WBOOT4 ### @@ -20,6 +20,15 @@ WBOOT3: wrong_boot3.o wrong_boot3.o: wrong_boot3.s ca65 -o wrong_boot3.o wrong_boot3.s -l wrong_boot3.lst +### + +WBOOT4: wrong_boot4.o + ld65 -o WBOOT4 wrong_boot4.o -C $(LINKER_SCRIPTS)/apple2_800.inc + +wrong_boot4.o: wrong_boot4.s + ca65 -o wrong_boot4.o wrong_boot4.s -l wrong_boot4.lst + + ### @@ -29,4 +38,4 @@ distclean: ### clean: - rm -f *~ *.o *.lst WBOOT2 WBOOT3 + rm -f *~ *.o *.lst WBOOT2 WBOOT3 WBOOT4 diff --git a/games/peasant/wrong_boot/wrong_boot4.s b/games/peasant/wrong_boot/wrong_boot4.s new file mode 100644 index 00000000..9a600c3a --- /dev/null +++ b/games/peasant/wrong_boot/wrong_boot4.s @@ -0,0 +1,58 @@ + + .byte 1 ; number of sectors for ROM to load + +wboot_entry: + ldx $2B ; load slot into X + ; possibly unnecessary, already there? + + lda $C088,X ; turn off drive motor + + ; put $CX00 in $10:$11, where X is slot + ; allows rebooting later + + txa + lsr + lsr + lsr + lsr + ora #$c0 + sta $11 + + lda #$00 + sta $10 + + ; make sure we are in 40col mode + ; with monitor I/O working + + jsr $FE89 ; SETKBD (simulate keypress?) + jsr $FE93 ; SETVID (simulate video output?) + jsr $FB2F ; INIT (clear screen/etc) + jsr $FE84 ; SETNORM (set normal video) + jsr $FC58 ; HOME (clear screen) + + ; print our message + + ldx #$00 ; loop either 256 chars or until hit zero +loop: + lda message,X + beq done + ora #$80 + jsr $FDED ; COUT + inx + bne loop +done: + + ; wait for keypress + + jsr $fd0c ; RDKEY + + ; resboot from current disk (set earlier) + jmp ($0010) + +message: + .byte $0D,$0D,$0D,$0D,$0D + .byte " PEASANT'S QUEST - DISK 3",$0D,$0D,$0D + .byte " PLEASE INSERT DISK 1",$0D,$0D + .byte " PRESS ANY KEY TO REBOOT",$0D + .byte $00 +