6502 組合語言,是哈電族裡使用的程式語言,也是目前設計 Bin 的唯一方法,有興趣的就進來吧
-
sppmg
- 一級會員
- 文章: 260
- 註冊時間: 2004-01-10 12:41 PM
- 來自: 地球ㄉ台灣ㄉ台北
-
聯繫:
文章
由 sppmg »
因為我想做TXT介面的文字編輯器,
但是有很多按鍵不是文字(如F1~F4、輸入.....)
所以要判斷按下哪些鍵,以及跳至他們須執行的程式。
不過那些程式都是小程式
改兩三個位址值就行了
問題來了!
請各位想想,如何做出程式體積小,執行速度快的判斷程式
再說一次已存在的條件↓
1.只有約十幾個需判斷的按鍵值
2.跳轉後的副程式都是小程式,約佔12B。且有跳轉至同一副程式的現象。
(也就是說副程式總大小很小很小)
我現在想用的方法是我在上歷史時突然想到的,
真的是又快又好,
而且這種方法只有組語或機語才做得到喔!(這也算是個提示啊!)
大家努力想想吧!
(嘿!搞不好有更好的方法)
註:若用查表程式,那些"表"也算體積
一星期後公佈答案。
好久沒完6502了
也沒時間......
目前除了拼課業就是玩Linux(還說沒時間......)
-
Mowd
- 系統管理員
- 文章: 1828
- 註冊時間: 2003-07-16 6:31 PM
- 來自: 台灣台北
-
聯繫:
文章
由 Mowd »
表先做好假設在
$3000:40 00 40 10
LDA #$C7
減掉一定的值之後再JSR至預先設定好的$3000
我忘記減法還有JSR間接尋址的方法啦
Mowd 與你的交流天地
歡迎您的到來
-
sppmg
- 一級會員
- 文章: 260
- 註冊時間: 2004-01-10 12:41 PM
- 來自: 地球ㄉ台灣ㄉ台北
-
聯繫:
文章
由 sppmg »
啊!沒說清楚
實現功能可以是JSR或JMP
另外要說一下表的格式(估大小)
估計一下轉移程式的大小
數值接近的之後再寫出來看看
好久沒完6502了
也沒時間......
目前除了拼課業就是玩Linux(還說沒時間......)
-
Mowd
- 系統管理員
- 文章: 1828
- 註冊時間: 2003-07-16 6:31 PM
- 來自: 台灣台北
-
聯繫:
文章
由 Mowd »
其實越看越模糊,條件不夠清楚根本不知道要寫什麼@@
Mowd 與你的交流天地
歡迎您的到來
-
sppmg
- 一級會員
- 文章: 260
- 註冊時間: 2004-01-10 12:41 PM
- 來自: 地球ㄉ台灣ㄉ台北
-
聯繫:
文章
由 sppmg »
哪裡不懂我再說說
主要條件就是
1.只有約十幾個需判斷的按鍵值
2.跳轉後的副程式都是小程式,約佔12B。且有跳轉至同一副程式的現象。
(也就是說副程式總大小很小很小)
至於跳轉方式不限用JSR或JMP
估計大小嘛.......只是方便啦。
好久沒完6502了
也沒時間......
目前除了拼課業就是玩Linux(還說沒時間......)
-
sppmg
- 一級會員
- 文章: 260
- 註冊時間: 2004-01-10 12:41 PM
- 來自: 地球ㄉ台灣ㄉ台北
-
聯繫:
文章
由 sppmg »
好啦好啦!
我直接說吧!
我的方法是
利用組合語言能修改指令的功能減少程式碼
表:
比對值:1B
跳轉程式之偏移量:1B
(以上結構循環)
程式
CMP.....
BNE.....(條件不符,再比對)
STA ......(修改下面BEQ後的數值)
BEQ 00
JMP ......(條件均不符合,回主程式)
.....以下為跳轉後的子程式......
說明:
上面的轉移程式就是,
當比對到適當的值時,
程式修改BEQ的偏移量,
再由此轉到下面的子程式執行功能。
(這可是高階語言無法達到的設計喔!)
※因為之前已通過BNE的測試,所以遇到BEQ絕對能轉移。
好久沒完6502了
也沒時間......
目前除了拼課業就是玩Linux(還說沒時間......)
-
Mowd
- 系統管理員
- 文章: 1828
- 註冊時間: 2003-07-16 6:31 PM
- 來自: 台灣台北
-
聯繫:
文章
由 Mowd »
哇哈哈|||和組語脫離太久,我已經看不懂BNE BEQ是什麼意思了...
Mowd 與你的交流天地
歡迎您的到來
-
sppmg
- 一級會員
- 文章: 260
- 註冊時間: 2004-01-10 12:41 PM
- 來自: 地球ㄉ台灣ㄉ台北
-
聯繫:
文章
由 sppmg »
Mowd 寫:哇哈哈|||和組語脫離太久,我已經看不懂BNE BEQ是什麼意思了...
練練吧!
我想用組語寫個哈電族的筆記本呢!
(現在還卡在文字顯示問題)
預估第一版至少能打16000個中文字。
對了
有人知道哈電族中的txt文件檔頭的意義嗎?
(了解了就能和PC互傳)
好久沒完6502了
也沒時間......
目前除了拼課業就是玩Linux(還說沒時間......)
-
Mowd
- 系統管理員
- 文章: 1828
- 註冊時間: 2003-07-16 6:31 PM
- 來自: 台灣台北
-
聯繫:
文章
由 Mowd »
如果可以把TXT完整檔頭及內容PO出來的話,我應該能分析出架構。
EBK的製作程式就是這樣來的。
Mowd 與你的交流天地
歡迎您的到來
-
sppmg
- 一級會員
- 文章: 260
- 註冊時間: 2004-01-10 12:41 PM
- 來自: 地球ㄉ台灣ㄉ台北
-
聯繫:
文章
由 sppmg »
00000000 00010018
00009A0C 00000000
1800009A 0C000000
其中9A0C的值是會變動的,我認為那是檔大小(比對過)
剩下的還需解嗎?
(檔大小是剛剛發現的。
)
好久沒完6502了
也沒時間......
目前除了拼課業就是玩Linux(還說沒時間......)