home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / utility / misc / setter / setter.txt < prev    next >
Text File  |  1993-12-06  |  10KB  |  255 lines

  1. SETTER.PRG, ein Konfigurator
  2. ****************************
  3.  
  4. Copyright
  5. =========
  6.  
  7. SETTER.PRG darf zusammen mit diesem Text frei kopiert werden, soweit die 
  8. Bedingungen aus der Info-Box < SETTER | Über Setter ... | Info > befolgt 
  9. werden.
  10.  
  11. Ich hafte natürlich in keinster Weise für irgendwelche Auswirkungen oder 
  12. Nichtwirkungen, die der Einsatz oder Nichteinsatz von SETTER.* hat. Es ist 
  13. zwar nicht sehr wahrscheinlich, aber durchaus möglich, daß SETTER irgendwelche 
  14. Daten vernichtet, die für Sie essentielle Bedeutung haben!
  15.  
  16. Originalton Harun:
  17.  
  18. Möglicherweise finden auch andere Programmierer SETTER nützlich, bitte, 
  19. ihr dürft es benutzen. Aber!:
  20. Wenn jemand eine erweiterte Version von SETTER in Umlauf bringt, muß:
  21. - diese ebenfalls frei kopierbar sein.
  22. - diese entsprechend gekennzeichnet sein.
  23. - er mir eine Nachricht, besser ein Exemplar, kostenlos zukommen lassen.
  24. Ich kann es nicht ausstehen, wenn jemand meine Spezifikation ändert. 
  25. Erweitern ist erlaubt und erwünscht, aber bitte keine bereits vorhandenen 
  26. Kommandos ändern.
  27.  
  28. "Ich" bin: Harun Scheutzow,
  29. zu erreichen im Internet über
  30. Harun_Scheutzow@B.maus.de
  31. bzw. im Mausnetz: Harun Scheutzow @B
  32.  
  33. Ende des Originaltons.
  34.  
  35.  
  36. SETTERs Sinn und Zweck:
  37. =======================
  38.  
  39. Die kleinen ASCII-Textfiles, mit denen viele Programme konfiguriert werden,
  40. sind Harun auf die Nerven gegangen. Sie haben zwar den Vorteil der
  41. Änderbarkeit mit jedem Texteditor, liegen als Nachteil aber mit im
  42. Verzeichnis rum und sind trotzdem oft nicht da, wo sie sein sollten.
  43.  
  44. Deshalb hat er die Konfigurationsinformationen direkt im Programm
  45. untergebracht und mit einer kurzen Erklärung versehen. Bei residenten
  46. Programmen liegen diese Erklärungen natürlich im nichtresidenten Teil (kein
  47. Problem bei Assemblerprogrammierung). Konfiguriert werden solche Programme
  48. mit SETTER, das die Informationen und Erklärungen aus dem Programm liest und
  49. die Konfiguration wieder im Programm speichert.
  50.  
  51.  
  52. Nutzung
  53. =======
  54.  
  55. Entweder man zieht das zu bearbeitende Programm mit der Maus auf 
  56. SETTER.PRG oder ruft SETTER von einer Shell mit einer Befehlszeile auf oder 
  57. startet es durch Doppelklick. Ob Programm wirklich konfigurierbar sind, 
  58. erkennt SETTER mit hoher Sicherheit automatisch.
  59.  
  60. In der Befehlszeile sind folgende Kommandos erlaubt, die entsprechende ihrer 
  61. Reihenfolge abgearbeitet werden:
  62.   -I:<datei>
  63.     Programm oder Setterblockdatei laden.
  64.   -E:<datei>
  65.     Obersten Konfigurationsblock in die Datei speichern.
  66.   -C
  67.     Obersten Konfiguationsblock freigeben.
  68.   -C:<datei>
  69.     Konfigurationsblock, der aus der angegebenen Datei geladen wurde, freigeben.
  70. Beispiel:
  71.   -I:Datei1.PRG -E:Datei1.BLK -I:Datei2.PRG -C:Datei1.PRG -C
  72.   1. Datei1.PRG lesen
  73.   2. Den gelesenen Konfigurationsblock aus Datei1.PRG nach Datei1.BLKL 
  74.      speichern
  75.   3. Datei2.PRG lesen
  76.   4. Den Konfigurationsblock von Datei1.PRG vergessen
  77.   5. Den obersten Konfigurationsblock - das ist der aus Datei2.PRG - vergessen
  78.  
  79. Wurde SETTER ohne Kommandos gestartet, so erscheint eine GEM-Oberfläche mit 
  80. Menüzeile. U.U. öffnen sich gleich ein paar Fenster, nämlich falls Dateinamen 
  81. übergeben wurden.
  82.  
  83.  
  84. Das Menü
  85. ========
  86.  
  87. Die Tastaturkürzel im Menü können mit Hilfe eines RSC-Kontruktion-Sets 
  88. geändert werden. Es ist lediglich zu beachten, daß dem Kürzel kein Leerzeichen 
  89. mehr folgen darf.
  90.  
  91. SETTER
  92. ------
  93.   Hier findet sich nur der Menüpunkt < Über SETTER ... >, der sich selbst 
  94.   erklärt.
  95.  
  96. Datei
  97. -----
  98.  
  99. < Öffnen ... >
  100.   Über eine Dateiauswahl kann ein Konfigurationsblock aus einem Programm oder 
  101.   einem gespeicherten Setterblock eingelesen werden. Es öffnet sich dann ein 
  102.   Fenster, in dem die Konfiguration angezeigt wird.
  103.  
  104. < Schließen >
  105.   Der oberste Konfigurationsblock wird freigegeben. Wurden Änderungen daran 
  106.   vorgenommen, so erfolgt eine Sicherheitsabfrage, ob er nicht zunächst 
  107.   gesichtert werden soll.
  108.  
  109. < Sichern >
  110.   Der oberste Konfigurationsblock wird in die Datei gespeichert, aus der er 
  111.   stammt.
  112.  
  113. < Sichern als ... >
  114.   Der oberste Konfigurationsblock kann in eine andere oder eine neue Datei 
  115.   gespeichert werden. Wird in eine existierende Datei gespeichert, so erfolgt 
  116.   eine Überprüfung, ob diese Datei überhaupt einen Konfigurationsblock mit 
  117.   identischen Aufbau besitzt. Ist das nicht der Fall, verweigert SETTER die 
  118.   Zerstörung der Datei.
  119.   Wird in eine neue Datei gespeichert, so wird in dieser nur der 
  120.   Konfigurationsblock mit einer vorangestellten Kennung gespeichert.
  121.   Besitzt die Datei die Endung ".C", ".H" oder ".S", so tritt ein Sonderfall 
  122.   in Aktion. Bei ".S" wird eine Assemblersourcedatei mit dem 
  123.   Konfigurationsblock gespeichert; bei ".H" eine C-Headerdatei mit der 
  124.   Definition eines Types SETTERBLK, der im Aufbau genau dem 
  125.   Konfigurationsblock entspricht. Bei ".C" wird eine Initialisierung für eine 
  126.   Variable setterblk von genau diesem Typ gespeichert und außerdem die 
  127.   zugehörige C-Headerdatei.
  128.   Befinden sich in den Erklärungen Strings, die mit einem # beginnen und 
  129.   maximal 10 Zeichen enthalten, die einen gültigen C-Bezeichner darstellen, so 
  130.   werden in der C-Headerdatei Untertypen damit benannt.
  131.  
  132. < Beenden >
  133.   Alle offenen Konfigurationsblöcke werden geschlossen und SETTER beendet.
  134.  
  135.  
  136. Fensterbedienung
  137. ================
  138.  
  139. Die Fenster sind normal bedienbar. Das oberste Fenster kann außer mit der 
  140. Maus auch über verschiedene Tasten bedient werden. Durch Anklicken einer 
  141. Zeile, wird der Cursor sichtbar. Dieser kann dann mit den Cursortasten AUF und 
  142. AB verschoben werden. Mit LINKS und RECHTS wird der Fensterinhalt nach links 
  143. und rechts verschoben. Mit SHIFT-LINKS und SHIFT-RECHTS gelangt man an den 
  144. Anfang bzw. das Ende des darstellbaren Bereichs, mit CTRL-LINKS und 
  145. CTRL-RECHTS seitenweise nach links bzw. rechts.
  146.  
  147. Durch Doppelklick oder mit Enter/Return wird zur entsprechenden Zeile eine 
  148. Dialogbox angezeigt. In dieser kann die Konfiguration geändert werden.
  149.  
  150. Das war schon alles in der Bedienung.
  151.  
  152.  
  153. Danksagung:
  154. ===========
  155.  
  156. Mein Dank gilt Harun Scheutzow, der zwar des öfteren eine andere Auffassung 
  157. als ich vertritt, aber dennoch immer wieder ganz brauchbare Ideen hat. Vom ihm 
  158. stammt die Idee und erste Ausführung von SETTER (als kleines TTP).
  159.  
  160.  
  161. Versionen
  162. =========
  163.  
  164. In der Dialogbox über Setter < SETTER | Über SETTER ... > wird ein Datum 
  165. angezeigt. Dieses gibt an Stelle einer Versionsnummer die Version wieder. Bei 
  166. Fragen und Problemen sollte dieses Datum mit angegeben werden.
  167.  
  168. Ich bin im MausNet per e-mail erreichbar:
  169. Markus Kohm @ KA2
  170. oder via Internet: 
  171. Markus_Kohm@KA2.maus.de
  172.  
  173.  
  174. (Der reine Anwender braucht nicht weiter zu lesen.)
  175. Spezifikation des Speicherns modifizierbarer Informationen in Programmen
  176. ========================================================================
  177.  
  178. Original von Harun Scheutzow, 21.11.1993
  179. erweitert von Markus Kohm, 06.12.1993
  180.  
  181.  
  182. Die Modifikation erfolgt durch ein SETTER.TTP oder SETTER.PRG, welches das
  183. Programm bearbeitet, dessen Einsstellungen zu verändern sind.
  184.  
  185. Im TEXT- oder DATA-Segment befindet sich auf einer geraden Adresse der 
  186. nullterminierte String "hAruNs cONfigER" (inklusive 0-Byte genau 16 Zeichen 
  187. lang) und dahinter ein LONG-Zeiger auf den Anfang des Strings. In 
  188. Assembler:
  189.  
  190.       .even
  191. hkbg:
  192.       .dc.b "hAruNs cONfigER",0
  193.       .dc.l hkbg
  194.  
  195. Enthält die Datei lediglich einen Setterblock, ohne ein Programm zu sein, so 
  196. beginnt sie mit:
  197.  
  198.       .dc.b "MaRkus cONfigER",0
  199.  
  200. Darauf folgen als Liste die einzelnen Objekte, die aus Anzeigetext, 
  201. Art der Konfiguration und Konfigurationsplatz bestehen.
  202.  
  203. Der Anzeigetext ist ein C-String (also nullterminiert) und auf die nächste 
  204. gerade Adresse evtl. mit einem zusätzlichen 0-Byte aufgefüllt. Ist der 
  205. Anzeigestring leer (nur 0-Byte), so endet hier die Liste der Objekte.
  206.  
  207. Das Konfigurationskommando ist ein WORD (16Bit) mit folgenden möglichen 
  208. Werten im Highbyte:
  209.  
  210. 0
  211. Ja/Nein Entscheidung. Das folgende WORD wird für JA auf $FFFF und für 
  212. NEIN auf $0000 gesetzt.
  213.  
  214. 1
  215. LONG-Werteingabe-Liste. Im Lowbyte steht die Anzahl der Listenelemente. 
  216. Die folgenden LONG werden auf die Werte der eingegebenen 32-Bit-Integer 
  217. gesetzt. Die interne ungültig-Kennung für einen Platz ist $80000000.
  218.  
  219. 2
  220. String-Eingabe. Im Lowbyte steht die Maximallänge des Eingabestrings 
  221. inklusive des abschließenden Nullbytes. Diese Länge muß gerade sein. Der 
  222. eingegebene String wird unmittelbar hier hinter abgelegt und bis zur 
  223. Maximallänge mit 0-Bytes aufgefüllt.
  224.  
  225. 3
  226. WORD-Werteingabe-Liste. Im Lowbyte steht die Anzahl der Listenelemente.
  227. Die folgenden WORD werden auf die Werte der eingegebenen 16-Bit-Integer 
  228. gesetzt. Die interne ungültig-Kennung für einen Platz ist $8000.
  229.  
  230. 4
  231. Derzeit nicht verwendet, aber für mich reserviert.
  232.  
  233. 5
  234. LONG-Werteingabe-Liste mit Wertbereichseingrenzung. Im Lowbyte steht die
  235. Anzahl der Listenelemente. Bevor nun die Liste wie bei 1 kommt, folgen zwei
  236. LONG, welchen die untere und obere Grenze des erlaubten Wertebereichs
  237. bestimmen. Die folgenden LONG werden auf die Werte der eingegebenen
  238. 32-Bit-Integer gesetzt. Die interne ungültig-Kennung für einen Platz ist
  239. $80000000, darf aber nur verwendet werden, wenn dies im Wertebereich liegt.
  240.  
  241. 6
  242. Datei- oder Pfadname. Entspricht grundsätzlich 2, jedoch ist die Länge auf 
  243. maximal 128 Byte beschränkt und im Stringdialog ist zusätzlich der Aufruf 
  244. einer Dateiauswahlbox möglich.
  245.  
  246. 7
  247. WORD-Werteingabe-Liste mit Wertbereichseingrenzung. Im Lowbyte steht die
  248. Anzahl der Listenelemente. Bevor nun die Liste wie bei 3 kommt, folgen zwei
  249. WORD, welchen die untere und obere Grenze des erlaubten Wertebereichs
  250. bestimmen. Die folgenden WORDwerden auf die Werte der eingegebenen
  251. 16-Bit-Integer gesetzt. Die interne ungültig-Kennung für einen Platz ist
  252. $8000, darf aber nur verwendet werden, wenn dies im Wertebereich liegt.
  253.  
  254. Das war's bisher.
  255.