                  Dokumentation zum Spectrum Z80-Emulator

                Layout, Hard/Soft Emulation, Programmierung
                             Jrg 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 ausdrcklich eine DEMO-Version, die jedem frei
zugnglich ist (oder sein sollte). Fr die vollstndige Funktionstchtigkeit
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-
stndig fertig gestellt. Hier und da kann es noch zu Abstrzen kommen. Wer
sich aber diese kurze Doku in Ruhe durchliest, kann praktisch keine Fehler
mehr machen. Ansonsten wnsch' 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 fr diese DEMO die Behandlung der P/N/HC Flags ausgeschaltet. Das
meiste msste 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 spter.

                                  Dateien:

Folgende Dateien mssen 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 Mhe 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' anwhlen
- warten
- ein wenig rumspielen
- 'UNDO' drcken
- 'Disk' anklicken
- Load 'PRO' anwhlen
- Das Programm 'ARTEMIS.PRO' auswhlen
- zurck zum 'Main Menu'
- 'RUN' bettigen
- ein wenig rumspielen (und staunen)
- solange spielen, bis man wieder im Menu (des Spiels) ist!!!!
- 'UNDO' drcken
- 'Debugger' anklicken
- 'Use Patches' einschalten!
- zurck zum 'Main Menu' & 'RUN'
- alles weitere berlasse ich jedem, der es gesehen hat............


                 Features (fr die entgltige Version!)

- voll funktionstchtiger Emulator (ber 95% aller Programme ist das Ziel!)
- luft auf allen Auflsungen
- mehrere Bildschirmtreiber
- Untersttzung von Sound und Tape bzw Microdrive bzw OPUS Routinen
- eingebaute ROM Patches
- Optionale Programm-Patches fr jedes Programm
- Debugger mit Z80 Disassembler
- Compiler fr Z80-->68000er Code
- Single Stepping (bei laufendem Programm angezeigte Befehle!!!!)
- eingebautes Modul fr 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
- Untersttzung smtlicher Z80 Funktionen sowie Interrupts
- Optionales selektieren von allen Joysticks und Tastendefinitionen
- weitgehende Kompatibilitt 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 einfllt.

- 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 Germpel im Keller oder
sonstwo. Irgendwann sagte jemand: 'Spectrum Emulator!' und es folgte schallen-
des Gelchter. Eine Woche spter lief bereits die erste (unglaublich schlech-
te) Test-Version. Mehrere Wochen spter verbrachte man die frhen 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 vllig unterschiedlichen Rechner, auf dem ST zu emulieren kann viel-
leicht nicht jeder nachvollziehen. Erst recht nicht einen SINCLAIR SPECTRUM!
Doch der Gedanke, 'Unmgliches' wahr zu machen kann derart beflgeln, 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 funktionstch-
tiger Spectrum Emulator, knnte zumindest eine gewisse Faszination aufkommen
lassen. Ausserdem, wer mchte nicht mal wieder JETPAC oder MANIC MINER spie-
len, oder in 'humble' Sinclair Basic programmieren ? That's what life's all
about, folks. Natrlich ist die programmiertechnische Herausforderung ein
Hauptgrund fr 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 wrde mehr als 700 Kbyte zum assemblieren (fr ca 70000 Zeilen),
oder fr 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 fr solch ein
Programm interessiert. Zustzlich bleibt noch gengend 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 fr
die ordnungsgeme Abarbeitung der Z80 Befehle zustndig, und muss smtliche
Funktionen und Mglichkeiten des Z80 peinlich genau emulieren knnen. Da man
nur fr einige Z80 Befehle Identische beim 68000 findet, kann die Emulation
nur auf einer hheren 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 knnen, und wie
schnell man den nchsten Befehl erreichen kann. Nhere Informationen wrden
diesen Text aus allen Nhten 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-
nchst 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 mglich 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 spter. Etwas einfa-
cher und weniger zeitaufwendig gestaltet sich die Funktionsweise der Matrix-
Tastatur und der OUT Befehle. Allerdings gibt es bei letzterem einige Ein-
schrnkungen, 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 ntigen 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 zugnglich
- 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 erklren sich selbst, sollten
aber nicht verndert werden, da sonst das laufende Programm crashen knnte.

Funktionen des 'Options' Menus:

- OUT-xxxxx : Der OUT Befehl zur Tonausgabe kann unterschiedlich behandet
              werden : fast   - jagt jeden OUT einfach durch Sound-Chip
                       equal  - bercksichtigt die BORDER Farben
                       ignore - macht gar nix
                       clear  - lscht rckwirkend alle OUT Befehle

- Multiface : noch unbelegt
- Interface : noch unbelegt
- xxxxxxxxx : noch unbelegt (wer htte das gedacht)
- DEZ/HEX   : noch unbelegt (reine Faulheit, reine Faulheit)
- Invert    : Invertiert die aktuelle Farbpalette
- Monoch.1*1: Einstellung der verschiedenen Bildschirmtreiber
- Return    : zurck zum Hauptmenu

Die Farbpalette fr jeden Bildschirmtreiber kann nach eigenen Wnschen
manipuliert werden. Man beachte, da nur drei oder vier der acht Bildschim-
treiber berhaupt belegt sind. Die Einstellung des Treibers kann auch whrend
der laufernden Emulation vorgenommen werden: Man drcke F1-F8!

Der Emulator luft auf allen drei Auflsungen. 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 whrend der laufenden Emulation belegt:

