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

📄 chk_key.asm

📁 PS2 Game Products Test-Jig source code,
💻 ASM
字号:
;///////////////////////////////////////////////////////
;DEFAULT 41 MODE
;///////////////////////////////////////////////////////
		
CHECK_KEY	COMF	RX0,W		;INVERT RX0 DATA
		MOVWF	DIS_BUT0

		COMF	RX1,W           ;INVERT RX1 DATA
		MOVWF	DIS_BUT1
				
MODE23		BTFSS	MODE_2		;CHECK DEVICE TYPE=2 ?
		GOTO	MODE31		;NO

;		MOVLW	0xF8
;		ANDWF	DIS_BUT0,F

;		MOVLW	0x3F
;		ANDWF	DIS_BUT1,F

		GOTO	CHK_PSCTP_CHG

MODE31		BTFSS	MODE_3		;CHECK DEVICE TYPE=3 ?
		GOTO	MODE53		;NO
		
;		MOVLW	0x08		
;		ANDWF	DIS_BUT0,F

;		MOVLW	0xC0
;		ANDWF	DIS_BUT1,F	
		
		GOTO	CHK_PSCTP_CHG

MODE53		BTFSS	MODE_5		;CHECK DEVICE TYPE=5 ?
		GOTO	CHK_PSCTP_CHG	;NO
		
		MOVLW	B'01100001'
		ANDWF	DIS_BUT1,W
		MOVWF	TEMP_BUFFER
		
		BTFSC	DIS_BUT1,7	;PRESSED R2?
                BSF	TEMP_BUFFER,1	
                BTFSC	DIS_BUT1,1	;PRESSED L1?
		BSF	TEMP_BUFFER,2
                BTFSC	DIS_BUT1,4	;RRESSED R1?
                BSF	TEMP_BUFFER,3
                BTFSC	DIS_BUT1,3	;RRESSED TRIANGLE BUTTON ?
                BSF	TEMP_BUFFER,4	
                BTFSC	DIS_BUT1,2	;PRESSED SQUARE BUTTON ?	
                BSF	TEMP_BUFFER,7
                       	
                MOVF	TEMP_BUFFER,W
                MOVWF	DIS_BUT1
                
;--------------------------------------------------------------------
CHK_PSCTP_CHG:
		
		MOVF	DIS_BUT0,W
		XORWF	DIS_BUT0_SAV,W
		BTFSS	STATUS,Z	
		GOTO	CHK_PSCTP_CHG1
		
		MOVF	DIS_BUT1,W
		XORWF	DIS_BUT1_SAV,W
		BTFSC	STATUS,Z
		GOTO	EXIT_CHECK_KEY			

;--------------------------------------------------------------------
CHK_PSCTP_CHG1:		
		MOVF	DIS_BUT0,W
		MOVWF	DIS_BUT0_SAV
		
		MOVF	DIS_BUT1,W
		MOVWF	DIS_BUT1_SAV

;--------------------------------------------------------------------
		MOVF	DIS_BUT0,W
		XORLW	B'00000001'	
		BTFSS	STATUS,Z	;SELECT Button is pressed ?
		GOTO	CHK_KEY1	;No
		
		MOVF	DIS_BUT1,W
		XORLW	B'00000101'		
		BTFSS	STATUS,Z	;L2 / L1 Buttons is preesed ?
		GOTO	CHK_KEY1	;No

		MOVF	PSCTP_REQ,W
		SUBLW	0x02
		MOVLW	0x02
		BTFSC	STATUS,C	;Check protocol ver 2 or 3 ?
		MOVLW	0x03		
		MOVWF	PSCTP_REQ	;Psctp ver 2->3 or 3->2  
				
		BSF	CHG_PSCTP_FB	;Change Protocol Version 2->3 or 3->2

		MOVLW	D'35'
		MOVWF	TEMP_BUFFER
		MOVWF	TEMP_BUFFER1
		MOVWF	TEMP_BUFFER2				
		
DIS_CONNECT
		CLRWDT
		DECFSZ	TEMP_BUFFER,F
		GOTO	DIS_CONNECT
	
		DECFSZ	TEMP_BUFFER1,F
		GOTO	DIS_CONNECT
		
		DECFSZ	TEMP_BUFFER2,F
		GOTO	DIS_CONNECT		
		
		GOTO	EXIT_CHECK_KEY
		
;--------------------------------------------------------------------
CHK_KEY1:	
		MOVF	DIS_BUT0,W
		XORLW	B'10001001'	
		BTFSS	STATUS,Z	;START / SELECT / LEFT Button is pressed ?
		GOTO	CHK_KEY2	;No
		
		MOVF	DIS_BUT1,W
		XORLW	B'00100011'		
		BTFSS	STATUS,Z	;L2 / R2 / CIRCLE  Buttons is preesed ?
		GOTO	CHK_KEY2	;No			        

		BSF	PCLATH,3
        	CALL	EE_WPROT
		CLRF	PCLATH    

	        CALL	ERASE_EEP
		CALL	WR_DEFAULT_DATA			        
			        
		BSF	RESET_PROG

		GOTO	EXIT_CHECK_KEY
		
;--------------------------------------------------------------------		
CHK_KEY2:	
		MOVF	DIS_BUT0,W
		XORLW	B'10000001'	
		BTFSS	STATUS,Z	;SELECT / LEFT Button is pressed ?
		GOTO	EXIT_CHECK_KEY	;No
		
		MOVF	DIS_BUT1,W
		XORLW	B'00100011'		
		BTFSS	STATUS,Z	;L2 / R2 / CIRCLE Buttons is preesed ?
		GOTO	EXIT_CHECK_KEY	;No			        
	
		BTFSS	EE_EXIST_FB	;EEPROM existed ?
		GOTO	EXIT_CHECK_KEY	;No -> exit
		
		MOVLW	0x01
		MOVWF	EE_ADDR
		CLRF	EE_BUF0
		CLRF	EE_BUF1
		
		BSF	PCLATH,3
		CALL	EE_READ
		CLRF	PCLATH
		
		RRF	EE_BUF1,W
		BTFSS	STATUS,C
		BSF	EE_BUF1,0
		
		BTFSC	STATUS,C
		BCF	EE_BUF1,0

		BSF	PCLATH,3	
		CALL	EE_WRITE
		CLRF	PCLATH

		BSF	RESET_PROG		
      
EXIT_CHECK_KEY	RETURN

⌨️ 快捷键说明

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