ASMB,R,L,C
      HED DMESG 91705-16112 * (C HEWLETT PACKARD CO. 1976 
      NAM DMESG,7 91705-16112 REV A 760319
      SPC 1 
******************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976.  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 
* SOURCE: 91705-18112 
* BINARY: 91705-16112 
* JIM HARTSELL
 JULY 30, 1974  
* 
* LIBRARY SUBROUTINE APPENDED TO RTE-C SATELLITE USER 
* PROGRAM FOR SENDING MESSAGES TO CENTRAL STATION 
* OPERATOR CONSOLE (LU 1).
* 
      ENT DMESG 
* 
      EXT DEXEC,GETLU 
* 
A     EQU 0 
* 
* GET MESSAGE ADDRESS AND LENGTH. 
* 
DMESG NOP 
      ISZ DMESG 
      ISZ DMESG 
      LDA DMESG,I 
      JSB INDCK 
      STA BUFAD     MESSAGE ADDRESS.
      ISZ DMESG 
      LDA DMESG,I 
      JSB INDCK 
      LDB A,I 
      ADB MD38      TRUNCATE TO 36 WORDS. 
      LDA A,I 
      SSB,RSS 
      LDA D37 
      STA BUFL      MESSAGE LENGTH (WORDS). 
      CMA,INA 
      STA CNT 
      ISZ DMESG     ADJUST RETURN ADDRESS.
* 
* MOVE MESSAGE TO INTERNAL BUFFER.
* 
      LDA DFOUT 
      STA TEMP
* 
LOOP  LDA BUFAD,I 
      STA TEMP,I
      ISZ BUFAD 
      ISZ TEMP
      ISZ CNT 
      JMP LOOP
* 
      LDA BUFL      ADJUST BUFFER LENGTH. 
      ADA B3
      STA BUFL
* 
      JSB GETLU     GET LU OF THIS SATELLITE. 
      DEF *+2 
      DEF TEMP
* 
      LDA TEMP      CONVERT TO ASCII AND
      LDB DFLU      PUT INTO MESSAGE. 
      JSB BTOA
  
* SEND THE MESSAGE WITH ID PREFIX.
* 
      JSB DEXEC 
      DEF *+6 
      DEF B0
      DEF B2
      DEF B1
      DEF OUTBF 
      DEF BUFL
* 
      JMP DMESG,I   RETURN TO CALLER. 
* 
* SUBROUTINE TO CHASE INDIRECTS.
* 
INDCK NOP 
      RSS 
      LDA A,I 
      RAL,CLE,SLA,ERA 
      JMP *-2 
      JMP INDCK,I 
* 
* BINARY TO ASCII CONVERSION ROUTINE. 
* 
* CALLING SQUENCE:  
* 
*     (A) = BINARY NUMBER.
*     (B) = ASCII DESTINATION BUFFER ADDRESS. 
*     JSB BTOA
* 
BTOA  NOP           ENTRY.
      STA TEMP
      STB TEMP+1
      LDA DECX      INIT. DEC. INDEX. 
      STA TEMP+2
      CLB           (B)=LEFT/RIGHT POINTER. 
      STB TEMP+3    INIT. LEADING ZERO FLAG.
* 
CONV1 CLA 
      STA TEMP+4    INIT. CURRENT DIGIT.
      LDA TEMP      GET VALUE.
CONV2 ADA TEMP+2,I  ADD TABLE ENTRY.
      SSA           DID IT GO NEGATIVE? 
      JMP CONV3     YES.
      STA TEMP      NO. 
      ISZ TEMP+4
      JMP CONV2     LOOP BACK.
* 
CONV3 LDA EMP+3    LEADING ZERO?  
      ADA TEMP+4
      SZA,RSS 
      JMP CONV4     YES, IGNORE.
      LDA TEMP+4    NO. 
      IOR B60       CONVERT TO B60. 
* 
      SLB,RSS       INSERT, L OR R? 
      ALF,SLA,ALF   WILL ALWAYS SKIP. 
      IOR TEMP+1,I  MERGE RIGHT CAR.
      STA TEMP+1,I
      SLB 
      ISZ TEMP+1    MOVER POINTER.
      INB 
      ISZ TEMP+3    LEADING ZERO FLAG.
* 
CONV4 CCA 
     CPA TEMP+2,I  ARE WE DONE? 
      JMP BTOA,I    YES, RETURN.
      ISZ TEMP+2    NO, MOVE DECADE POINTER.
      CPA TEMP+2,I  LAST DIGIT? 
      ISZ TEMP+3    YES.
      JMP CONV1     NO. 
* 
DECX  DEF .DIGT 
.DIGT DEC -10000,-1000,-100,-10,-1
* 
* 
* CONSTANTS AND WORKING STORAGE.
* 
B0    OCT 0 
B1    OCT 1 
B2    OCT 2 
B3    OCT 3 
B60   OCT 60
D37   DEC 37
MD38  DEC -38 
CNT   NOP 
BUFL  NOP 
BUFAD NOP 
TEMP  BSS 5 
DFLU  DEF OUTBF+1 
DFOUT DEF OUTBF+3 
OUTBF ASC 3,=S  : 
      BSS 37
* 
SIZE  EQU * 
* 
      END 
                                                                                                