peasant: prepare disk4

This commit is contained in:
Vince Weaver 2024-10-16 23:35:21 -04:00
parent e41a392cb6
commit 4a3b829cde
3 changed files with 84 additions and 6 deletions

View File

@ -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

View File

@ -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

View File

@ -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