易码技术论坛

 找回密码
 加入易码
搜索
123
返回列表 发新帖
楼主: TYCY

求助,关于6502中断!

[复制链接]
发表于 2007-12-23 13:50:46 | 显示全部楼层
没人知道数据区到底在哪里,必须要自己分析出来。完美的反汇编程序是不存在的。
CheckKey的实现有N种方式。比如调用系统中断。你找到NC2600的中断功能对应表了吗?INT $C00A就可以。按键值在A中。这是最简单的方式,而且不会死机。
当然你也可以去查询$C7的值,那就是当前按键的键值。不过循环查询这个而不做其他事情的话会自动关机,所以在循环中还要把$03F6和$0401置0,以避免自动关机。
还可以根据$DF~C6的值来推断……扯远了,这个主要是判断多个按键同时按下才会用。超级玛丽里面用的是另一种方法,直接操作键盘io,跟这个也差不多,不过感觉太麻烦了。
打开文件后文件里的数据仍然安安稳稳地躺在Nand里,因为你还没有把他们读出来。这也需要相关的中断。你反汇编几个相关的程序段就清楚他们的用法了。
$03F6和$0401是不是Nc2600用的地址来着我不明确记得了。
NC2600文件系统中断全表
0501:测试超级块
0502:更新物理区/逻辑区映射表
0503:读取一页nand(物理,不做ecc)
0504:读取一页nand(物理,做ecc)
0505:读取nand(逻辑)
0506:读取一页nand(逻辑)
0507:读取1字节nor
0508:读取多字节nor
0509:根据指定的inode号找出对应的目录名(INODE091B,$091c NAME08d6)
050a:测试目录是否可列出
050b:创建目录
050c:读取目录
050d:切换工作目录(NAME=$08d6)
050e:删除文件(NAME08d6)
050f:删除目录(NAME:$08d6)
0510:重命名文件(SOURCE NAME:$08d6,NEW NAME:$0961)
0511:修改指定文件属性1(参数:$0948,永久)
0512:修改当前文件属性1(暂时)
0513:测试文件属性1
0514:打开或创建文件
0515:读文件
0516:关闭文件
0517:写文件
0518:更改文件读写指针位置
0519:读inode
051a:读一个inode
051b:空间整理_释放已删除空间
051c:空间整理_删除无用的分配表信息
051d:重启时空间整理1
051e:重启时空间整理2
051f:检测已创建而未关闭的文件
0520:处理已创建而未关闭的文件
0521:无用中断,原为永久修改指定文件属性2,可能出于安全考虑,入口被注
0522:关闭所有文件
0523:格式化闪存用户区并重置文件系统
0524:打开文件
0525:读取文件
0526:更改文件读写指针
0527:资源管理器1
0528:快速读NAND,逻辑读取,08d1,08d2:块,08d3,08d4,偏移,ed,ee地址,0a1B:大小,最多只能读255B
0529:获得及检测NAND厂商和设备号
052a:处理物理区/逻辑区映射表
052b:同上
052c:同上
052d:若指定文件>64kb,则读出其所占的块到$c000
052e:获取文件长度
0601:计算ECC
0602:比校ECC
至于中断需要哪些参数,你自己反汇编或在网上找吧。要学会利用网络资源。Nc2600的资料很多的,不像当年Tc808那样完全没有……

[ 本帖最后由 dragon_ 于 2007-12-23 13:53 编辑 ]
发表于 2007-12-23 13:51:55 | 显示全部楼层
!!!怎么一堆表情符号???
 楼主| 发表于 2007-12-23 21:54:45 | 显示全部楼层
回LS,可能是符号判定的缘故!
对与文件的读取,我还不不是很明白,别如我要从一个文件的100位置开始读取200字节,怎么办?
在,还有其他中断吗?
发表于 2007-12-23 22:15:47 | 显示全部楼层
0518:更改文件读写指针位置
0515:读文件
我这里没。你在论坛上搜索吧。
 楼主| 发表于 2007-12-24 01:09:31 | 显示全部楼层
那读取后的数据在那里?
发表于 2007-12-24 13:40:21 | 显示全部楼层
这样学习汇编很慢,论坛上有很多资料,你可以搜索学习。
 楼主| 发表于 2007-12-24 13:54:44 | 显示全部楼层
不知道搜索什么才好
搜索6502汇编???
我搜索过几次,没什么想要的,有的有看不太明白
发表于 2007-12-24 22:16:49 | 显示全部楼层
0515:读文件
此中断有参数来设定要读取的字节数与数据存放位置。找一段带INT $0515的程序,反汇编研究之即可得。

