|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.