📄 at88153.src
字号:
; }
; 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 + -