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

📄 game.asm

📁 .ifnz I2C_SUPPORT ************************************************************** Function : fPro
💻 ASM
字号:
.ifnz GAMEPAD_SUPPORT    ;;ljd  change for 28.29.31.70 (gpio) 03/09/17
fReadGamePad:
    .ifnz SPHE8202
		;;clock,latch=0
        .ifnz GAMEPAD_FOR_128PIN
        smb     GPAD_CLK,GPAD_PORT_CFG_CLK
        .else        
		smb     GPAD_CLK,bGamePortBuff
		lda	    bGamePortBuff
		sta	    GPAD_PORT_CFG_CLK
		.endif
		
		.ifnz GAMEPAD_FOR_128PIN
        smb     GPAD_LATCH,GPAD_PORT_CFG_LATCH
        .else
		smb     GPAD_LATCH,bGamePortBuff
		lda  	bGamePortBuff
		sta	    GPAD_PORT_CFG_LATCH
		.endif

		rmb     GPAD_CLK,GPAD_PORT_CLK
		rmb     GPAD_LATCH,GPAD_PORT_LATCH

        jsr     fDelay
    
   		;;latch=1
		.ifnz GAMEPAD_FOR_128PIN
        rmb     GPAD_LATCH,GPAD_PORT_CFG_LATCH
        .else   		
   		rmb     GPAD_LATCH,bGamePortBuff
		lda	    bGamePortBuff
		sta	    GPAD_PORT_CFG_LATCH
		.endif
		
        jsr     fDelay
         jsr     fDelay

		;latch=0
		.ifnz GAMEPAD_FOR_128PIN
        smb     GPAD_LATCH,GPAD_PORT_CFG_LATCH
        .else		
		smb     GPAD_LATCH,bGamePortBuff
		lda	    bGamePortBuff
		sta	    GPAD_PORT_CFG_LATCH
		.endif
		
		rmb     GPAD_LATCH,GPAD_PORT_LATCH
        
        
        jsr     fDelay
         jsr     fDelay
          jsr     fDelay
           jsr     fDelay
            jsr     fDelay
             jsr     fDelay
        ;;read  data
        stz     IOP_DATA4_L     ;;clear data
        stz     IOP_DATA4_H

        ldx     #8

lGetNextButton: 
        .ifnz GAMEPAD_FOR_128PIN
            bbr     GPAD_D0,GPAD_PORT_D0,lPad0Is0
        .else
            bbr     GPAD_D0,GPAD_PORT_D0_D1,lPad0Is0 
        .endif
        sec
        bra     lMakePad0Dat
lPad0Is0:
        clc
lMakePad0Dat:
        rol     IOP_DATA4_L
        .ifnz GAMEPAD_FOR_128PIN
            bbr     GPAD_D1,GPAD_PORT_D1,lPad1Is0
        .else
            bbr     GPAD_D1,GPAD_PORT_D0_D1,lPad1Is0
        .endif
        sec
        bra     lMakePad1Dat
lPad1Is0:
        clc
lMakePad1Dat:
        rol     IOP_DATA4_H

        ;;make clock =1
        .ifnz GAMEPAD_FOR_128PIN
        rmb     GPAD_CLK,GPAD_PORT_CFG_CLK
        .else 
		rmb     GPAD_CLK,bGamePortBuff
		lda	    bGamePortBuff
		sta	    GPAD_PORT_CFG_CLK
		.endif
		
        jsr     fDelay
        
        ;;make clock =0
        .ifnz GAMEPAD_FOR_128PIN
        smb     GPAD_CLK,GPAD_PORT_CFG_CLK
        .else         
		smb     GPAD_CLK,bGamePortBuff
		lda	    bGamePortBuff
		sta	    GPAD_PORT_CFG_CLK
		.endif
		
		rmb     GPAD_CLK,GPAD_PORT_CLK

        jsr     fDelay
        
        dex
        bne     lGetNextButton
        
        ;;make clock =1
        .ifnz GAMEPAD_FOR_128PIN
        rmb     GPAD_CLK,GPAD_PORT_CFG_CLK
        .else         
		rmb     GPAD_CLK,bGamePortBuff
		lda	    bGamePortBuff
		sta	    GPAD_PORT_CFG_CLK
		.endif

        rts
     .else
        
		;;clock,latch=0		
		lda     GPAD_PORT_CFG_CLK
		ora		#GPAD_CFG_CLK
		sta		GPAD_PORT_CFG_CLK
		
		lda     GPAD_PORT_CFG_LATCH
		ora		#GPAD_CFG_LATCH
		sta		GPAD_PORT_CFG_LATCH
		rmb     GPAD_CLK,GPAD_PORT_CLK		

		rmb     GPAD_LATCH,GPAD_PORT_LATCH	

        jsr     fDelay
    
		
		lda     GPAD_PORT_CFG_LATCH
		and		#%11110111
		sta		GPAD_PORT_CFG_LATCH

        jsr     fDelay
		
		lda     GPAD_PORT_CFG_LATCH
		ora		#GPAD_CFG_LATCH
		sta		GPAD_PORT_CFG_LATCH
		rmb     GPAD_LATCH,GPAD_PORT_LATCH
		
        stz     IOP_DATA4_L     ;;clear data
        stz     IOP_DATA4_H

        ldx     #8

lGetNextButton: 
        bbr     GPAD_D0,GPAD_PORT_D0_D1,lPad0Is0 
        
        sec
        bra     lMakePad0Dat
lPad0Is0:
        clc
lMakePad0Dat:
        rol     IOP_DATA4_L


        bbr     GPAD_D1,GPAD_PORT_D0_D1,lPad1Is0 
        sec
        bra     lMakePad1Dat
lPad1Is0:
        clc
lMakePad1Dat:
        rol     IOP_DATA4_H

        ;;make clock =1		
		lda     GPAD_PORT_CFG_CLK
		and		#%11101111
		sta		GPAD_PORT_CFG_CLK
		
        jsr     fDelay
        
        ;;make clock =0		
		lda     GPAD_PORT_CFG_CLK  
		ora		#GPAD_CFG_CLK
		sta		GPAD_PORT_CFG_CLK
		rmb     GPAD_CLK,GPAD_PORT_CLK
		jsr     fDelay
        
        dex
        bne     lGetNextButton        
		
		lda     GPAD_PORT_CFG_CLK
		and		#%11101111
		sta		GPAD_PORT_CFG_CLK
        rts     
     .endif
.endif

⌨️ 快捷键说明

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