100 / P?S/8 TC01/TC08 EXTENDED BOOTSTRAP 110 120 / LAST EDIT: 09-AUG-2015 15:00:00 CJL 130 140 / MAY BE ASSEMBLED WITH '/J' SWITCH SET. 150 160 / THIS IS THE BOOTSTRAP FOR ANY LOGICAL UNIT FOR P?S/8 TC01/TC08 USAGE ONLY. 170 180 / INSTRUCTIONS FOR USE: 190 200 / SET THE HIGH-ORDER THREE BITS OF THE SWITCH REGISTER TO THE DESIRED LOGICAL 210 / UNIT [THE REST OF THE BITS ARE IGNORED]. 220 230 / START AT 00200 AFTER MOUNTING A COMPATIBLE P?S/8 SYSTEM DECTAPE ON THE 240 / CORRESPONDING UNIT. P?S/8 SHOULD COME UP SHORTLY THEREAFTER. IF THE BOOTUP 250 / FAILS, THE ENTIRE PROGRAM MUST BE RELOADED; AS WITH MOST BOOTSTRAP PROCEDURES, 260 / THE CODE WILL TEND TO SELF-DESTRUCT REGARDLESS OF OUTCOME. 270 280 / TC01/TC08 EQUATED SYMBOLS. 290 300 CA= 7755 /CURRENT ADDRESS REGISTER FOR 3-CYCLE DATA BREAK 310 DTCA= 6762 /CLEAR DECTAPE "A" REGISTER 320 DTLA= 6766 /LOAD DECTAPE "A" REGISTER 330 DTLB= 6774 /LOAD DECTAPE "B" REGISTER 340 DTRA= 6761 /READ DECTAPE "A" REGISTER 350 DTRB= 6772 /READ DECTAPE "B" REGISTER 360 DTSF= 6771 /SKIP ON DECTAPE FLAG OR ERROR FLAG 370 DTXA= 6764 /XOR DECTAPE "A" REGISTER 380 WC= 7754 /WORD COUNT REGISTER FOR 3-CYCLE DATA BREAK 390 400 // P?S/8 EQUATED SYMBOLS. 410 420 SBOOT= 7600 /MONITOR RESTART ADDRESS 430 440 // END OF P?S/8 EQUATED SYMBOLS. 450 EJECT 460 / THE BOOTSTRAP CODE STARTS HERE. 470 480 *200 /CUSTOMARY STARTING ADDRESS 490 500 START, CLA!400 /CLEAN UP; GROUP II CLA NEEDED 510 CDF 00 /ENSURE FIELD 0 520 MOVLUP, TAD I FROM /GET A WORD 530 DCA I TO /PUT A WORD 540 ISZ FROM /BUMP FROM POINTER 550 ISZ TO /BUMP TO POINTER 560 ISZ MOVCNT /DONE ENOUGH MOVING? 570 JMP MOVLUP /NO, GO BACK 580 JMP I START/(SBOOT) /GO START IT UP 590 600 FROM, BUTNOW /WHERE IT IS NOW 610 TO, SBOOT /WHERE WE WANT IT 620 MOVCNT, MOVBEG-MOVEND /COUNT OF HOW MANY WORDS TO MOVE 630 EJECT 640 / MULTIPLE DRIVE BOOTSTRAP. 650 660 BUTNOW=. /WHERE BOOTSTRAP CODE IS NOW 670 680 NOPUNCH /TURN OFF BINARY OUTPUT 690 700 *SBOOT /BOOTSTRAP LOADING ADDRESS 710 720 ENPUNCH /TURN ON BINARY OUTPUT 730 740 MOVBEG= . /START OF WORDS TO MOVE 750 760 SBOOT, LAS /GET UNIT FROM SWITCHES 770 AND SRWAIT/(7000) /JUST UNIT BITS 780 TAD SR600/(600) /GET REWIND VALUE 790 JMS SRWAIT /WAIT FOR END ZONE 800 DTLB /ENSURE FIELD 0 TRANSFER 810 DCA WC /CLEAR WORD COUNT 820 TAD SR7577/(SBOOT-1) /SETUP THE 830 DCA CA /CURRENT ADDRESS 840 DTRA /GET CURRENT "A" REGISTER CONTENTS 850 TAD SR7620/(220-400) /GET READ VALUE 860 JMS SRWAIT /WAIT FOR TRANSFER 870 SR600, 600 /CONSTANT 0600 880 890 SRWAIT, 7000 /INITIALIZED FOR USE AS A CONSTANT 900 DTLA /LOAD "A" REGISTER 910 920 IFNZRO 7616-. /WAIT LOOP MUST BE HERE! 930 940 DTSF /FLAG UP? 950 JMP .-1 /NO, WAIT FOR IT 960 JMP I SRWAIT /YES, RETURN 970 980 SR7577, SBOOT-1 /CONSTANT 7577 990 SR7620, 220-400 /CONSTANT 7620 1000 1010 MOVEND=. /END OF WORDS TO MOVE 1020 1030 $ /THAT'S ALL FOLK!