Atari ST - 1994
GFA BASIC Patcher

- Genre
- Patch / Driver
- Year
- 1994
- Language
- [unknown]
- Publisher
- [no publisher]
- Controls
- Mouse
- Distributor
- —
- Resolution
- Medium / High / VGA
- Developer
- [n/a]
- ST Type
- ST, STe, TT, Falcon030 / 0.5MB
- Licensed from
- —
- Programmer(s)
- Conrad, Christoph / Duchalski, Gregor
- Country

- MIDI
- —
- Software
- German
- Version
- 1.05
- Box/Instructions
- German
- Number of Disks
- 1 / Double Sided
- License
- PD / Freeware / Shareware
- Dump
- Download
- Serial
- —
- Dump format
- —
- Protection
- —
INSTRUCTIONS
---------------------------------------------------------------------------
- GFA-BASIC Interpreter/Compiler-Patcher -
- Version 1.05 -
---------------------------------------------------------------------------
- Compiler & Library-Patches von -
- Christoph Conrad, Adalbertsteinweg 113, D-52070 Aachen -
- eMail: Christoph_Conrad@AC3.maus.de -
- -
- Interpreter-Patches und GEM-Oberfläche von -
- Gregor Duchalski, Baueracker 15a, D-44627 Herne -
- eMail: Gregor_Duchalski@DO.maus.ruhr.de -
- -
- Herzlichen Dank für die englische Übersetzung an das -
- System ST Team -
---------------------------------------------------------------------------
Das vorliegende Programm gestattet es auf komfortable Weise, sinnvolle
Patches am GFA-BASIC 3.x Interpreter & Compiler vorzunehmen.
Wählen Sie bitte zu Beginn den Basic-Interpreter oder Compiler (GFA_BCOM.
PRG) aus. Danach gelangen Sie in den jeweiligen Einstellungsdialog.
Etwas vorweg: Sicherheitshalber sollten Sie die gepatchten Programme nicht
unter dem Originalnamen abspeichern. Wir übernehmen keine Gewähr für die
Funktionsfähigkeit der Patches, wer also seinen Interpreter zermanscht und
keine Sicherheitskopie besitzt, ist selber schuld!
---------------------------------------------------------------------------
Patchen des Compilers
---------------------------------------------------------------------------
Am Compiler bzw. an der Lib können zwei Veränderungen vorgenommen werden:
-Einfügung eines verbesserter INIT-Teils
-Bugfix für den Absturz unter MAGX!
Beide Patches können getrennt oder auch in 'einem Rutsch' vorgenommen
werden. Der MAG!X-Patch verändert nur die Datei GFA_BCOM.PRG, der INIT-
Patch auch die Library.
Im Patch-Dialog können Sie nun angeben, unter welchen Namen der gepatchte
Compiler bzw. die Library gespeichert werden sollen. Ggf. können Sie hier
auch die Original-Library erneut festlegen, falls der voreingestellte Name
nicht zutreffen sollte.
---------------------------------------------------------------------------
Patchen des Compilers I: Neuer INIT-Teil
---------------------------------------------------------------------------
Genaue Hintergrund-Informationen über den neuen INIT-Teil entnehmen Sie
bitte dem Text LIBPATCH.TXT. Eines vorweg: Das Beispiel-Listing ERR.LST
demonstriert die neuen Möglichkeiten.
Wichtig: Im Ordner LIBPATCH müssen sich die Dateien HIDEM.O, INIT35.O und
INIT36.O befinden!
Klicken Sie nun auf 'Patchen', so wird der automatische Patchvorgang ge-
startet. Am Ende wird versucht, mit dem Programm MAKE_NDX.PRG eine neue
Indexdatei (GFA3BLIB.NDX) zu erzeugen. Dieses Programm (es sollte sich im
Lieferumfang Ihres Compilers befunden haben) wird zunächst im Ordner der
Original-Library, danach im Ordner LIBPATCH gesucht. Bei Mißerfolg können
Sie diese Datei noch in der Dateiauswahlbox auswählen. Schlägt auch das
fehl, so beendet sich das Programm. Bedenken Sie bitte, daß Sie in diesem
Fall eine NDX-Datei 'per Hand' anlegen müssen. Vermeiden Sie diese Situa-
tion also besser.
Hinweis: Sollten Sie kein MAKE_NDX.PRG besitzen, können Sie dies von GFA
(hähähä) oder uns erhalten. Schicken Sie dazu Ihre Originaldiskette und
einen frankierten und adressierten Rückumschlag an G. Duchalski, Adresse
oben.
---------------------------------------------------------------------------
Patchen des Compilers II: MAG!X-Bugfix
---------------------------------------------------------------------------
Der Compiler stürzt unter MAG!X mit der Meldung "Speicherblock zerstört"
ab. Ursache:
Der Compiler reduziert per MShrink (GEMDOS 74) seinen Speicherbedarf auf
das Notwendige. Per Malloc (GEMDOS 72) fragt er dann nach dem größten
verfügbaren Speicherblock und alloziert diese Größe abzüglich 16 KByte.
Leider geht das Programm davon aus, daß der allozierte Speicher direkt
hinter dem vorher geshrinkten Bereich liegt. Im allgemeinen stimmt dies
sogar. Unter MAG!X liegt vor dem allokierten Speicherblock (die Adresse,
die MAlloc zurueckgibt) allerdings ein sogenannter MCB, der 'Memory
Control Block'.
Dieser enthält
- eine Kennung ('ANDR' oder 'KROM', einer der Programmierer,
Andreas Kromke, läßt grüßen)
- die Länge des allozierten Blocks
- die Basepageadresse des Programmes, welchem der Block gehört
- den Zeiger auf den letzten MCB.
Der GFA-Compiler ueberschreibt den MCB. Nach dem Terminieren des Compilers
überprüft MAG!X, ob die Kette der MCBs noch in Ordnung ist und meldet den
beschriebenen Fehler.
Übrigens: Auch unter MultiTOS tritt dieses Problem zunächst auf. Hier kann
es jedoch durch Setzen der memory-protection-flags im PRG-Header auf GLOBAL
einfacher behoben werden.
Durch den Patch benutzt der GFA-Compiler die ersten 16 Byte des hinter dem
MShrink liegenden Speicherbereiches nicht mehr und überschreibt demzufolge
keinen MCB. Das Verhalten des Compilers bleibt trotzdem inkorrekt, da der
allozierte Bereich nicht unbedingt hinter dem vom Compiler noch belegten
Speicher liegen muß (obwohl dies in der Regel zutrifft).
---------------------------------------------------------------------------
Patchen des Interpreters
---------------------------------------------------------------------------
Hierbei handelt es sich entweder um von GFA dokumentierte, praktische
Konfigurationspatches oder um Fehlerkorrekturen.
Patchbare Interpreter:
Version: Dateilänge:
3.6TT 104770
104766
104739
104597 (englische Version)
3.5E 103510
3.50 102519
102523
3.07 92894
Was wird im Interpreter gepatcht?
-Keine LINEA-Aufrufe mehr:
Siehe auch LIBPATCH.TXT. Beim Bewegen der Maus im Editor gibt es zwar
nun leichte Flecken, dafür aber keine beim laufenden Programm.
-Keine SETCOLOR-Aufrufe mehr, die auf dem TT die Farben verstellen:
Das Basic begeht beim internen Setzen und Abfragen der Bildschirmfarben
einen Fehler, der in Auflösungen wie TT-Mittel dazu führt, daß nach dem
Interpreter-Lauf einige Farben verstellt sind. Dieser Patch verhindert
dies. Auch der Befehl SETCOLOR hat danach keine Wirkung mehr. Hier sollte
ohnehin besser VSETCOLOR verwendet werden.
Hinweis: Beachten Sie, daß das weiter unten aufgeführte Patchen der
Editorfarben in Zusammenhang mit dem SETCOLOR-Patch keine Wirkung hat!
-Kein Abbruch mehr bei MERGE, wenn ASCII 4 im Quelltext vorkommt:
Der Interpreter bricht normalerweise das Mergen von Files, die das
Zeichen ASCII 4 (EOT == End of transmission, CONTROL D, Pfeil nach links)
enthalten, ab der entsprechenden Zeile ab. Unter UN*Xen ist ASCII 4 das
Dateiendezeichen, was auf einst recht grosse Ambitionen von GFA-System-
technik hindeutet. Dieser Patch unterbindet dieses störende Verhalten.
-CALL-Bug beheben:
Der CALL-Befehl im Interpreter Version 3.6 D TT der Groesse 104770 Byte
ist aufgrund eines Tippfehlers (movem.l a4/a6,-(sp) anstatt movem.l
a4-a6,-(sp)) fehlerhaft. Der Patch 'repariert' diesen Befehl.
-Systemspeicher freilassen:
Der Interpreter reserviert sich beim Start den kompletten Systemspeicher
bis auf 16KB. Das ist speziell auf nicht TT-Maschinen oft ein bißchen
wenig, da z.B. Accessories dann zu wenig Speicher bekommen und eventuell
die Arbeit verweigern. Mit diesem Patch kann nun festgelegt werden,
wieviel KB der Interpreter freiläßt (z.B. 32).
-'Neue Namen' aktivieren:
Der Menüeintrag 'Neue Namen' wird automatisch mit einem Häkchen versehen.
-Die DEFLIST-Voreinstellung
-Die Editor-Farben
Hinweis: Das funktioniert nicht, wenn gleichzeitig 'SETCOLOR-Aufrufe
unterbinden' aktiviert ist.
-Der Default-Variablentyp, der ohne Postfix eingegeben werden darf.
Voreingestellt Float.
-Kein CLS bei Programmstart
Das Patchen ist denkbar einfach: Nur die zu patchenden Optionen festlegen
und 'Patchen...' anwählen. Danach kann der gepatchte Interpreter unter
einem neuen Namen gespeichert werden.
---------------------------------------------------------------------------
Versions-History
---------------------------------------------------------------------------
Vers. Datum
24.07.93 -Erste vorläufige Version. Und schon ändere ich mal
kurz die Versionsnummernzählung. :-)
0.90ß 26.07.93 -MERGE-Patch für den 3.50er Interpreter eingebaut.
-Default-Variablentyp des geladenen Interpreters
wird ausgelesen und angezeigt.
-Patches um weitere Versionen erweitert.
0.91ß 27.07.93 -Kein 'Mäusedreck' bei Dateiauswahlbox mehr
-Mit der Compiler-Patch-Unterstützung begonnen.
0.92ß 29.07.93 -DEFFILL-Patch eingebaut, war in der Tat falsch
dokumentiert.
-GFA_BCOM.PRG wird nicht mehr anhand einer Tabelle
ausgewertet, sondern alle nötigen Daten werden direkt
aus der Datei geholt.
01.08.93 -Der Compiler wurde falsch gepatcht.
0.93 08.08.93 -Library-Patches integriert.
0.94 13.08.93 -Aufruf des MAKE_NDX-Programmes war fehlerhaft.
-MERGE-Patch für den 3.5E Interpreter eingebaut.
-Anleitung überarbeitet.
0.95 19.08.93 -Restliche Patches eingebaut: Line-A und SETCOLOR-
Unterdrückung für die Version 3.07.
-DEFFILL-Patch um den Wert 8 erweitert.
-Doku nochmal überarbeitet.
0.96 28.08.93 -3.6 Interpreter mit 104739 Bytes wird unterstützt.
-Line-A Patch für 3.07 funktionierte nicht.
0.97 27.09.93 -3.6 Interpreter mit 104766 Bytes wird unterstützt.
0.98 29.09.93 -Mit den Anpassungen an den MAG!X-Compiler-Patch begonnen.
02.10.93 -MAG!X-Patch komplett eingebaut.
04.10.93 -Zu Beginn erscheint jetzt ein kurzer Informationsdialog.
0.99 23.01.94 -Neuer INIT-Teil, der alte enthielt einen Fehler im
Zusammenhang mit Fließkommavariablen.
-Das Programm benutzt kein LINEA mehr.
1.00 07.02.94 -Der SETCOLOR-Patch beim 3.50 Interpreter klappte nicht.
-Ein weiterer Patch wurde hinzugefügt: Die Größe des
Speichers, die der Interpreter beim Start dem System
läßt, kann geändert werden. Default sind 16KB, weniger
kann sinnvoll sein, wenn man z.B. Accessories (ERGO!help)
mehr Speicher lassen möchte.
-3D-Effekte unter MTOS und MAG!X waren fehlerhaft.
-Wenn beim Start SHIFT, CONTROL oder ALTERNATE gedrückt
wird, erscheint der Infodialog nicht mehr sondern direkt
die Dateiauswahlbox.
1.01 10.04.94 -Der LINEA-Patch für den 102523 Bytes Interpreter war
fehlerhaft.
-Der Speicher-Patch funktionierte auf dem ST nur bis
zum nächsten RESERVE-Aufruf, danach waren wieder nur
16 KB frei.
15.04.94 -Bei erfolgreich abgeschloßenem Patchvorgang
erscheint jetzt eine entsprechende Meldung.
1.02 15.05.94 -SETCOLOR-Patch für 3.5 Interpreter mit 102519 Bytes
klappte nicht (Andre Muller).
-Da der Editorfarben-Patch sinnlos ist, wenn man gleich-
zeitig alle SETCOLORs unterdrückt, wird dies jetzt durch
disablen der entsprechenden Einstellung deutlich gemacht
(David Reitter).
1.03 20.07.94 -Einige interne Überarbeitungen und zusätzliche Sicher-
heitschecks, außerdem Anpassungen an die neue englische
Version.
-'Patchen...' beim Interpreter ist jetzt nicht mehr
wählbar, wenn Patch Option angewählt wurde.
1.04 11.08.94 -Englischer 3.6 Interpreter mit 104597 Bytes
wird unterstützt.
1.05 29.08.94 -'Neue Namen'-Voreinstellung kann gepatcht werden.
---------------------------------------------------------------------------
Programmstatus und Haftung
---------------------------------------------------------------------------
GFA_PTCH ist Freeware und darf weitergegeben werden, solange alle zum
Lieferumfang des Orginalarchivs gehörenden Dateien enthalten sind. Die
kommerzielle Nutzung des Programms ist verboten. Der Vertrieb über PD-
Versender ist erlaubt, solange das zu zahlende Entgeld den Betrag von
DM 10.- nicht übersteigt.
Wir übernehmen keinerlei Haftung für die Funktionsfähigkeit dieses Pro-
grammes oder Schäden jeglicher Art, die durch die Benutzung von GFA_PTCH
entstanden sein könnten.
Die neueste Version dieses Programmes ist immer in der Maus DO zu finden.
Wer Vorschläge hat, weitere Patches kennt oder eine Basic-Version besitzt,
die nicht unterstützt wird, kann sich gerne an uns wenden.
Viel Spaß wünschen
Gregor Duchalski & Christoph Conrad
--------------------------------------------------------------------------
