ASMB,Q,C
      NAM SYSAT,19,45 91750-16202 REV.2013 800814 ALL 
      SUP 
* 
* 
******************************************************************
*  * (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: SYSAT
*  SOURCE: 91750-18202
*   RELOC: 91750-16202
*    PGMR: JOHN LAMPING 
* 
* 
*     WRITTEN BY LYLE WEIMAN [OCTOBER 1979] 
*     MODIFIED BY JOHN LAMPING [NOVEMBER 1979]
*         "     " LYLE WEIMAN  [JULY 1980]
* 
*     THIS PROGRAM MAY BE USED TO SEND A "BREAK" TO A REMOTE PROGRAM, 
*     E.G., ONE WHICH IS PRINTING VIA LU MAPPING, AND YOU NEED TO 
*     TERMINATE THE PRINTOUT PREMATURELY WITHOUT ABORTING IT, 
*     OR TO OBTAIN THE REMOTE SYSTEM'S ATTENTION. 
* 
*     USE (RTE-4B, RTE-L) : 
*                  - - <LU #> - - 
*                 /              \
*                /                \ 
*               /                  \
*     *RU,SYSAT,                    ,<NODE #> 
*               \                  /
*                \                / 
*                 \              /
*                  <PROGRAM NAME> 
* 
*     USE (RTE-M3) :
*                  - - <LU #> - - 
*                 /              \
*                /                \ 
*               /                  \
*     *RU,SYSAT,                    ,<NODE #> 
*               \                  /
*                \                / 
*                 \              /
*                     PR,GN,AM
* 
*     NOTE THAT, IN RTE-M3, THE PROGRAM NAME MUST BE DIVIDED INTO 
*     THREE GROUPS OF TWO CHARACTERS, SEPARATED BY COMMAS.
* 
* 
*     IF PROGRAM NAME SUPPLIED, A "BR,<PROGRAM NAME>" COMMAND IS
*     SENT TO THE REMOTE NODE SPECIFIED, VIA A CALL TO DMESS (THIS
*     REQUIRES THAT THE REMOTE OPERATOR COMMAND MODULE--OPERM--EXIST AND IS 
*     ENABLED AT THE REMOTE). 
* 
*     IF NO PROGRAM IS NAMED, SYSTEM ATTENTION IS REQUESTED VIA 
*     A CALL TO DMESS TO "RU,IOMAP".  AGAIN, THIS IMPLIES THAT THE
*     REMOTE COMMAND PROCESSOR--OPERM--EXIST, AND ALSO THAT IOMAP 
*     EXISTS AT THE REMOTE. 
* 
*     SEQUENCE OF OPERATIONS: 
* 
*     1. #PKUP IS CALLED TO RETRIEVE PARAMETERS.  IN RTE-M, PROGRAM 
*        NAME IS BROKEN UP INTO 3 GROUPS OF TWO CHARACTERS, SEPARATED 
*        BY COMMAS. 
*     2. LOGLU IS CALLED TO RETURN THE OPERATOR'S TERMINAL LU # 
*        (NOT SAME AS 1ST PARAM, SO DON'T TRUST #PKUP'S RETURN).
*     3. CHECK INPUT.  IF NO NODE # SPECIFIED, GOTO "EXIT". 
*     4. CHECK 1ST PARAMETER:  IF ASCII, GOTO STEP 9
*     5. CONVERT VALUE OF 2ND PARAMETER TO ASCII, STORED IN XXXXXX FIELD
*        OF MESSAGE:
*           RU,IOMAP, XXXXXX,-32768,25834 
*     6. SEND MESSAGE TO REMOTE NODE #. 
*     7. CHECK FOR ERROR:  IF SO, CALL DSERR & PRINT DETAILS OF ERROR.
*        IF NO DS ERROR REPORTED, PRINT "MESSAGE DELIVERED".
*        CHECK FOR RETURNED MESSAGE:  IF SO, PRINT THAT.
*        GO TO "EXIT".
*     8. (EXIT):  TERMINATE PROGRAM 
*     9. MOVE NAMED PROGRAM INTO XXXXXX FIELD OF MESSAGE: 
*          BR,XXXXXX
*        AND SEND MESSAGE TO REMOTE NODE. 
*        GO TO STEP 7 
      SPC 2 
      EXT LOGLU,#PKUP,DMESS,EXEC,DSERR
      EXT CNUMD,.MVW,.OPSY
      SPC 2 
SYSAT EQU * 
      JSB #PKUP     RECOVER PARAMETERS
      DEF *+4 
      DEF MASK
      DEF PBUFR     RETURNED INFO ARRAY 
      DEF LUTTY 
* 
*      NOTE! #PKUP MAY HAVE RETURNED THE WRONG LU, SINCE IT 
*        EXPECTS THE FIRST PARAMETER TO BE THE LU #.  SO WE'LL CALL 
*        'LOGLU' OURSELVES, TO BE CERTAIN.
* 
* 
      JSB LOGLU     DETERMINE WHAT LU TO USE FOR PRINTOUT 
      DEF *+2 
      DEF LUTTY     DUMMY STORAGE 
      STA LUTTY     SAVE LU # 
* 
*     IF THIS IS RTE-M3, AND THE USER HAS SELECTED THE
*     "BR, PROGR" FORMAT, WE'LL HAVE TO MOVE THE PARAMETERS 
*     AROUND A LITTLE BIT.
* 
      JSB .OPSY     CHECK OPERATING SYSTEM TYPE 
      CPA RTEM3        RTE-M3?
      RSS           YES, WE HAVE MORE THINGS TO CHECK.... 
      JMP S1        NO, #PKUP HAS GIVEN US THE RIGHT DATA FORMAT
      LDA PBUFR+3   IS #PKUP BEING TOO
      CPA B27           NICE TO US? 
      RSS              YES,.... 
      JMP S1        NO, CONTINUE
      LDA PBUFR+4   #PKUP HAS PUT THE NODE NUMBER IN THE SECURITY 
      STA RNODE         CODE PART OF THE <NAMR> 
      CLA,INA         AND PRETEND WE REALLY DID GET 
      STA RNODE+3       A NODE NUMBER 
* 
S1    EQU * 
      LDA PBUFR+3   WAS A PROGRAM 
      AND D3        CHECK ONLY 1ST PARAMETER TYPE FIELD 
      CPA D3             NAME GIVEN?
      JMP BRPRG     YES, ISSUE "BR,PROGRAM NAME"
* 
*     GET SYSTEM ATTENTION
* 
      LDA @SYMS 
      LDB @BUFR     MOVE MESSAGE TO BUFFER
      JSB .MVW
      DEF D15 
      NOP 
      JSB CNUMD     CONVERT LU # (IF ANY) 
      DEF *+3 
      DEF PBUFR 
      DEF BUFFR+5 
* 
      LDA SYML      LOAD MESSAGE SIZE, IN BYTES 
* 
DMES. EQU *         HERE TO ISSUE DMESS CALL
      STA MSLEN     SAVE MESSAGE SIZE, IN BYTES 
      LDA RNODE+3   CHECK RETURN: 
      CPA D1          WAS AN NODE # RETURNED? 
      RSS           YES, CONTINUE 
      JMP EXIT      NO NODE # PASSED
* 
      JSB DMESS     NOW SEND MESSAGE TO REMOTE
      DEF *+4 
      DEF RNODE     DESTINATION NODE #
@BUFR DEF BUFFR     MESSAGE BUFFER
      DEF MSLEN     MESSAGE LENGTH, IN BYTES
* 
      STA PBUFR     SAVE REPLY LENGTH 
      SSB           ERROR?
      JMP ERPRT     YES, GET DETAILS
* 
      JSB PRNT
      DEF SUCMG     "MESSAGE DELIVERED" 
      DEF SUCML 
* 
      LDA PBUFR     GET REPLY LENGTH
      SZA,RSS       ANY RETURN MESSAGE? 
      JMP EXIT      NO, SIMPLY EXIT 
* 
*     A MESSAGE HAS BEEN RETURNED.  PRINT IT FOR USER.
* 
      JSB PRNT
      DEF BUFFR 
      DEF PBUFR 
* 
*     HERE TO TERMINATE 
* 
EXIT  EQU * 
      JSB EXEC
      DEF *+2 
      DEF D6
      SPC 2 
*     HERE TO GET DETAILS ABOUT AN ERROR
* 
ERPRT EQU * 
      JSB DSERR 
      DEF *+2 
      DEF BUFFR 
* 
      JSB PRNT      PRINT THE ERROR 
      DEF BUFFR 
      DEF D24       BUFFER LENGTH 
      JMP EXIT
      SPC 2 
*     HERE TO ISSUE "BR,PROGRAM NAME" 
* 
BRPRG EQU * 
      LDA @BR 
      LDB @BUFR 
      JSB .MVW      MOVE MESSAGE
      DEF D5
      NOP 
* 
      LDA D10       LOAD SIZE OF MESSAGE
      JMP DMES.     AND CALL DMESS
      SPC 1 
*     SUBROUTINE TO PRINT MESSAGES
* 
*     CALLING SEQUENCE: 
*     JSB PRNT
*     DEF <BUFFER>
*     DEF <BUFFERLENGTH>
* 
PRNT  NOP 
      DLD PRNT,I
      DST PRN1
      ISZ PRNT      BUMP RETURN 
      ISZ PRNT         ADDRESS
      JSB EXEC           AND PRINT MESSAGE
      DEF *+5 
      DEF D2
      DEF LUTTY 
PRN1  NOP           MESSAGE ADDRESS 
      NOP           ADDRESS OF LENGTH 
      JMP PRNT,I    RETURN TO CALLER
      SPC 2 
*     DATA AREA 
* 
M5    DEC -5
RTEM3 EQU M5        $OPSY CODE FOR RTE-M3 
D1    DEC 1 
D2    DEC 2 
D3    DEC 3 
D5    DEC 5 
D6    DEC 6 
D15   DEC 15
D10   DEC 10
B27   OCT 27
D24   DEC 24
* 
*     DEFINE #PKUP MASK 
MASK  BYT 2,3       2 PARAMS: BOTH RET'D IN <NAMR> FORMAT 
* 
LUTTY NOP           STORAGE FOR TERMINAL LU 
MSLEN NOP 
@SYMS DEF SYMS
SYMS  ASC 15,RU,IOMAP, XXXXXX,-32768,25834
SY..  EQU *-SYMS
SYML  ABS SY..+SY.. SYZE OF MESSAGE, IN BYTES 
* 
SUCMG ASC 9,MESSAGE DELIVERED 
SUCML ABS *-SUCMG 
* 
*     NOTE: DO NOT DISTURB ORDER OF THE FOLLOWING:
@BR   DEF BRMS
BRMS  ASC 2,BR, 
* 
PBUFR BSS 10        PARSE BUFFER
RNODE BSS 10        REMOTE NODE NUMBER
* 
* 
*     END OF FIXED-ORDERING 
* 
BUFFR BSS 24        MESSAGE BUFFER
      END SYSAT 
          