📄 standard_request.tmp
字号:
207 009C L_GetStringDescriptor:
babaaabaajmaanab MOV A,T_IndexH
MOV A,T_IndexH
babaaabaajnaanbb OR A,T_IndexL
OR A,T_IndexL
babaaabaajoaancb OR A,T_ValueL
OR A,T_ValueL
211 009F 0F02 MOV A,2
babaaabaakaaaneb SZ Z
SZ Z
babaaabaakbaanfb JMP L_Zero_String ;T_IndexH=T_IndexL=T_ValueL=0
JMP L_Zero_String ;T_IndexH=T_IndexL=T_ValueL=0
214 00A2 ; JMP L_Get_String
215 00A2 L_Get_String:
babaaabaakcaanib MOV A,T_IndexH
MOV A,T_IndexH
babaaabaakdaanjb XOR A,C_LanguageIDH
XOR A,C_LanguageIDH
babaaabaakeaankb SNZ Z
SNZ Z
babaaabaakfaanlb JMP L_StallPipe0
JMP L_StallPipe0
220 00A6
babaaabaakgaannb MOV A,T_IndexL
MOV A,T_IndexL
babaaabaakhaanob XOR A,C_LanguageIDL
XOR A,C_LanguageIDL
babaaabaakiaanpb SNZ Z
SNZ Z
babaaabaakjaaoab JMP L_StallPipe0
JMP L_StallPipe0
225 00AA 0F02 MOV A,2H
babaaabaaklaaocb SUB A,T_ValueL
SUB A,T_ValueL
babaaabaakmaaodb SNZ C
SNZ C
babaaabaaknaaoeb JMP L_StallPipe0
JMP L_StallPipe0
229 00AE ;; ADDM A,PCL
230 00AE ;; ADD A,1+4
231 00AE ;; ADD A,2+1
babaaabaakoaaoib MOV A,low Table_LanguageID ;00
MOV A,low Table_LanguageID ;00
babaaabaakpaaojb SZ T_ValueL.0
SZ T_ValueL.0
babaaabaalaaaokb MOV A,low ManufactureS ;01
MOV A,low ManufactureS ;01
babaaabaalbaaolb SZ T_ValueL.1
SZ T_ValueL.1
babaaabaalcaaomb MOV A,low ProductS
MOV A,low ProductS
babaaabaaldaaonb MOV A,TBLP
MOV A,TBLP
babaaabaaleaaoob TABRDL M_DescriptorLength
TABRDL M_DescriptorLength
babaaabaalfaaopb JMP L_GetSendDataLength
JMP L_GetSendDataLength
240 00B6
241 00B6 L_Zero_String:
babaaabaalgaapcb ADD A,LOW Table_LanguageID
ADD A,LOW Table_LanguageID
243 00B7 0A02 SUB A,2
babaaabaaliaapeb MOV TBLP,A
MOV TBLP,A
babaaabaaljaapfb TABRDL M_DescriptorLength
TABRDL M_DescriptorLength
babaaabaalkaapgb JMP L_GetSendDataLength
JMP L_GetSendDataLength
247 00BB ;;--------------------------------------------------------------------
248 00BB L_GetConfigurationDescriptor:
babaaabaallaapjb MOV A,LOW Table_ConfigurationDescriptor
MOV A,LOW Table_ConfigurationDescriptor
babaaabaalmaapkb MOV TBLP,A
MOV TBLP,A
babaaabaalnaaplb MOV A,C_ConfigurationDesLength
MOV A,C_ConfigurationDesLength
babaaabaaloaapmb JMP L_CheckIndex
JMP L_CheckIndex
253 00BF ;;--------------------------------------------------------------------
254 00BF L_GetDeviceDescriptor:
babaaabaalpaappb MOV A,LOW Table_DeviceDescriptor
MOV A,LOW Table_DeviceDescriptor
babaaabaamaabaab MOV TBLP,A
MOV TBLP,A
babaaabaambababb MOV A,C_DeviceDescriptorLength
MOV A,C_DeviceDescriptorLength
babaaabaamcabacb JMP L_CheckIndex
JMP L_CheckIndex
259 00C3 ;;--------------------------------------------------------------------
260 00C3 L_CheckIndex:
babaaabaamdabafb SZ T_IndexL
SZ T_IndexL
babaaabaameabagb JMP L_StallPipe0
JMP L_StallPipe0
babaaabaamfabahb SZ T_IndexH
SZ T_IndexH
babaaabaamgabaib JMP L_StallPipe0
JMP L_StallPipe0
265 00C7
babaaabaamhabakb MOV M_DescriptorLength,A
MOV M_DescriptorLength,A
267 00C8 L_GetSendDataLength:
babaaabaamiabamb CALL SBR_GetLengthOfSendData
CALL SBR_GetLengthOfSendData
269 00C9 L_WriteDataToBuffer:
babaaabaamjabaob CALL SBR_GetDescriptorToBuffer
CALL SBR_GetDescriptorToBuffer
271 00CA
babaaabaamkabbab MOV A,M_DataPacketLength
MOV A,M_DataPacketLength
babaaabaamlabbbb XOR A,C_FIFOSize ;data packet length = 8 byte?
XOR A,C_FIFOSize ;data packet length = 8 byte?
babaaabaammabbcb SZ Z
SZ Z
babaaabaamnabbdb SET F_BufferFull ;yes,set the flag of buffer full
SET F_BufferFull ;yes,set the flag of buffer full
babaaabaamoabbeb CLR F_SendContinue ;clear the flag of send data continue
CLR F_SendContinue ;clear the flag of send data continue
babaaabaampabbfb SZ M_DescriptorLength
SZ M_DescriptorLength
babaaabaanaabbgb JMP L_SendContinue ;if Descriptor data not load finally,jmp here
JMP L_SendContinue ;if Descriptor data not load finally,jmp here
279 00D1 ; JMP L_SendEnd ;else,jmp here
280 00D1 L_SendEnd:
babaaabaanbabbjb SZ F_BufferFull ;buffer was full?
SZ F_BufferFull ;buffer was full?
babaaabaancabbkb SET F_SendContinue ;yes,set the flag of send data continue
SET F_SendContinue ;yes,set the flag of send data continue
babaaabaandabblb SZ F_SendContinue ;need to continue send data?
SZ F_SendContinue ;need to continue send data?
babaaabaaneabbmb JMP L_WriteDataToFIFO ;yes,write data to FIFO
JMP L_WriteDataToFIFO ;yes,write data to FIFO
285 00D5
babaaabaanfabbob SZ M_DataPacketLength ;load data finally?
SZ M_DataPacketLength ;load data finally?
babaaabaangabbpb JMP L_WriteDataToFIFO ;no,write data to FIFO
JMP L_WriteDataToFIFO ;no,write data to FIFO
babaaabaanhabcab CLR F_ControlEvent ;clear the flag of setup finally
CLR F_ControlEvent ;clear the flag of setup finally
babaaabaaniabcbb JMP L_WriteDataToFIFO_0_Packet ;return 0 size packet
JMP L_WriteDataToFIFO_0_Packet ;return 0 size packet
290 00D9 L_SendContinue:
babaaabaanjabcdb CLR F_BufferFull ;clear the flag of buffer full
CLR F_BufferFull ;clear the flag of buffer full
babaaabaankabceb SET F_SendContinue ;set the flag of data not load finally
SET F_SendContinue ;set the flag of data not load finally
babaaabaanlabcfb MOV A,TBLP
MOV A,TBLP
babaaabaanmabcgb MOV M_TBLPFIFO,A ;save address of table
MOV M_TBLPFIFO,A ;save address of table
babaaabaannabchb JMP L_WriteDataToFIFO ;write FIFO
JMP L_WriteDataToFIFO ;write FIFO
296 00DE ;;--------------------------------------------------------------------
297 00DE L_GetClassDescriptor:
babaaabaanoabckb MOV A,T_IndexL
MOV A,T_IndexL
babaaabaanpabclb SUB A,C_InterfaceNO
SUB A,C_InterfaceNO
babaaabaaoaabcmb SZ C
SZ C
babaaabaaobabcnb JMP L_StallPipe0
JMP L_StallPipe0
302 00E2
babaaabaaocabcpb MOV A,T_ValueH
MOV A,T_ValueH
304 00E3 0E1F AND A,1FH
babaaabaaoeabdbb MOV M_TEMP1,A
MOV M_TEMP1,A
306 00E5 0A03 SUB A,03H
babaaabaaogabddb SZ C
SZ C
babaaabaaohabdeb JMP L_StallPipe0
JMP L_StallPipe0
babaaabaaoiabdfb MOV A,M_TEMP1
MOV A,M_TEMP1
babaaabaaojabdgb ADDM A,PCL
ADDM A,PCL
babaaabaaokabdhb JMP L_StallPipe0
JMP L_StallPipe0
babaaabaaolabdib JMP L_GetOptionalHIDDescriptor
JMP L_GetOptionalHIDDescriptor
babaaabaaomabdjb JMP L_GetReportDescriptor
JMP L_GetReportDescriptor
314 00ED ;;--------------------------------------------------------------------
315 00ED L_GetReportDescriptor:
babaaabaaonabdmb MOV A,LOW Table_ReportDescriptor
MOV A,LOW Table_ReportDescriptor
babaaabaaooabdnb MOV TBLP,A
MOV TBLP,A
babaaabaaopabdob MOV A,C_ReportDescriptorLength
MOV A,C_ReportDescriptorLength
319 00F0 2800 R JMP L_CheckIndex
320 00F1 ;;--------------------------------------------------------------------
321 00F1 L_GetOptionalHIDDescriptor:
babaaabaapbabecb MOV A,LOW Table_HIDDescriptor
MOV A,LOW Table_HIDDescriptor
babaaabaapcabedb MOV TBLP,A
MOV TBLP,A
babaaabaapdabeeb MOV A,C_HIDDescriptorLength
MOV A,C_HIDDescriptorLength
babaaabaapeabefb MOV M_DescriptorLength,A
MOV M_DescriptorLength,A
326 00F5 2800 R JMP L_GetSendDataLength
327 00F6 ;;********************************************************************
328 00F6 L_GetConfiguration:
babaaabaapgabejb CLR M_FIFOBAK0
CLR M_FIFOBAK0
babaaabaaphabekb SZ F_ConfigurationStatus
SZ F_ConfigurationStatus
babaaabaapiabelb SET M_FIFOBAK0.0
SET M_FIFOBAK0.0
332 00F9 0F01 MOV A,01H
babaaabaapkabenb JMP L_WriteDataToFIFO_AnyBytes
JMP L_WriteDataToFIFO_AnyBytes
334 00FB ;;********************************************************************
335 00FB L_SetConfiguration:
336 00FB 0F01 MOV A,1H
babaaabaapmabfbb SUB A,T_ValueL
SUB A,T_ValueL
babaaabaapnabfcb SNZ C
SNZ C
babaaabaapoabfdb JMP L_StallPipe0
JMP L_StallPipe0
babaaabaappabfeb CLR F_AddressStatus
CLR F_AddressStatus
babaaababaaabffb SNZ Z
SNZ Z
babaaababababfgb SET F_AddressStatus
SET F_AddressStatus
343 0102
babaaababacabfib CLR M_STALL
CLR M_STALL
babaaababadabfjb MOV A,C_STALL
MOV A,C_STALL
babaaababaeabfkb MOV MP1,A
MOV MP1,A
babaaababafabflb CLR R1
CLR R1
348 0106
babaaababagabfnb SZ T_ValueL
SZ T_ValueL
babaaababahabfob JMP L_ToConfigurationStatus
JMP L_ToConfigurationStatus
babaaababaiabfpb CLR F_ConfigurationStatus
CLR F_ConfigurationStatus
babaaababajabgab JMP L_WriteDataToFIFO_0_Packet
JMP L_WriteDataToFIFO_0_Packet
353 010A L_ToConfigurationStatus:
babaaababakabgcb SET F_ConfigurationStatus
SET F_ConfigurationStatus
355 010B ;; SET TMR1C.4
babaaababalabgeb JMP L_WriteDataToFIFO_0_Packet
JMP L_WriteDataToFIFO_0_Packet
357 010C ;;********************************************************************
358 010C SBR_GetLengthOfSendData:
babaaababamabghb SZ M_DataLengthH
SZ M_DataLengthH
360 010D 0003 RET
babaaababaoabgjb MOV A,M_DescriptorLength
MOV A,M_DescriptorLength
babaaababapabgkb SUB A,M_DataLengthL
SUB A,M_DataLengthL
babaaababbaabglb SNZ C
SNZ C
364 0111 0003 RET
365 0112 L_DesLenBiggerRecLen:
babaaababbcabgob MOV A,M_DataLengthL
MOV A,M_DataLengthL
babaaababbdabgpb MOV M_DescriptorLength,A
MOV M_DescriptorLength,A
368 0114 0003 RET
369 0115 ;;********************************************************************
370 0115 SBR_GetDescriptorToBuffer:
babaaababbfabhdb MOV A,OFFSET M_FIFOBAK0 ;load FIFO buffer's address
MOV A,OFFSET M_FIFOBAK0 ;load FIFO buffer's address
babaaababbgabheb MOV MP0,A
MOV MP0,A
babaaababbhabhfb CLR M_DataPacketLength ;clear packet length
CLR M_DataPacketLength ;clear packet length
374 0118 L_GetDescriptorToBufferLoop:
babaaababbiabhhb MOV A,M_DataPacketLength
MOV A,M_DataPacketLength
babaaababbjabhib XOR A,C_FIFOSize ;packet size = 8 byte?
XOR A,C_FIFOSize ;packet size = 8 byte?
babaaababbkabhjb SZ Z
SZ Z
378 011B 0003 RET ;yes,return
babaaababbmabhlb JMP L_GetDescriptorToBuffer ;no,continue
JMP L_GetDescriptorToBuffer ;no,continue
380 011D L_GetDescriptorToBuffer:
babaaababbnabhnb SZ M_DescriptorLength ;Discriptor data was load finally
SZ M_DescriptorLength ;Discriptor data was load finally
babaaababboabhob JMP L_Read_Data ;no,read data
JMP L_Read_Data ;no,read data
383 011F 0003 RET ;yes,return
384 0120 L_Read_Data:
babaaababcaabibb SNZ F_RdHighTable ;read table's high 8 bit or low 8 bit
SNZ F_RdHighTable ;read table's high 8 bit or low 8 bit
babaaababcbabicb JMP L_ReadLowByteOfTable
JMP L_ReadLowByteOfTable
387 0122 ; JMP L_ReadHighByteOfTable
388 0122 L_ReadHighByteOfTable:
babaaababccabifb CLR F_RdHighTable ;14 bit table.if High bit=3fh,then read next 8bit
CLR F_RdHighTable ;14 bit table.if High bit=3fh,then read next 8bit
babaaababcdabigb TABRDL R0
TABRDL R0
babaaababceabihb INC TBLP
INC TBLP
babaaababcfabiib MOV A,TBLH
MOV A,TBLH
393 0126 0E3F AND A,00111111B
394 0127 0C3F XOR A,3FH
babaaababciabilb SZ Z
SZ Z
396 0129 2800 R JMP L_Read_Data
babaaababckabinb MOV A,TBLH
MOV A,TBLH
398 012B 0E3F AND A,3FH
babaaababcmabipb MOV R0,A
MOV R0,A
babaaababcnabjab JMP L_ReadNextByte
JMP L_ReadNextByte
401 012E L_ReadLowByteOfTable:
babaaababcoabjcb SET F_RdHighTable
SET F_RdHighTable
babaaababcpabjdb TABRDL R0
TABRDL R0
babaaababdaabjeb JMP L_ReadNextByte
JMP L_ReadNextByte
405 0131 ;;--------------------------------------------------------------------
406 0131 L_ReadNextByte:
babaaababdbabjhb INC MP0 ;next address
INC MP0 ;next address
babaaababdcabjib INC M_DataPacketLength ;packet length add 1
INC M_DataPacketLength ;packet length add 1
babaaababddabjjb SDZ M_DescriptorLength ;descriptor length dec 1
SDZ M_DescriptorLength ;descriptor length dec 1
410 0134 2800 R JMP L_GetDescriptorToBufferLoop
411 0135 0003 RET
412 0136 ;;********************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -