Thread View: de.comp.sys.st
1 messages
1 total messages
Started by Jan T. Kim
Thu, 01 Oct 1992 18:42
Bessere Shell fuer GFA-Basic
Author: Jan T. Kim
Date: Thu, 01 Oct 1992 18:42
Date: Thu, 01 Oct 1992 18:42
432 lines
18504 bytes
18504 bytes
Hi allerseits,
als Echo auf mein posting mit Vorschlaegen zur Verbesserung und
Erweiterung von GFA-Basic habe ich von Thomas Schaerer die
folgende Beschreibung einer alternativen Shell fuers GFA-Basic
bekommen, mit der Bitte, diese zu posten. Als Reply-To: Adresse
habe ich daher auch Thomas' Adresse eingetragen.
Greetinx, Jan
+- Jan Kim -- X.400: S=kim;OU=vax;O=mpiz-koeln;P=mpg;A=dbp;C=de -+
| Internet: kim@vax.mpiz-koeln.mpg.dbp.de |
| |
*----=< hierarchical systems are for files, not for humans >=-----*
=============================== Schnipp (Hier beginnt es!) ===========
*****************************************************************
* *
* G F A - M e n u - D e l u x e -----> MENUDLX.PRG *
* *
* Ein Public-Domain-Programm: Erschienen im ST-JOURNAL 6/92 *
* *
* D I S K J 2 6 6 inkl. GFA-Quelltext *
* ----------------- *
* *
* Hier lesen Sie das zugehoerige Infofile: MENUDLX.INF *
* *
* Th. Schaerer Im Lindenhof 6 CH-8307 Effretikon (Schweiz) *
* *
* Mail: schaerer@isi.ethz.ch *
* *
*****************************************************************
Motivation.
-----------
Mit der Auslieferung des originalen Entwicklungspacketes GFA-3.x-BASIC
der Firma GFA-Systemtechnik, erhaelt man auf der Diskette "Compiler"
ein in GFA-3.x-BASIC geschriebenes Menuprogramm als GFA-Quelltext
(MENUX.GFA) und als lauffaehiges Programm (MENUX.PRG). Leider ist die-
ses Menu fuer die Steuerung des Interpreters und Compilers derart
minimal gestaltet, dass etwas anspruchvollere GFA-3.x-BASIC-Programmie-
rer genoetigt sind, dieses Menu den eigenen Beduerfnissen anzupassen
und entsprechend zu erweitern, was nicht selten viel Zeit beansprucht,
die man fuer Produktiveres einsetzen koennte.
Dieser Mangel fuehrte dazu, dass ich dieses MENUX.GFA im Laufe von
etwa 1.5 Jahren stetig etwas weiterentwickelt habe. Meine Arbeit soll
nun dazu dienen, dass nicht jeder GFA-3.x-BASIC-Programmierer den Ham-
mer erneut erfinden muss.
Der neue Name dieses neuen Menuprogrammes ist MENUDLX.GFA bzw.
MENUDLX.PRG, was eine Abkuerzung des vollen Namen "GFA-MENU-DELUXE"
ist. Im Folgenden wird beschrieben was GFA-MENU-DELUXE besser und
zusaetzlich kann.
Die Gemeinsamkeit von MENUX und GFA-MENU-DELUXE.
------------------------------------------------
Da GFA-MENU-DELUXE (MENUDLX) eine Weiterentwicklung des MENUX ist,
gelten, wenn in diesem Readme nicht anders erlaeutert, die sehr knapp
gehaltenen Angaben der README.COM-Datei, welche dem GFA-3.x-BASIC-Ent-
wicklungspacket beiliegt. Ebenfalls gelten, wenn hier nicht anders
erlaeutert, die Angaben im Kapitel "Arbeiten mit der Shell" des Com-
piler-Begleitbuches "GFA-BASIC 3.0" von GFA-Systemtechnik GmbH Duessel-
dorf. Besonders erwaehnenswert ist der Beitrag zum Compiler und Linker
im Buch "Das grosse GFA-BASIC-3.5 Buch" von Litzendorf, vertrieben von
DATA-BECKER.
Rechtliche Situation.
---------------------
Da wie oben erwaehnt, mein GFA-MENU-DELUXE (MENUDLX.GFA) eine Weiterent-
wicklung des MENUX.GFA von GFA-Systemtechnik ist, fragte ich bei dieser
Firma nach, ob es mir erlaubt ist, mein GFA-MENU-DELUXE zu veroeffentli-
chen. In einem Brief vom 8.07.91 erhielt ich folgende Antwort: "Da die
GFA-Systemtechnik auf keinerlei Programm Copyrightanspruch hat, die mit
GFA-BASIC erstellt wurden, steht einer Weitergabe Ihrer Shell nichts im
Wege."
Mein Angebot.
-------------
Die Benutzung und Verbreitung meines GFA-MENU-DELUXE inklusive des
Quelltextes ist gratis. Als Gegenleistung wuensche ich mir Echos von
Benutzern des GFA-MENU-DELUXE. Es interessieren mich Kritik, Anregungen
und Ideen, auch solche welche von Benutzern implementiert wurden.
V E R B E S S E R U N G E N u n d E R W E I T E R U N G E N .
__________________________________________________________________
Darstellung der Oberflaeche.
---------------------------
Im Gegensatz zu MENUX ist die Oberflaeche meines GFA-MENU-DELUXE aeste-
thisch ansprechender gestaltet. Alle Textausgaben sind blockweise orga-
nisiert. Die Blocklaenge richtet sich jeweils nach der laengsten Zeile.
Das sieht auf einem dunklen Hintergrund schoener aus. Die untere Menu-
seite dient als Titel. Unten rechts bewegen sich Punkte, welche stetig
eine Punktzeile auf- und wieder abbauen. Diese Spielerei hat durchaus
auch eine praktische Bedeutung: Wenn ein Programm gestartet wird,
welches den Monitor nicht benoetigt, erkennt man am Stillstand dieser
Punkte, dass dieses Programm gerade aktiv ist. Wenn ein externes
Programm, ausser Compiler und Linker gestartet wird, kuendigt sich dies
durch das Abdunkeln des Hintergrundmusters an.
Beim Interpreterstart werden die Pfade fuer den Interpreter und fuer
das GFA-File in zwei getrennten Zeilen waehrend des Startvorganges
untereinander angezeigt. Das sieht besser aus und ist informativer.
Nach Rueckkehr ins Menu wird ordnungsgemaess angezeigt, wie lange
welches Programm ausgefuehrt wurde. Im Gegensatz zu MENUX zeigt GFA-
MENU-DELUXE alle Zeitwerte in Stunden, Minuten und Sekunden an, denn es
ist z.B laestig wenn angezeigt wird, dass man 10861 Sekunden im
Interpreter gearbeitet hat. Das sind 3h:01Min:01Sek....
Die File-Auswahl (^A oder F1).
------------------------------
Gemaess MENUX waehlt man mit ^A oder F1 das zu bearbeitende GFA-File
aus. Neu ist, dass GFA-MENU-DELUXE erkennt, ob wirklich ein GFA-File
gewaehlt wurde. Wenn nicht, wird dies mittels ALERT-Box beanstandet.
Eine wesentliche Erneuerung ist, dass GFA-MENU-DELUXE der Fileparameter
der BASEPAGE auswertet. Daher kann GFA-MENU-DELUXE auch von einem
Zeilenkommandointerpreter wie GULAM, mit zu bearbeitendem GFA-File als
Parameter gestartet werden. Es werden als Parameter absoluter- und
relativer Pfad in Vorwaertsrichtung akzeptiert. Das bedeutet, dass
Eingaben wie ..\..\ falsch verarbeitet werden.
Bevor man aus einem Zeilenkommandointerpreter GFA-MENU-DELUXE startet,
muss vorher mittels "cd" der Pfad eingestellt werden, in dem sich
MENUDLX.PRG befindet, sonst kann die Filesystemdatei MENUDLX.DAT nicht
gefunden werden.
Falls Sie im Genuss der GEMINI-Shell sind, koennen Sie wie gewohnt ein
GFA-File mit der Maus packen und ueber GFA-MENU-DELUXE schieben und
schon startet dieses Menu mit dem GFA-File. Luxurioeses geht es kaum
noch.
Compiler-, Interpreter-, Linkerstart, Start des RCS und des 'Test'.
-------------------------------------------------------------------
Diese Operationen entsprechen denen des MENUX, wurden jedoch je um eine
Fehlererkennung mittels ALERT-Box erweitert. Es wird mitgeteilt wenn
das aufgerufene Programm wegen Nichterkennung des Pfades oder des
Programmnamens nicht gestartet werden kann.
Beim Interpreteraufruf ist der Pfad des ausgewaehlten GFA-Files als
gueltiger Pfad gesetzt. Dies hat den Vorteil, dass auch GFA-Files mit
ihren zu lesenden Dateien in einem andern Pfad korrekt mit dem Interpre-
ter getestet werden koennen. Dies ist in MENUX wegen fehlerhafter
Programmierung, nicht moeglich!
Das Starten fremder Programme EXECUTE ^X.
------------------------------------------
Diese Funktion gibt es zwar in MENUX, jedoch konnte man ausserhalb
dessen Pfades keine Programme starten, welche ihrererseits Dateien
lesen mussten. Dieses Problem ist in GFA-MENU-DELUXE geloest: Vor jedem
fremdem Programmstart wird der richtige Pfad gesetzt. Bei der Rueckkehr
ins GFA-MENU-DELUXE wird ebenfalls wieder der korrekte Pfad gesetzt.
Sets: C-Objekt C.
-----------------
Es gilt was in README.COM steht. Nur steht dort laengst nicht alles,
was diese Option bereits im MENUX konnte und im GFA-MENU-DELUXE selbst-
verstaendlich immer noch kann:
Bei der Eingabe des compilierten C-Files, also eines O-Files, wird die
Extension ".O" nicht angegeben, da diese automatisch gesetzt wird.
Es koennen auch mehrere O-Files eingegeben werden, welche dann durch
Leerzeichen von einander zu trennen sind.
Bei der Eingabe der O-Files, muss der korrekte Pfad natuerlich mitein-
gegeben werden. Es genuegt jedoch die Eingabe des relativen Pfades in
Vorwaerts- und Rueckwaertsrichtung (..\).
Neu ist in GFA-MENU-DELUXE, dass nach dem Linkvorgang zusaetzlich mit-
tels ALERT-Box die Anzahl undefinierter Symbole und Offsetueberschrei-
tungen angezeigt werden.
Wenn ein C-File-Name oder dessen Pfad falsch eingeben wurde, oder der
Linker nicht ansprechbar ist, folgt ebenfalls eine geeignete Fehlermel-
dung mittels ALERT-Box.
Sets: PRG=GFA.
--------------
Der Ordnung zu liebe, landen alle compilierten GFA-Programme in einem
Ordner namens COMPILAT (TEST.PRG). Im PRG=GFA-Mode jedoch wie bisher im
selben Pfad wo sich das zu bearbeitende GFA-File befindet. Existiert
beim Compiler- oder Linkerstart bereits der Name des PRG-Files im
selben Pfad, fragt eine ALERT-Box, ob man wirklich das bestehende PRG-
File ueberschreiben moechte.
Ist die Option PRG=GFA aktiv, wird dies neuerdings staendig im Menubal-
ken dem Programmierer mitgeteilt. Dies hat den Vorteil, dass man diese
Option nicht immer wieder im Klappmenue nachschauen muss. Nur wenn der
TEST.PRG-Mode (Ordner: Compilat) aktiv ist, ist es gestattet, den Pfad
zu editieren <P>. Im PRG=GFA-Mode erfolgt beim Editierversuch <P> eine
ALERT-Box mit dem Hinweis, dass man sich im Widerspruch befindet.
E x t r a s.
------------
Dies ist in GFA-MENU-DELUXE absolut neu! Mit Hilfe dieses "Extras"
koennen zusaetzlich nuetzliche Programme und Funktionen direkt ohne
Fileselectorbox aufgerufen werden, welche dem Programmierer das Leben
zusaetzlich erleitern. Weshalb, erfahren Sie gleich im Detail.
Extras: Editor ^E.
-------------------
Ein zusaetzlicher Editor aufrufen, wozu?
Man kann zwei LST-Files vergleichen, oder von einem LST-File ins
andere, Bloecke uebertragen.
Moechte man ein zu einem gerade bearbeitendem GFA-File gehoerendes
Datenfile editieren, so erledigt man dies rasch und bequem mit dem
zusaetzlichen Editoraufruf.
Man kann zum Beispiel ein LST-File und C-File gegenueberstellen. Dies
ist besonders interessant im Hinblick auf die kommenden GFA-TO-C-
CONVERTER...
Man kann... , Sie haben vielleicht noch weitere Ideen!
Welcher Editor kommt in Frage?
Als Editor eignet sich z.B. TEMPUS (per Default in GFA-MENU-DELUXE
MENUDLX.DAT programmiert). Es muss in jedem Fall ein Editor sein, mit
dem man mindestens zwei Files bearbeiten kann.
Spezielle Funktion beim Editor-Aufruf:
Hat man vor dem Editoraufruf ^E bereits ein GFA-File ausgewaehlt
(^A), jedoch ein gleichnamiges LST-File existiert im selben Pfad
nicht, erscheint eine ALERT-Box und meldet, dass man noch kein
gleichnamiges LST-File erzeugt hat. Man hat nun die Wahl, weiter zum
Editor "durchzustarten" oder man geht zurueck ueber GFA-MENU-DELUXE
in den Interpreter um noch das gleichnamige LST-File zu erzeugen. Bei
nochmaligem Editoraufruf wird nun das LST-File als Parameter zum
Editor uebertragen. Danach kann man noch zusaetzliche Files laden, im
TEMPUS maximal noch drei.
Extras: Finder ^F.
-------------------
Dies ist ein komfortabler mausgesteuerter PD-File-Finder. Welcher Pro-
grammierer war nicht auch schon in der Situation, waehrend der Arbeit
irgendwo nach einem GFA-File oder LST-File zum Mergen suchen zu
muessen?
Extras: GULAM ^G.
------------------
Dies ist ein UNIX-naher Zeilenkommandointerpreter. Eine ausfuehrliche
Dokumentaion liegt bei. Der Sinn der Integration in "Extras" ist,
kompilierte GFA-Programme mit BASEPAGE-Parameteruebernahme (z.B. TTP-
Programme) gleich nach dem uebersetzen zu testen.
Extras: Filesystem.
--------------------
Diese Funktion gibt dem GFA-Programmierer Auskunft ueber den gueltigen
Pfad und darueber wo die veschiedenen Programme zu Hause sind.
Extras: UNDO (Bild).
--------------------
Dies bewirkt gleich wie die Taste <UNDO> die Bildregenaration. Diese
Funktion wird vor allem nach Benutzung von Accessories benoetigt.
Das File-System.
----------------
Beim Start des GFA-MENU-DELUXE liest das Programm die Datei MENUDLX.DAT
und uebernimmt das dort enthaltene Filesystem. Die nachfolgende Wieder-
gabe dieses MENUDLX.DAT ist nur ein Beispiel. Der Benutzer ist frei in
der Gestaltung. Wichtig ist jedoch, der Pfad des GFA-MENU-DELUXE ist
Referenz.
GFA_3.PRG (GFA-BASIC-Interpreter, umbenannt)
COMPLINK\GFA_BCOM.PRG (GFA-BASIC-Compiler)
COMPLINK\GL.PRG (GFA-BASIC-Linker)
RCS2.PRG (Resource-Constr.-Set von GFA)
D:\TEMPUS\TEMPUS.PRG (Zusaetzlicher Editor)
C:\BIN\QUIKFIND.PRG (File-Finder)
C:\BIN\GULAM.PRG (UNIX-nahe Shell)
COMPILAT\TEST.O (Defaultpfad des TEST.O-Files)
COMPILAT\TEST.PRG (Defaultpfad des Compilates)
COMPLINK\GFA3BLIB (Original-GFA-Bibliothek)
Wichtig: Kommentare wie oben im Beispiel duerfen im MENUDLX.DAT nicht
stehen!
Das oben dargestellte Beispiel des MENUDLX.DAT zeigt relative Vorwaerts-
pfade. Auf der ersten Ebene muss das GFA-MENU-DELUXE MENUDLX.PRG und
MENUDLX.DAT platziert sein. Dies illustriert als Beispiel folgendes
"File-System":
E:\ GFA_BAS._V3 \ MENUDLX.PRG (GFA-MENU-DELUXE)
\ MENUDLX.DAT
\ AT_WORK \ ... (GFA-Files in Arbeit)
\ COMPILAT \ (TEST.PRG) (Defaultpfad des Compilates)
(TEST.O) (Defaultpfad von TEST.O)
\ COMPLINK \ GFA_BCOM.PRG (GFA-BASIC-Compiler)
GL.PRG (GFA-BASIC-Linker)
GFA3BLIB (Original-GFA-Bibliothek)
GFA3BLIB.NDX
\ GFA_3.PRG (GFA-BASIC-Interpreter)
\ RCS2.PRG (GFA-Resource-Constr.-Set)
\ RCS2.DFN
\ RCS2.RSC
C:\ BIN \ GULAM.PRG (UNIX-nahe Shell)
\ GULAM.G (braucht GULAM.PRG)
\ GULAM.HLP (braucht GULAM.PRG)
\ QUIKFIND.PRG (File-Finder)
D:\ TEMPUS \ TEMPUS.PRG (Zusaetzlicher Editor)
An Stelle der Partition E einer Harddisk, kann selbstverstaedlich auch
eine andere Partition gewaehlt werden. Das selbe gilt fuer den Hauptord-
ner "GFA_BAS._V3". Man kann diesen Ordner anders benennen, oder was
aber der Ordnung zu liebe, weniger zu empfehlen ist, ganz weglassen.
Die Pfade der Programme welche nicht Teil des GFA-BASIC-Entwicklungs-
packetes sind, duerfen auch ganz wo anders installiert und dementspre-
chend in MENUDLX.DAT vermerkt werden.
Welche Programme und Dateien befinden sich wo auf der Diskette?
---------------------------------------------------------------
MENUDLX \ GFA_BAS._V3 \ MENUDLX.PRG (GFA-MENU-DELUXE)
MENUDLX.DAT (zugehoeriges Filesystem)
\ BIN \ GULAM.PRG (PD-UNIX-nahe Shell.)
\ GULAM.G (Daten, Alias etc.)
\ GULAM.HLP (Help-File fuer GULAM.)
\ GULAM.DOC (Sehr ausfuehrliches Manual.)
\ QUIKFIND.PRG (PD-File-Finder)
\ QUELLTXT \ MENUDLX.GFA (GFA-Quelltext)
\ MENUDLX.LST (LST-Quelltext)
\ MENUDLX.INL (Inline-Maschinencode)
\ DOKUMENT \ MENUDLX.INF (Dieses Dokument als ASCII.)
MENUDLX.DOC (Dieses Dokument als Wordplus.)
Wie Sie feststellen, ist der in GFA-MENU-DELUXE verwendete zusaetzliche
Editor TEMPUS nicht auf der Diskette. Der Grund ist, dass TEMPUS weder
ein Public-Domain- noch ein Share-Ware-Programm ist. Es ist aber jedem
GFA-3.x-BASIC-Programmierer freigestellt, seinen Liebliongseditor kombi-
niert mit GFA-MENU-DELUXE einzusetzen. Man darf aber dann nicht verges-
sen, MENUDLX.DAT entsprechend anzupassen.
Die andern beiliegenden Programme wie GULAM und QUIKFIND duerfen frei
kopiert werden, da diese PDs sind.
Ich wuensche Ihnen ungetruebte Programmierstunden mit GFA-3.x-BASIC in
Symbiose mit meinem GFA-MENU-DELUXE....
Th. Schaerer 01-nov-91
=============================== Schnapp (Hier ist es zu Ende.) =======
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads