作者enthos (影斯作业系统)
看板CompilerDev
标题[分享] Sean Pringle's Assembler (FORTH)
时间Sat Aug 1 21:47:03 2020
FORTH 的发明人曾经提出 ColorFORTH 的观念。
有一个外国人 Sean Pringle 据此做出了 Enth OS 系统。
很久之後他的主要网站倒了,重建站也有放这个系统。
一段时间之後他的重建站也倒了,但我有做部分备份。
目前我备份的完整原始系统放这里,可用 qemu 玩 32-bit FORTH OS。
https://github.com/HexColors60/enth04
其中的 Assembler 编码不全,但是算是很乾净的传统 Forth Assembler
https://github.com/HexColors60/enth04/blob/master/Sasm.f
很接近 table-driven 的程式码写法。
例如: adc/add 相关的内容,程式码行数不多,全部三页内可以完成。
\ 列出部分;
: log-nr-nr ( a - ) 0c, c0 op-pop 8* or op-pop or b, ;
: log-nr-mem ( a - ) 1c, op-pop op-pop 8* 5 or b, d, ;
via-dp log-nr-? log-nr-nr log-nr-mem log-nr-lit log-nr-ba err
via-dp log-mem-? log-mem-nr err log-mem-lit err err
via-dp log-ba-? log-ba-nr err log-ba-lit err err
create log-options xt: log-nr-? xt: log-mem-? xt: err
xt: log-ba-?
: log-opco ( n n2 n3 n4 - ) create c, c, c, c,
does> log-options do-swap do-pop via bt-drop bt-drop ;
02 15 13 11 log-opco (adc)
00 05 03 01 log-opco (add)
04 25 23 21 log-opco (and)
07 3d 3b 39 log-opco (cmp)
01 0d 0b 09 log-opco (or)
' (adc) 2 opcode adc
' (add) 2 opcode add
' (and) 2 opcode and
' (cmp) 2 opcode cmp
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.249.79.60 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/CompilerDev/M.1596289629.A.25C.html