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

📄 command.asm

📁 PS2 Game Products Test-Jig source code,
💻 ASM
字号:
;--------------------------------------------------------------------		
;[40] Reserved

TABLE_40
		MOVLW	CMD40
		MOVWF	COMMAND1
		
		CLRF	COMMAND2
		
		MOVLW	0x00
		MOVWF	TX0
		
		MOVLW	0x40	;02
		MOVWF	TX1	
		
		MOVLW	0x00
		MOVWF	TX2	
		MOVWF	TX3	
		MOVWF	TX4	
		MOVWF	TX5	

		RETURN

;--------------------------------------------------------------------
;[41] Reserved

TABLE_41
		MOVLW	CMD41
		MOVWF	COMMAND1
		
		CLRF	COMMAND2
		
		MOVLW	0x5A
		MOVWF	TX0	
		MOVWF	TX1	
		MOVWF	TX2	
		MOVWF	TX3	
		MOVWF	TX4	
		MOVWF	TX5	
	
		RETURN		

;--------------------------------------------------------------------
;[42] Button and Analog level acquisition and actuator parameter setting

TABLE_42	MOVLW	CMD42
		MOVWF	COMMAND1	;COMMAND1 = 42

		CLRF	COMMAND2	;COMMAND2 = 00

		MOVLW	0x00
		MOVWF	TX0		;TX(0-5) = 0xFF
		MOVWF	TX1
		MOVWF	TX2
		MOVWF	TX3
		MOVWF	TX4
		MOVWF	TX5		
	
		BTFSS	MODE_3		;DEVICE TYPE=3 ?
		GOTO	VIBRATION	;NO
;		MOVLW	0x80
;		MOVWF	COMMAND2

		MOVLW	B'00000110'	;CAPTURE PORTC,1   
		MOVWF	CCP2CON	

		INCF	COUNTER,F	;SEND PULSE (16Hz)
		BTFSS	SENSOR		;ENABLE	PADINT PIN ?
		GOTO	EXIT_TABLE_42
		MOVLW	0x08		;SEND 10
		MOVWF	TX0

		CLRF	CCP2CON		;DISABLE CAPTURE PORTC,1
			
		GOTO	EXIT_TABLE_42

;CHECK_PROTOCOL	BTFSS	PROTOCOL_VER	;PROTOCOL 2.0 ?		
;		GOTO	CHECK_ACK	;NO		

VIBRATION	BTFSC	MODE_2		;DEVICE TYPE=2 ?
		GOTO	VIBRATION_1	;YES
		BTFSS	DIS_BUT1,1	;R2 BUTTON IS PRESSED ?
		GOTO	LARGE_MOTOR	;NO		
		MOVLW	0x80		;SEND 01
		MOVWF	TX0

LARGE_MOTOR	BTFSS	DIS_BUT1,2	;L1 BUTTON IS PRESSED ?
		GOTO	LARGE_MOTOR2	;NO
		MOVF	RX3,W
		BTFSC	MODE_E		;MODE E5 ? -> "ACSII" FISHING CONTROLLER
		MOVF	RX5,W
		CALL	CONVERT
		BTFSC	MODE_4
		MOVLW	0xFE		;SEND 7F
		MOVWF	TX1
		GOTO	LARGE_MOTOR2

VIBRATION_1	BTFSS	DIS_BUT1,3	;R1 BUTTON IS PRESSED ?
		GOTO	LARGE_MOTOR1	;NO
		MOVLW	0x80
		MOVWF	TX0

LARGE_MOTOR1	BTFSS	DIS_BUT1,5	;O BUTTON IS  PRESSED ?
		GOTO	LARGE_MOTOR2
		MOVF	RX2,W
		CALL	CONVERT
		MOVWF	TX1

LARGE_MOTOR2	BTFSS	DIS_BUT1,6	;X BUTTON IS  PRESSED ?
		GOTO	EXIT_TABLE_42	;NO

		BTFSS	DIS_BUT1,2	;L1 BUTTON IS PRESSED ?
		GOTO	EXIT_TABLE_42	;NO	

		MOVF	RX5,W
		CALL	CONVERT
		BTFSC	MODE_4		;41 MODE ?
		MOVLW	0xFE		;YES -> SEND 7F
		MOVWF	TX1

