added ram disk status message on startup screen
This commit is contained in:
1 parent
770441e302
commit
f7ff71f6cd
11 files changed
+110
-37
No files matched your search
@@ -50,6 +50,7 @@
|
||||
;; #ALIAS# m65_shadow_BZP = KERNAL_0.m65_shadow_BZP
|
||||
;; #ALIAS# proxy_M1_IO_end = KERNAL_0.proxy_M1_IO_end
|
||||
|
||||
;; #ALIAS# m65dos_rdchk = KERNAL_0.m65dos_rdchk
|
||||
;; #ALIAS# m65dos_unitnum = KERNAL_0.m65dos_unitnum
|
||||
|
||||
;
|
||||
|
||||
@@ -46,4 +46,5 @@
|
||||
;; #ALIAS# fetch_character_skip_spaces = BASIC_0.proxy_B1_fetch_character_skip_spaces
|
||||
;; #ALIAS# fetch_uint8 = BASIC_0.proxy_B1_fetch_uint8
|
||||
;; #ALIAS# shell_main_loop = BASIC_0.proxy_B1_shell_main_loop
|
||||
;; #ALIAS# m65dos_rdchk = BASIC_0.proxy_B1_m65dos_rdchk
|
||||
;; #ALIAS# m65dos_unitnum = BASIC_0.proxy_B1_m65dos_unitnum
|
||||
@@ -157,6 +157,12 @@ proxy_M1_print_kernal_error:
|
||||
jmp proxy_M1_IO_end
|
||||
}
|
||||
|
||||
proxy_B1_m65dos_rdchk:
|
||||
|
||||
jsr map_NORMAL
|
||||
jsr m65dos_rdchk
|
||||
bra proxy_B1_end_2
|
||||
|
||||
proxy_B1_m65dos_unitnum:
|
||||
|
||||
jsr map_NORMAL
|
||||
|
||||
@@ -66,7 +66,40 @@ INITMSG_native:
|
||||
|
||||
ldx #$09
|
||||
ldy #$00
|
||||
jmp plot_set
|
||||
jsr plot_set
|
||||
|
||||
; Display the preloaded RAM disc image status
|
||||
|
||||
jsr m65dos_rdchk
|
||||
cmp #$FF
|
||||
beq INITMSG_rts
|
||||
|
||||
pha
|
||||
jsr print_return
|
||||
pla
|
||||
pha
|
||||
cmp #$00
|
||||
beq @skip_bold
|
||||
|
||||
lda #$1B
|
||||
jsr JCHROUT
|
||||
lda #'S'
|
||||
jsr JCHROUT
|
||||
|
||||
@skip_bold:
|
||||
|
||||
ldx #IDX__STR_RD_NAME
|
||||
jsr print_packed_misc_str
|
||||
pla
|
||||
|
||||
clc
|
||||
adc #IDX__STR_RD_OK
|
||||
tax
|
||||
jmp print_packed_misc_str
|
||||
|
||||
INITMSG_rts:
|
||||
|
||||
rts
|
||||
|
||||
INITMSG_main_banner:
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
!word dos_INIT
|
||||
!word dos_PRELOAD
|
||||
!word dos_RDCHK
|
||||
!word dos_UNITCHK
|
||||
!word dos_UNITSET
|
||||
!word dos_UNITNUM
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -8,17 +8,18 @@
|
||||
|
||||
!addr VDOS_INIT = $4020 + 0 * 2
|
||||
!addr VDOS_PRELOAD = $4020 + 1 * 2
|
||||
!addr VDOS_UNITCHK = $4020 + 2 * 2
|
||||
!addr VDOS_UNITSET = $4020 + 3 * 2
|
||||
!addr VDOS_UNITNUM = $4020 + 4 * 2
|
||||
!addr VDOS_ACPTR = $4020 + 5 * 2
|
||||
!addr VDOS_CIOUT = $4020 + 6 * 2
|
||||
!addr VDOS_LISTEN = $4020 + 7 * 2
|
||||
!addr VDOS_SECOND = $4020 + 8 * 2
|
||||
!addr VDOS_TALK = $4020 + 9 * 2
|
||||
!addr VDOS_TKSA = $4020 + 10 * 2
|
||||
!addr VDOS_UNTLK = $4020 + 11 * 2
|
||||
!addr VDOS_UNLSN = $4020 + 12 * 2
|
||||
!addr VDOS_RDCHK = $4020 + 2 * 2
|
||||
!addr VDOS_UNITCHK = $4020 + 3 * 2
|
||||
!addr VDOS_UNITSET = $4020 + 4 * 2
|
||||
!addr VDOS_UNITNUM = $4020 + 5 * 2
|
||||
!addr VDOS_ACPTR = $4020 + 6 * 2
|
||||
!addr VDOS_CIOUT = $4020 + 7 * 2
|
||||
!addr VDOS_LISTEN = $4020 + 8 * 2
|
||||
!addr VDOS_SECOND = $4020 + 9 * 2
|
||||
!addr VDOS_TALK = $4020 + 10 * 2
|
||||
!addr VDOS_TKSA = $4020 + 11 * 2
|
||||
!addr VDOS_UNTLK = $4020 + 12 * 2
|
||||
!addr VDOS_UNLSN = $4020 + 13 * 2
|
||||
|
||||
|
||||
m65dos_init:
|
||||
@@ -37,6 +38,15 @@ m65dos_preload:
|
||||
jsr (VDOS_PRELOAD)
|
||||
bra m65dos_end_1
|
||||
|
||||
m65dos_rdchk:
|
||||
|
||||
; Returns in .A the RAM DISK preload status; $00 = OK, $FF = N/A, other = error code
|
||||
|
||||
jsr map_DOS_1
|
||||
jsr (VDOS_RDCHK)
|
||||
bra m65dos_end_1
|
||||
|
||||
|
||||
m65dos_unitchk: ; XXX expose to BASIC
|
||||
|
||||
; Checks is the unit number is supported by the internal DOS
|
||||
|
||||
@@ -326,6 +326,12 @@ const StringEntryList GLOBAL_MiscStrings = { ListType::STRINGS_BASIC, "misc",
|
||||
{ false, false, true, false, false, "STR_SI_HW_XX", "UNKNOWN ID $" },
|
||||
{ false, false, true, false, false, "STR_SI_HDR_VID", "\rVIDEO : " },
|
||||
|
||||
{ false, false, true, false, false, "STR_RD_NAME", "RAMDISK.DNP " },
|
||||
{ false, false, true, false, false, "STR_RD_OK", "LOADED OK\r" },
|
||||
{ false, false, true, false, false, "STR_RD_ERR1", "SIZE WRONG\r" },
|
||||
{ false, false, true, false, false, "STR_RD_ERR2", "TOO LARGE\r" },
|
||||
{ false, false, true, false, false, "STR_RD_ERR3", "NOT FOUND\r" },
|
||||
|
||||
// Note: depending on configuration, additional strings will be added here
|
||||
} };
|
||||
|
||||
|
||||
Reference in new issue
Block a user