VAL:		MOV AX, [SI]
		XCHG AL, AH
		OR AH, AH
		JZ VALF
		CMP AL, 30H
		JC VALF
		CMP AL, 39H
		JA VALF
		CMP AH, 1
		JA VAL1
		XOR AH, AH
		SUB AL, 30H
		INC SI
		INC SI
		CLC
		RET
VAL1:		CLD
		XCHG AL, AH
		XOR AH, AH
		PUSH SI
		ADD SI, AX
		LODSB
		POP SI
		CMP AL, 30H
		JC VALF
		CMP AL, 39H
		JNA VAL10
		CMP AL, 68H
		JZ VAL16
		CMP AL, 62H
		JZ VAL2
VALF:		XOR AX, AX
		STC
		RET
VAL2:		PUSH CX
		PUSH DX
		PUSH SI
		LODSB
		XOR DX, DX
		MOV CX, AX
VAL2L:		LODSB
		CMP AL, 31H
		JA VAL2X
		SUB AL, 30H
		SHL DX, 1
		OR DL, AL
		LOOP VAL2L
VAL2X:		POP SI
		LODSB
		ADD SI, AX
		MOV AX, DX
		POP DX
		POP CX
		CLC
		RET
VAL10:		PUSH CX
		PUSH DX
		PUSH BX
		PUSH SI
		MOV AL, [SI]
		MOV CX, AX
		XOR AX, AX
VAL10L:		MOV BX, 0AH
		MUL BX
		INC SI
		MOV BL, [SI]
		SUB BL, 30H
		ADD AX, BX
		ADC DX, 0
		LOOP VAL10L
		POP SI
		MOV DL, [SI]
		XOR DH, DH
		INC DX
		ADD SI, DX
		POP BX
		POP DX
		POP CX
		CLC
		RET
VAL16:		PUSH CX
		PUSH DX
		PUSH SI
		LODSB
		MOV CX, AX
		XOR DX, DX
VAL16L:		LODSB
		CMP AL, 30H
		JC VEND
		CMP AL, 39H
		JNA VNUM
		OR AL, 20H
		CMP AL, 61H
		JC VEND
		CMP AL, 66H
		JA VEND
		SUB AL, 27H
VNUM:		SUB AL, 30H
		SHL DX, 1
		SHL DX, 1
		SHL DX, 1
		SHL DX, 1
		OR DL, AL
		LOOP VAL16L
VEND:		POP SI
		LODSB
		ADD SI, AX
		MOV AX, DX
		POP DX
		POP CX
		CLC
		RET
