Herunterladen Diese Seite drucken
Vorschau ausblenden Andere Handbücher für KC85/5:

Werbung

Werbung

loading

Inhaltszusammenfassung für Kleincomputer KC85/5

  • Seite 3 CAOS 4.6 bis 4.8...
  • Seite 4 Impressum der Originalausgabe für den KC 85/4: Gesamtherstellung: Druckerei August Bebel Gotha Ri 1/89 WV/6/1-10 84297 veb mikroelektronik „wilhelm pieck“ mühlhausen Der Vertrieb dieser Druckschrift erfolgt ausschließlich durch den Herausgeber. Nachfragen bei der Druckerei sind zwecklos. Ohne Genehmigung des Herausgebers ist es nicht gestattet, das Buch oder Teile daraus nachzudrucken oder auf fotomechanischem Wege zu vervielfältigen.
  • Seite 5 Inhaltsverzeichnis EINLEITUNG .......................12 1. AUFBAU UND BEDIENUNG ................17 1.1. Inbetriebnahme ..................18 1.1.1. Bedienungselemente und Anschlüsse .......... 18 1.1.2. Schritte zur Inbetriebnahme eines KC-Systems ......20 1.1.3. Das erste Computerbild ..............23 1.1.4. Einschaltfehler ................24 1.1.5. Hinweise ..................25 1.2.
  • Seite 6 Inhaltsverzeichnis CAOS-Kommando VERIFY ............... 58 CAOS-Kommando DIR ..............59 CAOS-Kommando INIT ..............59 CAOS-Kommando REN ..............60 CAOS-Kommando ERA ..............60 CAOS-Kommando SETRO ..............61 CAOS-Kommando SETWR ............... 61 CAOS-Kommando TYPE ..............61 CAOS-Kommando DUMP ..............61 1.5.4. Beeinflussen der Bildschirmausgabe ..........62 CAOS-Kommando WINDOW ............
  • Seite 7 Inhaltsverzeichnis 2.2.3. Modulsteckplätze 08 und 0C ............94 2.2.4. Steckverbinder EXPANSION-INTERFACE ........95 2.2.5. Signalbeschreibung Modul- und EXPANSION-INTERFACE ..96 2.2.6. Steckverbinder TV-RGB .............. 101 2.3. Systemausbau ..................104 2.3.1. Module und Erweiterungsaufsätze ..........104 2.3.2. Systemausbau über V.24-Schnittstelle ........110 2.3.3.
  • Seite 8 Inhaltsverzeichnis 3.6.8. Arbeitszellen im IRM ..............186 3.7. Funktionstasten ..................192 3.7.1. Speicher für Funktionstastenbelegung ........193 3.7.2. Belegen der Funktionstasten mit Steuerzeichen ......193 3.8. Magnetbandaufzeichnung ..............194 3.8.1. Verfahren ..................194 3.8.2. Dateiaufbau ................. 194 3.8.3. Dateitypen ................... 196 3.9.
  • Seite 9 Inhaltsverzeichnis 4. ERWEITERUNGEN ..................253 4.1. BASIC ....................254 Einführung ..................254 4.1.1. BASIC Kaltstart/Warmstart und Anweisung BYE ......256 Tastatur unter BASIC und die Anweisung BYE ....... 257 4.1.2. BASIC-Anweisungen PRINT, LET, CLEAR, CLS ......259 Variablen und Konstanten ............... 260 Wertzuweisung mit LET und die Anweisung CLEAR ......
  • Seite 10 Inhaltsverzeichnis 4.1.14. String-Operationen, String-Funktionen ........321 String-Operationen ................321 String-Funktionen ................321 Eingabe mit INKEY$ ................ 323 4.1.15. Anweisung PAUSE ..............324 Die Anweisung PAUSE ..............324 4.1.16. Unterprogrammtechnik (Anweisungen GOSUB, RETURN) ..325 4.1.17. Mehrfache Programmverzweigungen ........326 ON…GOTO… .................. 326 ON…GOSUB…...
  • Seite 11 Inhaltsverzeichnis ASM-Kommando LOAD ..............379 ASM-Kommando VERIFY ............... 379 ASM-Kommando KEY ..............380 ASM-Kommando ASM ..............380 ASM-Kommando EDIT ..............381 ASM-Kommando HELP ..............381 ASM-Kommando LABEL ..............381 ASM-Kommando LBLIST ..............381 ASM-Kommandos DIR, CD, REN, ERA und DEVICE ..... 382 4.2.3.
  • Seite 12 Inhaltsverzeichnis 4.4. Debugger TEMO .................. 420 4.4.1. Starten des Debuggers ..............420 4.4.2. Das Debugger-Menü ..............421 Debugger-Kommando WORKRAM ..........421 Debugger-Kommando MENU ............422 Debugger-Kommando QUIT ............422 Debugger-Kommando DISASS ............422 Debugger-Kommando REG ............. 422 Debugger-Kommandos SWITCH, DISPLAY und MODIFY ..... 422 Debugger-Kommando CRC .............
  • Seite 13 Inhaltsverzeichnis 5. ANHANG .......................438 5.1. Technische Parameter ................. 438 5.2. Bildschirmorganisation KC 85/3 und KC 85/4 ........440 5.3. Internetadressen für den KC 85 ............446 5.4. CAOS Versionsgeschichte ..............447 5.5. Bekannte Probleme ab CAOS 4.7 ............450 5.6. Literatur ....................453 5.7.
  • Seite 14 EINLEITUNG Das vorliegende Handbuch ist die überarbeitete und stark erweiterte Fassung des Systemhandbuchs vom KC 85/4. Der Kleincomputer KC 85/4 ist ein vielseitig ein- setzbarer Kleinrechner aus der KC 85-Reihe des VEB Mikroelektronik „Wilhelm Pieck“ Mühlhausen und wurde vom KC-Club zum KC 85/5 weiterentwickelt. Da diese Hardwareerweiterung bereits auf der Hauptplatine des KC 85/4 vorbereitet war, beschränkt sich der Umbau auf den Austausch weniger Bauteile:...
  • Seite 15 Einleitung Dies ermöglicht, Programme auszuführen, welche eine spezielle CAOS-Version erfordern oder mit neueren CAOS-Versionen nicht kompatibel sind. Mit der Adapterplatine sind drei Varianten möglich: 1. Variante: Umschaltung mit Drehschalter in der Gehäusefront 2. Variante: softwaregesteuerte Umschaltung über den JUMP-Befehl von CAOS 4.8, vier zusätzliche Verbindungen zu D009 (DL374) und D013 (DL003) sind nötig.
  • Seite 16 Einleitung Die Anwendersoftware wurde in Form von Magnetbandkassetten angeboten und ist zur Nutzung mithilfe eines Kassettenrecorders in den Computer zu laden. Außerdem wurden Softwaremodule angeboten. Selbst erstellte Programme kön- nen auf einer Magnetbandkassette gespeichert und von dort ebenfalls in den Computer geladen werden.
  • Seite 17 Einleitung USER-ROM Der USER-ROM des KC 85/5 enthält vier unabhängig voneinander nutzbare Speicherebenen, welche mit Einschränkungen auch mit eigenständigen Program- men belegt werden können. Beschrieben wird in diesem Handbuch die Standard- Belegung mit BASIC, Assembler, Debugger und Editor. Mit ASM 2.1 steht dem KC 85/5 ein leistungsfähiger Assembler für die Erstellung von Maschinenprogrammen in CAOS 4.8 zur Verfügung.
  • Seite 19 1. AUFBAU UND BEDIENUNG...
  • Seite 20 1. AUFBAU UND BEDIENUNG 1.1. Inbetriebnahme 1.1.1. Bedienungselemente und Anschlüsse Bild 2: Vorderansicht des KC 85/5-Grundgerätes Bild 3: Rückansicht des KC 85/5-Grundgerätes...
  • Seite 21 1. AUFBAU UND BEDIENUNG ① Netzschalter (POWER ON/OFF) Mit diesem Schalter wird der Computer ein- und ausgeschaltet. Im eingeschalte- ten Zustand leuchtet die Netzkontrollanzeige. ② Netzkontrollanzeige Diese Anzeige leuchtet mit vorhandener 5V-Spannung am Netzteil. ③ RESET-Taste Durch Betätigen dieser Taste wird das Betriebssystem neu initialisiert. Es erscheinen das Menü...
  • Seite 22 1. AUFBAU UND BEDIENUNG ⑪ UHF-Anschluss Sollen die Bildsignale über den Antenneneingang (UHF, Kanal 36, Band IV) in das Fernsehgerät eingespeist werden, so ist die an der Computerrückseite her- ausgeführte HF-Anschlussleitung in den UHF-Antenneneingang des Fernsehge- rätes zu stecken. Dabei ist eine Tonausgabe über das Fernsehgerät jedoch nicht möglich (Lautstärkeregler zurückdrehen).
  • Seite 23 1. AUFBAU UND BEDIENUNG 3. Schließen Sie das an der Rückseite befindliche Antennenkabel an den UHF- Antenneneingang des Fernsehgerätes an. Bei einem Monitor mit AV- oder RGB-Eingang wird der TV-RGB-Anschluss des Computers über eine entsprechende Spezialleitung mit dem Monitor ver- bunden.
  • Seite 24 1. AUFBAU UND BEDIENUNG Bild 4: Anschlussschema des Kleincomputersystems...
  • Seite 25 1. AUFBAU UND BEDIENUNG 1.1.3. Das erste Computerbild Nach dem Einschalten des Computers leuchtet die Netzkontrollanzeige auf und der KC 85/5 meldet sich mit folgendem Menü auf dem Fernsehbildschirm arbeits- bereit: Bild 5: CAOS-Grundmenü Ist Ihr Fernsehbild unscharf oder verzerrt, regeln Sie es durch die Feineinstellung am Kanalwähler nach.
  • Seite 26 1. AUFBAU UND BEDIENUNG 1.1.4. Einschaltfehler In der folgenden Tabelle werden Ihnen einige Hinweise gegeben zum Erkennen von Einschaltfehlern und deren Beseitigung. Sollten Sie trotzdem kein erkennba- res Bild erhalten, ist das Gerät in eine Vertragswerkstatt zu geben. Tabelle 1: Fehlertabelle für Einschalten KC 85/5 Fehler Ursache Beseitigung...
  • Seite 27 1. AUFBAU UND BEDIENUNG Fehler Ursache Beseitigung - Bild nur sche- - Kanal ungenau eingestellt - Erneutes Einstellen des Kanal- menhaft oder wählers unscharf - falscher Bereich einge- - Band IV Kanal 36 einstellen stellt - Antennenleitung im VHF- - UHF-Anschluss benutzen Bereich gesteckt - Bild vorhan- - Tastaturanschluss ver-...
  • Seite 28 1. AUFBAU UND BEDIENUNG 1.2. Tastatur Bild 6: Tastatur mit Editier-, Steuer- und Funktionstasten...
  • Seite 29 1. AUFBAU UND BEDIENUNG 1.2.1. Funktion und Tastaturebenen Nachdem Sie die Verbindungen nach Bild 4 gesteckt, Fernsehgerät, Recorder und Computer wie in Kapitel 1.1.2. beschrieben eingeschaltet haben, liegt vor Ihnen die Tastatur zur Eingabe bereit. Es ist eine Tastatur zur manuellen Eingabe von Buchstaben, Ziffern, Sonder- und Steuerzeichen.
  • Seite 30 1. AUFBAU UND BEDIENUNG In der ersten Tastaturebene (Programmeingabemodus) gelten für die Erstbe- legung die auf den Tasten unten stehenden Zeichen, in der Zweitbelegung die auf den Tasten oben abgebildeten Zeichen. Der Begriff „Programmeingabemo- dus“ resultiert aus der Tatsache, dass Anweisungen und Kommandos in vielen Programmiersprachen, z.
  • Seite 31 1. AUFBAU UND BEDIENUNG 1.2.2. Buchstaben, Ziffern Zur Verständigung zwischen dem Anwender und dem Computer müssen spezi- elle Codes von der Tastatur an den Computer gesendet werden. Drücken Sie z. B. auf die Taste , so erscheint auf dem Bildschirm der Buchstabe A. Das ist möglich, weil der Buchstabe von der Tastatur als Impulsfolge an den Compu- ter gesandt wird.
  • Seite 32 1. AUFBAU UND BEDIENUNG 1.2.3. Steuertasten Eine weitere Funktionsgruppe bilden am Computer die Steuerfunktionen. Diese können Sie in allen 3 Tastaturebenen benutzen. Folgende Tasten gehören zu dieser Gruppe: SHIFT: Umschaltung der Tastaturbelegung Mit dieser Taste wird auf die Zweitbelegung der Tasten für die Dauer der Betätigung umgeschaltet.
  • Seite 33 1. AUFBAU UND BEDIENUNG STOP: verschiedene modispezifische Steuerfunktionen Erstbelegung: Die Taste wird in bestimmten Programmen (z. B. in BASIC für Pro- grammhalt) zur Steuerung benutzt. Zweitbelegung: Einschalten der 3. Tastaturebene (ESCape). Mit <SHIFT>-<STOP> wird die 3. Tastaturebene eingeschaltet. Das nachfolgend eingege- bene Zeichen wird als Steuerzeichen interpretiert.
  • Seite 34 1. AUFBAU UND BEDIENUNG CURSOR HOME: Cursor nach links oben / Fenster löschen Erstbelegung: Der Cursor wird in der oberen, linken Ecke des Bildfensters platziert. Zweitbelegung: Das Bildfenster wird gelöscht (CLEAR SCREEN). Der Cursor erscheint in der oberen, linken Ecke des Fensters. Cursor nach unten / SCROLL-Modus Erstbelegung: Der Cursor bewegt sich um eine Zeile nach unten.
  • Seite 35 1. AUFBAU UND BEDIENUNG 1.2.5. Funktionstasten Tasten Die Funktionen dieser Tasten können durch den Anwender selbst festgelegt wer- den. Für die Belegung dieser Tasten gibt es das Betriebssystemkommando KEY (Seite 47). Mit der Erst- und Zweitbelegung können insgesamt 12 Tastenfunktio- nen (F1, …, F9, FA, FB, FC) programmiert werden.
  • Seite 36 1. AUFBAU UND BEDIENUNG 1.2.6. „ESC-Taste” und Arbeit mit der 3. Tastaturebene Mit der Tastenfolge gefolgt von wird der Code 1BH (27 dezimal) an den Computer gesendet und damit die 3. Tastaturebene aufgerufen. Diese Codierung ist bei vielen Computern und Druckern als ESCape-Funktion definiert. In der Computersprache wird der Steuercode ESCape-Code = ESC als Umschaltcode definiert.
  • Seite 37 1. AUFBAU UND BEDIENUNG Die aufgeführten Steuerfunktionen lassen sich beliebig ändern und erweitern. Für das Erweitern stehen Ihnen die Buchstaben I bis Z zur Verfügung (siehe Kapitel 3.10.4. Seite 227). 1.2.7. Möglichkeiten zur Änderung der Tastenfunktionen Vom CAOS-Betriebssystem werden dem Anwender bestimmte Tastenfunktionen angeboten.
  • Seite 38 1. AUFBAU UND BEDIENUNG 1.3. Ein notwendiger Blick hinter die Kulissen 1.3.1. Vom Bit zur Hexadezimalzahl Bevor wir uns weiter mit dem Computer vertraut machen, werden Sie in diesem Abschnitt einige Grundbegriffe der Computertechnik kennenlernen. Die kleinste Informationseinheit, die der Computer kennt, ist ein Bit. Ein Bit kann nur eine von zwei möglichen Informationen tragen.
  • Seite 39 1. AUFBAU UND BEDIENUNG Wie Sie sehen, ergeben sich mit 4 Bit 16 verschiedene Kombinationen. Da die gebräuchlichen 10 arabischen Ziffern zur Darstellung dieser 4 Bit langen dualen Werte nicht mehr ausreichen, wird das Ziffernrepertoire, wie dargestellt, um die Ziffern A, B, C, D, E und F ergänzt. Diese Ziffern sind die Grundbausteine für ein Stellenwertsystem zur Basis 16 (Hexadezimalsystem).
  • Seite 40 1. AUFBAU UND BEDIENUNG 1.3.3. Steuerbyte Ein Byte kann verschiedene Informationen besitzen. Diese sind codiert und kön- nen Daten, Befehle oder Steuerinformationen sein. Daten z. B. enthalten den Code von Buchstaben, Ziffern usw. Bei Steuerinformationen enthält jedes Bit in einem Byte eine bestimmte Wertigkeit, die ebenfalls, wie bei allen anderen Infor- mationen, 0 oder 1 sein kann.
  • Seite 41 1. AUFBAU UND BEDIENUNG 1.3.5. Farb- und Grafikspeicher Der Bildwiederholspeicher (IRM) des KC 85/5 besitzt einen Speicherumfang von 64 KByte. Zur Darstellung auf dem Bildschirm enthält er 2 Bildspeicher (Bild 0, Bild 1). Zu jedem Bild gehören ein Farb-, Pixel- und ASCII-Speicher. Für die Farbinformation von 8 nebeneinander liegenden Bildpunkten ist im Farb- speicher ein Byte reserviert.
  • Seite 42 1. AUFBAU UND BEDIENUNG 1.4. Joystick und Joysticktreiber Mit dem Einsatz eines Joysticks kann der Bedienkomfort für viele Spiel- und Anwenderprogramme wesentlich erhöht werden. Dazu ist eines der Module M008 oder M021 erforderlich. Diese Module ermöglichen den Anschluss eines Joy- sticks an den KC 85/5.
  • Seite 43 1. AUFBAU UND BEDIENUNG Der in CAOS enthaltene Joysticktreiber erzeugt dabei Tastencodes, die wie eine Tastatureingabe behandelt werden. Die Funktion der Tastencodes wird durch eine 12 Byte große Tabelle gesteuert, deren Beginn in der Arbeitszelle JOYTAB (B7F0H) im IRM abgelegt ist. Diese Joysticktabelle selbst hat folgenden Aufbau: Tabelle 4: Joysticktabelle Adresse Vorbelegung...
  • Seite 44 1. AUFBAU UND BEDIENUNG 1.5. Kommandos des Betriebssystems KC-CAOS Erst durch das Betriebssystems CAOS ist ein Arbeiten mit dem Kleincomputer möglich. Es enthält Programme zur Steuerung der angeschlossenen Geräte. 1.5.1. Das Menü Die Arbeit mit dem CAOS-Betriebssystem erfolgt über die Tastatur mit der auf dem Fernsehgerät bzw.
  • Seite 45 1. AUFBAU UND BEDIENUNG In der folgenden Übersicht werden die im Grundmenü enthaltenen Unterpro- gramme mit dem Hinweis auf eine ausführliche Beschreibung kurz erläutert. In grüner Schrift ist dabei die kürzeste noch eindeutige Schreibweise dargestellt. Menüworte in Kleinbuchstaben oder mit angehängtem Leerzeichen sind nicht sichtbar.
  • Seite 46 1. AUFBAU UND BEDIENUNG Zusätzliche Menüworte Bedeutung Handbuch %DIR Verzeichnis anzeigen Seite 59 Laufwerk wählen Seite 52 %ERA Datei löschen * Seite 60 %REN Datei umbenennen * Seite 60 Im CAOS-ROM-C: %view Speicherschnellansicht Seite 78 %TYPE Anzeige einer Textdatei * Seite 61 %DUMP HEX/ASCII-Dump einer Datei *...
  • Seite 47 1. AUFBAU UND BEDIENUNG CAOS-Kommando MENU %MENU [ n ] Die Ausführung des Kommandos MENU bewirkt das Löschen des Bildschirmes und das Auflisten des aktuellen Menüs. Die Ausgabe kann mit der Taste abgebrochen werden. MENU kann mit einem optionalen Parameter zusätzliche Informationen anzeigen, möglich sind folgende Werte: %MENU 1 zusätzliche Anzeige der versteckten Menüworte...
  • Seite 48 1. AUFBAU UND BEDIENUNG CAOS-Kommando HELP %HELP Seit CAOS 4.4 kann durch das Kommando %help (in Kleinbuchstaben und des- halb im Menü nicht sichtbar) das Erstellungsdatum der CAOS-Version angezeigt werden, z. B.: Ab CAOS 4.8 kann %HELP auch in Großbuchstaben eingegeben werden. Es werden zusätzlich alle Menüworte aufgelistet, die sich im aktuell eingeschalteten Speicherbereich sowie den CAOS-ROM-Ebenen befinden.
  • Seite 49 1. AUFBAU UND BEDIENUNG 1.5.2. Funktionstasten und Joystick CAOS-Kommando KEY Das Kommando KEY kann in drei Formaten benutzt werden: 1. Format: Anzeige der belegten Funktionstasten %KEY Wird KEY ohne Parameter aufgerufen, dann werden alle belegten Funktionstas- ten aufgelistet. Das bis CAOS 4.2 vorhandene Menüwort KEYLIST wurde damit ersetzt.
  • Seite 50 1. AUFBAU UND BEDIENUNG Als Tastenbelegung können alle Zeichen, auch die Steuerzeichen (mit Ausnahme der Taste ) programmiert werden. Die Summe aller Tastenbelegungen darf 143 Zeichen (bzw. 140 Zeichen bei Nutzung der 3 zusätzlichen Funktionstas- ten FD bis FF) nicht übersteigen. Bei der Belegung der F-Tasten gibt es zwei Betriebsarten: den Editiermodus und den Interpretiermodus, zu Beginn des Kommandos befindet man sich im Interpre- tiermodus.
  • Seite 51 1. AUFBAU UND BEDIENUNG CAOS-Kommando JEDIT Eine der Neuerungen ab CAOS 4.5 ist der integrierte Joystick-Treiber. Mit JEDIT steht ab CAOS 4.6 ein Joystick-Editor für diesen Treiber zur Verfügung. Aufruf: %JEDIT [ Argumentliste | 0 ] JEDIT zeigt die Tastenbelegung an und springt in ein eigenes Menü mit dem Punkt als Promptzeichen.
  • Seite 52 1. AUFBAU UND BEDIENUNG .EDIT Aufruf: .EDIT [ Argumentliste | 0 ] Wird .EDIT ohne Parameter aufgerufen, gelangt man in den Joystick-Editor. Die- ser fragt der Reihe nach alle Tastencodes ab. Mit Ausnahme von können alle Tasten verwendet werden, auch die Steuertasten und Funktionstasten. Nach Drücken von oder nach Eingabe des 11.
  • Seite 53 1. AUFBAU UND BEDIENUNG Beim Aufruf von .OK wird die Tabelle an dieser Adresse erzeugt und in JOYTAB (B7F0H) eingetragen. Beispiele: Joystick-Tasten einiger Spiele Gourmand 10 11 13 12 0D 0D Pursuit 10 11 13 12 0D 0D Schiessbude 59 2F 00 00 0D 20 Pegasus5 2E 2F 00 00 59 59 Revolution...
  • Seite 54 1. AUFBAU UND BEDIENUNG Zur Ausführung der DEVICE-Funktionen wird das jeweilige Modul von CAOS eigenständig zu- und auch wieder abgeschaltet. ACHTUNG! Der Modulzugriff funktioniert nur, wenn kein höher priorisiertes Speichermodul auf Adresse C000H eingeschaltet ist. Deshalb empfiehlt es sich, das USB-Modul vor anderen Speichermodulen anzuordnen! Gibt es außer TAPE noch weitere Speichergeräte im KC 85-System, dann wird das erste dieser Speichergeräte beim Systemstart automatisch aktiviert.
  • Seite 55 CAOS-Kommando LOAD %LOAD [ nnnn [ s ] ] Möchten Sie auf Ihrem Kleincomputer ein Maschinenprogramm nutzen, das auf Magnetbandkassette oder einem anderen unterstützten Speichergerät gespei- chert ist, so ist dieses in den Computer zu laden. Dazu wird das Kommando LOAD genutzt.
  • Seite 56 1. AUFBAU UND BEDIENUNG Anhand dieses Bildes können Sie den Ladevorgang auf dem Bildschirm verfol- gen. Nachdem das LOAD-Kommando zur Ausführung gebracht wurde, erscheint als Erstes der eingelesene Programmname (im Beispiel TEST). Ihm folgen die Anfangs- und die Endadresse des Programms (im Beispiel 200 bzw. 400) als hexadezimale Zahlen.
  • Seite 57 1. AUFBAU UND BEDIENUNG Der zweite mögliche Parameter s dient dazu, den Start eines selbst startenden Programms zu unterbinden. Dabei ist der Wert des Parameters unerheblich. Soll das Programm ohne Ladeoffset geladen werden, dann muss der erste Parameter 0 sein: %LOAD 0 0 Die Darstellung der Blocknummern untereinander (siehe folgende Tabelle) ist nur hier in der Beschreibung so gewählt, auf dem Bildschirm sind die fehlerhaften...
  • Seite 58 1. AUFBAU UND BEDIENUNG Fehler Ursache Beseitigung 4. Hinter einer Blocknum- 4.1. Datenfehler im mit - zurückspulen des Ban- mer erscheint ein Fra- Fragezeichen des und betätigen einer gezeichen z. B. gekennzeichneten beliebigen Taste (außer Block (Knitterstellen, Drop Out) Wiederholung des Ein- lesens des fehlerhaften Blockes 4.2.
  • Seite 59 1. AUFBAU UND BEDIENUNG Name: SUBDIR/GAME lädt die Datei GAME.KCC aus dem Unterverzeichnis SUBDIR Name: /CAOS/SPIELE/KC4/HIBI.KCC auch die Angabe des kompletten Pfades ist möglich Im Fehlerfall, wenn also beispielsweise die Datei auf dem Speichergerät nicht vorhanden ist, wird nach einer Fehlermeldung sofort abgebrochen. Alles andere gilt gleichermaßen wie bei Kassette.
  • Seite 60 1. AUFBAU UND BEDIENUNG Anzeige gebracht. Die Ausgabe des Speicherinhaltes wird auf dem Bildschirm durch Anzeige der Blocknummern (Blöcke zu 128 Byte) protokolliert. Die Block- nummern sind Hexadezimalzahlen. Es ist ratsam, den Programmanfang auf Magnetband vor der Aufnahme durch den Zählerstand oder akustisch zu kenn- zeichnen.
  • Seite 61 1. AUFBAU UND BEDIENUNG CAOS-Kommando DIR %DIR [ maske ] Mit dem Kommando DIR können Sie sich das Inhaltsverzeichnis eines Speicher- gerätes anzeigen lassen. Ist als Speichergerät Kassette eingestellt, dann kann der Inhalt einer gesamten Kassette angezeigt werden. Dazu ist die Kassette nach Eingabe des DIR-Kom- mandos komplett abzuspielen.
  • Seite 62 1. AUFBAU UND BEDIENUNG piert und dort wie eine Funktionstaste abgearbeitet. Die Datei darf maximal einen Block, also 128 Zeichen groß sein. Hinweis: Der IRM-Bereich von B700H bis B732H (Kassettenpuffer) wird vom DIR-Kommando als Arbeitsspeicher benutzt. Deshalb konnte es bei CAOS 4.3 bis 4.5 zu Problemen kommen, wenn innerhalb der Datei INITIAL.UUU ein DIR ausgeführt wurde, da die Kommandos aus der INITIAL.UUU direkt aus dem Kassettenpuffer abgearbeitet wurden.
  • Seite 63 1. AUFBAU UND BEDIENUNG CAOS-Kommando SETRO %SETRO [ name ] Das Kommando SETRO ist nur für Diskette verfügbar und wirkt auch auf die Dis- kette, wenn ein anderes Speichergerät eingestellt ist. Mit SETRO wird der Schreibschutz einer Datei gesetzt. Schreibgeschützte Dateien lassen sich nicht überschreiben oder löschen.
  • Seite 64 1. AUFBAU UND BEDIENUNG 1.5.4. Beeinflussen der Bildschirmausgabe CAOS-Kommando WINDOW Das Kommando WINDOW kann in drei Formaten benutzt werden: 1. Format: Definieren eines Fensters %WINDOW ersteZeile letzteZeile ersteSpalte letzteSpalte [ Nummer ] Durch WINDOW ist es möglich, vom CAOS-Menü aus ein Fenster einzustellen. Anzugeben sind ab CAOS 4.8 jeweils die erste und letzte Zeile (Bereich 0 bis 31) sowie die erste und letzte Spalte (Bereich 0 bis 39) als Dezimalzahlen (analog dem gleichnamigen BASIC-Befehl).
  • Seite 65 1. AUFBAU UND BEDIENUNG CAOS-Kommando COLOR %COLOR [ fv [ fh ] ] Das Kommando COLOR beeinflusst die Farbe der Zeichenausgabe. Bis CAOS 4.7 sind die Farbcodes 10 bis 15 hexadezimal einzugeben als A bis F, ab CAOS 4.8 dezimal von 0 bis 15. Weiterhin ist zwischen LORES- und HRG-Modus zu unterscheiden.
  • Seite 66 1. AUFBAU UND BEDIENUNG Eingabe Bildschirmausgabe 1.) COLOR %COLOR_ 2.) Leerzeichen %COLOR _ 3.) 22 %COLOR 22_ 4.) Leerzeichen %COLOR 22 _ 5.) 2 %COLOR 22 2_ Durch Drücken der Taste wird der Farbcode gespeichert und alle folgen- den Bildschirmausgaben erscheinen in der gewünschten Farbkombination auf dem Bildschirm.
  • Seite 67 1. AUFBAU UND BEDIENUNG Modulsteckplätze, Strukturbytes und Steuerbytes Zur Unterscheidung besitzt jedes Modul ein charakteristisches Strukturkennbyte, welches vom Hersteller festgelegt und von der Software ausgelesen werden kann. Angesprochen wird ein Modul über seinen Steckplatz mm, da auch mehrere glei- che Module in einem KC 85-System vorkommen können. Die Steckplätze 0 bis 7 sind den internen „Modulen“, also dem im Grundgerät eingebauten Speicherbe- reichen zugeordnet.
  • Seite 68 1. AUFBAU UND BEDIENUNG Modul- und Interruptprioritätskette Werden mehrere Module mit gleicher Speicher- oder E/A-Adressen eingeschaltet, so darf beim Zugriff des Prozessors nur das Speicher- oder E/A-Modul auf der niedrigsten Modulsteckplatzadresse aktiv sein. Zu diesem Zweck sind die Module in einer Modulprioritätskette zusammen- geschaltet, welche über die Signalleitungen MEI (Modul Enable Input) und MEO (Modul Enable Output) gesteuert wird und im Grundgerät beginnt.
  • Seite 69 1. AUFBAU UND BEDIENUNG Interne Module Ist die Steckplatzadresse mm kleiner als acht, so handelt es sich um Speicher- segmente im Grundgerät. Diese können ebenfalls zu- und abgeschaltet werden. Besteht ein Speicher aus mehreren Segmenten, dann haben die einzelnen Bits des Steuerbytes kk ebenfalls noch eine Bedeutung.
  • Seite 70 1. AUFBAU UND BEDIENUNG USER-ROM (mm = 02) Der USER-ROM enthält insgesamt 4 Segmente, die im Steuerbyte anzugeben sind. Die Segmentnummer muss dual verschlüsselt in Bit 4 und Bit 5 eingetragen werden. Folgende ROM-Inhalte sind in CAOS 4.8 enthalten: - Segment 0 (SWITCH 2 C1): BASIC-Interpreter - Segment 1 (SWITCH 2 D1): KC Debugger (Testmonitor, Reassembler)
  • Seite 71 1. AUFBAU UND BEDIENUNG RAM4 (mm=04) Seit CAOS 4.3 besitzt der RAM4 2 Ebenen. Die Segmentnummer muss in Bit 2 eingetragen werden. Die zweite Ebene ist eine „virtuelle“ Ebene und wird aus dem normalerweise nicht zugänglichen versteckten Bereichen des IRM gebildet. Beim Wechsel der RAM4-Ebene wird der Inhalt des RAM4 mit den entsprechen- den IRM-Bereichen ausgetauscht, sodass dieser sich wie eine zweite echte RAM-Ebene verhält.
  • Seite 72 1. AUFBAU UND BEDIENUNG CAOS-ROM-C (mm = 05) Der CAOS-ROM auf der Adresse C000H bis DFFFH wird von CAOS nur bei Bedarf ein- und danach automatisch wieder ausgeschaltet. Das ist der Grundzu- stand beim Einschalten des KC 85/5. Soll der CAOS-ROM-C nicht ausgeblendet werden, dann kann das durch SWITCH 5 1 eingestellt werden.
  • Seite 73 1. AUFBAU UND BEDIENUNG CAOS-Kommando SWITCH Das Kommando SWITCH kann in drei Formaten benutzt werden. Modulübersicht Schaltzustand eines Moduls anzeigen Modul schalten 1. Format: Modulübersicht Ohne weitere Parameter erhält man eine Übersicht über alle vorhandenen Module und deren Schaltzustände. Beispiel: %SWITCH 00 FF 03 RAM0 ON 10 F4 C3 16K RAM...
  • Seite 74 1. AUFBAU UND BEDIENUNG Für die internen Module gilt folgende Zuordnung: CAOSE ON/OFF . . . Betriebssystem ROM auf Adresse E000H RAM0 ON/OFF . . . RAM auf Adresse 0000H Bild 0/1 ON/OFF . . . Bild 0 oder 1 ein- bzw. ausgeschaltet USER n ON/OFF .
  • Seite 75 1. AUFBAU UND BEDIENUNG Strukturbyte Bezeichnung (Anzeige) Bemerkung zum Modultyp C0H…D7H USER Anwendermodule EPROMER 32K M030 (für 2K-32K EPROMs) PIO-3 (bis CAOS 4.7) M002 (PIO-3) * WEATHER (ab CAOS 4.8) M004 (Wetter / SRN) EPROMER 64K M030 (KC-Club, 1K-64K EPROMs) SOUND M066 (KC-Club) M366 (SRN)
  • Seite 76 1. AUFBAU UND BEDIENUNG 2. Format: Schaltzustand eines Moduls anzeigen %SWITCH mm Wird SWITCH nur mit dem Parameter mm aufgerufen, erfolgt die Anzeige des momentanen Zustands des sich im Steckplatz mm befindlichen Moduls bzw. internen Speichers. Das aktuelle Steuerbyte und damit der Schaltzustand des Moduls bleiben erhalten.
  • Seite 77 1. AUFBAU UND BEDIENUNG Beispiel: Eingabe Bildschirmausgabe 1.) SWITCH %SWITCH_ 2.) Leerzeichen %SWITCH _ 3.) C %SWITCH C_ 4.) Leerzeichen %SWITCH C _ 5.) C3 %SWITCH C C3_ 4.) <ENTER>-Taste 10 F4 00  10 – Steckplatzadresse: hier der erste Steckplatz in einem Erweiterungsaufsatz F4 –...
  • Seite 78 1. AUFBAU UND BEDIENUNG CAOS-Kommando JUMP %JUMP mm Mit diesem Kommando ist der Sprung in ein anderes Betriebssystem möglich. Der Parameter mm stellt dabei das Sprungziel dar, wo sich das zu startende Betriebssystem befindet. Das kann ein ROM-Modul sein, ein RAM-Modul auf wel- ches das System vorher geladen wurde oder eine der 8 Bänke des Flash-ROM im KC 85/5+.
  • Seite 79 1. AUFBAU UND BEDIENUNG 1.5.6. Gezielter Speicherzugriff CAOS-Kommando MODIFY %MODIFY aaaa [ n ] Dieses Kommando ermöglicht ein Überprüfen und Verändern des Speicherinhal- tes ab der als Parameter einzugebenden Speicheradresse aaaa. Der zweite Parameter n erlaubt das gleichzeitige Anzeigen mehrerer Bytes, wird n weggelas- sen, dann gilt n=1.
  • Seite 80 1. AUFBAU UND BEDIENUNG Zeichen / Taste Funktion Aktuelle Speicheradresse um n verringern /aaaa Adresse der gewünschten Speicherzelle Verlassen des MODIFY-Modus Code des Zeichens Z (5AH) eingeben 'Zeichenkette' Die Zeichencodes der Zeichenkette werden übernommen Übernahme der aktuellen Zeile Verlassen des MODIFY-Modus Übergang zur nächsten Adresse ohne Übernahme einer aktuellen Änderung CAOS-Kommando DISPLAY...
  • Seite 81 1. AUFBAU UND BEDIENUNG Dazu werden 4 KByte Speicherinhalt ab der angegebenen Adresse in den Pixel- RAM des aktuellen Bildes kopiert, dabei wird ein per SWITCH-Befehl ausgeblen- deter IRM berücksichtigt, um auch die RAM8-Bereiche darstellen zu können. Die Speicheradresse kann wahlweise komplett im Format 'aaaa' oder auch einstellig 'a' angegeben werden, dann gilt z.
  • Seite 82 1. AUFBAU UND BEDIENUNG 1.5.7. V.24-Software und Druckertreiber für V.24 und Centronics CAOS-Kommando LSTDEV Das Menüwort LSTDEV vereint seit CAOS 4.5 die beiden bisherigen Menüworte V24OUT (V.24-Druckertreiber) und CEN (Centronics-Druckertreiber in CAOS 4.3 und 4.4). Unterstützt werden die Module M001 (Digital-In-Out), M003/M053 (V.24 bzw.
  • Seite 83 1. AUFBAU UND BEDIENUNG Diese Standardwerte können durch Angabe der Parameter verändert werden. Dabei gelten folgende Besonderheiten: – Der Aufruf des Menüwortes LSTDEV ganz ohne Parameter mm sucht das erste verfügbare V.24-Modul (M003 oder M053) ab Steckplatz 7 und stellt den Kanal 1 auf Druckerausgabe ein. Die Einstellung erfolgt auf 9.600 Baud, 1 Stoppbit, 8 Bit pro Zeichen und keine Paritätsprüfung und passt zum Drucker K 6313 und andere.
  • Seite 84 1. AUFBAU UND BEDIENUNG HARDCOPY und SCREENCOPY Nach der Drucker-Initialisierung mit p = 2 kann über die Tastenkombination bei den Matrixdruckern die Funktion HARDCOPY und bei den Schreibmaschinen die Funktion SCREENCOPY aufgerufen werden. Damit wird der Bildschirminhalt auf dem Drucker ausgegeben. SCREENCOPY bewirkt hier die Ausgabe aller ASCII-Zeichen des aktuellen Bild- schirminhalts an die Schreibmaschine, wobei auf dem Bildschirm vorhandene Grafiken nicht mit ausgedruckt werden können.
  • Seite 85 1. AUFBAU UND BEDIENUNG ESC/P2 vorgesehen (z. B. Epson LQ100). Das erzeugte Hardcopy unterscheidet sich in der Anzahl und Dichte der gedruckten Punkte: d=5 - Dichte 180 dpi, es wird mit allen 24 Nadeln gedruckt, jeder Druckpunkt ent- spricht einem Pixel, dadurch erscheint das gedruckte Bild entsprechend klein.
  • Seite 86 1. AUFBAU UND BEDIENUNG satz' und die beiden abschließenden Codes d (0DH = CR) und a (0AH = LF) bewirken den Ausdruck der Textzeile. Verwendet wird das Kommando PRINT hauptsächlich, um Druckereinstellungen zu verändern. Mögliche Steuersequenzen sind dem Handbuch des verwendeten Druckers zu entnehmen.
  • Seite 87 1. AUFBAU UND BEDIENUNG 1.5.8. Sonstiges CAOS-Kommando STACK %STACK Dieses Kommando kommt aus dem Debugger im USER-ROM, es zeigt den Wert des Stackpointers und den ersten auf dem Stack liegenden Wert an. Dies kann zur Fehlersuche hilfreich sein. Beispiel: %STACK 01C2 F26F Der Stackpointer zeigt auf 01C2H und dort ist die Adresse oder der Wert F26FH abgelegt.
  • Seite 88 1. AUFBAU UND BEDIENUNG Intern benutzt CALC die Arithmetik des Basic-Interpreters. Dadurch können auch komplexe Berechnungen durchgeführt werden. Es sind nahezu alle BASIC-Funk- tionen nutzbar. Operationen mit kurzen Zeichenketten sind ebenfalls möglich. Für den Ausdruck gilt die gewohnte BASIC-Syntax. Konstanten, Operatoren und Funktionen können wie gewohnt verwendet werden.
  • Seite 89 2. HARDWARE...
  • Seite 90 2. HARDWARE 2.1. Elemente des Blockschaltbildes Als KC 85/5 gilt ein aufgerüsteter KC 85/4, bei dem die 64K-dRAMs gegen 256K- Typen, die CAOS-EPROMs gegen zwei 8K-EPROMs vom Typ 2764 und der BASIC-ROM gegen einen 32K-EPROM vom Typ 27256 ausgetauscht wurden. Die Leiterplatte ist bereits für diese Speichertypen vorbereitet, sodass darüber hinaus keine Arbeiten erforderlich sind.
  • Seite 91 2. HARDWARE Bild 8: Blockschaltbild KC 85/5-System...
  • Seite 92 2. HARDWARE Die Bildqualität verbessert sich gegenüber dem Antenneneingang bei einer Ver- bindung mit der AV-Buchse und wird beim Anschluss an den RGB-Eingang opti- mal. Schließen Sie ein Farbfernsehgerät am Antenneneingang oder an der AV- Buchse an, können Sie nur dann farbige Bilder vom KC 85/5 „empfangen“, wenn Ihr Gerät einen PAL-Decoder enthält.
  • Seite 93 2. HARDWARE 2.1.7. Netzteil Aus der Netzspannung von 230V/50Hz werden Gleichspannungen von +12V, +5V und -5V abgeleitet. 2.2. Externe Anschlüsse Das KC 85/5-Grundgerät verfügt über folgende externe Anschlussmöglichkeiten: – Diodenbuchse TAPE – Diodenbuchse KEYBOARD – Modulsteckplatz 08 – Modulsteckplatz 0C –...
  • Seite 94 2. HARDWARE Signalbeschreibung der Diodenbuchse TAPE: Signal- Signalbedeutung Sonstige Bedingungen name schluss Bezugspotential Masse WRITE Schreibsignal bzw. 0,2V Uss an 100kOhm SOUND-L Tonsignal 1 vom Computer 0,4V Uss unbelastet SOUND-R Tonsignal 2 vom Computer wie Tonsignal 1 TAPE ON Einschaltsignal für Kasset- Ausgang, TTL-Pegel tenrecorder schaltet bei Ein- und Aus-...
  • Seite 95 2. HARDWARE 2.2.2. Diodenbuchse KEYBOARD An der Frontseite befindet sich neben der TAPE-Buchse der KEYBOARD-An- schluss. Diese Diodenbuchse dient zum Anschluss der Standard- oder der D005- Komfort-Tastatur des KC. Signalbeschreibung der Diodenbuchse KEYBOARD: Signal- Signalbedeutung Sonstige Bedingungen name schluss Schirm Intern mit Masse verbunden 2 Eingangssignal von Tasta- Gleichzeitig Stromversor-...
  • Seite 96 2. HARDWARE 2.2.3. Modulsteckplätze 08 und 0C Diese Steckplätze dienen ausschließlich der Aufnahme der vom Hersteller angebotenen bzw. vom KC-Club neu entwickelten Zusatzmodule. Die maximal zulässigen Spitzenströme je Modul betragen: 300 mA bei + 5 V ± 5 % 100 mA bei + 12 V ± 10 % 5 mA bei - 5 V ±...
  • Seite 97 2. HARDWARE 2.2.4. Steckverbinder EXPANSION-INTERFACE Eine ähnliche Signalbelegung wie der Modulsteckverbinder hat auch der Steck- verbinder am EXPANSION-INTERFACE. Dieser Steckverbinder ist zum Anschluss von Erweiterungsaufsätzen vorgesehen. Im Vergleich zum Modul- steckverbinder sind dort allerdings einige Signale nicht belegt, das betrifft: Anschluss Modulsteckverbinder EXPANSION-INTERFACE...
  • Seite 98 2. HARDWARE 2.2.5. Signalbeschreibung Modul- und EXPANSION-INTERFACE Im Folgenden finden Sie eine zusammenfassende Beschreibung der Signale, welche am Modulsteckverbinder und am EXPANSION-INTERFACE anliegen. Die Anschlussbelegung des EXPANSION-INTERFACE ist im Systemhandbuch des KC 85/4 [48] abgedruckt. Die Anschlussbelegung am Modulsteckverbinder kann auch in [64] und [65] nachgelesen werden.
  • Seite 99 2. HARDWARE Signal- Signalbedeutung Aktiv- Sonstige schluss name Pegel Bedingungen /MREQ Speicheranforderung: Unidirektional * Signal zeigt eine gültige Ad- resse für eine Speicherlese- oder -schreiboperation an /IORQ Ein-/Ausgabeanforderung: Unidirektional * Signal zeigt eine gültige Ein-/Ausgabeadresse an bzw. zusammen mit M1, dass ein Interruptgesuch von der CPU akzeptiert wurde...
  • Seite 100 2. HARDWARE Signal- Signalbedeutung Aktiv- Sonstige schluss name Pegel Bedingungen /RFSH Auffrischen: Low Unidirektional Signal zeigt an, dass die Adressleitungen AB0…AB6 eine Adresse zum Auffri- schen von dynamischen RAMs führen Adressbus Bit 6 High Unidirektional * angeschlossene Sender Adressbus Bit 7 High müssen 3-state-Aus- Adressbus Bit 4...
  • Seite 101 2. HARDWARE Signal- Signalbedeutung Aktiv- Sonstige schluss name Pegel Bedingungen /NMI Nichtmaskierbares Unter- Low Sammelleitung, brechungsgesuch angeschlossene Sender müssen Open-Kollektor- Stufen besitzen /INT Maskierbares Unterbre- Low Sammelleitung, chungsgesuch: angeschlossene Sender Signal zeigt eine Bedie- müssen Open-Kollektor- nungsanforderung durch Stufen besitzen einen E/A-Port an 24A * Modul-Freigabe-Ausgang:...
  • Seite 102 2. HARDWARE Signal- Signalbedeutung Aktiv- Sonstige schluss name Pegel Bedingungen /BUSAK Busfreigabe: Low Unidirektional Signal zeigt an, dass der Prozessor den Bus freige- geben hat, alle Ausgänge (außer BUSAK und RFSH) befinden sich im hochohmi- gen Zustand Spannung 5V negativ max.
  • Seite 103 2. HARDWARE 2.2.6. Steckverbinder TV-RGB Beim KC85/2 und KC85/3 ist Pin 13A nicht belegt. Bild 13: Anschlussbelegung des Steckverbinders TV-RGB Der Steckverbinder TV-RGB dient zur Ausgabe des Bild- und Tonsignals wahl- weise als RGB- oder FBAS-Signal. Signal- Signalbedeutung Ltg.- Sonstige Bedingungen name schluss Anz.
  • Seite 104 2. HARDWARE Die beste Bildqualität wird mit dem RGB-Signal erreicht. Bei TV-Geräten und Monitoren mit SCART- bzw. Euro-AV-Anschluss wird dies durch die Verwendung eines SCART-Kabels erreicht. Bild 14: Anschlussbelegung SCART-Kabel Es sind folgende Kabelverbindungen erforderlich: TV-RGB SCART-Stecker Funktion Masse (Audio) 2, 6 Audiosignal R / L RGB-Umschaltsignal...
  • Seite 105 2. HARDWARE Es ist auch möglich, den Monitor Commodore 1084-S an den KC 85/5 anzu- schließen. Dieser Monitor besitzt einen echten RGB-Eingang. Das »S« in der Typenbezeichnung weist auf das Monitor-Modell mit Stereo-Lautsprechern hin. Bei den Anschlüssen des 1084-S gibt es baujahrbedingte Unterschiede. Neuere Geräte besitzen neben einer kombinierten linearen RGB/TTL-RGB-Buchse noch den genormten Euro-AV- bzw.
  • Seite 106 2. HARDWARE 2.3. Systemausbau 2.3.1. Module und Erweiterungsaufsätze Der KC 85/5 ist eine Weiterentwicklung der Reihe KC 85/2-4. Das Grundgerät erlaubt den Anschluss von 2 Erweiterungsmodulen und Erweiterungsaufsätzen (vgl. Bild 8: Blockschaltbild KC 85/5-System auf Seite 89). Für die Module befinden sich an der Vorderseite des Grundgerätes zwei Modul- schächte, in die die Module eingesteckt und mit dem Rechnerbus kontaktiert wer- den.
  • Seite 107 Speichererweiterung um 16 KByte EPROM, selbst zu pro- grammieren M029 DAU1 Der Digital-Analog-Umsetzer OUT: wandelt digitale in analoge 44..47H Signale um. *14 Dieses Modul ist für den KC85/5 nicht erforderlich, da die Software bereits im USER- ROM des Grundgerätes enthalten ist...
  • Seite 108 2. HARDWARE Name Bezeichnung Struktur- Beschreibung Port- byte adressen M030 EPROMMER EPROM-Brenner 2-32K mit PIO1: Software auf 8K-EPROM B8..BBH, EPROM-Brenner 1-64K mit PIO2: Software auf 16K-EPROM BC..BFH (Neuentwicklung KC-Club) M032 256K Speichererweiterung um 256 segmented KByte dynamischen RAM in 16 Blöcken zu je 16 KByte M033 TYPESTAR Dieses 16K-ROM-Modul ent-...
  • Seite 109 2. HARDWARE Name Bezeichnung Struktur- Beschreibung Port- byte adressen M045 32K segmented Speichererweiterung um 32 KByte EPROM in 4 Blöcken zu je 8 KByte, selbst zu pro- grammieren M046 64K segmented Speichererweiterung um 64 KByte EPROM in 8 Blöcken zu je 8 KByte, selbst zu pro- grammieren M047 128K seg-...
  • Seite 110 2. HARDWARE Name Bezeichnung Struktur- Beschreibung Port- byte adressen M066 SOUND Neuentwicklung René Nitz- 38..3FH sche: Soundmodul mit Soundchip AY-3-8910, CTC M120 8K CMOS RAM F0 8K CMOS-RAM, batteriege- stützt MT01 Prüfmodul Prüfmodul für Modulsteck- C0..C9H MT02 plätze und D002 D002 BUSDRIVER Aufsatzgerät mit 4, für den...
  • Seite 111 2. HARDWARE Name Bezeichnung Struktur- Beschreibung Port- byte adressen D008 MULTI DISK Ist ein D004-kompatibles Auf- F0..F4H satzgerät, das den KC 85/5 um ein zweites Prozessor- system mit 4 bis 16MHz, 64K bzw. 128K System-RAM, 2MB-RAM-Floppy und IDE- Festplatteninterface für die Ausführung CP/M-kompati- bler Software unter dem Betriebssystem ML-DOS...
  • Seite 112 2. HARDWARE 2.3.2. Systemausbau über V.24-Schnittstelle Durch serielle oder parallele Schnittstellen in einem Computersystem können Daten an externe Geräte (Drucker, Plotter, Computer usw.) gesendet oder von ihnen empfangen werden. Diese Möglichkeiten bestehen auch am KC-System. Im Betriebssystem CAOS 4.x ist bereits Software für die serielle Schnittstelle ent- halten.
  • Seite 113 2. HARDWARE Benutzung einer Schreibmaschine Erika S3004 am KC 85/5: Die Schreibmaschine S3004 war in der DDR weit verbreitet und kann dank seriel- lem Interface als Drucker und als Eingabegerät (Tastatur) für den KC 85 genutzt werden. Die Voraussetzung dazu ist eine Interfacebox IF6000 und ein Modul M003.
  • Seite 114 2. HARDWARE 2.3.3. Anschluss eines Joysticks Mit dem Einsatz eines Joysticks kann der Bedienkomfort für viele Spiel- und Anwenderprogramme wesentlich erhöht werden. Die Module M008 bzw. M021 ermöglichen den Anschluss eines Joysticks an den KC 85/5. Dazu kann jeder digitale Joystick verwendet werden, der als Anschluss eine 9-polige D-Sub- Buchse besitzt.
  • Seite 115 2. HARDWARE 2.3.4. Anschluss eines Druckers mit Parallelschnittstelle Ab CAOS 4.3 wird der Anschluss von Druckern mit Parallelschnittstelle (Centro- nics) direkt unterstützt. Dazu ist entweder ein Modul M021 (erweitertes M008) oder ein M001 erforderlich. Beim M021 kann ein handelsübliches Druckerkabel mit 25poligem D-Sub-Stecker verwendet werden.
  • Seite 116 2. HARDWARE 2.3.5. Anschluss eines Plotters XY 4231 am Modul M001 Eine weitere interessante Möglichkeit ist der Anschluss eines Plotters zur gra- fischen Ausgabe am KC 85/5. Der tschechische Kleinplotter XY 4131 kann Zeich- nungen im Format A4 ausgeben. Zwei Schrittmotoren bewegen dazu das Papier des Plotters in X-Richtung und den Stift in Y-Richtung jeweils in Schritten zu 0,1mm.
  • Seite 117 2. HARDWARE 2.3.6. Anschluss einer Tastatur am Modul M052 Neben der Standard- oder D005-Komfort-Tastatur können am KC 85/5 auch Tas- taturen am V.24-Modul angeschlossen werden. Eine weitere interessante Mög- lichkeit ergibt sich bei Verwendung des Moduls M052 in Verbindung mit einem VNC2-Modul mit spezieller Firmware und dazu angepasster Software im EEPROM des Moduls.
  • Seite 119 3. SOFTWARE...
  • Seite 120 3. SOFTWARE 3.1. Systemkonzept 3.1.1. Merkmale des Betriebssystems Der Aufbau des CAOS-Betriebssystems ist im Bild 22 auf Seite 119 als Schema veranschaulicht. Der KC 85/5 enthält einen RAM von 256 KByte, einen IRM (Bildwiederholspei- cher) von 64 KByte und einen ROM von 48 KByte. Der Festwertspeicher (ROM) enthält das Betriebssystem, d.
  • Seite 121 3. SOFTWARE Bild 22: Schematischer Aufbau des Betriebssystems CAOS...
  • Seite 122 3. SOFTWARE 3.1.2. Die zentrale Steuerschleife Die im Bild 23 dargestellte zentrale Steuerschleife verdeutlicht die Steuerung der Funktionen des Betriebssystems KC-CAOS. Bild 23: Zentrale Steuerschleife des Betriebssystems CAOS...
  • Seite 123 3. SOFTWARE 3.2. Speicheraufteilung Eine Übersicht der Speicheraufteilung des KC 85/5 vermittelt Bild 24, Seite 122. Tabelle 17: Speicherübersicht (interne Module) Adressen vorhandener Speicher Nutzung 0000H-BFFFH 256 KByte dynamischer RAM, Anwenderspeicher dabei liegen vierzehn Blöcke zu je 16K hintereinander ab Adresse 8000H 8000H-BFFFH 64 KByte dynamischer RAM...
  • Seite 124 3. SOFTWARE Bild 24: Übersicht der Speicheraufteilung des KC 85/5 mit CAOS 4.8...
  • Seite 125 3. SOFTWARE 3.2.1. Fenstervektorspeicher Das Betriebssystem gestattet es, 10 verschiedene Bildschirmfenster zu definieren und jederzeit wieder aufzurufen, wobei die Parameter des aktuellen Fensters gerettet werden. Als Fensternummern sind 0 bis 9 zugelassen. Der Fenstervektor ist wie folgt aufgebaut: Anfangsadresse WNDFN = 0B99CH + n * 0AH; n = Fensternummer WNDFN - Fensteranfang Spalte +1 - Fensteranfang Zeile...
  • Seite 126 3. SOFTWARE 3.3. Modulverwaltung 3.3.1. Verwalten der KC-Module und Zusatzgeräte Der KC 85/5 ermöglicht es, durch eine spezielle Steuerung, mehrere Module vom gleichen Typ quasi gleichzeitig zu betreiben. Diese können im Grundgerät oder in einem Aufsatz stecken. Mit dem Kommando SWITCH mm kk werden die Module vom Menü, von BASIC oder vom Programm aus geschaltet.
  • Seite 127 3. SOFTWARE Die Moduladressierung erfolgt über 16-Bit-I/O-Adressen: Adressbus High (Register B) Low (Register C) GGGGSSXX Register B enthält die Modulsteckplatzadresse. Beim Lesen der entsprechenden Adresse sendet jedes Modul ein spezielles Strukturbyte auf den Datenbus. Die Kennungen der Module sind den Modulbeschreibungen zu entnehmen. Das Schalten der Module erfolgt über Ausgabe eines Steuerbytes kk an die Moduladresse.
  • Seite 128 3. SOFTWARE 3.3.2. Verwalten des KC-internen Speichers Im Bild 24 auf Seite 122 ist die Speicheraufteilung des KC 85/5 dargestellt. Den im Grundgerät enthaltenen Speicherblöcken sind folgende „Modul“-Adressen zugeordnet: – RAM auf Adresse 0000H - 00H – IRM-Blöcke auf Adresse 8000H - 01H –...
  • Seite 129 3. SOFTWARE Es gibt folgende Zuordnungen zu den internen E/A-Ports: PIO Port A (Daten: Adresse 88H, Steuerwort: 8AH): Bit 0 - CAOS-ROM E Bit 1 - RAM0 Bit 2 - IRM Bit 3 - Schreibschutz RAM0 (1 = Schreibschutz aus) Bit 4 - K OUT (Ausgang zu Keyboard) (/NMI bei KC 85/2 und KC 85/3)
  • Seite 130 3. SOFTWARE 3.4. Menükonzept 3.4.1. Erweiterung des CAOS-Menüs Das verwendete Menükonzept ist unabhängig von bestimmten Speicherplätzen, das heißt, jedes Programm auf beliebigen Speicherplätzen kann mit entsprechen- dem „Vorspann“ ins Menü eingetragen und über dieses gestartet werden. Vorspann: 7FH Prolog Neues Menüwort: Beliebig lange Zeichenkette aus Großbuchstaben, Kleinbuchstaben, Ziffern und Doppelpunkt (ASCII)
  • Seite 131 3. SOFTWARE Kommandointerpreter nicht getestet und dem aufgerufenen Programm als einzi- ger (!) Parameter im Registerpaar DE die VRAM-Adresse nach dem Kommando- wort übergeben. Ein Beispiel dafür ist das DIR-Kommando ab CAOS 4.5. Die mittels Menütechnik zu startenden Maschinenprogramme müssen als Unter- programme definiert sein, d.
  • Seite 132 3. SOFTWARE 3.4.3. Fehlermeldungen Seit CAOS 4.3 gibt die Menükommandoroutine Fehlermeldungen im Klartext aus, dabei bedeuten: falsches Kommando Menüwort weder im aktiven Speicher, noch in den ROM C-Segmenten gefunden. fehlerhafte Argumente Formatfehler in den dezimalen bzw. hexadezimalen Argumenten. zu wenig Argumente für das Menüwort sind mehr Argumente anzugeben.
  • Seite 133 3. SOFTWARE ADR. Anweisung Bemerkung 0000 7F 7F DEFW 7F7FH ; Prolog 0002 43 4F 50 59 DEFM 'COPY' ; Menüwort 0006 DEFB 1 ; Epilog 0007 ED B0 LDIR ; Umspeichern 0009 ; Rücksprung ins CAOS Der Maschinencode (MC) ist mit dem Kommando MODIFY, z. B. ab Adresse 0 hexadezimal einzugeben und anschließend das Menü...
  • Seite 134 3. SOFTWARE Beispiel: DEFW 7F7FH ; Standardprolog DEFM 'NEWMENU' DEFB (IX+9),0B0H ; neuen Prolog eintragen MENU ; Menüanzeige DEFW 0B0B0H ; Alternativprolog DEFM 'BYE' ; Rückstellen auf DEFB ; Standardprolog (IX+9), 7FH ; Standardprolog eintragen MENU ; Menüanzeige DEFW 0B0B0H ;...
  • Seite 135 3. SOFTWARE 3.5. Systemschnittstellen und nutzbare CAOS-Adressen 3.5.1. Einsprungadressen für Systemstart Um den Anwendern des Kleincomputers KC 85/5 die Arbeit zu erleichtern, stellt das Betriebssystem CAOS spezielle Systemunterprogramme zur Verfügung. Der Aufruf dieser Systemunterprogramme (UP) wird über Programmverteiler gesteu- ert. Das Betriebssystem enthält eine Liste, in der alle UP nummeriert sind.
  • Seite 136 3. SOFTWARE 3.5.2. Spezielle CAOS-Adressen E011H: BASIC-Menüwort: Auf dieser Adresse steht seit dem KC 85/4 das Prolog- byte 7FH vom Menüwort BASIC. Da der BASIC-ROM bei den Vorgän- gern KC 85/2 und KC 85/3 standardmäßig eingeschaltet war, ist bei die- sen Rechnern kein zusätzliches Menüwort im ROM-E erforderlich.
  • Seite 137 3. SOFTWARE 3.5.4. Programmverteiler (PV) F003H: Programmverteiler PV1 Nur bei diesem Programmverteiler erfolgt die Parameterübergabe vom Unterprogramm an das Hauptprogramm für die Register BC, DE, HL und AF. Die Unterprogrammnummer muss im rufenden Programm unmittel- bar nach dem CALL-Befehl notiert werden. Beispiel: CALL 0F003H DEFB UP-Nr.
  • Seite 138 3. SOFTWARE F015H: Programmverteiler PV5: Aufruf des Programmverteilers PV3 mit Einschalten des IRM und Setzen des Stackpointers auf (SYSP) vor UP-Aufruf und Ausschalten des IRM sowie Rückstellen des Stackpointers nach dem UP-Aufruf. PV5 wird von BASIC benutzt. Programmverteiler PV5 steht ab CAOS 3.1 zur Verfügung! F01EH: Programmverteiler PV6: Wie Programmverteiler PV5, jedoch UP-Nr.-Übergabe im IRM (ARGC).
  • Seite 139 3. SOFTWARE 3.5.5. Veränderung der Unterprogrammtabelle SUTAB Die Programmverteiler 1 bis 6 realisieren den Unterprogrammaufruf über eine Tabelle der Anfangsadressen dieser Unterprogramme. Die Anfangsadresse der Tabelle steht in der Speicherzelle SUTAB (Adresse B7B0H im IRM). Die Unter- programmtabelle befindet sich bis CAOS 4.5 im ROM, ab CAOS 4.6 im IRM. Soll diese Tabelle verändert oder erweitert werden, ist wie folgt vorzugehen: Bestimmen der Anfangsadresse der aktuellen Unterprogrammtabelle...
  • Seite 140 3. SOFTWARE 3.5.6. Liste der nutzbaren Unterprogramme für PV1-PV6 Legende Name: Name des Unterprogramms (UP) für PV1-6 UP-Nr.: Nummer des UP (hexadezimal) FKT.: Beschreibung der Funktion Parameterübergabe vom Hauptprogramm an UP, vor Aufruf Parameterübergabe nach RETURN des UP, nur bei PV1 Veränderte Register Bemerkung: Hinweise zu verschiedenen CAOS-Versionen...
  • Seite 141 3. SOFTWARE Name: . . . UOT1 ... . . UP-Nr. 02H FKT.: Ausgabe auf Anwenderkanal 1 (z. B. Druckerausgabe) Register A - Zeichencode PA/VR: entsprechend der Routine Bemerkung: Adresse der selbst zu erstellenden Routine muss auf UOUT1 (Speicherzellen B7BEH und B7BFH) eingetragen werden.
  • Seite 142 3. SOFTWARE Name: . . . USIN1 ... . . UP-Nr. 06H FKT.: Eingabe von Anwenderkanal 1 (z. B. V.24-Eingabe) Register A - Zeichencode PE/VR: entsprechend der Routine Bemerkung: Adresse des selbst zu erstellenden Programms muss in UIN1 (Speicherzellen B7C1H und B7C2H) eingetragen werden.
  • Seite 143 3. SOFTWARE Name: . . . CSRO ... . . UP-Nr. 09H FKT.: Abschluss-(Close-)Routine für Dateiausgabe, Ausgabe des letzten Blockes (Block-Nr.: FFH) Register BC - Länge Vorton (IX+5) - L (Pufferadresse) (IX+6) - H (Pufferadresse) Register HL...
  • Seite 144 3. SOFTWARE Name: . . . CSRI ... . . UP-Nr. 0BH FKT.: Abschluss der Magnetbandeingabe / Datei schließen CY = 1 = Fehler Register DE = Fehlercode, bei CY=1 AF, HL, (DE im Fehlerfall) Bemerkung: * Fehlerauswertung nur bei DEVICE >...
  • Seite 145 3. SOFTWARE Name: . . . COLORUP ... UP-Nr. 0FH FKT.: Farbe einstellen Register E - Hintergrundfarbe (0…7) Register L - Vordergrundfarbe (0…1FH) (ARGN) = 1 - nur Vordergrundfarbe - Vorder- und Hintergrundfarbe AF, L Name: .
  • Seite 146 3. SOFTWARE Name: . . . NORM ... . . UP-Nr. 13H FKT.: Rückschalten des Ein- und Ausgabekanals auf CRT und KBD Register HL = alter Ausgabezeiger Name: . . . WAIT ... . . UP-Nr. 14H FKT.: Warteschleife Register A...
  • Seite 147 3. SOFTWARE Name: . . . INLIN ... . . UP-Nr. 17H FKT.: Eingabe einer Zeile mit Funktion aller Cursortasten, Abschluss mit <ENTER> oder Abbruch <BRK> Register DE = Adresse des Zeilenanfangs des eingestell- ten Fensters im Video-RAM CY=0 = Eingabe mit Enter abgeschlossen...
  • Seite 148 3. SOFTWARE Name: . . . AHEX ... . . UP-Nr. 1CH FKT.: Ausgabe Register A als Hexzahl Register A Name: . . . ZSUCH ... . UP-Nr. 1DH FKT.: Suche nach Zeichenkette (Menüwort) Register A...
  • Seite 149 3. SOFTWARE Name: . . . NIN ....UP-Nr. 21H FKT.: Setze Zeiger für Eingabe auf Standard (KBD) Register HL = alter Zeiger Name: . . . GARG ... . . UP-Nr. 22H FKT.: Erfassen von maximal 10 Hexzahlen aus Zeichenkette und Wandlung in die interne Darstellung...
  • Seite 150 3. SOFTWARE Name: . . . CUCP ... . . UP-Nr. 25H FKT.: Komplementiere Cursor (CURSO) - Cursorposition PA/VR: Bemerkung: Befindet sich auf der Cursorposition ein ASCII-Zeichen, dann wird das Cursormuster (Speicherzelle B7EEH) verwendet - ansonsten nur die vorletzte Zeile des Zeichens (Strichcursor).
  • Seite 151 3. SOFTWARE Name: . . . LDMA ... . . UP-Nr. 28H FKT.: LD (HL),A Register A - Byte Register HL - Adresse PA/VR: Bemerkung: Nur sinnvoll über PV4 - PV6, um in den IRM zu schreiben. Name: .
  • Seite 152 3. SOFTWARE Name: . . . MODI ... . . UP-Nr. 2EH FKT.: Aufruf des Systemkommandos MODIFY Register A - Anzahl der Argumente wenn A < 2, dann ein Zeichen pro Zeile Register HL - Anfangsadresse Register E...
  • Seite 153 3. SOFTWARE Name: . . . SIXD ....UP-Nr. 31H FKT.: Verlagerung des IX-Arbeitsbereiches von CAOS • Initialisierung der Interrupttabelle, • Initialisierung der Tastaturtabelle, • Initialisierung des IX-Registers, •...
  • Seite 154 3. SOFTWARE Name: . . . TCIF ....UP-Nr. 33H FKT.: Test, ob Cursorposition im definierten Fenster ist Register D - Zeile der Cursorposition Register E - Spalte der Cursorposition CY = 1 = Cursor außerhalb (Fehler) Bemerkung:...
  • Seite 155 3. SOFTWARE Name: . . . SAVE ... . . UP-Nr. 36H FKT.: Ausgabe von Maschinenprogrammen auf das eingestellte DEVICE Register HL - Zeiger auf Dateiname/Pfad (8 Zeichen für Namen, 3 Zeichen für Typ) (ARG1) - Anfangsadresse des Programms (ARG2)
  • Seite 156 3. SOFTWARE Name: . . . MBIN ... . . UP-Nr. 37H FKT.: Byteweise Eingabe vom eingestellten DEVICE mit Namensver- gleich beim ersten Block Register D - Steuerbyte Bit 3 = 1 INIT (Eingabe öffnen) Bit 6 = 1 Close (Eingabe schließen) Register HL - Name nur bei INIT (Adresszeiger 11 Byte)
  • Seite 157 3. SOFTWARE Name: . . . MBOUT ... . UP-Nr. 38H FKT.: Byteweise Ausgabe auf das eingestellte DEVICE Register A - Daten Register D - Steuerbyte Bit 3 = 1 INIT (Ausgabe öffnen) Bit 6 = 1 Close (Ausgabe schließen) Register HL - Name nur bei INIT (Adresszeiger 11 Byte)
  • Seite 158 3. SOFTWARE Name: . . . KEY ... . . UP-Nr. 39H FKT.: Belegen einer F-Taste (Aufruf der Menükommandoroutine) Register A = Nr. - Nr. der Taste (1-0FH), bei unzulässiger Nr. sofortige Rückkehr. A = 0 - alle F-Tasten löschen AF, BC, DE, HL...
  • Seite 159 3. SOFTWARE Name: . . . WININ ... . . UP-Nr. 3CH FKT.: Initialisierung eines neuen Fensters Register A - Fensternummer (0-9) Register HL - Fensteranfang Register DE - Fenstergröße CY = 1 = Fehler (Nr., Anfang oder Größe) AF, BC, DE, HL...
  • Seite 160 3. SOFTWARE Name: . . . CIRCLE ... . UP-Nr. 3FH FKT.: Zeichnen eines Kreises mit dem eingestellten Linientyp auf dem Bildschirm mit Mittelpunkt XM/YM und Radius R (ARG1) - XM - X-Koordinate-Mittelpunkt (ARG2) - YM - Y-Koordinate-Mittelpunkt...
  • Seite 161 3. SOFTWARE Name: . . . INIEA ... . . UP-Nr. 43H FKT.: Initialisierung eines E/A-Ports über Tabelle Register HL - Anfangsadresse der Tabelle Tabellenaufbau 1. Byte = E/A-Adresse 2. Byte = Anzahl der Initialisierungsbytes (n) 3.
  • Seite 162 3. SOFTWARE Name: . . . ZKOUT ... . UP-Nr. 45H FKT.: Ausgabe einer über Register HL adressierten Zeichenkette Register HL - Anfang der Zeichenkette Register HL = Ende der Zeichenkette+1 (Adresse nach 0-Byte) AF, HL Bemerkung:...
  • Seite 163 3. SOFTWARE Name: . . . MENU ... . . UP-Nr. 46H FKT.: Ausschreiben des aktuellen Menüs und Übergang in die Kom- mandoeingabe - Beginn Suchbereich (C000H) * - Länge Suchbereich (0000H) * (IX+9) - Prologbyte...
  • Seite 164 3. SOFTWARE Name: . . . LSTOUT ... . UP-Nr. 47H FKT.: Initialisieren Druckerausgabe (ARG1) - Modulschacht des zu nutzenden Moduls M001, M003, M053 (0 für M021) (ARG2) - Kanal des V.24-Moduls (1/2) (ARG3) - USER-Ausgabekanal (2/3) (ARG4) = 0...
  • Seite 165 3. SOFTWARE Name: . . . SETDEV ... . UP-Nr. 49H FKT: Gerätetreiber auswählen, abfragen oder anzeigen Register A 0…7 - Auswahl Gerätetreiber Nr. 0-7 0FDH - aktuellen Treiber abfragen 0FEH - aktuellen Treibername anzeigen 0FFH...
  • Seite 166 3. SOFTWARE Name: . . . GARGC ... . UP-Nr. 4CH FKT.: Erfassen von maximal 10 Argumenten mit wählbarer Zahlenba- sis aus Zeichenkette und Wandlung in die interne Darstellung Register C - Zahlenbasis (C= 2 bis 16) (C=10 für Dezimalzahlen C=16 für Hexadezimalzahlen)
  • Seite 167 3. SOFTWARE 3.5.7. Liste der nutzbaren Unterprogramme für PV7 Über Programmverteiler PV7 (auf Adresse 0F021H) werden ab CAOS 4.7 die DEVICE-Funktionen aufgerufen. Die Parameterübergabe erfolgt wie beim PV1 mit dem Byte, welches dem CALL-Befehl folgt. Es gilt jedoch eine andere Num- merierung der Unterprogramme! Beispiel: CALL 0F021H DEFB UP-Nr.
  • Seite 168 3. SOFTWARE Name: . . . MBI ... . . PV7, UP-Nr. 1 FKT.: Einlesen Datenblock von Datenträger in den Puffer (128 Byte) (IX+5) - L (Pufferanfang) (IX+6) - H (Pufferanfang) (IX+2) = Block-Nr.
  • Seite 169 3. SOFTWARE Name: . . . CSRO ... . PV7, UP-Nr. 3 FKT.: Abschluss-(Close-)Routine für Dateiausgabe, Ausgabe des letzten Blockes (Block-Nr.: FFH) Register BC - Länge Vorton (IX+5) - L (Pufferadresse) (IX+6) - H (Pufferadresse) Register HL...
  • Seite 170 3. SOFTWARE Name: . . . CSRI ... . PV7, UP-Nr. 5 FKT.: Abschluss der Magnetbandeingabe / Datei schließen CY = 1 = Fehler Register DE = Fehlercode, bei CY=1 AF, HL, (DE im Fehlerfall) Bemerkung: * Fehlerauswertung nur bei DEVICE >...
  • Seite 171 3. SOFTWARE Der USB-Treiber 3.0 im M052-ROM stellt die nachfolgend beschriebenen Unter- funktionen innerhalb des PV7 UP-Nr. 7 zur Verfügung. Dabei gilt allgemein: Dateiname/Pfad ist ein Zeiger auf einen Null-terminierten String auf einen Datei- namen mit optional vorangestelltem Pfad. Elemente des Dateipfades sind durch Slash „/“...
  • Seite 172 3. SOFTWARE Name: . . . USB:USER-Mode ..PV7, UP-Nr. 7.0 FKT: direkten Zugriff auf VNC durch Anwenderprogramm erlauben Register E CY=0 HL, DE, AF Bemerkung: Der USB-PIO des M052 wird von dieser Funktion zugeschaltet. Der M052-Interrupt holt nur die Daten von der USB-Tastatur ab.
  • Seite 173 3. SOFTWARE Name: . . . USB:RAWIN ..PV7, UP-Nr. 7.3 FKT: Lesen eines Bytes vom VNC inkl. Time-Out-Prüfung Register E CY=0 OK, Byte wurde gelesen, dann Register A gelesenes Datenbyte CY=1 Fehler, dann Register DE Fehlercode „TO“...
  • Seite 174 3. SOFTWARE Name: . . . USB:READ1 ..PV7, UP-Nr. 7.6 FKT: Ein Datenbyte aus Datei lesen Register E CY=0 OK, dann Register A gelesenes Datenbyte CY=1 Fehler, dann Register DE Fehlercode AF, BC, (DE bei Fehler) Bemerkung: Diese Funktion liest das nächste Datenbyte aus der aktuell geöffneten Datei ein.
  • Seite 175 3. SOFTWARE Name: . . . USB:APPEND ..PV7, UP-Nr. 7.9 FKT: vorhandene Datei zum Schreiben öffnen Register E Register HL Zeiger auf Pfad/Dateiname CY=0 CY=1 Fehler, dann Register DE Fehlercode AF, BC, DE, HL Bemerkung: Falls im Dateinamen ein Pfad enthalten ist, wird dieser Pfad vor dem Öffnen der Datei eingestellt.
  • Seite 176 3. SOFTWARE Name: . . . USB:CLOSE ..PV7, UP-Nr. 7.12 FKT: Datei schließen Register E CY=0 CY=1 Fehler, dann Register DE Fehlercode AF, BC, DE, HL Bemerkung: Diese Funktion schließt eine zum Lesen oder Schreiben geöff- nete Datei.
  • Seite 177 3. SOFTWARE Name: . . . USB:STICK ..PV7, UP-Nr. 7.15 FKT: Test, ob USB-Stick vorhanden ist Register E CY=0 USB-Stick ist vorhanden CY=1 kein USB-Stick vorhanden, dann Fehlercode AF, BC, DE, HL Bemerkung: Diese Funktion prüft nur, ob ein Stick am USB-Anschluss ange- steckt ist.
  • Seite 178 3. SOFTWARE Name: . . . CD ... . . PV7, UP-Nr. 9 FKT: Verzeichnis bzw. Pfad wechseln (IX+8) - Bit 2-4: Device-Nummer Register DE - Zeiger auf Verzeichnisname, Ende mit 00H CY=1 Verzeichnis/Pfad nicht vorhanden AF, BC, DE, HL...
  • Seite 179 3. SOFTWARE Name: . . . REN ... . PV7, UP-Nr. 11 FKT: Datei umbenennen (IX+8) - Bit 2-4: Device-Nummer Register DE - Zeiger auf 2 Dateinamen, als erstes der alte Dateiname, als zweites der neue Dateiname, getrennt mit Leerzeichen, Ende mit 00H...
  • Seite 180 3. SOFTWARE 3.6. Arbeitszellen des Betriebssystems 3.6.1. Arbeitszellen im System-RAM Der Adressbereich von Adresse 0000H bis 01FFH im RAM0 wird von CAOS für systemnahe Arbeitszellen, die Interrupttabelle und den Systemstack genutzt. Bei Nutzung durch den Anwender sind Überschneidungen mit Arbeitszellen anderer Programme zu vermeiden.
  • Seite 181 3. SOFTWARE Adresse In Benutzung für Bemerkung 0040H - Arbeitszellen EDAS 1.4-1.6 Ab CAOS 4.7 nicht 00C8H mehr erforderlich 00AEH - VNC2-Interrupt M052-USB ab CAOS 4.7 Ab USB-Version 2.7 00E0H (auch für PS/2- und USB-Tastatur) 00D8H - Einsprungtabelle der BASIC-Diskettenfunkti- Ab CAOS 4.7 nicht 0107H onen bei SERVICE.KCC in der Originalver-...
  • Seite 182 3. SOFTWARE Die Wirkung ist identisch mit einem CALL, jedoch ist der Restart-Befehl nur ein Byte lang anstatt der drei Byte bei einem CALL. Die Benutzung von Restart-Be- fehlen ist also geeignet um den Speicherbedarf von Programmen zu verringern und wird gern für häufig aufgerufene Unterprogramme eingesetzt. Beim Einschal- ten des KC 85 sind auf diesen Adressen zunächst keine Funktionen aktiviert.
  • Seite 183 3. SOFTWARE In ähnlicher Weise können auch die anderen Restart-Befehle bis 38H belegt wer- den. Kritisch sind nur RST 0 und RST 8 wegen der Dateinamen und M052- Arbeitszellen. Und falls für CAOS-Versionen vor 4.6 ein FLOAD benötigt wird, dann sollte die Variante von SERVICE.KCC benutzt werden, welche nicht im RAM0 steht.
  • Seite 184 3. SOFTWARE Tabelle 21: Format der Systemzeit für USB-Kommandos Adresse Bit-Positionen Beschreibung Wertebereich Bedeutung 000CH 9-15 Jahr 0-127 0 = 1980 127 = 2107 000DH Monat 1-12 1 = Januar 12 = Dezember 1-31 1 = erster des Monats 000EH 11-15 Stunde 0-23...
  • Seite 185 3. SOFTWARE Nachteil/Kompromiss dieser Variante: Befindet sich kein D004/D008 im System oder läuft kein DEP ab Version 3.0, dann wird beim Schreiben auf den USB-Stick der Wert aus den Systemzellen 000CH-000FH benutzt. Wurden nun durch ein anderes Programm die Daten in den Speicherzellen überschrieben, so erhalten die auf den USB-Stick geschriebe- nen Dateien ein falsches oder ungültiges Datum.
  • Seite 186 3. SOFTWARE 3.6.6. Interrupttabelle Das I-Register der CPU wird beim RESET/Einschalten auf 01H gesetzt, solange die Systemarbeitszellen nicht umgelagert werden, ergibt sich folgende Lage der Interrupttabelle: Tabelle 22: Belegung Interrupttabelle Adresse Beschreibung ab CAOS 01C4H- Frei für Anwender-Interrupts 01CFH 01D0H Interrupt USB-PIO von Modul M052 4.7 * 20,21 01D2H -...
  • Seite 187 3. SOFTWARE 3.6.7. Arbeitszellen im IX-Bereich Das IX-Register wird beim RESET/Einschalten auf 01F0H geladen, im IX-Bereich liegen folgende Arbeitszellen von CAOS: Tabelle 23: Belegung der IX-Arbeitszellen Adresse Bedeutung IX + 0: Zeitkonstanten-Speicher für Kassettenroutinen IX + 1: Merkzelle für Ausgabe Port 84H (bis CAOS 3.3: Prüfsummenberechnung innerhalb LOAD/SAVE) IX + 2: aktuelle Blocknummer bei Kassetten-Ein-/Ausgabe...
  • Seite 188 3. SOFTWARE 3.6.8. Arbeitszellen im IRM Tabelle 24: IRM-Arbeitszellen Adresse Name Länge Inhalt / Beschreibung (Byte) A800H - V24PL V.24-Arbeitszellen und Initialisierungstabellen A81FH ab CAOS 4.1 (beim KC 85/2 und KC 85/3 liegt von A800H bis B1FFH der COLOR-RAM) A820H - reserviert für Maustreiber oder die Verwaltung A87FH mehrerer V.24-Module...
  • Seite 189 3. SOFTWARE Adresse Name Länge Inhalt / Beschreibung (Byte) B700H - CASS Sektorpuffer für Dateioperationen (Kassette, Dis- B77FH kette, USB …) B780H ARGC UP-Nr. bei PV2 und PV6 ab CAOS 4.6: zusätzlich USER-ROM-Zustand bei Menüwortaufruf aus USER-ROM B781H ARGN Anzahl der Argumente bei Kommandoeingabe B782H ARG1 1.
  • Seite 190 3. SOFTWARE Adresse Name Länge Inhalt / Beschreibung (Byte) B7A3H COLOR Farbbyte für Bildschirmprogramm B(7) B(6) B(5) B(4) B(3) B(2) B(1) B(0) A(V) X(V) G(V) R(V) B(V) G(H) R(H) B(H) Index: V: Vordergrund (Farbe für Bit im Pixel-IRM=1) H: Hintergrund (Farbe für Bit im Pixel-IRM=0) B: Farbe blau R: Farbe rot...
  • Seite 191 3. SOFTWARE Adresse Name Länge Inhalt / Beschreibung (Byte) B7C3H UOUT2 Sprung in USER-Ausgabekanal 3 (z. B. BASIC PRINT #3 …) B7C6H UIN2 Sprung in USER-Eingabekanal 3 (z. B. BASIC INPUT #3 …) B7C9H IOERR Sprungadresse zur Fehlerausgabe bei UP 37H MBIN und UP 38H MBOUT (Voreinstellung BASIC: Sprung zu ?IO-ERROR) ab CAOS 4.8 nicht mehr genutzt...
  • Seite 192 3. SOFTWARE Adresse Name Länge Inhalt / Beschreibung (Byte) B7DCH BLINK Zeitkonstante für CTC 2 (Blinkfrequenz) ab CAOS 4.3 normal: 0CH B7DDH L3TAB Adresse der ESC-Steuerfunktionstabelle ab CAOS 4.1 B7DFH L3SIZ Anzahl der Steuerfunktionen ab CAOS 4.1 B7E0H COUNT Zeiteinheiten bis 1. Autorepeat (Tastatureingabe) ab CAOS 3.4 normal: 05H B7E1H...
  • Seite 193 3. SOFTWARE Adresse Name Länge Inhalt / Beschreibung (Byte) B7EDH LINTYP Linientyp, Standardwert FFH (volle Linie) Strichlinie Strich-Punkt-Linie ab CAOS 4.3 B7EEH CUMUST Zeiger auf Cursormuster ab CAOS 4.3 B7F0H JOYTAB Zeiger auf Tabelle der Joystick-Tastencodes ab CAOS 4.5 B7F2H - reserviert B7F4H B7F5H -...
  • Seite 194 3. SOFTWARE 3.7. Funktionstasten Die Funktionstasten liefern von den Tastaturprogrammen KBD, KBDZ die in der folgenden Tabelle aufgeführten folgende Codes. Tabelle 25: Codes der Funktionstasten Taste Code: 1. Belegung Code 2. Belegung Beim Betätigen einer Funktionstaste wird vom Tastaturprogramm KBDS die Zei- chenübergabe auf Zeichen aus dem zugehörigen Puffer (ab B900H) umgeschal- tet, der Pufferaufbau ist dynamisch.
  • Seite 195 3. SOFTWARE 3.7.1. Speicher für Funktionstastenbelegung Sollen auf den Funktionstasten Codes abgelegt werden, die nicht auf der Tastatur vorhanden sind, kann dies durch das MODIFY-Kommando im Betriebssystem, durch die VPOKE-Anweisung vom BASIC-Interpreter aus oder direkt über ein Maschinenprogramm erfolgen. Beispiel: Es sollen nicht auf der Tastatur befindliche Codes über die F-Tasten erzeugt wer- den.
  • Seite 196 3. SOFTWARE 3.8. Magnetbandaufzeichnung 3.8.1. Verfahren Die Aufzeichnung auf Kassette erfolgt nach einem Verfahren, welches Vorteile bezüglich Übertragungsrate und Synchronisation gegenüber anderen bekannten Verfahren bietet. Es wird nicht nur vom KC 85/2…5, sondern auch vom KC 85/1 und KC87 von Robotron verwendet. Dadurch ist ein Datenaustausch zwischen beiden Systemen möglich.
  • Seite 197 3. SOFTWARE Der Vorblock einer MC-Datei ist wie folgt aufgebaut: Tabelle 26: Aufbau CAOS-Vorblock (MC-Datei) Byte-Nr. Adresse Bedeutung in Puffer 1. Byte (IX+2) Blocknummer = 01H 2. - 9. Byte B700H Name, bestehend aus alphanumerischen Zeichen 10. - 12. Byte B708H Dateityp, vgl.
  • Seite 198 3. SOFTWARE 3.8.3. Dateitypen Da jedes Dateiformat einen anderen Aufbau hat, werden zur Unterscheidung Dateitypen aus 3 Zeichen benutzt. Diese sind im Vorblock in den Bytes 10 bis 12 (bei BASIC in den Bytes 2 bis 4) anzugeben. Es gelten folgende Festlegungen: Tabelle 27: Auswahl an Dateitypen Dateityp Beschreibung FORTH –...
  • Seite 199 3. SOFTWARE 3.9. DEVICE-Schnittstelle 3.9.1. Funktion der DEVICE-Umschaltung Das CAOS-Betriebssystem beinhaltet Systemunterprogramme zur Ein- und Aus- gabe auf Magnetband. Um verschiedene Speichergeräte nutzen zu können, müs- sen diese Unterprogramme je nach Speichergerät auf die zugehörigen Treiber zugreifen. Zur Speicherung der DEVICE-Nummer werden die drei bisher unge- nutzten Bits 2–4 der Speicherzelle (IX+8) verwendet.
  • Seite 200 3. SOFTWARE Tabelle 28: Aufbau der DEVICE-Treiber Adresse Größe Funktion +00H Byte Aktivierungs-Kennbyte. Bei einem aktiven Treiber ent- spricht dieses Byte der Nummer des Treibers. Also 00H beim TAPE-Treiber auf Adresse A900H, 01H beim Trei- ber Nr. 1 auf Adresse A920H usw. CAOS initialisiert inaktive Treiber mit Kennbyte FFH.
  • Seite 201 3. SOFTWARE Adresse Größe Funktion +16H Adresse Treiber-spezifische Funktionen ab CAOS 4.8 (MBOUT bei CAOS 4.6) +18H Adresse DIR = Verzeichnisanzeige mit Maske Der Verzeichniseintrag wird am Bildschirm angezeigt, nach einer gefüllten Bildschirmseite wird eine Tastaturein- gabe abgewartet. +1AH Adresse CD = Laufwerk- bzw.
  • Seite 202 3. SOFTWARE 3.9.3. Erweiterung mit eigenen Treibern CAOS kann bis zu 8 DEVICE-Treiber verwalten. Zusätzlich zu den Standard-Trei- bern für TAPE und DISK sowie den Treibern aus den Modulen, können auch eigene Treiber aus nachladbaren Programmen ergänzt werden. Dazu sollte das Programm nach dem ersten freien Treiber in der DEVICE-Treiber-Tabelle suchen und dann einen 32 Byte großen Datenblock entsprechend der Tabelle 28 dorthin kopieren.
  • Seite 203 3. SOFTWARE 3.9.4. Treiberspezifische USB-Funktionen ab Version 3.0 Der mit CAOS 4.7 eingeführte Sprungverteiler PV7 gestattet über den DEVICE- Treiber den Aufruf von insgesamt 12 Funktionen. Die Funktionen 6 und 7 waren dabei ursprünglich (in CAOS 4.6) für die byteweisen Routinen der BASIC-Schnitt- stelle vorgesehen, stellten sich aber bei der Kassettenausgabe als zu langsam heraus.
  • Seite 204 3. SOFTWARE Möchte ein Anwenderprogramm unter CAOS 4.7 prüfen, ob eine passende Trei- berversion vorliegt, dann kann nachfolgender Programmcode genutzt werden, welcher auch bei älteren Versionen einen definierten Wert liefert: HL,0B700H ; Kassettenpuffer ; D=0, kein INIT/CLOSE bei MBIN (HL),D ;...
  • Seite 205 3. SOFTWARE 3.10. Tastatur, Zeichenvorrat, Steuercodes 3.10.1. Zeichenvorrat des KC 85/5 und Zuordnung zur Tastatur Der KC 85/5 hat zwei Darstellungsmodi: den CAOS-Zeichensatz und den erwei- terten IBM-Zeichensatz. Umgeschaltet wird der Darstellungsmodus mit Bit 5 des Steuerbytes STBT (Adresse B7A2H). Ist der CAOS-Zeichensatz aktiv, dann wiederholen sich die Zeichen (nicht die Funktionen) der Codes 0 bis 127 auf den Codes 128 bis 255, wenn keine ande- ren Zeichenbildtabellen vereinbart wurden.
  • Seite 206 3. SOFTWARE Code Zeichen Dezimal Hex normal schmal Funktion nicht benutzt BEEP Cursor nach links Cursor nach rechts Cursor nach unten Cursor nach oben Bildschirm löschen Enter Shift-Enter (nicht benutzt) Aufruf Sonderprogramm (z. B. Drucker) Cursor in linke, obere Ecke setzen PAGE-Modus SCROLL-Modus STOP...
  • Seite 207 3. SOFTWARE Code Zeichen Dezimal Hex normal schmal Funktion SHIFT LOCK nicht benutzt setzt den Cursor an das Ende der Zeile setzt den Cursor an den Anfang der Zeile (Zeichen einfügen) (danach wird ein Steuerzeichen erwar- tet) LIST (nur in BASIC) (nur in BASIC) CONT (nur in BASIC)
  • Seite 208 3. SOFTWARE Code Zeichen Dezimal Hex normal schmal Funktion Multiplikation (in BASIC und weiteren höhe- ren Programmiersprachen) Addition (in BASIC und weiteren höhe- ren Programmiersprachen) tabellierte Ausgabe (nur in BASIC) Subtraktion (in BASIC und weiteren höhe- ren Programmiersprachen) Dezimalpunkt (in BASIC und weiteren höhe- ren Programmiersprachen) Division (in BASIC und weiteren höhe-...
  • Seite 209 3. SOFTWARE Code Zeichen Dezimal Hex normal schmal Funktion Trennzeichen zwischen mehreren Anweisungen (nur in BASIC) Ausgabe auf Ausgabe (ohne Zwischenraum) (nur in BASIC) Wertzuweisung (LET) (nur in BASIC) Exponentendarstellung *10^X (in BASIC und weiteren Programmiersprachen)
  • Seite 210 3. SOFTWARE Code Zeichen Dezimal Hex normal schmal Funktion...
  • Seite 211 3. SOFTWARE Code Zeichen Dezimal Hex normal schmal Funktion Vollzeichen Negationszeichen Exponent (nur in BASIC)
  • Seite 212 3. SOFTWARE Code Zeichen Dezimal Hex normal schmal Funktion...
  • Seite 213 3. SOFTWARE Code Zeichen Dezimal Hex normal schmal Funktion Erstbelegung der Funktionstasten F1 bis F6 Zweitbelegung der Funktionstasten F1 bis F6...
  • Seite 214 3. SOFTWARE IBM-Zeichensatz Ab CAOS 4.3 besitzt der KC noch einen weiteren Zeichensatz, welcher alle Hex- Codes von 0 bis FFh umfasst. Dieser IBM-Zeichensatz ist an den Original-Zei- chensatz des IBM-PC ab 1981 (Codepage 437) angelehnt. Im folgenden Bild ist diese Codepage von MS-DOS zum Vergleich zu sehen.
  • Seite 215 3. SOFTWARE Code Zeichen Code Zeichen Dezimal Hex normal schmal Dezimal Hex normal schmal...
  • Seite 216 3. SOFTWARE Code Zeichen Code Zeichen Dezimal Hex normal schmal Dezimal Hex normal schmal...
  • Seite 217 3. SOFTWARE Code Zeichen Code Zeichen Dezimal Hex normal schmal Dezimal Hex normal schmal...
  • Seite 218 3. SOFTWARE Code Zeichen Code Zeichen Dezimal Hex normal schmal Dezimal Hex normal schmal...
  • Seite 219 3. SOFTWARE Code Zeichen Code Zeichen Dezimal Hex normal schmal Dezimal Hex normal schmal...
  • Seite 220 3. SOFTWARE Code Zeichen Code Zeichen Dezimal Hex normal schmal Dezimal Hex normal schmal 80-Zeichensatz Ab CAOS 4.7 besitzt der KC noch einen dritten Zeichensatz, welcher sich in der Editor-Ebene des USER-ROM befindet und ausschließlich vom Editor benutzt wird. Im Gegensatz zum CAOS- bzw. IBM-Zeichensatz, bei denen die Zeichen eine Größe von 8x8 Pixel umfassen, sind die Zeichen beim 80-Zeichensatz nur 4 Pixel breit, dafür aber 10 Pixel hoch.
  • Seite 221 3. SOFTWARE _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F...
  • Seite 222 3. SOFTWARE Die internen Zeichen des 80-Zeichensatzes werden z. B. für die Statuszeile, die Druckersteuerzeichen und die Blockmarkierungen genutzt. linke Randmarke für Lineal der Statuszeile rechte Randmarke für Lineal der Statuszeile Glöckchensymbol Statuszeile (Anzeige Tastenklick ein) Tabulator-Positionen für Lineal der Statuszeile Symbol für „Zeile binden“...
  • Seite 223 3. SOFTWARE 3.10.2. Zuordnung Tastennummer zu Tastencode Bild 26: Ansicht der Tastatur und Reihenfolge in der Umcodierungstabelle...
  • Seite 224 3. SOFTWARE Der Tastencode wird über eine Tabelle (KTAB vgl. Kapitel „Arbeitszellen im IRM“, ab Seite 186) aus den seriellen Impulsfolgen des Fernsteuerschaltkreises U807D gewonnen. Eine Änderung der Codes zu den einzelnen Tasten ist durch Aufbau einer neuen Umcodierungstabelle und Eintragen deren Anfangsadresse in KTAB möglich.
  • Seite 225 3. SOFTWARE Erstbelegung ohne <SHIFT>-Taste Zweitbelegung mit <SHIFT>-Taste SHIFT-LOCK SHIFT-LOCK Sende- Bez. ASCII- Bez. ASCII- Sende- Bez. ASCII- Bez. ASCII- wort Code Code wort Code Code CLLN © CLICK Sh-BRK 04 █ ä < STOP & LIST 1C * 1D *...
  • Seite 226 3. SOFTWARE Erstbelegung ohne <SHIFT>-Taste Zweitbelegung mit <SHIFT>-Taste SHIFT-LOCK SHIFT-LOCK Sende- Bez. ASCII- Bez. ASCII- Sende- Bez. ASCII- Bez. ASCII- wort Code Code wort Code Code > □ ö CAPS SCROL 12 PAGE ENTER 0D Shift- ENTER Rot: Tastaturcodes modifiziert ab CAOS 4.3 Enthalten die <SHIFT LOCK>-Tasten keine Eintragungen, so entsprechen diese den Eintragungen in den Spalten ohne <SHIFT LOCK>.
  • Seite 227 3. SOFTWARE 3.10.3. Steuercodes des KC 85/5 In der Speicherzelle CTAB (siehe Kapitel 3.6.8.) ist ein Zeiger auf eine Pro- grammverteiler-Tabelle abgelegt, die die Zuordnung der Steuercodes zu den ein- zelnen Bildschirmprogrammfunktionen organisiert. In ihr sind die Anfangsadres- sen der zugeordneten Unterprogramme enthalten. Sollen Steuerprogramme geändert werden, müssen diese Tabelle in den RAM kopiert und die entspre- chenden neuen Anfangsadressen in der Speicherzelle CTAB verändert werden.
  • Seite 228 3. SOFTWARE Code Name Funktion (speziell für CRT) Cursor Up; Cursor um eine Zeile nach oben bis max. in die Zeile 0 des Fensters verschieben. Clear Screen; Löschen des Fensters und eintragen des Codes 00 in das Fenster des Video-RAM. New line;...
  • Seite 229 3. SOFTWARE Code Name Funktion (speziell für CRT) Insert; Einfügen eines Leerzeichens (Code 20H) und Rechtsver- schieben aller danach stehenden Zeichen innerhalb einer Textzeile (nicht unbedingt identisch mit Bildschirmzeile). Das heißt, es werden so viele Zeichen verschoben, bis der Code 00 erkannt wird, auch über die Bildschirmzeile hin- aus.
  • Seite 230 3. SOFTWARE An zwei kurzen Beispielen in BASIC soll die Anwendung der ESC-Funktion gezeigt werden. Im Beispiel 1 wird die Umschaltung zwischen den Bildern 0 und 1 demonstriert. Beispiel 1: 10 COLOR6,1:CLS 20 PRINTAT(15,11);CHR$(27);"1";"HIER IST BILD 0!" 30 PAUSE20 40 PRINTCHR$(27);"2";:COLOR4,0:CLS 50 PRINTAT(15,11);"HIER IST BILD 1!";CHR$(27);"2";...
  • Seite 231 3. SOFTWARE 3.11. Bildschirmausgaben, Zeichen, Pseudozeichen, Grafik 3.11.1. Zeichenbildtabellen und deren Verwaltung Zur Ergänzung des internen Zeichenbildvorrates und der Groß- und Kleinbuch- staben, Ziffern, Sonderzeichen (Codes 00 - 7FH) können eigene Zeichenbildta- bellen erstellt werden. Pro Zeichen werden 8 Byte benötigt. Bildpunkte = Bits: seitenrichtig, nicht negiert, oberste Bildpunktzeile = niedrigste Adresse.
  • Seite 232 3. SOFTWARE 2. Generieren eines neuen Zeichens mit dem Code 0A0H Zeichenbild Bild-Code Hex-Code 0000 0000 0001 1000 0010 0100 0100 0010 8 Byte 0010 0100 0010 0100 0110 0110 0000 0000 Wenn der Hex-Code ab Adresse 0BC00H mit MODIFY abgelegt ist, wird das Zei- chen 0A0H mit diesem Bild so auf dem Bildschirm dargestellt.
  • Seite 233 3. SOFTWARE Um das Farb- und das Pixelbyte eines Bildpunktes zu bestimmen, werden die Pixelzeilennummer und die Zeichenspaltennummer, in der sich der Punkt befin- det, hexadezimal verwendet. Mit der folgenden Formel kann man die Pixelbyte- bzw. Farbbyteadresse errechnen: Adresse = 8000H + Zeichenspalte * 100H + Pixelzeile 0 ≤...
  • Seite 234 3. SOFTWARE 3.11.5. Bit- und Bytemodus der Farbauflösung Im KC 85/4 und KC 85/5 sind jedem Bild zwei Speicherebenen (Pixel- und Color- RAM) zugeordnet. Die Bit-Informationen in den Ebenen werden vom Videointerface (VIF) verarbeitet und auf dem Bildschirm dargestellt. Das VIF ist von Bild 0 auf Bild 1 und umge- kehrt über Software umschaltbar.
  • Seite 235 3. SOFTWARE Farben dargestellt werden. Dem Pixelspeicher ist dabei die Farbe Rot und dem Farbspeicher die Farbe Türkis zugewiesen. Es ergeben sich folgende Farben: Farbziffer Farbe Bit im Farb-RAM Pixel-RAM schwarz türkis weiß Farbtafel: Farben für die pixelweise Farbauflösung Das folgende Bild zeigt die bitweise Farbauflösung. Speicherebene 1 Color-RAM (türkis) Speicherebene 0...
  • Seite 236 3. SOFTWARE 3.11.6. Verwendung der zwei Bilder Die Hardware des KC 85/4 enthält zwei voneinander unabhängige Bildspeicher für Pixel und Farbe. Über zwei Bit des Ausgabeport 84H wird festgelegt, auf wel- ches der beiden Bildspeicher die CPU zugreift und welches der beiden Bilder angezeigt wird, siehe Seite 127.
  • Seite 237 3. SOFTWARE 3.12. V.24-Software Das Betriebssystem KC-CAOS enthält eine universelle Druckertreiber- und Kop- pelroutine. Mit ihr lassen sich alle Druckgeräte mit V.24-Schnittstelle bedienen. Dazu ist ein Modul M003 V.24 bzw. M053 RS232 im KC-System erforderlich. Die Anschlussbedingungen und die Bedienungsanleitung für die Module sind aus den Modul-Beschreibungen zu entnehmen.
  • Seite 238 3. SOFTWARE 3.12.2. Duplexroutine (mit Empfangsinterrupt) Wie oben bereits beschrieben, wird der Kanal 2 eines vorhandenen V.24-Moduls beim Kalt- oder Warmstart eingeschaltet und auf Duplex initialisiert. Dabei ist die Empfangsroutine interruptgesteuert. Wird also ein Zeichen von außen an diesen V.24-Kanal gesendet, wird ein Interrupt ausgelöst und das Zeichen ausgewertet. Reagiert wird in der Interruptroutine prinzipiell nur auf zwei Zeichen bzw.
  • Seite 239 3. SOFTWARE Es könnte z. B. ein Programm gestartet werden, das vorher mit ESC 'T' gesendet wurde. Die gestarteten Programme können mit RETURN (RET) zum unterbro- chenen Programm zurückkehren. Sowohl bei ESC 'T' als auch bei ESC 'U' wird auf folgende Speicherebenen zuge- griffen: 0000H …...
  • Seite 240 3. SOFTWARE Im folgenden Bild sind die verschiedenen Duplexroutinen von CAOS dargestellt und dabei angegeben, unter welchen Bedingungen zwischen diesen Routinen gewechselt wird. Bild 29: Duplexroutinen von CAOS Das CAOS-Systemunterprogramm 31H (SIXD) setzt einen V.24-Tastaturinterrupt auf die interruptgesteuerte Duplexroutine zurück. Das heißt, nach der Ausführung dieses Unterprogramms muss bei einer am V.24-Modul angeschlossenen Tasta- tur erneut die Entertaste betätigt werden, bevor wieder Tastatureingaben möglich sind.
  • Seite 241 3. SOFTWARE 3.12.3. Übertragungsbedingungen für Druckerbetrieb Für die Druckerausgabe wird der Kanal 1 des V.24-Moduls auf Standardwerte eingestellt, welche für Matrixdrucker K6313 u. a. gültig sind. Mit der für die Dru- ckerinitialisierung zuständigen Tabelle werden Übertragungsbedingungen mit fol- genden Standardwerten festgelegt (blaue Werte in Tabelle 38): Übertragungsrate :...
  • Seite 242 3. SOFTWARE Tabelle 38: Initialisierungstabelle für Druckerausgabe über V.24-Modul Übertragungs- Anzahl Bit/Zei- Initialisierungsbytes (hex) rate in Bit/s Stoppbits chen CTC: WR4: WR3: WR5: 9.600 47 5B 04 04 03 20 05 2A 47 5B 04 04 03 20 05 6A 47 5B 04 0C 03 20 05 2A 47 5B 04 0C 03 20 05 6A 4.800...
  • Seite 243 3. SOFTWARE 3.12.4. Übertragungsbedingungen für Duplexbetrieb Bei der Systeminitialisierung werden die Übertragungsbedingungen der Duplex- routine mit diesen Standardwerten festgelegt: Übertragungsrate : 1.200 Baud Stoppbits Bits pro Zeichen : Paritätsprüfung keine Auch für die Duplexroutine kann die Initialisierungstabelle geändert werden. Die Anfangsadresse dieser Initialisierungstabelle für Kanal 2 steht in der Arbeitszelle INTV2 und deren Länge in der Zelle INTV2L (vgl.
  • Seite 244 3. SOFTWARE Tabelle 40: Initialisierungstabelle für Duplexbetrieb V.24-Modul Übertragungs- Anzahl Bit/Zei- Initialisierungsbytes (hex) rate in Bit/s Stoppbits chen CTC: WR4: WR3: WR5: 54.748 * 47 01 18 04 44 03 61 05 2A 47 01 18 04 44 03 E1 05 6A 47 01 18 04 4C 03 61 05 2A 47 01 18 04 4C 03 E1 05 6A 4.800 -...
  • Seite 245 3. SOFTWARE 3.13. Programmierung der Tonausgabe Mit dem KC 85 können Sie Töne monophon über das Fernsehgerät bei FBAS oder RGB-Anschluss zu Gehör bringen. Dabei ist die Lautstärke in 16 Stufen mit einer Schrittweite von 2 regelbar. Darüber hinaus erfolgt die Tonausgabe auch stereophon mittels einer Stereoanlage oder eines anderen geeigneten Musikwie- dergabegerätes.
  • Seite 246 3. SOFTWARE – ist die Tondauer = 0, so wird bis zum nächsten Aufruf ein Dauerton abgege- ben. Die Zuordnung der Töne zu den Zeitkonstanten bzw. Vorteilerstufen kann nach folgender Tabelle erhalten werden: Tabelle 41: Tonwerttabelle für Vorteiler und Zeitkonstanten Oktave VT ZK VT ZK VT ZK VT ZK VT ZK VT ZK VT ZK Anmerkungen:...
  • Seite 247 3. SOFTWARE 3.14. Spezielle Systembedingungen Bei der Arbeit mit dem KC 85/5 sind folgende systemspezifische Bedingungen zu beachten. 3.14.1. Interrupt – Es ist Interrupt Modus IM2 vorgeschrieben. – Interrupt-Serviceroutinen dürfen nur in einen Speicherbereich starten, der immer eingeschaltet ist. Neben dem CAOS-ROM-E ist das vor allem der RAM0 bzw.
  • Seite 248 3. SOFTWARE 3.14.2. Index-Register IX und IY – Das IX-Register wird für die Adressierung der Tastatur/Kassetten-Interrupt- programme sowie als Zeiger für die Merkzellen der Ports 84H und 86H benö- tigt. Es darf bei freigegebenem Interrupt nicht verändert werden. Der Aufruf von System-Unterprogrammen mit einem veränderten IX-Register kann auch bei gesperrtem Interrupt zu undefinierten Systemzuständen führen.
  • Seite 249 3. SOFTWARE 3.14.5. Varianten des Systemstarts CAOS kann durch verschiedene Bedienhandlungen gestartet werden: Einschalten mit der Taste <POWER> = Kaltstart das entspricht einem Sprung zur Adresse 0F000H. Beim Einschalten des Computers wird der gesamte Speicher gelöscht, alle Module ausgeschaltet und das Betriebssystem mit allen verfügbaren Device-Treibern initialisiert. Rücksetzen mit der Taste <RESET>...
  • Seite 250 3. SOFTWARE matisch das Kommando %INIT vorbereitet. Mit Initialisierung der Treibersoft- ware das M052 wird im Hauptverzeichnis des USB-Sticks nach der Datei mit dem Namen INITIAL.UUU gesucht und falls vorhanden, das vorbereitete INIT-Kommando aktiviert. Dadurch wird es möglich, beim Einschalten des KC 85/5 mit M052 einen oder mehrere Befehle aus einer Datei INITIAL.UUU automatisch abzuarbeiten.
  • Seite 251 3. SOFTWARE UP-Nr. Name Funktion Seite INTB Zeicheneingabe vom aktuellen Eingabekanal 17H * INLIN Eingabe einer Zeile, Abschluss mit<ENTER> 18H * RHEX Erfassung HEX-Wert aus Zeichenkette ERRM Ausschrift „ERROR“ HLHX Wertausgabe des Register HL als Hexzahl HLDE Ausgabe der Register HL, DE als Hexzahlen AHEX Ausgabe Register A als Hexzahl 1DH *...
  • Seite 252 3. SOFTWARE UP-Nr. Name Funktion Seite SAVE Maschinenprogramm auf Speichergerät ausgeben MBIN Byteweise Eingabe vom Speichergerät (BASIC) MBOUT Byteweise Ausgabe auf Speichergerät (BASIC) Belegung einer Funktionstaste KEYLI Anzeige der Funktionstastenbelegung DISP HEX/ASCII-Dump von Speicherinhalten WININ Fenster initialisieren WINAK Aufruf Fenster über Fensternummer LINE Zeichnen einer Linie CIRCLE...
  • Seite 253 3. SOFTWARE Tabelle 43: Übersicht Systemunterprogramme PV7 (ab CAOS 4.7) UP-Nr. Name DEVICE-Funktion Seite (nur über PV7 erreichbar) UP 0 Datenblock auf Speichergerät ausgeben UP 1 Datenblockes von Speichergerät einlesen UP 2 ISRO Initialisierung Dateiausgabe (Schreiben öffnen) UP 3 CSRO Abschluss Dateiausgabe (Datei schließen) UP 4 ISRI...
  • Seite 254 3. SOFTWARE Tabelle 44: Übersicht USB-Zusatzfunktionen PV7-UP7 (ab CAOS 4.8) UP-Nr. Name Treiber-spezifische USB-Funktion Seite PV7-7 (ab Treiber V3.0 über PV7, UP7 erreichbar) UP 7.0 USER-MD USB: USER-Mode für VNC einstellen UP 7.1 CAOS-MD USB: CAOS-Mode für VNC einstellen UP 7.2 RAWOUT USB: direktes Schreiben VNC UP 7.3...
  • Seite 255 4. ERWEITERUNGEN BASIC Assembler Reassembler Testmonitor/Debugger Editor...
  • Seite 256 4.1. BASIC 4.1. BASIC Einführung Als Vorlage für die folgenden Kapitel diente das BASIC-Handbuch des KC 85/4. Der Inhalt wurde für die Gegebenheiten bis CAOS 4.8 ergänzt. Das BASIC-Hand- buch des KC 85/4 ist wie ein Lehrbuch aufgebaut und ermöglicht das Erlernen der Programmiersprache durch Beispiele und Übungen.
  • Seite 257 4.1. BASIC CALL-Anweisung bis Ersatz-Anweisung Funktion CAOS 4.5 ab CAOS 4.7 CALL*12 BLOAD“NAME“ MC-Datei nachladen CALL*D8 CALL*DE FILES“MASKE“ Verzeichnis anzeigen CALL*F0 CHDIR“NAME“ Verzeichnis wechseln CALL*150 DEVICE Speichergerät wechseln Mit der Anweisung PRINT DEEK (513) >0 = Magnetbandzugriff PRINT DEEK (513) <0 = Diskettenzugriff konnte bei Verwendung von BASEX abgefragt werden, ob der Zugriff gerade auf DISK oder TAPE eingestellt ist.
  • Seite 258 4.1. BASIC 4.1.1. BASIC Kaltstart/Warmstart und Anweisung BYE Wie Sie bereits erfahren haben, wird uns der BASIC-Interpreter das Programmie- ren stark erleichtern. Um den Interpreter zu nutzen, müssen wir diesen starten. Es stehen zwei Möglichkeiten zur Verfügung. Der BASIC-Interpreter wird im CAOS-Menü mit diesen Kommandos gestartet: %BASIC Kaltstart des BASIC-Interpreters %REBASIC...
  • Seite 259 4.1. BASIC Tastatur unter BASIC und die Anweisung BYE Die wichtigste Taste ist auch beim Betrieb des BASIC-Interpreters die ENTER- Taste ganz rechts unten auf der Tastatur. Mit dieser Taste werden eingegebene Kommandos ausgeführt und Programmanweisungen gespeichert. Die Tasten sind nur bei der Anweisungseingabe und mithilfe des Befehls EDIT funktionsfähig.
  • Seite 260 4.1. BASIC Was machen wir, wenn wir uns verschrieben haben oder „es einfach nicht weitergeht“? Wir setzen den Cursor zurück und überschreiben bzw. korrigieren mit den bereits erwähnen Editiermöglichkeiten die falsche Stelle oder wir drücken die ENTER-Taste. Führt das nicht zum gewünschten Erfolg, d. h. der Computer reagiert nicht auf Eingabe, so können wir die RESET-Taste drücken (nicht auf der Tastatur, direkt am Computer) und mit einem "Warmstart"...
  • Seite 261 4.1. BASIC 4.1.2. BASIC-Anweisungen PRINT, LET, CLEAR, CLS Unser KC 85 kann mehr als wir uns im ersten Moment vorstellen können. Er war- tet nur darauf, das auszuführen, was wir ihm anweisen. Das erste und wichtigste Kommando, das wir lernen wollen, ist die Anweisung etwas auf dem Bildschirm darzustellen.
  • Seite 262 4.1. BASIC Variablen und Konstanten Das Verständnis dieser beiden Begriffe ist die wichtigste Voraussetzung zum Erlernen einer Programmiersprache. Deshalb werden wir uns jetzt anschaulich mit diesen Begriffen vertraut machen. Konstanten sind festgelegte, unveränderliche Werte. Der KC 85-BASIC-Interpre- terverarbeitet Zahlen und Zeichenketten als Konstanten. Als Zahlen (numerische Konstanten) stehen ganze Zahlen von -999999 bis +999999 sowie reelle Zahlen mit einem Betrag zwischen 9.40396E-39 bis 1.70141E+38 und Null zur Verfü- gung.
  • Seite 263 4.1. BASIC Wie wir sehen, können die Werte einer Variablen sowohl Zahlen als auch Zei- chenketten (Strings) sein. Deshalb unterscheiden wir numerische Variablen und Stringvariablen. Der Variablenname ist unter Berücksichtigung folgender Regeln frei wählbar: Ein Variablenname muss immer mit einem Buchstaben beginnen, z. B. ANNA, LUTZ, WERT, X, A, B7, Typ Am Ende des Namens einer Stringvariablen steht das $-Zeichen, z.
  • Seite 264 4.1. BASIC PRINT 3,5 * WURST Wie sie bemerken, ist das Zeichen " * " das Multiplikationszeichen. Das Zeichen für die Division ist der Schrägstrich " / ". So ermitteln wir den Preis für 1/2 kg Wurst mit den Anweisungen: PRINT WURST/2 bzw.
  • Seite 265 4.1. BASIC Nun überzeugen Sie sich von der Wirkungsweise der Anweisung, indem Sie sich die Werte der vorhin festgelegten Variablen anzeigen lassen. PRINT BROT usw. Sie werden feststellen, dass die Variablen alle den Wert 0 enthalten. Die Grundrechenarten Mit Zahlen und den von Ihnen definierten Variablen können Sie nun nach Belie- ben rechnen.
  • Seite 266 4.1. BASIC Beachten Sie, dass das Multiplikationszeichen " * " auch bei Klammerrechnungen und bei Variablen angegeben werden muss. Beispiele: C=3*(5+7*A) richtig C=3(5+7*A) falsch C=3*(5+7A) falsch Merke: ● Anweisung: PRINT ● Besonderheiten der Computerschreibweise ● Variablen, Konstanten, Strings ● Trennen von Anweisungen auf einer Zeile durch Doppelpunkt ●...
  • Seite 267 4.1. BASIC Übungen 1. Geben Sie ein: PRINT 4.8E0 PRINT 4.8E1 PRINT 4.8E2 ⁝ PRINT 4.6E9 Wir erkennen, dass Zahlen, die länger als sechs Ziffern sind, in wissenschaftli- cher Notation (mit Exponenten) dargestellt werden. Probieren Sie gleiches mit negativen Zahlen! 2.
  • Seite 268 Verfahren die Anweisung jeweils neu eingeben. Hier kommt uns die Möglichkeit der BASIC-Programmierung entgegen. Schreiben wir also ein Programm, das obigen Text ausdruckt. Geben Sie ein: 10 PRINT "KLEINCOMPUTER AUS MUEHLHAUSEN" Drücken Sie die ENTER-Taste! Der Computer hat die Anweisung offensichtlich nicht ausgeführt. Das ist richtig, denn mit Betätigen der ENTER-Taste hat er die Anweisung als eine Programm-...
  • Seite 269 4.1. BASIC Und nun lassen wir unser um die Zeile 20 erweitertes Programm mit der Anwei- sung RUN ablaufen. Der Bildschirm wird vollgeschrieben und danach der Bild- schirminhalt von unten nach oben geschoben, wenn Sie den Scroll-Modus gewählt haben. Haben Sie genug davon, drücken Sie die BRK-Taste. Dadurch wird der Programmablauf unterbrochen und der BASIC-Interpreter meldet sich BREAK IN 10 >_...
  • Seite 270 4.1. BASIC Nun lassen Sie sich das Programm mithilfe des Kommandos LIST wieder anzei- gen. Sie sehen, dass die Programmzeile 5 entsprechend der Zeilennummer in Programm eingeordnet wurde. Wir können also nachträglich Programmzeilen ein- fügen. Es wird deshalb empfohlen, die Programmzeilen in Zehnerschritten zu nummerieren.
  • Seite 271 4.1. BASIC Solche Überläufe stören aber das Schriftbild erheblich und insbesondere dann, wenn man in einem Programm nach Fehlern suchen muss. Es ist daher besser, wenn wir eine BASIC-Zeile einer Bildschirmzeile anpassen und nicht mehr als 40 Zeichen pro Zeile verwenden. Merke: ●...
  • Seite 272 4.1. BASIC ● Anweisung: LIST Format: LIST [Zeilennummer] Bemerkung: Das im Speicher befindliche Programm wird beginnend mit der niedrigsten oder der angegebenen Zeilennummer aufgelistet. Die Anzahl der mit einer LIST- Anweisung ausgegebenen Zei- len beträgt vorläufig 10, sie kann auch mit dem LINES-Kom- mando verändert werden.
  • Seite 273 4.1. BASIC 4.1.4. BASIC-Anweisungen REM, NEW, INPUT, LINES Die Anweisungen REM, NEW, INPUT und LINES In diesem Kapitel lernen wir weitere Anweisungen kennen. Danach sind Sie in der Lage, kleine zuverlässige Rechenprogramme selbst zu erstellen. Die ersten drei Anweisungen sind schnell erklärt. Die Anweisung REM ist abgeleitet vom englischen Wort "remark", das übersetzt Bemerkung heißt.
  • Seite 274 4.1. BASIC Die Anweisung INPUT unterbricht den Ablauf des Programms und wartet auf eine Eingabe. Geben wir z. B. ein: Mit dem Druck auf die ENTER-Taste wird die Eingabe beendet und der Computer legt den eingegebenen Wert (3) unter der hinter INPUT stehenden Variablen (ZAHL) ab.
  • Seite 275 4.1. BASIC Probieren Sie das verbesserte Programm aus! Analysieren wir wiederholend die Zeile 60. Der in Anführungszeichen stehende String U= wird unverändert ausgegeben. Das darauf folgende Semikolon bewirkt in Verbindung mit der PRINT-Anweisung, dass die nächste PRINT-Anweisung auf dem Bildschirm unmittelbar folgt. U ist eine Variable, also wird der Wert von U ausgegeben.
  • Seite 276 4.1. BASIC ● Anweisung: INPUT Format: INPUT ["String";] Variable [,Variable . . .] Bemerkung: INPUT bewirkt eine Anforderung von Daten für das Programm. Es ist möglich, Werte mehreren, durch Komma voneinander getrennten Variablen mit einer INPUT-Anweisung zuzuordnen. Wird in die INPUT-Anweisung eine Stringkonstante aufgenom- men, so wird diese bei der Eingabeaufforderung mit ausgege- ben;...
  • Seite 277 4.1. BASIC 4.1.5. For-Schleifen (BASIC-Anweisungen FOR...TO...STEP...NEXT) Die FOR-NEXT-Schleife und ein neuer PRINT-Kniff Es besteht in der Praxis oft die Notwendigkeit, Programmteile mehrfach, z. B. für die Ermittlung mehrerer Funktionswerte, abzuarbeiten. Das würde sich auf Grund der uns bisher bekannten Anweisungen sehr mühsam gestalten. Wir müßten mit der INPUT-Anweisung Wert für Wert eingeben und das Programm immer neu ablaufen lassen.
  • Seite 278 4.1. BASIC Starten Sie das Programm! Sie sehen, das Komma tabelliert die Ausgaben in drei Bereiche zu je 13 Zeichen. Wir können auch zwei oder mehrere Schleifen ineinander verschachteln. Probie- ren Sie folgendes Beispiel aus: 10 FOR A=1 TO 3 20 FOR I=1 TO 4 30 PRINT "AEUSSERE SCHLEIFE";A;...
  • Seite 279 4.1. BASIC Das Anweisungswort PRINT kann auch durch ein "?" eingegeben werden. Dieses wird beim nächsten Auflisten des Programms durch "PRINT" ersetzt. Beispiel: PRINT 1; -2; "D"; "3" 10 INPUT X 20 PRINT "DAS QUADRAT VON";X; "IST"; X*X ● Anweisung: FOR … TO … STEP … NEXT … Format: FOR Variable = Anfangswert TO Endwert STEP Schrittweite Bemerkung: Die Anweisung FOR …...
  • Seite 280 4.1. BASIC Übungen 1. Geben Sie ein: 10 FOR I=0 TO 25 20 PRINT I 30 NEXT Wie würde sich die Ausgabe verändern, wenn Sie die Programmzeile 20 mit einem "," oder einem ";" beenden würden? Überprüfen Sie Ihre Antwort am KC 85. 2.
  • Seite 281 4.1. BASIC 4.1.6. Vergleiche und BASIC-Anweisungen IF, THEN, ELSE, END Die IF-Anweisung und die logischen Operatoren Der KC 85 kann für Sie auch Entscheidungen treffen. Selbstverständlich müssen Sie ihm dazu erst die Entscheidungskriterien, d. h. in welchem Fall er was zu tun hat, mitteilen.
  • Seite 282 4.1. BASIC Tabelle 46: Logische Operatoren in BASIC Operator Übersetzung/Wahrheitskriterium UND / beide Bedingungen treffen gleichzeitig zu. ODER / mindestens eine von beiden Bedingungen trifft zu. NOT bezieht sich nur auf einen Ausdruck bzw. auf eine Bedin- gung, die Negation NOT ist genau dann wahr, wenn dieser Aus- druck falsch ist bzw.
  • Seite 283 4.1. BASIC Die Vergleichsoperatoren Der Interpreter verfügt über folgende Vergleichsoperatoren: = gleich < kleiner als > größer als <= kleiner oder gleich >= größer oder gleich <> ungleich Die einfache Handhabung dieser Vergleiche veranschaulichen wir uns am besten an einem Beispielprogramm. Dieses Programm bewertet den Benzinverbrauch eines PKW wie folgt: Benzinverbrauch / 100 km Bewertung...
  • Seite 284 4.1. BASIC Merke: ● Anweisung: IF, THEN oder IF, GOTO Anweisung THEN Anweisung Format: IF Ausdruck n ––––––––– : ELSE GOTO Bemerkung: IF ist eine bedingte Anweisung. Ist der Ausdruck wahr bzw. das Resultat des Ausdrucks nicht Null, so werden die Anweisungen THEN oder GOTO ausgeführt.
  • Seite 285 4.1. BASIC ● Die logischen oder Booleschen Operatoren AND, OR und NOT: Bei Verknüpfung der Ausdrücke A und B mit den Booleschen Operatoren ergeben sich neue Ausdrücke mit folgenden Wahrheitswerten (wahr = 1; falsch = 0): NOT A A OR B A AND B Übungen Formen Sie das Benzinverbrauchsprogramm analog dem Noten-Programm...
  • Seite 286 4.1. BASIC 4.1.7. Mathematische Funktionen und DEF, RND, RANDOMIZE Die Operatoren in ihrer Hierarchie Als letzte Operation sei die Potenzierung a = b , in der Computerschreibweise A = A ^ C, genannt. Damit haben wir alle Operatoren unseres BASIC-Interpreters kennengelernt.
  • Seite 287 4.1. BASIC Aufbau als Gleichung: Funktionswert Funktion Argument Eine Funktion f ist die Zuordnungsvorschrift, die dem Argument x eindeutig einen Funktionswert y zuordnet. √ Am Beispiel: y = f (x) = √ f (4) = Argument Funktionswert Dabei sind insbesondere immer Beschränkungen des Definitionsbereiches (Bereich der Argumente) und des Wertebereichs (Bereich der Funktionswerte) zu beachten.
  • Seite 288 4.1. BASIC Das Argument der Funktion muss stets in Klammern geschrieben werden. Testen Sie nun die uns zur Verfügung stehenden Funktionen! Beginnen Sie mit folgen- den einfachen Beispielen: PRINT SQR(81) oder 10 INPUT A 20 PRINT SQR(A) etc. Durch geeignete Kombinationen der Standardfunktionen können Sie alle geläufi- gen mathematischen Funktionen realisieren.
  • Seite 289 4.1. BASIC Zufallszahlenberechnung Die Funktion RND (X) liefert eine Zufallszahl im Bereich 0 ≤ RND (X) < 1 Für X > 0 erscheinen völlig zufällige Zahlen. Für X = 0 wird der Wert der letzten Zufallszahl noch einmal ausgegeben. Für X > 0 gibt es für jedes X eine bestimmte Zufallszahl. Außerdem wird der Zufallsgenerator neu initialisiert.
  • Seite 290 4.1. BASIC Merke: ● Stehen mehrere Operatoren in einem Ausdruck, so werden diese der Rei- henfolge nach, entsprechend der im Kapitel beschriebenen Hierarchie abge- arbeitet. ● Das BASIC des KC 85 verfügt über folgende mathematische Standardfunkti- onen: ABS, ATN, COS, EXP, INT, LN, SGN, SQR, TAN. Das Argument mit einer Funktion muss stets in Klammern stehen.
  • Seite 291 4.1. BASIC Übungen Warum hat unser Würfelspiel nach der zweiten Änderung keine 6 "gewür- felt"? Schreiben Sie ein Programm zur Berechnung der längeren Seite c aus den beiden kürzeren Seiten a und b eines rechtwinkligen Dreiecks ABC. (Es gilt der Satz des Pythagoras c² = a² + b² . (Lösung im Kapitel 4.1.24) Schreiben Sie ein Programm zur Berechnung der Lösungen x1 und x2 der gegebenen quadratischen Gleichung x²...
  • Seite 292 4.1. BASIC 4.1.8. EDIT, DELETE, KEY, KEYLIST, AUTO, RENUMBER) EDIT Die Anweisung EDIT wird uns in Zukunft eine große Hilfe bei der Korrektur von Programmen sein. Sie haben in Kapitel 4.1.3 erfahren, wie man fehlerhafte Pro- grammzeilen überschreiben kann bzw. durch Eingabe der Zeilennummer löscht. Mithilfe der Anweisung EDIT können wir nicht nur die gerade in der Eingabe befindliche Programmzeile, sondern auch bereits abgespeicherte Programmzei- len mithilfe der Tasten...
  • Seite 293 4.1. BASIC Alle Programmzeilen eines Programms von Zeile X bis Zeile Y löschen. Überzeu- gen Sie sich, indem Sie eingeben: DELETE 20,30 Mit LIST und RUN können Sie nun die Wirkung der Anweisung DELETE 20,30 kontrollieren. Funktionstastenbelegung Mithilfe der Funktionstasten können wir einzelne Anweisungen oder eine ganze Folge von Anweisungen mit einem Tastendruck eingeben und auch ausführen.
  • Seite 294 4.1. BASIC Das heißt, wir können diese durch Zeichen im KEY-Eingabemodus als Tastenbe- legung speichern und später durch Druck auf die entsprechende Funktionstaste ausführen. Die Summe aller Tastenbelegungen darf 143 Zeichen nicht überstei- gen. Mit der STOP-Taste wird während der Funktionstasteneingabe zwischen dem Editier- und dem Interpretiermodus umgeschaltet.
  • Seite 295 4.1. BASIC Zeilennummerierung Beim Programmieren ist es notwendig, vor jede Programmzeile eine Zeilennum- mer zu schreiben. Mit dem Kommando AUTO kann man den Computer dazu bringen, die Zeilennummerierung selbst durchzuführen, sodass nur noch die Anweisungen selbst eingegeben werden müssen. Der AUTO-Modus wird durch Betätigen der BRK-Taste beendet.
  • Seite 296 4.1. BASIC ● Anweisung: DELETE Format: DELETE Anfangszeile [, Endzeile] Bemerkung: Löschen aller Zeilen zwischen einschließlich Anfangs- und Endzeile Beispiel 1: DELETE 30 Beispiel 2: DELETE 30, 100 ● Anweisung: AUTO Format: AUTO [Zeilennummer [, Schrittgröße]] Bemerkung: AUTO erzeugt automatisch nach jedem Betätigen der ENTER- Taste eine Zeilennummer.
  • Seite 297 4.1. BASIC ● Anweisung: KEYLIST Format: KEYLIST Bemerkung: Mithilfe dieser Anweisung kann man die Funktionstastenbe- legung auflisten. Beispiel: KEYLIST F1 : RUN↵ F2 : WINDOW:COLOR7,1:CLS:LIST↵ F3 : EDIT F4 : INPUT F5 : FOR I= F6 : NEXT F7 : CLS F8 : GOTO F9 : GOSUB FA : RETURN...
  • Seite 298 4.1. BASIC 4.1.9. Retten und Laden (DEVICE, CLOAD, CSAVE, BLOAD) Speichermedien (Tonband, Diskette, USB) So, wie wir in Maschinensprache geschriebene Programme vom Recorder in den Computer laden, können wir auch in BASIC geschriebene Programme mithilfe des Interpreters durch die BASIC-Anweisung CLOAD in den Computer laden. Da wir nicht nur daran interessiert sind, im Handel erworbene Programme, son- dern auch selbst erstellte wiederholt zu nutzen, müssen wir diese vor dem Aus- schalten des Gerätes auf unseren Speicher, das Tonband, "retten"...
  • Seite 299 4.1. BASIC Nach dem Retten besteht die Möglichkeit, die Magnetbandaufzeichnung zu prü- fen. Dazu erfolgt nach Übernahme des letzten Blockes die Ausschrift: VERIFY ?(Y) Mit dieser Ausgabe ist die Aufnahme beendet und Sie können den Recorder aus- schalten. Wenn Sie die Überprüfung durchführen möchten, spulen Sie die Kas- sette auf den Programmanfang zurück, schalten den Recorder zur Wiedergabe ein und betätigen während des Pfeiftones die Taste "Y".
  • Seite 300 4.1. BASIC Schalten Sie nun den Recorder zur Wiedergabe ein. Sobald die Ansage beendet ist oder der pfeifende Vorton beginnt, drücken Sie auf die ENTER-Taste. Nun wird das Programm von der Kassette in den Computer geladen. Angezeigt wer- den wieder die Blocknummern. Bei fehlerhaftem Lesen eines Blockes erscheint ein "...
  • Seite 301 4.1. BASIC ● Anweisung: DEVICE Format: DEVICE [ Nummer ] Bemerkung: Wird keine Nummer angegeben, dann dient diese Anweisung zur Anzeige der möglichen und des aktuell eingestellten Devices. Mit Angabe einer gültigen Nummer, dann erfolgt der Wechsel zu diesem Device. Beispiel: Es soll ein BASIC-Programm von Kassette auf Diskette kopiert werden.
  • Seite 302 4.1. BASIC Hinweis: Die FILES-Anweisung ist bei Kassette im BASIC-Programm wenig sinnvoll, da hierzu die gesamte Kassette abgespielt werden muss. Bei DISK oder USB kann man sich mit dem Kommando FILES die vorhandenen Dateien anzeigen lassen. Die Auflistung vorhandener BASIC-Datenfelder *.TTT sollte also bei Kassette übersprungen werden.
  • Seite 303 4.1. BASIC ● Anweisung: BLOAD Format: BLOAD "NAME" Bemerkung: Die Anweisung ruft das Betriebssystemprogramm LOAD zum Einlesen von Maschinenprogrammen während der Arbeit des BASIC-Interpreters auf. Bei DEVICE=TAPE ist (wie bei frühe- ren BASIC-Versionen) der Dateiname nicht erforderlich, es wird die Datei eingelesen, welche vom Magnetband abgespielt wird. Für alle anderen Devices muss durch die Angabe des Datei- namens mitgeteilt werden, welche Datei einzulesen ist.
  • Seite 304 4.1. BASIC Merke: ● Retten eines BASIC-Programms: Programmanfang durch Zählerstand am Recorder merken oder durch akustisches Signal kennzeichnen Geben Sie ein: CSAVE "NAME" Schalten Sie den Recorder zur Aufnahme ein Drücken Sie die ENTER-Taste Bei DEVICE=DISK entfällt Schritt 1 und 3. ●...
  • Seite 305 4.1. BASIC 4.1.10. Farbe (Anweisungen PAPER, INK, COLOR) Mit dem KC 85 können Sie auf Ihrem Farbfernsehgerät 24 Farben darstellen. Das sind im einzelnen 8 Hintergrundfarben und 16 Vordergrundfarben. Unter den Vor- dergrundfarben verstehen wir die Farbe der Buchstaben bzw. bei der Grafik die Farbe der gezeichneten Linien und Punkte.
  • Seite 306 4.1. BASIC grundfarbcodes (0 bis 31). Dabei sind die Vordergrundfarben deutlich heller als die Hintergrundfarben. Im HRG-Modus gibt es dagegen nur 4 Vordergrund- und 4 Hintergrundfarben. Mit den drei Anweisungen PAPER (für die Hintergrundfarbe), INK (für die Vorder- grundfarbe) und COLOR (für Vorder- und Hintergrundfarbe) sowie den Farbcodes lassen sich umfangreiche Farbmöglichkeiten des KC 85 unkompliziert nutzen.
  • Seite 307 Grafik (PSET, PRESET, CIRCLE, LINE, PTEST) Punkte Der KC 85 bietet Ihnen einen für einen Kleincomputer beispielhaften Grafik-Kom- fort. Wir sind in der Lage, das Fernsehbild in 320 Punkte (in der Waagerechten) mal 256 Punkten (in der Senkrechten) aufzulösen. Damit stehen uns insgesamt 81.920 Graphikpunkte zur Verfügung.
  • Seite 308 4.1. BASIC Bild 31: Vollgrafik: Das Anzeigebild besteht aus 320x256 Bildpunkten Nun schauen wir uns noch ein kleines mathematisches Beispiel an. Folgendes Beispiel zeichnet die Sinusfunktion im Bereich von 0 bis 2PI. 10 PAPER 1: CLS 20 FOR X=0 TO 319 30 Y=128+50*SIN(X/159.5*PI) 40 PSET X, Y, 7 50 NEXT...
  • Seite 309 4.1. BASIC Linien und Kreise Wir können jedoch nicht nur einige Punkte setzten oder löschen. Der BASIC-In- terpreter verfügt auch über Grafikanweisungen, die es ermöglichen, unkompliziert geometrische Grundfiguren zu zeichnen. Die Anweisung CIRCLE in der Form CIRCLE x-Koordinate, y-Koordinate, Radius, Farbcode zeichnet auf dem Bildschirm einen Kreis mit dem angegebenen Radius, um den Mittelpunkt der angegebenen Koordinaten x und y in der durch den Farbcode festgelegten Vordergrundfarbe.
  • Seite 310 4.1. BASIC Probieren Sie folgendes Beispiel: 10 CLS: PSET 50, 100, 7 20 PRINT PTEST (50) Nach Ausführung des Programms werden Sie auf dem Bildschirm, neben dem in Zeile 10 festgelegten Punkt, als Ergebnis der Anweisung in Zeile 20, die Zahl 1 ablesen können.
  • Seite 311 4.1. BASIC Möchten Sie Ihren Sonnenauf- oder Untergang beenden, so drücken Sie die BRK-Taste ! Das Programm wird unterbrochen und der Computer meldet sich mit dem Cursor eingabebereit. Löschen Sie das Programm bitte noch nicht, da wir es im nächsten Abschnitt noch einmal verwenden werden! Selbstverständlich kön- nen Sie es auch auf Magnetband speichern.
  • Seite 312 4.1. BASIC Anweisung: PSET Format: PSET x, y [ ,f ] Bemerkung: Die Anweisung setzt einen Punkt auf den Bildschirm durch Angabe der Parameter x = Horizontalkoordinate 0 ≤ x ≤ 319 y = Vertikalkoordinate 0 ≤ y ≤ 255 und f = Bildpunktfarbe 0 ≤...
  • Seite 313 4.1. BASIC ● Anweisung: CIRCLE Format: CIRCLE x , r [, f] Bemerkung: Die Anweisung zeichnet einen Kreis mit den Mittelpunktkoordi- naten x und dem Radius r auf dem Bildschirm. Die Farbe der Kreislinie wird durch den Vordergrundfarbcode f (0 ≤ X ≤ 31) festgelegt. Wird der Parameter f weggelassen, so erscheint die Kreislinie in der zuletzt gewählten Grafikfarbe.
  • Seite 314 4.1. BASIC Das folgende Beispielprogramm kann im HRG- und LoRes-Mode abgearbei- tet werden. Dabei ist auf die Anzeige zu achten und der ermittelte Wert für die beiden Bildpunkt zu erklären. Beispiel: 10 PAPER 1:CLS 20 FOR R=1 TO 100 30 CIRCLE 159, 127, R, 16 * RND(1) 40 NEXT 50 PRESET 0, 56 55 A=PTEST(70)
  • Seite 315 4.1. BASIC 4.1.12. Bildgestaltung (WINDOW, LOCATE, WIDTH) Fenster Vielleicht haben Sie es schon einmal ausgezählt; unser Bildschirm gliedert sich in 30 Schriftzeilen mit je 40 Zeichen. Dies ist das "Standard-Format", welches stets nach dem Einschalten des KC 85/3 eingestellt ist. Darüber hinaus können wir aber noch die verschiedensten Bildausschnitte, wir sagen in Zukunft Fenster, einstellen.
  • Seite 316 4.1. BASIC Bild 32: Einteilung des Bildschirms in Zeichenzeilen und Zeichenspalten Platzieren und Formatieren Unabhängig vom eingestellten Fenster können wir mit der PRINT-Funktion AT unsere Ausgaben an jeder beliebigen Stelle des Bildschirms platzieren. Dabei ist folgende Form zu beachten: PRINT AT(Zeile, Spalte);Ausdruck Möchten wir also z.
  • Seite 317 4.1. BASIC Es ist jedoch stets darauf zu achten, dass die eingefügte COLOR-Anweisung beide Parameter enthält. In gleicher Weise können auch an Stelle der COLOR- Anweisung die Farbanweisung INK und PAPER eingefügt werden. Um unsere Ergebnisse in leicht überschaubarer, tabellierter Form darstellen zu können, stehen uns darüber hinaus die Formatierungsfunktionen TAB und SPC zur Verfügung.
  • Seite 318 4.1. BASIC 10 PRINT "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Lassen sie das Programm abarbeiten. Geben Sie weiter ein: WIDTH 16 Beim erneuten Abarbeiten des Programms erkennen Sie nun deutlich, dass die Länge einer Ausgabezeile auf 16 Zeichen begrenzt wurde. Gleiches gilt auch für die Ausgabe auf Drucker. Merke: ●...
  • Seite 319 4.1. BASIC ● Funktion: Format: PRINT TAB(i); Ausdruck PRINT SPC(i); Ausdruck Bemerkung: Die Ausgabefunktionen TAB und SPC platzieren eine Ausgabe in einer bestimmten Zeichenspalte. Das Argument i von TAB gibt den Abstand der Ausgabe zum linken Fensterrand in Zei- chenfeldern an. Das Argument i von SPC gibt die Anzahl der zu erzeugenden Leerzeichen zwischen der Ausgabe und dem lin- ken Fensterrand bzw.
  • Seite 320 4.1. BASIC ● Funktion: CSRLIN Format: CSRLIN (n) Bemerkung: CSRLIN (n) liefert als Funktionswert die Nummer der Zeile, in welcher sich der Cursor befindet. n = 0 - Zeilennummer bezüglich des maximalen Fensters n > 0 - Zeilennummer bezüglich des aktuellen Fensters n <...
  • Seite 321 4.1. BASIC 4.1.13. Zeichenvorrat (Funktionen ASC, CHR$) Die Funktionen ASC und CHR$ Alle Zeichen, wie Buchstaben, Zahlen, Satzzeichen oder Steuerzeichen (z. B. Cursor links), die wir über die Tastatur eingeben können, sind im Computer unter einem bestimmten Code abgelegt. Die Codes sind Zahlen zwischen 0 und 255. Wollen Sie nun wissen, mit welchen Code der Buchstabe Z gespeichert wird, so bedienen Sie sich der Funktion ASC: PRINT ASC("Z")
  • Seite 322 4.1. BASIC Merke: ● Funktion: Format: ASC(String) Bemerkung: Die Funktion ASC ermittelt den ASCII-Code des ersten Zei- chens des Strings. Beispiel: PRINT ASC("ZIGARRE") ● Funktion: CHR$ Format: CHR$(Zahl) Bemerkung: Die Funktion CHR$ weist der Zahl (ASCII-Code) das entspre- chende Zeichen zu. Beispiel: PRINT CHR$(77) Übung...
  • Seite 323 4.1. BASIC 4.1.14. String-Operationen, String-Funktionen Zur Wiederholung Wir wissen, dass unser Computer Zeichenketten, sogenannte Strings, verarbei- tet. Diese Strings können wir auch unter Stringvariablen, die am Ende durch ein $ zu kennzeichnen sind, ablegen. Es gibt mehrere Möglichkeiten, Strings in einem Programm festzulegen.
  • Seite 324 4.1. BASIC Testen Sie folgendes Programm: 10 A$="22" 20 B$="33" 40 PRINT A$+B$ 50 PRINT VAL(A$) * VAL(B$) STR$ (Zahl) wandelt die Zahl zu einem String (die Ziffernfolge, die die Zahl dar- stellt) um. Beispiel: PRINT STR$(5672) Die folgenden Stringfunktionen bilden einen neuen String, der im Falle: LEFT$ (String, x) aus x-Zeichen von links besteht ;...
  • Seite 325 4.1. BASIC Eingabe mit INKEY$ Zur Vereinfachung der Programmbedienung sowie zur Durchführung von Reakti- onstest ist die Funktion INKEY$ gleichermaßen gut geeignet. INKEY$ holt während des Programmablaufs eine Information von der Tastatur, ohne dass das Programm angehalten oder die ENTER-Taste gedrückt werden muss.
  • Seite 326 4.1. BASIC 4.1.15. Anweisung PAUSE Die Anweisung PAUSE Sollen Computerbilder eine bestimmte oder eine beliebige Zeit während des Pro- grammablaufs erhalten bleiben, so können wir die Anweisung PAUSE sehr vor- teilhaft einsetzen. 10 CLS: PRINT "GEDAECHTNISTRAINING" 20 PRINT "BITTE ZIFFERNFOLGE MERKEN UND BEI" 30 PRINT "ABFRAGE '?' EINGEBEN."...
  • Seite 327 4.1. BASIC 4.1.16. Unterprogrammtechnik (Anweisungen GOSUB, RETURN) Wird ein bestimmter Programmabschnitt mehrmals im Programm benötigt, so ist es effektiv, diesen als Unterprogramm zu schreiben. Mit der Anweisung GOSUB n wird zu dem auf der Programmzeile n beginnenden Unterprogramm gesprungen und dieses abgearbeitet. Nach der Abarbeitung des Unterpro- gramms, das immer mit der Anweisung RETURN abzuschließen ist, "springt"...
  • Seite 328 4.1. BASIC 300 E=(X+365)/52 310 RETURN 4.1.17. Mehrfache Programmverzweigungen ON…GOTO… Haben Sie in einem Programm mehr als zwei Fälle zu unterscheiden, so können Sie die Anweisung ON GOTO sehr vorteilhaft verwenden. Die Anweisung ist wie folgt aufgebaut: ON i GOTO Liste von Zeilennummern Der Sprungbefehl verzweigt im konkreten Fall zu der Zeilennummer, die als i-te in der Liste steht.
  • Seite 329 4.1. BASIC Merke: ● Anweisung: ON…GOTO… Format: ON i GOTO Liste von Zeilennummern ● Anweisung: ON…GOSUB… Format: ON i GOSUB Liste von Zeilennummern Bemerkung: Die Anweisungen verzweigen das Programm zu der Zeilennum- mer, die als i-te in der Liste steht. Im Fall von ON…GOSUB… sind die Zeilennummern die Adresse der aufzurufenden Unter- programme.
  • Seite 330 4.1. BASIC 300 PRINT "EIN NEUES SPIEL? (J/N)" 310 X$=INKEY$: IF X$="" GOTO310 320 IF X$="N" THEN WINDOW:CLS:END 330 IF X$ <>"J" GOTO300 340 C=0:S=0:S$=" ":X$=" " 350 GOTO20 360 PRINT 370 PRINT "GRATULIERE! DU HAST GEWONNEN." 380 SP=1:CP=0 390 GOSUB510 400 RETURN 410 PRINT 420 PRINT "PECH FUER DICH! ICH HABE GEWONNEN."...
  • Seite 331 4.1. BASIC 4.1.18. Eingabe von mehreren Daten DATA, READ und RESTORE Bisher haben wir zwei Möglichkeiten kennen gelernt, einer Variablen einen Wert zuzuweisen. Einmal können wir dies durch eine direkte Wertzuweisung (z. B. V=1.2), zum anderen haben wir die Möglichkeit, die Wertzuweisung mithilfe des INPUT-Befehls zu realisieren.
  • Seite 332 4.1. BASIC Dies können Sie ganz einfach mit der Anweisung RESTORE bewerkstelligen. In unserem erwähnten Beispiel würden Sie dann folgende Programmzeile einfügen: 95 RESTORE Eine einfache Möglichkeit der geschilderten Programmerweiterung könnte dann wie folgt aussehen: 95 RESTORE 100 FOR I=1 TO 6 110 READ A 120 PRINT "A HALBE HAT JETZT DEN WERT";...
  • Seite 333 4.1. BASIC Merke: ● Anweisung: DATA Format: DATA Konstantenliste Bemerkung: DATA kennzeichnet die Liste von numerischen und Stringkon- stanten, welche durch READ-Anweisung den einzelnen Varia- blen zugeordnet werden. Die Listenelemente werden durch Komma voneinander getrennt. Beginnt eine Stringkonstante der Liste mit einem oder mehreren Leerzeichen, so ist diese Konstante in Anführungszeichen zu setzen.
  • Seite 334 4.1. BASIC 4.1.19. Die letzten Tricks bei Programmschwierigkeiten Sicher ist es Ihnen schon öfter passiert, dass ein Programm bei seinem ersten Lauf Fehler aufwies. Nicht immer waren es nur Schreibfehler. Diese grundlegen- den Fehler resultieren meistens aus einer fehlerhaften Problemanalyse oder einer nicht korrekten Umsetzung Ihrer Ideen in BASIC.
  • Seite 335 4.1. BASIC Bild 33: Programmablaufplan zum Erstellen eines lauffähigen Programms...
  • Seite 336 4.1. BASIC In einem PAP symbolisieren Marken, z. B. den Anfang oder das Ende eines Programms eine oder mehrere Anweisungen eine antwortbedingte Verzweigung des Programms Anschließend schauen wir uns unser ursprüngliches Noten-Bewertungs-Pro- gramm aus Kapitel 4.1.8 im PAP an. Bild 34: Symbolische Darstellung Noten-Bewertungsprogramm...
  • Seite 337 4.1. BASIC Das Finden von Fehlern Trotz aller Bemühungen lassen sich Fehler oft nicht vermeiden. Deshalb wollen wir jetzt auf das kleine Anweisungskästchen unseres ersten PAP, das da "Fehler finden" heißt, eingehen. Den ersten Hinweis auf unseren Fehler bekommen wir durch die Fehlermeldung bei Abbruch des Programms.
  • Seite 338 4.1. BASIC Merke: ● Anweisung: TRON Format: TRON Bemerkung: TRON bewirkt, dass bei Abarbeitung eines Programms die- Nummern der Zeilen in der Reihenfolge ihrer Abarbeitung zur Anzeige gebracht werden. ● Anweisung: TROFF Format: TRON Bemerkung: TROFF schaltet diesen Anzeigemodus wieder aus. Beispiel: Siehe dieses Kapitel ●...
  • Seite 339 4.1. BASIC 4.1.20. Musik (Anweisungen SOUND und BEEP) Tonausgabe Mit dem KC 85 können Sie Töne monofon über das Fernsehgerät bei FBAS- oder RGB-Anschluss zu Gehör bringen. Dabei ist die Lautstärke in 16 Stufen regelbar (Schrittweite 2). Darüber hinaus erfolgt die Tonausgabe auch stereofon mittels einer Stereoanlage oder eines anderen geeigneten Musikwiedergabegerätes.
  • Seite 340 4.1. BASIC Beachten Sie folgende Sonderfälle: • werden l und t nicht angegeben, so bleiben die vorherigen Werte erhalten; • ist die Lautstärke = 0, so erfolgt keine Tonausgabe über das Fernsehgerät, jedoch weiterhin über die Diodenbuchse; • sind z = 0 oder z = 0 , so wird kein Ton ausgegeben;...
  • Seite 341 4.1. BASIC Merke: ● Anweisung: BEEP Format: BEEP [n] Bemerkung: Mithilfe der Anweisung BEEP werden akustische Signale mit festgelegter Länge erzeugt. Der Parameter n bestimmt die Anzahl der Signale (0 ≤ n ≤ 255) Entfällt der Parameter, so gilt n = 1. ⁝...
  • Seite 342 4.1. BASIC 4.1.21. Variablenfelder Dimensionierung Bisher haben wir Variablen der Form X, H3, J$ oder R benutzt. Treten jedoch größere Variablenmengen auf, so bedient man sich in der Mathematik indizierter Variablen, also solcher Variablen, die sich durch Indizes (kleine, am Fuß der Vari- ablen befindliche Zahlen, wie z.
  • Seite 343 4.1. BASIC Sie sehen, lediglich die Variable X(1,2) ist ungleich 0, da ihr in der Zeile 20 unse- res Programms der Wert 8 zugewiesen wurde. So wie wir bisher numerische Variablenfelder betrachtet haben, können wir selbstverständlich auch Stringvaria- blenfelder anlegen: Das nächste Programm demonstriert am Beispiel eines eindi- mensionalen, aus 12 Elementen bestehenden Stringvariablenfeldes, einfache Möglichkeiten zur effektiven Nutzung von Variablenfeldern.
  • Seite 344 4.1. BASIC Insbesondere bei der Arbeit mit Variablenfeldern wird der vorhandene Speicher- platz schnell überschritten. Dabei wird für numerische Variablen der Speicherbe- reich nur durch die verfügbare Arbeitsspeicherkapazität begrenzt. Hier hilft dann nur noch eine Systemerweiterung durch RAM-Module. Für Stringvariablen ist nach dem Start des BASIC-Interpreters ein Speicherbe- reich von 256 Bytes reserviert.
  • Seite 345 4.1. BASIC 4.1.22. Innenleben des Computers Wenn wir uns mit dem Innenleben des Computers etwas vertraut machen wollen, müssen wir uns darüber im klaren sein, dass wir bis jetzt bei unserer BASIC-Pro- grammierung noch gar nicht direkt mit dem "Gehirn" des Computers, dem U880D gesprochen haben.
  • Seite 346 4.1. BASIC 10 A$="0123456789ABCDEF" 20 Z$="" 30 INPUT" DEZIMALZAHL ?";D 40 R=D-16*INT(D/16) 50 Z$=MID$(A$,R+1,1)+Z$ 60 IFD=0THEN90 70 D=INT(D/16) 80 GOTO 40 90 PRINT"HEXADEZIMALZAHL :";RIGHT$ (Z$,LEN(Z$)-1) 100 GOTO 20 10 INPUT"HEXADEZIMALZAHL ?";Z$ 20 L=LEN(Z$) 30 D=0 40 FOR I=1 TO L 50 T$=MID$(Z$,I,1) 60 IFT$>="A"...
  • Seite 347 4.1. BASIC Speicherverwaltung Die Speicherverwaltung des Computers wird in diesem Abschnitt der Einfachheit halber am Beispiel des KC 85/3 erläutert (für den KC 85/4-5 siehe Bild 24 auf Seite 122). Der U880D kann direkt einen Speicherbereich von 64 KByte adressieren. Die 16 KByte ROM und der 32 KByte RAM der Grundausstattung sind dabei wie folgt verteilt: Speicheradressen...
  • Seite 348 4.1. BASIC Die nicht belegten Speicheradressen sind für mögliche Speichererweiterungen vorgesehen. Diese, wie auch die im Grundgeräte bereits enthaltenen Speicherblöcke, können durch die Anweisung SWITCH m, k zu- oder abgeschaltet und schreibgeschützt werden. Die Parameter m (Steck- platzadresse) und k (Steuerbyte) sind, wie im Kapitel 1.5.5. ab Seite 64 beschrie- ben, zu bilden und in dezimaler Form durch Komma voneinander getrennt ein- zugeben.
  • Seite 349 4.1. BASIC als auch die Speicherinhalte sind dabei in gewohnter dezimaler Schreibweise ein- zugeben bzw. werden in dieser ausgegeben. Mithilfe dieser Anweisungen kann man somit kleine Maschinenprogramme vom BASIC-Interpreter aus in den dafür geeigneten Speicherbereich schreiben. Nicht geeignet ist der Bildwiederholspeicherblock, da dieser bei der Arbeit des BASIC-Interpreters abgeschaltet wird.
  • Seite 350 4.1. BASIC Adresse Anweisung Bemerkung 0000 CD 6F C9 START: CALL CPRVL3 ; BASIC-UP zur Parameter- ; übergabe in Register DE 0003 INC DE ; Von BASIC übergebene ; Parameter 0004 LD A,D ; Reg. A, B –Funktionswert- 0005 LD B,E ;...
  • Seite 351 4.1. BASIC schirmausschriften (Text und/oder Grafik), muss der IRM ebenfalls zuge- schaltet werden. • Vor der Rückkehr ins BASIC muss der IRM wieder abgeschaltet werden. Die folgende Befehlsfolge realisiert das Ein- und Ausschalten des IRM mithilfe spezieller Unterprogramme des Betriebssystems, die außerdem den STACK des BASIC-Interpreters verlegen und den Inhalt des BC-Registers zerstören.
  • Seite 352 4.1. BASIC Es erhöht den eingegeben Parameter um 1 (INC DE) und gibt den Wert als Funk- tionswert zurück. Adresse Anweisung Bemerkung BE00 INC DE ; vom BASIC übergebener ; Parameter wird um 1 erhöht BE01 ; Rückkehr zum ; Rahmenprogramm Die Eingabe des Rahmenprogramms sowie des Maschinenunterprogramms kann vom Betriebssystem-Niveau aus mit MODIFY erfolgen.
  • Seite 353 4.1. BASIC Merke: ● Anweisung: SWITCH Format: SWITCH m, k Bemerkung: Die BASIC-Anweisung SWITCH ermöglicht das Schalten von Modulen auch innerhalb eines BASIC-Programms. In folgenden Angaben unterscheidet sich die BASIC-SWITCH-Anweisung von der CAOS-SWITCH-Anweisung (vgl. Seite 71) CAOS-Anweisung BASIC-Anweisung SWITCH - (%) Promptzeichen des Sys- - (>) Promptzeichen von tems BASIC...
  • Seite 354 4.1. BASIC ● Anweisung: CLEAR Format: CLEAR [Ausdruck [, Ausdruck]] Bemerkung: CLEAR löscht den Variablenspeicher. Zusätzlich wird mit dem Wert des ersten Ausdrucks festgelegt, wie viel Speicherplätze für Strings reserviert werden sollen. Mit dem zweiten Ausdruck kann die obere Grenze des zugewiesenen RAM-Bereiches neu bestimmt werden.
  • Seite 355 4.1. BASIC ● Funktion: VPEEK Format: VPEEK (Adresse) Bemerkung: VPEEK gewährleistet das Lesen des Inhaltes einer Speicher- zelle im Bildwiederholspeicher ● Anweisung: VPOKE Format: VPOKE Adresse, Wert Bemerkung: Die Anweisung realisiert das Beschreiben einer Speicherzelle im Bildwiederholspeicher. VPEEK und VPOKE sind erforderlich, um Speicherzellen im Bildwiederholspeicher zu lesen bzw.
  • Seite 356 4.1. BASIC 4.1.23. Arbeit mit der Peripherie Zusatzgeräte und BASIC Mit BASIC-Programmen können wir mit unserem KC 85 auch Zusatzgeräte, die Peripherie, ansteuern. Eine Peripherie erhöht die Anwendungsbreite und den Wert des Computersys- tems enorm. So besitzen Sie z. B. mit einem anschließbaren Drucker und dem KC 85 eine elektronische Schreibmaschine.
  • Seite 357 4.1. BASIC erfolgen. Ist die Datenübertragung beendet, wird der Kanal mit CLOSEr#n wieder geschlossen. Betrachten Sie bitte noch das Beispiel im Abschnitt “Merke“ dieses Kapitels. Das in den Anweisungen enthaltene, zur Gerätezuweisung bestimmte n ist wie folgt festgelegt: Bildschirm und Tastatur Kassettenrecorder bzw.
  • Seite 358 4.1. BASIC ● Anweisung: CLOSE Format: CLOSEr#n Bemerkung: CLOSE schließt den Kanal n (nach Dateneingabe r=I oder nach Datenausgabe r=O). CLOSE führt der BASIC-Interpreter auto- matisch bei Programmende oder -abbruch (Taste oder ERROR) aus. Beispiel: siehe Anweisungen PRINT#, INPUT# ● Anweisung: PRINT#, INPUT# Format: PRINT#n Daten...
  • Seite 359 4.1. BASIC ● Anweisung: LIST#, LOAD# Format: LIST#n "Programmname" LOAD#n "Programmname" Bemerkung: LIST# ermöglicht die Ausgabe eines Programmlistings (ASCII- Zeichen für ASCII-Zeichen) auf ein durch n wählbares Periphe- riegerät. Mit LOAD# können die mit LIST# ausgegebenen Programme wieder eingegeben werden. Durch n wird wiederum das Peri- pheriegerät festgelegt.
  • Seite 360 4.1. BASIC ● Anweisung: WAIT Format: WAIT i, j, (k) Bemerkung: WAIT hält den Programmablauf in einer Warteschleife bis am Port i das erwartete Bitmuster erscheint. Der eingelesene Wert wird exklusiv-oder-verknüpft mit k und anschließend und-ver- knüpft mit j. Ist das Resultat 0, bleibt das Programm in der War- teschleife, ansonsten wird es fortgesetzt.
  • Seite 361 4.1. BASIC Ablauf Ihres BASIC-Programms steuern. Damit die Spielhebelbetätigung richtig ausgewertet werden kann, muss der Spielhebel so gehalten werden, dass die fla- che schmale Taste, die Aktionstaste, vom Körper weg zeigt. ● Funktion: JOYST Format: JOYST(1) Bemerkung: Der angegebene Parameter (1) ist dabei ein ganzzahliger Wert für die Nummer des verwendeten Spielhebels.
  • Seite 362 4.1. BASIC 4.1.24. Lösungen zu den BASIC-Übungen In diesem Kapitel wird jeweils eine Lösung der in den Übungen zur Aufgabe gestellten BASIC-Programmen vorgestellt. Sollten Sie ein anderes Programm als Lösung erarbeitet haben, welches die Aufgabe ebenfalls erfüllt, so ist dieses genauso richtig wie die hier aufgeführten Programme.
  • Seite 363 4.1. BASIC Kapitel 4.1.7 Übung 3 10 ! QUADRATISCHE GLEICHUNG 20 INPUT" P,Q:";P,Q 30 S=-P/2 40 W=S*S-Q 50 IF W<0 THEN GOTO 100 60 W=SQR(W) 70 X1=S+W: X2=S-W 80 PRINT" X1=";X1 90 PRINT" X2=";X2:GOTO 110 100 PRINT"GLEICHUNG IM REELLEN ZAHLENBEREICH NICHT LOES- BAR"...
  • Seite 364 4.1. BASIC 4.1.25. CAOS-Kommando BSAVE Im CAOS-Menü (USER-ROM) gibt es seit CAOS 4.7 das Menüwort BSAVE. Die- ses dient zum Abspeichern eines BASIC-Programmes als selbststartendes Maschinencode-Programm. Voraussetzung dafür ist ein vorher mit BASIC erstell- tes oder geladenes BASIC-Programm im Arbeitsspeicher des Computers. Aufruf: %BSAVE Zunächst wird geprüft, ob BASIC initialisiert ist und sich ein Programm im Arbeits- speicher befindet.
  • Seite 365 4.1. BASIC Darstellung“ um. Jedes im Text gefundene reservierte Wort wird dabei in ein spe- zielles Byte größer 7FH umgewandelt, das sogenannte Token. Die Bedeutung der Token unterscheidet sich von Rechner zu Rechner. Siehe dazu auch [58]. Für den KC 85/5 gilt die folgende Übersicht. Tabelle 50: Übersicht der BASIC-Token LIST LOAD...
  • Seite 366 4.1. BASIC 4.1.27. BASIC-Arbeitszellen In der folgenden Übersicht sind die BASIC-Arbeitszellen (Workspace) und deren Bedeutung beschrieben. Diese Arbeitszellen sind bei allen CAOS-Versionen identisch, da der Inhalt des BASIC-ROM immer unverändert geblieben ist. Die fol- gende Übersicht ist dem Quelltext des BASIC-Interpreters entnommen und ähn- lich auch in [57] enthalten.
  • Seite 367 4.1. BASIC Adr. Länge Inhalt Beschreibung 0354H 2 00 00 (DISTAN) 0356H 2 65 04 RAM-Mindestgröße (PRAM+100) 0358H 2 FE FF Aktuelle Zeilennummer (65534) 035AH 3 00 00 C9 WINJP 035DH 1 DATBYT (Kopierschutz), wenn Zelle <> 0 DOKE 861,0 hebt Kopierschutz auf 035EH 1 DATFLG (List- und Editierschutz) wenn Zelle <>...
  • Seite 368 4.1. BASIC Adr. Länge Inhalt Beschreibung 03DFH 2 Adresse des FN-Statements 03E1H 4 Arithmetik-Register 0 03E5H 4 Arithmetik-Register 1 03E9H 1 Vorzeichen der Operation (SGN) 03EAH 13 Druckpuffer 03F7H 4 Arithmetik-Register 2 03FBH 1 Listen-Flag (Status) 0 = Grundliste; 1 = Erweiterung 03FCH 1 Erweiterungsflag 0 = Erweiterung nicht vorhanden 03FDH 1...
  • Seite 369 4.1. BASIC 4.1.28. BASIC-Übersichten Die BASIC-Übersichten enthalten eine Kurzbeschreibung des HC-BASIC des KC 85/4. Sie dienen als Nachschlagewerk im täglichen Umgang mit dem Compu- ter und genügen dem Fachmann auch als Einstieg in die Spezifik dieses BASIC. Konstanten Der BASIC-lnterpreter verarbeitet Integerzahlen (vorzeichenbehaftete ganze Zah- len), reelle Zahlen (Gleitkomma-, Festkommazahlen) und Strings als Konstanten.
  • Seite 370 4.1. BASIC Die logischen Operatoren wirken bitweise auf 16-Bit-Integerzahlen im Bereich von -32768 bis +32767. Tabelle 52: Wahrheitswerte der logischen Operatoren NOT A A OR B A AND B Die Vergleichsoperatoren und die Addition als Verknüpfung sind auch auf Strings anwendbar.
  • Seite 371 4.1. BASIC HC-BASIC Bemerkung Syntax DATA Datenliste; mit READ zu lesen DATA Konstante[,Konstante,…] DEEK Lesen der Adressen i und i+1 I=DEEK(i) -32768 <= I <= 32767 DEF FN Definition einer Funktion DEF FNname(Parameter)=Ausdruck DELETE Programmzeilen a bis e löschen DELETE a,e DEVICE Speichergerät einstellen DEVICE [nr]...
  • Seite 372 4.1. BASIC HC-BASIC Bemerkung Syntax LOAD# Einlesen eines mit LIST# ausge- LOAD#n "Programmname" gebenen Programms LOCATE Platzieren des Cursors im aktuel- LOCATE z,s len Fenster Löschen des Programm- und Variablenspeichers NEXT Abschluss einer FOR-Programm- NEXT [Variable,Variable,…] schleife NULL Legt die Anzahl der auszugeben- NULL Zahl den Dummyzeichen am Ende einer Zeile fest...
  • Seite 373 4.1. BASIC HC-BASIC Bemerkung Syntax RESTORE DATA-Zeiger wird auf die ange- RESTORE [Zeilennummer] gebene oder die erste DATA- Zeile gesetzt RETURN Ende eines Unterprogramms RETURN Programmstart RUN [Zeilennummer] SOUND Tonausgabe SOUND z1,v1,z2,v2[,Is][,td] STOP Unterbrechen eines Programms STOP wirkt wie Taste <BRK> SWITCH Modul- und Speicherverwaltung;...
  • Seite 374 4.1. BASIC HC-BASIC Bemerkung LEFT$(A$,X) Liefert die ersten X Zeichen von A$; LEN(X$) Zeichenlänge des X$; MID$(A$,X,Y) Y Zeichen von A$, beginnend mit dem X-ten Zeichen; RIGHT$(A$,X) Liefert die letzten X Zeichen von A$; STRING$(N,A$) Vervielfacht Zeichenkettenausdrücke; STR$(X) Formt den Wert X in einen String um; VAL(A$) Numerischer Wert von A$;...
  • Seite 375 4.1. BASIC Funktion Berechnung SINUS HYPERBOLICUS SINH(X) = (EXP(X)-EXP(-X))/2 COSINUS HYPERBOLICUS COSH(X) = (EXP(X)+EXP(-X))/2 TANGENS HYPERBOLICUS TANH(X) = 1-EXP(-X)/(EXP(X)+EXP(-X))*2 COTANGENS HYPERBOLICUS COTH(X) = EXP(-X)/(EXP(X)-EXP(-X))*2+1 SEKANS HYPERBOLICUS SECH(X) = 2/(EXP(X)+EXP(-X)) COSEKANS HYPERBOLICUS CSCH(X) = 2/(EXP(X)-EXP(-X)) ARCUSSINUS HYPERBOLICUS ARSINH(X) = LN(X+SQR(X*X+1)) ARCUSCOSINUS HYPERBOLICUS ARCOSH(X) = LN(X+SQR(X*X-1)) ARCUSTANGENS HYPERBOLICUS ARTANH(X) = LN((1+X)/(1-X))/2...
  • Seite 376 4.1. BASIC Fehlermeldungen Nachdem ein Fehler aufgetreten ist, kehrt der BASIC-Interpreter auf die Kom- mandoebene zurück. Das Programm kann nicht mit einem CONT-Befehl fortgesetzt werden. Der Zusammenhang aller GOSUB- und FOR-Anweisungen wird erst bei einem erneu- ten Programmstart wieder hergestellt. Die Fehlermeldung hat folgendes Format: Direkte Betriebsart: ?XX ERROR...
  • Seite 377 Der Assembler ASM gestattet es dem Anwender, Programme in symbolischer Form auf dem Kleincomputer zu schreiben, d. h. durch Eingabe leicht zu merken- der Abkürzungen. Dadurch ist es möglich, ohne Kenntnis des eigentlichen binä- ren Formats des Maschinenbefehls Maschinenprogramme zu erstellen. Darüber hinaus brauchen auch die Werte von Speicher-Adressen nicht berücksichtigt zu...
  • Seite 378 4.2. Assembler ASM Befehl und den Operanden dieses Befehls auch eine Marke stehen und nach dem Befehl ggf. ein Kommentar zur Erläuterung. Der gesamte Quelltext wird vom Assembler in die eigentliche Maschinensprache (in binärer Form) des U880- bzw. Z80-Prozessors (CPU) übersetzt, wobei jedem Assemblerbefehl genau ein Maschinenbefehl entspricht.
  • Seite 379 4.2. Assembler ASM Beim Start von ASM mit dem gleichlautenden Menüwort erscheint unter der Titel- zeile eine Abfrage zur Festlegung des zu benutzenden Speichers: Top of Text: 0200 Festlegen der unteren RAM-Grenze für den Quelltext. End of Text: E000 Festlegen der oberen RAM-Grenze+1. Der Vorgabewert ist das Maximum, das mit dem momentanen Schaltzustand der Module bzw.
  • Seite 380 4.2. Assembler ASM 4.2.2. Das Assembler-Menü Beim Start des Assemblers bzw. bei Rückkehr aus dem Editor erscheint ein kur- zes Menü. Das komplette, lange Menü mit weiteren Menüpunkten kann durch das Menüwort *MENU angezeigt werden. In der Titelzeile wird in der Mitte das aktuell eingestellte DEVICE und bei Diskette zusätzlich das eingestellte Laufwerk mit USER-Bereich angezeigt.
  • Seite 381 4.2. Assembler ASM ASM-Kommando SAVE *SAVE Abspeichern des im Speicher befindlichen Quelltextes auf das aktuell eingestellte Speichergerät. Der letzte verwendete Dateiname wird wie- der vorgegeben, als Dateityp wird ASM vorgegeben. Dateiname und - Typ können aber überschrieben werden. Abgespeichert wird im CAOS- Format mit Vorblock, der den Dateinamen enthält.
  • Seite 382 4.2. Assembler ASM ASM-Kommando KEY *KEY [ n ] Ohne Parameter: KEYLIST (Aufruf Menükommandoroutine) n = 0 : Grundbelegung des F-Tastenspeichers herstellen 1 <= n <= F : wie %KEY (Aufruf Menükommandoroutine) n = D5 : Grundbelegung für D005-Tastatur herstellen Beim Kaltstart von ASM wird die Grundbelegung der KC-Tastatur initialisiert, dabei ist F1=ESC, F2=TAB und F3=weitersuchen für Find-Funktion des Editors.
  • Seite 383 4.2. Assembler ASM 'S' wird der Dateityp KCC erzeugt, auch dieser kann bei Bedarf überschrieben werden. ASM-Kommando EDIT *EDIT wechselt direkt zum Editiermodus des 80-Zeichen-Editors. Die Rückkehr mit BRK führt zunächst zum Menü des Editors, von dem weitere Kom- mandos erreichbar sind. Vom Editor zum Assembler gelangt man mit den Kommandos QUIT oder ASM.
  • Seite 384 4.2. Assembler ASM ASM-Kommandos DIR, CD, REN, ERA und DEVICE Diese 5 Kommandos haben die gleiche Syntax und Wirkung wie die gleichnami- gen Kommandos im CAOS-Menü, siehe Seite 51 bis 60. 4.2.3. Arbeitsweise des Prozessors Mit dem U880-Prozessor stehen dem Programmierer über 600 Operationscodes für arithmetische, logische, Programmorganisations-, Datentransfer- sowie Ein-/ Ausgabe-Befehle zur Verfügung.
  • Seite 385 4.2. Assembler ASM 4.2.4. U880/Z80-Registerstruktur Der U880 bzw. Z80 besitzt einen zweigeteilten Registersatz mit jeweils 6 allge- meinen Registern HL, DE und BC, die wahlweise als 8-Bit-Register oder als 16- Bit-Register benutzt werden können. Dazu jeweils ein Akkumulator A, in dem die arithmetischen und logischen Operationen ausgeführt werden und ein Flagregis- ter F zur Statusidentifikation.
  • Seite 386 4.2. Assembler ASM Akkumulator Das 8-Bit-Register A dient bei arithmetischen und logischen Befehlen zur Auf- nahme eines Operanden. Der andere Operand kommt aus einem anderen Regis- ter oder aus dem Speicher. Das Ergebnis der Operation wird wieder im Akkumu- lator abgelegt, und steht dort für eine weitere Verarbeitung zur Verfügung. Allgemeine Register Diese können als 8-Bit-Register (B, C, D, E, H, L) oder als 16-Bit-Registerpaare (BC, DE, HL) benutzt werden.
  • Seite 387 4.2. Assembler ASM zähler und Daten verwechselt werden, ist bei der Verwendung von PUSH und POP größte Sorgfalt auf ein symmetrisches Ein- und Auskellern zu legen. Beim KC 85/5 zeigt der Stackpointer nach dem Einschalten und nach RESET auf die Adresse 01C4H. Indexregister Die Indexregister IX und IY werden zur indizierten Adressierung (siehe Kapitel 4.2.6) verwendet oder können als 16-Bit-Datenregister verwendet werden.
  • Seite 388 4.2. Assembler ASM Flag-Bits Die CPU verfügt über zwei Status-(Flag-)Register (siehe Bild 39). Durch Verände- rung einzelner Bits wird über die Art des Ergebnisses der letzten Prozessoropera- tion Auskunft gegeben. Diese Auskunft wird hauptsächlich dazu benutzt, bedingte Sprünge vorzunehmen, d. h. je nach Ergebnis der Prüfung eines dieser Bedin- gungsbits die eine oder aber eine andere Aktion durchzuführen.
  • Seite 389 4.2. Assembler ASM Das Carry-Flag wird gesetzt (=1), wenn bei der Addition zweier Operanden ein Übertrag von Bit 7 entsteht, sowie wenn bei der Subtraktion ein Bit geborgt wer- den muss (das Ergebnis negativ wird). Darüber hinaus fungiert das Carry-Flag als Bit-Speicher bei Verschiebe- und Rotationsbefehlen.
  • Seite 390 4.2. Assembler ASM 4.2.5. Interruptsystem Soll der Rechner auf externe Ereignisse reagieren, so hat man die Möglichkeit, entweder den betreffenden Eingabekanal ständig abzufragen oder das laufende Programm mittels Interrupt zu unterbrechen und nach Reaktion auf das Eingabe- signal (Interruptprogramm) das ursprüngliche Programm fortzusetzen. Die Tasta- turabfrage und das Kassetteninterface des KC 85 arbeiten z.
  • Seite 391 4.2. Assembler ASM Interrupt-Mode IM 0 Wird ein INT-Signal akzeptiert, so wird gleichzeitig ein auf dem Datenbus vom Interruptauslöser (peripherer Baustein) bereitzustellender 1-Byte-Befehl eingele- sen und anschließend ausgeführt. Im Normalfall werden dazu die Restart-Befehle RST n (n = 0, 8, 10H, 18H, 20H, 28H, 30H, 38H) verwendet, die einen Unterprogrammaufruf zur Speicheradresse n bewirken, an der die Interruptbehandlungsroutine beginnen muss.
  • Seite 392 4.2. Assembler ASM 4.2.6. Adressierungsarten Der Befehlssatz des Prozessors beinhaltet 6 verschiedene Adressierungsarten zur Bereitstellung von Register-, Speicher- oder Ein/Ausgabe-Adressen für zu spezifizierende Datenwörter. Direkte Adressierung Der Operationscode beinhaltet vollständig die entsprechende Adresse. Z. B.: LD A,B LD (0200H),HL Implizite Adressierung Der Operationscode bezieht sich fest auf bestimmte Speicherplätze oder Regis- ter.
  • Seite 393 4.2. Assembler ASM 4.2.7. Syntax der Assemblersprache Ein Assembler-Quelltext besteht aus einer Folge von Anweisungen (sog. State- ments), die zusammen das Anwenderprogramm ergeben. Jede der Quelltextzei- len ist aus einem Markenfeld, einem Operationscode- oder Anweisungsfeld (mne- monische Ausdrücke), einem Operandenfeld und einem Kommentarfeld aufge- baut.
  • Seite 394 4.2. Assembler ASM feld beginnt frühestens in der 2. Spalte der Programmzeile, d. h., wenn das Mar- kenfeld leer ist, muss vor dem Operationscode mindestens ein Trennzeichen (Leerzeichen oder Tabulator) stehen. Operanden Je nach Art des Operationscodes muss das Operandenfeld entweder leer sein, oder es enthält einen oder zwei (durch ein Komma getrennte) Operanden, die eine Adresse (Speicher, Register oder Ein/Ausgabe-Kanal), eine Konstante oder eine Flag-Bedingung repräsentieren.
  • Seite 395 4.2. Assembler ASM Arithmetik Als Konstanten oder Speicheradressen können arithmetische Ausdrücke stehen, die durch eine beliebige Anzahl von Rechenoperationen von Dezimalzahlen, Hexadezimalzahlen, Binärzahlen, Marken, Zeichenkettenkonstanten, $ und # bestehen (ohne Leerzeichen dazwischen !). Die Zeichen $ und # sind dabei syn- onym zur Kennzeichnung des momentanen Befehlszählerstandes verwendbar.
  • Seite 396 4.2. Assembler ASM Besonderheiten Der Assembler ASM verarbeitet die ZILOG-Z80-Mnemonik mit einigen Besonder- heiten. Zum Beispiel kann eine durch HL adressierte Speicherzelle sowohl mit (HL) als auch mit M benannt werden. Außerdem sind zu einigen Befehlen meh- rere Syntax-Formen erlaubt. Tabelle 59: Syntax-Alternativen des Assemblers Normale Syntax Alternative Schreibweise(n)
  • Seite 397 4.2. Assembler ASM 4.2.8. Pseudoanweisungen Pseudooperationen sind Anweisungen an den Assembler zur Steuerung der Übersetzung des Quelltextes. Es gibt daher zu Pseudoanweisungen keinen Maschinencode. Sie sind aber wie ausführbare Anweisungen aufgebaut; können also mit einer Marke versehen und mit einem Kommentar beendet werden. Normalerweise beginnt ein Assemblerprogramm mit einer ORG-Pseudoanwei- sung.
  • Seite 398 4.2. Assembler ASM DB Ausdruck, … Als Operanden können Bytes und Zeichenketten gemischt und mit Komma voneinander getrennt angegeben werden. Durch die Verarbeitung von Zeichenketten in DB kann die- ser Befehl auch anstelle von DEFM Anwendung finden. DEFW Ausdruck, … "Definiere Wort"...
  • Seite 399 4.2. Assembler ASM 4.2.9. Fehlererkennung Fehlerhafte Quellprogrammzeilen werden beim Assemblieren in der ersten Spalte mit einer Fehlernummer (gefolgt von einem "*") versehen und über das Ausgabe- gerät (Bildschirm oder Drucker) ausgedruckt. Es sei darauf hingewiesen, dass vom Assembler keine vollständige Analyse aller möglichen Fehlerquellen durchgeführt wird.
  • Seite 400 4.2. Assembler ASM 4.2.10. U880/Z80-Befehlsliste Die in diesem Kapitel dargestellte Befehlsliste wurde aus [15] übernommen und für den CAOS-Assembler angepasst bzw. ergänzt. Zeichenerläuterung: r,r' 8-Bit-Register B=000 C=001 D=010 E=011 H=100 L=101 A=111 x,x' 8-Bit-Register mit B=000 C=001 D=010 E=011 Indexregistern HX=100 LX=101 A=111...
  • Seite 401 4.2. Assembler ASM Tabelle 61: U880/Z80-Befehlsliste Befehl Code Erläuterung C Z P S N H 8-Bit-Ladebefehle LD r,r' r:=r' ..LD r,(HL) r:=(HL) ..LD (HL),r 01 110 (HL):=r ..LD r,n r:=n .
  • Seite 402 4.2. Assembler ASM Befehl Code Erläuterung C Z P S N H LD A,(BC) 00 001 010 A:=(BC) ..LD A,(DE) 00 011 010 A:=(DE) ..LD A,(nn) 00 111 010 A:=(nn) .
  • Seite 403 4.2. Assembler ASM Befehl Code Erläuterung C Z P S N H LD HL,(nn) 00 101 010 L:=(nn) ..H:=(nn+1) LD dd,(nn) 11 101 101 ddL:=(nn) ..01 dd1 011 ddH:=(nn+1) LD IX,(nn) 11 011 101...
  • Seite 404 4.2. Assembler ASM Befehl Code Erläuterung C Z P S N H PUSH qq 11 qq0 101 (SP-2):=qqL ..(SP-1):=qqH PUSH IX 11 011 101 (SP-2):=IXL ..11 100 101 (SP-1):=IXH PUSH IY 11 111 101...
  • Seite 405 4.2. Assembler ASM Befehl Code Erläuterung C Z P S N H 11 101 101 A-(HL)=? dann HL:=HL+1 . ? ? ? 1 ? 10 100 001 BC:=BC-1 A=(HL) Z=1 A≠(HL) Z=0 BC-1=0 P=0 BC-1≠0 P=1 CPIR 11 101 101 A-(HL)=? dann HL:=HL+1 .
  • Seite 406 4.2. Assembler ASM Befehl Code Erläuterung C Z P S N H ADC A,s A:=A+s+CY ? ? V ? 0 ? SUB A,s A:=A-s ? ? V ? 1 ? SBC A,s A:=A-s-CY ? ? V ? 1 ? AND s A:=A AND s 0 ? P ? 0 1 OR s...
  • Seite 407 4.2. Assembler ASM Befehl Code Erläuterung C Z P S N H INC dd 00 dd0 011 dd:=dd+1 ..INC IX 11 011 101 IX:=IX+1 ..00 100 011 INC IY 11 111 101 IY:=IY+1 .
  • Seite 408 4.2. Assembler ASM Befehl Code Erläuterung C Z P S N H RL t ? ? P ? 0 0 RRC t ? ? P ? 0 0 RR t ? ? P ? 0 0 SLA t ? ? P ? 0 0 SRA t ? ? P ? 0 0 SRL t...
  • Seite 409 4.2. Assembler ASM Befehl Code Erläuterung C Z P S N H SET b,r 11 001 011 Bit(r):=1 ..SET b,(HL) 11 001 011 Bit(HL):=1 ..SET b,(IX+d) 11 011 101 Bit(IX+d):=1 .
  • Seite 410 4.2. Assembler ASM Befehl Code Erläuterung C Z P S N H Sprungbefehle JP nn 11 000 011 PC:=nn ..JP cc,nn 11 cc PC:=nn wenn Bedingung ..erfüllt, sonst nächster Befehl JR e 00 011 000...
  • Seite 411 4.2. Assembler ASM Befehl Code Erläuterung C Z P S N H Ein- und Ausgabebefehle, siehe auch [56] IN A,n 11 011 011 A:=(n) ADR:=A/n ..IN r,(C) 11 101 101 r:=(C) ADR:=B/C . ? P ? 0 ? 11 101 010 1.
  • Seite 412 4.2. Assembler ASM Befehl Code Erläuterung C Z P S N H IM 0 11 101 101 Interrupt Mode 0 ..01 000 110 IM 1 11 101 101 Interrupt Mode 1 ..01 010 110 IM 2 11 101 101...
  • Seite 413 4.2. Assembler ASM Name Adr. Länge Bedeutung STAT 003EH 1 Merkzelle für verschiedene Einstellungen Bit 0 = 1 - Floppy vorhanden Bit 1 = 1 - DEP mit LW-Steuerung Bit 2 = 1 - Fehler bei Diskette oder MTAB-Überschreitung Bit 3 = 1 - Assembler-Option 'S' Bit 4 = 1 - Überschreiben (0=Einfügen) Bit 5 = 1 - Zeichensatz (0=IBM, 1=deutsch) Bit 6 = 1 - Zeichensatz (0=IBM, 1=CAOS)
  • Seite 414 4.3. Disassembler 4.3. Disassembler Ein Reassembler oder Disassembler ermöglicht das Rückübersetzen eines im Speicher des Computers stehenden Maschinenprogramms in die mnemonische Form, also wie ein Assemblerlisting darzustellen. Es sind zwei Varianten dieser Disassembler integriert: DISASS erzeugt einen Quelltext seitenweise am Bild- schirm, durch den mit den Cursortasten geblättert werden kann.
  • Seite 415 4.3. Disassembler Disassembler so anzeigen zu lassen, also ob sich das Programm auf der Adresse befinden würde, auf der es auch lauffähig ist. Das kann hilfreich sein für Programme, die auf der Adresse C000H laufen, weil sich dort auch der Disas- sembler selbst im Speicher befindet und kein anderes Programm auf diesem Adressbereich sehen kann.
  • Seite 416 4.3. Disassembler – Markentabelle ist die Adresse, unterhalb der sich die Markentabelle im Spei- cher rückwärts aufbaut. C000H wird hier als Standard vorgeschlagen und bedeutet am Ende des RAM8, also von BFFFH hin zu kleineren Adressen. – Die 4 gängigsten Prologbytes werden für die Erkennung von Menüworten vorgeschlagen.
  • Seite 417 4.3. Disassembler Befehl Befehl Befehl Befehl BC,nn (BC),A NZ,nn CALL NZ,nn PUSH BC B,(HL) A,(HL) RLCA AF,AF' HL,BC A,(BC) Z,nn siehe Tabelle "CB" CALL Z,nn CALL nn C,(HL) A,(HL) RRCA DJNZ e DE,nn (DE),A NC,nn (n),A CALL NC,nn PUSH DE D,(HL) A,(HL) HL,DE...
  • Seite 418 4.3. Disassembler Befehl Befehl Befehl Befehl (HL) 0,(HL) 0,(HL) 0,(HL) (HL) 1,(HL) 1,(HL) 1,(HL) (HL) 2,(HL) 2,(HL) 2,(HL) (HL) 3,(HL) 3,(HL) 3,(HL) (HL) 4,(HL) 4,(HL) 4,(HL) (HL) 5,(HL) 5,(HL) 5,(HL) (HL) 6,(HL) 6,(HL) 6,(HL) (HL) 7,(HL) 7,(HL) 7,(HL) Vorbyte CB...
  • Seite 419 4.3. Disassembler Befehl Befehl Befehl Befehl B,(C) (C),B HL,BC (nn),BC RETN C,(C) (C),C HL,BC BC,(nn) RETI D,(C) (C),D HL,DE (nn),DE RETN E,(C) (C),E HL,DE DE,(nn) RETN H,(C) (C),H HL,HL (nn),HL OUTI RETN L,(C) (C),L HL,HL HL,(nn) OUTD RETN LDIR OTCL CPIR HL,SP INIR...
  • Seite 420 4.3. Disassembler Befehl Befehl Befehl Befehl B,Hi A,Hi B,Li A,Li B,(ii+d) A,(ii+d) ii,BC siehe Tabelle ii+CB C,Hi A,Hi C,Li A,Li C,(ii+d) A,(ii+d) D,Hi A,Hi D,Li A,Li D,(ii+d) A,(ii+d) ii,DE E,Hi A,Hi E,Li A,Li E,(ii+d) A,(ii+d) Hi,B ii,nn Hi,C (nn),ii Hi,D Hi,E (SP),ii Hi,Hi...
  • Seite 421 4.3. Disassembler Befehl Befehl Befehl Befehl (ii+d),B 0,(ii+d),B 0,(ii+d),B (ii+d),C 0,(ii+d),C 0,(ii+d),C (ii+d),D 0,(ii+d),D 0,(ii+d),D (ii+d),E 0,(ii+d),E 0,(ii+d),E (ii+d),H 0,(ii+d),H 0,(ii+d),H (ii+d),L 0,(ii+d),L 0,(ii+d),L (ii+d) 0,(ii+d) 0,(ii+d) 0,(ii+d) (ii+d),A 0,(ii+d),A 0,(ii+d),A (ii+d),B 1,(ii+d),B 1,(ii+d),B (ii+d),C 1,(ii+d),C 1,(ii+d),C (ii+d),D 1,(ii+d),D 1,(ii+d),D (ii+d),E 1,(ii+d),E 1,(ii+d),E...
  • Seite 422 4.4. Debugger TEMO 4.4. Debugger TEMO Haupteinsatzgebiet des Programmpaketes „Debugger“ bzw. "Testmonitor" ist die Unterstützung beim Test von Maschinenprogrammen. Es dient zur Fehlersuche bzw. Programmanalyse mittels Einzelbefehlsabarbeitung und Unterbrechungs- punktsteuerung mit nachfolgender Anzeige der Registerinhalte. Für die zu testen- den Anwenderprogramme werden eigene USER-Register definiert, welche nach der Anwenderprogrammabarbeitung im RAM gerettet werden und zur Abarbei- tung in den CPU-Registersatz geladen werden.
  • Seite 423 4.4. Debugger TEMO Beim Kalt- oder Warmstart wechselt der Debugger zu Bild 1, sodass ein Anwen- derprogramm das Bild 0 benutzen kann und nicht von den Debugger-Anzeigen zerstört wird. Nach dem Start erscheint das Debugger-Menü: Durch den Sprung in das Debugger-Menü über Kommando TEMO wird der Unterbrechungspunkt- und Schrittbetrieb initialisiert.
  • Seite 424 4.4. Debugger TEMO Debugger-Kommando MENU +MENU [ n ] schreibt das Testmonitor-Menü neu aus. Wie beim gleichlautenden CAOS-Menüwort (siehe Seite 45) kann auch hier durch einen Parameter die Anzeige versteckter Menüworte und die Auflistung der Startadressen veranlasst werden. Debugger-Kommando QUIT +QUIT verlässt den Debugger und kehrt zum CAOS-Menü...
  • Seite 425 4.4. Debugger TEMO Debugger-Kommando CRC +CRC aadr eadr+1 %TEMO CRC aadr eadr+1 Berechnung einer 16Bit-Püfsumme und CRC16 über einen Speicherbe- reich, es ist die Anfangsadresse und Endadresse+1 anzugeben. Beispiel: +CRC E000 0000 CRC16=0540 SUM16=9C54 Debugger-Kommando IN +IN aaaa %TEMO IN aaaa Anzeige eines Datenbytes vom Eingabekanal mit der Portadresse aaaa.
  • Seite 426 4.4. Debugger TEMO Beispiele: +FILL 4000 8000 Beschreiben des gesamten RAM4 mit 00H +FILL 200 500 FF Beschreiben des Bereiches von 200H bis 4FFH mit +FILL 200 300 AA 55 Beschreiben des Bereiches mit dem Bytemuster AA, 55, AA, … Debugger-Kommando EXCH +EXCH aadr eadr+1 adr2 %TEMO EXCH aadr eadr+1 adr2...
  • Seite 427 4.4. Debugger TEMO Debugger-Kommando CMP +CMP adr1 adr2 %TEMO CMP adr1 adr2 CMP vergleicht den Inhalt von zwei Speicherbereichen Byte für Byte. Bei einem gefundenen Unterschied werden Adressen und Inhalte angezeigt und eine Ein- gabe abgewartet. BRK bricht den Vergleich ab, jede andere Taste setzt den Ver- gleich fort.
  • Seite 428 4.4. Debugger TEMO Debugger-Kommando STACK Dieses normalerweise nicht sichtbare Menüwort zeigt den Stackpointer (Nicht USER-Stack!) und den ersten Wert auf dem Stack an. Dies kann zur Fehlersuche hilfreich sein. Beispiel: +STACK 01C0 F296 Das Stackpointer zeigt auf 01C0H und dort ist der Wert F296H abgelegt. Das ent- spricht hier im Beispiel der Adresse der CAOS-Menükommando-Routine.
  • Seite 429 4.4. Debugger TEMO 4.4.3. Schrittbetrieb Der Schrittbetrieb wird mit dem Kommando STEP oder bei Erreichen des Unter- brechungspunktes nach dem Kommando GO erreicht. Im Schrittbetrieb wird am Bildschirm ab der ersten Zeile zunächst der Inhalt aller USER-Register angezeigt. Darunter drei reassemblierte Befehlszeilen: - der zuletzt abgearbeitete Befehlscode - der aktuelle Befehlscode (in roter Schriftfarbe) - der Befehlscode, der dem aktuellen Befehl im Speicher folgt.
  • Seite 430 4.5. Editor EDIT 4.5. Editor EDIT Seit CAOS 4.7 steht im USER-ROM erstmals ein universeller Texteditor zur Ver- fügung (vorausgesetzt es wird nicht die alternative USER-ROM-Variante mit FORTH benutzt). Mit CAOS 4.8 ist der Editor fester Bestandteil des USER-ROM. EDIT ist eine Weiterentwicklung auf Basis des EDAS-Editors, weist aber viele Eigenschaften von WordPro auf.
  • Seite 431 4.5. Editor EDIT 4.5.1. Das Editor-Menü Beim Start des Editors bzw. bei Rückkehr aus der Textbearbeitung erscheint ein kurzes Menü. Das komplette, lange Menü mit weiteren Menüpunkten kann durch das Menüwort -MENU angezeigt werden. In der Titelzeile wird in der Mitte das aktuell eingestellte DEVICE und bei Diskette zusätzlich das eingestellte Laufwerk mit USER-Bereich angezeigt.
  • Seite 432 4.5. Editor EDIT EDIT-Kommando QUIT Verlassen des Assemblers zu CAOS bzw. ASM, je nachdem woraus der Editor gestartet wurde. EDIT-Kommando CLEAR Löschen des Textspeichers und des aktuellen Dateinamens. Eine Sicherheits- abfrage soll ein versehentliches Löschen des Textes verhindern. EDIT-Kommando SAVE Abspeichern des im Speicher befindlichen Textes auf das aktuell eingestellte Speichergerät.
  • Seite 433 4.5. Editor EDIT EDIT-Kommando PRINT PRINT [ n ] ohne Parameter: Ausdruck des Quelltextes im Endlosdruck n = 1 bis 255: Ausgabe auf Drucker mit Blattwechsel nach n Zeilen. (n ist dezimal anzugeben) EDIT-Kommando KEY KEY [ n ] ohne Parameter: KEYLIST (Aufruf Menükommandoroutine) n = 0 : Grundbelegung des F-Tastenspeichers herstellen 1 <= n <= F : wie %KEY (Aufruf Menükommandoroutine) n = D5 : Grundbelegung für D005-Tastatur herstellen...
  • Seite 434 4.5. Editor EDIT Tabelle 63: Import-Konverter für Fremdformate des Editors Nr. Textprogramm Beschreibung WordPro''86 Dateien liegen im KCC-Format vor, besitzen einen und WordPro9 CAOS-Vorblock mit Anfangs- und Endadresse. Es han- delt sich um reine Speicherabzüge ohne Zeilenschaltung CR/LF. Eine Komprimierung mit Kennbyte FFH, siehe [56] oder EAH bei WordPro9 wird automatisch dekompri- miert.
  • Seite 435 4.5. Editor EDIT EDIT-Kommando PSAVE PSAVE dient zum Abspeichern eines Textblockes, der durch die Blockmarken ◄ und ► eingegrenzt wurde. Sind keine Blockmarken gesetzt oder nicht in der rich- tigen Reihenfolge, dann erscheint eine Fehlermeldung. EDIT-Kommando PPRINT -PPRINT [ n ] Abspeichern eines Textblockes, der durch die Blockmarken ◄...
  • Seite 436 4.5. Editor EDIT EDIT-Kommandos DIR, CD, REN, ERA und DEVICE Diese 5 Kommandos haben die gleiche Syntax und Wirkung wie die gleichnami- gen Kommandos im CAOS-Menü, siehe Seite 51 bis 60. 4.5.2. Der Editiermodus Mit dem Kommando EDIT gelangt man in den Editiermodus. Hiermit wird der eigentliche Text bearbeitet.
  • Seite 437 4.5. Editor EDIT DEL löscht das Zeichen unter der Cursorposition, der Folgetext bis zum nächsten Tabulator rückt nach links nach Shift+DEL löscht die gesamte Zeile, der Text unterhalb wird um eine Zeile nach oben geholt CLR löscht das Zeichen links vom Cursor, der Folgetext bis zum nächsten Tabulator rückt nach links nach Shift-CLR ruft die Hardcopy-Funktion auf, z.
  • Seite 438 4.5. Editor EDIT Tabelle 64: ESC-Steuerfunktionen im Editor Taste Funktion ESC 0-9 Eingabe Druckersteuerzeichen, siehe Kapitel 4.5.4 ESC-A ANFANG: Eingabe Blockanfangsmarke ◄ (Code 1CH) ESC-B BOTTOM: Gehe zum Textende ESC-C COPY: Block kopieren (kopiert einen durch die Blockmarken ◄ und ► markierten Textblock an die aktuelle Cursorposition) ESC-D DOWN: Eingabe Pfeil nach unten 1FH (derzeit ohne Funktion) ESC-E ENDE: Eingabe Blockendemarke ►...
  • Seite 439 4.5. Editor EDIT 4.5.4. Druckersteuerzeichen Mit der Kombination ESC + Zifferntaste werden Drucksteuerzeichen erzeugt, wel- che als kleine Zahlen im Text erscheinen und beim Druck in die entsprechenden Druckerbefehle umgewandelt werden. Für jede Funktion existiert nur ein Steuer- zeichen. Beim ersten Auftauchen im Text wird die Funktion aktiviert und danach mit demselben Zeichen wieder abgeschaltet.
  • Seite 440 TECHNISCHE PARAMETER 5. ANHANG 5.1. Technische Parameter Tabelle 66: Technische Daten Bezeichnung: Kleincomputer KC 85/5 Hersteller: VEB Mikroelektronik „Wilhelm Pieck“ Mühlhausen im Kombinat Mikroelektronik Bauform: Grundgerät mit abgesetzter Tastatur Abmessungen: Grundgerät 385 * 270 * 77 (in mm) Tastatur 296 * 152 * 18/19 (in mm) Masse: ca.
  • Seite 441 TECHNISCHE PARAMETER Tonwiedergabe: – über Fernsehgerät (Mono) FBAS-RGB- Eingang, Lautstärke in 16 Stufen regelbar – über Stereoanlage bei konstantem Pegel – über eingebauten Piezosummer – Externer Programm- und handelsüblicher Magnetbandkassetten- Datenspeicher recorder oder Spulentonbandgerät – mit Erweiterung D004: 5,25“-Diskette – mit Erweiterung D008: zusätzlich 3,5“- Diskette und IDE-Festplatte Motorschaltung:...
  • Seite 442 5.2. Bildschirmorganisation KC 85/3 und KC 85/4 Bild 41: Bildschirmorganisation KC 85/3 Pixel-IRM...
  • Seite 444 Bild 42: Bildschirmorganisation KC 85/3 Farb-IRM...
  • Seite 446 Bild 43: Bildschirmorganisation KC 85/4 Pixel- und Farb-IRM...
  • Seite 448 INTERNETLINKS 5.3. Internetadressen für den KC 85 Die folgende Auswahl an Internetadressen, die sich mit dem KC 85 befassen, ist Stand März 2023 und erhebt keinen Anspruch auf Vollständigkeit. Weiterführende Links sind auf jeder der angegebenen Websites zu finden. Offizielle Website des KC-Clubs: www.kcclub.de CAOS-Quelltexte: https://github.com/maleuma/CAOS...
  • Seite 449 VERSIONSHISTORIE 5.4. CAOS Versionsgeschichte Neben den CAOS-Betriebssystemen gab es auch Versionen mit anderen Namen. In der nachfolgenden Übersicht soll ohne Anspruch auf Vollständigkeit ein grober Überblick gegeben werden: Version Datum Für Hardware KC 85/2 und KC 85/3 HC900 ca. 1984 Betriebssystem des HC900 (erste Modelle des KC 85/2) CAOS funktionell fast identisch zu CAOS 2.2...
  • Seite 450 VERSIONSHISTORIE Version Datum Für Hardware KC 85/4 und KC 85/5 CAOS 4.1 Erstes bekanntes Betriebssystem für den KC 85/4 mit einem Fehler bei der Fensterinitialisierung CAOS 4.2 1987 Standard-Betriebssystem des KC 85/4 CAOS 5.0 1990 Weiterentwicklung von Frank Pischel - Autostart D004 (3 Versuche) - DISPLAY heißt hier DUMP - MODIFY entfällt als Menüwort - MODUL entfällt als Menüwort...
  • Seite 451 VERSIONSHISTORIE Version Datum Für Hardware KC 85/4 und KC 85/5 CAOS 4.8 2021 Fehlerkorrekturen zu CAOS 4.7: - Fehlerauswertung bei UP 36H/37H/38H (SAVE/ MBIN/MBOUT) mit CY-Flag - CSAVE/CLOAD bei TAPE korrigiert - Korrektur bei Menüwort V24DUP ohne Argumente - Fehlerbeseitigung bei %INIT (USB) - weniger DI/EI bei Zeichenausgabe und Grafikroutinen - TCIF überwacht jetzt auch Fenstergröße 0x0 - LOAD und MBIN und realisieren jetzt alle Bildschirman-...
  • Seite 452 VERSIONSHISTORIE 5.5. Bekannte Probleme ab CAOS 4.7 Mit CAOS 4.7 hat sich einiges an den genutzten Speicherbereichen verändert und auch die Parameter der Systemunterprogramme sind zum Teil erweitert wor- den, z. B. für die DEVICE-Funktionen. Deshalb kann nicht ausgeschlossen wer- den, dass einige ältere Programme nicht mehr oder nur noch eingeschränkt lauf- fähig sind.
  • Seite 453 VERSIONSHISTORIE Programm Beschreibung der Unverträglichkeit BAC854.SSS Die Bascoder erstellen eine Kopie der Tastaturtabelle KTAB im BAC854-C.SSS Adressbereich ab 0048H und überschreiben die Interruptroutine der USB-Tastatur BigTurn Benutzt Speicherbereich ab A900H und überschreibt dadurch die SUTAB BoulderDash Lädt Programmteile nach BREAKOUT Benutzt 000B-000F als Arbeitszellen, inkompatibel mit USB-Tastatur F) CAVE Benutzt 000B-000F als Arbeitszellen, inkompatibel mit USB-Tastatur F)
  • Seite 454 VERSIONSHISTORIE Programm Beschreibung der Unverträglichkeit WordPro5, Die Zeichenbildtabelle liegt im IRM A820H…ABFFH und über- WordPro6 schreibt die SUTAB von CAOS 4.7 → Interner Editor von CAOS 4.7 kann WordPro-Dateien bearbeiten oder WordPro 7 benutzen.
  • Seite 455 LITERATURVERZEICHNIS 5.6. Literatur Beschreibung zu M003 V.24-Modul * VEB Mikroelektronik „Wilhelm Pieck“ Mühlhausen Beschreibung zur Programmkassette C0171/1 V.24-Software * VEB Mikroelektronik „Wilhelm Pieck“ Mühlhausen Bedienungshandbuch Punkt Matrixdrucker * Seiko EPSON. Deutschland GmbH, Düsseldorf 1986 Manual K 6311, K 6312 Hard-Copy-Drucker * VEB Robotron Büromaschinenwerk Sömmerda Manual K 6313, K 6314 Hard-Copy-Drucker * VEB Robotron Büromaschinenwerk Sömmerda...
  • Seite 456 Anwendung (Teile 1 und 2) Reihe electronica, Band 222/223 Band, 224/225. VEB Militärverlag der Deutschen Demokratischen Republik, Berlin 1985 [18] Bückner, U.: Kleincomputer leichtverständlich VEB Fachbuchverlag, Leipzig 1986 [19] Gutzer, H.: Spiel + Spaß mit dem Computer Urania-Verlag.
  • Seite 457 [33] Domschke, W.: Das Softwarekonzept KC 85/3 Mikroprozessortechnik, Berlin 1 (1987) 3, S. 89–91 [34] Domschke, W.; Katzmann, K.: Der Modul M026 FORTH für Kleincomputer KC 85/2 und KC 85/3 Mikroprozessortechnik, Berlin 1 (1987) 8, S.244–246 [35] Kirves, K.-D.: V.24-Modul M003 Mikroprozessortechnik, Berlin 1 (1987) 4, S.
  • Seite 458 LITERATURVERZEICHNIS [48] KC 85/4 Systemhandbuch * VEB Mikroelektronik „Wilhelm Pieck“ Mühlhausen, Juli 1988 [49] KC 85/4 BASIC-Handbuch und BASIC-Übersichten * VEB Mikroelektronik „Wilhelm Pieck“ Mühlhausen [50] D004 Manual * VEB Mikroelektronik „Wilhelm Pieck“ Mühlhausen, Dezember 1988 [51] D004 Handbuch für den Bediener * VEB Mikroelektronik „Wilhelm Pieck“...
  • Seite 459 LITERATURVERZEICHNIS [66] Beschreibung zu M008 JOY-MODUL * VEB Mikroelektronik „Wilhelm Pieck“ Mühlhausen [67] Beschreibung zu M052 USB KC-Club, Mario Leubner, März 2018 [68] Beschreibung zu Ersatzleiterplatte für die 3 EPROMS mit einem Flash Andreas Schlechte, 05.09.2021 [69] Handbuch zu Plotter BASIC 2.0 für XY 4131 KC-Club, Mario Leubner, Dezember 2022 Diese Auswahl der Literaturstellen erhebt keinen Anspruch auf Vollständigkeit.
  • Seite 460 ABKÜRZUNGSVERZEICHNIS 5.7. Abkürzungen ADResse Analog-Digital-Umsetzer Automatic Frequency Control (Automatische Frequenzkontrolle) ASCII American Standard Code for Information Interchange (international standardisierter Code zur digitalen Verschlüsselung von Texten) Audio-Video Binär (am Zahlenende zur Kennzeichnung) Baud Maßeinheit für die Übertragungsgeschwindigkeit von Daten (Sym- bolrate), hier gleichbedeutend mit Bit/s (1 Symbol entspricht 1 Bit) BüroComputer BReaK (Abbruch) CAOS...
  • Seite 461 Input/Output (Eingabe/Ausgabe) Image Repetition Memory (Bildwiederholspeicher) KeyBoarD (Tastatur) KByte Kilobyte (1 KByte = 2 Byte = 1024 Byte) KleinComputer Light Emitting Diode (Licht emittierende Diode, Leuchtdiode) Lesen und Schreiben MByte Megabyte ( 1 MByte = 2 Byte = 1.048.576 Byte)
  • Seite 462 STICHWORTVERZEICHNIS 5.8. Stichwortverzeichnis Es bedeuten: und folgende Seite und mehrere folgende Seiten fett Haupteintrag Stichwortverzeichnis BORDER 358 ABS 285 BSAVE 44, 362 Adressen 283, 345 BYE 258 AND 283 Byte 38, 71, 77f., 118, 129, 186f., 195, 230, 232, 236, 239, 241, 438 Anschlüsse 18, 91 Arbeitszellen 178, 183, 185f., 189 CALC 85f., 126...
  • Seite 463 STICHWORTVERZEICHNIS CSRLIN 318 ESC/P2 82 CSRO 141, 166, 198, 201 EXP 285 Cursortasten 28, 35, 144 Farbauflösung 39, 127, 228, 230, 232f. D002 108, 454 Farbe 34, 63f., 123, 127, 142, 150, D004 52, 72, 108f., 130, 254, 439, 157f., 188f., 228, 230ff., 303, 438 FBAS 19, 88, 90, 101f., 438f., 457 D005 93, 108 Fehler 42, 54ff., 58, 130, 225...
  • Seite 464 STICHWORTVERZEICHNIS INPUT 274 LOOP 247 INPUT# 354, 356 LORES 232 INSTR 321 LSTDEV 43, 80, 81ff. INT 285 LSTOUT 162, 238 Interrupt 97f., 118, 151f., 183, 184, 189, 236ff., 245f. Magnetbandaufzeichnung 58, 194 IRM 39, 65, 67, 88, 118, 126f., 230, MBI 139, 165, 198, 201 235, 458 MBIN 154, 198...
  • Seite 465 STICHWORTVERZEICHNIS POKE 352 RETURN 325 POS 358 RGB 19, 21, 25, 88, 90f., 99, 101, 438f., 458 POWER 247 RIGHT$ 321 PPRINT 433 RND 287 PRESET 310 ROM 38, 65, 68, 70, 72f., 76, 79, 88, PRINT 44, 83, 264, 269, 276, 431 105, 107, 118, 121, 125ff., 131, 148, PRINT# 354, 356 183, 227, 229, 438, 458...
  • Seite 466 STICHWORTVERZEICHNIS STR$ 321 V24OUT 80, 238 STRING$ 321 VAL 321 Strukturbyte 71f., 74f., 125, 148 VERIFY 43, 57, 58, 185 SWITCH 38, 43, 53, 64, 67f., 71, 74f., Version 44, 46, 134, 189 88, 123f., 351 VGET$ 321 Systembedingungen 245 Video-RAM 48, 121, 144, 189, 226, Systeminitialisierung 235 230f.
  • Seite 467 ABBILDUNGEN und TABELLEN 5.9. Abbildungsverzeichnis Bild 1: Ersatzleiterplatte für die 3 EPROMs mit einem 512K Flash-ROM.....12 Bild 2: Vorderansicht des KC 85/5-Grundgerätes..........18 Bild 3: Rückansicht des KC 85/5-Grundgerätes...........18 Bild 4: Anschlussschema des Kleincomputersystems..........22 Bild 5: CAOS-Grundmenü..................23 Bild 6: Tastatur mit Editier-, Steuer- und Funktionstasten........26 Bild 7: CAOS-Menü...
  • Seite 468 ABBILDUNGEN und TABELLEN Bild 27: Beispiel zur Darstellung des Bytemodus der Farbauflösung....232 Bild 28: Beispiel zur Darstellung des Bitmodus der Farbauflösung....233 Bild 29: Duplexroutinen von CAOS..............238 Bild 30: Veranschaulichung des "Gedächtnisses" unseres Computers....260 Bild 31: Vollgrafik: Das Anzeigebild besteht aus 320x256 Bildpunkten....306 Bild 32: Einteilung des Bildschirms in Zeichenzeilen und Zeichenspalten..314 Bild 33: Programmablaufplan zum Erstellen eines lauffähigen Programms..333 Bild 34: Symbolische Darstellung Noten-Bewertungsprogramm......334...
  • Seite 469 ABBILDUNGEN und TABELLEN 5.10. Tabellenverzeichnis Tabelle 1: Fehlertabelle für Einschalten KC 85/5..........24 Tabelle 2: Geänderte Tastenbelegungen im Texteingabemodus......29 Tabelle 3: ESC-Steuerfunktionen von CAOS 4.x..........34 Tabelle 4: Joysticktabelle..................41 Tabelle 5: Mögliche Ursachen für Lesefehler............55 Tabelle 6: Vorder- und Hintergrundfarben im LoRes-Modus........63 Tabelle 7: Die Codierung der 4 Farben im HRG-Modus........64 Tabelle 8: Übersicht der Steckplätze im KC-System..........65 Tabelle 9: bekannte Erweiterungsmodule............72...
  • Seite 470 ABBILDUNGEN und TABELLEN Tabelle 27: Auswahl an Dateitypen..............196 Tabelle 28: Aufbau der DEVICE-Treiber............198 Tabelle 29: Übersicht der DEVICE-Funktionen..........201 Tabelle 30: CAOS-Zeichensatz................203 Tabelle 31: IBM-Zeichensatz................212 Tabelle 32: 80-Zeichensatz................218 Tabelle 33: Interne Zeichen im 80-Zeichensatz..........220 Tabelle 34: Austauschzeichen im 80-Zeichensatz für CAOS und Deutsch..220 Tabelle 35: Umcodierungstabelle der KC-Tastatur..........222 Tabelle 36: Steuercodes des KC 85/5..............225 Tabelle 37: Beschreibung der V.24-Initialisierungstabelle für Druckerbetrieb..239...
  • Seite 471 ABBILDUNGEN und TABELLEN Tabelle 55: Weitere mathematische Funktionen in BASIC.........372 Tabelle 56: Liste der BASIC-Fehlermeldungen..........374 Tabelle 57: Flag-Bedingungen................392 Tabelle 58: Rechenoperationen des Assemblers..........393 Tabelle 59: Syntax-Alternativen des Assemblers..........394 Tabelle 60: Assembler-Fehlercodes..............397 Tabelle 61: U880/Z80-Befehlsliste..............399 Tabelle 62: Speichernutzung Assembler/Editor/Reassembler......410 Tabelle 63: Import-Konverter für Fremdformate des Editors......432 Tabelle 64: ESC-Steuerfunktionen im Editor............436 Tabelle 65: Druckercodes im Editor..............437 Tabelle 66: Technische Daten................438...
  • Seite 472 Notizen...

Diese Anleitung auch für:

Kc85/5+Kc85/4