ASMB,R,L,C
      HED DMESG 91740-16032 REV 1840 * (C) HEWLETT PACKARD CO. 1978 
      NAM DMESG,7 91740-16032 REV 1840 780628 
      SPC 1 
******************************************************************
*  * (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.       *
******************************************************************
      SPC 2 
******************************************************
* 
*DMESG              TELLOP MESSAGE SUBROUTINE 
* 
*SOURCE PART #      91740-18032 
* 
*REL PART #         91740-16032 
* 
*WRITTEN BY:        LARRY POMATTO 
* 
*DATE WRITTEN:      7-30-74 
* 
*MODIFIED BY:       JEAN-PIERRE BAUDOUIN
* 
*DATE MODIFIED:     MAY 1976
* 
********************************************************* 
* 
*  MODIFIED BY DMT ON 6/28/78 TO CHANGE ERROR RETURN
* 
********************************************************* 
      SPC 1 
* 
* LIBRARY SUBROUTINE APPENDED TO RTE USER PROGRAM THAT SENDS
* MESSAGES TO THE SYSTEM CONSOLE AT THE GIVEN DESTINATION NODE. 
* 
*     CALLING SEQUENCE: 
*                   JSB DMESG 
*                   DEF *+4 
*                   DEF DESTINATION 
*                   DEF BUFFER
*                   DEF BUFFER LENGTH 
*                    RETURN--A&B CONTAIN ASCII ERROR CODE IF ANY; 
*                            OTHERWISE A & B ARE BOTH ZERO. 
* 
      SPC 3 
      ENT DMESG 
* 
      EXT DEXEC,.ENTR,#NODE,$LIBR,$LIBX,$CVT3 
* 
      SUP 
* 
* GET MESSAGE ADDRESS AND LENGTH. 
* 
DEST  NOP 
BUFAD NOP 
BUFL  NOP 
DMESG NOP 
      JSB .ENTR     GET PRAM ADDRESS
      DEF DEST
      CLA 
      LDB BUFL,I    GET LENGTH
      SSB           POSITIVE WORD COUNT?
      JMP *+4       NO, TREAT AS BYTE COUNT 
      BLS           CONVERT LNGT IN WORDS TO
      CMB,INB,SZB,RSS  LNGT IN (-) BYTES
      JMP LENER     ERROR IF ZERO OR NOT PASSED 
      STA BUFL      INITIALIZE FOR NEXT TIME
      STB 0 
      ADA N10       ADJUST ACTUAL BUFFER LENGTH 
      STA LNGT      SAVE FOR THE "DEXEC" CALL 
      ADA K82       NOW MAKE SURE ORIGINAL LNGT 
      SSA            WASN'T > 72 CHARACTERS 
      JMP LENER     IT WAS! ERROR 
      CMB,INB 
      INB           CONVERT TO WORD COUNT 
      BRS            FOR THE "MVW"
      STB MVLEN 
* 
* MOVE MESSAGE TO INTERNAL BUFFER.
* 
      LDA BUFAD     GET ORIGIN ADDRESS
      LDB DFOUT     GET DESTINATION ADDRESS 
      MVW MVLEN     MOVE THE BUFFER 
* 
      CCE           SET FOR DECIMAL CONVERSION
      LDA #NODE     GET LOCAL NODE #
      JSB $LIBR     FENCE OFF 
      NOP 
      JSB $CVT3     CONVERT TO ASCII
      LDB NUMA      GT BUFFER ADDRESS 
      MVW B3        MOVE 6 CHARACTERS 
      JSB $LIBX 
      DEF *+1 
      DEF *+1       FENCE BACK ON 
* SEND THE MESSAGE WITH ID PREFIX.
* 
      JSB DEXEC 
      DEF *+6 
      DEF DEST,I
      DEF D2I       WRITE-NO ABORT
      DEF B1
      DEF OUTBF 
      DEF LNGT
* 
      JMP DMESG,I   RETURN TO CALLER WITH ERROR IN A & B. 
      CLA           NO ERROR--CLEAR 
      CLB            REGISTERS. 
      JMP DMESG,I   RETURN
      SPC 2 
LENER DLD DS03      RETURN WITH ASCII ERROR 
      JMP DMESG,I     CODE IN A & B REG.
* 
* 
* CONSTANTS AND WORKING STORAGE.
* 
MVLEN NOP 
LNGT  NOP 
B1    OCT 1 
D2I   OCT 100002
B3    OCT 3 
K82   DEC 82
N10   DEC -10 
DS03  ASC 2,DS03
DFOUT DEF OUTBF+5 
NUMA  DEF OUTBF+1 
OUTBF ASC 5,=N000000: 
      BSS 37
* 
SIZE  EQU * 
* 
      END 
                                                                                                                                            