ASMB,L,R,C HED D65SV 91740-16029 REV 1740 HEWLETT-PACKARD CO. 1977 NAM D65SV,7 91740-16029 REV 1740 771018 SPC 1 ****************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1977. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF THE HEWLETT-PACKARD COMPANY. * ****************************************************************** SPC 1 **************************************************************** * * D65SV * * SOURCE PART # 91740-18029 * * REL PART # 91740-16029 * * WRITTEN BY CHUCK WHELAN * * DATE WRITTEN NOV 1976 * * MODIFIED BY C.C.H. # * * DATE MODIFIED 10/18/77 # * *************************************************************** SPC 2 * THIS ROUTINE SENDS SLAVE REQUESTS * CALLING SEQUENCE: * JSB D65SV * DEF *+5 * DEF RQBUF REQUEST BUFFER * DEF RQLEN REQUEST LENGTH * DEF DABUF DATA BUFFER * DEF DATAL DATA LENGTH * * * * * D65SV IS CALLED BY DS/1000 MONITORS TO SEND A REPLY AND * POSSIBLY DATA BACK TO THE ORIGINATING NODE. IT PERFORMS THE * FOLLOWING STEPS: * 1. DEALLOCATES THE SLAVE TCB, IF THIS FAILS TAKES THE * ERROR RETURN. * 2. VERIFIES THAT 7<=REPLY LENGTH<=31 AND IF NOT RETURNS * A DS03 ERROR. * 3. CONVERTS THE NODAL ADDRESS OF THE ORIGINATING CPU * TO AN OUTPUT LU. IF LU CONVERSION FAILS, A DS04 ERROR * IS RETURNED. * 4. DOES A CLASS I/O WRITE/READ OF THE REPLY(/DATA) TO * GRPM'S CLASS NUMBER (OR RPCNV'S CLASS IF A 3000 WAS * WAS THE REQUEST ORIGINATOR. * 5. RETURNS * SPC 2 ENT D65SV EXT EXEC,.ENTR,$OPSY EXT #RSAX,#NCNT,#GRPM,#BREJ,#RPCV SPC 2 RQBUF NOP RQLEN NOP DABUF NOP DATAL NOP * D65SV NOP JSB .ENTR GET CALLER'S PARAMETERS DEF RQBUF * LDA RQBUF INA STA TEMP1 ADDR OF SEQ.# INA STA TEMP2 ADDR OF ORIGINATORS NODE * JSB #RSAX DELETE SLAVE TCB DEF *+4 DEF K7 TEMP1 NOP DEF RQBUF,I STREAM SSB JMP D65SV,I TCB SEARCH FAILED, ERROR RETURN STA TEMP1,I RESTORE OLD SEQ # IN REQUEST * * VERIFY THAT 6 < REQUEST LENGTH < 32 * LDB "03" LDA RQLEN,I GET REQUEST LENGTH ADA N7 MUST BE AT LEAST 7 SSA JMP GETDS GIVE DS03 IF <7 ADA N25 SSA,RSS JMP GETDS GIVE DS03 IF > 31 * * CHECK FOR REPLY TO DS/3000 REPLY CONVERTER. * LDB #RPCV PRESET = "RPCNV'S" CLASS NO. # LDA RQBUF,I GET THE STREAM WORD OF THE REPLY. # AND RTYCT CLEAR THE OLD RETRY COUNTER. # IOR #BREJ INITIALIZE NEW RETRY COUNT. # STA RQBUF,I RESTORE MODIFIED STREAM WORD. # * # CLE,ELA POSITION DS/3000 BIT#15 TO . # CLA,SEZ,CLE IF THIS IS A DS/3000 REPLY, SET LU=0, # JMP RPL3K THEN BYPASS DS/1000 PROCESSING. # * SKP * * CONVERT DESTINATION NODE TO LU * LDA TEMP2,I GET THE ORIGINATOR'S NODAL ADDRESS SSA ABSOLUTE DESTINATION CODE ? (NEIGHBOR) JMP ABS YES, GET LU AND RETURN DLD #NCNT NO, GET ADDR & SIZE OF THE TABLE STA TEMP1 SAVE COUNTER * LOOP JSB LODWD GET A CPU # INB POINT TO CORRESPONDING LU CPA TEMP2,I IS IT THE GOOD ONE ? JMP LUFND YES INB BUMP POINTER TO NEXT NODE # ISZ TEMP1 NO, END OF TABLE ? JMP LOOP NO, CONTINUE * LDB "04" YES, CPU # ERROR * GETDS LDA "DS" JMP D65SV,I RETURN WITH ERROR CODE * ABS CMA,INA MAKE IT >0 JMP LUOK * LUFND JSB LODWD FETCH LU AND B77 ISOLATE IT * * NOW SEND THE REQUEST(/DATA) * LUOK LDB #GRPM GET "GRPM'S" CLASS NUMBER. # RPL3K IOR CONWX SET "Z" BIT AND "WRITE" INDICATOR # STA TEMP1 SAVE CONFIGURED CONWD. # STB TEMP2 SAVE CLASS NUMBER (#GRPM OR #RPCV). # * JSB EXEC DO CLASS WRITE/READ DEF *+8 DEF CLS20 NO ABORT DEF TEMP1 CONTROL WORD DEF DABUF,I DATA BUFFER ADDRESS DEF DATAL,I DATA LENGTH DEF RQBUF,I REQUEST BUFFER ADDRESS DEF RQLEN,I REQUEST LENGTH DEF TEMP2 * JMP D65SV,I ISZ D65SV JMP D65SV,I SKP * * LOAD WORD FROM S.A.M., CROSS-LOAD IF DMS SYSTEM * LODWD NOP LDA $OPSY OPERATING SYSTEM TYPE RAR,SLA BIT#1=0 IF NON-DMS # JMP XLOAD DMS: USE CROSS LOAD. # * # LDA B,I NON-DMS: GET THE WORD FROM S.A.M. # JMP LODWD,I RETURN WITH = WORD, UNCHANGED. # * # XLOAD XLA B,I GET THE WORD FROM THE SYSTEM MAP. # JMP LODWD,I RETURN: =WORD, UNCHANGED. # * * DATA AREA * B EQU 1 # TEMP2 NOP B77 OCT 77 CONWX OCT 10100 RTYCT OCT 170077 CLS20 OCT 100024 CLASS WRITE/READ--NO ABORT K7 DEC 7 N7 DEC -7 N25 DEC -25 "03" ASC 1,03 "04" ASC 1,04 "DS" ASC 1,DS END