From 845edde669d6f7ddb2d59e39e587446cac5023f0 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Sun, 19 Sep 2021 00:12:44 -0400 Subject: [PATCH] peasant: update some documentation --- games/peasant/Makefile | 20 ++++++++++--- games/peasant/TODO | 3 -- games/peasant/qload.s | 12 ++++---- games/peasant/trogdor.s | 7 ++--- games/peasant/wrong_boot2.s | 58 +++++++++++++++++++++++++++++++++++++ games/peasant/zp.inc | 2 ++ 6 files changed, 85 insertions(+), 17 deletions(-) create mode 100644 games/peasant/wrong_boot2.s diff --git a/games/peasant/Makefile b/games/peasant/Makefile index 685d87e3..33849419 100644 --- a/games/peasant/Makefile +++ b/games/peasant/Makefile @@ -21,15 +21,15 @@ peasant.dsk: QBOOT QLOAD VID_LOGO TITLE INTRO COPY_CHECK \ $(DOS33_RAW) peasant.dsk 8 0 INTRO 0 0 $(DOS33_RAW) peasant.dsk 12 0 COPY_CHECK 0 0 $(DOS33_RAW) peasant.dsk 14 0 PEASANT1 0 0 -# $(DOS33_RAW) peasant.dsk 19 0 PEASANT2 0 0 + $(DOS33_RAW) peasant.dsk 19 0 PEASANT2 0 0 $(DOS33_RAW) peasant.dsk 19 0 TROGDOR 0 0 -# $(DOS33_RAW) peasant.dsk 19 0 ENDING 0 0 -# $(DOS33_RAW) peasant.dsk 24 0 PEASANT3 0 0 + $(DOS33_RAW) peasant.dsk 24 0 PEASANT3 0 0 $(DOS33_RAW) peasant.dsk 24 0 ENDING 0 0 $(DOS33_RAW) peasant.dsk 29 0 PEASANT4 0 0 -peasant_side2.dsk: TROGDOR ENDING +peasant_side2.dsk: WBOOT2 TROGDOR ENDING cp $(EMPTY_DISK)/empty.dsk peasant_side2.dsk + $(DOS33_RAW) peasant_side2.dsk 0 0 WBOOT2 0 1 $(DOS33_RAW) peasant_side2.dsk 19 0 TROGDOR 0 0 $(DOS33_RAW) peasant_side2.dsk 24 0 ENDING 0 0 @@ -57,6 +57,18 @@ QLOAD: qload.o qload.o: qload.s qboot.inc ca65 -o qload.o qload.s -l qload.lst +### + +WBOOT2: wrong_boot2.o + ld65 -o WBOOT2 wrong_boot2.o -C ../../linker_scripts/apple2_800.inc + +wrong_boot2.o: wrong_boot2.s + ca65 -o wrong_boot2.o wrong_boot2.s -l wrong_boot2.lst + +### + + + ### VID_LOGO: vid_logo.o diff --git a/games/peasant/TODO b/games/peasant/TODO index 06dfe697..9f64a8a6 100644 --- a/games/peasant/TODO +++ b/games/peasant/TODO @@ -21,9 +21,6 @@ Trogdor: - Trogdor's speech Ending: -- Fish animation -- Jhonka animation -- Waterfall animation - Smoother baby animation? Use page-flipping? Modify sprite routine to auto-shift colors so we can have more of an arc on baby trajectory? diff --git a/games/peasant/qload.s b/games/peasant/qload.s index 6bdbd4cc..5ff87202 100644 --- a/games/peasant/qload.s +++ b/games/peasant/qload.s @@ -190,8 +190,8 @@ error_string: which_disk_array: .byte 1,1,1,1 ; VID_LOGO, TITLE, INTRO. COPY_CHECK .byte 1,1,1,1 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4 - .byte 2,1,2,2 ; - .byte 1,1,1,3 ; + .byte 2,2,1,1 ; TROGDOR, ENDING + .byte 1,1,1,1 ; .byte 1 ; .byte 1,1,1,1,1 ; .byte $f ; @@ -199,7 +199,7 @@ which_disk_array: load_address_array: .byte $60,$60,$60,$60 ; VID_LOGO, TITLE, INTRO, COPY_CHECK .byte $60,$60,$60,$60 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4 - .byte $40,$40,$40,$40 ; + .byte $60,$60,$40,$40 ; TROGDOR, ENDING .byte $40,$40,$40,$40 ; .byte $08 ; .byte $0A,$0A,$0A,$0A ; @@ -209,7 +209,7 @@ load_address_array: track_array: .byte 3, 5, 8,12 ; VID_LOGO, TITLE, INTRO, COPY_CHECK .byte 14,19,24,29 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4 - .byte 27,26,10,20 ; + .byte 24,29,10,20 ; TROGDOR, ENDING .byte 30,32,28,30 ; .byte 0 ; .byte 0, 0, 0, 0, 0 ; @@ -218,7 +218,7 @@ track_array: sector_array: .byte 0, 0, 0, 0 ; VID_LOGO, TITLE, INTRO, COPY_CHECK .byte 0, 0, 0, 0 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4 - .byte 0, 0, 0, 0 ; + .byte 0, 0, 0, 0 ; TROGDOR, ENDING .byte 0,13, 0, 1 ; .byte 6 ; .byte 11,12,13,14,15 ; @@ -227,7 +227,7 @@ sector_array: length_array: .byte 28, 50, 60, 20 ; VID_LOGO, TITLE, INTRO, COPY_CHECK .byte 80, 80, 80, 80 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4 - .byte 61, 31,159,109 ; + .byte 80, 80,159,109 ; TROGDOR, ENDING .byte 20, 33, 27, 78 ; .byte 3 ; .byte 1,1,1,1,1 ; diff --git a/games/peasant/trogdor.s b/games/peasant/trogdor.s index 80cc687a..c84bd172 100644 --- a/games/peasant/trogdor.s +++ b/games/peasant/trogdor.s @@ -1,4 +1,4 @@ -; Peasant's Quest Ending +; Peasant's Quest Trgodor scene ; From when the sword hits Trogdor on @@ -300,10 +300,9 @@ game_over: + ; go to end credits - ; FIXME - - lda #LOAD_PEASANT3 + lda #LOAD_ENDING sta WHICH_LOAD rts diff --git a/games/peasant/wrong_boot2.s b/games/peasant/wrong_boot2.s new file mode 100644 index 00000000..942294d4 --- /dev/null +++ b/games/peasant/wrong_boot2.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 2",$0D,$0D,$0D + .byte " PLEASE INSERT DISK 1",$0D,$0D + .byte " PRESS ANY KEY TO REBOOT",$0D + .byte $00 + diff --git a/games/peasant/zp.inc b/games/peasant/zp.inc index 4836a5ce..2a2b79a7 100644 --- a/games/peasant/zp.inc +++ b/games/peasant/zp.inc @@ -199,6 +199,8 @@ LOAD_PEASANT1 = 4 LOAD_PEASANT2 = 5 LOAD_PEASANT3 = 6 LOAD_PEASANT4 = 7 +LOAD_TROGDOR = 8 +LOAD_ENDING = 9 VGI_RCOLOR = P0 VGI_RX1 = P1