⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 at88153.src

📁 mifarea卡程序mifarea卡程序mifarea卡程序
💻 SRC
📖 第 1 页 / 共 2 页
字号:
;     }
			; SOURCE LINE # 66
	MOV  	DPTR,#addr?146
	MOVX 	A,@DPTR
	ADD  	A,#08H
	MOVX 	@DPTR,A
	SJMP 	?C0007
?C0008:
;         
;     return i1;
			; SOURCE LINE # 68
	MOV  	DPTR,#i1?150
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	R6,#00H
; }
			; SOURCE LINE # 69
?C0011:
	RET  	
; END OF _At153WriteEE

; 
; int At153ReadFS(void)

	RSEG  ?PR?At153ReadFS?AT88153
At153ReadFS:
	USING	0
			; SOURCE LINE # 71
; {
			; SOURCE LINE # 72
;     int i;
;     
;     if(!At153Command(0xbe))
			; SOURCE LINE # 75
	MOV  	R7,#0BEH
	LCALL	_At153Command
	JC   	?C0017
;         return -1;
			; SOURCE LINE # 76
	MOV  	R6,#0FFH
	MOV  	R7,#0FFH
	RET  	
?C0017:
; 
;     i = IccSyncGetCharSendACK(0);
			; SOURCE LINE # 78
	CLR  	?IccSyncGetCharSendACK?BIT
	LCALL	IccSyncGetCharSendACK
	MOV  	DPTR,#i?251
	CLR  	A
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
;     IccSyncStop();
			; SOURCE LINE # 79
	LCALL	IccSyncStop
;     
;     return i;
			; SOURCE LINE # 81
	MOV  	DPTR,#i?251
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
; }
			; SOURCE LINE # 82
?C0018:
	RET  	
; END OF At153ReadFS

; 
; int At153WriteFS(unsigned char value)

	RSEG  ?PR?_At153WriteFS?AT88153
_At153WriteFS:
	USING	0
			; SOURCE LINE # 84
	MOV  	DPTR,#value?352
	MOV  	A,R7
	MOVX 	@DPTR,A
; {
			; SOURCE LINE # 85
;     if(!At153Command(0xba))
			; SOURCE LINE # 86
	MOV  	R7,#0BAH
	LCALL	_At153Command
	JC   	?C0019
;         return -1;
			; SOURCE LINE # 87
	MOV  	R6,#0FFH
	MOV  	R7,#0FFH
	RET  	
?C0019:
;     if(!IccSyncPutCharWaitACK(value & 0x07))
			; SOURCE LINE # 88
	MOV  	DPTR,#value?352
	MOVX 	A,@DPTR
	ANL  	A,#07H
	MOV  	R7,A
	LCALL	_IccSyncPutCharWaitACK
	JC   	?C0021
;         return -2;
			; SOURCE LINE # 89
	MOV  	R6,#0FFH
	MOV  	R7,#0FEH
	RET  	
?C0021:
;     IccSyncStop();
			; SOURCE LINE # 90
	LCALL	IccSyncStop
;     
;     return 0;
			; SOURCE LINE # 92
	CLR  	A
	MOV  	R6,A
	MOV  	R7,A
; }
			; SOURCE LINE # 93
?C0020:
	RET  	
; END OF _At153WriteFS

; 
; int At153VerifyPasswd(unsigned char rp, unsigned char *buf)

	RSEG  ?PR?_At153VerifyPasswd?AT88153
_At153VerifyPasswd:
	USING	0
			; SOURCE LINE # 95
	MOV  	DPTR,#buf?454
	MOV  	A,R3
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R2
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R1
	MOVX 	@DPTR,A
	MOV  	DPTR,#rp?453
	MOV  	A,R7
	MOVX 	@DPTR,A
