/ MASTER RX BOOTSTRAP / RX8B EQUATED SYMBOLS. DEVCODE=75^10+6000 /SKELETON IOT CODE OF DISK SEL= DEVCODE+0 /LOAD DRIVE PAIR PER AC[11] LCD= DEVCODE+1 /LOAD COMMAND REGISTER XDR= DEVCODE+2 /TRANSFER DATA REGISTER STR= DEVCODE+3 /SKIP ON, CLEAR TRANSFER FLAG SER= DEVCODE+4 /SKIP ON, CLEAR ERROR FLAG SDN= DEVCODE+5 /SKIP ON, CLEAR DONE FLAG INTR= DEVCODE+6 /INTERRUPT ENABLE/DISABLE PER AC[11] INIT= DEVCODE+7 /INITIALIZE CONTROLLER, RECALIBRATE DRIVES / OTHER DEFINITIONS. SBOOT= 7600 /MONITOR RESTART ADDRESS NL0002= CLA CLL CML RTL /LOAD AC WITH 0002 *200 /AS USUAL START, CAF /CLEAN UP KSF /FLAG UP? JMP .-1 /NO, WAIT FOR IT KRB /YES, READ IT IN CLA /CLEAN UP JMP SHANGG /GO START IT UP / MASTER BOOTSTRAP. *10 /START LOADING HERE SBOK, NL0002 /SET MASK BIT RAL /MOVE IT OVER AND SCNT /JUST PAIR BIT RTL;RAL /MOVE TO DSD EXTRA UNIT BIT DCA SCONTRL /SAVE FOR NOW TAD SRXU /GET CURRENT UNIT AND DENSITY AND SBU/(420) /REMOVE PAIR BIT TAD SGDCON/(360) /UPDATE TO NEXT CANDIDATE AND SBU/(420) /KEEP ONLY DENSITY, UNIT BITS TAD SCONTRL /ADD ON PAIR UNIT BIT DCA SRXU /STORE BACK TAD SB6/(6) /GET "READ SECTOR" COMMAND TAD SRXU /ADD ON DENSITY, UNIT BITS LCD /LOAD THE READ SECTOR COMMAND CLA CLL IAC /CLEAR LINK FOR LATER, SET AC TO 0001 JMS SLODE /ASK FOR SECTOR ONE JMS SLODE /ASK FOR TRACK ONE SRAL, RAL /AC NOW 0002 SHANGG, SDN /BOOTSTRAP STARTS HERE; TEST FOR DONE JMP SLODE1 /NOT YET, TEST FOR TRANSFER AND COME BACK SER /DONE, ANY ERRORS? SNA /NO, ARE WE JUST STARTING UP? JMP SNXREAD /YES, GO DO NEXT CASE TAD SRXU /ADD ON DENSITY, UNIT BITS LCD /LOAD "EMPTY SECTOR" COMMAND TAD SRXU /GET CURRENT DENSITY, UNIT BITS AND SGDCON/(360) /JUST UNIT BITS TAD SRAL/(RAL) /NOW HAVE UNITS^20+7004 FOR COMPATIBILITY WITH RX01 BOOT DCA SBU /STORE IN RX01 BOOT WORD SGDCON, 0360 /UPDATE AND MASK CONSTANT SLP, JMS SLODE /GET A WORD SLPSTR, DCA SBOOT&177+2 /PUT A WORD ISZ SLPSTR /PUT TO NEXT JMP SLP /KEEP GOING UNTIL OVERLAYED / THE FOLLOWING WORDS ARE NEVER OVERLAYED. ALL OPERATING SYSTEMS PRIMARY BOOT / BLOCKS MUST ASSUME THEIR PRESENCE IN ORDER TO LOAD AT ALL. / DEPENDENCE ON THESE WORDS PREVENTS SIGNIFICENT IMPROVEMENT OR / ALTERATION OF THE BOOTSTRAP CONVENTION IN THE FUTURE. SLODE, .-. /LOAD A WORD ROUTINE SLODE1, STR /TRANSFER FLAG UP? JMP SHANGG /NO, BUT DONE FLAG MAY BE UP XDR /DO TRANSFER IN PREVAILING DIRECTION JMP I SLODE /RETURN SBU, 0420 /DENSITY AND UNIT MASK; WILL BE UNITS^20+RAL SRXU, 0020 /DENSITY, UNIT WORD; WILL BE UNITS^20+DENSITY^400 / COMES HERE TO STARTUP THE NEXT CANDIDATE. SNXREAD,ISZ SCNT /BUMP COUNTER S14, 14 /CONSTANT 0014; THIS CAN BE SKIPPED JMS SCONTRL /SETUP CONTROLLER BITS SZL /EVEN PAIR? IAC /NO, USE ODD PAIR JMS SSEL /SELECT LATEST PAIR TAD S16/(16) /GET "READ ERROR REGISTER" VALUE LCD /LOAD COMMAND TO POSSIBLY LISTENING PAIR DCA SLODE /INITIALIZE THE TIMER / THE FOLLOWING CODE IS USED TO DETERMINE IF THE SELECTED PAIR ACTUALLY EXISTS. / IF THE DONE FLAG NEVER COMES UP, THE INTERFACE MUST BE REINITIALIZED / AND THE OTHER DRIVE PAIR SELECTED. SINCE THE OTHER PAIR MAY EXIST IN A / DSD-210 EXTENDED CONFIGURATION (SINGLE CONTROLLER WITH FOUR DRIVES) / THE EXTENDED UNIT BIT WILL BE PRESERVED. SDNTST, SDN /DONE FLAG UP? SKP /SKIP IF NOT JMP SBOK /JUMP IF SO ISZ SLODE /WAITED TOO LONG? JMP SDNTST /NO, GO BACK INIT /INITIALIZE THE DRIVES SDN /WAIT FOR JMP .-1 /FLAG TO COME UP JMS SCONTRL /SETUP CONTROLLER BITS SNL /WAS IT ODD CONTROLLER? IAC /NO, MAKE IT SO JMS SSEL /SELECT OTHER PAIR JMP SBOK /KEEP GOING SSEL, .-. /SELECT ROUTINE ISZ SCONTRL /WASTE JMP .-1 /SOME TIME SEL /SELECT THE PAIR NOW CLA /CLEAN UP ISZ SCONTRL /WASTE JMP .-1 /SOME TIME SDN /CLEAR DONE FLAG NOW S16, 16 /CONSTANT 0016; THIS CAN BE SKIPPED SER /CLEAR ERROR FLAG NOW SB6, 6 /CONSTANT 0006 JMP I SSEL /RETURN SCONTRL,.-. /CONTROLLER BITS ROUTINE CLA CLL /CLEAN UP TAD SCNT /GET CURRENT COUNT AND S14/(14) /JUST PAIR BITS RTR;RAR /MOVE OVER SZA CLA /SKIP IF RX50 QUAD TAD S4000/(4000) /ELSE SELECT RX01/RX02 QUAD JMP I SCONTRL /RETURN FOR PAIR DISPOSITION BY LINK TEST S4000, 4000 /CONSTANT 4000 SCNT, 10-1 /CONTROLLER COUNTER