
                            
                        
                                      
                                 
                                       
                                               
                                
                                

                                                                      v1.5


                                  D O K U M E N T A T I O N


                                  (c) Marco Vieth, Mai 1998




-------------------------------------------------------------------------------




Inhaltsverzeichnis:

       1.  Einfhrung
           1.1  Hinweise zur Benutzung dieser Dokumentation
           1.2  Copyright, Gewhrleistungen
           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 Mglichkeiten

       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  Plne 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, bentigen Sie CPCEMU nicht.
Hier noch ein paar Grnde:
        - Nostalgie (och, wie schn war doch mein CPC ...)
        - Bessere Performance gegenber dem Original
        - Bessere Entwicklungsumgebung
        - Spielen
        - Arbeiten (ja, ein CPC reicht normalerweise fr Textverarbeitung)
        - [                                  ] <- hier knnen 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, knnen 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 mchten. 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 knnen.

  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 knnen 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 mchten, wie man so einen Emulator programmiert und was
  man dabei beachten mu. Auerdem wird hier das in CPCEMU eingebaute
  Debug-Men erklrt, mit dem Sie *jederzeit* den Prozessor und den Speicher
  analysieren knnen. 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, auerdem in A.2 ein Literaturverzeichnis
  und in A.3 einen Index.



1.2  Copyright, Gewhrleistungen
================================

  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-Hndler 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!

  Gewhrleistung:
  Ich lehne jegliche Gewhrleistung ausdrcklich ab. Schden, 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 mglichst schnell versuche, aufgetretene Fehler zu beseitigen.


  Wenn Sie von dem Programm begeistert sind, knnen 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
  nchsten 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 (nmlich 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 gngigen 5.25" Disketten (etwa wie die heutigen 3.5").
  Auerdem 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 leistungsfhig 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 erklrt, 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 Auflsung von 640x400x16
        bis 1280x1024x16 dargestellt werden, abhngig von Ihrem Monitor
        und Ihrer Grafikkarte.)

  Sound wahlweise ber PC-Lautsprecher, Soundblaster (3 Kanal + Gerusche,
       Stereo), Soundblaster (3 Kanal FM, Stereo)
       oder Gravis UltraSound (3 Kanal + Gerusche, Stereo)

  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 Binrdateien
       mit den Endungen .BAS bzw .BIN .

  Snapshots: Es lassen sich Schnappschsse von laufenden Programmen
       erzeugen, um sie spter wieder fortsetzen zu knnen. Schnappschsse
       haben normalerweise die Endung .SNA .

  Geschwindigkeit: Auf einem 386/33 mit EMS-Speicher ist CPCEMU normalerweise
       schneller als das Original. Durch einen Echtzeit-Modus kann der
       Emulator auf exakte CPC-Geschwindigkeit abgebremst werden.
       Dieser Echtzeit-Modus funktioniert aber erst richtig auf einem
       486DX2/66.




2.  Installation von CPCEMU


In diesem Kapitel erfahren Sie, was Sie fr CPCEMU bentigen, wie Sie
das Programm installieren und starten. Auerdem gebe ich in Abschnitt 2.3
kurz Tips zum Speicher und zur Soundkarte.
Umkonfigurationen werden erst spter 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)
  CPC6128.BAT    dito, nur CPC 6128
  CPC6128.ROM    (ROM)
  CPC6128P.BAT   dito, nur CPC 6128 plus
  CPC664.BAT     dito, nur CPC 664
  CPC664.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   franzsische Dokumentation
  CPCEMU_S.TXT   spanische Dokumentation
  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 (UTILITY)
  CPCTRANS.EXE   Transfer von Disketten-Abbildern (UTILITY)
  CPMDISKS.DEF   Datei mit Formatdefinitionen fr 22DISK (UTILITY)
  DESCRIPT.ION   Beschreibungsdatei fr 4DOS
  FILE_ID.DIZ    Paket-Beschreibung fr BBS (Mailboxen)
  INSTALL.BAT    Installationsdatei
  KCC.BAT        startet einen KC compact
  PCPARA.EXE     Die PC-Seite fr den parallelen Adapter (UTILITY)
  README_D.TXT   deutsches Liesmich
  README_E.TXT   englisches Liesmich
  README_F.TXT   franzsisches 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 bentigen mindestens (nach oben wie immer keine Grenzen)
  - PC AT 386 mit VGA-Grafikkarte
  - MS-DOS, mglichst mit EMS,  oder
    Novell DOS (DRDOS)  oder
    Windows 95 (oder 3.1) DOS-Box  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
  mgen. Beim ersten Start werden Sie nach der gewnschten Sprache gefragt.
  Antworten Sie mit "1" fr Deutsch oder whlen eine andere Sprache.
  (Die Konfiguration wird im TMP-Verzeichnis als CPCEMU.CFG abgelegt.)
  Nach der Konfiguration erscheint der wohlbekannte CPC Erffnungsbildschirm
  mit gelber Schrift auf blauem Grund.
  Mit F12 verlassen Sie den Emulator wieder.
  Mit F1 erreichen Sie die On-Line-Hilfe.
  Am besten probieren Sie das jetzt sofort einmal aus, und lesen anschlieend
  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
  knnen.

  Falls irgendwelche schwerwiegenden Fehler beim Start auftreten, landen
  Sie im sogenannten Debug-Men, welches Sie mit 'q' <RETURN> wieder
  verlassen knnen.
  In solchen Fllen ist es manchmal ntzlich, den Initialisierungsvorgang
  in eine Datei umzuleiten, z.B. durch 'CPCEMU > INIT.TXT'. Dann knnen
  Sie sich spter 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.
  Falls Sie Windows 95 mit Standardeinstellungen benutzen, brauchen Sie
  sich darum keine Gedanken zu machen. Windows 95 bietet fr DOS-Boxen
  automatisch EMS und die BLASTER-Umgebungsvariable bei Soundblaster-Karten.


  2.3.1  Verwenden Sie EMS-Speicher
  ---------------------------------

    Sie sollten auf Ihrem PC mglichst 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 zustzliche 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 hren, 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:
  ------------------------------------

    Um Sound auf Ihrer GUS (Gravis Ultrasound Classic / Max / ACE) zu hren,
    mssen Sie die ULTRASND-Umgebungsvariable entsprechend setzen.
    Ihre AUTOEXEC.BAT Datei sollte die folgende Zeile enthalten:
      SET ULTRASND=220,1,1,11,7

    Mit der Bedeutung (in der entsprechenden Reihenfolge):

        220 ist die Basis-Adresse (0x220)
          1 ist der GUS DMA-Kanal
          1 ist der SoundBlaster DMA-Kanal
         11 ist der GUS IRQ
          7 ist der SoundBlaster IRQ

    Wichtig sind die Basis-Adresse und der GUS IRQ. Alle anderen Werte
    mssen aber auch angegeben werden.




3.  Unterschiede zwischen CPC und CPCEMU


