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