102 lines
1.5 KiB
ArmAsm
102 lines
1.5 KiB
ArmAsm
// #LAYOUT# M65 BASIC_1 #TAKE
|
|
// #LAYOUT# * * #IGNORE
|
|
|
|
|
|
// Routine is too long to fit in the original location
|
|
|
|
// XXX banner-related code needs cleanup, move MEGA65 stuff to a separate file
|
|
|
|
|
|
INITMSG:
|
|
|
|
jsr INITMSG_main_banner
|
|
|
|
// Display additional information, depending on the mode
|
|
|
|
jsr M65_MODEGET
|
|
bcc !+
|
|
|
|
// Legacy C64 compatibility mode
|
|
|
|
jsr INITMSG_partial
|
|
|
|
ldx #IDX__STR_ORS_LEGACY_2
|
|
jsr print_packed_misc_str
|
|
|
|
bra INITMSG_end
|
|
!:
|
|
// Native mode
|
|
|
|
ldx #48
|
|
ldy #0
|
|
jsr M65_SETWIN_XY
|
|
|
|
ldx #32
|
|
ldy #9
|
|
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_ORS
|
|
jsr print_packed_misc_str
|
|
|
|
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
|