?? henhao.lst
字號(hào):
0109 600C 179 JZ JUDGE_6 ;Ye
s,return
010B 180 JUDGE_5:
010B E531 181 MOV A,gByteCounter
010D 6408 182 XRL A,#08H ;Ei
ght byte?
010F 7006 183 JNZ JUDGE_6 ;No
,return
0111 12017D 184 LCALL PROCESS_EIGHTBYTE ;Yes,find the scan
code
0114 020119 185 LJMP JUDGE_7
0117 186 JUDGE_6:
0117 74FF 187 MOV A,#0FFH
0119 188 JUDGE_7:
0119 22 189 RET
190 ;*****************************************
011A 191 PROCESS_ONEBYTE:
011A E550 192 MOV A,RestoreBuffer
011C 6477 193 XRL A,#77H ;Is the key NumLock key?
011E 7002 194 JNZ LED_1
0120 B201 195 CPL blnNumLockKey ;Yes,setting the symbol of NumLock
key
0122 196 LED_1:
0122 E550 197 MOV A,RestoreBuffer
0124 6458 198 XRL A,#58H ;Is the key CapsLock Key
0126 7002 199 JNZ LED_2
0128 B202 200 CPL blnCapsLockKey ;Yes,setting the symbol of CapLock
key
012A 201 LED_2:
012A E550 202 MOV A,RestoreBuffer
012C 647E 203 XRL A,#7EH ;Is the key ScrollLock Key
012E 7002 204 JNZ SHIFT_1
0130 B200 205 CPL bitStrollLockKey ;Yes,setting the symbol of
ScrollLock key
0132 206 SHIFT_1:
0132 E550 207 MOV A,RestoreBuffer
0134 6412 208 XRL A,#12H ;Is the key left Shift key
0136 6006 209 JZ SHIFT_2
0138 E550 210 MOV A,RestoreBuffer
013A 6459 211 XRL A,#59H ;Is the key right S
hift key
013C 7002 212 JNZ ONEBYTE_1
013E 213 SHIFT_2:
013E D203 214 SETB blnShiftKeyDown ;Setting the symbol of Shif
t key
0140 215 ONEBYTE_1:
0140 AF50 216 MOV R7,RestoreBuffer
0142 EF 217 MOV A,R7 ;Br
eak out the data to A
0143 C3 218 CLR C ;Clean the C
0144 9490 219 SUBB A,#90H ; Is the data
0146 5006 220 JNC ONEBYTE_2
0148 12023A 221 LCALL FINDSCANCODE
014B F532 222 MOV CodeReg_1,A
014D 22 223 RET
A51 MACRO ASSEMBLER HENHAO 09/25/2008 16:42:26 PAGE 5
014E 224 ONEBYTE_2:
014E 74FF 225 MOV A,#0FFH
0150 22 226 RET
227 ;**********************************
0151 228 PROCESS_TWOBYTE:
0151 E550 229 MOV A,RestoreBuffer
0153 64F0 230 XRL A,#0F0H ;Is the first byte 0F0H?
0155 600F 231 JZ FIRSTBYTEISF0
0157 E550 232 MOV A,RestoreBuffer
0159 64E0 233 XRL A,#0E0H ;Is the first byte 0E0H?
015B 6003 234 JZ TWOBYTE_1
015D 74FF 235 MOV A,#0FFH
015F 22 236 RET
237 ;-------------------------------------
238 ;The progress to find the scan code for multibyte
0160 239 TWOBYTE_1:
0160 7951 240 MOV R1,#RestoreBuffer+1
0162 120186 241 LCALL MOREBYTESCAN
0165 22 242 RET
243 ;-------------------------------
244 ;The first byte is 0F0H
0166 245 FIRSTBYTEISF0:
0166 E551 246 MOV A,RestoreBuffer+1
0168 6412 247 XRL A,#12H
016A 6006 248 JZ SHIFT_3
016C E551 249 MOV A,RestoreBuffer+1
016E 6459 250 XRL A,#59H
0170 7002 251 JNZ F0_1
0172 252 SHIFT_3:
0172 C203 253 CLR blnShiftKeyDown
0174 254 F0_1:
0174 74FF 255 MOV A,#0FFH
0176 22 256 RET
257 ;*****************************************
0177 258 PROCESS_FOURBYTE:
0177 7953 259 MOV R1,#RestoreBuffer+3
0179 120186 260 LCALL MOREBYTESCAN
017C 22 261 RET
262 ;******************************************
017D 263 PROCESS_EIGHTBYTE:
017D 753245 264 MOV CodeReg_1,#69
0180 753300 265 MOV CodeReg_2,#0
0183 74FE 266 MOV A,#0FEH
0185 22 267 RET
268 ;--------------------------------------------------
0186 269 MOREBYTESCAN:
0186 E7 270 MOV A,@R1
0187 9001AE 271 MOV DPTR,#TwoByteKeyTable
018A 7E00 272 MOV R6,#0
018C FF 273 MOV R7,A
018D 274 STMP3:
018D EE 275 MOV A,R6
018E 93 276 MOVC A,@A+DPTR
018F 601A 277 JZ STMP2
0191 6F 278 XRL A,R7
0192 6003 279 JZ STMP1
0194 0E 280 INC R6
0195 80F6 281 SJMP STMP3
0197 282 STMP1:
0197 EE 283 MOV A,R6
0198 1201C1 284 LCALL FindTwoByteKeyScanCode
019B B76900 285 CJNE @R1,#69H,STMP4
019E 286 STMP4:
019E 5003 287 JNC STMP5
01A0 F532 288 MOV CodeReg_1,A
01A2 22 289 RET
A51 MACRO ASSEMBLER HENHAO 09/25/2008 16:42:26 PAGE 6
01A3 290 STMP5:
01A3 F532 291 MOV CodeReg_1,A
01A5 753300 292 MOV CodeReg_2,#0
01A8 74FE 293 MOV A,#0FEH
01AA 22 294 RET
01AB 295 STMP2:
01AB 74FF 296 MOV A,#0FFH
01AD 22 297 RET
01AE 298 TwoByteKeyTable:
01AE 11141F27 299 DB 11H,14H,1FH,27H,2FH,4AH,5AH,69H,6BH,6CH,70H,71H,72H,74H,75H,7AH,7CH,7DH,0H
01B2 2F4A5A69
01B6 6B6C7071
01BA 7274757A
01BE 7C7D00
01C1 300 FindTwoByteKeyScanCode:
01C1 04 301 INC A
01C2 83 302 MOVC A,@A+PC
01C3 22 303 RET
01C4 381D5B5C 304 DB 38H,1DH,5BH,5CH,5DH,35H,1CH,4FH,4BH,47H,52H,53H,50H,4DH,48H,51H,37H,49H,0FFH
01C8 5D351C4F
01CC 4B475253
01D0 504D4851
01D4 3749FF
305 ;*********************************************
306 ;The Progress of resume
01D7 307 RESUME:
01D7 7950 308 MOV R1,#RestoreBuffer
01D9 120232 309 LCALL CLR_BUFFER ;Clean the restore buffer
01DC E530 310 MOV A,gBitCounter
01DE 75F00B 311 MOV B,#11
01E1 84 312 DIV AB
01E2 FA 313 MOV R2,A
01E3 2450 314 ADD A,#RestoreBuffer
01E5 FE 315 MOV R6,A
01E6 8A31 316 MOV gByteCounter,R2
01E8 317 RESUME_LOOP1:
01E8 12021C 318 LCALL RRC_READ
01EB 502C 319 JNC ERROR
01ED 12021C 320 LCALL RRC_READ
01F0 9208 321 MOV bitParityBak,C
01F2 7D08 322 MOV R5,#8
01F4 323 RESUME_LOOP2:
01F4 12021C 324 LCALL RRC_READ
01F7 7950 325 MOV R1,#RestoreBuffer
01F9 AC31 326 MOV R4,gByteCounter
01FB 327 RLC_RESTORE_LOOP: ;restore a bit
01FB E7 328 MOV A,@R1
01FC 33 329 RLC A
01FD F7 330 MOV @R1,A
01FE 09 331 INC R1
01FF DCFA 332 DJNZ R4,RLC_RESTORE_LOOP
0201 DDF1 333 DJNZ R5,RESUME_LOOP2
334 ;check the receive parity error
335 ;if (paritybit==P) go error
0203 E550 336 MOV A,RestoreBuffer
0205 A2D0 337 MOV C,PSW.0
0207 8208 338 ANL C,BitParityBak
0209 400E 339 JC ERROR
020B A2D0 340 MOV C,PSW.0
020D 7208 341 ORL C,BitParityBak
020F 5008 342 JNC ERROR
0211 12021C 343 LCALL RRC_READ
0214 4003 344 JC ERROR
0216 DAD0 345 DJNZ R2,RESUME_LOOP1
0218 22 346 RET
A51 MACRO ASSEMBLER HENHAO 09/25/2008 16:42:26 PAGE 7
0219 347 ERROR:
0219 74FF 348 MOV A,#0FFH
021B 22 349 RET
350 ;------------------------------------------------
351 ;The progress to break out a bit
021C 352 RRC_READ:
021C 794B 353 MOV R1,#ReceiveBuffer+11
021E 7C0C 354 MOV R4,#12
0220 355 RRC_READ_LOOP:
0220 E7 356 MOV A,@R1
0221 13 357 RRC A
0222 F7 358 MOV @R1,A
0223 19 359 DEC R1
0224 DCFA 360 DJNZ R4,RRC_READ_LOOP
0226 22 361 RET
362 ;---------------------------------------------------
363 ;The progress to restore a bit
0227 364 RLC_STORE:
0227 7F0C 365 MOV R7,#12
0229 7840 366 MOV R0,#ReceiveBuffer
022B 367 RLC_STORE_LOOP:
022B E6 368 MOV A,@R0
022C 33 369 RLC A
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -