╘HIS PROGRAM RUNS ON THE ├128 IN 128 MODE AND READS A ┬ASIC 7.0 PROGRAM THAT WAS SAVED ON DISK WHILE CREATING A NEW, COMPACTED COPY. ╔T DELETES ALL ╥┼═ARKS, UNNECESSARY SPACES, AND LEADING COLONS SIMILAR TO OTHER UTILITIES. ╔T ALSO GOES ONE STEP FURTHER BY COMBINING PROGRAM LINES WHENEVER POSSIBLE TO ELIMINATE THE LINK, LINE# AND LINE-END-FLAG OVERHEADS NORMALLY ASSOCIATED WITH EACH ┬ASCI PROGRAM LINE. ╔T ATTEMPTS TO MAKE A ┬ASIC 7.0 PROGRAM AS SMALL AS POSSIBLE. ╔T MAKES NO ATTEMPT TO COMBINE LINES WITHIN ╔╞/╘╚┼╬/┼╠╙┼ STATEMENTS FOR FURTHER IMPROVEMENTS WITH ┬┼╟╔╬/┬┼╬─ BLOCKS.
╫HEN RUNNING T??AOGRAM YOU HAVE SOME CONTROL OVER WHAT SIZE PROGRAM LINES WILL BE CREATED. ┴N INPUT PROMPT LETS YOU SET THE MAXIMUM LINE LENGTH TO CREATE. ╘HE DEFAULT IS 255, THE MAXIMUM SIZE ┬ASIC PROGRAM LINE POSSIBLE. ╫HEN ENTERING SMALLER NUMBERS, BE SURE TO TYPE SPACES TO ERASE THE DEFAULT '255'. ╔NPUT AND OUTPUT FILENAMES ARE ENTERED AS DESIRED.
╘HE PROGRAM TO BE COMPACTED IS READ TWICE. ╘HE FIRST PASS CHECKS FOR LINE NUMBERS THAT ARE REFERENCED BY OTHER COMMANDS WITHIN THE PROGRAM, LIKE TARGETS OF ╟╧╘╧/╟╧ ╘╧, ╟╧╙╒┬, ╥╒╬, ╠╔╙╘, ╥┼╙╘╧╥┼, ╥┼╙╒═┼, ╘╥┴╨, ├╧╠╠╔╙╔╧╬, ╔╞/╘╚┼╬/┼╠╙┼, AND ╧╬/╟╧╙╒┬/╟╧╘╧. ┴S THIS PASS PROGRESSES, THE CURRENT LINE# IS DISPLAYED TO SHOW HOW THINGS ARE GOING.
─URING THE SECOND PASS, EACH LINE IS COPIED, DELETED, OR COMPACTED AS APPROPRIATE. ┴GAIN THE CURRENT LINE# IS DISPLAYED AS EACH LINE IS PROCESSED TO LET YOU KNOW HOW THINGS ARE GOING. ╘HE RULES FOLLOWED BY THE COMPACTOR ARE:
- LEADING COLONS/SPACES ARE DELETED.
- FULL LINE ╥┼═ARKS THAT ARE NOT TARGET LINES ARE DELETED. ╔F A TARGET LINE, A LEADING COLON IS INSERTED AND THE ╥┼═ARK IS DELETED.
- ┴NY SPACES WITHIN THE LINE, NOT ENCLOSED IN QUOTES, ARE DELETED.
- ┴NY ╥┼═ARKS AT THE END OF THE LINE ARE DELETED TO THE END OF THE LINE.
- ┴NYTHING WITHIN QUOTES IS COPIED, UNTOUCHED. ╔F AN ENDING QUOTE IS MISSING, ONE IS ADDED IF ANOTHER LINE COULD BE COMBINED WITH THIS LINE.
- ╫HEN A COLON IS FOUND, NOT WITHIN QUOTES, THE NEXT NON-SPACE CHARACTER IS CHECKED BEFORE COPYING THE COLON. ╔F A ╥┼═ARK FOLLOWS, THE COLON AND THE REST OF THE LINE IS DELETED. ╧THERWISE, THE COLON IS COPIED & EVERYTHING CONTINUES.
- ┴T THE END OF EACH LINE, IF THE LINE CAN BE COMBINED WITH THE NEXT LINE, AND THE NEXT LINE IS NOT A TARGET LINE, AND THE LENGTH OF THE NEXT LINE WOULD NOT EXCEED THE LIMIT IF COMPACTED, THE LINES ARE COMBINED. ╫HEN COMBINING LINES, THE LINK & LINE# ARE DISCARDED, A COLON IS WRITTEN, AND THE NEXT LINE IS HANDLED AS PART OF THE LAST LINE.
- AT THE END OF THE INPUT PROGRAM, THE LAST LINE IS WRITTEN WITH AN ENDING LINK AND ALL FILES ARE CLOSED. ╘HE OUTPUT FILE IS FULLY LINKED AND READY TO LOAD/RUN.