added ram disk status message on startup screen

This commit is contained in:
FeralChild64 committed 2021-05-19 22:59:35 +02:00
1 parent 770441e302
commit f7ff71f6cd
11 files changed
+110 -37

No files matched your search

+1 -1
View File
@@ -32,7 +32,7 @@
!addr RAM_ATTIC = $8009 ; $8000000-$87FFFFF RAM status; 0 = not present, $FF = present
!addr RAM_CELLAR = $800A ; $8800000-$8FFFFFF RAM status; 0 = not present, $FF = present
; Reserved: $800B
!addr RD_MSG = $800B ; code of the RAM disk message to be displayed on banner screen, $FF for none
; General DOS configuration
+1
View File
@@ -3,6 +3,7 @@
!word dos_INIT
!word dos_PRELOAD
!word dos_RDCHK
!word dos_UNITCHK
!word dos_UNITSET
!word dos_UNITNUM
+24
View File
@@ -0,0 +1,24 @@
;
; Preload RAM disk image
;
dos_RDCHK:
; Before the start make sure memory content is not damaged
jsr dos_MEMCHK
bcc @ok
lda #$FF
jmp dos_EXIT_SEC_A
@ok:
jsr dos_ENTER
lda RD_MSG
ldx #$FF ; reset the message after it gets displayed
stx RD_MSG
jmp dos_EXIT_CLC_A
+2
View File
@@ -37,6 +37,8 @@ unit_rd_init_test_ram: ; non-destructive ATTIC/CELLAR RAM test
dex
bpl @2
stx RD_MSG ; $FF - mark no message to be displayed
; For the start, mark extended RAM as not present
stx RD_STARTSEG ; by default $FF, to mark no RAM disk
+13 -24
View File
@@ -12,7 +12,7 @@ unit_rd_preload:
; Check if RAM disk is enabled (should be disabled if no Hyper RAM is present)
lda UNIT_RAMDISK
+beq @error_no_ramdisk
+beq unit_rd_preload_err_common_noclose
; Select SD card buffer
@@ -139,6 +139,9 @@ unit_rd_preload:
lda #$00 ; temporary storage needs to be restored to 0
sta __stoptrack
lda #$00 ; set message to OK
sta RD_MSG
rts
@@ -149,40 +152,26 @@ unit_rd_preload:
@error_wrong_size:
jsr unit_rd_preload_err_common
; XXX set error information
rts
lda #$01
jmp unit_rd_preload_err_common
@error_too_large:
jsr unit_rd_preload_err_common
; XXX set error information
rts
lda #$02
jmp unit_rd_preload_err_common
@error_not_found:
jsr unit_rd_preload_err_common_noclose
; XXX set error information, put 0 to __stoptrack
rts
@error_no_ramdisk:
jsr unit_rd_preload_err_common_noclose
; XXX set error information, put 0 to __stoptrack
rts
lda #$03
sta RD_MSG
jmp unit_rd_preload_err_common_noclose
unit_rd_preload_err_common:
sta RD_MSG ; set code for startup screen
lda #$20 ; dos_closefile
sta HTRAP00
+nop