# 2.11BSD#431 - /usr/src/sys/bootrom/siboot.s

       1: /**********
       2: /
       3: /	boot rom for si 9500 disk drive
       4: /
       5: /**********
       6:
       7: reset	= 5
       8: nop	= 240
       9:
      10: 	<SI>				/ name code of boot rom
      11: 	0176				/ offset to next rom
      12:
      13: 	sec				/ entry point, unit 0, no diagnostics
      14: 	mov	$0,r0			/ entry point, unit 0, with diagnostics
      15: 	mov	$176700,r1		/ load csr into r1
      16: 	mov	pc,r4			/ for link
      17: 	bcc	diag			/ go do diagnostics if C set
      18: 	br	begin			/ skip next stuff
      19:
      20: 	0173000				/ pc on power up boot
      21: 	0340				/ psw on power up boot
      22:
      23: begin:
      24: 	reset				/ reset unibus devices
      25: 	mov	r0,r3			/ move unit to r3
      26: 	bis	$01300,sp		/ get some stack
      27:
      28: 	mov	24(r1),r0		/ load shared computer register to r0
      29: 	bit	$200,r0			/ see if grant bit is set
      30: 	bne	1f			/ set, is dual ported
      31: 	mov	12(r1),r0		/ move error register to r0
      32: 	bic	$037777,r0		/ clear all but error and contention
      33: 	cmp	$140000,r0		/ see if contention error
      34: 	bne	2f			/ nope, must be normal 9500
      35: 1:
      36: 	bit	$200,24(r1)		/ test for grant
      37: 	bne	2f			/ got it
      38: 	clr	(r1)			/ issue login master clear to 9500
      39: 	mov	$1,24(r1)		/ set request
      40: 	br	1b			/ loop until grant
      41: 2:
      42: 	mov	$400,2(r1)		/ set for 512 bytes
      43: 	clr	6(r1)			/ set for head 0, sector 0
      44: 	clr	10(r1)			/ set to read at zero
      45: 	bic	$177774,r3		/ clear all but bottom bits
      46: 	ash	$12,r3			/ shift unit number
      47: 	mov	r3,4(r1)		/ set unit number
      48: 	mov	$5,(r1)			/ start the read
      49: 3:
      50: 	tstb	(r1)			/ test for done
      51: 	bpl	3b			/ wait for it
      52: 	tst	12(r1)			/ see if error occured
      53: 	bpl	4f			/ nope, all ok
      54: 	br	begin			/ try again
      55: 4:
      56: 	clr	pc			/ jump to zero
      57: diag:	jmp	*$165564		/ go do diagnostics
      58:
      59: 	nop
      60: 	nop

Last modified: 1985-11-12 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 694 |