易码技术论坛

 找回密码
 加入易码
搜索
查看: 81114|回复: 1

[分享]NC2K&&NC3000&&TC1000的键盘检测函数

[复制链接]
发表于 2005-1-31 14:17:00 | 显示全部楼层
节电的原理,我还没时间去看~
QIQI你把代码写出来不久可以了

14769_4545_6126.rar

168 KB, 下载次数: 258

 楼主| 发表于 2005-1-31 00:53:52 | 显示全部楼层 |阅读模式
;这些东西都是我为了做游戏这几天写的,但也算不上原创了,因为方法大家都知道

;只是搜集那些数据也会花些工夫,我就全贴出来方便大家使用

;********************************************************************************************

;Getchar For NC3K,PC2K,NC2K

Getchar:
          LDA #$00
          STA $C7
GetLoop:
          LDA #$00
          STA $03f6        ;Tc1000 改为sta $03f7既可
          sta $0401
          LDA $c7
          BPL GetLoop
          AND #$7f
          STA $c7
          RTS

;*******************************
;函数说明:CheckKey for NC3k&&Tc1k
;入参A,出参:Y:SEC,N:CLC
;*******************************
CheckKeyData1 .DB $0a,$00,$25,$16,$69,$6b,$13,$17
              .DB $08,$00,$26,$0e,$75,$6a,$6d,$20
              .DB $06,$00,$0f,$0d,$79,$68,$6e,$2e
              .DB $18,$00,$27,$70,$74,$67,$62,$30
              .DB $00,$00,$1f,$15,$72,$66,$76,$1b
              .DB $02,$00,$1e,$14,$65,$64,$63,$12
              .DB $04,$00,$1d,$6c,$77,$73,$78,$1a
              .DB $0c,$00,$1c,$6f,$71,$61,$7a,$19
CheckKeyData2 .db $01,$02,$04,$08,$10,$20,$40,$80            

CheckKey:
         LDX #$3f
CheckKeyLoop1:         
         CMP CheckKeyData1,x
         BEQ CheckKeyLabel1
         DEX
         BPL CheckKeyLoop1
CheckKeyReturn0:         
         CLC
         RTS
CheckKeyLabel1:
         TXA
         LSR
         LSR
         LSR
         TAY
         TXA
         AND #$07
         TAX
         LDA CheckKeyData2,x
         AND $bf,y
         BNE CheckKeyReturn0
         SEC
         RTS

;****************************************************

;*******************************
;函数说明:CheckKey for NC2K,PC2K

;入参A,出参:Y:SEC,N:CLC
;*******************************
CheckKeyData1 .DB $00,$00,$00,$16,$69,$6b,$13,$17
              .DB $00,$0c,$00,$0e,$75,$6a,$6d,$20
              .DB $00,$02,$0f,$0d,$79,$68,$6e,$2e
              .DB $00,$04,$11,$70,$74,$67,$62,$30
              .DB $00,$06,$1f,$15,$72,$66,$76,$1b
              .DB $00,$08,$1e,$14,$65,$64,$63,$12
              .DB $21,$0a,$1d,$6c,$77,$73,$78,$1a
              .DB $18,$00,$1c,$6f,$71,$61,$7a,$19
CheckKeyData2 .db $01,$02,$04,$08,$10,$20,$40,$80            

CheckKey:
         LDX #$3f
CheckKeyLoop1:         
         CMP CheckKeyData1,x
         BEQ CheckKeyLabel1
         DEX
         BPL CheckKeyLoop1
CheckKeyReturn0:         
         CLC
         RTS
CheckKeyLabel1:
         TXA
         LSR
         LSR
         LSR
         TAY
         TXA
         AND #$07
         TAX
         LDA CheckKeyData2,x
         AND $bf,y
         BNE CheckKeyReturn0
         SEC
         RTS

;********************************************************

;CheckKey FOR NC1020(CC880,CC980)

CheckKeyData1 .DB $00,$00,$00,$16,$69,$6b,$13,$17
              .DB $0A,$00,$00,$0e,$75,$6a,$6d,$20
              .DB $08,$00,$1f,$0d,$79,$68,$6e,$2e
              .DB $0C,$00,$1E,$70,$74,$67,$62,$30
              .DB $02,$00,$1D,$15,$72,$66,$76,$1b
              .DB $06,$00,$1C,$14,$65,$64,$63,$12
              .DB $04,$00,$11,$6c,$77,$73,$78,$1a
              .DB $18,$00,$0F,$6f,$71,$61,$7a,$19
CheckKeyData2 .db $01,$02,$04,$08,$10,$20,$40,$80            

CheckKey:
         LDX #$3f
CheckKeyLoop1:         
         CMP CheckKeyData1,x
         BEQ CheckKeyLabel1
         DEX
         BPL CheckKeyLoop1
CheckKeyReturn0:         
         CLC
         RTS
CheckKeyLabel1:
         TXA
         LSR
         LSR
         LSR
         TAY
         TXA
         AND #$07
         TAX
         LDA CheckKeyData2,x
         AND $bc,y                             ;here is $bc!
         BNE CheckKeyReturn0
         SEC
         RTS
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-4-20 01:59 , Processed in 0.009206 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表