; {
			; SOURCE LINE # 96
;     unsigned char i, j, pac, zone;
;     
;     rp &= 0x03;
			; SOURCE LINE # 99
	ANL  	A,#03H
	MOVX 	@DPTR,A
;     zone = rp << 2;
			; SOURCE LINE # 100
	MOVX 	A,@DPTR
	ADD  	A,ACC
	ADD  	A,ACC
	MOV  	DPTR,#zone?458
	MOVX 	@DPTR,A
;     zone |= 0xb3;
			; SOURCE LINE # 101
	ORL  	A,#0B3H
	MOVX 	@DPTR,A
;     
;     for(i=0; i<2; i++)
			; SOURCE LINE # 103
	CLR  	A
	MOV  	DPTR,#i?455
	MOVX 	@DPTR,A
?C0022:
;     {
			; SOURCE LINE # 104
;         if(!At153Command(zone))
			; SOURCE LINE # 105
	MOV  	DPTR,#zone?458
	MOVX 	A,@DPTR
	MOV  	R7,A
	LCALL	_At153Command
	JC   	?C0025
;             return -1;
			; SOURCE LINE # 106
	MOV  	R6,#0FFH
	MOV  	R7,#0FFH
	RET  	
?C0025:
; 
;         for(j=0; j<3; j++)
			; SOURCE LINE # 108
	CLR  	A
	MOV  	DPTR,#j?456
	MOVX 	@DPTR,A
?C0027:
	MOV  	DPTR,#j?456
	MOVX 	A,@DPTR
	MOV  	R7,A
	CLR  	C
	SUBB 	A,#03H
	JNC  	?C0028
;         {
			; SOURCE LINE # 109
;             if(!IccSyncPutCharWaitACK(buf[j]))
			; SOURCE LINE # 110
	MOV  	DPTR,#buf?454
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	MOV  	DPL,R7
	MOV  	DPH,#00H
	LCALL	?C?CLDOPTR
	MOV  	R7,A
	LCALL	_IccSyncPutCharWaitACK
	JC   	?C0029
;                 return -2;
			; SOURCE LINE # 111
	MOV  	R6,#0FFH
	MOV  	R7,#0FEH
	RET  	
;         }
			; SOURCE LINE # 112
?C0029:
	MOV  	DPTR,#j?456
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
	SJMP 	?C0027
?C0028:
;         IccSyncStop();
			; SOURCE LINE # 113
	LCALL	IccSyncStop
;         
;         // polling ACK with command 0xbd to read PAC in cfg zone
;         if(At153ReadEE(3, PACAddrs[rp], &pac, 1) < 0)
			; SOURCE LINE # 116
	MOV  	DPTR,#rp?453
	MOVX 	A,@DPTR
	ADD  	A,#LOW (PACAddrs)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (PACAddrs)
	MOV  	DPH,A
	MOVX 	A,@DPTR
	MOV  	R5,A
	MOV  	R3,#01H
	MOV  	R2,#HIGH (pac?457)
	MOV  	R1,#LOW (pac?457)
	MOV  	DPTR,#?_At153ReadEE?BYTE+05H
	MOV  	A,#01H
	MOVX 	@DPTR,A
	MOV  	R7,#03H
	LCALL	_At153ReadEE
	CLR  	C
	MOV  	A,R6
	XRL  	A,#080H
	SUBB 	A,#080H
	JNC  	?C0024
;             return -3;
			; SOURCE LINE # 117
	MOV  	R6,#0FFH
	MOV  	R7,#0FDH
	RET  	
;     }
			; SOURCE LINE # 118
?C0024:
	MOV  	DPTR,#i?455
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
	MOVX 	A,@DPTR
	CLR  	C
	SUBB 	A,#02H
	JC   	?C0022
?C0023:
;     
;     return pac;
			; SOURCE LINE # 120
	MOV  	DPTR,#pac?457
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	R6,#00H
; }
			; SOURCE LINE # 121
?C0026:
	RET  	
; END OF _At153VerifyPasswd

; 
; int At153InitAuth(unsigned char *buf)

	RSEG  ?PR?_At153InitAuth?AT88153
_At153InitAuth:
	USING	0
			; SOURCE LINE # 123
	MOV  	DPTR,#buf?559
	MOV  	A,R3
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R2
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R1
	MOVX 	@DPTR,A
; {
			; SOURCE LINE # 124
;     unsigned char i;
;     
;     if(!At153Command(0xb2))
			; SOURCE LINE # 127
	MOV  	R7,#0B2H
	LCALL	_At153Command
	JC   	?C0032
;         return -1;
			; SOURCE LINE # 128
	MOV  	R6,#0FFH
	MOV  	R7,#0FFH
	RET  	
?C0032:
;         
;     for(i=0; i<8; i++)
			; SOURCE LINE # 130
	CLR  	A
	MOV  	DPTR,#i?560
	MOVX 	@DPTR,A
?C0034:
	MOV  	DPTR,#i?560
	MOVX 	A,@DPTR
	MOV  	R7,A
	CLR  	C
	SUBB 	A,#08H
	JNC  	?C0035
;     {
			; SOURCE LINE # 131
;         if(!IccSyncPutCharWaitACK(buf[i]))
			; SOURCE LINE # 132
	MOV  	DPTR,#buf?559
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	MOV  	DPL,R7
	MOV  	DPH,#00H
	LCALL	?C?CLDOPTR
	MOV  	R7,A
	LCALL	_IccSyncPutCharWaitACK
	JC   	?C0036
;             return -2;
			; SOURCE LINE # 133
	MOV  	R6,#0FFH
	MOV  	R7,#0FEH
	RET  	
;     }
			; SOURCE LINE # 134
?C0036:
	MOV  	DPTR,#i?560
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
	SJMP 	?C0034
?C0035:
;     IccSyncStop();
			; SOURCE LINE # 135
	LCALL	IccSyncStop
;     
;     return 0;
			; SOURCE LINE # 137
	CLR  	A
	MOV  	R6,A
	MOV  	R7,A
; }
			; SOURCE LINE # 138
?C0033:
	RET  	
; END OF _At153InitAuth

; 
; int At153VerifyAuth(unsigned char *buf)

	RSEG  ?PR?_At153VerifyAuth?AT88153
