home *** CD-ROM | disk | FTP | other *** search
- SS SS SS SS SS SS SS SS SS SS SS
- SS SS
- SS IBM PC Basic SS
- SS "Squish" SS
- SS Author: Dave Archibald SS
- SS Translation: Alan J. Zett SS
- SS Copyright (c) 1982 SS
- SS SoftSide Publications, Inc SS
- SS SS
- SS SS SS SS SS SS SS SS SS SS SS
- "Squish" is a utility program for the IBM PC with 32K,
- color/graphics adapter, 1 disk drive, and Basic.
-
- (The following is condensed from SoftSide magazine, issue no. 34.)
-
- Programmers tend to use quite a few REMarks when
- programming, add extra spaces to make listings more readable, as
- well as putting only a few statements on each line. The result
- is a program that is easier to read and debug, but not very space
- or memory efficient. The ideal utility would remove extra spaces
- and REMs, and combine lines, when possible without altering the
- structure of the BASIC program.
- Enter the TRS-80 program Squish...if only it were translated
- to the IBM PC. We've done so, and it is presented here for the
- benefit of all our IBM subscribers.
-
- TO USE SQUISH:
- First LOAD the program you wish to pack. After it is
- loaded, SAVE it with the ASCII option to a new file. For example:
- LOAD "MYPROG.BAS" and then reSAVE it as "MYPROG.ASC",A. After
- the program has been saved with the ASCII option, LOAD in
- "Squish" and type RUN.
- Answer the first question with the name of the file saved
- with the ASCII option ("MYPROG.ASC" in the example above).
- You will then be given a series of options. You can remove
- extra spaces, delete REMarks, and combine lines. The fourth
- option gives you the ability to protect a line or group of lines
- from being "Squished." Lines entered under this option are
- totally ignored by "Squish."
- "Squish" will then read in the program to check for lines
- that are referenced and proceed to work on it. The display will
- update constantly to show, in color (or monochrome), what
- "Squish" is doing, and where.
- When "Squish" is done, it will allow you to enter the
- "Squished" program for examination. I suggest you then do a
- quick RENUMber and reSAVE the program under another filename.
- When you are finished, you will have a neatly renumbered
- program that is not only much shorter than the original (usually
- by a few K), but will execute faster. All in all, "Squish" is
- quite a useful utility.
-
- VARIABLES;
- A: Temporary numeric storage.
- A$: Current program line being Squished.
- AZ: Screen line on which current program line is displayed.
- C$: Contains lines that have been combined.
- D: Length of a reserved word being searched for.
- DS: The maximum number of user protected lines.
- DT: Set to 1 if current line contains a DATA statement.
- G1 - G6: A position in A$ at which INSTR starts searching.
- HH: Miscellaneous.
- I$: Name of a DEF FN to convert a string input into a single upper
- case letter.
- IP$: Set to "Y" if REM statements are to be deleted.
- J$: Storage for A$ as it is being reconstructed.
- LN: Current line number being processed.
- L$, L1$: Current character of A$ being processed.
- N$: Set to STR$(LN).
- P: Set to 1 the first time a quote is encountered in a PRINT
- statement. Set to 0 when second quote or end of
- line is encountered. While P equals 1, all
- compression functions are cancelled.
- PJ: Points to the current line in PRO(*) being tested.
- PP: Set to 1 minus the location of the first character in a
- program line following the line number.
- PV: Number of protected lines entered.
- PRO(*): Optional protected line numbers specified by user.
- Q$: Used in an INKEY$ loop.
- R: Number of line numbers referenced in REF(*).
- RD: Total number of REM statements deleted.
- RE: Total number of lines combined.
- REF(*): Number of program lines that can be referenced.
- S,S1: Miscellaneous. Used in sort routine.
- SD: Total number of spaces deleted.
- SQ$: SAVE filename for Squished program.
- SV$: SAVE filename for Squished program.
- T,T1-T2: Miscellaneous.
- V$: The current program line stripped of its line number.
- X: Set equal to PP.
- XC$: Set to "Y" if lines are to be combined.
- XS$: Set to "Y" if extra spaces are to be deleted.
- XP$: Set to "Y" if user wishes to protect lines.
- ZC: Position on line AZ to print L$.
-
-
- 2/9/83 Patches, enhancements, etc. by Herb Shear
-
- The R pointer can no longer lag behind allowing referenced REM and '
- statements to be deleted.
- Trailing ' no longer added on nonnull referenced lines.
- RESTORE & RETURN references to a line now protect the line.
- Constructs like X=IGOTO+35 no longer protects line 35.
- Indentation was preserved even when combining.
- The deblanking tests were extended to close up constructs such as
- A( I ), etc.
- Goofs in naming the input file are now handled in a friendly fashion
- instead of repeating the entire input session over again.
-
- Users should take note of the instructions to use SAVE"-----",A
- files as input. Squish is tuned to the interpreter's output which is a
- subset of valid input forms. Lowercase, blanks preceding line numbers
- and `GO TO xxx' are not handled properly by Squish.
-