Annotation of researchv10dc/sys/boot/uvax/uvhdr.s, revision 1.1.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.