11/3/71                                     BOOT PROCEDURES (VII)
NAME            bos, maki, rom, vcboot, msys, et al
SYNOPSIS        --
DESCRIPTION     On the RF disk, the highest 16K words are re-
                served for stand-alone programs.  These 16K words
                are allocated as follows:
                bos             (1K)
                Warm UNIX       (6K)
                Cold UNIX       (6K)
                unassigned      (3K)
                The UNIX read only memory (ROM) is home cut with
                2 programs of 16 words each.  The first (address
                173700) reads bos from the RF disk into core lo-
                cation 54000 and transfers to 54000.  The other
                ROM program (address 173740) reads a DECtape sit-
                ting in the end-zone on drive 0 into core loca-
                tion 0 and transfers to 0.  This latter operation
                is compatible with part of DEC's standard ROM.
                The disassembled code for the UNIX ROM follows:
        173700: mov     $177472,r0              12700;177472
                mov     $3,-(r0)                12740;3
                mov     $140000,-(r0)           12740;140000
                mov     $54000,-(r0)            12740;54000
                mov     $-2000,-(r0)            12740;176000
                mov     $5,-(r0)                12740;5
                tstb    (r0)                    105710
                bge     .-2                     2376
                jmp     *$54000                 137;54000
        173740: mov     $177350,r0              12700;177350
                clr     -(r0)                   5040
                mov     r0,-(r0)                10040
                mov     $3,-(r0)                12740;3
                tstb    (r0)                    105710
                bge     .-2                     2376
                tst     *$177350                5737;177350
                bne     .                       1377
                movb    $5,(r0)                 112710;5
                tstb    (r0)                    105710
                bge     .-2                     2376
                clr     pc                      5007
                The program bos (Bootstrap Operating System) ex-
                amines the console switchs and executes one of
                several internal programs depending on the set-
                ting.  If no setting is recognizable, bos loops
                waiting for a recognizable setting.  The follow-
                ing settings are currently recognized:
                173700
                73700   Will read Warm UNIX from the RF into core
                        location 0 and transfer to 400.
                1       Will read Cold UNIX from the RF into core
                        location 0 and transfer to 400.
                2       Will read the unassigned 3K program into
                        core location 0 and transfer to 400.
                10      Will dump 12K words of memory from core
                        location 0 onto DECtape drive 7.
                0       Will load a standard UNIX binary paper
                        tape into core location 0 and transfer to
                        0.
                57500   Will load the standard DEC absolute and
                        binary loaders and transfer to 57500.
                Thus we come to the UNIX warm boot procedure: put
                173700 into the switches, push load address and
                then push start.  The alternate switch setting of
                73700 that will load warm UNIX is used as a sig-
                nal to bring up a single user system for special
                purposes.  See /etc/init.
                Cold boots can be accomplished with the Cold UNIX
                program, but they're not.  Thus the Cold UNIX
                slot on the RF may have any program desired.
                This slot is, however, used during a cold boot.
                Mount the UNIX INIT DECtape on drive 0 positioned
                in the end-zone.  Put 173740 into the switches.
                Push load address.  Put 1 into the switches.
                Push start.  This reads a program called vcboot
                from the tape into core location 0 and transfers
                to it.  vcboot then reads 16K words from the DEC-
                tape (blocks 1-32) and copies the data to the
                highest 16K words of the RF.  Thus this initial-
                izes the read-only part of the RF.  vcboot then
                reads in bos and executes it.  bos then reads in
                Cold UNIX and executes that.  Cold UNIX halts for
                a last chance before it completely initializes
                the RF file system.  Push continue, and Cold UNIX
                will initialize the RF.  It then sets into execu-
                tion a user program that reads the DECtape for
                initialization files starting from block 33.
                When this is done, the program executes /etc/init
                which should have been on the tape.
                The INIT tape is made by the program maki running
                under UNIX.  maki writes vcboot on block 0 of
                /dev/tap7.  It then copies the RF 16K words (us-
                ing /dev/rf0) onto blocks 1 thru 32.  It has in-
                ternally a list of files to be copied from block
                33 on.  This list follows:
                        /etc/init
                        /bin/chmod
                        /bin/chown
                        /bin/cp
                        /bin/ln
                        /bin/ls
                        /bin/mkdir
                        /bin/mv
                        /bin/rm
                        /bin/rmdir
                        /bin/sh
                        /bin/stat
                        /bin/tap
                Thus this is the set of programs available after
                a cold boot.  /etc/init and /bin/sh are manda-
                tory.  /bin/tap and /bin/mkdir are used to load
                up the file system.  The rest of the programs are
                frosting.  As soon as possible, an sdate should
                be done.
                The last link in this incestuous daisy chain is
                the program msys.
                   msys char file
                will copy the file file onto the RF read only
                slot specified by the characacter char.  Char is
                taken from the following set:
                   b bos
                   u Warm UNIX
                   1 Cold UNIX
                   2 unassigned
                Due to their rarity of use, maki and msys are
                maintained off line and must be reassembled be-
                fore used.
FILES           /dev/rf0, /dev/tapn
SEE ALSO        /etc/init, /bin/tap, /bin/sh, /bin/mkdir, bppt
                format
DIAGNOSTICS     --
BUGS            The files /bin/mount, /bin/sdate, and /bin/date
                should be included in the initialization list of
                maki.
OWNER           ken