สร้างอีมูเลเตอร์ด้วย JS และเชื่อมต่อกับหลาย UI
(taniarascia.com)-
นำ Chip-8 interpreter ที่เคยใช้กับเครื่อง 8 บิตในยุค 1970 มาสร้างด้วย JS
-
เชื่อมต่อกับเว็บ/CLI/แอปเนทีฟ
-
แม้ในความเป็นจริงจะเป็น interpreter แต่เพราะมีลักษณะใกล้เคียงกับ emulator จึงเหมาะสำหรับผู้ที่อยากเรียนรู้วิธีสร้าง emulator
-
ประกาศตัวแปรอย่าง Memory (4KB), Program Counter, Register, Index Register, Stack, Stack Pointer, Timer ฯลฯ
สร้าง CPU และทำคีย์บอร์ด HEX 4x4 กับจอแสดงผล 64x32
-
รันได้ในสภาพแวดล้อมเนทีฟหลากหลายแบบด้วยการใช้ Raylib Node.js binding ผ่านโค้ด JavaScript
3 ความคิดเห็น
โครงสร้างแบบ 8 บิตทำให้โค้ดไม่ซับซ้อนมาก เลยอ่านได้สนุกพอสมควร
โค้ดด้านล่างนี้น่าประทับใจมาก
class CPU {
constructor() {
this.memory = new Uint8Array(4096)
this.registers = new Uint8Array(16)
this.stack = new Uint16Array(16)
this.ST = 0
this.DT = 0
this.I = 0
this.SP = -1
this.PC = 0x200
}
}
ตอนแรกคิดว่าสแต็ก 16 ไบต์เล็กเกินไปมาก แต่พอหน่วยความจำมี 4k ก็ดูน่าจะเป็นไปได้ครับ
อา~ 16 เวิร์ด, เวิร์ด 16 คำ