ASMB,R,L NAM IEQCK,7 92080-1X595 REV.2026 800414 * * SOURCE 92080-18595 PART OF %ZTMP 92080-16510 * SPC 2 ********************************************************************* * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1980. ALL RIGHTS RESERVED. * * NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, REPRODUCED, OR TRANS- * * LATED TO ANOTHER PROGRAM LANGUAGE WITHOUT PRIOR WRITTEN CONSENT * * OF THE HEWLETT-PACKARD COMPANY. * ********************************************************************* SPC 2 EXT EXEC,.ENTR ENT IEQCK * ********************************************************************* * * * THIS ROUTINE RETURNS A CODE DESCRIBING THE AVAILABILITY AND THE * * INITIALIZATION STATUS OF A MULTIPOINT TERMINAL WHOSE LU# IS * * PASSED AS THE FUNCTION PARAMETER. FOR FORTRAN PROGRAMS, THE * * CALLING SEQUENCE IS: * * * * ISTAT = IEQCK(LU) WHERE: 'ISTAT' IS ANY INTEGER VAR. * * AND * * 'LU' IS THE TERMINAL LU# * * * * THE FORMAT OF 'ISTAT' ON RETURN IS AS FOLLOWS: * * * * UPPER BYTE LOWER BYTE * * +---------------------------+-------------------------------+ * * / AVAILABILITY INDICATOR / INITIALIZED/NOT INITIALIZED / * * +---------------------------+-------------------------------+ * * * * THE 'AVALABILITY INDICATOR' = CHARACTER "B" IF BUSY * * CHARACTER "A" IF AVAILABLE * * CHARACTER "D" IF DOWN * * * * THE LOWER BYTE = CHARACTER "I" IF INITIALIZED * * CHARACTER "N" IF NOT INITIALIZED * * * * * * FOR EXAMPLE IF THE LU IS 'BUSY' AND 'INITIALIZED', THIS FUNCTION * * WILL RETURN THE CHARACTER STRING "BI". * * * * STEVE WITTEN * * DATA SYSTEMS DIVISION * * APRIL 11, 1980 * ********************************************************************* * D15 DEC 15 D13 DEC 13 'EXEC' REQUEST CODE FOR STATUS REQUEST D12 DEC 12 DM1 DEC -1 D1 DEC 1 * EQT#5 NOP EQT ENTRY WORD#5 EQTAD NOP ADDRESS OF EQT TEMP NOP TEMPORARY BTEMP NOP TEMPORARY * BPEQT OCT 1650 BP COMMUNICATION AREA LOCATION OF EQT ADDRESS BPDRT OCT 1652 BP COMMUNICATION AREA LOCATION OF DRT ADDRESS MASK OCT 140000 MASK2 OCT 77 * A EQU 0 B EQU 1 * LU NOP MULTIPOINT TERMINAL LU# * IEQCK NOP ENTRY POINT * JSB .ENTR GET MULTIPOINT TERMINAL LU# DEF LU * JSB EXEC GET EQT WORD#5 DEF *+4 WITH 'EXEC' TO DEF D13 DETERMINE THE DEF LU,I MULTIPOINT TERM'S DEF EQT#5 AVAILABILITY * LDA EQT#5 PUT EQT WORD IN 'A' AND MASK ISOLATE BITS 14 & 15 SSA,RSS TERMINAL BUSY? JMP CHK NO, CHECK BIT 14 JMP BUSY TERMINAL IS BUSY OR WAITING FOR DMA CHK RAL MAKE BIT 14 THE SIGN BIT SSA,RSS TERMINAL AVAILABLE OR DOWN? JMP AVAL TERMINAL IS AVAILABLE JMP DOWN TERMINAL IS DOWN * BUSY LDB "B" JMP INIT * AVAL LDB "A" JMP INIT * DOWN LDB "D" * INIT STB BTEMP LDA BPEQT GET THE EQUIPMTENT TABLE ADDRESS LDA A,I STA EQTAD STORE ADDRESS OF EQT FOR LATER USE * LDA BPDRT GET THE DEVICE REF. TABLE ADDRESS LDA A,I * ADA LU,I ADD LU# AS OFFSET INTO TABLE ADA DM1 AND SUBTRACT ONE TO GET TO EQT ENTRY FOR LU# * LDA A,I GET CONTENTS OF THAT ADDRESS AND MASK2 AND ISOLATE LOWER SIX BITS * ADA DM1 SUBTRACT ONE AGAIN * MPY D15 MULTIPLY BY 15 ADA EQTAD AND ADD EQT ADDRESS * ADA D12 ADD 12 FOR OFFSET * LDA A,I LOAD A INDIRECT TWICE LDA A,I TO GET CONTENTS OF EQT WORD #16 * LDB BTEMP RECALL AVAILABILITY SZA TERMINAL INITIALIZED?? JMP OK -----+ ADB "N" |--> RETURN CORRECT INFO TO CALLER JMP QUIT | OK ADB "I" -----+ * QUIT SWP SWAP REGISTERS SO CALLER'S INFO IS IN A-REG. JMP IEQCK,I ...AND RETURN * "B" OCT 041000 "A" OCT 040400 "D" OCT 042000 "I" OCT 000111 "N" OCT 000116 * END