diff --git a/c64/basic/,aliases.s b/c64/basic/,aliases.s index f500a630..2e1fee26 100644 --- a/c64/basic/,aliases.s +++ b/c64/basic/,aliases.s @@ -61,8 +61,7 @@ .alias LDTND $98 ; number of entries in LAT / FAT / SAT tables .alias DFLTN $99 .alias input_device_number DFLTN - ; bit 6 = error messages, bit 7 = control messages - .alias kernal_message_control_flags $9d + .alias MSGFLG $9D ; bit 6 = error messages, bit 7 = control message .alias jiffy_clock_24bits $a0 .alias cassette_buffer_bytes_used $A6 .alias load_or_scroll_temp_pointer $AC diff --git a/c64/basic/cmd_load.s b/c64/basic/cmd_load.s index 691ba769..30cc57b0 100644 --- a/c64/basic/cmd_load.s +++ b/c64/basic/cmd_load.s @@ -11,6 +11,15 @@ cmd_load: ;; middle of a program. For safety, we do. jsr basic_do_clr + ;; Setup Kernal to print control messages or not + lda #$80 ; display control messages and omit error messages + ldx basic_current_line_number+1 + cpx #$FF + beq + + lda #$00 ; direct mode - don't display anything +* + jsr $FF90 ; SETMSG + ;; XXX temporary, to set valid device number lda #$08 sta current_device_number diff --git a/c64/kernal/,aliases.s b/c64/kernal/,aliases.s index 0d3ab8ab..e4dd19ca 100644 --- a/c64/kernal/,aliases.s +++ b/c64/kernal/,aliases.s @@ -12,8 +12,7 @@ .alias LDTND $98 ; number of entries in LAT / FAT / SAT tables .alias DFLTN $99 .alias input_device_number DFLTN - ; bit 6 = error messages, bit 7 = control messages - .alias kernal_message_control_flags $9d + .alias MSGFLG $9D ; bit 6 = error messages, bit 7 = control message .alias jiffy_clock_24bits $a0 .alias cassette_buffer_bytes_used $A6 .alias load_or_scroll_temp_pointer $AC diff --git a/c64/kernal/load.s b/c64/kernal/load.s index d6e9b631..1a853b95 100644 --- a/c64/kernal/load.s +++ b/c64/kernal/load.s @@ -15,7 +15,7 @@ ;; $AC = current pointer for loading/verifying ;; $C1 = similar to the above. -;; XXX rework this, according to pagetable.com +;; XXX honor MSGFLG bit 6, add VERIFY support load: @@ -30,12 +30,13 @@ load: jsr install_ram_routines ;; Disable IRQs, since timing matters! - SEI + sei - ;; Display SEARCHING FOR + ;; Display SEARCHING FOR + filename + lda MSGFLG + bpl + jsr printf - .byte "SEARCHING FOR ",0 - + .byte $0D,"SEARCHING FOR ",0 ldy #$00 print_filename_loop: @@ -131,9 +132,12 @@ sent_filename: beq + sta load_save_start_ptr+1 * + ;; Display LOADING + lda MSGFLG + bpl + jsr printf - .byte "LOADING",$0d,0 - + .byte "LOADING",$0D,0 +* load_loop: ;; We are now ready to receive bytes jsr iec_rx_byte diff --git a/c64/kernal/setmsg.s b/c64/kernal/setmsg.s index eb79d7f5..15a3d5b1 100644 --- a/c64/kernal/setmsg.s +++ b/c64/kernal/setmsg.s @@ -1,3 +1,4 @@ ; Function defined on pp272-273 of C64 Programmers Reference Guide setmsg: + sta MSGFLG rts