From c388e8e64c3c32984974a4f266cdd6e1bfb70870 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Sun, 23 Aug 2020 16:59:37 +0200 Subject: [PATCH] more work on MEGA65 startup info --- src/basic/assets/startup_banner.s | 9 ---- src/basic/basic_commands_02/cmd_sysinfo.s | 16 ++++++- src/basic/board_m65/mega65_imports.s | 4 ++ src/basic/init/initmsg_m65.s | 51 ++++++++++++++++++++++- src/basic/init/initmsg_real.s | 5 +-- tools/generate_strings.cc | 12 ++++-- 6 files changed, 79 insertions(+), 18 deletions(-) diff --git a/src/basic/assets/startup_banner.s b/src/basic/assets/startup_banner.s index 2ae93071..d1096c4f 100644 --- a/src/basic/assets/startup_banner.s +++ b/src/basic/assets/startup_banner.s @@ -53,13 +53,4 @@ rainbow_logo: .byte SET_COLOR_0, $00 } -#if !CONFIG_BRAND_CUSTOM_BUILD - -pre_revision_string: - - .text "RELEASE " - .byte $00 - -#endif // no CONFIG_BRAND_CUSTOM_BUILD - #endif diff --git a/src/basic/basic_commands_02/cmd_sysinfo.s b/src/basic/basic_commands_02/cmd_sysinfo.s index f8725753..71ea5e83 100644 --- a/src/basic/basic_commands_02/cmd_sysinfo.s +++ b/src/basic/basic_commands_02/cmd_sysinfo.s @@ -37,7 +37,14 @@ cmd_sysinfo: ldy #>rom_revision_basic_string jsr STROUT - // Print board ID + jsr print_return + jsr print_return + + // FALLTROUGH + +print_sysinfo_banner: + + // Print board type ldx #IDX__STR_SI_HDR_HW jsr print_packed_misc_str @@ -52,8 +59,15 @@ cmd_sysinfo: ldy #(__cmd_sysinfo_hw_ids_end - cmd_sysinfo_hw_ids) !: ldx cmd_sysinfo_hw_str, y + phx jsr print_packed_misc_str + plx + cpx #IDX__STR_SI_HW_XX + bne !+ + lda MISC_BOARDID + jsr print_hex_byte +!: // Print video system information ldx #IDX__STR_SI_HDR_VID diff --git a/src/basic/board_m65/mega65_imports.s b/src/basic/board_m65/mega65_imports.s index 53209d8d..2d0d628d 100644 --- a/src/basic/board_m65/mega65_imports.s +++ b/src/basic/board_m65/mega65_imports.s @@ -25,6 +25,10 @@ .label JREADST = KERNAL_0.JREADST .label SELDEV = KERNAL_0.SELDEV .label M65_ISMODE65 = KERNAL_0.M65_ISMODE65 +.label M65_SETWIN_XY = KERNAL_0.M65_SETWIN_XY +.label M65_SETWIN_WH = KERNAL_0.M65_SETWIN_WH +.label M65_SETWIN_Y = KERNAL_0.M65_SETWIN_Y +.label M65_SETWIN_N = KERNAL_0.M65_SETWIN_N .label plot_set = KERNAL_0.plot_set .label init_oldtxt = BASIC_0.init_oldtxt .label tmpstr_free_all_reset = BASIC_0.tmpstr_free_all_reset diff --git a/src/basic/init/initmsg_m65.s b/src/basic/init/initmsg_m65.s index d347bf03..d90c9cbe 100644 --- a/src/basic/init/initmsg_m65.s +++ b/src/basic/init/initmsg_m65.s @@ -10,15 +10,22 @@ 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 jsr STROUT + // Display additional information, depending on the mode + jsr M65_ISMODE65 - bcc !+ // XXX for MEGA65 native mode, display something else instead + bcc !+ + + // Legacy mode ldx #$02 ldy #$21 @@ -27,7 +34,8 @@ INITMSG: lda #startup_banner_legacy jsr STROUT -!: + + // Legacy mode - display revision and available memory ldx #$05 ldy #$00 @@ -42,3 +50,42 @@ INITMSG: jsr plot_set jsr initmsg_bytes_free + + ldx #$07 + ldy #$00 + jmp plot_set + +!: + // Native mode + + ldx #48 + ldy #0 + jsr M65_SETWIN_XY + + ldx #32 + ldy #7 + jsr M65_SETWIN_WH + + jsr M65_SETWIN_Y + jsr print_sysinfo_banner + jsr M65_SETWIN_N + + // Native mode - display revision and available memory + + ldx #$05 + ldy #$00 + jsr plot_set + + ldx #IDX__STR_PRE_REV + jsr print_packed_misc_str + + lda #rom_revision_basic_string + jsr STROUT + + jsr print_return + jsr initmsg_bytes_free + + ldx #$08 + ldy #$00 + jmp plot_set diff --git a/src/basic/init/initmsg_real.s b/src/basic/init/initmsg_real.s index e297a7d7..8a38e3e6 100644 --- a/src/basic/init/initmsg_real.s +++ b/src/basic/init/initmsg_real.s @@ -73,9 +73,8 @@ initmsg_real: ldy #$0A jsr plot_set - lda #pre_revision_string - jsr STROUT + ldx #IDX__STR_PRE_REV + jsr print_packed_misc_str lda #rom_revision_basic_string diff --git a/tools/generate_strings.cc b/tools/generate_strings.cc index f7d3c989..0fe0b3f2 100644 --- a/tools/generate_strings.cc +++ b/tools/generate_strings.cc @@ -306,7 +306,7 @@ const StringEntryList GLOBAL_MiscStrings = { ListType::STRINGS_BASIC, "misc", { 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", "\r\rBOARD : " }, + { 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" }, @@ -316,7 +316,7 @@ const StringEntryList GLOBAL_MiscStrings = { ListType::STRINGS_BASIC, "misc", { 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" }, + { false, true, false, false, "STR_SI_HW_XX", "UNKNOWN ID $" }, { false, true, false, false, "STR_SI_HDR_VID", "\rVIDEO : " }, @@ -1211,7 +1211,7 @@ void DataSet::generateConfigDepStrings() // CBDOS features - featureStrM65 += "CBDOS : NO\r"; + featureStrM65 += "CBDOS : NO FDD/SD/RAM SUPPORT\r"; // Keyboard support features @@ -1247,6 +1247,12 @@ void DataSet::generateConfigDepStrings() stringEntryList.list.push_back(newEntry); } + if (!GLOBAL_ConfigOptions["CONFIG_BRAND_CUSTOM_BUILD"] || GLOBAL_ConfigOptions["CONFIG_MB_MEGA_65"]) + { + StringEntry newEntry = { true, true, true, true, "STR_PRE_REV", "RELEASE " }; + stringEntryList.list.push_back(newEntry); + } + break; } }