Commodore 64 Raspberry Pi Pico 模擬器|奧斯丁教育 OURSTEAM in EDUCATION
icon最新消息
2022 / 05 / 16

Commodore 64 Raspberry Pi Pico 模擬器

2022 年 5 月 16 日  Rosie Hattersley

儘管Kevin Vance是一名軟件開發人員,但他是 Raspberry Pi 世界的新手,當時他開始草擬恢復他的舊 Commodore 64 的計劃。因此,他的第一台計算機的複古改造成為他的第一個 Raspberry Pi 項目。Kevin從小就開始編碼,但直到 2020 年才開始沉浸在數字製作的世界中。 


Pico 能夠通過擴展端口啟動來運行 Commodore 64。使用 Pico 的 RAM 而不是 EEPROM 被證明是明智的選擇

當 Kevin 第一次了解Raspberry Pi Pico時,他已經開始著手為 Commodore 製作擴展板。“PIO [可編程 I/O] 系統的開發聽起來非常有趣,大閃存存儲和 GPIO 引腳數量使其成為該項目的理想選擇,因此我開始進行新設計,”他解釋道。該項目的第一次迭代有一個單獨的微控制器、閃存和一個穩壓器。當 Kevin 意識到 Pico 以低得多的成本將所有這些都包含在一個模塊中時,他“非常興奮”。

移動球門柱
最初,Kevin 想要構建一個帶有微控制器的 Commodore 64 遊戲卡帶,Commodore 可以將工作卸載到該微控制器上。隨著 Ben Eater 的“優秀”影片演練在麵包板上創建 6502 計算機後,Kevin 計劃了一個類似的場景,將 6502 機器代碼存儲在普通 EEPROM 上。他為更新後的 Commodore 64 設計的麵包板只是他的第二個 PCB 設計。用細尖烙鐵手工焊接微小的表面貼裝元件“容易出錯並且需要耐心”,因此在電熱板上投資 16 美元是“物有所值!”


Kevin為這個項目設計了一塊定制電路板

Kevin為他的項目編寫了全新的代碼,並且由於他不斷改變電路板的工作方式,因此經常更新。隨著他對 Pico 的 PIO 和 DMA 控制器如何協同工作有了更好的了解,他決定研究是否可以使用 Pico 的 RAM 代替 EEPROM。他告訴我們“它比我預期的要好。”,“早在 Commodore 試圖讀取PIO 狀態機之前,它可以將 Pico 的 RAM 中的數據放到 C64 的數據總線上,而無需涉及其 CPU!”

他最大的設計挑戰是大量的引腳和 Commodore 的信號電壓。“由於這是一台帶有並行總線的舊機器,Pico 上沒有足夠的 GPIO 引腳將它們全部連接起來。幸運的是,由於我只模擬一個 ROM 盒,我可以只使用 14 條地址線、8 條數據線和 2 條控制線”,解釋道。他添加了 5V 容限緩衝器來將信號轉換為 3.3V,因此 Commodore 64 的 5V 信號不會損壞 Pico 的 GPIO 引腳。 


Kevin 的 GitHub 頁面顯示了 Pico 如何與 C64 通信的詳細示意圖

Pico 的 PIO 系統為這個構建提供了最大的優勢,使他能夠避免 CPU 的所有復雜性並以可預測的時序運行。

他使用地址解碼從 Commodore 發送命令,以便從一個特殊的 256 字節內存塊中讀取數據,然後使用 RX FIFO 將地址作為“命令”發送到 Pico 的 CPU。當 CPU 準備好使用 TX FIFO 執行更多命令時,他巧妙地考慮了命令完成的時間。“這讓 Commodore 可以在不中斷 Pico 的 CPU 的情況下輪詢命令狀態,”他解釋道。“有一個有趣的設備可以讓 Commodore 與之通信”——他計劃進一步調查。


Kevin 很高興地發現 Frogger 裝載了他復活的 C64!

擴展計劃
儘管 Kevin 很高興能夠讓他童年時期的計算機重新啟動並運行,但他仍然很好奇他可以將 Pico 的 CPU 用於哪些 C64 程序——也許是他在 C64 是新的時寫回的遊戲並且他仍然維護代碼——以及他在哪些設備上使用可以從 USB 端口使用。


使用第二個 Pico 作為模擬器有助於開發過程

他也成為了 Raspberry Pi Pico 的忠實粉絲。“它在每個時鐘週期可以做很多事情,並且與 DMA 控制器一起,一旦它被初始化,它就可以在沒有 CPU 的情況下運行!” 他使用第二個 Pico 模擬 C64 總線,加快了重建項目的開發。這第二個 Pico 很可能成為用於自動化測試的專用微控制器。

如果您有興趣深入了解,該項目的 GitHub 位於 https://github.com/cknave/c64-pico-ram-interface – 加油!


消息來源:https://www.raspberrypi.com/news/commodore-64-raspberry-pi-pico-emulator/
  • icon
  • icon
  • icon
  • icon
  • icon
  • icon電話:04-2376-6276
  • icon傳真:04-2256-9949
  • icon統編:13438259
  • iconE-mail:oursteamtw@gmail.com
  • iconLINE ID:@oursteam