練習 - 使用前端面板來設計 Altair
在此練習中,您將使用虛擬前端面板、MikroE 8800 Retro Click 和 Altair 前端面板來編寫 Altair 模擬器的程式。
虛擬前端面板
若要存取虛擬前端面板,您必須透過 Web 終端機連線至 Altair 模擬器。
注意
在下列程序中,您會直接設定記憶體位址。 您可能會覆寫重要內容,並損毀 Altair 模擬器。 如果發生這種情況,則請重設 Azure Sphere,並再次實驗。
從 Web 終端機中,選取 [Ctrl+M] 以進入 CPU 監視器。
您可以輸入二進位字串來代表實際 Altair 前端面板上的開關。 例如,如果您輸入 0000000011110000,然後選取 [Enter] 鍵,則會關閉 12 個開關並開啟 4 個開關。
下列步驟會使用這些 Altair 控制項命令:
- e = 檢查
- en = 檢查下一個
- d = 放置
- dn = 放置下一個
- s = 單一步驟
如果您想要在位址 0x0100 載入 3 位元組 Intel 8080 Jmp,則請使用下列命令 (輸入這些命令們,然後選取 [Enter]):
- 輸入 100000000 (0x0100)。
- 輸入 e 以將 CPU 目前的指令指標設定為位址 0x0100。
- 輸入 11000011 (Jmp 的 Intel 8080 作業碼)。
- 輸入 d 以將指令放在位址 0x0000。
- 輸入 0 以設定 Jmp 指令的「低」順序位址。
- 輸入 dn 以將 CPU 指令指標遞增至下一個位址位置,並放置 Jmp 指令的高順序位元組。
- 再次輸入 dn 以將 CPU 指令指標遞增至下一個位址位置,並放置 Jmp 指令的高順序位元組。
若要執行您所輸入的指令:
輸入 100000000 (0x0100)。
輸入 e 以將 CPU 指令指標設定為位址 0x0100。
輸入 s 以使用 [單一步驟] 處理 CPU。
再次輸入 s 以使用 [單一步驟] 處理 CPU。 執行跳至位址 0x0000 之後,CPU 位址現在是 s0x0000。
Single step: Address bus: 00000000 00000000 (0x0000), Data bus 11000011 (0xc3), JMP adr (3 byte instruction)
若要結束 CPU 監視器,請選取 [Ctrl+M]。
含 MikroE 8800 Retro Click 的 Avnet Click 前端面板
MikroE 8800 Retro Click 有兩種作業模式:命令模式和輸入模式。 您可以按 Avnet Azure Sphere 入門套件上的 [按鈕 B] 來選取模式。 當您變更模式時,MikroE 8800 Retro 8x8 LED 面板會短暫顯示 C 或 I。
命令模式
在命令模式中,按鈕會採用 Altair 上命令參數的角色。 在此模式中,您可以存取「CPU 停止」、「CPU 執行」、「單一步驟」、「檢查」、「檢查下一個」、「放置」和「放置下一個」。
輸入模式
在輸入模式中,按鈕會採用 Altair 上 16 個位址/資料開關的角色。 使用 Altair 8800 Retro Click 上的 16 個按鈕,您可以將位元值設定為載入至資料匯流排或位址匯流排。
「CPU 停止」和「CPU 執行」的狀態 LED
LED 的頂端列包含 Altair 狀態指標。 在「CPU 停止」模式中,LED 的中間列會顯示資料匯流排上的 8 位元。 底部兩列會顯示位址匯流排上的 16 位元。 在「CPU 執行」模式中,資料匯流排和位址匯流排的 LED 會每隔 20 毫秒取樣一次,而且是活動的指標。
使用 Click 前端面板來載入 Intel 8080 作業碼
使用相同的範例作為虛擬前端面板時,請遵循下列步驟,以在位址 0x0100 載入 3 位元組 Intel 8080 Jmp:
- 按 [CPU 停止]。
- 按 Avnet 入門套件上的 [按鈕 B] 以切換至輸入模式。
- 按 [8] 按鈕以設定位址 0x0100。
- 按 Avnet 入門套件上的 [按鈕 B] 以切換至命令模式。
- 按 [檢查] 以設定 CPU 指令指標。
- 按 Avnet 入門套件上的 [按鈕 B] 以切換至輸入模式。
- 按 [8] 按鈕以關閉剛剛輸入的位址。
- 按 [7]、[6]、[1] 和 [0] 按鈕以設定 Intel 8080 Jmp 指令。
- 按 Avnet 入門套件上的 [按鈕 B] 以切換至命令模式。
- 按 [放置] 以將 Jmp 指令的第一個位元組放在位址 0x0100。
- 按 Avnet 入門套件上的 [按鈕 B] 以切換至輸入模式。
- 按 [7]、[6]、[1] 和 [0] 按鈕以關閉上一個步驟中所設定的開關。
- 按 Avnet 入門套件上的 [按鈕 B] 以切換至命令模式。
- 按 [放置下一個] 以將零放到低順序跳躍位址。
- 再次按 [放置下一個] 以將零放到高順序跳躍位址。
將 CPU 指令指標設定為 0x0100:
- 按 Avnet 入門套件上的 [按鈕 B] 以切換至輸入模式。
- 按 [8] 按鈕以設定位址 0x0100。
- 按 Avnet 入門套件上的 [按鈕 B] 以切換至命令模式。
執行指令:
按 [單一步驟]。
再次按 [單一步驟]。 位址匯流排上的位址會變更為零。 現在會關閉所有位址匯流排 LED。
按 [CPU 啟動] 以再次啟動 CPU 執行。
注意
您也可以觀察 Web 終端機中所執行的指令:
Examine: Address bus: 00000001 00000000 (0x0100), Data bus 11000011 (0xc3), JMP adr (3 byte instruction)
Single step: Address bus: 00000001 00000000 (0x0100), Data bus 11000011 (0xc3), JMP adr (3 byte instruction)
Single step: Address bus: 00000000 00000000 (0x0000), Data bus 11000011 (0xc3), JMP adr (3 byte instruction)
Altair 前端面板
Altair 前端面板可以與 Avnet 入門套件和 Seeed Studio 參考設計面板搭配使用。
使用 Altair 前端面板來載入 Intel 8080 作業碼
使用相同的範例作為虛擬前端面板時,請遵循下列步驟,以在位址 0x0100 載入 3 位元組 Intel 8080 Jmp:
- 閃爍 [停止] 開關。
- 開啟位址/資料匯流排開關 [8],方法是將其移至向上位置以設定位址 0x0100。 確定所有其他開關都處於關閉位置。
- 閃爍 [檢查] 開關以設定 CPU 指令指標。
- 將位址/資料匯流排開關 [8] 設定為關閉位置。
- 將位址/資料匯流排開關 [7]、[6]、[1] 和 [0] 設定為開啟位置。 這些開關設定是 Intel 8080 Jmp 指令。
- 閃爍 [放置] 開關。
- 關閉所有位址/資料匯流排開關。
- 閃爍 [放置下一個] 開關,以將零載入至低順序跳躍位址。
- 再次閃爍 [放置下一個] 開關,以將零載入至高順序跳躍位址。
將 CPU 指令指標設定為 0x0100:
- 開啟位址/資料匯流排開關 [8],方法是將其移至向上位置以設定位址 0x0100。 確定所有其他開關都處於關閉位置。
- 閃爍 [檢查] 開關以設定 CPU 指令指標。
執行指令:
- 閃爍 [單一步驟] 開關。
- 再次閃爍 [單一步驟]。 位址匯流排上的位址會變更為零。 現在會關閉所有位址匯流排 LED。