Annotation of researchv10dc/sys/boot/uvax/xxhdr.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: # 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.