📄 buffer.asm
字号:
.line 44
;>>>> else pcdata[3] = 0x94;
LACK 148
LDPK _pcdata+3
SACL _pcdata+3
L75:
.line 45
;>>>> pcdata[4] = c_tr_data;
LDPK _c_tr_data
BLDD _c_tr_data,#_pcdata+4
.line 46
;>>>> pcdata[5] = buffer[0];
LDPK _buffer
BLDD _buffer,#_pcdata+5
.line 47
;>>>> for(i=0;i<buffer[0]*(2+(c_db_n+1)*5);i++)
LACK 0
MAR *-
SACL *
B L77
L76:
.line 49
;>>>> pcdata[6+i] = buffer[1+i];
LAC * ,AR0
ADLK _buffer+1,0
SACL *
LAR AR3,* ,AR2
LAC * ,AR0
ADLK _pcdata+6,0
SACL *
LAR AR4,* ,AR3
LAC * ,AR4
SACL * ,AR2
.line 47
LAC *
ADDK 1
SACL *
L77:
LDPK _c_db_n
ZALS _c_db_n
ADDK 1
MAR * ,AR0
SACL *
LT *
LACK 5
SACL *
MPYU *
PAC
ADDK 2
SACL *
LDPK _buffer
LT _buffer
MPYU * ,AR2
ZALS *
SPAC
BLZ L76
.line 51
;>>>> wr_crc_resp();
CALL _wr_crc_resp,AR1
.line 53
;>>>> break;
;>>>> case 0x03:
B L64
L78:
.line 56
;>>>> len = buffer[0]*(1+8+2+(c_db_n+1)*5)+6+2;
LDPK _c_db_n
LAC _c_db_n
ADDK 1
MAR * ,AR0
SACL *
LT *
MPYK 5
PAC
ADDK 11
SACL *
LDPK _buffer
LT _buffer
MPYU * ,AR2
PAC
ADDK 8
LARK AR2,2
MAR *0+
SACL * ,AR0
.line 57
;>>>> pcdata[0] = 6+buffer[0]*(9+2+(c_db_n+1)*5)+2;
LDPK _c_db_n
LAC _c_db_n
ADDK 1
SACL *
LT *
MPYK 5
PAC
ADDK 11
SACL *
LDPK _buffer
LT _buffer
MPYU * ,AR2
PAC
ADDK 8
LDPK _pcdata
SACL _pcdata
.line 58
;>>>> pcdata[1] = deviceAddr;
LDPK _deviceAddr
BLDD _deviceAddr,#_pcdata+1
.line 59
;>>>> pcdata[2] = 0x21;
LACK 33
LDPK _pcdata+2
SACL _pcdata+2
.line 60
;>>>> if(len<=0xff)pcdata[3] = OK;
ZALS *
SUBK 255
BGZ L79
LACK 0
LDPK _pcdata+3
SACL _pcdata+3
B L80
L79:
.line 61
;>>>> else pcdata[3] = 0x94;
LACK 148
LDPK _pcdata+3
SACL _pcdata+3
L80:
.line 62
;>>>> pcdata[4] = c_tr_data;
LDPK _c_tr_data
BLDD _c_tr_data,#_pcdata+4
.line 63
;>>>> pcdata[5] = buffer[0];
LDPK _buffer
BLDD _buffer,#_pcdata+5
.line 64
;>>>> for(i=0;i<buffer[0]*(9+2+(c_db_n+1)*5);i++)
LACK 0
MAR *-
SACL *
B L82
L81:
.line 66
;>>>> pcdata[6+i] = buffer[1+i];
LAC * ,AR0
ADLK _buffer+1,0
SACL *
LAR AR3,* ,AR2
LAC * ,AR0
ADLK _pcdata+6,0
SACL *
LAR AR4,* ,AR3
LAC * ,AR4
SACL * ,AR2
.line 64
LAC *
ADDK 1
SACL *
L82:
LDPK _c_db_n
ZALS _c_db_n
ADDK 1
MAR * ,AR0
SACL *
LT *
LACK 5
SACL *
MPYU *
PAC
ADDK 11
SACL *
LDPK _buffer
LT _buffer
MPYU * ,AR2
ZALS *
SPAC
BLZ L81
.line 68
;>>>> wr_crc_resp();
CALL _wr_crc_resp,AR1
.line 70
;>>>> break;
;>>>> case 0x21:
B L64
L83:
.line 73
;>>>> pcdata[0] = 6+buffer[0]*(9+4)+2;
LDPK _buffer
LT _buffer
MPYK 13
PAC
ADDK 8
LDPK _pcdata
SACL _pcdata
.line 74
;>>>> pcdata[1] = deviceAddr;
LDPK _deviceAddr
BLDD _deviceAddr,#_pcdata+1
.line 75
;>>>> pcdata[2] = 0x21;
LACK 33
LDPK _pcdata+2
SACL _pcdata+2
.line 76
;>>>> pcdata[3] = OK;
LACK 0
LDPK _pcdata+3
SACL _pcdata+3
.line 77
;>>>> pcdata[4] = c_tr_data;
LDPK _c_tr_data
BLDD _c_tr_data,#_pcdata+4
.line 78
;>>>> pcdata[5] = buffer[0];
LDPK _buffer
BLDD _buffer,#_pcdata+5
.line 79
;>>>> for(i=0;i<buffer[0]*(9+4);i++)
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL * ,AR0
LT _buffer
LACK 13
SACL *
MPYU *,AR2
ZALS *
SPAC
BGEZ L85
L84:
.line 81
;>>>> pcdata[6+i] = buffer[1+i];
LAC * ,AR0
ADLK _buffer+1,0
SACL *
LAR AR3,* ,AR2
LAC * ,AR0
ADLK _pcdata+6,0
SACL *
LAR AR4,* ,AR3
LAC * ,AR4
SACL * ,AR2
.line 79
LAC *
ADDK 1
SACL * ,AR0
LDPK _buffer
LT _buffer
LACK 13
SACL *
MPYU *,AR2
ZALS *
SPAC
BLZ L84
L85:
.line 83
;>>>> wr_crc_resp();
CALL _wr_crc_resp,AR1
.line 85
;>>>> break;
;>>>> case 0x22:
B L64
L86:
.line 88
;>>>> len = buffer[0]*(2+(c_db_n+1)*5+4)+6+2;
LDPK _c_db_n
LAC _c_db_n
ADDK 1
MAR * ,AR0
SACL *
LT *
MPYK 5
PAC
ADDK 6
SACL *
LDPK _buffer
LT _buffer
MPYU * ,AR2
PAC
ADDK 8
LARK AR2,2
MAR *0+
SACL * ,AR0
.line 90
;>>>> pcdata[0] = 6+buffer[0]*(2+(c_db_n+1)*5+4)+2;
LDPK _c_db_n
LAC _c_db_n
ADDK 1
SACL *
LT *
MPYK 5
PAC
ADDK 6
SACL *
LDPK _buffer
LT _buffer
MPYU * ,AR2
PAC
ADDK 8
LDPK _pcdata
SACL _pcdata
.line 91
;>>>> pcdata[1] = deviceAddr;
LDPK _deviceAddr
BLDD _deviceAddr,#_pcdata+1
.line 92
;>>>> pcdata[2] = 0x21;
LACK 33
LDPK _pcdata+2
SACL _pcdata+2
.line 93
;>>>> if(len<=0xff)pcdata[3] = OK;
ZALS *
SUBK 255
BGZ L87
LACK 0
LDPK _pcdata+3
SACL _pcdata+3
B L88
L87:
.line 94
;>>>> else pcdata[3] = 0x94;
LACK 148
LDPK _pcdata+3
SACL _pcdata+3
L88:
.line 95
;>>>> pcdata[4] = c_tr_data;
LDPK _c_tr_data
BLDD _c_tr_data,#_pcdata+4
.line 96
;>>>> pcdata[5] = buffer[0];
LDPK _buffer
BLDD _buffer,#_pcdata+5
.line 97
;>>>> for(i=0;i<buffer[0]*(2+(c_db_n+1)*5+4);i++)
LACK 0
MAR *-
SACL *
B L90
L89:
.line 99
;>>>> pcdata[6+i] = buffer[1+i];
LAC * ,AR0
ADLK _buffer+1,0
SACL *
LAR AR3,* ,AR2
LAC * ,AR0
ADLK _pcdata+6,0
SACL *
LAR AR4,* ,AR3
LAC * ,AR4
SACL * ,AR2
.line 97
LAC *
ADDK 1
SACL *
L90:
LDPK _c_db_n
ZALS _c_db_n
ADDK 1
MAR * ,AR0
SACL *
LT *
LACK 5
SACL *
MPYU *
PAC
ADDK 6
SACL *
LDPK _buffer
LT _buffer
MPYU * ,AR2
ZALS *
SPAC
BLZ L89
.line 101
;>>>> wr_crc_resp();
CALL _wr_crc_resp,AR1
.line 103
;>>>> break;
;>>>> case 0x23:
B L64
L91:
.line 106
;>>>> len = buffer[0]*(1+8+2+(c_db_n+1)*5+4)+6+2;
LDPK _c_db_n
LAC _c_db_n
ADDK 1
MAR * ,AR0
SACL *
LT *
MPYK 5
PAC
ADDK 15
SACL *
LDPK _buffer
LT _buffer
MPYU * ,AR2
PAC
ADDK 8
LARK AR2,2
MAR *0+
SACL * ,AR0
.line 107
;>>>> pcdata[0] = 6+buffer[0]*(9+2+(c_db_n+1)*5+4)+2;
LDPK _c_db_n
LAC _c_db_n
ADDK 1
SACL *
LT *
MPYK 5
PAC
ADDK 15
SACL *
LDPK _buffer
LT _buffer
MPYU * ,AR2
PAC
ADDK 8
LDPK _pcdata
SACL _pcdata
.line 108
;>>>> pcdata[1] = deviceAddr;
LDPK _deviceAddr
BLDD _deviceAddr,#_pcdata+1
.line 109
;>>>> pcdata[2] = 0x21;
LACK 33
LDPK _pcdata+2
SACL _pcdata+2
.line 110
;>>>> if(len<=0xff)pcdata[3] = OK;
ZALS *
SUBK 255
BGZ L92
LACK 0
LDPK _pcdata+3
SACL _pcdata+3
B L93
L92:
.line 111
;>>>> else pcdata[3] = 0x94;
LACK 148
LDPK _pcdata+3
SACL _pcdata+3
L93:
.line 112
;>>>> pcdata[4] = c_tr_data;
LDPK _c_tr_data
BLDD _c_tr_data,#_pcdata+4
.line 113
;>>>> pcdata[5] = buffer[0];
LDPK _buffer
BLDD _buffer,#_pcdata+5
.line 114
;>>>> for(i=0;i<buffer[0]*(9+2+(c_db_n+1)*5+4);i++)
LACK 0
MAR *-
SACL *
B L95
L94:
.line 116
;>>>> pcdata[6+i] = buffer[1+i];
LAC * ,AR0
ADLK _buffer+1,0
SACL *
LAR AR3,* ,AR2
LAC * ,AR0
ADLK _pcdata+6,0
SACL *
LAR AR4,* ,AR3
LAC * ,AR4
SACL * ,AR2
.line 114
LAC *
ADDK 1
SACL *
L95:
LDPK _c_db_n
ZALS _c_db_n
ADDK 1
MAR * ,AR0
SACL *
LT *
LACK 5
SACL *
MPYU *
PAC
ADDK 15
SACL *
LDPK _buffer
LT _buffer
MPYU * ,AR2
ZALS *
SPAC
BLZ L94
.line 118
;>>>> wr_crc_resp();
CALL _wr_crc_resp,AR1
.line 120
;>>>> break;
;>>>> else
B L64
L68:
.line 20
LDPK _c_tr_data
ZALS _c_tr_data
SUBK 1
BZ L69
SUBK 1
BZ L73
SUBK 1
BZ L78
SUBK 30
BZ L83
SUBK 1
BZ L86
SUBK 1
BZ L91
B L64
L65:
.line 126
;>>>> pcdata[0] = 6;
LACK 6
LDPK _pcdata
SACL _pcdata
.line 127
;>>>> pcdata[1] = deviceAddr;
LDPK _deviceAddr
BLDD _deviceAddr,#_pcdata+1
.line 128
;>>>> pcdata[2] = 0x32;
LACK 50
LDPK _pcdata+2
SACL _pcdata+2
.line 129
;>>>> pcdata[3] = 0x92;
LACK 146
LDPK _pcdata+3
SACL _pcdata+3
.line 130
;>>>> wr_crc_resp();
CALL _wr_crc_resp
L64:
EPI0_7:
.line 133
SBRK 4
LAR AR0,*-
PSHD *
RET
.endfunc 443,000000000H,3
.sym _clearBufferData,_clearBufferData,32,3,0
.func 444
;>>>> static void clearBufferData()
;>>>> uchar i;
******************************************************
* FUNCTION DEF : _clearBufferData
******************************************************
_clearBufferData:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,2
LAR AR0,*0+
.sym _i,1,12,1,16
.line 4
;>>>> if( (bufferInitFlag == 1) && (bufferReadFlag == 1) )
LDPK _bufferInitFlag
LAC _bufferInitFlag
SUBK 1
BNZ L97
LAC _bufferReadFlag
SUBK 1
BNZ L97
.line 6
;>>>> for(i=0;i<BuffLen;i++){buffer[i] = 0;}
LACK 0
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
ZALS *
SUBK 511
BGEZ L99
L98:
LAC * ,AR0
ADLK _buffer+0,0
SACL *
LAR AR3,* ,AR3
LACK 0
SACL * ,AR2
LAC *
ADDK 1
SACL *
ZALS *
SUBK 511
BLZ L98
L99:
.line 7
;>>>> bufferClrFlag = 1;
LACK 1
LDPK _bufferClrFlag
SACL _bufferClrFlag
.line 8
;>>>> bufferReadFlag = 0;
LACK 0
SACL _bufferReadFlag
.line 10
;>>>> if(pcdata[1] == deviceAddr)
LDPK _pcdata+1
LAC _pcdata+1
LDPK _deviceAddr
SUB _deviceAddr
BNZ L101
.line 12
;>>>> pcdata[0] = 6;
LACK 6
LDPK _pcdata
SACL _pcdata
.line 13
;>>>> pcdata[1] = deviceAddr;
LDPK _deviceAddr
BLDD _deviceAddr,#_pcdata+1
.line 14
;>>>> pcdata[2] = 0x32;
LACK 50
LDPK _pcdata+2
SACL _pcdata+2
.line 15
;>>>> pcdata[3] = OK;
LACK 0
LDPK _pcdata+3
SACL _pcdata+3
.line 16
;>>>> wr_crc_resp();
;>>>> else
CALL _wr_crc_resp,AR1
B L101
L97:
.line 21
;>>>> if(pcdata[1] == deviceAddr)
LDPK _pcdata+1
LAC _pcdata+1
LDPK _deviceAddr
SUB _deviceAddr
BNZ L101
.line 23
;>>>> pcdata[0] = 6;
LACK 6
LDPK _pcdata
SACL _pcdata
.line 24
;>>>> pcdata[1] = deviceAddr;
LDPK _deviceAddr
BLDD _deviceAddr,#_pcdata+1
.line 25
;>>>> pcdata[2] = 0x32;
LACK 50
LDPK _pcdata+2
SACL _pcdata+2
.line 26
;>>>> pcdata[3] = 0x92;
LACK 146
LDPK _pcdata+3
SACL _pcdata+3
.line 27
;>>>> wr_crc_resp();
CALL _wr_crc_resp
L101:
EPI0_8:
.line 30
MAR * ,AR1
SBRK 3
LAR AR0,*-
PSHD *
RET
.endfunc 473,000000000H,2
.sym _serialNum,_serialNum,32,3,0
.func 474
;>>>> static void serialNum( )
;>>>> uchar i,j;
;>>>> uchar num_card;
******************************************************
* FUNCTION DEF : _serialNum
******************************************************
_serialNum:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,4
LAR AR0,*0+
.sym _i,1,12,1,16
.sym _j,2,12,1,16
.sym _num_card,3,12,1,16
.line 6
;>>>> myInvOut();
CALL _myInvOut
.line 7
;>>>> num_card = labeldata[0];
MAR * ,AR2
LARK AR2,3
MAR *0+
BLKD #_labeldata,*
.line 8
;>>>> if( num_card != 0 )
LAC *
BZ L103
.line 10
;>>>> if(buffer[0] >= 0x0b) {return;}
LDPK _buffer
ZALS _buffer
SUBK 11
BGEZ EPI0_9
.line 11
;>>>> buffer[0] += num_card;
ADDK 11
ADD *
SACL _buffer
.line 12
;>>>> for(i=0;i<num_card;i++)
LACK 0
SBRK 2
SACL *
ZALS *
ADRK 2
SUBS *
BGEZ EPI0_9
L105:
.line 14
;>>>> buffer[(buffer[0]-num_card+i)*9 + 1] = 0x03; //tr-type
LDPK _buffer
LAC _buffer
SUB *
SBRK 2
ADD *+,AR0
SACL *
LT *
MPYK 9
PAC
ADLK _buffer+1,0
SACL *
LAR AR3,* ,AR3
LACK 3
SACL * ,AR2
.line 15
;>>>> for(j=0;j<8;j++)
LACK 0
SACL *
ZALS *
SUBK 8
BGEZ L108
MAR *-
RSXM ;;;
L107:
.line 17
;>>>> buffer[(buffer[0]-num_card+i)*9+2+j] = labeldata[i*10+3+j]; // copy uid
LT *+
MPYK 10
PAC
ADDK 3
ADLK _labeldata+0,0
ADD *+,AR0
SACL *
LAR AR3,* ,AR2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -