⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 class_request.asm

📁 holtech bar code reader 汇编程序
💻 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_InReportSize
		SNZ         Z
		JMP         L_StallPipe0
		
		SNZ         F_DataReady
		JMP         L_StallPipe0
		JMP         L_COMToUSB
;;-------------------------------------------------------------------
L_COMZero:
		CLR         F_DataUpdate
		CLR         R_FIFOBAK0
		JMP         L_SendFIFO
;;--------------------------------------------------------------------
L_COMToUSB:         ;this routine never used
		CLR       F_DataUpdate
		MOV	  A,08H
		MOV	  R_InputReportDataSize,A
		
		MOV       A,OFFSET R_ReceiveBuffer
		MOV       MP0,A
	
		MOV	  A,MP1
		MOV	  R_Tmp1,A  ;save mp1	
		
		MOV       A,OFFSET R_FIFOBAK0
		MOV       MP1,A

L_LoopLoadDataToFifoBuffer2:
		MOV       A,R0
		MOV       R1,A

		INC	  MP0
		INC	  MP1
		SDZ	  R_InputReportDataSize
		JMP       L_LoopLoadDataToFifoBuffer2

L_SendFIFO:
                MOV	  A,R_Tmp1
                MOV	  MP1,A       ;restore MP1   
		MOV         A,C_InReportSize                   
		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_LengthH
		jmp         L_StallPipe0
		mov         a,T_LengthL
		XOR         A,C_OutReportSize                ;jerry
		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 + -