home *** CD-ROM | disk | FTP | other *** search
- hexout_ptr dw 0
- hexout_color db 70h
-
- hexout_set:
- mov cs:hexout_color,ah
- call hexout_more
- mov cs:hexout_color,70h
- ret
-
- hexout_more:
- push di
- mov di,cs:hexout_ptr
- call hexout
- add di,4
- cmp di,25*80*2
- jb hexout_more_1
- xor di,di
- hexout_more_1:
- mov cs:hexout_ptr,di
- pop di
- ret
-
- hexout:
- ;enter with al = number, di->place on screen to store chars.
- push ax
- push es
-
- push di
- mov di,0b800h
- mov es,di
- pop di
-
- push ax
- shr al,1
- shr al,1
- shr al,1
- shr al,1
- call nibble2hex
- mov byte ptr es:[di+0],al
- mov al,cs:hexout_color
- mov byte ptr es:[di+1],al
- pop ax
- call nibble2hex
- mov byte ptr es:[di+2],al
- mov al,cs:hexout_color
- mov byte ptr es:[di+3],al
-
- mov byte ptr es:[di+4],' ' ;output a space as a cursor.
- mov al,cs:hexout_color
- mov byte ptr es:[di+5],al
-
- pop es
- pop ax
- ret
-
-
- nibble2hex:
- and al,0fh
- add al,90h ;binary digit to ascii hex digit.
- daa
- adc al,40h
- daa
- ret
-
-
- hexout_char:
- ;enter with al = character
- push ax
- push es
- push di
-
- mov di,0b800h
- mov es,di
-
- mov di,cs:hexout_ptr
- mov ah,cs:hexout_color
- stosw
- cmp di,25*80*2
- jb hexout_char_1
- xor di,di
- hexout_char_1:
- mov cs:hexout_ptr,di
-
- pop di
- pop es
- pop ax
- ret
-
-
- hexout_word:
- push ax
- push ax
- mov al,ah
- mov ah,07h
- call hexout_set
- pop ax
- mov ah,07h
- call hexout_set
- pop ax
- ret
-