Annotation of researchv10dc/sys/boot/uvax/xxhdr.s, revision 1.1

1.1     ! root        1: #
        !             2: # first half of boot block for MicroVAX:
        !             3: # VMB header, boot driver
        !             4: #
        !             5:        .set    IDAREA,8
        !             6:        .word   0x0                     # junk
        !             7:        .byte   IDAREA/2                # word offset to beginning of id area
        !             8:        .byte   0x1                     # must be one
        !             9:        .long   0x00000000              # lbn of secondary image, PDP-11 format long
        !            10: #
        !            11: # id area: byte 8
        !            12: #
        !            13:        .byte   0x18                    # VAX instruction set
        !            14:        .byte   0x0                     # unknown controller type
        !            15:        .byte   0x0                     # unknown file structure
        !            16:        .byte   ~0x18                   # ones complement of the last three bytes
        !            17:        .byte   0x0                     # must be zero
        !            18:        .byte   0x1                     # format version 1, single sided
        !            19:        .word   0x0                     # junk
        !            20:        .long   0x1                     # size in blocks of secondary image
        !            21:        .long   0x0                     # load offset from default load address
        !            22:        .long   begin                   # offset into image to start execution
        !            23:        .long   0x1+0x0+begin           # sum of previous three longwords
        !            24: 
        !            25: #
        !            26: # prologue, before we call
        !            27: # the code that thinks it's a rom
        !            28: # set up registers in the standard ROM-like way
        !            29: # copy us to the normal ROM address
        !            30: #
        !            31: # on entry, r11 == extended rpb
        !            32: #
        !            33: 
        !            34:        .set    RROM,0xfa00             # where rom should be in memory
        !            35:        .set    RRSIZE,512              # max size expected for rom:
        !            36:                                        # no bigger than this disk sector!
        !            37: 
        !            38: #
        !            39: # offsets in VMB's `extended RPB'
        !            40: #
        !            41:        .set    RPBFLAG,0x30            # restart flags
        !            42:        .set    RPBCSR,0x54             # boot device csr
        !            43:        .set    RPBUNIT,0x64            # boot device unit number
        !            44: 
        !            45: begin:
        !            46:        movc3   $RRSIZE,rombegin,*$RROM
        !            47:        movl    $0772150,r2
        !            48:        movzbl  $2,r3
        !            49:        movl    $0x200,sp               # `working memory'
        !            50:        jmp     *$RROM
        !            51:        .align  2
        !            52: 
        !            53: rombegin:

unix.superglobalmegacorp.com

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