35 lines
755 B
ArmAsm
35 lines
755 B
ArmAsm
;; 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?
|
|
ldy #<40
|
|
;; Double line length if line is linked
|
|
lda screen_line_link_table,x
|
|
bpl sptcsl_l1
|
|
ldy #<80
|
|
sptcsl_l1:
|
|
tya
|
|
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
|