- 注册时间
- 2004-10-25
- 最后登录
- 1970-1-1
|
为文曲星pc1000a/pc1000/cc800添加游戏手柄
注意:如果你的文曲星按下述文章测试而出现问题,本人概不负责。请三思后动手!有什么问题请发E-mail:gggyg@163.com
从文曲星的通信原理可以知道$18接受两条io线,这可以为文曲星做一个手柄。接线图如图(图在压缩包里)。其中电池可用文曲星用过的电池。是否按下按键K1,K2可以通过$18上的第5,第6位可以检测出来。
检测程序如下:
1.汇编
LDA $00
STA $07 ;把$18的5,6位设为接受
LDA $18
AND #$20 ;检测$18的第5位是否为1,如是则K1按下
BEQ ;跳转
LDA $18
AND #$40 ;检测$18的第6位是否为1,如是则K2按下
BEQ ;跳转
我编了一个测试软件,汇编代码如下:
2010: 20 38 E1 JSR $E138
2013: A9 00 LDA #$00
2015: 85 07 STA $07 ;把$18的5,6位设为接受
2017: 20 A8 E0 JSR $E0A8 ;防止循环死机
201A: A5 18 LDA $18
201C: 29 40 AND #$40 ;检测$18的第6位是否为1,如是则K2按下
201E: F0 05 BEQ $2025
2020: A9 01 LDA #$01
2022: 20 37 20 JSR $2037
2025: A5 18 LDA $18
2027: 29 20 AND #$20 ;检测$18的第5位是否为1,如是则K1按下
2029: F0 05 BEQ $2030
202B: A9 50 LDA #$50
202D: 20 37 20 JSR $2037
2030: A5 CD LDA $CD
2032: C9 F7 CMP #$F7
2034: D0 E1 BNE $2017
2036: 60 RTS
2037: 8D A6 03 STA $03A6 ;画矩形子程序
203A: 18 CLC
203B: 69 4F ADC #$4F
203D: 8D A8 03 STA $03A8
2040: A9 01 LDA #$01
2042: 8D A7 03 STA $03A7
2045: 18 CLC
2046: 69 4F ADC #$4F
2048: 8D A9 03 STA $03A9
204B: A9 01 LDA #$01
204D: 8D AC 03 STA $03AC
2050: 20 A1 E1 JSR $E1A1
2053: EA NOP
2054: EA NOP
2055: EA NOP
2056: A9 00 LDA #$00
2058: 8D AC 03 STA $03AC
205B: 20 A1 E1 JSR $E1A1
205E: 60 RTS
2.bas中的运用
例1.初试化,在文件开始加入:
0 POKE 7,0
1 DATA 165,24,41,32,141,255,63,165,24,41,64,141,254,63,96
2 FOR I=0 TO 14 :READ A OKE 16360+I,A:NEXT
调用:
100 CALL 16360
103 IF PEEK (16383)<>0 THEN ;如果按下k1就跳转
105 IF PEEK (16382)<>0 THEN ;如果按下k2就跳转
以上是我把打砖块修改成可用手柄的加入代码。
例2.初试化,在文件开始加入:
1 POKE 16373,165 OKE 16374,24 OKE 16375,41:POKE 16376,96:POKE 16377,133:POKE 16378,250
2 POKE 16379,96:POKE 7,0
调用:
1010 CALL 16373
1011 IF PEEK (250)<>32 THEN 1020 ;如果按下k1就跳转
……
1020 IF PEEK (250)<>64 THEN 1028 ;如果按下k2就跳转
以上是我把暴走蛇修改成可用手柄的加入代码。
压缩包里有所要的软件,暴走蛇&打砖块的版权属于原作者!
|
|