Atari ST - 1989
Z80 / Spectrum Emulator (The)
_[artemis].png?v=1788871160)
- Genre
- Hardware - Emulation / OS Fixing
- Year
- 1989
- Language
- Machine Language
- Publisher
- [no publisher]
- Controls
- Keyboard / Mouse
- Distributor
- —
- Resolution
- Low / High
- Developer
- Artemis
- ST Type
- ST, STe, TT, Falcon030 / 1MB
- Licensed from
- —
- Programmer(s)
- Hemsing, Ralf / Tochtenhagen, Jörg
- Country

- MIDI
- —
- Software
- English
- Version
- —
- Box/Instructions
- German
- Number of Disks
- 1 / Double Sided
- License
- PD / Freeware / Shareware
- Dump
- Download
- Serial
- —
- Dump format
- ST
- Protection
- —
INSTRUCTIONS
Dokumentation zum Spectrum Z80-Emulator
Layout, Hard/Soft Emulation, Programmierung
Jörg Tochtenhagen
(Artemis)
Disassembler, Basis-Arbeit (??)
Ralf Hemsing
(Brabham)
entwickelt mit dem DEVPAC-Assembler System
zwischen Dezember '89 und der fernen Zukunft
*********************
*Mailbox: WALLSTREET*
*********************
Klarstellung:
Das vorliegende Programm ist ausdrücklich eine DEMO-Version, die jedem frei
zugänglich ist (oder sein sollte). Für die vollständige Funktionstüchtigkeit
des Emulators und der Optionen wird keine Garantie gegeben (ist ja umsonst).
Warnung:
Die vorliegende Version des Spectrum Z80 Emulators ist noch lange nicht voll-
ständig fertig gestellt. Hier und da kann es noch zu Abstürzen kommen. Wer
sich aber diese kurze Doku in Ruhe durchliest, kann praktisch keine Fehler
mehr machen. Ansonsten wünsch' Ich euch viel Spass mit der Frucht eines halben
Jahres harter Arbeit!!
Entschuldigung:
Die Emulation hat noch ein paar gaaaanz kleine Bugs, deshalb wundert euch
nicht über das seltsame Zahlenformat bei der Ausgabe über PRINT. Ansonsten
habe Ich für diese DEMO die Behandlung der P/N/HC Flags ausgeschaltet. Das
meiste müsste auch so funktionieren (i hope so, son of a bitch!!). Bisherige
Erfahrungen mit dem Emulator haben ergeben, daß etwa 90% !aller! Spectrum
Programme einwandfrei laufen. (Die anderen 10% kriegen wir auch noch hin!)
Durch die Benutzung von speziellen Programm Patches, kann man bei den meisten
Programmen, auf Originalgeschwindigkeit kommen (beim BASIC sowieso!). Dazu
aber noch später.
Dateien:
Folgende Dateien müssen sich im Ordner 'ARTEMIS' befinden:
- Z80_EMUL.PRG : der Emulator
- Z80_EMUL.RSC : das RSC File
- READ_ME .TXT : dieser Text ?
- ARTEMIS .PRO : ein kleines Spiel
- ARTEMIS .PAT : die Patch-Datei zum Spiel
Schnellstart:
Wer sich nicht die Mühe macht, alles durchzulesen sei verdammt, doch er soll
erfahren, wie man alles startet und zum laufen bringt:
- Z80_EMUL.PRG starten
- durchklicken bis zum Haupt Menu
- 'RUN' anwählen
- warten
- ein wenig rumspielen
- 'UNDO' drücken
- 'Disk' anklicken
- Load 'PRO' anwählen
- Das Programm 'ARTEMIS.PRO' auswählen
- zurück zum 'Main Menu'
- 'RUN' betätigen
- ein wenig rumspielen (und staunen)
- solange spielen, bis man wieder im Menu (des Spiels) ist!!!!
- 'UNDO' drücken
- 'Debugger' anklicken
- 'Use Patches' einschalten!
- zurück zum 'Main Menu' & 'RUN'
- alles weitere überlasse ich jedem, der es gesehen hat............
Features (für die entgültige Version!)
- voll funktionstüchtiger Emulator (über 95% aller Programme ist das Ziel!)
- läuft auf allen Auflösungen
- mehrere Bildschirmtreiber
- Unterstützung von Sound und Tape bzw Microdrive bzw OPUS Routinen
- eingebaute ROM Patches
- Optionale Programm-Patches für jedes Programm
- Debugger mit Z80 Disassembler
- Compiler für Z80-->68000er Code
- Single Stepping (bei laufendem Programm angezeigte Befehle!!!!)
- eingebautes Modul für die Kommunikation mit dem Spectrum (19200 Baud!)
- Laden und abspeichern von Programmen im ATARI Format
- Lesen, schreiben, formatieren, konvertieren von OPUS Disketten
- eine Menge Einstellungen
- Unterstützung sämtlicher Z80 Funktionen sowie Interrupts
- Optionales selektieren von allen Joysticks und Tastendefinitionen
- weitgehende Kompatibilität zu allen Spectrum ROMs und Interface I ROMs
- Senden von Spectrum Programmen über den ST (maximal 30-40 Sekunden!!)
- AUTO-Monitor Mode, dabei kann der ST als externes Laufwerk benutzt werden.
- und noch alles was uns einfällt.
- zuletzt noch das Laden und abspeichern von 'echten' Files im Speccy Tape
Format (Laden nur mit angeschlossenem Sampler oder über SOUND MERLIN!)
Geschichte:
Beide Autoren (keiner kann's leugnen) haben einmal einen Spectrum gehabt, ei-
ner hat ihn sogar noch. Der ist dann irgendwann dem ST gewichen und fortan
fristete er ein Dasein zwischen Spinnweben und altem Gerümpel im Keller oder
sonstwo. Irgendwann sagte jemand: 'Spectrum Emulator!' und es folgte schallen-
des Gelächter. Eine Woche später lief bereits die erste (unglaublich schlech-
te) Test-Version. Mehrere Wochen später verbrachte man die frühen Morgenstun-
den damit 'JETPAC' auf dem ST zu spielen.
Wieso und Warum ?
Naja, in jedem steckt ein Kind (besonders in Programmierern, und ganz beson-
ders in wahnsinnigen Programmierern). Die Faszination, einen anderen vom Prin-
zip her völlig unterschiedlichen Rechner, auf dem ST zu emulieren kann viel-
leicht nicht jeder nachvollziehen. Erst recht nicht einen SINCLAIR SPECTRUM!
Doch der Gedanke, 'Unmögliches' wahr zu machen kann derart beflügeln, daß man
es entweder schafft, oder irgendwo in einem Kaufhaus mit dem Kopf in einen
AMIGA Monitor rennt. Da es unter den ST Usern nicht nur alte C64ler gibt, son-
dern auch solche, die dem Speccy huldigten dachten wir uns, ein funktionstüch-
tiger Spectrum Emulator, könnte zumindest eine gewisse Faszination aufkommen
lassen. Ausserdem, wer möchte nicht mal wieder JETPAC oder MANIC MINER spie-
len, oder in 'humble' Sinclair Basic programmieren ? That's what life's all
about, folks. Natürlich ist die programmiertechnische Herausforderung ein
Hauptgrund für solch ein zeitaufwendiges Projekt. Viel mehr als bei allen an-
deren Programmen kommt es bei der Programmierung einer Emulation darauf an,
selbst halbe Taktzyklen zu beachten. Niemals zuvor hatte Ich geglaubt, mein
Assembler würde mehr als 700 Kbyte zum assemblieren (für ca 70000 Zeilen),
oder für einen Assembliervorgang mehr als DREI Minuten brauchen. Die Entschei-
dung erst einmal eine DEMO-Version 'unters Volk' zu schieben, kam aus der
Überlegung heraus, erst einmal zu erkunden, wer sich überhaupt für solch ein
Programm interessiert. Zusätzlich bleibt noch genügend Zeit, Anregungen in das
Programm zu übernehmen. Erreichbar sind die Autoren unter 'Artemis' und 'Brab-
ham' in der PCN Mailbox. Weitere Information findet man dort.
Was ist ein Emulator ?
Manchmal kann man wirklich nicht unterscheiden, ob jemand real existiert, oder
nur eine Emulation seiner selbst ist. Prinzipiell unterscheidet man zwischen
der Prozessor (Z80) und der System Emulation. Die Prozessor Emulation ist für
die ordnungsgemäße Abarbeitung der Z80 Befehle zuständig, und muss sämtliche
Funktionen und Möglichkeiten des Z80 peinlich genau emulieren können. Da man
nur für einige Z80 Befehle Identische beim 68000 findet, kann die Emulation
nur auf einer höheren Ebene erfolgen. Durch diesen Umstand kann eine Emulation
auch nicht die Originalgeschwindigkeit erreichen, zumindest nicht ohne Tricks.
Entscheidend ist, wie schnell die Befehle abgearbeitet werden können, und wie
schnell man den nächsten Befehl erreichen kann. Nähere Informationen würden
diesen Text aus allen Nähten platzen lassen.
Nun zur System Emulation. Der Spectrum macht es einem nicht unbedingt leicht,
mit seinem Bildschirmaufbau, dem Tastaturlayout, und der IN/OUT Ports. Zu-
nächst einmal muss der ULA Chip, der all diese Funktionen beim Speccy über-
nimmt emuliert werden. Der Bildschirmaufbau wird in der Emulation unterschied-
lich vollzogen. Da der Video Shifter des STs keine Hilfe leisten kann, muss
man den Bildschirm so schnell wie möglich im Interrupt aufbauen lassen (VBL).
Daß ein Farb-Treiber wesentlich langsamer ist, haben wir der 'seltsamen' Att-
ribut Verwaltung des Spectrums zu verdanken. Also sind in der Emulation wahl-
weise mehrere Bildschirmtreiber eingebaut. Dazu aber noch später. Etwas einfa-
cher und weniger zeitaufwendig gestaltet sich die Funktionsweise der Matrix-
Tastatur und der OUT Befehle. Allerdings gibt es bei letzterem einige Ein-
schränkungen, da der ST keinen vergleichbaren USER-Port wie der Speccy hat.
Momentan sind nur die Tonausgabe, und das einschalten von Shadow-ROMs imple-
mentiert. Weitere Informationen unter 'Artemis'.
Funktionsumfang
Nach dem Starten des Programms und der nötigen Initialisierung kommt man in
das Hauptmenu des Emulators. Folgende Untermenus lassen sich erreichen:
- Options : verschiedene Einstellungen
- Debugger : Z80 Disassembler und Debugger
- Patches : Einstellung von ROM Patches
- Trans : Kommunikation mit dem Spectrum
- Disk : Laden und Speichern von Programmen
Es folgt nun eine Auflistung der Haupt-Menu-Funktionen und Einstellungen:
- AMONST : ist nur dem Programmierer zugänglich
- dummy : noch unbelegt
- 50/71Hz : in Farbe kann man zwischen 50 und 60 Hz umschalten
- ROM : eingeschaltet: das 16Kbyte ROM wird zyklisch neu 'upgedatet'
- Illegal : eingeschaltet: Illegale Z80 Befehle werden angezeigt
- Screen : Zeigt den Spectrum Screen (in Farbe: 'SPACE' = Save Degas Pic)
- X:nn Y:nn : Koordinaten der Bildschirmdarstellung (Vorsicht mach' kein' Mist)
- D/Sek: nn : Anzahl der Screen Updates pro Sekunde (8-12 ist genug!)
- Inter: nn : Anzahl der auftretenden Z80 Interrupts (normal : 50Hz)
Die Einstellungen im 'Emulator Status' Fenster erklären sich selbst, sollten
aber nicht verändert werden, da sonst das laufende Programm crashen könnte.
Funktionen des 'Options' Menus:
- OUT-xxxxx : Der OUT Befehl zur Tonausgabe kann unterschiedlich behandet
werden : fast - jagt jeden OUT einfach durch Sound-Chip
equal - berücksichtigt die BORDER Farben
ignore - macht gar nix
clear - löscht rückwirkend alle OUT Befehle
- Multiface : noch unbelegt
- Interface : noch unbelegt
- xxxxxxxxx : noch unbelegt (wer hätte das gedacht)
- DEZ/HEX : noch unbelegt (reine Faulheit, reine Faulheit)
- Invert : Invertiert die aktuelle Farbpalette
- Monoch.1*1: Einstellung der verschiedenen Bildschirmtreiber
- Return : zurück zum Hauptmenu
Die Farbpalette für jeden Bildschirmtreiber kann nach eigenen Wünschen
manipuliert werden. Man beachte, daß nur drei oder vier der acht Bildschim-
treiber überhaupt belegt sind. Die Einstellung des Treibers kann auch während
der laufernden Emulation vorgenommen werden: Man drücke F1-F8!
Der Emulator läuft auf allen drei Auflösungen. Es folgt eine Auslistung der
verschiedene Treiber:
1) Monochrom: F1 - einfarbige 1*1 Pixel Übersetzung (schnellste!!)
F2 - schattierte 1*1 Pixel (ultra langsam!!)
F3 - wie F1
F4 - wie F1
F5 - einfarbige 2*2 Pixel Übersetzung
F6 - wie F5 (wird nur in drei Schritten aufgebaut)
F7 - einfarbige 2*1+1 Pixel Übersetzung (schneller als F5)
F8 - wie F6 (wird nur in drei Schritten aufgebaut)
2) Mittlere : F1 - einfarbige 1*1 Übersetzung (wird man blind von!)
F2 - einfarbige 2*1 Übersetzung (langsamer aber besser!)
F3 - wie F1
F4 - wie F1
F5 - wie F1
F6 - wie F1
F7 - wie F1
F8 - wie F1
3) Low-Res : F1 - einfarbige 1*1 Übersetzung (sehr schnell!)
F2 - sensationeller Full-Color-Flash-Bright-Slow-Treiber
F3 - wie F1
F4 - wie F1
F5 - wie F1
F6 - wie F1
F7 - wie F1
F8 - wie F1
Desweiteren sind folgende Tasten während der laufenden Emulation belegt:
- HELP - führt einen System reset durch (RST 0)
- UNDO - kehrt zurück zum Hauptmenu
- BACKSPACE - löscht den internen Tastaturpuffer
Der Joystick am Port 2 des STs ist auf KEMPSTON geschaltet!!!
Das 'Trans' Menu
Grundlegendes zum Spectrum File Format. Der Datentransfer vom Spectrum zum ST
und umgekehrt vollzieht sich über die RS232 Anschlüsse an beiden Rechnern (bzw
am Interface I des Spectrums). Der Spectrum kann mit seinen SAVE *B und LOAD
*B Befehlen, Programme über die Schnittstelle senden und empfangen. Die Files
haben alle einen 9 Byte Header in dem die üblichen Daten bis auf den Filenamen
enthalten sind. Anhand dieses Headers weiß sowohl der Spectrum als auch die
Emulation was wohin geladen werden muss. Die Kommunikation mit dem Spectrum
erfolgt über das 'Trans' Menu. Mit diesem Menu ist ein Datentransfer in beide
Richtungen möglich. Folgende Funktionen sind verfügbar:
- Options
- Rec&Save : ein: empfangene Files könne direkt auf Disk gespeichert werden
- Emulate : ein: empfangene Files gehen auch in den Emulationsspeicher
- xxxx Baud : 4800/9600/19200 Baud können eingestellt werden
- Receiving Data
- File : empfängt ein mit SAVE *B gesendeten Spectrum File (Basic,Code...)
- Bytes : empfängt Headerlose Daten (Texte etc)
- .PRO : nicht benutzen
- PreHead : empfängt Files mit 2*9 Byte PreHeader (nicht benutzen)
- Packing & Depacking
- Pack : fügt durchnumerierte Einzelfiles zu einem PRO File zusammen
- Unpack : Umkehrfunktion zu 'Pack' (haha!)
- List : Zeigt den Inhalt eines PRO Archives
- Clear : löscht alle durchnumerierten Files (name.1 bis name.x)
- Sending Data
- File : sendet !!sofort!! den in der Headerdaten angegebenen File (HELP)
- Bytes : forget it
- Monitor : aktiviert die AUTO Monitor Funktion (siehe unten!)
- Loader : noch unbelegt
- Send from disk
- .PRO : sendet ein folständiges PRO Archive über RS232
- Single : sendet einen einzelnen File
- Bytes : sendet headerlosen File (Vorsicht!!)
- .MEN : sendet .MEN Programm und aktiviert den AUTO Monitor
Die Angaben zu 'Type','Start','Length','Basic','Line' erklären sich selbst ?!
- Save : total sinnlos
- Restore : noch sinnloser
- Return : ist doch wohl klar oda?
Da bestimmt noch einige Unklarheiten vorhanden sind, erweitern wir diesen Be-
reich noch etwas. Das Packen; normalerweise besteht ein Spectrum Programm aus
mehreren einzelnen Files (Basic+Screen+Code+Code). Nachdem man das Basic Pro-
gramm auf die LOAD *B Befehle zugeschnitten hat, sendet man es dem ST. Bei
eingeschalteter Rec&Save Funktion erscheint eine FSEL-Box. Abgespeichert wird
der File unter dem Namen xxxxx.1 (xxxxx steht für irgendwas!!! Achso!!) Die
Extension Ziffer '1' ist aber wichtig. Die kennzeichnet nähmlich einen Basic-
Loader. Nachdem man herausgefunden hat welche Files wohin geladen werden,wer-
den diese dann nacheinander zum ST gesendet und unter fortlaufenden Nummern 2-
x auf Disk oder Harddisk abgespeichert. Ist dieser Liebesakt vollzogen wählt
man die Funktion 'Pack' aus, und klickt den File xxxxx.2 an. Daraufhin werden
alle numerierten Files 1-x zu einem PRO Archive zusammengefasst. Wer das alles
verstanden hat, braucht keinen Zellaktivator mehr. Frösche haben auch keinen.
Also, um nun einen PRO File in den Spectrum zu laden muss man nur LOAD *"B"
auf diesem eingeben, und das auszuwählende Programm vom ST aus mittles "SEND
PRO" senden. Bei eingeschalteter 'Emulate' Funktion wird das Program automa-
tisch in den Emulationsspeicher übertragen und kann mittels 'RUN' als Emula-
tion gestartet werden. In der jetzigen Version gibt es aber eine wichtige Ein-
schränkung. Es werden nur sogenannte Multiface Cracks vom Emulator als PRO Fi-
les korrekt erkannt und gestartet, da bei diesen Cracks eindeutige Start Ad-
ressen vorgegeben sind. Programme, die sofort ins MCode springen können natür-
lich durch direkte Manipulation des PC im HauptMenu gestartet werden. Zur
vollständigen Erklärung der Funktionen (man wird ja förmlich erschlagen) bitte
in der Dokumentation zur fertigen Version nachsehen, oder in der Box nachfra-
gen.
Das 'Disk Menu'
Natürlich kann man auch direkt von Diskette laden. Im Folgenden werden die
wichtigsten Funktionen des 'Disk' Menus kurz erklärt.
- Save 'File' - Abspeichern eines bestimmten Codeteils, der in der Kopf-
Informationszeile angegeben ist. Dieser File hat einen
9 Byte Header und kann auch vom Original Speccy empfangen
werden.
- Save 'Infos' - einfaches anklicken schaltet das automatische abspeichern
einer Programmspezifischen INF datei an und aus.
Mit einem Doppelklick kann man eine INF Datei einzeln auf
den Datenträger speichern. (welch ein Satz!!!)
- Load 'File' - Lädt einen beliebigen Spectrum File ein. Dieser File muss
einen 9 Byte Header haben. Sonst stürzt das Universum in
sich zusammen!!!!
- Load 'Infos' - einfaches anklicken schaltet das automatische Laden von
INF Datein an bzw. aus.
- Opus - irgendwann kann man mit diesen Funktionen OPUS Disketten
laden, schreiben, formatieren etc.
- 'Convert' - VORSTICHT: Durch anklicken wird eine eingelegte Diskette
als OPUS 18 Sektor Disk erkannt und sämtliche Files auf das
'Bootlaufwerk' geschrieben. UNBEDINGT nur von Harddisk
Benutzern zu verwenden!!!
- 'ROM,Screen' - Setzt entsprechende Werte im Header!!
Wieder einmal ein paar Erläuterungen. Zu jedem abgespeicherten Programm oder
File kann eine INF Datei mit gesichert werden. Diese Datei enthält Daten über
den momentanen Status der Register. Speichert man das gesamte RAM von 16384-
65535 mit einer INFo Datei ab, so kann man diese Datei jederzeit wieder laden
und starten. (so sollte es auch sein oder?!!!)
Die Funktion Convert sollte nur von Usern benutzt werden, die über ein zweites
Laufwerk oder eine Harddisk verfügen. Bei Anwahl von Convert wird in Laufwerk
A eine OPUS Diskette (18 Sektoren 256 Bytes) erwartet, von der sofort das Di-
rectory eingelesen wird. Danach wird auf dem Bildschirm jede gefundene Datei
angezeigt, die auf Disk im ATARI Format abgespeichert werden kann. Also sollte
man den Emulator von Laufwerk B,C,D oder sonstwo laden, denn auf diesem wird
dann im aktuellen Pfad nach dem Ordner 'OPUS' gesucht. Wenn dieser vorhanden
ist, kann man durch drücken von 'SPACE' die Files 'rüberziehen'. 'RETURN' kon-
vertiert die ganze Diskette. 'ESC' kehrt zurück ins Menu, und alle anderen Ta-
sten zeigen nur die vorhandenen Dateien auf dem Bildschirm an.
Letztlich sei noch erwähnt, daß nach Aufruf des DISK Menus ein wenig Zeit ge-
braucht wird, um interne Tabellen zu erstellen. Besonders in Farbe dauert die-
ser Vorgang leider noch mehrere Sekunden. (Jaja, Ralf nu mach man hin!)
Die System-Patches
Wer keine Lust hat, kann diesen Text überpringen, ansonsten liest er weiter.
Grundlegendes zur Funktionsweise: Im Allgemeinen ist die reine Software Emula-
tion etwa 2-4 mal langsamer als das Original. Nun hat der eingefleischte
Spectrum-User aber noch ein dokumentiertes ROM Disassembly des Speccy-ROMs,
und macht sich Gedanken über eine 68000er Übersetzung. So dachte sich der Au-
tor, man könne doch viele der ROM Routinen direkt (und viel schneller) in
68000er Code übersetzen, und so geschah es. Da die Emulation peinlich genau
arbeiten muss und nicht erkennen kann, ob und wann die Flags gesetzt und abge-
fragt werden, kann man viel Zeit sparen, indem man bei bestimmten Befehlen die
Flagbehandlung einfach weglässt. Aber damit allein ist es nicht getan. Woher
soll den der Emulator wissen, wann solch eine Routine abzuarbeiten ist. Dazu
benutzt man sogenannte Illegal Codes, die beim Z80 reichlich vorhanden sind.
Normalerweise würde bei solch einem Code die Emulation Alarm schlagen, eine
ALERT Box anzeigen und ins Hauptmenu zurückkehren. Also benutzt man bestimmte
Codes, mit entsprechenden Patch Nummern, um direkt die 68000er Routinen anzu-
springen. Das 'Patch' Menu erlaubt es, einige der bisher implementierten ROM
Routinen 'patchen' zu lassen. Bei Anwahl des 'Patch' Menus hat man folgende
Möglichkeiten:
- durch Anklicken der einzelnen Zeilen kann man die einzelnen Patches ein-
bzw ausschalten
- ein Doppelklick auf eine Zeile zeigt ein Informationsfenster zu der
betreffenden Routine an. (Vorsicht: nicht bei allen Patches möglich!!)
- 'Flip' schaltet alle angezeigten Patches an bzw aus (flippen eben)
Im Prinzip wird der Status lediglich umgekehrt.
- 'Special' zerstört bei allen AMIGAs im dieseitigen Universum die Sound-
chips (sollte man nur im 'Nirvana' ähnlichen Zustand benutzen)
- 'Return' bleibt ohne Kommentar.
Wie üblich sind die Erklärungen wieder einmal nicht ausreichend. Ich muss
mal wieder auf die entgültige Dokumentation verweisen.
Der Debugger (der noch keiner ist)
Gar revolutionäre Möglichkeiten bietet der Debugger dem geneigten User. Zu-
nächst einmal muss erklärt werden, welche Möglichkeiten in diesem Menu über-
haupt vorhanden sind. (ganz ganz kurze Erklärung!)
- 'Disassemble' : zeigt den Speicherbereich ab 'Memory: xxxxx' als Z80
Disassembly an. Buummm; der Bildschirm wird gelöscht.
Mit den Pfeiltasten kann man 'scrollen' und 'blättern'.
'ESC' kehrt zurück ins Menu.
- 'Compiler' : erstellt ein Kompilat des angegebenen Speicherbereichs.
VORSICHT: Da wird dir irgendwas auf die Platte gesaved.
- 'Printer' : druckt ein Disassembly von Memory xxxxx-xxxxx auf dem
angeschlossenen Drucker (wo sonst?) aus.
- 'Load Patches' : lädt eine spezielle Patch Datei von Disk oder Harddisk.
- 'Use Patches' : entscheidet, ob die geladenen Patches benutzt werden.
- 'List Patches' : für spätere Anwendungen gedacht.
- 'xxxxxxxxxxxx' : noch unbelegt
- 'Memory xx-xx' : hier kann man den gewünschten Speicherbereich eingeben.
- 'Dez/Hex' : umschalten von Dezimal und Hexadezimal Darstellung.
Dies gilt auch für das Disassembly.
- 'Instr.' : durch Anklicken kann nach der eingegebenen Instruktion
im abgegebenen Speicherbereich gesucht werden. Die Syntax
ist dabei fast Wurscht!
- 'Text' : es wird nach dem eingegebenen text gesucht.
- 'Bytes' : es wird nach einer Bytefolge gesucht. Der Eingabestring
muss immer aus aufeinanderfolgenden zwei-zifferigen Hex
Zahlen bestehen. z.B. '1e224a9c'!!!
- '-->' : sucht nach dem nächsten.....
- 'Ascii' : bewirkt gar nix
- 'Count' : bei eingeschaltetem 'Count' wird während des Suchens der
aktuelle Counter angezeigt. (Ist aber viel langsamer!)
Zu diesem Menu nur noch ein paar kurze Worte. Die Programm Patches, jaja. Was
mit dem ROM möglich ist, kann man auch mit allen anderen Programmen machen.
Der Emulator kann für jedes Programm spezielle Patch-Dateien laden. (was bei
'LOAD PRO' automatisch geschieht!!!). Die Dateien haben ein bestimmtes Format,
das hier aber noch nicht näher erläutert werden kann. Nun, anhand dieser gela-
denen Patches werden ebenfalls einige der wichtigsten Routinen des Programms
durch schnelle (teilweise Faktor 10-20) 68000er Code ersetzt. Bei eingeschal-
tetem 'USE Patches' werden die Programme viel schneller als bei normaler Emu-
lation (mit ein paar Nachteilen allerdings). Vorsicht ist geboten, bei laufen-
der 'Action' Patches ein und auszuschalten, denn dann könnten manche Routinen
nicht ganz korrekt ablaufen. Meistens empfielt es sich, im 'Auswahlmenu' oder
direkt nach dem Laden, die Funktione zu benutzen. Zu den anderen Funktionen
fehlt mir hier einfach der Platz & die Zeit.
Der Compiler in der DEMO Version ist natürlich nur ein Witz. Zwar wird ein
Kompilat des angegebenen Speicherbereichs erzeugt, doch kann man dieses noch
nirgendwo im Emulator verwenden. Abgespeichert wird lediglich die Datei
'TEST.COM' auf der Oberfläche des aktuellen Laufwerks. Wer sich jedoch einmal
die grobe Funktionsweise ansehen will kann diese Datei in einen Debugger ein-
laden (hat keinen Header), und sich den Wust einmal ansehen.
Der Präventiv-Schlag:
Wer sich bis zu diesem Punkt durchgerungen hat, gehört entweder zu den Autoren
des Programms oder ist ein wahnsinniger Programmierer. (Echte Programmierer
tun's doch mit DEVPAC, Odin). In jedem Fall sei noch einmal daraufhin verwie-
sen, daß die Autoren des Emulators (WIR) sehr daran interessiert sind, mög-
lichst große Resonanz auf unser Project zu finden. Vielleicht hat ja jemand
noch geniale Einfälle, wie man die Funktionen erweitern könnte, oder hat gar
ein schnelleres Emulator-Prinzip zur Hand.
In jedem Fall grüßen wir Leslie Nielsen!
Bye Bye
