「Vintage Computer Festival Midwest 11.0」 (由 Dave Ruske 製作), CC BY 2.0
小東西

[CHIP-8 小東西] 核心指令集虛擬化與程式載入器實作

虛擬硬體元件開發完成後,接下來就進入模擬器最核心的階段:實作指令集模擬器(Instruction Set Simulator)!相較於現代處理器,CHIP-8 的指令集規模非常小,因此非常適合作為理解處理器取指(Fetch)、解碼(Decode)與執行流程(Execute)的入門專案。本篇將先介紹 CHIP-8 指令與機器碼的基本概念,接著實作二進位程式載入機制與最基本的 fetch 流程,為後續真正執行 CHIP-8 遊戲程式奠定基礎。

「Vintage Computer Festival Midwest 11.0」 (由 Dave Ruske 製作), CC BY 2.0
小東西

[CHIP-8 小東西] Delay Timer 與 Sound Timer 實作

本文將介紹如何在 CHIP-8 模擬器中實作延遲計時器(delay timer)與聲音計時器(sound timer)。兩者皆以 60 Hz 的頻率遞減,其中 delay timer 主要用於控制程式中的時間延遲與事件節奏,我們將透過 main loop 的睡眠機制模擬其遞減行為,並利用暫存器賦值進行編譯測試;Sound Timer 則採用相同的遞減機制,並在數值大於 0 時產生蜂鳴聲(beep)。

「Vintage Computer Festival Midwest 11.0」 (由 Dave Ruske 製作), CC BY 2.0
小東西

[CHIP-8 小東西] 實作虛擬硬體(螢幕顯示)

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

「Vintage Computer Festival Midwest 11.0」 (由 Dave Ruske 製作), CC BY 2.0
小東西

[CHIP-8 小東西] 專案架構規劃與 SDL 圖形渲染

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

演算法

[DSA] 鏈結串列 linked list – 單向鏈結串列

一般來說我們在認識鏈結串列前,應該都會先接觸陣列。陣列有個特徵是「連續的記憶體空間」,因此除了索引之外,操作上不是那麼的有效率。而鏈結串列就不一樣,不需要一整塊連續的記憶體空間,它可以分散各處……

碎碎唸

2026 Generative AI 年會筆記(二):把技術帶回人的需求裡

接續上一篇整理的開發者年會與 Vibe Coding,這篇整理的是第二天的年會主題。相較於第一天更聚焦在 Agent 如何被開發、驗證、部署與維護,第二天聽起來更像是把視角拉到企業與組織層面:當 Agent 真的進入真實工作之後,公司、產品、流程與人會怎麼改變?

碎碎唸

2026 Generative AI 年會筆記(一):能生成,不代表能交付

大家都會用 AI 工具已經不稀奇了,把 know-how、工作脈絡重新設計成可以被 AI 協作、接手、維護的系統,那才是價值所在。今年的 2026 Generative AI 年會,主軸是 Agent First,要談論把 Agent 接進真實工作之後,工程、產品、組織會長成什麼樣子。這次有兩個整天,三場年會主題:開發者年會、Vibe Coding 以及年會。開發者談 Harness、Vibe Coder 談規格與部署、年會談企業案例與重要趨勢。這篇先整理第一天的兩個部分:開發者年會與 Vibe Coding。

「Vintage Computer Festival Midwest 11.0」 (由 Dave Ruske 製作), CC BY 2.0
小東西

[CHIP-8 小東西] CHIP-8 規格介紹

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

技術筆記

[軟體測試] Linux GUI 測試工具:dogtail

Dogtail 是基於 Python 圖形介面自動化測試工具,透過 Accessibility / AT-SPI(Assistive Technology Service Provider Interface,輔助技術服務提供介面)與桌面應用程式互動。

攝影師:Tima Miroshnichenko: https://www.pexels.com/zh-tw/photo/6755091/
技術筆記

IP-XACT 物件介紹:Abstractor(抽象轉接器)

Abstractor 的核心目的是解決在設計中整合使用不同建模風格的元件時所產生的連接問題。抽象器是 IP-XACT 標準中處理異質性(heterogeneity)的關鍵,它允許設計者在單一設計中結合不同抽象層次的 IP 模型,並依靠標準化的元數據來自動化處理複雜的介面轉換。

攝影師:Tima Miroshnichenko: https://www.pexels.com/zh-tw/photo/6755091/
技術筆記

IP-XACT 物件介紹:Generator Chain(產生器鏈)

Generator chain 描述設計流程的生成器鏈。生成器鏈是生成器(generators)的分組和排序的定義,它是一個有序的、命名的任務序列。每個命名任務可以是一個單獨的生成器,也可以是另一個生成器鏈。這種將生成器分組並排序在生成器鏈描述中,以及在其他鏈描述中包含鏈描述的方式,對於提供基於腳本的 SoC 流程創建相當重要。

攝影師:Tima Miroshnichenko: https://www.pexels.com/zh-tw/photo/6755091/
技術筆記

IP-XACT 物件介紹:Design(設計)

Design 文件在電子設計流程中扮演組裝藍圖的角色,描述了一個系統或子系統,列出其包含的元件(components)以及這些元件之間的連接,也是建構 IP 階層式結構(hierarchical structure)的關鍵。

攝影師:Tima Miroshnichenko: https://www.pexels.com/zh-tw/photo/6755091/
技術筆記

IP-XACT 物件介紹:Component(元件)

元件(Component)是 IP-XACT 標準中最基礎且最重要的頂層 XML 元素之一。它用於描述與任何可實例化的元數據,用於描述各種 IP block,包括計算核心(例如處理器、DSP)、週邊設備(例如記憶體、DMA 控制器、定時器、UART)、匯流排結構(例如簡單匯流排、多層匯流排、交叉開關)或任何其他可以在設計中實例化的 IP block。