ASMB,R,F,L,C HED ** TRAP TABLE MODULE ** 92101-19010 REV.1710 NAM TRAP,14 92101-16010 770208 * *************************************************************** * ************************************************************** * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1975. ALL RIGHTS * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- * * PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH- * * OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * ************************************************************** * * * LISTING: 92101-19010 * SOURCE: 92101-18010 * RELOC: 92101-16010 * * ************************************************************** * * ENTRY POINTS: * ENT TRAP,TIME ENT TRPNT,FINDS,TRMAK,TRDEL ENT TRPNO,SEKNO,PRINO ENT TRTBL,TRPTR,TRNXT,TRFLG ENT TRMSK,TRAP# ENT TSEND,TSTIM,TSNXT,TSTBL,TSCNT,TSPTR ENT SRQ.T * * * * EXTERNAL REFERENCES: * EXT $LIBR,$LIBX EXT $TIME * * * * ** TRAP ** DO VARIOUS TRAP NUMBER ORIENTED OPERATIONS * * THIS ROUTINE HAS FOUR CALLING SEQUENCES DEPENDING ON ITS FUNCTION. * THE NOMINAL CALLING SEQUENCE, ASSOCIATED WITH EXECUTION OF THE * BASIC TRAP STATEMENT, IS AS FOLLOWS: * * LDA MINUS THE TRAP NUMBER * LDB SEQUENCE NUMBER (FROM TRAP STMT,MAY BE - ) * JSB TRAP * JMP ERR1 (ERROR RETURN) * RETURN * **************************************************** * * THIS ROUTINE IS CALLED JUST * BEFORE EXECUTING EACH LINE OF BASIC CODE: * * LDA MINUS 1000 DECIMAL (USED TO FLAG THIS CASE) * LDB POINTER TO STATEMENT ABOUT TO BE EXECUTED * JSB TRAP * JMP ERR (ERROR RETURN) * RETURN (SEE NOTE) * * NOTE: WHEN THIS CALL IS RECOGNIZED (.A.=-1000) THE * TRAP TABLE IS POLLED TO DETERMINE IF PROGRAM * SHOULD BE INTERRUPTED BY A TIME OR EVENT * SCHEDULED TASK. * * RETURN VALUES IF PROGRAM IS TO BE INTERRUPTED * * .A.= SEQUENCE NUMBER FROM TRAP TABLE * .B.= SEQUENCE NBR THAT WOULD HAVE BEEN EXECUTED OTHERWISE * * RETURN VALUES IF PROGRAM IS NOT TO BE INTERRUPTED * * .A.= -1 (SERVES AS FLAG FOR THIS CASE) * .B.= ADDRESS OF STATEMENT TO BE EXECUTED NEXT * **************************************************** * * WHEN A TASK IS SCHEDULED IN THE ABOVE MANNER, ITS * RETURN STATEMENT RESULTS IN YET ANOTHER CALL: * * LDA MINUS 256 DECIMAL (USED AS FLAG) * LDB MINUS SEQ NBR TO BE RETURNED TO * JSB TRAP * JMP ERR (ERROR RETURN) * RETURN .A.= RETURN SEQUENCE NUMBER * **************************************************** * * FINALLY TRAP IS CALLED TO INITIALIZE OR FREE UP THE TRAP * TABLE AT THE BEGINNING OR END OF EXECUTION PHASE: * * LDA 1 DECIMAL INDICATES AN INITIALIZE REQUEST * OR LDA 2 DECIMAL INDICATES A TERMINATE REQUEST * JSB TRAP * JMP ERR (ERROR RETURN) * RETURN * **************************************************** * TRAP NOP JSB $LIBR NOP STB LYNNO SAVE INCOMING LINE NO. SSA,RSS IS THIS AN INIT OR TERM REQUEST? JMP INIT YES! CPA M1000 IS THIS THE POLLING CALL JMP LINE YES CPA M256 IS THIS THE TASK RETURN CALL? JMP TRRET YES CMA,INA MAKE TRAP NUMBER POSITIVE ALF,ALF POSITION IT, STA TRPNO AND SAVE IT SSB IF SEQ NBR IS NEGATIVE CCA SET TFLAG TO -1 STA TFLAG ELSE SET IT POSITIVE SSB CMB,INB MAKE SURE SEQ NBR IS POSITIVE STB SEKNO THEN SAVE IT STB TRFLG ENABLE TRAP TABLE SEARCH LDA 1 JSB FINDS LOOK FOR ENTRY WITH THAT SEQ NBR JMP STRA1 NOT FOUND LDA TRPTR FOUND STA BSCT2 SAVE ADDRESS OF ENTRY LDA TRPNO JSB FINDT LOOK FOR ENTRY WITH THIS TRAP NO JMP STRA2 NOT FOUND LDB TRPTR IS THIS THE SAME ENTRY WE FOUND CPB BSCT2 WITH THE GIVEN SEQ NBR? JMP STRA4 YES, ENTRY IS ALREADY THERE LDA .2 ILLEGAL JMP RTRAP+1 COMBINATION ERROR STRA1 LDA TRPNO JSB FINDT LOOK FOR ENTRY WITH THIS TRAP NO JMP STRA3 NOT FOUND, MUST MAKE NEW ENTRY * ** HERE TO RESET TRAP BIT (IF POS IN TRAP STMT) * STRA4 LDB TRPTR LDA 1,I FOUND, REPLACE SEQ NBR IN ENTRY AND BIT15 PRESERVE TRAP BIT ISZ TFLAG IF GIVEN SEQ NBR WAS POSITIVE, CLA CLEAR TRAP BIT IOR SEKNO INSERT GIVEN SEQ NBR STA 1,I AND STORE INTO ENTRY * ** COME HERE TO ENABLE TRAP AND RETURN * INB GET SECOND LDA 1,I WORD OF ENTRY IOR BIT15 SET ENABLE BIT STA 1,I AND PUT BACK IN ENTRY JMP RTRAP RETURN (P+2) * ** HERE TO CREATE A NEW ENTRY * STRA3 LDA .99 SET DEFAULT STA PRINO PRIORITY (99) JSB TRMAK MAKE NEW ENTRY RSS NO ROOM JMP STRA4 DONE, RETURN CLA,INA TRAP JMP RTRAP+1 TABLE FULL * ** HERE WHEN ENTRY WITH SEQ NBR BUT NOT TRAP # FOUND * STRA2 LDB TRPTR INB LDA 1,I GET SECOND WORD OF ENTRY AND PRMSK SAVE PRIORITY IOR TRPNO INSERT TRAP NBR STA 1,I PUT BACK IN ENTRY JMP STRA4 ENABLE IT AND RETURN SKP * ** COME HERE TO INITIALIZE THE TRAP TABLE ** FOR CALL INFO, SEE COMMENTS PRECEEDIND TRAP ENTRY POINT * * ** HERE TO INITIALIZE TABLES AT BEGINNING OF EXECUTION PHASE. * INIT CPA .2 TERMINATE REQUEST? JMP TERM YES! LDA CUPGM USE ID SEG PTR AS CPA XEQT IS THIS THE RIGHT USER? JMP *+5 YES! SZA IS IT FIRST TIME THROUGH? JMP INIT1 NO! SO IGNORE HIM, HE SHOULDN'T BE HERE LDA XEQT SET UP ID SEG ADDRS STA CUPGM AS IDENT NO. LDA TRTBL INITIALIZE STA TRNXT TRAP TABLE STA TRPTR POINTERS LDA TSTBL INITIALIZE STA TSNXT TIME SCHED TABLE STA TSPTR POINTERS JSB TIME INITIALIZE TIME OF LAST CHECK DEF *+2 DEF TSTIM OF TIME SCHD TABLE DLD MAXNG MAX NEGATIVE FLOAT PT NBR DST TSCNT INITIALIZE TIME TO EXECUTION CNT LDA PRSTK INITIALIZE STA TRPRI PRIORITY STACK CLA DONT NEED TO SEARCH FOR TRAP STA TRFLG BITS UNTIL SOMETHING HAPPENS JMP RTRAP * TERM CLA CLEAR OUT STA CUPGM USER IDENT NUMBER JMP RTRAP RETURN * INIT1 LDB M1 SET FLAG SO BASIC DOESN'T JMP RTRAP COME DONE HERE THRU THE 'LINE' CALL * FOR EVERY STATEMENT SKP * ** HERE TO DO END OF LINE TRAP TABLE POLLING * LINE JSB TIMCK LDB TRFLG IS TRAP TABLE SEARCH NECESSARY? SZB JMP LINE8 YES LINE9 LDA M1 .A.=-1 MEANS DONT INTERRUPT PROG LDB LYNNO RESTORE INCOMING VALUE OF B REG JMP RTRAP RETURN * ** HERE FOR RETURN IF TABLE SEARCHED BUT NO INTERRUPT NEEDED * LINE3 CLA NO NEED TO SEARCH AGAIN STA TRFLG UNTIL SOMETHING HAPPENS JMP LINE9 RETURN (NO INTERRUPT) * ** HERE TO DO TRAP TABLE SEARCH * LINE8 LDB TRTBL INITIALIZE .B. TO FRONT OF TABLE LINE1 CPB TRNXT END OF TABLE JMP LINE3 YES LDA 1,I NO, GET FIRST WORD OF ENTRY INB AND 1,I "AND" TRAP BIT WITH ENABLE BIT SSA ARE BOTH BITS SET? JMP LINE2 YES INB ADVANCE TO NEXT ENTRY JMP LINE1 AND LOOP * ** HERE IF BOTH TRAP AND ENABLE BITS SET * LINE2 ADB M1 LDA 1,I GET FIRST WORD OF ENTRY ELA,CLE,ERA CLEAR TRAP BIT SZA IS SEQ NBR ZEROED OUT? JMP LINE4 NO ADB .2 YES, ADVANCE TO NEXT ENTRY JMP LINE1 AND KEEP LOOKING LINE4 STB TRPTR SAVE POINTER TO ENTRY INB LDA 1,I GET SECOND WORD OF ENTRY AND PRMSK EXTRACT PRIORITY CMA,INA IF PRIORITY OF THIS TASK IS ADA TRPRI,I EQUAL OR LESS THAN THE ONE CMA,INA SSA,RSS BEING PROCESSED, JMP LINE3 EXIT (NO INTERRUPT) * ** HERE TO DO INTERRUPT OF PROGRAM * LDA 1,I AND PRMSK GET PRIORITY AGAIN ISZ TRPRI BUMP PRIORITY STACK POINTER STA TRPRI,I SET UP WITH CURRENT PRIORITY LDB TRPTR LDA 1,I CLEAR TRAP BIT ELA,CLE,ERA IN THIS STA 1,I ENTRY LDB LYNNO,I ENTER SEQ NBR FOR RETURN CMB,INB COMPLEMENT IT TO FLAG AS TASK JMP RTRAP RETURN * ** COME HERE TO PROCESS RETURN FROM AN INTERRUPT ** STARTED TASK. A NEGATIVE RETURN ADDRESS RESULTS ** IN TRANSFER TO THE TRAP ROUTINE AND THEN TO THE ** FOLLOWING CODE. * TRRET CMB,INB MAKE SEQ NBR POSITIVE LDA 1 MOVE IT TO A REG LDB TRPRI POP THE ADB M1 PRIORITY STB TRPRI STACK STB TRFLG AND ENABLE TRAP TABLE SEARCH RTRAP ISZ TRAP JSB $LIBX RETURN (P+1) DEF TRAP * SKP ***** * ** TIMCK ** ROUTINE TO CHECK TIME SCHED TABLE * * JSB TIMCK * RETURN * ***** * TIMCK NOP JSB TIME SAVE DEF *+2 DEF TIMT1 CURRENT TIME TIMC3 FSB TSTIM GET-TIME ELAPSED FROM LAST CHECK SSA,RSS CORRECT JMP TIMC4 FOR CHANGE FAD FLDAY OF DAY TIMC4 FAD TSCNT UPDATE SECONDS TO EXECUTION DST TSCNT SSA,RSS HAS THAT TIME ELAPSED? JMP TIMC1 YES DLD TIMT1 NO, UPDATE TIME OF LAST CHECK DST TSTIM JMP TIMCK,I AND RETURN * ** HERE IF TASK AT TOP IS TO BE SCHEDULED * TIMC1 LDB TSNXT ADB M1 LDA 1,I GET SEQ NBR ADB M2 BACK UP TSNXT TO STB TSNXT DELETE ENTRY JSB FINDS LOOK FOR ENTRY WITH THAT SEQ NBR JMP TIMCE NOT FOUND LDB TRPTR LDA 1,I FOUND, IOR BIT15 SET TRAP BIT STA 1,I STA TRFLG SET UP TO POLL TABLE * ** HERE TO SET UP NEXT ENTRY * LDB TSNXT SET POINTER ADB M3 TO NEXT STB TSPTR ENTRY DLD TSTIM USE OLD VALUE OF CURRENT TIME FSB TSPTR,I SINCE THIS TASK MAY HAVE TO BE SSA EXECUTED NOW ALSO JMP TIMC2 FSB FLDAY IF POSITIVE, SET UP FOR TOMORROW TIMC2 DST TSCNT SET UP NEW COUNTER DLD TIMT1 GET REAL CURRENT TIME VALUE JMP TIMC3 AND TRY AGAIN TIMCE LDA .6 CAN'T RUN BECAUSE JMP RTRAP+1 ITS BEEN DELETED SKP **************************************************************** * * * BASIC TIME STATEMENT * * **************************************************************** * * * *THIS ROUTINE IS A FORTRAN AND BASIC CALLABLE ROUTINE THAT *RETURNS THE TIME OF DAY IN FLOATING POINT SECONDS TO THE *NEAREST 100 MS (OR TENTH OF A SECOND).THE VALUE OF ZERO *REPRESENTS MIDNIGHT. * * JSB TIME ASSEMBLY LANGUAGE * DEF *+2 * DEF TI * * 100 TIME(T) BASIC * * ON RETURN A/B=TIME IN TENS OF MS * * * TM BSS 1 TIME NOP JSB $LIBR NOP ISZ TIME LDA TIME,I GET PTR STA TM TO TIME ISZ TIME DLD $TIME GET TIME FROM SYSTEM CLE CLEAR FOR ADD ADA PRS1 CONVERT TO POSITIVE 24HRS SEZ INB ADB PRS2 DIV .6000 A=MINS,B=SECS STA MINS ASR 16 POSITION FOR DIV DIV .100 A=SECS,B=10S OF MS STB MS10 FLT DST TM,I TEMPORARY TIME LDA MINS FLT FMP F.60 MINS IN SECONDS FAD TM,I DST TM,I LDA MS10 MS IN SECONDS FLT FDV F.100 FAD TM,I DST TM,I JSB $LIBX RETURN DEF TIME SKP * .6000 DEC 6000 PRS1 OCT 153000 PRS2 OCT 203 MS10 BSS 1 MINS BSS 1 .100 DEC 100 F.60 DEC 60. F.100 DEC 100. ******************* PRIORITY STACK ************** * PRSTK DEF *+1 POINTER TO FIRST ENTRY DEC 100 FIRST ENTRY IS PRIORITY 100 BSS 21 ALLOW 21 ACTUAL ENTRIES PREND DEF * POINTER TO END OF STACK AREA+1 TRPRI NOP POINTER TO TOP ENTRY ON STACK * ************************************************** ****************** TIME SCHED TABLE ************* * * WORD 1&2: FLOATING POINT TIME (SEC) * * WORD 3 SEQUENCE NUMBER * TSTBL DEF *+1 POINTER TO BEGINNING OF TABLE BSS 48 ALLOW 16 ENTRIES TSEND DEF * POINTER TO END+1 OF TABLE TSPTR NOP GENERAL USE TABLE POINTER TSNXT NOP POINTER TO NEXT FREE ENTRY TSTIM BSS 2 TIME OF LAST UPDATE OF TIME SCHD TSCNT BSS 2 -# SECONDS TILL SCHED NEXT TASK * * ********************************************************* SKP * .2 DEC 2 .6 DEC 6 .99 DEC 99 M1 DEC -1 M2 DEC -2 M3 DEC -3 M256 DEC -256 M1000 DEC -1000 MAXNG OCT 100000 OCT 376 FLDAY DEC 86400. NO. OF SECONDS/DAY LYNNO NOP TIMT1 BSS 2 BSCT2 NOP TFLAG NOP CUPGM NOP XEQT EQU 1717B SKP ***** * ** FINDS ** FIND TRAP TABLE ENTRY WITH GIVEN SEQUENCE NUMBER * * LDA SEQUENCE NUMBER * JSB FINDS * RETURN1 NO SUCH ENTRY FOUND * RETURN2 ENTRY FOUND, TRPTR AND .B. POINT TO IT * * NOTE: TRPTR NOT ALTERED IF ENTRY NOT FOUND * ***** * FINDS NOP JSB $LIBR NOP STA BSCT1 SAVE SEQUENCE NUMBER LDB TRNXT USE .B. FOR TRAP TABLE POINTER CPB TRTBL IS TABLE EMPTY? JMP FNDS3 YES, RETURN (P+1) FNDS1 ADB M2 MOVE TO NEXT ENTRY LDA 1,I GET SEQ NBR FROM ENTRY ELA,CLE,ERA IGNORE TRAP BIT CPA BSCT1 DO SEQ NBRS MATCH? JMP FNDS2 YES, FOUND IT CPB TRTBL NO, IS TABLE EXHAUSTED? JMP FNDS3 TABLE EXHAUSTED, RETURN (P+1) JMP FNDS1 MORE ENTRIES, CHECK THEM * ** COME HERE WHEN ENTRY FOUND * FNDS2 ISZ FINDS SET UP SUCCESS RETURN STB TRPTR SET TRAP TABLE POINTER FNDS3 JSB $LIBX RRETURN DEF FINDS SKP ***** * ** FINDT ** FIND TRAP TABLE ENTRY WITH GIVEN TRAP NBR * * LDA TRAP NUMBER (POSITIONED IN WORD) * JSB FINDT * RETURN1 ENTRY NOT FOUND WITH THAT TRAP NBR * RETURN2 FOUND, TRPTR AND .B. POINT TO IT * * NOTE: TRPTR NOT ALTERED IF ENTRY NOT FOUND * ***** * FINDT NOP JSB $LIBR NOP STA BSCT1 AND SAVE FOR LATER COMPARISON LDB TRNXT VSE .B. FOR TRAP TABLE POINTER CPB TRTBL IF TABLER IS EMPTY, JMP FNDT3 RETURN (P+1) FNDT1 ADB M1 MOVE TO NEXT ENTRY LDA 1,I GET WORD WITH TRAP NBR AND TRMSK EXTRACT TRAP NBR CPA BSCT1 DO THEN MATCH? JMP FNDT2 YES ADB M1 NO, POINT TO BEGINNING OF ENTRY CPB TRTBL IS THE TABLE EXHAUSTED JMP FNDT3 YES, RETURN (P+1) JMP FNDT1 NO, CHECK NEXT ENTRY FNDT2 ISZ FINDT SET UP SUCCESS EXIT ADB M1 MOVE TO FIRST WORD OF ENTRY STB TRPTR SET TRAP TABLE POINTER FNDT3 JSB $LIBX RETURN DEF FINDT SKP * ***** * ** TRDEL ** DELETE FROM TRAP TABLE THE ENTRY AT TRPTR * * JSB TRDEL * RETURN * ***** * TRDEL NOP JSB $LIBR NOP LDB TRNXT IF ENTRY TO BE DELETED CPB TRPTR IS LAST+1 ENTRY, JMP TRDE2 RETURN IMMEDIATELY ADB M2 DECREMENT END OF TABLE POINTER STB TRNXT TO POINT TO NEW LAST+1 LOCATION TRDE1 LDB TRPTR CPB TRNXT IF END OF TABLE JMP TRDE2 RETURN (P+1) ADB B2 DLD 1,I GET ENTRY AT TRPTR + 1 ENTRY DST TRPTR,I STORE IT AS TRPIR ENTRY ISZ TRPTR BUMP TRPTR TO NEXT ENTRY ISZ TRPTR JMP TRDE1 LOOP TRDE2 JSB $LIBX RETURN DEF TRDEL SKP ***** * ** TRMAK ** MAKE A TRAP TABLE ENTRY, ORDERED BY PRIORITY * * SEKNO= SEQUENCE NBR (TRAP BIT MAY BE SET) * PRINO= PRIORITY * TRPNO= TRAP NUMBER (ALREADY POSITIONED IN WORD) * JSB TRMAK * RETURN1 NO ROOM FOR ENTRY * RETURN2 ENTRY MADE (TRPTR POINTS TO IT) * * NOTE: NEW ENTRIES ARE AUTOMATICALLY ENABLED * ***** * TRMAK NOP JSB $LIBR NOP LDB TRNXT IS THE TABLE CPB TREND ALREADY FULL? JMP TRMK3 YES, RETURN (P+1) ISZ TRMAK NO, SET UP SUCCESS RETURN STB TRPTR SET POINTER TO END OF TABLE ADB B2 STB TRNXT BUMP TRNXT TO REFLECT NEW ENTRY LDB TRPTR TRMK1 CPB TRTBL ARE WE TO OTHER END OF TABLE? JMP TRMK2 YES, MAKE ENTRY HERE ADB M1 NO, MUST TEST FOR SORTING ORDER LDA 1,I GET SECOND WORD OF ENTRY AND PRMSK EXTRACT PRIORITY CMA,INA IF PRIORITY OF ADA PRINO ENTRY IS EQUAL OR HIGHER SSA,RSS THAN PRIORITY OF NEW ENTRY. JMP TRMK2 MAKE ENTRY HERE ADB M1 ELSE MOVE THIS ENTRY DLD 1,I DOWN ONE TO ALLOW PROPER DST TRPTR,I ORDERING OF NEW ENTRY LDB TRPTR MOVE ADB M2 POINTER TO STB TRPTR NEXT ENTRY JMP TRMK1 AND CONTINUE * ** COME HERE TO ACTUALLY MAKE ENTRY * TRMK2 LDA SEKNO STORE SEQUENCE NUMBER IN FIRST LDB TRPTR STA 1,I WORD OF ENTRY LDA PRINO GET PRIORITY (BITS 0-7) IOR TRPNO INCLUDE TRAP NUMBER (BITS 8-14) IOR BIT15 SET ENABLE BIT INB STORE SECOND STA 1,I WORD OF ENTRY STB TRFLG ENABLE TRAP TABLE SEARCH TRMK3 JSB $LIBX RETURN DEF TRMAK SKP ***** * ** TRPNT ** SET A BIT IN THE TRAP TABLE * * LDA TRAP NUMBER * JSB TRPNT * RETURN1 TRAP TABLE FULL & THIS ENTRY NOT THERE ALREADY * RETURN2 SUCCESS * * NOTE: IF NO ENTRY WITH THAT TRAP NBR EXISTS, THIS * ROUTINE WILL MAKE ONE WITH PRIORITY 99 AND * WITH THE ENABLE BIT AND THE SEQ NBR CLEARED. * ****** * TRPNT NOP JSB $LIBR NOP ALF,ALF STA TRPNO SAVE TRAP NBR JSB FINDT FIND ENTRY WITH THAT TRAP NBR JMP TRPN1 NOT FOUND LDA TRPTR,I FOUND, IOR BIT15 SET TRAP BIT STA TRPTR,I AND UPDATE ENTRY STA TRFLG ENABLE TRAP TABLE SEARCH TRPN2 ISZ TRPNT TRPN3 JSB $LIBX RETURN DEF TRPNT * ** HERE IF MUST CREATE NEW ENTRY * TRPN1 CLA DEFAULT STA SEKNO SEQUENCE NBR LDA D99 DEFAULT STA PRINO PRIORITY JSB TRMAK MAKE ENTRY JMP TRPN3 NO ROOM, RETURN (P+1) LDB TRPTR GET INB SECOND WORD LDA 1,I OF ENTRY ELA,CLE,ERA CLEAR ENABLE BIT STA 1,I JMP TRPN2 RETURN (P+2) (PONT CHANGE TRFLG) SKP **************************************************** * ******************* TRAP TABLE ******************* * * WORD 1: BIT 15 TRAP BIT * BITS 14-0 SEQUENCE NUMBER * * WORD 2: BIT 15 ENABLE BIT * BITS 14-8 TRAP NUMBER * BITS 7-0 PRIORITY * * TRTBL DEF *+1 POINTER TO BEGINNING OF TABLE BSS 32 ALLOW FOR 16 ENTRIES TREND DEF * POINTER TO END+1 OF TABLE TRPTR NOP GENERAL USE TABLE POINTER TRNXT NOP POINTER TO NEXT FREE ENTRY TRFLG NOP FLAG, 0=DONT NEED TO EXAMINE TBL * ************************************************** * BSCT1 NOP TEMPORARY SEKNO NOP SEQUENCE NUMBER PRINO NOP PRIORITY TRPNO NOP TRAP NBR POSITIONED BITS 14-8 TRMSK OCT 77400 MASK FOR TRAP NBR PRMSK OCT 377 MASK FOR PRIORITY TRAP# OCT 0 TRAP NO. USED BY TTY EVENT SENSE ROUTINE D99 DEC 99 B2 OCT 2 BIT15 EQU MAXNG * * THE FOLLOWING TABLE IS PROVIDED FOR HPIB/TRAP INTERACTIONS. * ENTRIES ARE ORDERED BY TRAP # AND CONTAIN INFO PERTAINING * TO THE LU (DEVICE) ASSOCIATED WITH IT. FORMAT AS FOLLOWS: * * ***************************** * * 15-8 * 7-0 * * ***************************** * * SUB-CHANNEL * I/O CHANNEL * * ***************************** * SRQ.T DEF *+1 REP 16 # OF AVAIL.TRAPS NOP * INITIALIZED TO 0 * END