📄 usb_oper.lst
字号:
305 0097 1085 SZ ACC
306 0098 2800 R JMP HANDLE_REPORT_DESCRIPTOR
307 0099
308 0099 0700 MOV A, ID0
309 009A 1585 DEC ACC
310 009B
311 009B 2800 R JMP DESCR_SWITCH
312 009C
313 009C HANDLE_REPORT_DESCRIPTOR:
314 009C
315 009C 0700 MOV A, ID0
316 009D 0E0F AND A, 00FH
317 009E 0B06 ADD A, 006H
318 009F 1481 INC MP0
319 00A0 0300 ADD A, ID0
320 00A1
321 00A1 DESCR_SWITCH:
322 00A1 ;SZ USB_CONFIGURATION_DONE
323 00A1 ;CLR [0EH].4
324 00A1 0386 ADDM A, PCL
325 00A2 2800 R JMP GET_DEVICE_DESCR ;1:GET DEVICE DESCRIPTOR
326 00A3 2800 R JMP GET_CONFIGURATION_DESCR ;2:GET CONFIGURATION DESCRIPTOR
327 00A4 2800 R JMP GET_STRING_DESCR ;3:GET STRING DESCRIPTOR
328 00A5 2800 R JMP EXIT_EP0_OUTPACKET_ANALY ;4:GET INTERFACE DESCRIPTOR
329 00A6 2800 R JMP EXIT_EP0_OUTPACKET_ANALY ;5:GET ENDPOINT DESCRIPTOR
330 00A7 2800 R JMP EXIT_EP0_OUTPACKET_ANALY ;6:GET DEVICE QUALIFIER DESCRIPTOR (NOT SUPPORTED)
331 00A8 2800 R JMP EXIT_EP0_OUTPACKET_ANALY ;7:GET OTHER SPEED CONFIGURATION DESCRIPTOR (NOT SUPPORTED)
332 00A9 2800 R JMP EXIT_EP0_OUTPACKET_ANALY ;8:GET INTERFACEPOWER DESCRIPTOR (NOT SUPPORTED)
333 00AA 2800 R JMP GET_KB_REPORT_DESCR ;9:GET KEYBOARD REPORT DESCRIPTOR
334 00AB 2800 R JMP GET_MICE_REPORT_DESCR ;A:GET MOUSE REPORT DESCRIPTOR
335 00AC
336 00AC GET_DEVICE_DESCR:
337 00AC 3C00 R SZ USB_CONFIGURATION_DONE
338 00AD 320E SET [0EH].4
339 00AE 1481 INC MP0
340 00AF 1481 INC MP0
341 00B0 1481 INC MP0
342 00B1
343 00B1 340A CLR CARRY
344 00B2 0700 MOV A, ID0
345 00B3 0080 R MOV BYTE_REST, A
346 00B4 0F12 MOV A, DEVICE_DESCR_LENGTH
347 00B5 0280 R SUBM A, BYTE_REST
348 00B6 3C0A SZ CARRY
349 00B7 2800 R JMP TAKE_ID0_DEVICE_DESCR
350 00B8
351 00B8 0080 R MOV BYTE_REST, A
352 00B9 2800 R JMP DEVICE_DESCR_NEXT
353 00BA
354 00BA TAKE_ID0_DEVICE_DESCR:
355 00BA 0700 MOV A, ID0
356 00BB 0080 R MOV BYTE_REST, A
357 00BC
"File: USB_OPER.ASM Holtek Cross-Assembler Version 2.86 Page 7
358 00BC DEVICE_DESCR_NEXT:
359 00BC 1F00 R CLR BYTE_POS
360 00BD 0F00 MOV A, LOW DEVICED
361 00BE 0080 R MOV BYTE_SADDR, A
362 00BF 0087 MOV TBLP, A
363 00C0 2000 R CALL WRITE_FIFO0
364 00C1
365 00C1
366 00C1 2800 R JMP EXIT_EP0_OUTPACKET_ANALY
367 00C2
368 00C2 GET_CONFIGURATION_DESCR:
369 00C2 3C00 R SZ USB_CONFIGURATION_DONE
370 00C3 320E SET [0EH].4
371 00C4 1481 INC MP0
372 00C5 1481 INC MP0
373 00C6 1481 INC MP0
374 00C7
375 00C7 0700 MOV A, ID0
376 00C8 0080 R MOV BYTE_REST, A
377 00C9
378 00C9 0FFF MOV A, 0FFH
379 00CA 0400 R XOR A, BYTE_REST
380 00CB 1085 SZ ACC
381 00CC 2800 R JMP CONFIGURATION_DESCR_NEXT
382 00CD
383 00CD 0F3B MOV A, ALL_CONFIGURATION_LENGTH
384 00CE 0080 R MOV BYTE_REST, A
385 00CF
386 00CF CONFIGURATION_DESCR_NEXT:
387 00CF 1F00 R CLR BYTE_POS
388 00D0 0F09 MOV A, LOW CONFIGURATIOND
389 00D1 0080 R MOV BYTE_SADDR, A
390 00D2 0087 MOV TBLP, A
391 00D3 2000 R CALL WRITE_FIFO0
392 00D4
393 00D4
394 00D4 2800 R JMP EXIT_EP0_OUTPACKET_ANALY
395 00D5
396 00D5 GET_STRING_DESCR:
397 00D5 3C00 R SZ USB_CONFIGURATION_DONE
398 00D6 320E SET [0EH].4
399 00D7 1581 DEC MP0
400 00D8
401 00D8 0700 MOV A, ID0
402 00D9 1085 SZ ACC
403 00DA 2800 R JMP SEND_PRODUCTS
404 00DB
405 00DB 0F04 MOV A, LANGID_LENGTH
406 00DC 0080 R MOV BYTE_REST, A
407 00DD 0F94 MOV A, LOW LANGID
408 00DE 0087 MOV TBLP, A
409 00DF 2800 R JMP STRING_DESCR_NEXT
410 00E0
411 00E0 SEND_PRODUCTS:
412 00E0 0F1A MOV A, STRING_DESCR_LENGTH
413 00E1 0080 R MOV BYTE_REST, A
414 00E2 0F9D MOV A, LOW PRODUCTS
415 00E3 0087 MOV TBLP, A
416 00E4
417 00E4 STRING_DESCR_NEXT:
"File: USB_OPER.ASM Holtek Cross-Assembler Version 2.86 Page 8
418 00E4 1F00 R CLR BYTE_POS
419 00E5 0080 R MOV BYTE_SADDR, A
420 00E6 2000 R CALL WRITE_FIFO0
421 00E7
422 00E7
423 00E7 2800 R JMP EXIT_EP0_OUTPACKET_ANALY
424 00E8
425 00E8 GET_KB_REPORT_DESCR:
426 00E8 3C00 R SZ USB_CONFIGURATION_DONE
427 00E9 320E SET [0EH].4
428 00EA 1481 INC MP0
429 00EB 1481 INC MP0
430 00EC
431 00EC 340A CLR CARRY
432 00ED 0700 MOV A, ID0
433 00EE 0080 R MOV BYTE_REST, A
434 00EF 0F3F MOV A, KB_REPORT_DESCR_LENGTH
435 00F0 0280 R SUBM A, BYTE_REST
436 00F1 3C0A SZ CARRY
437 00F2 2800 R JMP TAKE_ID0_KBREPORT_DESCR
438 00F3
439 00F3 0080 R MOV BYTE_REST, A
440 00F4 2800 R JMP KBREPORT_DESCR_NEXT
441 00F5
442 00F5 TAKE_ID0_KBREPORT_DESCR:
443 00F5 0700 MOV A, ID0
444 00F6 0080 R MOV BYTE_REST, A
445 00F7
446 00F7 KBREPORT_DESCR_NEXT:
447 00F7 1F00 R CLR BYTE_POS
448 00F8 0F2A MOV A, LOW KBREPORTD
449 00F9 0080 R MOV BYTE_SADDR, A
450 00FA 0087 MOV TBLP, A
451 00FB 2000 R CALL WRITE_FIFO0
452 00FC
453 00FC 2800 R JMP EXIT_EP0_OUTPACKET_ANALY
454 00FD
455 00FD GET_MICE_REPORT_DESCR:
456 00FD 3C00 R SZ USB_CONFIGURATION_DONE
457 00FE 320E SET [0EH].4
458 00FF 1481 INC MP0
459 0100 1481 INC MP0
460 0101
461 0101 340A CLR CARRY
462 0102 0700 MOV A, ID0
463 0103 0080 R MOV BYTE_REST, A
464 0104 0F81 MOV A, MICE_REPORT_DESCR_LENGTH
465 0105 0280 R SUBM A, BYTE_REST
466 0106 3C0A SZ CARRY
467 0107 2800 R JMP TAKE_ID0_MICEREPORT_DESCR
468 0108
469 0108 0080 R MOV BYTE_REST, A
470 0109 2800 R JMP MICEREPORT_DESCR_NEXT
471 010A
472 010A TAKE_ID0_MICEREPORT_DESCR:
473 010A 0700 MOV A, ID0
474 010B 0080 R MOV BYTE_REST, A
475 010C
476 010C MICEREPORT_DESCR_NEXT:
477 010C 1F00 R CLR BYTE_POS
"File: USB_OPER.ASM Holtek Cross-Assembler Version 2.86 Page 9
478 010D 0F4B MOV A, LOW MICEREPORTD
479 010E 0080 R MOV BYTE_SADDR, A
480 010F 0087 MOV TBLP, A
481 0110 2000 R CALL WRITE_FIFO0
482 0111
483 0111 3000 R SET USB_CONFIGURATION_DONE
484 0112 ;SNZ USB_CONFIGURATION_DONE
485 0112 ;CALL WRITE_FIFO2
486 0112
487 0112 2800 R JMP EXIT_EP0_OUTPACKET_ANALY
488 0113
489 0113
490 0113 NEXT_CHECK_EP0_0:
491 0113 0700 MOV A, ID0
492 0114 0E60 AND A, 060H
493 0115
494 0115 0C20 XOR A, 020H
495 0116 1085 SZ ACC
496 0117 2800 R JMP NEXT_CHECK_EP0_1
497 0118
498 0118 ;THIS IS THE HOST-TO-DEVICE, CLASS COMMAND
499 0118
500 0118 ;CLASS COMMAND 0X0A
501 0118 1481 INC MP0
502 0119 0F0A MOV A, 00AH
503 011A 0400 XOR A, ID0
504 011B 1085 SZ ACC
505 011C 2800 R JMP CHECK_IF_OTHER_210
506 011D 2800 R JMP CLASS_0_LEN
507 011E
508 011E CHECK_IF_OTHER_210:
509 011E ;CLASS COMMAND 0X0B
510 011E 0F0B MOV A, 00BH
511 011F 0400 XOR A, ID0
512 0120 1085 SZ ACC
513 0121 2800 R JMP CHECK_IF_OTHER_211
514 0122
515 0122 1481 INC MP0
516 0123 ;INC MP0
517 0123 ;INC MP0
518 0123 0700 MOV A, ID0
519 0124
520 0124 3000 R SET NOT_BOOT_TYPE
521 0125 3805 SNZ ACC.0
522 0126 3400 R CLR NOT_BOOT_TYPE
523 0127
524 0127 2800 R JMP CLASS_0_LEN
525 0128
526 0128 CHECK_IF_OTHER_211:
527 0128 ;CLASS COMMAND 0X09
528 0128 0F09 MOV A, 009H
529 0129 0400 XOR A, ID0
530 012A 1085 SZ ACC
531 012B 2800 R JMP NOT_SUPPORTED_CLASS_COMMAND
532 012C
533 012C 3000 R SET ZERO_IN_TOKEN_REQUIRED
534 012D 2800 R JMP NOT_SUPPORTED_CLASS_COMMAND
535 012E
536 012E CLASS_0_LEN:
537 012E 2000 R CALL WRITE_LEN0_TOFIFO0
"File: USB_OPER.ASM Holtek Cross-Assembler Version 2.86 Page 10
538 012F
539 012F NOT_SUPPORTED_CLASS_COMMAND:
540 012F
541 012F 2800 R JMP EXIT_EP0_OUTPACKET_ANALY
542 0130
543 0130 NEXT_CHECK_EP0_1:
544 0130 0700 MOV A, ID0
545 0131 0E60 AND A, 060H
546 0132
547 0132 0C40 XOR A, 040H
548 0133 1085 SZ ACC
549 0134 2800 R JMP EXIT_EP0_OUTPACKET_ANALY
550 0135
551 0135 ;THIS IS THE HOST-TO-DEVICE, VENDOR COMMAND
552 0135
553 0135 EXIT_EP0_OUTPACKET_ANALY:
554 0135
555 0135 0003 RET
556 0136
557 0136 EP0_INHANDLE:
558 0136 1080 R SZ BYTE_REST
559 0137 2000 R CALL WRITE_FIFO0
560 0138
561 0138 0F45 MOV A, SIE
562 0139 0083 MOV MP1, A
563 013A
564 013A 3582 CLR ID1.IN
565 013B
566 013B 0003 RET
567 013C
568 013C CHECK_EP0_FIFO_READY:
569 013C 3400 R CLR EP0_READY
570 013D 0F46 MOV A, MISC
571 013E 0083 MOV MP1, A
572 013F 0FE0 MOV A, 0E0H
573 0140 0682 ANDM A, ID1
574 0141
575 0141 2000 R CALL USB_MISC_DELAY
576 0142
577 0142 3002 SET ID1.REQ
578 0143
579 0143 2000 R CALL USB_MISC_DELAY
580 0144
581 0144 3F02 SZ ID1.READY
582 0145 3000 R SET EP0_READY
583 0146
584 0146 2000 R CALL USB_MISC_DELAY
585 0147 3402 CLR ID1.REQ
586 0148 0003 RET
587 0149
588 0149 READ_FIFO0:
589 0149 0F08 MOV A, 8
590 014A 0080 R MOV USB_LCOUNT,A
591 014B
592 014B RFIFO0:
593 014B 0F90 MOV A, EP0_BUFF
594 014C 0081 MOV MP0, A
595 014D
596 014D 0F46 MOV A, MISC
597 014E 0083 MOV MP1, A
"File: USB_OPER.ASM Holtek Cross-Assembler Version 2.86 Page 11
598 014F 0FE0 MOV A, 0E0H
599 0150 0682 ANDM A, ID1
600 0151
601 0151 2000 R CALL USB_MISC_DELAY
602 0152
603 0152 3002 SET ID1.REQ
604 0153
605 0153 RFIFO0LOOP:
606 0153 0F46 MOV A, MISC
607 0154 0083 MOV MP1, A
608 0155
609 0155 2000 R CALL USB_MISC_DELAY
610 0156
611 0156 3B02 SNZ ID1.READY
612 0157 2800 R JMP READ_FIFO0END
613 0158
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -