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: 1540
Valid CSS Valid XHTML 1.0 Strict