'===========================================================================
' Subject: HEX/DECIMAL/BINARY CONVERSIONS     Date: 05-01-96 (19:28)       
'  Author: Dave Navarro, Jr.                  Code: PB                     
'  Origin: dave@powerbasic.com              Packet: BINARY.ABC
'===========================================================================
'=============================================================================
'                   Source code snippet: PowerBASIC for DOS
'
'           Author: Dave Navarro, Jr. (dave@powerbasic.com)
' Copyright status: Public Domain
'
' Various hex, decimal, and binary conversion routines.
'
'=============================================================================

' Return the value of a hex string
FUNCTION HexVal(BYVAL h AS STRING) AS INTEGER

  FUNCTION = VAL( "&H" + h )

END FUNCTION

' Return the value of a binary string
FUNCTION BinVal(BYVAL b AS STRING) AS INTEGER

  FUNCTION = VAL( "&B" + h )

END FUNCTION

' Convert a hex string to a binary string
FUNCTION HexToBin(BYVAL h AS STRING) AS STRING

  FUNCTION = BIN$( HexVal( h ) )

END FUNCTION

' Convert a binary string to a hex string
FUNCTION BinToHex(BYVAL b AS STRING) AS STRING

  FUNCTION = HEX$( HexBin( b ) )

END FUNCTION

' Return a hex string padded to 4 places
FUNCTION Hex4(BYVAL n AS INTEGER) AS STRING

  FUNCTION = RIGHT$("0000" + HEX$(n), 4)

END FUNCTION

' Return a binary string padded to 16 places
FUNCTION Bin16(BYVAL n AS INTEGER) AS STRING

  FUNCTION = RIGHT$("0000000000000000" + BIN$(n), 16)

END FUNCTION

' Return a decimal string padded to 'n' places
FUNCTION StrN(BYVAL n AS SINGLE, BYVAL places AS INTEGER) AS STRING

  FUNCTION = RIGHT$(STRING$(places, "0") + MID$(STR$(n), 2), places)

END FUNCTION
