implement screen clear routines
This commit is contained in:
1 parent
3ff2419189
commit
6bd5778db2
4 files changed
+47
-3
No files matched your search
@@ -33,10 +33,10 @@
|
|||||||
.alias cursor_is_visible $CF
|
.alias cursor_is_visible $CF
|
||||||
.alias input_source $D0
|
.alias input_source $D0
|
||||||
.alias current_screen_line_ptr $D1
|
.alias current_screen_line_ptr $D1
|
||||||
.alias current_screen_line_logical_column $D3
|
.alias current_screen_x $D3
|
||||||
.alias quote_mode_flag $D4
|
.alias quote_mode_flag $D4
|
||||||
.alias max_logical_line_length $D5
|
.alias max_logical_line_length $D5
|
||||||
.alias cursor_physical_screen_line $D6
|
.alias current_screen_y $D6
|
||||||
.alias last_printed_character_ascii $D7
|
.alias last_printed_character_ascii $D7
|
||||||
.alias insert_mode $D8
|
.alias insert_mode $D8
|
||||||
; Bits 0 -3 = bits 8-11 of screen line address
|
; Bits 0 -3 = bits 8-11 of screen line address
|
||||||
|
|||||||
@@ -57,4 +57,5 @@ clearscreen_l3:
|
|||||||
iny
|
iny
|
||||||
bne clearscreen_l3
|
bne clearscreen_l3
|
||||||
|
|
||||||
rts
|
;; (Compute's Mapping the 64 p216)
|
||||||
|
jmp home_cursor
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
;; Home the cursor
|
||||||
|
;; (Compute's Mapping the 64 p216)
|
||||||
|
|
||||||
|
home_cursor:
|
||||||
|
|
||||||
|
lda #$00
|
||||||
|
sta current_screen_x
|
||||||
|
sta current_screen_y
|
||||||
|
|
||||||
|
jmp set_pointer_to_current_screen_line
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
;; Put the address of the screen current line
|
||||||
|
;; into the pointer at $D1 (current_screen_line_ptr).
|
||||||
|
;; It must take into account the screen line link table
|
||||||
|
;; (Compute's Mapping the 64 p216)
|
||||||
|
set_pointer_to_current_screen_line:
|
||||||
|
;; Get pointer to start of the screen
|
||||||
|
lda hibase
|
||||||
|
sta current_screen_line_ptr+1
|
||||||
|
lda #$00
|
||||||
|
sta current_screen_line_ptr+0
|
||||||
|
|
||||||
|
;; Now advance for the number of lines
|
||||||
|
ldx current_screen_y
|
||||||
|
|
||||||
|
sptcsl_l2:
|
||||||
|
;; XXX - Should we read the columns per line from
|
||||||
|
;; somewhere?
|
||||||
|
lda #<40
|
||||||
|
;; Double line length if line is linked
|
||||||
|
bit screen_line_link_table,x
|
||||||
|
bpl sptcsl_l1
|
||||||
|
asl
|
||||||
|
sptcsl_l1:
|
||||||
|
clc
|
||||||
|
adc current_screen_line_ptr+0
|
||||||
|
lda current_screen_line_ptr+1
|
||||||
|
adc #>40
|
||||||
|
sta current_screen_line_ptr+1
|
||||||
|
|
||||||
|
dex
|
||||||
|
bpl sptcsl_l2
|
||||||
|
|
||||||
|
rts
|
||||||
Reference in new issue
Block a user