ASMB,Q,C ** RTE-IV EQUIPMENT LOCK CHECKING MODULE ** * NAME: CHEL * SOURCE: 92067-18479 * RELOC: 92067-16268 * PGMR: AVD * * **************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT * * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * **************************************************************** * NAM CHEL,7 92067-1X479 REV.2040 800724 * ENT CHEL EXT $ELTB * SUP A EQU 0 B EQU 1 * ******************************************************************* * THE CHECK EQUIPMENT LOCK ROUTINE ALLOWS A DRIVER OR OTHER * PROGRAM TO DETERMINE WHETHER A GIVEN EQUIPMENT IS LOCKED OR NOT. * IT IS UP TO THE CALLING ROUTINE TO TAKE APPROPRIATE ACTION BASED * ON THAT KNOWLEDGE. * THIS ROUTINE IS APPENDED TO THE CALLER'S MEMORY SPACE. * * CALLING SEQUENCE: * * LDB EQT # WHOSE LOCKEDNESS (LOCHNESS?) IS TO BE KNOWN * JSB CHEL * RETURN--- * * ON RETURN: * (A) = 0, IF SPECIFIED EQT. NO. IS NOT LOCKED. ELSE, * (A) = LOCKER'S ID SEGMENT ADDRESS. ******************************************************************* * * CHEL NOP CLO FIRST CLEAR OVERFLOW, TO BE USED AS A FLAG. RSA GET A COPY OF THE STATUS REGISTER. ALF GET WHICH_MAP? BIT IN LEAST_SIGNI_POZ. SLA AND COPY IT INTO STO THE FLAG. SOS IF THE SYSTEM MAP IS ENABLED, JMP CH500 GO DO A REGULAR LOAD, * XLA $ELTB,I ELSE DO A CROSS-LOAD. CH050 SSA,RSS IF TABLE IS EMPTY, JMP CH200 RETURN WITH (A) = 0. * ELA,CLE,ERA GET RID OF NOT_EMPTY BIT FROM HEADER WORD. STA TEMP1 STORE TABLE LENGTH. CMA,INA NEXT STORE 2'S COMPLE STA TEMP2 OF TABLE LENGTH. SOS IF THE SYSTEM MAP IS ENABLED, JMP CH501 GO DO REGULAR LOAD, * XLA $ELTB ELSE DO A CROSS-LOAD. CH075 ADA D1 GET ADDR OF 1ST EQT. # STA TEMP3 IN TABLE, AND STORE IT. CH100 LDA TEMP3 GET ADDR OF NEXT EQT. # IN TABLE. SOS IF THE SYSTEM MAP IS ENABLED, JMP CH502 GO DO REGULAR LOAD, * XLA A,I ELSE DO A CROSS-LOAD. CH150 CPA B COMPARE WITH CALLER-SPECIFIED EQT. #. JMP CH300 MATCHES, SO GO FIND LOCKER. * ISZ TEMP3 GET ADDR OF NEXT EQT. # IN TABLE. ISZ TEMP2 IF NOT ALL ENTRIES COMPARED, JMP CH100 LOOP BACK. * CH200 CLA EQT. NOT LOCKED, (A) = 0, JMP CHEL,I AND RETURN. * CH300 LDA TEMP3 GET MATCHED EQT. #'S ENTRY ADDR. ADA TEMP1 OFFSET TO LOCKER'S ID SEG ADDR. SOS IF THE SYSTEM MAP IS ENABLED, JMP CH503 GO DO REGULAR LOAD, * XLA A,I ELSE DO A CROSS-LOAD. ELA,CLE,ERA KEEP ONLY THE ID SEG ADDR. JMP CHEL,I RETURN WITH (A) = LOCKER'S ID SEG ADDR. * * CH500 LDA $ELTB,I JMP CH050 * CH501 LDA $ELTB JMP CH075 * CH502 LDA A,I JMP CH150 * CH503 LDA A,I ELA,CLE,ERA JMP CHEL,I * * * D1 DEC 1 TEMP1 NOP TEMP2 NOP TEMP3 NOP END