AtarimaniaAtarimania

Atari ST - 1988

REMbo

REMbo — screenshot 1
1 / 3
Genre
Programming - Aids / Routines / Tools
Year
1988
Language
GFA BASIC
Publisher
[no publisher]
Controls
Keyboard / Mouse
Distributor
Resolution
High
Developer
[n/a]
ST Type
ST, STe, TT, Falcon030 / 0.5MB
Licensed from
Programmer(s)
Egner, Daniel R.
Country
Germany
MIDI
Software
German
Version
1.3
Box/Instructions
German
Number of Disks
1 / Double Sided / HD Installable
License
PD / Freeware / Shareware
Dump
Download
Serial
Dump format
MSA
Protection

INSTRUCTIONS

                     Programm-Name: »REMBO«
                           Version: 1.2
                             Datum: 08.09.1988

                    Programm-Autor: Daniel R. Egner
                                    Altkönigstr. 15
                                    6233 Kelkheim/Ts.
                                    PGiroA Ffm (BLZ: 500 100 60)
                                    Konto: 3038 67-600

                       Computertyp: ATARI ST
                Programmiersprache: GfA BASIC V3.00

                        BASIC-File: REMBO.GFA
                   weitere Dateien: REMBO.RSC  -> ReSourCe
                                    REMBO.TXT  -> AnleitungsTeXT



                    B E D I E N U N G S A N L E I T U N G

Dieses Programm dient dazu, aus einem Basic-Programm alle REMs zu beseitigen.

Dazu sollte ich vielleicht ein paar Worte verlieren.

Wie  Sie  sicher wissen, können Sie in Ihre Programme sogenannte REMarks (=Be-
merkungen)  einbauen,  die  der  Dokumentation und der Übersicht dienen. Diese
werden vom Interpreter bei Ausführung des Programms überlesen.

Aus  eigener Erfahrung kann ich nur sagen: Machen Sie viel Gebrauch davon! Bei
längeren Programmen verliert man nämlich recht schnell die Übersicht. Außerdem
erleichtert es die Wiederaufnahme nach längeren Unterbrechungen ungemein. Oder
wissen Sie nach sechs Wochen noch, warum Sie beispielsweise die Variable z% im
Unterprogramm SHOW_BLOCK benutzt haben?

Selbst  wenn Sie zu den wenigen begnadeten Programmierern gehören, die da noch
durchblicken,  denken  Sie wenigstens daran, daß bei einer eventuellen Weiter-
gabe  von  Listings  an Freunde oder User-Club-Mitglieder diese auch ganz gern
von Ihrem Knowhow profitieren wollen.

Jetzt   fragen  Sie sich aber vielleicht: "Wieso soll ich erst Anmerkungen ma-
chen,   wenn  ich sie dann wieder löschen soll?" Ganz einfach, REMs haben zwei
Nachteile,   die ich hier nicht verschweigen will. (Aber keine Bange, Ihre Ar-
beit ist natürlich nicht umsonst, doch dazu später.)

1. Durch  eifriges  Benutzen von REMs wird das Programm aufgebläht, es braucht
   mehr  Speicherplatz, sowohl im Rechner als natürlich auch auf Diskette oder
   Festplatte.

2. Das   Abarbeiten  der  einzelnen Befehle erfordert je nach Komplexität mehr
   oder weniger viel Zeit. Der Interpreter muß jede Zeile auf Befehlsworte hin
   analysieren.  Ich  weiß  zwar  nicht,  ob der GfA-Interpreter nach den REMs
   "weiterliest"  oder  den Rest der Programmzeile übergeht, aber er liest zu-
   mindest  das  Befehlswort  selbst. Bei hundert REMs sind das halt auch hun-
   dertmal x Zeiteinheiten! Die könnte man sich sparen.

Falls  Sie  noch mit einer der GfA-BASIC-Versionen 1.xx oder 2.xx arbeiten und
den  zugehörigen   Compiler  benutzen, so brauchen Sie sich über die erwähnten
Nachteile keine Sorgen zu machen. Er übernimmt nämlich die REMs gar nicht erst
in das Compilat.

Jetzt  gibt  es aber zum Einen noch Leute, die den Compiler nicht besitzen und
die  Programme   mittels des RUN-ONLY-Interpreters betreiben, zum Anderen wird
der  Compiler   für die BASIC-Version 3.00 voraussichtlich erst zum Jahresende
1988 zu erhalten sein!

Hier setzt »REMBO« an!

Übrigens,  die  Ähnlichkeit  mit dem Namen eines schießwütigen Ex-Söldners ist
(fast)  zufällig.  Gemeint  ist vielmehr "REMarks Beat Off", oder auf deutsch,
das  Heraushauen der Bemerkungen aus dem Listing. Das allerdings macht »REMBO«
ebenso gründlich und radikal wie sein (Fast-)Namensvetter!

So, nach der langen Vorrede nun ans Eingemachte:

Gehen Sie wie folgt vor:

