File: BLOV43.PA of Tape: Various/System-Tapes/s5
(Source file text) 

/BUILD MODS FOR S/I DISKS

	/SYSTEM INDUSTRIES, INC.
	/535 DEL REY AVENUE
	/SUNNYVALE, CALIFORNIA  94086

/THIS IS AN OVERLAY TO DEC'S BUILD PROGRAM
/FOR OS/8 VERSION II, ALLOWING IT TO BE USED WITH
/SYSTEM INDUSTRIES MODEL 3400/3500 STORAGE SYSTEMS.
/HANDLER MODIFIED TO EXIT WITH NO ERRORS AND NO DATA XFER ON ZERO PAGE COUNT 8/73

/DEFINITIONS:

/PORT0:	FOR 128 WORD/SECTOR DISKS, PORT0=1; FOR 256 WORD/SECTOR
/	DISKS, PORT0=0.

PORT0=0
DOFF0=146			/QUARTER SIZE MOVING-HEAD DISK
DCODE=50			/DEVICE CODE OF CONTROLLER
SISD=3640			/ASSEMBLY LOC FOR BUILD
DSDD=10^DCODE+6001
DLCR=10^DCODE+6002
DCSR=10^DCODE+6004
DRSR=10^DCODE+6005
DSDE=10^DCODE+6011
DLSR=10^DCODE+6012
DSRR=10^DCODE+6013
DLTR=10^DCODE+6014
DWCA=10^DCODE+6017

