Annotation of 42BSD/sys/mdec/raboot.s, revision 1.1

1.1     ! root        1: /*     raboot.s        6.1     83/07/29        */
        !             2: 
        !             3: /*
        !             4:  * UDA50 1st level boot program: loads next 7.5Kbytes from
        !             5:  * boot sector of file system and sets it up to run.
        !             6:  */
        !             7:        .set    RELOC,0x50000
        !             8:        .set    BOOTLAST,15             /* last boot sector */
        !             9:        .set    RABPSECT,512            /* bytes per sector */
        !            10: 
        !            11: init:
        !            12:        .word   0                       /* entry mask for dec monitor */
        !            13:        nop;nop;nop;nop;nop;nop;nop;nop /* some no-ops for 750 boot to skip */
        !            14:        nop;nop;
        !            15: start:
        !            16:        movl    r1,r7                   /* UNIBUS I/O page address */
        !            17:        movl    r2,r8                   /* boot device CSR */
        !            18:        movl    r3,r9                   /* unit number */
        !            19:        movl    r5,r11                  /* boot flags */
        !            20:        movl    $RELOC,sp
        !            21:        moval   init,r10
        !            22:        movc3   $end,(r10),(sp)
        !            23:        movl    r7,r1                   /* UNIBUS I/O page address */
        !            24:        movl    r8,r2                   /* boot device CSR */
        !            25:        movl    r9,r3                   /* unit number */
        !            26:        jmp     *$RELOC+start2
        !            27: /* now running relocated */
        !            28: /* bring in the boot program */
        !            29: start2:                                        /* running relocated */
        !            30:        pushr   $0xffff                 /* BEGIN FIREWALL */
        !            31:        movl    $1,r4                   /* first boot sector */
        !            32:        clrl    r5                      /* transfer address */
        !            33:        clrl    -(sp)                   /* transfer address */
        !            34: 1:
        !            35:        movl    r4,r8                   /* requested sector # */
        !            36:        jsb     (r6)                    /* call ROM-based driver */
        !            37:        blbs    r0,2f
        !            38:        halt                            /* read error */
        !            39: 2:
        !            40:        addl2   $RABPSECT,r5            /* bump address */
        !            41:        movl    r5,(sp)
        !            42:        aobleq  $BOOTLAST,r4,1b
        !            43: 
        !            44:        .set    PROGSIZE,((BOOTLAST-1)*RABPSECT)
        !            45: done:
        !            46:        tstl    (sp)+                   /* pop address */
        !            47:        popr    $0xffff                 /* END FIREWALL */
        !            48:        movl    $PROGSIZE,r3
        !            49: clrcor:
        !            50:        clrq    (r3)
        !            51:        acbl    $RELOC,$8,r3,clrcor
        !            52: /* start loaded program */
        !            53:        movl    $9,r10                  /* major("/dev/ra0a") */
        !            54:        calls   $0,*$0
        !            55:        brw     start2
        !            56: end:

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.