DEFINT A-Z
'
'     Sample program on how to set up your code for using "SSTPATCH.EXE".
'     This Sample Program is laid out in MicroSoft Quick Basic format, but
'     we have only used "Entry Level" Basic commands. This type of "Patch"
'     will "definitely" work with Microsoft Quick Basic "EXE" files, & will
'     "possibly" work with many other types of "EXE" files. It all depends
'     upon how the DATA statements are stored inside of the "EXE" files,
'     and if the character count on the data lines remains constant. We
'     have not found ANY source code using "Line Numbers" that will work
'     with SST-PATCH.
'
'
'   <<<<<<<<<<<<<<<<<<============================>>>>>>>>>>>>>>>>>>>
'   |||||||||||||||||| YOUR PROGRAM'S SOURCE CODE |||||||||||||||||||
'   <<<<<<<<<<<<<<<<<<============================>>>>>>>>>>>>>>>>>>>
'
CLS
PRINT "LET'S PRETEND THIS IS THE FIRST LINE OF YOUR MAIN SOURCE CODE"
'
'     The 'body' of your main program's source code
'              would be placed in here.
'                      Many, many
'                           lines long.
'
PRINT "LET'S PRETEND THIS IS THE LAST LINE OF YOUR MAIN SOURCE CODE"
GOSUB ShowPatch          'REM to display the new patch.
CLOSE : END: SYSTEM
'
'   <<<<<<<<<<<<<<<<<<============================>>>>>>>>>>>>>>>>>>>
'   ||||||||||||||||||   END OF YOUR SOURCE CODE  |||||||||||||||||||
'   <<<<<<<<<<<<<<<<<<============================>>>>>>>>>>>>>>>>>>>
'
'
'
'
'     Now, after the last line of code in your main program module,
'     insert the following "DATA" lines. Make the entries EXACTLY
'     as we have them. When "messing around" with binary "stuff",
'     character counting is "everything".
'
'     Caution!
'         - NO TRAILING "SPACEBARS" ON THE DATA ENTRY LINES
'         - NO "REMARKS" ON THE DATA ENTRY LINES
'         - NO OTHER CHARACTERS OF ANY KIND ON DATA ENTRY LINES
'         - WHEN WE SAY "EXACTLY" - WE MEAN "EXACTLY!
'
'
'
DATA "Customer_Name_And_Number"
DATA "123456789012345678901234567890"
DATA "12345678"
DATA "12345"
'
'
'
'     The 1st DATA line is a "File Place Marker" or "File Flag" only.
'     The 2nd DATA line will hold a Customer's Name (Max Length = 30)
'     The 3ed DATA line will contain your currently set "System Date"
'     The 4th DATA line will contain up to a 5 digit Serial Number
'
'     That's all there is to it. Now compile and link your source code
'     into an "EXE" file, and then run "SSTPATCH.EXE". The entries in the
'     above "DATA" statements will be replaced with your customer's data.
'     You can then view the patch with any good binary editor, or simply
'     add something like the commands in "ShowPatch" to your source code

'
'     Once the above DATA lines are in place, you can patch the same EXE
'     file over and over again with different information as many times
'     as you wish. The System Date is always used, so set your calendar.
'
'
'
ShowPatch:
'     To display the patched data on screen, you could do something like....
READ X$, NAME$, DT$, SER$
PRINT
PRINT "'SAMPLE.EXE' - THE PATCHED ENTRIES ARE...."
PRINT
PRINT "Customer's Name......: "; NAME$
PRINT "Date Of Transaction..: "; DT$
PRINT "Product Serial #.....: "; SER$
RETURN
'
'
'
'     The file called "SAMPLE.EXE" is a compiled version of this source code.
'     Try SSTPATCH to patch SAMPLE.EXE to see how all of this works.
'
'
'     **********************************************************************
'
'     Note: Common reasons why an EXE file won't work after a patch:
'
'  -  You used a punctuation mark in your "CUSTOMER NAME"  entry.
'           Some of these characters will cause problems,  others work
'           just fine. The first time you try to patch a program, don't
'           try  to  get fancy - Just enter  Alpha/Numeric  characters.
'
'  - You left trailing "spacebars" at the end of the "DATA" lines.
'          There must be NO other characters of any kind after the last
'          quote mark on any "DATA" line entry (not even a REMark).
'
'  - You didn't enter the "DATA" lines EXACTLY as we show them in
'          the examples in "SAMPLE.BAS". If you are using Quick Basic,
'          load "SAMPLE.BAS" along with your own program, and then
'          "copy" the data lines from Sample.Bas to your program with
'          Quick Basic's "Cut & Paste" feature.
'
'************************************************************************

