loadsave_addr_load	= $a00		; was $e00
loadsave_addr_save	= $900		; was $d00

	;===================================
	;===================================
	; load the game
	;===================================
	;===================================
load_game:

	lda	#<load_message
	sta	OUTL
	lda	#>load_message
	sta	OUTH

	jsr	confirm_slot

	bcs	done_load

	; actually load it
	clc
	adc	#LOAD_SAVE1
	sta	WHICH_LOAD

	jsr	load_file

	; copy to zero page

	ldx	#0
load_loop:
	lda	loadsave_addr_load,X
	sta	WHICH_LOAD,X
	inx
	cpx	#(END_OF_SAVE-WHICH_LOAD+1)
	bne	load_loop

	lda	#$ff
	sta	LEVEL_OVER

done_load:

	bit	SET_GR			; turn graphics back on

	rts

	;===================================
	;===================================
	; save the game
	;===================================
	;===================================

save_game:

	lda	#<save_message
	sta	OUTL
	lda	#>save_message
	sta	OUTH

	jsr	confirm_slot

	bcs	done_save

	pha


	;========================
	; actually save
actually_save:

	;===============================
	; first load something from
	; disk1/track0 to seek the head there

	lda	WHICH_LOAD
	pha

	lda	#LOAD_SAVE1
	sta	WHICH_LOAD
	jsr	load_file

	pla
	sta	WHICH_LOAD

	; copy save data to $900

	ldx	#0
copy_loop:
	lda	WHICH_LOAD,X
	sta	loadsave_addr_save,X
	inx
	cpx	#(END_OF_SAVE-WHICH_LOAD+1)
	bne	copy_loop

	; spin up disk
	jsr	driveon

	; actually save it
	pla
	clc
	adc	#11
	sta	requested_sector+1

	jsr	sector_write

	jsr	driveoff

done_save:

	jsr	change_location		; restore graphics

	rts






	;================================
	; confirm and get slot number
	;================================
	; call with first message in OUTL/OUTH
	; return: carry set if skipping

confirm_slot:

	bit	KEYRESET	; clear keyboard buffer

	;===============================
	; print "are you sure" message

	bit	SET_TEXT	; set text mode

	lda     #' '|$80
	sta	clear_all_color+1
	jsr	clear_all	; clear screen

	jsr	move_and_print

	lda	#<are_you_sure
	sta	OUTL
	lda	#>are_you_sure
	sta	OUTH
	jsr	move_and_print

;	jsr	page_flip

wait_confirmation:
	lda	KEYPRESS
	bpl	wait_confirmation

	bit	KEYRESET		; clear keypress

	and	#$7f
	cmp	#'Y'
	bne	dont_do_it

	;===============================
	; print "Which one?"

	jsr	clear_all	; clear screen

	lda	#<which_message
	sta	OUTL
	lda	#>which_message
	sta	OUTH
	jsr	move_and_print

;	jsr	page_flip

which_slot:
	lda	KEYPRESS
	bpl	which_slot

	bit	KEYRESET		; clear keypress

	and	#$7f
	sec
	sbc	#'1'

	bmi	dont_do_it
	cmp	#5
	bcs	dont_do_it

	clc
	rts

dont_do_it:
	sec
	rts


which_message:
.byte  9,5,"WHICH SLOT (1-5)?",0

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

;save_filename:
;.byte "SAVE0",0
