ASMB,R,L,C
      HED APLDR-L 91750-16040 REV 2013 * (C) HEWLETT-PACKARD CO. 1980 
      NAM APLDR,1,40 91750-16040 REV.2013 800314 L
      SPC 1 
*     NAME:   APLDL 
*     SOURCE: 91750-18040 
*     RELOC:  91750-16040 
*     PGMR:   JERRY BELDEN  
* 
******************************************************************
*  * (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.       *
******************************************************************
      SPC 1 
      ENT APLDR 
      ENT WRITF,OPEN.,TMP.,O.BUF
      ENT SECUR,FINFO 
      SPC 1 
      EXT #CNOD,#NODE 
      EXT RMPAR,PRTN,EXEC,DSTIO,.ENTR 
      EXT PL..,IO..,LO..
      SPC 1 
APL.. DEF PL..
AIO.. DEF IO..
ALO.. DEF LO..
      SPC 3 
* 
*     NAME:    APLDR (L)
*     SOURCE:  91750-182??
*     BINARY:  91750-162??
*     PRGRMR:  GAB
*     DATE:    13 JUN 79
* 
      SKP 
* 
*     APLDR-L IS A PROGRAM WHICH WILL EXECUTE A SUBSET OF THE 
*     RTE-L ACTION ROUTINES.  IT IS SCHEDULED LOCALLY BY COMND (DS
*     VERSION) OR BY EXECW (DS MONITOR).  THE ACTION ROUTINES WHICH 
*     ARE AVAILABLE ARE THOSE THAT MUST DO THEIR OWN MASTER CALLS.
*     SPECIFICALLY, THESE ARE 'LO','PL', AND 'IO'.
* 
*     THE FOLLOWING COMMAND STRINGS CAUSE APLDR-L TO BE 
*     SCHEDULED:
* 
*     IO
*     PL[,XX]           (XX IS THE PROGRAM LIST OPTION) 
*     LO,PNAME,SC,CRN   (LOAD COMMAND VIA 'COMND')
*     LO,PNAME:SC:CRN   (LOAD COMMAND VIA 'REMAT')
* 
*     APLDR-L IS SCHEDULED WITHTHE FOLLOWING PARAMETERS:
* 
*      P1 - REMOTE SCHED[15]/LU[11:4]/FUNCTION[3:0] 
*      P2 - LOAD FILE SECURITY CODE ('LO' ONLY) OR
*           UNUSED
*      P3 - CHARS 1 & 2 OF FILE NAME ('LO')  OR 
*           LIST OPTION ('PL')  OR
*           UNUSED
*      P4&P5 - LAST 4 CHARS. FILE NAME ('LO') OR
*              UNUSED 
* 
*      WHERE FUNCTION IN P1 IS COMMAND TYPE:
*         0 IS PL,  1 IS LO, AND 5 IS IO
* 
      SKP 
APLDR NOP           ENTRY POINT 
      JSB RMPAR     PICK UP PARAMETERS
      DEF *+2 
      DEF ERLUF     ARRAY ADDRESS 
      JSB EXEC      PICKUP UP LAST TWO PARAMETERS 
      DEF *+5 
      DEF STCOD     STRING PICKUP RCODE 
      DEF .1        RETRIEVE FUNCTION 
      DEF FINFO     WILL CONTAIN CRN & FILE NODE #
      DEF .2         FOR 'LO' (2 WORDS) 
      JMP APERR     ERROR 
      SZA           ANY STRING ?
      JMP TERM1     NO, DON'T PROCESS (ILLEG. FATHER) 
      CPB .2        2 PARAMETERS ?
      RSS 
      JMP TERM1     NO, DON'T PROCESS 
      LDA ERLUF     REMOTE FLAG/LU/FUNCTION 
      ALF,ALF       ISOLATE LU FOR
      ALF             CONSOLE/LIST
      AND B77 
      STA TMP.
      CLA 
      STA IPRAM     CLEAR ACTION ROUTINE ERR FLG. 
      XOR B200      SET HONESTY MODE BIT FOR PRINT
      STA TMP.+1    SUBFUNCTION WORD (CONWD)
      LDA ERLUF 
      AND B17       ISOLATE FUNCTION
* 
      LDB APL..     PRESET JUMP ADDR TO F=0 
      CPA .1        'LO' COMMAND ?
      LDB ALO..     YES 
      CPA .2        OTHER 'LO' COMMAND? 
      LDB ALO..     YES 
      CPA .5        'IO' ?
      LDB AIO..     YES 
* 
*     NEW ACTION ROUTINES ACCESSED VIA EXECW SHOULD INCLUDE 
*     FUNCTION TEST & TRANSFER ADDRESS HERE.
* 
      JSB B,I       CALL THE ROUTINE
      DEF *+4 
      DEF .1        PARAMETER COUNT (1 MAX) 
      DEF PRGNM-1   PARAMETER BUFFER (PARSE FORMAT) 
      DEF IPRAM     ERROR CODE
* 
*     RETURN PROCESSING 
* 
      LDA IPRAM 
      ELA,CLE,ERA   DON'T PRINT IO ERRORS 
      SZA 
      JMP ELOG      AN ERROR, OUTPUT IT 
* 
TERM. JSB PRTN      YES, RETURN ANY ERROR TO FATHER 
      DEF *+2 
      DEF IPRAM 
TERM1 JSB EXEC      DONE
      DEF *+2 
      DEF .6
      SKP 
* 
*     DUMMY OPEN CALL 
* 
ODCB  BSS 2 
* 
OPEN. NOP 
      JSB .ENTR 
      DEF ODCB
      JMP OPEN.,I 
      SKP 
* 
*     DUMMY WRITF ROUTINE (DOES ALL ASCII OUTPUT) 
* 
WDCB  NOP 
WERR  NOP 
WBUF  NOP 
WLEN  NOP 
* 
WRITF NOP 
      JSB .ENTR 
      DEF WDCB
      LDA TMP.      WRITING TO
      SZA,RSS         LU ZERO?
      JMP WRTRN     YES, IGNORE 
      LDA ERLUF     LOCAL OR REMOTE SCHEDULE ?
      SSA,RSS       SCHEDULED BY COMND ?
      JMP LOCAL     YES 
      LDA #CNOD 
      SSA 
      JMP LOCAL     -1 IS LOCAL 
      CPA #NODE     NODE # MATCH ?
      JMP LOCAL     YES 
* 
      JSB DSTIO     MUST BE REMOTE
      DEF *+6 
      DEF #CNOD     DESTINATION NODE
      DEF N2        WRITE / NO ABORT
      DEF TMP.      2 WORD LU 
      DEF WBUF,I
      DEF WLEN,I
      JMP DSERR 
* 
WRTRN CLA           SET NO ERROR
      STA WERR,I     INTO USER'S LOG
      JMP WRITF,I   RETURN
* 
DSERR DST IPRAM+1   SAVE ERROR
      LDA BIT15 
      STA IPRAM     INDICATE IT 
      JMP WRTRN     DONE
* 
LOCAL JSB EXEC      DO LOCAL OUTPUT 
      DEF *+5 
      DEF .2        WRITE 
      DEF TMP.      LU
      DEF WBUF,I
      DEF WLEN,I
      JMP WRTRN 
      SKP 
* 
*     ERROR PROCESSING
* 
ELOG  LDA IPRAM     GET BACK ERROR
      LDB BLNK      SET DEFAULT TO POSITIVE 
      SSA 
      LDB BSIGN     NEG, GET MINUS SIGN 
      STB ESGN      SAVE ASCII SIGN 
      SSA           NEG ? 
      CMA,INA       YES, SET POS. 
      CLB           CLEAR B FOR DIVIDE
      DIV .10       DIVIDE BY 10.  2-DIGIT ERRORS ONLY
      ADB B60       MAKE REMAINDER ASCII
      ADA B60       MAKE QUOTIENT ASCII 
      ALF,ALF       POSITION QUOTIENT TO UPPER HALF 
      IOR B         PUT IN SECOND DIGIT 
      STA ERCDE 
      JSB WRITF     OUTPUT THE ERROR
      DEF *+5 
      DEF DUMMY 
      DEF DUMMY 
      DEF ERBUF 
      DEF .4
      JMP TERM.     DONE
* 
ERBUF ASC 2,CMND
ESGN  NOP           SIGN
ERCDE NOP           ERROR CODE IN ASCII 
* 
BLNK  ASC 1,
BSIGN ASC 1, -
* 
APERR DST IPRAM+1   SAVE ERROR CODE 
      LDA BIT15 
      STA IPRAM     INDICATE ERROR MESSAGE
      JMP TERM.     DONE
      SKP 
* 
*     CONSTANTS 
* 
.1    DEC 1 
.2    DEC 2 
.4    DEC 4 
.5    DEC 5 
.6    DEC 6 
.10   DEC 10
B17   OCT 17
B60   OCT 60
B77   OCT 77
B200  OCT 200 
BIT15 OCT 100000
N2    OCT 100002
STCOD OCT 100016    RCODE FOR STRING RECOVERY 
* 
A     EQU 0 
B     EQU 1 
      SPC 2 
* 
*     LOCAL DATA
* 
O.BUF EQU *         DUMMY ENTRY REQ'D BY ACTION ROUTINES
DUMMY NOP 
IPRAM BSS 5         RETURNED ERROR CODE 
TMP.  BSS 2         LU (1ST WORD) & SUBFUNCTION (2ND) 
FINFO BSS 2         REMOTE FILE CRN & NODE # FOR 'LO' 
* 
*     DO NOT ARRANGE THE NEXT 3 PARAMETERS (5 WORDS)
* 
ERLUF NOP           REMOTE FLAG/LU/FUNCTION 
SECUR NOP           LOAD FILE SECURITY CODE 
PRGNM BSS 3         LOAD FILE NAME OR PL OPTION 
      END APLDR 
                                                                                                                                                                                                                                                  