📄 std.lst
字号:
"File: STD.ASM Holtek Cross-Assembler Version 2.86 Page 1
1 0000 include body.inc
2 0000 include usbrf1.inc
3 0000 include usbfifo.inc
4 0000
5 0000 extern baddr_state :bit
6 0000 extern bRmtWakeup :bit
7 0000 extern bFIFO_Full :bit
8 0000 extern bSend_Continue :bit
9 0000 extern brd_h_table :bit ;read hi byte of table
10 0000 extern bCfgValue :bit
11 0000 extern bwait_setup :bit
12 0000
13 0000
14 0000 extern int_temp1 :byte
15 0000 extern int_temp2 :byte
16 0000
17 0000 extern STALL :byte
18 0000 extern CMD_ADDR :byte
19 0000 extern FIFO_Type :byte
20 0000 extern FIFO_Request :byte
21 0000 extern FIFO_wValueH :byte
22 0000 extern FIFO_wValueL :byte
23 0000 extern FIFO_wIndexH :byte
24 0000 extern FIFO_wIndexL :byte
25 0000 extern FIFO_OUT1 :byte
26 0000 extern fifo_out2 :byte
27 0000 extern FIFO_SendLen :byte
28 0000 extern FIFO_wLengthH :byte
29 0000 extern FIFO_wLengthL :byte
30 0000 extern TableLength :byte
31 0000
32 0000 extern lengthh :byte
33 0000 extern lengthl :byte
34 0000 extern FIFO_TBLP :byte
35 0000
36 0000 ;---usb_int.asm---
37 0000 EXTERN ToStallPipe0:NEAR
38 0000 EXTERN RequestResponse:NEAR
39 0000 EXTERN SendHandshake:NEAR
40 0000 EXTERN SendFIFOOut:NEAR
41 0000
42 0000 ;---des.asm---
43 0000 EXTERN DeviceD:NEAR
44 0000 EXTERN ConfigurationD:NEAR
45 0000 EXTERN HID_0:NEAR
46 0000 EXTERN Entity_0:NEAR
47 0000 EXTERN ENTITY_1:NEAR
48 0000 extern LangID:NEAR
49 0000 extern ManufactureS:near
50 0000 extern ProductS:near
51 0000
"File: STD.ASM Holtek Cross-Assembler Version 2.86 Page 2
52 0000 fifo_temp EQU int_temp1
53 0000 temp equ int_temp2
54 0000
55 0000
56 0000 STD1 .SECTION at 60h 'code'
57 0000 ;----- Standard request -----------------------------------------------------
58 0000 StandardRequest:
59 0000 0F01 mov a,1
60 0001 3800 E snz baddr_state
61 0002 0F03 mov a,ENDPOINT_NO
62 0003 0080 E mov fifo_temp,a
63 0004
64 0004 0700 E MOV A,FIFO_Request ;bRequest
65 0005 0A0A SUB A,(STANDARD_REQUEST_NO-3) ;Over 13 Item ?
66 0006 3C0A SZ C ;
67 0007 2800 E JMP ToStallPipe0 ;Yes
68 0008
69 0008
70 0008 0700 E MOV A,FIFO_Request
71 0009 3C05 sz acc.0
72 000A 286D jmp std_request_pcl_14
73 000B 3800 E SNZ FIFO_Type.@Setup_D ;Device to Host ? 0,6,8
74 000C 2800 E JMP ToStallPipe0 ;No: Error
75 000D ;!!!!! Need in same page
76 000D std_request_pcl_14:
77 000D 0386 ADDM A,PCL
78 000E 28BB JMP GetStatus ;0
79 000F 288A JMP clearSetFeature ;1
80 0010 2800 E JMP ToStallPipe0 ;2
81 0011 288A JMP clearSetFeature ;3
82 0012 2800 E JMP ToStallPipe0 ;4
83 0013 2878 JMP SetAddressC ;5
84 0014 2933 JMP GetDescriptor ;6
85 0015 2800 E JMP Tostallpipe0 ;7
86 0016 291C JMP GetConfiguration ;8
87 0017 2921 JMP SetConfiguration ;9
88 0018 ;JMP ToStallPipe0 ;GetInterface### ;A
89 0018 ;JMP ToStallPipe0 ;SetInterface### ;B
90 0018 ;JMP ToStallPipe0 ;SynchFrame### ;C
91 0018
92 0018 ;////////////////////////////////////////////////////////////////////////////
93 0018 ;Standard Request
94 0018 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
95 0018 SetAddressC:
96 0018 1080 E SZ FIFO_wValueH ;Is wValueH == 0 ?
97 0019 2800 E JMP ToStallPipe0 ;No:Error
98 001A 0700 E MOV A,FIFO_wValueL ;Save address to CMD_ADDR
99 001B 0080 E MOV CMD_ADDR,A ;
100 001C
101 001C
102 001C 0F45 mov a,USB_SIES
103 001D 0083 mov mp1,a
104 001E 0F01 mov a,00000001b
105 001F 0582 orm a,R1
106 0020
107 0020 0F42 MOV A,USB_ADDR_WAKE ;MP1 point to Address register
108 0021 0083 MOV MP1,A ;
109 0022
110 0022 1800 E rla CMD_ADDR
111 0023 0EFE AND A,0FEH ;& save it
"File: STD.ASM Holtek Cross-Assembler Version 2.86 Page 3
112 0024 3C00 E SZ bRmtWakeup ;Remote wakeup exist ?
113 0025 3005 SET acc.0 ;Yes:Set remote wakeup flag
114 0026 0082 MOV R1,A ;
115 0027
116 0027 1080 E sz CMD_ADDR
117 0028 3000 E set baddr_state
118 0029 2800 E JMP SendHandshake
119 002A ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
120 002A clearSetFeature:
121 002A 1080 E SZ FIFO_wValueH ;wValueH == 0 ?
122 002B 2800 E JMP ToStallPipe0 ;No
123 002C
124 002C 1080 E SZ FIFO_wIndexH ;wIndexH == 0 ?
125 002D 2800 E JMP ToStallPipe0 ;No
126 002E
127 002E 0700 E MOV A,FIFO_Type ;Type (Device, Interface or
128 002F 0E1F AND A,Setup_Rev ; Endpoint)
129 0030 3D0A sz z
130 0031 28AC jmp DeviceStatuscSF ;acc=0
131 0032 0C02 xor a,2
132 0033 390A snz z ;acc=2
133 0034 2800 E jmp TostallPipe0
134 0035 ; jmp EndpointStatusCSF
135 0035 ;-----------------------------------------------------------------------------
136 0035 EndpointStatusCSF: ;clear stall flag
137 0035 1080 E SZ FIFO_wValueL ;ENDPOINT_STALL = 0 ?
138 0036 2800 E JMP ToStallPipe0 ;No
139 0037
140 0037 0700 E MOV A,FIFO_wIndexL ;Get endpoint number
141 0038 0E7F and a,01111111b
142 0039 0200 E SUB A,FIFO_temp
143 003A 3C0A SZ C
144 003B 2800 E JMP ToStallPipe0
145 003C
146 003C 0F43 MOV A,USB_STALL ;MP1 point to Stall register
147 003D 0083 MOV MP1,A ;
148 003E 0F01 mov a,1 ;pipe0
149 003F 3C00 E sz FIFO_wIndexL.0
150 0040 0F02 mov a,2 ;pipe1
151 0041 3C00 E sz FIFO_windexL.1
152 0042 0F04 mov a,4 ;pipe2
153 0043
154 0043 3800 E snz FIFO_Request.1
155 0044
156 0044 28A8 jmp clear_stall
157 0045 0580 E orm a,stall
158 0046 0582 orm a,r1
159 0047 2800 E JMP SendHandshake ;send handshake flag
160 0048 clear_stall:
161 0048 0185 cpl acc
162 0049 0680 E andm a,stall
163 004A 0682 andm a,r1
164 004B 2800 E jmp SendHandshake
165 004C ;-----------------------------------------------------------------------------
166 004C DeviceStatusCSF:
167 004C 1700 E sdza fifo_wValueL
168 004D 2800 E jmp ToStallPipe0
169 004E
170 004E 1080 E SZ FIFO_wIndexL ;Is wIndex == 0 ?
171 004F 2800 E JMP ToStallPipe0 ;No
"File: STD.ASM Holtek Cross-Assembler Version 2.86 Page 4
172 0050
173 0050 0F42 MOV A,USB_ADDR_WAKE ;Address & Remote wakeup address
174 0051 0083 MOV MP1,A ;
175 0052
176 0052 3000 E SET bRmtWakeup ;enable remote wakeup (flag)
177 0053 3800 E snz FIFO_Request.1
178 0054 3400 E clr bRmtWakeup
179 0055 ;enable remote wakeup ;Yes
180 0055 340A clr c
181 0056 1A00 E rlca cmd_addr
182 0057 3C00 E sz FIFO_Request.1
183 0058 3005 set acc.0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -