📄 print.asm
字号:
PrID:
CALL EnUart
CALL TxChg
R1='I'
CALL TxByte
R1='D'
CALL TxByte
R1='='
CALL TxByte
R1=' '
CALL TxByte
PC=DiUart
PrReset:
CALL EnUart
CALL TxChg
R1='R'
CALL TxByte
R1='e'
CALL TxByte
R1='s'
CALL TxByte
R1='e'
CALL TxByte
R1='t'
CALL TxByte
PC=DiUart
PrOff:
CALL EnUart
CALL TxChg
R1='O'
CALL TxByte
R1='f'
CALL TxByte
R1='f'
CALL TxByte
PC=DiUart
PrVerify:
CALL EnUart
CALL TxChg
R1='V'
CALL TxByte
R1='e'
CALL TxByte
R1='r'
CALL TxByte
R1='i'
CALL TxByte
R1='f'
CALL TxByte
R1='y'
CALL TxByte
PC=DiUart
PrPgm:
CALL EnUart
CALL TxChg
R1='P'
CALL TxByte
R1='G'
CALL TxByte
R1='M'
CALL TxByte
PC=DiUart
PrErase:
CALL EnUart
CALL TxChg
R1='E'
CALL TxByte
R1='r'
CALL TxByte
R1='a'
CALL TxByte
R1='s'
CALL TxByte
R1='e'
CALL TxByte
PC=DiUart
PrOk:
CALL EnUart
CALL TxChg
PrOk_:
R1='O'
CALL TxByte
R1='K'
CALL TxByte
PC=DiUart
PrintDetail:
R1=[_TestCnt]
R1+=1
CMP R1, [_MaxTestCnt]
JNB PrintDetailAdj
[_TestCnt]=R1
RETF
PrintDetailAdj:
R1=0
[_TestCnt]=R1
R4=0x18
CALL AdjCommBuf
R4=0x10
CALL PrintWordBuf
CALL EnUart
PrintDetailSub:
R3=_CommBuf+PV0H
R4=_CommBuf+PV0L
R5=8
PrintDetailSub0:
R1=[R4++]
R1-=[R3++]
CALL TxSWord
R5-=1
JNE PrintDetailSub0
CALL TxChg
PrintDetail_:
R2=7
CALL TxMNull
R1='Y'
CALL TxByte
CALL TxNull
CALL TxEQU
CALL TxNull
R1=[_CommBuf+YBase]
CALL TxWord
R2=9
CALL TxMNull
R1='X'
CALL TxByte
CALL TxNull
CALL TxEQU
CALL TxNull
R1=[_CommBuf+XBase]
CALL TxWord
CALL TxChg
PC=DiUart
PrintBlockMess:
CALL EnUart
CALL TxChg
R1='B'
CALL TxByte
CALL TxNull
CALL TxLine
CALL TxLine
CALL TxNull
R1=[_MaxDealLevel]
JNE PrintBlockMess_
PrintBlockMessBlank:
R1='B'
CALL TxByte
R1='l'
CALL TxByte
R1='a'
CALL TxByte
R1='n'
CALL TxByte
R1='k'
CALL TxByte
CALL TxChg
PC=DiUart
PrintBlockMess_:
R1='B'
CALL TxByte
CALL TxDD
R1=[_PlayBlock]
CALL TxHex
R1='F'
CALL TxByte
CALL TxDD
R1=[_FileNumber]
CALL TxHex
R1='A'
CALL TxByte
CALL TxDD
R1=[_PlayBank]
CALL TxHex
CALL TxLine
CALL TxNull
R1=[_PlayAddr]
CALL TxWord
R4=[_FileNumber]
JNE PrintBlockMessBlockFile
PrintBlockMessBlockNoFile:
CALL TxChg
R1='N'
CALL TxByte
R1='o'
CALL TxByte
JMP PrintBlockMessBlockFileEnd
PrintBlockMessBlockFile:
R3=[_PlayAddr]
R4=[_PlayBank]
PrintBlockMessBlockFile0:
PrintBlockMessBlockFileEnd:
CALL TxChg
PC=DiUart
PrintCoord:
CALL EnUart
R1=[_PrintFlag]
R1+=1
R1&=0xff0f
[_PrintFlag]=R1
R1-=1
R1&=0x03
JNE PrintCoord_
CALL TxChg
PrintCoord_:
R1='X'
CALL TxByte
CALL TxEQU
R1=[_XCoord]
CALL HexDec
CALL TxWord
R1='Y'
CALL TxByte
CALL TxEQU
R1=[_YCoord]
CALL HexDec
CALL TxWord
CALL TxNull
CALL TxNull
PC=DiUart
PrintErr:
R2=R1
CALL EnUart
CALL TxChg
R1='E'
CALL TxByte
R1='r'
CALL TxByte
R1='r'
CALL TxByte
CALL TxDD
R1=R2
CALL TxHex
PC=DiUart
PrintAdjResult:
R4=3
CALL AdjCommBuf2
CALL EnUart
CALL TxChg
R1='X'
CALL TxByte
CALL TxEQU
R1=[_CommBuf+AdjXBi]
CALL TxWord
R1='Y'
CALL TxByte
CALL TxEQU
R1=[_CommBuf+AdjYBi]
CALL TxWord
R1='A'
CALL TxByte
CALL TxEQU
R1=[_CommBuf+AdjABi]
CALL TxWord
R1='P'
CALL TxByte
CALL TxEQU
R1=[_CommBuf+RAdjP]
CALL TxHex
R1='N'
CALL TxByte
CALL TxEQU
R1=[_CommBuf+RAdjN]
CALL TxHex
PC=DiUart
TxPlay:
R4=R1
CALL EnUart
CALL TxChg
R1='P'
CALL TxByte
CALL TxDD
R1=R4
CALL TxWord
PC=DiUart
PrintDealMess:
R3=R1
CALL EnUart
CALL TxChg
R1='D'
CALL TxByte
CALL TxDD
CALL TxNull
R1='X'
CALL TxByte
CALL TxEQU
R1=[_XValue]
CALL HexDec
CALL Tx3Nibble
R1='Y'
CALL TxByte
CALL TxEQU
R1=[_YValue]
CALL HexDec
CALL Tx3Nibble
CMP R3, 0
JNE PrintDealMessBlank
R1='S'
CALL TxByte
CALL TxEQU
R1=[_PrevDealBlock]
CALL TxWord
PC=DiUart
PrintDealMessBlank:
R1='B'
CALL TxByte
R1='l'
CALL TxByte
R1='a'
CALL TxByte
R1='n'
CALL TxByte
R1='k'
CALL TxByte
PC=DiUart
PrintByteBuf:
CALL EnUart
CALL TxChg
R3=_CommBuf
PrintByteBuf0:
R1=R3 XOR _CommBuf
R1&=0x0f
JNE PrintByteBuf_
CALL TxChg
PrintByteBuf_:
R1=[R3]
CALL TxHex
R3+=1
R4-=1
JNE PrintByteBuf0
CALL TxChg
PC=DiUart
PrintBaseData:
R4=0x21
CALL AdjCommBuf
CALL EnUart
CALL TxChg
R4=0x21
PrintWordBuf:
CALL EnUart
R3=_CommBuf
PrintWordBuf0:
R1=R3 XOR _CommBuf
R1&=0x07
JNE PrintWordBuf_
CALL TxChg
PrintWordBuf_:
CALL TxNull
R1=[R3]
CALL TxWord
R3+=1
R4-=1
JNE PrintWordBuf0
CALL TxChg
PC=DiUart
AdjCommBuf2:
R2=_CommBuf+2
R3=_CommBuf+2
JMP AdjCommBuf0
AdjCommBuf:
R2=_CommBuf
R3=_CommBuf
AdjCommBuf0:
R1=[R3++]
R1=R1 LSL 4
R1=R1 LSL 4
R1|=[R3++]
[R2++]=R1
R4-=1
JNE AdjCommBuf0
RETF
HexDec:
R2=R1
R1=0
HexDec1000:
CMP R2, 1000
JB HexDec100
R1+=0x1000
R2-=1000
JMP HexDec1000
HexDec100:
CMP R2, 100
JB HexDec10
R1+=0x100
R2-=100
JMP HexDec100
HexDec10:
CMP R2, 10
JB HexDecE
R1+=0x10
R2-=10
JMP HexDec10
HexDecE:
R1+=R2
RETF
.ifdef TRACE
PrintHe:
R2=R1
CALL EnUart
R1=R2
CALL TxHex1
PC=DiUart
.endif
PrintHe:
R4=R1
CALL EnUart
R1=R4
CALL TxHex1
PC=DiUart
PrintDTData:
.ifdef CDDEBUG
CALL EnUart
R1=0x0d
CALL TxByte
R1='T'
CALL TxByte
R1='x'
CALL TxByte
R1=' '
CALL TxByte
R1=R4 LSR 4
R1=R1 LSR 4
CALL TxHex
R1=R4&0xff
CALL TxHex
PC=DiUart
.endif
RETF
PrintDTErr:
.ifdef CDDEBUG
CALL EnUart
R1=0x0d
CALL TxByte
R1='T'
CALL TxByte
R1='x'
CALL TxByte
R1=' '
CALL TxByte
R1='E'
CALL TxByte
R1='r'
CALL TxByte
R1='r'
CALL TxByte
R1=R4
CALL TxHex
R1=R3
CALL TxHex
PC=DiUart
.endif
RETF
PrintRDErr:
.ifdef CDDEBUG
CALL EnUart
R1=0x0d
CALL TxByte
R1='R'
CALL TxByte
R1='x'
CALL TxByte
R1=' '
CALL TxByte
R1='E'
CALL TxByte
R1='r'
CALL TxByte
R1='r'
CALL TxByte
R1=R4
CALL TxHex
PC=DiUart
.endif
RETF
PrintRDData:
.ifdef CDDEBUG
CALL EnUart
R1=0x0d
CALL TxByte
R1='R'
CALL TxByte
R1='x'
CALL TxByte
R1=' '
CALL TxByte
R1=R3 LSR 4
R1=R1 LSR 4
CALL TxHex
R1=R3&0xff
CALL TxHex
PC=DiUart
.endif
RETF
PrintDSLCommBlock:
CALL EnUart
CALL TxChg
R1='B'
CALL TxByte
R1=':'
CALL TxByte
R1=[_PlayBlock]
CALL TxHex
R1=' '
CALL TxByte
R5=_CommBuf
R4=[R5++]
R1=R4
CALL TxHex
CMP R4, 0
JE PrintDSLCommBlockEnd
PrintDSLCommBlock10:
R1=[R5++]
CALL TxHex
R1=[R5++]
CALL TxHex
R4-=1
JNE PrintDSLCommBlock10
PrintDSLCommBlock2:
R4=[_CommBuf]
PrintDSLCommBlock20:
R1=[R5]
CALL TxHex
R1=[R5++]
CMP R1, 0xff
JNE PrintDSLCommBlock20
R4-=1
JNE PrintDSLCommBlock20
CALL DiUart
PrintDSLCommBlockEnd:
RETF
PrintValue:
CALL EnUart
CALL TxChg
R1='X'
CALL TxByte
CALL TxEQU
R1=[_XValue]
CALL HexDec
CALL TxWord
R1='Y'
CALL TxByte
CALL TxEQU
R1=[_YValue]
CALL HexDec
CALL TxWord
RETF
PrintEdit:
CALL EnUart
CALL TxChg
R1='E'
CALL TxByte
R1='d'
CALL TxByte
R1='i'
CALL TxByte
R1='t'
CALL TxByte
R1=':'
CALL TxByte
R1=' '
CALL TxByte
R1='I'
CALL TxByte
R1='='
CALL TxByte
R1=[_FileIndex]
CALL TxHex
R1='B'
CALL TxByte
R1='='
CALL TxByte
R1=[_PlayBlock]
CALL TxHex
R1=[_RecOrgBank]
CALL TxWord
R1=[_RecOrgAddr]
CALL TxWord
CALL TxLine
CALL TxLine
CALL TxNull
R1=[_RecEndBank]
CALL TxWord
R1=[_RecEndAddr]
CALL TxWord
CALL TxChg
CALL DiUart
RETF
PrintEditAddr:
CALL EnUart
CALL TxChg
R1='E'
CALL TxByte
R1='d'
CALL TxByte
R1='i'
CALL TxByte
R1='t'
CALL TxByte
R1=' '
CALL TxByte
R1=[_HowManyEditBlock]
JNE PrintEditAddr_
R1='N'
CALL TxByte
R1='o'
CALL TxByte
RETF
PrintEditAddr_:
R1=[_EditBlockSerious]
CALL TxHex
CALL TxNull
R1=[_EditOrgBank]
CALL TxWord
R1=[_EditOrgAddr]
CALL TxWord
RETF
PrintPage:
CALL EnUart
R1=[_PcRecPage]
R1&=0x0f
JNE PrintPage_
PrintPage_:
R1=[_PcRecPage]
CALL TxWord
CALL DiUart
RETF
PrintCardMess:
CALL EnUart
CALL TxChg
R1='B'
CALL TxByte
R1='o'
CALL TxByte
R1='o'
CALL TxByte
R1='k'
CALL TxByte
R1='='
CALL TxByte
R1=[_HowManyBook]
CALL TxHex
R1=[_CurrentBookBank]
CALL TxWord
R1=[_CurrentBookAddr]
CALL TxWord
CALL DiUart
RETF
PrintEditReg:
R2=_ContentBuf
R5=0x80
R3=[_EndAddr]
R4=[_EndBank]
R4+=1
CALL ReadNandWordBuf
CALL EnUart
R4=_ContentBuf
PrintEditReg0:
R1=R4&0x0f
JNE PrintEditReg_
CALL TxChg
PrintEditReg_:
R1=[R4++]
CALL TxWord
CMP R4, 0xc0
JNE PrintEditReg0
CALL DiUart
RETF
PrintRec:
CALL EnUart
R1=0x0d
CALL TxByte
R1='R'
CALL TxByte
R1='e'
CALL TxByte
R1='c'
CALL TxByte
R1=[_RecOrgBank]
CALL TxWord
R1=[_RecOrgAddr]
CALL TxWord
R1='-'
CALL TxByte
R1='-'
CALL TxByte
R1=' '
CALL TxByte
R1=[_RecEndBank]
CALL TxWord
R1=[_RecEndAddr]
CALL TxWord
CALL DiUart
RETF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -