SETTER.TTP, ein Konfigurator **************************** Die kleinen ASCII-Textfiles, mit denen viele Programme konfiguriert werden, sind mir auf die Nerven gegangen. Sie haben zwar den Vorteil der Žnderbarkeit mit jedem Texteditor, liegen als Nachteil aber mit im Verzeichnis rum und sind trotzdem oft nicht da, wo sie sein sollten. Deshalb habe ich die Konfigurationsinformationen direkt im Programm untergebracht und mit einer kurzen Erkl„rung versehen. Bei residenten Programmen liegen diese Erkl„rungen natrlich im nichtresidenten Teil (kein Problem bei Assemblerprogrammierung). Konfiguriert werden solche Programme mit SETTER, das die Informationen und Erkl„rungen aus dem Programm liest und die Konfiguration wieder im Programm speichert. Nutzung ------- Entweder man zieht das zu bearbeitende Programm mit der Maus auf SETTER.TTP oder tippt Namen (und evtl. Pfad) des Programms per Hand ein. SETTER erkennt mit sehr hoher Sicherheit automatisch, ob das Programm konfigurierbar ist oder nicht. Ist es konfigurierbar, so wird jeweils eine Option angezeigt und eine neue Angabe dafr erwartet. Alle Eingaben werden mit der Return-Taste abgeschlossen. Alles andere sollte sich selbst erkl„ren. Zum Schluž wird noch gefragt, ob man die Žnderungen wirklich speichern m”chte. Falls Fehler auftreten, hat SETTER einige Meldungen dafr brig. Copyright --------- SETTER.TTP darf zusammen mit diesem Text frei kopiert werden. Die C-Quelle SETTER.C darf nur zusammen mit SETTER.TTP und SETTER.TXT kopiert werden. Ich hafte natrlich in keinster Weise fr irgendwelche Auswirkungen oder Nichtwirkungen, die der Einsatz oder Nichteinsatz von SETTER.* hat. M”glicherweise finden auch andere Programmierer SETTER ntzlich, bitte, ihr drft es benutzen. Aber!: Wenn jemand eine erweiterte Version von SETTER in Umlauf bringt, muž: - diese ebenfalls frei kopierbar sein. - diese entsprechend gekennzeichnet sein. - er mir eine Nachricht, besser ein Exemplar, kostenlos zukommen lassen. Ich kann es nicht ausstehen, wenn jemand meine Spezifikation „ndert. Erweitern ist erlaubt und erwnscht, aber bitte keine bereits vorhandenen Kommandos „ndern. Mein Dank gilt Wolfgang Wander, der diesen meinen C-Programmierversuch entfehlert hat. (Sonst h„tte ich SETTER nochmal, in Assembler, schreiben mssen.) "Ich" bin: Harun Scheutzow, zu erreichen im Internet ber Harun_Scheutzow@B.maus.de bzw. im Mausnetz: Harun Scheutzow @B Versionen --------- SETTER gibt beim Start das Erstellungsdatum als Jahr-Monat-Tag aus, wobei neuere Versionen hoffentlich funktionell weiter- und fehlerm„žig zurck- entwickelt sind. (Der reine Anwender braucht nicht weiter zu lesen.) Spezifikation des Speicherns modifizierbarer Informationen in Programmen ------------------------------------------------------------------------ Harun Scheutzow, 21.11.1993 Die Modifikation erfolgt durch ein SETTER.TTP, welches das Programm bearbeitet, dessen Einsstellungen zu ver„ndern sind. Im TEXT- oder DATA-Segment befindet sich auf einer geraden Adresse der nullterminierte String "hAruNs cONfigER" (inklusive 0-Byte genau 16 Zeichen lang) und dahinter ein LONG-Zeiger auf den Anfang des Strings. In Assembler: .even hkbg: .dc.b "hAruNs cONfigER",0 .dc.l hkbg Darauf folgen als Liste die einzelnen Objekte, die aus Anzeigetext, Art der Konfiguration und Konfigurationsplatz bestehen. Der Anzeigetext ist ein C-String (also nullterminiert) und auf die n„chste gerade Adresse evtl. mit einem zus„tzlichen 0-Byte aufgefllt. Ist der Anzeigestring leer (nur 0-Byte), so endet hier die Liste der Objekte. Das Konfigurationskommando ist ein WORD (16Bit) mit folgenden m”glichen Werten im Highbyte: 0 Ja/Nein Entscheidung. Das folgende WORD wird fr JA auf $FFFF und fr NEIN auf $0000 gesetzt. 1 LONG-Werteingabe-Liste. Im Lowbyte steht die Anzahl der Listenelemente. Die folgenden LONG werden auf die Werte der eingegebenen 32-Bit-Integer gesetzt. Die interne ungltig-Kennung fr einen Platz ist $80000000. 2 (!!! noch nicht implementiert !!!) String-Eingabe. Im Lowbyte steht die Maximall„nge des Eingabestrings inklusive des abschlieženden Nullbytes. Diese L„nge muž gerade sein. Der eingegebene String wird unmittelbar hier hinter abgelegt und bis zur Maximall„nge mit 0-Bytes aufgefllt.