peasant: finish spreading things to 3 disks

This commit is contained in:
Vince Weaver 2024-09-20 23:27:30 -04:00
parent f5e4456e41
commit 499c4da0e7
5 changed files with 106 additions and 12 deletions

View File

@ -39,19 +39,20 @@ peasant_disk1.dsk: QBOOT QLOAD \
peasant_disk2.dsk: QBOOT QLOAD \
PEASANT1 PEASANT2 PEASANT3 PEASANT4 \
WBOOT2
./wrong_boot/WBOOT2
cp $(EMPTY_DISK)/empty.dsk peasant_disk2.dsk
$(DOS33_RAW) peasant_disk2.dsk 0 0 WBOOT2 0 1
$(DOS33_RAW) peasant_disk2.dsk 0 0 ./wrong_boot/WBOOT2 0 1
$(DOS33_RAW) peasant_disk2.dsk 15 0 PEASANT1 0 0
$(DOS33_RAW) peasant_disk2.dsk 20 0 PEASANT2 0 0
$(DOS33_RAW) peasant_disk2.dsk 25 0 PEASANT3 0 0
$(DOS33_RAW) peasant_disk2.dsk 30 0 PEASANT4 0 0
peasant_disk3.dsk: WBOOT2 ./trogdor/TROGDOR ./ending/ENDING \
peasant_disk3.dsk: ./trogdor/TROGDOR ./ending/ENDING \
./cliff/CLIFF ./game_over/GAME_OVER INSIDE INN \
./archery/ARCHERY ./map/MAP
./archery/ARCHERY ./map/MAP \
./wrong_boot/WBOOT3
cp $(EMPTY_DISK)/empty.dsk peasant_disk3.dsk
$(DOS33_RAW) peasant_disk3.dsk 0 0 WBOOT2 0 1
$(DOS33_RAW) peasant_disk3.dsk 0 0 ./wrong_boot/WBOOT3 0 1
$(DOS33_RAW) peasant_disk3.dsk 4 0 ./map/MAP 0 0
$(DOS33_RAW) peasant_disk3.dsk 6 0 ./archery/ARCHERY 0 0
$(DOS33_RAW) peasant_disk3.dsk 9 0 INSIDE 0 0
@ -98,11 +99,12 @@ qload.o: qload.s qboot.inc \
###
WBOOT2: wrong_boot2.o
ld65 -o WBOOT2 wrong_boot2.o -C ../../linker_scripts/apple2_800.inc
./wrong_boot/WBOOT2:
cd wrong_boot && make
./wrong_boot/WBOOT3:
cd wrong_boot && make
wrong_boot2.o: wrong_boot2.s
ca65 -o wrong_boot2.o wrong_boot2.s -l wrong_boot2.lst
###
@ -600,6 +602,7 @@ distclean:
cd map && make distclean
cd trogdor && make distclean
cd vid_logo && make distclean
cd wrong_boot && make distclean
cd music && make distclean
###
@ -619,3 +622,4 @@ clean:
cd title && make clean
cd trogdor && make clean
cd vid_logo && make clean
cd wrong_boot && make clean

View File

@ -250,9 +250,9 @@ insert_disk_string:
which_disk_array:
.byte 1,1,1,1 ; VID_LOGO, TITLE, INTRO. COPY_CHECK
.byte 2,2,2,2 ; PEASANT1, PEASANT2, PEASANT3, PEASANT4
.byte 2,2,1,2 ; TROGDOR, ENDING, MUSIC, CLIFF
.byte 1,1,1,2 ; GAME_OVER, INVENTORY, PARSE_INPUT, INN
.byte 2,2,2 ; INSIDE, ARCHERY, MAP
.byte 3,3,1,3 ; TROGDOR, ENDING, MUSIC, CLIFF
.byte 1,1,1,3 ; GAME_OVER, INVENTORY, PARSE_INPUT, INN
.byte 3,3,3 ; INSIDE, ARCHERY, MAP
.byte 1,1,1 ; SAVE1, SAVE2, SAVE3
.byte $f ; disk detect

View File

@ -0,0 +1,32 @@
include ../../../Makefile.inc
LINKER_SCRIPTS = ../../../linker_scripts
all: WBOOT2 WBOOT3
###
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
###
WBOOT3: wrong_boot3.o
ld65 -o WBOOT3 wrong_boot3.o -C $(LINKER_SCRIPTS)/apple2_800.inc
wrong_boot3.o: wrong_boot3.s
ca65 -o wrong_boot3.o wrong_boot3.s -l wrong_boot3.lst
###
distclean:
make clean
###
clean:
rm -f *~ *.o *.lst WBOOT2 WBOOT3

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