1. Speichern Sie Ihr erstelltes Programm mittels des Befehls SAVE,A als ASCII-
   Datei  ab. Da hier die Befehle nicht als sogenannte "Tokens", sondern quasi
   "in   Reinschrift"  abgespeichert  werden, kann »REMBO« nun nach bestimmten
   Zeichenfolgen suchen.

   In diesem Zusammenhang sollte ich vielleicht erwähnen, daß ich als maximale
   Anzahl von Programmzeilen 9000 vorgesehen habe. Das sollte ja wohl wirklich
   ausreichen, oder? Wenn nicht, dann müßten Sie vielleicht mal Ihren Program-
   mierstil überprüfen!!

2. Starten Sie das Programm »REMBO«.

   Das Basic-File "REMBO.GFA" wird dazu entweder mit dem beigefügten RUN-ONLY-
   Interpreter oder, falls vorhanden, mit dem Interpreter 3.00 aufgerufen.

   »REMBO«  erkennt  und entfernt folgende Fälle, sofern sie nicht Bestandteil
   eines Strings sind:

                         »Rem«  »REM«  »'«  »!«  ».«

   In  den  beiden Fällen der REM-Zeile beziehungsweise des Apostrophs am Zei-
   lenbeginn  wird  eine  mögliche  Einrückung ebenso berücksichtigt wie Groß-
   oder Kleinschreibung (siehe Befehl DEFLIST)

   In  Zeilen  mit  angehängtem Kommentar hinter dem Ausrufezeichen bleibt der
   Befehlsteil erhalten, der Rest fällt »REMBO« zum Opfer.

   Falls  es  sich um eine DATA-Zeile handelt, bleibt sie unberührt, denn hier
   dürfen   gar  keine REMs stehen. Es sind also immer DATAs und die werden ja
   wohl noch gebraucht, gelle!

   Der  letzte Fall ist eigentlich kein REM im engeren Sinne, er stellt in der
   BASIC-Version  3.00  eine Anweisung dar, mit der man ein formatiertes Druk-
   kerlisting  erzeugen  kann.  Da sowas aber nichts mit dem Programmablauf zu
   tun hat, heißt es auch hiervon Abschied nehmen.

3. »REMBO« läßt die Quell-Datei übrigens unberührt, es wird vielmehr eine neue
   Datei  mit  der  Endung  ".NEU" erzeugt, dorthin werden die verkürzten Pro-
   grammzeilen zurückgeschrieben. Die kann dann mittels MERGE in den Interpre-
   ter  geladen  werden.  Nun kann man das, teilweise erheblich gekürzte, Pro-
   gramm  als  *.BAS-  beziehungsweise *.GFA-Datei SAVEn (je nach Interpreter-
   Version).

   Sie  können mit der kleinen Datei "REMTEST.LST" einmal diese Vorgehensweise
   durchtesten.  Ich  habe  verschiedene Formen von Anmerkungen in ein kleines
   Programm  eingebaut. Nach der "Behandlung" durch »REMBO« ist die Datei zwar
   geschrumpft, aber immer noch voll funktionsfähig (, wenn auch überflüssig).

So,   das  war's. Wenn Ihnen »REMBO« zusagt, dann sollten Sie meine Bemühungen
mit einer kleinen "Spende"  (unter Absenderangabe!) in Höhe von DM 15,- beloh-
nen. Ich werde Ihnen dann das Listing zuschicken, logischerweise mit den REMs!

Vielleicht haben Sie noch ein, zwei Ideen, wie »REMBO« zu verbessern ist. Oder
stecken noch Fehler drin, die Sie gern beseitigt hätten? Diese Anregungen kön-
nen Sie bei der Gelegenheit gleich mit loswerden.

              ***  Änderungen gegenüber älteren Versionen:  ***

Wie so oft, stecken Änderungen im Detail, sind also nicht sofort zu erkennen.

-> Es  ist jetzt möglich, »REMBO« in einem beliebigen Ordner abzulegen. Aller-
   dings sollte man dann den RUN-ONLY-Interpreter in demselben Verzeichnis ha-
   ben,  da  dieser  scheinbar  intern immer das aktuelle Verzeichnis als Pfad
   einstellt  und nicht etwa das Verzeichnis, welches man über die Fileselect-
   Box angewählt hat. Mal sehen, ob ich das Problem demnächst lösen kann ...

-> Die  Fehlerabfrage  wurde verbessert, so daß hier eigentlich nicht mehr mit
   Überraschungen zu rechnen sein dürfte.

-> Eventuell könnte bei früheren Versionen durch mehrmaliges Aufrufen des Pro-
   grammes  die  Speicherverwaltung "aus dem Tritt" gekommen sein, da mir hier
   ein Fehler im Zusammenhang mit dem RSC-File passiert war. Zukünftig ist das
   Problem behoben.

Der  Rest  ist  mehr "kosmetischer" Natur und hat keine spürbaren Auswirkungen
auf die Arbeit mit dem Programm.

Trotzdem ist es gelungen, den Umfang von Programm + Resource sogar um ein paar
Byte zu reduzieren, und das sogar ganz ohne »REMBO«!

Also dann, "Fleißiges Killen" (Alle Pazifisten mögen mir verzeihen ...)