APPLICATIONSDIVERS ★ Deutsche Sprache, schwere Sprache ★

Deutsch.com (Happy Computer)Applications Divers
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Deutsche Sonderzeichen unter CP/M auf allen drei Schneider-Computern bietet »Deutscher Zeichensatz«. Die Vortex-Speichererweiterung darf dabei eingebaut bleiben und auch CP/M Plus ist erlaubt.

Deutsche Sonderzeichen unter CP/M 2.2 für den CPC 464 oder den 664 sind schon lange ein »alter Hut«. Anders ist dies unter CP/M Plus auf dem 6128 oder nach Einbau einer Speicherkarte von Vortex. Denn in solch einem Fall ändern sich die Speicheradressen und die meisten vorgestellten Routinen arbeiten dann inkorrekt. »Deutscher Zeichensatz« ist ein universelles Programm für alle Schneider-Computer und fast für jede Ausbaustufe geeignet.

Deutsche Sonderzeichen mit Locomotiv-Basic zu definieren, ist sehr einfach. Der Befehl »SYMBOL AFTER 64« bereitet den Computer auf die Definition der Sonderzeichen vor. Dazu werden die Bitmustertabellen, die für das Aussehen der Zeichen zuständig sind, ins RAM kopiert. Mit SYMBOL AFTER 64 beschränken wir uns dabei auf die nur notwendigen Zeichen mit den Nummern 64 bis 255. Die Zeichensatztabelle belegt dann 1,5 KByte Speicherplatz. Unter CP/M 2.2 gibt es intern eine Entsprechung des SYMBOL AFTER-Befehls. Diese Routine eignet sich aber nicht für unseren Zweck, denn in der TPA steht nirgends genügend Speicherplatz zur Verfügung. Das heißt, nirgendwo ist ein so großes Stück unbelegter und vor Überschreiben geschützter RAM-Bereich vorhanden. »Deutscher Zeichensatz« arbeitet deshalb mit einem Trick. Immer, wenn das Betriebssystem ein anderes Zeichen als ein Steuerzeichen auf dem Bildschirm ausgeben will, wird die Routine »TXT WRITE CHAR« an der Adresse BDD3 hex aufgerufen. An dieser Adresse steht ein Sprungvektor zur eigentlichen Zeichenausgaberoutine. Da dieser Befehl im RAM des Computers steht, kann durch eine Änderung eine »Umleitung« eingeschoben werden. Bevor die eigentliche Zeichenausgaberoutine aufgerufen wird, läuft somit immer ein Vorprogramm ab.

Dieses Vorprogramm testet, ob ein deutscher Umlaut ausgegeben werden soll. Wenn ja, wird die interne Nummer des Umlautes in einen Wert zwischen 247 und 255 umgerechnet. Danach arbeitet das Programm die ursprüngliche Ausgaberoutine ab. Durch diesen Trick braucht die Zeichensatztabelle im RAM nur noch die Zeichen mit den Nummern 247 bis 255 umfassen. Statt 1,5 KByte belegt es nur noch 72 Byte. Von der »Benutzeroberfläche« aus betrachtet (also wenn Sie eine Taste drücken), besitzen die deutschen Umlaute aber immer noch die ursprünglichen Standardnummern.

