File: BOOT50.MA of Disk: V50/Source/Source-Listing-MAC-1
(Source file text) 

/BOOT FOR KBM V50
/
/
/
/
/
/
/
/
/
/COPYRIGHT  (C)  1977 BY DIGITAL EQUIPMENT CORPORATION
/		 AND 1979 BY DATAPLAN GMBH
/		 AND 2015 W. VAN DER MARK
/
/
/
/
/
/
/
/
/
/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
/AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
/CORPORATION.  DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
/FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
/
/THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
/UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
/(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
/SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
/
/DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE
/OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY
/DIGITAL.
/
/
/
/
/
/
/
/
/
/
/


	/SR

/FIXES MADE FOR MAINTENANCE RELEASE:

/1.	ADDED RX01 (FLOPPY BOOTSTRAP)
/2.	LEFT PATCH SPACE IN NAME TABLE

/	26-DEC-77

/1.	ADDED RL BOOTSTRAP (S.R.)

	/WVDM
/1.	LOWER CASE
/2.	MACREL
/3.	MULTI8
/4.	GERMAN
/5.	SI DISK

/INSTRUCTIONS THAT GENERATE CONSTANTS

AC0001=CLA IAC
AC0002=CLA CLL CML RTL
AC0003=CLA CLL CML IAC RAL
AC0004=CLA CLL IAC RTL
AC0006=CLA CLL CML IAC RTL
AC0100=CLA IAC BSW
AC2000=CLA CLL CML RTR
AC3777=CLA CLL CMA RAR
AC4000=CLA CLL CML RAR
AC5777=CLA CLL CMA RTR
AC6000=CLA CLL CML IAC RTR
AC7775=CLA CLL CMA RTL
AC7776=CLA CLL CMA RAL

/	GERMAN=1	/NOT ANYMORE


	.ASECT BOOT,ROOT
	FIELD 0
	*2000
	.START START,0
	.JSW 7403


START,	CLA		/ALLOW BEING CHAINED TO
	IOF
	TAD I (7600
	SPA CLA
	JMP OS8IN
	ISZ INNER
	JMP .-1
	ISZ OUTR
	JMP .-3
	JMS I (TESTRK
COSIN,	TAD I (7776
COMN,	CIA
	DCA CODE
	TAD (TABLE
	DCA PTR
LOOP,	TAD I PTR
	SNA
	JMP I (OS8
	TAD CODE
	SZA CLA
	JMP NXT
	ISZ PTR
	TAD I PTR
	DCA OLDLOC
	ISZ PTR
	TAD I PTR
	DCA NEWLOC
	ISZ PTR
	TAD I PTR
	CIA
	DCA LENGTH
XXLUP,	TAD I OLDLOC
	DCA I NEWLOC
	ISZ OLDLOC
	ISZ NEWLOC
	ISZ LENGTH
	JMP XXLUP
	ISZ PTR
	TAD I PTR
	DCA TEMP
	TAD HLTSWT
	SNA CLA
	HLT
	CLL
	JMP I TEMP

NXT,	TAD PTR
	TAD (5
	DCA PTR
	JMP LOOP


OS8IN,	TAD I (7600
	TAD (-4207
	SZA CLA
	JMP I (RETRY
	TAD I (1000
	TAD (777
	SNA CLA
	TAD (600
	TAD (1000-1
	DCA SCAN
SKAN,	ISZ SCAN
	TAD I SCAN
	SNA
	JMP I (RETRY
	AND (177
	TAD (-<"/&177>
	SZA CLA
	JMP SKAN
	ISZ SCAN
	TAD I SCAN
	AND (37
	BSW
	DCA TEMP
	ISZ SCAN
	TAD I SCAN
	AND (37
	TAD TEMP
	DCA TEMP
	ISZ SCAN
	TAD I SCAN
	AND (177
	TAD (-<".&177>
	DCA HLTSWT
	TAD TEMP
	JMP COMN


HLTSWT,	1
INNER,	0
OUTR,	-20
CODE,	0
LENGTH,	0
OLDLOC,	0
NEWLOC,	0
PTR,	0
SCAN,	0
TEMP,	0
	PAGE


LV,	"V
V1,	"5
V2,	"0
PTCLEV,	"X

VERS,	TAD LV
	JMS PUT
	TAD V1
	JMS PUT
	TAD V2
	JMS PUT
	TAD PTCLEV
	JMS PUT
	JMP I (RETRY

	DIML=6615
DISK,	CLA IAC
	DIML
	SNA CLA
	JMP GOTRF
	TAD (70
	6732
	SNA CLA
	JMP GOTRK8
	CLA IAC
	6744
	SNA CLA
	JMP	GOTRE
	STA
	6512
	CLA
	6513
	TAD (-17
	SZA CLA
	JMP I	(RETRY
	TAD	('SI
	JMP I	(COMN

GOTRE,	STA		/RE
GOTRF,	TAD ('RF	/RF
	JMP I (COMN
GOTRK8,	TAD ('RK	/RK
	JMP I (COMN


TAPE,	6141		/LINC
	17		/COMPL AC
	2		/PDP
	IAC
	SNA CLA
	JMP GOTLTA
	TAD (70
	6774
	CLA
	6772
	NOP
	TAD (-70
	SNA CLA
	JMP GOTTC
	AC4000
	6774
	CLA
	6776
	SMA CLA
	JMP I (RETRY

GOTTD,	CLA IAC
GOTTC,	TAD ('TC	/TC
	JMP I (COMN
GOTLTA,	TAD ('LT	/LT
	JMP I (COMN


CRLF,	0
	TAD (215
	JMS PUT
	TAD (212
	JMS PUT
	JMP I CRLF

PUT,	0
	TLS
	TSF
	JMP .-1
	CLA
	JMP I PUT

GET,	0
	KSF
	JMP .-1
	KRB
	AND (177
	TLS
	TSF
	JMP .-1
	TAD (-003
	SNA
	JMP I (7605
	TAD (003-177
	SNA
	JMP I (RETRY
	TAD (177-015
	SZA
	ISZ GET
	TAD (015
	JMP I GET


TESTRK,	0
	TAD (70
	6732
	SNA CLA
	JMP I TESTRK
RK05,	TAD (RK8E
	DCA I (RKADR
	JMP I TESTRK
	PAGE


OS8,
.IF NDF GERMAN <
	TAD ("N
	JMS I (PUT
	TAD ("O
	JMS I (PUT
	>
.IF DF GERMAN <
	TAD	("N
	JMS I	(PUT
	TAD	("e
	JMS I	(PUT
	TAD	("i
	JMS I	(PUT
	TAD	("n
	JMS I	(PUT
	>
RETRY,	CLA CLL
	JMS I (CRLF
	TAD ("/
	JMS I (PUT
	JMS I (GET
	JMP RETRY
	AND	(37
	BSW
	DCA I (TEMP
	JMS I (GET
	JMP RETRY
	AND	(37
	TAD I (TEMP
	DCA I (TEMP
RETMOR,	JMS I (GET
	JMP RETEND
	TAD (-<".&177>
	DCA I (HLTSWT
	JMP	RETMOR
RETEND,	CLA CLL
	JMS I (CRLF
	TAD I (TEMP
	JMP I (COMN


/
	PAGE


/FORMAT:
/
/SIXBIT OF 2-CHARACTER NAME
/ADDRESS OF BOOTSTRAP CODE IN BOOT
/ADDRESS WHERE BOOTSTRAP CODE IS TO BE MOVED TO
/LENGTH OF BOOTSTRAP IN WORDS
/STARTING ADDRESS OF BOOTSTRAP

TABLE,	'TC
	DECTAP
	7554
	25
	7554

	'RK
RKADR,	RK8
	21
	11
	21

	'TD
	TD8E
	TD8EST
	34
	TD8EST

	'LT
	LINCTP
	4400
	7
	4400

	'RF
	RF08
	7746
	7
	7746

	'PT
	BINLDR
	7612
	166
	7700

	'ZE
	ZERO
	ZERSTR
	6
	ZERSTR


	'TY
	TYPSET
	7730
	42
	7730

	'DL
	DIAL
	4012
	6
	4012

	'CA
	CAS
	4000
	40
	4000

	'DM
	DSKMON
	171
	16
	174

	'VE
	VERS
	VERS
	1
	VERS

	'DT
	TAPE
	TAPE
	1
	TAPE

	'DK
	DISK
	DISK
	1
	DISK


	'RE
	RK8E
	RK8EST
	11
	RK8EST

	'SI
	SIDK
	SIDKST
	6
	SIDKST

	'RX
	RX01
	RX8E
	42
	RXSTRT

	'RL
	RL01
	RLPRIM
	35
	RLPRIM

	'VX
	VXA0
	VXSTR
	7
	VXSTR

	'MU
	M8
	M8STR
	14
	M8STR

	ZBLOCK 3^5	/PATCH SPACE

	0
	PAGE


DECTAP,	7600
	6774
	1374
	6766
	6771
	5360
	7240
	1354
	3773
	1354
	3772
	1375
	6766
	5376
	7754
	7755
	0600
	0220
	6771
	5376

RK8,	6732
	6751
	6745
	5023
	6742
	6753
	6755
	6733
	5031

RK8E,	RELOC 21
RK8EST,	NOP
	NOP
	NOP
	NOP
	AC0001
	6742
	6742
	6743
	JMP	.
	RELOC


/TD8E,	RELOC 7300-1
/TD8EST,6007
/	1312
/	4312
/	4312
/	6773
/	5303
/	6777
/	3726
/	2326
/	5303
/	5732
/	2000
/	1300
/	6774
/	6771
/	5315
/	6776
/	0331
/	1327
/	7640
/	5315
/	2321
/	5712
/	7354
/	7756
/	7747
/	0077
/	7400

	RELOC
/TD8E BOOTSTRAP
/
SDSQ=6773
SDRD=6777
SDLC=6774
SDSS=6771
SDRC=6776

TD8E,	RELOC 7300-1
TD8EST,	6007
K1000,  TAD GETTD     /PUT DRIVE IN REVERSE
	JMS GETTD     /LOOK FOR END ZONE
	JMS GETTD     /LOOK FOR 31 CODE
RD,	SDSQ        /NOW READ ALL INTO CORE
	JMP .-1
	SDRD        /READ 12 BIT WORD
	DCA I WCT   /AND PUT IT IN CORE
	ISZ WCT
	JMP RD      /LOOP UNTIL FIELD 0
	JMP I STRT  /IS LOADED, THEN START
GETTD,	2000
	TAD K1000   /SET MOTION &DIRECTION
	SDLC
BSRCH,  SDSS        /WAIT FOR 22 OR 31 CODE
	JMP .-1     /22 IS END ZONE, 31 IS
	SDRC        /4 WORDS BEFORE DATA
	AND K77     /IS THIS WHAT WE WANT?
	TAD BM22    /THIS GETS INCREMENTED
	SZA CLA     /IF YES, RETURN.
  	JMP BSRCH   /NO.KEEP LOOKING.
	ISZ .-3     /LOOK FOR NEXT IN LIST
	JMP I GETTD
WCT,	7354        /START LOADING CORE AT 7354
BM22,	-22         /THE OTHER BOOTSTRAP GETS
	-31         /LOADED AT 7400.
K77,	77
STRT,	7400

        RELOC


LINCTP,	6141
	1020
	0020
	0004
	0700
	0000
	6020

RF08,	6643
	6615
	7600
	6603
	6622
	5352
	5752

/SI3040 BOOTSTRAP
SIDK,	RELOC 0
/SIDKST,6502
/	0000
/	6517
/	6512
/	6514
/	JMP	.
/	RELOC

DLCR=6502
DWCA=6517
DLSR=6512
DLTR=6514

SIDKST,	DLCR	/ASSURE DATA FIELD 0 (ALSO WORD COUNT)
	0	/START CORE ADDRESS
	DWCA	/SET WC, CA FROM 0 AND 1
	DLSR	/SECTOR 0
	DLTR	/READ FROM TRACK ZERO, UNIT 0
	JMP .	/WAIT FOR DSDD;JMP .-1 OVERLAY
	RELOC

M8,	RELOC 20
M8STR,	CAF
	6254		/SM8
	HLT
	6000		/MULTI8 HANDLER CALL
	JMP	.+4
	200		/2 PAGES
	7400		/IN 7400
	0		/BLOCK 0
	SZA		/AC = 0 OK
	HLT
	JMP I	.+1
	7400		/NEW RESTORE/BOOT 1-MAR-80
	RELOC


/BINLDR,	0000
/	3212
/	4260
/	1300
/	7750
/	5237
/	2212
/	7040
/	5227
/	1212
/	7640
/	5230
/	1214
/	0274
/	1341
/	7510
/	2226
/	7750
/	5626
/	1214
/	0256
/	1257
/	3213
/	5230
/	0070
/	6201
/	0000
/	0000
/	6031
/	5262
/	6036
/	3214
/	1214
/	5660
/	6011
/	5270
/	6016
/	5265
/	0300
/	4343
/	7041
/	1215
/	7402
/	6032
/	6014
/	6214
/	1257
/	3213
/	7604
/	7700
/	1353
/	1352
/	3261
/	4226
/	5313
/	3215
/	1213
/	3336
/	1214
/	3376
/	4260
/	3355
/	4226
/	5275
/	4343
/	7420
/	5336
/	3216
/	1376
/	1355
/	1215
/	5315
/	0000
/	3616
/	2216
/	7600
/	5332
/	0000
/	1376
/	7106
/	7006
/	7006
/	1355
/	5743
/	5262
/	0006
/	0000
/	0000
/	6014
/	6011
/	5357
/	6016
/	7106
/	7006
/	7510
/	5374
/	7006
/	6011
/	5367
/	6016
/	7420
/	3776
/	3376
/	5357
/	0000
/	5301

BINLDR,	RELOC 7612
SWITCH, 0
MEMTEM, 0
CHAR,   0
CHKSUM, 0
ORIGIN, 0

/SOME NULLS IN BETWEEN
        ZBLOCK 7
        
BEGG,   0
	DCA SWITCH  /SET SWITCH
        JMS READB    /GET A CHARACTER
	TAD M376    /TEST FOR 377
	SPA SNA CLA
	JMP .+4     /NO
        ISZ SWITCH  /YES, COMPLEMENT SWITCH
        CMA
        JMP BEGG+1
        TAD SWITCH  /NOT 377
        SZA CLA     /IS SWITCH SET?
        JMP BEGG+2  /YES, IGNORE
        TAD CHAR    /NO, TEST FOR CODE
        AND MASK    /TYPES
        TAD M200
        SPA
        ISZ BEGG    /DATA OR ORIGIN
        SPA SNA CLA
        JMP I BEGG  /DATA, ORIGIN OR L/T
        TAD CHAR    /FIELD SETTING
        AND FMASK
        TAD CHANGE
        DCA MEMTEM
        JMP BEGG+2  /CONTINUE INPUT
FMASK,  70
CHANGE, CDF
READB,	0
        0
LOR,    KSF         /WAIT FOR FLAG
        JMP .-1
        KRB
        DCA CHAR
        TAD CHAR
        JMP I READB
HIR,    RSF
        JMP .-1
	RRB RFC
        JMP LOR+3
MASK,   300
BEND,   JMS ASSEMB
        CIA
        TAD CHKSUM
M376,   HLT
BEGIN,  KCC
        RFC
        RDF
        TAD CHANGE
        DCA MEMTEM  /SAVE FIELD INSTRUCTION
        CLA OSR
	SMA CLA
        TAD HIRI
        TAD LORI
        DCA READB+1
        JMS BEGG
        JMP .-1     /IGNORE LEADER
GO,     DCA CHKSUM
        TAD MEMTEM
        DCA MEMFLD
        TAD CHAR
        DCA WORD1
        JMS READB
        DCA WORD2
        JMS BEGG    /LOOK AHEAD
        JMP BEND    /TRAILER, END
        JMS ASSEMB
        SNL
        JMP MEMFLD
        DCA ORIGIN
CHEX,   TAD WORD1
        TAD WORD2
        TAD CHKSUM
        JMP GO
MEMFLD, 0
        DCA I ORIGIN
        ISZ ORIGIN
M200,   7600
        JMP CHEX
ASSEMB, 0
        TAD WORD1
        CLL RTL
        RTL
        RTL
        TAD WORD2
        JMP I ASSEMB
LORI,   JMP LOR
HIRI,   HIR-LOR
        0
WORD2,  0

RCC=6016
RCF=6014
BEG,  	RCF         /CLEAR AC AND FLAG
      	RSF         /SKIP IF FLAG=1
      	JMP .-1     /LOOKING FOR CHAR
      	RCC         /READ BUFFER
      	CLL RTL     /CH8 IN AC0
      	RTL         /CHECKING FOR LEADER
      	SPA         /FOUND LEADER
      	JMP WORD1-2  /OK
	RTL         /NO, CH7 IN LINK
	RSF
	JMP .-1
	RCC         /READ, NO CLEAR
	SNL         /CHECKING FOR ADDRESS
	DCA I WORD1 /STORE CONTENTS
	DCA WORD1   /STORE ADDRESS
	JMP BEG+1   /NEXT WORD
WORD1,	0
	JMP BEGIN

	RELOC


ZERO,	RELOC 4
ZERSTR,	TAD	.+1
	DCA I	ZXR
	JMP	ZERSTR
	JMP I	ZERSTR
ZXR,	.+1
	ISZ	ZXR
	RELOC

DIAL,	6141
	1020
	0020
	0004
	0701
	7300

	LXM=6200
VXA0,	RELOC 0
VXSTR,	CLA
	TAD	VXENA
	LXM
	CIF CDF	4
	JMP I	.+1
	0000
VXENA,	7000
	RELOC


TYPSET,	6774
	1347
	4341
	7240
	1353
	3355
	1352
	4341
	5753
	7777
	6766
	3354
	6771
	5344
	5741
	4600
	7777
	7777
	4220
	7400
	7777
	7777
	7777
	6014
	6011
	5360
	7106
	6012
	7420
	5357
	5756
	4356
	3373
	4356


DSKMON,	7577
	7750
	7751
	1171
	3572
	1172
	3573
	6643
	6615
	6603
	6602
	5203
	5606
	7600

CAS,	1237
	1206
	6704
	6706
	6703
	5204
	7264
	6702
	7610
	3211
	3636
	1205
	6704
	6706
	6701
	5216
	7002
	7430
	1636
	7022
	3636
	7420
	2236
	2235
	5215
	7346
	7002
	3235
	5201
	7737
	3557
	7730


/  DEVICE IOT SYMBOLIC EQUATES
/
LCD=6751		/LOAD COMMAND
XDR=6752		/TRANSFER DATA
STR=6753		/SKIP IF READY TO TRANSFER
SER=6754		/SKIP ON ERROR
SDN=6755		/SKIP ON DONE

RX01,	RELOC 20
RX8E,
READ,	TAD	UNIT	/TRY NEXT COMBINATION OF DENSITY AND UNIT
	TAD	CON360	/ADDING IN 360
	AND	CON420	/KEEPING ONLY 420 BITS
	DCA	UNIT	/CYCLES 400,420,0,20,400,,,,,,,,
	AC0006		/COMMAND TO READ DISK - MUST BE ON OMNIBUS!
	TAD	UNIT	/UNIT AND DENSITY
	LCD		/COMMAND TO CONTROLLER
	AC0001		/TO SET SECTOR AND TRACK TO 1
	JMS	LOAD	/SECTOR TO CONTROLLER, LEAVES AC ALONE
	JMS	LOAD	/AND TRACK
LITRAL,	7004		/LEAVING A 2 IN AC; SERVES AS LITERAL
/
/  FOLLOWING IS PART OF WAIT LOOP, SAME SECONDARY BOOTS, OLD PRIMARY BOOT
/
RXSTRT,
XSTRT,	SDN		/HAS DONE COME UP; CODE STARTS HERE!
	JMP	LOAD+1	/NO, GO CHECK FOR READY TO TRANSFER
/
/  NOW, DONE OR ERROR
/
	SER		/SKIP ON AN ERROR, TRY ANOTHER DENSITY ETC.
	SNA		/NASTY, AC=2 FOR ABOUT TO DO SILO, 0 ON START-UP
	JMP	READ	/START-UP, GO SET UP UNIT, THEN READ TO SILO
	TAD	UNIT	/AC ALREADY 2, PUT IN UNIT, DENSITY
	LCD		/TO EMPTY THE SILO
	TAD	UNIT	/SET UP LOC 60 FOR OLD SECONDARY BOOT
	AND	CON360	/KEEPING UNLY DENSITY BIT
	TAD	LITRAL	/ADDING IN 7004, BECAUSE THAT'S WHAT SYS WANTS
	DCA	RX1SAV	/OLD SECONDARY BOOT MOVES IT TO HANDLER
CON360,	360		/LITERAL; EXECUTES IN LINE AS A NO-OP
/			/FALLS THRU TO NEXT PAGE OF LISTING


/  FOLLOWING CODE SAME AS OLD PRIMARY BOOT
/
	JMS	LOAD	/GRAB NEXT ITEM FROM SILO
	DCA	2	/TRADITION; SECONDARY BOOT STARTS LOADING AT 2 !
	ISZ	50	/INCREMENT LOAD ADDRESS
	JMP	47	/GO BACK FOR ANOTHER
/
/  SECONDARY BOOT LOADS OVER PRIMARY BOOT UNIT LOCATION 47 IS LOADED,
/  THEN CONTROL PASSES TO SECONDARY BOOT
/
LOAD,	0		/SUBROUTINE TO GIVE AND TAKE DATA FROM CONTROLLER
	STR		/IS HE READY TO TALK TO US?
	JMP XSTRT	/NO, IS HE PERHAPS DONE WITH SILO, OR IN ERROR?
	XDR		/YES, DATA IN OR OUT;IF DATA TO CONTROLLER, AC UNCHANGED
	JMP I	LOAD	/NO MAGIC, JUST EXIT FROM SUBROUTINE
/
/  60 GOES TO OLD SECONDARY BOOT
/  61 HAS DENSITY AND UNIT THAT BOOTED SUCCESSFULLY
/
/
CON420,			/USE IT TO HOLD 420 LITERAL TO START OUT
RX1SAV,	420		/UNIT^20+7004 TO GO TO SYS HANDLER
UNIT,	20		/<DENSITY^400>+<UNIT^20> THAT BOOTED OK
/

	RELOC


/RL01 DEFINITIONS

RLIOT=6600
RLDC=RLIOT 0	/CLEAR DEVICE
RLSD=RLIOT 1	/SKIP IF DONE
RLMA=RLIOT 2	/LOAD MEM ADDR
RLCA=RLIOT 3	/LOAD REGISTER "A"
RLCB=RLIOT 4	/LOAD REG "B" AND EXECUTE
RLSA=RLIOT 5	/LOAD SECTOR ADDR
		/RLIOT 6 UNUSED
RLWC=RLIOT 7	/LOAD WORD COUNT
RRER=RLIOT 10	/READ ERROR REG
RRWC=RLIOT 11	/READ WORD COUNT
RRCA=RLIOT 12	/READ REG "A"
RRCB=RLIOT 13	/READ REG "B"
RRSA=RLIOT 14	/READ SECTOR ADDR
RRSI=RLIOT 15	/READ SILO BYTE
		/RLIOT 16 UNUSED
RLSE=RLIOT 17	/SKIP IF ERROR
/RLCB FUNCTION BITS:
	RLMT=0	/MAINTENANCE MODE
	RLRE=1	/RESET DRIVE ERRORS
	RLST=2	/READ STATUS REGS INTO SILO
	RLSK=3	/SEEK
	RLRH=4	/READ HEADER
	RLWR=5	/WRITE
	RLRD=6	/READ
	RLRN=7	/READ WITH NO HEADER CHECK
/BIT DEFINITIONS IN REGISTERS:
BYTE=1000	/BYTE TRANSFER MODE


RL01,	RELOC 1
RLPRIM,	RLDC		/CLEAR DRIVE
	AC0001
	JMS	IOSUB	/RESET DRIVE ERRORS
	TAD	.	/=1004
	JMS	IOSUB	/BYTE READ HEADER TO FIND OUT WHERE WE ARE
	RRSI		/READ HEADER BYTE #1
	BSW
	RTR		/LSB OF CYLINDER
	RRSI		/READ HEADER BYTE #2
	AND	C377
	RAL		/MAKE CYLINDER ADRESS
	RLCA		/USE AS DIFFERENCE FOR SEEK TO 0,0
	AC0003
	JMS	IOSUB	/GO SEEK
	AC2000		/SECTOR 20
	RLSA		/LOAD IT
	TAD	CM200
	RLWC		/ONE PAGE WORD COUNT
	AC0006
	JMS	IOSUB	/READ SECONDARY BOOTSTRAP
C377,	0377		/IOSUB DOES NOT RETURN (OVERLAID)
CM200,	-200
IOSUB,	0
	RLCB		/EXECUTE FINCTION
	RLSD		/WAIT UNTIL DONE
	JMP	.-1	/'IOSUB' IS ALSO IN SEC. BOOT
	RLSE		/KEEP IT HERE
	JMP I	IOSUB
	JMP	RLPRIM	/ERROR : TRY AGAIN
	RELOC
	PAGE