📄 hc164_2.asm
字号:
.ifnz HC164_2
fProcessVfdWrite:
lda IOP_DATA2_L
sta rOutBuffer_164
jsr f164SentOneByte
lda IOP_DATA2_H
sta rOutBuffer_164
jsr f164SentOneByte
rts
fProcessVfdRead:
lda #%11111110
sta rRegister164
ldx #1
sentnextbyte:
lda rRegister164
sta rOutBuffer_164
jsr f164SentOneByte
bbs VFD_STB_bit,VFD_PORT,checknextbit
stx VfdResponse1
bra keyscanend
checknextbit:
sec
rol rRegister164
inx
cpx #9
bne sentnextbyte
lda #0
sta VfdResponse1
keyscanend:
jsr clear_mem
jsr fProcessVfdWrite
rts
clear_mem:
lda #$ff
sta rOutBuffer_164
jsr f164SentOneByte
lda #$ff
sta rOutBuffer_164
jsr f164SentOneByte
rts
f164SentOneByte:
smb VFD_DATA_bit,VFD_DATA_PORT
ldy #8
rSendOneBit:
;;clk=0
rmb VFD_CLK_bit,VFD_PORT
ror rOutBuffer_164
bcs rDataHigh
rDataLow:
rmb VFD_DATA_bit,VFD_DATA_PORT
bra rDataSetup
rDataHigh:
smb VFD_DATA_bit,VFD_DATA_PORT
rDataSetup:
jsr fDelay1
nop
;;clk=1
smb VFD_CLK_bit,VFD_PORT
jsr fDelay1
nop
dey
bne rSendOneBit
smb VFD_DATA_bit,VFD_DATA_PORT
rts
.endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -