{home}Li-Pro.Net{/home}
Das Familiennetzwerk
Home | Stephan Linz | Projekte | Hobby | Kontakt | Nutzerzugang


Inhalt

> Allgemeines
> CP/M for Linux (CPM4L)
> CPMTOOLS, FDUTILS und YAZE

PC/M Tools

Werkzeuge für die PC/M Hard- und Softwareentwicklung

Mit den "PC/M Tools" (PCMTOOLS) wurde eine Sammlung nützlicher Programme rund um den PC/M begonnen. Hier soll deren Benutzung beschrieben werden. Bis jetzt beschränkt sich dessen Umfang nur auf ein paar Werkzeuge zur Generierung der EPROM Inhalte von Zeichengeneratoren.

Inhalt


1 Zeichengeneratoren
1.1 Bildschirmansteuerung 64x16 Zeichen (Original PC/M)
1.2 Bildschirmansteuerung 24x80 Zeichen für den PC/M

1 Zeichengeneratoren

Mit den beiden Programmen mkzg.6416 und mkzg.vid2k stehen zwei voneinander unabhängige Werkzeuge für die Generierung der EPROM Inhalte der beiden PC/M Bildschirmansteuerungen zur Verfügung. Die Idee hinter den Programmen ist die Konvertierung und Komposition verschiedener ASCII Einzelzeichen, die in Form von X11 Pixmaps vorliegen, zu einem Übersichtsbild als X11 Pixmap oder ein HEX Dump. Die Vorlagen der Einzelzeichen müssen hierfür bestimmte Voraussetzungen erfüllen, damit diese auch verarbeitet werden können:
  • nur zwei Farben

  • Hintergrund- bzw. OFF-Farbe ist mit "None" gekennzeichnet (transparent)

  • Vordergrund- bzw. ON-Farbe ist mit "#000000" gekennzeichnet

Nach der Insatllation der PC/M Tools, siehe dazu Artikel "CP/M for Linux (CPM4L)", sind unter /opt/cpm4l/share/pcmtools/ZG_* verschiedene vorgefertigte X11 Pixmaps und je ein Makefile abgelegt. Über den Makefile kann man schnell und einfach die verschiedenen EPROM Inhalte mit einer zugehörigen Übersicht (re-)generieren lassen. Für die Bearbeiten oder Neuerstellung von ASCII Einzelzeichen kann man jedes beliebige Bildverarbeitungsprogramm benutzen, das in der Lage ist auch X11 Pixmap Bilder nach den zuvor genannten Kriterien zu speichern. Zu empfehlen ist der Symboleditor KIconEdit aus dem KDE Projekt.

XPM zu BIN Konvertierung:

mkzg.6416 -x *.xpm | xxd -r -c 8 > out.bin
mkzg.vid2k -x *.xpm | xxd -r -c 16 > out.bin

1.1 Bildschirmansteuerung 64x16 Zeichen (Original PC/M)

Mit mkzg.6416 kann der EPROM Inhalt für die originale 64x16 Zeichen Bildschirmansteuerung generiert werden. Die hierfür notwendigen X11 Pixmap müssen eine Größe von 7x8 Pixel aufweisen.

HEX Dump von Einzel- oder Mehrfachzeichen

[user@host tryout]$ mkzg.6416 --hexdump ZG_6416/original/ascii_0x33.xpm
0000000: 38 44 04 18 04 44 38 00
[user@host tryout]$ mkzg.6416 --hexdump ZG_6416/original/ascii_0x3*.xpm
0000000: 38 44 4C 54 64 44 38 00
0000008: 10 30 10 10 10 10 38 00
0000010: 38 44 04 18 20 40 7C 00
0000018: 38 44 04 18 04 44 38 00
0000020: 08 18 28 48 7C 08 08 00
0000028: 7C 40 78 04 04 44 38 00
0000030: 18 20 40 78 44 44 38 00
0000038: 7C 04 08 10 20 20 20 00
0000040: 38 44 44 38 44 44 38 00
0000048: 38 44 44 3C 04 08 30 00
0000050: 00 30 30 00 00 30 30 00
0000058: 00 30 30 00 30 30 10 20
0000060: 04 08 10 20 10 08 04 00
0000068: 00 00 7C 00 7C 00 00 00
0000070: 40 20 10 08 10 20 40 00
0000078: 38 44 04 08 10 00 10 00
[user@euryale tryout]$ _

Einzelzeichenansicht und Kompositionsübersicht (X11 Pixmap)

