diff --git a/src/console.s b/src/console.s index 8939e08..07a141f 100644 --- a/src/console.s +++ b/src/console.s @@ -210,7 +210,7 @@ done ; Y: Target row ; Return Value: ; None -console_move_cursor .proc +console_cursor_move .proc .save_registers .long_a @@ -223,6 +223,84 @@ console_move_cursor .proc rtl .endproc +; Reposition the cursor to 0,0 - the upper left corner of the screen. +; +; Arguments: +; None +; Return Value: +; None +console_cursor_home .proc + .save_registers + + .long_a + lda #0 + sta console_cursor_column + sta console_cursor_row + + .restore_registers + rtl +.endproc + +; Clear the entire text buffer and returnt the cursor to the top +; left cell. +; +; Arguments: +; None +; Return Value: +; None +console_clear_screen .proc + .save_registers + + ldx #0 + lda #0 +loop + sta console_buffer_color, X + sta console_buffer_text, X + inx + cpx #BUFFER_SIZE + bne loop + + jsl console_cursor_home + + lda #$FF + sta console_screen_dirty + + .restore_registers + rtl +.endproc + +; Clear all text from the current cursor position to the end of +; the current line. +; +; Arguments: +; None +; Return Value: +; None +console_clear_to_end_of_line .proc + .save_registers + + .long_a + lda #79 + sec + sbc console_cursor_column + tax + .short_a + lda console_cursor_color + pha + lda #0 + sta console_cursor_color +loop + jsl console_putchar + dex + bne loop + + lda #$FF + sta console_screen_dirty + + .restore_registers + rtl +.endproc + ; Insert a character at the current cursor location. ; ; Arguments: diff --git a/src/main.s b/src/main.s index 69bd3bb..dccf89e 100644 --- a/src/main.s +++ b/src/main.s @@ -24,7 +24,7 @@ main .proc ldx #34 ldy #14 - jsl console_move_cursor + jsl console_cursor_move lda #`greeting_message ldx #<>greeting_message