ASMB,R,L,C HED RTE 7900/7905 BOOTSTRAP RECONFIGURATOR * * NAME: RECON--SOFTWARE UTILITY TOOL * RELOC: 24999-16044 * SOURCE: 24999-18052 * PRGR: D.L.S. * NAM RECON,3,10 24999-16044 REV.1650 761124 ENT RECON EXT EXEC,$LIBR,$LIBX,RMPAR SUP * BEGIN EQU * SKP RECON NOP JSB RMPAR RECOVER PARAMETER DEF *+2 ONE WHICH IS THE DEF CONLU CONSOLE LU #. * LDA CONLU IF ZERO, CHANGE SZA,RSS TO ONE. LDA D1 STA CONLU JSB EXEC DISPLAY PART # DEF *+5 DEF D2 DEF CONLU DEF HEAD0 DEF D52 * RECN1 JSB EXEC GO REQUEST A TRACK. DEF *+6 DEF D4 DO SUSPENSION ON FIRST TRY. DEF ONETR DEF STTRK DEF LU# DEF SECT# * LDA STTRK IF NO TRACKS NOW, SSA,RSS ISSUE A 'RECON WAITING JMP RECN5 TRACKS' MESSAGE TO THE LDA D1 CONSOLE AND THEN IOR MSIGN REISSUE THE REQUEST STA ONETR FOR TRACKS. LDB WAITT JSB MESS JMP RECN1 * RECN5 JSB EXEC TRY TO LOCK DEF *+3 RECON INTO THE DEF D22.I PARTITION. DO DEF D1 NOT ABORT. NOP DELAY FOR CLOCK TO TICK. * JSB EXEC TRY TO READ BOOTSTRAP DEF *+7 EXTENSION. DEF D1 DEF D2 DEF BTEXT DEF D128 DEF ZERO DEF ZERO SKP * LDA BTEXT+7 CHECK IF RECONFIGURATION CPA OTA1 ALREADY DONE. JMP RECN8 YES. * LDA BTEXT+165B CHECK IF BOOTSTRAP CPA DUMB1 EXTENSION IS JMP RECN9 VALID. * RECN7 LDB UNDBT 'UNDEFINED BOOTSTRAP EXTENSION' REC71 JSB MESS JMP REC15 * RECN8 LDB RCNDN 'BOOTSTRAP RECONFIGURATION ALREADY DONE' JSB MESS JMP REC10 * RECN9 LDB BTEXT+143B CHECK IF BASE TRACK(7900) OR SZB,RSS CYLINDER(7905) IS ZERO. JMP REC91 ERROR IF NONZERO. LDB NZEBT 'BOOTSTRAP EXTENSION DOES NOT BEGIN JMP REC71 WITH TRACK 0(7900) OR CYLINDER 0(7905). * REC91 LDA BTEXT+23B CPA LSR.7 SET DISC FLAG TO ONE JMP REC95 FOR 7905. CPA STA.B SET DISC FLAG TO ZERO RSS FOR 7900. JMP RECN7 IF NEITHER, THEN ERROR. SKP * * PATCH UP THE 7900 DUMMY, RECONFIGURATION PASS 1, * AND BOOTSTRAP EXTENSION BOOTS. * LDA BTEXT+140B SET UP AND C77 RECONFIGURATION ADA M600B BOOTSTRAP ADDRESS STA CONT IOR MSIGN INCLUDING DIRECTION STA MEMAD BIT. * LDB BTEXT+151B GET 7900 UNIT # LDA SKCM0 ADD TO IOR B SEEK COMMAND STA SKCM0 AND SAVE. * LDA RDCM0 ADD TO IOR B SEEK COMMAND STA RDCM0 AND SAVE. * STB UNIT0 SAVE AS UNIT. * LDA DENTY WRITE OUT THE 7900 STA DUMBT DUMMY BOOT. * LDA STTRK SET UP STA DKADD TRACK WORD. CLA SET HEAD/SECTOR WORD STA HDSCT TO 0(HEAD 0, SECTOR 0). * LDB DMK31 GET 7900 DEVICE TYPE FOR RECON BOOT. * LDA D00P1 GET 7900 RECON PASS 1 BOOT ADDRESS. JMP RE100 SKP * * PATCH UP CONSTANTS IN 7905 DUMMY, RECONFIGURATION * PASS 1 AND BOOT ENTENSION BOOTS. * REC95 LDA BTEXT+145B SET UP STARTING ADDRESS AND C77 OF RECONFIGURATION BOOT ADA M600B AND ALSO DMA DESTINATION STA CONT5 ADDRESS WITH THE DIRECTION IOR MSIGN BIT SET FOR 'INTO MEMORY'. STA MADD5 * LDA DWAK GET THE DESTINATION ADDRESS OF STA DEST THE 10 7905 CONTROL WORDS. LDB DB147 GET THE SOURCE ADDRESS IN THE * LOOP INB BOOT EXT FOR THE 10 7905 CONTROL LDA B,I WORDS. STA DEST,I MOVE THE 10 7905 ISZ DEST CONTROL WORDS FROM CPB DB151 THE BOOT EXTENSION TO RSS THE DUMMY BOOT. JMP LOOP * LDA DE795 GET THE ADDRESS OF THE 7905 STA DUMBT DUMMY BOOT AND SAVE. * LDA STTRK GET THE TRACK CLB AND CONVERT TO DIV BTEXT+141B ACYLINDER ADDRESS. STA CYLAI SAVE THE CYLINDER ADDRESS. STA CYLA3 BLF,BLF POSITION HEAD TO STB HDA BITS 8-12 AND STB HDA3 * LDB DMK32 GET DEVICE TYPE OF 7905. LDA D05P1 GET 7905 RECON PASS 1 ENTRY POINT. SKP * * PATCH UP RECONFIGURATION BOOT PASS 2 AND WRITE * ALL BOOTSTRAPS TO THE DISC. * RE100 STA DREBT SAVE ADDRESS OF PASS 1 BOOT. STB DMASK SAVE DISK TYPE. * LDA DPAS2 FORCE BOOTSTRAP EXTENSION STA JMP3I TO RETURN TO RECON PASS 2. * JSB EXEC WRITE RECONFIGURATION DEF *+7 BOOT PASS DEF D2 ONE TO DEF LU# DISC DREBT DEF * DEF D128 DEF STTRK DEF ZERO NOP DELAY FOR CLOCK TO TICK. * JSB EXEC WRITE RECONFIGURATION DEF *+7 BOOT PASS DEF D2 TWO TO DEF LU# DISC. DEF PASS2 DEF D256 DEF STTRK DEF D2 NOP DELAY FOR CLOCK TO TICK. * JSB EXEC WRITE BOOT EXTENSION DEF *+7 TO DISC. DEF D2 DEF LU# DEF BTEXT DEF D128 DEF STTRK DEF D6 NOP DELAY FOR CLOCK TO TICK. * JSB $LIBR GO NOP PRIVILEGED. * LDB XEQT ASSIGN TRACK 0 STB TAT,I TO RECON. SKP Pl JSB $LIBX GO DEF *+1 UNPRIVILEGED. DEF *+1 * JSB EXEC WRITE DUMMY BOOTSTRAP DEF *+7 INTO TRACK ZERO SECTOR DEF D2 ZERO. DEF D2 DUMBT DEF * DEF D128 DEF ZERO DEF ZERO NOP DELAY FOR CLOCK TO TICK. * LDA TAT LDB LU# COMPUTE ENTRY IN SLB TRACK ASSIGNMENT ADA TATSD TABLE AND SAVE. ADA STTRK STA TRKAT * CLB COMPUTE ADA D128 POSITION DIV D64 OF THIS STB OFSET TAT CLB ENTRY DIV D96 ON THIS STB TATSE DISC. STA TATTK * JSB $LIBR GO PRIVILEGED. NOP * ADA TAT ASSIGN LDB XEQT TO STB A,I RECON. * JSB $LIBX GO UNPRIVILEGED. DEF *+1 DEF *+1 NOP * JSB EXEC GO READ DEF *+7 THIS DEF D1 PORTION DEF LU# OF TAT. DEF DBUFF DEF D64 DEF TATTK DEF TATSE SKP LDB DDBUF SET DISK ADB OFSET TAT ENTRY LDA MSIGN TO STA B,I SYSTEM. * JSB EXEC WRITE DEF *+7 TAT DEF D2 BACK DEF LU# TO DDBUF DEF DBUFF DISK. DEF D64 DEF TATTK DEF TATSE NOP * JSB $LIBR GO PRIVILEGED. NOP * LDA TATTK ASSIGN TAT ENTRY ADA TAT TRACK, NEW BOOTS LDB MSIGN TRACK AND BOOT STB A,I EXTENSION TRACK STB TRKAT,I TO THE SYSTEM. STB TAT,I * JSB $LIBX GO UNPRIVILEGED. DEF *+1 DEF *+1 * REC10 LDB RCNFN 'RECON FINISHED' RSS * REC15 LDB RCNAB 'RECON ABORTED' JSB MESS * JSB EXEC UNLOCK PROGRAM DEF *+3 FROM CORE. IGNORE DEF D22.I ABORTIONS. DEF ZERO NOP IGNORE ERRORS. * JSB EXEC TERMINATE PROGRAM. DEF *+2 DEF D6 * SKP * ******************************************************* * * SUBROUTINE MESS: * * MESS WILL OUTPUT TO THE CONSOLE A MESSAGE. * * CALLING SEQUENCE: * LDB ADDD' * JSB MESS * * WHERE: * ADD DEF *+1 * DEF N * ASC N,MESSAGE * ***************************************************************** * MESS NOP LDA B GET BUFFER LENGTH STA IBUFL ADDRESS AND STORE. INB LDA B GET BUFFER ADDRESS STA IBUFR AND STORE. JSB EXEC DEF *+5 GO ISSUE MESSAGE. DEF D2 DEF CONLU IBUFR DEF * IBUFL DEF * JMP MESS,I SKP * * CONSTANTS, VARIABLES, MESSAGES AND BUFFERS * A EQU 0 B EQU 1 * ZERO DEC 0 D1 DEC 1 D2 DEC 2 D4 DEC 4 D6 DEC 6 D52 DEC 52 D64 DEC 64 D96 DEC 96 D128 DEC 128 D256 DEC 256 D22.I OCT 100026 C77 OCT 177700 M600B OCT 177200 * TRKAT NOP OFSET NOP TATSE NOP TATTK NOP * MSIGN OCT 100000 ONETR DEC 1 STTRK NOP LU# NOP SECT# NOP DMK31 OCT 14400 DMK32 OCT 15000 DEST NOP * LSR.7 OCT 101047 'LSR 7' STA.B OCT 070001 'STA B' * D00P1 DEF RBT00 D05P1 DEF RBT05 * DENTY DEF ENTRY DE795 DEF E7905 * DWAK DEF WAK DB147 DEF BTEXT+126B DB151 DEF BTEXT+140B * CONLU BSS 5 BUFFER FOR RMPAR. * WAITT DEF *+1 DEC 13 ASC 13,RECON WAITING FOR TRACKS. * RCNFN DEF *+1 DEC 8 ASC 8,RECON FINISHED. * RCNAB DEF *+1 DEC 7 ASC 7,RECON ABORTED. * RCNDN DEF *+1 DEC 20 ASC 20,BOOTSTRAP RECONFIGURATION ALREADY DONE. * UNDBT DEF *+1 DEC 15 ASC 15,UNDEFINED BOOTSTRAP EXTENSION. * NZEBT DEF *+1 DEC 38 ASC 17,BOOTSTRAP EXTENSION DOES NOT BEGIN OCT 6412 ASC 20, AT TRACK 0(7900) OR CYLINDER 0(7905). HEAD0 ASC 26, 24999-16044 1752 SOFTWARE SEVICE KIT SYSTEM 1000 SKP * ***************************************************************** * * 7900 DUMMY BOOTSTRAP * ***************************************************************** * BSS BEGIN+700B-* * ENTRY CLA IF SOMEONE JUMPS DIRECTLY HERE, ABS JMP-L+OTA1 * OCT 17506 * SPECIAL OCT 17506 * WORDS OCT 17506 * FOR OCT 124003 * SWTCH OCT 2011 * TO CHECK. * OTA1 OTA 1 THEN CLEAR SW.REG. * RSTRT ABS LDB-L+MEMAD GET STARTING ADDRESS OF CLC 2 RECONFIGURATION BOOT AND SEND. ABS JMP-L+CONSW * OCT 3304 * SPECIAL OCT 40001 * WORDS OCT 5225 * FOR OCT 106702 * SWTCH OCT 106602 * TO CHECK. * CONSW OTB 2 ABS LDA-L+WDCNT GET WORD COUNT, STC 2 SET DMA AND OTA 2 SEND IT. * ABS LDA-L+DKADD GET TRACK ADDRESS DSKDA OTA 0 AND SENT IT. DSKDB STC 0,C * ABS LDA-L+SKCM0 GET SEEK COMMAND DSKCA CLC 1 AND SEND IT. DSKCB OTA 1 DSKCC STC 1,C START SEEK. * ABS LDB-L+HDSCT GET HEAD-SECTOR. DSKDC SFS 0 WAIT FOR TRACK. ABS JMP-L+DSKDC * DSKDD OTB 0 SEND HEAD/SECTOR COMMAND. DSKDE STC 0,C ABS LDA-L+RDCM0 GET READ COMMAND. DSKCD SFS 0 WAIT FOR SEEK. ABS JMP-L+DSKCD * RSS SKIP OVER BBDL ENTRY ADDRESS. ABS 2000B+JMPIN-L * DSKCE OTA 1 SEND READ COMMAND. DSKDF STC 0,C SET UP FOR READ. DSKCF CLC 1 STC 6,C START DMA A DSKCG STC 1,C START READ. DSKCH SFS 1 WAIT FOR END. ABS JMP-L+DSKCH * STF 6 DISABLE DMA DSKDG STC 0,C FOR STATUS. ABS LDA-L+UNIT0 DSKCI CLC 1 GET STATUS DSKCJ OTA 1 ON UNIT. DSKCK STC 1,C DSKDH SFS 0 WAIT FOR STATUS. ABS JMP-L+DSKDH * ABS LDB-L+CH.0 SET TO DISC CHANNEL. DSKDI LIA 0 SLA,RSS ABS JMP-L+CONT+I+I HLT 31B ABS JMP-L+RSTRT * * DATA SECTION * MEMAD OCT 100000 MEMORY ADDRESS FOR RECON & BOOT EXTENSION. DKADD NOP TRACK ADDRESS OF RECON & BOOT EXTENSION. SKCM0 OCT 30000 SEEK COMMAND. HDSCT NOP HEAD/SECTOR WORD FOR RECON & BOOT EXTENSION. RDCM0 OCT 20000 READ COMMAND. UNIT0 NOP UNIT OF DUMMY BOOT. CONT NOP STARTING ADDRESS OF RECON BOOT. CH.0 NOP WDCNT OCT 177000 -WORD COUNT FOR RECON & BOOT EXTENSION. B77.0 OCT 77 C77.0 OCT 177700 * DUMB2 ABS LDA-L+JMPIN+I+I GET DISC S.C. ABS AND-L+B77.0 FROM PROTECTED ABS STA-L+CH.0 BOOT AND SAVE. HLT 77B EXECUTE HLT 77. * ABS LDA-L+DSKDA 'OTA 0' ABS AND-L+C77.0 ABS ADA-L+CH.0 ABS STA-L+DSKDA * INA ABS STA-L+DSKCB 'OTA 1' ABS STA-L+DSKCE ABS STA-L+DSKCJ * ABS LDA-L+DSKDB 'STC 0,C' ABS AND-L+C77.0 ABS ADA-L+CH.0 ABS STA-L+DSKDB ABS STA-L+DSKDE ABS STA-L+DSKDF ABS STA-L+DSKDG * INA ABS STA-L+DSKCC 'STC 1,C' ABS STA-L+DSKCG ABS STA-L+DSKCK * ABS LDA-L+DSKCA 'CLC 1' ABS AND-L+C77.0 ABS ADA-L+CH.0 ABS STA-L+DSKCA ABS STA-L+DSKCF ABS STA-L+DSKCI * ABS LDA-L+DSKDC 'SFS 0' NOP * SPECIAL WORD FOR SWTCH TO CHECK. ABS AND-L+C77.0 ABS ADA-L+CH.0 ABS STA-L+DSKDC ABS STA-L+DSKCD ABS STA-L+DSKDH * INA ABS STA-L+DSKCH 'SFS 1' * ABS LDA-L+DSKDD 'OTB 0' ABS AND-L+C77.0 ABS ADA-L+CH.0 ABS STA-L+DSKDD * ABS LDA-L+DSKDI 'LIA 0' ABS AND-L+C77.0 ABS ADA-L+CH.0 ABS STA-L+DSKDI ABS JMP-L+RSTRT BSS 0 FORCE JMPIN AT 164B RELATIVE. * JMPIN NOP JSB HERE FROM ROM BOOT. ABS LDA-L+JMPIN CHECK IF CAME SZA FROM PAPER TAPE ABS JMP-L+DUMB1 OR ROM BOOT. HLT60 HLT 60 IF FROM PAPER BOOT, ABS JMP-L+HLT60 THEN HLT 60. * DUMB1 STF 6 CLEAN UP DMA AND CLC 0,C THE I/O SYSTEM. CLA CLEAR SWITCH OTA 1 REGISTER. ABS JMP-L+DUMB2 GO DO HLT 77. * L EQU ENTRY-11B SKP * ***************************************************************** * * 7905 DUMMY BOOTSTRAP * ***************************************************************** * BSS BEGIN+1100B-* * E7905 CLA ABS JMP-N+E7951 * OCT 17506 * SPECIAL OCT 17506 * CHECK OCT 17506 * WORDS OCT 124003 * FOR OCT 2011 * SWTCH. * E7951 OTA 1 * RTRT5 ABS LDB-N+MADD5 SET MEMORY ADDRESS CLC 2 AND DIRECTION BIT ABS JMP-N+E7952 * OCT 3304 * SPECIAL OCT 40001 * CHECK OCT 5225 * WORDS OCT 106702 * FOR OCT 106602 * SWTCH. * E7952 OTB 2 AND SEND. * ABS LDA-N+WDCT5 GET WORD COUNT STC 2 SET DMA AND OTA 2 SEND IT. * ABS LDB-N+D#PRM GET THE COMMAND SLOOP INB ADDRESS AND LDA B,I THE COMMAND. RAL,CLE,SLA,ERA IF SIGN BIT DSK10 CLC DC SET THEN SEND DSK11 OTA DC,C 'COMMAND IS COMING' ABS CPB-N+A#DMA IF DMA, THEN STC 6,C START IT. DSK12 STC DC ALLOW ATENTION. SEZ,RSS IF NOT A COMMAND, THEN ABS JMP-N+STDMA DON'T WAIT FOR FLAG. * DSK13 SFS DC WAIT FOR FLAG. ABS JMP-N+*-1 STDMA STF 6 STOP DMA IF NEEDED. NOP RSS SKIP OVER BBDL ABS 2000B+INJMP-N ENTRY ADDRESS. ABS CPB-N+A#END END OF LOOP? RSS YES, SO SKIP. ABS JMP-N+SLOOP NO, SO GO AGAIN. * DSK14 LIA DC,C GET STATUS 1. DSK15 SFS DC WAIT FOR FLAG. ABS JMP-N+*-1 DSK16 LIB DC,C GET STATUS 2. ABS LDB-N+CH.5 SET TO DISC CHANNEL. ABS AND-N+C174B ISOLATE, IF NO SZA,RSS ERRORS, THEN EXECUTE ABS JMP-N+CONT5+I+I RECONFIGURATION BOOT. * ABS CPA-N+C174B ELSE, IF ATTENTION RSS THEN SKIP. HLT 31B OTHERWIZE, HLT 31. CONTT ABS JMP-N+RTRT5 TRY AGAIN. * * DATA SECTION * C174B OCT 177400 MADD5 OCT 100000 MEMORY ADDRESS AND DIRECTION BIT. WDCT5 OCT 177000 -WORD COUNT OF RECONFIGURATION & BOOT EXT. * WAK OCT 113000 SKCMD OCT 101200 CYLAI NOP HDA NOP AD#RC OCT 106000 CYLA3 NOP HDA3 NOP FILM# OCT 107404 R#CMD OCT 102400 S#TAC OCT 101400 D#PRM ABS WAK-N-1+2000B A#DMA ABS R#CMD-N+2000B A#END ABS S#TAC-N+2000B B77.5 OCT 77 CH.5 NOP IORMK OCT 4000 C77.5 OCT 177700 CONT5 NOP * DUM52 ABS LDA-N+INJMP+I+I ABS AND-N+B77.5 ABS STA-N+CH.5 HLT 77B * ABS LDA-N+DSK10 'CLC DC' ABS AND-N+C77.5 ABS ADA-N+CH.5 ABS STA-N+DSK10 * ABS LDA-N+DSK11 'OTA DC,C' ABS AND-N+C77.5 ABS ADA-N+CH.5 ABS STA-N+DSK11 * ABS LDA-N+DSK12 'STC DC' ABS AND-N+C77.5 ABS ADA-N+CH.5 ABS STA-N+DSK12 * ABS LDA-N+DSK13 'SFS DC' ABS AND-N+C77.5 ABS ADA-N+CH.5 ABS STA-N+DSK13 ABS STA-N+DSK15 * ABS LDA-N+DSK14 'LIA DC,C' ABS AND-N+C77.5 ABS JMP-N+E7953 * OCT 2 * SPECIAL WORDS NOP * FOR SWTCH TO NOP * TO CHECK. * E7953 ABS ADA-N+CH.5 ABS STA-N+DSK14 ABS IOR-N+IORMK 'LIA DC,C' ABS STA-N+DSK16 * ABS JMP-N+RTRT5 * BSS 11 FORCE INJMP AT 164B RELATIVE. * INJMP NOP JSB FROM ROM OR PROTECTED BOOT. ABS LDA-N+INJMP CHECK IF CAME SZA FROM PAPER TAPE ABS JMP-N+DUM51 OR PRPTECTED BOOT. HLL60 HLT 60 IF FROM PAPER TAPE, ABS JMP-N+HLL60 THEN HLT 60. * DUM51 STF 6 CLEAN UP DMA AND CLC 0,C THE I-O SYSTEM. CLA CLEAR THE SWITCH OTA 1 REGISTER. ABS JMP-N+DUM52 GO DO HLT 77. * N EQU E7905-11B DC EQU 0 SKP * ***************************************************************** * * 7900 RECONFIGURATION BOOTSTRAP PASS 1 * ***************************************************************** * BSS BEGIN+1300B-* * RBT00 ABS STB-R+CHP2 SAVE DISC CHANNEL FOR PASS 2. * ABS LDA-T+DCKDA 'OTA 0' ABS AND-M+C77.1 ADA B ABS STA-T+DCKDA * INA ABS STA-T+DCKCB 'OTA 1' ABS STA-T+DCKCE ABS STA-T+DCKCJ * ABS LDA-T+DCKDB 'STC 0,C' ABS AND-M+C77.1 ADA B ABS STA-T+DCKDB ABS STA-T+DCKDE ABS STA-T+DCKDF ABS STA-T+DCKDG * INA ABS STA-T+DCKCC 'STC 1,C' ABS STA-T+DCKCG ABS STA-T+DCKCK * ABS LDA-T+DCKCA 'CLC 1' ABS AND-M+C77.1 ADA B ABS STA-T+DCKCA ABS STA-T+DCKCF ABS STA-T+DCKCI * ABS LDA-T+DCKCD 'SFS 0' ABS AND-M+C77.1 ADA B ABS STA-T+DCKCD ABS STA-T+DCKDC ABS STA-T+DCKDH * INA ABS STA-T+DCKCH 'SFS 1' * ABS LDA-T+DCKDD 'OTB 0' ABS AND-M+C77.1 ADA B ABS STA-T+DCKDD * ABS LDA-T+DCKDI 'LIA 1' ABS AND-M+C77.1 ADA B INA ABS STA-T+DCKDI * ABS JMP-T+BTEXT GO TO BOOT EXTENSION. * M EQU RBT00-700B * C77.1 OCT 177700 SKP * ******************************************************* * * 7905 RECONFIGURATION BOOT PASS 1 * ******************************************************* * BSS BEGIN+1400B-* * RBT05 ABS STB-R+CHP2 SAVE DISC CHANNEL FOR PASS 2. * ABS LDA-T+DCK10 'CLC DC' ABS AND-P+C77.6 ADA B ABS STA-T+DCK10 * ABS LDA-T+DCK11 'OTA DC,C' ABS AND-P+C77.6 ADA B ABS STA-T+DCK11 * ABS LDA-T+DCK12 'STC DC' ABS AND-P+C77.6 ADA B ABS STA-T+DCK12 * ABS LDA-T+DCK13 'SFS DC' ABS AND-P+C77.6 ADA B ABS STA-T+DCK13 ABS STA-T+DCK15 * ABS LDA-T+DCK14 'LIA DC,C' ABS AND-P+C77.6 ADA B ABS STA-T+DCK14 * ABS LDA-T+DCK16 'LIB DC,C' ABS AND-P+C77.6 ADA B ABS STA-T+DCK16 * ABS JMP-T+BTEXT GO TO BOOT EXTENSION. * C77.6 OCT 177700 * P EQU RBT05-700B SKP * ***************************************************************** * * RECONFIGURATION BOOTSTRAP PASS 2 * ***************************************************************** * BSS BEGIN+1500B-* * PASS2 ABS LDA-R+DMASK SCAN FOR FIRST ABS JSB-R+SCAN DVR3X DEVICE. ABS STA-R+DKEQT * LDA INTRB STORE EQT ABS ADA-R+M6 TABLE ADDRESS ABS ADA-R+CHP2 INTO INTERRUPT ABS STA-R+TEMP0 ABS STB-R+TEMP0+I+I TABLE. ABS ISZ-R+TEMP0 * CLE SET E=0 IF ABS LDA-R+DMASK 7900, E=1 IF ABS CPA-R+B15K 7905. CCE * SEZ,RSS IF 7900, THEN STORE EQT ADDRESS ABS STB-R+TEMP0+I+I IN SECOND INTRB LOCATION. * LDB DRT STORE NEW INB S.C. INTO LDA B,I DRT ENTRY ABS AND-R+C77P2 TWO. ABS IOR-R+DKEQT STA B,I * SEZ IF 7900, THEN ABS JMP-R+PAS10 PUT A 'CLC SC' ABS LDA-R+CLCSC IN THE FIRST ABS IOR-R+CHP2 TRAP CELL. ABS STA-R+CHP2+I+I ABS ISZ-R+CHP2 * PAS10 ABS LDA-R+.5+I+I GET 'JSB $CIC,I' FROM OLD DISC ABS STA-R+JCICI TRAP CELL AND SAVE. PUT INTO NEW ABS STA-R+CHP2+I+I DISC BASE PAGE TRAP CELL. * LIA 1 GET NEW S.C. FOR ABS AND-R+B77P2 CONSOLE FROM S-REG SZA,RSS BITS 0-5. ABS JMP-R+PAS21 IF ZERO, SKIP. * ABS STA-R+CHP2 SAVE S.C. AND ABS LDA-R+CHSC3 CONFIGURE I-O ABS IOR-R+CHP2 INSTRUCTIONS. ABS STA-R+CHSC3 ABS LDA-R+CHSC4 ABS IOR-R+CHP2 ABS STA-R+CHSC4 ABS LDA-R+CHSC2 ABS IOR-R+CHP2 ABS STA-R+CHSC2 * ABS LDA-R+CHMRS SEND MASTER RESET.FLAG SET=12966A. CHSC2 CLF 0 CHSC3 OTA 0 CHSC4 SFS 0 * CLE,RSS IF NOT 12966A CARD, SET E=0. CCE IF 12966A CARD, SET E=1. * LDB SYSTY GET ABS ADB-R+D4.0 OLD LDA B,I DEVICE ABS AND-R+TMASK TYPE. ABS CPA-R+B2400 ABS JMP-R+PAS29 SEZ ABS JMP-R+PAS28 OLD=00, NEW=05. ABS JMP-R+PAS27 OLD=00, NEW=00. * PAS29 SEZ ABS JMP-R+PAS27 OLD=05, NEW=05. PAS28 CLA,SEZ OLD=05, NEW=00. ABS LDA-R+B2400 SCAN FOR 00 OR ABS JSB-R+SCAN 05 DEVICE. * STB SYSTY SETUP BASE PAGE CONSOLE WORD. * STA DRT,I FIX LU#1. * PAS25 LDA INTRB FIX INTERRUPT ABS ADA-R+M6 TABLE ABS ADA-R+CHP2 ENTRY. STB A,I * ABS LDA-R+JCICI ABS STA-R+CHP2+I+I * PAS21 LIA 1 GET NEW S.C.FOR ALF,ALF TBG FROM S-REG RAL,RAL BITS 6-11. ABS AND-R+B77P2 SZA,RSS IF ZERO, ABS JMP-R+PAS22 SKIP. STA TBG CLB CLEAR LDA INTRB TBG ABS ADA-R+M6 INTERRUPT ADA TBG TABLE STB A,I LOCATION. * ABS LDA-R+JCICI SET UP TBG STA TBG,I TRAP CELL. * PAS22 LIA 1 GET NEW S.C. ALF FOR PRIVILEGE ABS AND-R+B17P2 INTERRUPT CARD. SZA,RSS IF ZERO, ABS JMP-R+PAS23 SKIP. * ABS CPA-R+B10 IF NEW S.C=10 CLA THEN CLEAR STA DUMMY DUMMY. * ABS LDB-R+JCICI PUT 'JSB $CIC,I' INTO BASE STB DUMMY,I PAGE TRAP CELL. PAS23 JMP 3,I GOTO SYS.(FINALLY,HOPE SHE FLIES). * PAS27 ABS ADB-R+DM1 CURRENT SYSTEM CONSOLE IS ALRIGHT LDA B,I EXCEPT FOR THE CHANNEL IN EQT ABS AND-R+C77P2 WORD 4. FIX UP WORD ABS IOR-R+CHP2 4 THEN RETURN AND STA B,I FIX UP BASE PAGE ABS ADB-R+DM3 ABS JMP-R+PAS25 TRAP CELL AND INTRB. * CHMRS OCT 150077 MASTER RESET FOR 12966A CARD. CLCSC OCT 106700 'CLC SC' JCICI NOP DMASK NOP SET UP BY RECON. DKEQT NOP OLDCH NOP SET BY SCAN. CHP2 NOP B15K OCT 15000 B17P2 OCT 17 B77P2 OCT 77 C77P2 OCT 177700 B10 OCT 10 B2400 OCT 2400 M6 DEC -6 .5 DEC 5 DPAS2 ABS JMP-R+PASS2 SKP * **************************************************************** * * SCAN SUBROUTINE: * * ENTRY: * :=BITS 8-13 = DEVICE TYPE. * JSB SCAN * * EXIT: * :=EQT# * :=EQT1 ADDRESS. * **************************************************************** * SCAN NOP PW ABS STA-R+TEMP0 SAVE DEVICE TYPE MASK. LDB EQT# SET CMB,INB UP ABS STB-R+COUNT COUNT. LDB EQT POSITION TO FIRST ABS ADB-R+D4.0 EQT WORD 5. * SCAN1 LDA B,I GET DEVICE TYPE ABS AND-R+TMASK FROM EQT WORD 5. ABS CPA-R+TEMP0 IF CORRECT TYPE, ABS JMP-R+SCAN2 THEN EXIT. ABS ADB-R+D15.0 POSITION TO NEXT ABS ISZ-R+COUNT EQT WORD 5. ABS JMP-R+SCAN1 CONTINUE SCAN. HLT 61 IF NO DEVICE, ABS JMP-R+*-1 HLT 61. * SCAN2 ABS ADB-R+DM1 LDA B,I ABS AND-R+B77P2 GET OLD ABS STA-R+OLDCH CHANNEL AND LDA B,I SAVE IT. ABS AND-R+C77P2 FIX CHANNEL ABS IOR-R+CHP2 IN EQT WORD 4. STA B,I ABS ADB-R+DM3 POSITION TO EQT1. ABS LDA-R+COUNT COMPUTE ADA EQT# EQT # INA AND ABS JMP-R+SCAN+I+I RETURN. * TEMP0 NOP TMASK OCT 37400 COUNT NOP D4.0 DEC 4 D15.0 DEC 15 DM1 DEC -1 DM3 DEC -3 * R EQU PASS2-1100B SKP * ***************************************************************** * * BOOTSTRAP EXTENSION * ***************************************************************** * BSS BEGIN+2000B-* * BTEXT EQU * * BSS 200B * JMP3I EQU BTEXT+5B * DCKDA EQU BTEXT+60B DCKDB EQU BTEXT+61B DCKCA EQU BTEXT+63B DCKCB EQU BTEXT+64B DCKCC EQU BTEXT+65B DCKDC EQU BTEXT+74B DCKDD EQU BTEXT+76B DCKDE EQU BTEXT+77B DCKCD EQU BTEXT+101B DCKCE EQU BTEXT+103B DCKDF EQU BTEXT+104B DCKCF EQU BTEXT+105B DCKCG EQU BTEXT+107B DCKCH EQU BTEXT+110B DCKDG EQU BTEXT+113B DCKCI EQU BTEXT+115B DCKCJ EQU BTEXT+116B DCKCK EQU BTEXT+117B DCKDH EQU BTEXT+120B DCKDI EQU BTEXT+122B * DCK10 EQU BTEXT+72B DCK11 EQU BTEXT+73B DCK12 EQU BTEXT+76B DCK13 EQU BTEXT+101B DCK14 EQU BTEXT+107B DCK15 EQU BTEXT+110B DCK16 EQU BTEXT+112B * BENT EQU BTEXT+164B * T EQU BTEXT-1500B SKP * ***************************************************************** * * DISC BUFFER FOR TAT * **************************************************************** * DBUFF BSS 128 * * * CPB EQU 056000B CPA EQU 052000B LDB EQU 066000B STB EQU 076000B ADB EQU 046000B JSB EQU 016000B ISZ EQU 036000B LDA EQU 062000B STA EQU 072000B ADA EQU 042000B AND EQU 012000B XOR EQU 022000B IOR EQU 032000B JMP EQU 026000B I EQU 040000B INDIRECT BIT(CODE AS I+I) * EQT EQU 1650B EQT# EQU 1651B DRT EQU 1652B INTRB EQU 1654B TAT EQU 1656B TBG EQU 1674B SYSTY EQU 1675B XEQT EQU 1717B DUMMY EQU 1737B TATSD EQU 1756B * END RECON