In diesem Kapitel erlutere ich einige Besonderheiten, die CPCEMU vom
Original unterscheiden. Da wre zunchst 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).
  Auerdem 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 : hlt 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 knnen 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 Vollstndigkeit halber sei noch erwhnt:
  - 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  : Farbnderungen erlauben/verbieten.
  F10 : Debug-Men, wird im Kapitel 7 (Interne Informationen zu CPCEMU)
        erlutert. 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 erklrt.
  Im folgenden Abschnitt wird zustzlich erklrt, wie Sie in den Mens
  Optionen ndern und auswhlen.



  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 <RETURN> : Es erscheint der Katalog

    - Durch 'RUN"<Dateiname>"'  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 binren Programme mit der Endung .BIN .

      Hier eine einfache Mglichkeit, ein Programm zu starten:
      1. Tippen Sie den Dateinamen ein, z.B.  'DISC', *nicht* <RETURN>
      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"<Dateiname>" ldt ein Programm, ohne es zu starten.
      BASIC-Programme lassen sich dann mit LIST auflisten und durch RUN
      starten. Binre Programme lassen sich in den meisten Fllen nicht mit
      LOAD laden. Versuchen Sie, vorher einen MEMORY-Befehl anzugeben, z.B.
      'MEMORY &1fff'.

    - SAVE"<Dateiname>" speichert ein BASIC-Programm. Fr Binrdateien sind
      mehrere Parameter ntig, z.B. speichert
      'SAVE"<Dateiname>",b,&c000,&4000' den Bildschirminhalt.

    - MERGE"<Dateiname>" 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,"<Dateimuster>" zum Anzeigen des Inhaltsverzeichnisses.
      Wichtig: Auf einem CPC 464 folgendes eingeben:
           a$="<Dateimuster>" : |DIR,@a$
    - |ERA,"<Dateiname>" zum Lschen einer Datei.
      Wichtig: Auf einem CPC 464 folgendes eingeben:
           a$="<Dateiname>" : |ERA,@a$
    - |REN,"<neuer Name>","<alter Name>" zum Umbenennen einer Datei.
      Wichtig: Auf einem CPC 464 folgendes eingeben:
           a$="<neuer Name>" : b$="<alter Name>" : |REN,@a$,@b$
    - |TAPE  um auf Kassette umzuschalten, wird im nchsten Abschnitt
      erlutert.
    - |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, nmlich diejenige,
    die schon die ganze Zeit im Laufwerk "liegt". Um eine andere
    Diskette einzulegen, drcken Sie F3. Es erscheint das Men

                     Diskette einlegen
                     Laufwerks-Nummer   0
                     Disketten-Seite    0
                     Schreibschutz      0
                     Autostart          1

    Mit den Cursortasten <hoch/runter> whlen Sie eine Zeile aus. Sie
    knnen dazu auch direkt Buchstaben eingeben (zurck mit <DEL>).
    ndern Sie Zahlen durch <Cursor links/rechts> oder durch Direkteingabe.
    <RETURN> in einer beliebigen Zeile (z.B. in der ersten)
    bernimmt die nderungen, durch <ESC> wrden sie verworfen.
    "Laufwerks-Nummer" ist das gewnschte Laufwerk (0=A, 1=B);
    "disketten-Seite" ist ein Seitenauswahl-Schalter fr doppelseitige
    Formate, bei einseitigen Formaten hat er keine Auswirkung.
    Mit "Schreibschutz" versehen Sie die Diskette mit einem Schreibschutz
    (0=Nein, 1=Ja, mit Schreibschutz).
    Falls "Autostart" aktiv ist, wird das erste BASIC-Programm auf der
    Diskette nach dem Einlegen automatisch gestartet (alternativ DISC.BAS).



    Das Datei-Auswahl-Men
    ----------------------

    Drcken Sie <RETURN>, dann erscheint ein Disketten-Inhaltsverzeichnis.
    Whlen 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 hchstens 15 Dateinamen auf einmal angezeigt, bei mehr
    Dateinamen steht unten "[]".
    - <POS1> geht zum ersten Dateinamen, <ENDE> zum letzten
    - <Bild hoch/runter> blttert seitenweise durch die Dateinamen
    - <RETURN> bernimmt den angewhlten Dateinamen, <ESC> bricht ab.
    Auch hier whlen Sie die Namen direkt an, wenn Sie Anfangsbuchstaben
    drcken.

    Falls Sie die Maussteuerung bevorzugen, bedeutet "[]" <Bild hoch>,
    "[]" <Bild runter>, "[<]" <Cursor links>, "[>]" <Cursor rechts> und
    [ok] ist <Return>. "[]" ist <ESC>.
    Um eine Zeile zu markieren, benutzen Sie die rechte Maustaste.

    ".." ist das Eltern-Verzeichnis; [A], [B], ... sind die verfgbaren
    Laufwerke. Bitte whlen Sie nur Diskettenlaufwerke, wenn auch eine
    Diskette darin liegt, ansonsten kann es zu Komplikationen kommen.

    Es ist auch mglich, Disketten aus ZIP-Archiven einzulegen. Dazu whlen
    Sie ein ZIP-Archiv mit <RETURN>, worauf das Inhaltsverzeichnis wie ein
    normales Verzeichnis angezeigt wird. Whlen Sie dann eine Datei aus
    einem ZIP-Verzeichnis, wird sie automatisch in eine temporre Datei
    entpackt. Dazu bentigen Sie das Programm PKUNZIP im CPCEMU-Verzeichnis
    oder im DOS-Suchpfad. Die temporren Dateien werden automatisch gelscht,
    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 anschlieend 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 knnen 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"" knnen Sie entweder eine bestehende Datei berschreiben oder
    in der letzten Zeile bei "(new name)" einen neuen Namen eingeben.

    Natrlich knnen Sie auch hier Programme aus ZIP-Archiven laden,
    das Speichern wird ignoriert.

    So eine schne 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 Zustnde der anderen
    Hardwarebausteine festgehalten werden, z.B. von der CPU.
    Zu jeder Zeit knnen Sie das laufende Programm als Snapshot abspeichern
    und spter 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
    zustzlichen Kommentaren zur Kassette (3.2.1 und 3.2.2).

    Spter knnen Sie ein Snapshot mit F5 wieder laden.





4.  ndern der Konfiguration


