易码技术论坛

 找回密码
 加入易码
搜索
查看: 1491693|回复: 36

[工具] [移植]NC-TOOLS for tc1000 (07/1/24更新)

[复制链接]
发表于 2007-1-19 23:01:07 | 显示全部楼层
这个能不能在TC808上用呀
 楼主| 发表于 2007-1-19 23:07:32 | 显示全部楼层
不能
发表于 2007-1-19 23:15:46 | 显示全部楼层
原来是bin文件呀,能不能做个TC808上的呀
 楼主| 发表于 2007-1-19 23:19:10 | 显示全部楼层
抱歉,我没有808,而且手头也没808的系统函数及相关中断地址。
如果谁提供808的相关资料,我会考虑为808移植一个......
 楼主| 发表于 2007-1-19 23:21:03 | 显示全部楼层
问问dragon_吧!
发表于 2007-1-19 23:40:36 | 显示全部楼层
TC808常用中断详解
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,可以单刷新最下面一行的内容而不破坏别处的内容

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

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

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说明选了"是",不等于说明选了"否"

int$cb01
系统菜单
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结尾)


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

int$0523
退回根目录


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

int$0515
打开文件
打开方式:$0860
#$70:新建
#$81:追加
#$80:打开
成功则c=0,or c=1

int$0516
读文件
dd,de:开始地址
085d,085e:大小
成功则c=0,or c=1

int$0518
写文件
$dd,$de:数据地址
$085d,$085e:大小
成功c=0,or c=1
读与写文件时一定要保证文件已打开
int$0517
关闭文件
文件打开之后一定要关上,否则变僵尸
int$051C
空间整理(图形)

int$051D
空间整理(实质)

int$0505
读一页nand
$081d,$081d:nand块
$081f,$0820偏移
$0969,$096a:大小
$dd,$de:开始地址

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

int$c006
按键停顿
按键值在a中

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

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

int$ca0e
圆,圆半径放$03d6


int$ca0f
椭圆,长半轴长度放$03db,短半轴$03dc

int$ca0a
方块

int$ca0b
直线

int$ca10
填充圆

int$ca0c
填充方块

int$ca11
填充椭圆

int$c906或jsr $e057
系统debug


int$0519
追加读写(修改读写指针位置)
$0864-$0868:追加位置
int$0310
返回上级中断


int$c002
重启或重开机
03f4=a5:重开机 or 重新启动

int$ca16
正在查找

int$ca17
没有找到

int$0526:读取文件
int0525打开文件

int$c72d
左上液晶数字

$80,$81:数值

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

int$050e
删除文件或目录
名称放$0824开始,只能删除空目录

int$050c
读目录中文件列表

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


