📄 tinyuart.inc
字号:
//////////////////////////////////////////////////////////////////////
lbl PrintBusy;
pshp;
psha;
lbl PrintBusy_Loop;
lda uart_base+0x01;
andi uart_busy_bit;
jprnz PrintBusy_Loop;
pula;
pulp;
ret;
//////////////////////////////////////////////////////////////////////
lbl PrintChar;
jrs PrintBusy;
sta uart_base;
ret;
//////////////////////////////////////////////////////////////////////
lbl ScanChar;
lda uart_base+0x01;
ror;
ror;
ror;
lda uart_base;
ret;
//////////////////////////////////////////////////////////////////////
lbl GetChar;
pshp;
lbl GetChar_Loop;
jrs ScanChar;
jprnc GetChar_Loop;
sta uart_base+0x01;
pulp;
ret;
//////////////////////////////////////////////////////////////////////
lbl GetHexDigit;
jrs GetChar;
cmpi 0x1b;
jprz GetHexDigit_ESC;
cmpi 0x30;
jprc GetHexDigit;
cmpi 0x3A;
jprc GetHexDigit_2;
cmpi 0x41;
jprc GetHexDigit;
cmpi 0x47;
jprc GetHexDigit_1;
cmpi 0x61;
jprc GetHexDigit;
cmpi 0x67;
jprnc GetHexDigit;
andi 0xdf;
lbl GetHexDigit_1;
jrs PrintChar;
subi 0x37;
clc;
ret;
lbl GetHexDigit_2;
jrs PrintChar;
subi 0x30;
clc;
ret;
lbl GetHexDigit_ESC;
sec;
ret;
//////////////////////////////////////////////////////////////////////
lbl GetHexByte;
pshp;
pshx;
jrs GetHexDigit;
jprc GetHexByte_ESC;
ror;
ror;
ror;
ror;
ror;
ldxa;
jrs GetHexDigit;
jprc GetHexByte_ESC;
orrx;
pulx;
pulp;
clc;
ret;
lbl GetHexByte_ESC;
pulx;
pulp;
sec;
ret;
//////////////////////////////////////////////////////////////////////
lbl GetHexWord;
jrs GetHexByte;
jprc GetHexWord_ESC;
ldxa;
jrs GetHexByte;
jprc GetHexWord_ESC;
ldya;
clc;
ret;
lbl GetHexWord_ESC;
sec;
ret;
//////////////////////////////////////////////////////////////////////
lbl PrintString;
puly;
pulx;
lbl PrintString_1;
ldx;
cmpi 0x00;
jprz PrintString_Exit;
jrs PrintChar;
inx;
jpr PrintString_1;
lbl PrintString_Exit;
inx;
pshx;
pshy;
ret;
//////////////////////////////////////////////////////////////////////
lbl PrintHexWord;
ldax;
jrs PrintHex;
lday;
lbl PrintHex;
psha;
shr;
shr;
shr;
shr;
jrs PrintHex_Nibble;
pula;
lbl PrintHex_Nibble;
andi 0x0f;
addi 0xf6;
jprc PrintHex_Nibble_1;
addi 0x3a;
jpr PrintChar;
lbl PrintHex_Nibble_1;
addi 0x41;
jpr PrintChar;
//////////////////////////////////////////////////////////////////////
lbl PrintCRLF;
push_all;
jrs PrintString;
data 0x0d;
data 0x0a;
data 0x00;
pop_all;
ret;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -