AtarimaniaAtarimania

Atari ST - 1994

GFA BASIC Patcher

GFA BASIC Patcher — screenshot 1
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
Germany
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

--------------------------------------------------------------------------