0501:测试超级块
0502:更新物理区/逻辑区映射表
0503:读取一页nand(物理,不做ecc)
0504:读取一页nand(物理,做ecc)
0505:读取nand(逻辑)
0506:读取一页nand(逻辑)
0507:读取1字节nor
0508:读取多字节nor
0509:根据指定的inode号找出对应的目录名(INODE:$0869,$086a NAME:$0824)
050a:测试目录是否可列出
050b:创建目录
050c:读取目录
050d:切换工作目录(NAME=$0824)
050e:删除文件(NAME:$0824)
050f:删除目录(NAME:$0824)
0510:重命名文件(SOURCE NAME:$0824,NEW NAME:$08a0)
0511:修改指定文件属性1(参数:$0896,永久)
0512:修改当前文件属性1(暂时)
0513:测试文件属性1
0515:打开或创建文件
0516:读文件
0517:关闭文件
0518:写文件
0519:更改文件读写指针位置
051a:读inode
051b:读一个inode
051c:空间整理_释放已删除空间
051d:空间整理_删除无用的分配表信息
051e:重启时空间整理1
051f:重启时空间整理2
0520:检测已创建而未关闭的文件
0521:处理已创建而未关闭的文件
0522:无用中断,原为永久修改指定文件属性2,可能出于安全考虑,入口被注
0523:关闭所有文件
0524:格式化闪存用户区并重置文件系统
0525:打开文件
0526:读取文件
0527:更改文件读写指针
0528:资源管理器1
0529:快速读NAND,逻辑读取,081d,081e:块,081f,0820,偏移,ed,ee地址,0969 096a:大小,最多只能读255B
052a:获得及检测NAND厂商和设备号
052b:处理物理区/逻辑区映射表
052c:同上
052d:同上
052e:若指定文件>64kb,则读出其所占的块到$c000
052f:获取文件长度
TC808系统常用地址
$02c0 文字缓存
$03e7 菜单文字
$01为简体 $02繁体
$03e8 文字编码 $20为BIG5码(台湾),$40为GB码
$03e9 屏幕量度
$03B2 设置刷新列
$03B1 设置刷新行
$03B3 光标类型 $00宽高 $08宽低 $10窄高 $18窄低
$03B4,$03B5 光标的横纵做标
$03BE 当前屏幕最大字节数
$03c0 ......每行最大字节数
$03c1 ......每列最大字节数
$044a 输入法提示类型
$045f 输入联想
$040f 开机题词
$0B0e 密码提示问提
$0B22 答案
$0B00 密文
$0B0c 密码关键字
$03f1 按键音 $FF时开启
$03ea 音量大小 大于$0B时无声
$03f7 死循环关机时间
$03f8 时制
$0401 用户设定的关机时间
$0402 自动关机计数器
有时候在程序中遇到大于5秒的循环时,会自动关机,所以我们必须防止,可以设制禁止中断SEI,或写以下代码:
LDA #$00
STA $03f7
STA $0402
这样虽然代码多,但可以响映用户按键
$19c0 图形缓存(显存)
$03c3 作图时设置横座标X1
$03c4 作图时纵坐标Y1
$03c5 X2
$03c6 Y2
$03c7 ,$03c8 画点时点的横纵坐标
$03c9 作图模式 $00擦除 $01作图 $02反显
$03d6 圆半径
$03dB 椭圆的长半轴
$03dc 椭圆的短半轴
$0824 文件名1
$08a0 文件名2
$0863 文件操作失败标记,当执行一个文件操作后,该地址的值不为$02时,表示操作失败
$085f 文件操作
$0860 文件打开方式
$10正常 $20创建 $40写文件 $70创建并设置新建文件为可显,读,写 $80读写 $81追加 $c0修改
$0861 ,$0862 新建文件属性 都为$EF时,可在应用程序中显示 $AB $80只读并隐藏
$DD,$DE读写操作的目标地址
$0969,$096a 读NAND的大小
$081d,$081e 读取nand块
$081f,$0820 读取nand偏移
$0869,$086a 目录对应的INODE号
$086B,$086c 文件号
$086d,$086e,$086f 文件当前属性
$0870 文件创建时间
$0873 文件修改时间
$0879 文件占用块数
$087d,$087e 文件占用的第一个块
$087f,$0880 文件占用的第二个块
$0881,$0882 第三个
$0883,$0884 最后一个块



更新:
int $1007  password密码 有了这个中断,我们可以在自己的BIN文件上加密码了!
jsr $e02a  延时
int $0313显示电量不足!

INT $000A 相当于V+W+开机
INT $000B 相当于X+开机
INT $0103 进度条
INT $0108 电脑连线
INT $0109 双机通信
INT $0310 返回上一级热键
INT $0311 电量测试 结果放$040B,电量充足则结果为0
INT $0321 最有效果的中断,整蛊专用。GGV居然会把这个做成一个中断……
INT $0608 秒表
INT $0607 定时器
INT $0606 闹钟
INT $0605 万年历
INT $0603 时钟设定
INT $0601 时间
INT $0609 倒计日
INT $060B 日期计算
(INT $060A-INT $060F暂缺,待更新)

但是要提醒大家一点:一般尽量不要用INT $060F这个中断。这个中断运行后出现的选项里面有一个是"erase",意思就是擦除nand,如果你试图进入的话就会造成the nflash is error的恶果!我自己就栽在这上头过,所以不希望大家也步我后尘,把自己的文曲星弄得the nflash is error。

INT $0610 闹钟开关
INT $0611 显示方式
INT $0612 整点闹钟
INT $0613 发音速度
INT $0614 按键音
INT $0615 关机设置
INT $0616 屏幕亮度
INT $0617 输入反查
INT $0618 输入联想
INT $0619 厂商信息


