[轉帖]NC2600檔系統中斷全表

6502 組合語言,是哈電族裡使用的程式語言,也是目前設計 Bin 的唯一方法,有興趣的就進來吧
回覆文章
頭像
sppmg
一級會員
一級會員
文章: 260
註冊時間: 2004-01-10 12:41 PM
來自: 地球ㄉ台灣ㄉ台北
聯繫:

[轉帖]NC2600檔系統中斷全表

文章 sppmg »

紅色是台灣的NC2000的,應該差不多
之後還有再加

NC2600檔系統中斷全表

QIQI原創


0501:測試超級塊
0502:更新物理區/邏輯區映射表
0503:讀取一頁nand(物理,不做ecc)
0504:讀取一頁nand(物理,做ecc)
05050505:讀取nand(邏輯)
0506:讀取一頁nand(邏輯)
0507:讀取1位元組nor
0508:讀取多位元組nor
0509:根據指定的inode號找出對應的目錄名(INODE:$091B,$091c NAME:$08d6)
050a:測試目錄是否可列出
050B050b:創建目錄
050c:讀取目錄
050d:切換工作目錄(NAME=$08d6)
050E050e:刪除檔(NAME:$08d608AC)
050f:刪除目錄(NAME:$08d6)
05100510:重命名檔(SOURCE NAME:$08d608AC,NEW NAME:$09610939)
0511:修改指定檔屬性1(參數:$0948,永久)
0512:修改當前檔屬性1(暫時)
0513:測試檔屬性1
05150514:打開或創建文件
05160515:讀文件
05170516:關閉文件
05180517:寫文件
0518:更改檔讀寫指針位置
0519:讀inode
051a:讀一個inode
051b:空間整理_釋放已刪除空間
051c:空間整理_刪除無用的分配表資訊
051d:重啟時空間整理1
051e:重啟時空間整理2
051f:檢測已創建而未關閉的文件
0520:處理已創建而未關閉的文件
0521:無用中斷,原為永久修改指定檔屬性2,可能出於安全考慮,入口被注
05230522:關閉所有檔(意義還是不確定,請參考希洛轉的NC2000中斷)
0523:格式化快閃記憶體用戶區並重置檔系統
05250524:打開文件
05260525:讀取文件
0526:更改文件讀寫指針
05280527:資源管理器1](目前只在NC2010試過)
0528:快速讀NAND,邏輯讀取,08d1,08d2:塊,08d3,08d4,偏移,ed,ee位址,0a1B:大小,最多只能讀255B
0529:獲得及檢測NAND廠商和設備號
052a:處理物理區/邏輯區映射表
052b:同上
052c:同上
052d:若指定檔>64kb,則讀出其所占的塊到$c000
052e:獲取文件長度
0601:計算ECC
0602:比校ECC
好久沒完6502了
也沒時間......
目前除了拼課業就是玩Linux(還說沒時間......)
頭像
sppmg
一級會員
一級會員
文章: 260
註冊時間: 2004-01-10 12:41 PM
來自: 地球ㄉ台灣ㄉ台北
聯繫:

文章 sppmg »

ECC好像是某種較驗方式。

有人能解釋一下inode嗎?
好久沒完6502了
也沒時間......
目前除了拼課業就是玩Linux(還說沒時間......)
頭像
sppmg
一級會員
一級會員
文章: 260
註冊時間: 2004-01-10 12:41 PM
來自: 地球ㄉ台灣ㄉ台北
聯繫:

文章 sppmg »

sppmg 寫:ECC好像是某種校驗方式。

有人能解釋一下inode嗎?
我知道了。
那是校驗nand是否損壞的東西,
如果讀寫到損壞區塊會造成四週區塊損壞。

再加

BRK $0505用法
NC2000:
入:
08A7,08A8→磁區號
09F1,09F2→讀取大小(單位:B)
EE,ED→讀入RAM的起始位址
08A9→未知
08AA→未知

NC2010:
入:
08B9,08BA→磁區號
0A03,0A04→讀取大小(單位:B)
EE,ED→讀入RAM的起始位址
08BB→未知
08BC→未知

以上兩個未知的位址我還不知道是幹麻的,不過再使用時最好將他寫為0,否則之後會無法執行BIN檔。
好久沒完6502了
也沒時間......
目前除了拼課業就是玩Linux(還說沒時間......)
頭像
sppmg
一級會員
一級會員
文章: 260
註冊時間: 2004-01-10 12:41 PM
來自: 地球ㄉ台灣ㄉ台北
聯繫:

文章 sppmg »

目前我認為在0514以後的都加1(NC2000)
0510以前的都一樣

以下是新研究出的用法喔!

BRK $0519
入:$08EC、$08ED、$08EE、$08EF、$08F0
說明:由$08EC開始是最小指針
功能:可任意讀寫文件(於任何位置)。哈電族的ram(4000~bfff)只有32KB,對於>32KB的文件一定要會用這個BRK。
例:如果要從文件的第32KB+1B處開始讀→$08ED=$80。如果要從文件的第64KB+1B處開始讀→$08EE=$01。※文件的0B處讀時,指針為0。※其餘不用的記得寫為0啊。

BRK $0527
同上,這是給BRK $0526用的。(剛剛是給BRK $0517用的)

BRK $0515

基本:檔名放$08AC以00結尾,直接BRK $0515就行
進階:
BASIC中一次可開3個檔,6502也行
開檔號:08E7(0~2)
已開檔數:0919(可直接找BRK $0517)
開檔的資訊:08F3開始為檔號,格式同系統中檔資訊。(只有最後所開的檔)
(08E8用來回傳錯誤訊息)


在程式開始執行時已用去一個開檔號,就是正在執行的那個。應該是系統先開檔,再載入,再jmp過去,但沒執行關檔。若需開3個檔可先BRK $0517。

可自動搜尋未用開檔號,順序為0→1→2→0。所以在第一次BRK $0515前08E7為0,BRK $0515後為1。(因為上一段那個緣故,00被占用)

若BRK 0515後c=1且08F3為3表示開檔號用完。

關檔中斷不會影響08E7

BRK $0515可先將此時的08E7保存下來

還是不知已開資訊存哪及已用開檔號為誰的存放位址。直接反匯編較容易吧!
好久沒完6502了
也沒時間......
目前除了拼課業就是玩Linux(還說沒時間......)
Mowd
系統管理員
系統管理員
文章: 1828
註冊時間: 2003-07-16 6:31 PM
來自: 台灣台北
聯繫:

文章 Mowd »

目前就只有你一個人在繼續研究...加油...雖然現在我在忙其他事...或許以後我又會回來玩也說不定XD,到時候這就是珍貴的研究資料了:)
Mowd 與你的交流天地
歡迎您的到來
頭像
sppmg
一級會員
一級會員
文章: 260
註冊時間: 2004-01-10 12:41 PM
來自: 地球ㄉ台灣ㄉ台北
聯繫:

文章 sppmg »

嗯!
多研究一些,以後機型稍稍研究就行。
好久沒完6502了
也沒時間......
目前除了拼課業就是玩Linux(還說沒時間......)
回覆文章