- 注册时间
- 2004-8-28
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2004-9-7 15:22:00
|
显示全部楼层
我知道的只有这些而已啊!!
E126用小字模式更新LCD
E102用大字模式更新LCD
E006:功能把二进制转换为十进制(入口参数:A, 输出参数:Y,A)
如:LDA#$20,JSR$E006,STY$02C0,STA$02C1,JSR$E129.
E009:可以RESET文曲星
E00C:关闭文曲星。无参数。
E00F:可以play ROM中的音乐和自己编的音乐(入口参数:$B0,$B1,$B4,$B5)
我们主要用它PLAY自己编的音乐,PLAY游戏音乐可以用BRK$FFXX,或JSR$E06F
如:LDA#$80,STA$B0,LDA#$01,STA$B1,LDA#$7D,STA$B4,LDA#$84,STA$B5,JSR$E00F.
以上程序实现的功能就是BRK$FF01.
E012:结束play
E01B:嘀鸣一声
E01E:按键提示音
E021:功能是得到英文字符8*16的点阵数据。(入口参数:A, 输出参数:$0280~$028F)
如:如让“a”显示在屏幕的2,2处,则
LDA#$61,JSR$E021,LDA#$02,STA$83,STA$85,JSR$E0F3.
E024:功能是得到8*8字符的点阵数据。(入口参数:A, 输出参数:$0280~$0287)
如:如让“a”显示在屏幕的2,2处,则
LDA#$61,JSR$E024,LDA#$02,STA$83,STA$85,JSR$E0ED.
E027:机器码执行速度为慢速
E02A:机器码执行速度为快速
E02D:机器码执行速度为中速
E030:不推荐大家使用
E033:等待时间(参数:X)如:LDX#$50,JSR$E033
E036:等待一秒钟
E039:等待160毫秒
E03C:判断A累加器中的是否为数字
如为数字则标志位C=1, 如不为数字则标志位C=0
如:LDA$2000,JSR$E03C,BCS$3100,RTS
E042:内置DEBUG,E213也是内置DEBUG
E05D和E060:功能基本相似,建议大家用E060
如果用E05D判断按键的话,当按键是1B(跳出)时,不是接着运行E05D后面的程序,而是回到前面一个JSR后继续运行
如:JSR$E09C,TAX,LDY#$05,LDA#$00,STA$80,LDA#$30,STA#$81,JSR$E060,RTS
3000:616263646500310032003300340035
则当按键是”a”时,跳转到$3100
则当按键是”b”时,跳转到$3200
则当按键是”c”时,跳转到$3300
则当按键是”d”时,跳转到$3400
则当按键是”e”时,跳转到$3500
E06F:play游戏音乐
如:LDA#$01,STA$C0,JSR$E06F
E07E:显示菜单。入口参数:X,Y
如:LDX#$00,LDY#$30,JSR$E07E
3000:090300300033003100330032003364FF65FF66FFFF
3300:61620063640000
则选择第一个菜单时跳到$3000,
则选择第一个菜单时跳到$3100,
则选择第一个菜单时跳到$3200,
E08A:INPUT字符(入口参数:$0454,$04e8,$04e9,X,Y)
如:LDA#$02,STA$04E9,LDA#$15,STA$04E8,LDA#$00,STA$0454,LDX#$00,LDY#$30,JSR$E08A
3000:0006200031
3100:616263640000
E08D:INPUT字符(入口参数:$0454,$04e8,$04e9,$058E,$058F,$0590,$8A)
功能和E08A基本相同
如:LDA#$02,STA$04E9,LDA#$15,STA$04E8,LDA#$00,STA$0454,LDX#$00,STX$058E,STX$0589,LDY#$00,STY$8A,LDA#$21,STA$0590,JSR$E08D
E093:显示文本(入口参数:X,Y)
如:LDX#$00,LDY#$31,JSR$E093
3100:003200326162636465666768696A6B6C6D6E6F0000000000
3200:61006200630000
文本用00换行0000结束
E096:热线帮助(入口参数:$A6,$A7)
如:LDA#$00,STA$A6,LDA#$30,STA$A7,JSR$E096
3000:61006200630000
热线帮助的每一行要用00结束,否则无法翻页。
E09C和E09F:等待按键
E0A2:把A中的值+#$80再送到$C7
如:LDA#$00,JSR$E0A2,JSR$E09C
E0A5:把ROM中的一段程序送到$570~$588
E0A8:防止程序循环中自动关机。
E0B4:功能和E07E相似
E0CC和E0CF:得到一个字符的ASCII码
E0ED,E0F0,E0F3,E0F6,E0F9,E10E,E111,E114:功能相似,用法大同小异。都是把一个字符写到屏幕。
如:LDA#$31,JSR$E024,LDX#$01,STX$83,LDY#$01,STY$85,JSR$E0ED,RTS
E0FF,E102,E126,E129,E12C,E12F,E16B,E16E,E171:功能相似,都是显示文字。参数:$450,$451,$452,$453
文字缓存:$02C0~$0387,6*6模式为$0748~$0899
反显缓存:$0437~$0443,6*6模式为$089A~$08C4
E10B:刷新一行屏幕,参数:$84
如:LDA#$01,STA$84,JSR$E10B
E117,:从X行Y列开始反显,遇到文字缓存的值为#$00则结束反显,参数:X,Y
如:LDX#$01,LDY#$01,JSR$E117
E120:反显某一行,参数:X
如:LDX#$01,JSR$E120
E123:反显部分,参数:$8E,$90
如:LDA#$02,STA$8E,LDA#$05,STA$90,JSR$E123
E138:清屏
E13B:清除文字缓存
E13E:清除第X行下面的Y行文字缓存
如:LDX#$01,LDY#$02,JSR$E13E
绘图函数
1.画线
程序入口地址 E1A4
用法x1,y1) (x2,y2)
x1:03a6 y1:03a7
x2:03a8 y2:03a9
03ac:00 清除 01 画线
例如 :a 2000
2000:jsr $e13b
2003:lda #$01
2005:sta $03a6
2008:sta $03a7
200b:lda #$50
200d:sta $03a8
2010:lda #$20
2012:sta $03a9
2015:lda #$01
2017:sta $03ac
201a:jsr $e1a4
201d:jsr $e09c
2020:rts
2.画圆
程序入口地址 E1AD
用法:圆心(x1,y1)
半径(r)
x1:03a6 y1:03a7
r: 03b9
03ac: 00 清圆 01 画圆
3.画方块
程序入口地址 E1A7
用法:(x1,y1) (x2,y2)
x1,y1:03a6,03a7
x2,y2:03a8,03a9
03ac: 00 清圆 01 画圆
4.画椭圆
程序入口地址 E1B0
用法:圆心(x,y) 03a6,03a7
03be:越大越宽
03BF:越大越高
03AC:00 清圆 01 画圆
5.填充画方块
程序入口地址 E1A1
用法和3一样
6.填充画圆
程序入口地址 E1B3
用法和2一样
7.填充画椭圆
程序入口地址 E1B6
用法和4一样
e18f:功能:画点
参数03aa,$03ab,$03ac=1则画点,$03ac=0则清点
e192:判断是否有点
参数同上
如果有点则标志位z=0
e195:功能同e1a7
参数03a6,A累加器,X,Y寄存器,$03ac
e198:功能同e1a1
参数:同上
e19b: 功能同e1a4
参数:同上
e19b: 功能同e1a4
参数:同上
e19e:功能:在矩形区域内画图像
参数03a6,03a7,03a8,03a9
$92,$93为指向图像数据的地址
e1aa:功能同上
参数:X,Y寄存器
$92,$93为指向图像数据的地址
如果使用e1aa画图像则图像数据的开始两个字节分别是图像的宽和高.
关于汉字内码转换的系统函数:
e14a:繁体内码-->繁体码
e14d:繁体码-->繁体内码
$92,$93中存放繁体码,$94,$95中存放内码
如:把12*12点阵的繁体"我"输出到屏幕(0,0)处
lda word1
sta $92
lda word1+1
sta $93
jsr $e14d
lda #$00
sta $80
lda #$40
sta $81
lda #$2f
sta $82
jsr $e177
lda #$80
sta $92
lda #$02
sta $93
ldx #$00
stx $03a6
ldy #$00
sty $03a7
ldx #$05
stx $03a8
ldy #$0b
sty $03a9
jsr $e19e
lda #$8d
sta $92
lda #$02
sta $93
ldx #$05
stx $03a6
ldy #$00
sty $03a7
ldx #$0b
stx $03a8
ldy #$0b
sty $03a9
jsr $e19e
jsr $e09c
rts
word1:db "我"
e162:简体码-->内码
e17d:内码-->简体码
用法同上
e165:繁体内码-->简体码
入口参数:$94,$95
输出参数:$92,$93
e1e9:简体码-->繁体码
入口参数:$92,$93
输出参数:$92,$93
|
|