*********** * .SQUASH * *********** COMPILE LEVEL COMMAND SYNTAX: .SQ [ODEV:[_IDEV:][ USING DEV:][ UNTIL NNN][ SAVE N][ WAIT]] SQUASH IS A DECSYSTEM-8 COMPILE LEVEL COMMAND WHICH REPLACES THE "/S" OPTION OF PIP. IT IS AN IMPROVEMENT OVER THE OLD PIP SQUISH IN THAT FILE INTEGRETY IS MAINTAINED FOR CERTAIN OPERATIONS, AND THERE ARE MORE REASONABLE OPTIONS AVAILABLE. EACH DECSYSTEM-8 DEVICE MAY CARRY A PARAMETER BLOCK WHICH INDICATES, AMONG OTHER THINGS, WHETHER THE DEVICE MAY BE SQUASHED TO, IS ZEROABLE, AND/OR MAY BE SQUASHED TO ITSELF. A DEVICE WITHOUT A PARAMETER BLOCK MAY ONLY BE SQUASHED TO ITSELF USING THIS COMMAND. THE "USING" DEVICE FOR SELF SQUASHES OF DEVICES (ESPECIALLY TAPES), AN INTERMEDIATE DEVICE MAY BE SPECIFIED TO EXPEDITE THE OPERATION, I.E. SPEED IT UP. THIS DEVICE IS SPECIFIED BY THE USING DEV: OPTION IN THE COMMAND SYNTAX. IF THIS DEVICE IS ZEROABLE, (ASCERTAINED IN THE PARAMETER BLOCK), THEN THE ENTIRE DEVICE IS USED FOR INTERMEDIATE STORAGE OF FILES DURRING THE SQUASH. A DIRECTORY IS MAINTAINED ON THIS DEVICE TO GIVE A DEGREE OF FILE SECURITY DURING THE SQUASH OPERATION. I.E. IF AN I/O ERROR OCCURRS WHILE WRITING THE FILES BACK ON THE DEVICE BEING SQUASHED, THE OPERATION WILL TERMINATE, WITH A GOOD COPY OF THE FILE ON THE USING DEVICE. IF THE USING DEVICE IS NOT ZEROABLE, IS THE SYSTEM DEVICE, OR IF IT DOES NOT HAVE A PARAMETER BLOCK, THEN THE LARGEST EMPTY SEGMENT ON THE DEVICE IS USED AS INTERMEDIATE STORAGE. IN THIS CASE THE DIRECTORY OF THE USING DEVICE IS NOT CHANGED AND AN I/O ERROR CAN RESULT IN LOSS OF FILES. THIS FEATURE CAN BE EXCLUDED BY A CONDITIONAL ASSEMBLY PARAMETER, SYSOK, IN THE SOURCE. THE USING DEVICE MAY BE SHORTER THAN THE DEVICE BEING SQUASHED, IN WHICH CASE MULTIPLE PASSES WILL BE MADE ON THE DEVICE. THE ONE RESTRICTION IS THAT THE AVAILABLE STORAGE ON THE USING DEVICE MUST BE AT LEAST AS LARGE AS THE LARGEST FILE TO BE SQUASHED. THE "UNTIL" OPTION THE UNTIL OPTION IN THE COMMAND SYNTAX IS USED TO TERMINATE THE SQUASH OPERATION WHEN A SPECIFIED NUMBER OF CONTIGUOUS FREE BLOCKS BECOME AVAILABLE. OF COURSE, THIS OPTION IS ONLY MEANINGFUL FOR A SELF SQUASH, WITH OR WITHOUT A USING DEVICE. WAIT THIS OPTION WILL CAUSE THE PROCESSING OF THE COMMAND TO BE INTERRUPTED AFTER THE SYSTEM DEVICE IS NO LONGER NEEDED FOR PROCESSING. AFTER THE MESSAGE "WAITING...", THE USER MAY REMOUNT TAPES, INCLUDING THE REMOVAL OF SYS. TYPING ANY CHARACTER WILL CONTINUE PROCESSING OF THE COMMAND. BEFORE RETURNING TO THE MONITOR, THE MESSAGE "WAITING..." WILL AGAIN BE TYPED TO ALLOW THE USER TO REMOUNT SYS, OR OTHER TAPES. THE "SAVE" OPTION THE SAVE OPTION ALLOWS SAVING EXTRA INFORMATION WORDS IN THE DIRECTORY OF THE DEVICE. IF NO SAVE OPTION IS GIVEN THEN THE NUMBER OF ADDITIONAL INFORMATION WORDS IN THE INDEV: DIRECTORY WILL BE USED, UNLESS IT IS ZERO, IN WHICH CASE ONE ADDITIONAL INFORMATION WORD WILL BE RESERVED. FOR ALL OF THE ABOVE OPTIONS, ONLY TWO CHARACTERS OF THE OPTION NEED BE SPECIFIED. FILE INTEGRITY THERE ARE TWO MODES OF TRANSFER IN THE SQUASH COMMAND: NORMAL AND SECURE. THESE COMMENTS ONLY APPLY TO SELF SQUASHES WITH NO USING DEVICE, SINCE ALL OTHER MODES, (EXCLUDING THAT MEANTIONED UNDER "USING" DEVICES), ARE NORMALLY SECURE. DURRING A SECURE SQUASH, IF A FILE WILL OVERWRITE ITSELF DURRING THE TRANSFER, IT IS INSTEAD COPIED OUT ELSEWERE ON THE DEVICE WITH THE OLD DIRECTORY ENTRY DELETED ONLY IF THE TRANSFER IS SUSCESSFUL. NORMAL SQUASHING CONTINUES FROM THAT POINT ONCE THE NEW DIRECTORY IS WRITTEN OUT. IF THERE IS NO EMPTY LARGE ENOUGH TO COPY THE FILE INTO, THE OPERATOR IS NOTIFIED AND ASKED IF HE WANTS TO TRANSFER THE FILE IN THE NON-SECURE MODE. IT SHOULD BE NOTED THAT THE ORDER OF FILES MAY CHANGE WHEN DOING A SECURE SQUASH. SINCE THERE IS A LOT OF TAPE MOTION DURRING SECURE SQUASHES, THE SECURE MODE OF TRANSFER WILL ONLY OCCUR WHEN SQUASHING DF32'S, RF08'S, AND RK8'S. CONDITIONAL ASSEMBLY PARAMETERS EXIST FOR ALWAYS DOING SECURE SQUASHES OR NEVER DOING THEM (THE PARAMETERS VERYSAFE AND SQSAFELY). ONLY IF I/O ERRORS OCCUR DURING WRITTING DIRECTORYS SHOULD FILES BE LOST WHEN SQUASHING SECURELY. -1- CNTRL/C TERMINATION AT ANY TIME DURING A SQUASH OPERATION A ^C MAY BE TYPED TO TERMINATE THE SQUASH. WHEN DETECTED, THE CURRENT TRANSFER IS COMPLETED, AND THE REST OF THE DIRECTORY SYPONED DOWN CORRECTLY SO THAT NO FILES ARE LOST. -2-