home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ST-Computer Leser 1998 October
/
STC_CD_10_1998.iso
/
BASE
/
BASTARD
/
BASTARD.TXT
< prev
next >
Wrap
Text File
|
1998-09-26
|
21KB
|
483 lines
---------------------------------------------------------------------------
BASTARD 1.0 ** Shareware ** Copyright ╜ 1998 by Ulli Gruszka
---------------------------------------------------------------------------
Starthilfe für GFA-BASIC
---------------------------------------------------------------------------
1. Intention
2. Installation
3. Konfiguration
4. Sonstige Singletasks
5. Rechtliches
1. Intention
============
In erster Linie ist BASTARD ein Tool für GFA-BASIC-Programmierer. Sollten
Sie Sich BASTARD nicht für Ihr GFA-BASIC besorgt haben, sondern als
universelle Starthilfe für andere Singletasks, so lesen Sie bitte auch die
Hinweise in Kapitel 4. Im Anschlu₧ geht es hier nun überwiegend um die
Verwendung von BASTARD als Starter für den Basic-Interpreter:
Da es sich beim GFA-BASIC-Interpreter nicht gerade um eine saubere GEM-
Applikation handelt und da auch das Interpreter-Konzept nicht frei von
Tücken ist, haben GFA-Programmierer ständig mit einer Reihe unangenehmer
Folgen dieser Umstände zu kämpfen. Dies gilt sowohl für den Betrieb unter
Single-TOS, als insbesondere auch für den Betrieb unter Multitasking-
Betriebssystemen. Im weiteren Verlauf geht's hier in diesem Zusammenhang
immer nur um MagiC, da nur dieses Betriebssystem mit seiner Spezialität
'Singlemodus' die Voraussetzungen für ein akzeptables Arbeiten mit dem
Interpreter bietet.
Als GFA-BASIC-Programmierer verfügen Sie mit BASTARD nun über ein Tool,
das Ihren Interpreter stets so startet, da₧ Sie Sich sofort in einer
akzeptablen Entwicklungsumgebung wiederfinden und gleich loslegen können.
Speziell für den Start unter MagiC stand den Besitzern der Shell ERGO!pro
dazu in der Vergangenheit bereits das Tool ERGOEXEC zur Verfügung. BASTARD
ersetzt dieses ERGOEXEC (einfach umbenennen) und bietet darüber hinaus
einen erheblich gesteigerten Funktionsumfang:
Problem: Wird der Interpreter unter MagiC als Singletask gestartet, so
werden sämtliche Accessories und Applikationen eingefroren. Das
Auftauen der benötigten Programme mu₧ manuell im Programm-Manager
erfolgen.
Lösung: BASTARD nimmt Ihnen diesen lästigen Kleinkram ab, indem es das
Auftauen der von Ihnen gewünschten, in einer Liste anzugebenden
Programme automatisch erledigt.
Problem: Im Interpreter-Betrieb besteht der prinzipbedingte Mangel, da₧ das
GFA-Programm von anderen Applikationen nicht angesprochen werden
kann. Da das Programm noch nicht tatsächlich existiert - es wird
schlie₧lich zunächst nur interpretiert und läuft daher nach au₧en
'unsichtbar' - besitzt es natürlich auch noch keine eigene
Applikationsidentifikation. Bisher können andere Applikationen mit
appl_find("GFABASIC") lediglich die AES-ID des Interpreters
ermitteln, um Nachrichten an Ihr Programm zu verschicken, doch
welches moderne Programm sucht schon den GFA-Interpreter? :-)
Lösung: BASTARD 'leiht' dem Interpreter den späteren Prozessnamen Ihres
Programmes, so da₧ andere Programme Ihr Programm nun bereits
finden und mit ihm kommunizieren können, obwohl es erst als
GFA-Programmdatei existiert!
Problem: Wurde der Interpreter bisher bereits von ERGOEXEC gestartet,
so lautete sein Prozessname 'ERGOEXEC'. Aus diesem Grund
funktionierte die Einspielfunktion des derzeit aktuellen
ERGO!help-Accessorys nicht.
Lösung: Natürlich kann BASTARD den Prozessnamen des Interpreters auch
auf 'GFABASIC' setzen!
Problem: Beim Start eines Programmes im Single-Modus setzt MagiC seit
Version 2.0 den aktuellen GEMDOS-Pfad auf den des zu startenden
Programmes. Je nachdem, wie Sie den Singletask angemeldet haben,
kann es sich dabei auch um den zufällig gerade im obersten
Desktopfenster angezeigten Pfad handeln. Verwendeten Sie bisher
das alte ERGOEXEC, so fanden Sie Sich regelmä₧ig im ERGOEXEC-Pfad
wieder. Unter Umständen führte das nun dazu, da₧ Ihr Programm
Resource-Dateien und ähnliches nicht finden konnte.
Lösung: BASTARD macht den Pfad Ihres Projektes zum aktuellen GEMDOS-Pfad
und setzt den Pfad nach dem Beenden des Interpreters natürlich
auch wieder zurück.
Problem: Der Interpreter nimmt sich allen verfügbaren Speicher - bis auf
einen kleinen Rest für's System - und behindert andere Programme
damit ganz erheblich. Mit dem Patchprogramm GFA_PTCH.PRG von
Christoph Conrad und Gregor Duchalski kann dieses Problem zwar
gemildert werden, doch ist dieser Patch statisch und auf maximal
1 MB für's System begrenzt.
Lösung: BASTARD hält zusätzlich einen beliebig gro₧en Speicherblock für
andere Programme frei.
Problem: Unter bestimmten, sehr seltenen Umständen kommt es vor, da₧ der
Interpreter gestartet wird und gleich darauf mit schwerwiegenden
Folgen für die anschlie₧ende Stabilität des Systems abstürzt. Dies
ist immer dann der Fall, wenn beim Start nur eine nicht genau zu
definierende Menge an Speicher frei ist.
Lösung: Auf Wunsch startet BASTARD den Interpreter jetzt nur noch, falls
eine einstellbare Mindestmenge an freiem Speicher vorhanden ist.
Anderenfalls gibt's eine ordentliche Fehlermeldung.
Sonstige Features:
BASTARD kann (und sollte) im Desktop als 'Viewer' für Dateien mit
der Endung *.GFA angemeldet werden. Beim Öffnen von GFA-Dateien
wird BASTARD den Interpreter nun exakt so starten, wie Sie es
wünschen, bzw. demnächst von Ihrer Shell gewohnt sein werden ...
Ab MagiC 4.0 kann das ERGO!help-Accessory von BASTARD unmittelbar
vor dem Start des Interpreters geladen werden, so da₧ es nur dann
im Speicher liegt, wenn es wirklich benötigt wird. ERGO!help 3.0
(mehr dazu demnächst ...) wird sich dann nach dem Interpreterlauf
natürlich auch wieder beenden.
Bei Bedarf startet BASTARD den Interpreter so, da₧ die übergebene
GFA-Datei sofort ausgeführt wird.
BASTARD kann auch als Starthilfe für andere Singletasks
'mi₧braucht' werden.
Alle Optionen können in einer Konfigurations-Datei geschaltet
werden. Die wichtigsten Optionen können auch per Kommandozeile
übergeben werden und haben in diesem Fall Vorrang.
2. Installation
===============
Sofern Sie die Shell ERGO!pro besitzen, benennen Sie BASTARD.PRG in
ERGOEXEC.PRG um und kopieren Sie es in Ihren ERGO_SYS-Ordner. Anderenfalls
kopieren Sie BASTARD.PRG und BASTARD.INF einfach an einen Platz Ihrer Wahl.
Die Datei BASTARD.INF kann alternativ auch in den in der Environment-
Variablen $HOME[/defaults] angegebenen Pfad.
Unter MagiC mu₧ BASTARD, bzw. ERGOEXEC nun an Stelle des Interpreters als
Singletask angemeldet werden. Falls sich BASTARD.INF _nicht_ in $HOME
befindet, mu₧ der Singletask unbedingt so angemeldet werden, da₧ der Start
im eigenen Pfad (oder ähnlich) erfolgt!
** Weder Interpreter, noch A la Card oder Ihre **
** Shell müssen als Singletask angemeldet sein! **
Anwender der Shell ERGO!pro, die unter Single-TOS arbeiten, können
BASTARD.PRG im Dialog 'GFA-BASIC-Sets' einfach als Interpreter anmelden.
Nun sollten Sie BASTARD/ERGOEXEC auf Ihrem Desktop auch gleich als 'Viewer'
für Ihre GFA-Dateien anmelden. Sorgen Sie in diesem Fall dafür, da₧ der
Pfad zum Interpreter in der BASTARD.INF angegeben ist. Alternativ können
Sie jedoch auch die Environment-Variable $GFABASIC definieren.
BASTARD.INF: "GfaBasicPath :=E:\ELEKTRISCH\GFABRÄSIG.PRG"
.. oder ..
MagiC : "#_ENV GFABASIC=E:\ELEKTRISCH\GFABRÄSIG.PRG" in der MAGX.INF
Single-TOS : "GFABASIC=E:\ELEKTRISCH\GFABRÄSIG.PRG" per Environment-Setter
Benötigen Sie Ihr ERGO!help-Accessory nur zur Laufzeit des Interpreters und
verfügen Sie über eine MagiC-Version >= 4.00, so können Sie den Pfad zum
ACC ebenfalls in der BASTARD.INF oder in einer Environment-Variablen
angeben:
BASTARD.INF: "ErgoHelpPath :=C:\ERGO_HLP.ACX"
.. oder ..
MagiC : "#_ENV ERGOHELP=C:\ERGO_HLP.A??" in der MAGX.INF
Single-TOS : "ERGOHELP=C:\ERGO_HLP.A??" per Environment-Setter
3. Konfiguration
================
Hier folgt nun die Erläuterung der möglichen Optionen, die in der Datei
BASTARD.INF verwaltet werden. Die Datei kann mit jedem ASCII-Editor den
eigenen Bedürfnissen entsprechend verändert werden.
Der Aufbau der Datei ist recht simpel. Sie besteht aus einem Kopf mit
einigen Informationen, gefolgt von dem eigentlichen Konfigurationsteil.
Der Kopf darf nicht verändert werden, da er unter Umständen einmal als
Erkennungsmerkmal dient. Das ist hiermit feierlich DOKUMENTIERT!
# BASTARD 1.0 / COPYRIGHT ╜ 1998 by Ulli Gruszka
# BASTARD.INF / Konfigurationsdatei
Leerzeilen und Zeilen, die mit einer Raute (#) beginnen, werden ignoriert.
Es sind also beliebige Kommentare möglich, oder das temporäre Ausblenden
einzelner Optionen. In diesem Fall verwendet BASTARD Standard-Werte.
Die Reihenfolge der Variablen in der Datei ist ebenso unerheblich, wie
GROSS/klein-Schreibung. Ansonsten dürfen die Variablennamen jedoch nicht
verändert werden!
Aufzutauenden Applikationen
---------------------------
Die Liste der aufzutauenden Applikationen besteht aus beliebig vielen
Einträgen folgenden Formats:
UnFreeze :=ST-GUIDE
UnFreeze :=BUBBLE
UnFreeze :=POMMES
[...]
Der Variableninhalt ist der Prozessname der Applikation, also der Name,
unter dem die Applikation per appl_find() gefunden wird. Im Zweifelsfall
finden Sie den korrekten Namen im MagiC-Programm-Manager.
Es ist nicht notwendig, die Namen mit Spaces auf die üblichen 8 Zeichen zu
expandieren. Die Reihenfolge und das tatsächliche Vorhandensein der
Applikationen im System spielen nur eine untergeordnete Rolle. Genauer
gesagt, ist die Reihenfolge völlig egal, und jede nicht vorhandene APP ist
Anla₧ für etwas mehr (kaum spürbare) Systemrödelei.
Wer besorgt die AES-IDs?
------------------------
BASTARD hat's beim Auftauen der Applikationen nicht besonders leicht, da
eingefrorene Programme scheinbar nicht existent sind und ihre AES-ID nicht
ohne weiteres ermittelt werden kann. Da das aus diesem Grund angewandte
Verfahren eher bäuerlich als elegant ist, bleibt die Option in der Hoffnung
auf die Zukunft schaltbar. Möglicherweise übergibt ja irgendwann einmal
eine Shell die IDs der gewünschten Programme in der Kommandozeile ...
In diesem Fall setzten Sie den Wert der Variablen auf 0, oder löschen Sie
die Zeile einfach. BASTARD wird die Liste dann ignorieren. Bis dahin weisen
Sie der Variablen 'DoItYourself' jedoch besser den Wert 1 zu.
DoItYourself :=1
Prozessname des Interpreters:
-----------------------------
Der Interpreter wird von BASTARD per GEMDOS an den AES vorbei gestartet.
Aus diesem Grund ist der Interpreter dem System zur Laufzeit nicht unter
seinem korrekten Prozessnamen (GFABASIC) bekannt. Er 'erbt' lediglich den
Namen seines Aufrufers (BASTARD). Das appl_find() anderer Applikationen
funktioniert also nicht, sofern der Interpreter oder die GFA-Datei gesucht
wird.
Bei modernen, kommunikationsfreudigen Projekten ist dieser Umstand nicht
sehr schön, da z. B. die diversen Protokolle recht einseitig ablaufen.
Selbst bei einfacheren Projekten wirkt sich der Umstand insofern unangenehm
aus, als da₧ das derzeit aktuelle ERGO!help- Accessory den Interpreter
nicht erkennt und markierte Blöcke partout nicht einspielen will.
Die Variable 'SetAesNameTo' hilft aus dieser Misere. Folgende Inhalte sind
möglich:
SetAesNameTo :=gfabasic
\_bewirkt, da₧ der Interpreter unter dem
Namen der Interpreter-Programmdatei
gefunden wird, meist also GFABASIC
SetAesNameTo :=gfafile
\__bewirkt, da₧ der Interpreter unter dem
Namen Ihrer GFA-Datei gefunden wird.
Arbeiten Sie also gerade an HELLO.GFA,
so läuft der Interpreter unter HELLO
SetAesNameTo :=$abcxyz
\__bewirkt, da₧ der Interpreter unter dem
hier angegebenen String gefunden wird.
Wichtig, falls Sie immer schonmal CÄT,
PAPÜRUS oder CALANUS sein wollten!
Auch hier spielt die GROSS/klein-Schreibung keine Rolle. Weisen Sie der
Variablen einen leeren Eintrag zu oder löschen Sie die Zeile, so wird der
Prozessname des Interpreters nicht angetastet. Er wird dann BASTARD oder
ERGOEXEC lauten.
Load&Go:
--------
Wer's mag, kann den Interpreter nun so aufrufen, da₧ die übergebene
GFA-Datei sofort gestartet wird.
LoadFileAndRun :=1
Soll die GFA-Datei lediglich geladen werden, so ist der Wert auf 0 zu
setzen.
Aktueller Pfad:
---------------
Nie wieder Ärger mit nicht gefundenen Dateien Ihres Projektes! Lassen Sie
BASTARD das aktuelle GEMDOS-Laufwerk und den Pfad passend zu Ihrem Projekt
setzen:
SetPathToProject:=1
Mit dem Wert 0 bleibt alles beim alten.
Speicher für den Interpreter:
-----------------------------
Eine der harmloseren Tücken des Multitasking sind Programme, die der User
versehentlich nicht beendet hat, so da₧ sie unnütz den Speicher belegen.
Startete ERGOEXEC den Interpreter in der Vergangenheit im Zustand solch
einer Speicherknappheit, so führte das oft zu einem bombenden Interpreter
mit anschlie₧enden Systemhängern. Auch damit ist jetzt Schlu₧, denn mit der
Variablen ...
MinMemory :=[Anzahl der Bytes]
... haben Sie nun die Möglichkeit, den mindestens noch freien Speicher zum
Start des Interpreters anzugeben. Steht der Speicher nicht zur Verfügung,
so beendet sich BASTARD mit einer entsprechenden Fehlermeldung.
Die Voreinstellung in der beiliegenden INF-Datei (512 Kb) ist sicher eine
gute Wahl, da sich der Interpreter hiermit zunächst mal zufrieden gibt.
Ein Wert von 0 führt dazu, da₧ keine Überprüfung stattfindet, der
Interpreter also gnadenlos gestartet wird.
Speicher für andere Applikationen:
----------------------------------
Wie mittlerweile bekannt sein sollte, rei₧t der Interpreter beim Start
allen verfügbaren Speicher an sich und lä₧t nur einen kleinen Rest für's
System übrig. Dieses Problem konnte zwar bisher bereits mit einem Patch-
Programm gemildert werden, doch war dieser Patch statisch, d. h. fest im
Interpreter-Code verankert, und darüber hinaus auf maximal 1 MB begrenzt.
Mit BASTARD haben Sie nun die Möglichkeit, einen beliebig gro₧en Block für
Ihr System freizuhalten.
FreMemory :=[Anzahl der Bytes]
Pfad zum Interpreter:
---------------------
Wird BASTARD ohne Interpreterpfad in der Kommandozeile aufgerufen, so
startet es den hier mit vollem Pfad angegebenen Interpreter.
GfaBasicPath :=E:\GFAPASIC.PRG
Ist dieser Eintrag leer oder existiert er nicht, so sucht BASTARD den
Pfad in der Environment-Variablen $GFABASIC.
Pfad zum ERGO!help-ACC:
-----------------------
Falls das ACC erst unmittelbar vor dem Interpreter-Start von BASTARD
geladen werden soll (dies ist erst ab MagiC >=4.00 möglich!) so kann hier
der volle Pfad zum ERGO!help-Accessory angegeben werden. Dabei sind auch
Wildcards im Programmnamen möglich.
ErgoHelpPath :=C:\ERGO_HLP.A??
Ist dieser Eintrag leer oder existiert er nicht, so sucht BASTARD den
Pfad in der Environment-Variablen $ERGOHELP.
Registrierungsdaten:
--------------------
Sie ahnen es schon, hierher gehören Ihr Name und Ihr Schlüssel ...
UserName :=Fritzchen Flei₧ich
UserKey :=ABCDEFGHIJKLMNOP
Kommandozeile:
--------------
Die wichtigsten Optionen können BASTARD auch in einer Kommandozeile
übergeben werden. Die Kommandozeilen-Optionen haben Vorrang gegenüber
den Optionen in der INF-Datei.
-d[1/0] - 1 = Programme aus der INF-Datei auftauen
0 = Liste in INF-Datei ignorieren
-a[0/1/2/string] - 0 = Prozessnamen nicht antasten/setzen
1 = Prozessnamen aus Interpreter-Programmdatei ermitteln
2 = Prozessnamen aus GFA-Datei ermitteln
string = Prozessname wird der hier angegebene String
-l[1/0] - 1 = GFA-Datei laden sofort ausführen
0 = GFA-Datei nur laden
-s[1/0] - 1 = Projekt-Pfad wird aktueller GEMDOS-Pfad
0 = aktuellen Pfad nicht antasten
-m[n] - n = freizuhaltender Systemspeicher in Bytes
4. Sonstige Singletasks
=======================
Wie bereits erwähnt, ist BASTARD in erster Linie zum Starten des GFA-BASIC-
Interpreters konzipiert. Quasi als Nebeneffekt ist es jedoch auch möglich,
BASTARD als universellen Starter für alle Programme zu installieren, die
Sie unter MagiC als Singletask laufen lassen möchten (oder müssen). Somit
stehen Ihnen also sämtliche Features (bis auf das unmittelbare Ausführen
der GFA-Datei :-) auch für Ihre Uralt-Textverarbeitung zur Verfügung, und
das im übrigen auch unter Single-TOS!
Kopieren Sie BASTARD.PRG dazu an einen Ort Ihrer Wahl und verfahren Sie
wie unter 'Installation' beschrieben. Die Datei BASTARD.INF sollte sich
allerdings im selben Pfad befinden. So können Sie dann sogar mehrere
Bastarde mit verschiedenen Konfigurationen installieren, da die INF-Datei
immer zuerst im BASTARD-Verzeichnis gesucht wird.
WICHTIG: Löschen Sie die Zeile 'GfaBasicPath :=E:\GFAPASIC.PRG' in der
INF-Datei, oder maskieren Sie sie mit einer Raute aus!
Nun können Sie Ihren Singletask einfach aber effektiv starten, indem Sie
die Programmdatei auf BASTARD draggen.
5. Rechtliches
==============
Die gute Nachricht:
BASTARD 2.0 ist Shareware mit minimalem Nervfaktor. Die Höhe der Shareware-
Gebühr liegt ganz in Ihrem Ermessen. Wägen Sie einfach ab, was BASTARD
Ihnen im Alltag bringt und lassen Sie mir einen entsprechenden Betrag
zukommen. Sie erhalten dann von mir baldmöglichst Ihren persönlichen
Schlüssel, mit dem Sie die Shareware-Einschränkung aufheben können.
Denken Sie bitte unbedingt daran, da₧ ich zur Registrierung
Ihren vollen Namen und eine Adresse (eMail oder Post) benötige,
an die ich Ihren Schlüssel schicken kann!
Im übrigen akzeptiere ich als Bezahlung auch die Veröffentlichung eines
Moduls für meinen Freeware-Bildschirmschoner BUBBLES! :-) Dank des überaus
komfortablen und zugleich völlig unkomplizierten Modul- Konzepts, sollte
diese Form der Bezahlung schneller erledigt sein, als ein Gang zu Ihrer
Bank ...
Die jeweils aktuellste BUBBLES-Version, inklusive ausführlichster Modul-
Dokumentation und zahlreicher Schon-Module, finden Sie in der Mailbox
MAUS Dortmund, sowie in allen sorgfältig gepflegten PD-Serien. Im Notfall
schicke ich Ihnen das komplette BUBBLES-Paket auch per Diskette zu.
Schicken Sie mir dazu einfach einen an Sich adressierten, ausreichend
frankierten Briefumschlag mit einer formatierten HD- oder DD-Diskette.
Sie erreichen mich per eMail an:
Ulli Gruszka @ DO (MausNet)
ulli_gruszka@do.maus.ruhr.de. (Internet)
oder per Post an:
Ulli Gruszka
Fischbecke 12
44287 Dortmund
Shareware-Überweisungen erbitte ich auf mein Konto bei der ..
Stadtsparkasse Dortmund
KtoNr.: 102 105 702
BLZ : 440 501 99
.. mit einem Hinweis auf BASTARD und unter Angabe Ihres Namens und einer
Adresse, an die ich Ihren Schlüssel schicken kann!
Die schlechte Nachricht:
Ich schlie₧e jegliche Haftung für Schäden aller Art aus, die Sie auf die
Verwendung meines Programmes zurückführen. Nehmen Sie's, oder lassen
Sie's. Ein Anspruch auf Fehlerbeseitigung und Weiterentwicklung besteht
nicht, es sei denn, ich lese ein höfliches 'Bitte Bitte' ... ;-)
Die übliche Nachricht:
Das Archiv BASTARD.ZIP darf nur unverändert verbreitet werden. Das
Hinzufügen, Verändern oder Entfernen von Dateien des Archives ist nicht
gestattet, sofern das Archiv in dieser Form weitergegeben werden soll.
Einzelne Bestandteile des Archives oder der Dateien dürfen nicht gesondert
verbreitet werden.
Die Verbreitung des Archivs in gewerblicher Form ist nicht gestattet,
sofern Kopiergebühren o. Ä. von mehr als 10,-DM je Medium anfallen. Diese
Einschränkung gilt nicht für den Vertrieb als Bestandteil einer Sammlung
oder eines Magazins auf einer CD-ROM oder auf einem anderen Medium
ähnlicher, bzw. grö₧erer Kapazität. (Ächtz..)
Es grü₧t Sie herzlichst Ihr
- Ulli Gruszka -