In diesem Kapitel erfahren Sie, wie Sie CPCEMU an Ihre Bedrfnisse anpassen
knnen. 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 zustzliche 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:  Kurze Beschreibung:
  -----------------------------------------------------------------------
       ___Emulation
       Emulations-Verzgerung      0
       Emulations-Geschwindigkeit  1
       Interrupt-Frequenz          300
       Interrupts nachholen        1
       Echtzeit                    0

       ___Bildschirm
       Farb-Bildschirm             1
       Multimodes auffrischen      0
       Paletten-nderung           1
       Bildschirm-Verschiebung     0
       Video-Modus                 0
       VSYNC-Position              5

       ___Sound
       Sound erlaubt               1
       Sound-Ausgabegert          2
       SB-Verzgerung              35
       SB-Verzgerung0             6
       SB-DMA-Puffer               128
       SB-Sampling-Rate            0
       SB-Stereo                   0

       ___Steuerung
       Joy0 kalibrieren
       Joy1 kalibrieren
       Tastatur-Layout             1
       Maus erlaubt                1

       ___PPI-Einstellungen
       Firmenname                  7
       PPI_50Hz                    1
       PPI_EXP_Signal              1

       ___Sonstiges
       AMSDOS abgeschaltet         0
       AMSDOS-Beschleunigung       1
       Unterbrechungs-Maske        3
       EMS erlaubt                 1
       Sprache                     1
       Kassetten-Umleitung         1
       CPC-Typ                     2

       Lade Konfiguration
       Neustart der Emulation
       Speichere Konfiguration
       Poke-Datenbank
       DOS-Shell
       Fortsetzen


  Die Menpunkte whlen Sie genauso an, wie schon bei 3.2.1 (Laden von
  Diskette) beschrieben. Sie sind auch in der Online-Hilfe beschreiben.


  Emulations-Verzgerung
    Mit dieser Option bremsen Sie die Emulation ab, falls sie zu schnell
    ist. 0 bedeutet keine Verzgerung, 100 ist eine geringe Verzgerung,
    300 entsprechend mehr.

  Emulations-Geschwindigkeit
    Geschwindigkeit der Emulation.
    0 = langsame Z80-Emulation
    1 = schnelle Z80-Emulation

  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 erhhen, 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. Mgliche Werte sind 18 bis etwa 600.
    Weitere Informationen finden Sie im Kapitel 7.

  Interrupts nachholen
    Noch so eine Option, die man nicht erklren kann, ohne weiter auszuholen.
    Lassen Sie sie am besten so, wie sie ist.
    Ohne EMS (Expanded Memory) ist sie auf 0, d.h. Interrupts knnen 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.

  Echtzeit
    Aktiviert den Echtzeit-Modus, bei dem der Emulator Warteschleifen
    einlegt, um so schnell wie ein richtiger CPC zu sein.

  Farbbildschirm
    Emulation eines Grn- oder Farbmonitors, indem die Farbpalette
    angepat wird.

  Multimodes auffrischen
    Falls Programme mehrere Bildschirmmodi gleichzeitig auf dem Bildschirm
    verwenden, sollten Sie diese Option anschalten. Dann versucht CPCEMU,
    Bildschirmmodus-nderungen auch anzuzeigen.
    Standardmig ist diese Option ausgeschaltet, da sie nicht immer richtig
    funktioniert.

  Paletten-nderung
    Falls Sie diese Option auf 0 setzen, werden Farben nicht mehr gendert.
    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 Farbnderungen verboten haben und vllig falsche Farben
    dargestellt werden, drcken Sie einfach 2 mal F2.

  Bildschirm-Verschiebung
    Gibt die Anzahl der Zeilen an, um die der Bildschirm verschoben werden
    soll. Diese Option wird normalerweise nicht bentigt.
    Den gleichen Effekt knnen Sie auch mit den Tasten <Bild hoch> und
    <Bild runter> erreichen. Mgliche Werte reichen von 0=keine Verschiebung
    bis etwa 25 Zeilen Verschiebung.

  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 Gerusche von sich gibt, sofort ausschalten!
    Dieses sollte aber nur bei lteren Monitoren passieren.

  VSYNC-Position
    Diesen Wert brauchen Sie normalerweise nicht zu verndern, es kann aber
    auch nichts Schlimmes passieren, wenn Sie es dennoch tun.
    Bei einem Monitor erfolgt einmal pro Bildaufbau der vertikale
    Strahlenrcklauf. Whrend 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. Mgliche Werte sind 0 bis 5 .
    Weitere Informationen finden Sie im Kapitel 7.

  Sound erlaubt
    Schaltet die Soundausgabe ein/aus, wobei 1=ein, 0=aus bedeutet.
    Stattdessen knnen Sie auch die Funktionstaste F4 drcken.

  Sound-Ausgabegert
    Setzt das Sound-Ausgabegert.
      0 = keines
      1 = PC-Lautsprecher
      2 = Soundblaster (Pro), FM-Sound
      3 = Soundblaster (Pro), digitaler Sound, dank Ulrich Doewich
      4 = GUS (Gravis Ultrasound), dank Ulrich Doewich

  SB-Verzgerung
    Setzt eine Verzgerungszeit, 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-Verzgerung0
    Eine andere Verzgerungszeit fr die Soundblaster-Karte.
    Lassen Sie diese auf 6.

  SB-DMA-Puffer
    Setzt die DMA-Puffergre fr digitalen Soundblaster-Sound.

  SB-Sampling-Rate
    Setzt die Sampling-Rate fr digitalen Soundblaster-Sound.
    0=22kHz, 1=44kHz

  SB-Stereo
    Setzt die Stereo-Option.

  Joystick 0 kalibrieren
    Sie kennen es sicher von anderen Programmen, da Sie einen analogen
    PC Joystick zuerst kalibrieren mssen. Whlen Sie diesen Menpunkt mit
    <RETURN>,  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 nchster Abschnitt).
    Sie mssen die Kalibrierung allerdings wiederholen, wenn Sie z.B.
    die Taktfrequenz ndern.

  Joystick 1 kalibrieren
    Wie "Joystick 0 kalibrieren", nur fr Joystick 1.

  Tastaturlayout
    Mit dieser Option whlen Sie eine andere Tastaturbelegung.
    0 = UK, d.h. Normaleinstellung
    1 = GR, also "deutschere" Tastatur. Es ist leider nicht mglich,
        eine vollstndig 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, zustzlich ein
        paar sonstige Zeichen.
    2 = FR, also "franzsischere" Tastatur.also "franzsischere" 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.
    3 = SP, also "spanischere" Tastatur.

  Maus erlaubt
    Erlaubt die Benutzung einer Maus zur Menauswahl.

  Firmenname
    Firmenname auf dem Erffnungsbildschirm.
    0 = Isp
    1 = Triumph
    2 = Saisho
    3 = Solavox
    4 = Awa
    5 = Schneider
    6 = Orion
    7 = Amstrad

  PPI 50Hz
    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
    Erweiterungskarten knnen dieses Signal setzen.
    Beim CPC 464 normalerweise gesetzt, wenn eine Floppy angeschlossen ist.
    Beim CPC 6128 immer gesetzt.

  AMSDOS verboten
    Verbietet die Initialisierung des AMSDOS. Das ist sinnvoll, wenn Sie
    viele Programme von Kassette laden mchten, ohne vorher immer den
    Befehl '|TAPE' eingeben zu mssen.
    Natrlich knnten Sie auch einfach die entsprechende ROM_BLOCK-Zeile
    mit dem AMSDOS-ROM kommentieren (mit ROM_BLOCK legen Sie die zu
    ladenden ROMs fest), dann wre aber gar kein AMSDOS ROM mehr vorhanden.
    So bleibt es fr bestimmte Befehle noch erreichbar.

  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 unntig sind.

  Unterbrechungs-Maske
    Nur fr Debugging-Zwecke. Durch die Maske in der Konfigurationsdatei
    (3) werden Fehlermeldungen bei unzulssigen Befehlen unterdrckt.
    ndern Sie diesen Wert mglichst nicht!

  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.

  Sprache
    Sprache, in der Hilfstexte angezeigt werden.
    Mglich sind
      0=UK (Englisch)
      1=GR (Deutsch)
      2=FR (Franzsisch)
      3=SP (Spanisch)

  Kassetten-Umleitung)
    Falls Sie die "Kassette" verwenden mchten, mu diese Option auf
    "YES" stehen.
    Weitere Informationen zum TAPE-Bypass finden Sie im Kapitel 7.

  CPC-Typ
    Setzt den gewnschten CPC-Typ
    0 = CPC 464
    1 = CPC 664
    2 = CPC 6128
    3 = CPC 464+ (?)
    4 = CPC 6128+ (?)
    5 = KC compact
    Um die Typen 3 bis 5 zu benutzen, mssen Sie zuerst entsprechende
    ROM-Abbilder in CPCEMU.CFG eintragen.

  Zeige Konfiguration

  Lade Konfiguration
    Ld eine Konfigurations-Datei, welche mit "Save_Configuration"
    abgespeichert wurde. Manche Parameter wirken erst, wenn Sie
    "Restart_Emulation" whlen.

  Neustart der Emulation
    Wenn Sie eine Konfiguration mittels "Load_Configuration" geladen
    haben, knnen Sie den Emulator mit diesen Werten neu starten.

  Speichere Konfiguration
    Speichert die aktuelle Konfiguration.
    Die Haupt-Konfiguration "CPCEMU.CFG" lt sich nicht berschreiben.

  Poke-Datenbank
    Falls Sie gerade ein Spiel spielen und nicht weiterkommen, whlen
    Sie diesen Menpunkt. Falls das Spiel sich in der bersicht befindet,
    whlen Sie es aus und Sie bekommen eine Erleichterung, zum Beispiel
    unendliche Leben.
    Sie knnen 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 knnen.

  Fortsetzen
    Werte bernehmen und Programm fortsetzen.
    Die genderten Werte werden bernommen und die Emulation wird
    fortgesetzt. Den gleichen Effekt bekommen Sie auch, wenn Sie auf
    einem beliebigen Menpunkt (mit Zahl) <RETURN> drcken.





