📄 usb_oper.lst
字号:
614 0158 0F48 MOV A, FIFO0
615 0159 0083 MOV MP1, A
616 015A 0702 MOV A, ID1
617 015B 0080 MOV ID0, A
618 015C 1481 INC MP0
619 015D
620 015D 1780 R SDZ USB_LCOUNT
621 015E 2800 R JMP RFIFO0LOOP
622 015F
623 015F READ_FIFO0END:
624 015F 0F46 MOV A, MISC
625 0160 0083 MOV MP1, A
626 0161
627 0161 3082 SET ID1.TX
628 0162 2000 R CALL USB_MISC_DELAY
629 0163
630 0163 3402 CLR ID1.REQ
631 0164 0003 RET
632 0165
633 0165 WRITE_LEN0_TOFIFO0:
634 0165
635 0165 0F46 MOV A, MISC
636 0166 0083 MOV MP1, A
637 0167
638 0167 0702 MOV A, ID1
639 0168 0EE0 AND A, 0E0H
640 0169 0D02 OR A, 02H
641 016A 0082 MOV ID1, A
642 016B
643 016B 2000 R CALL USB_MISC_DELAY
644 016C
645 016C 3002 SET ID1.0
646 016D
647 016D 2000 R CALL USB_MISC_DELAY
648 016E
649 016E ;SNZ ID1.6
650 016E ;JMP WLEN0_EXIT
651 016E
652 016E ;SET ID1.2
653 016E ;CALL USB_MISC_DELAY
654 016E
655 016E 3482 CLR ID1.1
656 016F 2000 R CALL USB_MISC_DELAY
657 0170
"File: USB_OPER.ASM Holtek Cross-Assembler Version 2.86 Page 12
658 0170 3402 CLR ID1.0
659 0171
660 0171 WLEN0_EXIT:
661 0171
662 0171 0003 RET
663 0172
664 0172
665 0172 WRITE_FIFO0:
666 0172
667 0172 0700 R MOV A, BYTE_SADDR
668 0173 0087 MOV TBLP, A
669 0174 0700 R MOV A, BYTE_POS
670 0175 0387 ADDM A, TBLP
671 0176 ;==========================================================
672 0176 ; MOV A, BYTE_REST
673 0176 ; SUB A, 8
674 0176
675 0176 ; SNZ ACC.7 ;!!!!!!!BUG
676 0176 ; JMP GREATER_THAN_8
677 0176 ;===========================================================
678 0176 0700 R MOV A, BYTE_REST
679 0177 0080 R MOV BIGGER_THAN_8_TEMP, A
680 0178
681 0178 3C00 R SZ BIGGER_THAN_8_TEMP.7
682 0179 2800 R JMP GREATER_THAN_8
683 017A 3C00 R SZ BIGGER_THAN_8_TEMP.6
684 017B 2800 R JMP GREATER_THAN_8
685 017C 3C00 R SZ BIGGER_THAN_8_TEMP.5
686 017D 2800 R JMP GREATER_THAN_8
687 017E 3C00 R SZ BIGGER_THAN_8_TEMP.4
688 017F 2800 R JMP GREATER_THAN_8
689 0180 3C00 R SZ BIGGER_THAN_8_TEMP.3
690 0181 2800 R JMP GREATER_THAN_8
691 0182 ;============================================================
692 0182 0700 R MOV A, BYTE_REST
693 0183 0080 R MOV USB_DATALENGTH, A
694 0184 1F00 R CLR BYTE_REST
695 0185
696 0185 2800 R JMP START_TO_WFIFO0
697 0186
698 0186 GREATER_THAN_8:
699 0186 0F08 MOV A, 8
700 0187 0080 R MOV USB_DATALENGTH, A
701 0188 0280 R SUBM A, BYTE_REST
702 0189 0180 R CPL BYTE_REST
703 018A 1480 R INC BYTE_REST
704 018B
705 018B
706 018B START_TO_WFIFO0:
707 018B 0700 R MOV A, USB_DATALENGTH
708 018C 0080 R MOV USB_LCOUNT, A
709 018D
710 018D 0F90 MOV A, EP0_BUFF
711 018E 0081 MOV MP0, A
712 018F
713 018F WFIFO0_MP0LOOP:
714 018F 1D80 TABRDL ID0
715 0190 1481 INC MP0
716 0191 1580 R DEC USB_LCOUNT
717 0192 1080 R SZ USB_LCOUNT
"File: USB_OPER.ASM Holtek Cross-Assembler Version 2.86 Page 13
718 0193 2800 R JMP NEXT_BB
719 0194 2800 R JMP GOTO_WFIFO0
720 0195
721 0195 NEXT_BB:
722 0195 0708 MOV A, TBLH
723 0196 0C7F XOR A, 07FH
724 0197 1085 SZ ACC
725 0198 2800 R JMP TAKE_H_BYTE
726 0199
727 0199 1487 INC TBLP
728 019A 1480 R INC BYTE_POS
729 019B 2800 R JMP WFIFO0_MP0LOOP
730 019C
731 019C TAKE_H_BYTE:
732 019C 0708 MOV A, TBLH
733 019D 0080 MOV ID0, A
734 019E 1481 INC MP0
735 019F 1487 INC TBLP
736 01A0 1480 R INC BYTE_POS
737 01A1 1780 R SDZ USB_LCOUNT
738 01A2 2800 R JMP WFIFO0_MP0LOOP
739 01A3 2800 R JMP GOTO_WFIFO0_X
740 01A4
741 01A4 GOTO_WFIFO0:
742 01A4 1480 R INC BYTE_POS
743 01A5 GOTO_WFIFO0_X:
744 01A5
745 01A5 0700 R MOV A, USB_DATALENGTH
746 01A6 0080 R MOV USB_LCOUNT, A
747 01A7
748 01A7 0F90 MOV A, EP0_BUFF
749 01A8 0081 MOV MP0, A
750 01A9
751 01A9 0F46 MOV A, MISC
752 01AA 0083 MOV MP1, A
753 01AB 1F02 CLR ID1
754 01AC
755 01AC 3082 SET ID1.TX
756 01AD
757 01AD 2000 R CALL USB_MISC_DELAY
758 01AE
759 01AE 3002 SET ID1.REQ
760 01AF
761 01AF WFIFO0LOOP:
762 01AF 0F46 MOV A, MISC
763 01B0 0083 MOV MP1, A
764 01B1
765 01B1 2000 R CALL USB_MISC_DELAY
766 01B2
767 01B2 3B02 SNZ ID1.READY
768 01B3 2800 R JMP EXIT_WRITE_FIFO0
769 01B4
770 01B4 0F48 MOV A, FIFO0
771 01B5 0083 MOV MP1, A
772 01B6 0700 MOV A, ID0
773 01B7 0082 MOV ID1, A
774 01B8 1481 INC MP0
775 01B9
776 01B9 1780 R SDZ USB_LCOUNT
777 01BA 2800 R JMP WFIFO0LOOP
"File: USB_OPER.ASM Holtek Cross-Assembler Version 2.86 Page 14
778 01BB
779 01BB EXIT_WRITE_FIFO0:
780 01BB 0F46 MOV A, MISC
781 01BC 0083 MOV MP1, A
782 01BD
783 01BD 3482 CLR ID1.TX
784 01BE 2000 R CALL USB_MISC_DELAY
785 01BF
786 01BF 3402 CLR ID1.REQ
787 01C0
788 01C0 0003 RET
789 01C1
790 01C1
791 01C1
792 01C1 USB_MISC_DELAY:
793 01C1 0000 NOP
794 01C2 0000 NOP
795 01C3 0000 NOP
796 01C4 0000 NOP
797 01C5 0000 NOP
798 01C6 0000 NOP
799 01C7 0003 RET
800 01C8
801 01C8 WRITE_FIFO2:
802 01C8 3400 R CLR FIFO_WF
803 01C9 0F00 MOV A, 0
804 01CA 0084 MOV BP, A
805 01CB
806 01CB 0FAC MOV A, RF_INBUFF
807 01CC 0081 MOV MP0, A
808 01CD
809 01CD 0FA0 MOV A, EP2_BUFF
810 01CE 0083 MOV MP1, A
811 01CF
812 01CF 1481 INC MP0
813 01D0 1481 INC MP0
814 01D1 1481 INC MP0
815 01D2
816 01D2 3800 R SNZ NOT_BOOT_TYPE
817 01D3 2800 R JMP SKIP_REPORT_ID
818 01D4
819 01D4 0F02 MOV A, 02H ;MOUSE REPORT ID
820 01D5 0082 MOV ID1, A
821 01D6 1483 INC MP1
822 01D7
823 01D7 SKIP_REPORT_ID:
824 01D7
825 01D7 0700 MOV A, ID0 ;MOUSE KEY STATUS
826 01D8 0082 MOV ID1, A
827 01D9 1481 INC MP0
828 01DA 1483 INC MP1
829 01DB
830 01DB 0700 MOV A, ID0 ;X
831 01DC 0082 MOV ID1, A
832 01DD 1481 INC MP0
833 01DE 1483 INC MP1
834 01DF
835 01DF 0700 MOV A, ID0 ;Y
836 01E0 0082 MOV ID1, A
837 01E1 1481 INC MP0
"File: USB_OPER.ASM Holtek Cross-Assembler Version 2.86 Page 15
838 01E2 1483 INC MP1
839 01E3
840 01E3 3800 R SNZ NOT_BOOT_TYPE
841 01E4 2800 R JMP SKIP_WHEEL
842 01E5
843 01E5 0700 MOV A, ID0 ;Z
844 01E6 0082 MOV ID1, A
845 01E7
846 01E7 SKIP_WHEEL:
847 01E7
848 01E7 0F01 MOV A, 1
849 01E8 0084 MOV BP, A
850 01E9
851 01E9 0FA0 MOV A, EP2_BUFF
852 01EA 0081 MOV MP0, A
853 01EB
854 01EB 3800 R SNZ NOT_BOOT_TYPE
855 01EC 2800 R JMP MOUSE_3_BYTE_IN
856 01ED
857 01ED 0F05 MOV A, 5
858 01EE 0080 R MOV USB_LCOUNT, A
859 01EF 2800 R JMP MOUSE_NEXT
860 01F0
861 01F0 MOUSE_3_BYTE_IN:
862 01F0
863 01F0 0F03 MOV A, 3
864 01F1 0080 R MOV USB_LCOUNT, A
865 01F2
866 01F2 MOUSE_NEXT:
867 01F2 0F46 MOV A, MISC
868 01F3 0083 MOV MP1, A
869 01F4 1F02 CLR ID1
870 01F5
871 01F5 0F10 MOV A, 010H
872 01F6 0582 ORM A, ID1
873 01F7
874 01F7 2000 R CALL USB_MISC_DELAY
875 01F8
876 01F8 3082 SET ID1.TX
877 01F9
878 01F9 2000 R CALL USB_MISC_DELAY
879 01FA
880 01FA 3002 SET ID1.REQ
881 01FB
882 01FB WFIFO2LOOP:
883 01FB 0F46 MOV A, MISC
884 01FC 0083 MOV MP1, A
885 01FD
886 01FD 2000 R CALL USB_MISC_DELAY
887 01FE
888 01FE 3B02 SNZ ID1.READY
889 01FF 2800 R JMP FAIL_WRITE_FIFO2
890 0200
891 0200 0F4A MOV A, FIFO2
892 0201 0083 MOV MP1, A
893 0202 0700 MOV A, ID0
894 0203 0082 MOV ID1, A
895 0204 1481 INC MP0
896 0205
897 0205 1780 R SDZ USB_LCOUNT
"File: USB_OPER.ASM Holtek Cross-Assembler Version 2.86 Page 16
898 0206 2800 R JMP WFIFO2LOOP
899 0207
900 0207 2800 R JMP EXIT_WRITE_FIFO2
901 0208
902 0208 FAIL_WRITE_FIFO2:
903 0208 3000 R SET FIFO_WF
904 0209 EXIT_WRITE_FIFO2:
905 0209 0F46 MOV A, MISC
906 020A 0083 MOV MP1, A
907 020B
908 020B 3482 CLR ID1.TX
909 020C 2000 R CALL USB_MISC_DELAY
910 020D
911 020D 3402 CLR ID1.REQ
912 020E
913 020E 0003 RET
914 020F
915 020F WRITE_FIFO2X:
916 020F 3400 R CLR FIFO_WF1
917 0210 0F00 MOV A, 0
918 0211 0084 MOV BP, A
919 0212
920 0212 0FAC MOV A, RF_INBUFF ;RECV FROM RF
921 0213 0081 MOV MP0, A
922 0214
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -