; 读取手柄1
; JOY_NOW:当前值, JOY_LAST:前一次的值
; 一些常数, 某些可以按位或组合
; Right:$01, Left:$02, Down:$04, Up:$08
; Start:$10, Select:$20, B:$40, A:$80
JOY_NOW = $00
JOY_LAST = $01
read_joy:
lda JOY_NOW ; 保存上一次的值
pha
lda #$01 ; 硬件初始化
sta $4016
lsr
sta $4016
ldx #$08 ; 循环读取8次
sta JOY_NOW ; 初始化
sta JOY_LAST
joy_loop:
lda $4016 ; 循环读取
and #$01 ; 仅取的效位
sta JOY_LAST ; 借用上一次的地址
lda JOY_NOW
asl
ora JOY_LAST
sta JOY_NOW
dex
bne joy_loop
pla ; 保存上一次的按键值
sta JOY_LAST
rts
NES读取手柄的6502汇编代码
文章评论
4
发表评论
登录
登出
-
你这个不会自适应啊
-
有空就完善~ :-)
-
很好很强大.<
-
哪位大神路过? ^^
-
-
-
还没有用户发表过评论,我要发表评论。
编辑评论