7 คะแนน โดย xguru 2020-04-18 | 3 ความคิดเห็น | แชร์ทาง WhatsApp
  • นำ 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 ความคิดเห็น

 
xguru 2020-04-18

โครงสร้างแบบ 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

}

}

 
barmi 2020-04-18

ตอนแรกคิดว่าสแต็ก 16 ไบต์เล็กเกินไปมาก แต่พอหน่วยความจำมี 4k ก็ดูน่าจะเป็นไปได้ครับ

 
barmi 2020-04-18

อา~ 16 เวิร์ด, เวิร์ด 16 คำ