Madness Mailbox-System Parameter-šbergabe 24.02.1992 by Jrgen Meyer ========================================= In dieser Datei wird beschrieben, welche Parameter mittels des ARGV-Proto- kolles an externe Programme bergeben werden. Die Variablen sind immer 4 Zeichen lang, damit wird die Abfrage in Programmiersprachen erleichtert, die Strings nicht "von Haus aus" verarbeiten k”nnen. Ferner sind auch die bergebenen Werte einheitlich. Alle Zahlenwerte werden in ASCII abgelegt, die einen Hexadezimal-Wert darstellen. Folgend die Erkl„rung der benutzten Werte : CHAR[xx] Hier wird ein reiner ASCII-String bergeben. Die L„nge betr„gt immer xx Zeichen. Sollte der bergebene String krzer sein, wird mit Spaces aufgefllt. BYTE[] In diesem Falle wird ein Byte (Wert 0 - 255) bergeben, und dies in Hex-Form. Angenommen, der Consolen-Status (Variable "CONF") ist TRUE, so wird "FF" bergeben, also "CONF=FF". Der bergebene Hex-Wert ist immer 2-stellig. LONG[] Mit LONG wird ein Langwort bergeben (Wert 0 bis $FFFFFFFF), die Schreibform ist ebenfalls als ASCII gespeicherte Hex- Zahl. Der Wert wird immer 8-stellig formuliert, ggf. werden fhrende Nullen eingefgt. Beispiel : Dezimal-Wert 143846 wird bergeben in VARIABLE=000231E6. Nun werden alle derzeit verfgbaren Variablen erkl„rt. Jede Variable ist vier Zeichen lang, gefolgt vom einem Gleichheitszeichen. Danach folgt denn der Wert, hier angegeben im Typ (siehe Erkl„rung der Typen weiter oben) : MBRV=CHAR[8] In dieser Variable wird die aktuell laufende Version der Mailbox eingetragen. Format ist immer Vx.xx.Rx, also z.B. "MBRV=V3.64.R1". CONF=BYTE[] Hier wird der Consolen-Status bergeben. Ist das Byte FF, also TRUE, so ist die SysOp-Console eingeschaltet, wenn das Byte auf FALSE steht (also 00), dann ist sie ausgeschaltet. USNA=CHAR[20] Diese Variable bergibt den Usernamen. Der String ist immer 20 Zeichen lang. Ist der tats„chliche Username krzer, wird mit Leerzeichen aufgefllt. BAUD=CHAR[32] Dieser String enth„lt die Baudrate und die Zus„tze. šbergeben werden immer 32 Zeichen. Hier bergebene Strings k”nnen z.B. sein "BAUD=2400 ..." bei normalen 2400 Baud-Connects oder "BAUD=14400 HST MNP ..." bei einer HST-Verbindung unter 14400 Baud und MNP-Fehlerprotokoll. USNR=LONG[] Zus„tzlich zum Usernamen kann ber diese Variable die User- Nummer abgerufen werden. LOGT=LONG[] Die Variable "LOGT" enth„lt den Wert des 200 Hz-Timers beim Login, welche fr die Onlinezeit-Berechnung genutzt wird. MAXM=LONG[] Enth„lt die maximale Systemzeit des eingeloggten Users in 200 Hz-Timer-Clicks. Wenn die Bedingung "Aktueller 200 Hz- Timer minus Wert von LOGT gr”sser als Wert von MAXM" wahr ist, dann ist die max. Systemzeit abgelaufen und das Exter- nal SOFORT zu verlassen (bei Verwendung von X_ONLINE.LST bereits eingebaut). TERM=BYTE[] Hier wird die Termimalemulation des eingeloggten Users ber- mittelt. Ist das Byte 00, dann ist keine Emulation eingeschal- tet worden. Wenn der Wert des Bytes gleich 01 ist, hat der User VT52 eingeschaltet, bei 02 wurde VT100 gew„hlt. IODV=BYTE[] Damit das External auch weiž, ber welches Handle die Ein-/ Ausgabe stattfindet, wird hier das aktuelle I/O-Device ber- geben. Die Werte sind : 01 fr RS232, 02 fr Console und 03 fr MIDI. Wenn IODV=01 ist, ist eine Carrierprfung vor- zunehmen (bei Verwendung von X_ONLINE.LST bereits eingebaut). STAT=BYTE[] Es kann auch wichtig sein, den Status des eingeloggten Users zu wissen. Die Variable STAT bermittelt diesen. Werte sind von 00 (Status 0) bis 09 (Status 9) m”glich. CURS=BYTE[] Die Variable ist ein Flag; es wird mitgeteilt, ob der User die Cursorsteuerung oder das Kurzwort-Menue aktiviert hat. Ist CURS=FF, wird Cursorsteuerung genutzt, bei CURS=00 hat der User das Kurzwort-Menue gew„hlt. BELL=BYTE[] Variable ist ein Flag; hier wird mitgeteilt, ob der SysOp das Ert”nen der Bell (ASCII 7) im System aus- oder einge- schaltet hat. $00 = BELL ist aus, $FF = Bell ist ein. MDSP=BYTE[] Variable ist ein Flag; es wird der Status fr den Modem- Lautsprecher mitgeteilt, $FF = Modem-Lautsprecher ist ange- schaltet, $00 = Modem-Lautsprecher ist ausgeschaltet. SYCH=BYTE[] Hier wird abgelegt, welche Einstellung bezglich des Chats aktuell eingestellt ist. $01 bedeutet "SysOp ist nicht anwesend" - $02 bedeutet "SysOp ist ..." (vom Mad-Sys Betreiber gew„hlte Einstellung, siehe CHATMODE.DAT im Ordner \SYSTEM) - $03 schliežlich besagt "SysOp ist anwe- send, Chat ist m”glich". LLDA=CHAR[10] Unter Variable LLDA wird ein 10 Zeichen langer String ber- mittelt, welcher das Datum des letzten Login's in der Form TT.MM.JJJJ enth„lt (TT=Tag, MM=Monat, JJJJ=Jahr). LLTI=CHAR[8] Analog zu obiger Variable wird hier die Uhrzeit des letzten Login's bermittelt. Der String ist immer 8 Zeichen lang, die Form lautet HH:MM:SS (HH=Stunden, MM=Minuten, SS=Sekunden). ANRF=LONG[] Hier wird die Anzahl der Anrufe des Users bergeben. RDCH=LONG[] Dieses Langwort enth„lt die Anzahl der Zeichen vor dem Aufruf des Externals, die bisher vom User gesendet wurden (es werden alle Handeingaben sowie Uploads etc. gez„hlt, also jedes Bytes, was ber die Schnittstelle / Console vom User gesendet wurde). SDCH=LONG[] Langwort, welches die Anzahl der Zeichen enth„lt, die bisher von der Box zum User gesendet wurden; inkl. Downloads etc. COMP=CHAR[20] Mit der Variable "COMP" wird der (vom User eingegebene) Typ des Rechners des Users bergeben. Der String ist immer 20 Zeichen lang. EIND=CHAR[10] Diese Variable enth„lt einen 10 Zeichen langen String, der wiederum das Datum des Neueintrags des aktuellen Users ent- h„lt; in der Form TT.MM.JJJJ (TT=Tag, MM=Monat, JJJJ=Jahr). ONLT=LONG[] Mit ONLT wird die gesamte bisherige Onlinezeit in 200 Hz- Timer-Clicks bermittelt. Das bergebene Langwort geteilt durch 200 ergibt die Anzahl der Sekunden, nochmals geteilt durch 60 die Anzahl der Minuten usw. - Diese Variable wird vom Boxprogramm immer nur beim Login und Logoff upgedatet, d.h. um den ganz genauen Wert zu erhalten, muž ONLT mit dem Wert aus "Aktueller 200 Hz-Timer minus LOGT" addiert werden. MBIN=CHAR[64] Hier wird der komplette Pfadname fr die Datei "MB.INF" abgelegt. Beispiel : "MBIN=C:\MAILBOX\MB.INF ...". Fr Benutzer, die External's schreiben, die auf MB.INF zugrei- fen m”chten (um an bestimmte Pfade des Boxprogrammes heran- zukommen), kann von mir eine Definition fr das Format der Datei "MB.INF" bezogen werden. PARM=CHAR[16] Hier werden die aktuellen Einstellungen entsprechend dem Madness-Befehl "PAR" bergeben. Es sind maximal 16 einzelne Switches m”glich. Dabei wird von Rechts nach Links gelesen, d.h. das 16. Zeichen dieses Strings gibt Switch 1 wieder, das erste Zeichen des Strings gibt Switch 16 wieder. Die einzelnen Zeichen des Strings enthalten entweder "0" oder "1" (ASCII 48 bzw. ASCII 49). Bei "0" wurde entsprechende Option (Switch) in PAR mit "NEIN" beantwortet, bei "1" mit "JA". Hier eine Liste der derzeit untersttzten (siehe auch PAR) Switches / Optionen : Option 1 : Menue-Infozeilen (Kurzwort-Menue) anzeigen ? Option 2 : Briefempfang (PMail) m”glich ? Option 3 : Glocke (CTRL-G) bei Eingaben ? Option 4 : Briefe (PMails) bei Login ausgeben ? Option 5 : XModem-Briefempfang m”glich ? Option 6 : Seitenstop nach 24 Zeilen ? Option 7 : Brett-/Texteditor-Menues anzeigen ? Option 8 : MacBinary-Header anzeigen (Prog-Liste) ? Option 9 : Verbindungs-Gebhren anzeigen ? Option 10 : Kurzform bei 'Neue Prg. s. letztem Login' ? Option 11 : (Reserviert, derzeit ungenutzt) Option 12 : (Reserviert, derzeit ungenutzt) Option 13 : (Reserviert, derzeit ungenutzt) Option 14 : (Reserviert, derzeit ungenutzt) Option 15 : (Reserviert, derzeit ungenutzt) Option 16 : (Reserviert, derzeit ungenutzt) SELP=CHAR[66] Diese Variable wird nur bei External's bergeben, die unter "EXTAFTDOWN" installiert sind (also jene External's, die nach einem Download gestartet werden). Der 66 Zeichen lange String enth„lt in den ersten beiden Zeichen entweder "FF", wenn der Download korrekt war, oder "00", wenn ein Fehler auftrat und der Download abgebrochen wurde. Die nachfolgenden 64 Zeichen enthalten 8 "Longs", die jeweils die gew„hlten Programm-Nummern angeben. Wurden weniger als 8 Programme zum Download angew„hlt, sind die betreffenden Long's "00000000". VFNA=CHAR[128] Diese Variable wird nur bei External's bergeben, welche unter der PRI-Funktion (Archiv-Inhalt anzeigen) eingesetzt werden. Die Variable VFNA wird dann an das aufrufende Prog. "VIEW_xxx.TTP" (xxx = Extender des zu listenden Files) ber- geben und enth„lt den kompletten Pfad- & Dateinamen der anzu- zeigenden Archiv-Datei. Alle Variablen werden immer in Grožbuchstaben bergeben. Die hier aufge- fhrte Reihenfolge der bergebenen Variablen ist NICHT verbindlich und kann sich nach Belieben „ndern ! - Daher immer bitte auch wirklich den Namen der einzelnen Variablen abfragen und nicht von einer bestimmten Reihenfolge ausgehen (Wer in GfA-Basic programmiert und X_ONLINE.LST nutzt, braucht sich hierum natrlich nicht zu kmmern). Wer eigene Routinen schreibt, bedenke bitte, daž die šbergabe nun ber das ARGV-Protokoll stattfindet. Die bergebene Kommandozeile enth„lt daher absolut keine Werte mehr. Die ARGV-šbergabe findet bei allen Aufrufen von externen Programm im Mad-Sys statt; mit Ausnahme bereits festgelegter Aufrufer fr die Archiver, ZModem oder Madness-eigene Programme. Wer das ARGV-Protokoll nicht kennt und nicht GfA-Basic- Listings durchschaut, sollte sekund„re Fachliteratur zur Rate nehmen, empfohlen sei z.B. das "Atari ST Profibuch", aus dem Sybex-Verlag. MfG. Jrgen Meyer