- HELP        - fhrt einen System reset durch (RST 0)
- UNDO        - kehrt zurck zum Hauptmenu
- BACKSPACE   - lscht 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 Anschlsse 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 mglich. Folgende Funktionen sind verfgbar:

- Options

- Rec&Save  : ein: empfangene Files knne direkt auf Disk gespeichert werden
- Emulate   : ein: empfangene Files gehen auch in den Emulationsspeicher
- xxxx Baud : 4800/9600/19200 Baud knnen eingestellt werden

- Receiving Data

- File      : empfngt ein mit SAVE *B gesendeten Spectrum File (Basic,Code...)
- Bytes     : empfngt Headerlose Daten (Texte etc)
- .PRO      : nicht benutzen
- PreHead   : empfngt Files mit 2*9 Byte PreHeader (nicht benutzen)

- Packing & Depacking

- Pack      : fgt durchnumerierte Einzelfiles zu einem PRO File zusammen
- Unpack    : Umkehrfunktion zu 'Pack' (haha!)
- List      : Zeigt den Inhalt eines PRO Archives
- Clear     : lscht 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 folstndiges 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' erklren 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 fr irgendwas!!! Achso!!) Die
Extension Ziffer '1' ist aber wichtig. Die kennzeichnet nhmlich 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 whlt
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. Frsche haben auch keinen.
Also, um nun einen PRO File in den Spectrum zu laden muss man nur LOAD *"B"
auf diesem eingeben, und das auszuwhlende 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-
schrnkung. 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 knnen natr-
lich durch direkte Manipulation des PC im HauptMenu gestartet werden. Zur
vollstndigen Erklrung der Funktionen (man wird ja frmlich erschlagen) bitte
in der Dokumentation zur fertigen Version nachsehen, oder in der Box nachfra-
gen.



                            Das 'Disk Menu'

Natrlich kann man auch direkt von Diskette laden. Im Folgenden werden die
wichtigsten Funktionen des 'Disk' Menus kurz erklrt.

- 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 Datentrger speichern. (welch ein Satz!!!)

- Load 'File'  - Ldt einen beliebigen Spectrum File ein. Dieser File muss
                 einen 9 Byte Header haben. Sonst strzt 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 smtliche Files auf das
                 'Bootlaufwerk' geschrieben. UNBEDINGT nur von Harddisk
                 Benutzern zu verwenden!!!

- 'ROM,Screen' - Setzt entsprechende Werte im Header!!


Wieder einmal ein paar Erluterungen. Zu jedem abgespeicherten Programm oder
File kann eine INF Datei mit gesichert werden. Diese Datei enthlt 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 verfgen. 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 drcken von 'SPACE' die Files 'rberziehen'. 'RETURN' kon-
vertiert die ganze Diskette. 'ESC' kehrt zurck ins Menu, und alle anderen Ta-
sten zeigen nur die vorhandenen Dateien auf dem Bildschirm an.

Letztlich sei noch erwhnt, 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 knne 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 weglsst. 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 wrde bei solch einem Code die Emulation Alarm schlagen, eine
ALERT Box anzeigen und ins Hauptmenu zurckkehren. 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
Mglichkeiten:

- 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 mglich!!)
- 'Flip' schaltet alle angezeigten Patches an bzw aus (flippen eben)
  Im Prinzip wird der Status lediglich umgekehrt.
- 'Special' zerstrt 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 Erklrungen wieder einmal nicht ausreichend. Ich muss
mal wieder auf die entgltige Dokumentation verweisen.



                   Der Debugger (der noch keiner ist)

Gar revolutionre Mglichkeiten bietet der Debugger dem geneigten User. Zu-
nchst einmal muss erklrt werden, welche Mglichkeiten in diesem Menu ber-
haupt vorhanden sind. (ganz ganz kurze Erklrung!)

- 'Disassemble'  : zeigt den Speicherbereich ab 'Memory: xxxxx' als Z80
                   Disassembly an. Buummm; der Bildschirm wird gelscht.
                   Mit den Pfeiltasten kann man 'scrollen' und 'blttern'.
                   'ESC' kehrt zurck 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' : ldt eine spezielle Patch Datei von Disk oder Harddisk.

- 'Use Patches'  : entscheidet, ob die geladenen Patches benutzt werden.

- 'List Patches' : fr sptere Anwendungen gedacht.

- 'xxxxxxxxxxxx' : noch unbelegt

- 'Memory xx-xx' : hier kann man den gewnschten Speicherbereich eingeben.

- 'Dez/Hex'      : umschalten von Dezimal und Hexadezimal Darstellung.
                   Dies gilt auch fr 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 nchsten.....

- 'Ascii'        : bewirkt gar nix

- 'Count'        : bei eingeschaltetem 'Count' wird whrend 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 mglich ist, kann man auch mit allen anderen Programmen machen.
Der Emulator kann fr jedes Programm spezielle Patch-Dateien laden. (was bei
'LOAD PRO' automatisch geschieht!!!). Die Dateien haben ein bestimmtes Format,
das hier aber noch nicht nher erlutert 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 knnten 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 natrlich 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 Oberflche 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 Prventiv-Schlag:

Wer sich bis zu diesem Punkt durchgerungen hat, gehrt 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, mg-
lichst groe Resonanz auf unser Project zu finden. Vielleicht hat ja jemand
noch geniale Einflle, wie man die Funktionen erweitern knnte, oder hat gar
ein schnelleres Emulator-Prinzip zur Hand.


In jedem Fall gren wir Leslie Nielsen!


Bye Bye
