学校地址:湖南省 长沙市 雨花区 车站南路红花坡路口 |
学校地址:湖南省 长沙市 雨花区 车站南路红花坡路口 |
先按正常模式接一个好盘,进入MHDD,执行指令“STOP”。这时硬盘停转,热交换到坏盘上。执行指令“i”这时硬盘启动。退出MHDD,运行HDDL,选择写入LDR。指定相应的LDR文件,按空格取消选项。选确定,有出错的提示,硬盘会停转。热启动电脑发现硬盘可以认了,进MHDD扫描一切正常。
文章中所有的汇编代码都来自希捷的硬盘RAM中,也可以参考ROM,但ROM中是偏移的地址,不知道起始的地址所以看起来不方便,RAM中就不同了,RAM中的寻址都是实际的地址,用指令可以读出RAM。
RAM中有这样一段代码:
00005E60: 5E D9 39 00 54 66 9E 01 31
> ^^^^^ ^^^^^ ^^^^^ ^^
00005E70: 33 10 34 04 34 10 36 05 35 60 B7 06 36 65 66 07 | ................
> ^^ ^^^^^ ^^^^^ ^^^^^ ^^
00005E80: 37 10 38 FF C4 17 CA 40 E7 17 EC 0D ED 18
> ^^ ^^
看代码中带标记的部分不难看出,是一个表格,看第一个,54就是T,669E就是T的地址,如果工作在T的级别就可以跳到这个地址。后面是工作在/
下面是669E地址的代码:
00006690: 01 ED 41 27 07 8D C1 26 03 FF 04 3D
> ^^^^^
在660E的地方又跳到另一个地址是
下面是
> ^^ ^^ ^^ ^^ ^^ ^^
000066B0: 68 47 59 68 59 53 69 AF 54
> ^^ ^^ ^^
这里就看的很清楚了,带标记的代码就是指令,就是我们在键盘敲入的键,分别是D,E,F,H,J,N,Y。紧跟后面的两位代码就是执行指令需要跳转的地址。
本文只提到了Y指令的用法,Y指令是更改硬盘型号和容量的指令。下面是6859的地址反汇编后的程序。
seg000:6859 -----------------------------------------------------------
seg000:6859
seg000:6859 Y_ON_0: DATA XREF: seg000:66B3
seg000:6859 pshb ;压栈
seg000:
seg000:685D tstb
seg000:685E bne loc_0_6866 跳到6866
seg000:6860 pulb
seg000:6861 ldd #aInvalidEntry "Invalid entry\r" 提示出错的信息。
seg000:6864 bra locret_0_6878 退出
seg000:6866 -----------------------------------------------------------
seg000:6866
seg000:6866 loc_0_6866: CODE XREF: seg000:685E
seg000:6866 stab word_0_49E
seg000:6869 stx word_0_49B
seg000:
seg000:6870 pulb
seg000:6871 stab word_0_802+1 执行指令
seg000:6874 jsr W_ON_0
seg000:6877 clra
seg000:6878
seg000:6878 locret_0_6878: CODE XREF: seg000:6864
seg000:6878 rts
seg000:6879 ----------------------------------------------------------
seg000:6879
seg000:
seg000:6879 ldx #$805
|
|