40 lines
859 B
NASM
40 lines
859 B
NASM
;;
|
|
;;
|
|
;; args:
|
|
;; X: zero page offset
|
|
;; Y: length
|
|
lcd_hex: NOP i
|
|
|
|
;; top nib
|
|
_hex_loop: LDA zp,x 0
|
|
LSR A
|
|
LSR A
|
|
LSR A
|
|
LSR A
|
|
CMP # a
|
|
BCS r :_hex_nib0_af
|
|
_hex_nib0_09: CLC i
|
|
ADC # 30
|
|
BRA r :_hex_nib0_out
|
|
_hex_nib0_af: CLC i
|
|
ADC # 37
|
|
_hex_nib0_out: JSR a :lcd_w_rs1
|
|
|
|
;; bottom nib
|
|
LDA zp,x 0
|
|
AND # f
|
|
CMP # a
|
|
BCS r :_hex_nib1_af
|
|
_hex_nib1_09: CLC i
|
|
ADC # 30
|
|
BRA r :_hex_nib1_out
|
|
_hex_nib1_af: CLC i
|
|
ADC # 37
|
|
_hex_nib1_out: JSR a :lcd_w_rs1
|
|
|
|
DEX i
|
|
DEY i
|
|
BNE r :_hex_loop
|
|
|
|
RTS s
|