; ------------------------------------------------- ; 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 ; -------------------------------------------------