4.2  Konfigurationsdatei
========================

  Mit einer Konfigurationsdatei knnen Sie CPCEMU auch konfigurieren.
  Beim Start liest CPCEMU standardmig die Konfigurationsdatei CPCEMU.CFG.
  Beachten Sie, da diese Datei im TMP-Verzeichnis steht, falls Sie CPCEMU
  mit einer CPCxxx.BAT Datei starten. Das ermglicht benutzerdefinierte
  Konfigurationen, auch wenn CPCEMU auf einer CD-ROM ist.
  Der Aufbau dieser Datei soll jetzt beschrieben werden, so da Sie selber
  leicht z.B. eigene ROMs einbinden knnen, die Tastatur dauerhaft
  umstellen knnen, ...

  Werfen wir einmal einen Blick in die CPCEMU.CFG Datei:

    ;CPCEMU.CFG - The Configuration File for CPCEMU (v1.5)
    ;Marco Vieth, 20.11.1997
    ;
    ;standard configuration for CPC 464, 664, 6128, 464+, 6128+, KC compact
    ;
    SHOW_CONFIG=0       ;should the configuration be displayed?
    CPC_TYPE = 2        ;CPC 6128, if no command line parameter -t
    ...


  Schon an diesen paar Zeilen lt sich der einfache Aufbau erkennen:
  Kommentare beginnen mit einem Semikolon (";").
  Optionen werden gendert, indem ein Schlsselwort (hier
  SHOW_CONFIG, ROM_PATH) gefolgt von "=" gefolgt von einem <Wert> stehen.
  <Wert> kann je nach Schlsselwort eine Zeichenkette
  oder auch ein numerischer Wert sein. Numerische Werte knnen nicht nur
  in dezimaler Form, sondern auch in hexadezimaler ("0x") oder binrer ("%")
  Zahlendarstellung angegeben werden.

  Sie brauchen also nur die Bedeutung der Schlsselwrter zu kennen, um
  die Optionen leicht mit einem Texteditor an Ihre Bedrfnisse anzupassen.

  Die meisten Schlsselwrter kennen Sie schon aus dem Setup-Men. Sie
  mssen allerdings in Englisch angegeben werden.
  Zuerst eine alphabetische bersicht, dann Erklrungen 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
  DATA_FILE           Datendatei
  DRIVE_A             Laufwerk A
  DRIVE_A_AUTOSTART   Laufwerk A: Autostart
  DRIVE_A_SIDE        Laufwerk A: Seite
  DRIVE_A_WRITEPROT   Laufwerk A: Schreibschutz
  DRIVE_B             Laufwerk B
  DRIVE_B_AUTOSTART   Laufwerk B: Autostart
  DRIVE_B_SIDE        Laufwerk B: Seite
  DRIVE_B_WRITEPROT   Laufwerk b: Schreibschutz
  EMS_ENABLED         EMS erlaubt
  EMULATION_DELAY     Emulations-Verzgerung
  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      Palettennderungen
  POKE_DATABASE       Poke-Datenbank
  PPI_50HZ            PPI-50Hz-Bit
  PPI_EXP_SIGNAL      PPI-Expansions-Signal-Bit
  PRINTER             Drucker
  RAM_SIZE            RAM-Gre
  REALTIME            Echtzeit-CPC
  ROM_BLOCK           ROM-Block
  ROM_PATH            ROM-Pfad
  SB_DELAY            Soundblaster-Verzgerung
  SB_DELAY0           Soundblaster-Verzgerung 0
  SB_DMA_BUF          Soundblaster-DMA-Puffergre
  SB_SAMPLE_RATE      Soundblaster-Sampling-Rate
  SB_STEREO           Soundblaster-Stereo
  SCREEN_OFFSET       Bildschirm-Verschiebung
  SHOW_CONFIG         Zeige Konfiguration
  SNAPSHOT            Schnappschu
  SOUND_DEVICE        Sound-Ausgebegert
  SOUND_ENABLED       Soundausgabe erlaubt
  TAPE_BYPASS         Kassetten-Umleitung
  TAPE_PATH           Kassetten-Pfad
  TMP_PATH            Temporres Verzeichnis
  VIDEO_MODE          Video-Modus
  VSYNC_POSITION      Vertikale Sync-Position


  - #ENDIF, #IFCPC
    Diese Steuerbefehle ermglichen eine bedingte Konfiguration je nach
    gewnschtem CPC:
      #IFCPC <CPC-Typ> ... #ENDIF
    Als <CPC-Typ> sind alle 4 Typen wie bei "CPC_TYPE" zulssig.
    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 gewhlt. Diese werden im
    nchsten Abschnitt beschrieben.

  - DATA_FILE = "<Pfad+Dateiname>"
    Setzt die Daten-Datei (CPCEMU.DAT).

  - DRIVE_A = "<Pfad+Dateiname>"
    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_A_AUTOSTART
    Startet automatisch das erste BASIC-Programm, wenn ein Disketten-Abbild
    eingelegt wird. Alternativ wird DISC.BAS gestartet, falls vorhanden.
    Mit dem AMSDOS-Befehl |DIR knnen Sie schauen, welches das erste
    BASIC-Programm ist.

  - DRIVE_A_SIDE
    Bei doppelseitigen Formaten kann mit dieser Option die Seite 1 (B)
    gewhlt werden.

  - DRIVE_A_WRITEPROT
    Das Disketten-Abbild wird schreibgeschtzt eingelegt.
    Das ist sinnvoll, wenn es nicht modifiziert werden soll oder sich auf
    einem Nur-Lese-Medium (z.B. CD-ROM) befindet.

  - DRIVE_B = "<Pfad+Dateiname>"
    Ist das gleiche wie DRIVE_A, nur fr Laufwerk B.

  - DRIVE_B_AUTOSTART
    Ist das gleiche wie DRIVE_A_AUTOSTART, nur fr Laufwerk B.

  - DRIVE_B_SIDE
    Ist das gleiche wie DRIVE_A_SIDE, nur fr Laufwerk B.

  - DRIVE_B_WRITEPROT
    Ist das gleiche wie DRIVE_A_WRITEPROT, nur fr Laufwerk B.

  - JOY0_CALIBRATE = <xcen>, <ycen>, <xdead>, <ydead>
    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 = <xcen>, <ycen>, <xdead>, <ydead>
    Genauso wie JOY0_CALIBRATE.

  - POKE_DATABASE = "<Pfad+Dateiname>"
    Setzt die Poke-Datenbank-Datei (CPCEMU.DBF).

  - PRINTER = "<Pfad+Dateiname>"
    Hier legen Sie eine Drucker-Datei fest, in die
    Druckerausgaben umgeleitet werden. Beim jedem Start des Emulators wird
    sie gelscht. Nachdem Sie den Emulator verlassen haben, schicken Sie
    diese Datei mit 'COPY <Dateiname> prn:' zu Ihrem Drucker.
    Bei PRINTER="prn" wird ohne Druckerdatei auf dem Drucker ausgedruckt.
    Bei PRINTER="" wird die parallele Schnittstelle LPT1 direkt
    angesprochen.

  - ROM_BLOCK = <ROM-Nummer>, "<Dateiname>", <ROM-Position>
    Beschreibt, was fr ein ROM geladen werden soll.
    Sie mssen diese Zeile fr jedes zu ladende ROM wiederholen.
    Jedes ROM besitzt dabei eine Gre von 0x4000 Bytes.
    Die maximale Anzahl der ROMs ist etwa 20, wenn Sie EMS-Speicher haben.
    - <ROM-Nummer> ist die Nummer die das ROM bekommen soll,
      d.h., mit der es durch 'OUT &DF00,num' ausgewhlt 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.)
    - <Dateiname> ist die Datei, in der sich das ROM-Abbild im
      Verzeichnis ROM_PATH befindet.
    - <ROM-Position> ist die Positon des ROMs innerhalb der Datei,
      0 bedeutet 0.ROM, 1 bedeutet 1.ROM, usw...
      Es ist also mglich, mehrere ROMs in einer Datei zu haben.
      Bei den Eintrgen
          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 = "<Pfadname>"
    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.

  - SNAPSHOT = "<Pfad+Dateiname>"
    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 = "<Pfadname>"
    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 = "<Pfadname>"
    Setzt den Pfad, in dem CPCEMU temporre Dateien erzeugt. Dieser wird
    hauptschlich bentigt, wenn Sie aus einem ZIP-Archiv Dateien auswhlen
    und CPCEMU diese mit PKUNZIP entpackt.




4.3  Kommandozeilen-Parameter
=============================

  Wie bei vielen anderen Programmen blich, knnen Sie auch bei CPCEMU
  Kommandozeilen-Parameter angeben. Zur Zeit sind jedoch nur einige wenige
  mglich.

  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
            bentigen.
       /d : startet den Debug-Modus, sehen Sie im Kapitel 7 nach.
       /x : verbietet EMS Benutzung
       /c <Datei> : gibt eine andere Konfigurationsdatei an, falls nicht
            die Standard-Datei CPCEMU.CFG benutzt werden soll.
            Siehe vorherigen Abschnitt.
       /t <type> : definiert den gewnschten CPC 464, 664, 6128, CPC 464+,
                   CPC 6128+ oder KC compact  durch  /t 0 bis /t 5.
       /h : zeigt einen Hilfsbildschirm an

  Wenn Sie eine unbekannte Option angeben, wird automatisch "/d" verwendet.
  Anstatt dem "/" knnen Sie auch das UNIX-bliche "-" verwenden.






5.  Datenbertragung CPC <-> PC


Was ntzt Ihnen der schnste Emulator, wenn Sie keine Programme dafr
haben oder keine Mglichkeit sehen, die Programme von Ihrem CPC zum
PC zu bekommen?
Im Kapitel 6 (Bezugsquellen) sind auch einige Quellen aufgefhrt, wo
Sie CPC-Software bekommen knnen.
In diesem Kapitel soll es darum gehen, wie Sie eigene CPC-Software auf
den PC transferieren.
Fr die verschiedenen Mglichkeiten (Diskette, ber parallele oder
serielle Schnittstelle) werden auch Hilfsprogramme vorgestellt.



