home *** CD-ROM | disk | FTP | other *** search
- ─────────────────────────────────────────────────────────────────────────────
- Dokumentation zur Datei: GETVALUE.INC
-
- ─────────────────────────────────────────────────────────────────────────────
-
- GETVALUE.INC - Routinen zur Ermittlung und Konvertierung von
- Werten in Zeichenketten (für den Assembler A86)
-
- (c) Bernd Schemmer 1990 - 1992
- Letzter Update: 02.02.1992
-
-
- ■ Hinweis:
- ----------
- Alle Routinen zur Konvertierung von Zeichenketten erwarten einen
- Wert in Form einer Zeichenkette (ohne Längenzähler) bei DS:SI.
- Diese muß mit einer Ziffer beginnen.
- Als Ende der Zahl gilt jedes Zeichen, das in dem entsprechenden
- Zahlensystem keine Ziffer darstellt. Führende Nullen sind erlaubt,
- aber nicht notwendig.
-
-
- ■ Variablen:
- ------------
- FormatChar - Byte, dieses Zeichen wird beim Ermitteln
- von Werten überlesen. Voreinstellung: '.'
- (d.h. 34.5..6 ist das gleiche wie 3456)
-
-
- ■ Routinen:
- -----------
- Digit? - Konvertiert eine Ziffer in ihren
- binären Wert
-
- GetBinWord - Konvertiert eine Bin-String
- GetOctWord - Konvertiert eine Oct-String
- GetDezWord - Konvertiert eine Dez-String
- GetHexWord - Konvertiert eine Hex-String
- GetWord - Konvertiert eine String in einen Wert mit
- einer beliebigen Basis zwischen 2 und 15
-
-
-
- ■ Fehlermeldungen der Routinen
- ------------------------------
-
- Alle Fehlernummern der Routinen haben das Format 70xx, wobei xx die
- Nummer des eigentlichen Fehlers ist.
-
- Name Nummer Bedeutung
- ----------------------------------------------------------------------
- InvalidBase EQU 7001h ; Falsche Basis angegeben
-
- KonvertOverflow EQU 7002h ; Zahl ist zu groß
-
-
- ----------------------------
- Digit?
-
- Funktion: Wandelt das ASCII-Zeichen in AL in dessen Wert,
- falls es sich um eine Ziffer im Intervall
- von 0..F handelt.
- (Für die Ziffern A..F sind Groß- undr Kleinbuchstaben
- erlaubt.)
-
- Eingabe: AL = ASCII-Zeichen
-
- Ausgabe: CF = 0 ->> Konvertierung okay
- AL = Wert
- CF = 1 ->> Fehler
- AL undefiniert
-
- ----------------------------
- GetBinWord
-
- Funktion: Konvertiert die Zeichenkette bei DS:SI
- als vorzeichenlose Binärzahl nach AX
-
- Eingabe: DS:SI -> Zeichenkette
-
- Ausgabe: CF = 0 ->> Konvertierung ok
- AX = Wert
- CF = 1 ->> Konvertierung fehlerhaft
- AX = Fehlernummer
- DS:SI -> Zeichen, welches das Ende der Konvertierung
- verursachte
- CX = Anzahl Stellen (incl. Formatierungszeichen)
-
- ----------------------------
- GetOctWord
-
- Funktion: Konvertiert die Zeichenkette bei DS:SI
- als vorzeichenlose Zahl in Octal-Form nach AX
-
- Eingabe: DS:SI -> Zeichenkette
-
- Ausgabe: CF = 0 ->> Konvertierung ok
- AX = Wert
- CF = 1 ->> Konvertierung fehlerhaft
- AX = Fehlernummer
- DS:SI -> Zeichen, welches das Ende der Konvertierung
- verursachte
- CX = Anzahl Stellen (incl. Formatierungszeichen)
-
- ----------------------------
- GetDezWord
-
- Funktion: Konvertiert die Zeichenkette bei DS:SI
- als vorzeichenlose Zahl in Dezimal-Form nach AX
-
- Eingabe: DS:SI -> Zeichenkette
-
- Ausgabe: CF = 0 ->> Zahl okay
- AX = Wert
- CF = 1 ->> Fehler
- AX = Fehlernummer
- DS:SI -> Zeichen, welches das Ende der Konvertierung
- verursachte
- CX = Anzahl Stellen (incl. Formatierungszeichen)
-
- ----------------------------
- GetHexWord
-
- Funktion: Konvertiert die Zeichenkette bei DS:SI als
- vorzeichenlose Zahl in hexadezimal-Form nach AX
-
- Eingabe: DS:SI -> Zeichenkette
-
- Ausgabe: CF = 0 ->> Konvertierung ok
- AX = Wert
- CF = 1 ->> Konvertierung fehlerhaft
- AX = Fehlernummer
- DS:SI -> Zeichen, welches das Ende der Konvertierung
- verursachte
- CX = Anzahl Stellen (incl. Formatierungszeichen)
-
- ----------------------------
- GetWord
-
- Funktion: Konvertiert die Zeichenkette bei DS:SI als
- vorzeichenlose Zahl in einem beliebigen Format
- mit einer Basis zwischen 0 und 15 nach AX
-
- Eingabe: DS:SI -> Zeichenkette
- CL = Basis (2 .. 15)
-
- Ausgabe: DS:SI -> Zeichen, welches das Ende der
- Konvertierung verursachte
- CX = Anzahl Stellen (incl. Formatierungszeichen)
- CF = 0 ->> okay
- AX = Wert
- CF = 1 ->> Fehler
- AX = Fehlernummer
- Falls AX = InvalidBase ist, wurden DS, SI
- und CX nicht verändert
-
-