MEGA65 banner cleanup, fix for native mode autoswitch screen garbage
This commit is contained in:
1 parent
fde114154e
commit
fd13b2a65b
6 files changed
+105
-95
No files matched your search
@@ -69,10 +69,3 @@ startup_banner:
|
||||
// .byte $12,$A0,$A0,$9B,$92,$20,$9A,$7F,$12,$A0,$A0,$9B,$92,$20,$9A,$7F
|
||||
// .byte $12,$DF,$92,$7F,$9B,$20,$9A,$20,$9B,"0.2.0.0",$0D
|
||||
// .byte $0D,$05,$92,$00
|
||||
|
||||
startup_banner_legacy:
|
||||
|
||||
.text "LEGACY"
|
||||
.byte $11, $9D, $9D, $9D, $9D, $9D
|
||||
.text "MODE"
|
||||
.byte $00
|
||||
@@ -30,6 +30,7 @@ cmd_sys:
|
||||
bcs cmd_sys_nsys_common
|
||||
sec
|
||||
jsr M65_MODESET // set legacy C64 compatibility mode
|
||||
jsr INITMSG_autoswitch
|
||||
|
||||
// FALLTROUGH
|
||||
|
||||
|
||||
@@ -13,21 +13,22 @@
|
||||
// Label definitions
|
||||
|
||||
.label VB1__INITMSG = $4000 + 2 * 0
|
||||
.label VB1__LINKPRG = $4000 + 2 * 1
|
||||
.label VB1__tokenise_line = $4000 + 2 * 2
|
||||
.label VB1__list_single_line = $4000 + 2 * 3
|
||||
.label VB1__print_packed_error = $4000 + 2 * 4
|
||||
.label VB1__print_packed_misc_str = $4000 + 2 * 5
|
||||
.label VB1__do_new = $4000 + 2 * 6
|
||||
.label VB1__do_clr = $4000 + 2 * 7
|
||||
.label VB1__do_restore = $4000 + 2 * 8
|
||||
.label VB1__cmd_mem_cont = $4000 + 2 * 9
|
||||
.label VB1__cmd_sysinfo = $4000 + 2 * 10
|
||||
.label VB1__prepare_direct_execution = $4000 + 2 * 11
|
||||
.label VB1__helper_ask_if_sure = $4000 + 2 * 12
|
||||
.label VB1__INITMSG_autoswitch = $4000 + 2 * 1
|
||||
.label VB1__LINKPRG = $4000 + 2 * 2
|
||||
.label VB1__tokenise_line = $4000 + 2 * 3
|
||||
.label VB1__list_single_line = $4000 + 2 * 4
|
||||
.label VB1__print_packed_error = $4000 + 2 * 5
|
||||
.label VB1__print_packed_misc_str = $4000 + 2 * 6
|
||||
.label VB1__do_new = $4000 + 2 * 7
|
||||
.label VB1__do_clr = $4000 + 2 * 8
|
||||
.label VB1__do_restore = $4000 + 2 * 9
|
||||
.label VB1__cmd_mem_cont = $4000 + 2 * 10
|
||||
.label VB1__cmd_sysinfo = $4000 + 2 * 11
|
||||
.label VB1__prepare_direct_execution = $4000 + 2 * 12
|
||||
.label VB1__helper_ask_if_sure = $4000 + 2 * 13
|
||||
|
||||
#if CONFIG_DOS_WEDGE
|
||||
.label VB1__wedge_dos = $4000 + 2 * 13
|
||||
.label VB1__wedge_dos = $4000 + 2 * 14
|
||||
#endif
|
||||
|
||||
#else
|
||||
@@ -35,6 +36,7 @@
|
||||
// Vector table (Open ROMs private!)
|
||||
|
||||
.word INITMSG
|
||||
.word INITMSG_autoswitch
|
||||
.word LINKPRG
|
||||
.word tokenise_line
|
||||
.word list_single_line
|
||||
|
||||
@@ -16,8 +16,15 @@ INITMSG:
|
||||
|
||||
jsr map_BASIC_1
|
||||
jsr_ind VB1__INITMSG
|
||||
!:
|
||||
jmp map_NORMAL
|
||||
|
||||
INITMSG_autoswitch:
|
||||
|
||||
jsr map_BASIC_1
|
||||
jsr_ind VB1__INITMSG_autoswitch
|
||||
bra !-
|
||||
|
||||
#else
|
||||
|
||||
jmp initmsg_real
|
||||
|
||||
@@ -9,16 +9,7 @@
|
||||
|
||||
INITMSG:
|
||||
|
||||
// Clear the screen first, some cartridges (like IEEE-488) are leaving a mess on the screen
|
||||
|
||||
lda #147
|
||||
jsr JCHROUT
|
||||
|
||||
// Display main banner
|
||||
|
||||
lda #<startup_banner
|
||||
ldy #>startup_banner
|
||||
jsr STROUT
|
||||
jsr INITMSG_main_banner
|
||||
|
||||
// Display additional information, depending on the mode
|
||||
|
||||
@@ -27,34 +18,12 @@ INITMSG:
|
||||
|
||||
// Legacy C64 compatibility mode
|
||||
|
||||
ldx #$02
|
||||
ldy #$21
|
||||
jsr plot_set
|
||||
jsr INITMSG_partial
|
||||
|
||||
lda #<startup_banner_legacy
|
||||
ldy #>startup_banner_legacy
|
||||
jsr STROUT
|
||||
|
||||
// Legacy mode - display revision and available memory
|
||||
|
||||
ldx #$05
|
||||
ldy #$00
|
||||
jsr plot_set
|
||||
|
||||
lda #<rom_revision_basic_string
|
||||
ldy #>rom_revision_basic_string
|
||||
jsr STROUT
|
||||
|
||||
ldx #$05
|
||||
ldy #$12
|
||||
jsr plot_set
|
||||
|
||||
jsr initmsg_bytes_free
|
||||
|
||||
ldx #$07
|
||||
ldy #$00
|
||||
jmp plot_set
|
||||
ldx #IDX__STR_ORS_LEGACY_2
|
||||
jsr print_packed_misc_str
|
||||
|
||||
bra INITMSG_end
|
||||
!:
|
||||
// Native mode
|
||||
|
||||
@@ -79,17 +48,54 @@ INITMSG:
|
||||
ldx #IDX__STR_ORS
|
||||
jsr print_packed_misc_str
|
||||
|
||||
ldx #IDX__STR_PRE_REV
|
||||
jsr print_packed_misc_str
|
||||
|
||||
lda #<rom_revision_basic_string
|
||||
ldy #>rom_revision_basic_string
|
||||
jsr STROUT
|
||||
jsr INITMSG_revision
|
||||
|
||||
jsr print_return
|
||||
jsr print_return
|
||||
|
||||
// FALLTROUGH
|
||||
|
||||
INITMSG_end:
|
||||
|
||||
jsr initmsg_bytes_free
|
||||
|
||||
ldx #$09
|
||||
ldy #$00
|
||||
jmp plot_set
|
||||
|
||||
INITMSG_main_banner:
|
||||
|
||||
// Clear the screen first, some cartridges (like IEEE-488) are leaving a mess on the screen
|
||||
|
||||
lda #147
|
||||
jsr JCHROUT
|
||||
|
||||
// Display main banner
|
||||
|
||||
lda #<startup_banner
|
||||
ldy #>startup_banner
|
||||
jmp STROUT
|
||||
|
||||
INITMSG_autoswitch: // entry point for 'SYS command'
|
||||
|
||||
jsr INITMSG_main_banner
|
||||
jsr INITMSG_partial
|
||||
|
||||
jsr print_return
|
||||
jmp print_return
|
||||
|
||||
INITMSG_partial:
|
||||
|
||||
ldx #IDX__STR_ORS_LEGACY_1
|
||||
jsr print_packed_misc_str
|
||||
|
||||
// FALLTROUGH
|
||||
|
||||
INITMSG_revision:
|
||||
|
||||
ldx #IDX__STR_PRE_REV
|
||||
jsr print_packed_misc_str
|
||||
|
||||
lda #<rom_revision_basic_string
|
||||
ldy #>rom_revision_basic_string
|
||||
jmp STROUT
|
||||
+34
-33
@@ -284,43 +284,44 @@ const StringEntryList GLOBAL_Errors = { ListType::STRINGS_BASIC, "errors",
|
||||
const StringEntryList GLOBAL_MiscStrings = { ListType::STRINGS_BASIC, "misc",
|
||||
{
|
||||
// STD M65 U64 X16 --- misc strings as on CBM machines
|
||||
{ true, true, true, true, "STR_RET_QM", "\r?" },
|
||||
{ true, true, true, true, "STR_BYTES", " BASIC BYTES FREE" }, // https://github.com/stefanhaustein/expressionparser
|
||||
{ true, true, true, true, "STR_READY", "\rREADY.\r" }, // https://www.ibm.com/support/knowledgecenter/zosbasics/com.ibm.zos.zconcepts/zconc_whatistsonative.htm https://github.com/stefanhaustein/expressionparser
|
||||
{ true, true, true, true, "STR_ERROR", " ERROR" }, // simply the word error that is attached to the other parts of messages https://fjkraan.home.xs4all.nl/comp/apple2faq/app2asoftfaq.html
|
||||
{ true, true, true, true, "STR_IN", " IN " },
|
||||
{ false, true, false, false, "STR_IF_SURE", "\rARE YOU SURE? " }, // https://docs.microsoft.com/en-us/windows/win32/uxguide/mess-confirm
|
||||
{ true, true, true, true, "STR_RET_QM", "\r?" },
|
||||
{ true, true, true, true, "STR_BYTES", " BASIC BYTES FREE" }, // https://github.com/stefanhaustein/expressionparser
|
||||
{ true, true, true, true, "STR_READY", "\rREADY.\r" }, // https://www.ibm.com/support/knowledgecenter/zosbasics/com.ibm.zos.zconcepts/zconc_whatistsonative.htm https://github.com/stefanhaustein/expressionparser
|
||||
{ true, true, true, true, "STR_ERROR", " ERROR" }, // simply the word error that is attached to the other parts of messages https://fjkraan.home.xs4all.nl/comp/apple2faq/app2asoftfaq.html
|
||||
{ true, true, true, true, "STR_IN", " IN " },
|
||||
{ false, true, false, false, "STR_IF_SURE", "\rARE YOU SURE? " }, // https://docs.microsoft.com/en-us/windows/win32/uxguide/mess-confirm
|
||||
// STD M65 U64 X16 --- misc strings specific to Open ROMs, not present in CBM ROMs
|
||||
{ true, true, true, true, "STR_BRK_AT", "\rBRK AT $" },
|
||||
{ true, true, true, true, "STR_BRK_AT", "\rBRK AT $" },
|
||||
|
||||
{ false, true, false, false, "STR_ORS", "OPEN ROMS BASIC & KERNAL\r" },
|
||||
{ false, true, false, false, "STR_ORS", "OPEN ROMS BASIC & KERNAL\r" },
|
||||
{ false, true, false, false, "STR_ORS_LEGACY_1", "OPEN ROMS " },
|
||||
{ false, true, false, false, "STR_ORS_LEGACY_2", "\r\rLEGACY MODE " },
|
||||
|
||||
{ false, true, false, false, "STR_MEM_HDR", "\r\x12 AREA START SIZE \r" },
|
||||
{ false, true, false, false, "STR_MEM_1", " $" },
|
||||
{ false, true, false, false, "STR_MEM_2", " " },
|
||||
{ false, true, false, false, "STR_MEM_TEXT", "\r TEXT" },
|
||||
{ false, true, false, false, "STR_MEM_VARS", "\r VARS" },
|
||||
{ false, true, false, false, "STR_MEM_ARRS", "\r ARRS" },
|
||||
{ false, true, false, false, "STR_MEM_STRS", "\r STRS" },
|
||||
{ false, true, false, false, "STR_MEM_FREE", "\r\r FREE" },
|
||||
|
||||
{ false, true, false, false, "STR_SI_HEADER", "OPEN ROMS, " },
|
||||
{ false, true, false, false, "STR_SI_MODE64", "LEGACY MODE" },
|
||||
{ false, true, false, false, "STR_SI_MODE65", "NATIVE MODE" },
|
||||
{ false, true, false, false, "STR_SI_HDR_REL", "\rRELEASE " },
|
||||
{ false, true, false, false, "STR_SI_HDR_HW", "BOARD : " },
|
||||
{ false, true, false, false, "STR_SI_HW_01", "MEGA65 R1" },
|
||||
{ false, true, false, false, "STR_SI_HW_02", "MEGA65 R2" },
|
||||
{ false, true, false, false, "STR_SI_HW_03", "MEGA65 R3" },
|
||||
{ false, true, false, false, "STR_SI_HW_21", "MEGAPHONE R1" },
|
||||
{ false, true, false, false, "STR_SI_HW_40", "NEXYS4 PSRAM" },
|
||||
{ false, true, false, false, "STR_SI_HW_41", "NEXYS4 DDR" },
|
||||
{ false, true, false, false, "STR_SI_HW_42", "NEXYS4 DDR WIDGET" },
|
||||
{ false, true, false, false, "STR_SI_HW_FD", "WUKONG A100T" },
|
||||
{ false, true, false, false, "STR_SI_HW_FE", "SIMULATION VHDL" },
|
||||
{ false, true, false, false, "STR_SI_HW_XX", "UNKNOWN ID $" },
|
||||
{ false, true, false, false, "STR_SI_HDR_VID", "\rVIDEO : " },
|
||||
{ false, true, false, false, "STR_MEM_HDR", "\r\x12 AREA START SIZE \r" },
|
||||
{ false, true, false, false, "STR_MEM_1", " $" },
|
||||
{ false, true, false, false, "STR_MEM_2", " " },
|
||||
{ false, true, false, false, "STR_MEM_TEXT", "\r TEXT" },
|
||||
{ false, true, false, false, "STR_MEM_VARS", "\r VARS" },
|
||||
{ false, true, false, false, "STR_MEM_ARRS", "\r ARRS" },
|
||||
{ false, true, false, false, "STR_MEM_STRS", "\r STRS" },
|
||||
{ false, true, false, false, "STR_MEM_FREE", "\r\r FREE" },
|
||||
|
||||
{ false, true, false, false, "STR_SI_HEADER", "OPEN ROMS, " },
|
||||
{ false, true, false, false, "STR_SI_MODE64", "LEGACY MODE" },
|
||||
{ false, true, false, false, "STR_SI_MODE65", "NATIVE MODE" },
|
||||
{ false, true, false, false, "STR_SI_HDR_REL", "\rRELEASE " },
|
||||
{ false, true, false, false, "STR_SI_HDR_HW", "BOARD : " },
|
||||
{ false, true, false, false, "STR_SI_HW_01", "MEGA65 R1" },
|
||||
{ false, true, false, false, "STR_SI_HW_02", "MEGA65 R2" },
|
||||
{ false, true, false, false, "STR_SI_HW_03", "MEGA65 R3" },
|
||||
{ false, true, false, false, "STR_SI_HW_21", "MEGAPHONE R1" },
|
||||
{ false, true, false, false, "STR_SI_HW_40", "NEXYS4 PSRAM" },
|
||||
{ false, true, false, false, "STR_SI_HW_41", "NEXYS4 DDR" },
|
||||
{ false, true, false, false, "STR_SI_HW_42", "NEXYS4 DDR WIDGET" },
|
||||
{ false, true, false, false, "STR_SI_HW_FD", "WUKONG A100T" },
|
||||
{ false, true, false, false, "STR_SI_HW_FE", "SIMULATION VHDL" },
|
||||
{ false, true, false, false, "STR_SI_HW_XX", "UNKNOWN ID $" },
|
||||
{ false, true, false, false, "STR_SI_HDR_VID", "\rVIDEO : " },
|
||||
|
||||
// Note: depending on configuration, additional strings will be added here
|
||||
} };
|
||||
|
||||
Reference in new issue
Block a user