練習 - 使用前端面板來設計 Altair

已完成

在此練習中,您將使用虛擬前端面板、MikroE 8800 Retro Click 和 Altair 前端面板來編寫 Altair 模擬器的程式。

虛擬前端面板

若要存取虛擬前端面板,您必須透過 Web 終端機連線至 Altair 模擬器。

注意

在下列程序中,您會直接設定記憶體位址。 您可能會覆寫重要內容,並損毀 Altair 模擬器。 如果發生這種情況,則請重設 Azure Sphere,並再次實驗。

  1. 從 Web 終端機中,選取 [Ctrl+M] 以進入 CPU 監視器。

  2. 您可以輸入二進位字串來代表實際 Altair 前端面板上的開關。 例如,如果您輸入 0000000011110000,然後選取 [Enter] 鍵,則會關閉 12 個開關並開啟 4 個開關。

    下列步驟會使用這些 Altair 控制項命令:

    • e = 檢查
    • en = 檢查下一個
    • d = 放置
    • dn = 放置下一個
    • s = 單一步驟
  3. 如果您想要在位址 0x0100 載入 3 位元組 Intel 8080 Jmp,則請使用下列命令 (輸入這些命令們,然後選取 [Enter]):

    1. 輸入 100000000 (0x0100)。
    2. 輸入 e 以將 CPU 目前的指令指標設定為位址 0x0100。
    3. 輸入 11000011 (Jmp 的 Intel 8080 作業碼)。
    4. 輸入 d 以將指令放在位址 0x0000。
    5. 輸入 0 以設定 Jmp 指令的「低」順序位址。
    6. 輸入 dn 以將 CPU 指令指標遞增至下一個位址位置,並放置 Jmp 指令的高順序位元組。
    7. 再次輸入 dn 以將 CPU 指令指標遞增至下一個位址位置,並放置 Jmp 指令的高順序位元組。
  4. 若要執行您所輸入的指令:

    1. 輸入 100000000 (0x0100)。

    2. 輸入 e 以將 CPU 指令指標設定為位址 0x0100。

    3. 輸入 s 以使用 [單一步驟] 處理 CPU。

    4. 再次輸入 s 以使用 [單一步驟] 處理 CPU。 執行跳至位址 0x0000 之後,CPU 位址現在是 s0x0000。

      Single step: Address bus: 00000000 00000000 (0x0000), Data bus 11000011 (0xc3), JMP adr          (3 byte instruction)
      
  5. 若要結束 CPU 監視器,請選取 [Ctrl+M]

含 MikroE 8800 Retro Click 的 Avnet Click 前端面板

MikroE 8800 Retro Click 有兩種作業模式:命令模式和輸入模式。 您可以按 Avnet Azure Sphere 入門套件上的 [按鈕 B] 來選取模式。 當您變更模式時,MikroE 8800 Retro 8x8 LED 面板會短暫顯示 CI

命令模式

在命令模式中,按鈕會採用 Altair 上命令參數的角色。 在此模式中,您可以存取「CPU 停止」、「CPU 執行」、「單一步驟」、「檢查」、「檢查下一個」、「放置」和「放置下一個」。

Diagram that shows buttons for command mode.

輸入模式

在輸入模式中,按鈕會採用 Altair 上 16 個位址/資料開關的角色。 使用 Altair 8800 Retro Click 上的 16 個按鈕,您可以將位元值設定為載入至資料匯流排或位址匯流排。

Diagram that shows buttons for input mode.

「CPU 停止」和「CPU 執行」的狀態 LED

LED 的頂端列包含 Altair 狀態指標。 在「CPU 停止」模式中,LED 的中間列會顯示資料匯流排上的 8 位元。 底部兩列會顯示位址匯流排上的 16 位元。 在「CPU 執行」模式中,資料匯流排和位址匯流排的 LED 會每隔 20 毫秒取樣一次,而且是活動的指標。

使用 Click 前端面板來載入 Intel 8080 作業碼

使用相同的範例作為虛擬前端面板時,請遵循下列步驟,以在位址 0x0100 載入 3 位元組 Intel 8080 Jmp

  1. 按 [CPU 停止]
  2. 按 Avnet 入門套件上的 [按鈕 B] 以切換至輸入模式。
  3. 按 [8] 按鈕以設定位址 0x0100。
  4. 按 Avnet 入門套件上的 [按鈕 B] 以切換至命令模式。
  5. 按 [檢查] 以設定 CPU 指令指標。
  6. 按 Avnet 入門套件上的 [按鈕 B] 以切換至輸入模式。
  7. 按 [8] 按鈕以關閉剛剛輸入的位址。
  8. 按 [7]、[6]、[1] 和 [0] 按鈕以設定 Intel 8080 Jmp 指令。
  9. 按 Avnet 入門套件上的 [按鈕 B] 以切換至命令模式。
  10. 按 [放置] 以將 Jmp 指令的第一個位元組放在位址 0x0100。
  11. 按 Avnet 入門套件上的 [按鈕 B] 以切換至輸入模式。
  12. 按 [7]、[6]、[1] 和 [0] 按鈕以關閉上一個步驟中所設定的開關。
  13. 按 Avnet 入門套件上的 [按鈕 B] 以切換至命令模式。
  14. 按 [放置下一個] 以將零放到低順序跳躍位址。
  15. 再次按 [放置下一個] 以將零放到高順序跳躍位址。

將 CPU 指令指標設定為 0x0100:

  1. 按 Avnet 入門套件上的 [按鈕 B] 以切換至輸入模式。
  2. 按 [8] 按鈕以設定位址 0x0100。
  3. 按 Avnet 入門套件上的 [按鈕 B] 以切換至命令模式。

執行指令:

  1. 按 [單一步驟]

  2. 再次按 [單一步驟]。 位址匯流排上的位址會變更為零。 現在會關閉所有位址匯流排 LED。

  3. 按 [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 參考設計面板搭配使用。

Photo that shows the Altair front panel.

使用 Altair 前端面板來載入 Intel 8080 作業碼

使用相同的範例作為虛擬前端面板時,請遵循下列步驟,以在位址 0x0100 載入 3 位元組 Intel 8080 Jmp

  1. 閃爍 [停止] 開關。
  2. 開啟位址/資料匯流排開關 [8],方法是將其移至向上位置以設定位址 0x0100。 確定所有其他開關都處於關閉位置。
  3. 閃爍 [檢查] 開關以設定 CPU 指令指標。
  4. 將位址/資料匯流排開關 [8] 設定為關閉位置。
  5. 將位址/資料匯流排開關 [7]、[6]、[1] 和 [0] 設定為開啟位置。 這些開關設定是 Intel 8080 Jmp 指令。
  6. 閃爍 [放置] 開關。
  7. 關閉所有位址/資料匯流排開關。
  8. 閃爍 [放置下一個] 開關,以將零載入至低順序跳躍位址。
  9. 再次閃爍 [放置下一個] 開關,以將零載入至高順序跳躍位址。

將 CPU 指令指標設定為 0x0100:

  1. 開啟位址/資料匯流排開關 [8],方法是將其移至向上位置以設定位址 0x0100。 確定所有其他開關都處於關閉位置。
  2. 閃爍 [檢查] 開關以設定 CPU 指令指標。

執行指令:

  1. 閃爍 [單一步驟] 開關。
  2. 再次閃爍 [單一步驟]。 位址匯流排上的位址會變更為零。 現在會關閉所有位址匯流排 LED。