_At153VerifyAuth:
	USING	0
			; SOURCE LINE # 140
	MOV  	DPTR,#buf?661
	MOV  	A,R3
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R2
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R1
	MOVX 	@DPTR,A
; {
			; SOURCE LINE # 141
;     unsigned char i, aac;
;     
;     if(!At153Command(0xb6))
			; SOURCE LINE # 144
	MOV  	R7,#0B6H
	LCALL	_At153Command
	JC   	?C0038
;         return -1;
			; SOURCE LINE # 145
	MOV  	R6,#0FFH
	MOV  	R7,#0FFH
	RET  	
?C0038:
;         
;     for(i=0; i<8; i++)
			; SOURCE LINE # 147
	CLR  	A
	MOV  	DPTR,#i?662
	MOVX 	@DPTR,A
?C0040:
	MOV  	DPTR,#i?662
	MOVX 	A,@DPTR
	MOV  	R7,A
	CLR  	C
	SUBB 	A,#08H
	JNC  	?C0041
;     {
			; SOURCE LINE # 148
;         if(!IccSyncPutCharWaitACK(buf[i]))
			; SOURCE LINE # 149
	MOV  	DPTR,#buf?661
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	MOV  	DPL,R7
	MOV  	DPH,#00H
	LCALL	?C?CLDOPTR
	MOV  	R7,A
	LCALL	_IccSyncPutCharWaitACK
	JC   	?C0042
;             return -2;
			; SOURCE LINE # 150
	MOV  	R6,#0FFH
	MOV  	R7,#0FEH
	RET  	
;     }
			; SOURCE LINE # 151
?C0042:
	MOV  	DPTR,#i?662
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
	SJMP 	?C0040
?C0041:
;     IccSyncStop();
			; SOURCE LINE # 152
	LCALL	IccSyncStop
;     
;     // read AAC
;     if(At153ReadEE(3, 0x20, &aac, 1) < 0)
			; SOURCE LINE # 155
	MOV  	R3,#01H
	MOV  	R2,#HIGH (aac?663)
	MOV  	R1,#LOW (aac?663)
	MOV  	DPTR,#?_At153ReadEE?BYTE+05H
	MOV  	A,#01H
	MOVX 	@DPTR,A
	MOV  	R5,#020H
	MOV  	R7,#03H
	LCALL	_At153ReadEE
	CLR  	C
	MOV  	A,R6
	XRL  	A,#080H
	SUBB 	A,#080H
	JNC  	?C0044
;         return -3;
			; SOURCE LINE # 156
	MOV  	R6,#0FFH
	MOV  	R7,#0FDH
	RET  	
?C0044:
;     
;     return aac;
			; SOURCE LINE # 158
	MOV  	DPTR,#aac?663
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	R6,#00H
; }
			; SOURCE LINE # 159
?C0039:
	RET  	
; END OF _At153VerifyAuth

; 
; // polling ACK with command "cmd" and send "cmd"
; static bit At153Command(unsigned char cmd)

	RSEG  ?PR?_At153Command?AT88153
_At153Command:
	USING	0
			; SOURCE LINE # 162
	MOV  	DPTR,#cmd?764
	MOV  	A,R7
	MOVX 	@DPTR,A
; {
			; SOURCE LINE # 163
;     unsigned int starttime;
;     
;     starttime = GetTickCount();
			; SOURCE LINE # 166
	LCALL	GetTickCount
	MOV  	DPTR,#starttime?765
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
?C0045:
;     while(1)
			; SOURCE LINE # 167
;     {
			; SOURCE LINE # 168
;         IccSyncStart();
			; SOURCE LINE # 169
	LCALL	IccSyncStart
;         if(!IccSyncPutCharWaitACK(cmd))
			; SOURCE LINE # 170
	MOV  	DPTR,#cmd?764
	MOVX 	A,@DPTR
	MOV  	R7,A
	LCALL	_IccSyncPutCharWaitACK
	JC   	?C0047
;         {
			; SOURCE LINE # 171
;             IccSyncStop();
			; SOURCE LINE # 172
	LCALL	IccSyncStop
;             if(GetTickCount() - starttime >= POLL_ACK_TMO)
			; SOURCE LINE # 173
	LCALL	GetTickCount
	MOV  	DPTR,#starttime?765
	MOVX 	A,@DPTR
	MOV  	R4,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R5,A
	CLR  	C
	MOV  	A,R7
	SUBB 	A,R5
	MOV  	R7,A
	MOV  	A,R6
	SUBB 	A,R4
	MOV  	R6,A
	CLR  	C
	MOV  	A,R7
	SUBB 	A,#064H
	MOV  	A,R6
	SUBB 	A,#00H
	JC   	?C0045
;                 return 0;
			; SOURCE LINE # 174
	RET  	
;         }
			; SOURCE LINE # 175
?C0047:
;         else
;         {
			; SOURCE LINE # 177
;             return 1;
			; SOURCE LINE # 178
	SETB 	C
;         }
			; SOURCE LINE # 179
;     }
			; SOURCE LINE # 180
; }			; SOURCE LINE # 181
?C0049:
	RET  	
; END OF _At153Command

	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -