- 注册时间
- 2004-12-11
- 最后登录
- 1970-1-1
|

楼主 |
发表于 2010-12-12 15:06:48
|
显示全部楼层
没啥意思,运行后按除热键外的其他按键可以显示对应的asc码。
本人所用的资料来自互联网。
代码很乱,编译器是zardoz,在砂创官网上都有。
==============
CHIP W65C02S
INCLUDE "st2205u.h" ;自己对照mcu说明书写的,说明书也是在官网上下载的
LCD_SEG .EQU 240
LCD_COM .EQU 160 ;没用
.ORG C311H
JMP MAIN
MAIN
JSR 0290H
CLI
.DB 1,29H,40H ;清屏,不知道为什么要这样写
LDA 0402H ;键值
JSR A1
JMP TOSCR
A1
LDX #FFH
AL
INX
LDA KEY,X
CMP #FFH
BEQ AL1
CMP 0402H
BNE AL
TXA
ASL
TAX
LDA KEYJ+1,X
PHA
LDA KEYJ,X
PHA
TOSCR
NOP
LDA 0402H
;AND #0FH
STA 80H
JSR HEXTOASC
LDA 81H
STA TEXTBUF
LDA 80H
STA TEXTBUF+1
JSR TEXTTOLCD
JMP ifHotKey
AL1
RTS
ESC
JSR 0290H
CLI
.DB 1,95H
.DB 43H
RTS ;没用,本人太笨,不知道为什么按返回键没反应
END
LL
JSR ifHotKey
JMP MAIN
KEY
.DB 8BH,8AH,95H,96H,86H,87H,FFH
KEYJ
.DW ESC-1,LL-1,LL-1,LL-1,LL-1,LL-1
TEXTTOLCD
LDA #2
STA 8975H
STA 8976H
LDX #<TEXTBUF
LDY #>TEXTBUF
LDA #0FH
STA 897BH
LDA #FFH
STA 897CH
STA 897DH
JSR 0290H
CLI
.DB 1,F1H
RTI ;显示到屏幕
RTS
ifHotKey
jsr 0290h
cli
.db 1,8dh,43h
rts ;检测热键
ASC: ;摘自立天的debug3k,汗我连hex转asc都不会写呢
.DB "0123456789ABCDEF"
;*******HEXTOASC:HEX TO 80,RESULT:80,81.EG:80=2A THEN 81="2"80="A"
HEXTOASC
TXA
PHA
LDA 80H
PHA
LSR
LSR
LSR
LSR
STA 81H
PLA
AND #0FH
STA 80H
LDA 80H
TAX
LDA ASC,X
STA 80H
LDA 81H
TAX
LDA ASC,X
STA 81H
PLA
TAX
RTS
TEXTBUF
.DB " <-键值",0
.DB "OKOKOKOK" ;没用,方便识别
[ 本帖最后由 POTO 于 2010-12-12 15:39 编辑 ] |
|