
[CHIP-8 小東西] 實作虛擬硬體(螢幕顯示)
在完成 CHIP-8 的系統初始化與內建字元集後,接下來就要開始建立真正能顯示畫面的螢幕模組啦!這一階段會先使用布林二維陣列保存 64×32 的像素狀態,再加入像素設定、讀取功能。最後,透過 SDL 將開啟的像素依照視窗倍率放大並繪製到畫面上,讓模擬器首次具備完整的螢幕資料儲存與顯示能力。

在完成 CHIP-8 的系統初始化與內建字元集後,接下來就要開始建立真正能顯示畫面的螢幕模組啦!這一階段會先使用布林二維陣列保存 64×32 的像素狀態,再加入像素設定、讀取功能。最後,透過 SDL 將開啟的像素依照視窗倍率放大並繪製到畫面上,讓模擬器首次具備完整的螢幕資料儲存與顯示能力。

這一階段會先建立統一的初始化流程,確保各項硬體資料在程式啟動時都有一致的初始值;接著加入 CHIP-8 內建的十六進位字元集,將 0 到 F 的精靈資料載入直譯器保留的記憶體區段。

本文將探討堆疊(Stack)的運作原理,並依據 CHIP-8 的硬體規格實作堆疊資料結構,以及如何在 CHIP-8 模擬器中實作十六進制的虛擬鍵盤。

本文將介紹如何根據 CHIP-8 硬體規格,在模擬器中實作記憶體(Memory)以及暫存器(Registers)結構。

在開發 CHIP-8 emulator 前,我們除了背景知識外,還需要先進行架構規劃以及引用需要的函式庫。除了專案架構應該大同小異外,這次專案引入 Simple DirectMedia Layer,能讓開發者輕鬆建立視窗並將像素繪製到畫面上,以達到顯示遊戲畫面之目的。

CHIP-8 是一種簡單的直譯式程式語言,也是一套簡單的虛擬機規格,出現於 1970 年代末期至 1980 年代初期,主要應用在 DIY 電腦系統上。本篇將藉由介紹 CHIP-8 背景以及實際規格,為之後的小型專案鋪路。


這篇是我搬運自己以前在 GitHub Pages 上 2020年 7 月的文章,最近要開始慢慢搬家、把那個網站改成實驗其他東西的地方,剛好搬到這一篇是那個網站誕生的文章,內心百感交集……

這一系列是我讀 The little book about OS development 的一些實作紀錄,此篇為介紹有關於 C 的使用,讓組合語言和 C 語言可以結合在一起……

這一系列是我讀 The little book about OS development 的一些實作紀錄,此篇為介紹一些基礎概念,以及利用這些簡化的流程,實作一個非常簡單的奈米級作業系統……

鑒於以前大部分應用程式都是用 C# 或是用 Python 寫,最近突然想試試看用 C++ 比較不同之處,並且從管理系統著手(以前有陣子蠻常寫這個的),殊不知將近兩到三個小時幾乎是忙著大改裡面的東西……

現在要打造一座城堡,目前已經有任務清單,例如建造牆壁、打地基、安裝窗戶等等,但還沒有排序哪個任務要先完成,目前有個檔案有每個任務的 index、每個任務的名稱以及每個任務的先備條件,目前我們需要一個能夠排序任務的小工具……

這次我想爬取 majortests 中的英文列表。這個網站的組成蠻簡單的(雖然廣告很多),標籤也很一致整齊,很適合做為爬取單字的爬蟲練習……

為了複習關於物件移動的概念,我用網路上所能找到的最簡單的例子去理解。後來決定實作看看彈力球……

Software Engineer from Taiwan