[user@host tryout]$ mkzg.6416 --banner ZG_6416/original/ascii_0x33.xpm
____________________
|  ###  |  0x38
| #   # |  0x44
|     # |  0x04
|   ##  |  0x18
|     # |  0x04
| #   # |  0x44
|  ###  |  0x38
|       |  0x00
[user@host tryout]$ mkzg.6416 -o 8 ZG_6416/original/ascii_0x3*.xpm
/* XPM */
static char * stdout[] = {
"56 16 4 1",
"       c None",
"#      c #000000",
"|      c #FF0000",
"_      c #FFFF00",
"  ###     #     ###    ###      #   #####    ##   ##### ",
" #   #   ##    #   #  #   #    ##   #       #         # ",
" #  ##    #        #      #   # #   ####   #         #  ",
" # # #    #      ##     ##   #  #       #  ####     #   ",
" ##  #    #     #         #  #####      #  #   #   #    ",
" #   #    #    #      #   #     #   #   #  #   #   #    ",
"  ###    ###   #####   ###      #    ###    ###    #    ",
"                                                        ",
"  ###    ###                     #         #       ###  ",
" #   #  #   #   ##     ##       #           #     #   # ",
" #   #  #   #   ##     ##      #    #####    #        # ",
"  ###    ####                 #               #      #  ",
" #   #      #          ##      #    #####    #      #   ",
" #   #     #    ##     ##       #           #           ",
"  ###    ##     ##      #        #         #        #   ",
"                       #                                "};
[user@host tryout]$ _

1.2 Bildschirmansteuerung 24x80 Zeichen für den PC/M

Mit mkzg.vid2k kann der EPROM Inhalt für die weiterentwickelte 2 KByte Bildschirmansteuerung mit 24x80 Zeichen generiert werden. Die hierfür notwendigen X11 Pixmap müssen eine Größe von 8x10 Pixel aufweisen.

HEX Dump von Einzel- oder Mehrfachzeichen

[user@host tryout]$ mkzg.vid2k --hexdump ZG_VID2K/original/ascii_0x33.xpm
0000000: 83 FB F7 E7 FB BB C7 FF FF FF FF FF FF FF FF FF
[user@host tryout]$ mkzg.vid2k --hexdump ZG_VID2K/original/ascii_0x3*.xpm
0000000: C7 BB B3 AB 9B BB C7 FF FF FF FF FF FF FF FF FF
0000010: EF CF EF EF EF EF C7 FF FF FF FF FF FF FF FF FF
0000020: C7 BB FB E7 DF BF 83 FF FF FF FF FF FF FF FF FF
0000030: 83 FB F7 E7 FB BB C7 FF FF FF FF FF FF FF FF FF
0000040: F7 E7 D7 B7 83 F7 F7 FF FF FF FF FF FF FF FF FF
0000050: 83 BF 87 FB FB BB C7 FF FF FF FF FF FF FF FF FF
0000060: E7 DF BF 87 BB BB C7 FF FF FF FF FF FF FF FF FF
0000070: 83 FB F7 EF DF DF DF FF FF FF FF FF FF FF FF FF
0000080: C7 BB BB C7 BB BB C7 FF FF FF FF FF FF FF FF FF
0000090: C7 BB BB C3 FB F7 CF FF FF FF FF FF FF FF FF FF
00000A0: FF CF CF FF CF CF FF FF FF FF FF FF FF FF FF FF
00000B0: FF FF EF FF EF EF DF FF FF FF FF FF FF FF FF FF
00000C0: F7 EF DF BF DF EF F7 FF FF FF FF FF FF FF FF FF
00000D0: FF FF 83 FF 83 FF FF FF FF FF FF FF FF FF FF FF
00000E0: DF EF F7 FB F7 EF DF FF FF FF FF FF FF FF FF FF
00000F0: C7 BB FB F7 EF FF EF FF FF FF FF FF FF FF FF FF
[user@host tryout]$ _

Einzelzeichenansicht und Kompositionsübersicht (X11 Pixmap)

[user@host tryout]$ mkzg.vid2k --banner ZG_VID2K/original/ascii_0x33.xpm
____________________
| #####  |  0x83
|     #  |  0xFB
|    #   |  0xF7
|   ##   |  0xE7
|     #  |  0xFB
| #   #  |  0xBB
|  ###   |  0xC7
|        |  0xFF
|        |  0xFF
|        |  0xFF
[user@host tryout]$ mkzg.vid2k -o 8 ZG_VID2K/original/ascii_0x3*.xpm
/* XPM */
static char * stdout[] = {
"64 20 4 1",
"       c None",
"#      c #000000",
"|      c #FF0000",
"_      c #FFFF00",
"  ###      #      ###    #####      #    #####     ##    #####  ",
" #   #    ##     #   #       #     ##    #        #          #  ",
" #  ##     #         #      #     # #    ####    #          #   ",
" # # #     #       ##      ##    #  #        #   ####      #    ",
" ##  #     #      #          #   #####       #   #   #    #     ",
" #   #     #     #       #   #      #    #   #   #   #    #     ",
"  ###     ###    #####    ###       #     ###     ###     #     ",
"                                                                ",
"                                                                ",
"                                                                ",
"  ###     ###                       #             #       ###   ",
" #   #   #   #    ##               #               #     #   #  ",
" #   #   #   #    ##       #      #      #####      #        #  ",
"  ###     ####                   #                   #      #   ",
" #   #       #    ##       #      #      #####      #      #    ",
" #   #      #     ##       #       #               #            ",
"  ###     ##              #         #             #        #    ",
"                                                                ",
"                                                                ",
"                                                                "};
[user@host tryout]$ _

Autor:Stephan Linz
Revision:2021/01/14 - 00:04 - © Li-Pro.Net