?? usb_int2.lst
字號:
"File: USB_INT2.ASM Holtek Cross-Assembler Version 2.86 Page 1
1 0000
2 0000 include ht82k96e.inc
3 0000 ;include usbrf.inc
4 0000 include usbFIFO.inc
5 0000
6 0000
7 0000
8 0000 ;"FIFO_type"
9 0000 @Setup_D EQU 7 ;direction
10 0000 @INTERFACE EQU 0
11 0000 Setup_Type EQU 60H ;Type
12 0000 Setup_Rev EQU 1FH ;Recipient (Just use 2 bits)
13 0000 wValueH_Typ EQU 60H ;D6..5 Type: 0-Standard, 1-Class, 2-Vendor
14 0000 wValueH_Dst EQU 1FH ;
15 0000
16 0000
17 0000
18 0000 extern bFLAG_SndFC :bit ;has control pipe data to transmitter
19 0000 extern bFLAG_Setup :bit
20 0000 ;extern bFLAG_FIFO_REDY :bit
21 0000 extern bFLAG_RsqF :bit
22 0000 ;extern bFLAG_AdrF :bit
23 0000 extern bRmtWakeup :bit
24 0000 extern bhas_data_out_previous :bit
25 0000 extern bhas_data_out_previous1 :bit
26 0000 extern bhas_data_out_previous2 :bit
27 0000
28 0000
29 0000 extern bsetup_flag :bit ;there are setup cmd received
30 0000 extern bCMD_INDEX :bit
31 0000 extern baddr_state :bit
32 0000 extern bKB_KeyUpt :bit
33 0000 extern btime_out_KB :bit
34 0000 ;extern bacpi_key_chg :bit
35 0000 ;extern bmulti_key_chg :bit
36 0000 extern breseume_s :bit
37 0000 extern bwait_setup :bit
38 0000
39 0000
40 0000
41 0000
42 0000 extern fifo_out1 :byte
43 0000 extern fifo_out2 :byte
44 0000 extern fifo_out3 :byte
45 0000 extern fifo_out4 :byte
46 0000 extern fifo_out5 :byte
47 0000 extern fifo_out6 :byte
48 0000 extern fifo_out7 :byte
49 0000 extern fifo_out8 :byte
50 0000
51 0000 extern FIFO0_Wr_Check :near
52 0000 extern FIFO0_Rd_Check :near
53 0000 extern FIFO1_Rd_Check :near
54 0000 extern FIFO2_Rd_Check :near
55 0000 ;extern LEN0_Rd_Check :near
"File: USB_INT2.ASM Holtek Cross-Assembler Version 2.86 Page 2
56 0000 extern LEN0_Wr_Check :near
57 0000 ;extern ReadLen0 :near
58 0000 extern WriteLen0 :near
59 0000 extern ReadFIFO0 :near
60 0000 extern ReadFIFO1 :near
61 0000 extern ReadFIFO2 :near
62 0000 extern WriteFIFO0 :near
63 0000 extern FIFO1_Wr_Check :near
64 0000 extern WriteFIFO1 :near
65 0000 extern FIFO2_Wr_Check :near
66 0000 extern WriteFIFO2 :near
67 0000 ;extern moveacpidata :near
68 0000 ;extern movemultidata :near
69 0000
70 0000
71 0000
72 0000
73 0000 extern GetPipeBit :near
74 0000 extern clearstall :near
75 0000 extern setstall :near
76 0000
77 0000
78 0000 extern GetEnd :near
79 0000 extern StandardRequest :near
80 0000 extern ClassRequest :near
81 0000 extern ReadNextCnf :near
82 0000
83 0000 extern SetLED :near
84 0000 extern MoveKeyboardData :near
85 0000
86 0000 extern ReturnAddr :byte
87 0000 extern FIFO_SendLen :byte
88 0000 extern FIFO_Type :byte
89 0000 extern KB_LED :byte
90 0000 extern TempKBTime :byte
91 0000 extern TempKBTime_L :byte
92 0000 extern CMD_ADDR :byte
93 0000 extern int_temp1 :byte
94 0000
95 0000
96 0000 FIFO_addr equ int_temp1
97 0000
98 0000
99 0000 usbint_var .section 'data'
100 0000 00 isr_usb_acc db ?
101 0001 00 isr_usb_status db ?
102 0002 00 isr_usb_mp1 db ?
103 0003 00 isr_usb_mp0 db ?
104 0004 00 isr_usb_tblp db ?
105 0005 00 int_reg_temp db ? ;for store USB pipe int register
106 0006
107 0006
108 0006
109 0006
110 0006 ;**************************************************************************
111 0006 ;* External INT subroutine
112 0006 ;**************************************************************************
113 0006
114 0000 usbExt .Section AT 350H 'code'
115 0000 ;External interrupt service routine
"File: USB_INT2.ASM Holtek Cross-Assembler Version 2.86 Page 3
116 0000 EXT_START:
117 0000 0001 clr wdt
118 0001 0080 R MOV ISR_USB_ACC,A ;Save ACC
119 0002 070A MOV A,STATUS ;Save STATUS
120 0003 0080 R MOV isr_usb_status,A
121 0004
122 0004 0F01 MOV A,USB_REG_BANK ;Set bank pointer to USB control
123 0005 0084 MOV BP,A ;register bank
124 0006
125 0006
126 0006
127 0006 0703 MOV A,MP1
128 0007 0080 R MOV isr_usb_mp1,A
129 0008 0701 mov a,mp0
130 0009 0080 R mov isr_USB_mp0,a
131 000A 0707 mov a,tblp
132 000B 0080 R mov isr_usb_tblp,a
133 000C
134 000C 348B clr intc.1
135 000D 300B set intc.0
136 000E
137 000E 379B clr FIFO_w_c_b ;use in Bread Board only
138 000F ;-----------------------------------------------------------------------------------
139 000F 381A snz suspend_line
140 0010 2B77 jmp check_Access_FIFO
141 0011
142 0011 0FF0 mov a,11110000b ;clear Int_reg within suspend state
143 0012 069B andm a,Int_reg
144 0013
145 0013 3D9A sz resume_line
146 0014 2B66 jmp turn_on_usb
147 0015 ;turn_off_usb:
148 0015 ; clr on_usb_clk ;turn on USB CLK
149 0015 ; set regulator_off
150 0015 2B69 jmp Exit_of_Ext_start
151 0016 turn_on_usb:
152 0016 3000 E set breseume_s
153 0017 319C set on_usb_clk ;turn on USB CLK
154 0018 361C clr regulator_off
155 0019 ;-----------------------------------------------------------------------------------
156 0019 ;ExitExt:
157 0019 Exit_of_Ext_start:
158 0019
159 0019 0700 R mov a,isr_usb_tblp
160 001A 0087 mov tblp,a
161 001B 0700 R mov a,isr_usb_mp0
162 001C 0081 mov mp0,a
163 001D 0700 R MOV A,isr_usb_mp1
164 001E 0083 MOV MP1,A
165 001F
166 001F 0F00 MOV A,0 ;Set bank pointer to UC
167 0020 0084 MOV BP,A ;register bank
168 0021
169 0021 0700 R MOV A,Isr_usb_status ;Restore STATUS
170 0022 008A MOV STATUS,A ;
171 0023 0700 R MOV A,isr_usb_acc ;Restore ACC
172 0024 340B clr intc.0
173 0025 308B set intc.1
174 0026 0004 RETI
175 0027 ;-----------------------------------------------------------------------------------
"File: USB_INT2.ASM Holtek Cross-Assembler Version 2.86 Page 4
176 0027 ;-----------------------------------------------------------------------------------
177 0027 check_Access_FIFO:
178 0027 3400 E clr breseume_s
179 0028 319C set on_usb_clk ;turn on USB CLK
180 0029 361C clr regulator_off
181 002A
182 002A 3C1B sz Int_reg.@int0
183 002B 2B88 jmp AccessFIFO0
184 002C
185 002C ;other pipe except pipe0 interrupt
186 002C 071B mov a,Int_reg
187 002D 1080 R sz Int_reg_temp
188 002E 2B81 jmp examine_int123
189 002F 0E0E and a,00001110b
190 0030 0080 R mov Int_reg_temp,a
191 0031 examine_int123:
192 0031 3C00 R sz Int_reg_temp.@int1
193 0032 2C0E jmp AccessFIFO1
194 0033 3C00 R sz Int_reg_temp.@int2
195 0034 2C23 jmp AccessFIFO2
196 0035 3C00 R sz Int_reg_temp.@int3
197 0036 2C28 jmp AccessFIFO3
198 0037 2B69 jmp Exit_of_Ext_start
199 0038 ;-----------------------------------------------------------------------------------
200 0038 ;-----------------------------------------------------------------------------------
201 0038 Check_Pipe0:
202 0038 AccessFIFO0:
203 0038 311A set chk_usb_reset_event ;set usb mode flag
204 0039 341B clr Int_reg.@int0 ;clr pipe0 int flag
205 003A
206 003A 0F46 MOV A,USB_MISC ;MP1 point to Misc. register
207 003B 0083 MOV MP1,A ;
208 003C
209 003C
210 003C ;------------------------------------------------------------------------------------
211 003C 3C00 E sz bwait_setup
212 003D 2B90 jmp wait_next_setup
213 003E
214 003E 3B82 snz r1.@usb_len0
215 003F 2B97 jmp AccessFIFO0_cont ;out, in
216 0040 ;------------------------------------------------------------------------------------
217 0040 wait_next_setup:
218 0040 0F46 MOV A,USB_MISC ;MP1 point to Misc. register
219 0041 0083 MOV MP1,A ;
220 0042 0000 nop
221 0043 0000 nop
222 0044 3E82 sz r1.@USB_Setup
223 0045 2B97 jmp AccessFIFO0_cont ;seup
224 0046
225 0046 ;--------------------------------------------------------------------------------------
226 0046 ; SNZ bFLAG_AdrF ;Need to write address
227 0046 ; JMP ExitExt0
228 0046 ;
229 0046 ; CALL FIFO0_Wr_Check ;FIFO0 ready ?
230 0046 ; clr r1.@USB_Req
231 0046 ; SZ Z ;
232 0046 ; JMP ExitExt0
233 0046 ;
234 0046 ;;set address
235 0046 ; rla CMD_ADDR
"File: USB_INT2.ASM Holtek Cross-Assembler Version 2.86 Page 5
236 0046 ; AND A,0FEH ;& save it
237 0046 ; MOV FIFO_ADDR,A ;Move address to adress buffer
238 0046 ; SZ bRmtWakeup ;Remote wakeup exist ?
239 0046 ; SET FIFO_addr.0 ;Yes:Set remote wakeup flag
240 0046 ; MOV A,USB_ADDR_WAKE ;MP1 point to Address register
241 0046 ; MOV MP1,A ;
242 0046 ; MOV A,FIFO_ADDR ;Write to Address Register
243 0046 ; MOV R1,A ;
244 0046 ;
245 0046 ; sz CMD_ADDR
246 0046 ; set baddr_state
247 0046 ; CLR bFLAG_AdrF ;have finished address write
248 0046 2C0C JMP ExitExt0
249 0047
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -