d
i
g
i
t
a
l
digital equipment corporation · maynard, massachusetts
MEMORY ADDRESS
EMA
RUN
The following are files I have the instructions for but not the executable programs.

   FIX.SV     -   OS/8 FILE BLOCK FIXUP PROGRAM


        PROGRAM TO ALLOW ODT-LIKE EXAMINATION AND MODIFICATION OF DATA
        STORED ON AN OS-8 DEVICE.

THE FOLLOWING COMMANDS ARE AVAILABLE:

        D XXXX (CR)     WORK ON DEVICE XXXX. THE HANDLER IS FETCHED
                        AND THE PROGRAM IS SET UP TO READ AND WRITE
                        THAT DEVICE.

        L XXXXXX (CR)   LOOK UP FILE NAMED XXXXXX ON THE CURRENT DEVICE.
                        FIX RESPONDS WITH "NNNN, MMMM" WHERE NNNN IS THE
                        STARTING BLOCK NUMBER OF THE FILE AND MMMM IS
                        ITS LENGTH.

        E XXXXXX=NNN (CR) ENTER TENTATIVE FILE XXXXXX ON THE CURRENT
                        DEVICE. NNN SPECIFIES THE REQUESTED SIZE OF THE
                        FILE, AND MAY BE 377 OR LESS. IF NNN IS GREATER
                        THAN 377 OR IS NOT SPECIFIED, THE FILE WILL BE
                        ENTERED IN THE LARGEST AVAILABLE SPACE. ENTER
                        RESPONDS WITH THE STARTING BLOCK NUMBER AND ACTUAL
                        LENGTH IN THE SAME MANNER AS LOOKUP.

        C XXXXXX=NNNN (CR) CLOSE A FILE ON THE CURRENT DEVICE. THE ACTIVE
                        TENTATIVE FILE IS MADE PERMANENT WITH THE LENGTH
                        SPECIFIED BY NNNN AND THE OLD FILE NAMED XXXXXX
                        IS SEARCHED FOR AND DELETED.

        R NNNN (CR)     READ BLOCK NUMBER NNNN FROM THE SELECTED DEVICE
                        INTO THE BUFFER. IF THE BLOCK NUMBER IS NOT
                        SPECIFIED, THE LAST ONE TYPED IS USED.

        W NNNN (CR)     WRITE THE CONTENTS OF THE BUFFER ONTO BLOCK NNNN
                        OF THE SELECTED DEVICE. IF THE BLOCK NUMBER IS
                        NOT SPECIFIED, THE LAST ONE TYPED IS USED.

        PX DEV:FILE (CR)        PRINT THE CONTENTS OF THE BUFFER ONTO
                        THE SPECIFIED FILE.
                        DEFAULT IS LINE PRINTER.

                        X SPECIFIES ONE OF THE FOLLOWING FORMATS:

        PO              PRINT IN OCTAL
        P8              PRINT 8 BIT BYTES (IN OCTAL)
        PA              PRINT IN ASCII
        P6              PRINT SIX BIT ASCII

        NNN/            EXAMINE AND OPEN RELATIVE LOCATION NNN OF THE
                        BUFFER. WORKS JUST LIKE ODT.

        (CR)            CLOSE THE OPENED LOCATION

        NNNN (CR)       MODIFY AND CLOSE THE OPENED LOCATION

        (LF)            CLOSE THE OPENED LOCATION AND OPEN THE NEXT

        NNNN (LF)       MODIFY AND CLOSE THE OPENED LOCATION
                        AND OPEN THE NEXT

        IN ADDITION TO TYPING OCTAL VALUES INTO LOCATIONS, IT IS
        POSSIBLE TO INPUT PACKED SIXBIT WITH THE CONSTRUCTION "'XX".
        FIX WILL ACCEPT TWO CHARACTERS FOLLOWING THE SINGLE QUOTE,
        TRIM THEM TO SIXBIT, AND ADD THEM TO ANY OCTAL VALUE TYPED
        SO FAR.


        VPIP.SV

        VPIP IS A SYSTEM PROGRAM WHICH COMPLEMENTS THE OPERATIONS OF
OS/8-PIP, BY INCLUDING VERIFICATION OF ALL BLOCK STRUCTURED TRANSFERS.
IT PERFORMS SLASH "S" SQUISHES, PARTIAL SQUISHES, NON-DESTRUCTIVE
SQUISHES AND MULTIPLE TRANSFERS. 


BASIC THEORY OF OPERATION:

        VPIP HAS TWO PASSES OR PHASES:  THE FIRST IS OPTIONAL AND IS
