HEXPRINT.txt

Warning: if you clip this code into your program, look out for possible html code slipping in.

REM   HEXPRINT.TXT
REM
REM   This file contains routines useful for printing integers in hexadecimal
REM   format.
REM
REM   Author: Steven R. Wheeler
REM
REM   Copyright 1998-1999 Vesta Technology, Inc.
REM   All rights reserved.
REM
REM   Revision history:
REM     Feb 4, 1999
REM        Modified to use BYTE values where appropriate.
REM     Aug 6, 1999
REM        Corrected bug with printing of -1 (FFFF). Removed local variable
REM        from HexDigit() to improve stack usage.

REM   The subroutines in this file are declared VITAL so that they can be used
REM   within event handlers.

VITAL SUBROUTINE HexDigit( val AS BYTE)
	val = (val AND 15)
	IF val > 9
		val = val + 7
	ENDIF
	PRINT CHR(val + '0')
END


REM   The two-stage division and AND are done so that negative values get
REM   printed correctly.

VITAL SUBROUTINE PrintHex( val AS INTEGER)
LOCAL value AS INTEGER
	IF val < 0
		value = ((val AND 0x7FFF) / 2) OR 0x4000
	ELSE
		value = val / 2
	ENDIF
	HexDigit( value / 0x0800 )
	HexDigit( value / 0x0080 )
	HexDigit( value / 0x0008 )
	HexDigit( val            )
END