CPX-Builder: Programm zum Erstellen und Modifizieren von CPX-Headern

Version 1:      CPXBUILD.PRG/.ACC - CPX-Builder
                Public Domain
                entwickelt mit Lattice C 5.5
                von Volker Hemsen - 23.8.1992

Version 2:      CPXBUILD.APP - CPX-Builder
                Public Domain
                entwickelt mit GNU C++
                von Volker Hemsen - 03.-04.10.1997

Einleitung:

Es gibt mittlerweile schon eine ganze Reihe von Utilities zum Erstellen von
CPX-Headern. Dieses Programm ist also nichts neues, und auerdem wohl auch
kaum das beste!

Fr alle Laien:
Mit dem Kontrollfeld XCONTROL von Atari kann man mehrere verschiedene
Programme (dort CPX-Module genannt) unter einem Accessory-Eintrag
aufrufbereit halten! Diese Module unterscheiden sich nur in wenigen
Punkten von einem normalen GEMDOS-Programm. Der wichtigste ist wohl, da
Sie einen 512 Bytes langen Header haben! Zum Erstellen solcher Header
bedient man sich am besten eines CPX-Builders. Wo wir nun also beim Thema
sind.

Version 1

CPXBUILD luft als Programm oder Accessory und belegt ca. 9kB RAM.
Mit Ihm kann man Header-Dateien einlesen, bearbeiten und wieder
abspeichern. Da der Anfang eines CPX im Grunde ja aus diesem Header
besteht, ist es auch mglich die Header fertiger Module zu manipulieren!

Und hier noch ein Tip fr alle, die sich mal mit CPX-Headern direkt
auseinander setzen wollen: Im Profibuch werden die Eintrge fr die Farben
von Ikone und Text als i_color und t_color bezeichnet. Die Namen sind
etwas irrefhrend, denn diese beiden Worte enthalten nicht nur die Farben,
sondern auch Informationen ber Fllmuster, Hindergrundfarben, Rahmen usw.
Tatsache ist, da i_color dem Format des ib_char aus der ICONBLK-Struktur
entspricht, und t_color als te_color in die TEDINFO-Struktur pat.

Alles weitere steht im ST-STE-TT-Profibuch von SYBEX.

Version 2

Es sind nun ber fnf Jahre ins Land gegangen, bis ich eine neue Version
des CPX-Builders aufgelegt habe. (Hat den alten eigentlich irgendwer be-
nutzt?) Leider leider ist er im Programmumfang etwas (leichte Untertrei-
bung) mehr geworden, aber dafr ist alles schner, besser, umfangreicher,
einfach gut. Und da es sowieso nicht mehr als Accessory luft, sollte
keiner so direkt an der Speicherverschwendung leiden.
Entwickelt wurde die neue Version mit GNU C++, der GNU-Shell AGNUS (gibt
es bei mir, Adresse steht unten) und einer Klassenbibliothek zur Erstel-
lung von Applikationen (App++, ist noch nicht erhltlich) und diese ist
wohl etwas umfangreich geworden...

Die Funktionen im Einzelnen:
- linke Seite des Dialog-Fensters:
  - Name: Hauptname des CPX-Moduls
  - ID: mglichst eindeutige Identifikationsnummer
  - Version: Version des Moduls (neuere sollten eine grere Nummer
    tragen :-)
  - Farbe: Popup zur Auswahl einer aus 16 Farben fr den Hauptnamen
  - Flags:
    - resident: Modul wird vom Kontrollfeld whrend dessen Laufzeit
      im Speicher behalten, steht also ohne Zugriff auf den Massenspeicher
      zur Verfgung (ideal fr Puritaner ohne Festplatte).
    - bootinit: Modul wird schon beim Start des Kontrollfeld-Servers kurz
      aktiviert. z.B. um Systemeinstellungen vorzunehmen
    - setonly: Modul hat nicht viel zu zeigen, sondern mchte nur ein paar
      Einstellungen vornehmen und wird somit nicht in die Liste aufge-
      nommen.
  - Image: 32*24 Pixel groes monochromes Bildchen
    - Text: Kurzer Text, der unterhalb des Images erscheint.
    - Farbe: Popup zur Auswahl von einer aus 16 Farben fr die Darstellung
      des Images und des Image-Textes.
- rechte Seite des Dialog-Fensters:
    - Image-Maske: 32*24 Pixel groes monochromes Rasterbild
      - '+': Modus um nur Pixel zu setzen
      - '-': Modus um nur Pixel zu lschen
      - '': Modus um Pixel zu invertieren: 1->0->1->0->1->0 ...
      - '1': Das gesamte Bild mit einer Farbe fllen.
      - '0': Das gesamte Bild lschen, mir weien Punkte fllen.
      - '': Jeden zweiten Pixel setzen bzw. lschen. (50% Grauraster)
      - Curser: Das gesamte Bild in die entsprechende Richtung
        verschieben. Herauslaufende Zeilen bzw. Spalten werden unwieder-
        ruflich gelscht!
      - Maus: Punkte werden durch Mausklick entsprechend dem eingestellten
        Modus verndert.
- Info-Zeile des Fensters:
  Pfad der gerade geladenen Datei.
- Fenstermen:
  - Mentitel Info
    - ber: Fenster mit Programminfo.
  - Mentitel Datei
    - laden: In einem Dateiauswahldialog kann eine Datei ausgewhlt werden
      deren Kopf als CPX-Header geladen wird. In Frage kommen bereits fer-
      tige Module wie *.CPX, *.CPZ oder Modul-Header mit blicherweise
      *.HDR.
    - speichern: Die Daten werden in die zuvor angegebene Datei gespei-
      chert, wobei nur die alten Daten berschrieben werden, d.h. der Rest
      (z.B. das Programm im CPX-Modul) bleibt erhalten.
    - speichern als: Wie bei speichern, nur das zuvor in einem Dateiaus-
      wahldialog ein neuer Dateinamen eingestellt werden kann.
    - Quit: Die Fenster werden geschlossen, deren Positionen auf dem Bild-
      schirm und der Name der aktuellen Datei gespeichert und das Programm
      beendet.
  - Mentitel Daten
    - lschen: Die gesamten Daten werden zurckgesetzt. Eine evtl. gela-
      dene Datei ist erst nach dem Speichern davon betroffen.
    - Buffer lschen: Im CPX-Header ist ein kleiner Bereich von 64 Bytes
      fr globale Einstellungen des Moduls vorhanden. Dieser wird mit
      dieser Funktion auf 0 gesetzt, was natrlich erst nach dem Speichern
      in eine Datei Auswirkungen hat.
    - Image snappen: Mit einer kleinen Snap-Routine kann ein Bildschirm-
      ausschnitt von 32*24 Pixel gewhlt werden, der dann ins Image ko-
      piert wird. Der Farbbetrieb ist noch nicht getestet!

Wenn Sie weitere Anregungen oder Fragen haben, hier meine Adresse:

        Volker Hemsen
        Gremskampstrae 3
        23714 Malente-Gremsmhlen
        Germany

