Martypc เป็นตัวจำลองข้ามแพลตฟอร์มของพีซีต้นที่เขียนด้วย Rust รองรับ Windows, Linux และ MacOS MartypC จำลองระบบที่ใช้ 8088 หลายระบบรวมถึง IBM PC, XT, PCJR และ Tandy 1000
คลิกที่นี่เพื่อเข้าถึงคู่มือผู้ใช้ martypc
งานสร้างมีให้บริการผ่านการเผยแพร่เป็นระยะ งานสร้างใหม่ที่ใหม่กว่านั้นมีให้ผ่านแท็บการกระทำภายใต้สิ่งประดิษฐ์สำหรับการทำงานแต่ละเวิร์กโฟลว์ (คุณจะต้องลงชื่อเข้าใช้ GitHub เพื่อดาวน์โหลดสิ่งประดิษฐ์)
MARTYPC เริ่มเป็นโครงการงานอดิเรกเพื่อดูว่าฉันสามารถเขียนอีมูเลเตอร์ตั้งแต่เริ่มต้นในขณะที่เรียนรู้ภาษาการเขียนโปรแกรมสนิมหรือไม่ เป้าหมายดั้งเดิมของฉันสำหรับ martypc นั้นเรียบง่าย แต่ก็ถึงระดับของฟังก์ชั่นที่ฉันไม่เคยจินตนาการมาก่อน
ช่องทางที่ตั้งใจไว้ของ Martypc ในโลกจำลองเป็นผู้ช่วยในการพัฒนาพีซีย้อนยุค มันเต็มไปด้วยเครื่องมือการดีบักและสิ่งอำนวยความสะดวกในการบันทึกพร้อมตามแผนอื่น ๆ อีกมากมาย อาจไม่เป็นมิตรกับผู้ใช้ในการตั้งค่าเป็นอีมูเลเตอร์อื่น ๆ แต่ถ้าคุณคุ้นเคยกับไฟล์การกำหนดค่า Edting คุณไม่ควรมีปัญหาที่สำคัญ โปรแกรมเมอร์การเขียนซอฟต์แวร์สำหรับ Intel 8088 สามารถดูและวัดการดำเนินการตามรอบที่แน่นอนของรหัส
การพัฒนาของ MartypC เริ่มต้นในเดือนเมษายน 2565 ฉันเริ่มทำงานในการทำรอบ 8088 CPU ของ Martypc ในเดือนพฤศจิกายน 2565 เพื่อทำเช่นนั้นฉันตรวจสอบการทำงานของซีพียูกับซีพียู 8088 ที่เชื่อมต่อกับไมโครคอนโทรลเลอร์ ดูโครงการ Arduino8088 ของฉันสำหรับรายละเอียดเพิ่มเติม สิ่งนี้จะช่วยให้สามารถดำเนินการคำสั่งพร้อมกันบนตัวจำลองและซีพียูจริงและผลการดำเนินการเปรียบเทียบวงจรต่อรอบ ข้อมูลเพิ่มเติมเกี่ยวกับกระบวนการนี้อธิบายไว้ในบล็อกของฉัน
ในเดือนมิถุนายนปี 2567 ฉันอัปเดตชุดทดสอบ 8088 อีกครั้งเพื่อสนับสนุนการออกกำลังกายของคิว prefetch ของ 8088 พบความไม่ถูกต้องของวัฏจักรอีกมากมายและแก้ไข MARTYPC ผ่านชุดทดสอบ 8088 V2 ด้วย 99.9997% ความแม่นยำรอบ
การวิจัยฮาร์ดแวร์อย่างกว้างขวางได้ดำเนินการเพื่อปรับปรุงการจำลองอุปกรณ์ต่อพ่วงของ MartypC เช่นกันรวมถึงการตรวจสอบชิปตัวจับเวลา 8253 ด้วย Arduino ตรวจสอบการกำหนดเวลา DMA ด้วยออสซิลโลสโคป
ในเดือนเมษายน 2566 Martypc มีความแม่นยำพอที่จะเรียกใช้การสาธิตพีซีที่น่าอับอาย 8088 ไมล์ต่อชั่วโมง
ในเดือนพฤษภาคม 2566 MARTYPC กลายเป็นเครื่องจำลองพีซีเครื่องแรกที่สามารถเลียนแบบเอฟเฟกต์ทุกอย่างในพื้นที่สาธิตพีซี 5150 (ดูวิดีโอที่นี่: https://www.youtube.com/watch?v=zadelm9G0ZG)
WebAssembly Build of MartypC สามารถเรียกใช้ทั้ง 8088mph และพื้นที่ 5150 ในเว็บเบราว์เซอร์ของคุณ!
ปัจจุบัน MartypC สามารถเลียนแบบพีซี IBM 5150 ดั้งเดิม, 5160 XT หรือเครื่องโคลน XT ทั่วไป
การสนับสนุนเบื้องต้นสำหรับ IBM PCJR และ Tandy 1000 มีอยู่ที่ 0.2.1 เครื่องจักรเหล่านี้อาจเป็นรถและไม่เสถียร
Martypc เลียนแบบอุปกรณ์ต่อไปนี้:
MARTYPC รองรับการกำหนดค่าเครื่องที่กำหนดเองผ่านโปรไฟล์การกำหนดค่าของเครื่องฐานบวกส่วนขยายเสริมที่เรียกว่า 'ซ้อนทับ', analagous เพื่อติดตั้งการ์ดส่วนขยายหรือการอัพเกรดอื่น ๆ
MARTYPC มี GUI ดีบั๊กที่มีจอแสดงผลที่มีประโยชน์หลายอย่างรวมถึงการถอดชิ้นส่วนคำสั่งรัฐ CPU, Viewer หน่วยความจำและสถานะอุปกรณ์ต่อพ่วงต่างๆ รองรับรหัสและหน่วยความจำ MARTYPC ยังรองรับคำสั่งและการบันทึกตามวัฏจักร
เรียกใช้การ์ดวิดีโอสองใบใน Windows แยกต่างหากหรือการ์ดวิดีโอใบเดียวกันในมุมมอง 'ถูกต้อง' และ 'debug' - หรือมี shaders ที่แตกต่างกัน!
CRT Shader ที่กำหนดค่าได้พื้นฐานนั้นมาพร้อมกับ More To Come (การสนับสนุน Librashader มีการวางแผน)
สำหรับข้อมูลเพิ่มเติมลองดูส่วนแกลเลอรี่ภาพหน้าจอของวิกิ!
ฉันมีรายชื่อผู้คนมากมายที่จะขอบคุณ (ดูเกี่ยวกับกล่อง!) แต่ฉันอยากจะพูดถึงการมีส่วนร่วมที่ทำโดย Reenigne หากไม่มีการทำงานด้านวิศวกรรมย้อนกลับของ 8088 ไมโครโค้ดอีมูเลเตอร์นี้จะไม่สามารถทำได้ ฉันขอขอบคุณ Ken Shirriff และบล็อกที่ยอดเยี่ยมของเขาครอบคลุมตรรกะซิลิคอนของ 8086 (และ 8088 โดยการขยาย)