Unter CP/M 2.2 ist auf allen drei Schneider-Computern der Speicherbereich von BEBF bis BFFF hex dem BIOS-Maschinenstapel Vorbehalten. Tatsächlich werden aber nur eine Handvoll Bytes am Ende dieses Bereiches benutzt. Der Rest am Anfang des Stapels ist groß genug, um die Zeichensatztabelle samt »Ausgabeumleitung« aufzunehmen. Experimente mit dem Disketten-Controller von Vortex zeigen aber, daß - anders als bei dem Controller von Schneider - einige zusätzliche Bytes hinter der Adresse BEBE hex notwendig sind. Damit unsere Routine in allen Ausbaustufen funktioniert, beginnt sie deshalb erst nach einem gewissen Sicherheitsabstand. Das Programm »DEUTSCH.COM* (die CP/M-Routine) besteht aus zwei Teilen. In dem Teil ab BEC8 hex steht die eigentliche Zeichenausgaberoutine. Der andere regelt die Interpretation, ob der Zeichensatz ein- oder ausgeschaltet werden soll, das Übertragen der neuen Ausgaberoutine in den Zielbereich und das korrekte Einbinden ins Betriebssystem. Beim Einbinden werden die versionsabhängigen Adressen angepaßt, so daß das Programm auf allen drei Schneider-Computern läuft. Allein die Konstante »base* legt fest, welche Adresse die Ausgaberoutine endgültig aufnimmt. Wenn Sie den Bereich ab BEBF hex schon anderweitig vergeben haben, können Sie damit die Routine verschieben, beispielsweise in den Sound- oder Kassettenheader-Puffer.

Mit einer Vortex-Speichererweiterung ist der passende RAM-Bereich schwerer zu bestimmen. Die neue Zeichenausgaberoutine wird nämlich nur beachtet, wenn sie im System-RAM des Computers steht. Normalerweise ist in dieser Ausbaustufe unter CP/M*Modus im Bereich von 8000 bis FFFF hex nur das Erweiterungs-RAM sichtbar. Vor der Übertragung der Ausgaberoutine muß also das Erweiterungs-RAM abgeschaltet und hinterher wieder eingeschaltet werden. Das gelingt ganz einfach mit dem Maschinencode »OUT (c),c«. Die »OUT«-Befehle sind so eingesetzt, daß es nichts schadet, wenn keine Erweiterung eingebaut oder diese nicht aktiviert ist. Eine spezielle Abfrage auf eine Erweiterung fällt also weg. Auch beim CPC 6128, der serienmäßig 128 KByte RAM besitzt, haben die »OUT«-Befehle keine negativen Auswirkungen.

Damit ein Interrupt »nicht ins Leere« geht, benötigt man eine ganz bestimmte ROM/RAM-Konfiguration. Um Schwierigkeiten zu vermeiden, sind diese, solange das Erweiterungs-RAM abgeschaltet ist, gesperrt. Diese kurze Sperrzeit der Tastaturabfrage fällt nicht auf, da die Initialisierung der neuen Zeächenausgaberoutine nur eine halbe Millisekunde dauert.

»DEUTSCH .COM« ohne Probleme

Wenn Sie sich in der Maschinensprache des Z80 auskennen, benutzen Sie sicher das Assemblerlisting (Listing 1) zur Eingabe. Die Zeilennummern dienen nur der Übersicht und können weggelassen werden.

Haben Sie im Umgang mit Assembler keine Erfahrung, dann geben Sie den Basic-Lader aus Listing 2 ein und speichern ihn auf einer Diskette. Wenn Sie das Programm mit »RUN« starten, wird die Datei »DEUTSCH.COM« auf der Diskette angelegt. Bei der Meldung »Alles O.K.« steht das eigentliche Zeichensatz-Programm dann korrekt auf der Diskette. Unter CP/M schaltet »A> DEUTSCH EIN« und »A> DEUTSCH AUS« den deutschen Zeichensatz ein und aus. Das Programm aus Listing 1 brauchen Sie jetzt nicht mehr. Aber bewahren Sie es für den Fall, daß Sie beim Eintippen einen Fehler gemacht haben, sicherheitshalber noch auf. Wenn schon beim ersten Lauf des Programms die Meldung »Tippfehler in Zeile x« auftritt, müssen Sie diese Zeile ausbessern. Auch wenn das Basic-Programm mit einer Fehlermeldung abbricht, befindet sich eine Datei mit dem Namen »DEUTSCH.COM«. auf der Diskette. Diese ist aber nicht einsatzfähig, also löschen. Beachten Sie, daß das Basic-Programm nicht alle Eingabefehler entdeckt. Zu diesen Fehlern zählen, wenn:

  • in einer Zeile zwei benachbarte Zahlen ausgetauscht werden (merkt nur Explora)
  • eine ganze Zeile vergessen wurde
  • zwei aufeinanderfolgende Zeilen vertauscht wurden.