INVOKED WITH A /S (OR /N) TO PERFORM A DESTRUCTIVE (OR NON-DESTRUCTIVE)
IMAGE MODE TRANSFER OF FILES.  THE SECOND IS A VERIFICATION PHASE WHICH
MAY BE INHIBITED WITH A /H. 

        THE FILES TO BE TRANSFERED AND/OR VERIFIED ARE SPECIFIED TO THE C.D.

                * OUTDEV: < INDEV:[FILENAME] [ ,INDEV:FILENAME ... ]

        ALL DEVICES MUST BE BLOCK STRUCTURED.  FOR EACH COMMAND DECODER
INPUT-ENTRY, IF A FILENAME IS SPECIFIED, ALL FILES FROM SAID FILE ON ARE
TAKEN (UNLESS "/O" OPTION IS SPECIFIED, IN WHICH CASE ONLY THE "ONE" FILE
PER C.D. ENTRY IS TAKEN). IF NO FILENAME IS SPECIFIED, ALL FILES (OR ONLY
THE FIRST) ON THE DEVICE ARE TAKEN.   

PROGRAM OPTIONS:
        /H              INHIBIT PASS-II (VERIFICATION)
        /C              DON'T PRINT "CANT FIND" MESSAGES DURING PASS-II

INPUT OPTION:
        /O              MOVE OR VERIFY ONLY THE SINGLE FILENAMES
                                SPECIFIED  (NOT FROM FILENAME ON)

TRANSFER OPTIONS:
        /N              NON:DESTRUCTIVE SQUISH.  WILL TRANSFER
                                SPECIFIED FILES TO THE OUTPUT-DEVICE
                                WITHOUT FIRST ZEROING THE OUT-DEVICE
                                DIRECTORY. (CREATION DATES ARE NOT
                                UPDATED) (WARNING: MONITOR ERROR 6
                                LEAVES BAD SYS DATE).
        /D              DELETE OLD COPY BEFORE EACH FILE MOVE (DURING /N ONLY)
                                AND INSERT FILES IN THE BEST FIT HOLE (RATHER
                                THAN THE LRGST).

        /S              DESTRUCTIVE SQUISH SIMILAR TO OS/8-PIP.  WILL
                                SQUISH FILES ONTO OUTDEV, AFTER ZEROING
                                THE OUT-DIRECTORY. (/S IS IGNORED IF /N
                                IS SPECIFIED.)
        =#              CREATE # "ADDITIONAL-INFORMATION-WORDS" DURING
                                /S SQUISH. (DEFAULT=1)
        /T              VERIFY DURING PASS-I TRANSFERS (READ/RE-READ AND
                                WRITE/READ COMPARES IMPLOYED)

        ON ANY SQUISH WHICH RUNS OUT OF OUTPUT-ROOM, THE OUT-DEVICE IS
CLOSED BEFORE THE SQUISH IS ABORTED .
        A SELF SQUISH (A /S WITH INPUT DEVICE SAME AS OUTPUT DEVICE)
CANNOT BE PASS-II VERIFIED, THEREFORE SHOULD ONLY BE DONE USING "/T/H"
WITH A SINGLE INPUT-DEVICE.  MULTIPLE INPUT DEVICES OR FILE SPECIFICATIONS
ON A SELF SQUISH MAY RESULT IN MULTIPLE FILES OF THE SAME NAME IN THE
OUTPUT DIRECTORY  OR IN INCORRECT TRANFERS (IF BLOCKS OF THE DEVICE ARE
WRITTEN ON (AS OUTPUT AREA) BEFORE FILES IN SAME LOCATIONS COULD BE READ
(AS INPUT)).



HELPFUL EXAMPLES:

        TO SQUISH A DISK
        * DISK: < DISK:(STH)

        TO ZERO A DEVICE
        * DEV: < /S/H
        TO PUT ALL FILES OF A DECTAPE ON A DISK (LEAVING OTHER STUFF
                STILL ON DISK): (NOTE: NO /D WOULD PUT ALL IN BIGGEST
                HOLE, IE: USUALLY TOGETHER)
        * DISK: < DTAPE: /N/D

        TO BACKUP A LARGE DEVICE (DISK?) ON SMALLER DEVICES (DTAPES?)
        * DTAPE1: < DISK: /S

        THEN:
        * DTAPE2: < DISK: (FIRST-FILE-NOT-TRANSFERED ABOVE) /S

        TO GO THE OTHERWAY:
        * DISK: < DTAPE1:, DTAPE2: /S

        TO WORK WITH TOP PORTIONS OF DEVICE:
        * DTAPE1: < DISK:FRST-FILE /N

        TO TRANSFER SPECIFIED FILES WHEREVERE THEY'LL FIT,
                VERYIFY DURING TRANSFER ONLY:
        * DEVICE: < DEV1:FILE1, FILE2, DEV2:FILE3, FILE4, DEV3:FILE5 (NODTH)



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search