|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
PC/M ToolsWerkzeuge für die PC/M Hard- und SoftwareentwicklungMit 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.
Inhalt1 Zeichengeneratoren
1.1 Bildschirmansteuerung 64x16 Zeichen (Original PC/M)
1.2 Bildschirmansteuerung 24x80 Zeichen für den PC/M 1 ZeichengeneratorenMit 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:
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/MMit 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]$ _
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Copyright © 2000-2021 by Li-Pro.Net · info (at) li-pro (dot) net · Tel.: +49 (0) 3641 / 21 23 02 · cms: phpwcms | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||