The purpose of this utility is to read the contents of a specified memory range and turn it into DATA statements. You can freely merge DATA statements into any BASIC program. Or you can create a stand-alone program containing the DATA statements only. All parameters are specified in decimal, but you can use hexadecimal numbers by preceding the number with a dollar sign (Even when specifying line numbers!). The procedure is as follows:
BANK:
The bank number (0-15) from which to read the desired data.
Start address:
The first memory address of the data.
End address:
The last memory address of the data.
First line:
The line number of the first line.
Increment:
Line number increment.
Line length:
The number of data elements per line. If you specify a greater number of data elements per line than would actually fit, the datamaker will always pack as many data elements as possible on each line and place the rest on the next line (which in turn will be as long as possible).
Type (1-5):
This will determine how the numbers in the data statements will be represented. There are five types of data statements available for maximum flexibility: 1 = decimal with gaps (251, 74, 86, etc.), 2 = decimal without gaps (251,74,86,), 3 = hex with gaps (fb, 4a, 56, ), 4 = hex without gaps (fb,4a,56,), 5 = hex without gaps, nor commas (fb4a56). The latter is possible because hex values are always two characters long, so they can be separated by using MID$. Please use this function and see the BASIC program it creates. This variant is the most compact, but at the same time the slowest. Type 2 is the fastest to run. Please note that types 3, 4 and 5 contain hexadecimal numbers, and is thereby not usable if the resulting program is to be run in 64 mode.
A little tip: Sometimes it would be practical to know the actual address each data element was taken from. This can be accomplished by using line numbers in a cunning way:
Decide how many data elements you wish to put on each line.
Multiply the number by two, and subtract the resulting figure from the start address.
Specify the resulting figure as initial line number.
Then use the same value for line number increment as the number of data elements you decided to put on each line.
Now, each line number will show the actual address of the first data element on that line.