home *** CD-ROM | disk | FTP | other *** search
- ─────────────────────────────────────────────────────────────────────────────
- Dokumentation zur Datei: PARMS.INC
-
- ─────────────────────────────────────────────────────────────────────────────
-
- PARMS.INC - Routinen zur Ermittlung von Kommandozeilen-Parametern
- (für den Assembler A86)
-
- (c) Bernd Schemmer 1990 - 1992
- Letzter Update: 02.02.1992
-
- ■ Beschreibung:
- ---------------
- Als Trenner für die Parameter werden die Zeichen
-
- '-', '/', Tabulatoren und das Leerzeichen
-
- angesehen. Ein CR (ASCII-Code 0Dh) wird als Ende der Parameterzeile
- gewertet.
-
- Beispiel:
-
- Die Parameterzeile
- 11-22/33//44--55-/-66 77 88
- wird folgendermaßen │ │ │ ││ ││ │││ │ │
- ausgewertet: │ │ │ ││ ││ │││ │ │
- │ │ │ ││ ││ │││ │ │
- Anzahl Parameter: 12 │ │ │ ││ ││ │││ │ │
- Inhalt der Parameter: │ │ │ ││ ││ │││ │ │
- Parameter 1: 11 ───┘ │ │ ││ ││ │││ │ │
- Parameter 2: -22 ─────┘ │ ││ ││ │││ │ │
- Parameter 3: /33 ────────┘ ││ ││ │││ │ │
- Parameter 4: / ───────────┘│ ││ │││ │ │
- Parameter 5: /44 ────────────┘ ││ │││ │ │
- Parameter 6: - ───────────────┘│ │││ │ │
- Parameter 7: -55 ────────────────┘ │││ │ │
- Parameter 8: - ───────────────────┘││ │ │
- Parameter 9: / ────────────────────┘│ │ │
- Parameter 10: -66 ─────────────────────┘ │ │
- Parameter 11: 77 ──────────────────────────┘ │
- Parameter 12: 88 ──────────────────────────────┘
-
- Falls ein oder mehrere Trennzeichen in einem Parameter übernommen
- werden soll, muß der Parameter in Anführungstriche gesetzt werden.
- Möglich sind hierfür die Zeichen ' (normales Anführungszeichen),
- ` (umgekehrtes Anführungszeichen) und " (doppelte Anführungszeichen).
- ALLE Zeichen zwischen zwei gleichen Anführungsstrichen werden als
- EIN Parameter gewertet. Die einzige Ausnahme hiervon ist das Zeichen
- mit dem ASCII-Code 0Dh (= CR) Dieses wird IMMER als Ende der Para-
- meterzeile angesehen.
- Die Anführungstriche zur Klammerung eines Parameters werden NICHT
- mit übergeben. Alle möglichen Anführungszeichen können auch gemischt
- in einer Parameterzeile vorkommen.
-
- Achtung: Dadurch sind auch leere Strings als Parameter möglich!!
-
- weitere Beispiele:
-
- Parameter-Zeile --- wird ausgewertet zu: ----------------------
- │ Parameter │ Parameter │ Parameter │ Parameter
- │ 1 │ 2 │ 3 │ 4
- ─────────────────┼────────────┼───────────┼───────────┼─────────
- 4 -5 --6 │ 4 │ -5 │ - │ -6
- 4 -5 '--6' │ 4 │ -5 │ --6 │
- '"45' `a a` │ "45 │ a a │ │
- '1 2 3 4 5 │ 1 2 3 4 5 │ │ │
- "a'456 'a" '' │ a'456 'a │(leerer │ │
- │ │ String!) │ │
-
- Die Parameter werden intern gespeichert, d.h. nach einem Aufruf
- einer Routine aus dieser Datei können ohne Verlust der Parameter
- auch Funktionen, die die voreingestellte DTA bei PSP:0080h benutzen,
- aufgerufen werden.
-
- Bei der Behandlung der Anführungsstriche ist die Behandlung dieser
- durch den aktuellen Kommando-Prozessor zu beachten!
- (gilt vor allen für den Kommando-Prozessor 4DOS!)
-
-
- ■ Variablen:
- ------------
- SaveParams - String, Original-Parameterzeile
- (erst nach min. einem Aufruf einer Routine
- aus dieser Datei belegt, READ ONLY!)
-
-
- ■ Routinen:
- -----------
- ParamStr - Liefert den n-ten Parameter als String mit
- Längenbyte
- ParamCount - Liefert die Anzahl der Parameter
-
-
- ■ EQU-Anweisungen für die Trennzeichen (Byte)
-
- CR EQU 0Dh
- TAB EQU 09h
- BLANK EQU ' '
-
- Die beiden folgenden Trennzeichen können vom Programm umdefiniert werden!
-
- ParmTrenner1 EQU '/'
-
- ParmTrenner2 EQU '-'
-
- ----------------------------
- ParamStr
-
- Funktion: Ermitteln des Parameters mit der Nummer in AL
-
- Eingabe: AL = Nummer des Parameters (Zählung beginnt bei 1)
- ES:DI -> Puffer für den Parameter
-
- Ausgabe: Puffer bei ES:DI enthält den Parameter (incl. Längen-Byte)
- falls vorhanden oder aber das Längen-Byte des Strings ist
- auf 0 gesetzt.
- ZF = 0 ->> Parameter ermittelt
- ZF = 1 ->> Parameter nicht vorhanden
-
- Bes.: Falls als Nummer 0 angegeben wird, so wird der erste
- Parameter zurückgegeben.
- AX wird nicht verändert.
-
- ----------------------------
- ParamCount
-
- Funktion: Ermitteln der Anzahl der übergebenen Parameter
-
- Ausgabe: AL = Anzahl der Parameter
-
-