Die Anordnung der Buchstaben auf der Tastatur und das

Abbild der Buchstaben auf dem Bildschirm ist völlig unabhängig voneinander. Das Zeichensatzprogramm verändert zwar das Aussehen der Zeichen »@[\]{l}~ « in » §ÄÖÜäöü«, deren Anordnung auf der Tastatur wird aber nicht beeinflußt. Das »ß« erreichen Sie auf der normalen ASCII-Tastatur mit »CTRL-2«, das »ä« mit »SHIFT-K das »ü« mit »SHIFT-j« und das »ö« mit »@«. Die großen Buchstaben der deutschen Umlaute liegen jeweils in der anderen Ebene der entsprechenden Tasten. Zum Anlegen der deutschen DIN-Tastatur müssen Sie also zusätzlich das Programm »SETUP.COM« (auf der Schneider-Systemdiskette) beziehungsweise »INSTALL.COM« (bei Vortex) bemühen.

Einen Vorschlag für eine Tastenanordnung, die der DIN-Tastatur entspricht, zeigt die Tabelle. Für jede zu ändernde Taste ist die Tastennummer dezimal und hexadezimal und die Belegung dezimal, hexadezimal und im Zeichen gegeben. So können Sie sich die für Ihre System-Routine notwendigen Angaben leicht heraussuchen. Tasten, die nicht geändert werden müssen, sind in dieser Tabelle nicht vermerkt.

Unbelegte Tasten haben übrigens nicht den Code 0, sondern 255, Tasten, die einen Wert zwischen 128 und 159 aufweisen, werden als Funktionstasten interpretiert. So können die Funktionstasten auch auf andere Tasten als den Zehnerblock der Tastatur gelegt werden. Die CLR-Taste besitzt bei uns den Code für »CTRL-H« (Backstep). Unter CP/M können Sie dann diese Taste zum Löschen benutzen. Die DEL-Taste unterstützt nämlich nicht alle Programme. Die ESC-Taste wurde mit dem Code für den Standard-ESC versehen. Nur auf der Taste CTRL-ESC bleibt der ursprüngliche - nicht standardgemäße - Wert erhalten. So lassen sich auch Programme bedienen, die speziell für die Schneider-Computer entwickelt wurden.


Tabelle. So legen Sie Ihre DIN-Tastatur an

Die deutschen Sonderzeichen werden beim Lesen vom Bildschirm und bei der Ausgabe in der Entsprechung des Basic-Zeichenausgabemodus »TAG« nicht erkannt. Unter CP/M kommen diese Routinen aber so gut wie nie zur Anwendung, so daß dies keine Einschränkung darstellt.

Helmut Tischer/hg , HC

★ PUBLISHER: Happy Computer
★ YEAR: 1986
★ CONFIG: CP/M
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: HAPPY COMPUTER-SCHNEIDER SONDERHEFT
★ AUTHOR: Helmut Tischer
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» DEUTSCH.COM    (Happy  Computer-Sonderheft)    GERMANDATE: 2021-03-11
DL: 152
TYPE: ZIP
SiZE: 8Ko
NOTE: 40 Cyls
.HFE: Χ

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Deutsche CPM Plus BIOS-Meldungen (CPC Amstrad International) GERMAN (CPC Amstrad International)
» Applications » Deutsche Tastatur-Belegung für den Schneider Amstrad CPC 464
» Applications » Deutscher Zeichensatz (Computer Schau)
» Applications » Basic-Lader_fur_Deutscher_zeichensatz_unter_CPM
» Applications » Deutsche Fehlermeldungen (Computer Technik)
» Applications » Altdeutscher Zeichensatz (CPC Amstrad International)
Je participe au site:
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 424 millisecondes et consultée 729 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.