易码技术论坛

 找回密码
 加入易码
搜索
查看: 212267|回复: 5

[转帖]nc2600系统函数超级详解 (原创:QIQI)

[复制链接]
发表于 2005-1-12 16:47:00 | 显示全部楼层
呵呵,那我就不管了~
可以给想研究系统调用的人有指引作用就可以了.
或者QIQI有时间再弄一个完整的啊~
发表于 2006-2-10 11:10:00 | 显示全部楼层

[em01][em01]
其实有些地方是错误滴!
发表于 2006-3-4 08:33:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2006-3-14 17:48:00 | 显示全部楼层
是的,是有错误,还是自己DISASM其他程序来看吧,6502高手是在不断ASM和DISASM中成长起来的
发表于 2006-7-17 17:30:00 | 显示全部楼层
顶了。。。。。。。。。
 楼主| 发表于 2005-1-11 23:35:11 | 显示全部楼层 |阅读模式
nc2600系统函数
超级详解
(1)int$c719
刷新字符缓存

可以将当前在文字缓存的内容显示到屏幕
文字缓存从地址$02c0开始,具体大小由当前字体决定

相关参数0392/$0393:/$03af/$03b0:切换4种字体
wqx一共可以切换出4种不同的字体,分别是:
a.当$0392=0,$0393=1,$03af=ff,$03b0=ff时,显示正常的8*16字体
b.当$0392=1,$0393=0,$03af=ff,$03b0=ff时,显示如wqxhexnc那样的6*12小字体

c.当$0392=0,$0393=1,$03af=$03b0=0时,显示如英汉字典,debug那样的8*8小字

d.当$0392=1,$0393=0,$03af=$03b0=0时,显示如文书浏览的纯英文模式那样的6*6小字

在c,d字体下,将无法正常显示中文或特殊字符
另外,$03b1和$03b2,是设定刷新行的,比如令$03b2=f7,可以单刷新最下面一行的内容而不破坏别处的内容

(2)int$c737
刷新屏幕
这是单纯的刷新屏幕的中断,可以将屏幕上的内容清去而不会破坏文字缓存的内容
在小字状态下刷新屏幕应加上该中断,否则在屏幕左边会出现乱纹

(3)int$c733
转数字为ascll码
入口$80,$81
$80,$81放要转换的数字,结果会在$82-$85,
此函数的作用在于将数据转换为可显示的字符
(4)int$c72a
刷新屏幕及文字缓存
在清空屏幕内容的同时,此函数会将文字缓存中的内容一并清除,小字状态下应和int$c737一同使用

(5)int$ca12
信息框
参数:x,y:参数表地址
a:类型
参数表格式:80(固定)xx yy (yyxx为文字所在地址,文字以00结尾或换行) aa bb (aa,bb信息框所在位置的x,y轴) cc (文字长度,最大#$10) dd (行数,dd=02,一行,=04,二行...最大4行) ee (文字状态,=02 8*16字正常,=04 8*8字正常 =82 8*16字反显 =84 8*8字反显) mm nn(nnmm为ee所在地址)
a=00正常
a=02是否选择框,图标为?
a=03是否选择框,图标为!
a=01菜单选择框

当a=1 or 2时,int$ca12后用户选择在a中,若a=#$79说明选了"是",不等于说明选了"否"


(6)int$cb03
系统菜单
x,y为参数表位置
参数表:xx (xx=09时为竖向菜单,如"版本信息"的那种,xx=02时为横向菜单,如systools) xx1 yy1(选择第一个菜单项后运行的地址) yy1 xx1(第一个菜单项的帮助信息所在地址,以00 00结尾) xx2 yy2 yy2 xx2.... ss1 (第一个菜单项的文字信息) ff (文字间用ff隔开) ss2 ff ss3..... ff (最后以ff结尾)


(7)int$014a
打开联机通讯i/o
(相关设置0f00-$0f04)
0f00-0f04=b0 f0 11 00 00:打开红外i/o
0f00-0f04=10 f0 11 12 00:打开串口i/o

(8)int$0306
写入密码

将$0b00-$0b32的密文覆盖当前密文,当0b00-0b32皆为00时可起到清除密码的作用

(9)int$050d
进入目录
目录名08d6开始,00结尾
若进入失败则c=1否则c=0

(10)int$0522
退回根目录


(11)int$050b
创建目录
参数:$0912<>02:无法创建
创建后c=1说明不成功,否则c=0

(12)int$0514
打开文件
打开方式:$0912
#$70:新建
#$81:追加
#$80:打开
成功则c=0,or c=1

(13)int$0515
读文件
dd,de:开始地址
090f,0910:大小
成功则c=0,or c=1

(14)int$0517
写文件
$dd,$de:数据地址
$090f,$0910:大小
成功c=0,or c=1

(15)int$0516
关闭文件

(16)int$051b
空间整理(图形)

(17)int$051c
空间整理(实质)

(18)int$0505
读nand扇区
$08ae,$08af:扇区号
$0a1b,$0a1c:大小
$dd,$de:开始地址

(19)int$000c
将所有版本信息读入$0b00-$0b20

(20)int$c024
读取隐藏的nor flash
相关设定:
$57:页
$5a,$59:地址
$5b,$5c:大小
其它$57-$5d应设为00

(21)int$cb07
输入法
x,y:参数表
$0448:中文输入法提示类型
$0391:光标类型,一般设为01
参数表:xx (光标位置,00-3a) yy (最大可输入字符数) zz (类型,20:正常 10:只可输入数字 b0:只可输入中文 c0:只可输入英文) aa bb (帮助信息所在地址)

(22)int$c00a
按键停顿
按键值在a中

(23)int$ca03
乘法
参数:x,a:2欲相乘数
80-81:结果

(24)int$ca14
等级棒
x,y:参数表
0x(级别个数) ....(第一级别文字,长度#$10,不足用20补) xx xx(第一级入口) ....第二级...

(25)int$ca0e



(26)int$ca0f
椭圆

(27)int$ca0a
方块

(28)int$ca0b
直线

(29)int$ca10
填充圆

(30)int$ca0c
填充方块

(31)int$ca11
填充椭圆

(32)int$cb01
系统debug

(33)int$0604
系统密码
输入正确或无密码则c=1

(34)int$0518
追加读写(修改读写指针位置)
$0916-$091a:追加位置
(35)int$0310
返回上级中断

(36)jsr$e030
延时
时间=X

(37)jsr$e081
load hot key
如要加载/sysdir/hero
将/sysdir/hero+00
送至08d6开始的地址后运行jmp$e081即可

(38)int$c001
重启或重开机
03f4=a5:重开机 or 重新启动

(39)int$ca17
正在查找

(40)int$ca18
没有找到

(41)int$0524/int$0525
文件快速读取
dd=25,de=06,0915=0
int$0524:进目录
dd,de:开始地址,090f,0910:大小
int$0525:读取文件

(42)int$014c
进度条
$88,89:总长度
$86,87:当前长度
$83:=0:百分比显示,=1:数字显示

(43)jsr$ea35
读nor flash
c8,c9:地址
$061f:页
用前先:ldy#$00

(44)jsr$e015
"哔"的一声

(45)int$c72d
左上液晶数字

$80,$81:数值

(46)int$c71d
设光标位置
x,y:位置

(47)int$050e
删除文件或目录
名称放$08d6开始,只能删除空目录

(48)int$0506
读目录中文件列表

(49)int$c72c
左边滚动条
$80,81:总长
$82,83:当前长

(50)int$0718
读取nand version
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

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

GMT+8, 2024-4-19 18:24 , Processed in 0.011531 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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