BBS: Inland Empire Archive Date: 04-10-93 (08:22) Number: 331 From: RICH GELDREICH Refer#: NONE To: VICTOR YIU Recvd: NO Subj: Prototype 1/3 Conf: (2) Quik_Bas
'________O_/________________________| SNIP
|______________________\_O_______
' O \ | HERE | / O
'This file created by PostIt! v6.0.
'>>> Start of page 1.
'Prototype PostIt! script creator. Created April, 1993
'This simple program creates a newer type of PostIt! self
'extracting script that decodes very quickly and can handle files
'up to 34,000 bytes.
'
'This script eliminates the "middle man" by outputting to the
'destination file directly in the G sub. This speeds up decoding
'and lowers memory usage because we don't have to first append
'each G line onto a string before the file is decoded. Since
'we're not using strings anymore, the only limit that remains now
'is QB's internal limit on how large a program may be(it might
'actually be a dgroup limitation, not positive yet).
'
'I haven't extensively tested the scripts this program creates, so
'use with caution.
'
'To decode a script created by this program directly from the
'command line just type:
'
' QB/run<script> or QBASIC /run<script>
'
'Where <script> is the name of the script to decode, of course.
'You still have to edit out any garbage in the file, I haven't
'worked out any way for the self extractor to do that, yet...
'
'If the file gets decoded correctly, the script will exit right
'back to DOS without making you lift a single finger.
'(Unfortunatly PDS prompts you if to save the file after the
'script is decoded. I don't know if there is a way to disable
'this, so use QB4.5 or QBASIC instead.)
'
'If a CRC error does occur the script stays in the QB/QBX
'environment so you can check it out for garbage.
'
'If you don't want to exit back to DOS after the script is
'decoded, then just don't use the /run option on the command line.
DEFINT A-Z
DECLARE SUB EncodeStart ()
DECLARE SUB EncodeBlock ()
DECLARE SUB EncodeEnd ()
DIM BytesLeft AS LONG
DIM SHARED I$
DIM SHARED InputBuffer$, BytesRead
DIM SHARED GoodChars$
DIM SHARED BitBuffer, BitsInBuffer
DIM SHARED OutputLine$, OutputPos, LinesWritten
DIM SHARED RunningCRC
DIM SHARED Power2(0 TO 7)
IF POS(0) <> 1 THEN PRINT
PRINT "PostIt! Prototype Script Encoder By RG"
INPUT "Input file"; I$
INPUT "Output file"; O$
OPEN I$ FOR BINARY AS #1
BytesLeft = LOF(1)
IF BytesLeft = 0 THEN
CLOSE
KILL I$
PRINT I$; " wasn't found."
END
ELSEIF BytesLeft > 34000 THEN
PRINT I$; " is too big for one script."
END
END IF
OPEN O$ FOR OUTPUT AS #2 LEN = 4096
EncodeStart
InputBuffer$ = SPACE$(4096)
BytesRead = 4096
'>>> Continued on page 2
--- MsgToss 2.0b
* Origin: Computer Co-Op - Voorhees, NJ | Ted Hare (1:266/29)

Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET