Files
open-roms/c64/kernal/screen/chrout_screen_crsr.s
T

60 lines
818 B
ArmAsm

// #LAYOUT# STD * #TAKE
// #LAYOUT# X16 * #IGNORE
// #LAYOUT# * KERNAL_0 #TAKE
// #LAYOUT# * * #IGNORE
//
// Cursor keys handling within CHROUT
//
chrout_screen_CRSR_UP:
lda TBLX
beq chrout_screen_CRSR_done
dec TBLX
// FALLTROUGH
chrout_screen_CRSR_done:
jmp chrout_screen_calc_lptr_done
chrout_screen_CRSR_DOWN:
lda TBLX
cmp #24
bne !+
jsr screen_scroll_up
!:
inc TBLX
jmp chrout_screen_calc_lptr_done
chrout_screen_CRSR_RIGHT:
jsr screen_get_clipped_PNTR
cpy #39
beq_16 screen_advance_to_next_line
iny
!:
sty PNTR
bpl chrout_screen_CRSR_done // branch always
chrout_screen_CRSR_LEFT:
jsr screen_get_clipped_PNTR
dey
bpl !-
lda TBLX
beq chrout_screen_CRSR_done
dec TBLX
lda #39
sta PNTR
bne chrout_screen_CRSR_done // branch always