★ APPLICATIONS ★ DIVERS ★ Deutscher Zeichensatz unter CP/M 62 K mit vortex-RAMkarte SP 64-512 ★ |
Deutscher Zeichensatz unter CP/M 62 K mit vortex-RAMkarte SP 64-512 (CPC Magazin) | Applications Divers |
Vielen von Ihnen wird es sicher schon aufgefallen sein, daß die normalen Patch-Programme für den deutschen Zeichensatz unter CP/M mit vortex-RAMkarte nicht funktionieren. Da ich grundsätzlich mit einer DIN-Tastatur arbeite, habe ich folgendes Patch-Programm entwickelt: Das Programm VORTEX.COM erstellt den deutschen Zeichensatz unter dem 62-K-CP/M von vortex. Die Tastaturanpassung wurde hier nicht mit installiert, ich zeige aber später, wie dieses mit dem Utility SETUP.COM gemacht wird. Da Sie wahrscheinlich keine entsprechenden Tastaturaufkleber besitzen, überlasse ich es Ihnen, die Tastatur anzupassen. Nachdem Sie das Programm VORTEX.COM entweder mit einem Assembler oder mit dem Basiclader erstellt haben, rufen Sie dieses unter CP/M auf. Nach Programm-Meldung und Copyright-Ausgabe werden Sie gefragt, ob Sie den DIN- oder ASCII-Zeichensatz wünschen. Drücken Sie die entsprechende Taste. Danach können Sie sich entscheiden, ob der Patch sofort wirken soll oder erst später. Beim Neustart wird der entsprechende Zeichensatz installiert. Und genau dies ist das Besondere an dem Patch-Programm. Einmal installiert, und bei jedem Booten der CP/M-Diskette ist bereits der deutsche Zeichensatz und eventuell die DIN-Tastatur vorhanden. Es braucht jetzt nicht jedesmal das Patch-Programm aufgerufen zu werden. Lediglich wenn Sie wieder einen anderen Zeichensatz wünschen, muß der Patch neu erfolgen. Wie arbeitet nun das Programm? Dazu muß ich ein wenig tiefer in die Bankschaltung der vortex-RAMkarte einge-hen. Beim Booten der CP/M-Diskette ist nur Bank 0 (eingebautes RAM) aktiv. Die BIOS-Routinen sind zu diesem Zeitpunkt bereits installiert, ebenfalls alle Sprungvektoren des Betriebssystems. Lediglich die BDOS-Routinen und die CCP befinden sich noch nicht im Speicher. Jetzt wird der Kaltstarter von Diskette nach Adresse 0100H geladen und gestartet. Normalerweise wird dann das BDOS und die CCP von der Diskette nachgeladen. Beim vortex-CP/M wird statt dessen die Datei $OSC .SYS geladen und gestartet. Und genau hier greift mein Patch-Programm ein. An der ersten Adresse der Datei $OSC.SYS steht jetzt ein Sprungbefehl auf die neue Routine. Sie übergibt dem Betriebssystem den Zeichensatz und kehrt dann zur Datei $OSC.SYS zurück. Dort wird in Bank 1 (vortex-RAMkarte) das neue BIOS installiert, das BDOS und die CCP nachgeladen und gestartet. Den genauen Ablauf des Patch-Programmes können Sie im Assembler-Listing nachlesen. Nun noch ein paar Tips zur Anwendung Leider gibt es mehrere Versionen der vortex-Karte. Deshalb auch verschiedene $OSC.SYS Dateien. Das Patch-Programm ist auf die (hoffentlich) letzte Version, ausgeliefert ab 10/1985, abgestimmt. Die Datei $OSC.SYS hat in deutscher Zeichensatz unter CP/M 62 K mit vortex-RAMkarte SP 64-512 dieser Version eine Länge von 6 KByte. Es gab aber auch Versionen von 12 KByte Länge. Um nun das VORTEX.COM anzupassen, müssen Sie folgendes ermitteln: Die Länge der Datei $OSC.SYS, die Adresse, wo der Patch untergebracht wird, und die Sprungadresse, die beim Starten von $OSC.SYS angesprungen wird. Dazu gehen Sie folgendermaßen vor: Auf Ihrer Systemdiskette muß die Datei $OSC .SYS, das Programm STAT.COM und das Programm DDT.COM vorhanden sein. Geben Sie unter CP/M A> STAT $OSC.SYS ein. Auf dem Bildschirm erscheint nun z.B.:
Die erste Zahl Ist die Länge der Datei $OSC.SYS in 128-Byte-Blöcken. Zu dieser zählen Sie 2 hinzu. Die ermittelte Länge tragen Sie im Assembler-Listing bzw. im Basiclader in die Variable RECORDS ein. Dann geben Sie unter CP/M A>DDT $OSC.SYS ein, und auf dem Bildschirm erscheint nun z. B. folgendes:
Die Hexadezimalzahl 1600 ist der Anfang des freien Speichers im TPA. Hier wird der Patch-Treiber abgelegt. Tragen Sie diese Zahl in die Variable BASIS ein. Aber denken Sie daran, hexadezimal!! Drücken Sie dann die Taste ”D", während Sie im Debugger sind. Auf dem Bildschirm erscheint z. B. folgendes: 0100 C3 06 01 FF FF 00............usw.Die beiden Hexadezimalzahlen 06 und 01 bilden die Sprungadresse, die wir in der Variablen JUMP benötigen. Aber achten Sie darauf, daß die beiden Zahlen verdreht sind. Bei dem Beispiel heißt es nicht 0601H, sondern niflfiH, Sifi müssen sie immer umdrehen! Wenn Sie sich alles aufgeschrieben haben, muß die Änderung folgendermaßen aussehen: RECORDS$ = ”44” (dezimal) |
|
|