Annotation of researchv10dc/sys/boot/uvax/uvhdr.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: # temporary cheap hack:
        !            32: # copy to very high memory, not ordinary ROM addr
        !            33: # fix up Q-bus map
        !            34: # this to (hopefully) keep certain UQSSP controllers
        !            35: # from overwriting the wrong data
        !            36: #
        !            37: # on entry, r11 == extended rpb
        !            38: #
        !            39: 
        !            40: #      .set    RROM,0xfa00             # where rom should be in memory
        !            41:        .set    RROM,0x72000
        !            42:        .set    RRSIZE,512              # max size expected for rom:
        !            43:                                        # no bigger than this disk sector!
        !            44: 
        !            45:        .set    QMAP,0x20088000         # Q-bus map registers
        !            46:        .set    QV,0x80000000           # valid map bit
        !            47: 
        !            48: #
        !            49: # offsets in VMB's `extended RPB'
        !            50: #
        !            51:        .set    RPBFLAG,0x30            # restart flags
        !            52:        .set    RPBCSR,0x54             # boot device csr
        !            53:        .set    RPBUNIT,0x64            # boot device unit number
        !            54: 
        !            55: begin:
        !            56:        movc3   $RRSIZE,rombegin,*$RROM
        !            57:        movl    $QV|(RROM/512),*$QMAP+(RROM/128)        # make map valid, for UQSSP stuff
        !            58:        movl    RPBCSR(r11),r2
        !            59:        movzbl  RPBUNIT(r11),r3
        !            60:        movl    RPBFLAG(r11),r5
        !            61:        movl    $0x200,sp               # `working memory'
        !            62:        jmp     *$RROM
        !            63:        .align  2
        !            64: 
        !            65: rombegin:

unix.superglobalmegacorp.com

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