| 
 
注册时间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
 
 
 | 
 |