EXIT_TABLE_42	RETURN

;[43] Controller parameter setting mode ON/OFF,the unitialized state resetting

TABLE_43_ON	MOVLW	CMD43

		MOVWF	COMMAND1
		
		CLRF	COMMAND2

		MOVLW	0x80	;TX0=01
		MOVWF	TX0 
		
		MOVLW	0xFF
		MOVWF	TX1	
		MOVWF	TX2	
		MOVWF	TX3	
		MOVWF	TX4	
		MOVWF	TX5	

		RETURN

;[43] Controller parameter setting mode ON/OFF,the unitialized state resetting

TABLE_43_OFF	MOVLW	CMD43
		MOVWF	COMMAND1

		CLRF	COMMAND2

		CLRF	TX0 	;TX0=00
		
		MOVLW	0xFF
		MOVWF	TX1	
		MOVWF	TX2	
		MOVWF	TX3	
		MOVWF	TX4	
		MOVWF	TX5	

		RETURN

;[44] Controller mode setup

TABLE_44	MOVLW	CMD44
		MOVWF	COMMAND1

		RETURN
		
;[45]: Controller information acquistion		

TABLE_45	MOVLW	CMD45		;COMMAND1
		MOVWF	COMMAND1		

		CLRF	COMMAND2	;COMMAND2
		
		MOVLW	0x5A
		MOVWF	TX0	
		MOVWF	TX1	
		MOVWF	TX2	
		MOVWF	TX3	
		MOVWF	TX4	
		MOVWF	TX5	
	
		RETURN

;--------------------------------------------------------------------		
;[4D]: Setting of actuator parameter alignment to be sent at button acquisition

TABLE_4D	MOVLW	CMD4D		;COMMAND1
		MOVWF	COMMAND1		

		CLRF	COMMAND2	;COMMAND2
		

		CLRF	TX0	
		
		MOVLW	0x80		
		MOVWF	TX1	;TX1=01

		MOVLW	0xFF
		MOVWF	TX2	
		MOVWF	TX3	
		MOVWF	TX4	
		MOVWF	TX5	
	
		RETURN
	
;--------------------------------------------------------------------		
;[4E] Reserved

TABLE_4E
		MOVLW	CMD4E
		MOVWF	COMMAND1
		
		CLRF	COMMAND2
		
		MOVLW	0x5A
		MOVWF	TX0
		MOVWF	TX1
		MOVWF	TX2
		MOVWF	TX3	
		MOVWF	TX4	
		MOVWF	TX5	

		RETURN	
		
;--------------------------------------------------------------------		
;[4F] Reserved

TABLE_4F
		MOVLW	CMD4F
		MOVWF	COMMAND1
		
		CLRF	COMMAND2
		
		MOVLW	0xFF
		MOVWF	TX0
		MOVWF	TX1
		
		MOVLW	0xC0	;03
		MOVWF	TX2

		MOVLW	0x00
		MOVWF	TX3	
		MOVWF	TX4	
		MOVWF	TX5	

		RETURN
		
TABLE_46

TABLE_47

TABLE_4C



;--------------------------------------------------------------------				
SEND_40_CMD
		CALL	DTR_INT_TIME	
		CALL	TABLE_40
		CALL	COMMUNICATE		
		
		BTFSS	DSR_TIMOUT_FB		;DSR time out ?
		GOTO	EXIT_SEND_40_CMD	;No
		
		MOVLW	0x02			;Yes -> Set PROTOCOL_VER=2.0
		MOVWF	PROTOCOL_VER	
		
EXIT_SEND_40_CMD		
		RETURN						

;--------------------------------------------------------------------				
SEND_41_CMD
		CALL	DTR_INT_TIME	
		CALL	TABLE_41
		CALL	COMMUNICATE		

		BTFSS	DSR_TIMOUT_FB		;DSR time out ?
		GOTO	EXIT_SEND_41_CMD	;No
		
		MOVLW	0x02			;Yes -> Set PROTOCOL_VER=2.0
		MOVWF	PROTOCOL_VER	
