ASMB,R,L,C ** FNDLU - FIND 'LU' FROM EQT4 ADDR IN B REG ** HED -FNDLU - FIND 'LU' FROM EQT4 ADDRESS IN B-REG * NAME: FNDLU * SOURCE: 92067-18309 * RELOC: 92067-16268 * PGMR: G.L.M. * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978. 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 FNDLU,7 92067-1X309 REV.2013 780403 ENT FNDLU EXT $RNTB * * ROUTINE TO FIND THE LOGICAL UNIT NUMBER OF A DEVICE * GIVEN THE ADDRESS OF WORD 4 OF ITS EQUIPMENT TABLE * CALLED AS FOLLOWS: * * LDB EQT4 (PASSED FROM DVR00/DVR65) * * JSB FNDLU -OR- JSB FNDLU -OR- CALL FNDLU (LUSDI) * DEF *+2 DEF *+1 * DEF LUSDI * * A-REG. = 0 IF NOT FOUND -OR- * A-REG. = THE LOGICAL UNIT NUMBER IF FOUND * E-REG. = 0 IF DEVICE IS UP -OR- * E-REG. = 1 IF DEVICE IS DOWN (IF DOWN, ALL OTHER REGS INVALID) * X-REG. = POSSIBLE RN# BYPASS WORD * Y-REG. = DEVICE TYPE (ISOLATED) * LUSDI = RETURNED SAME AS A-REG. * B-REG. = ASCII "00" -OR- LOGICAL UNIT IN ASCII (I.E. "16") * SUP FNDLU NOP ENTRY STB EQT4 SAVE B-REG FOR LATER TEST LDA FNDLU,I GET ADRS OF RETURN ADDRESS ISZ FNDLU BUMP TO POSSIBLE PRAM. LDB FNDLU,I GET POSS. ADDRS OF PRAM. CPA FNDLU PARAMETER PASSED? CLB NO, SET DUMMY ADRS (A-REG.) STB LUADR SET ADDRESS FOR PASSED PRAM STA FNDLU SET UP RETURN ADDRESS CLA SET START LU = 0 STA LUNUM * NEXT LDA LUNUM GET CURRENT LU NUM-1 CPA LUMAX DONE THRU ALL LU'S JMP NTFND YES, NOT FOUND!! ISZ LUNUM BUMP TO CURRENT LU ADA DRT POINT TO TABLE ADDRESS LDA 0,I GET CONTENTS AND O77 MASK OF SUBCHANNEL BITS MPY D15 CALCULATE ADDRESS OF WORD 4 ADA EQTA BASE ADDRESS ADA DM12 SUBTRACK ONE EQT & ADD DEC 3 CPA EQT4 COMPARE?? JMP FOUND YES !! JMP NEXT NO, TRY NEXT ONE SPC 1 NTFND STB LUNUM NOT FOUND RETURN A=0 JMP FOND2 * FOND1 LDB DRT GET START OF DEVICE REFERENCE TABLE ADB LUNUM INDEX TO PROPER ENTRY ADB DM1 STB LU1 SAVE THE ADDRESS ADB LUMAX GET TO DRT PART 2 LDA B,I FETCH IT CCE,SSA IS THE LU DOWN? JMP DWN YES-EXIT * LDB EQT4 FETCH EQT INB WORD 5 LDA B,I RAL,RAL GET STATUS AND D3 AND ISOLATE CPA D1 DOWN ? JMP DWN YES-EXIT (E SET ABOVE) * * NOW CHECK FOR A LU LOCK * LDA LU1,I GET THE DRT ENTRY AND M3700 CLE,SZA,RSS IS THE DEVICE LOCKED? JMP CAX NO--CONTINUE * ALF,ALF YES SO CONFIGURE A RN BYPASS WORD RAL,RAL STA EQT4 SAVE IN TMP ADA RNTB NOW GO TO RN # TABLE XLA A,I AND B377 GET OWNER TO UPPER ALF,ALF UPPER END IOR EQT4 CONFIGURE WORD CAX CAX SAVE IT IN (X) CLB PREPARE FOR DIVIDE * FOND2 LDA LUNUM FOUND RETURN A= LU NUMBER DIV D10 CONVERT TO ASCII ALF,ALF POSITION MOST SIG. DIGIT ADB 0 MIRGE IN LEAST ADB ASC00 CONVERT TO ASCII DWN LDA LUNUM RESTORE BINARY VALUE STA LUADR,I PASS BACK TO CALLER JMP FNDLU,I SPC 1 FOUND LDA EQT4 GET THE SPECIFIED LU INA AND NOW EQT 5 LDA A,I AND MEQT GET THE TYPE CAY SAVE DEVICE TYPE SZA,RSS DVR00 ? JMP FOND1 YES, WERE DONE LDA DRT MUST BE DVR05, SO GET DRT ADA LUNUM ADD LU # ADA DM1 DO OFFSET LDA A,I GET THE DRT VALUE AND MSUB GET THE SUB CHANNEL # SZA,RSS WAS IT THE CRT ? JMP FOND1 YES, SO DO IT. JMP NEXT SPC 1 EQT4 NOP MSUB OCT 174000 MEQT OCT 37400 DM1 DEC -1 LUADR NOP LUNUM NOP O77 OCT 77 D10 DEC 10 ASC00 ASC 1,00 D15 DEC 15 DM12 DEC -12 LU1 NOP D3 DEC 3 D1 DEC 1 M3700 OCT 3700 RNTB DEF $RNTB+0 B377 OCT 377 EQTA EQU 1650B DRT EQU 1652B LUMAX EQU 1653B A EQU 0 B EQU 1 END