ASCII Conversion (STR_CON)
0275
0275
51
0276
B1
OC
******************************************************************
ROUTINE-NAME:
STR_CON
FUNCTION:
THIS
ROUTINE
CONVERTS
HEX
NUMBERS
TO
ASCII
AND
STORES
THEM
AT
ADDRESS
ES:
DI
.
ENTRY
CONDITIONS:
PURPOSE
OF
ENTRY:
TO
POST
ERROR
MESSAGES
IN
MEMORY
INPUT
CONDITIONS:
DX
=
HEX
NUMBER
TO
BE
CONVERTED
ES:
DI
=
PLACE
I N
MEMORY
TO
PUT
ASC
I I
STRNG
RESTRICTIONS:
NONE
EXIT
CONDITIONS:
NORMAL
EXIT
CONDITIONS:
ERROR
EXIT
CONDITIONS:
REGISTERS
MODIFIED: CX,DX,ES,DI
INTERNALLY
REFERENCED
ROUTINES:
NONE
EXTERNALLY
REFERENCED
ROUTINES:
NONE
******************************************************************
STR_CON
PROC
NEAR
PUSH
CX
MOV
CL,12 ;
CONVERT
2
BYTES
0278 26:
C6
05
20
MOV
BYTE
PTR
ES:
[DI-,
020H
;
INSERT
ASCII
BLANK
027C
47
INC
DI
INC
POINTER
027D
52
SClO:
PUSH
DX
SAVE
COUNT
027E
D3
EA
SHR
DX,CL
MOVE
HIGH
NIBBLE
TO
LOW
NIB
0280
80
E2
OF
AND
DL,OFH
MASK
OUT
NEW
HIGH
NIBBLE
0283
80
FA
09
CMP
DL,09
ALPHA
OR
NUMERIC
0286
7E
03
JLE
SC24
NO
ADJUST
FOR
ALPHA
0288
80
C2
07
ADD
DL,07
ADJUST
FOR
ALPHA
028B
80
C2
30
SC24
:
ADD
DL
,30H
CONVERT
TO
ASCI
I
028E
26:
88
15
MOV
ES:[DI],DL
SEND
ERROR
TO
SCREEN
0291
47
INC
DJ
POINT
TO
NEXT
MEMOERY
LOCAT
0292
5A
POP
DX
RESTORE
AX
0293
80
E9
04
SUB
CL,4
SUB
4
FROM
SH
I
FT
COUNT
0296
80
F9
00
CMP
CL,O
SEE
I F
MINUS
0299
7D
E2
JGE
SClO
LOOP
029B
59
POP
CX
029C
C3
SCRET:
RET
RETURN
029D
STR_CON
ENDP
NMI
Handler Entry Point Address
(NMI_INT)
;
*************************************
NMI
HANDLER
ENTRY
POINT
ADDRESS
;
*************************************
;ORG
OE2C3H
02C3
ORG
002C3H
=
02C3
NMLJNT
EQU
02C3
E9
0000
JMP
NMLFLIH
2-198 ROM BIOS