ASMB,L HED SERCH -- 09611-16015 A SUBROUTINES OF T6940 * * * * * S E R C H -- SYSTEM LIST SEARCH AND MODIFY * * * * * SOURCE TAPE: 09611-18015 REV A * BINARY RELOC TAPE: 09611-16015 REV A * MANUAL: O9611-90010 JUNE, 1975 * AUTHOR: JULIA A. CATES * * NAM: SERCH * ENTRY POINTS: SERCH, LUCHK, DSRCH * * "SERCH" SEARCHES THROUGH THE SYSTEM LIST TO SEE IF * "SENSE" IS SYSTEM RESIDENT. IF "SENSE" IS NOT FOUND, * MODE <= 1, AND THE VERIFICATION PROGRAM WILL NOT * OPERATE IN THE SENSE MODE. IF "SENSE" IS FOUND, * "SERCH" LOOKS FOR THE ID SEGMENT ADDRESS OF THE * USER'S ALARM--INTERRUPT HANDLING PROGRAM. "SERCH" * WILL SAVE ITS ADDRESS, SO THAT "DSRCH" MAY REPLACE * IT IN THE DRIVER'S TABLE AT THE COMPLETION OF "T6940". * "SERCH" STORES THE ID SEGMENT ADDRESS OF "SENSE" IN THE * DRIVER'S TABLE, SO THAT THE DRIVER WILL SCHEDULE "SENSE" * TO PROCESS EVENT SENSE INTERRUPTS. * NAM SERCH,7 09611-16015 A 75161 SUBR OF T6940 ENT SERCH,LUCHK,DSRCH EXT EXEC,.DIO.,.IOI.,.DTA.,$LIBR,$LIBX,.ENTR SUP * * MPLU NOP MULTIPROGRAMMER LOGICAL UNIT # TTYLU NOP OUTPUT LIST DEVICE - USED FOR MESSAGES. SCODE NOP I/O SLOT NUMBER OF THE 6940. DVRNO NOP SPECIFIES DRIVER 61 OR DRIVER 72 MODE NOP MODE: 0 - SENSE IS CONFIGURED IN DRIVER. * 1 - NO SENSE PROGRAM FOUND. * -1 - INTERRUPT TABLE ENTRY IS 0. * SERCH NOP POINT OF ENTRY. JSB .ENTR RETRIEVE PARAMETERS. DEF MPLU CLA STA MODE,I ADA TTYLU,I STA ICNWD * * SERCH CHECKS THAT THE INTERRUPT TABLE HAS A POSITIVE * ENTRY - THE ADDRESS OF THE 6940 DRIVER EQT TABLE. * ITABL LDA INTBA FIND THE LOCATION OF THE INTERRUPT ADA SCODE,I TABLE ENTRY FOR THE 6940. ADA MIN6 STA INTBL LDA INTBL,I IS AN ALARM PROGRAM OR DRIVER ADDRESS PRESENT? STA ICNTN CMA,INA SSA,RSS JMP EMPTY NO ALARM PROGRAM OR DRIVER ADDRESS. SKP * * "SERCH" LOOKS THROUGH THE KEYWORD BLOCK FOR THE ID * SEGMENT ADDRESS OF "SENSE". KWORD LDA KEYWD FIRST WORD ADDRESS OF KEYWORD TABLE STA KYTBL NXTID LDB KYTBL,I ADDRESS OF NEXT ID SEGMENT STABL STB IDADR SZB,RSS AT END OF KEYWORD BLOCK? JMP NOSNS YES, NO SENSE PROGRAM FOUND. ADB .12 NO, CHECK NEXT PROGRAM NAME. STB NAME ADDRESS OF PROGRAM NAME IN ID SEGMENT LDA NAME,I CPA ASCSE RSS JMP NEXT IS ISZ NAME LDA NAME,I THE CPA ASCNS RSS PROGRAM JMP NEXT ISZ NAME NAME LDA NAME,I AND MASK "SENSE"? CPA ASCE JMP FOUND NEXT ISZ KYTBL JMP NXTID * * SERCH HAS FOUND THE ID SEGMENT ADDRESS OF "SENSE". * SERCH NEXT LOOKS FOR THE ID SEGMENT ADDRESS OF THE * USER'S INTERRUPT HANDLING PROGRAM ("ALARM") IN THE * 6940 DRIVER'S EQT TABLE. * FOUND LDA MPLU,I ADA MIN1 ADA DRT FROM THE DEVICE REFERENCE TABLE LDA A,I FIND THE EQT #. AND MSK77 ADA MIN1 LDB A \ ALF \ THESE INSTRUCTIONS MULTIPLY CMB,INB / THE EQT # BY 15. ADB A / ADB EQTA STB EQTBL ADB .12 FIND THE 13TH ENTRY OF THE EQT TABLE. LDA DVRNO,I AND RCOD2 IS THE DRIVER # 61 OR 72? SZA DVR72 LDB B,I DRIVER 72: ALARM ADDR IS IN DRIVER'S TABLE STORE STB LOCAT DRIVER 61: ALARM ADDR IS IN EQT ENTRY 13 LDA LOCAT,I STA CNTNT SKP * * SERCH PLACES THE ID SEGMENT ADDRESS OF "SENSE" IN THE * 6940 DRIVER'S TABLE. * RPLAC JSB $LIBR NOP LDA IDADR STA LOCAT,I JSB $LIBX DEF *+1 DEF *+1 DSPLY CLA ADA ICNWD CLB JSB .DIO. DEF TEXTA DEF RTRN1 LDA CNTNT THE ID SEGMENT ADDRESS OF ALARM IS ... JSB .IOI. LDA LOCAT THE ADDRESS IS STORED AT ... JSB .IOI. JSB .DTA. RTRN1 JMP SERCH,I * NOSNS CLA,INA NO SENSE PROGRAM FOUND. STA MODE,I MODE <= 1 RTRN2 JMP SERCH,I * SKP * * * CONSTANTS AND VARIABLES. * INTBA EQU 1654B FWA OF INTERRUPT TABLE. DRT EQU 1652B ADDRESS OF DEVICE REFERENCE TABLE EQTA EQU 1650B ADDRESS OF EQUIPMENT TABLE KEYWD EQU 1657B FWA OF KEYWORD BLOCK. A EQU 0 B EQU 1 ICNTN NOP STORAGE FOR INTERRUPT TABLE CONTENTS. CNTNT NOP CONTENTS OF THE 13TH ENTRY OF THE 6940 * EQT TABLE. LOCAT NOP STORAGE LOCATION OF THE ID SEGMENT * ADDRESS OF THE USER'S ALARM PROGRAM. EQTBL NOP LOCATION OF EQT TABLE FOR THE 6940 ICNWD NOP CONTROL INFORMATION WORD FOR EXEC CALLS. INTBL NOP LOCATION OF INTERRUPT TABLE ENTRY. EQT13 NOP THE 13TH ENTRY OF THE 6940 EQT TABLE. KYTBL NOP LOCATION OF KEYWORD BLOCK. IDADR NOP SENSE'S ID SEGMENT ADDRESS ASCSE ASC 1,SE ASCNS ASC 1,NS ASCE OCT 42400 NAME NOP RCOD2 OCT 2 .12 DEC 12 MIN1 OCT -1 MIN6 OCT -6 MSK77 OCT 77 MASK OCT 77400 SKP * * PRINT STATEMENTS. * * TEXTA ASC 21,(" THE ID SEGMENT ADDRESS OF ALARM IS "@6 ASC 16,/" THE ADDRESS IS STORED AT "@6) * * EMPTY JSB EXEC DEF *+5 THE INTERRUPT TABLE ENTRY FOR THE DEF RCOD2 6940 IS ZERO OR NEGATIVE! BAD NEWS! DEF ICNWD DEF TEXTB DEF TXTBL JSB EXEC DEF *+5 DEF RCOD2 DEF ICNWD DEF TEXTC DEF TXTCL CCA MODE = -1, -> INDICATES AN ERROR STA MODE,I IN THE INTERRUPT TABLE. RTRN3 JMP SERCH,I * TEXTB ASC 15, ERROR! 6940 INTERRRUPT TABLE TEXTC ASC 18, ENTRY IS NOT DRIVER'S EQT ADDRESS. TXTBL DEC 15 TXTCL DEC 18 * SKP * * * * * * * * L U C H K - MAXIMUM LU RETRIEVER * * * * * MAXLU NOP * LUCHK NOP JSB .ENTR DEF MAXLU LOOK ON BASE PAGE TO FIND OUT THE LDA LUMAX MAXIMUM LU # IN THE SYSTEM. STA MAXLU,I JMP LUCHK,I * LUMAX EQU 1653B SKP * * * * * D S R C H * * * * * * "DSRCH" RESTORES THE ID SEGMENT ADDRESS OF THE USER'S * ALARM - INTERRRUPT PROCESSING PROGRAM TO THE DRIVER'S * TABLE. * * DSRCH NOP STARTING POINT . . . RSTOR JSB $LIBR NOP LDA CNTNT STA LOCAT,I * THE FOLLOWING CODE CLEARS THE T6940 ID SEGMENT'S * TIME VALUES. LDB XEQT GET THE ID SEGMENT ADDRESS OF T6940 ADB D17 GOTO WORD 18 (RES/T/MULT) LDA B,I GET CONTENTS AND TBIT ISOLATE TIME BIT SZA,RSS IS PROGRAM IN THE TIME LIST? STA B,I CLEAR RESOLUTION CODE AND MULTIPLE EXIT JSB $LIBX DEF DSRCH,I * XEQT EQU 1717B D17 DEC 17 TBIT OCT 10000 * END END$