?? class_request.asm
字號:
;;Established date: 2005/09/01
;;********************************************************************
L_ClassRequest:
MOV A,T_RequestType
AND A,1FH
MOV R_TEMP1,A
SUB A,04H
SZ C
JMP L_StallPipe0
MOV A,R_TEMP1
ADDM A,PCL
JMP L_StallPipe0
JMP L_InterfaceReciver
JMP L_StallPipe0
JMP L_StallPipe0
L_InterfaceReciver:
SZ T_IndexH
JMP L_StallPipe0
MOV A,T_IndexL
SUB A,C_InterfaceNO
SZ C
JMP L_StallPipe0
MOV A,T_RequestNUM
SUB A,0CH
SZ C
JMP L_StallPipe0
MOV A,T_RequestNUM
ADDM A,PCL
JMP L_StallPipe0 ;;0
JMP L_GetReport ;;1
JMP L_GetIdle ;;2
JMP L_GetProtocol ;;3
JMP L_StallPipe0 ;;4
JMP L_StallPipe0 ;;5
JMP L_Stallpipe0 ;;6
JMP L_StallPipe0 ;;7
JMP L_StallPipe0 ;;8
JMP L_SetReport ;;9
JMP L_SetIdle ;;A
JMP L_SetProtocol ;;B
;;********************************************************************
L_GetReport:
SNZ T_RequestType.7
JMP L_StallPipe0
MOV A,T_ValueH
SUB A,C_ReportType
SZ C
JMP L_StallPipe0
MOV A,T_ValueH
ADDM A,PCL
JMP L_StallPipe0
JMP L_GetInputReport
JMP L_StallPipe0
L_GetFeatureReport:
JMP L_StallPipe0
L_GetInputReport:
SZ T_LengthH
JMP L_StallPipe0
MOV A,T_IndexL
ADDM A,PCL
JMP L_GetCOMDataInput
JMP L_StallPipe0
L_GetCOMDataInput:
MOV A,T_LengthL
XOR A,C_ReportSize
SNZ Z
JMP L_StallPipe0
MOV A,R_ReBufferAddress
SUB A,R_TrBufferAddress
SZ Z
JMP L_StallPipe0
JMP L_COMToUSB
;;-------------------------------------------------------------------
L_COMZero:
CLR F_DataUpdate
CLR R_FIFOBAK0
JMP L_SendFIFO
;;--------------------------------------------------------------------
L_COMToUSB:
CLR F_DataUpdate
CLR R_InputReportDataSize
MOV A,R_TrBufferAddress
MOV MP0,A
MOV A,R0
MOV R_FIFOBAK1,A
INC R_InputReportDataSize
CALL SBR_AddBufferAddress
XOR A,R_ReBufferAddress
SZ Z
JMP L_SendFIFO
MOV A,R0
MOV R_FIFOBAK2,A
INC R_InputReportDataSize
CALL SBR_AddBufferAddress
XOR A,R_ReBufferAddress
SZ Z
JMP L_SendFIFO
MOV A,R0
MOV R_FIFOBAK3,A
INC R_InputReportDataSize
CALL SBR_AddBufferAddress
XOR A,R_ReBufferAddress
SZ Z
JMP L_SendFIFO
MOV A,R0
MOV R_FIFOBAK4,A
INC R_InputReportDataSize
CALL SBR_AddBufferAddress
XOR A,R_ReBufferAddress
SZ Z
JMP L_SendFIFO
MOV A,R0
MOV R_FIFOBAK5,A
INC R_InputReportDataSize
CALL SBR_AddBufferAddress
XOR A,R_ReBufferAddress
SZ Z
JMP L_SendFIFO
MOV A,R0
MOV R_FIFOBAK6,A
INC R_InputReportDataSize
CALL SBR_AddBufferAddress
XOR A,R_ReBufferAddress
SZ Z
JMP L_SendFIFO
MOV A,R0
MOV R_FIFOBAK7,A
INC R_InputReportDataSize
CALL SBR_AddBufferAddress
JMP L_SendFIFO
;;--------------------------------------------------------------------
L_SendFIFO:
MOV A,R_InputReportDataSize
MOV R_FIFOBAK0,A
MOV A,0FEH
ANDM A,PA
MOV A,C_ReportSize
JMP L_WriteDataToFIFO_AnyBytes
;;********************************************************************
L_GetIdle:
SNZ T_RequestType.7
JMP L_StallPipe0
SZ T_ValueH
JMP L_StallPipe0
SZ T_LengthH
JMP L_StallPipe0
MOV A,T_LengthL
XOR A,01H
SNZ Z
JMP L_StallPipe0
MOV A,R_IdleTime
SZ T_IndexL ;;0-KB, 1-Mouse
JMP L_StallPipe0
MOV R_FIFOBAK1,A
MOV A,01H
JMP L_WriteDataToFIFO_AnyBytes
;;********************************************************************
L_GetProtocol:
SNZ T_RequestType.7
JMP L_StallPipe0
SZ T_ValueL
JMP L_StallPipe0
SZ T_ValueH
JMP L_StallPipe0
SZ T_LengthH
JMP L_StallPipe0
MOV A,T_LengthL
XOR A,01H
SNZ Z
JMP L_StallPipe0
CLR ACC
SZ T_IndexL
JMP L_StallPipe0
SZ F_ReportProtocol
SET ACC.0
MOV R_FIFOBAK0,A
MOV A,01H
JMP L_WriteDataToFIFO_0_Packet
;;********************************************************************
L_SetReport:
SZ T_RequestType.7
JMP L_StallPipe0
MOV A,T_ValueH
SUB A,04H
SZ C
JMP L_StallPipe0
MOV A,T_ValueH
ADDM A,PCL
JMP L_StallPipe0
JMP L_StallPipe0
JMP L_SetOutputReport
L_SetFeatureReport:
JMP L_StallPipe0
L_SetOutputReport:
SZ T_IndexL
JMP L_StallPipe0
SZ T_LengthL
XOR A,08H
SNZ Z
JMP L_StallPipe0
MOV A,C_SetReport
MOV R_ReportIndex,A
JMP L_Exit_ISRUSB
;;********************************************************************
L_SetIdle:
SZ T_LengthL
JMP L_StallPipe0
SZ T_LengthH
JMP L_StallPipe0
MOV A,OFFSET R_IdleTime
SZ T_IndexL
JMP L_StallPipe0
MOV MP0,A
MOV A,T_ValueH
MOV R0,A
JMP L_WriteDataToFIFO_0_Packet
;;********************************************************************
L_SetProtocol:
MOV A,T_LengthL
ADD A,T_LengthH
SNZ Z
JMP L_StallPipe0
SZ T_ValueH
JMP L_StallPipe0
SZ T_IndexL
JMP L_StallPipe0
CLR F_ReportProtocol
SZ T_ValueL
SET F_ReportProtocol
JMP L_WriteDataToFIFO_0_Packet
;;********************************************************************
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -