/ P?S/8 TC01/TC08 EXTENDED BOOTSTRAP / LAST EDIT: 09-AUG-2015 15:00:00 CJL / MAY BE ASSEMBLED WITH '/J' SWITCH SET. / THIS IS THE BOOTSTRAP FOR ANY LOGICAL UNIT FOR P?S/8 TC01/TC08 USAGE ONLY. / INSTRUCTIONS FOR USE: / SET THE HIGH-ORDER THREE BITS OF THE SWITCH REGISTER TO THE DESIRED LOGICAL / UNIT [THE REST OF THE BITS ARE IGNORED]. / START AT 00200 AFTER MOUNTING A COMPATIBLE P?S/8 SYSTEM DECTAPE ON THE / CORRESPONDING UNIT. P?S/8 SHOULD COME UP SHORTLY THEREAFTER. IF THE BOOTUP / FAILS, THE ENTIRE PROGRAM MUST BE RELOADED; AS WITH MOST BOOTSTRAP PROCEDURES, / THE CODE WILL TEND TO SELF-DESTRUCT REGARDLESS OF OUTCOME. / TC01/TC08 EQUATED SYMBOLS. CA= 7755 /CURRENT ADDRESS REGISTER FOR 3-CYCLE DATA BREAK DTCA= 6762 /CLEAR DECTAPE "A" REGISTER DTLA= 6766 /LOAD DECTAPE "A" REGISTER DTLB= 6774 /LOAD DECTAPE "B" REGISTER DTRA= 6761 /READ DECTAPE "A" REGISTER DTRB= 6772 /READ DECTAPE "B" REGISTER DTSF= 6771 /SKIP ON DECTAPE FLAG OR ERROR FLAG DTXA= 6764 /XOR DECTAPE "A" REGISTER WC= 7754 /WORD COUNT REGISTER FOR 3-CYCLE DATA BREAK // P?S/8 EQUATED SYMBOLS. SBOOT= 7600 /MONITOR RESTART ADDRESS // END OF P?S/8 EQUATED SYMBOLS. EJECT / THE BOOTSTRAP CODE STARTS HERE. *200 /CUSTOMARY STARTING ADDRESS START, CLA!400 /CLEAN UP; GROUP II CLA NEEDED CDF 00 /ENSURE FIELD 0 MOVLUP, TAD I FROM /GET A WORD DCA I TO /PUT A WORD ISZ FROM /BUMP FROM POINTER ISZ TO /BUMP TO POINTER ISZ MOVCNT /DONE ENOUGH MOVING? JMP MOVLUP /NO, GO BACK JMP I START/(SBOOT) /GO START IT UP FROM, BUTNOW /WHERE IT IS NOW TO, SBOOT /WHERE WE WANT IT MOVCNT, MOVBEG-MOVEND /COUNT OF HOW MANY WORDS TO MOVE EJECT / MULTIPLE DRIVE BOOTSTRAP. BUTNOW=. /WHERE BOOTSTRAP CODE IS NOW NOPUNCH /TURN OFF BINARY OUTPUT *SBOOT /BOOTSTRAP LOADING ADDRESS ENPUNCH /TURN ON BINARY OUTPUT MOVBEG= . /START OF WORDS TO MOVE SBOOT, LAS /GET UNIT FROM SWITCHES AND SRWAIT/(7000) /JUST UNIT BITS TAD SR600/(600) /GET REWIND VALUE JMS SRWAIT /WAIT FOR END ZONE DTLB /ENSURE FIELD 0 TRANSFER DCA WC /CLEAR WORD COUNT TAD SR7577/(SBOOT-1) /SETUP THE DCA CA /CURRENT ADDRESS DTRA /GET CURRENT "A" REGISTER CONTENTS TAD SR7620/(220-400) /GET READ VALUE JMS SRWAIT /WAIT FOR TRANSFER SR600, 600 /CONSTANT 0600 SRWAIT, 7000 /INITIALIZED FOR USE AS A CONSTANT DTLA /LOAD "A" REGISTER IFNZRO 7616-. /WAIT LOOP MUST BE HERE! DTSF /FLAG UP? JMP .-1 /NO, WAIT FOR IT JMP I SRWAIT /YES, RETURN SR7577, SBOOT-1 /CONSTANT 7577 SR7620, 220-400 /CONSTANT 7620 MOVEND=. /END OF WORDS TO MOVE $ /THAT'S ALL FOLK!