ASMB,R,Q,C NAM IOMAP,18,90 91750-16130 REV 2013 800214 ALL * * ******************************************************************* * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1980. 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. * ******************************************************************* * * NAME: IOMAP * SOURCE: 91750-18130 * RELOC: 91750-16130 * PGMR: JOHN LAMPING * * WRITTEN BY LYLE WEIMAN [MARCH 1979] * MODIFIED BY JOHN LAMPING [OCTOBER 1979] * * * PROGRAM TO SET UP I/O MAP. * (MAY BE RUN FROM A REMOTE NODE. ALL PARAMETERS AND RESULTS * ARE PASSED IN THE FIVE "SCHEDULE" AND "RETURN" PARAMETERS, SO * THE REMOTE "SCHEDULE-WITH-WAIT" CALLS MAY BE USED. NOTE THAT * 'IOMAP' RUNS IN THE SAME NODE AS THE LU MAPPING DRIVER AND THE * I/O MAP, AND THEREFORE, FROM THE POINT OF VIEW OF THE USER, IS * USUALLY IN A "REMOTE" NODE. THEREFORE, ONE USUALLY NEEDS TO * SCHEDULE IT USING THE "REMOTE PROGRAM SCHEDULE WITH WAIT" CALL. * THIS IMPLIES THAT 'EXECW' EXISTS IN THE SAME NODE. SPC 2 * * SCHEDULE PARAMETERS: * * S1 = LU NUMBER AT IOMAP'S NODE WHICH IS TO BE SET UP AS MAPPED * = -1 TO REQUEST MAPPING OF ANY UNUSED MAPABLE LU * = -2 TO GET LU MAPPING ERROR PARAMETERS * * S2 = LU NUMBER TO WHICH "S1" IS TO BE MAPPED. * SET BIT 15 IF "HEADER MESSAGE", IDENTIFYING SOURCE, IS TO * PRECEDE MESSAGES SENT BY PROGRAMS. * SET BIT 14 IF A "PROMPT" (NNNNNN) IS TO PRECEDE ALL "READ" * REQUESTS AT REMOTE LU * = 0 TO TURN OFF MAPPING ON LU * = -1 TO LEAVE MAP ALONE AND JUST RETURN STATUS * INFORMATION IS RETURNED ON THE FIRST MAPABLE LU >= S1 * = -32768 TO REQUEST SYSTEM ATTENTION ON LU S1 * * S3 = NODE NUMBER AT WHICH LU IN S2 EXISTS. * = 25834 SECURITY CODE IF SYSTEM ATTENTION IS REQUESTED IN P2 * * S4 = IOMAP NODE'S NETWORK SECURITY CODE IF MAP SETUP REQUESTED * THE CODE IN P4 MUST MATCH THAT CODE OR THE MAP SET-UP IS DENIED. SPC 3 * RETURN PARAMETERS FOR THE ABOVE FUNCTIONS: * * R1 = LU FOR WHICH MAP WAS SET UP OR #LMPE IF S1 = -2 * = -1 IF SECURITY CODE IS ILLEGAL * = -2 IF LU IN S1 IS ILLEGAL * = -3 IF NO MAP HAS YET BEEN SET UP OR LU MAPPING IS BOTCHED * P2 = DESTINATION LU TO WHICH MAP IS SENT OR #LMPE+1 IF S1 = -2 * P3 = DESTINATION NODE TO WHICH MAP IS SENT OR #LMPE+2 IF S1 =-2 * * * * EXT RMPAR,EXEC,PRTN,#NODE,XLUEX EXT #SPLU,#LMPE,#NMSC SPC 2 IOMAP EQU * JSB RMPAR FETCH SCHEDULE PARAMETERS DEF *+2 DEF IPRAM * * FIND "RESERVED LU" FOR THIS NODE * IF NONE SET UP YET, SET IT UP NOW. LDA #SPLU IS THERE A "SPECIAL" LU ALREADY SAVED IN SSGA? SZA JMP IO1 YES. LDA MAPLU NO, WERE WE GIVEN SZA A POTENTIALLY SSA MAPPABLE LU? JMP RTER3 NO, CAN'T DO SETUP, TOO BAD IOR BIT15 MAKE DYNAMIC STATUS CALL STA SPCL1 SO THAT DRIVER JSB XLUEX WILL BE ENTERED DEF *+3 AND SET UP DEF D3 "SPECIAL" LU DEF SPCL1 LDA #SPLU WAS "SPECIAL" LU SZA,RSS SET UP? JMP RTER3 NO, BAD TROUBLES IO1 EQU * IOR BIT15 SET "TRUE LU" BIT STA SPCL1 SAVE LU IN DOUBLE WORD STA SPCL2 XLUEX CONWD TEMPLATES LDA MAPLU REQUEST TO SIMPLY RETURN PRESENT CPA M2 CONTENTS OF #LMPE? JMP ERTRN YES. LDA RLU GET REMOTE LU CPA M1 REQUEST TO RETURN I/O MAP INFORMATION? JMP RTMAP YES CPA BIT15 REQUEST SYSTEM ATTENTION? JMP SYSAT YES * SET UP I/O MAP LDA SECOD GET SECURITY CODE UNL ALF,ALF CMA LST CPA #NMSC IS IT CORRECT? JMP IO2 YES RTER1 CCB NO, SET ERROR INDICATION JMP RETRN IO2 LDB FNMBR GET SECURITY CODE FOR DRIVER STB BUFFR LDA MAPLU STA BUFFR+1 LDA RLU STA BUFFR+2 LDA NODE STA BUFFR+3 JSB XLUEX ESTABLISH I/O MAP DEF *+5 DEF D2 DEF SPCL1 DEF BUFFR DEF D4 SZB,RSS WAS MAP SET UP? RTER2 LDB M2 NO, ILLEGAL LU * RETRN EQU * STB IPRAM SET RETURN CODE * * PASS RESULTS BACK TO CALLER PRT EQU * JSB PRTN DEF *+2 DEF IPRAM JSB EXEC TERMINATE DEF *+2 DEF D6 * * RETURN LU MAPPING ERROR CODES * ERTRN DLD #LMPE+1 SET SECOND TWO DST IPRAM+1 ERROR WORDS LDB #LMPE GET FIRST ERROR WORD JMP RETRN RETURN IT SPC 10 * * HERE TO REQUEST SYSTEM ATTENTION * SYSAT LDA IPRAM+2 IS THE SYSAT SECURITY CODE CPA FNMBR PRESENT? RSS YES, GO AHEAD JMP RTER1 NO, REJECT THIS JSB XLUEX DEF *+4 DEF D3 DEF SPCL2 DEF MAPLU SYSTEM ATTENTION LU FOR RTE-L JMP PRT RETURN SKP * HERE TO RETURN I/O MAP INFORMATION TO "FATHER" * RTMAP EQU * * RTP1 JSB XLUEX DEF *+6 DEF D1 DEF SPCL1 "RESERVED LU" + 3600B DEF IPRAM+1 RETURN INFORMATION HERE DEF D2 DEF IPRAM LU TO CHECK * LDA IPRAM+1 IS THIS A "MAPPABLE" LU? SSA,RSS JMP RTP2 YES--RETURN MAP INFORMATION ISZ IPRAM NO, TRY NEXT LU LDA IPRAM --BE SURE AND B377 THAT WE DON'T CPA IPRAM GO TOO FAR.... JMP RTP1 .. LU < 256, GO SEE IF IT'S A VALID ONE JMP RTER2 ERROR: ALL LUS HAVE BEEN CHECKED * RTP2 DLD IPRAM+1 PUT THE SWP LU FIELD DST IPRAM+1 FIRST JMP PRT RETURN RESULTS * RTER3 EQU * HERE WHEN LU MAPPING HAS NOT BEEN SET UP YET. LDB M3 RETURN -3 JMP RETRN SPC 2 IPRAM BSS 5 'RMPAR' PARAMETER AREA MAPLU EQU IPRAM "MAPPED" LU RLU EQU IPRAM+1 REMOTE LU NODE EQU IPRAM+2 REMOTE NODE NUMBER SECOD EQU IPRAM+3 SECURITY CODE BUFFR BSS 4 I/O MAPSET-UP BUFFER AREA SPCL1 NOP "SPECIAL LU" + A SUBFUNCTION OCT 3600 MAP SETUP/READ FUNCTION SPCL2 NOP OCT 3500 SYSTEM ATTENTION CONTROL FUNCTION M1 DEC -1 M2 DEC -2 M3 DEC -3 M4 DEC -4 D1 DEC 1 D2 DEC 2 D3 DEC 3 D3N DEF 3,I D13N DEF 13,I I/O STATUS, NO ABORT D4 DEC 4 D6 DEC 6 B377 OCT 377 BIT15 OCT 100000 FNMBR DEC 25834 END IOMAP