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# m65_shadow_BZP = KERNAL_0.m65_shadow_BZP
|
||||||
;; #ALIAS# proxy_M1_IO_end = KERNAL_0.proxy_M1_IO_end
|
;; #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
|
;; #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_character_skip_spaces = BASIC_0.proxy_B1_fetch_character_skip_spaces
|
||||||
;; #ALIAS# fetch_uint8 = BASIC_0.proxy_B1_fetch_uint8
|
;; #ALIAS# fetch_uint8 = BASIC_0.proxy_B1_fetch_uint8
|
||||||
;; #ALIAS# shell_main_loop = BASIC_0.proxy_B1_shell_main_loop
|
;; #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
|
;; #ALIAS# m65dos_unitnum = BASIC_0.proxy_B1_m65dos_unitnum
|
||||||
@@ -157,6 +157,12 @@ proxy_M1_print_kernal_error:
|
|||||||
jmp proxy_M1_IO_end
|
jmp proxy_M1_IO_end
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proxy_B1_m65dos_rdchk:
|
||||||
|
|
||||||
|
jsr map_NORMAL
|
||||||
|
jsr m65dos_rdchk
|
||||||
|
bra proxy_B1_end_2
|
||||||
|
|
||||||
proxy_B1_m65dos_unitnum:
|
proxy_B1_m65dos_unitnum:
|
||||||
|
|
||||||
jsr map_NORMAL
|
jsr map_NORMAL
|
||||||
|
|||||||
@@ -66,7 +66,40 @@ INITMSG_native:
|
|||||||
|
|
||||||
ldx #$09
|
ldx #$09
|
||||||
ldy #$00
|
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:
|
INITMSG_main_banner:
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
!addr RAM_ATTIC = $8009 ; $8000000-$87FFFFF RAM status; 0 = not present, $FF = present
|
!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
|
!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
|
; General DOS configuration
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
!word dos_INIT
|
!word dos_INIT
|
||||||
!word dos_PRELOAD
|
!word dos_PRELOAD
|
||||||
|
!word dos_RDCHK
|
||||||
!word dos_UNITCHK
|
!word dos_UNITCHK
|
||||||
!word dos_UNITSET
|
!word dos_UNITSET
|
||||||
!word dos_UNITNUM
|
!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
|
dex
|
||||||
bpl @2
|
bpl @2
|
||||||
|
|
||||||
|
stx RD_MSG ; $FF - mark no message to be displayed
|
||||||
|
|
||||||
; For the start, mark extended RAM as not present
|
; For the start, mark extended RAM as not present
|
||||||
|
|
||||||
stx RD_STARTSEG ; by default $FF, to mark no RAM disk
|
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)
|
; Check if RAM disk is enabled (should be disabled if no Hyper RAM is present)
|
||||||
|
|
||||||
lda UNIT_RAMDISK
|
lda UNIT_RAMDISK
|
||||||
+beq @error_no_ramdisk
|
+beq unit_rd_preload_err_common_noclose
|
||||||
|
|
||||||
; Select SD card buffer
|
; Select SD card buffer
|
||||||
|
|
||||||
@@ -139,6 +139,9 @@ unit_rd_preload:
|
|||||||
lda #$00 ; temporary storage needs to be restored to 0
|
lda #$00 ; temporary storage needs to be restored to 0
|
||||||
sta __stoptrack
|
sta __stoptrack
|
||||||
|
|
||||||
|
lda #$00 ; set message to OK
|
||||||
|
sta RD_MSG
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
@@ -149,40 +152,26 @@ unit_rd_preload:
|
|||||||
|
|
||||||
@error_wrong_size:
|
@error_wrong_size:
|
||||||
|
|
||||||
jsr unit_rd_preload_err_common
|
lda #$01
|
||||||
|
jmp unit_rd_preload_err_common
|
||||||
; XXX set error information
|
|
||||||
|
|
||||||
rts
|
|
||||||
|
|
||||||
@error_too_large:
|
@error_too_large:
|
||||||
|
|
||||||
jsr unit_rd_preload_err_common
|
lda #$02
|
||||||
|
jmp unit_rd_preload_err_common
|
||||||
; XXX set error information
|
|
||||||
|
|
||||||
rts
|
|
||||||
|
|
||||||
@error_not_found:
|
@error_not_found:
|
||||||
|
|
||||||
jsr unit_rd_preload_err_common_noclose
|
lda #$03
|
||||||
|
sta RD_MSG
|
||||||
; 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
|
|
||||||
|
|
||||||
|
jmp unit_rd_preload_err_common_noclose
|
||||||
|
|
||||||
|
|
||||||
unit_rd_preload_err_common:
|
unit_rd_preload_err_common:
|
||||||
|
|
||||||
|
sta RD_MSG ; set code for startup screen
|
||||||
|
|
||||||
lda #$20 ; dos_closefile
|
lda #$20 ; dos_closefile
|
||||||
sta HTRAP00
|
sta HTRAP00
|
||||||
+nop
|
+nop
|
||||||
|
|||||||
@@ -8,17 +8,18 @@
|
|||||||
|
|
||||||
!addr VDOS_INIT = $4020 + 0 * 2
|
!addr VDOS_INIT = $4020 + 0 * 2
|
||||||
!addr VDOS_PRELOAD = $4020 + 1 * 2
|
!addr VDOS_PRELOAD = $4020 + 1 * 2
|
||||||
!addr VDOS_UNITCHK = $4020 + 2 * 2
|
!addr VDOS_RDCHK = $4020 + 2 * 2
|
||||||
!addr VDOS_UNITSET = $4020 + 3 * 2
|
!addr VDOS_UNITCHK = $4020 + 3 * 2
|
||||||
!addr VDOS_UNITNUM = $4020 + 4 * 2
|
!addr VDOS_UNITSET = $4020 + 4 * 2
|
||||||
!addr VDOS_ACPTR = $4020 + 5 * 2
|
!addr VDOS_UNITNUM = $4020 + 5 * 2
|
||||||
!addr VDOS_CIOUT = $4020 + 6 * 2
|
!addr VDOS_ACPTR = $4020 + 6 * 2
|
||||||
!addr VDOS_LISTEN = $4020 + 7 * 2
|
!addr VDOS_CIOUT = $4020 + 7 * 2
|
||||||
!addr VDOS_SECOND = $4020 + 8 * 2
|
!addr VDOS_LISTEN = $4020 + 8 * 2
|
||||||
!addr VDOS_TALK = $4020 + 9 * 2
|
!addr VDOS_SECOND = $4020 + 9 * 2
|
||||||
!addr VDOS_TKSA = $4020 + 10 * 2
|
!addr VDOS_TALK = $4020 + 10 * 2
|
||||||
!addr VDOS_UNTLK = $4020 + 11 * 2
|
!addr VDOS_TKSA = $4020 + 11 * 2
|
||||||
!addr VDOS_UNLSN = $4020 + 12 * 2
|
!addr VDOS_UNTLK = $4020 + 12 * 2
|
||||||
|
!addr VDOS_UNLSN = $4020 + 13 * 2
|
||||||
|
|
||||||
|
|
||||||
m65dos_init:
|
m65dos_init:
|
||||||
@@ -37,6 +38,15 @@ m65dos_preload:
|
|||||||
jsr (VDOS_PRELOAD)
|
jsr (VDOS_PRELOAD)
|
||||||
bra m65dos_end_1
|
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
|
m65dos_unitchk: ; XXX expose to BASIC
|
||||||
|
|
||||||
; Checks is the unit number is supported by the internal DOS
|
; 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_HW_XX", "UNKNOWN ID $" },
|
||||||
{ false, false, true, false, false, "STR_SI_HDR_VID", "\rVIDEO : " },
|
{ 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
|
// Note: depending on configuration, additional strings will be added here
|
||||||
} };
|
} };
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user