//全面接触NCTOOLS
NCTOOLS是我为NC1020写的一个DEBUG软件,大家可以到我的网站 http://wqxmcode.8u8.com下载
因为在我的6502教程中,大量使用了NCTOOLS这个工具,所以你必须拥有这个软件.
下面我讲讲这个软件的用法:
1.界面
进入NCTOOLS后,你看到下面的界面,这是最新版本的界面,你可以到我的网站下载
最左上面的 00 代表当前页码是 00
左边的 2000代表地址当前地址是2000,后面的 2800 2900 2A00 2B00代表地址的内容,但一行显示8个地址的内容
比如第1行,显示的是地址2000,2001,2002,2003.......2007的内容
所以一个屏幕最大显示 48个地址的内容,大家可以看到的
2.按键的用法
①I,K键
按 I 键,当前页码减 1,比如当前页码是 02,那么按了 I ,当前页码变为 01
按 K 键,当前页码加 1,比如当前页码是 02,那么按了 K, 当前页码变为 03了
②中英数 键 切换显示模式,在 十六进制 和 字符 模式下切换
比如当前显示模式是 十六进制,那么 按 中英数,就切换到了 字符显示模式
③输入法 键
按 输入法 ,以汉字,数字,字符,符号等修改当前内存的内容
④ 0 键
在查找时,若查找的结果不只一个,查找到了一个后,按 0 键可以继续查找
⑤ 求助 键
显示本程序附加功能,附加功能将在后面介绍
⑥ Z + H 键
同时按住 Z,H两个键,可以使地址 2000-2FFF全部为 FF,并且当前地址转到地址2000
当你要写程序时,一般先用这个命令,使得地址2000-2FFF全部为FF,比较干净
⑦ 双上箭头 键
按 双上箭头 键,当前地址 减 1,比如当前地址是2000,按了 双上箭头,当前地址变为 1FFF
单左箭头 键
按 单左箭头 键,当前地址 加 1,比如当前地址是2000,按了 左箭头,当前地址变为 2001
单上箭头 键
按 单上箭头 键,当前地址 减 #$10
单下箭头 键
按 单下箭头 键,当前地址 加 #$10
双下箭头 键
按 双下箭头 键,当前地址 减 #$30
单右箭头 键
按 单右箭头 键,当前地址 加 #$30
按 Z ,同时按 双下箭头或单右箭头,可以快速查看地址内容
注:由于一个屏幕显示的地址有限,为了看全部的地址的内容,我们必须按 这些键来显示其他地址的内容
⑧ R 键
当执行 G 命令后,可以用该命令查看 寄存器的状态
3.命令的使用
说明:每个命令是以 = 号,作为 确认键
字符 B 用 . 代替
①内存查看命令 V
格式:V XX
V XXXX
V XXXXYY
这里 XX 代表零页地址(00-FF)
XXXX 代表直接地址(0000-FFFF)
YY 代表页码
例如 V 30,就是查看当前地址为 30 的48个地址的内容,如图:
例如 V 4000 03,就是查看03页码的当前地址为4000的48个地址内容,如图:
②内存修改命令 E C
该命令功能非常强大,可以修改 FLASH ROM,RAM
格式: E C XX
E C XXXX
E C XXXXYY
例如 输入 E C F0,然后按 "=",出现下图:
这时我们就可以输入字节了,注意这里输入的是十六进制,如果输入错了,可以按 单左箭头删除 最近输入
的一个字节.
③插入字节命令 E I
该命令对于用机器码编写程序的人来说很有用
格式 E I XXXX
这里可能有些人搞不清楚这个命令的用法,我做详细的说明:
XXXX:代表结束地址,由于 插入了字节,那么当前地址后的内容就必然要往后偏移,那么是不是当前地址后的
所以地址都要往后偏移呢?这显然不是,所以这里有个参数 XXXX,这样就规定了当前地址到 地址XX往后偏移.
例如 假设当前地址是 2000
我输入 E I 2007,那么说明地址2000-2007的内容往后偏移,那么往后偏移多少字节呢?这是由你插入的
字节数来决定的.
这里 我输入 E I 2007,然后按 = ,然后输入 0102030405,然后按 =,我们看下图:
使用 E I命令前 | 使用 E I命令后 |
为什么需要这个命令呢,有时候,我们需要往某地址增加几个字节的内容,但如果用E C命令,势必
会破坏别的字节,这时候 E I命令就发挥很大作用了.
③ 执行 程序命令 G
格式: G XXXX
G XXXXYY
例如 G 4040,就是执行当前页码的4040开始的程序
例如 G 4040 03,就是执行 03 页码的4040开始的程序
注:执行该命令后,可以 按 R,显示寄存器的状态
④ 4K闪存数据装入地址2000-2FFF 命令 L
格式:L XXXXYY
注意这里的XXXX,只能是 4000,5000,6000,7000,8000....B000
因为是将整整 4K 闪存的数据装入RAM
例如 L 5000 08,就是将08页码的地址 5000-5FFF的内容送地址 2000-2FFF
该命令的作用是修改闪存,例如我们要修改 08 页码的5000-5FFF的内容
我们可以先 L 5000 08,然后用 E C 命令修改地址 2000-2FFF的内容,修改完后,用 W 5000 08命令
就可以将地址 2000-2FFF的内容送 08页码的 5000-5FFF.
这里大家可能很纳闷,E C 命令不是可以直接修改闪存吗,为什么还要这个命令,大家知道闪存的擦写次数是一定的
因为每次修改闪存就需要擦写闪存一次,如果用 E C命令频繁的修改闪存,是不是会加快闪存的老化呢?这我不得而知
不过我建议大家修改大量闪存数据时,还是使用 L 命令先将闪存数据送RAM,然后修改RAM,然后用W 命令将数据送回.
⑤地址 2000-2FFF的内容送闪存 命令 W
格式: W XXXXYY
该命令可以将地址2000-2FFF的内容送4K闪存,这里XXXX同样只能是 4000,5000,6000.....B000
例如 W 5000 08,就是将地址 2000-2FFF的内容送08页码的地址 5000-5FFF
⑥擦除闪存命令 F R
格式 F R XXXXNNNNYY
这里XXXX是开始地址,NNNN是结束地址,YY是页码
例如 F R 4000 4010 08,就是擦除08页码地址 4000-4010的内容为 FF
注意:NC1020擦除的基本单位是 2K,但是我这里可以擦除任意大小的闪存,这并没有否定NC1020以2K为一个单位
我因为做过程序处理,所以有擦除任意大小闪存的功能.
⑦擦除指定字节的某个范围的地址内容 F D
格式: F D XXXXNN
这里 XXXX是结束地址,NN是擦除的字节数
例如我 V 4000 08,那么当前地址是4000,页码是08
我输入 F D 400703,那么功能是地址 4003-4007的内容送地址4000-4004,地址4005-4007的内容擦除为 FF
我举个例子,当前地址是 4000,我输入 F D 4007 02,按 =,看结果如图:
使用 F D 命令前 | 使用 F D 命令后 |
可见后面的字节往前移了.
⑧反汇编命令 U
格式: U XX
U XXXX
U XXXXYY
这里XX是零页地址,XXXX是直接地址,YY是页码
该命令可以反汇编,例如 U 4040 03,就是反汇编03页码的地址4040开始的内容,如图:
这里 "-"前面的4个字节是地址,后面的十六进制是 机器码,再后面的就是反汇编汇编结果了.
不懂机器码的朋友只有用这个命令了,可以看程序.
反汇编状态下,按 跳出,返回
反汇编状态下,可以使用 A 命令写汇编
按 其他键,反汇编下一地址内容
⑨写汇编命令 A
格式:A XXXX
注意:该命令不可以在闪存地址写汇编,那么XXXX的范围是 00页码的 4000-5FFF,0000-3FFF
符号定义:
'#' : 双上箭头
'$' : 单上箭头
'(' : 双下箭头
')' : 单左箭头
',' : 单下箭头
'Y' : 单右箭头
'X' : 就是原来的 X 键
'B' : 这里用 '.' 代替
错误提示:
1.语法出错,请重试!
说明您写错了指令
2.偏移量发生溢出
您可以能使用的条件转移指令的跳转步长过大了
3.寻址越位,请重试
不支持这种寻址方式
按 K 键可以删除最近输入的一个字符
⑩查找十六进制命令 S H
格式: S H XXXXNNNN
S H XXXXNNNNYY
S H XXXXNNNNYYKK
这里有三种格式
S H XXXXNNNN 在当前页码地址范围XXXX - NNNN 查找
S H XXXXNNNNYY 在YY页码地址范围XXXX - NNNN 查找
S H XXXXNNNNYYKK 在YY-KK多个连续的页码地址范围 XXXX - NNNN查找,实现多页码的数据的查找
例如: 在当前页码 地址范围4000-BFFF查找 121314
输入 S H 4000BFFF,按 =
然后输入 查找的数据 121314,按 =
如果查找到了,当前地址自动转到该地址
这时,还可以按 0 键继续查找下一个
例如: 在页码 01- 03的地址 4000-7FFF 查找 10111213
输入 S H 40007FFF0103,按 =,输入 10111213,按 = ,开始查找
⑩① 查找 汉字,字符,符号,数字 命令 S C
和上面一样,不过查找的是 汉字,字符,符号,数字
很有用的命令哦.
⑩② 中断地址 获取命令 X
格式: X NNNN
例如有中断指令 INT $8A15,那么该指令是执行哪里的程序呢,使用该命令就使当前地址自动转到程序入口点
输入 X 8A15,按 =
3.附加功能
附加功能有下面几样
.屏幕RAM
显示小字模式的屏幕RAM的地址
显示大字模式的屏幕RAM的地址
.键盘扫描
若你不知道某个键的扫描码,按 该键就显示了
.字符ASCⅡ码
常见的ASCii码
.出厂信息
你的机器的出厂信息
.目录列表
.文件列表
.闪存利用表
.保存代码
保存地址2000-2FFF的内容,我们写程序的时候,写好了,最好先保存下
.导入代码
保存的数据还原到地址2000-2FFF
.制作程序
制作BIN程序
你先在地址2010后写好程序,注意地址2000-200F这里不要放东西,因为这里是文件头
然后保证程序的入口地址是 2010
然后制作程序,输入文件名,就可以了
.GMUD存档
GMUD存档备份和还原
.密码清除
.系统重新启动
.版本信息