home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
assemblr
/
library
/
lib4a86
/
lib
/
getvalue.lib
< prev
next >
Wrap
Text File
|
1992-02-02
|
1KB
|
122 lines
#IF !LIB4A86
#ELSE
#IF !INTERN_LIB4A86_S
INTERN_LIB4A86_S EQU 01
JMP START
#ENDIF
#ENDIF
FORMATCHAR DB '.'
INVALIDBASE EQU 7001H
KONVERTOVERFLOW EQU 7002H
DIGIT?:
SUB AL,'0'
JC >L8
CMP AL,10
JB >L9
ADD AL,'0'
AND AL,0DFH
SUB AL,'A'-10
CMP AL,10
JB >L8
CMP AL,16
L9:
CMC
L8:
RET
GETBINWORD:
MOV CL,02H
JMP SHORT INTERN_GETWORD
GETOCTWORD:
MOV CL,08H
JMP SHORT INTERN_GETWORD
GETDEZWORD:
MOV CL,0AH
JMP SHORT INTERN_GETWORD
GETHEXWORD:
MOV CL,010H
JMP SHORT INTERN_GETWORD
GETWORD:
CMP CL,2
JB >L8
CMP CL,0FH
JBE INTERN_GETWORD
L8:
MOV AX,INVALIDBASE
STC
RET
INTERN_GETWORD:
PUSH DX,BX
CLD
PUSH SI
XOR CH,CH
LODSB
CALL DIGIT?
JC >L8
CMP AL,CL
JAE >L8
MOV BL,AL
XOR BH,BH
L00:
LODSB
CMP AL,CS:FORMATCHAR
JE L00
CALL DIGIT?
JC >L1
CMP AL,CL
JAE >L8
XOR AH,AH
XCHG AX,BX
MUL CX
JC >L8
ADD AX,BX
JC >L8
XCHG BX,AX
OR DX,DX
JZ L00
L8:
STC
MOV AX,KONVERTOVERFLOW
JMP >L9
L1:
MOV AX,BX
CLC
L9:
POP CX
PUSHF
SUB CX,SI
NEG CX
DEC CX
POPF
POP BX,DX
RET
#IF !INTERN_CMARK0
INTERN_CMARK0 EQU 01H
INTERN_CMARK1:
PUSH BP
MOV BP,SP
MOV BX,06H
SUB CH,[BP+SI]
SUB AH,[BX+SI]
DEC SP
DEC CX
INC DX
XOR AL,041H
CMP B[02820H],DH
INC BX
SUB W[BX+SI],SP
INC DX
CS AND B[BP+DI+043H],DL
DEC AX
INC BP
DEC BP
DEC BP
INC BP
PUSH DX
AND B[BP+SI],CH
SUB CH,[BP+SI]
POP DX
MOV SP,BP
POP BP
RET
#ENDIF