易码技术论坛

 找回密码
 加入易码
搜索
查看: 172691|回复: 6

[原创]TC1000的几个关于文件操作的调用~

[复制链接]
发表于 2005-1-29 21:33:00 | 显示全部楼层
支持!
不过有两点补充:
$70是建立文件并设置文件属性为可写。$40为写文件,$20为创立文件,$10正常属性(可有可无),$70则为$40 Or $20 Or $10,即同时具有以上三种属性。
INT$0523的实际作用是初始化文件系统。即关闭所有已打开的文件,并将文件缓冲区复原(但不会退出到根目录)。
(以上两点的原理也适用于其他机型的文件系统)
发表于 2005-2-1 14:00:00 | 显示全部楼层
继续补充~~
$40跟$70的差别在于$40可以检测相同文件名字如下面段程式:
LDA #$40
STA $085E
INT $0515
BCS _L1   ;C=1不会相同,跳转_L1处
这里可以写一个象电脑那样的弹出菜单问用户是否要覆盖~~
是的话就关闭文件重新用$70打开建立刚才那个名字的文件,这样就覆盖了原来的文件了!
_L1:
LDA $0861
CMP #$02
BNE _L2
....这里继续您想做的事情
_L2:
失败~~


发表于 2005-2-1 14:04:00 | 显示全部楼层
嗯,也可以像楼上这么说。

不过,这正好是因为$70同时具有了$40、$20的属性,

$40是写文件,所以当文件不存在时就会出错。

$20是创建文件,所以当文件不存在时就会自动创建一个新文件,故不会出错。

[此贴子已经被作者于2005-2-1 14:07:01编辑过]

发表于 2005-2-1 14:12:00 | 显示全部楼层
删除目录跟删除文件跟以前的有些NC一样是050F,050E
主要是参数地址已经很多不相同了
笼统的总结为:
                    比如路径缓冲为$0822,而NC3K的是$088D,这样就可以利用NC3K的来推出TC1000的一些参数了,例如已经知道了NC3000的文件打开方式参数是08C9,那么可以推出TC的是(08C9-088D)+0882=085E,呵呵,因为在下认为GGV的参数地址已经用宏做成相对的~~如果往中插入一个跟其他机型(如NC3K)不同的参数的话,地址就会向后偏移~~相反就会向前偏移,所以很多很多可以用这样算出来,但具体正不正确还要通过进一步的测试!~~~希望对大家研究TC有帮助!

 楼主| 发表于 2005-2-2 22:15:00 | 显示全部楼层
TC1000的整个内核就在模拟器所在目录的nd.bin文件中~
从dl.ini文件中也可以找到大部分与文件操作有关的函数.
 楼主| 发表于 2005-2-2 22:35:00 | 显示全部楼层
可能我的表述有误,反正就是什么词典....都在ND.BIN中(这个叫什么来着?ROM?)
 楼主| 发表于 2005-1-29 21:20:25 | 显示全部楼层 |阅读模式
刚才为了做游戏找的,记下来,免的忘了~

INT $0515     打开文件
文件名0822
打开方式085e     $70:建立文件,$80读文件
$085f,$0860:文件属性,

INT $0518      向已打开的文件写数据
$085b,$085c:数据大小
$e0,$e1    :数据地址

INT $0523     返回根目录
INT $0517     关闭文件
INT $0516     读文件
INT $050D     进入目录
INT $050B     建立目录
INT $0310     返回上一级热键

您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

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

GMT+8, 2024-3-29 17:54 , Processed in 0.012800 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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