|
|
1.1 ! root 1: /* raboot.s 6.1 83/07/29 */ ! 2: ! 3: /* ! 4: * UDA50 1st level boot program: loads next 7.5Kbytes from ! 5: * boot sector of file system and sets it up to run. ! 6: */ ! 7: .set RELOC,0x50000 ! 8: .set BOOTLAST,15 /* last boot sector */ ! 9: .set RABPSECT,512 /* bytes per sector */ ! 10: ! 11: init: ! 12: .word 0 /* entry mask for dec monitor */ ! 13: nop;nop;nop;nop;nop;nop;nop;nop /* some no-ops for 750 boot to skip */ ! 14: nop;nop; ! 15: start: ! 16: movl r1,r7 /* UNIBUS I/O page address */ ! 17: movl r2,r8 /* boot device CSR */ ! 18: movl r3,r9 /* unit number */ ! 19: movl r5,r11 /* boot flags */ ! 20: movl $RELOC,sp ! 21: moval init,r10 ! 22: movc3 $end,(r10),(sp) ! 23: movl r7,r1 /* UNIBUS I/O page address */ ! 24: movl r8,r2 /* boot device CSR */ ! 25: movl r9,r3 /* unit number */ ! 26: jmp *$RELOC+start2 ! 27: /* now running relocated */ ! 28: /* bring in the boot program */ ! 29: start2: /* running relocated */ ! 30: pushr $0xffff /* BEGIN FIREWALL */ ! 31: movl $1,r4 /* first boot sector */ ! 32: clrl r5 /* transfer address */ ! 33: clrl -(sp) /* transfer address */ ! 34: 1: ! 35: movl r4,r8 /* requested sector # */ ! 36: jsb (r6) /* call ROM-based driver */ ! 37: blbs r0,2f ! 38: halt /* read error */ ! 39: 2: ! 40: addl2 $RABPSECT,r5 /* bump address */ ! 41: movl r5,(sp) ! 42: aobleq $BOOTLAST,r4,1b ! 43: ! 44: .set PROGSIZE,((BOOTLAST-1)*RABPSECT) ! 45: done: ! 46: tstl (sp)+ /* pop address */ ! 47: popr $0xffff /* END FIREWALL */ ! 48: movl $PROGSIZE,r3 ! 49: clrcor: ! 50: clrq (r3) ! 51: acbl $RELOC,$8,r3,clrcor ! 52: /* start loaded program */ ! 53: movl $9,r10 /* major("/dev/ra0a") */ ! 54: calls $0,*$0 ! 55: brw start2 ! 56: end:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.