讀者們可能還記得,我曾經說過在和合作夥伴Joe Farr打造這台4位元電腦——Maxfield/Farr 4-Bit HRRG時的想法是:總有一天它將化身為安裝在牆上的一系列玻璃門木櫃——每個木櫃中都包含這台電腦的一部份,而且分別採用不同的建置技術來實現,包括繼電器、真空管、分離式電晶體、7400系列晶片,以及一系列的機械、磁、氣動和流體邏輯等元件組合。

正因為這種「讓簡單複雜化」的精神,這台Maxfield/Farr 4-Bit HRRG的HRRG部份就採用了漫畫家Heath Robinson和Rube Goldberg而命名。您可參考打造這台4位元HRRG電腦的一系列相關文章。

當然,真正實現這台4位元電腦還需要幾週的時間。然而,與我共同開發這台4位元電腦的Joe Farr和我都非常期待這台電腦也能在教育中發揮作用,只是我們也知道建構完整版本可能超出許多高中教師的資源。因此,Joe最近開始以HRRG模擬器的形式打造該4位元電腦的虛擬版本。

我們的想法是開放模擬器給任何想要使用的人免費下載。使用者們將能夠透過創建組合語言著手,並使其在虛擬世界中執行。只要準備就緒,他們就可以開始打造現實世界中的實體機櫃,然後讓這些實體機櫃與模擬器共同執行,其中每個實體機櫃可能包含少至單個4位元記憶體字元一直到包含完整的CPU。從Joe剛剛發給我的這段視訊,即可看到目前的執行狀況。

首先,主模擬器出現在螢幕的右側,緊接著是左側的虛擬印表機。對於模擬器而言,這是一種機架式可視化。Joe並將每個模組創建為獨立程式,透過軟體背板使用與現實世界機器相同的位址、數據和控制訊號進行通訊。

正如之前所討論的,從模擬器頂部機架的左側開始,我們可以看到有主電源模組、時脈模組,然後是CPU模組;右側的硬體介面模組則以新的形式出現。這將允許模擬器連接到現實世界中的實體機櫃。

接著,Joe開始縮小模擬器、啟動HRRG終端,載入預先創建的組合語言並進行組合。Joe並在來源程式碼中加進一個錯誤,重新執行組合語言,並顯示追蹤並校正錯誤的過程。

當Joe儲存該程式語言時,他選擇的選項之一是產生成虛擬紙帶(paper tape)。接著,Joe縮小HRRG終端、將模擬器恢復至螢幕後再重新啟動,此時恢復虛擬列印機。接下來,Joe將程式語言從紙帶加載到模擬器中,並顯示其正執行中。之後,他開始單步執行程式,並將除錯資訊輸出到虛擬列印機。

您可能已經注意到,與虛擬列印機和紙帶編寫器和讀取器有關的聲音效果僅執行很短的時間。實際上,這是可配置的——您可以完全關閉聲音,包括指定行數的聲音,或者始終保持聲音(這個人偏好這一選項)。

我開始擔心Joe在此過程中「玩」得太開心了,因為他只透過電子郵件跟我說已經為模擬器創建了兩個新模組——Tic-Tac-Toe模組和Traffic Intersection Simulator模組。

20190401_emulator_TA01P1

Tic-Tac-Toe 模組(來源:Joe Farr)

20190401_emulator_TA01P2

十字路口模擬器模組(來源:Joe Farr)

從Tic-Tac-Toe模組可看到,全部只採用了虛擬LED和虛擬按鈕——使用者必須自行編寫程式(使用組合語言),才能玩遊戲。相形之下,十字路口模擬器模組的實際模擬是以恆定速度運行於背景中,而無論您自己的軟體有多麼糟糕或者緩慢。使用者可以為其配置新車的頻率以及其他參數,還可以設定目標,例如交叉路口處最多不超過多少車輛佇留等。使用者的任務是編寫程式(採用我們的組合語言)來控制交通訊號燈,從而控制模擬中的汽車。

這兩個模組已經過概念驗證,以(a)展示其可以用於做什麼,以及(b)有助於測試和除錯整個模擬器。我不得不說Joe為此4位元打造了很棒的模擬器模組,連我都迫不及待地想要親自動手體驗這台模擬器了。你呢?對於這項4位元HRRG電腦模擬器設計有什麼看法?或者,您認為還可能添加哪些其他有趣的模組?

編譯:Susan Hong

(參考原文:Building a 4-Bit Computer from the Ground Up: Emulators Rule,by Max Maxfield)