大海電子Z80操作說明書
===
前言
---
這是一套復刻了【Z80微電腦製作,劉秋良,欣大出版】書中的ABC-80微電腦。使用Arduino作為記憶體模擬器,可以讓使用者透過Arduino程式將Z80程式載入系統內執行。
目前系統有內建四套程式,分別是:
* ABC-80監督程式
* 圓周率計算程式
* 迷你監督程式(Arduino終端機版本)
* BASIC直譯程式
硬體
---
本套Z80微電腦系統硬體有三大部分:
1. arduino UNO
2. Z80主機板
3. 鍵盤與顯示器
鍵盤說明
---

使用方法
---
使用Arduino IDE內建的Serial Monitor連接Z80微電腦上的Arduino UNO,通電後可以看見Monitor出現Z80系統的提示文字。這時候可以按下數字選擇內建程式,或是選擇不理會系統就會自動進入ABC-80監督程式。
ABC-80監督程式
---
本監督程式會以系統上的鍵盤以及七段顯示器作為人機介面。監督程式首次運行時會演奏一段音樂,音樂演奏完畢後即進入待機模式,七段顯示器顯示ABC-80字樣。
- 鍵盤與顯示
使用者可以透過鍵盤輸入機器碼,首先按下ADDR鍵,七段顯示器會顯示四位數位址以及兩位數位元組內容,皆以十六進制數字系統顯示。
按下ADDR鍵時,位址四位數的每一位七段顯示器小數點都會顯示,用以指示目前輸入的焦點。按下DATA鍵則會改為顯示兩位數位元組七段顯示器小數點,表示目前輸入焦點為位元組資料。
一旦輸入焦點決定後,鍵盤上的數字以及ABCDEF按鍵就可以用來輸入十六進制數字。
- 輸入程式碼
欲輸入Z80機器碼,必須先指定位址,然後再輸入位元組資料,輸入一筆資料後,可以按下+號按鍵此時位址會加一,使用者就可以輸入下一筆位元組資料。如此反覆就可以完成程式碼輸入。
- 執行
當程式碼輸入完畢,需要重新輸入程式碼執行的開頭位址,這樣在按下GO鍵後,系統就會從指定的位址開始執行。
圓周率程式
---
選擇本程式之後,系統會自動開始執行圓周率計算,目前設定計算小數點下50位。計算完畢後會顯示花費的運算時間。
迷你監督程式
---
這組程式是利用Serial Monitor作為輸出入介面,使用者可以在Serial Monitor內輸入監督程式指令,與ABC-80監督程式一樣可以輸入機器碼與執行。
BASIC
---
此為內建的BASIC直譯程式,透過Serial Monitor與BASIC程式互動。
所需軟體
---
1. vscode,使用vscode取代arcade,編譯比較快
2. Z80組譯器,用來組譯Z80程式碼
3. notepad++,文字編輯器用來整理Z80源碼
z80組譯步驟
---
1. 在文字編輯器中整理Z80源碼
2. 在命令列執行組譯器,產生LST與CIM(機器碼)
3. 使用我寫的一個python小程式conv.py,可以把CIM轉換成C語言的陣列變數,用來插入arduino源碼中
組譯器使用範例
---
我們測試了兩種Z80組譯器,它們分別的使用方法如下:(以源碼simple-monitor.z80為例)
- z80asm
```
z80asm.exe simple-monitor.z80 -cim
python3 conv.py simple-monitor.cim > simple-monitor.c
```
- zmac
```
zmac simple-monitor.z80 --od simple-monitor --oo cim,lst -c -s -g
python3 conv.py simple-monitor/simple-monitor.cim > simple-monitor.c
```
軟體的原理
---
這套Z80微電腦使用arduino作為微電腦的程式記憶體載入器,因此欲載入Z80機器碼會以C語言陣列變數的形式存在arduino源碼中,待arduino執行時,arduino會把Z80的機器碼以一個特殊方法傳入Z80系統的RAM裡面,最後把控制權交還給Z80之後,Z80就可以執行了。
{"description":"這是一套復刻了【Z80微電腦製作,劉秋良,欣大出版】書中的ABC-80微電腦。使用Arduino作為記憶體模擬器,可以讓使用者透過Arduino程式將Z80程式載入系統內執行。","title":"大海電子Z80操作說明","contributors":"[{\"id\":\"c687840d-8843-45d7-8cf4-8b3aa0133cdf\",\"add\":1872,\"del\":67}]","image":"https://hackmd.io/_uploads/rkcUCHLDA.png"}
大海電子Z80操作說明書
前言
硬體
鍵盤說明
使用方法
ABC-80監督程式
圓周率程式
迷你監督程式
BASIC
所需軟體
z80組譯步驟
組譯器使用範例
軟體的原理