MARTYPC ist ein plattformübergreifender Emulator der frühen PCs in Rost. Es unterstützt Windows, Linux und MacOS. Martypc emuliert mehrere 8088-basierte Systeme, darunter IBM PC, XT, PCJR und Tandy 1000.
Klicken Sie hier, um auf den Martypc -Benutzerhandbuch zuzugreifen
Builds sind durch regelmäßige Veröffentlichungen erhältlich. Neuere, automatische Builds sind über die Registerkarte Aktionen unter den Artefakten für jeden Workflow -Lauf verfügbar. (Sie müssen bei GitHub angemeldet werden, um Artefakte herunterzuladen).
Martypc begann als Hobbyprojekt, um zu sehen, ob ich einen Emulator von Grund auf neu schreiben konnte, während ich die Rost -Programmiersprache lernte. Meine ursprünglichen Ziele für MARTYPC waren bescheiden, aber es hat ein Maß an Funktionalität erreicht, das ich mir nie hätte vorstellen können.
Martypcs beabsichtigte Nische in der Emulationswelt ist ein Adjutant für die Retro -PC -Entwicklung. Es ist voller Debugging -Tools und Protokollierungsanlagen, mit vielen weiteren geplanten. Es ist möglicherweise nicht so benutzerfreundlich, als andere Emulatoren einzurichten. Wenn Sie jedoch mit Eding-Konfigurationsdateien vertraut sind, sollten Sie keine größeren Probleme haben. Programmierer, die Software für den Intel 8088 schreiben, können die genaue Zyklus-von-Zyklus-Ausführung ihres Codes sehen und messen.
Die Entwicklung von MARTYPC begann im April 2022. Ich begann mit der Arbeit, Martypcs 8088 CPU-Emulationszyklusgenauigkeit im November 2022 zu machen. Dazu bestätigte ich den Betrieb der CPU gegen eine echte 8088-CPU, die mit einem Arduino-Mega-Mikrocontroller verbunden ist. Weitere Informationen finden Sie in meinem Arduino8088 -Projekt. Dies ermöglicht es, dass eine Anweisung gleichzeitig auf dem Emulator und einer realen CPU- und den im Vergleich zu Zyklus im Vergleich zu Zyklus im Vergleich zur Ausführung ergebenden Ergebnisse ausgeführt wird. Weitere Informationen zu diesem Prozess werden in meinem Blog beschrieben.
Im Juni 2024 habe ich die 8088 Test Suite erneut aktualisiert, um die Ausübung der Prefetch -Warteschlange des 8088 zu unterstützen. Es wurden viele weitere Zyklusunsitiven gefunden und korrigiert. MARTYPC übergibt die 8088 V2-Testsuite mit 99,9997% Zyklusgenauigkeit.
Es wurden umfangreiche Hardwareforschungen durchgeführt, um die periphere Emulation von Martypc zu verbessern, einschließlich der Untersuchung des 8253 -Timer -Chips mit einem Arduino, der Untersuchung der DMA -Timings mit einem Oszilloskop und letztendlich, einen Busscheißer mit einem Logikanalysator zu bauen.
Im April 2023 wurde Martypc genau genug, um die berüchtigte PC -Demo mit 8088 Meilen pro Stunde zu betreiben.
Im Mai 2023 war MARTYPC der erste PC -Emulator, der jeden Effekt im PC -Demobereich 5150 nachahmt (siehe Video hier: https://www.youtube.com/watch?v=zadelm9g0zg)
Der WebAssembly -Build von MARTYPC kann sowohl 8088 MPH als auch Area 5150 in Ihrem Webbrowser ausführen!
Derzeit kann Martypc einen originalen IBM 5150 PC, 5160 XT oder eine generische XT -Klonmaschine emulieren.
Vorläufige Unterstützung für IBM PCJR und Tandy 1000 sind ab 0,2,1 vorhanden. Diese Maschinen können fehlerhaft und instabil sein.
Martypc emuliert die folgenden Geräte:
MARTYPC unterstützt benutzerdefinierte Maschinenkonfigurationen über Basismaschinenkonfigurationsprofile sowie optionale Erweiterungen, die als "Overlays" bezeichnet werden, analagous zur Installation von Erweiterungskarten oder anderen Upgrades.
MARTYPC verfügt über eine umfangreiche Debugging -GUI mit mehreren nützlichen Anzeigen, darunter Anweisungsminderung, CPU -Staat, Speicherzuschauer und verschiedene periphere Zustände. Code- und Speicherbestandspunkte werden unterstützt. Martypc unterstützt auch Anweisungen und zyklusbasierte Protokollierung.
Führen Sie zwei Grafikkarten in separaten Fenstern oder dieselbe Grafikkarte in "Genauigen" und "Debugg" -Ansicht aus - oder mit verschiedenen Shadern!
Ein grundlegender, konfigurierbarer CRT -Shader ist mit weiteren Kommen enthalten (Librashader -Unterstützung ist geplant)
Weitere Informationen finden Sie im Abschnitt Screenshot Gallery des Wiki!
Ich habe eine lange Liste von Leuten zu danken (siehe die About Box!), Aber ich möchte besonders die Beiträge von Reenigne erwähnen. Ohne seine Arbeit, die den 8088-Mikrocode umgekehrt ist, wäre dieser Emulator niemals möglich gewesen. Ich möchte auch Ken Shirrriff und seinem ausgezeichneten Blog danken, der einen Großteil der Siliziumlogik des 8086 (und 8088 nach Erweiterung) abdeckt.