# BlitzMax/Modules/BASIC/BASIC compatibility

The BASIC compatibility module provides miscellaneous functions that emulate the behaviour of 'classic' BASIC.
The functions in this module have largely been superseded by BlitzMax features such as 'string slicing', and the Find, Replace, Trim, ToLower and ToUpper string methods.
However, for programmers from a classic BASIC background, these utility functions should make the transition to BlitzMax a little easier.
NOTE: Strings in classic BASIC are '1 based'. This means that the first character within a string is at index 1, the second at index 2 and so on. However, BlitzMax strings are '0 based', meaning the first character is at index 0, the second at index 1 and so on. The instr and Mid functions in this module retain the '1 based' behaviour of classic BASIC.

# Functions
## Mid

Function Mid$( str$,pos,size=-1 )
Description: Extract substring from a string
Returns: A sequence of characters from str starting at position pos and of length size
Information: The Mid$ command returns a substring of a String.
Given an existing string, a position from the start of the string and an optional size, Mid creates a new string equal to the section specified. If no size if given, Mid returns the characters in the existing string from position to the end of the string.
For compatibility with classic BASIC, the pos parameter is 'one based'.

## Instr

Function Instr( str$,sub$,start=1 )
Description: Find a string within a string
Returns: The position within str of the first matching occurrence of sub
Information: The start parameter allows you to specifying a starting index for the search.
For compatibility with classic BASIC, the start parameter and returned position are both 'one based'.

## Left

Function Left$( str$,n )
Description: Extract characters from the beginning of a string
Returns: size leftmost characers of str
Information: The Left$ command returns a substring of a String. Given an existing String and a size, Left$ returns the first size characters from the start of the String in a new String.

## Right

Function Right$( str$,n )
Description: Extract characters from the end of a string
Returns: size rightmost characters of str
Information: The Right$ command returns a substring of a String. Given an existing String and a size, Right$ returns the last size characters from the end of the String.

## LSet

Function LSet$( str$,n )
Description: Left justify string
Returns: A string of length n, padded with spaces

## RSet

Function RSet$( str$,n )
Description: Right justify string
Returns: A string of length n, padded with spaces

## Replace

Function Replace$( str$,sub$,replaceWith$ )
Description: Performs a search and replace function
Returns: A string with all instances of sub$ replaced by replace$
Information: The Replace$ command replaces all instances of one string with another.

## Trim

Function Trim$( str$ )
Description: Remove unprintable characters from ends a string
Returns: str with leading and trailing unprintable characters removed

## Lower

Function Lower$( str$ )
Description: Convert string to lowercase
Returns: Lowercase equivalent of str

## Upper

Function Upper$( str$ )
Description: Convert string to uppercase
Returns: Uppercase equivalent of str

## Hex

Function Hex$( val )
Description: Convert an integer value to a hexadecimal string
Returns: The hexadecimal string representation of val

## Bin

Function Bin$( val )
Description: Convert an integer value to a binary string
Returns: The binary string representation of val

## LongHex

Function LongHex$( val:Long )
Description: Convert a 64 bit long integer value to a hexadecimal string
Returns: The hexadecimal string representation of val

## LongBin

Function LongBin$( val:Long )
Description: Convert a 64 bit long integer value to a binary string
Returns: The binary string representation of val