*SISD
	6			/SIXTH DEVICE IN BUILD
	4370			/DCB (DEVICE # ONE LESS THAN ACTUAL!!)
	-6502			/CORE COMPARISON WORD (-[CONTENTS OF 7636])
NOPUNC
*7607
ENPUNC
EJECT
/INITIALIZATION CODE

SHNDLR,	0		/ENTRY/EXIT POINT
	CLL CLA		/NEVER TRUST THE USER TO PASS A CLEAR AC
	DCA SYSDSK	/CLEAR TRACK OFFSET
	TAD I SHNDLR
	DCA WRD1	/GET FUNCTION CONTROL WORD TO LOCAL STORAGE
	ISZ SHNDLR
	TAD I SHNDLR
	DCA CORADR	/GET DATA BUFFER ADDRESS
	ISZ SHNDLR
	TAD I SHNDLR
	DCA DADR	/GET DISK BLOCK-ADDRESS
	ISZ SHNDLR	/PARTIALLY FIX EXIT
	RDF
	TAD KCDIF
	DCA SHNXIT+1	/SET UP FIELD CHANGER FOR EXITING


	TAD WRD1	/CONVERT PAGE COUNT TO WORD COUNT
	AND M3700	/CLEAN OUT JUNK BITS
	SNA
	JMP SHNXIT-1	/TAKE NORMAL EXIT ON ZERO WORD COUNT
	CLL RAL
	DCA WDCNT
	TAD KM20
	DCA ERRCNT	/INITIALIZE RETRY COUNTER


/ALL INITIALIZATION CODE IS NOW DONE, PROCEED WITH REAL WORK
EJECT
SHNDLP,	DLCR		/INSURE INTERFACE DATA FIELD=0
	DCSR		/CLEAR STATUS REGISTER
	TAD WCCALC
	DWCA		/TELL INTERFACE WHERE TO FIND CONTROL WORDS
	TAD KIONS
	DCA SHNIOU	/SET UP ACTUAL I/O READ
	TAD WRD1
	SPA
	ISZ SHNIOU	/SET UP FOR WRITE
	RTL ; RTL ; RTL
	AND M7000
	DLCR		/LOAD DATA BUFFER FIELD
	TAD DADR

IFNZRO PORT0	<CLL RAL>	/FOR 128 WD/SECTOR DISKS
IFZERO PORT0	<AND M17>	/FOR 256 WD/SECTOR DISKS

	DLSR		/LOAD SECTOR ADDRESS REGISTER
	CLL CLA
	TAD DADR
	RTR ; RTR
	AND M377	/DEVELOP TRACK ADDRESS
	TAD SYSDSK
SHNIOU,	HLT		/A REAL TRACK LOAD AND GO IS PLACED HERE
	JMP DWAIT	

DADR,	0

/-DSK- DRIVER FOR SI DISK

DSKDRV,	0		/ENTRY-EXIT POINT
	CLL CLA
	TAD DSKDRV
	DCA SHNDLR	/FOOL -SHNDLR- INTO THINKING IT WAS CALLED
	TAD KOFSET	/SET -DSK- OFFSET ON UNIT 0
	JMP SHNDLR+2	/GO ENTER NORMAL SHNDLR
EJECT

WRD1,	0
M7000,	7000
ERRCNT,	0

	IFNZRO 7701-. <NZERR>
	HLT		/CATCH USER LOOKING FOR-USR-IN WRONG FIELD

KCDIF,	CDF CIF 0
KIONS,	DLTR-WDCNT
KOFSET,	DOFF0^2
M17,	17
M377,	377
M3700,	3700
SYSDSK,	0
WCCALC,	.+1
WDCNT,	0
CORADR,	0
KM20,	-20


DWAIT,	CLL CLA
	DSDD
	JMP .-1		/WAIT FOR OPERATION TO FINISH
	DSDE		/WAS THERE AN ERROR?
	JMP SHNXIT-1	/NO, GO EXIT
	ISZ ERRCNT	/BUMP ERROR COUNTER
	JMP SHNDLP	/RETRY UNTIL COUNT EXPIRES
	CLL CML
	SKP
	ISZ SHNDLR	/BUMP EXIT ADDRESS TO TAKE NORMAL EXIT
SHNXIT,	CLA RAR
	HLT		/RESET FIELDS TO THOSE OF CALLER
	JMP I SHNDLR	/EXIT
/BLOCK ZERO BOOTSTRAP

*SISD+140
NOPUNC
*0
ENPUNC

	NOP			/PAD TO GET TO TOGGLE IN BOOT
	NOP
	NOP
	NOP
	DSDD
	JMP	.-1
	DSDE			/CHECK FOR ERRORS
	JMP	BOOT
	DRSR			/QUIT NOW WITH STATUS IN AC
	HLT
	JMP	.-1

BOOTX1,	177
BOOTX2,	7577
BOOTX3,	46
BOOTX4,	7646

BOOT,	TAD I	BOOTX1
	DCA I	BOOTX2
	TAD I	BOOTX3
	CDF	10
	DCA I	BOOTX4
	CDF	0
	TAD	BOOTX2
	SZA	CLA
	JMP	BOOT
	JMP I	RESTRT
RESTRT,	7605
/BOOTSTRAP PROCEDURE:

/TOGGLE IN FOLLOWING INSTRUCTIONS

/LOC	OCTAL	INST
/0	6502	DLCR		/ASSURE DATA FIELD 0 (ALSO WORD COUNT)
/1	0000			/START CORE ADDRESS
/2	6517	DWCA		/SET WC, CA FROM 0 AND 1
/3	6512	DLSR		/SECTOR 0
/4	6514	DLTR		/READ FROM TRACK ZERO
/5	5005	JMP .		/WAIT FOR RESULT

/START THE BOOT AT ADDRESS ZERO
/NOTE:
/	THE -AC- MUST BE ZERO.

/MISCELLANEOUS CHANGES TO BUILD:
	ENPUNC

*2611;4210			/CHANGE TD8E DCB TO DEVICE #22
*7401;4210			/ROM TD8E DCB ALSO #22
*6041;DSKDRV			/DSK ENTRY POINT (RESIDENT)
*6170;DSKDRV&177		/TEST FOR DSK ENTRY POINT
*7334;-6240			/BLOCKS AVAILABLE ON SYS:
*7336;0413;2311			/MAKE DEVICE GENERIC NAME SIDK (WAS RK8)

/THE FOLLOWING CHANGES MAKE BUILD WORK PROPERLY
/FOR DUAL ENTRY POINT DISKS:

*4053;	1750
*4056;	2350 ; 5750
*4063;	3350
*4065;	2350
*4150; 0000;4777;6240;5235;5256
*5557;	4150
*6172;	4150

	$$$$