2020-06-19 19:46:28 +00:00
|
|
|
|
|
|
|
;===================================
|
|
|
|
;===================================
|
|
|
|
; load the game
|
|
|
|
;===================================
|
|
|
|
;===================================
|
|
|
|
|
|
|
|
load_game:
|
|
|
|
bit KEYRESET ; clear keyboard buffer
|
|
|
|
|
|
|
|
bit SET_TEXT ; set text mode
|
|
|
|
|
2020-06-19 20:35:54 +00:00
|
|
|
lda #' '|$80
|
|
|
|
sta clear_all_color+1
|
2020-06-19 19:46:28 +00:00
|
|
|
jsr clear_all ; clear screen
|
|
|
|
|
|
|
|
lda #<load_message
|
|
|
|
sta OUTL
|
|
|
|
lda #>load_message
|
|
|
|
sta OUTH
|
|
|
|
jsr move_and_print
|
|
|
|
|
|
|
|
lda #<are_you_sure
|
|
|
|
sta OUTL
|
|
|
|
lda #>are_you_sure
|
|
|
|
sta OUTH
|
|
|
|
jsr move_and_print
|
|
|
|
|
|
|
|
jsr page_flip
|
|
|
|
|
|
|
|
wait_load_confirmation:
|
|
|
|
lda KEYPRESS
|
|
|
|
bpl wait_load_confirmation
|
|
|
|
|
|
|
|
bit KEYRESET ; clear keypress
|
|
|
|
|
2020-06-19 20:29:56 +00:00
|
|
|
and #$7f
|
|
|
|
cmp #'Y'
|
|
|
|
bne done_load
|
|
|
|
|
|
|
|
; actually load it
|
|
|
|
|
2020-09-02 01:31:15 +00:00
|
|
|
lda #LOAD_SAVE5
|
|
|
|
sta WHICH_LOAD
|
2020-06-19 20:29:56 +00:00
|
|
|
|
2020-09-02 01:31:15 +00:00
|
|
|
jsr load_file
|
2020-06-19 20:29:56 +00:00
|
|
|
|
|
|
|
; copy to zero page
|
|
|
|
|
|
|
|
ldx #0
|
|
|
|
load_loop:
|
|
|
|
lda $e00,X
|
|
|
|
sta WHICH_LOAD,X
|
|
|
|
inx
|
2020-08-18 06:25:51 +00:00
|
|
|
cpx #(END_OF_SAVE-WHICH_LOAD+1)
|
2020-06-19 20:29:56 +00:00
|
|
|
bne load_loop
|
|
|
|
|
|
|
|
lda #$ff
|
|
|
|
sta LEVEL_OVER
|
|
|
|
|
|
|
|
done_load:
|
|
|
|
|
2020-06-19 19:46:28 +00:00
|
|
|
bit SET_GR ; turn graphics back on
|
|
|
|
|
|
|
|
rts
|
|
|
|
|
|
|
|
;===================================
|
|
|
|
;===================================
|
|
|
|
; save the game
|
|
|
|
;===================================
|
|
|
|
;===================================
|
|
|
|
|
2020-06-19 20:29:56 +00:00
|
|
|
; doesn't do anything yet
|
|
|
|
|
2020-06-19 19:46:28 +00:00
|
|
|
save_game:
|
|
|
|
bit KEYRESET ; clear keyboard buffer
|
|
|
|
|
|
|
|
bit SET_TEXT ; set text mode
|
|
|
|
|
2020-06-19 20:35:54 +00:00
|
|
|
lda #' '|$80
|
|
|
|
sta clear_all_color+1
|
2020-06-19 19:46:28 +00:00
|
|
|
jsr clear_all ; clear screen
|
|
|
|
|
|
|
|
lda #<save_message
|
|
|
|
sta OUTL
|
|
|
|
lda #>save_message
|
|
|
|
sta OUTH
|
|
|
|
jsr move_and_print
|
|
|
|
|
|
|
|
lda #<are_you_sure
|
|
|
|
sta OUTL
|
|
|
|
lda #>are_you_sure
|
|
|
|
sta OUTH
|
|
|
|
jsr move_and_print
|
|
|
|
|
|
|
|
jsr page_flip
|
|
|
|
|
|
|
|
wait_save_confirmation:
|
|
|
|
lda KEYPRESS
|
|
|
|
bpl wait_save_confirmation
|
|
|
|
|
|
|
|
bit KEYRESET ; clear keypress
|
|
|
|
|
2020-06-19 20:29:56 +00:00
|
|
|
and #$7f
|
|
|
|
cmp #'Y'
|
|
|
|
bne done_load
|
|
|
|
|
|
|
|
; actually load it
|
|
|
|
|
|
|
|
|
|
|
|
done_store:
|
|
|
|
|
|
|
|
|
2020-06-19 19:46:28 +00:00
|
|
|
bit SET_GR ; turn graphics back on
|
|
|
|
|
|
|
|
rts
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
load_message:
|
|
|
|
.byte 10,5,"LOAD GAME FROM DISK",0
|
|
|
|
|
|
|
|
save_message:
|
|
|
|
.byte 11,5,"SAVE GAME TO DISK",0
|
|
|
|
|
|
|
|
are_you_sure:
|
|
|
|
.byte 10,7,"ARE YOU SURE? (Y/N)",0
|
|
|
|
|
2020-09-02 01:31:15 +00:00
|
|
|
;save_filename:
|
|
|
|
;.byte "SAVE0",0
|