搜索功能是一定要学会用的。
资料帖名中一般都没有“6502汇编资料”的字样,所以搜索6502汇编必然没用。
搜索关键词要准确。要找Nc2600的中断,就直接搜2600中断。
当时为了找全资料,我曾经把TGCLC,EMSKY,DGING的汇编区整个看过一遍……
呵呵,想把汇编学好是要吃苦的。
 楼主| 发表于 2007-12-25 12:57:18 | 显示全部楼层
恩,当然了,决定学汇编的时候我就已经做好在吃苦的准备了

好有就是我知道中断怎么看了,用发送字节的方法看,很可以的!把目标代码发送过来就是
INT$0515读文件中的,$DD,$DE地址
是怎么意思,地址是代表那里的地址,读取的还是读取后放在那里的那个地址啊??
发表于 2007-12-25 16:12:32 | 显示全部楼层
要研究中断的功能,不妨写一个程序段验证。为了去除汇编程序自身的影响,建议直接创建一个新的应用程序。
这里还有两个相关地址是$090F,$0910。
找一段带INT $0515的程序看看它在INT $0515之前都对这些地址干了什么。然后自己写一段程序模仿一下这个过程,看看$DD,$DE到底代表的是读取的字节数还是读取后存放的起始位置。$090F,$0910代表的就是剩下的那个了。
不过这还要事先打开那个文件。你自己试试看吧,自己试出来的记得清楚。
关键是要学会方法。
 楼主| 发表于 2007-12-26 08:13:20 | 显示全部楼层
对啊,要学习编程的思想啊!
对了,BASIC中PEEK POKE等等,是不是对应的$80页的地址啊??
发表于 2007-12-26 10:36:31 | 显示全部楼层
其实6502汇编还是挺好玩的。
个人觉得,学好汇编关键还是多看多练,多多反汇编一些优秀的汇编软件,然后自己多多模仿练习。学习的过程本来就是从模仿到创新的过程!
发表于 2007-12-26 12:12:10 | 显示全部楼层
同楼上。
BASIC中PEEK POKE等等用的是十进制数字。
PEEK与STA相似,
POKE与LDA相似,
CALL与JSR相似。
跟$80页有什么关系?一般也不会有人去用$80页的。
 楼主| 发表于 2007-12-26 13:23:49 | 显示全部楼层
不是啊
在BASIC中PEEK(0)是=128的
用NC-TOOL看的话,只有80页的$0000是128
 楼主| 发表于 2007-12-26 13:24:20 | 显示全部楼层
问题是我不太会反汇编
就算反出来了,一个指令一个指令的看还知道是怎么意思
但是组合在一起却不知道他们是干什么的了,不明白有什么用

[ 本帖最后由 TYCY 于 2007-12-26 13:25 编辑 ]
发表于 2007-12-26 23:25:22 | 显示全部楼层
原帖由 TYCY 于 2007-12-26 13:23 发表
不是啊
在BASIC中PEEK(0)是=128的
用NC-TOOL看的话,只有80页的$0000是128

我晕……128转换成16进制是80h吧?$00是控制内存页码的吧?所以80h页的$00必然等于128吧……
由于00是一个关键地址,在BASIC中与用NC-TOOL看时他们的值可能会被BASIC或NC-TOOL修改。重申一遍,眼见不一定为实。你用的工具本身一直在欺骗你。
http://bbs.ggv.com.cn/wqxbbs/columns.php?action=columns
楼主去GGV的官方论坛看看吧。那里还是有些资料的。

汇编的特点就是貌似很简单的功能却需要一堆代码来实现,所以楼主看代码时要有全局观。从程序功能的角度分析一下那些子程序都可能是干什么的,猜测并简单验证就行了,不要总试图一行行地弄懂意思。要是研究系统中断的话,就更不要管那些看不懂的代码了。那些代码是出于对系统的稳定性要求而写的,会用到大量系统保留地址,很难搞明白。就像4灰度的驱动程序,虽然只需要改一点,但是不看datasheet,谁知道该改哪里啊……
我反汇编的第一个程序是一个文曲星的bin游戏,在Tc808上运行有BUG.只有4K,虽然最后搞明白了,也修复了BUG,但大量不知道的中断也弄得我晕头转向。

[ 本帖最后由 dragon_ 于 2007-12-26 23:34 编辑 ]
 楼主| 发表于 2007-12-27 12:52:10 | 显示全部楼层
我昨天反了WQXHEXNC,通过PACMAR和WQXHEXNE本身一起反的
虽然看不太明白,但也理解了很多,还是要谢谢帮助我的大家啊
谢谢!!!
以后还后有不懂的,我会在问你们的,别嫌我烦就可以了
 楼主| 发表于 2007-12-27 12:52:44 | 显示全部楼层
对了,改变$0A究竟会有什么用啊
发表于 2007-12-27 16:09:13 | 显示全部楼层
$00控制$4000~$BFFF的页面
$0A控制$C000~$DFFF的页面
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

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

GMT+8, 2024-3-29 13:49 , Processed in 0.011878 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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