TC808的常用中断
INT $0501 测试超级块
INT $0502 更新逻辑区和物理区映射表
INT $0503 读一页NAND(物理,不做ECC)
INT $0504 读一页NAND(物理,做ECC)
INT $0505  读一页NAND(逻辑)NAND块号在$081D~$0820
INT $0506 读一页NAND(逻辑)
INT $0507 读一页NOR
INT $0508 读多字节NOR
INT $0509 根具INODE找对应的目录名
INT $050a 测试目录能否列出
INT $050B 创建目录(目录名放$0824)
INT $050c 读取目录
INT $050F 删除目录(目录名$0824,必须为空目录)
INT $050d 切换目录
INT $050e 删除文件
INT $0515 打开或创建文件
INT $0516 读文件
INT $0517 关闭文件
INT $0518 写文件
INT $0519 追加
INT $051a 读INODE
INT $0524 格式化闪存
INT $0704 反查;汉字学习
INT $080B 新华词典
INT $080C 成语词典
INT $080D 多音字词典
INT $0901 反查英文
INT $0905 词网功能
INT $0906 应试英汉词典
INT $0B01~$0B07 与发音有关的中断
INT $0B08 公理定理
INT $0B09 下载词典
INT $0C05 序列号察看
INT $0C08 英文猜字游戏
INT $0C09 单词精灵
INT $C004 那个传说中的“open_803_lcd”中断
INT $C006 读键等待,会停顿,键值在A中
INT $C00A 读键等待,不会停顿,键值在A中
INT $C021 设置屏幕亮度。亮度在$03e9
INT $C719 字符缓冲刷到显存($02C0字符缓存地址)
INT $C733 把bin数字转换为ASCII码,要转换的数字放在$80,$81,转换结果在$82,$83,$84,$85,$86。
INT $C737 清除部分显存(清屏),不包括左边的电池电量显示等
INT $C729 清除全部显存($19C0显存地址)
INT $C72A 清除文字缓存
INT $CA09 矩形作图
INT $CA0D 矩形作图2
INT $CA12 多功能信息框
INT $CA16 正在查找
INT $CA17 没有找到
INT $CB01 系统菜单
INT $CB02 显示资料
INT $CB05 输入法
INT $CB08 系统帮助
INT $CA14 等级棒
INT $CA15 通用菜单
INT $FFxx 喇叭发声,xx从01h到35h

TC808的常用系统地址
$02c0 文字缓存
$03e7 $01简体文字菜单 $繁体
$03e8 $20 BIG5码 $40 GB码
$03e9 屏幕亮度
$03EA 音量大小
$03B1 设置刷新行
$03B2 设置刷新列
$03B3 光标类型 $00 宽高 $08 宽低 $10 窄高 $18 窄低
$044a 输入法提示:$0c 提示为中文
以下地址打开文件后才可看见
$086d 当前文件属性 $086B 文件号
$0869 文件INODE号  

TC808文件操作类地址
$085d $085e 新件文件大小
$0860 文件操作类型 $70 新件 $80 打开 $c0 修改
$0861 $0862 新件文件属性 都为$EF时,新建文件属性为RWX
通过INT$0518写文件时,欲写入内容地址放在$DD $DE处  

TC808部分bios调用:
JSR $E015 按键声音
JSR $E018 出错提示音
JSR $E030 延时约1秒钟
JSR $E03F 散转子程序1
JSR $E042 散转子程序2,较常用
JSR $E057 系统内置的debug

这些有用吗
发表于 2007-1-19 23:41:08 | 显示全部楼层
这些是在ggv官网的TC808专区找的,不知道有没有用
 楼主| 发表于 2007-1-20 10:48:24 | 显示全部楼层
很详细!
发表于 2007-1-20 10:53:59 | 显示全部楼层
支持TC1000/s
发表于 2007-1-20 12:05:31 | 显示全部楼层
支持!
发表于 2007-1-20 12:29:45 | 显示全部楼层
能做个nc3000的吗?
发表于 2007-1-20 12:59:15 | 显示全部楼层
LZ是不是准备为TC808移植了呀
发表于 2007-1-20 13:01:49 | 显示全部楼层
TC1kS能用吧,看看~~~~~~
发表于 2007-1-20 15:31:37 | 显示全部楼层
等待你的完全一直哦
发表于 2007-1-20 17:29:04 | 显示全部楼层
希望早点出完整的
 楼主| 发表于 2007-1-20 17:38:05 | 显示全部楼层
引用第12楼zjjerry4132007-01-20 12:59发表的“”:
LZ是不是准备为TC808移植了呀
你先试试那个tc1000版的,我看了一下,1000和808的大部分系统中断一样...
发表于 2007-1-20 18:25:15 | 显示全部楼层
808  的确和1000有N多相似甚至相同地方...我指中断....
....
............
...............终于出来了...期待好久....强人!!!!!!!!!
发表于 2007-1-20 18:36:22 | 显示全部楼层
808早都有了
不止是NC-TOOLS.还有WQXHEX

TOOLS-808.rar

12 KB, 下载次数: 81

发表于 2007-1-20 20:24:48 | 显示全部楼层
哦,LS的谢谢了,原来这个就是TC808上的NC-tool呀,我原来一直不知道有什么用
发表于 2007-1-21 12:13:20 | 显示全部楼层
呵呵,总算有人移植了~
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

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

GMT+8, 2024-3-19 16:30 , Processed in 0.022116 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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