EXIT_SEND_41_CMD		
		RETURN		
								
;--------------------------------------------------------------------		
SEND_42_CMD
		CALL	DTR_INT_TIME	
		CALL	TABLE_42
		CALL	COMMUNICATE
			
		RETURN
		
;--------------------------------------------------------------------				
SEND_43_ON_CMD		
		CALL	DTR_INT_TIME	
		CALL	TABLE_43_ON
		CALL	COMMUNICATE		
		
		BTFSC	DSR_TIMOUT_FB		;DSR time out ?
		GOTO	EXIT_SEND_43_ON_CMD	;Yes			

		MOVLW	0x02			;No -> Set PROTOCOL_VER=2.0
		MOVWF	PROTOCOL_VER						

EXIT_SEND_43_ON_CMD				
		RETURN
		
;--------------------------------------------------------------------				
SEND_43_OFF_CMD		
		CALL	DTR_INT_TIME	
		CALL	TABLE_43_OFF
		CALL	COMMUNICATE		

		BTFSS	DSR_TIMOUT_FB		;DSR time out ?
		GOTO	EXIT_SEND_43_OFF_CMD	;No		

		MOVLW	0x01			;Yes -> Set PROTOCOL_VER=1.0
		MOVWF	PROTOCOL_VER

EXIT_SEND_43_OFF_CMD			
		RETURN		
		
;--------------------------------------------------------------------				
SEND_44_CMD
		RETURN
;--------------------------------------------------------------------				
SEND_45_CMD
		CALL	DTR_INT_TIME	
		CALL	TABLE_45
		CALL	COMMUNICATE		
		
		MOVF	RX0,W
		XORLW	0xC0
		BTFSS	STATUS,Z		;Revision Code=03
		GOTO	EXIT_SEND_45_CMD	;No 
		
		MOVLW	0x04
		MOVWF	PROTOCOL_VER		;Set PROTOCOL_VER=3.0
				
EXIT_SEND_45_CMD		
		RETURN		
		
;--------------------------------------------------------------------				
SEND_46_CMD
		RETURN
		
;--------------------------------------------------------------------				
SEND_47_CMD
		RETURN		
		
;--------------------------------------------------------------------				
SEND_48_CMD
		RETURN				

;--------------------------------------------------------------------				
SEND_49_CMD
		RETURN						

;--------------------------------------------------------------------				
SEND_4A_CMD
		RETURN								

;--------------------------------------------------------------------				
SEND_4B_CMD
		RETURN										

;--------------------------------------------------------------------				
SEND_4C_CMD
		RETURN										
;--------------------------------------------------------------------						
SEND_4D_CMD
		CALL	DTR_INT_TIME	
		CALL	TABLE_4D
		CALL	COMMUNICATE		
		
		BTFSS	DSR_TIMOUT_FB		;DSR time out ?
		GOTO	EXIT_SEND_4D_CMD	;No
		
		MOVLW	0x01			;Yes
		MOVWF	PROTOCOL_VER
	
EXIT_SEND_4D_CMD		
		RETURN						
		
;--------------------------------------------------------------------				
SEND_4E_CMD
		CALL	DTR_INT_TIME	
		CALL	TABLE_4E
		CALL	COMMUNICATE		

		BTFSS	DSR_TIMOUT_FB		;DSR time out ?
		GOTO	EXIT_SEND_4E_CMD	;No
		
		MOVLW	0x02			;Yes ->Set PROTOCOL_VER=2.0
		MOVWF	PROTOCOL_VER		

EXIT_SEND_4E_CMD		
		RETURN										
		
;--------------------------------------------------------------------				
SEND_4F_CMD
		CALL	DTR_INT_TIME	
		CALL	TABLE_4F
		CALL	COMMUNICATE		

		BTFSS	DSR_TIMOUT_FB		;DSR time out ?
		GOTO	EXIT_SEND_4F_CMD	;No
		
		MOVLW	0x02			;Yes ->Set PROTOCOL_VER=2.0
		MOVWF	PROTOCOL_VER		

EXIT_SEND_4F_CMD		
		RETURN								

;--------------------------------------------------------------------				

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -