home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 17 / CD_ASCQ_17_101194.iso / vrac / cpcemu12.zip / CPCEMU_D.TXT < prev    next >
Text File  |  1994-09-04  |  130KB  |  3,164 lines

  1.  
  2.     ▓▓▓▓▓▓▒  ▓▓▓▓▓▓▓▓▒▒      ▓▓▓▓▓▓▒   ▓▓▓▓▓▓▓▓▒  ▓▓▓▓    ▓▓▓▓▒▒  ▓▓▒▒     ▓▓▒▒
  3.   ▓▓▒▒▒▒▒▒   ▓▓▒▒▒▒▒▓▓▒▒   ▓▓▒▒▒▒▒▒    ▓▓▒▒▒▒▒▒   ▓▓▒▓▓  ▓▓▒▓▓▒▒  ▓▓▒▒     ▓▓▒▒
  4.  ▓▓▒▒        ▓▓▒▒   ▓▓▒▒  ▓▓▒▒         ▓▓▒▒▒      ▓▓▒▒ ▓▓▒▒ ▓▓▒▒  ▓▓▒▒     ▓▓▒▒
  5.  ▓▓▒▒        ▓▓▓▓▓▓▓▓▒▒   ▓▓▒▒         ▓▓▓▓▓▓▓▓▒  ▓▓▒▒ ▒▒▒  ▓▓▒▒  ▓▓▒▒     ▓▓▒▒
  6.  ▓▓▒▒        ▓▓▒▒▒▒▒▒     ▓▓▒▒         ▓▓▒▒▒▒▒▒   ▓▓▒▒      ▓▓▒▒  ▓▓▒▒     ▓▓▒▒
  7.   ▓▓▒▒       ▓▓▒▒          ▓▓▒▒        ▓▓▒▒       ▓▓▒▒      ▓▓▒▒  ▓▓▒▒     ▓▓▒▒
  8.     ▓▓▓▓▓▓▒  ▓▓▒▒            ▓▓▓▓▓▓▒   ▓▓▓▓▓▓▓▓▒  ▓▓▒▒      ▓▓▒▒   ▓▓▓▓▓▓▓▓▓▒▒
  9.     ▒▒▒▒▒▒▒  ▒▒▒▒            ▒▒▒▒▒▒▒   ▒▒▒▒▒▒▒▒▒  ▒▒▒▒      ▒▒▒▒   ▒▒▒▒▒▒▒▒▒▒
  10.  
  11.  
  12.  
  13.  
  14.                                   D O K U M E N T A T I O N
  15.  
  16.  
  17.                                   (c) Marco Vieth, August 1994
  18.  
  19.  
  20.  
  21.  
  22. -------------------------------------------------------------------------------
  23.  
  24.  
  25.  
  26.  
  27. Inhaltsverzeichnis:
  28.  
  29.        1.  Einführung
  30.            1.1  Hinweise zur Benutzung dieser Dokumentation
  31.            1.2  Copyright, Gewährleistungen
  32.            1.3  Was ist ein CPC ?
  33.            1.4  Was bietet CPCEMU ?
  34.  
  35.        2.  Installation von CPCEMU
  36.            2.1  Dateien im CPCEMU-Paket
  37.            2.2  Voraussetzungen und Installation
  38.            2.3  Tips zum Speicher und zur Soundkarte
  39.  
  40.        3.  Unterschiede zum Original
  41.            3.1  Tastatur
  42.            3.2  Laden von Programmen, Menüs
  43.                  (Diskette, Kassette, Snapshot)
  44.  
  45.        4.  Ändern der Konfiguration
  46.            4.1  Das Setup-Menü
  47.            4.2  Die Konfigurations-Datei
  48.            4.3  Kommandozeilen-Parameter
  49.  
  50.        5.  Datenübertragung CPC <-> PC
  51.            5.1  Diskette als Medium
  52.            5.2  Parallele Schnittstelle
  53.            5.3  Serielle Schnittstelle
  54.            5.4  Sonstige Möglichkeiten
  55.  
  56.        6.  Bezugsquellen, Hilfe bei Problemen, Danksagungen
  57.            6.1  CPC Software, woher bekommen ?
  58.            6.2  Neuigkeiten, Erfahrungsaustausch
  59.            6.3  Wenn Sie Fragen oder Anregungen haben
  60.            6.4  Andere Amstrad CPC Emulatoren
  61.            6.5  Pläne für weitere CPCEMU-Versionen
  62.            6.6  Danksagungen
  63.            6.7  Geschützte Warenzeichen
  64.  
  65.        7.  Interne Informationen zu CPCEMU
  66.            "Black Box", d.h. mit separatem Inhaltsverzeichnis
  67.  
  68.  
  69.        Anhang:
  70.  
  71.        A.1  Glossar
  72.        A.2  Literaturverzeichnis
  73.        A.3  Index
  74.  
  75.  
  76. ---------------------------
  77.  
  78.  
  79.  
  80.  
  81.  
  82. 1.  Einführung
  83. ≡≡≡≡≡≡≡≡≡≡≡≡≡≡
  84.  
  85.  
  86. Willkommen im Reich der Emulatoren!
  87.  
  88. Was, Sie wollen wissen, was CPCEMU ist?  Und was man mit dem merkwürdigen
  89. Programm anfangen kann, welches bei gelber Schrift auf blauem Grund nach
  90. jeder Eingabe immer "Syntax Error" schreibt?
  91.  
  92. Also, um Ihnen langes Suchen zu ersparen:
  93.         CPCEMU emuliert einen Amstrad CPC 464, 664 oder 6128 mit zahlreichen
  94.         Erweiterungen. Das Programm bildet also die Funktionsweise der
  95.         älteren Amstrad-Computer auf Ihrem neuen PC nach.
  96.  
  97.  
  98. Was das für einen Zweck hat ?
  99. Nun ja, wenn Sie das nicht schon wissen, benötigen Sie CPCEMU nicht.
  100. Hier noch ein paar Gründe:
  101.         - Nostalgie (och, wie schön war doch mein CPC ...)
  102.         - Bessere Performance gegenüber dem Original
  103.         - Bessere Entwicklungsumgebung
  104.         - Spielen
  105.         - Arbeiten (ja, ein CPC reicht normalerweise für Textverarbeitung)
  106.         - [                                  ] <- hier können Sie weitere
  107.                                                   Gründe eintragen.
  108.  
  109.  
  110.  
  111.  
  112. 1.1  Hinweise zur Benutzung dieser Dokumentation
  113. ================================================
  114.  
  115.   Ich habe versucht, die Dokumentation übersichtlich zu gestalten, falls Sie
  116.   (nach mehrmaligem Lesen?) doch noch Fragen haben, setzen Sie sich einfach
  117.   mit mir in Verbindung. Natürlich dürfen Sie das auch, wenn Ihnen alles
  118.   klar ist. Siehe Kapitel 6 (Bezugsquellen, ...).
  119.  
  120.   Im Kapitel 1 (Einführung) beschreibe ich Grundlagen zur
  121.   Dokumentation, zum Copyright und zum CPC allgemein.
  122.  
  123.   Im Kapitel 2 (Installation) geht es dann endlich los. Sie erfahren, wie
  124.   man CPCEMU installiert und startet.
  125.  
  126.   In Kapitel 3 (Unterschiede zum Original) führe ich einige Besonderheiten
  127.   auf, die Sie beachten müssen, wenn Sie einen richtigen CPC kennen und
  128.   den Emulator benutzen möchten. Dabei werde ich vor allem auf die Tastatur,
  129.   Disketten, Kassetten und Snapshots eingehen.
  130.  
  131.   In Kapitel 4 (Ändern der Konfiguration) beschreibe ich, wie Sie CPCEMU an
  132.   Ihre Bedürfnisse anpassen und vielleicht doch noch Ihr Lieblingsprogramm
  133.   zum Laufen bringen können.
  134.  
  135.   Kapitel 5 (Datenübertragung CPC <-> PC) sollten Sie lesen, wenn Sie noch
  136.   zahlreiche alte CPC Programme besitzen und nicht wissen, wie Sie diese auf
  137.   den PC bekommen. In diesem Kapitel werden die dafür vorhandenen
  138.   Zusatzprogramme beschrieben.
  139.  
  140.   In Kapitel 6 (Bezugsquellen, Hilfe bei Problemen) verrate ich Ihnen, wie
  141.   Sie immer die neuste Version bekommen können und an wen Sie sich bei Fragen
  142.   wenden dürfen.
  143.  
  144.   Kapitel 7 (Interne Informationen zu CPCEMU) ist für Profis gedacht.
  145.   Der "offizielle" Teil ist vor diesem Kapitel vorbei, denn hier kommt
  146.   das "Letzte".
  147.   Falls Sie wissen möchten, wie man so einen Emulator programmiert und was
  148.   man dabei beachten muß. Außerdem wird hier das in CPCEMU eingebaute
  149.   Debug-Menü erklärt, mit dem Sie *jederzeit* den Prozessor und den Speicher
  150.   analysieren können. Nur-Anwender sollten dieses Kapitel überspringen,
  151.   wenigstens beim ersten Lesen.
  152.  
  153.   Im Anhang A.1 gibt es dann noch ein Glossar, mit Beschreibungen der
  154.   wichtigsten Fachbegriffe, außerdem in A.2 ein Literaturverzeichnis
  155.   und in A.3 einen Index.
  156.  
  157.  
  158.  
  159. 1.2  Copyright, Gewährleistungen
  160. ================================
  161.  
  162.   CPCEMU wurde entwickelt von:
  163.  
  164.          Marco Vieth
  165.          Auf dem Ükern 4
  166.          33165 Lichtenau
  167.          Germany
  168.  
  169.  
  170.   CPCEMU ist Freeware, d.h. Sie dürfen das Programm *unentgeltlich* an
  171.   Freunde und Bekannte weitergeben. Betreibern von Mailboxen ist es erlaubt,
  172.   CPCEMU in Ihre Programmsammlungen zum "Downloaden" aufzunehmen.
  173.   Shareware-Händler dürfen dieses Programm mit in Ihren Bestand aufnehmen,
  174.   sofern sie von den Kunden nur eine Kopiergebühr verlangen.
  175.   Die Verbreitung darf nur in dem Archiv CPCEMUxx.xxx erfolgen.
  176.   Im Gegensatz zu Public Domain bedeutet Freeware nicht, das das Programm
  177.   "frei" ist und jeder damit machen kann was er will, sondern das Copyright
  178.   bleibt bei mir!
  179.  
  180.   Gewährleistung:
  181.   Ich lehne jegliche Gewährleistung ausdrücklich ab. Schäden, die durch
  182.   dieses Programm am Computer oder sonstwo entstehen, gehen zu Lasten des
  183.   Benutzers.
  184.   Auch gehe ich keinerlei Verpflichtung bzgl. Updates ein, obwohl ich
  185.   normalerweise möglichst schnell versuche, aufgetretene Fehler zu beseitigen.
  186.  
  187.  
  188.   Wenn Sie von dem Programm begeistert sind, können Sie mich unterstützen.
  189.   Ich bin für jede Rückmeldung und jeden Verbesserungsvorschlag dankbar.
  190.   Auch finanzielle Unterstützung lehne ich natürlich nicht ab.
  191.   Siehe Kapitel 6 (Bezugsquellen, ...)
  192.  
  193.  
  194.  
  195. 1.3  Was ist ein CPC ?
  196. ======================
  197.  
  198.   Falls Sie schon wissen, was ein CPC ist, gehen Sie einfach zum
  199.   nächsten Abschnitt über (1.4  Was bietet CPCEMU ?).
  200.  
  201.  
  202.  
  203.  
  204.   Sie sind noch da?
  205.  
  206.   Hier soll nicht der CPC "auseinandergenommen" werden, sondern ich gebe nur
  207.   eine grobe geschichtliche Beschreibung, damit Sie eine Vorstellung davon
  208.   haben, was ein CPC überhaupt ist.
  209.  
  210.  
  211.   CPC ist die Abkürzung für Colour Personal Computer.
  212.   Computer dieser Modellreihe wurden ab 1984 von der englischen Firma Amstrad
  213.   hergestellt und von Schneider in Deutschland vertrieben.
  214.   Es war die Zeit der Homecomputer Commodore C64, Sinclair Spectrum,
  215.   Atari 800XL, ..., als der CPC 464 auf den Markt kam.
  216.   Er hatte genausoviel RAM wie der Commodore C64 (nämlich 64 KB),
  217.   ein eingebautes Kassettenlaufwerk und Locomotive BASIC 1.0.
  218.   Es folgte der CPC 664 mit eingebautem 3" Diskettenlaufwerk und leicht
  219.   erweitertem Locomotive BASIC 1.1.
  220.   1985 kam dann der CPC 6128 mit 128 KB RAM und ansonsten gleichen
  221.   Merkmalen wie der CPC 664 auf den Markt.
  222.   Die 3" Disketten waren zwar sündhaft teuer, dafür aber stabiler als die
  223.   damals gängigen 5.25" Disketten (etwa wie die heutigen 3.5").
  224.   Außerdem war eine deutliche Geschwindigkeitssteigerung im Vergleich zur
  225.   Kassette zu bemerken, nicht wie beim C64...
  226.   Alle drei Modelle wurden wahlweise mit Farb- oder Grünmonitor ausgeliefert,
  227.   wobei das Computernetzteil im Monitor integriert war.
  228.   Inzwischen gab es noch 2-3 andere Modelle (die CPC+ Modelle), darauf werde
  229.   ich aber nicht eingehen.
  230.   Das BASIC war mit etwa 178 Befehlen leistungsfähig und schnell. Man konnte
  231.   damit Grafik, Sound und sogar Interruptbehandlung programmieren, ohne
  232.   auf PEEKs und POKEs ausweichen zu müssen.
  233.   Das Softwareangebot hat sich im Laufe der Jahre auch stark erweitert.
  234.  
  235.  
  236.  
  237.  
  238. 1.4  Was bietet CPCEMU ?
  239. ========================
  240.  
  241.   Es folgt eine Kurzübersicht darüber, was CPCEMU bietet. Erst im Laufe
  242.   der Dokumentation wird erklärt, was das alles bedeutet.
  243.  
  244.   Grafik in 3 Bildschirmmodi (x, y, Farben):
  245.        Modus 0: 180x200x16
  246.        Modus 1: 320x200x4
  247.        Modus 2: 640x200x2
  248.  
  249.   Sound wahlweise über PC-Lautsprecher oder Soundblaster (3 Kanal, Stereo)
  250.  
  251.   Speicher:
  252.        ROM: OS, BASIC, AMSDOS, bis zu circa 13 Zusatzroms (mit EMS)
  253.        RAM: 64KB, 128KB, bis zu 576KB Dk'tronics kompatibles RAM (mit EMS)
  254.  
  255.   Diskette: Spezielle Disketten-Abbilder, mit der Endung .DSK
  256.  
  257.   Kassette: Normale Dateien unter DOS, z.B. CPC BASIC- und Binärdateien
  258.        mit den Endungen .BAS bzw .BIN .
  259.  
  260.   Snapshots: Es lassen sich Schnappschüsse von laufenden Programmen
  261.        erzeugen, um sie später wieder fortsetzen zu können. Snapshots
  262.        haben normalerweise die Endung .SNA .
  263.  
  264.   Geschwindigkeit: Auf einem 386/33 mit EMS-Speicher ist CPCEMU normalerweise
  265.        schneller als das Original.
  266.  
  267.  
  268.  
  269.  
  270. 2.  Installation von CPCEMU
  271. ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
  272.  
  273. In diesem Kapitel erfahren Sie, was Sie für CPCEMU benötigen, wie Sie
  274. das Programm installieren und starten. Außerdem gebe ich kurz Tips zum
  275. Speicher und zur Soundkarte.
  276. Umkonfigurationen werden erst später im Kapitel 4 (Konfiguration)
  277. beschrieben.
  278.  
  279.  
  280.  
  281. 2.1  Dateien im CPCEMU-Paket
  282. ============================
  283.  
  284.   Sie haben das CPCEMUxx.xxx-Paket mit den folgenden Dateien erhalten:
  285.   (In Klammern steht das Verzeichnis, in dem die Datei nach der Installation
  286.   steht.)
  287.  
  288.   COPYMATE.ROM   ein ROM mit einem Kopierprogramm (ROM)
  289.   CPC464.BAT     startet einen CPC 464
  290.   CPC464.ROM     das ROM (Firmware+BASIC) eines CPC 464 (ROM)
  291.   CPC664.BAT     dito, nur CPC 664
  292.   CPC664.ROM     (ROM)
  293.   CPC6128.BAT    dito, nur CPC 6128
  294.   CPC6128.ROM    (ROM)
  295.   CPCADOS.ROM    das AMSDOS für alle CPCs (ROM)
  296.   CPCEMU.CFG     die Konfigurationsdatei für alle CPCs (oder CPCEMU0.CFG)
  297.   CPCEMU.HLP     eine Hilfe-Datei, erscheint bei F1
  298.   CPCEMU.EXE     der Emulator
  299.   CPCEMU_D.TXT   die deutsche Dokumentation (diese Datei)
  300.   CPCEMU_E.TXT   die englische Dokumentation
  301.   CPCPARA.BAS    Locomotive-BASIC-Programm für parallelen Adapter (UTILITY)
  302.   CPCPD1.DSK     ein Disketten-Abbild mit Beispiel-Public-Domain (DISC)
  303.   CPCREC.BAS     Locomotive-BASIC-Programm zum Empfangen (UTILITY)
  304.   CPCT0.BAT      Batch-Datei zu CPCTRANS.EXE (Beispiel) (UTILITY)
  305.   CPCTRANS.EXE   Transfer von Disketten-Abbildern (UTILITY)
  306.   CPMDISKS.DEF   Datei mit Formatdefinitionen für 22DISK (UTILITY)
  307.   FILE_ID.DIZ    Wie dieses Programm heißt
  308.   INSTALL.BAT    Installationsdatei
  309.   PCPARA.EXE     Die PC-Seite für den parallelen Adapter (UTILITY)
  310.   README_D.TXT   deutsches Liesmich
  311.   README_E.TXT   englisches Liesmich
  312.   ROMGET.BAS     Locomotive-BASIC-Programm zum Abspeichern von ROMs (UTILITY)
  313.  
  314.   Es sind auch die orginalen Amstrad-ROMs dabei.
  315.   Sie sind Copyright von Amstrad.
  316.  
  317.  
  318.  
  319. 2.2  Voraussetzungen und Installation
  320. =====================================
  321.  
  322.   Sie benötigen mindestens (nach oben wie immer keine Grenzen)
  323.   - PC AT 386 mit VGA-Grafikkarte
  324.   - MS-DOS, möglichst mit EMS,  oder
  325.     Novell DOS (DRDOS)  oder
  326.     OS/2 2.x DOS-Box.
  327.   - Falls Sie Programme aus ZIP-Archiven starten wollen, brauchen Sie zum
  328.     Entpacken das Programm PKUNZIP in Ihrem DOS-Suchpfad.
  329.  
  330.  
  331.   Die Installation selber ist ganz einfach:
  332.   Kopieren Sie das Archiv CPCEMUxx.xxx auf Ihre Festplatte und entpacken es
  333.   z.B. durch 'PKUNZIP CPCEMUxx.ZIP'. Rufen Sie INSTALL.BAT auf, um ein paar
  334.   Unterverzeichnisse zu erzeugen. Danach starten Sie einfach CPC464.BAT,
  335.   CPC664.BAT oder CPC6128.BAT, je nachdem, was für einen CPC Sie haben
  336.   wollen. Nach der Konfiguration drücken Sie <RETURN> und es erscheint
  337.   der wohlbekannte CPC Eröffnungsbildschirm mit gelber Schrift auf blauem
  338.   Grund. Mit F12 verlassen Sie den Emulator wieder.
  339.   Am besten probieren Sie das jetzt sofort einmal aus, und lesen anschließend
  340.   hier weiter ...
  341.  
  342.  
  343.  
  344.   Vielleicht war Ihnen der CPC doch nicht so wohlbekannt, weil dort "Amstrad"
  345.   anstatt "Schneider" in der Einschaltmeldung stand. Um das zu ändern, müssen
  346.   Sie sich allerdings bis Kapitel 4 (Ändern der Konfiguration) gedulden.
  347.   Dort wird auch beschrieben, wie Sie eine "deutschere" Tastatur einstellen
  348.   können.
  349.  
  350.   Falls irgendwelche schwerwiegenden Fehler beim Start auftreten, landen
  351.   Sie im sogenannten Debug-Menü, welches Sie mit 'q' <RETURN> wieder
  352.   verlassen können.
  353.   In solchen Fällen ist es manchmal nützlich, den Initialisierungsvorgang
  354.   in eine Datei umzuleiten, z.B. durch 'CPCEMU > INIT.TXT'. Dann können
  355.   Sie sich später das Problem in aller Ruhe ansehen.
  356.  
  357.  
  358.  
  359.  
  360. 2.3  Tips zum Speicher und zur Soundkarte
  361. =========================================
  362.  
  363.  
  364.   Hier zwei Tips, falls Sie eine besonders schnelle Emulation haben wollen
  365.   oder Ihre Soundkarte nicht erkannt wird.
  366.  
  367.  
  368.   2.3.1  Verwenden Sie EMS-Speicher
  369.   ---------------------------------
  370.  
  371.     Sie sollten auf Ihrem PC möglichst echten oder emulierten EMS-Speicher
  372.     haben (EMS=Expanded Memory System). Dadurch wird die Emulation besonders
  373.     unter BASIC erheblich beschleunigt.  Simuliertes EMS ist zu langsam.
  374.     Alles was Sie dazu brauchen, ist EMM (Expanded Memory Manager) nach dem
  375.     LIM 4.0 Standard (LIM EMS 4.0).
  376.     Beim Start des Emulators wird dann "EMS xxx Bytes ok." angezeigt.
  377.     Falls dort nicht "Sorry, using conventional memory" steht, dann
  378.     wird EMS benutzt.
  379.  
  380.     Beispiel unter OS/2 2.x (Einstellungen im Setup des Fensters):
  381.         EMS_FRAME_LOCATION = auto
  382.         EMS_HIGH_OS_MAP_REGION = 32     (oder mehr)
  383.         EMS_LOW_OS_MAP_REGION = 0       (oder mehr)
  384.  
  385.     Beispiel unter DOS in der CONFIG.SYS-Datei:
  386.         DEVICE=C:\DOS\HIMEM.SYS
  387.         DEVICE=C:\DOS\EMM386.EXE 1024
  388.         ...
  389.  
  390.  
  391.   2.3.2  Setzen Sie die BLASTER-Umgebung
  392.   --------------------------------------
  393.  
  394.     Damit CPCEMU Ihre Soundkarte benutzt, müssen Sie die BLASTER-
  395.     Umgebungsvariable entsprechend setzen. Starten Sie dazu das Programm
  396.     'SET-ENV.EXE' (oder 'SBTEST.EXE'), das dem Softwarepaket Ihrer
  397.     Soundkarte beiliegen sollte. Oder schreiben Sie in Ihre AUTOEXEC.BAT
  398.     die folgende Zeile, eventuell leicht modifiziert:
  399.         SET BLASTER=A220 I7 D1 T3
  400.  
  401.         Mit folgender Bedeutung:
  402.         A setzt die Basis-Adresse (0x220)
  403.         I setzt die Interrupt-Nummer IRQ (7)
  404.         D setzt den DMA-Kanal (1)
  405.         T setzt die Version der Soundkarte:
  406.           1 : Soundblaster 1.0/1.5
  407.           2 : Soundblaster Pro
  408.           3 : Soundblaster 2.0/2.5
  409.           4 : Soundblaster Pro 3/Pro 4.0
  410.           5 : Soundblaster Pro (Microchannel)
  411.  
  412.     Bei den Versionen 2, 4, 5 erfolgt die Soundausgabe in Stereo.
  413.  
  414.  
  415.  
  416.  
  417.  
  418. 3.  Unterschiede zum Original
  419. ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
  420.  
  421. In diesem Kapitel erläutere ich einige Besonderheiten, die CPCEMU vom
  422. Original unterscheiden. Da wäre zunächst die Tastatur, insbesondere die
  423. Belegung der Funktionstasten, dann das Laden von Diskette und Kassette.
  424.  
  425.  
  426.  
  427. 3.1  Tastatur
  428. =============
  429.  
  430.   Vielleicht ist Ihnen bei den ersten Experimenten schon aufgefallen, daß
  431.   manche Tasten andere Zeichen auf dem Bildschirm hervorrufen.
  432.   Das muß so sein! Um eine "deutschere" Tastaturbelegung zu bekommen,
  433.   gedulden Sie sich bis Kapitel 4 (Konfiguration von CPCEMU).
  434.   Außerdem haben Sie vielleicht bemerkt, daß die PC Funktionstasten nicht
  435.   den CPC Funktionstasten entsprechen und "wirres Zeug" aufrufen.
  436.   Vielleicht suchen Sie auch schon vergeblich die COPY Taste.
  437.   Ich versichere Ihnen, es sind wirklich alle Tasten vom CPC irgendwo
  438.   vorhanden.
  439.   Hier wird das Geheimnis gelüftet:
  440.  
  441.   - ALT, ALTgr  : COPY auf dem CPC
  442.  
  443.   - PAUSE-Taste : hält den PC an, bis sie erneut gedrückt wird. Falls also
  444.     die PC-Funktionstasten nicht mehr reagieren, haben Sie vielleicht die
  445.     PAUSE-Taste gedrückt.
  446.  
  447.   - Keypad (Zehnerblock) : Je nach Zustand von "NUM-LOCK" erfüllt das Keypad
  448.     verschiedene Funktionen. Bei "NUM-LOCK an" erreichen Sie die CPC-
  449.     Funktionstasten, sonst können Sie Joystickbewegungen ausführen.
  450.     Wollen Sie einen analogen PC-Joystick benutzen, erfordert das eine
  451.     Konfiguration und Sie müssen sich bis Kapitel 4 (Ändern der
  452.     Konfiguration) gedulden.
  453.  
  454.   Der Vollständigkeit halber sei noch erwähnt:
  455.   - Bild hoch/runter: Verschiebt den gesamten CPC Bildschirm
  456.     (Fragen Sie mich nicht, wofür das gut sein soll.)
  457.  
  458.   Und natürlich die Funktionstasten:
  459.   F1  : Die Hilfe-Taste. Zu Beginn vielleicht die wichtigste Taste überhaupt.
  460.   F2  : Wechsel zwischen CPC-Bildschirm (Standard-Sicht) und Meldungs-
  461.         Bildschirm (der mit dem roten Rahmen)
  462.   F3  : Einlegen einer Diskette, siehe Abschnitt 3.2.1
  463.   F4  : Soundausgabe ein/aus
  464.   F5  : Laden eines Snapshots (Schnappschusses), siehe Abschnitt 3.2.3
  465.   F6  : Speichern eines Snapshots, siehe Abschnitt 3.2.3
  466.   F7  : Konfigurations-Menü, siehe Abschnitt 4.1
  467.   F8  : Hard-Reset, wie eine Reset-Taste am CPC. Benutzen Sie diese Taste,
  468.         falls CTRL/SHIFT/ESC nicht mehr funktioniert.
  469.   F9  : reserviert für zukünftige Verwendung
  470.   F10 : Debug-Menü, wird im Kapitel 7 (Interne Informationen zu CPCEMU)
  471.         erläutert. Falls Sie mal aus versehen darin landen, drücken Sie
  472.         'r' für R)un oder 'q' für Q)uit.
  473.   F11 : reserviert für zukünftige Verwendung
  474.   F12 : sofortiger Abbruch des Emulators
  475.  
  476.  
  477.  
  478.  
  479. 3.2  Laden von Programmen, Menüs
  480. ================================
  481.  
  482.   In diesem Abschnitt erfahren Sie, wie Sie Programme von Diskette, Kassette
  483.   oder aus Snapshots (Schnappschüssen) laden. Natürlich werden auch
  484.   die entsprechenden Funktionen zum Abspeichern erklärt.
  485.   Im folgenden Abschnitt wird zusätzlich erklärt, wie Sie in den Menüs
  486.   Optionen ändern und auswählen.
  487.  
  488.  
  489.  
  490.   3.2.1  Laden von Diskette, Menüs
  491.   --------------------------------
  492.  
  493.     Normalerweise ist nach dem Start des Emulators das sogenannte AMSDOS
  494.     (Amstrad DOS) aktiv, d.h. alle Befehle zum Laden/Speichen sprechen die
  495.     Diskette an.
  496.     Sie brauchen nicht immer eine richtige CPC-Diskette in Ihr PC-Laufwerk
  497.     legen, abgesehen davon, daß Sie vielleicht nur 3" CPC-Disketten haben.
  498.     Um eine vernünftige Geschwindigkeit zu erreichen, befinden sich die
  499.     CPC-Disketten in sogenannten Disketten-Abbildern. Diese Dateien
  500.     dürfen sich irgendwo auf der Festplatte (oder auch einer High-Density-
  501.     Diskette) befinden.
  502.  
  503.     Hier einige BASIC-AMSDOS-Befehle:
  504.     - CAT <RETURN> : Es erscheint der Katalog
  505.  
  506.     - Durch 'RUN"<Dateiname>"'  laden und starten Sie ein Programm.
  507.       Sie dürfen die letzten Anführungsstriche auch weglassen. Dieser Befehl
  508.       funktioniert sowohl für BASIC-Programme mit der Endung .BAS als auch
  509.       für die meisten binären Programme mit der Endung .BIN .
  510.  
  511.       Hier eine einfache Möglichkeit, ein Programm zu starten:
  512.       1. Tippen Sie den Dateinamen ein, z.B.  'DISC', *nicht* <RETURN>
  513.       2. Halten Sie die CTRL-Taste fest und drücken Sie Cursor-links
  514.       (dadurch wandert der Cursor in die 1. Spalte)
  515.       3. Halten Sie die CTRL-Taste immer noch fest und drücken sie die ENTER-
  516.       Taste auf dem Zehnerblock
  517.       (es erscheint RUN"DISC   und das Programm wird gestartet)
  518.  
  519.     - LOAD"<Dateiname>" läd ein Programm, ohne es zu starten. BASIC-Programme
  520.       lassen sich dann mit LIST auflisten und durch RUN starten.
  521.       Binäre Programme lassen sich in den meisten Fällen nicht mit LOAD
  522.       laden. Versuchen Sie, vorher einen MEMORY-Befehl anzugeben, z.B.
  523.       'MEMORY &1fff'.
  524.  
  525.     - SAVE"<Dateiname>" speichert ein BASIC-Programm. Für Binärdateien sind
  526.       mehrere Parameter nötig, z.B. speichert
  527.       'SAVE"<Dateiname>",b,&c000,&4000' den Bildschirminhalt.
  528.  
  529.     - MERGE"<Dateiname>" gibt es auch noch und fügt ein BASIC-Programm an
  530.       ein schon im Speicher vorhandenes an.
  531.  
  532.  
  533.     Speziell vom AMSDOS werden noch folgende Erweiterungs-Befehle angeboten,
  534.     die durch einen senkrechten Strich eingeleitet werden:
  535.     - |A, |B zur Wahl des Laufwerks (geht auch mit |DRIVE,0 bzw. 1)
  536.     - |DIR,"<Dateimuster>" zum Anzeigen des Inhaltsverzeichnisses.
  537.       Wichtig: Auf einem CPC 464 folgendes eingeben:
  538.            a$="<Dateimuster>" : |DIR,@a$
  539.     - |ERA,"<Dateiname>" zum Löschen einer Datei.
  540.       Wichtig: Auf einem CPC 464 folgendes eingeben:
  541.            a$="<Dateiname>" : |ERA,@a$
  542.     - |REN,"<neuer Name>","<alter Name>" zum Umbenennen einer Datei.
  543.       Wichtig: Auf einem CPC 464 folgendes eingeben:
  544.            a$="<neuer Name>" : b$="<alter Name>" : |REN,@a$,@b$
  545.     - |TAPE  um auf Kassette umzuschalten, wird im nächsten Abschnitt
  546.       erläutert.
  547.     - |DISC  um auf Diskette umzuschalten.
  548.     Es gibt auch noch ein paar andere Befehle, die nicht so wichtig sind.
  549.  
  550.  
  551.  
  552.     Ein Menü
  553.     --------
  554.  
  555.     Bisher konnten Sie immer nur eine Diskette benutzen, nämlich diejenige,
  556.     die schon die ganze Zeit im Laufwerk "liegt". Um eine andere
  557.     Diskette einzulegen, drücken Sie F3. Es erscheint das Menü
  558.  
  559.                      Insert Disk
  560.                      Drive              0
  561.                      Side Select        0
  562.                      Write Protected    0
  563.  
  564.     Mit den Cursortasten <hoch/runter> wählen Sie eine Zeile aus. Sie
  565.     können dazu auch direkt Buchstaben eingeben (zurück mit <DEL>).
  566.     Ändern Sie Zahlen durch <Cursor links/rechts> oder durch Direkteingabe.
  567.     <RETURN> in einer beliebigen Zeile (z.B. in der ersten)
  568.     übernimmt die Änderungen, durch <ESC> würden sie verworfen.
  569.     "Drive" ist das gewünschte Laufwerk (0=A, 1=B); "Side Select" ist ein
  570.     Seitenauswahl-Schalter für doppelseitige Formate, bei einseitigen
  571.     Formaten hat er keine Auswirkung.
  572.     Mit "Write Protected" versehen Sie die Diskette mit einem Schreibschutz
  573.     (0=Nein, 1=Ja, mit Schreibschutz).
  574.  
  575.  
  576.  
  577.     Das Datei-Auswahl-Menü
  578.     ----------------------
  579.  
  580.     Drücken Sie <RETURN>, dann erscheint ein Disketten-Inhaltsverzeichnis.
  581.     Wählen Sie eine neue Diskette aus, mit den Methoden, wie oben
  582.     beschrieben.
  583.     Falls schon eine Diskette im Laufwerk liegt, brauchen Sie diese nicht
  584.     vorher herauszunehmen, wie im richtigen Leben. Das passiert hier
  585.     automatisch. Unten auf dem Bildschirm wird so eine Diskette aber
  586.     angezeigt.
  587.     Es werden immer höchstens 15 Dateinamen auf einmal angezeigt, bei mehr
  588.     Dateinamen steht unten "<more>".
  589.     - <POS1> geht zum ersten Dateinamen, <ENDE> zum letzten
  590.     - <Bild hoch/runter> blättert seitenweise durch die Dateinamen
  591.     - <RETURN> übernimmt den angewählten Dateinamen, <ESC> bricht ab.
  592.     Auch hier wählen Sie die Namen direkt an, wenn Sie Anfangsbuchstaben
  593.     drücken.
  594.  
  595.     ".." ist das Eltern-Verzeichnis; [A], [B], ... sind die verfügbaren
  596.     Laufwerke. Bitte wählen Sie nur Diskettenlaufwerke, wenn auch eine
  597.     Diskette darin liegt, ansonsten kann es zu Komplikationen kommen.
  598.  
  599.     Es ist auch möglich, Disketten aus ZIP-Archiven einzulegen. Dazu wählen
  600.     Sie ein ZIP-Archiv mit <RETURN>, worauf das Inhaltsverzeichnis wie ein
  601.     normales Verzeichnis angezeigt wird. Wählen Sie dann eine Datei aus
  602.     einem ZIP-Verzeichnis, wird sie automatisch in eine temporäre Datei
  603.     entpackt. Dazu benötigen Sie das Programm PKUNZIP im CPCEMU-Verzeichnis
  604.     oder im DOS-Suchpfad. Die temporären Dateien werden automatisch gelöscht,
  605.     sobald sie nicht mehr gebraucht werden. Etwaige Änderungen werden
  606.     *nicht* an dem ZIP-Archiv durchgeführt. Wenn Sie also auf einer Diskette
  607.     aus einem Archiv etwas speichern und anschließend eine andere einlegen,
  608.     ist der neue Inhalt wieder weg. Wenn Sie Disketten in Archiven ändern
  609.     wollen, entpacken Sie diese vor dem Start von CPCEMU.
  610.  
  611.  
  612.     Wie Sie selber Disketten-Abbilder erzeugen, erfahren Sie im
  613.     Kapitel 5 (Datenübertragung CPC <-> PC).
  614.  
  615.  
  616.  
  617.  
  618.   3.2.2  Laden von  und Speichern auf Kassette
  619.   --------------------------------------------
  620.  
  621.     Was ist überhaupt eine Kassette für CPCEMU ?
  622.     Nun, Dateien auf Kassette sind irgendwelche Dateien in den normalen
  623.     DOS-Verzeichnissen. Nach dem Befehl '|TAPE' sprechen die BASIC-Befehle
  624.     zum Laden/Speichern die Kassette an. Aber nur diejenigen, die nicht mit
  625.     "|" beginnen. So können Sie also die im
  626.     vorherigen Abschnitt beschriebenen
  627.     Befehle CAT, RUN", LOAD", SAVE", MERGE" auf die Kassette anwenden.
  628.     Hier dürfen Sie sogar den Dateinamen weglassen, es erscheint dann das
  629.     Dateiauswahl-Menü, welches Sie schon von der Diskette her kennen.
  630.     Bei SAVE"" können Sie entweder eine bestehende Datei überschreiben oder
  631.     in der letzten Zeile bei "(new name)" einen neuen Namen eingeben.
  632.  
  633.     Natürlich können Sie auch hier Programme aus ZIP-Archiven laden,
  634.     das Speichern wird ignoriert.
  635.  
  636.     So eine schöne Kassette haben Sie nur mit dem Emulator.
  637.  
  638.  
  639.  
  640.   3.2.3  Laden und Speichern von Snapshots
  641.   ----------------------------------------
  642.  
  643.     Snapshots sind Schnappschüsse, in denen nicht nur der aktuelle
  644.     Speicherinhalt, sondern auch die internen Zustände der anderen
  645.     Hardwarebausteine festgehalten werden, z.B. von der CPU.
  646.     Zu jeder Zeit können Sie das laufende Programm als Snapshot abspeichern
  647.     und später wieder laden, um es an genau der Stelle fortzusetzen, wo es
  648.     abgebrochen wurde.
  649.     Mit F6 speichern Sie ein Snapshot. Sie legen dabei fest, ob
  650.     es ein 64K oder ein 128K Snapshot sein soll. 128K Snapshots sind
  651.     natürlich nur sinnvoll, wenn auch die zweite Speicherbank benutzt wird.
  652.     Setzen Sie in dem Fall "128K Snapshot = 1", wobei 1=Ja bedeutet.
  653.  
  654.     Die Dateiauswahl erfolgt wie schon bei Diskette beschrieben, mit den
  655.     zusätzlichen Kommentaren zur Kassette (3.2.1 und 3.2.2).
  656.  
  657.     Später können Sie ein Snapshot mit F5 wieder laden.
  658.  
  659.  
  660.  
  661.  
  662.  
  663. 4.  Ändern der Konfiguration
  664. ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
  665.  
  666. In diesem Kapitel erfahren Sie, wie Sie CPCEMU an Ihre Bedürfnisse anpassen
  667. können. Es werden sowohl das Setup-Menü als auch die Konfigurationsdatei
  668. und die Kommandozeilen-Parameter beschrieben.
  669.  
  670.  
  671.  
  672. 4.1  Das Setup-Menü
  673. ===================
  674.  
  675.   Dieses ist die einfachste Methode, Einstellungen von CPCEMU zu ändern.
  676.   Allerdings können Sie über dieses Menü bei weitem nicht alle Einstellungen
  677.   ändern. Wenn Sie z.B zusätzliche ROMs benutzen wollen, müssen Sie sich
  678.   mit der Konfigurationsdatei vertraut machen, die ich im Abschnitt 4.2
  679.   beschreibe.
  680.  
  681.   Wie bei der Beschreibung der Tastatur schon angedeutet, erreichen Sie das
  682.   Setup-Menü mit der Funktionstaste F7.
  683.   Es erscheint folgendes Menü:
  684.  
  685.        Menüpunkt:                Wert:  Deutsche Übersetzung:
  686.   -----------------------------------------------------------------------
  687.        Sound                      1     (Soundausgabe)
  688.        Colour                     1     (Farbmonitor)
  689.        Screen offset (ymove)      1     (Bildschirmverschiebung)
  690.        Set VSYNC position         1     (Position des VSYNC)
  691.        Allow palette change       1     (Farbänderungen erlauben)
  692.        Multi Mode                 1     (Multi-Modus)
  693.        Interrupt Frequency        300   (Interrupt-Frequenz)
  694.        Don't forget INTs (CPM+ 0) 0     (keine Interrupts auslassen)
  695.        Delay                      0     (Verzögerung)
  696.        Soundblaster Delay         1     (Verzögerung für Soundblaster)
  697.        Keybrd Language (UK GR FR) 0     (Länderwahl für Tastatur)
  698.        Calibrate Joystick               (Joystick kalibrieren)
  699.        DOS Shell                        (DOS Shell)
  700.        Continue                         (Emulation fortsetzen)
  701.  
  702.  
  703.   Die Menüpunkte wählen Sie genauso an, wie schon bei 3.2.1 (Laden von
  704.   Diskette) beschrieben.
  705.  
  706.   - Sound (Sound ein/aus)  (1)
  707.     Schaltet die Soundausgabe ein/aus, wobei 1=ein, 0=aus bedeutet.
  708.     Stattdessen können Sie auch die Funktionstaste F4 drücken.
  709.  
  710.   - Colour (Grün- oder Farbmonitor)        (1)
  711.     Wählt eine grüne oder eine bunte Farbdarstellung. Farbig = 1.
  712.  
  713.   - Screen Offset (Bildschirmverschiebung)         (0)
  714.     Gibt die Anzahl der Zeilen an, um die der Bildschirm verschoben werden
  715.     soll. Diese Option wird normalerweise nicht benötigt.
  716.     Den gleichen Effekt können Sie auch mit den Tasten <Bild hoch> und
  717.     <Bild runter> erreichen. Mögliche Werte reichen von 0=keine Verschiebung
  718.     bis etwa 25 Zeilen Verschiebung.
  719.  
  720.   - Set VSYNC position (Position des VSYNC setzen)       (5)
  721.     Diesen Wert brauchen Sie normalerweise nicht verändern, es kann aber
  722.     auch nichts Schlimmes passieren, wenn Sie es dennoch tun.
  723.     Bei einem Monitor erfolgt einmal pro Bildaufbau der vertikale
  724.     Strahlenrücklauf. Während dieser Zeit ist normalerweise ein bestimmtes
  725.     Bit gesetzt, das sogenannte VSYNC-Bit (vertical synchronisation).
  726.     Hiermit bestimmen Sie die Position, an der dieses Bit gesetzt
  727.     sein soll. Mögliche Werte sind 0 bis 5 .
  728.     Weitere Informationen finden Sie im Kapitel 7.
  729.  
  730.   - Allow palette change (Farbänderungen erlauben) (1)
  731.     Falls Sie diese Option auf 0 setzen, werden Farben nicht mehr geändert.
  732.     Das ist sinnvoll, wenn Sie vor lauter Farbflimmern nichts mehr erkennen.
  733.     Bei einem Hardware-Reset durch die Funktionstaste F8 wird diese
  734.     Option automatisch wieder gesetzt.
  735.     Tip: Wenn Sie Farbänderungen verboten haben und völlig falsche Farben
  736.     dargestellt werden, drücken Sie einfach 2 mal F2.
  737.  
  738.   - Multi Mode (0)
  739.     Falls Programme mehrere Bildschirmmodi gleichzeitig auf dem Bildschirm
  740.     verwenden, sollten Sie diese Option anschalten. Dann versucht CPCEMU,
  741.     Bildschirmmodus-Änderungen auch anzuzeigen.
  742.     Standardmäßig ist diese Option ausgeschaltet, da sie nicht immer richtig
  743.     funktioniert.
  744.  
  745.   - Interrupt Frequency (Interrupt-Frequenz) (300)
  746.     Hiermit ändern Sie die Frequenz, mit der Interrupts
  747.     (Unterbrechnugen) generiert werden. Auf einem richtigen CPC sind das
  748.     immer 300 Hertz.  Wenn Sie diesen Wert erhöhen, laufen die meisten
  749.     Programme schneller ab, es bleibt aber weniger Rechenzeit zwischen den
  750.     Interrupts übrig. Falls Sie einen langsameren Rechner besitzen, ist es
  751.     bei manchen Programmen sinnvoll, diesen Wert zu verringern,
  752.     vielleicht auf 100 bis 200. Mögliche Werte sind 18 bis etwa 600.
  753.     Weitere Informationen finden Sie im Kapitel 7.
  754.  
  755.   - Don't forget ints (CPM+ 0) (Keine Interrupts auslassen) (0 oder 1)
  756.     Noch so eine Option, die man nicht erklären kann, ohne weiter auszuholen.
  757.     Lassen Sie sie am besten so, wie sie ist.
  758.     Ohne EMS (Expanded Memory) ist sie auf 0, d.h. Interrupts können schon
  759.     mal vergessen werden. Das ist natürlich nicht wünschenswert,
  760.     aber bei 1 würde die Emulation zu langsam.
  761.     Mit EMS ist diese Option = 1, d.h. es wird versucht, keine Interrupts
  762.     auszulassen.
  763.     Wichtig:
  764.     CP/M Plus scheint nur mit EMS und trotzdem ausgeschalteter Option
  765.     zu laufen !
  766.     Weitere Informationen finden Sie im Kapitel 7.
  767.  
  768.   - Delay (Verzögerung) (0)
  769.     Mit dieser Option bremsen Sie die Emulation ab, falls sie zu schnell
  770.     ist. 0 bedeutet keine Verzögerung, 100 ist eine geringe Verzögerung,
  771.     300 entsprechend mehr.
  772.  
  773.   - Soundblaster Delay  (Verzögerung für Soundblaster) (1)
  774.     Setzt eine Verzögerungszeit, die nach jedem Schreibzugriff auf
  775.     die Soundkarte gewartet wird. Bei geringeren Werten wird die
  776.     Soundausgabe beschleunigt. Falls Probleme mit Ihrer Soundkarte auftreten
  777.     sollten, setzen Sie diesen Wert auf etwa 35 .
  778.  
  779.   - Keyboard Language (Länderwahl für Tastatur) (0)
  780.     Mit dieser Option wählen Sie eine andere Tastaturbelegung.
  781.     0 = UK, d.h. Normaleinstellung
  782.     1 = GR, also "deutschere" Tastatur. Es ist leider nicht möglich,
  783.         eine vollständig deutsche Tastenbelegung zu haben, da man Zeichen
  784.         mit SHIFT nicht in Zeichen ohne SHIFT umwandeln kann.
  785.         Auf jeden Fall sind aber 'Z' und 'Y' vertauscht, zusätzlich ein
  786.         paar sonstige Zeichen.
  787.     2 = FR, also "französischere" Tastatur. Nachdem ich eine "deutschere"
  788.         Tastenbelegung eingeführt hatte, wollten die Franzosen natürlich
  789.         auch eine eigene haben. Hier gibt es die gleichen Probleme wie
  790.         bei der deutschen.
  791.  
  792.   - Calibrate Joystick (Joystick kalibrieren)
  793.     Sie kennen es sicher von anderen Programmen, daß Sie einen analogen
  794.     PC Joystick zuerst kalibrieren müssen. Wählen Sie diesen Menüpunkt mit
  795.     <RETURN>,  bewegen Sie dann den Joystick erst nach links oben, dann nach
  796.     rechts unten.
  797.     Es werden einige Parameter angezeigt. Falls Sie den Joystick immer
  798.     betriebsbereit haben wollen, übernehmen Sie diese Parameter in die
  799.     sogenannte Konfigurationsdatei (siehe nächster Abschnitt).
  800.     Sie müssen die Kalibrierung allerdings wiederholen, wenn Sie z.B.
  801.     die Taktfrequenz ändern.
  802.  
  803.   - DOS Shell
  804.     Öffnet eine DOS-Shell, die Sie durch Eingabe von 'EXIT' wieder
  805.     verlassen können.
  806.  
  807.   - Continue (fortsetzen)
  808.     Hiermit werden die geänderten Werte übernommen und die Emulation wird
  809.     fortgesetzt. Den gleichen Effekt bekommen Sie auch, wenn Sie auf
  810.     einem beliebigen Menüpunkt <RETURN> drücken (außer bei Joystick
  811.     kalibrieren).
  812.  
  813.  
  814.  
  815.  
  816.  
  817. 4.2  Konfigurationsdatei
  818. ========================
  819.  
  820.   Kommen wir zu der wichtigsten Methode, CPCEMU zu konfigurieren.
  821.   Beim Start liest CPCEMU standardmäßig die Konfigurationsdatei CPCEMU.CFG.
  822.   Der Aufbau dieser Datei soll jetzt beschrieben werden, so daß Sie selber
  823.   leicht z.B. eigene ROMs einbinden können, die Tastatur dauerhaft
  824.   umstellen, ...
  825.  
  826.   Werfen wir einmal einen Blick in die CPCEMU.CFG Datei:
  827.  
  828.     ;CPCEMU.CFG - The Configuration File for CPCEMU
  829.     ;...
  830.     ;
  831.     ;configuration for CPC 464, 664 and 6128
  832.     ;
  833.     SHOW_CONFIG=YES          ;should the configuration be displayed ?
  834.     ROM_PATH = .\ROM         ;path to ROM images
  835.     PIO_PORT_B = %00111110   ;use %00111010 for "Schneider"
  836.  
  837.  
  838.   Schon an diesen paar Zeilen läßt sich der einfache Aufbau erkennen:
  839.   Kommentare beginnen mit einem Semikolon (";").
  840.   Optionen werden geändert, indem ein Schlüsselwort (hier
  841.   SHOW_CONFIG, ROM_PATH und PIO_PORT_B) gefolgt von "=" gefolgt von einem
  842.   <Wert> stehen. <Wert> kann je nach Schlüsselwort eine Zeichenkette
  843.   oder auch ein numerischer Wert sein. Numerische Werte können nicht nur
  844.   in dezimaler Form, sondern auch in hexadezimaler ("0x") oder binärer ("%")
  845.   Zahlendarstellung angegeben werden. Anstatt %00111110 können Sie also
  846.   auch 62 oder 0x3e schreiben.
  847.  
  848.   Sie brauchen also nur die Bedeutung der Schlüsselwörter zu kennen, um
  849.   die Optionen leicht mit einem Texteditor an Ihre Bedürfnisse anzupassen.
  850.  
  851.   Zuerst einmal alle Schlüsselwörter alphabetisch sortiert:
  852.     #ENDIF, #IFCPC, AMSDOS_DI, AMSDOS_SPDUP, BREAK_MASK, COLOUR, DELAY,
  853.     DRIVE_A, DRIVE_B, EMS_EI, INT_FREQ, INT_RESUME, JOY_CALIBRATE,
  854.     KBD_LANGUAGE, MULTIMODE, PIO_PORT_B, PRINTER, RAM_SIZE, ROM_BLOCK,
  855.     ROM_PATH, SBLASTER, SB_DELAY, SHOW_CONFIG, SNAPSHOT, SOUND,
  856.     TAPE_BYPASS, TAPE_PATH, TMP_PATH
  857.  
  858.  
  859.   Es folgt die Bedeutung der Schlüsselwörter:
  860.   (Die Werte in Klammern sind Standardwerte, wenn das Schlüsselwort nicht
  861.   in der Konfigurationsdatei vorkommt.)
  862.  
  863.   - #ENDIF, #IFCPC
  864.     Diese Steuerbefehle ermöglichen eine bedingte Konfiguration je nach
  865.     gewünschtem CPC:
  866.       #IFCPC 464  ... #ENDIF
  867.       #IFCPC 664  ... #ENDIF
  868.       #IFCPC 6128 ... #ENDIF (Standard)
  869.     Somit kommen Sie mit einer Konfigurationsdatei für alle CPCs aus.
  870.     In den Batch-Dateien CPC464.BAT, CPC664.BAT, CPC6128.BAT wird der
  871.     gewünschte CPC durch Kommandozeilen-Parameter gewählt. Diese werden im
  872.     nächsten Abschnitt beschrieben.
  873.  
  874.   - AMSDOS_DI = {YES,NO}               (NO)      (AMSDOS disable)
  875.     Verbietet die Initialisierung des AMSDOS. Das ist sinnvoll, wenn Sie
  876.     viele Programme von Kassette laden möchten, ohne vorher immer den
  877.     Befehl '|TAPE' eingeben zu müssen.
  878.     Natürlich könnten Sie auch einfach die entsprechende ROM_BLOCK-Zeile
  879.     mit dem AMSDOS-ROM kommentieren (mit ROM_BLOCK legen Sie die zu
  880.     ladenden ROMs fest), dann wäre aber gar kein AMSDOS ROM mehr vorhanden.
  881.     So bleibt es für bestimmte Befehle noch erreichbar.
  882.  
  883.   - AMSDOS_SPDUP = {YES,NO}            (YES)     (AMSDOS Speedup)
  884.     Erlaubt eine AMSDOS-ROM-Modifikation, bei der Diskettenzugriffe
  885.     beschleunigt werden. Dies wird durch Minimieren der Motor-Wartezeiten
  886.     erreicht, die für den Emulator natürlich unnötig sind.
  887.  
  888.   - BREAK_MASK = <Zahl>                (0xffff)
  889.     Nur für Debugging-Zwecke. Durch die Maske in der Konfigurationsdatei
  890.     (0xfffb) werden Fehlermeldungen bei unzulässigen Befehlen unterdrückt.
  891.     Ändern Sie diesen Wert möglichst nicht !
  892.  
  893.   - COLOUR = {YES,NO}                  (YES)
  894.     Erlaubt die Benutzung einer farbigen Palette. Anstatt eines Grünmonitors
  895.     haben Sie dann einen Farbmonitor.
  896.     Diese Option kann auch im Setup-Menü geändert werden.
  897.  
  898.   - DELAY = <Zahl>                     (0)
  899.     Entspricht der gleichen Einstellung im Setup-Menü. Mit dieser Option
  900.     bremsen Sie die Emulation ab. 0=keine Verlangsamung, 100=ein wenig
  901.     langsamer.
  902.  
  903.   - DRIVE_A = <Pfad+Dateiname>         ()
  904.     Setzt den Pfad, wo sich die Disketten-Abbilder befinden.
  905.     Geben Sie als Pfad einen Dateinamen an, wird diese "Diskette" beim
  906.     Start des Emulators automatisch in Laufwerk A "gelegt".
  907.     Im Abschnitt 3.2.1 habe ich das Laden von und Speichern auf Diskette
  908.     beschrieben.
  909.  
  910.   - DRIVE_B = <Pfad+Dateiname>         ()
  911.     Ist das gleiche wie DRIVE_A, nur für Laufwerk B.
  912.  
  913.   - EMS_EI = {YES,NO}                  (YES)     (EMS enable)
  914.     Erlaubt der Benutzung von EMS-Speicher (Expanded Memory System).
  915.     Falls kein EMS-Speicher vorhanden ist oder zu wenig zur Verfügung steht,
  916.     wird automatisch konventioneller Speicher benutzt.
  917.     Weitere Informationen zur EMS-Speichernutzung finden Sie in 2.3.1 und
  918.     im Kapitel 7.
  919.  
  920.   - INT_FREQ = <Zahl>                  (300)     (Interrupt Frequency)
  921.     Hiermit ändern Sie die Frequenz, mit der Interrupts (Unterbrechnugen)
  922.     generiert werden. Diese Option können Sie auch im Setup-Menü ändern
  923.     (siehe Abschnitt 4.1).
  924.  
  925.   - INT_RESUME = {YES,NO}              (YES)     (Interrupt resume)
  926.     Entspricht der Option "Don't forget INTs (CPM+ 0)" im Setup-Menü.
  927.     Bitte lesen Sie es dort nach.
  928.  
  929.   - JOY_CALIBRATE = <xcen> <ycen> <xdead> <ydead>       ( 0 0 0 0 )
  930.     Hier geben Sie eine Joystick-Kalibrierung für Ihren Analog-Joystick an.
  931.     Benutzen Sie die Werte, die nach der Joystick-Kalibrierung
  932.     im Setup-Menü angezeigt werden (siehe Abschnitt 4.1).
  933.     Dies ist ein Schlüsselwort, dem 4 Werte zugewiesen werden, diese
  934.     müssen Sie auch immer angeben. Vier Nullen bedeutet nicht kalibriert.
  935.  
  936.   - KBD_LANGUAGE = {UK, GR, FR}        (UK)      (Keyboard Language)
  937.     Hier legen Sie hier dauerhaft fest, was für eine Tastenbelegung Sie
  938.     haben wollen. Wie schon im Setup-Menü gibt es UK (England, entspricht 0),
  939.     GR (Deutschland, entspricht 1) und FR (Frankreich, entspricht 2).
  940.  
  941.   - MULTIMODE = {YES, NO}              (NO)
  942.     Hier erlauben Sie die Benutzung sogenannter Multi-Modes.
  943.     Auch diese Option können Sie während des Programmablaufs im Setup-Menü
  944.     ändern.
  945.  
  946.   - PIO_PORT_B = <Zahl>                (%00111110)
  947.     Durch ein paar Lötbrücken kann man aus einem Amstrad-CPC einen
  948.     Schneider-CPC und noch viele andere machen. Außerdem wurde eine
  949.     Bildwiederholfrequenz von 50 oder 60 Hertz festgelegt (im Emulator
  950.     immer 70 Hertz).
  951.     Um einen Schneider-CPC zu haben, setzen Sie einfach den Wert
  952.     %00111010 (oder 0x3A) ein.
  953.     Der Firmenname ist in den Bits b3,b2,b1 verschlüsselt:
  954.         Isp (000), Triumph(001), Saisho(010), Solavox(011),
  955.         Awa(100), Schneider(101), Orion(110), Amstrad(111)
  956.  
  957.   - PRINTER = <Pfad+Dateiname>         ()
  958.     Hier legen Sie eine Drucker-Datei fest, in die
  959.     Druckerausgaben umgeleitet werden. Beim jedem Start des Emulators wird sie
  960.     gelöscht. Nachdem Sie den Emulator verlassen haben, schicken Sie diese
  961.     Datei mit 'COPY <Dateiname> prn:' zu Ihrem Drucker.
  962.  
  963.   - RAM_SIZE = <Wert>                  (128)
  964.     Ändert die Größe des RAM in KB.
  965.     Mögliche Werte sind  64, 128, 192, 256, 320, 384, 448, 512, 576.
  966.     Höhere Werte als 128 sind nur möglich, wenn Sie EMS Speicher haben.
  967.  
  968.   - ROM_BLOCK = <ROM-Nummer>  <Dateiname>  <Offset>
  969.     Beschreibt, was für ein ROM geladen werden soll.
  970.     Sie müssen diese Zeile für jedes zu ladende ROM wiederholen.
  971.     Jedes ROM besitzt dabei eine Größe von 0x4000 Bytes.
  972.     Die maximale Anzahl der ROMs ist etwa 20, wenn Sie EMS-Speicher haben.
  973.     - <ROM-Nummer> ist die Nummer die das ROM bekommen soll,
  974.       d.h., mit der es durch 'OUT &DF00,num' ausgewählt wird.
  975.       0         = Vordergrund-ROM (z.B. BASIC)
  976.       1 - 251   = Hintergrund-ROMs. Auf einem CPC 664/6128 werden
  977.                   die ROMs 1-15 bei einem Reset automatisch
  978.                   initialisiert (bei einem CPC 464 nur 1-7).
  979.                   Das AMSDOS ROM hat immer die Nummer 7.
  980.       255       = Lower-ROM (z.B. OS, hat nur im Emulator diese
  981.                   Nummer.)
  982.     - <Dateiname> ist die Datei, in der sich das ROM-Abbild im
  983.       Verzeichnis ROM_PATH befindet.
  984.     - <Offset> ist eine Anzahl von Bytes, die in der Datei vor
  985.       dem gewünschten ROM stehen. Ein AMSDOS-Header wird dabei
  986.       automatisch überlesen, bleibt also unberücksichtigt.
  987.       Mit Angabe dieses Offsets ist es möglich, mehrere ROMs
  988.       in einer Datei zu haben. Bei den Einträgen
  989.           ROM_BLOCK =   255     CPC6128.ROM     0x0000
  990.           ROM_BLOCK =   0       CPC6128.ROM     0x4000
  991.       befinden sich also Lower-ROM und Vordergrund-ROM direkt
  992.       nacheinander in derselben Datei.
  993.  
  994.     Vielleicht ist Ihnen eine Besonderheit an diesem Schlüsselwort
  995.     aufgefallen, dem immer drei Werte zugewiesen werden.
  996.     Deshalb dürfen Sie keine Werte weglassen, auch wenn sie null sind.
  997.     Auch ein Offset vom 0x0000 ist also immer mit anzugeben.
  998.  
  999.   - ROM_PATH = <Pfadname>              (.\)
  1000.     Setzt den Pfad, wo sich die ROM-Abbilder befinden, aus denen CPCEMU
  1001.     beim Start die ROMs liest. Die Konfigurationsdatei setzt das
  1002.     Verzeichnis .\ROM .
  1003.     Die ROMs selber werden mit dem Schlüsselwort ROM_BLOCK festgelegt.
  1004.  
  1005.   - SBLASTER = {YES,NO}                (YES)     (Soundblaster)
  1006.     Erlaubt die Benutzung einer Soundblaster-Karte zur Soundausgabe.
  1007.     Falls Sie keine haben, wird automatisch der PC-Lautsprecher benutzt.
  1008.     Wichtig:
  1009.     Damit CPCEMU die Soundkarte findet, müssen Sie die
  1010.     BLASTER-Umgebungsvariable setzen. Sehen Sie in 2.3.2 nach, falls Sie
  1011.     wissen wollen, wie das geht.
  1012.  
  1013.   - SB_DELAY = <Zahl>                  (35)      (Soundblaster Delay)
  1014.     Setzt eine Verzögerungszeit, die nach jedem Schreibzugriff auf
  1015.     die Soundkarte gewartet wird. Durch die Konfigurationsdatei wird
  1016.     dieser Wert auf 1 gesetzt, um Soundausgaben zu beschleunigen.
  1017.     Falls Probleme mit Ihrer Soundkarte auftreten sollten, setzen Sie
  1018.     diesen Wert auf etwa 35 .
  1019.     Auch diese Option können Sie während des Programmablaufs im Setup-Menü
  1020.     ändern.
  1021.  
  1022.   - SHOW_CONFIG = {YES,NO}             (YES)     (Show Configuration)
  1023.     Erlaubt das Anzeigen der Konfigurations-Übersicht beim Start des
  1024.     Emulators.
  1025.  
  1026.   - SNAPSHOT = <Pfad+Dateiname>        ()
  1027.     Setzt den Pfad, wo sich die Snapshots befinden.
  1028.     Geben Sie als Pfad einen Dateinamen an, wird dieser Snapshot automatisch
  1029.     gestartet.
  1030.     Im Abschnitt 3.2.3 habe ich das Das Laden und Speichern von Snapshots
  1031.     beschrieben.
  1032.  
  1033.   - SOUND = {YES,NO}                   (YES)
  1034.     Erlaubt die Soundausgabe. Sie können die Soundausgabe dann jederzeit mit
  1035.     der Funktionstaste F4 oder vom Setup-Menü aus verhindern.
  1036.     Sound wird entweder über eine Soundblaster-Karte oder den internen
  1037.     PC-Lautsprecher ausgegeben.
  1038.  
  1039.   - TAPE_BYPASS = {YES,NO}             (YES)
  1040.     Falls Sie die "Kassette" verwenden möchten, muß diese Option auf
  1041.     "YES" stehen.
  1042.     Weitere Informationen zum TAPE-Bypass finden Sie im Kapitel 7.
  1043.  
  1044.   - TAPE_PATH = <Pfadname>             (.\)
  1045.     Setzt den Pfad, wo sich die "Kassetten"-Dateien befinden. Die
  1046.     Konfigurationsdatei setzt das Verzeichnis ".\TAPE".
  1047.     Im Abschnitt 3.2.2 habe ich das Das Laden von und Speichern auf Kassette
  1048.     beschrieben.
  1049.  
  1050.   - TMP_PATH = <Pfadname>              (.\)      (Temp Path)
  1051.     Setzt den Pfad, in dem CPCEMU temporäre Dateien erzeugt. Dieser wird
  1052.     nur benötigt, wenn Sie aus einem ZIP-Archiv Dateien auswählen und
  1053.     CPCEMU diese mit PKUNZIP entpackt.
  1054.  
  1055.  
  1056.  
  1057.  
  1058. 4.3  Kommandozeilen-Parameter
  1059. =============================
  1060.  
  1061.   Wie bei vielen anderen Programmen üblich, können Sie auch bei CPCEMU
  1062.   Kommandozeilen-Parameter angeben. Zur Zeit sind jedoch nur einige wenige
  1063.   möglich.
  1064.  
  1065.   Rufen Sie CPCxxx.BAT einfach mit den folgenden Optionen auf:
  1066.        /f : startet die schnelle Emulation (Standardeinstellung)
  1067.        /s : startet eine langsame Emulation, die Sie normalerweise nicht
  1068.             benötigen.
  1069.        /d : startet den Debug-Modus, sehen Sie im Kapitel 7 nach.
  1070.        /x : verbietet EMS Benutzung
  1071.        /c <Datei> : gibt eine andere Konfigurationsdatei an, falls nicht
  1072.             die Standard-Datei CPCEMU.CFG benutzt werden soll.
  1073.             Siehe vorherigen Abschnitt.
  1074.        /v <CPC> : definiert den gewünschten CPC 464, 664 oder 6128
  1075.                   durch  /v 464, /v 664 bzw. /v 6128.
  1076.  
  1077.        /h : zeigt einen Hilfsbildschirm an
  1078.  
  1079.   Wenn Sie eine unbekannte Option angeben, wird automatisch "/d" verwendet.
  1080.   Anstatt dem "/" können Sie auch das UNIX-übliche "-" verwenden.
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087. 5.  Datenübertragung CPC <-> PC
  1088. ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
  1089.  
  1090. Was nützt Ihnen der schönste Emulator, wenn Sie keine Programme dafür
  1091. haben oder keine Möglichkeit sehen, die Programme von Ihrem CPC zum
  1092. PC zu bekommen ?
  1093. Im Kapitel 6 (Bezugsquellen) sind auch einige Quellen aufgeführt, wo
  1094. Sie CPC-Software bekommen können.
  1095. In diesem Kapitel soll es darum gehen, wie Sie eigene CPC-Software auf
  1096. den PC transferieren.
  1097. Für die verschiedenen Möglichkeiten (Diskette, über parallele oder
  1098. serielle Schnittstelle) werden auch Hilfsprogramme vorgestellt.
  1099.  
  1100.  
  1101.  
  1102. 5.1  Diskette als Medium
  1103. ========================
  1104.  
  1105.   Dies ist meistens die einfachste und schnellste Möglichkeit, die
  1106.   CPC-Software auf den PC zu bekommen.
  1107.   Sie brauchen dazu nur einen CPC mit Zweitlaufwerk in richtiger Größe.
  1108.   Richtige Größe bedeutet dabei, daß die Disketten von der Größe her
  1109.   in Ihr PC-Laufwerk passen müssen. Ansonsten könnten Sie versuchen,
  1110.   ein 3" Laufwerk an den PC anzuschließen.
  1111.   Der PC wird dann mit einem Zusatzprogramm überredet, die
  1112.   CPC-Diskettenformate zu lesen.
  1113.   Dieses Zusatzprogramm heißt CPCTRANS.
  1114.  
  1115.  
  1116.   5.1.1  Das Diskettentransferprogramm CPCTRANS
  1117.   ---------------------------------------------
  1118.  
  1119.     Ich habe CPCTRANS geschrieben, um Disketten-Abbilder aus
  1120.     CPC-Disketten zu erstellen. Es werden sowohl die normalen CPC-Formate
  1121.     als auch das doppelseitige VORTEX-Format gelesen.
  1122.     CPCTRANS ist nicht dafür gedacht, kopiergeschützte Formate zu übertragen!
  1123.     Wenn Sie CPCTRANS ohne Parameter aufrufen, erhalten Sie eine kurze
  1124.     Übersicht.
  1125.     Rufen Sie CPCTRANS ähnlich wie den DOS COPY-Befehl auf:
  1126.     'CPCTRANS <Quelle> <Ziel> <Optionen>'.
  1127.     Beispiele:
  1128.     'CPCTRANS B: DISK1.DSK' kopiert die Diskette im Laufwerk B in
  1129.     das Disketten-Abbild DISK1.DSK. Falls diese nicht existiert,
  1130.     wird sie neu erzeugt.
  1131.     'CPCTRANS DISK1.DSK B:' kopiert das Disketten-Abbild zurück
  1132.     auf die Diskette im Laufwerk B.
  1133.  
  1134.     Der erste Befehl funktioniert nur für das DATA-Format.
  1135.     Für andere Formate müssen Sie eine Option angeben:
  1136.       /f 0    : DATA-Format (Standard)
  1137.       /f 1    : DATA-Format, doppelseitig
  1138.       /f 2    : SYSTEM-Format
  1139.       /f 3    : SYSTEM-Format, doppelseitig
  1140.       /f 4    : VORTEX-Format, doppelseitig
  1141.       /f 5    : unbekannt, CPCTRANS versucht es selber zu erkennen.
  1142.       /f 6    : +3DOS
  1143.     Beachten Sie das Leerzeichen zwischen "/f" und der Zahl.
  1144.     Beim doppelseitigen DATA- und SYSTEM-Format wählen Sie die Seite A oder B
  1145.     im Disketten-Menü (3.2.1).
  1146.  
  1147.     Beim Zurückschreiben eines Disketten-Abbildes muß die Diskette
  1148.     schon mit dem richtigen Format formatiert sein! Dazu können Sie
  1149.     22DISK benutzen, was im nächsten Abschnitt beschrieben wird.
  1150.  
  1151.     Wollen Sie die B-Seite einer Diskette kopieren, wählen Sie Seite B
  1152.     durch die Option "/s 1".
  1153.     Durch 'CPCTRANS B: DISK1.DSK /s 1' wird also nur die B-Seite der
  1154.     Diskette kopiert, mit 'CPCTRANS DISK1.DSK B: /s 1' wird sie wieder
  1155.     zurückgeschrieben.
  1156.  
  1157.     Durch die Option '/v' schalten Sie "verify" ein, d.h. es wird
  1158.     überprüft, ob die Daten korrekt kopiert wurden. Das ist zwar ein
  1159.     bißchen langsamer, erhöht aber die Sicherheit.
  1160.  
  1161.     Mit der Option '/t <Anzahl>' geben Sie an, wieviele Spuren (tracks)
  1162.     kopiert werden sollen. Normalerweise werden immer 40 Spuren kopiert,
  1163.     nur beim VORTEX-Format sind es 80.
  1164.  
  1165.     Eine Besonderheit ist die Option '/q' (Quick-Format). Hiermit
  1166.     formatieren Sie ein Disketten-Abbild, anstatt den Inhalt
  1167.     einer Diskette hineinzukopieren.
  1168.     Trotzdem müssen Sie als ersten Parameter ein gültiges Laufwerk angeben,
  1169.     auch wenn es nicht benutzt wird.
  1170.     Beispiel:
  1171.     'CPCTRANS a: SYSTEM.DSK /f 2 /q' formatiert SYSTEM.DSK als
  1172.     SYSTEM-Format-Diskette.
  1173.  
  1174.  
  1175.  
  1176.   5.1.2  Das Formatier- und Kopierprogramm 22DISK von SYDEX
  1177.   ---------------------------------------------------------
  1178.  
  1179.     Dieses Programm ist als Shareware erhältlich. Durch geeignete
  1180.     Definitionen können Sie sämtliche CP/M-Formate benutzen!
  1181.     Leider sind gerade die CPC-Formate in der Prüfversion von 22DISK nicht
  1182.     enthalten. Deshalb habe ich diese Formate in der Datei CPMDISKS.DEF
  1183.     definiert. Sie befindet sich auch im UTILITY-Verzeichnis.
  1184.     Was können Sie mit 22DISK machen ?
  1185.     Sie können einzelne Dateien zwischen DOS und den Fremdformaten hin- und
  1186.     herkopieren, Disketten formatieren und so weiter.
  1187.     Kopieren Sie die CPC-Dateien einfach in das TAPE-Verzeichnis, und
  1188.     lesen Sie im Abschnitt 3.2.2 nach, wie Sie Programme von Kassette laden.
  1189.  
  1190.  
  1191.  
  1192. 5.2  Parallele Schnittstelle
  1193. ============================
  1194.  
  1195.   Falls Sie noch einen CPC ohne Zweitlaufwerk besitzen, haben Sie die
  1196.   Möglichkeit, den Datentransfer über die parallele Schnittstelle zu
  1197.   tätigen.
  1198.   Ursprünglich hatte Gilles Molinari diese Idee und auch Turbo-Pascal
  1199.   Programme dazu geschrieben. Nur gehören Sie vielleicht zu den Benutzern,
  1200.   die keinen Turbo-Pascal Compiler auf den CPC haben, somit könnten Sie
  1201.   damit nicht viel anfangen. Ich habe sie deshalb in Locomotive-BASIC
  1202.   umgeschrieben und durch die zusätzliche Richtung PC->CPC ergänzt.
  1203.   Es ist also möglich, Programme vom CPC zum PC und umgekehrt zu übertragen!
  1204.   CPC und PC werden dabei an den Druckerschnittstelle gekoppelt.
  1205.   Wenn Sie einen CPC 6128 haben und sich die Anschlüsse mal genauer ansehen,
  1206.   werden Sie feststellen, daß Sie mit einem parallelen PC-Druckerkabel die
  1207.   beiden Computer hervorragend verbinden können!  Doch tun Sie es noch nicht,
  1208.   lesen Sie erst weiter.
  1209.  
  1210.   Zwei kleine Hürden müssen Sie überwinden:
  1211.   1. Einen kleinen Adapter bauen
  1212.   2. Ein kurzes Programm in den CPC eintippen
  1213.  
  1214.   Warten Sie!   Blättern Sie nicht gleich weiter!
  1215.  
  1216.   Beide Schritte sind ganz einfach, denn
  1217.   1. geht auch OHNE LÖTEN    und
  1218.   2. ist wirklich ziemlich kurz (etwa 30 Zeilen BASIC)
  1219.  
  1220.   Zu 2.
  1221.   Das Programm, was Sie brauchen, heißt CPCREC.BAS und befindet sich im
  1222.   UTILITY-Verzeichnis. Es ist in ASCII-Form abgespeichert, so daß Sie
  1223.   es problemlos ausdrucken und in Ihren CPC eintippen können.
  1224.   Es erfüllt in etwa die Aufgabe eines dünnen Seiles, das Sie durch ein
  1225.   Rohr schicken, um ein dickes Tau nachziehen zu können.
  1226.   Das dünne Seil ist hier CPCREC.BAS und empfängt (receive) Programme
  1227.   vom PC. Mit diesem "Progrämmchen" holen Sie das Programm CPCPARA.BAS
  1228.   (das dicke Tau) auf Ihren CPC. Damit können Sie sowohl Programme
  1229.   empfangen als auch senden. CPCREC.BAS brauchen Sie dann nicht mehr.
  1230.   Auf der PC-Seite haben Sie die ganze Zeit PCPARA.EXE.
  1231.   Natürlich sind auch diese beiden Programme im UTILITY-Verzeichnis.
  1232.  
  1233.  
  1234.   Doch bevor Sie CPCREC.BAS eintippen, kommen wir zu 1.
  1235.  
  1236.  
  1237.   Der parallele Adapter
  1238.   ---------------------
  1239.  
  1240.   Sie brauchen also einen Adapter zwischen dem PC-Druckerkabel und dem
  1241.   PC-Druckeranschluß.
  1242.   Am einfachsten geht das mit einer RS-232 Wiring-Box, die einen 25pin
  1243.   D-Sub Stecker und eine 25pin D-Sub Buchse hat. Durch Stecken von
  1244.   kurzen Drahtbrücken realisieren Sie damit beliebige Verbindungen zwischen
  1245.   den beiden Seiten. Normalerweise wird so eine Box - wie ihr Name
  1246.   schon sagt - zur Anpassung von RS-232 Schnittstellen benutzt. Serielle
  1247.   Verbindungen scheinen nämlich nie auf Anhieb zu funktionieren.
  1248.   Bei unserem Adapter benutzen Sie die Box einfach "andersherum", d.h.
  1249.   der Stecker kommt an den PC, in die Buchse kommt dann das PC-Druckerkabel.
  1250.  
  1251.   Stecken wir die Box eben zusammen:
  1252.  
  1253.         Stecker für den PC-                Buchse für das Drucker-
  1254.         Druckeranschluß (links):           kabel (rechts):
  1255.  
  1256.                Pin 2     ---------------       Pin 11
  1257.                Pin 10    ---------------       Pin 8
  1258.                Pin 11    ---------------       Pin 1
  1259.                Pin 12    ---------------       Pin 7
  1260.                Pin 13    ---------------       Pin 6
  1261.                Pin 15    ---------------       Pin 5
  1262.                Pin 19    ---------------       Pin 19
  1263.  
  1264.  
  1265.   Wie Sie sehen, brauchen Sie nicht alle 25 Drahtbrücken sondern nur 7.
  1266.   Meine Wiring-Box habe ich bei einem Elektronik-Versand für 13 DM bekommen.
  1267.  
  1268.   Sie können es natürlich auch günstiger haben, indem Sie eine sogenannte
  1269.   Jumper-Box verwenden, bei der Sie die Drahtbrücken festlöten müssen.
  1270.   Diese sollte etwa 7 DM kosten.
  1271.   Noch günstiger sind Stecker, Buchse, Adapter-Gehäuse und ein paar Drähte.
  1272.   Das hat mich etwa 3 DM gekostet.
  1273.  
  1274.  
  1275.   Sie haben jetzt mit dem Adapter die beiden Computer verbunden und das
  1276.   "Progrämmchen" CPCREC.BAS in den CPC eingetippt.
  1277.   Wie geht es nun weiter ?
  1278.  
  1279.   1. Auf dem CPC:  CPCREC.BAS starten (nachdem Sie es abgespeichert haben)
  1280.   2. Auf dem PC :  'PCPARA /s CPCPARA.BAS' starten.
  1281.  
  1282.   Jetzt wird es kritisch, denn wenn auf dem PC keine Fehler gemeldet werden,
  1283.   ist alles gut verlaufen, das Programm ist auf dem CPC.
  1284.   Falls der PC überhaupt nichts sendet und nur eine Fehlermeldung ausgibt,
  1285.   ist die Verbindung wahrscheinlich nicht in Ordnung.
  1286.   Falls er etwas sendet ("Sending block xx"), aber zwischendurch Fehler
  1287.   auftreten, ist Ihr PC vielleicht zu schnell oder zu langsam. Die Richtung
  1288.   PC->CPC ist nämlich ziemlich zeitkritisch.
  1289.   Auf meinem 386/33 darf ich kein EMS installiert haben, sonst ist es zu
  1290.   langsam. Auf einem besonders schnellen Computer könnte es aber nötig
  1291.   Sein, die Taktfrequenz herunterzuschalten. Benutzen Sie es unter DOS,
  1292.   nicht unter OS/2 oder Windows.
  1293.  
  1294.   Wenn es überhaupt nicht klappen sollte, benachrichtigen Sie mich.
  1295.   In der Zwischenzeit könnten Sie das etwas längere CPCPARA.BAS eintippen,
  1296.   die Richtung CPC->PC funktioniert nämlich immer, auch unter OS/2, da das
  1297.   nicht viel anders ist als ausdrucken. Der PC spielt dabei den Drucker.
  1298.  
  1299.  
  1300.   Benutzen Sie PCPARA folgendermaßen:
  1301.   - PCPARA /r : startet PCPARA im Empfangsmodus
  1302.   - PCPARA /s <Datei> : sendet die <Datei> zum CPC, falls Sie als
  1303.     Datei 'TRM:' angeben, bekommen Sie ein Terminal.
  1304.  
  1305.   Bei den meisten Programmen im UTILITY-Verzeichnis bekommen Sie übrigens
  1306.   eine Übersicht über die Optionen, wenn Sie nur den Dateinamen eingeben.
  1307.  
  1308.  
  1309.   WARNUNG:
  1310.   Auch wenn der Aufbau ganz simpel ist, kann ich doch nicht
  1311.   garantieren, daß Sie dabei nicht irgend etwas kaputtmachen. Wenn z.B.
  1312.   nachher Ihr CPC-Druckerport defekt ist, dann ist das schade und wohl
  1313.   eher ein dummer Zufall. Wahrscheinlich wäre er auch dann kaputtgegangen,
  1314.   wenn Sie nur Ihren Drucker angeschlossen hätten.
  1315.   Ich kenne z.B. einen ehemaligen CPC-Benutzer, dessen Tastatur mal nicht
  1316.   mehr funktionierte. Nach der Reperatur sagte man ihm, er dürfe den
  1317.   Joystick auch nicht bei angeschaltetem Computer einstöpseln!
  1318.   (Also ich mache das immer ?!?)
  1319.   Also:
  1320.   Der Adapter wurde nicht nur von mir schon mehrfach erfolgreich nachgebaut.
  1321.   Und auch Benutzer, die "mal vergessen" haben, den Adapter zwischen der
  1322.   Verbindung anzubringen, berichten von keinen Problemen.
  1323.  
  1324.  
  1325.   Weitere Informationen zum parallelen Adapter finden Sie im Kapitel 7.
  1326.  
  1327.  
  1328.  
  1329.  
  1330. 5.3  Serielle Schnittstelle
  1331. ===========================
  1332.  
  1333.  
  1334.   Falls Sie eine serielle Schnittstelle am CPC haben, können Sie die
  1335.   Daten natürlich auch seriell übertragen.
  1336.  
  1337.  
  1338.  
  1339. 5.4  Sonstige Möglichkeiten
  1340. ===========================
  1341.  
  1342.   Es gibt auch abenteuerlichere Methoden, an seine Software zu kommen.
  1343.  
  1344.   - 3" Diskettenlaufwerk an den PC anschließen. Manche (ältere) sollen
  1345.     direkt an den 5.25"-Anschluß passen.
  1346.  
  1347.   - Mit Hilfe des Spectrum+3 (oder so) die 3" Disketten einlesen, in das
  1348.     Spectrum-Format konvertieren und mit einem Hilfsprogramm auf den PC
  1349.     übertragen. Dieses Hilfsprogramm soll dem Spectrum-Emulator Z80 von
  1350.     Gerton Lunter beiliegen.
  1351.  
  1352.   - Als es noch nötig war, irgendwie an die ROMs zu kommen, hat mir ein
  1353.     Benutzer von seiner Methode berichtet:
  1354.     Er hat den ROM-Chip aus dem CPC ausgebaut und anstatt des VGA-BIOS in
  1355.     seine Grafikkarte eingesetzt. Mit einem kleinen Programm konnte er
  1356.     dann den Inhalt auslesen.
  1357.  
  1358.   - Vielleicht finden Sie noch Ihre eigene Methode ?
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364. 6.  Bezugsquellen, Hilfe bei Problemen, Danksagungen
  1365. ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
  1366.  
  1367. In diesem Kapitel erfahren Sie, woher Sie CPC-Software beziehen können und
  1368. an wen Sie sich bei weiteren Fragen wenden können.
  1369. Außerdem erwähne ich noch einige andere Amstrad-Emulatoren.
  1370.  
  1371.  
  1372. 6.1  Sie möchten CPC Software ?
  1373. ==============================
  1374.  
  1375.   Kein Problem. Wenn Sie Internet-Zugang haben.
  1376.   Wie für die Spectrum-Emulatoren gibt es mittlerweile auch für den
  1377.   (oder die) CPC-Emulatoren "anonyme" Archive, von denen Sie per FTP
  1378.   Software bekommen können.
  1379.  
  1380.   - ftp.nvg.unit.no:/pub/cpc, dank Arnt Gulbrandsen
  1381.  
  1382.   - ftp.demon.co.uk:/pub/cpm, dank Paul Martin
  1383.     Außerdem ist Paul Martin bereit, Ihnen seine "CP/M Plus ROMs"
  1384.     zuzuschicken, falls Sie das originale Amstrad CP/M Plus haben.
  1385.     Sie müssen das natürlich irgendwie beweisen.
  1386.  
  1387.   - [ sunshine.informatik.uni-wuerzburg.de:/pub/joscho/cpcemu ]
  1388.  
  1389.  
  1390.   Folgende BBS haben CPC-Software:
  1391.  
  1392.   - Aspects 2:250/107 : +44 617920260, in United Kingdom
  1393.  
  1394.   - Genesis the 8bit generation 2:320/220, in France, open in mid-august,
  1395.   ask the phone number to a FIDO sysop after the 15th august.
  1396.  
  1397.  
  1398.  
  1399. 6.2  Sie möchten immer auf dem laufenden bleiben ?
  1400. ==================================================
  1401.  
  1402.  
  1403.   Sie möchten immer die neuste Version von CPCEMU haben ?
  1404.   Sie möchten informiert werden, wenn eine neue veröffentlicht wird ?
  1405.  
  1406.   Mittlerweile gibt es eine eigene CPC-Newsgruppe !
  1407.   Sie heißt comp.sys.amstrad.8bit.
  1408.   Dort finden Diskussionen rund um den CPC (und eben auch CPCEMU) statt.
  1409.   Hier können Sie natürlich ganz unverbindlich Ihre Erfahrungen austauschen.
  1410.  
  1411.   Falls Sie keine Möglichkeit haben, die Newsgruppe zu lesen, schreiben
  1412.   Sie mir kurz eine E-Mail, um in eine "Mailing-List" aufgenommen zu werden.
  1413.   Sie werden dann immer über Neuerungen informiert.
  1414.   Meine Adresse steht im nächsten Abschnitt.
  1415.   Mit normaler Post können Sie bei mir (oder bei David, siehe unten)
  1416.   natürlich auch nachfragen, aber nicht das Rückporto vergessen.
  1417.   Falls Sie mir eine Anerkennung zukommen lassen haben, fühle ich mich
  1418.   normalerweise verpflichtet, Ihnen mindestens 1 bis 2 Mal die neuste
  1419.   Version zukommen zu lassen.
  1420.  
  1421.  
  1422.  
  1423. 6.3  Wenn Sie Fragen oder Anregungen haben
  1424. ==========================================
  1425.  
  1426.  
  1427.   Dann wenden Sie sich direkt an mich:
  1428.  
  1429.        Marco Vieth
  1430.        Auf dem Ükern 4
  1431.        33165 Lichtenau
  1432.        Germany
  1433.  
  1434.        Tel. 05292/1366
  1435.  
  1436.        Internet: ali@uni-paderborn.de
  1437.  
  1438.        Wie Sie vielleicht schon wegen der Internet-Adresse vermuten,
  1439.        studiere ich an der Uni Paderborn, und zwar Informatik im
  1440.        9. Semester (WS 94/95).
  1441.  
  1442.  
  1443.  
  1444.   Falls Sie Englisch sprechen oder schreiben, können Sie sich
  1445.   auch an David Cantrell wenden:
  1446.  
  1447.        David Cantrell
  1448.        116, London Road
  1449.        Bexhill-on-sea
  1450.        East Sussex
  1451.        TN39 4AA
  1452.        England
  1453.  
  1454.        Phone: ?
  1455.  
  1456.        Internet: test@gmcl.co.uk
  1457.  
  1458.  
  1459.   David hat mir angeboten, mich bei der "Flut von Anfragen" zu unterstützen.
  1460.   Er ist gerade dabei, ein Firmware-Manual für den CPC einzuscannen,
  1461.   so daß er bald computerisierte CPC-Literatur anbieten kann.
  1462.  
  1463.  
  1464.   Ich akzeptiere jede Form von Unterstützung, ob ideell oder finanziell.
  1465.   (30 DM bis 50 DM wären angemessen.)
  1466.   Normalerweise ist auf die Post (wenigstens) soviel Verlaß, daß Geldscheine
  1467.   in zugeklebten Briefen auch ankommen.
  1468.   (Die "Unglücksfälle", die manchmal bei "Wie bitte ?" vorgestellt werden,
  1469.    sind hoffentlich nur die Ausnahme. Wenn z.B. ein Güterwaggon vollbeladen
  1470.    mit Postsendungen monatelang in einem Ausbesserungswerk vergessen
  1471.    wurde ...)
  1472.   Falls Sie den bargeldlosen Zahlungsverkehr bevorzugen:
  1473.     Marco Vieth, Sparkasse Paderborn, BLZ: 47250101, Kto.Nr: 54111091
  1474.  
  1475.   Auch wenn Sie mir kein Geld schicken, beantworte und berücksichtige ich
  1476.   normalerweise alle Ihre Fragen und Anregungen (und David sicher auch).
  1477.  
  1478.  
  1479.  
  1480. 6.4  Andere Amstrad CPC Emulatoren
  1481. ==================================
  1482.  
  1483.   Noch Anfang 1994 hätte ich gesagt, CPCEMU ist der einzige Emulator für den
  1484.   Amstrad CPC. Mittlerweile sind mir jedoch drei andere bekannt:
  1485.  
  1486.   - SIMCPC:
  1487.     Vermutlich der erste CPC-Emulator überhaupt.
  1488.     CPC-Emulator für PC/XT/AT   (c) 1989, 90 by GHE, Aachen
  1489.     Nur schwarzweiß, aber mit zusätzlichen ROMs;
  1490.     insgesamt nur eine "Bierlaune".
  1491.  
  1492.   - CPCEMUII (?):
  1493.     Wird seit Oktober 1993 von Paco Lopez aus Spanien entwickelt.
  1494.     Ist jetzt auf SIMTEL verfügbar. Er benutzt dasselbe Disketten-Format
  1495.     wie CPCEMU.
  1496.  
  1497.   - CPE:
  1498.     In Entwickung von Bernd Schmidt aus Aachen. Durch einen speziellen
  1499.     50 Hertz Bildschirm-Modus werden einige Farbbalken exakt nachgebildet.
  1500.     Außerdem werden Multi-Modes und Overscan unterstützt.
  1501.  
  1502.  
  1503.  
  1504. 6.5  Pläne für weitere CPCEMU-Versionen
  1505. =======================================
  1506.  
  1507.   - Exakteres Timing der Z80-Befehle
  1508.   - Schnelles Hardware-Scrolling
  1509.   - Bessere Multi-Modes
  1510.   - Overscan
  1511.   - Bildschirm bei Größenänderung zentriert
  1512.   - Übertragen von Disketten mit dem parallelen Adapter
  1513.   - direktes Laden von CPC-Disketten
  1514.   - Besserer Sound (eventuell mit Geräuschen)
  1515.   - Laden von CPC-Kassetten über die Druckerschnittstelle oder über
  1516.     eine Soundblaster-Karte
  1517.   - Multiface II <-> Snapshot Konverter
  1518.  
  1519.  
  1520.  
  1521.  
  1522. 6.6  Danksagungen
  1523. =================
  1524.  
  1525.   - Besonderen Dank an Jürgen Weber, der mir nicht nur sehr viele Tips
  1526.     gegeben und Verbesserungsvorschläge gemacht hat, sondern vor allem die
  1527.     schnelle Z80-Emulation aus seinem CP/M-Emulator ZSIM beigesteuert hat.
  1528.  
  1529.                   Jürgen G. Weber
  1530.                   Wiesentalstraße 1
  1531.                   74523 Schwäbisch Hall
  1532.                   Federal Republic of Germany
  1533.  
  1534.                   Email: weberj@dia.informatik.uni-stuttgart.de
  1535.  
  1536.  
  1537.   - Außerdem Dank an Bernd Schmidt. Da Bernd einen eigenen Emulator schreibt,
  1538.     standen wir oft vor denselben Problemen. Nur wer selber versucht, einen
  1539.     solchen Emulator zu schreiben, kann ermessen, welche Details überall
  1540.     Probleme bereiten. Es gibt eben keine Dokumentation zum CPC, in der die
  1541.     gesamte Spezifikation enthalten ist. Das meiste muß durch Probieren
  1542.     herausgefunden werden.
  1543.  
  1544.   - Dank an Emmanuel Roussin für seinen unermüdlichen Einsatz für
  1545.     den CPC. Er hat wesentlich bei der Erstellung der Newsgruppe
  1546.     mitgewirkt und mir monatelang sein Multiface II geliehen, damit
  1547.     ich es doch in den Emulator einbaue.
  1548.  
  1549.   - Dank auch an Arnt Gulbrandsen, aus dessen JPP-Quellcode ich die
  1550.     Ideen für den Keyboard-Handler und die Joystickabfrage bekam.
  1551.     JPP ist übrigens ein sehr guter Spectrum-Emulator.
  1552.  
  1553.   - Dank an Martin Zacho für die Joystick Routine.
  1554.  
  1555.   - Dank an Fernando J. Echevarrieta Fernandez, der als erster
  1556.     herausfand, daß Version v0.8 keinen CPC 664 emulierte.
  1557.  
  1558.   - Dank an Gilles Molinari für das Transferprogramm für den parallelen
  1559.     Adapter.
  1560.  
  1561.   - Dank an Paul Martin, der die englische Dokumentation zu Version 1.0
  1562.     korrigiert hat.
  1563.  
  1564.   - Dank an Mark Haigh-Hutchinson, der durchgesetzt hat, daß Spiele der
  1565.     Firma Vortex nun legal in einem Archiv verfügbar sein dürfen.
  1566.  
  1567.   - Dank an Martin Young für seine außergewöhnlichen Ideen, einen Z80 zu
  1568.     emulieren.
  1569.  
  1570.   - Dank an Linh Hsiesh für zahlreiche Verbesserungsvorschläge, wovon die
  1571.     meisten mittlerweile realisiert sein dürften.
  1572.  
  1573.   - Dank an Fred Harris für den Brief, den er wegen der ROMs an AMSTRAD
  1574.     geschrieben hatte.
  1575.  
  1576.   - Dank an Amstrad, insbesondere an Cliff Lawson, daß ich die ROMs benutzen
  1577.     darf. Natürlich bleibt das Copyright bei Amstrad.
  1578.  
  1579.         Amstrad plc, Brentwood House,
  1580.         169 Kings Road, Brentwood,
  1581.         Essex CM14 4EF
  1582.  
  1583.  
  1584.   - Und Dank an die vielen anderen Benutzer, die mir Verbesserungs-
  1585.     vorschläge geschrieben haben oder sonstige Ideen hatten. Ohne sie
  1586.     wäre CPCEMU vermutlich nicht einmal bis Version 1.0 gekommen.
  1587.  
  1588.  
  1589.  
  1590. 6.7  Geschützte Warenzeichen
  1591. ============================
  1592.  
  1593.   CP/M, CP/M 2.2 und DRDOS sind von Digital Research,
  1594.   MS-DOS ist von Microsoft,
  1595.   IBM PC, PC-XT, PC-AT und OS/2 sind von International Business Machines,
  1596.  
  1597.   CPC, AMSDOS sind von Amstrad,
  1598.   BORLAND C, TASM (Turbo Assembler) sind von Borland,
  1599.   22DISK ist von SYDEX
  1600.   Soundblaster ist von Creative Labs
  1601.   ...
  1602.  
  1603.  
  1604.  
  1605. ------------------------------------------------------------------------------
  1606.  
  1607.  
  1608.  
  1609.  
  1610. 7.  Interne Informationen zu CPCEMU
  1611. ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
  1612.  
  1613.  
  1614. Dieses Kapitel soll ein paar Hintergrundinformationen liefern und die
  1615. Frage beantworten, WARUM muß ich jetzt dies und das machen.
  1616. Auch wird das leistungsfähige Debug-Menü erklärt und die Datenformate
  1617. zu den Disketten-Abbildern und den Snapshots aufgeführt.
  1618. Ich gebe hier also Informationen, die Sie als Anwender von CPCEMU
  1619. nicht unbedingt wissen müssen. Allerdings können sie manchmal ganz
  1620. nützlich sein.
  1621. Ich habe diese Informationen absichtlich an das Ende, noch nach den
  1622. geschützten Warenzeichen gesetzt, damit die relative "relative
  1623. Bedeutungslosigkeit" deutlich wird.
  1624. Wenn Sie keinen Spaß an unverständlichen Sätzen und unstrukturierten
  1625. Informationen haben, dann lesen Sie nicht weiter!
  1626.  
  1627.  
  1628.  
  1629. WARNUNG: Weiterlesen auf eigene Gefahr !
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635. 7.1  Inhaltsverzeichnis zu Kapitel 7
  1636. ====================================
  1637.  
  1638.   7.2  Interne Übersicht über die Leistungsmerkmale von CPCEMU
  1639.     7.2.1  Die Z80-CPU (Der Prozessor)
  1640.     7.2.2  Das Gate-Array (Der "Hilfsprozessor")
  1641.     7.2.3  Das PAL (Programmable Logic Array)
  1642.     7.2.4  Der CRTC 6845 (Cathode Ray Tube Controller)
  1643.     7.2.5  Die PIO 8255 (Programmable Input-Output)
  1644.     7.2.6  Der PSG (Programmable Sound Generator)
  1645.     7.2.7  Der FDC (Floppy Disc Controller)
  1646.     7.2.8  Die Centronics-Druckerschnittstelle
  1647.  
  1648.   7.3  Das Debug-Menü
  1649.  
  1650.   7.4  Die Speicherverwaltung
  1651.     7.4.1  Noch einmal zur EMS-Konfiguration
  1652.     7.4.2  Realisierung des Bankings
  1653.  
  1654.   7.5  ROM-Modifikationen
  1655.     7.5.1  ROM-Bypass für die Kassette
  1656.     7.5.2  Modifikationen am AMSDOS-ROM
  1657.  
  1658.   7.6  Verschiedenes
  1659.     7.6.1  Noch einmal:  Die Konfigurationsdatei
  1660.     7.6.2  Der parallele Adapter
  1661.     7.6.3  CPCTRANS
  1662.  
  1663.   7.7  Aufbau einiger CPCEMU-Dateien
  1664.     7.7.1  Disketten-Abbilder
  1665.     7.7.2  Snapshot-Dateien
  1666.     7.7.3  AMSDOS-Header
  1667.  
  1668.   7.8  Interne History
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675. 7.2  Interne Übersicht über die Leistungsmerkmale von CPCEMU
  1676. ============================================================
  1677.  
  1678.  
  1679.   Wie kompatibel ist CPCEMU wirklich ?
  1680.  
  1681.  
  1682.  
  1683.   7.2.1  Die Z80-CPU (Der Prozessor)
  1684.   ----------------------------------
  1685.  
  1686.   + Es werden alle Z80-Befehle emuliert, auch sogenannte illegale Befehle.
  1687.     Es gibt eine langsame Z80-Emulation in C und eine schnelle Emulation in
  1688.     Assembler von Jürgen Weber.
  1689.     Durch die COCPU-Technik, bei der jeder Befehl von den beiden
  1690.     Emulationsarten gleichzeitig ausgeführt wird und danach die Register
  1691.     verglichen werden,
  1692.     wurden zahlreiche Fehler gefunden. Natürlich wurde dies nur während der
  1693.     Programmentwicklung benutzt. Die langsame Z80-Emulation können Sie vom
  1694.     Debug-Menü aus aktivieren.
  1695.   + Nur dem Emulator bekannte Zusatzbefehle der Form ED FC xx, darunter auch
  1696.     der User-Break   ED FC FC  USER &BCFC.
  1697.  
  1698.   - kein exaktes Timing der Befehle
  1699.   - schnelle Emulation: Lesen/Schreiben eines Wortes von/an Adresse
  1700.     0xffff verursacht einen INT 0x0D. Mit EMS ist es sogar besonders fatal,
  1701.     das System hängt sich auf (unter OS/2 nur das Fenster).
  1702.  
  1703.  
  1704.  
  1705.   7.2.2  Das Gate-Array (Der "Hilfsprozessor")
  1706.   --------------------------------------------
  1707.  
  1708.   + alle 32 Farben des CPC (27 verschiedene)
  1709.   + alle 3 Bildschirmmodi (x, y, Farben):
  1710.         Modus 0 = 160x200x16
  1711.         Modus 1 = 320x200x4
  1712.         Modus 2 = 640x200x2
  1713.   + einfache Multi-Modes
  1714.   + ROM-Banking (16KB OS, 16KB BASIC, 16KB AMSDOS, und sonstige Zusatzroms)
  1715.  
  1716.   - Farbbalken flimmern
  1717.  
  1718.  
  1719.  
  1720.   7.2.3  Das PAL (Programmable Logic Array)
  1721.   -----------------------------------------
  1722.  
  1723.   Das PAL ist zwar logisch über die gleiche Adresse wie das Gate-Array zu
  1724.   programmieren, hardwaretechnisch aber davon getrennt.
  1725.  
  1726.   + RAM-Banking (128 KB, bis zu 576 KB), mit EMS oder konventionellem
  1727.     Speicher.
  1728.     Mit emuliertem EMS ist es recht flott, da die die Umschaltung per
  1729.     Hardware geschieht. Sie können eine Dk'tronics kompatible
  1730.     Speichererweiterung mit bis zu 576 KB RAM benutzen.
  1731.  
  1732.   - Ohne EMS ist RAM Banking sehr langsam, da Speicherblöcke vertauscht
  1733.     werden müssen. Außerdem haben Sie ohne EMS höchstens 128 KB RAM zur
  1734.     Verfügung.
  1735.  
  1736.  
  1737.  
  1738.   7.2.4  Der CRTC 6845 (Cathode Ray Tube Controller)
  1739.   --------------------------------------------------
  1740.  
  1741.   + Bildschirmstart, -offset für Hardware-Scrolling
  1742.   + verschiedene Bildschirmgrößen von 0x0 bis 80x25 mittels
  1743.     CRTC-Register 1 und 6
  1744.   + unterschiedliche Zeichengrößen (1..7) mit CRTC-Register 9
  1745.   + für Multi-Modes werden noch einige andere Register benötigt.
  1746.  
  1747.   - Overscan wird noch nicht unterstützt.
  1748.  
  1749.  
  1750.   7.2.5  Die PIO 8255 (Programmable Input-Output)
  1751.   -----------------------------------------------
  1752.  
  1753.   + Keyboard (über den PSG)
  1754.   + VSYNC-Emulation: Bit zwischen zwei Interrupts während des Bildaufbaus
  1755.     gesetzt, die Position legen Sie fest.
  1756.   + Kassetten besonders schnell durch ROM-Bypass der den Zugriff auf
  1757.     beliebige DOS-Dateien ermöglicht.
  1758.  
  1759.   - VSYNC-Bit ist zu lange gesetzt
  1760.   - Kassetten-Bits werden nicht emuliert, somit können Sie die meisten
  1761.     Kassetten-Kopierprogramme nicht einsetzen, die direkt auf die Ports
  1762.     zugreifen.
  1763.  
  1764.  
  1765.   7.2.6  Der PSG AY 3-8912 (Programmable Sound Generator)
  1766.   -------------------------------------------------------
  1767.  
  1768.   + Entweder über den PC Lautsprecher (schrecklich, da 3 Kanäle auf
  1769.     einen gemischt werden müssen und die Lautstärke nicht geändert
  1770.     werden kann) oder eine Soundblaster-Karte. Von der Soundblaster-Karte
  1771.     wird nur der Adlib-kompatible FM-Teil benutzt.
  1772.  
  1773.   - keine Digital-Sounds möglich oder zu langsam.
  1774.     Die Geräusche des PSG haben auf der Soundblaster keine Entsprechung,
  1775.     deshalb wurden sie nicht realisiert.
  1776.  
  1777.  
  1778.   7.2.7  Der FDC 765 (Floppy Disc Controller)
  1779.   -------------------------------------------
  1780.  
  1781.   + Alle notwendigen FDC-Kommandos, um die Laufwerke A und B zu
  1782.     steuern (dazu gehören Sektor lesen/schreiben, Spur suchen,
  1783.     Sektor-ID lesen, ... ; Spur formatieren wird unterdrückt. )
  1784.     Sehr flexible Disketten-Formate (bis zu 18 Sektoren pro Spur).
  1785.     Darunter auch doppelseitige Formate, z.B. VORTEX.
  1786.  
  1787.   - Komplizierte kopiergeschützte Formate werden intern nicht verarbeitet.
  1788.  
  1789.  
  1790.  
  1791.   7.2.8  Die Centronics-Druckerschnittstelle
  1792.   ------------------------------------------
  1793.  
  1794.   + Druckerausgabe auch mit 8-Bit-Druckerpatch, wird auf die durch
  1795.     PRINTER definierte Datei umgeleitet.
  1796.  
  1797.  
  1798.  
  1799.  
  1800. 7.3  Das Debug-Menü
  1801. ===================
  1802.  
  1803.   Von sowas hätte ich damals auf dem CPC nur geträumt!
  1804.   Es wird der komplette CPU-Zustand des Z80 angezeigt und Sie können ihn
  1805.   modifizieren. Der Speicher kann "gedumped",
  1806.   disassembliert oder modifiziert werden, Speicherauszüge
  1807.   (Programme) lassen sich laden oder speichern.
  1808.   Und das Interessanteste:
  1809.   Sie können die Code-Ausführung im Single-Step-Mode verfolgen!
  1810.   (Ähnlich wie bei einem richtigen Debugger).
  1811.  
  1812.  
  1813.   Aufbau des Debug-Menüs
  1814.   ----------------------
  1815.  
  1816.   R)un T)race S)tep  A)ssem D)ump I)nput  L)oad saV)e  M)ode  F)ast Q)uit
  1817.   AF=0000 BC=0000 DE=0000 HL=0000 IX=0000 IY=0000 SP=0000 PC=0000 IR=0000
  1818.   AF'=0000 BC'=0000 DE'=0000 HL'=0000 IFF1=0 IFF2=0 IMD=0  NZ NC PO P
  1819.   0000 : 01 89 7F       LD BC,&7F89
  1820.   -f->
  1821.  
  1822.   In der ersten Zeile werden die verfügbaren Kommandos angezeigt
  1823.   (die Großbuchstaben). In den beiden nächsten Zeilen
  1824.   stehen die aktuellen Inhalte der Register. Darunter steht der
  1825.   disassemblierte aktuelle Befehl an Position PC.
  1826.   In der letzten Zeile wartet ein Prompt auf Ihre Eingabe.
  1827.   ('f' zeigt an, daß Sie gerade die Fast-CPU benutzen.)
  1828.  
  1829.  
  1830.   Vorbemerkungen
  1831.   --------------
  1832.  
  1833.   In eckige Klammern eingeschlossene Parameter sind optional [opt.].
  1834.   Zahleneingaben alle hexadezimal, z.B. <Adresse> = 0000 bis ffff.
  1835.   "<ret>" zeigt an, daß Sie in einem speziellen Modus sind und
  1836.   <RETURN> drücken sollen, um fortzufahren. <String><RETURN>
  1837.   verläßt diesen Modus (d.h. z.B. b<RETURN>).
  1838.   Kommandos bestehen aus einem Buchstaben, meistens gefolgt von
  1839.   einer optionalen Adresse. Zwischen Kommando-Buchstabe und
  1840.   dieser Adresse muß dann ein Leerzeichen oder Tab stehen.
  1841.   Ohne Angabe einer Adresse wird als Standard-Wert PC (Programmzähler)
  1842.   angenommen.
  1843.  
  1844.  
  1845.   Übersicht über die Kommandos
  1846.   ----------------------------
  1847.  
  1848.   R)un:
  1849.   r [<Adresse>] : startet die Emulation ab PC oder der optional
  1850.     angegebenen Adresse.
  1851.     Beispiele:
  1852.     -f-> r      startet die Emulation ab PC
  1853.     -f-> r 100  setzt PC auf 0x100 und startet die Emulation
  1854.  
  1855.   T)race (Trace into):
  1856.   t [<Adresse>] : führt wirklich nur den aktuellen Befehl aus,
  1857.     mit <RETURN> den nächsten;  <string><RETURN> beendet den
  1858.     Trace-Modus.
  1859.     Alle Einzelschrittbefehle werden von der Slow-CPU ausgeführt
  1860.     (selbst wenn "-f->" angezeigt wird), da in der Fast-CPU kein
  1861.     Zähler mehr existiert.
  1862.   S)tep (Step over):
  1863.   s [<Adresse>] : führt den aktuellen Befehl aus, eigentlich
  1864.     alle Befehle, bis PC auf dem direkt nachfolgenden Befehl
  1865.     steht, was z.B. bei einem 'Ret' recht lange dauern kann.
  1866.     In diesem Fall hilft (wie immer) F10.
  1867.     Alle Einzelschrittbefehle werden von der Slow-CPU ausgeführt
  1868.     (selbst wenn "-f->" angezeigt wird), da in der Fast-CPU kein
  1869.     Zähler mehr existiert.
  1870.  
  1871.   A)ssemble (eigentlich Disassemble):
  1872.   a [<Adresse>] : disassembliert die nächsten 16 Befehle, mit
  1873.     <RETURN> die nächsten; <string><RETURN> beendet den
  1874.     Disassemble-Modus.
  1875.  
  1876.   D)ump:
  1877.   d [<Adresse>] : zeigt einen Hex-Ascii-Speicherauszug der nächsten
  1878.     256 Bytes ab PC oder Adresse an, <RETURN> die nächste Seite;
  1879.     <string><RETURN> beendet den Dump-Modus.
  1880.  
  1881.   I)nput (Speicherstellen modifizieren):
  1882.   i [<Adresse>] : zeigt die Speicherstelle mit aktuellem Inhalt an,
  1883.     der durch <RETURN> bestätigt oder durch <hexzahl><RETURN>
  1884.     verändert werden kann. Verlassen wird der Input-Modus mit
  1885.     einer ungültigen Zahl, z.B. -1<RETURN>.
  1886.  
  1887.   L)oad (Laden eines Speicherbereichs):
  1888.   l [<Adresse>]  : fragt nach dem Dateinamen <Name> und läd dann
  1889.     die Datei <Name> aus dem Verzeichnis TAPE_PATH nach <Adresse>
  1890.     Ein AMSDOS-Header wird erkannt.
  1891.     Siehe Anhang "Aufbau des AMSDOS-Headers".
  1892.     Falls Sie bei dem Dateinamenprompt nur <RETURN> eingeben,
  1893.     erscheint das schon bekannte Dateiauswahl-Menü.
  1894.     Beispiele:
  1895.     -f-> l<RETURN> demo<RETURN>         :
  1896.         läd Datei 'demo' an den aktuellen PC
  1897.     -f-> l a000<RETURN> myprog<RETURN>  :
  1898.         läd Datei 'myprog' nach 0xA000
  1899.  
  1900.   saV)e (Speichern eines Speicherbereichs):
  1901.   v [<Adresse>]  : fragt nach dem Dateinamen <Name> und der Länge
  1902.     des Speicherbereichs. Dieser wird dann ab <Adresse> (oder eben PC)
  1903.     abgespeichert, und zwar im Verzeichnis TAPE_PATH als Binärdatei,
  1904.     d.h. mit AMSDOS-Header.
  1905.     Siehe Anhang "Aufbau des AMSDOS-Headers".
  1906.     Beispiel:
  1907.     -f-> v<RETURN> demo<RETURN> 4000<RETURN>    :
  1908.         speichert "demo" ab PC mit der Länge 0x4000.
  1909.   M)ode (Setzen des Anzeigemodus):
  1910.   m : Schaltet Registeranzeige, Befehlsdisassemblierung des
  1911.     aktuellen Befehls an/aus.
  1912.  
  1913.   F)ast (Z80-Emulationsart wählen):
  1914.   f : Wechselt zwischen der schnellen Z80-Emulation (entwickelt in
  1915.     Assembler von Jürgen Weber, Standardeinstellung) und der
  1916.     langsamen (in C geschriebenen).
  1917.     Das Prompt-Symbol wechselt dann zwischen "-f->" für schnell
  1918.     (fast) und "-s->" für langsam (slow).
  1919.     Alle r, s, t-Kommandos beziehen sich dann auf die gewählte
  1920.    Z80-Emulationsart.
  1921.  
  1922.   Q)uit (Beenden des Programms):
  1923.   q : beendet den Emulator.
  1924.  
  1925.  
  1926.   Registermanipulationen
  1927.   ----------------------
  1928.  
  1929.   Neben den Buchstabenkommandos gibt es auch Befehle zum Setzen
  1930.   der Register mit der Syntax:          '<Register>=<Hex-Wert>'
  1931.   Beispiele:
  1932.     - af=345    : setzt Register AF auf 0x0345
  1933.     - pc=a000   : setzt Programmzähler auf 0xA000
  1934.  
  1935.  
  1936.   Sie können auch einfach '<Register><Leerzeichen><Hex-Wert>' schreiben
  1937.   Alle Z80-Register lassen sich verändern, also
  1938.   AF, BC, DE, HL, IX, IY, SP, PC, IR, AF', BC', DE', HL',
  1939.   zusätzlich IFF1, IFF2 und IMD.
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946. 7.4  Die Speicherverwaltung
  1947. ===========================
  1948.  
  1949.  
  1950.   7.4.1  Noch einmal zur EMS-Konfiguration
  1951.   ----------------------------------------
  1952.  
  1953.     Sie brauchen einen Expanded Memory Manager nach dem LIM 4.0 Standard
  1954.     (LIM EMS 4.0). Dieser Memory-Manager muß sogenannte erweiterte EMS-Seiten
  1955.     bieten. CPCEMU benötigt 6 solcher Seiten an zusammenhängenden Adressen.
  1956.  
  1957.     Unter OS/2 2.x wurde Ihnen vorgeschlagen, die folgenden Einstellungen
  1958.     zu benutzen:
  1959.  
  1960.         EMS_FRAME_LOCATION = auto
  1961.         EMS_HIGH_OS_MAP_REGION = 32     (oder mehr)
  1962.         EMS_LOW_OS_MAP_REGION = 0       (oder mehr)
  1963.  
  1964.  
  1965.     Was bedeuten die Einstellungen ?
  1966.     Die Low-Region bezeichnet EMS-Seiten im konventionellen Speicher.
  1967.     Falls CPCEMU dortige EMS-Seiten benutzen soll, müssen mindestens
  1968.     6*16KB = 84KB vorhanden sein.
  1969.  
  1970.     Die High-Region bezeichnet EMS-Seiten im Speicher oberhalb von
  1971.     640K, der zum Standard-Rahmen von 64KB hinzugenommen wird,
  1972.     muß also mindestens 2*16KB = 32KB sein.
  1973.  
  1974.  
  1975.     Unter DOS wurde Ihnen vorgeschlagen, folgende Zeilen in CONFIG.SYS
  1976.     zu benutzen:
  1977.         DEVICE=C:\DOS\HIMEM.SYS
  1978.         DEVICE=C:\DOS\EMM386.EXE 1024
  1979.         ...
  1980.  
  1981.     Die 1024 kann auch vergrößert oder verkleinert werden, je nach
  1982.     Hauptspeicher Ihres Rechners.
  1983.  
  1984.     Erläuterungen:
  1985.     EMM386 bietet zahlreiche zusätzliche Seiten im konventionellen
  1986.     Speicher. Die Untergrenze dieser Seiten kann mit der Option
  1987.     /B=<Segment> geändert werden (Standard ist 4000).
  1988.     Mit /P<Nummer>=<Segment> soll es auch möglich sein, einzelnen
  1989.     physikalischen Seiten andere Segmente zuzuweisen.
  1990.  
  1991.  
  1992.  
  1993.   7.4.2  Realisierung des Bankings
  1994.   --------------------------------
  1995.  
  1996.  
  1997.     Banking wird auf einigen Heimcomputern benutzt, die RAM und ROM
  1998.     an der gleichen Adresse haben. Lesezugriffe adressieren das ROM,
  1999.     Schreibzugriffe das RAM.
  2000.     Der Amstrad CPC hat 64K RAM und 16K ROM im Bereich 0-3FFF und
  2001.     ein weiteres ROM an C000-FFFF:
  2002.  
  2003.         0 RAM 0000-3fff
  2004.         1 RAM 4000-7fff
  2005.         2 RAM 8000-bfff
  2006.         4 RAM c000-ffff
  2007.         L ROM 0000-3fff
  2008.         U ROM c000-ffff
  2009.  
  2010.     Die wesentliche Idee ist, verschiedene Segmente zum Lesen und
  2011.     Schreiben zu haben.
  2012.     Bei jedem Lesezugriff wird ein Lese-Offset zu der gewünschten
  2013.     Adresse addiert, das gleiche wird mit einem Schreib-Offset
  2014.     für das Schreiben gemacht.
  2015.  
  2016.  
  2017.                    Zustand 0                  Zustand 1
  2018.  
  2019.         block 5   M       L   c                   0       <
  2020.         block 4   M    W  C   c                   C   c    | vertauscht beim
  2021.         block 3   M    W  8 b c                W  8 a c    | Zustands-
  2022.         block 2   M    W  4 b c                W  4 a c    | wechsel
  2023.         block 1   M    W  0 b                  W  L a c   <
  2024.         block 0   M       U b                  W  U a
  2025.  
  2026.  
  2027.     (M = konventioneller Speicher oder physikalische EMS-Seiten)
  2028.  
  2029.     a = Lrom ei, Urom ei
  2030.     b = Lrom di, Urom ei
  2031.     c = Lrom ei, Urom di
  2032.     W = Lrom di, Urom di
  2033.  
  2034.     Um zwischen den beiden Zuständen zu wechsen, müssen nur die
  2035.     '0' und 'L' Blöcke vertauscht werden.
  2036.     Für RAM Banking muß eine neue '0' mit der alten vertauscht
  2037.     werden. UROM Auswahl geschieht durch Kopieren des neuen ROMs
  2038.     nach 'U'.
  2039.  
  2040.     Mit EMS Speicher wird das gesamte Banking von der Hardware
  2041.     (oder deren Emulation) übernommen. Dieses erhöht die
  2042.     Geschwindigkeit besonders in BASIC und CP/M Plus.
  2043.     Jetzt verstehen Sie, warum 6 zusammenhängende physikalische
  2044.     EMS-Seiten notwendig sind und der Standard-Rahmen mit 4 Seiten
  2045.     nicht reicht.
  2046.  
  2047.  
  2048.  
  2049.  
  2050. 7.5  ROM-Modifikationen
  2051. =======================
  2052.  
  2053.  
  2054.   7.5.1  ROM-Bypass für die Kassette
  2055.   ----------------------------------
  2056.  
  2057.     Nach dem Befehl '|TAPE', oder wenn Sie das AMSDOS-ROM ausgeschaltet
  2058.     haben, wird die "Kassette" angesprochen. Kassettenzugriffe werden
  2059.     dabei in Dateizugriffe auf die einzelnen Dateien eines speziellen
  2060.     Verzeichnisses umgeleitet.
  2061.     Realisiert wird diese Umleitung mittels eines "ROM-Bypass".
  2062.  
  2063.     Durch 'TAPE_BYPASS=YES' schalten Sie den ROM-Bypass der TAPE-Vektoren
  2064.     ein. Falls ein bekanntes ROM vom CPC 464/664/6128 gefunden wurde,
  2065.     wird das ROM automatisch modifiziert.
  2066.     Der Bypass ist nötig, wenn Sie Kassetten-Dateien benutzen möchten.
  2067.  
  2068.     Es wurden Spezialbefehle eingeführt, die eine bestimmte
  2069.     Funktion des Emulators aufrufen. Diese Befehle werden direkt
  2070.     in das ROM eingetragen, so daß das Patchen der RAM-Vektoren
  2071.     auch weiterhin möglich ist.
  2072.     Als Befehle wurden eingeführt:
  2073.     ED FC xx  USER &BCxx        (nur gültig für einige RAM-Vektoren)
  2074.     Entspricht einem Call-Befehl zu einer internen Funktion,
  2075.     wobei für xx folgende Werte gültig sind:
  2076.         65      :       CASSETTE INIT (BC65)
  2077.         77      :       CASSETTE IN OPEN (BC77)
  2078.         7A      :       CASSETTE IN CLOSE
  2079.         7D      :       CASSETTE IN ABANDON
  2080.         80      :       CASSETTE IN CHAR
  2081.         83      :       CASSETTE IN DIRECT
  2082.         86      :       CASSETTE RETURN
  2083.         89      :       CASSETTE TEST EOF
  2084.         8C      :       CASSETTE OUT OPEN
  2085.         8F      :       CASSETTE OUT CLOSE
  2086.         92      :       CASSETTE OUT ABANDON
  2087.         95      :       CASSETTE OUT CHAR
  2088.         98      :       CASSETTE OUT DIRECT
  2089.         9B      :       CASSETTE CATALOG
  2090.  
  2091.     Zusätzlich gibt es noch den User-Break-Befehl
  2092.     ED FC FC  USER &BCFC , der die Emulation sofort anhält.
  2093.  
  2094.  
  2095.  
  2096.   7.5.2  Modifikationen am AMSDOS-ROM
  2097.   -----------------------------------
  2098.  
  2099.     - Durch 'DISABLE_ADOS=YES' verbieten Sie die Initialisierung des AMSDOS.
  2100.       Dann werden die
  2101.       Kassetten-kompatiblen Befehle nicht von AMSDOS gepatched.
  2102.       (Es werden also weiterhin die TAPE-Vektoren verwendet.)
  2103.       Das ist nötig, wenn ein Programm zwischendurch das AMSDOS-
  2104.       ROM initialisiert, aber ohne |TAPE-Befehl von Kassette
  2105.       weiterladen soll.
  2106.       (Realisiert durch 'POKE &CCF2,&18: POKE &CCF3,&05' im
  2107.       AMSDOS-ROM.)
  2108.       Die Sektorbefehle bleiben unbeeinflußt, sie gehen immer
  2109.       auf Diskette.
  2110.  
  2111.     - 'DISC_SPEEDUP=YES' führt eine AMSDOS-ROM-Modifikation durch, bei
  2112.       der die Motor-Wartezeiten minimiert werden, um einen
  2113.       schnelleren Disk-Zugriff zu ermöglichen.
  2114.       (Die Sachen werden ja von DOS gesteuert, somit brauchen wir
  2115.       die Warteschleifen nicht.)
  2116.       (Folgende Speicherstellen im AMSDOS-ROM werden verändert:
  2117.         POKE &C5D4,&01  :'Zeit für Motor-Hochlauf
  2118.         POKE &C5D8,&01  :'Zeit bei Spur-Formatieren
  2119.         POKE &C5D9,&01  :'kürzer warten
  2120.         POKE &C5DA,&01  :'kürzer warten
  2121.         POKE &C602,&01  :'nur 1 Versuch bei Fehler
  2122.         POKE &C784,&01  :'schnelles Spur suchen
  2123.         POKE &C7E2,&01  :'schnelles Spur suchen )
  2124.  
  2125.  
  2126.  
  2127.  
  2128.  
  2129. 7.6  Verschiedenes
  2130. ==================
  2131.  
  2132.  
  2133.  
  2134.   7.6.1  Noch einmal:  Die Konfigurationsdatei
  2135.   --------------------------------------------
  2136.  
  2137.     Wie Sie vielleicht noch wissen, werden Kommentare durch ein
  2138.     Semikolon ';' eingeleitet, der Rest der Zeile wird dann ignoriert.
  2139.     Blanks, Tabs, Newlines, ';' dienen als Trennsymbole und können
  2140.     beliebig zwischen Schlüsselwörtern und Werten eingesetzt werden.
  2141.     Die meisten Definitionen besitzen die syntaktische Form
  2142.     <Schlüsselwort> '=' <Wert> {T}
  2143.     Dabei ist {T} eine Folge von mindestens einem Trennsymbol.
  2144.     Beispiel:
  2145.     'ROM_PATH = .\ROM'
  2146.     Wollen Sie ein Schlüsselwort nicht (um-)definieren, schreiben Sie
  2147.     ein Kommentarzeichen ';' davor, 'ROM_PATH = <nichts>' ist unzulässig.
  2148.  
  2149.     Eine <Zahl> kann dezimal, hexadezimal (0x) oder binär (%) angegeben
  2150.     werden.
  2151.     <Pfad-Name> darf bis zu 80 Zeichen,
  2152.     <Dateiname> darf bis zu 20 Zeichen lang sein.
  2153.  
  2154.     Hier noch einige Ergänzungen zu ausgewählten Schlüsselwörtern:
  2155.  
  2156.     PIO_PORT_B = <Zahl>                 (%00111110)
  2157.       Setzt den Eingangswert am Port B der PIO. Damit kann z.B. die
  2158.       Benutzung des Druckers untersagt oder ein anderer Firmenname
  2159.       gewählt werden.
  2160.  
  2161.       Bedeutung der Bits:
  2162.         b7 = 0  (TTL-Signale von Kassette; unbenutzt)
  2163.         b6 = 0  (0= Drucker bereit, 1 = BUSY)
  2164.         b5 = 1  (EXP-Signal)
  2165.         b4 = 1      (1 = VSYNC mit 50 Hertz, 0 = mit 60 Hertz;
  2166.                          im Emulator aber unbenutzt)
  2167.         b3,b2,b1 = 111
  2168.           Firmenname:
  2169.           Isp (000), Triumph(001), Saisho(010), Solavox(011),
  2170.           Awa(100), Schneider(101), Orion(110), Amstrad(111)
  2171.         b0 = 0      (VSYNC, wird automatisch vom Emulator gesetzt)
  2172.  
  2173.  
  2174.     BREAK_MASK = <Zahl>         (0xffff)
  2175.       Nur für Debugging-Zwecke.
  2176.       Einige Ereignisse unterbrechen die normale Emulation. Mit
  2177.       dieser Maske verbieten Sie solche Ereignisse.
  2178.       Nicht unüberlegt verändern !
  2179.       Lassen Sie alle Bits gesetzt, bis auf diejenigen, deren
  2180.       Ereignisse Sie verbieten wollen.
  2181.       b2 = 0 -> verbietet Anzeigen von Port-Fehlern (mit 0xfffb)
  2182.       b3 = 0 -> verbietet Funktionstasten (somit läuft die Emulation
  2183.                 für immer! Mit 0xfff7)
  2184.       Die Bedeutung der Bits kann sich in Zukunft ändern !
  2185.  
  2186.  
  2187.  
  2188.  
  2189.  
  2190.  
  2191.   7.6.2  Der parallele Adapter
  2192.   ----------------------------
  2193.  
  2194.     Zuerst einmal der Aufbau des Adapters, jetzt mit Funktionsweise:
  2195.  
  2196.     PC  D-SUB   Cent.   CPC             Funktion
  2197.     --------------------------------    ---------------------------
  2198.     GND    19 ---- 19   GND             GND
  2199.     BUSY   11 <--- 1    -STROBE         Synchro (Daten verfügbar)
  2200.     -ACK   10 <--- 8    D6              |
  2201.     PE     12 <--- 7    D5              | Daten
  2202.     SELECT 13 <--- 6    D4              |
  2203.     -ERROR 15 <--- 5    D3              |
  2204.     D0      2 ---> 11   BUSY            Synchro (empfangsbereit)
  2205.  
  2206.  
  2207.     Richtung CPC->PC
  2208.     ----------------
  2209.  
  2210.     Für diese Richtung ist der Adapter normalerweise gedacht. Im Prinzip
  2211.     funktioniert das Senden auf dem CPC genauso, wie das Ausdrucken auf
  2212.     einen Drucker. Wenn der PC Nicht-BUSY anlegt, legt der CPC ein
  2213.     Nibble (Teil eines Bytes auf 4 Bits) auf den Port, setzt STROBE als
  2214.     Zeichen, daß etwas da ist und löscht es danach wieder. Der PC braucht
  2215.     also nur BUSY zu löschen (mittels D0), auf STROBE zu warten (über BUSY)
  2216.     dann das Nibble übernehmen (über die Einabeleitungen Drucker->PC)
  2217.     und BUSY zu setzen.
  2218.     Frage: Warum kann man denn nicht 8 Bits auf einmal übertragen ?
  2219.     Antwort:
  2220.     1. Der PC-Druckerport müßte auf Eingabe programmiert werden, das geht
  2221.        nicht mit jedem   und
  2222.     2. Der CPC hat nur einen 7-Bit Druckerport
  2223.  
  2224.  
  2225.     Richtung PC->CPC
  2226.     ----------------
  2227.  
  2228.     Ich habe mir gedacht, daß es auch möglich sein müßte, Daten in die
  2229.     andere Richtung zu verschicken. Leider hat der CPC am Druckerport
  2230.     nur ein einziges Eingangssignal, nämlich das BUSY-Signal. Es würde
  2231.     also nichts bringen, einen besseren Adapter für diese Richtung bauen
  2232.     zu wollen. Also kann man auch gleich den Adapter nehmen, den man schon
  2233.     hat, und ein geschicktes Protokoll entwickeln.
  2234.     Immerhin funktioniert eine serielle Schnittstelle auch nur mit einer
  2235.     Datenleitung für jede Richtung.
  2236.     Doch: Bei seriellen Schnittstellen wird die Synchronisation
  2237.     normalerweise mit einem Quarz erreicht. Es muß auf beiden Seiten exakt
  2238.     dieselbe Übertragungsrate eingestellt sein (z.B. 1200 Baud).
  2239.     Softwaremäßig ist das schlecht zu realisieren.
  2240.     Was tun ?
  2241.     Die Idee ist, den Geschwindigkeitsvorteil des PC gegenüber dem CPC
  2242.     auszunutzen. Jedes Byte wird in 8 Bit zerlegt und seriell übertragen,
  2243.     indem der PC den Zustand der BUSY-Leitung richtig setzt.
  2244.     Während dieser 8 Bit gibt der CPC die Geschwindigkeit vor und der
  2245.     PC muß sich danach richten. Der CPC schreibt die Bit-Anforderung mit
  2246.     einem Assembler-Befehl. Der PC muß jetzt schnell reagieren, und
  2247.     die BUSY-Leitung entsprechend des nächsten Bits setzen, denn schon
  2248.     mit dem übernächsten Assembler-Befehl wird der CPC dieses lesen wollen.
  2249.     Damit nicht immer die Interrupts ausgeschaltet bleiben müssen,
  2250.     erfolgt zuvor für jedes Byte ein "Verbindungsaufbau". Der CPC sagt
  2251.     "Schick mir mal was rüber!" und der PC antwortet "Na gut, ich warte
  2252.     jetzt, bis Du was haben willst.", indem er das BUSY-Signal wechselt.
  2253.     Die ganze Geschichte ist durch Timer abgesichert, damit kein Computer
  2254.     hängt, weil er auf irgendein Signal wartet, was dummerweise nicht
  2255.     kommt. Sie können die Programme also immer durch ESC bzw CTRL-BREAK
  2256.     abbrechen.
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262.   7.6.3  CPCTRANS
  2263.   ---------------
  2264.  
  2265.     Eine noch nicht erwähnte Option ist "/d 0" und "/d 1". Bei 1
  2266.     wird der Double-Step Modus gesetzt, d.h. 80-Spur-Laufwerke
  2267.     springen immer 2 Spuren weiter, wenn sie 40-Spur Disketten
  2268.     bearbeiten.  Die Option sollte unnötig sein, da CPCTRANS bei
  2269.     5.25" 360KB Formaten auf 80 Spur-Laufwerken automatisch
  2270.     Double-Step einschaltet.
  2271.  
  2272.     Normalerweise ist es ganz einfach, mit dem BIOS Sektoren zu
  2273.     lesen und zu schreiben. Leider ist das BIOS aber nicht in der Lage,
  2274.     B-Seiten von Disketten mit Kopfseite=0 zu verarbeiten.
  2275.     Deshalb mußte ich die FDC-Routinen selber programmieren,
  2276.     wobei der Floppy-Teil des MINIX-Source-Codes als Vorlage diente.
  2277.     Leider enthält der MINIX-Code einige Fehler, und das Timing
  2278.     wurde an den kritischen Stellen durch simple Warteschleifen realisiert,
  2279.     die vermutlich für einen 8086 Prozessor ausreichten.
  2280.  
  2281.  
  2282.  
  2283.  
  2284. 7.7  Aufbau einiger CPCEMU-Dateien
  2285. ==================================
  2286.  
  2287.  
  2288.   7.7.1  Disketten-Abbilder
  2289.   -------------------------
  2290.  
  2291.     Disketten-Abbilder bestehen aus einem 0x100-Byte langen
  2292.     Disketten-Informationsblock und für jede Spur aus einem
  2293.     0x100-Byte langen Spur-Informationsblock, an den sich die
  2294.     Daten der Spur (zu jedem Sektor) anschließen.
  2295.  
  2296.     Der Disketten-Informationsblock
  2297.     -------------------------------
  2298.     Byte (Hex):  Bedeutung:
  2299.     00 - 21      MV - CPCEMU Disk-File\r\nDisk-Info\r\n
  2300.                  (als Kennung nur "MV - CPC" erforderlich)
  2301.     22 - 2F      unbenutzt (0)
  2302.     30           Anzahl Spuren (40, 42, vielleicht 80)
  2303.     31           Anzahl Köpfe (1 oder 2)
  2304.     32 - 33      Spurgröße (einschließlich 0x100-Bytes Spur-Info)
  2305.                  Bei 9 Sektoren * 0x200 Bytes + 0x100 Byte Spur-Info
  2306.                  also 0x1300.
  2307.     34 - FF      unbenutzt (0)
  2308.  
  2309.     Der Spur-Informationsblock (für jede Spur)
  2310.     ------------------------------------------
  2311.     Byte (Hex):  Bedeutung:
  2312.     00 - 0C      Track-Info\r\n
  2313.     0D - 0F      unbenutzt (0)
  2314.     10           Spur-Nummer (0 bis Spuranzahl-1)
  2315.     11           Kopf-Nummer (0)
  2316.     12 - 13      unbenutzt (0)
  2317.     Format-Spur-Parameter:
  2318.     14           BPS (Bytes pro Sektor) (2 für 0x200 Bytes)
  2319.     15           SPT (Sektoren pro Spur) (9, max. 18 möglich)
  2320.     16           GAP#3 Format (Lücke beim Formatieren: 0x4E)
  2321.     17           Filling-Byte (Füllbyte beim Formatieren: 0xE5)
  2322.     Sektor-Information (jeweils für jeden Sektoren):
  2323.       18+i       Spurnummer     \
  2324.       19+i       Kopfnummer      | Sektor-ID-Informationen
  2325.       1A+i       Sektornummer    |
  2326.       1B+i       BPS            /
  2327.       1C+i       Status 1 Fehlercode (0)
  2328.       1D+i       Status 2 Fehlercode (0)
  2329.       1E+i,1F+i  unbenutzt (0)
  2330.  
  2331.     Anmerkungen:
  2332.     In der Reihenfolge der Sektor-ID's müssen nach der Spur-Info
  2333.     die Sektordaten kommen. Es dürfen keine Spuren, Sektoren
  2334.     ausgelassen werden.
  2335.     Bei doppelseitigen Formaten alternieren die Spuren, z.B.
  2336.     Spur 0 Kopf 0, Spur 0 Kopf 1, Spur 1 ...
  2337.     CPCTRANS dient zum Kopieren von CPC-Disketten in dieses Format.
  2338.  
  2339.  
  2340.   7.7.2  Snapshot-Dateien
  2341.   -----------------------
  2342.  
  2343.     Snapshot-Dateien bestehen aus einem 0x100-Byte Header mit
  2344.     angehängtem Speicherauszug.
  2345.  
  2346.     Der Snapshot Header:
  2347.     Byte (Hex):   Bedeutung:
  2348.     00 - 07       'MV - SNA' (als Kennung)
  2349.     08 - 0F       unbenutzt (0)
  2350.     10            Snapshot Version (2, früher 1)
  2351.     11 - 1A       Z80-Register  AF, BC, DE, HL, R, I
  2352.     1B - 1C       Z80-Flags  IFF0, IFF1 (0=disabled, 1=enabled)
  2353.     1D - 24       Z80-Register IX, IY, SP, PC
  2354.     25            Z80 Interrupt Modus IMD (0 - 2)
  2355.     26 - 2D       Z80-Register  AF', BC', DE', HL'
  2356.     2E            Gate Array: Ink-Nummer-Register
  2357.     2F - 3F       Gate Array: Ink-Wert-Register (0, 1, ..., 15, 16)
  2358.     40            Gate Array: Multi-Konfigurations-Register
  2359.     41            Gate Array: RAM-Konfigurations-Register
  2360.     42            CRTC: Adreß-Register
  2361.     43 - 54       CRTC: Daten-Register (0, 1, ..., 17)
  2362.     55            Upper ROM Nummer
  2363.     56 - 59       PIO: Port A, Port B, Port C, Port CTRL
  2364.     5A            PSG: Adreß-Register
  2365.     5B - 6A       PSG: Daten-Register (0, 1, ..., 15)
  2366.     6B - 6C       Speicherauszug-Größe (64K oder 128K)
  2367.     (die folgenden Parameter existieren erst ab Version 2.0 :)
  2368.     6D            CPC Typ, auf dem der Speicherauszug generiert wurde
  2369.                     (0=CPC 464, 1=CPC 664, 2=CPC 6128, 3 = unbekannt)
  2370.     6E            Interrupt-Nummer (0..5), der zuletzt aufgetretene
  2371.                     Interrupt während eines Bildaufbauzyklus.
  2372.     6F - 74       6 Multi-Modes, d.h. Bildschirmmodi (0..2) während der
  2373.                     Interrupts 0..5.
  2374.     75 - FF       unbenutzt (0), evtl. später für Emulator-Konfiguration
  2375.  
  2376.  
  2377.  
  2378.   7.7.3  AMSDOS-Header
  2379.   --------------------
  2380.  
  2381.     Byte (Hex):   Bedeutung:
  2382.     00            User (0 , mögliche Werte 0-15)
  2383.     01 - 0F       Dateiname+Endung (evtl. mit Nullen aufgefüllt)
  2384.     10            Blocknummer (0)
  2385.     11            Letzter-Block-Flag (0)
  2386.     12            Datei-Typ (0=BASIC, 1=geschütztes BASIC, 2=Binär,...)
  2387.     13 - 14       Blocklänge (0)
  2388.     15 - 16       Ladeadresse (0-FFFF)
  2389.     17            Erster-Block-Flag (0)
  2390.     18 - 19       Logische Länge (0-FFFF)
  2391.     1A - 1B       Einsprungadresse (0-FFFF)
  2392.     1C - 3F       Frei für den Benutzer (0)
  2393.     40 - 42       wirkliche Dateilänge (1-FFFFFF)
  2394.     43 - 44       Prüfsumme über Bytes 00-42
  2395.     45 - 7F       unbenutzt (zufällige Werte aus dem Sektorpuffer)
  2396.  
  2397.     Anmerkungen:
  2398.     Der Header wird jeder nicht-ASCII-Datei vorangestellt.
  2399.     Er wird anhand der Prüfsumme erkannt.
  2400.     Bytes 00 - 3F stammen aus der "Kassettenzeit", in der Dateien
  2401.     in Blöcke aufgeteilt wurden.
  2402.     Unbedingt notwendig sind die Bytes 12, 15-16, 1A-1B, 40-42, 43-44 .
  2403.  
  2404.  
  2405.  
  2406.  
  2407. 7.8  Interne History
  2408. ====================
  2409.  
  2410.  
  2411.   Z80EMU (nur ein Z80 mit kaum CPC)
  2412.   ---------------------------------
  2413.  
  2414.   - v1.0 (1991)
  2415.     erste Version in Pascal (nur eine Z80-Emulation)
  2416.   - v1.2 (12.8.1992 - 16.8.1992)
  2417.     erste Version in C (mit TPTC umgewandelt). Z80-Probleme: P-Flag bei
  2418.     ADD HL..., DAA, ldir; Z-Flag bei BIT... Z,S-Flags bei Rotate; ROMs
  2419.     möglich
  2420.   - v1.3 (18.8.1992)
  2421.     Port-Adressierung im Lo-Byte war falsch. Neues Speichermanagement
  2422.     (128 KB RAM, 32 KB ROM)
  2423.   - v2.0 (18.8.1992 - 22.8.1992)
  2424.     Implementierung der COCPU-Technik, um Fehler zu finden (mit separatem
  2425.     Speicher für die COCPU). Z80-Probleme: H-Flag gesetzt nach AND... ;
  2426.     CPI... setzt N-Flag. Bildschirmfarben Farben Blau und Gelb (vorher
  2427.     schwarzweiß)
  2428.   - v2.1 (25.8.1992 - 27.8.1992)
  2429.     Alle Pens, Farben des CPCs in allen Modi; nur auf den sichtbaren
  2430.     Bildschirm wird geschrieben. COCPU-Fehler: Alle (ix+zz) mit negativer
  2431.     Distanz waren falsch! Vergessen, "signed char" zu nehmen.
  2432.   - v2.2 (30.8.1992 - 3.9.1992)
  2433.     Neue Keyboard-Routine, Farbänderung ohne Flackern (Warten auf HSYNC).
  2434.     Einführung eines "Not-ROM" mit COPYMATE.
  2435.   - v2.3 (15.9.1992 - 19.9.1992)
  2436.     FDC-Emulation zum Laden von Sektoren. COCPU-Fehler: LD XH... war LD H...
  2437.   - v2.3b (19.9.1992)
  2438.     Screen-Update nur auf Blöcken 0..3 (nicht 4..7); Port FCxx gleich wie
  2439.     FBxx (für CP/M Plus). Da wußte ich noch nicht, daß OUTI... das
  2440.     B-Register pre-dekrementiert.
  2441.   - v2.4 test (25.10.1992)
  2442.     Nur R-Register-Emulation, falls gewünscht (per "DEFINE"); Screen-Update
  2443.     jetzt jeden n-ten Interrupt und nicht für jedes Byte einzeln, was in den
  2444.     Speicher geschrieben wird. (Noch sehr langsam, da in C). Neue
  2445.     Speicherverwaltung mit Blöcken nur ab Segmentstart.
  2446.   - v2.5 test (31.10.1992)
  2447.     Geänderte Speicherzuweisung. Endlich Hardware-Scrolling und verschiedene
  2448.     Bildschirmgrößen möglich.
  2449.   - v2.6 test (5.11.1992)
  2450.     Neue Keyboard-Routine von Arnt Gulbrandsen, endlich alle Tasten
  2451.     erreichbar; Screen-Update in Assembler.
  2452.   - v2.7 test
  2453.     Versucht, die schnelle Emulation von Jürgen Weber einzubinden, klappt
  2454.     noch nicht.
  2455.   - v2.8
  2456.     Verbesserter Screen-Update: Nur Bereiche, die sich verändert haben,
  2457.     werden auf den Bildschirm gebracht.
  2458.   - v2.9
  2459.     Timer-Handler mit 300 Interrupts. Fast-Emulation läuft, wenn kein ROM
  2460.     (Banking) benötigt wird.
  2461.  
  2462.   CPCEMU (endlich ein CPC)
  2463.   ------------------------
  2464.   - v0.2 (23.12.1992), Nachfolger von Z80EMU v2.9
  2465.     Nach nahezu 4 Stunden mit dem Turbo-Debugger endlich den Grund gefunden,
  2466.     warum sich die fast-Emulation aufhängte: ES anstatt DS gepushed.
  2467.   - v0.3 (28.12.1992 - 29.12.1992)
  2468.     N-Flag bei INI,OUTI setzen. CPI im fast-Z80 setzte falsche Flags. RL(HL)
  2469.     benutzte Read-Segment(DS) anstatt Write-Segment(ES). LD A,R produziert
  2470.     jetzt Zufallszahlen; Alle Kassettenroutinen bis auf CASSETTE IN CHAR.
  2471.   - v0.4 (1.1.1993)
  2472.     IN A,(n): A nach b8..b15 (anstatt B); RAM-Konfiguration 0xc3: 0,3,2,7
  2473.     (für CP/M Plus). KC-Compact (ein CPC-Kompatibler aus der ehem.DDR)
  2474.     benutzt Port EE00 - EE3D, nur wofür?
  2475.   - v0.5 (28.1.1993 - 8.2.1993)
  2476.     INIR,... R-Register-Erhöhung abhängig von B, nicht von BC. Endlich
  2477.     CASSETTE IN CHAR (falscher Patch beim CPC 6128 eingetragen).
  2478.   - v0.6 (23.3.1993 - 24.5.1993)
  2479.     Ein Amerikaner hat Jürgen darauf aufmerksam gemacht, daß die OUTI-
  2480.     Befehle das B-Register pre-dekrementieren! C-Teile jetzt auch im
  2481.     386er-Code (mit Borland C++ v3.1) Disetten-Abbilder jetzt mit Endung
  2482.     ".DSK". CPCREAD.PAS korrigiert (vergessen, Kopfseite mit 0 zu
  2483.     initialisieren) und in CPCREAD.C umgewandelt. PIO-8255-PORT-Adressierung
  2484.     flexibilisiert (kann auch lesen, wenn Port auf Ausgabe geschaltet ist...)
  2485.   - v0.7 (26.7.1993 - 29.8.1993) (inoffiziell)
  2486.     Source völlig überarbeitet, modularisiert. Konfigurationsdatei
  2487.     eingeführt, jetzt mehrere ROMs möglich. Änderung des Firmennamens von
  2488.     Schneider auf Amstrad. (Können Sie jetzt selber einstellen.) Fehler im
  2489.     RAM-Banking beseitigt. Neue Dokumentation in Deutsch.
  2490.   - v0.8 (30.8.1993 - 9.9.1993)
  2491.     Slow-Emulation: Parity-Befehle durch Tabelle nicht nur für die Parität
  2492.     beschleunigt. Z80: ED xx mit illegalem xx wird ignoriert. Neue
  2493.     Dokumentation jetzt auch in Englisch.
  2494.   - v0.8a (10.9.1993 - 15.9.1993)
  2495.     Fataler Fehler in der Fast-Emulation: Wenn ein DD CB xx - Befehl
  2496.     ausgeführt wurde und gerade ein Interrupt auftrat, wurde der Befehl
  2497.     ignoriert!
  2498.   - v0.8b (16.9.1993 - 21.9.1993)
  2499.     "real"-VSYNC eingebaut, falls "VSYNC_CT" = 0. PIO Port A Problem
  2500.     korrigiert: OUT &F400,xx mit Port A im Eingabemodus wurde ignoriert.
  2501.     Neue Joystickroutine von Martin Zacho.
  2502.   - v0.8c (22.9.1993 - 13.12.1993)
  2503.     Dokumentation mit "ispell" überprüft. Emulation startete nicht, falls
  2504.     "USE_JOYSTICK=YES" und kein Joystick angeschlossen war (PUSH AX an
  2505.     falscher Stelle). Slow-Emulation: DAA korrigiert (Klammern fehlten seit
  2506.     v0.8). Falscher Patch für CPC 664 in der Interrupt-Routine. Dieser Patch
  2507.     ersetzte EI durch NOP, um das EI-Problem zu umgehen (Interrupts erst
  2508.     einen Befehl später erlauben). Jetzt für alle CPCs.
  2509.   - v0.8d (14.12.1993 - 29.12.1993)
  2510.     FDC-Emulation für doppelseitige Formate umgeschrieben. CPCTRANS ersetzt
  2511.     altes CPCREAD und erlaubt Lesen von VORTEX-Disketten mit dem Patch
  2512.     720KB.COM. Außerdem können Disketten-Abbilder jetzt auf Diskette
  2513.     zurückgeschrieben werden. Neues Datei-Auswahl bei F3; einige Port-
  2514.     Adressen Aliases eingeführt, z.B. &7000 - &7f00, um das Gate Array
  2515.     anzusprechen, &0c00,&1c00,&2c00,&3c00,&bc00 für den CRTC. R-Register
  2516.     Emulation eingeschaltet.
  2517.   - v0.9 alpha (30.12.1993 - 20.1.1994)
  2518.     EMS Speichernutzung möglich durch spezielle EMS/UMB-Konfiguration.
  2519.     Konfigurationsdatei um Binärzahlen erweitert. RAM-Banking Adressierung
  2520.     korrigiert: Der Emulator akzeptierte &d0-&ff als &c0-&c7. Jetzt bis zu
  2521.     576 KB RAM mit EMS.
  2522.   - v0.9b (21.1.1994 - 31.1.1994)
  2523.     EMS-Benutzung vereinfacht durch erweitertes EMS (oder LIM EMS 4.0) mit
  2524.     mehr als 4 physikalischen EMS Seiten. Dateiauswahl jetzt auch bei 'l'
  2525.     (Debug Menü), RUN" .
  2526.   - v0.9c (1.2.1994 - 29.4.1994)
  2527.     Bißchen schrecklicher PC-Lautsprecher Sound (Ausschalten mit F4).
  2528.     Dateiauswahl auch bei 'v'; korrigierte englische Dokumentation;
  2529.     Soundblaster-Sound (noch verbesserungswürdig); neues CPCTRANS mit
  2530.     Kommandozeilen-Parameter und direktem FDC-Zugriff; paralleler Adapter
  2531.     getestet und die Software verbessert. Fast-Z80: inc/dec (hl), (ix+n)
  2532.     für RAM unter ROM korrigiert. Jetzt mit Bild hoch/runter übergroße
  2533.     Bildschirme verschieben; Teil von Overscan-Bildschirmen wird angezeigt.
  2534.     Jetzt möglich: 64K-'Snapshots'.
  2535.   - v0.9d (30.4.1994 - 12.5.1994)
  2536.     Interrupts während DI werden nicht mehr vergessen, und sie werden nicht
  2537.     mehr direkt nach einem EI-Befehl erlaubt. Neue Farb-Funktionen: ohne
  2538.     Schnee unter OS/2. Fast-Z80: beschleunigtes Code-Holen.
  2539.  
  2540.   - v1.0 (13.5.1994 - 20.5.1994)
  2541.     Verbesserter Screen-Part: Jetzt auch andere Zeichengrößen von 1 bis 8
  2542.     möglich. Dateiauswahl auch bei SAVE" , Schnellauswahl durch Drücken von
  2543.     Anfangsbuchstaben. Verbessertes CPCTRANS mit Verify-Option. Neues
  2544.     Setup-Menü, wenn Sie F7 drücken. Darin können Sie z.B. Farbflimmern
  2545.     unterdrücken.
  2546.  
  2547.   - v1.0a (21.5.1994 - 9.6.1994)
  2548.     Setup-Menü verbessert: jetzt neben den Cursor-Tasten auch direkte
  2549.     Eingaben möglich. Nahezu deutsche Tastenbelegung, einfache
  2550.     Verzögerungsoption (delay). Kein "Müll" mehr bei verkleinertem
  2551.     Bildschirm (d.h. die Teile vom größeren Bildschirm werden korrekt
  2552.     gelöscht). Fast-Z80-Teil verbessert: schnellere RRA,RLA, ..., schnellere
  2553.     CP xx Befehle. Weitere illegale Befehle eingefügt (ED xx). Außerdem
  2554.     fehlten die undokumentierten Befehle LD D,XH und LD YL,YH (im
  2555.     CoZ80-Modus aufgefallen)! CPDR,CPIR mit BC=0 korrigert (0 heißt nämlich
  2556.     auf einem Z80 65536, aber es ist 0 bei dem 80x86-REPE-Präfix!).
  2557.     DAA-Flags korrigiert. Neue Software für den parallelen Adapter: Jetzt
  2558.     auch Senden zum CPC möglich. Dank an Bernd Schmidt, der anmerkte, daß
  2559.     ein Interrupt das R-Register um 1 erhöht. Außerdem konnte mit seiner
  2560.     Hilfe die Emulation des PIO-Port-C Registers verbessert werden.
  2561.  
  2562.   - v1.1a (10.6.1994 - 16.8.1994)
  2563.     Eine neue Ära von CPCEMU hat begonnen: Amstrad hat die ROMs freigegeben!
  2564.     Ein guter Anlaß, die Dokumentation umzuschreiben... Änderungen an der
  2565.     Konfigurationsdatei: ROM_BLOCKS -> ROM_BLOCK, DISC_BYPASS ->
  2566.     DISABLE_ADOS, keine Leerzeichen mehr vor und nach '=' nötig. Änderungen
  2567.     am Sound-Teil, Grafik-Teil: vertikale Größe durch VGA-CRTC.
  2568.     Joystick-Kalibrierung jetzt im Setup-Menü, TAPE-Routinen beim Speichern
  2569.     verbessert. FDC-Teil verbessert: jetzt läuft auch COPYMATE. Wechseln von
  2570.     Nicht-DATA-Disketten ohne "Read Error" möglich (es wurde immer Spur 0
  2571.     gesucht). Eine weitere Verzögerung in CPCTRANS, ich hoffe, Sie müssen
  2572.     jetzt nicht mehr die Turbo-Taste betätigen; Formatieren von Disketten-
  2573.     Abbildern. Nochmal PIO-Port-C korrigiert: er wird nach OUT &F700,n
  2574.     gelöscht. Größere Änderungen an der Konfigurations-Datei: Jetzt mit
  2575.     bedingter Konfiguration (#IFCPC, #ENDIF). Einige Schlüsselwörter
  2576.     verändert (VSYNC_CT -> /, DISC_PATH -> /, SNAP_PATH -> SNAPSHOT, DRV_A ->
  2577.     DRIVE_A, DRV_B -> DRIVE_B).
  2578.     Laden von Programmen aus ZIP-Archiven. Sie brauchen PKUNZIP dazu.
  2579.  
  2580.   - v1.1b (17.8.1994 - 2.9.1994)
  2581.     Multi-Modes eingeführt, d.h. verschiedene Bildschirmmodi gleichzeitig.
  2582.     Dazu wird der Bildschirmaufbau in bis zu 6 Teile zerlegt, es erfolgt also
  2583.     eine teilweise Auffrischung bei jedem Interrupt. Klappt noch nicht immer.
  2584.     Jetzt möglich: 128K Snapshots, zusätzlich für Multi-Modes erweitert.
  2585.     CPCPARA verbessert: jetzt können Sie Binärdateien mit Header
  2586.     kopieren. Vollkommen neugeschriebene, hoffentlich besser verständliche
  2587.     Dokumentation. Erkennung des CPC 6128 Plus eingebaut. Noch mehr
  2588.     Port-Aliases eingebaut.
  2589.  
  2590.   - v1.2 (3.9.1994 - )
  2591.     Diese Version wird veröffentlicht. Es wurden hauptsächlich ein paar
  2592.     Änderungen an dem Hilfesystem vorgenommen.
  2593.  
  2594.  
  2595.  
  2596.   CPCEMU wurde in C und Assembler geschrieben. Zum Kompilieren wurden
  2597.   Borland C 3.1 mit 386er Optimierung und TASM benutzt. Zur Fehlersuche
  2598.   habe ich den Turbo Debugger benutzt.
  2599.   Die Farben wurden mit dem Programm VGAMETER von J. Stephen Shattuck, Jr.
  2600.   ausgewählt, indem sie mit denen eines CPCs verglichen wurden, der an
  2601.   einen Scart-Fernseher angeschlossen war.
  2602.  
  2603.  
  2604.  
  2605. ------------------------------------------------------------------------
  2606.  
  2607.  
  2608.  
  2609. (Ab hier dürfen Sie wieder gefahrlos weiterlesen.)
  2610.  
  2611.  
  2612.  
  2613. Anhang
  2614. ≡≡≡≡≡≡
  2615.  
  2616.  
  2617.  
  2618. A.1  Glossar
  2619. ≡≡≡≡≡≡≡≡≡≡≡≡
  2620.  
  2621. Hier werden einige Computer-Fachbegriffe erläutert. Ich erhebe keinen
  2622. Anspruch auf Vollständigkeit oder präzise Definitionen. Die meisten
  2623. Begriffe sind im Blickwinkel des CPC erklärt.
  2624. Referenzen habe ich mit "»" markiert.
  2625.  
  2626.  
  2627. 386/33 (AT 386/33)
  2628.   Kurzbezeichnung für einen »PC AT mit 80386 Prozessor, der mit 33 MHz
  2629.   getaktet wird. Wegen der "hohen" »Taktfrequenz kann man kann davon
  2630.   ausgehen, daß es sich um einen 386DX mit echtem 32-Bit Datenbus handelt
  2631.   und nicht um die Sparversion 386SX mit einem 16-Bit Datenbus.
  2632.  
  2633. AMSDOS (Amstrad DOS)
  2634.   Von »Amstrad entwickeltes »DOS, speziell für die »CPC-Computer.
  2635.  
  2636. Amstrad
  2637.   Englischer Computerhersteller, der die »CPC-Computer entwickelt hat.
  2638.  
  2639. Archiv
  2640.   Archive sind Sammlungen von »Dateien.
  2641.   Auch: Eine Datei, in der mehrere andere Dateien enthalten sind.
  2642.   In »ZIP-Archiven werden die einzelnen Dateien vorher komprimiert (gepackt).
  2643.  
  2644. ASCII (Abkürzung für: American Standard Code of Information Interchange)
  2645.   Auf einem Computer werden alle Buchstaben, Ziffern und Sonderzeichen
  2646.   intern durch Zahlen repräsentiert. Die meisten Computer benutzen ASCII,
  2647.   bei dem der Buchstabe 'A' z.B. durch die Zahl 65 repräsentiert wird.
  2648.   »PC und »CPC benutzen auch ASCII. Im »Locomotive-BASIC läßt sich ein
  2649.   BASIC-Programm durch den Befehl SAVE"<Dateiname>",A in ASCII-Form
  2650.   abspeichern.
  2651.  
  2652. Basis-Adresse
  2653.   Diese müssen Sie bei vielen Programmen im »Setup festlegen, wenn Sie
  2654.   eine Soundkarte haben. CPCEMU findet diese Einstellung über die
  2655.   »Umgebungsvariable.
  2656.  
  2657. BASIC (Abkürzung für: beginners all purpose symbolic instruction code)
  2658.   Weitverbreitete und sehr einfach zu lernende Programmiersprache für
  2659.   Heim- und Personalcomputer. Früher wurde zu jedem Computer ein
  2660.   eigenes BASIC ausgeliefert, es gab also viele BASIC-Dialekte.
  2661.   Moderne BASIC-Dialekte wurden durch Elemente strukturierte Programmierung
  2662.   erweitert, so daß nicht mehr unbedingt "Spaghetticode" programmiert
  2663.   werden muß. Auch die »CPCs wurden mit einem BASIC ausgeliefert, dem
  2664.   sogenannten Locomotive-BASIC von der gleichnamigen Firma.
  2665.  
  2666. BASIC-Datei
  2667.   Siehe »Datei.
  2668.  
  2669. Batch-Datei (Stapel-Datei)
  2670.   Eine Batch-Datei enthält Befehle, die Sie normalerweise über die
  2671.   Tastatur eingeben. Rufen Sie eine solche Datei auf, werden die
  2672.   Befehle automatisch ausgeführt, als hätten Sie sie der Reihe nach
  2673.   eingegeben.
  2674.  
  2675. BBS
  2676.  
  2677. Bildschirmmodus, -modi
  2678.  
  2679. Binärdatei
  2680.   Siehe »Datei.
  2681.  
  2682. BLASTER-Umgebungsvariable
  2683.   Siehe »Umgebungsvariable.
  2684.  
  2685. C64:
  2686.   Ein von der Firma Commodore entwickelter Heimcomputer mit 64KB »RAM,
  2687.   der sehr populär war. Vor allem durch das riesige Softwareangebot war
  2688.   er lange Zeit der Computer überhaupt. Später wurde er als Spielcomputer
  2689.   durch den Commodore AMIGA abgelöst, konnte sich aber trotz überholter
  2690.   Technik noch lange behaupten.
  2691.  
  2692. CPC (Abkürzung für: Colour Personal Computer)
  2693.   Ein von der Firma »Amstrad entwickelter Personalcomputer, den es in
  2694.   mehreren Modellen gab. Lesen Sie noch einmal die Einleitung.
  2695.  
  2696. CPC-Druckerport
  2697.   Die Centronics-Schnittstelle zum Anschluß eines Druckers an den »CPC.
  2698.   Leider haben die Entwickler des CPC hier zu viel gespart und die
  2699.   Schnittstelle nur mit 7 Datenbits ausgerüstet. Durch legen einer
  2700.   Drahtbrücke konnte sie aber leicht auf 8 Bit erweitert werden. Dazu
  2701.   wurde der Kassettenport mißbraucht, der beim Ausdrucken normalerweise
  2702.   nicht benötigt wird.
  2703.  
  2704. CPC-Firmware-Manual
  2705.   Ein Buch über den »CPC, wo vor allem die Betriebssystem-Einsprünge
  2706.   des »CPC erklärt werden.
  2707.  
  2708. CPC-Newsgruppe
  2709.   Eine Newsgruppe speziell für den »CPC. Sie heißt comp.os.amstrad.8bit
  2710.   und existiert seit August 1994.
  2711.  
  2712. CP/M Plus (Abkürzung für: control program for microcomputers)
  2713.   Betriebssystem der Firma Digital Research hauptsächlich für 8-Bit
  2714.   Mikrocomputer. Vor MS-DOS war es recht weit verbreitet.
  2715.   CP/M Plus (CP/M 3.0) war der Nachfolger von CP/M 2.2 und wurde mit dem
  2716.   »CPC 6128 ausgeliefert.
  2717.  
  2718. CTRL/SHIFT/ESC (control/shift/escape)
  2719.   "Dreifingergriff" auf dem »CPC, um einen Reset auszulösen. Er entspricht
  2720.   der Resetkombination CTRL/ALT/Entf. auf einem PC. Manche Programme
  2721.   blockieren jedoch diesen Reset, so daß Sie entweder den Computer
  2722.   ausschalten oder den Resetknopf drücken müssen. Die CPCs hatten keinen
  2723.   Resetknopf, man konnte sich aber leicht einen bauen. In CPCEMU ist die
  2724.   Funktionstaste F8 der Resetknopf.
  2725.  
  2726. Cursor (deutsch: Blinker)
  2727.   Zeichen auf dem Bildschirm, das die aktuelle Schreibposition anzeigt.
  2728.   Es gibt auch Cursortasten, mit denen man dieses Zeichen steuern kann.
  2729.  
  2730. D-Sub
  2731.   Eine spezielle Form von Steckverbindern
  2732.  
  2733. Datei (englisch: file)
  2734.   Sammlung von zusammengehörigen Daten. Auf dem »CPC gibt es Dateien
  2735.   verschiedenen Typs, z.B. die BASIC-Dateien mit BASIC-Programmen und
  2736.   normalerweise der Endung .BAS, ASCII-Dateien mit beliebigem Text
  2737.   und Binärdateien mit beliebigen Bytes und normalerweise der Endung .BIN.
  2738.   Binärdateien können Maschinenprogramme oder andere Daten enthalten.
  2739.  
  2740. Dk'tronics
  2741.   Englische Firma, die Hardware-Erweiterungen für den »CPC herausgebracht
  2742.   hat, unter anderem auch Speichererweiterungen.
  2743.  
  2744. DMA (Abkürzung für: Direct Memory Access)
  2745.   Direkter Zugriff auf den Arbeitsspeicher unter Umgehung des Prozessors.
  2746.   Wird z.B. bei Diskettenlaufwerken eingesetzt, aus Sparsamkeitsgründen
  2747.   beim »CPC aber nicht.
  2748.   Auch die Soundblaster-Karte kann einen DMA-Kanal benutzen, durch den sie
  2749.   die digitalen Sounddaten bekommt.
  2750.  
  2751. DOS (Abkürzung für: disk operating system)
  2752.   Diskettenorientiertes Betriebssystem. Z.B. AMSDOS, DRDOS, MS-DOS.
  2753.   Heute wird DOS als Synonym für MS-DOS verwendet.
  2754.  
  2755. DOS-Suchpfad
  2756.   Der Pfad durch die Unterverzeichnisse, den »DOS benutzt, um eine Datei
  2757.   zu finden. Er wird durch die Umgebungsvariable PATH festgelegt.
  2758.  
  2759. DRDOS
  2760.   MS-DOS-kompatibles »DOS der Firma Digital Research.
  2761.  
  2762. Email (Abkürzung für: Electronic Mail)
  2763.   Die Benutzung eines Computers als Briefkasten.
  2764.  
  2765. EMM (Abkürzung für: Expanded Memory Manager)
  2766.   Ähnlich wie »EMS.
  2767.  
  2768. EMS (Abkürzung für: Expanded Memory System)
  2769.   Speichererweiterung für den »PC, um die 640KB-Speichergrenze zu umgehen.
  2770.   Durch Banking werde in einem sogenannten EMS-Speicherfenster andere
  2771.   Speicherseiten eingeblendet.
  2772.   EMS wurde von den 3 Firmen Lotus Intel Microsoft entwickelt, deshalb
  2773.   heißt es auch LIM-EMS.
  2774.   Es gibt Hardware-, emuliertes und simuliertes EMS.
  2775.   Spezielle Speicherkarten stellen Hardware-EMS zur Verfügung. Es wurde
  2776.   hauptsächlich bei PC XT eingesetzt. Emuliertes EMS gibt es auf PC AT
  2777.   mit mindestens 80386 Prozessor, da der Paging-Mechanismus für das Banking
  2778.   benutzt wird. Diese Form bietet EMM386.EXE und sollte bei CPCEMU
  2779.   eingesetzt werden.
  2780.   Bei simuliertem EMS werden die Speicherseiten kopiert, was für CPCEMU
  2781.   zu langsam ist.
  2782.  
  2783. Emulator
  2784.   Das System, welches ein anderes »emuliert.
  2785.  
  2786. Emulieren
  2787.   Nachbildung eines Systems (aus Hard- und/oder Software) durch ein anderes.
  2788.   Das nachbildende System führt mit den gleichen Daten die gleichen
  2789.   Funktionen aus und kommt zu den gleichen Ergebnissen.
  2790.   CPCEMU emuliert einen »CPC auf einem »PC.
  2791.  
  2792. Formatdefinitionen
  2793.   Definitionen von Disketten-Formaten.
  2794.  
  2795. FTP (Abkürzung für: File Transfer Protocol)
  2796.   Ein Protokoll, mit dem man Dateien über Rechnernetze kopieren kann.
  2797.   Auch das Programm, das dieses Protokoll benutzt, heißt FTP.
  2798.  
  2799. Hardware
  2800.   Die Teile eines Computers, die "anfaßbar" sind, also z.B. angeschlossene
  2801.   Geräte wie Drucker, Monitor; intern der Prozessor und andere
  2802.   »Hardwarebausteine.
  2803.  
  2804. Hardwarebausteine
  2805.   Bausteine, Chips im Innern des Computers, z.b. Prozessor, Speicherchips,
  2806.   Diskettencontroller, Ein-/Ausgabebausteine, ...
  2807.   Im CPC gibt es neben dem Z80-Prozessor das Gate-Array, den CRTC 6845
  2808.   zur Bildschirmadressierung, den PIO 8255 zur Ein-/Ausgabe, den
  2809.   Soundchip PSG AY 3-8912, den Diskettencontroller FDC 765, ...
  2810.  
  2811. Hardware-Scrolling
  2812.   Verschieben des Bildschirminhalts, bei dem nicht der Speicherinhalt vom
  2813.   Prozessor kopiert werden muß, sondern wo ein Hardwarebaustein
  2814.   mithilft, so daß nur der Bildschirmstart verändert werden braucht.
  2815.  
  2816. Initialisieren
  2817.   Vorbelegen von Speicherzellen mit bestimmten Werten, damit z.B.
  2818.   Variablen einen definierten Inhalt haben.
  2819.  
  2820. Internet
  2821.   Ein Internet ist ein aus mehreren Teilnetzen bestehendes Rechnernetz.
  2822.   Hier ist *das* Internet gemeint, ein weltweites Netzwerk zur Kommunikation.
  2823.  
  2824. Interrupt (Unterbrechung)
  2825.   Falls der Prozessor ein Signal mit höherer Priorität bekommt, bricht
  2826.   er das laufende Programm ab und führt ein spezielles Interrupt-Programm
  2827.   aus. Nachdem dieses beendet ist, macht er mit dem unterbrochenen
  2828.   Programm weiter. Auf dem PC gibt es verschiedene Interrupt-Signale.
  2829.   diese werden ausgelöst, wenn z.B. eine Taste gedrückt wurde, ein
  2830.   Timer abgelaufen ist, Daten von der seriellen Schnittstelle empfangen
  2831.   werden (z.B. wenn die Maus bewegt wird), die Soundkarte mit dem
  2832.   Abspielen eines digitalen Klanges fertig ist und neue Daten braucht, ...
  2833.   Der Z80 im »CPC wird 300 mal pro Sekunde unterbrochen.
  2834.  
  2835. Interrupt-Nummer IRQ (IRQ=Abkürzung für: Interrupt Request)
  2836.   Auf dem PC haben verschiedene »Interrupts verschiedene Nummern.
  2837.   Der Tastaturinterrupt hat z.B. die Nummer 9, der Timer-Interrupt die
  2838.   Nummer 8. Wenn Sie eine Taste drücken, stellt die Tastatur eine
  2839.   Interrupt-Anforderung (IRQ), damit der Prozessor die Tastennummer
  2840.   abholt.
  2841.  
  2842. Jumper-Box
  2843.   Eine Adapter-Box zum Stecken beliebiger Verbindungen mittels Drahtbrücken
  2844.   zwischen zwei Anschlüssen. Die Drahtbrücken müssen festgelötet werden.
  2845.   Siehe auch »Wiring-Box.
  2846.  
  2847. Keyboard-Handler
  2848.   Dieses Programm wird aufgerufen, wenn Sie eine Taste drücken und
  2849.   ein »Interrupt generiert wurde.
  2850.  
  2851. Kommandozeilen-Parameter
  2852.   Parameter, die Sie in der Kommandozeile zusammen mit dem Dateinamen
  2853.   angeben.
  2854.  
  2855. Konfiguration
  2856.   Hier: Ein Programm an seine Bedürfnisse anpassen.
  2857.   Wie im »Setup können Sie dies auch in der Konfigurations-Datei tun.
  2858.  
  2859. LIM-Standard (Abkürzung für: Lotus Intel Microsoft)
  2860.   Die von Lotus Intel Microsoft entwickelte Speichererweiterung mit
  2861.   der Abkürzung »EMS.
  2862.  
  2863. Locomotive
  2864.   Englische Firma, die das »BASIC der »CPCs entwickelt hat.
  2865.  
  2866. Mailing-List
  2867.   Ein Service von mir, bei dem ich Ihre E-Mail-Adresse in einer Liste
  2868.   aufnehme, so daß ich Sie über Neuigkeiten informieren kann. Ich
  2869.   verschicke dann die Neuigkeit an alle Teilnehmer, die auf der
  2870.   Liste stehen.
  2871.  
  2872. Microchannel
  2873.   Spezielle Bus-Architektur.
  2874.  
  2875. MS-DOS (Abkürzung für: Microsoft Disk Operating System)
  2876.   Ein Betriebssystem, das von der amerikanischen Firma Microsoft für
  2877.   16-Bit-Prozessoren (8086) entwickelt wurde. Es ist das erfolgreichste
  2878.   Betriebssystem für den PC und wird auch immer noch auf den 32-Bit-
  2879.   Prozessoren 80386 und 80486 eingesetzt.
  2880.  
  2881. Multi-Modes
  2882.   Programmiertechnik, bei der der Bildschirmmodus während des Bildaufbaus
  2883.   geändert wird. Auf dem »CPC entstehen Zonen, in denen man in manchen
  2884.   Bereichen hohe Auflösung mit wenigen Farben und in anderen Bereichen
  2885.   niedrige Auflösung mit vielen Farben hat.
  2886.  
  2887. Multiface II (Abkürzung für: Multipurpose Interface)
  2888.   Eine Hardwareerweiterung für den CPC, die es erlaubt, Programme zu
  2889.   jeder Zeit anzuhalten, zu analysieren und abzuspeichern.
  2890.   Es wurde von der englischen Firma Romantic Robot entwickelt.
  2891.  
  2892. OS (Abkürzung für: Operating System, deutsch: Betriebssystem)
  2893.   Ein Programm, was man braucht, um einen Computer zu benutzen.
  2894.   Es bietet grundlegende Funktionen für Anwendungsprogramme. Neue
  2895.   Betriebssysteme erlegigen z.B. so komplizierte Aufgaben wie
  2896.   Scheduling (Rechenzeit-Zuteilung) in Multitasking-Systemen, ...
  2897.  
  2898. OS/2 DOS-Box
  2899.   Ein Fenster unter dem 32-Bit Betriebssystem OS/2 von IBM, in dem Sie
  2900.   »DOS-Programme starten können. Die sogenannte DOS-Kompatibilitäts-Box.
  2901.  
  2902. Overscan
  2903.   Der Rahmen um die beschreibbare Fläche auf dem Bildschirm.
  2904.   Auf dem PC ist er ziemlich schmal, es läßt sich aber die Randfarbe
  2905.   ändern, z.B. in CPCEMU durch 'BORDER 10'. Auf dem CPC ist der Rahmen
  2906.   ziemlich breit, so daß man nach Möglichkeiten untersucht hat, auch
  2907.   diesen Rand zu benutzen. Durch einen Programmiertrick ist es möglich,
  2908.   den gesamten Bildschirm zu beschreiben. Auch diese Programmiertechnik
  2909.   wird meistens mit Overscan bezeichnet.
  2910.  
  2911. Parameter
  2912.   Variable mit einer festen Bedeutung, die über den Programmablauf
  2913.   entscheidet.
  2914.  
  2915. PC (Abkürzung für: Personal Computer)
  2916.   Computer mit einem Mikroprozessor als Prozessor. Meistens als Synonym
  2917.   für den IBM-PC mit 8086 oder 8088 Prozessor.
  2918.   PC AT (advanced technology) sind Computer mit 80286, 80386 oder 80486
  2919.   als Prozessor.
  2920.  
  2921. PEEKs und POKEs:
  2922.   »BASIC-Befehle, um Speicherstellen auszulesen 'PEEK(<Adresse>)' oder
  2923.   zu verändern 'POKE <Adresse>,<Wert>'. Programme mit vielen PEEKs
  2924.   und POKEs sind kaum zu verstehen, sind aber manchmal notwendig,
  2925.   um die Beschränkungen des BASIC zu durchbrechen, besonders wenn
  2926.   das BASIC nicht so umfangreich ist.
  2927.  
  2928. PKUNZIP
  2929.   Programm der Firma PK-Software zum Entpacken von »ZIP-Dateien.
  2930.  
  2931. RAM (Abkürzung für: Random Access Memory, also Schreib- ,Lesespeicher).
  2932.   Speicherbaustein. Arbeitsspeicher des Computers.
  2933.   Die CPC-Computer haben 64KB RAM (Kilo-Bytes) oder 128 KB. Durch
  2934.   Hardwareerweiterungen anderer Firmen konnten sie auf bis zu 576 KB RAM
  2935.   erweitert werden.
  2936.  
  2937. ROM (Abkürzung für: read-only-memory, deutsch: Nur-Lese-Speicher).
  2938.   Speicherbaustein. Speicher, der vom Prozessor nur gelesen aber nicht
  2939.   verändert werden kann. Nach dem Einschalten eines Computers sofort
  2940.   vorhanden. Die »CPC-Computer haben z.B. 16KB ROM für das »OS,
  2941.   16KB für das »BASIC und 16KB für das »AMSDOS.
  2942.  
  2943. ROM-Abbild
  2944.   Datei, in denen sich der Inhalt eines »ROM befindet. Wenn Sie ein
  2945.   ROM auslesen und in einer Datei abspeichern, dann haben Sie ein
  2946.   ROM-Abbild.
  2947.  
  2948. RS-232
  2949.   Serielle »Schnittstelle zum Anschluß von Bildschirmen und Druckern an den
  2950.   Computer (RS 232 C).
  2951.  
  2952. Schneider
  2953.   Deutscher Unterhaltungselektronik-Hersteller, der die CPCs in Deutschland
  2954.   vertrieben hat.
  2955.  
  2956. Schnittstelle (englisch: Interface)
  2957.   Anschlußstelle eines Computers zu einem Gerät oder eines Programme zu
  2958.   einem anderen Programm. Es gibt also Hard- und Software-Schnittstellen.
  2959.   Die sogenannte Centronics-Schnittstelle ist eine parallele Schnittstelle,
  2960.   bei der die Bytes parallel, d.h. nebeneinander übertragen werden.
  2961.   Bei einer seriellen Schnittstelle müssen die Bytes Bit für Bit nacheinander
  2962.   übertragen werden.
  2963.  
  2964. Setup (deutsch "aufsetzen")
  2965.   Darin werden verschiedene Festlegungen gemacht, die den Programmablauf
  2966.   beeinflussen, z.B. Angabe der Soundkarte, ob Sie einen Joystick benutzen
  2967.   wollen, ...
  2968.  
  2969. SIMTEL
  2970.   Ein großes Software-Archiv in den USA.
  2971.   Das SimTel-Software Archiv wird von "Coast to Coast Telecommunications,
  2972.   Inc. (CCT)" auf einem ihrer Rechner im Internet als "SimTel.Coast.NET"
  2973.   unterhalten. Dieses Archiv wird regelmäßig zu anderen Orten kopiert
  2974.   (mirrored). Eine Kopie (mirror=engl. Spiegel) befindet sich in der
  2975.   "Oakland University", im Internet als "OAK.Oakland.Edu". Natürlich gibt
  2976.   es auch in Deutschland SimTel-"mirrors", z.B. "ftp.uni-paderborn.de".
  2977.  
  2978. Snapshots (deutsch: Schnappschuß)
  2979.   Ein Speicherauszug erweitert um Zustände der »Hardwarebausteine.
  2980.   Er enthält eine komplette momentane Zustandsbeschreibung des Computers.
  2981.   Wenn der Snapshot geladen wird, wird der Computer in genau diesen
  2982.   Zustand zurückversetzt und macht dort weiter, wo der Snapshot
  2983.   erstellt wurde. Somit ist es ähnlich einem richtigen Schnappschuß,
  2984.   nur von Innern des Computers.
  2985.  
  2986. Software
  2987.   Die Programme bei einem Computersystem.
  2988.  
  2989. Soundblaster
  2990.   Die Soundkarte der Firma Creative Labs.
  2991.  
  2992. Spectrum
  2993.   Der Sinclair Spectrum ist ein Homecomputer, der von der Firma Sinclair
  2994.   entworfen wurde.
  2995.  
  2996. Taktfrequenz
  2997.   Takt, mit dem der Prozessor versorgt wird. Er bestimmt wesentlich die
  2998.   Geschwindigkeit des Prozessors. Heutige 486DX2/66 Prozessoren werden
  2999.   z.B. intern mit 66 MHz getaktet.
  3000.   Der Z80A im »CPC wird mit 4 MHz getaktet, wovon effektiv 3.3 MHz
  3001.   übrigbleiben, weil er immer regelmäßig auf die Bildschirmauffrischung
  3002.   warten muß.
  3003.  
  3004. Turbo-Pascal Compiler
  3005.   Pascal ist eine höhere Programmiersprache, die strukturiertes
  3006.   Programmieren fördert und heute an vielen Schulen eingesetzt wird.
  3007.   Wenn man von Pascal redet, meint man meistens Turbo-Pascal, obwohl
  3008.   dieses nur ein erweitertes Pascal der Firma Borland ist. Der Turbo-Pascal
  3009.   Compiler ist besonders schnell, da er die Übersetzung in
  3010.   Maschinensprache in einem Durchgang erledigt.
  3011.  
  3012. Utility
  3013.   Nützliches Hilfsprogramm.
  3014.  
  3015. VGA (Abkürzung für: Video Graphics Array)
  3016.   Grafikstandard auf dem PC. Nachfolger von CGA (Colour Graphics
  3017.   Adapter), MCGA (Multi Colour Graphics Adapter) und EGA (Enhanced
  3018.   Graphics Adapter). Wurde zu SVGA (Super-VGA) mit noch höheren Auflösungen
  3019.   erweitert.
  3020.  
  3021. VGA-BIOS (Abkürzung für: VGA Basic Input Output Operating System)
  3022.   Das Betriebssystem für die »VGA-Grafikkarte
  3023.  
  3024. Windows (deutsch: "Fensters" ?)
  3025.   Ein Betriebssystem-Aufsatz für »DOS.
  3026.  
  3027. Wiring-Box (deutsch: Kabelbox)
  3028.   Ein Adapter mit zwei Steckern, zwischen denen mittels Drahtbrücken
  3029.   verschiedene Verbindungen hergestellt werden können.
  3030.   Im Gegensatz zur Wiring-Box müssen bei einer »Jumper-Box die
  3031.   Drahtbrücken festgelötet werden.
  3032.  
  3033. Z80
  3034.   Ein von der Firma Zilog entwickelter 8-Bit Prozessor. Ist ein Ableger
  3035.   von Intels 8080 und war sehr weit verbreitet.
  3036.   Im »CPC ist der Z80A eingebaut, der mit einer »Taktfrequenz von 4 MHz
  3037.   arbeitet.
  3038.  
  3039. Z80-Befehle
  3040.   Maschinenbefehle, die der »Z80 (-Prozessor) versteht. Eigentlich sind das
  3041.   nur Zahlenfolgen, um sich die Befehle besser merken zu können, wurden
  3042.   sogenannte Mnemonics eingeführt, die von einem Assembler in
  3043.   Binärcode übersetzt werden. Der Befehl "LD A,B" läd z.B. Register A
  3044.   mit dem Inhalt von Register B und wird mit dem Code 0x78 übersetzt.
  3045.  
  3046. Zahlendarstellung (bei Stellenwertsystemen)
  3047.   Je nach gewählter Basis gibt es verschiedene Darstellungen für eine Zahl.
  3048.   Am bekanntesten ist die dezimale Zahlendarstellung mit der Basis 10
  3049.   und den Ziffern 0..9.
  3050.   Computer verwenden die binäre Darstellung (Basis 2) mit den Ziffern 0
  3051.   und 1. Bei Programmieren beliebt ist die hexadezimale Darstellung
  3052.   zur Basis 16, weil 16 eine Potenz von 2 ist (2 hoch 4). Die Darstellungen
  3053.   lassen sich dann ganz einfach ineinander umrechnen. Außerdem
  3054.   benötigen ein Byte nur 2 Ziffern, wenn man es hexadezimal aufschreibt
  3055.   (0..9,A..F).
  3056.  
  3057. ZIP
  3058.   Ein spezielles Verfahren zum Komprimieren (Packen) von Dateien.
  3059.   Die »Archive haben dann die Endung ZIP.
  3060.  
  3061.  
  3062.  
  3063.  
  3064.  
  3065. A.2  Literaturverzeichnis
  3066. ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
  3067.  
  3068.  
  3069. Unentbehrlich für jeden CPC-Anfänger ist das CPC-Benutzerhandbuch:
  3070. - Spital Ivor und Perry, Roland und Poel, William und Lawson,Cliff:
  3071.     CPC 6128 Benutzerhandbuch, Schneider Computer Division 1985,
  3072.     Originalausgabe (c) 1985 (in meinem Exemplar steht übrigens 1895)
  3073.     by AMSOFT, AMSTRAD Consumer Electronics plc and Locomotive
  3074.     Software Ltd.
  3075.  
  3076.  
  3077. Ein hervorragend kommentiertes ROM-Listing und einleitende Kapitel,
  3078. die besonders die Softwareseite des CPC berücksichtigen, bietet:
  3079. - Janneck, Jörn W. und Mossakowski,Till: ROM-Listing CPC 464/664/6128,
  3080.     Markt & Technik Verlag 1986
  3081.  
  3082. Lieblos zusammengeschustert und dürftig kommentiert dagegen, mit
  3083. Schwerpunkt Hardware ist:
  3084. - Brückmann, Englisch, Gertis: CPC 464 Intern mit kommentiertem
  3085.     ROM-Listing, Data Becker 1985
  3086.  
  3087. Gut zum C lernen, mit vielen Übungsaufgaben, ist:
  3088. - Kellay, Al and Pohl, Ira: A Book on C, Second Edition, 1990 by
  3089.     Benjamin/Cummings Publishing Company, Inc.
  3090.  
  3091. Tips, wie man ein verständliches und gutes Handbuch schreibt, bietet:
  3092. - Boedicker, Dagmar: Handbuch-Knigge, Software Handbücher schreiben
  3093.     und beurteilen. Wissenschaftsverlag 1990
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099. A.3  Index (Stichwortverzeichnis)
  3100. ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
  3101.  
  3102. Die Zahlen hinter den Stichworten geben das Kapitel an, wo das Stichwort
  3103. erklärt wird oder vorkommt.
  3104.  
  3105. (noch nicht vollständig)
  3106.  
  3107. #ENDIF 4.2
  3108. #IFCPC 4.2
  3109. 22DISK 5.1.2
  3110. Adapter, parallel 5.2
  3111. AMSDOS_DI 4.2
  3112. AMSDOS_SPDUP 4.2
  3113. BLASTER-Umgebung 2.3.2
  3114. BREAK_MASK 4.2
  3115. COLOUR 4.2
  3116. CPC 1.3
  3117. CPC-Newsgruppe 6.2
  3118. CPCEMU.CFG 4.2
  3119. CPCPARA.BAS 5.2
  3120. CPCREC.BAS 5.2
  3121. CPCTRANS.EXE 5.1.1
  3122. Debug-Menü 7.3
  3123. DELAY  4.2
  3124. Diskette 3.2.1
  3125. Disketten-Abbilder 3.2.1
  3126. DRIVE_A 4.2
  3127. DRIVE_B 4.2
  3128. EMS_EI 4.2
  3129. EMS-Speicher 2.3.1
  3130. Funktionstasten 3.1
  3131. INT_FREQ 4.2
  3132. INT_RESUME 4.2
  3133. JOY_CALIBRATE 4.2
  3134. Kassette 3.2.2
  3135. KBD_LANGUAGE 4.2
  3136. Konfigurationsdatei 4.2
  3137. Menüs 3.2.1
  3138. Multi-Mode 4.1
  3139. MULTIMODE 4.2
  3140. PCPARA.EXE 5.2
  3141. PIO_PORT_B 4.2
  3142. PRINTER 4.2
  3143. RAM_SIZE 4.2
  3144. ROM_BLOCK 4.2
  3145. ROM_PATH 4.2
  3146. SBLASTER 4.2
  3147. SB_DELAY 4.2
  3148. Setup-Menü 4.1
  3149. SHOW_CONFIG 4.2
  3150. SNAPSHOT 4.2
  3151. Snapshot 3.2.3
  3152. SOUND 4.2
  3153. Soundblaster 2.3.2
  3154. TAPE_BYPASS 4.2
  3155. TAPE_PATH 4.2
  3156. Tastatur 3.1
  3157. TMP_PATH 4.2
  3158. VSYNC-Bit 4.1
  3159.  
  3160.  
  3161. ------------------------------------------------------------------------------
  3162. logout
  3163. ------
  3164.