Angeregt durch den Artikel
„memory block layout" von Cliff Lawson habe ich ein Programmpaket geschrieben, dass die Bearbeitung des Joyce-Zeichensatzes erlaubt.
Programm | Funktion |
SETMAT |
Dieses Assemblerprogramm erlaubt das Einlesen oder Neudefinieren von Zeichensätzen.
Wegen der einfacheren Weiterverarbeitung mit einer Hochsprache (ursprünglich BASIC) habe ich mich entschlossen, die binären Daten als Zeichen abzuspeichern.
Das Programm lädt mit Hilfe einer RSX einen Matrixeintrag, bestehend aus 8 Bytes, und wandelt diesen in 16 ASCII-Zeichen um.
Zum Neudefinieren werden 16 ASCII-Zeichen in 8 Bytes umgewandelt und ebenfalls mit einer RSX in die gewählte Matrix eingetragen.
[Ursprünglich war das Programm geschrieben für die 8080, hier später für die Z80 umgeschrieben]
|
CHARSET |
Dieses Assemblerprogramm ist als RSX ausgelegt und wird mit einer BDOS-Funktion aufgerufen, durch die aus der Zeichenmatrix eine spezielle 8-Byte Matrix geladen (Funktion 38 ) oder abgespeichert (Funktion 39 ) wird.
[Auch hier später als Z80 Kodierung]
|
MATEDIT |
Ein BASIC Programm zum Bearbeiten von Zeichensätzen.
Hiermit können eigene Zeichensätze individuell gestaltet werden.
Es wird ein ASCII-Datensatz eingelesen, dessen Matrixpunkte einzeln gesetzt oder gelöscht werden können.
|
In einem ersten Schritt habe ich dann das BASIC-Programm umgeschrieben in TURBO-Pascal,
hier die Quelle.
Ein Problem hierbei war, dass BASIC eine Datei mit wahlweisem Zugriff unterstützt, TURBO-Pascal jedoch nicht.
Gleichzeitig habe ich die Programme
SETMAT
und
CHARSET
zusammengefasst zu
SETMATV.
Nun erfolgt das Ein- und Auslesen der Matrix ohne RSX direkt aus dem COMMON-Memory.
1987 wurde von der
PC Schneider International auf der
Joyce-Programmsammlung Vol. 1 der
Character Designer angeboten.
Zeichensätze können als COM-Datei abgespeichert werden.
Das Programm war in TURBO Pascal geschrieben und verwendete statt einer externen Datei den direkten Zugriff auf die Zeichenmatrix des Joyce.
Die Bedienbarkeit und die Bearbeitungsmöglichkeiten waren weit besser als beim Matrix Editor.
[Interessehalber habe ich das Programm per Hand decompiliert, hier der
Hauptteil, eine
Include- sowie
Assembler Include-Datei]