📄 std1.lst
字号:
623 014D 0081 MOV MP0,A ;
624 014E 1F00 E CLR FIFO_SendLen ;Send data length = 0
625 014F ;Check whether all data is written
626 014F GetTableLp:
627 014F 1080 E sz tablelength ;check whether out of number to send
628 0150 2961 jmp read_data_again
629 0151 0FDB MOV A,LOW EndSend
630 0152 0080 E MOV ReturnAddr,A
631 0153 0003 ret
632 0154 ;----------------------------------------------------------------------------------------------
633 0154 read_data_again:
634 0154
635 0154 3800 E snz brd_h_table
636 0155 296F jmp read_L_table_byte
637 0156 ;read_H_byte
638 0156 3400 E clr brd_h_table
639 0157 1D80 TABRDL R0
640 0158 1487 INC TBLP
641 0159 0708 mov a,tblh
642 015A 0E3F and a,00111111b
643 015B 0C3F xor a,3FH
644 015C 3D0A sz z
645 015D 2961 jmp read_data_again ;GetTableTag
646 015E 0708 mov a,tblh
647 015F 0E3F and a,00111111b
648 0160 0080 mov R0,a
649 0161 2971 jmp read_next_table
650 0162 read_L_table_byte:
651 0162 3000 E set brd_h_table
652 0163 1D80 TABRDL R0 ;Get table and write FIFO_OUTx
653 0164 read_next_table:
"File: STD1.ASM Holtek Cross-Assembler Version 2.86 Page 12
654 0164 1481 INC MP0 ;Update memory pointer 0
655 0165 1480 E INC FIFO_SendLen ;Update send FIFO length
656 0166 1080 E sz lengthl
657 0167 297A jmp skip_check_lengthh
658 0168 1080 E sz lengthH
659 0169 297E jmp check_length_data
660 016A out_descript: ;out_of_number to send
661 016A 0FDB MOV A,LOW EndSend
662 016B 0080 E MOV ReturnAddr,A
663 016C 297B jmp get_table_lp
664 016D skip_check_lengthh:
665 016D 1580 E dec lengthl
666 016E get_table_lp:
667 016E 1780 E SDZ TableLength ;end_of_Tablelength
668 016F 2981 JMP GetTableTag
669 0170 0003 RET
670 0171
671 0171 check_length_data:
672 0171 1F80 E set lengthl
673 0172 1580 E dec lengthH
674 0173 297B jmp get_table_lp
675 0174
676 0174
677 0174 ;Check whether FIFO_SIZE data has written
678 0174 GetTableTag:
679 0174 0700 E MOV A,FIFO_SendLen ;
680 0175 0C08 XOR A,FIFO_SIZE ;
681 0176 390A SNZ Z ;
682 0177 295C JMP GetTableLp ;No
683 0178 0003 RET ;FIFO FULL
684 0179
685 0179
686 0179
687 0179
688 0179
689 0179 ;----------------------------------------------------------------------------------------------
690 0179
691 0179 ;stack 1
692 0179 ;!!!!! Must in same page with caller
693 0179 ReadEntityAndSendCnf:
694 0179 0700 E MOV a,FIFO_wIndexL ;
695 017A 0080 E mov des_count,a
696 017B 201D call get_entity_length
697 017C
698 017C 0080 E MOV TableLength,A ; in entity table)
699 017D 298C jmp SendCnf
700 017E
701 017E ;----------------------------------------------------------------------------------------------
702 017E ;stack 1
703 017E ReadTableAndSendCnf:
704 017E 1D80 E TABRDL TableLength ;table length from TBLP
705 017F SendCnf:
706 017F 21A3 call gettablenolength
707 0180 2159 call GetTableBeg
708 0181 299E JMP ReadNextXX
709 0182 ;----------------------------------------------------------------------------------------------
710 0182 ;input point for get the next table data
711 0182 GetTableLength:
712 0182 3400 E clr brd_h_table
713 0183 1D80 E TABRDL TableLength ;table length
"File: STD1.ASM Holtek Cross-Assembler Version 2.86 Page 13
714 0184 21A3 CALL GetTableNoLength ;
715 0185 gettablelength_cont:
716 0185 3C00 E SZ bFLAG_RsqF
717 0186 2996 JMP ReadAgain
718 0187 215C CALL GetTableLp
719 0188 299E JMP ReadNextXX
720 0189 ;----------------------------------------------------------------------------------------------
721 0189 ;out_of_send_data_subroutine
722 0189 ReadAgain:
723 0189 3400 E clr bFLAG_RsqF
724 018A 3000 E SET bFLAG_SndFC ;Set continue send flag
725 018B 0707 MOV A,TBLP ;Save TBLP
726 018C 0080 E MOV FIFO_TBLP,A ;
727 018D 2800 E JMP RequestResponse
728 018E
729 018E ;----------------------------------------------------------------------------------------------
730 018E ;input point of the get next 8-byte table data
731 018E ReadNextCnf:
732 018E 0700 E MOV A,FIFO_TBLP ;Restore TBLP
733 018F 0087 MOV TBLP,A ;
734 0190 2159 CALL GetTableBeg ;Read next
735 0191
736 0191 ;Check Whether FIFO data is FULL
737 0191 ReadNextXX:
738 0191 0700 E MOV A,FIFO_SendLen ;FIFO full ?
739 0192 0C08 XOR A,FIFO_SIZE ;
740 0193 3D0A SZ Z ;
741 0194 28F3 JMP ReadTASTag ;Yes
742 0195 28F4 JMP ReadNextCnfLp ;NO
743 0196
744 0196
745 0196 ;---------------------------------------------------------------------------------------------
746 0196 ;stack 1
747 0196 GetTableNoLength:
748 0196 1080 E SZ LengthH ;Table length >= wLengthH ?
749 0197 0003 ret ;No
750 0198 0700 E MOV A,TableLength ;Table length >= wLengthL ?
751 0199 0200 E SUB A,LengthL ;
752 019A 380A SNZ C ;
753 019B 0003 ret
754 019C set_tablelength:
755 019C 0700 E MOV A,LengthL ;Yes
756 019D 0080 E MOV TableLength,A ;Update Tablelength by FIFO_wLengthL
757 019E 0003 ret
758 019F
759 019F ;---------------------------------------------------------------------------------------------
760 019F ClassDst_Interface:
761 019F 0700 E MOV A,FIFO_wIndexL
762 01A0 0A02 SUB A,INTERFACE_NO
763 01A1 3C0A SZ C
764 01A2 2800 E JMP ToStallPipe0
765 01A3 Skip_Check_Endpoint:
766 01A3 0700 E MOV A,FIFO_wValueH ;Descriptor
767 01A4 0E1F AND A,wValueH_Dst ; Stanard, Class & Vendor
768 01A5 0080 E MOV TEMP,A ;
769 01A6 0A04 SUB A,04H ;Over 4 iteM ?
770 01A7 3C0A SZ C ;
771 01A8 2800 E JMP ToStallPipe0 ;Yes
772 01A9
773 01A9 0700 E MOV A,TEMP
"File: STD1.ASM Holtek Cross-Assembler Version 2.86 Page 14
774 01AA class_des_pcl_5:
775 01AA 0386 ADDM A,PCL
776 01AB 2800 E JMP ToStallPipe0 ;Designator set no support
777 01AC 28E5 JMP GetHID ;Get HID descriptor
778 01AD 28EC JMP GetEntity ;Get entity descriptor
779 01AE 2800 E JMP ToStallPipe0 ;No support designator set
780 01AF
781 01AF ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
782 01AF ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
783 01AF SetAddressC:
784 01AF 1080 E SZ FIFO_wValueH ;Is wValueH == 0 ?
785 01B0 2800 E JMP ToStallPipe0 ;No:Error
786 01B1 0700 E MOV A,FIFO_wValueL ;Save address to CMD_ADDR
787 01B2 0080 E MOV CMD_ADDR,A ;
788 01B3
789 01B3 0F45 mov a,USB_SIES
790 01B4 0083 mov mp1,a
791 01B5 0F01 mov a,00000001b
792 01B6 0582 orm a,R1
793 01B7
794 01B7 1800 E rla CMD_ADDR
795 01B8 0EFE AND A,0FEH ;& save it
796 01B9 0080 E MOV FIFO_ADDR,A ;Move address to adress buffer
797 01BA 3C00 E SZ bRmtWakeup ;Remote wakeup exist ?
798 01BB 3000 E SET FIFO_addr.0 ;Yes:Set remote wakeup flag
799 01BC 0F42 MOV A,USB_ADDR_WAKE ;MP1 point to Address register
800 01BD 0083 MOV MP1,A ;
801 01BE 0700 E MOV A,FIFO_ADDR ;Write to Address Register
802 01BF 0082 MOV R1,A ;
803 01C0
804 01C0 1080 E sz CMD_ADDR
805 01C1 3000 E set baddr_state
806 01C2
807 01C2 2800 E JMP SendHandshake
808 01C3 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
809 01C3
810 01C3
811 01C3 PUBLIC StandardRequest
812 01C3 PUBLIC GetEnd
813 01C3 PUBLIC ReadNextCnf
814 01C3 public std_request_pcl_14
815 01C3 public clear_feature_pcl_5
816 01C3 public set_feature_pcl_5
817 01C3 public std_des_start_pcl
818 01C3 public std_des_end_pcl
819 01C3 public GetStringDes
820 01C3 public std_device_pcl_5
821 01C3 public class_des_pcl_5
822 01C3 public get_status_pcl_5
823 01C3 public get_interface_pcl_3
824 01C3 public get_endpt_pcl_3
825 01C3 public get_entity_pcl_3
826 01C3 public get_HID_pcl_3
827 01C3 public get_entity_len_pcl_3
828 01C3 END
0 Errors
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -