peasant: move qload earlier and re-enable savefile support

This commit is contained in:
Vince Weaver 2021-08-14 16:01:36 -04:00
parent 5077f7eddb
commit 60a5c525f8
9 changed files with 38 additions and 21 deletions

View File

@ -38,7 +38,7 @@ qboot_sector.o: qboot_sector.s qboot_stage2.s
### ###
QLOAD: qload.o QLOAD: qload.o
ld65 -o QLOAD qload.o -C $(LINKER_SCRIPTS)/apple2_e00.inc ld65 -o QLOAD qload.o -C $(LINKER_SCRIPTS)/apple2_b00.inc
qload.o: qload.s qboot.inc qload.o: qload.s qboot.inc
ca65 -o qload.o qload.s -l qload.lst ca65 -o qload.o qload.s -l qload.lst

View File

@ -7,6 +7,7 @@
.include "hardware.inc" .include "hardware.inc"
.include "zp.inc" .include "zp.inc"
.include "qload.inc"
@ -24,10 +25,6 @@ peasant_quest:
; hack! modify the PT3 file to ignore the latter half ; hack! modify the PT3 file to ignore the latter half
PT3_LOC=$E00+$E00
pt3_init_song=$e00+$A56
pt3_clear_ay_both=$e00+$CDF
lda #$ff ; end after 4 patterns lda #$ff ; end after 4 patterns
sta PT3_LOC+$C9+$4 sta PT3_LOC+$C9+$4

View File

@ -116,7 +116,7 @@ done_knight:
; after OK stuff goes on here ; after OK stuff goes on here
sei ; turn off music sei ; turn off music
jsr pt3_clear_ay_both jsr clear_ay_both
jsr draw_peasant jsr draw_peasant

View File

@ -3,11 +3,11 @@
; Paramaters for loading QLOAD ; Paramaters for loading QLOAD
sectors = 18 ; user-defined sectors = 21 ; user-defined
firsttrk = 1 ; user-defined, first track to read firsttrk = 1 ; user-defined, first track to read
firstsec = 0 ; user-defined, first sector to read firstsec = 0 ; user-defined, first sector to read
address = $0E ; user-defined address = $0B ; user-defined
entry = $E00 ; user-defined entry = $B00 ; user-defined
version = 1 version = 1
;memory usage: ;memory usage:

13
games/peasant/qload.inc Normal file
View File

@ -0,0 +1,13 @@
; Danger: if you mess with QLOAD you'll have to update these
QLOAD_LOC=$B00
pt3_init_song=QLOAD_LOC+$BF9
clear_ay_both=QLOAD_LOC+$E82
reset_ay_both=QLOAD_LOC+$E40
mockingboard_setup_interrupt=QLOAD_LOC+$E8F
mockingboard_init=QLOAD_LOC+$E31
mockingboard_patch=QLOAD_LOC+$F67
mockingboard_detect=QLOAD_LOC+$F38
PT3_LOC=QLOAD_LOC+$1000

View File

@ -1,4 +1,4 @@
; Loader for MIST ; Loader for Peasant's Quest
.include "zp.inc" .include "zp.inc"
@ -20,8 +20,8 @@ tmpsec = $3C
qload_start: qload_start:
; init the write code ; init the write code
; lda WHICH_SLOT lda WHICH_SLOT
; jsr popwr_init jsr popwr_init
; first time entry ; first time entry
; start by loading text title ; start by loading text title
@ -233,7 +233,7 @@ length_array:
.byte 1,1,1,1,1 ; .byte 1,1,1,1,1 ;
.byte 1 ; .byte 1 ;
;.include "qkumba_popwr.s" .include "qkumba_popwr.s"
; pt3 player ; pt3 player
.include "pt3_lib_detect_model.s" .include "pt3_lib_detect_model.s"
@ -256,4 +256,4 @@ peasant_pt3:
qload_end: qload_end:
;.assert (>qload_end - >qload_start) < $e , error, "loader too big" ;.assert (>qload_end - >qload_start) < $e , error, "loader too big"
.assert (>qload_end - >qload_start) < $12 , error, "loader too big" .assert (>qload_end - >qload_start) < $15 , error, "loader too big"

View File

@ -5,6 +5,7 @@
.include "hardware.inc" .include "hardware.inc"
.include "zp.inc" .include "zp.inc"
.include "qload.inc"
title: title:
jsr HGR2 ; Hi-res graphics, no text at bottom jsr HGR2 ; Hi-res graphics, no text at bottom
@ -14,13 +15,6 @@ title:
; Music ; Music
;======================== ;========================
pt3_init_song=$e00+$A56
clear_ay_both=$e00+$CDF
reset_ay_both=$e00+$C9D
mockingboard_setup_interrupt=$e00+$CEC
mockingboard_init=$e00+$C8E
mockingboard_patch=$e00+$DC4
mockingboard_detect=$e00+$D95
;=================================== ;===================================
; Setup Mockingboard ; Setup Mockingboard

View File

@ -109,3 +109,4 @@ VGI_RXRUN = P3
VGI_RYRUN = P4 VGI_RYRUN = P4
VGI_RCOLOR2 = P5 ; only for dither VGI_RCOLOR2 = P5 ; only for dither
COUNT = TEMP5 COUNT = TEMP5

View File

@ -0,0 +1,12 @@
MEMORY {
ZP: start = $00, size = $1A, type = rw;
RAM: start = $B00, size = $8E00, file = %O;
}
SEGMENTS {
CODE: load = RAM, type = ro, align = $100;
RODATA: load = RAM, type = ro;
DATA: load = RAM, type = rw;
BSS: load = RAM, type = bss, define = yes;
ZEROPAGE: load = ZP, type = zp;
}