ASMB,L,R,C HED DMESS 91740-16033 REV 1740 * (C) HEWLETT-PACKARD CO. 1977 NAM DMESS,7 91740-16033 REV 1740 771003 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 HEWLETT-PACKARD COMPANY. * ****************************************************************** SPC 2 ENT DMESS EXT MESSS,#NODE EXT D65MS,.ENTR * * * DMESS * SOURCE: 91740-18033 * BINARY: 91740-16033 * PRGMR: BOB SHATZER * DATE: 09 DEC 75 * * MODIFIED BY: C.C.H. 02-16-76 * MODIFIED BY: J.P.B. JUNE 1976 * MODIFIED BY: C.H.W. FEB. 1977 * * DMESS IS A UTILITY SUBROUTINE WHICH IS USED TO SEND OPERATOR * COMMANDS TO A REMOTE CPU. * * CALLING SEQUENCE: * * JSB DMESS * DEF *+4 * DEF * DEF * DEF (IN + BYTES) * * * ON RETURN, THE REGISTERS HAVE THE FOLLOWING MEANING: * * = 0 NO RESPONSE FROM REMOTE * < 0 NEGATIVE OF NUMBER OF BYTES IN RESPONSE * = -1 INDICATES AN ERROR * * NODE NOP DESTINATION BUFAA NOP MESSAGE BUFFER BUFLA NOP MESSAGE LENGTH DMESS NOP START OF ROUTINE JSB .ENTR DEF NODE GET PRAMS * LDA D7 REMOTE - GET STREAM TYPE STA PARMB AND PUT IT INTO PARMB LDA BUFLA,I GET REQUEST LENGTH STA LNGH SAVE IN PARMB ADA DM41 SSA,RSS CHECK FOR ILLEGAL MESSAGE LENGTH JMP SZERR TOO LONG LDA LNGH SSA NEGATIVE ? JMP SZERR YES, ILLEGAL CLB NO ERROR INDICATION FOR IMMEDIATE RETURN SZA,RSS NOTHING ? JMP DMESS,I IMMEDIATE RETURN CLE,ERA TRANSFORM INTO NUMBER SEZ OF WORDS INA TO COMPUTE REQUEST LENGTH STA LNG1 SAVE FOR REQUEST MOVE ADA D5 ADD STANDARD PARMB LENGTH CPA D6 LESS THAN MIN ? INA YES STA LEN LDA BUFAA GET BUFFER ADDRESS LDB MESSA GET DESTINATION ADDRESS MVW LNG1 MOVE REQUEST INTO PARMB * LDA NODE,I GET DESTINATION STA PARMB+3 SET IN PARMB * CPA DM1 LOCAL ? JMP LOCAL YUP CPA #NODE FOR US ? JMP LOCAL YES * JSB D65MS WRITE REQUEST TO REMOTE DEF *+8 DEF CONWD CONTROL WORD DEF PARMB DEF LEN DEF D0 DEF D0 NO DATA ASSOCIATED DEF D0 NO DATA ASSOCIATED DEF D27 MAX REPLY LENGTH * JMP MSERR ERROR RETURN POINT CLB NO ERROR INDICATION LDA PARMB+7 ANY RETURN MESSAGE? SZA,RSS JMP DMESS,I NO RETURN MESSAGE LDA MESSB GET ADDRESS OF MESSAGE TO BE RETURNED LDB BUFAA GET ADDRESS OF USER'S BUFFER. MVW PARMB+7 MOVE THE REPLY TO THE USER'S BUFFER LDA PARMB+7 GET LENGTH OF MESSAGE CLE,ELA MAKE THAT # OF BYTES CMA,INA NEGATE JMP DMESS,I AND RETURN SPC 3 LOCAL JSB MESSS DEF *+3 DEF BUFAA,I MESSAGE DEF BUFLA,I LENGTH * JMP DMESS,I RETURN SPC 2 * MSERR DST BUFAA,I SAVE ERROR CODES FOR USER'S ANALYSIS. LDA D4 RETURN WITH = -4, AND = -1, CMA,INA,RSS TO INDICATE 4-BYTE ERROR-CODE MESSAGE. * SZERR CLA BUFFER SIZE ERROR - CLEAR A CCB AND SET B TO -1 JMP DMESS,I AND RETURN SPC 2 * B EQU 1 MESSA DEF PARMB+5 MESSB DEF PARMB+8 DM41 DEC -41 D0 DEC 0 D7 DEC 7 D4 DEC 4 D5 DEC 5 D6 DEC 6 D27 DEC 27 PARMB BSS 27 LNGH EQU PARMB+4 LNG1 NOP LEN NOP CONWD OCT 100000 DM1 DEC -1 * END