²²²²²²± ²²²²²²²²±± ²²²²²²± ²²²²²²²²± ²²²² ²²²²±± ²²±± ²²±± ²²±±±±±± ²²±±±±±²²±± ²²±±±±±± ²²±±±±±± ²²±²² ²²±²²±± ²²±± ²²±± ²²±± ²²±± ²²±± ²²±± ²²±±± ²²±± ²²±± ²²±± ²²±± ²²±± ²²±± ²²²²²²²²±± ²²±± ²²²²²²²²± ²²±± ±±± ²²±± ²²±± ²²±± ²²±± ²²±±±±±± ²²±± ²²±±±±±± ²²±± ²²±± ²²±± ²²±± ²²±± ²²±± ²²±± ²²±± ²²±± ²²±± ²²±± ²²±± ²²²²²²± ²²±± ²²²²²²± ²²²²²²²²± ²²±± ²²±± ²²²²²²²²²±± ±±±±±±± ±±±± ±±±±±±± ±±±±±±±±± ±±±± ±±±± ±±±±±±±±±± v1.4 D O K U M E N T A T I O N (c) Marco Vieth, M„rz 1996 ------------------------------------------------------------------------------- Inhaltsverzeichnis: 1. Einfhrung 1.1 Hinweise zur Benutzung dieser Dokumentation 1.2 Copyright, Gew„hrleistungen 1.3 Was ist ein CPC ? 1.4 Was bietet CPCEMU ? 2. Installation von CPCEMU 2.1 Dateien im CPCEMU-Paket 2.2 Voraussetzungen und Installation 2.3 Tips zum Speicher und zur Soundkarte 2.3.1 Verwenden Sie EMS-Speicher 2.3.2 Setzen Sie die BLASTER-Umgebung 2.3.3 Setzen Sie die ULTRASND-Umgebung 3. Unterschiede zum Original 3.1 Tastatur 3.2 Laden von Programmen, Mens 3.2.1 Laden von Diskette, Mens - Das Disketten-Wechsel-Men - Das Datei-Auswahl-Men 3.2.2 Laden von und Speichern auf Kassette 3.2.3 Laden und Speichern von Snapshots 4. Žndern der Konfiguration 4.1 Das Setup-Men 4.2 Die Konfigurations-Datei 4.3 Kommandozeilen-Parameter 5. Datenbertragung CPC <-> PC 5.1 Diskette als Medium 5.1.1 Das Diskettentransferprogramm CPCTRANS 5.1.2 Das Formatier- und Kopierprogramm 22DISK von SYDEX 5.2 Parallele Schnittstelle - Der parallele Adapter 5.3 Serielle Schnittstelle 5.4 Sonstige M”glichkeiten 6. Bezugsquellen, Hilfe bei Problemen, Danksagungen 6.1 CPC Software, woher bekommen ? 6.2 Neuigkeiten, Erfahrungsaustausch 6.3 Wenn Sie Fragen oder Anregungen haben 6.4 Andere Amstrad CPC Emulatoren 6.5 Pl„ne fr weitere CPCEMU-Versionen 6.6 Danksagungen 6.7 Geschtzte Warenzeichen 7. Interne Informationen zu CPCEMU "Black Box", d.h. mit separatem Inhaltsverzeichnis Anhang: A.1 Glossar A.2 Literaturverzeichnis A.3 Index --------------------------- 1. Einfhrung ðððððððððððððð Willkommen im Reich der Emulatoren! Was, Sie wollen wissen, was CPCEMU ist? Und was man mit dem merkwrdigen Programm anfangen kann, welches bei gelber Schrift auf blauem Grund nach jeder Eingabe immer "Syntax Error" schreibt? Also, um Ihnen langes Suchen zu ersparen: CPCEMU emuliert einen Amstrad CPC 464, 664 oder 6128 mit zahlreichen Erweiterungen. Das Programm bildet also die Funktionsweise der „lteren Amstrad-Computer auf Ihrem neuen PC nach. Was das fr einen Zweck hat? Nun ja, wenn Sie das nicht schon wissen, ben”tigen Sie CPCEMU nicht. Hier noch ein paar Grnde: - Nostalgie (och, wie sch”n war doch mein CPC ...) - Bessere Performance gegenber dem Original - Bessere Entwicklungsumgebung - Spielen - Arbeiten (ja, ein CPC reicht normalerweise fr Textverarbeitung) - [ ] <- hier k”nnen Sie weitere Grnde eintragen. 1.1 Hinweise zur Benutzung dieser Dokumentation ================================================ Sie sollten zuerst die On-Line-Hilfe ausprobieren (F1), wenn Sie dann tiefergehende oder genauere Informationen wollen, k”nnen Sie dieses lesen... Ich habe versucht, die Dokumentation bersichtlich zu gestalten. Falls Sie (nach mehrmaligem Lesen?) doch noch Fragen haben, setzen Sie sich einfach mit mir in Verbindung. Natrlich drfen Sie das auch, wenn Ihnen alles klar ist. Siehe Kapitel 6 (Bezugsquellen, ...). Im Kapitel 1 (Einfhrung) beschreibe ich Grundlagen zur Dokumentation, zum Copyright und zum CPC allgemein. Im Kapitel 2 (Installation) geht es dann endlich los. Sie erfahren, wie man CPCEMU installiert und startet. In Kapitel 3 (Unterschiede zum Original) fhre ich einige Besonderheiten auf, die Sie beachten mssen, wenn Sie einen richtigen CPC kennen und den Emulator benutzen m”chten. Dabei werde ich vor allem auf die Tastatur, Disketten, Kassetten und Snapshots eingehen. In Kapitel 4 (Žndern der Konfiguration) beschreibe ich, wie Sie CPCEMU an Ihre Bedrfnisse anpassen und vielleicht doch noch Ihr Lieblingsprogramm zum Laufen bringen k”nnen. Kapitel 5 (Datenbertragung CPC <-> PC) sollten Sie lesen, wenn Sie noch zahlreiche alte CPC Programme besitzen und nicht wissen, wie Sie diese auf den PC bekommen. In diesem Kapitel werden die dafr vorhandenen Zusatzprogramme beschrieben. In Kapitel 6 (Bezugsquellen, Hilfe bei Problemen) verrate ich Ihnen, wie Sie immer die neuste Version bekommen k”nnen und an wen Sie sich bei Fragen wenden drfen. Kapitel 7 (Interne Informationen zu CPCEMU) ist fr Profis gedacht. Der "offizielle" Teil ist vor diesem Kapitel vorbei, denn hier kommt das "Letzte". Falls Sie wissen m”chten, wie man so einen Emulator programmiert und was man dabei beachten muá. Auáerdem wird hier das in CPCEMU eingebaute Debug-Men erkl„rt, mit dem Sie *jederzeit* den Prozessor und den Speicher analysieren k”nnen. Nur-Anwender sollten dieses Kapitel berspringen, wenigstens beim ersten Lesen. Im Anhang A.1 gibt es dann noch ein Glossar, mit Beschreibungen der wichtigsten Fachbegriffe, auáerdem in A.2 ein Literaturverzeichnis und in A.3 einen Index. 1.2 Copyright, Gew„hrleistungen ================================ CPCEMU wurde entwickelt von (siehe auch Abschnitt 6.3): Marco Vieth Auf dem škern 4 D-33165 Lichtenau Germany CPCEMU ist Freeware, d.h. Sie drfen das Programm *unentgeltlich* an Freunde und Bekannte weitergeben. Betreibern von Mailboxen ist es erlaubt, CPCEMU in Ihre Programmsammlungen zum "Downloaden" aufzunehmen. Shareware-H„ndler drfen dieses Programm mit in Ihren Bestand aufnehmen, sofern sie von den Kunden nur eine geringe Kopiergebhr verlangen. Die Verbreitung darf nur in dem Archiv CPCEMUxx.xxx erfolgen. Im Gegensatz zu Public Domain bedeutet Freeware nicht, das das Programm "frei" ist und jeder damit machen kann was er will, sondern das Copyright bleibt bei mir! Gew„hrleistung: Ich lehne jegliche Gew„hrleistung ausdrcklich ab. Sch„den, die durch dieses Programm am Computer oder sonstwo entstehen, gehen zu Lasten des Benutzers. Auch gehe ich keinerlei Verpflichtung bzgl. Updates ein, obwohl ich normalerweise m”glichst schnell versuche, aufgetretene Fehler zu beseitigen. Wenn Sie von dem Programm begeistert sind, k”nnen Sie mich untersttzen. Ich bin fr jede Rckmeldung und jeden Verbesserungsvorschlag dankbar. Auch finanzielle Untersttzung lehne ich natrlich nicht ab. Siehe Kapitel 6 (Bezugsquellen, ...) 1.3 Was ist ein CPC ? ====================== Falls Sie schon wissen, was ein CPC ist, gehen Sie einfach zum n„chsten Abschnitt ber (1.4 Was bietet CPCEMU ?). Sie sind noch da? Hier soll nicht der CPC "auseinandergenommen" werden, sondern ich gebe nur eine grobe geschichtliche Beschreibung, damit Sie eine Vorstellung davon haben, was ein CPC berhaupt ist. CPC ist die Abkrzung fr Colour Personal Computer. Computer dieser Modellreihe wurden ab 1984 von der englischen Firma Amstrad hergestellt und von Schneider in Deutschland vertrieben. Es war die Zeit der Homecomputer Commodore C64, Sinclair Spectrum, Atari 800XL, ..., als der CPC 464 auf den Markt kam. Er hatte genausoviel RAM wie der Commodore C64 (n„mlich 64 KB), ein eingebautes Kassettenlaufwerk und Locomotive BASIC 1.0. Es folgte der CPC 664 mit eingebautem 3" Diskettenlaufwerk und leicht erweitertem Locomotive BASIC 1.1. 1985 kam dann der CPC 6128 mit 128 KB RAM und ansonsten gleichen Merkmalen wie der CPC 664 auf den Markt. Die 3" Disketten waren zwar sndhaft teuer, dafr aber stabiler als die damals g„ngigen 5.25" Disketten (etwa wie die heutigen 3.5"). Auáerdem war eine deutliche Geschwindigkeitssteigerung im Vergleich zur Kassette zu bemerken, nicht wie beim C64... Alle drei Modelle wurden wahlweise mit Farb- oder Grnmonitor ausgeliefert, wobei das Computernetzteil im Monitor integriert war. Inzwischen gab es noch 2-3 andere Modelle (die CPC+ Modelle), darauf werde ich aber nicht eingehen. Das BASIC war mit etwa 178 Befehlen leistungsf„hig und schnell. Man konnte damit Grafik, Sound und sogar Interruptbehandlung programmieren, ohne auf PEEKs und POKEs ausweichen zu mssen. Das Softwareangebot hat sich im Laufe der Jahre auch stark erweitert. 1.4 Was bietet CPCEMU ? ======================== Es folgt eine Kurzbersicht darber, was CPCEMU bietet. Erst im Laufe der Dokumentation wird erkl„rt, was das alles bedeutet. CPC-Grafik in 3 Bildschirmmodi (X x Y x Farben): Modus 0: 180x200x16 Modus 1: 320x200x4 Modus 2: 640x200x2 (Mit VESA-BIOS kann diese Grafik in einer Aufl”sung von 640x400x16 bis 1280x1024x16 dargestellt werden, abh„ngig von Ihrem Monitor und Ihrer Grafikkarte.) Sound wahlweise ber PC-Lautsprecher, Soundblaster (3 Kanal, Stereo), oder GUS (Gravis Ultrasound Spectrum) Speicher: ROM: OS, BASIC, AMSDOS, bis zu circa 13 Zusatzroms (mit EMS) RAM: 64KB, 128KB, bis zu 576KB Dk'tronics kompatibles RAM (mit EMS) Diskette: Spezielle Disketten-Abbilder, mit der Endung .DSK Kassette: Normale Dateien unter DOS, z.B. CPC BASIC- und Bin„rdateien mit den Endungen .BAS bzw .BIN . Snapshots: Es lassen sich Schnappschsse von laufenden Programmen erzeugen, um sie sp„ter wieder fortsetzen zu k”nnen. Snapshots haben normalerweise die Endung .SNA . Geschwindigkeit: Auf einem 386/33 mit EMS-Speicher ist CPCEMU normalerweise schneller als das Original. Durch einen Realtime-Modus kann der Emulator auf exakte CPC-Geschwindigkeit abgebremst werden. Dieser Realtime-Modus funktioniert aber erst richtig auf einem 486DX2/66. 2. Installation von CPCEMU ððððððððððððððððððððððððððð In diesem Kapitel erfahren Sie, was Sie fr CPCEMU ben”tigen, wie Sie das Programm installieren und starten. Auáerdem gebe ich kurz Tips zum Speicher und zur Soundkarte. Umkonfigurationen werden erst sp„ter im Kapitel 4 (Konfiguration) beschrieben. 2.1 Dateien im CPCEMU-Paket ============================ Sie haben das CPCEMUxx.xxx-Paket mit den folgenden Dateien erhalten: (In Klammern steht das Verzeichnis, in dem die Datei nach der Installation steht.) COPYMATE.ROM ein ROM mit einem Kopierprogramm (ROM) CPC464.BAT startet einen CPC 464 CPC464.ROM das ROM (Firmware+BASIC) eines CPC 464 (ROM) CPC664.BAT dito, nur CPC 664 CPC664.ROM (ROM) CPC6128.BAT dito, nur CPC 6128 CPC6128.ROM (ROM) CPCADOS.ROM das AMSDOS fr alle CPCs (ROM) CPCEMU.CFG die Konfigurationsdatei fr alle CPCs (oder CPCEMU0.CFG) CPCEMU.DAT Daten-Datei fr CPCEMU CPCEMU.DBF Datenbank mit Pokes CPCEMU.EXE der Emulator CPCEMU.HLP die On-Line-Hilfe, erscheint bei F1 CPCEMU.MSG Die Meldungsdatei (unbedingt notwendig) CPCEMU_D.TXT deutsche Dokumentation (diese Datei) CPCEMU_E.TXT englische Dokumentation CPCEMU_F.TXT franz”sische Dokumentation (Einfhrung) CPCPARA.BAS Locomotive-BASIC-Programm fr parallelen Adapter (UTILITY) CPCPD1.DSK ein Disketten-Abbild mit Beispiel-Public-Domain (DISC) CPCREC.BAS Locomotive-BASIC-Programm zum Empfangen (UTILITY) CPCT0.BAT Batch-Datei zu CPCTRANS.EXE (Beispiel) (UTILITY) CPCTRANS.CFG Konfigurationsdatei fr CPCTRANS CPCTRANS.EXE Transfer von Disketten-Abbildern (UTILITY) CPMDISKS.DEF Datei mit Formatdefinitionen fr 22DISK (UTILITY) FILE_ID.DIZ Wie dieses Programm heiát INSTALL.BAT Installationsdatei PCPARA.EXE Die PC-Seite fr den parallelen Adapter (UTILITY) README_D.TXT deutsches Liesmich README_E.TXT englisches Liesmich README_F.TXT franz”sisches Liesmich README_S.TXT spanisches Liesmich ROMGET.BAS Locomotive-BASIC-Programm zum Abspeichern von ROMs (UTILITY) SNA2GIF.EXE ein Snapshot nach GIF-Konverter: CPC-Bilder abspeichern Es sind auch die orginalen Amstrad-ROMs dabei. Die Firmware ist Copyright von Locomotive Software, das BASIC ist Copyright von Amstrad. Amstrad und Locomotive haben mir erlaubt, die ROMs dabeizulegen. 2.2 Voraussetzungen und Installation ===================================== Sie ben”tigen mindestens (nach oben wie immer keine Grenzen) - PC AT 386 mit VGA-Grafikkarte - MS-DOS, m”glichst mit EMS, oder Novell DOS (DRDOS) oder OS/2 2.x DOS-Box. - Falls Sie Programme aus ZIP-Archiven starten wollen, brauchen Sie zum Entpacken das Programm PKUNZIP in Ihrem DOS-Suchpfad. Die Installation selber ist ganz einfach: Kopieren Sie das Archiv CPCEMUxx.xxx auf Ihre Festplatte und entpacken es z.B. durch 'PKUNZIP CPCEMUxx.ZIP'. Rufen Sie INSTALL.BAT auf, um ein paar Unterverzeichnisse zu erzeugen. Danach starten Sie einfach CPC464.BAT, CPC664.BAT oder CPC6128.BAT, je nachdem, was fr einen CPC Sie am liebsten m”gen. Nach der Konfiguration drcken Sie und es erscheint der wohlbekannte CPC Er”ffnungsbildschirm mit gelber Schrift auf blauem Grund. Mit F12 verlassen Sie den Emulator wieder. Mit F1 erreichen Sie die On-Line-Hilfe, die Sie auch auf Deutsch umschalten k”nnen. Am besten probieren Sie das jetzt sofort einmal aus, und lesen anschlieáend hier weiter ... Vielleicht war Ihnen der CPC doch nicht so wohlbekannt, weil dort "Amstrad" anstatt "Schneider" in der Einschaltmeldung stand. Um das zu „ndern, mssen Sie sich allerdings bis Kapitel 4 (Žndern der Konfiguration) gedulden. Dort wird auch beschrieben, wie Sie eine "deutschere" Tastatur einstellen k”nnen. Falls irgendwelche schwerwiegenden Fehler beim Start auftreten, landen Sie im sogenannten Debug-Men, welches Sie mit 'q' wieder verlassen k”nnen. In solchen F„llen ist es manchmal ntzlich, den Initialisierungsvorgang in eine Datei umzuleiten, z.B. durch 'CPCEMU > INIT.TXT'. Dann k”nnen Sie sich sp„ter das Problem in aller Ruhe ansehen. 2.3 Tips zum Speicher und zur Soundkarte ========================================= Hier zwei Tips, falls Sie eine besonders schnelle Emulation haben wollen oder Ihre Soundkarte nicht erkannt wird. 2.3.1 Verwenden Sie EMS-Speicher --------------------------------- Sie sollten auf Ihrem PC m”glichst echten oder emulierten EMS-Speicher haben (EMS=Expanded Memory System). Dadurch wird die Emulation besonders unter BASIC erheblich beschleunigt. Simuliertes EMS ist zu langsam. Alles was Sie dazu brauchen, ist ein EMM (Expanded Memory Manager) nach dem LIM 4.0 Standard (LIM EMS 4.0). Beim Start des Emulators wird dann "EMS xxx Bytes ok." angezeigt. Falls dort nicht "Sorry, using conventional memory" steht, dann wird EMS benutzt. Beispiel unter OS/2 2.x (Einstellungen im Setup des Fensters): EMS_FRAME_LOCATION = auto EMS_HIGH_OS_MAP_REGION = 32 (oder mehr) EMS_LOW_OS_MAP_REGION = 0 (oder mehr) Beispiel unter DOS in der CONFIG.SYS-Datei: DEVICE=C:\DOS\HIMEM.SYS DEVICE=C:\DOS\EMM386.EXE 1024 ... 2.3.2 Setzen Sie die BLASTER-Umgebung -------------------------------------- Damit CPCEMU Ihre Soundblaster-Soundkarte benutzt, mssen Sie die BLASTER-Umgebungsvariable entsprechend setzen. Starten Sie dazu das Programm 'SET-ENV.EXE' (oder 'SBTEST.EXE'), das dem Softwarepaket Ihrer Soundkarte beiliegen sollte. Oder schreiben Sie in Ihre AUTOEXEC.BAT die folgende Zeile, eventuell leicht modifiziert: SET BLASTER=A220 I7 D1 T3 Mit folgender Bedeutung: A setzt die Basis-Adresse (0x220) I setzt die Interrupt-Nummer IRQ (7) D setzt den DMA-Kanal (1) T setzt die Version der Soundkarte: 1 : Soundblaster 1.0/1.5 2 : Soundblaster Pro 3 : Soundblaster 2.0/2.5 4 : Soundblaster Pro 3/Pro 4.0 5 : Soundblaster Pro (Microchannel) 6 : Soundblaster 16 Bei den Versionen 2, 4, 5 und 6 erfolgt die Soundausgabe in Stereo. Es gibt noch einige zus„tzliche Parameter, die aber ignoriert werden: H setzt den 16-Bit-DMA-Kanal fr 16-Bit Karten M setzt die Basis-Adresse des Soundblaster-Mixers (224) P setzt die Port-Adresse fr MIDI (330) Wenn Sie keinen Sound h”ren, nehmen Sie A388 (anstatt A220). Dieses funktioniert fr die Media Vision Pro Audio Spectrum 16 und vielleicht auch anderen Soundkarten, die Soundblaster-Emulation verwenden. (Joe Cotroneo) 2.3.3 Setzen der ULTRASND-Umgebung: ------------------------------------ Damit CPCEMU Ihre GUS (Gravis Ultrasound Spectrum) benutzt, mssen sie die ULTRASND-Umgebungsvariable entsprechend setzen. 3. Unterschiede zum Original ððððððððððððððððððððððððððððð In diesem Kapitel erl„utere ich einige Besonderheiten, die CPCEMU vom Original unterscheiden. Da w„re zun„chst die Tastatur, insbesondere die Belegung der Funktionstasten, dann das Laden von Diskette und Kassette. 3.1 Tastatur ============= Vielleicht ist Ihnen bei den ersten Experimenten schon aufgefallen, daá manche Tasten andere Zeichen auf dem Bildschirm hervorrufen. Das muá so sein! Um eine "deutschere" Tastaturbelegung zu bekommen, gedulden Sie sich bis Kapitel 4 (Konfiguration von CPCEMU). Auáerdem haben Sie vielleicht bemerkt, daá die PC Funktionstasten nicht den CPC Funktionstasten entsprechen und "wirres Zeug" aufrufen. Vielleicht suchen Sie auch schon vergeblich die COPY Taste. Ich versichere Ihnen, es sind wirklich alle Tasten vom CPC irgendwo vorhanden. Hier wird das Geheimnis gelftet: - ALT, ALTgr : COPY auf dem CPC - PAUSE-Taste : h„lt den PC an, bis sie erneut gedrckt wird. Falls also die PC-Funktionstasten nicht mehr reagieren, haben Sie vielleicht die PAUSE-Taste gedrckt. - Keypad (Zehnerblock) : Je nach Zustand von "NUM-LOCK" erfllt das Keypad verschiedene Funktionen. Bei "NUM-LOCK an" erreichen Sie die CPC- Funktionstasten, sonst k”nnen Sie Joystickbewegungen ausfhren. Wollen Sie einen analogen PC-Joystick benutzen, erfordert das eine Konfiguration und Sie mssen sich bis Kapitel 4 (Žndern der Konfiguration) gedulden. Der Vollst„ndigkeit halber sei noch erw„hnt: - Bild hoch/runter: Verschiebt den gesamten CPC Bildschirm (Fragen Sie mich nicht, wofr das gut sein soll.) Und natrlich die Funktionstasten: F1 : Die Online-Hilfe-Taste. Zu Beginn vielleicht die wichtigste Taste berhaupt. F2 : Wechsel zwischen CPC-Bildschirm (Standard-Sicht) und Meldungs- Bildschirm (der mit dem roten Rahmen). Auf diesem Bildschirm werden manchmal Kontrollmeldungen angezeigt. F3 : Einlegen einer Diskette, siehe Abschnitt 3.2.1 F4 : Soundausgabe ein/aus F5 : Laden eines Snapshots (Schnappschusses), siehe Abschnitt 3.2.3 F6 : Speichern eines Snapshots, siehe Abschnitt 3.2.3 F7 : Setup-Men, siehe Abschnitt 4.1 F8 : Hard-Reset, wie eine Reset-Taste am CPC. Benutzen Sie diese Taste, falls CTRL/SHIFT/ESC nicht mehr funktioniert. F9 : reserviert fr zuknftige Verwendung F10 : Debug-Men, wird im Kapitel 7 (Interne Informationen zu CPCEMU) erl„utert. Falls Sie einmal aus Versehen darin landen, drcken Sie 'r' fr R)un oder 'q' fr Q)uit. F11 : reserviert fr zuknftige Verwendung F12 : sofortiger Abbruch des Emulators 3.2 Laden von Programmen, Mens ================================ In diesem Abschnitt erfahren Sie, wie Sie Programme von Diskette, Kassette oder aus Snapshots (Schnappschssen) laden. Natrlich werden auch die entsprechenden Funktionen zum Abspeichern erkl„rt. Im folgenden Abschnitt wird zus„tzlich erkl„rt, wie Sie in den Mens Optionen „ndern und ausw„hlen. 3.2.1 Laden von Diskette, Mens -------------------------------- Normalerweise ist nach dem Start des Emulators das sogenannte AMSDOS (Amstrad DOS) aktiv, d.h. alle Befehle zum Laden/Speichen sprechen die Diskette an. Sie brauchen nicht immer eine richtige CPC-Diskette in Ihr PC-Laufwerk legen, abgesehen davon, daá Sie vielleicht nur 3" CPC-Disketten haben. Um eine vernnftige Geschwindigkeit zu erreichen, befinden sich die CPC-Disketten in sogenannten Disketten-Abbildern. Diese Dateien drfen sich irgendwo auf der Festplatte (oder auch einer High-Density- Diskette) befinden. Hier einige BASIC-AMSDOS-Befehle: - CAT : Es erscheint der Katalog - Durch 'RUN""' laden und starten Sie ein Programm. Sie drfen die letzten Anfhrungsstriche auch weglassen. Dieser Befehl funktioniert sowohl fr BASIC-Programme mit der Endung .BAS als auch fr die meisten bin„ren Programme mit der Endung .BIN . Hier eine einfache M”glichkeit, ein Programm zu starten: 1. Tippen Sie den Dateinamen ein, z.B. 'DISC', *nicht* 2. Halten Sie die CTRL-Taste fest und drcken Sie Cursor-links (dadurch wandert der Cursor in die 1. Spalte) 3. Halten Sie die CTRL-Taste immer noch fest und drcken sie die ENTER- Taste auf dem Zehnerblock (es erscheint RUN"DISC und das Programm wird gestartet) - LOAD"" l„dt ein Programm, ohne es zu starten. BASIC-Programme lassen sich dann mit LIST auflisten und durch RUN starten. Bin„re Programme lassen sich in den meisten F„llen nicht mit LOAD laden. Versuchen Sie, vorher einen MEMORY-Befehl anzugeben, z.B. 'MEMORY &1fff'. - SAVE"" speichert ein BASIC-Programm. Fr Bin„rdateien sind mehrere Parameter n”tig, z.B. speichert 'SAVE"",b,&c000,&4000' den Bildschirminhalt. - MERGE"" gibt es auch noch und fgt ein BASIC-Programm an ein schon im Speicher vorhandenes an. Speziell vom AMSDOS werden noch folgende Erweiterungs-Befehle angeboten, die durch einen senkrechten Strich eingeleitet werden: - |A, |B zur Wahl des Laufwerks (geht auch mit |DRIVE,0 bzw. 1) - |DIR,"" zum Anzeigen des Inhaltsverzeichnisses. Wichtig: Auf einem CPC 464 folgendes eingeben: a$="" : |DIR,@a$ - |ERA,"" zum L”schen einer Datei. Wichtig: Auf einem CPC 464 folgendes eingeben: a$="" : |ERA,@a$ - |REN,"","" zum Umbenennen einer Datei. Wichtig: Auf einem CPC 464 folgendes eingeben: a$="" : b$="" : |REN,@a$,@b$ - |TAPE um auf Kassette umzuschalten, wird im n„chsten Abschnitt erl„utert. - |DISC um auf Diskette umzuschalten. Es gibt auch noch ein paar andere Befehle, die nicht so wichtig sind. Das Disketten-Wechsel-Men -------------------------- Bisher konnten Sie immer nur eine Diskette benutzen, n„mlich diejenige, die schon die ganze Zeit im Laufwerk "liegt". Um eine andere Diskette einzulegen, drcken Sie F3. Es erscheint das Men Insert_Disk Drive 0 Side_Select 0 Write_Protected 0 Mit den Cursortasten w„hlen Sie eine Zeile aus. Sie k”nnen dazu auch direkt Buchstaben eingeben (zurck mit ). Žndern Sie Zahlen durch oder durch Direkteingabe. in einer beliebigen Zeile (z.B. in der ersten) bernimmt die Žnderungen, durch wrden sie verworfen. "Drive" ist das gewnschte Laufwerk (0=A, 1=B); "Side Select" ist ein Seitenauswahl-Schalter fr doppelseitige Formate, bei einseitigen Formaten hat er keine Auswirkung. Mit "Write Protected" versehen Sie die Diskette mit einem Schreibschutz (0=Nein, 1=Ja, mit Schreibschutz). Das Datei-Auswahl-Men ---------------------- Drcken Sie , dann erscheint ein Disketten-Inhaltsverzeichnis. W„hlen Sie eine neue Diskette aus, mit den Methoden, wie oben beschrieben. Falls schon eine Diskette im Laufwerk liegt, brauchen Sie diese nicht vorher herauszunehmen, wie im richtigen Leben. Das passiert hier automatisch. Unten auf dem Bildschirm wird so eine Diskette aber angezeigt. Es werden immer h”chstens 15 Dateinamen auf einmal angezeigt, bei mehr Dateinamen steht unten "[]". - geht zum ersten Dateinamen, zum letzten - bl„ttert seitenweise durch die Dateinamen - bernimmt den angew„hlten Dateinamen, bricht ab. Auch hier w„hlen Sie die Namen direkt an, wenn Sie Anfangsbuchstaben drcken. Falls Sie die Maussteuerung bevorzugen, bedeutet "[]" , "[]" , "[<]" , "[>]" und [ok] ist . "[þ]" ist . Um eine Zeile zu markieren, benutzen Sie die rechte Maustaste. ".." ist das Eltern-Verzeichnis; [A], [B], ... sind die verfgbaren Laufwerke. Bitte w„hlen Sie nur Diskettenlaufwerke, wenn auch eine Diskette darin liegt, ansonsten kann es zu Komplikationen kommen. Es ist auch m”glich, Disketten aus ZIP-Archiven einzulegen. Dazu w„hlen Sie ein ZIP-Archiv mit , worauf das Inhaltsverzeichnis wie ein normales Verzeichnis angezeigt wird. W„hlen Sie dann eine Datei aus einem ZIP-Verzeichnis, wird sie automatisch in eine tempor„re Datei entpackt. Dazu ben”tigen Sie das Programm PKUNZIP im CPCEMU-Verzeichnis oder im DOS-Suchpfad. Die tempor„ren Dateien werden automatisch gel”scht, sobald sie nicht mehr gebraucht werden. Etwaige Žnderungen werden *nicht* an dem ZIP-Archiv durchgefhrt. Wenn Sie also auf einer Diskette aus einem Archiv etwas speichern und anschlieáend eine andere einlegen, ist der neue Inhalt wieder weg. Wenn Sie Disketten in Archiven „ndern wollen, entpacken Sie diese vor dem Start von CPCEMU. Wie Sie selber Disketten-Abbilder erzeugen, erfahren Sie im Kapitel 5 (Datenbertragung CPC <-> PC). 3.2.2 Laden von und Speichern auf Kassette ------------------------------------------- Was ist berhaupt eine Kassette fr CPCEMU? Nun, Dateien auf Kassette sind irgendwelche Dateien in den normalen DOS-Verzeichnissen. Nach dem Befehl '|TAPE' sprechen die BASIC-Befehle zum Laden/Speichern die Kassette an. Aber nur diejenigen, die nicht mit "|" beginnen. So k”nnen Sie also die im vorherigen Abschnitt beschriebenen Befehle CAT, RUN", LOAD", SAVE", MERGE" auf die Kassette anwenden. Hier drfen Sie sogar den Dateinamen weglassen, es erscheint dann das Dateiauswahl-Men, welches Sie schon aus dem letzten Abschnitt kennen. Bei SAVE"" k”nnen Sie entweder eine bestehende Datei berschreiben oder in der letzten Zeile bei "(new name)" einen neuen Namen eingeben. Natrlich k”nnen Sie auch hier Programme aus ZIP-Archiven laden, das Speichern wird ignoriert. So eine sch”ne Kassette haben Sie nur mit dem Emulator. 3.2.3 Laden und Speichern von Snapshots ---------------------------------------- Snapshots sind Schnappschsse, in denen nicht nur der aktuelle Speicherinhalt, sondern auch die internen Zust„nde der anderen Hardwarebausteine festgehalten werden, z.B. von der CPU. Zu jeder Zeit k”nnen Sie das laufende Programm als Snapshot abspeichern und sp„ter wieder laden, um es an genau der Stelle fortzusetzen, wo es abgebrochen wurde. Mit F6 speichern Sie ein Snapshot. Sie legen dabei fest, ob es ein 64K oder ein 128K Snapshot sein soll. 128K Snapshots sind natrlich nur sinnvoll, wenn auch die zweite Speicherbank benutzt wird. Setzen Sie in dem Fall "128K Snapshot = 1", wobei 1=Ja bedeutet. Die Dateiauswahl erfolgt wie schon bei Diskette beschrieben, mit den zus„tzlichen Kommentaren zur Kassette (3.2.1 und 3.2.2). Sp„ter k”nnen Sie ein Snapshot mit F5 wieder laden. 4. Žndern der Konfiguration ðððððððððððððððððððððððððððð In diesem Kapitel erfahren Sie, wie Sie CPCEMU an Ihre Bedrfnisse anpassen k”nnen. Es werden sowohl das Setup-Men als auch die Konfigurationsdatei und die Kommandozeilen-Parameter beschrieben. 4.1 Das Setup-Men =================== Dieses ist die einfachste Methode, Einstellungen von CPCEMU zu „ndern. Fast alle Einstellungen lassen sich im Setup-Men „ndern und auch abspeichern. Nur wenn sie Pfade „ndern oder zus„tzliche ROMs benutzen wollen, mssen Sie sich mit der Konfigurationsdatei vertraut machen, die ich im Abschnitt 4.2 beschreibe. Wie bei der Beschreibung der Tastatur schon angedeutet, erreichen Sie das Setup-Men mit der Funktionstaste F7. Es erscheint ein umfangreiches Men, welches in mehrere Abschnitte unterteilt ist: Menpunkt: Wert: Deutsche šbersetzung: ----------------------------------------------------------------------- ___Emulation Emulation_Delay 0 Emulations-Verz”gerung Emulation_Speed 1 Emulations-Geschwindigkeit Interrupt_Frequency 300 Interrupt-Frequenz Interrupt_Resume 1 Interrupts nachholen Realtime 0 Realtime-Modus ___Screen Colour_Screen 1 Farbbildschirm Multimode_Update 0 Multimodes auffrischen Palette_Change 1 Paletten-Žnderung Screen_Offset 0 Bildschirmverschiebung Video_Mode 0 Video-Modus Vsync_Position 5 VSYNC-Position ___Sound Sound_Enabled 1 Sound erlaubt Sound_Device 2 Sound-Ausgabeger„t Sb_Delay 35 Sound-Verz”gerung Sb_Delay0 6 Sound-Verz”gerung 0 ___Control Joy0_Calibrate Joystick 0 kalibrieren Joy1_Calibrate Joystick 1 kalibrieren Kbd_Language 0 Tastaturlayout Mouse_Enabled 1 Maus erlaubt ___Ppi_Settings Company_Name 7 Firmenname Ppi_50Hz 1 PPI-50-Hz-Bit Ppi_Exp_Signal 1 PPI-Expansions-Bit ___Misc Amsdos_Disabled 0 AMSDOS verboten Amsdos_Speedup 1 AMSDOS-Beschleunigung Break_Mask 3 Break-Maske Ems_Enabled 1 EMS erlaubt Language 0 Sprache Tape_Bypass 1 Kassetten-Umleitung CPC-Type 2 CPC-Type Lade_Konfiguration Restart_Emulation Emulation neu starten Speichere_Konfiguration Poke-Datenbank Dos-Shell Fortsetzen Die Menpunkte w„hlen Sie genauso an, wie schon bei 3.2.1 (Laden von Diskette) beschrieben. Sie sind auch in der Online-Hilfe beschreiben. Emulation_Delay (Abbremsen der Emulation) Mit dieser Option bremsen Sie die Emulation ab, falls sie zu schnell ist. 0 bedeutet keine Verz”gerung, 100 ist eine geringe Verz”gerung, 300 entsprechend mehr. Emulation_Speed (Emulations-Geschwindigkeit) Geschwindigkeit der Emulation. 0 = langsame Z80-Emulation 1 = schnelle Z80-Emulation Interrupt_Frequency (Interrupt-Frequenz) Hiermit „ndern Sie die Frequenz, mit der Interrupts (Unterbrechnugen) generiert werden. Auf einem richtigen CPC sind das immer 300 Hertz. Wenn Sie diesen Wert erh”hen, laufen die meisten Programme schneller ab, es bleibt aber weniger Rechenzeit zwischen den Interrupts brig. Falls Sie einen langsameren Rechner besitzen, ist es bei manchen Programmen sinnvoll, diesen Wert zu verringern, vielleicht auf 100 bis 200. M”gliche Werte sind 18 bis etwa 600. Weitere Informationen finden Sie im Kapitel 7. Interrupt_Resume (Interrupts nachholen) Noch so eine Option, die man nicht erkl„ren kann, ohne weiter auszuholen. Lassen Sie sie am besten so, wie sie ist. Ohne EMS (Expanded Memory) ist sie auf 0, d.h. Interrupts k”nnen schon mal vergessen werden. Das ist natrlich nicht wnschenswert, aber bei 1 wrde die Emulation zu langsam. Mit EMS ist diese Option = 1, d.h. es wird versucht, keine Interrupts auszulassen. Wichtig: CP/M Plus scheint nur mit EMS und trotzdem ausgeschalteter Option zu laufen ! Weitere Informationen finden Sie im Kapitel 7. Realtime (Realtime-Modus) Schaltet den Realtime-Modus an, bei dem der Emulator Warteschleifen einlegt, um so schnell wie ein richtiger CPC zu sein. Colour_Screen (Farbbildschirm) Emulation eines Grn- oder Farbmonitors, indem die Farbpalette angepaát wird. Multimode_Update (Multimodes auffrischen) Falls Programme mehrere Bildschirmmodi gleichzeitig auf dem Bildschirm verwenden, sollten Sie diese Option anschalten. Dann versucht CPCEMU, Bildschirmmodus-Žnderungen auch anzuzeigen. Standardm„áig ist diese Option ausgeschaltet, da sie nicht immer richtig funktioniert. Palette_Change (Paletten-Žnderung) Falls Sie diese Option auf 0 setzen, werden Farben nicht mehr ge„ndert. Das ist sinnvoll, wenn Sie vor lauter Farbflimmern nichts mehr erkennen. Bei einem Hardware-Reset durch die Funktionstaste F8 wird diese Option automatisch wieder gesetzt. Tip: Wenn Sie Farb„nderungen verboten haben und v”llig falsche Farben dargestellt werden, drcken Sie einfach 2 mal F2. Screen_Offset (Bildschirmverschiebung) Gibt die Anzahl der Zeilen an, um die der Bildschirm verschoben werden soll. Diese Option wird normalerweise nicht ben”tigt. Den gleichen Effekt k”nnen Sie auch mit den Tasten und erreichen. M”gliche Werte reichen von 0=keine Verschiebung bis etwa 25 Zeilen Verschiebung. Video_Mode (Video-Modus) Video-Modus der VGA-Karte setzen. 0 = 640x200x16 (Standard) 1 = 640x350x16 2 = 640x480x16 und falls Sie ein VESA-BIOS besitzen, meistens: 3 = 800x600x16 4 = 1024x768x16 5 = 1280x1024x16 ... WARNUNG: Schalten Sie Modi >= 3 nur ein, wenn Ihr Monitor diese untersttzt! Falls er merkwrdige Ger„usche von sich gibt, sofort ausschalten! Dieses sollte aber nur bei „lteren Monitoren passieren. Vsync_Position (VSYNC-Position) Diesen Wert brauchen Sie normalerweise nicht zu ver„ndern, es kann aber auch nichts Schlimmes passieren, wenn Sie es dennoch tun. Bei einem Monitor erfolgt einmal pro Bildaufbau der vertikale Strahlenrcklauf. W„hrend dieser Zeit ist normalerweise ein bestimmtes Bit gesetzt, das sogenannte VSYNC-Bit (vertical synchronisation). Hiermit bestimmen Sie die Position, an der dieses Bit gesetzt sein soll. M”gliche Werte sind 0 bis 5 . Weitere Informationen finden Sie im Kapitel 7. Sound_Enabled (Sound erlaubt) Schaltet die Soundausgabe ein/aus, wobei 1=ein, 0=aus bedeutet. Stattdessen k”nnen Sie auch die Funktionstaste F4 drcken. Sound_Device (Sound-Ausgabeger„t) Setzt das Sound-Ausgabeger„t. 0 = keins 1 = PC-Lautsprecher 2 = Soundblaster 3 = Soundblaster Pro 4 = GUS (Gravis Ultrasound), dank Ulrich Doewich Sb_Delay (Sound-Verz”gerung) Setzt eine Verz”gerungszeit, die nach jedem Schreibzugriff auf die Soundkarte gewartet wird. Bei geringeren Werten (z.B. 0) wird die Soundausgabe beschleunigt. Falls Probleme mit Ihrer Soundkarte auftreten sollten, lassen Sie diesen Wert auf 35. Sb_Delay0 (Sound-Verz”gerung 0) Eine andere Verz”gerungszeit fr die Soundblaster-Karte. Lassen Sie diese auf 6. Joy0_Calibrate (Joystick 0 kalibrieren) Sie kennen es sicher von anderen Programmen, daá Sie einen analogen PC Joystick zuerst kalibrieren mssen. W„hlen Sie diesen Menpunkt mit , bewegen Sie dann den Joystick erst nach links oben, dann nach rechts unten. Es werden einige Parameter angezeigt. Falls Sie den Joystick immer betriebsbereit haben wollen, bernehmen Sie diese Parameter in die sogenannte Konfigurationsdatei (siehe n„chster Abschnitt). Sie mssen die Kalibrierung allerdings wiederholen, wenn Sie z.B. die Taktfrequenz „ndern. Joy1_Calibrate (Joystick 1 kalibrieren) Wie Joy0_Calibrate, nur fr Joystick 1. Kbd_Language (Tastaturlayout) Mit dieser Option w„hlen Sie eine andere Tastaturbelegung. 0 = UK, d.h. Normaleinstellung 1 = GR, also "deutschere" Tastatur. Es ist leider nicht m”glich, eine vollst„ndig deutsche Tastenbelegung zu haben, da man Zeichen mit SHIFT nicht in Zeichen ohne SHIFT umwandeln kann. Auf jeden Fall sind aber 'Z' und 'Y' vertauscht, zus„tzlich ein paar sonstige Zeichen. 2 = FR, also "franz”sischere" Tastatur. Nachdem ich eine "deutschere" Tastenbelegung eingefhrt hatte, wollten die Franzosen natrlich auch eine eigene haben. Hier gibt es die gleichen Probleme wie bei der deutschen. Mouse_Enabled (Maus erlaubt) Erlaubt die Benutzung einer Maus zur Menauswahl. Company_Name (Firmenname) Firmenname auf dem Er”ffnungsbildschirm. 0 = Isp 1 = Triumph 2 = Saisho 3 = Solavox 4 = Awa 5 = Schneider 6 = Orion 7 = Amstrad Ppi_50Hz (PPI-50-Hz-Bit) Der CPC wird mit 0 - 60 Hz, oder mit 1 - 50 Hz (Standard in Deutschland,Frankreich) betrieben werden. Dazu wird bei einem Reset das Bit 4 des Port B PPI abgefragt und der CRTC entsprechend initialisiert. Sollte auf 50 Hz bleiben. Ppi_Exp_Signal (PPI-Expansions-Bit) Erweiterungskarten k”nnen dieses Signal setzen. Beim CPC 464 normalerweise gesetzt, wenn eine Floppy angeschlossen ist. Beim CPC 6128 immer gesetzt. Amsdos_Disabled (AMSDOS verboten) Verbietet die Initialisierung des AMSDOS. Das ist sinnvoll, wenn Sie viele Programme von Kassette laden m”chten, ohne vorher immer den Befehl '|TAPE' eingeben zu mssen. Natrlich k”nnten Sie auch einfach die entsprechende ROM_BLOCK-Zeile mit dem AMSDOS-ROM kommentieren (mit ROM_BLOCK legen Sie die zu ladenden ROMs fest), dann w„re aber gar kein AMSDOS ROM mehr vorhanden. So bleibt es fr bestimmte Befehle noch erreichbar. Amsdos_Speedup (AMSDOS-Beschleunigung) Erlaubt eine AMSDOS-ROM-Modifikation, bei der Diskettenzugriffe beschleunigt werden. Dies wird durch Minimieren der Motor-Wartezeiten erreicht, die fr den Emulator natrlich unn”tig sind. Break_Mask (Break-Maske) Nur fr Debugging-Zwecke. Durch die Maske in der Konfigurationsdatei (3) werden Fehlermeldungen bei unzul„ssigen Befehlen unterdrckt. Žndern Sie diesen Wert m”glichst nicht! Ems_Enabled (EMS erlaubt) Erlaubt der Benutzung von EMS-Speicher (Expanded Memory System). Falls kein EMS-Speicher vorhanden ist oder zu wenig zur Verfgung steht, wird automatisch konventioneller Speicher benutzt. Weitere Informationen zur EMS-Speichernutzung finden Sie in 2.3.1 und im Kapitel 7. Language (Sprache) Sprache, in der Hilfstexte angezeigt werden. M”glich sind 0=UK (Englisch) 1=GR (Deutsch) 2=FR (Franz”sisch) 3=SP (Spanisch) Tape_Bypass (Kassetten-Umleitung) Falls Sie die "Kassette" verwenden m”chten, muá diese Option auf "YES" stehen. Weitere Informationen zum TAPE-Bypass finden Sie im Kapitel 7. CPC_Type (CPC-Typ) Setzt den gewnschten CPC-Typ 0 = CPC 464 1 = CPC 664 2 = CPC 6128 3 = CPC 464+ (?) 4 = CPC 6128+ (?) 5 = unbekannt Um die Typen 3 oder 4 zu benutzen, mssen Sie zuerst entsprechende ROM-Abbilder in CPCEMU.CFG eintragen. Lade_Konfiguration L„d eine Konfigurations-Datei, welche mit "Save_Configuration" abgespeichert wurde. Manche Parameter wirken erst, wenn Sie "Restart_Emulation" w„hlen. Restart_Emulation (Emulation neu starten) Wenn Sie eine Konfiguration mittels "Load_Configuration" geladen haben, k”nnen Sie den Emulator mit diesen Werten neu starten. Speichere_Konfiguration Speichert die aktuelle Konfiguration. Die Haupt-Konfiguration "CPCEMU.CFG" l„át sich nicht berschreiben. Poke-Datenbank Falls Sie gerade ein Spiel spielen und nicht weiterkommen, w„hlen Sie diesen Menpunkt. Falls das Spiel sich in der šbersicht befindet, w„hlen Sie es aus und Sie bekommen eine Erleichterung, zum Beispiel unendliche Leben. Sie k”nnen die Liste (CPCEMU.DBF) auch um eigene Pokes erweitern. Der Aufbau der Datei steht in Kapitel 7. DOS-Shell ™ffnet eine DOS-Shell mit viel freiem Speicher, die Sie durch Eingabe von 'EXIT' wieder verlassen k”nnen. Fortsetzen Werte bernehmen und Programm fortsetzen. Die ge„nderten Werte werden bernommen und die Emulation wird fortgesetzt. Den gleichen Effekt bekommen Sie auch, wenn Sie auf einem beliebigen Menpunkt (mit Zahl) drcken. 4.2 Konfigurationsdatei ======================== Mit einer Konfigurationsdatei k”nnen Sie CPCEMU auch konfigurieren. Beim Start liest CPCEMU standardm„áig die Konfigurationsdatei CPCEMU.CFG. Der Aufbau dieser Datei soll jetzt beschrieben werden, so daá Sie selber leicht z.B. eigene ROMs einbinden k”nnen, die Tastatur dauerhaft umstellen, ... Werfen wir einmal einen Blick in die CPCEMU.CFG Datei: ;CPCEMU.CFG - The Configuration File for CPCEMU ;... ; ;configuration for CPC 464, 664, 6128, 464+, 6128+ ; SHOW_CONFIG=1 ;should the configuration be displayed? ROM_PATH = ".\ROM" ;path to ROM images ... Schon an diesen paar Zeilen l„át sich der einfache Aufbau erkennen: Kommentare beginnen mit einem Semikolon (";"). Optionen werden ge„ndert, indem ein Schlsselwort (hier SHOW_CONFIG, ROM_PATH) gefolgt von "=" gefolgt von einem stehen. kann je nach Schlsselwort eine Zeichenkette oder auch ein numerischer Wert sein. Numerische Werte k”nnen nicht nur in dezimaler Form, sondern auch in hexadezimaler ("0x") oder bin„rer ("%") Zahlendarstellung angegeben werden. Sie brauchen also nur die Bedeutung der Schlsselw”rter zu kennen, um die Optionen leicht mit einem Texteditor an Ihre Bedrfnisse anzupassen. Die meisten Schlsselw”rter kennen Sie schon aus dem Setup-Men. Zuerst eine alphabetische šbersicht, dann Erkl„rungen zu den speziellen: #ENDIF #IFCPC AMSDOS_DISABLED AMSDOS abschalten AMSDOS_SPEEDUP AMSDOS-Beschleunigung BREAK_MASK Unterbrechungs-Maske COLOUR_SCREEN Farbbildschirm COMPANY_NAME Firmenname CPC_TYPE CPC-Typ DRIVE_A Laufwerk B DRIVE_B Laufwerk B EMS_ENABLED EMS erlaubt EMULATION_DELAY Emulations-Verz”gerung EMULATION_SPEED Emulations-Geschwindigkeit HELP_FILE Hilfs-Datei INTERRUPT_FREQUENCY Interrupt-Frequenz INTERRUPT_RESUME Interrupts nachholen JOY0_CALIBRATE Joystick 0 kalibrieren JOY1_CALIBRATE Joystick 1 kalibrieren KBD_LANGUAGE Tastatur-Layout LANGUAGE Sprache MOUSE_ENABLED Maus erlaubt MULTIMODE_UPDATE Multimodes sofort auffrischen PALETTE_CHANGE Paletten„nderungen POKE_DATABASE Poke-Datenbank PPI_50HZ PPI-50Hz-Bit PPI_EXP_SIGNAL PPI-Expansions-Signal-Bit PRINTER Drucker RAM_SIZE RAM-Gr”áe REALTIME Echtzeit-CPC ROM_BLOCK ROM-Block ROM_PATH ROM-Pfad SB_DELAY Soundblaster-Verz”gerung SB_DELAY0 Soundblaster-Verz”gerung 0 SCREEN_OFFSET Bildschirm-Verschiebung SHOW_CONFIG Zeige Konfiguration SNAPSHOT Schnappschuá SOUND_DEVICE Sound-Ausgebeger„t SOUND_ENABLED Soundausgabe erlaubt TAPE_BYPASS Kassetten-Umleitung TAPE_PATH Kassetten-Pfad TMP_PATH Tempor„res Verzeichnis VIDEO_MODE Video-Modus VSYNC_POSITION Vertikale Sync-Position - #ENDIF, #IFCPC Diese Steuerbefehle erm”glichen eine bedingte Konfiguration je nach gewnschtem CPC: #IFCPC ... #ENDIF Als sind alle 4 Typen wie bei "CPC_TYPE" zul„ssig. Somit kommen Sie mit einer Konfigurationsdatei fr alle CPCs aus. In den Batch-Dateien CPC464.BAT, CPC664.BAT, CPC6128.BAT wird der gewnschte CPC durch Kommandozeilen-Parameter gew„hlt. Diese werden im n„chsten Abschnitt beschrieben. - DRIVE_A = "" Setzt den Pfad, wo sich die Disketten-Abbilder befinden. Geben Sie als Pfad einen Dateinamen an, wird diese "Diskette" beim Start des Emulators automatisch in Laufwerk A "gelegt". Im Abschnitt 3.2.1 habe ich das Laden von und Speichern auf Diskette beschrieben. - DRIVE_B = "" Ist das gleiche wie DRIVE_A, nur fr Laufwerk B. - JOY0_CALIBRATE = , , , Hier geben Sie eine Joystick-Kalibrierung fr Ihren Analog-Joystick an. Benutzen Sie die Werte, die nach der Joystick-Kalibrierung im Setup-Men angezeigt werden (siehe Abschnitt 4.1). Dies ist ein Schlsselwort, dem 4 Werte zugewiesen werden, diese mssen Sie auch immer angeben. Vier Nullen bedeutet nicht kalibriert. - JOY1_CALIBRATE = , , , Genauso wie JOY0_CALIBRATE. - POKE_DATABASE = "" Setzt die Poke-Datenbank-Datei (CPCEMU.DBF). - PRINTER = "" Hier legen Sie eine Drucker-Datei fest, in die Druckerausgaben umgeleitet werden. Beim jedem Start des Emulators wird sie gel”scht. Nachdem Sie den Emulator verlassen haben, schicken Sie diese Datei mit 'COPY prn:' zu Ihrem Drucker. - ROM_BLOCK = , "", Beschreibt, was fr ein ROM geladen werden soll. Sie mssen diese Zeile fr jedes zu ladende ROM wiederholen. Jedes ROM besitzt dabei eine Gr”áe von 0x4000 Bytes. Die maximale Anzahl der ROMs ist etwa 20, wenn Sie EMS-Speicher haben. - ist die Nummer die das ROM bekommen soll, d.h., mit der es durch 'OUT &DF00,num' ausgew„hlt wird. 0 = Vordergrund-ROM (z.B. BASIC) 1 - 251 = Hintergrund-ROMs. Auf einem CPC 664/6128 werden die ROMs 1-15 bei einem Reset automatisch initialisiert (bei einem CPC 464 nur 1-7). Das AMSDOS ROM hat immer die Nummer 7. 255 = Lower-ROM (z.B. OS, hat nur im Emulator diese Nummer.) - ist die Datei, in der sich das ROM-Abbild im Verzeichnis ROM_PATH befindet. - ist die Positon des ROMs innerhalb der Datei, 0 bedeutet 0.ROM, 1 bedeutet 1.ROM, usw... Es ist also m”glich, mehrere ROMs in einer Datei zu haben. Bei den Eintr„gen ROM_BLOCK = 255, "CPC6128.ROM", 0 ROM_BLOCK = 0 , "CPC6128.ROM", 1 befinden sich also Lower-ROM und Vordergrund-ROM direkt nacheinander in derselben Datei. - ROM_PATH = "" Setzt den Pfad, wo sich die ROM-Abbilder befinden, aus denen CPCEMU beim Start die ROMs liest. Die Konfigurationsdatei setzt das Verzeichnis .\ROM . Die ROMs selber werden mit dem Schlsselwort ROM_BLOCK festgelegt. - SHOW_CONFIG = {1, 0} Erlaubt das Anzeigen der Konfigurations-šbersicht beim Start des Emulators. - SNAPSHOT = "" Setzt den Pfad, wo sich die Snapshots befinden. Geben Sie als Pfad einen Dateinamen an, wird dieser Snapshot automatisch gestartet. Im Abschnitt 3.2.3 habe ich das Laden und Speichern von Snapshots beschrieben. - TAPE_PATH = "" Setzt den Pfad, wo sich die "Kassetten"-Dateien befinden. Die Konfigurationsdatei setzt das Verzeichnis ".\TAPE". Im Abschnitt 3.2.2 habe ich das Laden von und Speichern auf Kassette beschrieben. - TMP_PATH = "" Setzt den Pfad, in dem CPCEMU tempor„re Dateien erzeugt. Dieser wird haupts„chlich ben”tigt, wenn Sie aus einem ZIP-Archiv Dateien ausw„hlen und CPCEMU diese mit PKUNZIP entpackt. 4.3 Kommandozeilen-Parameter ============================= Wie bei vielen anderen Programmen blich, k”nnen Sie auch bei CPCEMU Kommandozeilen-Parameter angeben. Zur Zeit sind jedoch nur einige wenige m”glich. Rufen Sie CPCxxx.BAT einfach mit den folgenden Optionen auf: /f : startet die schnelle Emulation (Standardeinstellung) /s : startet eine langsame Emulation, die Sie normalerweise nicht ben”tigen. /d : startet den Debug-Modus, sehen Sie im Kapitel 7 nach. /x : verbietet EMS Benutzung /c : gibt eine andere Konfigurationsdatei an, falls nicht die Standard-Datei CPCEMU.CFG benutzt werden soll. Siehe vorherigen Abschnitt. /t : definiert den gewnschten CPC 464, 664 oder 6128 durch /t 0, /t 1 bzw. /t 2. /h : zeigt einen Hilfsbildschirm an Wenn Sie eine unbekannte Option angeben, wird automatisch "/d" verwendet. Anstatt dem "/" k”nnen Sie auch das UNIX-bliche "-" verwenden. 5. Datenbertragung CPC <-> PC ððððððððððððððððððððððððððððððð Was ntzt Ihnen der sch”nste Emulator, wenn Sie keine Programme dafr haben oder keine M”glichkeit sehen, die Programme von Ihrem CPC zum PC zu bekommen? Im Kapitel 6 (Bezugsquellen) sind auch einige Quellen aufgefhrt, wo Sie CPC-Software bekommen k”nnen. In diesem Kapitel soll es darum gehen, wie Sie eigene CPC-Software auf den PC transferieren. Fr die verschiedenen M”glichkeiten (Diskette, ber parallele oder serielle Schnittstelle) werden auch Hilfsprogramme vorgestellt. 5.1 Diskette als Medium ======================== Dies ist meistens die einfachste und schnellste M”glichkeit, die CPC-Software auf den PC zu bekommen. Sie brauchen dazu nur einen CPC mit Zweitlaufwerk in richtiger Gr”áe. Richtige Gr”áe bedeutet dabei, daá die Disketten von der Gr”áe her in Ihr PC-Laufwerk passen mssen. Ansonsten k”nnten Sie versuchen, ein 3" Laufwerk an den PC anzuschlieáen. Der PC wird dann mit einem Zusatzprogramm berredet, die CPC-Diskettenformate zu lesen. Dieses Zusatzprogramm heiát CPCTRANS. 5.1.1 Das Diskettentransferprogramm CPCTRANS --------------------------------------------- Ich habe CPCTRANS geschrieben, um Disketten-Abbilder aus CPC-Disketten zu erstellen. Es werden sowohl die normalen CPC-Formate als auch das doppelseitige VORTEX-Format gelesen. CPCTRANS ist nicht dafr gedacht, kopiergeschtzte Formate zu bertragen! Wenn Sie CPCTRANS ohne Parameter aufrufen, erhalten Sie eine kurze šbersicht. Rufen Sie CPCTRANS „hnlich wie den DOS COPY-Befehl auf: 'CPCTRANS '. Beispiele: 'CPCTRANS B: DISK1.DSK' kopiert die Diskette im Laufwerk B in das Disketten-Abbild DISK1.DSK. Falls diese nicht existiert, wird sie neu erzeugt. 'CPCTRANS DISK1.DSK B:' kopiert das Disketten-Abbild zurck auf die Diskette im Laufwerk B. Der erste Befehl funktioniert nur fr das DATA-Format. Fr andere Formate mssen Sie eine Option angeben: /f 0 : DATA-Format (Standard) /f 1 : DATA-Format, doppelseitig /f 2 : SYSTEM-Format /f 3 : SYSTEM-Format, doppelseitig /f 4 : VORTEX-Format, doppelseitig /f 5 : unbekannt, CPCTRANS versucht es selber zu erkennen. /f 6 : +3DOS Beachten Sie das Leerzeichen zwischen "/f" und der Zahl. Beim doppelseitigen DATA- und SYSTEM-Format w„hlen Sie die Seite A oder B im Disketten-Men (3.2.1). Beim Zurckschreiben eines Disketten-Abbildes muá die Diskette schon mit dem richtigen Format formatiert sein! Dazu k”nnen Sie 22DISK benutzen, was im n„chsten Abschnitt beschrieben wird. Wollen Sie die B-Seite einer Diskette kopieren, w„hlen Sie Seite B durch die Option "/s 1". Durch 'CPCTRANS B: DISK1.DSK /s 1' wird also nur die B-Seite der Diskette kopiert, mit 'CPCTRANS DISK1.DSK B: /s 1' wird sie wieder zurckgeschrieben. Durch die Option '/v' schalten Sie "verify" ein, d.h. es wird berprft, ob die Daten korrekt kopiert wurden. Das ist zwar ein biáchen langsamer, erh”ht aber die Sicherheit. Mit der Option '/t ' geben Sie an, wieviele Spuren (tracks) kopiert werden sollen. Normalerweise werden immer 40 Spuren kopiert, nur beim VORTEX-Format sind es 80. Eine Besonderheit ist die Option '/q' (Quick-Format). Hiermit formatieren Sie ein Disketten-Abbild, anstatt den Inhalt einer Diskette hineinzukopieren. Trotzdem mssen Sie als ersten Parameter ein gltiges Laufwerk angeben, auch wenn es nicht benutzt wird. Beispiel: 'CPCTRANS a: SYSTEM.DSK /f 2 /q' formatiert SYSTEM.DSK als SYSTEM-Format-Diskette. 5.1.2 Das Formatier- und Kopierprogramm 22DISK von SYDEX --------------------------------------------------------- Dieses Programm ist als Shareware erh„ltlich. Durch geeignete Definitionen k”nnen Sie s„mtliche CP/M-Formate benutzen! Leider sind gerade die CPC-Formate in der Prfversion von 22DISK nicht enthalten. Deshalb habe ich diese Formate in der Datei CPMDISKS.DEF definiert. Sie befindet sich auch im UTILITY-Verzeichnis. Was k”nnen Sie mit 22DISK machen? Sie k”nnen einzelne Dateien zwischen DOS und den Fremdformaten hin- und herkopieren, Disketten formatieren und so weiter. Kopieren Sie die CPC-Dateien einfach in das TAPE-Verzeichnis, und lesen Sie im Abschnitt 3.2.2 nach, wie Sie Programme von Kassette laden. 5.2 Parallele Schnittstelle ============================ Falls Sie noch einen CPC ohne Zweitlaufwerk besitzen, haben Sie die M”glichkeit, den Datentransfer ber die parallele Schnittstelle zu t„tigen. Ursprnglich hatte Gilles Molinari diese Idee und auch Turbo-Pascal Programme dazu geschrieben. Nur geh”ren Sie vielleicht zu den Benutzern, die keinen Turbo-Pascal Compiler auf den CPC haben, somit k”nnten Sie damit nicht viel anfangen. Ich habe sie deshalb in Locomotive-BASIC umgeschrieben und durch die zus„tzliche Richtung PC->CPC erg„nzt. Es ist also m”glich, Programme vom CPC zum PC und umgekehrt zu bertragen! CPC und PC werden dabei an den Druckerschnittstellen gekoppelt. Wenn Sie einen CPC 6128 haben und sich die Anschlsse mal genauer ansehen, werden Sie feststellen, daá Sie mit einem parallelen PC-Druckerkabel die beiden Computer hervorragend verbinden k”nnen! Doch tun Sie es noch nicht, lesen Sie erst weiter. Wenn Sie einen Amstrad CPC 6128 ohne Centronics-Buchse oder einen CPC 464/664 haben, benutzen Sie das Diagramm am Ende des Abschnitts. Zwei kleine Hrden mssen Sie berwinden: 1. Einen kleinen Adapter bauen 2. Ein kurzes Programm in den CPC eintippen Warten Sie! Bl„ttern Sie nicht gleich weiter! Beide Schritte sind ganz einfach, denn 1. geht auch OHNE L™TEN und 2. ist wirklich ziemlich kurz (etwa 30 Zeilen BASIC) Zu 2. Das Programm, was Sie brauchen, heiát CPCREC.BAS und befindet sich im UTILITY-Verzeichnis. Es ist in ASCII-Form abgespeichert, so daá Sie es problemlos ausdrucken und in Ihren CPC eintippen k”nnen. Es erfllt in etwa die Aufgabe eines dnnen Seiles, das Sie durch ein Rohr schicken, um ein dickes Tau nachziehen zu k”nnen. Das dnne Seil ist hier CPCREC.BAS und empf„ngt (receive) Programme vom PC. Mit diesem "Progr„mmchen" holen Sie das Programm CPCPARA.BAS (das dicke Tau) auf Ihren CPC. Damit k”nnen Sie sowohl Programme empfangen als auch senden. CPCREC.BAS brauchen Sie dann nicht mehr. Auf der PC-Seite haben Sie die ganze Zeit PCPARA.EXE. Natrlich sind auch diese beiden Programme im UTILITY-Verzeichnis. Doch bevor Sie CPCREC.BAS eintippen, kommen wir zu 1. Der parallele Adapter --------------------- Sie brauchen also einen Adapter zwischen dem PC-Druckerkabel und dem PC-Druckeranschluá. Am einfachsten geht das mit einer RS-232 Wiring-Box, die einen 25pin D-Sub Stecker und eine 25pin D-Sub Buchse hat. Durch Stecken von kurzen Drahtbrcken realisieren Sie damit beliebige Verbindungen zwischen den beiden Seiten. Normalerweise wird so eine Box - wie ihr Name schon sagt - zur Anpassung von RS-232 Schnittstellen benutzt. Serielle Verbindungen scheinen n„mlich nie auf Anhieb zu funktionieren. Bei unserem Adapter benutzen Sie die Box einfach "andersherum", d.h. der Stecker kommt an den PC, in die Buchse kommt dann das PC-Druckerkabel. Stecken wir die Box eben zusammen: Stecker fr den PC- Buchse fr das Drucker- Druckeranschluá (links): kabel (rechts): Pin 2 --------------- Pin 11 Pin 10 --------------- Pin 8 Pin 11 --------------- Pin 1 Pin 12 --------------- Pin 7 Pin 13 --------------- Pin 6 Pin 15 --------------- Pin 5 Pin 19 --------------- Pin 19 Wie Sie sehen, brauchen Sie nicht alle 25 Drahtbrcken sondern nur 7. Meine Wiring-Box habe ich bei einem Elektronik-Versand fr 13 DM bekommen. Sie k”nnen es natrlich auch gnstiger haben, indem Sie eine sogenannte Jumper-Box verwenden, bei der Sie die Drahtbrcken festl”ten mssen. Diese sollte etwa 7 DM kosten. Noch gnstiger sind Stecker, Buchse, Adapter-Geh„use und ein paar Dr„hte. Das hat mich etwa 3 DM gekostet. Sie haben jetzt mit dem Adapter die beiden Computer verbunden und das "Progr„mmchen" CPCREC.BAS in den CPC eingetippt. Wie geht es nun weiter? 1. Auf dem CPC: CPCREC.BAS starten (nachdem Sie es abgespeichert haben) 2. Auf dem PC : 'PCPARA /s CPCPARA.BAS' starten. Jetzt wird es kritisch, denn wenn auf dem PC keine Fehler gemeldet werden, ist alles gut verlaufen, das Programm ist auf dem CPC. Falls der PC berhaupt nichts sendet und nur eine Fehlermeldung ausgibt, ist die Verbindung wahrscheinlich nicht in Ordnung. Falls er etwas sendet ("Sending block xx"), aber zwischendurch Fehler auftreten, ist Ihr PC vielleicht zu schnell oder zu langsam. Die Richtung PC->CPC ist n„mlich ziemlich zeitkritisch. Auf meinem 386/33 darf ich kein EMS installiert haben, sonst ist es zu langsam. Auf einem besonders schnellen Computer k”nnte es aber n”tig Sein, die Taktfrequenz herunterzuschalten. Benutzen Sie es unter DOS, nicht unter OS/2 oder Windows. Wenn es berhaupt nicht klappen sollte, benachrichtigen Sie mich. In der Zwischenzeit k”nnten Sie das etwas l„ngere CPCPARA.BAS eintippen, die Richtung CPC->PC funktioniert n„mlich immer, auch unter OS/2, da das nicht viel anders ist als ausdrucken. Der PC spielt dabei den Drucker. Ich nehme an, daá Sie jetzt CPCPARA.BAS auf Ihrem CPC haben. šbertragen Sie Dateien vom CPC zum PC folgendermaáen: 1. Auf dem PC: 'PCPARA /r' eingeben. 2. Auf dem CPC: CPCPARA starten, Menpunkt S)end w„hlen, und nacheinander die zu bertragenden Dateien eingeben. (Rufen Sie 'PCPARA /r' fr jede zu bertragende Datei erneut auf, CPCPARA hingegen l„uft in einer Endlosschleife.) Sie benutzen also PCPARA folgendermaáen: - PCPARA /r : startet PCPARA im Empfangsmodus - PCPARA /s : sendet die zum CPC, falls Sie als Datei 'TRM:' angeben, bekommen Sie ein Terminal. Bei den meisten Programmen im UTILITY-Verzeichnis bekommen Sie brigens eine šbersicht ber die Optionen, wenn Sie nur den Dateinamen eingeben. WARNUNG: Auch wenn der Aufbau ganz simpel ist, kann ich doch nicht garantieren, daá Sie dabei nicht irgend etwas kaputtmachen. Wenn z.B. nachher Ihr CPC-Druckerport defekt ist, dann ist das schade und wohl eher ein dummer Zufall. Wahrscheinlich w„re er auch dann kaputtgegangen, wenn Sie nur Ihren Drucker angeschlossen h„tten. Ich kenne z.B. einen ehemaligen CPC-Benutzer, dessen Tastatur mal nicht mehr funktionierte. Nach der Reperatur sagte man ihm, er drfe den Joystick auch nicht bei angeschaltetem Computer einst”pseln! (Also ich mache das immer ?!?) Also: Der Adapter wurde nicht nur von mir schon mehrfach erfolgreich nachgebaut. Und auch Benutzer, die "mal vergessen" haben, den Adapter zwischen der Verbindung anzubringen, berichten von keinen Problemen. Diagramme von David Chapeau, falls Ihr CPC keinen Centronics-Anschuá hat: 34 <- - - - - - - - 18 \ ______________________ | | ________________ | | | |________________| | - | ---> Buchse fr CPC-Druckeranschluá |______________________| | | 17 < - - - - - - - - 1 | | |||||||||||||||||| | |||||||||||||||||| \ |||||||||||||||||| > "CPC 464/664 nach DMP 2160"-Kabel |||||||||||||||||| / |||||||||||||||||| | | 1 - - - - - - - - > 18 | ________________________ | \ ______________ / | \ |______________| / - | ---> Centronics-Stecker \__________________/ | | 19 - - - - - - - -> 36 / 18 < - - - - - - - - 1 \ ________________________ | \ ______________ / | \ |______________| / - | ---> Centronics-Buchse \__________________/ | | 36 <- - - - - - - - 19 | | |||||||||||||||||| | |||||||||||||||||| \ |||||||||||||||||| > PC Parallel Adapter |||||||||||||||||| / |||||||||||||||||| | | 1 - - - - - - - - > 13 | ________________________ | \ .................. / | \ ................ / - | ---> Sub-D Stecker zum PC (LPT1) \__________________/ | | 14 - - - - - - - -> 25 / 13 < - - - - - - - - 1 \ ________________________ | \ .................. / | \ ................ / - | ---> Sub-D Buchse \__________________/ | | 25 <- - - - - - - - 14 | | |||||||||||||||||| | |||||||||||||||||| \ |||||||||||||||||| > RS-232 "Wiring-Box" |||||||||||||||||| / |||||||||||||||||| | | 1 - - - - - - - - > 13 | ________________________ | \ .................. / | \ ................ / - | ---> Sub-D Stecker zum PC (LPT1) \__________________/ | | 14 - - - - - - - -> 25 / Drucker Centronics Centronics Sub-D Sub-D Sub-D (Buchse) (Stecker) (Buchse) (Stecker) (Buchse) (Stecker) 1 --------- 1 1 --------- 1 11 --------- 2 . . 8 --------- 10 . . 1 --------- 11 . . 7 --------- 12 17 --------- 17 14 --------- 14 6 --------- 13 18 --------- 19 19 --------- 19 5 --------- 15 . 21 --------- 20 19 --------- 19 . 23 --------- 21 . 25 --------- 22 34 --------- 35 27 --------- 23 29 --------- 24 30 --------- 25 31 --------- 16 32 --------- 15 33 --------- 18 36 --------- 17 šbertragungsgeschwindigkeit CPCPARA -> PCPARA (v1.1): Mit der eingebauten Statistik wurden folgende šbertrangungsraten fr einen 0x4000 Byte-Block vom CPC zum PC gemessen: Quelle auf dem CPC: Bytes/s: bit/s: ----------------------------------------------------------- Datei von Diskette: 1600 12800 Block aus dem Speicher: 2240 17920 Block aus Speicher,keine Int. 2445 19560 (poke &b941,&c9 auf CPC 6128) Das Senden eines Blocks wurde in BASIC folgendermaáen realisiert: defstr a:a="test.$$$":call sstr,@a a=string$(&80):for i=1 to &80:call sstr,@a:next:call sbyte,0:stop Weitere Informationen zum parallelen Adapter finden Sie im Kapitel 7. 5.3 Serielle Schnittstelle =========================== Falls Sie eine serielle Schnittstelle am CPC haben, k”nnen Sie die Daten natrlich auch seriell bertragen. 5.4 Sonstige M”glichkeiten =========================== Es gibt auch abenteuerlichere Methoden, an seine Software zu kommen. - 3" Diskettenlaufwerk an den PC anschlieáen. Manche („ltere) Modelle sollen direkt an den 5.25"-Anschluá passen. - Mit Hilfe des Spectrum+3 (oder so) die 3" Disketten einlesen, in das Spectrum-Format konvertieren und mit einem Hilfsprogramm auf den PC bertragen. Dieses Hilfsprogramm soll dem Spectrum-Emulator Z80 von Gerton Lunter beiliegen. - Als es noch n”tig war, irgendwie an die ROMs zu kommen, hat mir ein Benutzer von seiner Methode berichtet: Er hat den ROM-Chip aus dem CPC ausgebaut und anstatt des VGA-BIOS in seine Grafikkarte eingesetzt. Mit einem kleinen Programm konnte er dann den Inhalt auslesen. - Vielleicht finden Sie noch Ihre eigene Methode? 6. Bezugsquellen, Hilfe bei Problemen, Danksagungen ðððððððððððððððððððððððððððððððððððððððððððððððððððð In diesem Kapitel erfahren Sie, woher Sie CPC-Software beziehen k”nnen und an wen Sie sich bei weiteren Fragen wenden k”nnen. Auáerdem erw„hne ich noch einige andere Amstrad-Emulatoren. 6.1 Sie m”chten CPC Software ? =============================== Kein Problem. Wenn Sie Internet-Zugang oder ein Modem haben. Wie fr die Spectrum-Emulatoren gibt es mittlerweile auch fr den (oder die) CPC-Emulator(en) "anonyme" Archive, von denen Sie per FTP, oder WWW Software bekommen k”nnen. - ftp.nvg.unit.no : /pub/cpc, thanks to Arnt Gulbrandsen for creating the site, and to Noel Llopis to maintain it, ROMs, CPC programs, emulators, send what you have in /pub/cpc/incoming - sunshine.informatik.uni-wuerzburg.de : /pub/joscho/cpcemu mirror of ftp.nvg.unit.no. Any questions, remarks and additions to joscho@informatik.uni-wuerzburg.de If you have problems connecting to Norway you can try this. - ftp.ibp.fr : /pub/amstrad, thanks to Remy Card, all questions about this site should be directed to roussin@blaise.ibp.fr All the files comes from 'Genesis the 8bit generation BBS' (see below), - ftp.demon.co.uk:/pub/cpm, thanks to Paul Martin specific amstrad CP/M related files Paul Martin (pm@nowster.demon.co.uk) will send anyone, who can give him proof that they own an original Amstrad CP/M Plus disk, the binary ROM images of his "CP/M Plus ROMs" for free. - oak.oakland.edu : /Simtel/msdos/emulator/cpcemu13.zip - other Simtel mirrors as : ftp.ibp.fr : /pub3/pc/SimTel/msdos/emulator/ ftp.demon.co.uk : /simtel/msdos. FTP --- - ftp.nvg.unit.no:/pub/cpc, Arnt Gulbrandsen hat das Archiv bereitgestellt und Noel Llopis verwaltet es. Eines der gr”áten Archive mit CPC-Programmen. Eigene Programme k”nnen Sie unter /pub/cpc/incoming ablegen. - sunshine.informatik.uni-wuerzburg.de:/pub/joscho/cpcemu Ein Mirror von ftp.nvg.unit.no. Fragen, Bemerkungen und Erg„nzungen richten Sie bitte an joscho@informatik.uni-wuerzburg.de. Wenn Sie Verbindungsprobleme nach Norwegen haben, k”nnen Sie es hier versuchen. - ftp.ibp.fr:/pub/amstrad, dank Remy Card. Alle Fragen zu diesem Archiv richten Sie bitt an roussin@blaise.ibp.fr. Alle Dateien kommen von 'Genesis the 8bit generation BBS' (siehe unten). - ftp.demon.co.uk:/pub/cpm, dank Paul Martin Haupts„chlich Amstrad CP/M-Programme. Paul Martin ist bereit, Ihnen seine "CP/M Plus ROMs" zuzuschicken, falls Sie das originale Amstrad CP/M Plus haben. Sie mssen das natrlich irgendwie beweisen. - oak.oakland.edu : /Simtel/msdos/emulator/cpcemu14.zip - Weitere Simtel-Mirrors; ftp.ibp.fr : /pub3/pc/SimTel/msdos/emulator/ ftp.demon.co.uk : /simtel/msdos ftp.uni-paderborn.de WWW --- - Amstrad Action homepage at http://www.futurenet.co.uk/ - http://www.cm.cf.ac.uk/User/K.E.W.Thacker/Amstrad/index.html BBS --- - Aspects 2:250/107 : +44 617920260, England - Genesis the 8bit generation, 2:320/220, +33 1 39 50 54 11, Frankreich - Razormaid, 2:246/6009, +49 711 4204329, Deutschland - Beavis'n'Butthead BBS 2453/407, Deutschland 6.2 Sie m”chten immer auf dem laufenden bleiben ? ================================================== Sie m”chten immer die neuste Version von CPCEMU haben? Sie m”chten informiert werden, wenn eine neue ver”ffentlicht wird? Mittlerweile gibt es eine eigene CPC-Newsgruppe ! Sie heiát comp.sys.amstrad.8bit. Dort finden Diskussionen rund um den CPC (und eben auch CPCEMU) statt. Hier k”nnen Sie natrlich ganz unverbindlich Ihre Erfahrungen austauschen. Es ist auch ein FAQ (frequently asked questions, h„ufig gestellte Fragen) zu dieser Newsgroup verfgbar. Falls Sie keine M”glichkeit haben, die Newsgruppe zu lesen, schreiben Sie mir kurz eine E-Mail, um in eine "Mailing-List" aufgenommen zu werden. Sie werden dann immer ber Neuerungen informiert. Meine Adresse steht im n„chsten Abschnitt. Mit normaler Post k”nnen Sie bei mir (oder bei David, siehe unten) natrlich auch nachfragen, aber nicht das Rckporto vergessen. Falls Sie mir eine Anerkennung zukommen lassen haben, fhle ich mich normalerweise verpflichtet, Ihnen mindestens 1 bis 2 Mal die neuste Version zukommen zu lassen. 6.3 Wenn Sie Fragen oder Anregungen haben ========================================== Dann wenden Sie sich direkt an mich: Marco Vieth Auf dem škern 4 D-33165 Lichtenau Germany Tel. 05292/1366 Internet: ali@uni-paderborn.de Wie Sie vielleicht schon wegen der Internet-Adresse vermuten, studiere ich an der Uni Paderborn, und zwar Informatik im 11. Semester (WS 95/96). Falls Sie Englisch sprechen oder schreiben, k”nnen Sie sich auch an David Cantrell wenden: David Cantrell 116, London Road Bexhill-on-sea East Sussex TN39 4AA England Phone: +44-1424-221015 Internet: david@integration.co.uk David hat mir angeboten, mich bei der "Flut von Anfragen" zu untersttzen. Er hat das Firmware-Manual fr den CPC eingescannt und berarbeitet, so daá es jetzt jedem in einer elektronischen Form zur Verfgung steht. Ich akzeptiere jede Form von Untersttzung, ob ideell oder finanziell. (30 DM bis 50 DM w„ren angemessen.) Normalerweise ist auf die Post (wenigstens) soviel Verlaá, daá Geldscheine in zugeklebten Briefen auch ankommen. (Die "Unglcksf„lle", die manchmal bei "Wie bitte ?" vorgestellt werden, sind hoffentlich nur die Ausnahme. Wenn z.B. ein Gterwaggon vollbeladen mit Postsendungen monatelang in einem Ausbesserungswerk vergessen wurde ...) Falls Sie den bargeldlosen Zahlungsverkehr bevorzugen: Marco Vieth, Sparkasse Paderborn, BLZ: 47250101, Kto.Nr: 54111091 Auch wenn Sie mir kein Geld schicken, beantworte und bercksichtige ich normalerweise alle Ihre Fragen und Anregungen (und David sicher auch). 6.4 Andere Amstrad CPC Emulatoren ================================== Noch Anfang 1994 h„tte ich gesagt, CPCEMU ist der einzige Emulator fr den Amstrad CPC. Mittlerweile sind mir jedoch drei andere bekannt: - SIMCPC: Vermutlich der erste CPC-Emulator berhaupt. CPC-Emulator fr PC/XT/AT (c) 1989, 90 by GHE, Aachen Nur schwarzweiá, aber mit zus„tzlichen ROMs; insgesamt nur eine "Bierlaune". - CPC2PCxx: Wird seit Oktober 1993 von Paco Lopez aus Spanien entwickelt. Ist jetzt auf einigen Archiven verfgbar. Ist vollst„ndig im Protected Mode und benutzt dasselbe Disketten-Format wie CPCEMU. - CPE: In Entwickung von Bernd Schmidt aus Aachen. Durch einen speziellen 50 Hertz Bildschirm-Modus werden einige Farbbalken exakt nachgebildet. Auáerdem werden Multi-Modes und Overscan untersttzt. Mit einer Spezialversion im 256-Farben-Modus werden exakte Farbbalken mit mehr als 50 Hertz dargestellt. Mittlerweile gibt es die Version v4.7. 6.5 Pl„ne fr weitere CPCEMU-Versionen ======================================= - Overscan - Bessere Multi-Modes - Bildschirm zentrieren in h”heren Aufl”sungen - Schnelles Hardware-Scrolling - w„hlbare Bildschirmvergr”áerung - auf amerikanischen Tastaturen fehlt "<>", ALTgr - Expansions-Port des CPC nachbilden - direktes Laden von CPC-Disketten - Laden von CPC-Kassetten ber die Druckerschnittstelle oder ber eine Soundblaster-Karte - šbertragen von Disketten mit dem parallelen Adapter - Žnderung der Soundblaster-Lautst„rke - Besserer Sound (eventuell mit Ger„uschen) - Digiblaster-Emulation - Joystick-Tasten selber definieren - Maus als Joystick benutzen - automatische Erkennung von .SNA und .DSK - den Expansions-Port emulieren Vielleicht wird es nie eingebaut, da ich erst einmal meine Diplomarbeit schreiben muá und nebenbei ein wenig "richtig" arbeite... 6.6 Danksagungen ================= - Besonderen Dank an Jrgen Weber, der mir nicht nur sehr viele Tips gegeben und Verbesserungsvorschl„ge gemacht hat, sondern vor allem die schnelle Z80-Emulation aus seinem CP/M-Emulator ZSIM beigesteuert hat. Jrgen G. Weber Wiesentalstraáe 1 74523 Schw„bisch Hall Federal Republic of Germany Email: weberj@dia.informatik.uni-stuttgart.de - Auáerdem Dank an Bernd Schmidt. Da Bernd einen eigenen Emulator schreibt, standen wir oft vor denselben Problemen. Nur wer selber versucht, einen solchen Emulator zu schreiben, kann ermessen, welche Details berall Probleme bereiten. Es gibt eben keine Dokumentation zum CPC, in der die gesamte Spezifikation enthalten ist. Das meiste muá durch Probieren herausgefunden werden. - Dank an Ulrich Doewich, der die Sound-Ausgabe fr Gravis UltraSound eingebaut und die englische Dokumentation dorchgelesen hat. Ulrich entwickelte ein „hnliches Tool wie CPCTRANS. Halten Sie Ausschau nach CPDREAD, dem "Copy-Protected-Disk-Reader", der auch kopiergeschtzte Disketten lesen kann. - Dank an Emmanuel Roussin fr seinen unermdlichen Einsatz fr den CPC. Er hat wesentlich bei der Erstellung der Newsgruppe mitgewirkt und mir monatelang sein Multiface II geliehen, damit ich es doch in den Emulator einbaue. - Dank auch an Arnt Gulbrandsen, aus dessen JPP-Quellcode ich die Ideen fr den Keyboard-Handler und die Joystickabfrage bekam. JPP ist brigens ein sehr guter Spectrum-Emulator. - Dank an Martin Zacho fr die Joystick Routine. - Dank an Fernando J. Echevarrieta Fernandez, der als erster herausfand, daá Version v0.8 keinen CPC 664 emulierte. - Dank an Gilles Molinari fr das Transferprogramm fr den parallelen Adapter. - Dank an Paul Martin, der die englische Dokumentation zu Version 1.0 korrigiert hat. - Dank an Mark Haigh-Hutchinson, der durchgesetzt hat, daá Spiele der Firma Vortex nun legal in einem Archiv verfgbar sein drfen. - Dank an Martin Young fr seine auáergew”hnlichen Ideen, einen Z80 zu emulieren. - Dank an Linh Hsiesh fr zahlreiche Verbesserungsvorschl„ge, wovon die meisten mittlerweile realisiert sein drften. - Dank an Fred Harris fr den Brief, den er wegen der ROMs an AMSTRAD geschrieben hatte. - Dank an Amstrad, insbesondere an Cliff Lawson, daá ich das BASIC-ROM benutzen darf. Natrlich bleibt das Copyright bei Amstrad. Amstrad plc, Brentwood House, 169 Kings Road, Brentwood, Essex CM14 4EF - Dank an Richard Clayton von Locomotive, daá ich das Firmware-ROM benutzen darf. Natrlich bleibt das Copyright bei Locomotive Software. - Und Dank an die vielen anderen Benutzer, die mir Verbesserungs- vorschl„ge geschrieben haben oder sonstige Ideen hatten. Ohne sie w„re CPCEMU vermutlich nicht einmal bis Version 1.0 gekommen. 6.7 Geschtzte Warenzeichen ============================ CP/M, CP/M 2.2 und DRDOS sind von Digital Research, MS-DOS ist von Microsoft, IBM PC, PC-XT, PC-AT und OS/2 sind von International Business Machines, CPC, AMSDOS sind von Amstrad, BORLAND C, TASM (Turbo Assembler) sind von Borland, 22DISK ist von SYDEX Soundblaster ist von Creative Labs ... ------------------------------------------------------------------------------ 7. Interne Informationen zu CPCEMU ððððððððððððððððððððððððððððððððððð Dieses Kapitel soll ein paar Hintergrundinformationen liefern und die Frage beantworten, WARUM muá ich jetzt dies und das machen. Auch wird das leistungsf„hige Debug-Men erkl„rt und die Datenformate zu den Disketten-Abbildern und den Snapshots aufgefhrt. Ich gebe hier also Informationen, die Sie als Anwender von CPCEMU nicht unbedingt wissen mssen. Allerdings k”nnen sie manchmal ganz ntzlich sein. Ich habe diese Informationen absichtlich an das Ende, noch nach den geschtzten Warenzeichen gesetzt, damit die relative "relative Bedeutungslosigkeit" deutlich wird. Wenn Sie keinen Spaá an unverst„ndlichen S„tzen und unstrukturierten Informationen haben, dann lesen Sie nicht weiter! WARNUNG: Weiterlesen auf eigene Gefahr! 7.1 Inhaltsverzeichnis zu Kapitel 7 ==================================== 7.2 Interne šbersicht ber die Leistungsmerkmale von CPCEMU 7.2.1 Die Z80-CPU (Der Prozessor) 7.2.2 Das Gate-Array (Der "Hilfsprozessor") 7.2.3 Das PAL (Programmable Logic Array) 7.2.4 Der CRTC 6845 (Cathode Ray Tube Controller) 7.2.5 Die PIO 8255 (Programmable Input-Output) 7.2.6 Der PSG (Programmable Sound Generator) 7.2.7 Der FDC (Floppy Disc Controller) 7.2.8 Die Centronics-Druckerschnittstelle 7.3 Das Debug-Men - Aufbau des Debug-Mens - Vorbemerkungen - šbersicht ber die Kommandos - Registermanipulationen 7.4 Die Speicherverwaltung 7.4.1 Noch einmal zur EMS-Konfiguration 7.4.2 Realisierung des Bankings 7.5 ROM-Modifikationen 7.5.1 ROM-Bypass fr die Kassette 7.5.2 Modifikationen am AMSDOS-ROM 7.6 Verschiedenes 7.6.1 Noch einmal: Die Konfigurationsdatei 7.6.2 Der parallele Adapter - Richtung CPC->PC - Richtung PC->CPC 7.6.3 CPCTRANS 7.7 Aufbau einiger CPCEMU-Dateien 7.7.1 Disketten-Abbilder - Der Disketten-Informationsblock - Der Spur-Informationsblock 7.7.2 Snapshot-Dateien 7.7.3 AMSDOS-Header 7.7.4 Poke-Datenbank 7.8 Interne History 7.2 Interne šbersicht ber die Leistungsmerkmale von CPCEMU ============================================================ Wie kompatibel ist CPCEMU wirklich? 7.2.1 Die Z80-CPU (Der Prozessor) ---------------------------------- + Es werden alle Z80-Befehle emuliert, auch sogenannte illegale Befehle. Es gibt eine langsame Z80-Emulation in C und eine schnelle Emulation in Assembler von Jrgen Weber. Durch die COCPU-Technik, bei der jeder Befehl von den beiden Emulationsarten gleichzeitig ausgefhrt wird und danach die Register verglichen werden, wurden zahlreiche Fehler gefunden. Natrlich wurde dies nur w„hrend der Programmentwicklung benutzt. Die langsame Z80-Emulation k”nnen Sie vom Debug-Men aus aktivieren. + Nur dem Emulator bekannte Zusatzbefehle der Form ED FC xx, darunter auch der User-Break ED FC FC USER &BCFC. - kein exaktes Timing der Befehle 7.2.2 Das Gate-Array (Der "Hilfsprozessor") -------------------------------------------- + alle 32 Farben des CPC (27 verschiedene) + alle 3 Bildschirmmodi (X x Y x Farben): Modus 0 = 160x200x16 Modus 1 = 320x200x4 Modus 2 = 640x200x2 + einfache Multi-Modes + ROM-Banking (16KB OS, 16KB BASIC, 16KB AMSDOS, und sonstige Zusatzroms) - Farbbalken flimmern 7.2.3 Das PAL (Programmable Logic Array) ----------------------------------------- Das PAL ist zwar logisch ber die gleiche Adresse wie das Gate-Array zu programmieren, hardwaretechnisch aber davon getrennt. + RAM-Banking (128 KB, bis zu 576 KB), mit EMS oder konventionellem Speicher. Mit emuliertem EMS ist es recht flott, da die die Umschaltung per Hardware geschieht. Sie k”nnen eine Dk'tronics kompatible Speichererweiterung mit bis zu 576 KB RAM benutzen. - Ohne EMS ist RAM Banking sehr langsam, da Speicherbl”cke vertauscht werden mssen. Auáerdem haben Sie ohne EMS h”chstens 128 KB RAM zur Verfgung. 7.2.4 Der CRTC 6845 (Cathode Ray Tube Controller) -------------------------------------------------- + Bildschirmstart, -offset fr Hardware-Scrolling + verschiedene Bildschirmgr”áen von 0x0 bis 80x25 mittels CRTC-Register 1 und 6 + unterschiedliche Zeichengr”áen (1..7) mit CRTC-Register 9 + fr Multi-Modes werden noch einige andere Register ben”tigt. - Overscan wird noch nicht untersttzt. 7.2.5 Die PIO 8255 (Programmable Input-Output) ----------------------------------------------- + Keyboard (ber den PSG) + VSYNC-Emulation: Bit zwischen zwei Interrupts w„hrend des Bildaufbaus gesetzt, die Position legen Sie fest. + Kassetten besonders schnell durch ROM-Bypass der den Zugriff auf beliebige DOS-Dateien erm”glicht. - VSYNC-Bit ist zu lange gesetzt - Kassetten-Bits werden nicht emuliert, somit k”nnen Sie die meisten Kassetten-Kopierprogramme nicht einsetzen, die direkt auf die Ports zugreifen. 7.2.6 Der PSG AY 3-8912 (Programmable Sound Generator) ------------------------------------------------------- + Entweder ber den PC Lautsprecher (schrecklich, da 3 Kan„le auf einen gemischt werden mssen und die Lautst„rke nicht ge„ndert werden kann) oder eine Soundblaster-Karte. Von der Soundblaster-Karte wird nur der Adlib-kompatible FM-Teil benutzt. - keine Digital-Sounds m”glich oder zu langsam. Die Ger„usche des PSG haben auf der Soundblaster keine Entsprechung, deshalb wurden sie nicht realisiert. 7.2.7 Der FDC 765 (Floppy Disc Controller) ------------------------------------------- + Alle notwendigen FDC-Kommandos, um die Laufwerke A und B zu steuern (dazu geh”ren Sektor lesen/schreiben, Spur suchen, Sektor-ID lesen, ... ; Spur formatieren wird unterdrckt. ) Sehr flexible Disketten-Formate (bis zu 18 Sektoren pro Spur). Darunter auch doppelseitige Formate, z.B. VORTEX. - Komplizierte kopiergeschtzte Formate werden intern nicht verarbeitet. 7.2.8 Die Centronics-Druckerschnittstelle ------------------------------------------ + Druckerausgabe auch mit 8-Bit-Druckerpatch, wird auf die durch PRINTER definierte Datei umgeleitet. 7.3 Das Debug-Men =================== Von sowas h„tte ich damals auf dem CPC nur getr„umt! Es wird der komplette CPU-Zustand des Z80 angezeigt und Sie k”nnen ihn modifizieren. Der Speicher kann "gedumped", disassembliert oder modifiziert werden, Speicherauszge (Programme) lassen sich laden oder speichern. Und das Interessanteste: Sie k”nnen die Code-Ausfhrung im Single-Step-Mode verfolgen! (Žhnlich wie bei einem richtigen Debugger). Aufbau des Debug-Mens ---------------------- R)un T)race S)tep A)ssem D)ump I)nput L)oad saV)e fiN)d F)ast Q)uit AF=0000 BC=0000 DE=0000 HL=0000 IX=0000 IY=0000 SP=0000 PC=0000 IR=0000 AF'=0000 BC'=0000 DE'=0000 HL'=0000 IFF1=0 IFF2=0 IMD=0 NZ NC PO P 0000 : 01 89 7F LD BC,&7F89 -f-> In der ersten Zeile werden die verfgbaren Kommandos angezeigt (die Groábuchstaben). In den beiden n„chsten Zeilen stehen die aktuellen Inhalte der Register. Darunter steht der disassemblierte aktuelle Befehl an Position PC. In der letzten Zeile wartet ein Prompt auf Ihre Eingabe. ('f' zeigt an, daá Sie gerade die Fast-CPU benutzen.) Vorbemerkungen -------------- In eckige Klammern eingeschlossene Parameter sind optional [opt.]. Zahleneingaben alle hexadezimal, z.B. = 0000 bis ffff. "" zeigt an, daá Sie in einem speziellen Modus sind und drcken sollen, um fortzufahren. verl„át diesen Modus (d.h. z.B. b). Kommandos bestehen aus einem Buchstaben, meistens gefolgt von einer optionalen Adresse. Zwischen Kommando-Buchstabe und dieser Adresse muá dann ein Leerzeichen oder Tab stehen. Ohne Angabe einer Adresse wird als Standard-Wert PC (Programmz„hler) angenommen. šbersicht ber die Kommandos ---------------------------- R)un: r [] : startet die Emulation ab PC oder der optional angegebenen Adresse. Beispiele: -f-> r startet die Emulation ab PC -f-> r 100 setzt PC auf 0x100 und startet die Emulation T)race (Trace into): t [] : fhrt wirklich nur den aktuellen Befehl aus, mit den n„chsten; beendet den Trace-Modus. Alle Einzelschrittbefehle werden von der Slow-CPU ausgefhrt (selbst wenn "-f->" angezeigt wird), da in der Fast-CPU kein Z„hler mehr existiert. S)tep (Step over): s [] : fhrt den aktuellen Befehl aus, eigentlich alle Befehle, bis PC auf dem direkt nachfolgenden Befehl steht, was z.B. bei einem 'Ret' recht lange dauern kann. In diesem Fall hilft (wie immer) F10. Alle Einzelschrittbefehle werden von der Slow-CPU ausgefhrt (selbst wenn "-f->" angezeigt wird), da in der Fast-CPU kein Z„hler mehr existiert. A)ssemble (eigentlich Disassemble): a [] : disassembliert die n„chsten 16 Befehle, mit die n„chsten; beendet den Disassemble-Modus. D)ump: d [] : zeigt einen Hex-Ascii-Speicherauszug der n„chsten 256 Bytes ab PC oder Adresse an, die n„chste Seite; beendet den Dump-Modus. I)nput (Speicherstellen modifizieren): i [] : zeigt die Speicherstelle mit aktuellem Inhalt an, der durch best„tigt oder durch ver„ndert werden kann. Verlassen wird der Input-Modus mit einer ungltigen Zahl, z.B. -1. L)oad (Laden eines Speicherbereichs): l [] : fragt nach dem Dateinamen und l„dt dann die Datei aus dem Verzeichnis TAPE_PATH nach Ein AMSDOS-Header wird erkannt. Siehe Anhang "Aufbau des AMSDOS-Headers". Falls Sie bei dem Dateinamenprompt nur eingeben, erscheint das schon bekannte Dateiauswahl-Men. Beispiele: -f-> l demo : l„dt Datei 'demo' an den aktuellen PC -f-> l a000 myprog : l„dt Datei 'myprog' nach 0xA000 saV)e (Speichern eines Speicherbereichs): v [] : fragt nach dem Dateinamen und der L„nge des Speicherbereichs. Dieser wird dann ab (oder eben PC) abgespeichert, und zwar im Verzeichnis TAPE_PATH als Bin„rdatei, d.h. mit AMSDOS-Header. Siehe Anhang "Aufbau des AMSDOS-Headers". Beispiel: -f-> v demo 4000 : speichert "demo" ab PC mit der L„nge 0x4000. fiN)d (Suchen einer Bytefolge): n : Wie bei I)nput muá zuerst eine Bytefolge eingegeben werden, nach der gesucht werden soll. Dabei kann '??' (oder '?') als Platzhalter fr ein beliebiges Byte eingesetzt werden. Das macht natrlich nur Sinn innerhalb einer Bytefolge. Es werden dann die gerade aktiven 64KB Speicher durchsucht und alle Adressen ausgegeben, wo diese Bytefolge beginnt. F)ast (Z80-Emulationsart w„hlen): f : Wechselt zwischen der schnellen Z80-Emulation (entwickelt in Assembler von Jrgen Weber, Standardeinstellung) und der langsamen (in C geschriebenen). Das Prompt-Symbol wechselt dann zwischen "-f->" fr schnell (fast) und "-s->" fr langsam (slow). Alle r, s, t-Kommandos beziehen sich dann auf die gew„hlte Z80-Emulationsart. Q)uit (Beenden des Programms): q : beendet den Emulator. Registermanipulationen ---------------------- Neben den Buchstabenkommandos gibt es auch Befehle zum Setzen der Register mit der Syntax: '=' Beispiele: - af=345 : setzt Register AF auf 0x0345 - pc=a000 : setzt Programmz„hler auf 0xA000 Sie k”nnen auch einfach '' schreiben Alle Z80-Register lassen sich ver„ndern, also AF, BC, DE, HL, IX, IY, SP, PC, IR, AF', BC', DE', HL', zus„tzlich IFF1, IFF2 und IMD. 7.4 Die Speicherverwaltung =========================== 7.4.1 Noch einmal zur EMS-Konfiguration ---------------------------------------- Sie brauchen einen Expanded Memory Manager nach dem LIM 4.0 Standard (LIM EMS 4.0). Dieser Memory-Manager muá sogenannte erweiterte EMS-Seiten bieten. CPCEMU ben”tigt 6 solcher Seiten an zusammenh„ngenden Adressen. Unter OS/2 2.x wurde Ihnen vorgeschlagen, die folgenden Einstellungen zu benutzen: EMS_FRAME_LOCATION = auto EMS_HIGH_OS_MAP_REGION = 32 (oder mehr) EMS_LOW_OS_MAP_REGION = 0 (oder mehr) Was bedeuten die Einstellungen? Die Low-Region bezeichnet EMS-Seiten im konventionellen Speicher. Falls CPCEMU dortige EMS-Seiten benutzen soll, mssen mindestens 6*16KB = 84KB vorhanden sein. Die High-Region bezeichnet EMS-Seiten im Speicher oberhalb von 640K, der zum Standard-Rahmen von 64KB hinzugenommen wird, muá also mindestens 2*16KB = 32KB sein. Unter DOS wurde Ihnen vorgeschlagen, folgende Zeilen in CONFIG.SYS zu benutzen: DEVICE=C:\DOS\HIMEM.SYS DEVICE=C:\DOS\EMM386.EXE 1024 ... Die 1024 kann auch vergr”áert oder verkleinert werden, je nach Hauptspeicher Ihres Rechners. Erl„uterungen: EMM386 bietet zahlreiche zus„tzliche Seiten im konventionellen Speicher. Die Untergrenze dieser Seiten kann mit der Option /B= ge„ndert werden (Standard ist 4000). Mit /P= soll es auch m”glich sein, einzelnen physikalischen Seiten andere Segmente zuzuweisen. 7.4.2 Realisierung des Bankings -------------------------------- Banking wird auf einigen Heimcomputern benutzt, die RAM und ROM an der gleichen Adresse haben. Lesezugriffe adressieren das ROM, Schreibzugriffe das RAM. Der Amstrad CPC hat 64K RAM und 16K ROM im Bereich 0-3FFF und ein weiteres ROM an C000-FFFF: 0 RAM 0000-3fff 1 RAM 4000-7fff 2 RAM 8000-bfff 4 RAM c000-ffff L ROM 0000-3fff U ROM c000-ffff Die wesentliche Idee ist, verschiedene Segmente zum Lesen und Schreiben zu haben. Bei jedem Lesezugriff wird ein Lese-Offset zu der gewnschten Adresse addiert, das gleiche wird mit einem Schreib-Offset fr das Schreiben gemacht. Zustand 0 Zustand 1 block 5 M L c 0 < block 4 M W C c C c | vertauscht beim block 3 M W 8 b c W 8 a c | Zustands- block 2 M W 4 b c W 4 a c | wechsel block 1 M W 0 b W L a c < block 0 M U b W U a (M = konventioneller Speicher oder physikalische EMS-Seiten) a = Lrom ei, Urom ei b = Lrom di, Urom ei c = Lrom ei, Urom di W = Lrom di, Urom di Um zwischen den beiden Zust„nden zu wechsen, mssen nur die '0' und 'L' Bl”cke vertauscht werden. Fr RAM Banking muá eine neue '0' mit der alten vertauscht werden. UROM Auswahl geschieht durch Kopieren des neuen ROMs nach 'U'. Mit EMS Speicher wird das gesamte Banking von der Hardware (oder deren Emulation) bernommen. Dieses erh”ht die Geschwindigkeit besonders in BASIC und CP/M Plus. Jetzt verstehen Sie, warum 6 zusammenh„ngende physikalische EMS-Seiten notwendig sind und der Standard-Rahmen mit 4 Seiten nicht reicht. 7.5 ROM-Modifikationen ======================= 7.5.1 ROM-Bypass fr die Kassette ---------------------------------- Nach dem Befehl '|TAPE', oder wenn Sie das AMSDOS-ROM ausgeschaltet haben, wird die "Kassette" angesprochen. Kassettenzugriffe werden dabei in Dateizugriffe auf die einzelnen Dateien eines speziellen Verzeichnisses umgeleitet. Realisiert wird diese Umleitung mittels eines "ROM-Bypass". Durch 'TAPE_BYPASS=1' schalten Sie den ROM-Bypass der TAPE-Vektoren ein. Falls ein bekanntes ROM vom CPC 464/664/6128 gefunden wurde, wird das ROM automatisch modifiziert. Der Bypass ist n”tig, wenn Sie Kassetten-Dateien benutzen m”chten. Es wurden Spezialbefehle eingefhrt, die eine bestimmte Funktion des Emulators aufrufen. Diese Befehle werden direkt in das ROM eingetragen, so daá das Patchen der RAM-Vektoren auch weiterhin m”glich ist. Als Befehle wurden eingefhrt: ED FC xx USER &BCxx (nur gltig fr einige RAM-Vektoren) Entspricht einem Call-Befehl zu einer internen Funktion, wobei fr xx folgende Werte gltig sind: 65 : CASSETTE INIT (BC65) 77 : CASSETTE IN OPEN (BC77) 7A : CASSETTE IN CLOSE 7D : CASSETTE IN ABANDON 80 : CASSETTE IN CHAR 83 : CASSETTE IN DIRECT 86 : CASSETTE RETURN 89 : CASSETTE TEST EOF 8C : CASSETTE OUT OPEN 8F : CASSETTE OUT CLOSE 92 : CASSETTE OUT ABANDON 95 : CASSETTE OUT CHAR 98 : CASSETTE OUT DIRECT 9B : CASSETTE CATALOG Zus„tzlich gibt es noch den User-Break-Befehl ED FC FC USER &BCFC , der die Emulation sofort anh„lt. 7.5.2 Modifikationen am AMSDOS-ROM ----------------------------------- - Durch 'AMSDOS_DISABLE=1' verbieten Sie die Initialisierung des AMSDOS. Dann werden die Kassetten-kompatiblen Befehle nicht von AMSDOS gepatched. (Es werden also weiterhin die TAPE-Vektoren verwendet.) Das ist n”tig, wenn ein Programm zwischendurch das AMSDOS- ROM initialisiert, aber ohne |TAPE-Befehl von Kassette weiterladen soll. (Realisiert durch 'POKE &CCF2,&18: POKE &CCF3,&05' im AMSDOS-ROM.) Die Sektorbefehle bleiben unbeeinfluát, sie gehen immer auf Diskette. - 'AMSDOS_SPEEDUP=1' fhrt eine AMSDOS-ROM-Modifikation durch, bei der die Motor-Wartezeiten minimiert werden, um einen schnelleren Disk-Zugriff zu erm”glichen. (Die Sachen werden ja von DOS gesteuert, somit brauchen wir die Warteschleifen nicht.) (Folgende Speicherstellen im AMSDOS-ROM werden ver„ndert: POKE &C5D4,&01 :'Zeit fr Motor-Hochlauf POKE &C5D8,&01 :'Zeit bei Spur-Formatieren POKE &C5D9,&01 :'krzer warten POKE &C5DA,&01 :'krzer warten POKE &C602,&01 :'nur 1 Versuch bei Fehler POKE &C784,&01 :'schnelles Spur suchen POKE &C7E2,&01 :'schnelles Spur suchen ) 7.6 Verschiedenes ================== 7.6.1 Noch einmal: Die Konfigurationsdatei -------------------------------------------- Wie Sie vielleicht noch wissen, werden Kommentare durch ein Semikolon ';' eingeleitet, der Rest der Zeile wird dann ignoriert. Blanks, Tabs, Newlines, ';' dienen als Trennsymbole und k”nnen beliebig zwischen Schlsselw”rtern und Werten eingesetzt werden. Die meisten Definitionen besitzen die syntaktische Form '=' {T} Dabei ist {T} eine Folge von mindestens einem Trennsymbol. Beispiel: ROM_PATH = ".\ROM" Eine kann dezimal, hexadezimal (0x) oder bin„r (%) angegeben werden. darf bis zu 80 Zeichen, darf bis zu 20 Zeichen lang sein. Hier noch einige Erg„nzungen zu ausgew„hlten Schlsselw”rtern: BREAK_MASK = (3) Nur fr Debugging-Zwecke. Einige Ereignisse unterbrechen die normale Emulation. Mit dieser Maske verbieten Sie solche Ereignisse. Nicht unberlegt ver„ndern! Lassen Sie alle Bits gesetzt, bis auf diejenigen, deren Ereignisse Sie verbieten wollen. b2 = 0 -> verbietet Anzeigen von Port-Fehlern (mit 3) Die Bedeutung der Bits kann sich in Zukunft „ndern! 7.6.2 Der parallele Adapter ---------------------------- Zuerst einmal der Aufbau des Adapters, jetzt mit Funktionsweise: PC D-SUB Cent. CPC Funktion -------------------------------- --------------------------- GND 19 ---- 19 GND GND BUSY 11 <--- 1 -STROBE Synchro (Daten verfgbar) -ACK 10 <--- 8 D6 | PE 12 <--- 7 D5 | Daten SELECT 13 <--- 6 D4 | -ERROR 15 <--- 5 D3 | D0 2 ---> 11 BUSY Synchro (empfangsbereit) Richtung CPC->PC ---------------- Fr diese Richtung ist der Adapter normalerweise gedacht. Im Prinzip funktioniert das Senden auf dem CPC genauso, wie das Ausdrucken auf einen Drucker. Wenn der PC Nicht-BUSY anlegt, legt der CPC ein Nibble (Teil eines Bytes auf 4 Bits) auf den Port, setzt STROBE als Zeichen, daá etwas da ist und l”scht es danach wieder. Der PC braucht also nur BUSY zu l”schen (mittels D0), auf STROBE zu warten (ber BUSY) dann das Nibble bernehmen (ber die Einabeleitungen Drucker->PC) und BUSY zu setzen. Frage: Warum kann man denn nicht 8 Bits auf einmal bertragen? Antwort: 1. Der PC-Druckerport máte auf Eingabe programmiert werden, das geht nicht mit jedem und 2. Der CPC hat nur einen 7-Bit Druckerport Richtung PC->CPC ---------------- Ich habe mir gedacht, daá es auch m”glich sein máte, Daten in die andere Richtung zu verschicken. Leider hat der CPC am Druckerport nur ein einziges Eingangssignal, n„mlich das BUSY-Signal. Es wrde also nichts bringen, einen besseren Adapter fr diese Richtung bauen zu wollen. Also kann man auch gleich den Adapter nehmen, den man schon hat, und ein geschicktes Protokoll entwickeln. Immerhin funktioniert eine serielle Schnittstelle auch nur mit einer Datenleitung fr jede Richtung. Doch: Bei seriellen Schnittstellen wird die Synchronisation normalerweise mit einem Quarz erreicht. Es muá auf beiden Seiten exakt dieselbe šbertragungsrate eingestellt sein (z.B. 1200 Baud). Softwarem„áig ist das schlecht zu realisieren. Was tun? Die Idee ist, den Geschwindigkeitsvorteil des PC gegenber dem CPC auszunutzen. Jedes Byte wird in 8 Bit zerlegt und seriell bertragen, indem der PC den Zustand der BUSY-Leitung richtig setzt. W„hrend dieser 8 Bit gibt der CPC die Geschwindigkeit vor und der PC muá sich danach richten. Der CPC schreibt die Bit-Anforderung mit einem Assembler-Befehl. Der PC muá jetzt schnell reagieren, und die BUSY-Leitung entsprechend des n„chsten Bits setzen, denn schon mit dem bern„chsten Assembler-Befehl wird der CPC dieses lesen wollen. Damit nicht immer die Interrupts ausgeschaltet bleiben mssen, erfolgt zuvor fr jedes Byte ein "Verbindungsaufbau". Der CPC sagt "Schick mir mal was rber!" und der PC antwortet "Na gut, ich warte jetzt, bis Du was haben willst.", indem er das BUSY-Signal wechselt. Die ganze Geschichte ist durch Timer abgesichert, damit kein Computer h„ngt, weil er auf irgendein Signal wartet, was dummerweise nicht kommt. Sie k”nnen die Programme also immer durch ESC bzw CTRL-BREAK abbrechen. 7.6.3 CPCTRANS --------------- Eine noch nicht erw„hnte Option ist "/d 0" und "/d 1". Bei 1 wird der Double-Step Modus gesetzt, d.h. 80-Spur-Laufwerke springen immer 2 Spuren weiter, wenn sie 40-Spur Disketten bearbeiten. Die Option sollte unn”tig sein, da CPCTRANS bei 5.25" 360KB Formaten auf 80 Spur-Laufwerken automatisch Double-Step einschaltet. Normalerweise ist es ganz einfach, mit dem BIOS Sektoren zu lesen und zu schreiben. Leider ist das BIOS aber nicht in der Lage, B-Seiten von Disketten mit Kopfseite=0 zu verarbeiten. Deshalb muáte ich die FDC-Routinen selber programmieren, wobei der Floppy-Teil des MINIX-Source-Codes als Vorlage diente. Leider enth„lt der MINIX-Code einige Fehler, und das Timing wurde an den kritischen Stellen durch simple Warteschleifen realisiert, die vermutlich fr einen 8086 Prozessor ausreichten. 7.7 Aufbau einiger CPCEMU-Dateien ================================== 7.7.1 Disketten-Abbilder ------------------------- Disketten-Abbilder bestehen aus einem 0x100-Byte langen Disketten-Informationsblock und fr jede Spur aus einem 0x100-Byte langen Spur-Informationsblock, an den sich die Daten der Spur (zu jedem Sektor) anschlieáen. Das neue erweiterte Disketten-Format ist haupts„chlich fr kopiergeschtzte Disketten gedacht. Žnderungen fr das erweiterten Format habe ich mit *E* gekennzeichnet (aus unserem "Extended DISK Format Proposal, Rev.5"). Der Disketten-Informationsblock ------------------------------- Byte (Hex): Bedeutung: 00 - 21 "MV - CPCEMU Disk-File\r\nDisk-Info\r\n" (als Kennung nur "MV - CPC" erforderlich) *E* "EXTENDED CPC DSK File\r\n\Disk-Info\r\n" *E* (als Kennung nur "EXTENDED" erforderlich) 22 - 2F unbenutzt (0) *E* DSK-Ersteller (Name des Utilities) (keine abschlieáende \0 !) 30 Anzahl Spuren (40, 42, vielleicht 80) 31 Anzahl K”pfe (1 oder 2) 32 - 33 Spurgr”áe (einschlieálich 0x100-Bytes Spur-Info) Bei 9 Sektoren * 0x200 Bytes + 0x100 Byte Spur-Info also 0x1300. *E* unbenutzt (0) 34 - FF unbenutzt (0) *E* High-Bytes der Spurgr”áen fr alle Spuren (genauso berechnet wie 32-33 beim normalen Format). Fr einseitige Formate enth„lt die Spurtabelle nur die Spurgr”áen einer Seite, ansonsten alternierend fr zwei Seiten. Spurgr”áe=0 bedeutet, der Track ist unformatiert. Spurgr”áe wird berechnet aus Tabelleneintrag * 256. Beachten Sie, daá die 256-Bytes der SPur-Info mit eingeschlossen sind. Der Spur-Informationsblock (fr jede Spur) ------------------------------------------ Byte (Hex): Bedeutung: 00 - 0C Track-Info\r\n 0D - 0F unbenutzt (0) 10 Spur-Nummer (0 bis Spuranzahl-1) 11 Kopf-Nummer (0) 12 - 13 unbenutzt (0) Format-Spur-Parameter: 14 BPS (Bytes pro Sektor) (2 fr 0x200 Bytes) 15 SPT (Sektoren pro Spur) (9, max. 18 m”glich) 16 GAP#3 Format (Lcke beim Formatieren: 0x4E) 17 Filling-Byte (Fllbyte beim Formatieren: 0xE5) Sektor-Information (jeweils fr jeden Sektoren): 18+i Spurnummer \ 19+i Kopfnummer | Sektor-ID-Informationen 1A+i Sektornummer | 1B+i BPS / 1C+i Status 1 Fehlercode (0) 1D+i Status 2 Fehlercode (0) 1E+i,1F+i unbenutzt (0) *E* Sektorl„nge in Bytes (Little-Endian-Notation). Dies erm”glicht verschieden groáe Sektoren auf einer Spur. Die L„nge wird berechnet aus (0x0080 << wirkliche_BPS). Anmerkungen: In der Reihenfolge der Sektor-ID's mssen nach der Spur-Info die Sektordaten kommen. Es drfen keine Spuren, Sektoren ausgelassen werden. Bei doppelseitigen Formaten alternieren die Spuren, z.B. Spur 0 Kopf 0, Spur 0 Kopf 1, Spur 1 ... CPCTRANS dient zum Kopieren von CPC-Disketten in dieses Format. 7.7.2 Snapshot-Dateien ----------------------- Snapshot-Dateien bestehen aus einem 0x100-Byte Header mit angeh„ngtem Speicherauszug. Der Snapshot Header: Byte (Hex): Bedeutung: 00 - 07 'MV - SNA' (als Kennung) 08 - 0F unbenutzt (0) 10 Snapshot Version (2, frher 1) 11 - 1A Z80-Register AF, BC, DE, HL, R, I 1B - 1C Z80-Flags IFF0, IFF1 (0=disabled, 1=enabled) 1D - 24 Z80-Register IX, IY, SP, PC 25 Z80 Interrupt Modus IMD (0 - 2) 26 - 2D Z80-Register AF', BC', DE', HL' 2E Gate Array: Ink-Nummer-Register 2F - 3F Gate Array: Ink-Wert-Register (0, 1, ..., 15, 16) 40 Gate Array: Multi-Konfigurations-Register 41 Gate Array: RAM-Konfigurations-Register 42 CRTC: Adreá-Register 43 - 54 CRTC: Daten-Register (0, 1, ..., 17) 55 Upper ROM Nummer 56 - 59 PIO: Port A, Port B, Port C, Port CTRL 5A PSG: Adreá-Register 5B - 6A PSG: Daten-Register (0, 1, ..., 15) 6B - 6C Speicherauszug-Gr”áe (64K oder 128K) (die folgenden Parameter existieren erst ab Version 2.0 :) 6D CPC Typ, auf dem der Speicherauszug generiert wurde (0=CPC 464, 1=CPC 664, 2=CPC 6128, 3 = unbekannt) 6E Interrupt-Nummer (0..5), der zuletzt aufgetretene Interrupt w„hrend eines Bildaufbauzyklus. 6F - 74 6 Multi-Modes, d.h. Bildschirmmodi (0..2) w„hrend der Interrupts 0..5. 75 - FF unbenutzt (0), evtl. sp„ter fr Emulator-Konfiguration 7.7.3 AMSDOS-Header -------------------- Byte (Hex): Bedeutung: 00 User (0 , m”gliche Werte 0-15) 01 - 0F Dateiname+Endung (evtl. mit Nullen aufgefllt) 10 Blocknummer (0) 11 Letzter-Block-Flag (0) 12 Datei-Typ (0=BASIC, 1=geschtztes BASIC, 2=Bin„r,...) 13 - 14 Blockl„nge (0) 15 - 16 Ladeadresse (0-FFFF) 17 Erster-Block-Flag (0) 18 - 19 Logische L„nge (0-FFFF) 1A - 1B Einsprungadresse (0-FFFF) 1C - 3F Frei fr den Benutzer (0) 40 - 42 wirkliche Dateil„nge (1-FFFFFF) 43 - 44 Prfsumme ber Bytes 00-42 45 - 7F unbenutzt (zuf„llige Werte aus dem Sektorpuffer) Anmerkungen: Der Header wird jeder nicht-ASCII-Datei vorangestellt. Er wird anhand der Prfsumme erkannt. Bytes 00 - 3F stammen aus der "Kassettenzeit", in der Dateien in Bl”cke aufgeteilt wurden. Unbedingt notwendig sind die Bytes 12, 15-16, 1A-1B, 40-42, 43-44 . 7.7.4 Poke-Datenbank: ---------------------- Ein Eintrag (ein Poke, eine Zeile) besteht aus 7 Teilen, jeder Teil in Anfhrungsstrichen eingeschlossen und mittels Komma abgetrennt. 1. Folgenummer (1 Zeichen 0-F): Der erste Eintrag besitzt die Nummer 0 und kann ausgew„hlt werden. Falls ein Programm mehrere Pokes gleichzeitig ben”tigt, mssen die Folgeeintr„ge mit 1,2,... numeriert werden. 2. Programmname (bis 20 Zeichen) 3. Beschreibung (bis 20 Zeichen) 4. Typ (1 Zeichen): Fr was fr eine Programmversion der Poke ist ('t'=Tape, 'd'=disk, 'a'=all), wird im Moment noch ignoriert. 5. Adresse des Pokes (4 Zeichen, hexadezimal): Die Speicherstelle, die ge„ndert werden soll. 6. Byte fr den Poke (2 Zeichen, hexadezimal oder '??'): Bei '??' soll der Benutzer einen Wert eingeben, z.B. gewnschte Anzahl der Leben. 7. Altes Byte (2 Zeichen, hexadezimal oder '??'): Dies erm”glicht festzustellen, ob der Poke korrekt eingesetzt werden kann. Falls das Byte an der Adresse damit nicht bereinstimmt, wird eine Warnung ausgegeben. Bei '??' findet keine šberprfung statt. Beispiel: "0","Devils Crown","inf oxygen","t","863b","00","??" "1","","","t","863c","00","??" "2","","","t","863d","00","??" Der "unendliche-Sauerstoff"-Poke fr das Programm "Devils Crown" besteht aus drei Teilen. Alte Werte sind nicht bekannt, deshalb ist altes Byte='??'. Name und Beschreibung brauchen in Folgeeintr„gen nicht wiederholt zu werden. 7.8 Interne History ==================== Z80EMU (nur ein Z80 mit kaum CPC) --------------------------------- - v1.0 (1991) erste Version in Pascal (nur eine Z80-Emulation) - v1.2 (12.8.1992 - 16.8.1992) erste Version in C (mit TPTC umgewandelt). Z80-Probleme: P-Flag bei ADD HL..., DAA, ldir; Z-Flag bei BIT... Z,S-Flags bei Rotate; ROMs m”glich - v1.3 (18.8.1992) Port-Adressierung im Lo-Byte war falsch. Neues Speichermanagement (128 KB RAM, 32 KB ROM) - v2.0 (18.8.1992 - 22.8.1992) Implementierung der COCPU-Technik, um Fehler zu finden (mit separatem Speicher fr die COCPU). Z80-Probleme: H-Flag gesetzt nach AND... ; CPI... setzt N-Flag. Bildschirmfarben Farben Blau und Gelb (vorher schwarzweiá) - v2.1 (25.8.1992 - 27.8.1992) Alle Pens, Farben des CPCs in allen Modi; nur auf den sichtbaren Bildschirm wird geschrieben. COCPU-Fehler: Alle (ix+zz) mit negativer Distanz waren falsch! Vergessen, "signed char" zu nehmen. - v2.2 (30.8.1992 - 3.9.1992) Neue Keyboard-Routine, Farb„nderung ohne Flackern (Warten auf HSYNC). Einfhrung eines "Not-ROM" mit COPYMATE. - v2.3 (15.9.1992 - 19.9.1992) FDC-Emulation zum Laden von Sektoren. COCPU-Fehler: LD XH... war LD H... - v2.3b (19.9.1992) Screen-Update nur auf Bl”cken 0..3 (nicht 4..7); Port FCxx gleich wie FBxx (fr CP/M Plus). Da wuáte ich noch nicht, daá OUTI... das B-Register pre-dekrementiert. - v2.4 test (25.10.1992) Nur R-Register-Emulation, falls gewnscht (per "DEFINE"); Screen-Update jetzt jeden n-ten Interrupt und nicht fr jedes Byte einzeln, was in den Speicher geschrieben wird. (Noch sehr langsam, da in C). Neue Speicherverwaltung mit Bl”cken nur ab Segmentstart. - v2.5 test (31.10.1992) Ge„nderte Speicherzuweisung. Endlich Hardware-Scrolling und verschiedene Bildschirmgr”áen m”glich. - v2.6 test (5.11.1992) Neue Keyboard-Routine von Arnt Gulbrandsen, endlich alle Tasten erreichbar; Screen-Update in Assembler. - v2.7 test Versucht, die schnelle Emulation von Jrgen Weber einzubinden, klappt noch nicht. - v2.8 Verbesserter Screen-Update: Nur Bereiche, die sich ver„ndert haben, werden auf den Bildschirm gebracht. - v2.9 Timer-Handler mit 300 Interrupts. Fast-Emulation l„uft, wenn kein ROM (Banking) ben”tigt wird. CPCEMU (endlich ein CPC) ------------------------ - v0.2 (23.12.1992), Nachfolger von Z80EMU v2.9 Nach nahezu 4 Stunden mit dem Turbo-Debugger endlich den Grund gefunden, warum sich die fast-Emulation aufh„ngte: ES anstatt DS gepushed. - v0.3 (28.12.1992 - 29.12.1992) N-Flag bei INI,OUTI setzen. CPI im fast-Z80 setzte falsche Flags. RL(HL) benutzte Read-Segment(DS) anstatt Write-Segment(ES). LD A,R produziert jetzt Zufallszahlen; Alle Kassettenroutinen bis auf CASSETTE IN CHAR. - v0.4 (1.1.1993) IN A,(n): A nach b8..b15 (anstatt B); RAM-Konfiguration 0xc3: 0,3,2,7 (fr CP/M Plus). KC-Compact (ein CPC-Kompatibler aus der ehem.DDR) benutzt Port EE00 - EE3D, nur wofr? - v0.5 (28.1.1993 - 8.2.1993) INIR,... R-Register-Erh”hung abh„ngig von B, nicht von BC. Endlich CASSETTE IN CHAR (falscher Patch beim CPC 6128 eingetragen). - v0.6 (23.3.1993 - 24.5.1993) Ein Amerikaner hat Jrgen darauf aufmerksam gemacht, daá die OUTI- Befehle das B-Register pre-dekrementieren! C-Teile jetzt auch im 386er-Code (mit Borland C++ v3.1) Disetten-Abbilder jetzt mit Endung ".DSK". CPCREAD.PAS korrigiert (vergessen, Kopfseite mit 0 zu initialisieren) und in CPCREAD.C umgewandelt. PIO-8255-PORT-Adressierung flexibilisiert (kann auch lesen, wenn Port auf Ausgabe geschaltet ist...) - v0.7 (26.7.1993 - 29.8.1993) (inoffiziell) Source v”llig berarbeitet, modularisiert. Konfigurationsdatei eingefhrt, jetzt mehrere ROMs m”glich. Žnderung des Firmennamens von Schneider auf Amstrad. (K”nnen Sie jetzt selber einstellen.) Fehler im RAM-Banking beseitigt. Neue Dokumentation in Deutsch. - v0.8 (30.8.1993 - 9.9.1993) Slow-Emulation: Parity-Befehle durch Tabelle nicht nur fr die Parit„t beschleunigt. Z80: ED xx mit illegalem xx wird ignoriert. Neue Dokumentation jetzt auch in Englisch. - v0.8a (10.9.1993 - 15.9.1993) Fataler Fehler in der Fast-Emulation: Wenn ein DD CB xx - Befehl ausgefhrt wurde und gerade ein Interrupt auftrat, wurde der Befehl ignoriert! - v0.8b (16.9.1993 - 21.9.1993) "real"-VSYNC eingebaut, falls "VSYNC_CT" = 0. PIO Port A Problem korrigiert: OUT &F400,xx mit Port A im Eingabemodus wurde ignoriert. Neue Joystickroutine von Martin Zacho. - v0.8c (22.9.1993 - 13.12.1993) Dokumentation mit "ispell" berprft. Emulation startete nicht, falls "USE_JOYSTICK=1" und kein Joystick angeschlossen war (PUSH AX an falscher Stelle). Slow-Emulation: DAA korrigiert (Klammern fehlten seit v0.8). Falscher Patch fr CPC 664 in der Interrupt-Routine. Dieser Patch ersetzte EI durch NOP, um das EI-Problem zu umgehen (Interrupts erst einen Befehl sp„ter erlauben). Jetzt fr alle CPCs. - v0.8d (14.12.1993 - 29.12.1993) FDC-Emulation fr doppelseitige Formate umgeschrieben. CPCTRANS ersetzt altes CPCREAD und erlaubt Lesen von VORTEX-Disketten mit dem Patch 720KB.COM. Auáerdem k”nnen Disketten-Abbilder jetzt auf Diskette zurckgeschrieben werden. Neues Datei-Auswahl bei F3; einige Port- Adressen Aliases eingefhrt, z.B. &7000 - &7f00, um das Gate Array anzusprechen, &0c00,&1c00,&2c00,&3c00,&bc00 fr den CRTC. R-Register Emulation eingeschaltet. - v0.9 alpha (30.12.1993 - 20.1.1994) EMS Speichernutzung m”glich durch spezielle EMS/UMB-Konfiguration. Konfigurationsdatei um Bin„rzahlen erweitert. RAM-Banking Adressierung korrigiert: Der Emulator akzeptierte &d0-&ff als &c0-&c7. Jetzt bis zu 576 KB RAM mit EMS. - v0.9b (21.1.1994 - 31.1.1994) EMS-Benutzung vereinfacht durch erweitertes EMS (oder LIM EMS 4.0) mit mehr als 4 physikalischen EMS Seiten. Dateiauswahl jetzt auch bei 'l' (Debug Men), RUN" . - v0.9c (1.2.1994 - 29.4.1994) Biáchen schrecklicher PC-Lautsprecher Sound (Ausschalten mit F4). Dateiauswahl auch bei 'v'; korrigierte englische Dokumentation; Soundblaster-Sound (noch verbesserungswrdig); neues CPCTRANS mit Kommandozeilen-Parameter und direktem FDC-Zugriff; paralleler Adapter getestet und die Software verbessert. Fast-Z80: inc/dec (hl), (ix+n) fr RAM unter ROM korrigiert. Jetzt mit Bild hoch/runter bergroáe Bildschirme verschieben; Teil von Overscan-Bildschirmen wird angezeigt. Jetzt m”glich: 64K-'Snapshots'. - v0.9d (30.4.1994 - 12.5.1994) Interrupts w„hrend DI werden nicht mehr vergessen, und sie werden nicht mehr direkt nach einem EI-Befehl erlaubt. Neue Farb-Funktionen: ohne Schnee unter OS/2. Fast-Z80: beschleunigtes Code-Holen. - v1.0 (13.5.1994 - 20.5.1994) Verbesserter Screen-Part: Jetzt auch andere Zeichengr”áen von 1 bis 8 m”glich. Dateiauswahl auch bei SAVE" , Schnellauswahl durch Drcken von Anfangsbuchstaben. Verbessertes CPCTRANS mit Verify-Option. Neues Setup-Men, wenn Sie F7 drcken. Darin k”nnen Sie z.B. Farbflimmern unterdrcken. - v1.0a (21.5.1994 - 9.6.1994) Setup-Men verbessert: jetzt neben den Cursor-Tasten auch direkte Eingaben m”glich. Nahezu deutsche Tastenbelegung, einfache Verz”gerungsoption (delay). Kein "Mll" mehr bei verkleinertem Bildschirm (d.h. die Teile vom gr”áeren Bildschirm werden korrekt gel”scht). Fast-Z80-Teil verbessert: schnellere RRA,RLA, ..., schnellere CP xx Befehle. Weitere illegale Befehle eingefgt (ED xx). Auáerdem fehlten die undokumentierten Befehle LD D,XH und LD YL,YH (im CoZ80-Modus aufgefallen)! CPDR,CPIR mit BC=0 korrigert (0 heiát n„mlich auf einem Z80 65536, aber es ist 0 bei dem 80x86-REPE-Pr„fix!). DAA-Flags korrigiert. Neue Software fr den parallelen Adapter: Jetzt auch Senden zum CPC m”glich. Dank an Bernd Schmidt, der anmerkte, daá ein Interrupt das R-Register um 1 erh”ht. Auáerdem konnte mit seiner Hilfe die Emulation des PIO-Port-C Registers verbessert werden. - v1.1a (10.6.1994 - 16.8.1994) Eine neue Žra von CPCEMU hat begonnen: Amstrad hat die ROMs freigegeben! Ein guter Anlaá, die Dokumentation umzuschreiben... Žnderungen an der Konfigurationsdatei: ROM_BLOCKS -> ROM_BLOCK, DISC_BYPASS -> DISABLE_ADOS, keine Leerzeichen mehr vor und nach '=' n”tig. Žnderungen am Sound-Teil, Grafik-Teil: vertikale Gr”áe durch VGA-CRTC. Joystick-Kalibrierung jetzt im Setup-Men, TAPE-Routinen beim Speichern verbessert. FDC-Teil verbessert: jetzt l„uft auch COPYMATE. Wechseln von Nicht-DATA-Disketten ohne "Read Error" m”glich (es wurde immer Spur 0 gesucht). Eine weitere Verz”gerung in CPCTRANS, ich hoffe, Sie mssen jetzt nicht mehr die Turbo-Taste bet„tigen; Formatieren von Disketten- Abbildern. Nochmal PIO-Port-C korrigiert: er wird nach OUT &F700,n gel”scht. Gr”áere Žnderungen an der Konfigurations-Datei: Jetzt mit bedingter Konfiguration (#IFCPC, #ENDIF). Einige Schlsselw”rter ver„ndert (VSYNC_CT -> /, DISC_PATH -> /, SNAP_PATH -> SNAPSHOT, DRV_A -> DRIVE_A, DRV_B -> DRIVE_B). Laden von Programmen aus ZIP-Archiven. Sie brauchen PKUNZIP dazu. - v1.1b (17.8.1994 - 2.9.1994) Multi-Modes eingefhrt, d.h. verschiedene Bildschirmmodi gleichzeitig. Dazu wird der Bildschirmaufbau in bis zu 6 Teile zerlegt, es erfolgt also eine teilweise Auffrischung bei jedem Interrupt. Klappt noch nicht immer. Jetzt m”glich: 128K Snapshots, zus„tzlich fr Multi-Modes erweitert. CPCPARA verbessert: jetzt k”nnen Sie Bin„rdateien mit Header kopieren. Vollkommen neugeschriebene, hoffentlich besser verst„ndliche Dokumentation. Erkennung des CPC 6128 Plus eingebaut. Noch mehr Port-Aliases eingebaut. - v1.2 (3.9.1994 - ) Diese Version wurde ver”ffentlicht. Es wurden haupts„chlich ein paar Žnderungen an dem Hilfesystem vorgenommen. - v1.2a (27.9.1994 - ) (war verfgbar als UPD12A.ZIP) Datei-Auswahl: Nur die verfgbaren Laufwerke werde angezeigt. Und: Mit dem Treiber ANSI.SYS war der Hintergrund von Texten manchmal schwarz. TMP_PATH: Ein Laufwerk ohne Pfad angeben. DOS-Shell (F7): CPCEMU wird vorher ins XMS, EMS oder auf Festplatte ausgelagert, somit haben Sie viel Speicher im DOS-Shell. (Diese Neuerung wurde vom Public Domain Program SWAP300.ZIP von Marty Del Vecchio bernommen.) Bildschirm-Auffrischung konnte falsch sein, wenn die Bildschirmbreite nicht durch 4 teilbar war. Eine andere CPCEMU-Version fr noch h”here Geschwindigkeit: C2.EXE. Diese Version benutzt eine andere Speicherverwaltung mit zwei 64KB EMS-Fenstern fr Lesen bzw. Schreiben. Aber es funktioniert nur mit EMS. Die ROMs sind auch (c) von Locomotive Software, nicht nur von Amstrad. - v1.2b ( ) Auf Soundblaster Pro Karten wurde kein Stereo-Sound ausgegeben, obwohl es angezeigt wurde. Falls keine Soundblaster-Karte gefunden wurde, gab es berhaupt keinen Sound, bis USE_SB=0 ge„ndert wurde. Schneller-Z80: Einige Wort-Zugriffe in Byte-Zugriffe umge„ndert. Ist zwar ein bischen langsamer, aber der Computer h„ngt sich nicht bei jedem Zugriff an 0xffff auf. Schneller-Z80: Problem bei EI HALT DI korrigiert: Bei einem Interrupt wurde die Adresse von HALT 'gepushed' anstatt der von DI. Englische Dokumentation korrigiert. Verbessertes CPCPARA und PCPARA v1.1: Adapter-Test, wesentlich h”here Geschwindigkeit CPC->PC: Etwa 1600 Bytes pro Sekunde, von Diskette lesend! (486/66), Statistik. Jetzt kannst Du 16KB in 10 Sekunden bertragen! Dank an Klaus Weber, der anmerkte, das es zu langsam war. In PCPARA wurde nach jedem empfangenen Halbbyte mittels DELAY(1) eine Millisekunde gewartet. Dies ist berflssig. - v1.2c (28.2.1995 - ) (war verfgbar als UPD12C.ZIP) CPCEMU umgeschrieben von C in C++. Dies erlaubt Inline-Funktionen und bessere Schnittstellen, um den šberblick behalten zu k”nnen. - v1.2d (16.3.1995 - ) (nur fr Leser der 'mailing list') Schneller-Z80: Interne Žnderungen, die unsichtbar fr den Benutzer bleiben, auáer einer kleinen Geschwindigkeitssteigerung. Alle Variablen werden jetzt im DATA-Segment anstatt im CODE-Segment gehalten. Endlich der unbedingt notwendige Modus fr schnelle Computer eingefhrt: 'Realtime-CPC' (Ausw„hlbar im Setup-Menoder mit REALTIME=1). - v1.3 (16.4.1995 - ) Poke-Datenbank zum einfachen 'Poken', franz”sische Dokumentation, FDC-Format-Befehl (Re-formatieren von Disketten-Abbildern derselben Gr”áe), neues Mensystem mit Mausuntersttzung (MOUSE=1), Disketten-Abbilder mit read-only DOS Attribut einlegen (als read-only), Debug-Men: Suchfunktion ('find') eingebaut. - v1.3a (30.4.1995 - ) (war verfgbar als UPD13A.ZIP) Mit Version v1.3 lief Boulder Dash nicht mehr, obwohl es mit v1.2 noch funktionierte. Der Interrupt Modus 2 des Z80 wurde falsch simuliert (PUSH/POP vergessen). Auch in der langsamen Z80-Emulation funktionierte es wegen eines „hnliche Fehlers nicht. CPCTRANS: Option -f 6 erlaubt. - v1.3b (20.5.1995 - ) (ist verfgbar als UPD13B.ZIP) Einige Benutzer beschwerten sich, daá der Soundblaster-Sound seit Version 1.3 nicht mehr funktionierte. - v1.4 (v1.3c) GUS-Sounduntersttzung von Ulrich Doewich; On-Line-Hilfe in Deutsch, Englisch, Franz”sisch und Spanisch; komplette franz”sische Dokumentation; Untersttzung fr 2 Joysticks; VESA-Videomodes fr hohe Aufl”sungen; Setup-Men und Konfigurationsdatei berarbeitet; Konfigurationen laden und speichern vom Setup-Men aus; verbesserte FDC-Routinen fr Fremdformate; Erweitertes Disketten-Format; Benutzerdefinierte Farben und Tasten; CPCTRANS berarbeitet; neues SNA2GIF (v1.1); Schnelle Z80-Emulation: manchmal wurde nach einem Reset der Bildschirm nicht komplett gel”scht (Problem bei HALT); CPCEMU wurde in C++ und Assembler geschrieben. Zum Kompilieren wurden Borland C 3.1 mit 386er Optimierung und TASM benutzt. Zur Fehlersuche habe ich den Turbo Debugger benutzt. Die Farben wurden mit dem Programm VGAMETER von J. Stephen Shattuck, Jr. ausgew„hlt, indem sie mit denen eines CPCs verglichen wurden, der an einen Scart-Fernseher angeschlossen war. ------------------------------------------------------------------------ (Ab hier drfen Sie wieder gefahrlos weiterlesen.) Anhang ðððððð A.1 Glossar ðððððððððððð Hier werden einige Computer-Fachbegriffe erl„utert. Ich erhebe keinen Anspruch auf Vollst„ndigkeit oder pr„zise Definitionen. Die meisten Begriffe sind im Blickwinkel des CPC erkl„rt. Referenzen habe ich mit "¯" markiert. 386/33 (AT 386/33) Kurzbezeichnung fr einen ¯PC AT mit 80386 Prozessor, der mit 33 MHz getaktet wird. Wegen der "hohen" ¯Taktfrequenz kann man davon ausgehen, daá es sich um einen 386DX mit echtem 32-Bit Datenbus handelt und nicht um die Sparversion 386SX mit einem 16-Bit Datenbus. AMSDOS (Amstrad DOS) Von ¯Amstrad entwickeltes ¯DOS, speziell fr die ¯CPC-Computer. Amstrad Englischer Computerhersteller, der die ¯CPC-Computer entwickelt hat. Archiv Archive sind Sammlungen von ¯Dateien. Auch: Eine Datei, in der mehrere andere Dateien enthalten sind. In ¯ZIP-Archiven werden die einzelnen Dateien vorher komprimiert (gepackt). ASCII (Abkrzung fr: American Standard Code of Information Interchange) Auf einem Computer werden alle Buchstaben, Ziffern und Sonderzeichen intern durch Zahlen repr„sentiert. Die meisten Computer benutzen ASCII, bei dem der Buchstabe 'A' z.B. durch die Zahl 65 repr„sentiert wird. ¯PC und ¯CPC benutzen auch ASCII. Im ¯Locomotive-BASIC l„át sich ein BASIC-Programm durch den Befehl SAVE"",A in ASCII-Form abspeichern. Basis-Adresse Diese mssen Sie bei vielen Programmen im ¯Setup festlegen, wenn Sie eine Soundkarte haben. CPCEMU findet diese Einstellung ber die ¯Umgebungsvariable. BASIC (Abkrzung fr: beginners all purpose symbolic instruction code) Weitverbreitete und sehr einfach zu lernende Programmiersprache fr Heim- und Personalcomputer. Frher wurde zu jedem Computer ein eigenes BASIC ausgeliefert, es gab also viele BASIC-Dialekte. Moderne BASIC-Dialekte wurden durch Elemente strukturierte Programmierung erweitert, so daá nicht mehr unbedingt "Spaghetticode" programmiert werden muá. Auch die ¯CPCs wurden mit einem BASIC ausgeliefert, dem sogenannten Locomotive-BASIC von der gleichnamigen Firma. BASIC-Datei Siehe ¯Datei. Batch-Datei (Stapel-Datei) Eine Batch-Datei enth„lt Befehle, die Sie normalerweise ber die Tastatur eingeben. Rufen Sie eine solche Datei auf, werden die Befehle automatisch ausgefhrt, als h„tten Sie sie der Reihe nach eingegeben. BBS Bildschirmmodus, -modi Bin„rdatei Siehe ¯Datei. BLASTER-Umgebungsvariable Siehe ¯Umgebungsvariable. C64 Ein von der Firma Commodore entwickelter Heimcomputer mit 64KB ¯RAM, der sehr popul„r war. Vor allem durch das riesige Softwareangebot war er lange Zeit der Computer berhaupt. Sp„ter wurde er als Spielcomputer durch den Commodore AMIGA abgel”st, konnte sich aber trotz berholter Technik noch lange behaupten. CPC (Abkrzung fr: Colour Personal Computer) Ein von der Firma ¯Amstrad entwickelter Personalcomputer, den es in mehreren Modellen gab. Lesen Sie noch einmal die Einleitung. CPC-Druckerport Die Centronics-Schnittstelle zum Anschluá eines Druckers an den ¯CPC. Leider haben die Entwickler des CPC hier zu viel gespart und die Schnittstelle nur mit 7 Datenbits ausgerstet. Durch legen einer Drahtbrcke konnte sie aber leicht auf 8 Bit erweitert werden. Dazu wurde der Kassettenport miábraucht, der beim Ausdrucken normalerweise nicht ben”tigt wird. CPC-Firmware-Manual Ein Buch ber den ¯CPC, wo vor allem die Betriebssystem-Einsprnge des ¯CPC erkl„rt werden. CPC-Newsgruppe Eine Newsgruppe speziell fr den ¯CPC. Sie heiát comp.os.amstrad.8bit und existiert seit August 1994. CP/M Plus (Abkrzung fr: control program for microcomputers) Betriebssystem der Firma Digital Research haupts„chlich fr 8-Bit Mikrocomputer. Vor MS-DOS war es recht weit verbreitet. CP/M Plus (CP/M 3.0) war der Nachfolger von CP/M 2.2 und wurde mit dem ¯CPC 6128 ausgeliefert. CTRL/SHIFT/ESC (control/shift/escape) "Dreifingergriff" auf dem ¯CPC, um einen Reset auszul”sen. Er entspricht der Resetkombination CTRL/ALT/Entf. auf einem PC. Manche Programme blockieren jedoch diesen Reset, so daá Sie entweder den Computer ausschalten oder den Resetknopf drcken mssen. Die CPCs hatten keinen Resetknopf, man konnte sich aber leicht einen bauen. In CPCEMU ist die Funktionstaste F8 der Resetknopf. Cursor (deutsch: Blinker) Zeichen auf dem Bildschirm, das die aktuelle Schreibposition anzeigt. Es gibt auch Cursortasten, mit denen man dieses Zeichen steuern kann. D-Sub Eine spezielle Form von Steckverbindern Datei (englisch: file) Sammlung von zusammengeh”rigen Daten. Auf dem ¯CPC gibt es Dateien verschiedenen Typs, z.B. die BASIC-Dateien mit BASIC-Programmen und normalerweise der Endung .BAS, ASCII-Dateien mit beliebigem Text und Bin„rdateien mit beliebigen Bytes und normalerweise der Endung .BIN. Bin„rdateien k”nnen Maschinenprogramme oder andere Daten enthalten. Dk'tronics Englische Firma, die Hardware-Erweiterungen fr den ¯CPC herausgebracht hat, unter anderem auch Speichererweiterungen. DMA (Abkrzung fr: Direct Memory Access) Direkter Zugriff auf den Arbeitsspeicher unter Umgehung des Prozessors. Wird z.B. bei Diskettenlaufwerken eingesetzt, aus Sparsamkeitsgrnden beim ¯CPC aber nicht. Auch die Soundblaster-Karte kann einen DMA-Kanal benutzen, durch den sie die digitalen Sounddaten bekommt. DOS (Abkrzung fr: disk operating system) Diskettenorientiertes Betriebssystem. Z.B. AMSDOS, DRDOS, MS-DOS. Heute wird DOS als Synonym fr MS-DOS verwendet. DOS-Suchpfad Der Pfad durch die Unterverzeichnisse, den ¯DOS benutzt, um eine Datei zu finden. Er wird durch die Umgebungsvariable PATH festgelegt. DRDOS MS-DOS-kompatibles ¯DOS der Firma Digital Research. Email (Abkrzung fr: Electronic Mail) Die Benutzung eines Computers als Briefkasten. EMM (Abkrzung fr: Expanded Memory Manager) Žhnlich wie ¯EMS. EMS (Abkrzung fr: Expanded Memory System) Speichererweiterung fr den ¯PC, um die 640KB-Speichergrenze zu umgehen. Durch Banking werden in einem sogenannten EMS-Speicherfenster andere Speicherseiten eingeblendet. EMS wurde von den 3 Firmen Lotus Intel Microsoft entwickelt, deshalb heiát es auch LIM-EMS. Es gibt Hardware-, emuliertes und simuliertes EMS. Spezielle Speicherkarten stellen Hardware-EMS zur Verfgung. Es wurde haupts„chlich bei PC XT eingesetzt. Emuliertes EMS gibt es auf PC AT mit mindestens 80386 Prozessor, da der Paging-Mechanismus fr das Banking benutzt wird. Diese Form bietet EMM386.EXE und sollte bei CPCEMU eingesetzt werden. Bei simuliertem EMS werden die Speicherseiten kopiert, was fr CPCEMU zu langsam ist. Emulator Das System, welches ein anderes ¯emuliert. Emulieren Nachbildung eines Systems (aus Hard- und/oder Software) durch ein anderes. Das nachbildende System fhrt mit den gleichen Daten die gleichen Funktionen aus und kommt zu den gleichen Ergebnissen. CPCEMU emuliert einen ¯CPC auf einem ¯PC. Formatdefinitionen Definitionen von Disketten-Formaten. FTP (Abkrzung fr: File Transfer Protocol) Ein Protokoll, mit dem man Dateien ber Rechnernetze kopieren kann. Auch das Programm, das dieses Protokoll benutzt, heiát FTP. Hardware Die Teile eines Computers, die "anfaábar" sind, also z.B. angeschlossene Ger„te wie Drucker, Monitor; intern der Prozessor und andere ¯Hardwarebausteine. Hardwarebausteine Bausteine, Chips im Innern des Computers, z.b. Prozessor, Speicherchips, Diskettencontroller, Ein-/Ausgabebausteine, ... Im CPC gibt es neben dem Z80-Prozessor das Gate-Array, den CRTC 6845 zur Bildschirmadressierung, den PIO 8255 zur Ein-/Ausgabe, den Soundchip PSG AY 3-8912, den Diskettencontroller FDC 765, ... Hardware-Scrolling Verschieben des Bildschirminhalts, bei dem nicht der Speicherinhalt vom Prozessor kopiert werden muá, sondern wo ein Hardwarebaustein mithilft, so daá nur der Bildschirmstart ver„ndert werden braucht. Initialisieren Vorbelegen von Speicherzellen mit bestimmten Werten, damit z.B. Variablen einen definierten Inhalt haben. Internet Ein Internet ist ein aus mehreren Teilnetzen bestehendes Rechnernetz. Hier ist *das* Internet gemeint, ein weltweites Netzwerk zur Kommunikation. Interrupt (Unterbrechung) Falls der Prozessor ein Signal mit h”herer Priorit„t bekommt, bricht er das laufende Programm ab und fhrt ein spezielles Interrupt-Programm aus. Nachdem dieses beendet ist, macht er mit dem unterbrochenen Programm weiter. Auf dem PC gibt es verschiedene Interrupt-Signale. diese werden ausgel”st, wenn z.B. eine Taste gedrckt wurde, ein Timer abgelaufen ist, Daten von der seriellen Schnittstelle empfangen werden (z.B. wenn die Maus bewegt wird), die Soundkarte mit dem Abspielen eines digitalen Klanges fertig ist und neue Daten braucht, ... Der Z80 im ¯CPC wird 300 mal pro Sekunde unterbrochen. Interrupt-Nummer IRQ (IRQ=Abkrzung fr: Interrupt Request) Auf dem PC haben verschiedene ¯Interrupts verschiedene Nummern. Der Tastaturinterrupt hat z.B. die Nummer 9, der Timer-Interrupt die Nummer 8. Wenn Sie eine Taste drcken, stellt die Tastatur eine Interrupt-Anforderung (IRQ), damit der Prozessor die Tastennummer abholt. Jumper-Box Eine Adapter-Box zum Stecken beliebiger Verbindungen mittels Drahtbrcken zwischen zwei Anschlssen. Die Drahtbrcken mssen festgel”tet werden. Siehe auch ¯Wiring-Box. Keyboard-Handler Dieses Programm wird aufgerufen, wenn Sie eine Taste drcken und ein ¯Interrupt generiert wurde. Kommandozeilen-Parameter Parameter, die Sie in der Kommandozeile zusammen mit dem Dateinamen angeben. Konfiguration Hier: Ein Programm an seine Bedrfnisse anpassen. Wie im ¯Setup k”nnen Sie dies auch in der Konfigurations-Datei tun. LIM-Standard (Abkrzung fr: Lotus Intel Microsoft) Die von Lotus Intel Microsoft entwickelte Speichererweiterung mit der Abkrzung ¯EMS. Locomotive Englische Firma, die das ¯BASIC der ¯CPCs entwickelt hat. Mailing-List Ein Service von mir, bei dem ich Ihre E-Mail-Adresse in einer Liste aufnehme, so daá ich Sie ber Neuigkeiten informieren kann. Ich verschicke dann die Neuigkeit an alle Teilnehmer, die auf der Liste stehen. Microchannel Spezielle Bus-Architektur. MS-DOS (Abkrzung fr: Microsoft Disk Operating System) Ein Betriebssystem, das von der amerikanischen Firma Microsoft fr 16-Bit-Prozessoren (8086) entwickelt wurde. Es ist das erfolgreichste Betriebssystem fr den PC und wird auch immer noch auf den 32-Bit- Prozessoren 80386 und 80486 eingesetzt. Multi-Modes Programmiertechnik, bei der der Bildschirmmodus w„hrend des Bildaufbaus ge„ndert wird. Auf dem ¯CPC entstehen Zonen, in denen man in manchen Bereichen hohe Aufl”sung mit wenigen Farben und in anderen Bereichen niedrige Aufl”sung mit vielen Farben hat. Multiface II (Abkrzung fr: Multipurpose Interface) Eine Hardwareerweiterung fr den CPC, die es erlaubt, Programme zu jeder Zeit anzuhalten, zu analysieren und abzuspeichern. Es wurde von der englischen Firma Romantic Robot entwickelt. OS (Abkrzung fr: Operating System, deutsch: Betriebssystem) Ein Programm, was man braucht, um einen Computer zu benutzen. Es bietet grundlegende Funktionen fr Anwendungsprogramme. Neue Betriebssysteme erlegigen z.B. so komplizierte Aufgaben wie Scheduling (Rechenzeit-Zuteilung) in Multitasking-Systemen, ... OS/2 DOS-Box Ein Fenster unter dem 32-Bit Betriebssystem OS/2 von IBM, in dem Sie ¯DOS-Programme starten k”nnen. Die sogenannte DOS-Kompatibilit„ts-Box. Overscan Der Rahmen um die beschreibbare Fl„che auf dem Bildschirm. Auf dem PC ist er ziemlich schmal, es l„át sich aber die Randfarbe „ndern, z.B. in CPCEMU durch 'BORDER 10'. Auf dem CPC ist der Rahmen ziemlich breit, so daá man nach M”glichkeiten untersucht hat, auch diesen Rand zu benutzen. Durch einen Programmiertrick ist es m”glich, den gesamten Bildschirm zu beschreiben. Auch diese Programmiertechnik wird meistens mit Overscan bezeichnet. Parameter Variable mit einer festen Bedeutung, die ber den Programmablauf entscheidet. PC (Abkrzung fr: Personal Computer) Computer mit einem Mikroprozessor als Prozessor. Meistens als Synonym fr den IBM-PC mit 8086 oder 8088 Prozessor. PC AT (advanced technology) sind Computer mit 80286, 80386 oder 80486 als Prozessor. PEEKs und POKEs: ¯BASIC-Befehle, um Speicherstellen auszulesen 'PEEK()' oder zu ver„ndern 'POKE ,'. Programme mit vielen PEEKs und POKEs sind kaum zu verstehen, sind aber manchmal notwendig, um die Beschr„nkungen des BASIC zu durchbrechen, besonders wenn das BASIC nicht so umfangreich ist. PKUNZIP Programm der Firma PK-Software zum Entpacken von ¯ZIP-Dateien. RAM (Abkrzung fr: Random Access Memory, also Schreib- ,Lesespeicher) Speicherbaustein. Arbeitsspeicher des Computers. Die CPC-Computer haben 64KB RAM (Kilo-Bytes) oder 128 KB. Durch Hardwareerweiterungen anderer Firmen konnten sie auf bis zu 576 KB RAM erweitert werden. ROM (Abkrzung fr: read-only-memory, deutsch: Nur-Lese-Speicher) Speicherbaustein. Speicher, der vom Prozessor nur gelesen aber nicht ver„ndert werden kann. Nach dem Einschalten eines Computers sofort vorhanden. Die ¯CPC-Computer haben z.B. 16KB ROM fr das ¯OS, 16KB fr das ¯BASIC und 16KB fr das ¯AMSDOS. ROM-Abbild Datei, in denen sich der Inhalt eines ¯ROM befindet. Wenn Sie ein ROM auslesen und in einer Datei abspeichern, dann haben Sie ein ROM-Abbild. RS-232 Serielle ¯Schnittstelle zum Anschluá von Bildschirmen und Druckern an den Computer (RS 232 C). Schneider Deutscher Unterhaltungselektronik-Hersteller, der die CPCs in Deutschland vertrieben hat. Schnittstelle (englisch: Interface) Anschluástelle eines Computers zu einem Ger„t oder eines Programme zu einem anderen Programm. Es gibt also Hard- und Software-Schnittstellen. Die sogenannte Centronics-Schnittstelle ist eine parallele Schnittstelle, bei der die Bytes parallel, d.h. nebeneinander bertragen werden. Bei einer seriellen Schnittstelle mssen die Bytes Bit fr Bit nacheinander bertragen werden. Setup (deutsch "aufsetzen") Darin werden verschiedene Festlegungen gemacht, die den Programmablauf beeinflussen, z.B. Angabe der Soundkarte, ob Sie einen Joystick benutzen wollen, ... SIMTEL Ein groáes Software-Archiv in den USA. Das SimTel-Software Archiv wird von "Coast to Coast Telecommunications, Inc. (CCT)" auf einem ihrer Rechner im Internet als "SimTel.Coast.NET" unterhalten. Dieses Archiv wird regelm„áig zu anderen Orten kopiert (mirrored). Eine Kopie (mirror=engl. Spiegel) befindet sich in der "Oakland University", im Internet als "OAK.Oakland.Edu". Natrlich gibt es auch in Deutschland SimTel-"mirrors", z.B. "ftp.uni-paderborn.de". Snapshots (deutsch: Schnappschuá) Ein Speicherauszug erweitert um Zust„nde der ¯Hardwarebausteine. Er enth„lt eine komplette momentane Zustandsbeschreibung des Computers. Wenn der Snapshot geladen wird, wird der Computer in genau diesen Zustand zurckversetzt und macht dort weiter, wo der Snapshot erstellt wurde. Somit ist es „hnlich einem richtigen Schnappschuá, nur von Innern des Computers. Software Die Programme bei einem Computersystem. Soundblaster Die Soundkarte der Firma Creative Labs. Spectrum Der Sinclair Spectrum ist ein Homecomputer, der von der Firma Sinclair entworfen wurde. Taktfrequenz Takt, mit dem der Prozessor versorgt wird. Er bestimmt wesentlich die Geschwindigkeit des Prozessors. Heutige 486DX2/66 Prozessoren werden z.B. intern mit 66 MHz getaktet. Der Z80A im ¯CPC wird mit 4 MHz getaktet, wovon effektiv 3.3 MHz brigbleiben, weil er immer regelm„áig auf die Bildschirmauffrischung warten muá. Turbo-Pascal Compiler Pascal ist eine h”here Programmiersprache, die strukturiertes Programmieren f”rdert und heute an vielen Schulen eingesetzt wird. Wenn man von Pascal redet, meint man meistens Turbo-Pascal, obwohl dieses nur ein erweitertes Pascal der Firma Borland ist. Der Turbo-Pascal Compiler ist besonders schnell, da er die šbersetzung in Maschinensprache in einem Durchgang erledigt. Utility Ntzliches Hilfsprogramm. VGA (Abkrzung fr: Video Graphics Array) Grafikstandard auf dem PC. Nachfolger von CGA (Colour Graphics Adapter), MCGA (Multi Colour Graphics Adapter) und EGA (Enhanced Graphics Adapter). Wurde zu SVGA (Super-VGA) mit noch h”heren Aufl”sungen erweitert. VGA-BIOS (Abkrzung fr: VGA Basic Input Output Operating System) Das Betriebssystem fr die ¯VGA-Grafikkarte Windows (deutsch: "Fensters"?) Ein Betriebssystem-Aufsatz fr ¯DOS. Wiring-Box (deutsch: Kabelbox) Ein Adapter mit zwei Steckern, zwischen denen mittels Drahtbrcken verschiedene Verbindungen hergestellt werden k”nnen. Im Gegensatz zur Wiring-Box mssen bei einer ¯Jumper-Box die Drahtbrcken festgel”tet werden. Z80 Ein von der Firma Zilog entwickelter 8-Bit Prozessor. Ist ein Ableger von Intels 8080 und war sehr weit verbreitet. Im ¯CPC ist der Z80A eingebaut, der mit einer ¯Taktfrequenz von 4 MHz arbeitet. Z80-Befehle Maschinenbefehle, die der ¯Z80 (-Prozessor) versteht. Eigentlich sind das nur Zahlenfolgen, um sich die Befehle besser merken zu k”nnen, wurden sogenannte Mnemonics eingefhrt, die von einem Assembler in Bin„rcode bersetzt werden. Der Befehl "LD A,B" l„dt z.B. Register A mit dem Inhalt von Register B und wird mit dem Code 0x78 bersetzt. Zahlendarstellung (bei Stellenwertsystemen) Je nach gew„hlter Basis gibt es verschiedene Darstellungen fr eine Zahl. Am bekanntesten ist die dezimale Zahlendarstellung mit der Basis 10 und den Ziffern 0..9. Computer verwenden die bin„re Darstellung (Basis 2) mit den Ziffern 0 und 1. Bei Programmieren beliebt ist die hexadezimale Darstellung zur Basis 16, weil 16 eine Potenz von 2 ist (2 hoch 4). Die Darstellungen lassen sich dann ganz einfach ineinander umrechnen. Auáerdem ben”tigen ein Byte nur 2 Ziffern, wenn man es hexadezimal aufschreibt (0..9,A..F). ZIP Ein spezielles Verfahren zum Komprimieren (Packen) von Dateien. Die ¯Archive haben dann die Endung ZIP. A.2 Literaturverzeichnis ððððððððððððððððððððððððð Unentbehrlich fr jeden CPC-Anf„nger ist das CPC-Benutzerhandbuch: - Spital Ivor und Perry, Roland und Poel, William und Lawson,Cliff: CPC 6128 Benutzerhandbuch, Schneider Computer Division 1985, Originalausgabe (c) 1985 (in meinem Exemplar steht brigens 1895) by AMSOFT, AMSTRAD Consumer Electronics plc and Locomotive Software Ltd. Ein hervorragend kommentiertes ROM-Listing und einleitende Kapitel, die besonders die Softwareseite des CPC bercksichtigen, bietet: - Janneck, J”rn W. und Mossakowski,Till: ROM-Listing CPC 464/664/6128, Markt & Technik Verlag 1986 Lieblos zusammengeschustert und drftig kommentiert dagegen, mit Schwerpunkt Hardware ist: - Brckmann, Englisch, Gertis: CPC 464 Intern mit kommentiertem ROM-Listing, Data Becker 1985 Gut zum C lernen, mit vielen šbungsaufgaben, ist: - Kellay, Al and Pohl, Ira: A Book on C, Second Edition, 1990 by Benjamin/Cummings Publishing Company, Inc. Das C++ Standardwerk: - Stroustrup, Bjarne: Die C++ Programmiersprache, 2. Auflage, Addison-Wesley, 1992 Ein sch”nes C++ Buch: - Eckel, Bruce: C++ Inside & Out, 1993 by Osborne McGraw-Hill Tips, wie man ein verst„ndliches und gutes Handbuch schreibt, bietet: - Boedicker, Dagmar: Handbuch-Knigge, Software Handbcher schreiben und beurteilen. Wissenschaftsverlag 1990 A.3 Index (Stichwortverzeichnis) ððððððððððððððððððððððððððððððððð Die Zahlen hinter den Stichworten geben das Kapitel an, wo das Stichwort erkl„rt wird oder vorkommt. (noch nicht vollst„ndig) #ENDIF 4.2 #IFCPC 4.2 22DISK 5.1.2 Adapter, parallel 5.2 AMSDOS_DI 4.2 AMSDOS_SPDUP 4.2 BLASTER-Umgebung 2.3.2 BREAK_MASK 4.2 COLOUR 4.2 CPC 1.3 CPC-Newsgruppe 6.2 CPCEMU.CFG 4.2 CPCPARA.BAS 5.2 CPCREC.BAS 5.2 CPCTRANS.EXE 5.1.1 Debug-Men 7.3 DELAY 4.2 Diskette 3.2.1 Disketten-Abbilder 3.2.1 DRIVE_A 4.2 DRIVE_B 4.2 EMS_EI 4.2 EMS-Speicher 2.3.1 Funktionstasten 3.1 INT_FREQ 4.2 INT_RESUME 4.2 JOY_CALIBRATE 4.2 Kassette 3.2.2 KBD_LANGUAGE 4.2 Konfigurationsdatei 4.2 Mens 3.2.1 Multi-Mode 4.1 MULTIMODE 4.2 PCPARA.EXE 5.2 PIO_PORT_B 4.2 PRINTER 4.2 RAM_SIZE 4.2 ROM_BLOCK 4.2 ROM_PATH 4.2 SBLASTER 4.2 SB_DELAY 4.2 Setup-Men 4.1 SHOW_CONFIG 4.2 SNAPSHOT 4.2 Snapshot 3.2.3 SOUND 4.2 Soundblaster 2.3.2 TAPE_BYPASS 4.2 TAPE_PATH 4.2 Tastatur 3.1 TMP_PATH 4.2 VSYNC-Bit 4.1 ------------------------------------------------------------------------------ logout ------