------------------------------------------------------------------------------ TEXT ADVENTURE SYSTEM R1 0.98B3 by Viktor-Technology [C] 1995 - 2000 ------------------------------------------------------------------------------ --- Einleitung --- Dieses System vereinfacht das Schreiben von Textadventures, indem es eine eigens dafuer optimierte Programmiersprache bietet, mit der jeder, der zumindestens einmal ein Batch-Skript (Shell-Skript) oder dgl. erstellt hat, keine Probleme haben sollte, selber seine Adventures zu schreiben. Diese Datei gibt Dir Informationen ueber die verfuegbaren Befehle und einen Einblick in die Gestaltungsmoeglichkeiten des Systems. Sollten trotzdem noch Fragen offen bleiben, so kannst Du mich unter der E-Mail Adresse viktor@via.at erreichen. Deine fertigen Adventures koennen auch an mich geschickt werden, die dann auf meiner Homepage veroeffentlicht werden. link: http://www.viaweb.at/viktor Viel Spass und Kreativitaet wuenscht Dir, -Viktor- --- Files --- TXACOMP.ERR Errorcodebeschreibung von txacomp TXACOMP.EXE Text Adventure Compiler TXAEXEC.ERR Errorcodebeschreibung von txaexec TXAEXEC.EXE Text Adventure Interpreter DEMO1.TXA erstes Demoadventure DEMO1.TXT Source HELLO.TXA hello world HELLO.TXT Source README.TXT diese Dokumentation Dieses Programmpaket darf frei kopiert und vertrieben werden, solange keine Aenderungen an den oben angefuehrten Dateien gemacht werden und alle Dateien gemeinsam (in einem Archiv) verteilt werden. Falls das Archiv im Internet zum Download angeboten wird, muss ein Link zu http://www.viaweb.at/viktor auf die Originalseite hinweisen. Jegliche kommerzielle Nutzung ist nur mit Einwilligung des Autors moeglich. Die Benutzung der Porgramme erfolgt auf eigenes Risiko. --- 1. Aufbau --- Die Adventures (ADV) werden in einem ASCII Editor, der den MS-DOS Zeichensatz untersttzen muá, geschrieben. Ich empfehle WordPad, das in der Lage ist, Text-Dateien im MS-DOS Format abzuspeichern. Gross/Kleinschreibung wird bei den Befehlen nicht beruecksichtigt. Weiters koennen in Textausgaben nicht alle Zeichen des Zeichensatzes verwendet werden (deutsche Umlaute und scharfes S sind aber moeglich). Jedes ADV beginnt mit folgender Headerzeile: [TXTADV "Spielname" PART 1 OF 1] wobei Spielname frei waehlbar ist Das restliche Programm besteht im wesentlichen aus Sektionen fuer * Einstellungen (Farben, etc.), bezeichnet als [INIT] * die einzelnen Raeume [ROOM Raumname] jede "Lokalitaet" entspricht in diesem System einem Raum * Befehle, die im Zusammenhang mit dem Inventar des Spielers stehen bezeichnet als [INVENTORY] im weiteren werden fuer jede Sektion die verfuegbaren Befehle erlaeutert: --- 2. [INIT] --- Dieser Teil wird beim Starten des ADVs als erstes durchgearbeitet und beinhaltet Variablen, globale Texte und verschiedene Einstellungen. Da das System sequentiell arbeitet, steht die Sektion [INIT] am Bestem am Anfang der Datei. TITLE = " *** hier steht der Titel meines Adventures *** " initialisiert die Titelleiste (immer sichtbar am oberen Bildschirmrand) Leerzeilen zwischen geschriebenen Zeilen werden mit der Hintergrundfarbe aus- gefuellt. Soll eine Zeile zwischen Titel und Eingabefenster frei bleiben, muessen zwei Newlines (CR) an den String angehaengt werden: TITLE="Spiel 1" "" / REM das ist ein Newline (Leerzeile) " " / REM Leerzeichen, damit Zeile mit Hintergrundfarbe ausgefuellt wird Eine neue Zeile beginnt man, indem man in der naechsten Zeile nach dem eigentlichen Befehl (in diesem Fall TITLE) mit Anfuehrungszeichen den Text, der spaeter in der naechsten Zeile erschienen soll, schreibt. START = [ROOM Raumname] gibt den Raum an, mit dem das ADV beginnen soll ITEXT = " *** was nun ? " initialisiert den Eingabeaufforderungsstring (INPUT). jede Zeile, in der der Spieler seine Befehlseingabe machen kann, beginnt mit dieser Meldung INTEXT = "*** eine Zahl bitte: " initialisiert die Eingabeaufforderung fuer eine Zahl (INPUT ...) CTEXT = "*** bitte waehle aus der Liste einen Eintrag aus" initialisiert die Eingabeaufforderung fuer den Befehl CHOOSE. IMSG?? = "*** individuelle Meldung ***" veraendert eine interne Meldung. ?? steht fuer: 1 interne Hilfe 2 interner Befehl fuer Bildschirm loeschen 3 interner Befehl fuer Beenden 4 interner Befehl fuer Rauminformation anzeigen 5 interner Befehl fuer Spielstand speichern 6 interner Befehl fuer Spielstand laden 7 Aufforderung zur Bestaetigung (Sind Sie sicher (J/N) ?) 8 Meldung - Spielstand gesichert 9 Meldung - Spielstand geladen 10 Aufforderung ueberschreibung bestaetigen (ueberschreiben (J/N) ?) 11 Meldung - INVENTORY: 12 Meldung - Du hast nichts bei Dir ! 13 Meldung - nichts 14 Meldung - Ungueltige Zahl ! 15 Zeichen fuer Ja ("J") 16 Zeichen fuer Nein ("N") 17 interner Befehl fuer Spiel nocheinmal starten 18 Meldung - Taste druecken (wenn "" wird Meldung unterdrueckt) 19 interne Hilfe bei choose VAR varname = zahl | (TRUE | FALSE) initialisiert eine Variable. Diese kann entweder numerisch (speichert eine Zahl) oder eine boolesche Variable (speichert nur Ja/Nein) sein. Variablen werden verwendet, um bestimmte Sachverhalte im Spielverlauf darzu- stellen. Beispielsweise wird fuer jeden Gegenstand eine boolesche Variable (entweder true oder false) initialisiert, die speichert, ob der Spieler diesen Gegenstand besitzt oder nicht. Ob eine Tuer im Spiel geoeffnet oder geschlossen ist, wird ebenfalls ueber solche Variablen gespeichert. Variablen koennen mit dem Befehl IF auf ihren Inhalt abgefragt werden. textname = "*** ich bin ein globaler Text, der in allen Raeumen bekannt ist" Hauptbestandteil eines Adventures ist der Text, der am Bildschirm ausgegeben, werden soll. in der Sektion [INIT] werden Textvariablen initialisiert, die in allen Raeumen ausgegeben werden koennen. Beispiel: janein = "Bitte waehle Ja oder Nein!" So ein Text kann oefters im Adventure gebraucht werden, und kann daher in einer globalen Textvariable abgespeichert werden. --- 3. Farbeinstellungen --- Die Farben koennen in jeder beliebigen Sektion veraendert werden, doch gelten die Aenderungen erst ab der naechsten Textausgabe. (Ausnahme: Titelleiste, Statusleiste) Gueltige Vordergrund- und Hintergrundfarben: BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY, DARKGRAY, LIGHT- BLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW und WHITE TITLECOLOR = farbe TITLEBACKGROUND = farbe definiert die Vordergrund- und Hintergrundfarbe der Titelleiste TEXTCOLOR = farbe TEXTBACKGROUND = farbe definiert die Vordergrund- und Hintergrundfarbe des auszugebenden Textes INPUTCOLOR = farbe INPUTBACKGROUND = farbe definiert die Vordergrund- und Hintergrundfarbe von Zeilen, in denen der Spieler eine Eingabe machen kann. SCREENCOLOR = farbe SCREENBACKGROUND = farbe definiert die Vordergrund- und Hintergrundfarbe des restlichen Bildschirms --- 4. [ROOM Raumname] --- Diese Sektionen beinhalten alle Befehle, die in Zusammenhang mit einer bestimmten "Lokalitaet" im Spiel stehen. Hinweis: Bei der 16bit Version dieses Systems (TxA16), sind fuer die Raumnamen nur Zahlen zwischen 1 und 65535 gueltig (Bsp.: [ROOM1] oder [ROOM 1]). RINFO = "*** Du bist in einem Zimmer mit einem schwarzen Plakat an der Wand." initialisiert einen Informationstext ueber den aktuellen Raum. textname = "*** hier steht ein Text, der anschliessend" "mit PRINT ausgegeben wird" "dieser Text kann ueber mehrere Bildschirmseiten gehen ***" Initialisiert eine Textvariable, die nur lokal (in der aktuellen Raumsektion) verwendet werden kann. Hauptsaechlich werden solche Textvariablen fuer mehrzeilige Ausgaben verwendet. PRINT Variablenbezeichnung PRINTNL Variablenbezeichnung PRINTDNL Variablenbezeichnung PRINTINP Variablenbezeichnung oder auch PRINT "*** dieser Text wird sofort ausgegeben" gibt einen Text oder den Inhalt einer Variable aus. PRINTNL laesst vor der Ausgabe ein Zeile frei, PRINTDNL laesst _auch_ nach der Ausgabe eine Zeile frei und PRINTINP gibt vor der Ausgabe zwei und nachher eine Leerzeile aus. PRINT[NL|DNL|INP] RINFO gibt die Rauminformation aus (siehe Befehl RINFO oben). NL,DNL,INP Endungen wie bei PRINT PRINT[NL|DNL|INP] INVENTORY gibt Inventory-Liste aus. NL,DNL,INP Endungen wie bei PRINT NL gibt eine Leerzeile aus. CLS loescht den Bildschirm. (greets to MS-DOS) WAIT "*** bitte Taste druecken ***" WAIT Textvariable wartet auf eine beliebige Taste. Variblenname = Wert bzw. "*** Text ***" Der Wert kann z.B. TRUE oder FALSE bei booleschen Variablen sein. Variablenname = RANDOM ( n ) weist einer Variable einen zufaelligen Wert im Bereich von 0 bis n (1 bis 32767) zu. Variablenname += Zahl Variablenname -= Zahl erhoeht (erniedrigt) eine Variable um den Wert. IF [NOT] Variablename = TRUE oder FALSE THEN vergleicht die Variable auf den Wert TRUE oder FALSE. NOT ist optional. IF [NOT] Variablename = Zahl THEN vergleicht die Variable mit der Zahl. Statt = (gleich) kann auch auf < (kleiner) oder > (groesser) abgefragt werden. ELSE wenn die Bedingung der IF-Anweisung falsch ist, werden die Anweisung nach ELSE bis END IF ausgefuehrt. END IF jeder IF Befehl muss mit einem END IF enden, um erkennbar zu machen welche Befehlssequenz zur IF Anweisung gehoehrt. Es ist besonders auf die korrekte Schachtelung der IF, ELSE und END IF- Anweisungen zu achten. Kein END IF wird benoetigt, falls nach THEN in der selben Zeile ein Befehl an- gegeben wird. Bsp.: IF ende=true THEN GO [ROOM 1] CHOOSE [RANDOM] {Befehle, die vor der Abfrage ausgefuehrt werden. Hier darf kein zweites choose stehen!} * Textvariable1 {Befehle, die ausgefuehrt werden, falls der Spieler Textvariable1 gewaehlt hat} ... * Textvariable2 {Befehle, die ausgefuehrt werden, falls der Spieler Textvariable2 gewaehlt hat} ... ... END CHOOSE Zeigt dem Spieler eine Liste mit Optionen an und laesst ihn zwischen den mit * angegebenen Textvariablen waehlen. Es koennen maximal 16 Auswahl- moeglichkeiten angegeben werden, die falls die Option RANDOM angegeben ist, in zufaelliger Reihenfolge ausgegeben werden. --- INPUT --- INPUT ["*** optionale Eingabeaufforderung"] [Variablename] laesst dem Spieler ein Kommando eingeben. Danach wird bei der entsprechenden Zeile die Ausfuehrung fortgesetzt. Nach dem INPUT-Befehl kann entweder eine Zahlenvariable oder eine Text- variable stehen. Der vom Spieler eingebene Wert (Zahl oder Text) wird in die angegebene Variable gespeichert. In diesem Fall gibt es keine Analyse auf Kommandouebereinstimmung und die Ausfuehrung setzt mit dem naechsten Befehl nach INPUT fort. Der INPUT Befehl ist also der zentrale Befehl der die Interaktion zum Spieler herstellt. Die Kommandos, die vom Spieler eingegeben werden koennen, bestehen prinzipiell aus zwei Teilen: dem Kommando selbst (z.B.: nehmen) und dem Objekt (z.B.: Schluessel). Die Abfrage des eingegeben Kommandos erfolgt ueber Klammerung des Kommandos und anschliessender Befehlssequenz, die nur dann ausgefuehrt wird, falls der Spieler dieses Kommando eingegeben hat. Die Abfrage der Objekte erfolgt ueber das Objekt mit Doppelpunkt dahinter. Beispiel: (nimm) PRINTINP "Was soll ich denn nehmen, es wurde kein Objekt angegeben." Schluessel: PRINTINP "Okay." schluessel=true OTHERWISE: PRINTINP "Das kann ich nicht nehmen." (OTHERWISE) PRINTINP "Ich kenne diesen Befehl nicht!" OTHERWISE: PRINTINP "Auch diesen Befehl kenne ich nicht!" (Kommando) definiert ein Kommando Objekt: stimmt die Eingabe des Spielers nicht komplett mit dem uebergeordneten Kommandotext ueberein, wird bei seinen Objekten weitergesucht. Werden lokale Textvariablen veraendert, werden diese beim Ruecksprung zu INPUT (Befehl RESUME) wiederhergestellt. Hat ein Kommando/Objekt den Namen OTHERWISE, wird dieses ausgefuehrt, falls keine Zeile mit der Eingabe uebereinstimmt. !!! OTHERWISE sollte man immer in beiden Kommandoteilen einsetzen !!! Dadurch werden Eingabefehler erfolgreich abgefangen. (siehe Beispiel) Es ist auch moeglich bestimmte Woerter (z.B.: der,die,das,...) als unwichtig zu markieren. Diese Woerter werden bei der Eingabe ignoriert. Schachtelungen sind auch moeglich. Beispiel: (UNTERSUCHE{DEN}{486{DX4}}COMPUTER) reagiert auf folgende Eingaben: untersuche den 486 dx4 computer, untersuche 486 dx4 computer, untersuche den computer, untersuche den 486 computer, untersuche 486 computer, untersuche computer Mit dem Zeichen '|', kann entweder der linke ODER der rechte markierte Text- teil in der Eingabe verwendet werden. '{' und '}' gelten in diesem Fall als Markierung. Beispiel: (UNTERSUCHE{DEN}{COMPUTER}|{RECHNER}) reagiert auf folgende Eingabe: untersuche den computer, untersuche computer, untersuche den rechner, untersuche rechner RESUME wiederholt INPUT (muss nicht unbedingt explizit angegeben werden) GO [TO] [ROOM Raumname] setzt die Ausfuehrung bei dem angegebenen Raum fort. TO ist optional. GO (OTHERWISE) setzt die Ausfuehrung beim Input-Kommando '(OTHERWISE)' fort. Nur innerhalb von anderen Input-Befehlssequenzen verwendbar! GO OTHERWISE setzt die Ausfuehrung beim Input-Objekt 'OTHERWISE:' fort. Nur innerhalb von anderen Input-Befehlssequenzen verwendbar! CONTINUE [WITH] [PART?] setzt die Ausfuehrung bei dem angegebenem Teil fort. Die erste Zeile eines Adventures gibt an, um welchen Teil es sich handelt und wieviele insgesamt existieren. Zwischen den einzelnen Parts gibt es keine Moeglichkeit Informationen auszutauschen, d.h. diese muessen unabhaengig voneinander sein. RESTART startet das Adventure neu. QUIT beendet das ADV. REM leitet ein Kommentar ein (gilt nur fue eine Zeile), d.h. diese Zeile wird von TXACOMP ignoriert. --- 5. [INVENTORY] --- In dieser Sektion stehen moegliche Kommandos und deren Objekte (vgl. INPUT), die waehrend des gesamten Adventures verwendet werden koennen. Speziell ist die Handhabung der Kommandos im Zusammenhang mit dem Inventar sinnvoll, da z.B. der Befehl untersuche Schluessel in allen Raeumen, die gleiche Meldung liefern soll. Bei einer Kommandoeingabe wird dann in dieser Sektion gesucht, falls in der jeweiligen Raumsektion keine Uebereinstimmung gefunden wurde. GO [ROOM Raumname]-Befehle sind hier nicht ausfuehrbar. Am Anfang dieser Sektion werden mit dem Befehl ITEM Gegenstaende im Spiel mit Variablen verknuepft. Laesst sich der Spieler sein Inventar ausgeben, werden diese Gegenstandsbezeichnung (bei Besitz) ausgegeben. ITEM Varibalename = "*** Schluessel ***" weist einer bestimmten booleschen Variable einen Namen zu. Hat diese den Wert TRUE, dann wird der Name beim Inventar ausgegeben. --- 6. TXACOMP --- Dieses Programm kodiert die Adventuredatei (ASCII-Text) und erzeugt eine Datei mit der Dateiendung .TXA Nachher laesst sich mit TXAEXEC das ADV starten. Einige Fehler koennen mit diesem Programm nicht erkannt werden (z.B.: falsche IF-Schachtelung, falsche INPUT-Kommando-Schachtelung, Fehlen eines Raumes, ...). Solche Fehler werden dann erst unmittelbar bei der Ausfuehrung sichtbar! --- 7. TXAEXEC --- Dieses Programm startet ein zuvor mit TXACOMP bearbeitetes ADV. Bei der Eingabe wird zwischen Gross- und Kleinschreibung nicht unterschieden. Treten physikalische Fehler (Lesefehler,...) auf, wird das ADV sofort beendet. Bei allen anderen Fehlern gibt es folgende Moeglichkeiten: Leave Object: wenn der Fehler in einem Input-Teil auftritt, kann durch diese Option das Objekt verlassen werden (entspricht RESUME). Ignore Error: ignoriert den Fehler (nicht empfehlenswert!) Resume: probiert den fehlerhaften Befehl noch einmal. Exit: beendet das ADV. Interne Befehle (DEFAULT): sind nur waehrend der Kommandoeingabe verfuegbar und koennen mit IMSG?? veraendert werden. Bei Leerstring ("") ist der Befehl deaktiviert. ? listet alle internen Befehle auf. CLS loescht den Bildschirm. INFO zeigt aktuelle Rauminformation und Inventory-Liste an. SAVE speichert den aktuellen Spielstand. Der Name der Datei lautet genauso wie die TxA-Datei, jedoch mit der Erweiterung SA?. Es koennen max. 10 Spielstaende zu einem Adventure gespeichert werden. Zu jedem Spielstand kann zusaetzlich eine Beschreibung mitgespeichert werden. Existiert die Datei schon, wird gefragt, ob diese Datei ueberschrieben werden soll. Tritt ein Fehler auf, wird die Programmausfuehrung fortgesetzt. LOAD laedt einen zuvor gesicherten Spielstand. Achtung: Diese Option ueberschreibt interne Variablen - Tritt ein Fehler auf, wird das Programm meistens beendet! QUIT beendet das Programm. --- 8. History --- - 1995 - Vorgabe von ca. 20 Befehlen, rein auswahlgesteuertes Konzept (CHOOSE) 0.3 erste TXACOMP Version (mit beinahe allen 20 Befehlen) 0.5 oder 0.6 erste sinnvoll lauffaehige Versionen 0.7 Grosse Erweiterung auf Kommandozeilenbefehle (INPUT, INVENTORY, ...) Implementierung des Parsers 0.8 Einbeziehung von ITEMs 0.9 Hinzufuegung von Farben, ITEMLISTs, GO OTHERWISE-Befehle, PRINTINP, mehrere Befehl in einer Zeile durch das Trennzeichen "/", - 1996 - 0.91 (keine offizielle Version) bis zu 10 Spielstaenden speicherbar 0.92 (keine offizielle Version) Implementierung von RESSOURCES vorbereitet - 1997 - 0.93 (Versionsnummer ausgelassen) 0.94 (keine offizielle Version) Erweiterung auf Multipart Adventures, dadurch sind bis zu 11-fach groessere Adventures moeglich 0.95 (keine offizielle Version) Globale und lokale Texte muessen nicht mehr text??? bzw. gtext??? heissen, sondern koennen beliebig gewaehlt werden. 0.96 (keine off. Version) Konvertierung des ganzen Projektes in C++ als Windows Console Application (VC++5). Abstimmung zw. Win95 und WinNT (verhalten sich in einigen Punkten extrem unterschiedlich, Win95 hat teilw. Bugs) Unter Win95 txaexec32 um vieles langsamer als MS-DOS Version! Vorteile von TxA32: o Unterstuetzung von langen Dateinamen o Interner Lesepuffer von 2x4kb auf 2x8kb vergroessert o ganzer Hauptspeicher steht zur Verfuegung o die letzten 20 eingegebenen Kommandos werden gespeichert - 1998 - 0.95/0.96 Build 2 (keine off. Version) o Ausstiegsmoeglichkeit bei CHOOSE-Abfragen durch Druecken von ESC o Automatische More-Funktion bei der Anzeige von Texten, die laenger als eine Seite sind (IMSG18 neu) o Bug in compare behoben (Indexueberschreitung) o Farbfehler in printc/str ausgebessert (SCRC vs SYSC) Build 3 (27.1): o alle 16 Farben als Hintergrundfarben nutzbar o Meldung fuer Tastendruck bei der More-Funktion, wird nach Druecken der Taste vom Bildschirm entfernt o Aenderung der Interpretation des TITLE-Strings, siehe Befehl TITLE o Bei CHOOSE wird die gewaehlte Option in Klammern angezeigt Build 4 (22.2): betrifft txacomp32, txaexec32 u. txaexec o Implementierung der Destruktoren der 32 Bit Versionen o Optimierung des GO TO Befehls, absolute Adressierung optimierte TXA-Datei sowohl mit txaexec32 als auch mit txaexec ausfuehrbar o Fehlende Raeume werden ab nun schon bei der Kompilierung erkannt(txa32) o (23.2) Bugs ausgebessert in error/list, testtxa 0.97 Build 1 (30.5.1998) keine offizielle Version: o dynamische Statuszeile in TxA32 implementiert in TxA16 werden Anweisungen ignoriert o txaio auf Version 2.0 erweitert, damit Statuszeile angezeigt werden kann (statusheight, scrollup, lasttattr) o einheitliche Versionsnummern fr TxA16 und TxA32: 0.97 o Unterscheidung zw. Null-String und Zero-String ("") in TxA32/16 -> weniger Abstuerze o Bug in cmd_var ausgebessert (var a=zahl) o txaexec32: Bug in opentxa ausgebessert (eingabe+=) - 1999 - Bulid 2 (27.1.1999): betrifft txacomp32 o ROOM-Objekte koennen ab nun frei benannt werden (max. 50 Zeichen) Abwaertskompatiblitaet nur dann gegeben, wenn die Raeume konstant mit demselben Zahlenformat angesprochen werden (Bsp.: [ROOM01] / ... / GO [ROOM01] und nicht [ROOM1] !) o verbesserte Fehlerausgabe bei der GO Optimierung: die nicht gefundenen Raeume werden namentlich aufgezaehlt o optgo prueft auch, ob der bei start angegebene Raum definiert wurde Build 3 (31.1.1999): o IF ... THEN ... ueberarbeitet IF ... THEN END IF nicht mehr moeglich IF ... THEN IF ... THEN PRINT "Test" wird richtig kodiert (2x END IF) bei IF ... THEN IF ... THEN (naechster Befehl in einer neuen Zeile) muessen die beiden abschliessenden END IFs explizit angegeben werden o ELSE Zweige implementiert Bsp.: IF 1 THEN ... ELSE ... END IF o Bug in Win98/95?: Cursor-Tasten liefern beim zweiten Aufruf von getch nicht mehr den Scancode! 0.98 Build 1 (21/22.12.1999) keine offizielle Version: o CHOOSE Befehl redesigned CHOOSE * text1 ... * text2 ... END CHOOSE es koennen sowohl lokale als auch globale Textvariablen eingesetzt werden, jedoch insgesamt maximal 16 statt bisher 9 intern wird dieser neue CHOOSE Befehl in if select THEN ELSE Abfolgen umgewandelt o CHOOSE Eingabe verbessert die Auswahl erfolgt ab nun durch die Cursor-Tasten und Bestaetigung mit Enter es steht nun auch beim Choose Befehl eine Interne Hilfe zur Verfuegung man kann nun von der Chooseeingabe aus, das ADV neu starten (Taste R) o More-Funktion bei CHOOSE und INPUT verbessert bisher wurde, falls die Inputzeile die letzte war, eine Aufforderung zum Tastendruck angezeigt o Ausstiegsmoeglichkeit beim Laden und Speichern mit Escape o Bug in der Funktion code ausgebessert (Initialisierung von i) o Aussehen von TxA und TxA32 vereinheitlicht fast gleiche Texte, TxA32-Prog. verwendet nicht mehr die Endung 32 Build 2 (31.12.1999): o mit INPUT koennen jetzt auch Strings eingelesen werden o Globale Strings koennen jetzt auch ausserhalb des INIT-Objektes ver- aendert werden (5.1.2000) txacomp: o Bugs in cmd_zuw und procline (end if) ausgebessert Build 3 (1-3.9.2000) o CHOOSE mit der Option RANDOM ergaenzt bei Angabe von RANDOM werden die Auswahlmoeglichkeiten in einer zufaelligen Reihenfolge ausgegeben o saemtliche internen Meldungen und Befehle koennen ab nun ueberall initialisiert und geaendert werden o Bug in cmd_choose (txacomp Parse-Fehler bei *) ausgebessert o Bug in txacomp16 ausgebessert, check_else_if war nicht initialisiert o Bug ausgebessert: lokale Textbezeichnungen (txacomp) wurden bei neuen Raeumen nicht geloescht o Bug ausgebessert: beim Anlegen einer Textbezeichnung wurde nicht ueberprueft, ob eine Variable gleichen Namens schon existiert --- 9. Credits --- Autor: Viktor Krammer E-Mail: viktor@via.at (C) 2000 by Viktor-Technology aktuelle Version: V0.98B3 (TxA32) es existiert auch eine 32-bit console Version