5.1  Diskette als Medium
========================

  Dies ist meistens die einfachste und schnellste Mglichkeit, die
  CPC-Software auf den PC zu bekommen.
  Sie brauchen dazu nur einen CPC mit Zweitlaufwerk in richtiger Gre.
  Richtige Gre bedeutet dabei, da die Disketten von der Gre her
  in Ihr PC-Laufwerk passen mssen. Ansonsten knnten Sie versuchen,
  ein 3" Laufwerk an den PC anzuschlieen.
  Der PC wird dann mit einem Zusatzprogramm berredet, die
  CPC-Diskettenformate zu lesen.
  Dieses Zusatzprogramm heit 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 <Quelle> <Ziel> <Optionen>'.
    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 whlen 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 knnen Sie
    22DISK benutzen, was im nchsten Abschnitt beschrieben wird.

    Wollen Sie die B-Seite einer Diskette kopieren, whlen 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
    bichen langsamer, erhht aber die Sicherheit.

    Mit der Option '/t <Anzahl>' 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 erhltlich. Durch geeignete
    Definitionen knnen Sie smtliche 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 knnen Sie mit 22DISK machen?
    Sie knnen 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
  Mglichkeit, den Datentransfer ber die parallele Schnittstelle zu
  ttigen.
  Ursprnglich hatte Gilles Molinari diese Idee und auch Turbo-Pascal
  Programme dazu geschrieben. Nur gehren Sie vielleicht zu den Benutzern,
  die keinen Turbo-Pascal Compiler auf den CPC haben, somit knnten Sie
  damit nicht viel anfangen. Ich habe sie deshalb in Locomotive-BASIC
  umgeschrieben und durch die zustzliche Richtung PC->CPC ergnzt.
  Es ist also mglich, 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 knnen!  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!   Blttern Sie nicht gleich weiter!

  Beide Schritte sind ganz einfach, denn
  1. geht auch OHNE LTEN    und
  2. ist wirklich ziemlich kurz (etwa 30 Zeilen BASIC)

  Zu 2.
  Das Programm, was Sie brauchen, heit 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 knnen.
  Es erfllt in etwa die Aufgabe eines dnnen Seiles, das Sie durch ein
  Rohr schicken, um ein dickes Tau nachziehen zu knnen.
  Das dnne Seil ist hier CPCREC.BAS und empfngt (receive) Programme
  vom PC. Mit diesem "Progrmmchen" holen Sie das Programm CPCPARA.BAS
  (das dicke Tau) auf Ihren CPC. Damit knnen 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 nmlich 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 knnen es natrlich auch gnstiger haben, indem Sie eine sogenannte
  Jumper-Box verwenden, bei der Sie die Drahtbrcken festlten mssen.
  Diese sollte etwa 7 DM kosten.
  Noch gnstiger sind Stecker, Buchse, Adapter-Gehuse und ein paar Drhte.
  Das hat mich etwa 3 DM gekostet.


  Sie haben jetzt mit dem Adapter die beiden Computer verbunden und das
  "Progrmmchen" 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 nmlich ziemlich zeitkritisch.
  Auf meinem 386/33 darf ich kein EMS installiert haben, sonst ist es zu
  langsam. Auf einem besonders schnellen Computer knnte es aber ntig
  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 knnten Sie das etwas lngere CPCPARA.BAS eintippen,
  die Richtung CPC->PC funktioniert nmlich 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 folgendermaen:
  1. Auf dem PC:  'PCPARA /r'  eingeben.
  2. Auf dem CPC: CPCPARA starten, Menpunkt S)end whlen, und nacheinander
     die zu bertragenden Dateien eingeben. (Rufen Sie 'PCPARA /r' fr jede
     zu bertragende Datei erneut auf, CPCPARA hingegen luft in einer
     Endlosschleife.)


  Sie benutzen also PCPARA folgendermaen:
  - PCPARA /r : startet PCPARA im Empfangsmodus
  - PCPARA /s <Datei> : sendet die <Datei> 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 wre er auch dann kaputtgegangen,
  wenn Sie nur Ihren Drucker angeschlossen htten.
  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 einstpseln!
  (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 folgendermaen 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, knnen Sie die
  Daten natrlich auch seriell bertragen.



5.4  Sonstige Mglichkeiten
===========================

  Es gibt auch abenteuerlichere Methoden, an seine Software zu kommen.

  - 3" Diskettenlaufwerk an den PC anschlieen. 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 ntig 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 knnen und
an wen Sie sich bei weiteren Fragen wenden knnen.
Auerdem erwhne ich noch einige andere Amstrad-Emulatoren.


6.1  Sie mchten 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 knnen.


  FTP
  ---

  - ftp.nvg.unit.no : /pub/cpc, Arnt Gulbrandsen hat das Archiv
    bereitgestellt und Noel Llopis verwaltet es;
    ROMs, CPC-Programme, Emulatoren.
    Eines der grten Archive mit CPC-Programmen.
    Eigene Programme knnen Sie unter /pub/cpc/incoming ablegen.

  - sunshine.informatik.uni-wuerzburg.de:/pub/joscho/cpcemu
    Ein Mirror von ftp.nvg.unit.no. Fragen, Bemerkungen und Ergnzungen
    richten Sie bitte an joscho@informatik.uni-wuerzburg.de.
    Wenn Sie Verbindungsprobleme nach Norwegen haben, knnen Sie es hier
    versuchen.

  - ftp://ftp.lip6.fr/pub/amstrad, dank an Remy Card,
    ftp://ftp.lip6.fr/pub/amstrad/frontend/menu.htm (HTML-Frontend)
    Alle Fragen zu diesem Archiv richten Sie bitte an
    roussin@genesis8.frmug.org.
    Alle Dateien kommen von 'Genesis the 8bit generation BBS' (siehe unten).

  - ftp.demon.co.uk:/pub/cpm, dank Paul Martin
    Hauptschlich 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/cpcemu15.zip

  - Weitere Simtel-Mirrors:
    ftp.ibp.fr : /pub3/pc/SimTel/msdos/emulator/
    ftp.demon.co.uk : /simtel/msdos.
    ftp.uni-paderborn.de


  WWW
  ---

  - http://andercheran.aiind.upv.es/~amstrad
    and an UK mirror: http://www.dcs.warwick.ac.uk/~divine/~amstrad/

  - ...und viele weitere, die ich hier nicht auffhren mchte, da sie sich
    dauernd ndern



  BBS
  ---


  - Aspects 2:250/107 : +44 617920260, England

  - Genesis the 8bit generation (2:320/220) : +33 1 53 95 32 43
    (modem/ISDN) & 44 (modem), Paris (FRANCE), sysop : Emmanuel Roussin.

  - ZNODE 51 : + 49 89 961 45 75, Deutschland, von 15:00 to 3:00 CET (MEZ),
    bis V32b, CPC-Programme

  - ...und einige mehr



6.2  Sie mchten immer auf dem laufenden bleiben ?
==================================================


  Sie mchten immer die neuste Version von CPCEMU haben?
  Sie mchten informiert werden, wenn eine neue verffentlicht wird?

  Mittlerweile gibt es eine eigene CPC-Newsgruppe!
  Sie heit

     comp.sys.amstrad.8bit.

  Dort finden Diskussionen rund um den CPC (und eben auch CPCEMU) statt.
  Hier knnen Sie natrlich ganz unverbindlich Ihre Erfahrungen austauschen.

  Es ist auch ein FAQ (frequently asked questions, hufig gestellte Fragen)
  zu dieser Newsgroup verfgbar
  (ftp://ftp.lip6.fr/pub/amstrad/amstrad.htm, FAQ in HTML).


  Falls Sie keine Mglichkeit haben, die Newsgruppe zu lesen, schreiben
  Sie mir kurz eine E-Mail. Meine Adresse steht im nchsten Abschnitt.
  Mit normaler Post knnen 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./Fax: 05292/1366

       Internet: cpcemu@hotmail.com
                 (ali@uni-paderborn.de  nur gltig bis 1.10.98)

       Wie Sie vielleicht schon wegen der Internet-Adresse vermuten,
       habe ich Informatik an der Uni Paderborn studiert. Ich habe
       das Studium im Frhjahr 1997 abgeschlossen und leiste jetzt
       Zivildienst.



  Falls Sie Englisch sprechen oder schreiben, knnen 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@diablo.eimages.co.uk
                 ftp://ftp.eimages.co.uk/users/davidc/cpc/
                 http://www.ThePentagon.com/NukeEmUp/uaug


  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 wren angemessen.)
  Normalerweise ist auf die Post (wenigstens) soviel Verla, da Geldscheine
  in zugeklebten Briefen auch ankommen.
  (Die "Unglcksflle", 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 htte 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 zustzlichen ROMs;
    insgesamt nur eine "Bierlaune".

  - CPC2PCxx:
    Wird seit Oktober 1993 von Paco Lopez aus Spanien entwickelt.
    Ist jetzt auf einigen Archiven verfgbar. Ist vollstndig 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.
    Auerdem 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 v5.2.



6.5  Plne fr weitere CPCEMU-Versionen
=======================================

  - Overscan
  - Bessere Multi-Modes
  - Bildschirm zentrieren in hheren Auflsungen
  - Schnelles Hardware-Scrolling
  - whlbare Bildschirmvergrerung
  - 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-Lautstrke
  - Digiblaster-Emulation
  - Joystick-Tasten selber definieren
  - Maus als Joystick benutzen
  - automatische Erkennung von .SNA und .DSK


  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 Verbesserungsvorschlge gemacht hat, sondern vor allem die
    schnelle Z80-Emulation aus seinem CP/M-Emulator ZSIM beigesteuert hat.

                  Jrgen G. Weber
                  Wiesentalstrae 1
                  74523 Schwbisch Hall
                  Federal Republic of Germany

                  Email: weberj@dia.informatik.uni-stuttgart.de


  - Auerdem 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 auergewhnlichen Ideen, einen Z80 zu
    emulieren.

  - Dank an Linh Hsiesh fr zahlreiche Verbesserungsvorschlge, 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-
    vorschlge geschrieben haben oder sonstige Ideen hatten. Ohne sie
    wre 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 leistungsfhige Debug-Men erklrt 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 knnen 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 unverstndlichen Stzen 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 whrend der
    Programmentwicklung benutzt. Die langsame Z80-Emulation knnen 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 aber Zeit-Kalibrierung im Ectzeit-Modus



  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 knnen eine Dk'tronics kompatible
    Speichererweiterung mit bis zu 576 KB RAM benutzen.

  - Ohne EMS ist RAM Banking sehr langsam, da Speicherblcke vertauscht
    werden mssen. Auerdem haben Sie ohne EMS hchstens 128 KB RAM zur
    Verfgung.



  7.2.4  Der CRTC 6845 (Cathode Ray Tube Controller)
  --------------------------------------------------

  + Bildschirmstart, -offset fr Hardware-Scrolling
  + verschiedene Bildschirmgren von 0x0 bis 80x25 mittels
    CRTC-Register 1 und 6
  + unterschiedliche Zeichengren (1..7) mit CRTC-Register 9
  + fr Multi-Modes werden noch einige andere Register bentigt.

  - Overscan wird noch nicht untersttzt.


  7.2.5  Die PIO 8255 (Programmable Input-Output)
  -----------------------------------------------

  + Keyboard (ber den PSG)
  + VSYNC-Emulation: Bit zwischen zwei Interrupts whrend des Bildaufbaus
    gesetzt, die Position legen Sie fest.
  + Kassetten besonders schnell durch ROM-Bypass der den Zugriff auf
    beliebige DOS-Dateien ermglicht.

  - VSYNC-Bit ist zu lange gesetzt
  - Kassetten-Bits werden nicht emuliert, somit knnen 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 Kanle auf
    einen gemischt werden mssen und die Lautstrke nicht gendert
    werden kann), eine GUS-Soundkarte oder eine Soundblaster-Karte.
    Von der Soundblaster-Karte wird entweder der digitale Teil benutzt,
    was perfekten Sound mit Geruschen ergibt oder nur der Adlib-kompatible
    FM-Teil ohne Gerusche.

  - keine Digital-Sounds mglich oder zu langsam.


  7.2.7  Der FDC 765 (Floppy Disc Controller)
  -------------------------------------------

  + Alle notwendigen FDC-Kommandos, um die Laufwerke A und B zu
    steuern (dazu gehren Sektor lesen/schreiben, Spur suchen/formatieren,
    Sektor-ID lesen, ...)
    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 htte ich damals auf dem CPC nur getrumt!
  Es wird der komplette CPU-Zustand des Z80 angezeigt und Sie knnen ihn
  modifizieren. Der Speicher kann "gedumped",
  disassembliert oder modifiziert werden, Speicherauszge
  (Programme) lassen sich laden oder speichern.
  Und das Interessanteste:
  Sie knnen 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 Grobuchstaben). In den beiden nchsten 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. <Adresse> = 0000 bis ffff.
  "<ret>" zeigt an, da Sie in einem speziellen Modus sind und
  <RETURN> drcken sollen, um fortzufahren. <String><RETURN>
  verlt diesen Modus (d.h. z.B. b<RETURN>).
  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 (Programmzhler)
  angenommen.


  bersicht ber die Kommandos
  ----------------------------

  R)un:
  r [<Adresse>] : 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 [<Adresse>] : fhrt wirklich nur den aktuellen Befehl aus,
    mit <RETURN> den nchsten;  <string><RETURN> beendet den
    Trace-Modus.
    Alle Einzelschrittbefehle werden von der Slow-CPU ausgefhrt
    (selbst wenn "-f->" angezeigt wird), da in der Fast-CPU kein
    Zhler mehr existiert.
  S)tep (Step over):
  s [<Adresse>] : 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
    Zhler mehr existiert.

  A)ssemble (eigentlich Disassemble):
  a [<Adresse>] : disassembliert die nchsten 16 Befehle, mit
    <RETURN> die nchsten; <string><RETURN> beendet den
    Disassemble-Modus.

  D)ump:
  d [<Adresse>] : zeigt einen Hex-Ascii-Speicherauszug der nchsten
    256 Bytes ab PC oder Adresse an, <RETURN> die nchste Seite;
    <string><RETURN> beendet den Dump-Modus.

  I)nput (Speicherstellen modifizieren):
  i [<Adresse>] : zeigt die Speicherstelle mit aktuellem Inhalt an,
    der durch <RETURN> besttigt oder durch <hexzahl><RETURN>
    verndert werden kann. Verlassen wird der Input-Modus mit
    einer ungltigen Zahl, z.B. -1<RETURN>.

  L)oad (Laden eines Speicherbereichs):
  l [<Adresse>]  : fragt nach dem Dateinamen <Name> und ldt dann
    die Datei <Name> aus dem Verzeichnis TAPE_PATH nach <Adresse>
    Ein AMSDOS-Header wird erkannt.
    Siehe Anhang "Aufbau des AMSDOS-Headers".
    Falls Sie bei dem Dateinamenprompt nur <RETURN> eingeben,
    erscheint das schon bekannte Dateiauswahl-Men.
    Beispiele:
    -f-> l<RETURN> demo<RETURN>         :
        ldt Datei 'demo' an den aktuellen PC
    -f-> l a000<RETURN> myprog<RETURN>  :
        ldt Datei 'myprog' nach 0xA000

  saV)e (Speichern eines Speicherbereichs):
  v [<Adresse>]  : fragt nach dem Dateinamen <Name> und der Lnge
    des Speicherbereichs. Dieser wird dann ab <Adresse> (oder eben PC)
    abgespeichert, und zwar im Verzeichnis TAPE_PATH als Binrdatei,
    d.h. mit AMSDOS-Header.
    Siehe Anhang "Aufbau des AMSDOS-Headers".
    Beispiel:
    -f-> v<RETURN> demo<RETURN> 4000<RETURN>    :
        speichert "demo" ab PC mit der Lnge 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 whlen):
  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 gewhlte
   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:          '<Register>=<Hex-Wert>'
  Beispiele:
    - af=345    : setzt Register AF auf 0x0345
    - pc=a000   : setzt Programmzhler auf 0xA000


  Sie knnen auch einfach '<Register><Leerzeichen><Hex-Wert>' schreiben
  Alle Z80-Register lassen sich verndern, also
  AF, BC, DE, HL, IX, IY, SP, PC, IR, AF', BC', DE', HL',
  zustzlich 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 bentigt 6 solcher Seiten an zusammenhngenden 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 vergrert oder verkleinert werden, je nach
    Hauptspeicher Ihres Rechners.

    Erluterungen:
    EMM386 bietet zahlreiche zustzliche Seiten im konventionellen
    Speicher. Die Untergrenze dieser Seiten kann mit der Option
    /B=<Segment> gendert werden (Standard ist 4000).
    Mit /P<Nummer>=<Segment> soll es auch mglich 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 Zustnden zu wechsen, mssen nur die
    '0' und 'L' Blcke 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 erhht die
    Geschwindigkeit besonders in BASIC und CP/M Plus.
    Jetzt verstehen Sie, warum 6 zusammenhngende 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 ntig, wenn Sie Kassetten-Dateien benutzen mchten.

    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 mglich 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

    Zustzlich gibt es noch den User-Break-Befehl
    ED FC FC  USER &BCFC , der die Emulation sofort anhlt.



  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 ntig, 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 unbeeinflut, 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 ermglichen.
      (Die Sachen werden ja von DOS gesteuert, somit brauchen wir
      die Warteschleifen nicht.)
      (Folgende Speicherstellen im AMSDOS-ROM werden verndert:
        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 knnen
    beliebig zwischen Schlsselwrtern und Werten eingesetzt werden.
    Die meisten Definitionen besitzen die syntaktische Form
    <Schlsselwort> '=' <Wert> {T}
    Dabei ist {T} eine Folge von mindestens einem Trennsymbol.
    Beispiel:
      ROM_PATH = ".\ROM"

    Eine <Zahl> kann dezimal, hexadezimal (0x) oder binr (%) angegeben
    werden.
    <Pfad-Name> darf bis zu 80 Zeichen,
    <Dateiname> darf bis zu 20 Zeichen lang sein.

    Hier noch einige Ergnzungen zu ausgewhlten Schlsselwrtern:

    BREAK_MASK = <Zahl>         (3)
      Nur fr Debugging-Zwecke.
      Einige Ereignisse unterbrechen die normale Emulation. Mit
      dieser Maske verbieten Sie solche Ereignisse.
      Nicht unberlegt verndern!
      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 lscht es danach wieder. Der PC braucht
    also nur BUSY zu lschen (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 mte 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 mglich sein mte, Daten in die
    andere Richtung zu verschicken. Leider hat der CPC am Druckerport
    nur ein einziges Eingangssignal, nmlich 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).
    Softwaremig 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.
    Whrend 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 nchsten Bits setzen, denn schon
    mit dem bernchsten 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
    hngt, weil er auf irgendein Signal wartet, was dummerweise nicht
    kommt. Sie knnen die Programme also immer durch ESC bzw CTRL-BREAK
    abbrechen.





  7.6.3  CPCTRANS
  ---------------

    Eine noch nicht erwhnte 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 unntig 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 mute ich die FDC-Routinen selber programmieren,
    wobei der Floppy-Teil des MINIX-Source-Codes als Vorlage diente.
    Leider enthlt 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) anschlieen.
    Das neue erweiterte Disketten-Format ist hauptschlich 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 abschlieende \0 !)
    30           Anzahl Spuren (40, 42, vielleicht 80)
    31           Anzahl Kpfe (1 oder 2)
    32 - 33      Spurgre (einschlielich 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 Spurgren fr alle Spuren
                 (genauso berechnet wie 32-33 beim normalen Format).
                 Fr einseitige Formate enthlt die Spurtabelle nur die
                 Spurgren einer Seite, ansonsten alternierend fr zwei
                 Seiten.
                 Spurgre=0 bedeutet, der Track ist unformatiert.
                 Spurgre 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 mglich)
    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* Sektorlnge in Bytes (Little-Endian-Notation).
                 Dies ermglicht verschieden groe Sektoren auf einer Spur.
                 Die Lnge 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
    angehngtem 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-Gre (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 whrend eines Bildaufbauzyklus.
    6F - 74       6 Multi-Modes, d.h. Bildschirmmodi (0..2) whrend der
                    Interrupts 0..5.
    75 - FF       unbenutzt (0), evtl. spter fr Emulator-Konfiguration



  7.7.3  AMSDOS-Header
  --------------------

    Byte (Hex):   Bedeutung:
    00            User (0 , mgliche 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=Binr,...)
    13 - 14       Blocklnge (0)
    15 - 16       Ladeadresse (0-FFFF)
    17            Erster-Block-Flag (0)
    18 - 19       Logische Lnge (0-FFFF)
    1A - 1B       Einsprungadresse (0-FFFF)
    1C - 3F       Frei fr den Benutzer (0)
    40 - 42       wirkliche Dateilnge (1-FFFFFF)
    43 - 44       Prfsumme ber Bytes 00-42
    45 - 7F       unbenutzt (zufllige 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 Blcke 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 ausgewhlt werden.
     Falls ein Programm mehrere Pokes gleichzeitig bentigt, mssen die
     Folgeeintrge 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 gendert 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 ermglicht 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 Folgeeintrgen
    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
    mglich
  - 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, Farbnderung 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 Blcken 0..3 (nicht 4..7); Port FCxx gleich wie
    FBxx (fr CP/M Plus). Da wute 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 Blcken nur ab Segmentstart.
  - v2.5 test (31.10.1992)
    Genderte Speicherzuweisung. Endlich Hardware-Scrolling und verschiedene
    Bildschirmgren mglich.
  - 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 verndert haben,
    werden auf den Bildschirm gebracht.
  - v2.9
    Timer-Handler mit 300 Interrupts. Fast-Emulation luft, wenn kein ROM
    (Banking) bentigt 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 aufhngte: 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-Erhhung abhngig 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 vllig berarbeitet, modularisiert. Konfigurationsdatei
    eingefhrt, jetzt mehrere ROMs mglich. nderung des Firmennamens von
    Schneider auf Amstrad. (Knnen 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 Paritt
    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 spter 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. Auerdem knnen 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 mglich durch spezielle EMS/UMB-Konfiguration.
    Konfigurationsdatei um Binrzahlen 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)
    Bichen 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 bergroe
    Bildschirme verschieben; Teil von Overscan-Bildschirmen wird angezeigt.
    Jetzt mglich: 64K-'Snapshots'.
  - v0.9d (30.4.1994 - 12.5.1994)
    Interrupts whrend 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 Zeichengren von 1 bis 8
    mglich. Dateiauswahl auch bei SAVE" , Schnellauswahl durch Drcken von
    Anfangsbuchstaben. Verbessertes CPCTRANS mit Verify-Option. Neues
    Setup-Men, wenn Sie F7 drcken. Darin knnen Sie z.B. Farbflimmern
    unterdrcken.

  - v1.0a (21.5.1994 - 9.6.1994)
    Setup-Men verbessert: jetzt neben den Cursor-Tasten auch direkte
    Eingaben mglich. Nahezu deutsche Tastenbelegung, einfache
    Verzgerungsoption (delay). Kein "Mll" mehr bei verkleinertem
    Bildschirm (d.h. die Teile vom greren Bildschirm werden korrekt
    gelscht). Fast-Z80-Teil verbessert: schnellere RRA,RLA, ..., schnellere
    CP xx Befehle. Weitere illegale Befehle eingefgt (ED xx). Auerdem
    fehlten die undokumentierten Befehle LD D,XH und LD YL,YH (im
    CoZ80-Modus aufgefallen)! CPDR,CPIR mit BC=0 korrigert (0 heit nmlich
    auf einem Z80 65536, aber es ist 0 bei dem 80x86-REPE-Prfix!).
    DAA-Flags korrigiert. Neue Software fr den parallelen Adapter: Jetzt
    auch Senden zum CPC mglich. Dank an Bernd Schmidt, der anmerkte, da
    ein Interrupt das R-Register um 1 erhht. Auerdem 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 '=' ntig. nderungen
    am Sound-Teil, Grafik-Teil: vertikale Gre durch VGA-CRTC.
    Joystick-Kalibrierung jetzt im Setup-Men, TAPE-Routinen beim Speichern
    verbessert. FDC-Teil verbessert: jetzt luft auch COPYMATE. Wechseln von
    Nicht-DATA-Disketten ohne "Read Error" mglich (es wurde immer Spur 0
    gesucht). Eine weitere Verzgerung in CPCTRANS, ich hoffe, Sie mssen
    jetzt nicht mehr die Turbo-Taste bettigen; Formatieren von Disketten-
    Abbildern. Nochmal PIO-Port-C korrigiert: er wird nach OUT &F700,n
    gelscht. Grere nderungen an der Konfigurations-Datei: Jetzt mit
    bedingter Konfiguration (#IFCPC, #ENDIF). Einige Schlsselwrter
    verndert (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 mglich: 128K Snapshots, zustzlich fr Multi-Modes erweitert.
    CPCPARA verbessert: jetzt knnen Sie Binrdateien mit Header
    kopieren. Vollkommen neugeschriebene, hoffentlich besser verstndliche
    Dokumentation. Erkennung des CPC 6128 Plus eingebaut. Noch mehr
    Port-Aliases eingebaut.

  - v1.2 (3.9.1994 - )
    Diese Version wurde verffentlicht. Es wurden hauptschlich 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 hhere 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 gendert wurde.
    Schneller-Z80: Einige Wort-Zugriffe in Byte-Zugriffe umgendert.
    Ist zwar ein bischen langsamer, aber der Computer hngt 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 hhere
    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 knnen.

  - v1.2d (16.3.1995 - )        (nur fr Leser der 'mailing list')
    Schneller-Z80: Interne nderungen, die unsichtbar fr den Benutzer
    bleiben, auer 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' (Auswhlbar im Setup-Menoder mit REALTIME=1).

  - v1.3 (16.4.1995 - )
    Poke-Datenbank zum einfachen 'Poken', franzsische Dokumentation,
    FDC-Format-Befehl (Re-formatieren von Disketten-Abbildern derselben
    Gre), 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.4a0 (21.3.1996 (v1.3c); verffentlicht in der c't 6/97)
    GUS-Sounduntersttzung von Ulrich Doewich; On-Line-Hilfe in Deutsch,
    Englisch, Franzsisch und Spanisch; komplette franzsische Dokumentation;
    Untersttzung fr 2 Joysticks; VESA-Videomodes fr hohe Auflsungen;
    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 gelscht (Problem bei HALT);

  - v1.4a1 (4.4.1996)

  - v1.4a2 (5.7.1996)


  - v1.5b0 (8.6.1998; verffentlicht in der c't 12/98)
    perfekter Soundblaster-Sound von Ulrich Doewich (dagitaler Sound mit
    Geruschen);
    teilweise spanische Dokumentation dank Ismael Salvador Igual;
    Autostart von BASIC-Programmen aus Disketten-Abbildern;
    4DOS-Beschreibungen bei der Datei-Auswahl;
    die Online-Hilfe erlaubt jetzt Themen mit Leerzeichen (und Sonderzeichen);
    Pfade in Konfigurationen werden jetzt relativ abgespeichert;
    Datenrate bei CPCTRANS v2.3g setzen;
    SNA2GIF v1.2: benutzerdefinierbare Farbpalette, bessere Autoskalierung;
    CPCPARA v1.2: schnelles Senden abschaltbar (z.B. fr Vortex);
    Poke-Datenbank erweitert;
    erlaubt die Benutzung der VESA-Videomodi, auch wenn sie nicht vom
    VESA-BIOS angezeigt werden (wird fr einige Noname S3 Virge Karten
    mit Standard-S3-BIOS bentigt);
    Die Batchdateien CPCxxx.BAT benutzen eine Konfigurationsdatei unter %TMP
    (dadurch kann CPCEMU auf einer CD-ROM aufgerufen werden und trotzdem
    die Konfiguration modifizieren);

  - v1.5b1
    Vollstndige spanische Dokumentation v1.5 dank Gerardo Briseo;
    Vollstndige Franzsische Dokumentation v1.5 dank Jean-Pierre MARQUET;
    Problem mit dem Joystick behoben (er funktionierte mit v1.5b0 nicht);
    Dateiauswahl: Jetzt bis zu 1500 Verzeichnis-Eintrge (vorher 500);
    direkte Druckerport-Ansteuerung bei PRINTER="";
    vorzeitiges VSYNC-Lschen wieder beseitigt (Platoon reagierte bei v1.5b0
    auf keine Eingabe);
    Mit EMS konnten Sie keinen 128K-Schnappschu laden, der eine
    RAM-Konfiguration <> &C0 hatte (z.B. &C2 in CP/M Plus);
    CPCPARA v1.2: das Flag, um schnelles Senden auszuschalten, hatte
    'negative Logik';



  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.
  ausgewhlt, 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 erlutert. Ich erhebe keinen
Anspruch auf Vollstndigkeit oder przise Definitionen. Die meisten
Begriffe sind im Blickwinkel des CPC erklrt.
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 reprsentiert. Die meisten Computer benutzen ASCII,
  bei dem der Buchstabe 'A' z.B. durch die Zahl 65 reprsentiert wird.
  PC und CPC benutzen auch ASCII. Im Locomotive-BASIC lt sich ein
  BASIC-Programm durch den Befehl SAVE"<Dateiname>",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 enthlt Befehle, die Sie normalerweise ber die
  Tastatur eingeben. Rufen Sie eine solche Datei auf, werden die
  Befehle automatisch ausgefhrt, als htten Sie sie der Reihe nach
  eingegeben.

BBS

Bildschirmmodus, -modi

Binrdatei
  Siehe Datei.

BLASTER-Umgebungsvariable
  Siehe Umgebungsvariable.

C64
  Ein von der Firma Commodore entwickelter Heimcomputer mit 64KB RAM,
  der sehr populr war. Vor allem durch das riesige Softwareangebot war
  er lange Zeit der Computer berhaupt. Spter wurde er als Spielcomputer
  durch den Commodore AMIGA abgelst, 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 mibraucht, der beim Ausdrucken normalerweise
  nicht bentigt wird.

CPC-Firmware-Manual
  Ein Buch ber den CPC, wo vor allem die Betriebssystem-Einsprnge
  des CPC erklrt werden.

CPC-Newsgruppe
  Eine Newsgruppe speziell fr den CPC. Sie heit comp.os.amstrad.8bit
  und existiert seit August 1994.

CP/M Plus (Abkrzung fr: control program for microcomputers)
  Betriebssystem der Firma Digital Research hauptschlich 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 auszulsen. 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 zusammengehrigen 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 Binrdateien mit beliebigen Bytes und normalerweise der Endung .BIN.
  Binrdateien knnen 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
  heit es auch LIM-EMS.
  Es gibt Hardware-, emuliertes und simuliertes EMS.
  Spezielle Speicherkarten stellen Hardware-EMS zur Verfgung. Es wurde
  hauptschlich 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, heit FTP.

Hardware
  Die Teile eines Computers, die "anfabar" sind, also z.B. angeschlossene
  Gerte 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 verndert 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 hherer Prioritt 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 ausgelst, 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 festgeltet 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 knnen 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 whrend des Bildaufbaus
  gendert wird. Auf dem CPC entstehen Zonen, in denen man in manchen
  Bereichen hohe Auflsung mit wenigen Farben und in anderen Bereichen
  niedrige Auflsung 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 knnen. Die sogenannte DOS-Kompatibilitts-Box.

Overscan
  Der Rahmen um die beschreibbare Flche auf dem Bildschirm.
  Auf dem PC ist er ziemlich schmal, es lt sich aber die Randfarbe
  ndern, z.B. in CPCEMU durch 'BORDER 10'. Auf dem CPC ist der Rahmen
  ziemlich breit, so da man nach Mglichkeiten untersucht hat, auch
  diesen Rand zu benutzen. Durch einen Programmiertrick ist es mglich,
  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(<Adresse>)' oder
  zu verndern 'POKE <Adresse>,<Wert>'. Programme mit vielen PEEKs
  und POKEs sind kaum zu verstehen, sind aber manchmal notwendig,
  um die Beschrnkungen 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
  verndert 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)
  Anschlustelle eines Computers zu einem Gert 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 groes 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 regelmig 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 Zustnde der Hardwarebausteine.
  Er enthlt 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 vom 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 regelmig auf die Bildschirmauffrischung
  warten mu.

Turbo-Pascal Compiler
  Pascal ist eine hhere Programmiersprache, die strukturiertes
  Programmieren frdert 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.

Umgebungsvariable

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 hheren Auflsungen
  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 knnen.
  Im Gegensatz zur Wiring-Box mssen bei einer Jumper-Box die
  Drahtbrcken festgeltet 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 knnen, wurden
  sogenannte Mnemonics eingefhrt, die von einem Assembler in
  Binrcode bersetzt werden. Der Befehl "LD A,B" ldt z.B. Register A
  mit dem Inhalt von Register B und wird mit dem Code 0x78 bersetzt.

Zahlendarstellung (bei Stellenwertsystemen)
  Je nach gewhlter 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 binre 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. Auerdem
  bentigen 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-Anfnger 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, Jrn 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 schnes C++ Buch:
- Eckel, Bruce: C++ Inside & Out, 1993 by Osborne McGraw-Hill

Tips, wie man ein verstndliches 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
erklrt wird oder vorkommt.

(noch nicht vollstndig)

#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
------
