73 lines
1.6 KiB
JavaScript
73 lines
1.6 KiB
JavaScript
; -------------------------------------------------
|
|
; lcd.inc.jsm
|
|
; -------------------------------------------------
|
|
; needs xio-address equates for
|
|
; reg_cg_char_addr: equ 0xXX ; RW
|
|
; reg_cg_line_addr: equ 0xXX ; RW
|
|
; reg_cg_data: equ 0xXX ; RW
|
|
; reg_cg_ctrl: equ 0xXX ; WO
|
|
|
|
; needs delay.inc.jsm
|
|
|
|
; -------------------------------------------------
|
|
cg_clr_line: push R0
|
|
mov R0, 2
|
|
xout (reg_cg_ctrl), R0
|
|
pop R0
|
|
ret
|
|
|
|
; -------------------------------------------------
|
|
cg_clr_screen: push R0
|
|
mov R0, 1
|
|
xout (reg_cg_ctrl), R0
|
|
pop R0
|
|
ret
|
|
|
|
; -------------------------------------------------
|
|
; R0 : char address
|
|
; R1 : line address
|
|
cg_set_addr: call cg_wait_rdy
|
|
xout (reg_cg_line_addr), R1
|
|
xout (reg_cg_char_addr), R0
|
|
ret
|
|
|
|
; -------------------------------------------------
|
|
; R0 : character
|
|
cg_putchar: call cg_wait_rdy
|
|
xout (reg_cg_data), R0
|
|
ret
|
|
|
|
; -------------------------------------------------
|
|
; R1 : ptr to string
|
|
cg_puts: push R0
|
|
cg_p_lp: movx R0, (R1)
|
|
inc R1
|
|
tst R0
|
|
jz ex_cgp
|
|
call cg_putchar
|
|
jmp cg_p_lp
|
|
ex_cgp: pop R0
|
|
ret
|
|
|
|
; -------------------------------------------------
|
|
; R1 : ptr to string
|
|
cg_clr_puts: call cg_clr_line
|
|
call cg_puts
|
|
ret
|
|
|
|
; -------------------------------------------------
|
|
; R1 : ptr to string
|
|
cg_puts_clr: call cg_puts
|
|
call cg_clr_line
|
|
ret
|
|
|
|
; -------------------------------------------------
|
|
cg_wait_rdy: push R0
|
|
cg_wr_lp: xin R0, (reg_hwstat)
|
|
and R0, 0x02
|
|
jz cg_wr_lp
|
|
pop R0
|
|
ret
|
|
|
|
; -------------------------------------------------
|