ASMB,L,R,C
      HED <RPCNV> 3000 REPLY CONVERTER (C) HEWLETT-PACKARD CO. 1980 
      NAM RPCNV,19,25 91741-16005 REV 2026 800314 
      SPC 1 
******************************************************************
*  * (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 THE HEWLETT-PACKARD COMPANY.   *
******************************************************************
      SPC 2 
      EXT EXEC,$LIBR,$LIBX,D65GT
      EXT #RPCV,#QXCL,#TST,$OPSY
      SPC 1 
**************************** RPCNV *******************************
*                                                                *
*      SOURCE: 91741-18005                                       *
*                                                                *
*      BINARY: 91741-16005                                       *
*                                                                *
*      PROGRAMMER: JIM HARTSELL                                  *
*                                                                *
*      FEBRUARY 28, 1977                                         *
*                                                                *
*----------------------------------------------------------------*
*                                                                *
*       MODIFIED BY DMT BEGINNING NOVEMBER 7, 1978               *
*                                                                *    
*----------------------------------------------------------------*
* BIG FIXES:                                                     *
*   CHECK PROPER WORD FOR CONTINUATION REJECT  [800314] DMT      *
******************************************************************
      SPC 1 
* 
D     EQU 256          MAX DATA PER 3000 DATA REPLY.
L     EQU 304          MAXIMUM LINE BUFFER SIZE.
DBL   EQU 512          MAXIMUM SLAVE DATA LENGTH. 
* 
* RPCNV IS THE INTERFACE TO THE DS/1000 SLAVE MONITORS FOR REPLIES
* DESTINED FOR THE HP 3000.  ALL OUTGOING REPLIES ARE CONVERTED 
* TO DS/3000 FORMATS. 
* 
      SUP 
A     EQU 0 
B     EQU 1 
      SKP 
RPCNV LDA $OPSY 
      RAR,SLA       IS THIS AN RTE-III OR IV? 
RSSI  RSS           YES.
      JMP SETCL     NO. 
      LDB RSSI      GET "RSS" INSTRUCTION.
      STB MODI2     MODIFY TO DO CROSS-MAP LOAD.
      STB MODI3     MODIFY TO DO CROSS-MAP STORE. 
      DLD MWFI      MODIFY TO DO "MWF"
      DST DMS3        CROSS-MAP MOVE. 
* 
SETCL LDA #RPCV     SET BIT 
      IOR B60K       TO SAVE
      STA CLASS       BUFFER. 
* 
************************************************************
*                                                          *
* MAIN PROCESSING SECTION FOR ALL REPLIES FOR THE 3000.    *
*                                                          *
************************************************************
* 
GET   EQU * 
      JSB EXEC      LOOK AT THE CLASS.
      DEF *+7 
      DEF D21 
      DEF CLASS 
      DEF RQBUF 
      DEF D8
      DEF PARM1 
      DEF PARM2 
* 
      LDA PARM1     IF IT'S NOT AN
      CPA D8         INTERMEDIATE CONTINUATION
      RSS             REQUEST,
      JMP DO65G         PICK UP VIA D65GT.
* 
      LDA CLASS     CLEAR "SAVE BUFFER" 
      ALR,RAR        FLAG IN CLASS. 
      STA TEMP
      JSB EXEC      DO DUMMY "GET"
      DEF *+5        TO RELEASE 
      DEF D21         BUFFER. 
      DEF TEMP
      DEF DABUF 
      DEF D0
* 
      LDB PARM2     GET TST ADDRESS.
      STB TSTAD 
      ADB D2        GET HOLDING CLASS 
      JSB LODWD      FROM S.A.M.
      STA HLDCL 
      ADB D9        GET ORIGINAL SEQUENCE 
      JSB LODWD      NUMBER FROM S.A.M. 
      STA RQ5 
* 
      LDA RQ2       IF 3000 
      AND BIT14      REJECTED,
      SZA 
      JMP RLTST        RELEASE TST. 
* 
      JMP PSTUP     DO PRELIMINARY SET-UP.
      SPC 1 
*  BUFFER CAME FROM DS/1000 MONITOR.
DO65G JSB D65GT     PICK UP BUFFER
      DEF *+6        FROM DS/1000 SLAVE MONITORS. 
      DEF #RPCV       RPCNV'S I/O CLASS.
      DEF PARMB       1000 REPLY BUFFER.
      DEF PRMBL       MAXIMUM LENGTH. 
DBUFA DEF DABUF 
      DEF MAXDA 
      JMP GET       ERROR RETURN. 
* 
      STA RQLOG     SAVE REPLY LENGTH.
      STB TCNT      SAVE LENGTH OF DATA RECEIVED. 
* 
* SEARCH TRANSACTION STATUS TABLE (TST) FOR MATCHING SEQUENCE # 
* IN 8-WORD FIXED-FORMAT HEADER.
* 
      DLD #TST      GET TST ADDR AND # OF ENTRIES.
      STA TEMP
      CMB,INB 
      STB TEMP1 
      SZA 
      SZB,RSS 
      JMP GET       FORGET IT IF NO TST.
* 
TSTLP LDB TEMP      CHECK NEXT ENTRY. 
      JSB LODWD     VALID ENTRY?
      SZA,RSS 
      JMP NXTST     NO. GO CHECK NEXT ENTRY.
      INB           YES.
      JSB LODWD     (CROSS) LOAD LOCAL SEQ. #.
      CPA PARMB+1 
      JMP CONV      MATCH. GO PROCESS REPLY.
* 
NXTST LDB TEMP      BUMP TO NEXT ENTRY. 
      ADB TSTLN 
      STB TEMP
      ISZ TEMP1 
      JMP TSTLP 
      JMP GET       NOT FOUND.
* 
* MOVE TST ENTRY FROM S.A.M. TO LOCAL STORAGE AREA. 
* (THIS IS 8-WORD HEADER BELONGING TO THIS REPLY.)
* 
CONV  LDA TEMP      SAVE ADDR OF TST ENTRY IN S.A.M.
      STA TSTAD 
      LDA TSTLN     MOVE TST ENTRY TO LOCAL STORAGE.
      CAX 
      LDA TSTAD 
      LDB LTSTA 
DMS3  MVW TSTLN     MOVE: [DMS: "MWF"]. 
* 
* PERFORM PRELIMINARY SET-UP OF FIXED FORMAT HEADER.
* 
PSTUP LDA RQ2 
      AND NOT13     CLEAR CONTINUATION BIT. 
      IOR BIT15     SET REPLY BIT.
      STA RQ2 
      LDA RQ4       REVERSE PROCESS NUMBERS.
      ALF,ALF 
      STA RQ4 
* 
      LDA PARM1     DS/3000 CONTINUATION REQUEST? 
      CPA D8
      JMP CONRQ       YES. GET DATA OFF BUFFER. 
* 
      LDA RQLOG     IF UPLIN DETECTED A TIMEOUT 
      CPA D2         ON THIS REQUEST, 
      JMP REJCT       REJECT IT.
* 
* IF OPERATOR COMMAND REPLY, PROCESS INTERVENING $STDLIST MESSAGE.
* 
      LDA PARMB 
      AND B17 
      CPA D7
      RSS 
      JMP CONV1     NOT A COMMAND REPLY.
* 
      LDA PARMB+7   IF NO ASCII 
      SZA,RSS        REPLY MESSAGE, 
      JMP CONV1       DON'T DO THE $STDLIST.
* 
      LDA RQ4       SAVE 3000 PROCESS NUMBERS.
      STA SVFTO 
      AND B377      SET "FROM PROCESS NO."
      STA RQ4         ZERO. (NO 3000 REPLY) 
      LDA RQ0       SAVE 3000 MESSAGE CLASS.
      STA SVMCL 
      LDA RQ2       SAVE 3000 STREAM TYPE.
      STA SVSTR       (REPLY BIT IS SET)
      LDA D5        BUILD $STDLIST REQUEST. 
      STA RQ0         MESSAGE CLASS = 5.
      LDA B20 
      STA RQ2         STREAM = 20.
      CLA           CLEAR CONTROL WORDS.
      STA RQ8 
      STA RQ9 
      LDA PARMB+7   GET LENGTH OF ASCII REPLY MSG.
      ADA D2        ADD # CONTROL WORDS.
      ALS 
      STA RQ7       STORE BYTE COUNT. 
      ARS 
      ADA D8
      STA RQLEN     SAVE LENGTH OF REQUEST. 
      ALF,ALF 
      STA B 
      LDA RQ0       STORE WORD COUNT. 
      AND B377
      IOR B 
      STA RQ0 
* 
      LDA PCBA      MOVE ASCII REPLY MESSAGE. 
      LDB ARQ10 
      MVW PARMB+7 
* 
      JSB SEND      WRITE $STDLIST TO QUEX. 
      JMP RLTST     ERROR RTN: LINE DISCONNECTED. 
* 
      LDA SVMCL     RESTORE 3000 MESSAGE CLASS. 
      STA RQ0 
      LDA SVSTR     RESTORE 3000 STREAM.
      STA RQ2 
      LDA SVFTO     RESTORE 3000 PROCESS NUMBERS. 
      STA RQ4 
* 
* CONVERT DS/1000 REPLY TO DS/3000 FORMAT.
* 
CONV1 CLA           CLEAR "DATA IN
      STA INPLC      PLACE" FLAG. 
      JSB D1000     MAKE CONVERSION.
* 
      STA RQ7       STORE BYTE LENGTH.
      INA           STORE WORD COUNT BYTE.
      ARS 
      ADA D8
      STA RQLEN     SAVE LEN OF DS/3000 REPLY.
      ALF,ALF 
      STA B 
      LDA RQ0 
      AND B377
      IOR B 
      STA RQ0 
* 
* CHECK IF THERE IS DATA IN THIS REPLY. 
* 
      LDA TCNT      IS THERE DATA?
      SZA 
      JMP CONT1     YES. GO PREPARE DATA REPLY. 
* 
* CLASS WRITE THE DS/3000 REPLY TO QUEX'S I-O CLASS.
* 
PUT   JSB SEND      DO CLASS WRITE/READ.
      NOP           IGNORE ERROR RETURN.
* 
* RELEASE TST ENTRY IN S.A.M. 
* 
RLTST LDA HLDCL     LEAVING A HOLDING CLASS?
      SZA,RSS 
      JMP STO0        NO. SET 1ST WORD TO 0.
* 
      JSB EXEC      GET BUFFER OFF
      DEF *+5        HOLDING CLASS
      DEF CLS21       AND DEALLOCATE. 
      DEF HLDCL 
      DEF TEMP
      DEF D0
      NOP           (IGNORE ERRORS.)
* 
STO0  LDB TSTAD 
      CLA 
      SZB           (MAKE SURE ADDR IS GOOD!) 
      JSB STRWD 
* 
      JMP GET       DONE WITH THIS REPLY. 
      SPC 5 
************************************************************
*                                                          *
*  INTERMEDIATE CONTINUATION REQUEST RECEIVED FOR DS/3000  *
*  DREAD/PREAD/DEXEC(1) DATA REPLIES.                      *
*                                                          *
************************************************************
* 
CONRQ JSB EXEC      READ DATA.
      DEF *+6 
      DEF CLS21 
      DEF HLDCL      (DE-ALLOCATE)
      DEF RQ8 
      DEF MAXDA 
      DEF TCNT       # WORDS REMAINING. 
      JMP REJCT     ERROR.
* 
      ISZ INPLC     DATA IS IN PLACE. 
      CLA           RESET BYTE
      STA RQ7        COUNT AND CLEAR
      STA HLDCL       CLASS NUMBER IN 
      LDB TSTAD        LOCAL AND
      ADB D2            SAM TST.
      JSB STRWD 
      LDA RQ0       RESET 
      AND B377       WORD 
      IOR UP8         COUNT.
      STA RQ0 
      SPC 1 
************************************************************
*                                                          *
* SECONDARY SECTION FOR DREAD/PREAD/DEXEC(1) DATA REPLIES. *
*                                                          *
************************************************************
* 
* PROCESS DATA REPLIES (POSSIBLE CONTINUATIONS).
* 
CONT1 LDA TCNT      TOTAL # DATA WORDS REMAINING. 
      STA DALEN 
      CMA,INA 
      ADA BLKLN     WILL IT ALL FIT IN THIS REPLY?
      SSA,RSS 
      JMP CONT3     YES.
* 
      LDA BLKLN     NO. SET BLOCK LENGTH TO MAX.
      STA DALEN 
      LDA RQ2       SET CONTINUATION BIT. 
      IOR BIT13 
      STA RQ2 
      LDA LCSEQ     SET RTE SEQUENCE # SO CONT. 
      STA RQ5        REQUEST WILL GO TO RPCNV.
* 
CONT3 LDA RQ0       STORE HEADER +
      ALF,ALF        APPENDAGE LENGTH.
      AND B377
      STA APLEN 
      ADA DALEN     CALCULATE 
      STA RQLEN      TOTAL LENGTH.
* 
      LDA INPLC     IF "DATA IN PLACE"
      SZA             FLAG IS SET,
      JMP CONT4          DON'T NEED TO MOVE DATA. 
* 
      LDB ARQ0      FIND WHERE TO PUT THE DATA
      ADB APLEN      IN THE DS/3000 REPLY.
      LDA DBUFA 
      MVW DALEN     MOVE THE NEXT DATA BLOCK. 
* 
CONT4 LDA DALEN     UPDATE REPLY BYTE COUNT.
      ALS 
      ADA RQ7 
      STA RQ7 
* 
      JSB SEND      WRITE REPLY TO QUEX.
      JMP RLTST     ERROR RTN: LINE DISCONNECTED. 
*     
      LDA DALEN     REDUCE TCNT BY DALEN. 
      CMA,INA       
      ADA TCNT      
      STA TCNT      
      SZA,RSS       ANY MORE DATA BLOCKS? 
      JMP RLTST     NO. GO RELEASE TST ENTRY. 
* 
* ALLOCATE A HOLDING CLASS AND WRITE DATA.
* 
      LDA BIT15     INITIALIZE CLASS # FOR
      STA HLDCL      NO WAIT. 
* 
      LDA DBUFA     CALCULATE ADDRESS 
      ADA DALEN      OF REMAINING DATA. 
      STA DTADR 
* 
      JSB EXEC      WRITE DATA BLOCK TO HOLDING CLASS.
      DEF *+8 
      DEF CLS20 
      DEF D0
DTADR DEF *-*        ADDRESS OF REMAINING DATA. 
      DEF TCNT       LENGTH OF THIS BLOCK.
      DEF TCNT
      DEF D0
      DEF HLDCL 
      JMP REJCT      ERROR. 
* 
      LDB TSTAD     SET HOLDING CLASS 
      ADB D2         NUMBER IN TST. 
      LDA HLDCL 
      JSB STRWD 
* 
      JMP GET       GET  NEXT REPLY.
      SKP 
* 
* SEND A "REJECT" REPLY TO THE 3000 FOR THIS REQUEST. 
* LOCAL TST STORAGE AREA CONTAINS CURRENT TST 4-WORD HEADER 
* AND FIXED-FORMAT HEADER FROM CURRENT REQUEST. "TSTAD" 
* CONTAINS ADDRESS OF TST ENTRY IN S.A.M. 
* 
REJCT LDA RQ2       SET REJECT BIT IN REQUEST.
      IOR BIT14 
      STA RQ2 
      LDA RQ7       SET LENGTH OF REPLY.
      INA 
      CLE,ERA 
      ADA D8
      STA RQLEN 
      JMP PUT       GO SEND REJECT REPLY & RELEASE TST. 
      SPC 5 
* 
* SUBROUTINE TO SAVE RESOURCES AND TERMINATE UNTIL
* RE-SCHEDULED BY QUEX WHEN INTERMEDIATE REPLY ARRIVES. 
* 
* 
* SUBROUTINE TO LOAD FROM ALTERNATE MAP (IF RTE-III OR IV). 
* 
LODWD NOP 
MODI2 LDA B,I       (RSS IF DMS SYSTEM) 
      JMP LODWD,I   RETURN IF RTE-II. 
      XLA B,I       LOAD WORD FROM ALTERNATE MAP. 
      JMP LODWD,I 
* 
MWFI  MWF 
      NOP 
      SPC 3 
* 
* SUBROUTINE TO STORE INTO ALTERNATE MAP (IF RTE-III OR IV).
* 
STRWD NOP 
      JSB $LIBR 
      NOP 
MODI3 STA B,I       (RSS IF DMS SYSTEM) 
      JMP OUT 
      XSA B,I       STORE WORD INTO ALTERNATE MAP.
OUT   JSB $LIBX 
      DEF STRWD     RETURN TO CALLER. 
      SKP 
* 
* SUBROUTINE TO WRITE TO QUEX'S I/O CLASS.
* 
SEND  NOP 
* 
      LDA #QXCL     IF DISCONNECTED,
      SSA           TAKE ERROR RETURN.
      JMP SEND,I
* 
      JSB EXEC      DO CLASS WRITE/READ.
      DEF *+8 
      DEF CLS20      NO ABORT.
      DEF D0
      DEF RQBUF      REPLY ADDRESS. 
      DEF RQLEN      REPLY LENGTH.
      DEF RQLEN 
      DEF D0
      DEF #QXCL      I/O CLASS OF QUEX. 
      JMP RLTST     ERROR RETURN. 
* 
      ISZ SEND      TAKE NORMAL RETURN. 
      JMP SEND,I    RETURN TO CALLER. 
      SKP Pl
* 
**************************************************************
*                                                            *
* SUBROUTINE TO CONVERT DS/1000 REPLIES TO DS/3000 FORMAT.   *
*                                                            *
**************************************************************
* 
D1000 NOP 
      LDA PARMB     ISOLATE STREAM TYPE.
      AND B377
      ADA N4        SUBRACT 4.
      LDB D3
      JSB BNDCK     CHECK RANGE: 0 - 3. 
      ADA JTAB1     TABLE ADDRESS + STREAM TYPE.
      LDA A,I 
      JMP A,I       GO TO MESSAGE CLASS PROCESSORS. 
* 
JTAB1 DEF *+1 
      DEF MSCL4     PTOP. 
      DEF MSC8B     DEXEC.
      DEF MSC8A     RFA.
      DEF MSCL3     OPERATOR COMMAND. 
* 
************************************************
* MESSAGE CLASS 3 ..... OPERATOR COMMANDS.     *
************************************************
* 
MSCL3 CLA           SET (A) = BYTE COUNT. 
      JMP D1000,I   RETURN. 
* 
************************************************
* MESSAGE CLASS 4 .....      PREAD/PWRIT/PCONT.*
************************************************
* MESSAGE CLASS 7, STREAM 21 ..... POPEN/PCLOS.*
************************************************
* 
MSCL4 LDA PARMB+7   PCLOS REPLY?
      AND B17 
      CPA D5
      JMP SBC       YES.
* 
      LDA PARMB+5   MAP DS/1000 ERROR CODES TO DS/3000. 
      LDB BIT15     SET DEFAULT TO "CCE". 
      CPA N41 
      LDB CL209      MAP -41 TO CCL & 209.
      CPA N42 
      LDB CL205      MAP -42 TO CCL & 205.
      CPA N44 
      LDB CL213      MAP -44 TO CCL & 213.
      CPA N45 
      LDB CL216      MAP -45 TO CCL & 216.
      STB RQ8       STORE IN DS/3000 REPLY. 
* 
      LDA SB21      INIT. STREAM TO 100021B.
      STA RQ2 
* 
      LDB MASK      IF POPEN REPLY, 
      LDA FCNCD 
      CPA D1
      STB RQ33       MOVE MASK WORD TO DS/3000 REPLY. 
* 
      LDA B26       SET ACCEPT/REJECT STREAM TYPE.
      LDB PARMB+7 
      SSB 
      LDA B27 
      IOR BIT15     SET REPLY BIT.
      STA RQ2 
      ELA,CLE,ERA 
      LDB D211      IF REJECT,
      CPA B27 
      STB RQ8         STORE CCG & 211.
* 
      CLA           CLEAR UNUSED WORD.
      STA RQ9 
* 
      LDA PCBA      MOVE PCB & TAG. 
      LDB ARQ10 
      MVW D23 
* 
      ISZ INPLC     SET "DATA IN PLACE" FLAG. 
* 
SBC   LDA FCNCD     SET REPLY BYTE COUNT. 
      AND B17 
      ADA N1
      ADA JTAB2 
      LDA A,I       RETURN (A) = BYTE CNT W/O DATA. 
      JMP D1000,I 
* 
JTAB2 DEF *+1 
      DEC 52        POPEN.
      DEC 50        PREAD.
      DEC 50        PWRIT.
      DEC 50        PCONT.
      DEC 0         PCLOS.
* 
************************************************
* MESSAGE CLASS 8, STREAM 20 ..... RFA.        *
************************************************
* 
MSC8A LDB PARMB+5   MOVE IERR TO "A-REG", IERR. 
      STB RQ8 
      STB RQ10
* 
      CLA 
      SSB           IF ERROR, SKIP RFAMD #. 
      JMP MSCA1 
      LDB FCNCD     IF DCRET OR DOPEN, MOVE 
      CPB D3        RFAMD ENTRY # TO "B-REG" SLOT.
      LDA PARMB+7 
      CPB D6
      LDA PARMB+7 
MSCA1 STA RQ9 
* 
      CPB D9        CHECK FOR ADDITIONAL PROCESSING.
      JMP DREAD 
      CPB D4
      JMP DLOCF 
      CPB D10 
      JMP DSTAT 
* 
      LDA D6        NONE OF THE ABOVE.
      JMP D1000,I   RETURN WITH (A) = BYTE COUNT. 
* 
DREAD LDA PARMB+7   MOVE LEN PARAM. 
      LDB PARMB+5 
      SSB 
      CLA 
      STA RQ11
      LDA D8
      JMP D1000,I   RETURN WITH (A) = BYTE COUNT. 
* 
DLOCF LDA PMB7A     MOVE DLOCF PARAMS.
      LDB ARQ11 
      MVW D7
      LDA D20 
      JMP D1000,I   RETURN WITH (A) = BYTE COUNT. 
* 
DSTAT CLA 
      STA RQ8 
      STA RQ9 
      LDA D4
      JMP D1000,I   RETURN WITH (A) = BYTE COUNT. 
* 
************************************************
* MESSAGE CLASS 8, STREAM 21 ..... DEXEC.      *
************************************************
* 
MSC8B DLD PARMB+4   MOVE A&B-REG RETURN VALUES. 
      DST RQ8 
* 
      CLA           MOVE ADDITIONAL VALUES. 
      LDB FCNCD 
      CPB D11 
      LDA D5
      CPB D13 
      LDA D2
      STA TEMP      # ADDITIONAL WORDS. 
* 
      SZA,RSS 
      JMP FRBC      NONE TO MOVE. 
* 
      LDA PMB7A 
      LDB ARQ10 
      MVW TEMP
* 
FRBC  LDA TEMP      FIND RESULTING BYTE COUNT.
      ADA D2
      ALS 
      JMP D1000,I   RETURN WITH (A) = BYTE COUNT. 
      SKP 
* 
* SUBROUTINE TO CHECK IF INDEX IS WITHIN SPECIFIED RANGE. 
*   (A) = INDEX (PRESERVED)    (B) = UPPER LIMIT. 
*   REQUEST IS REJECTED OF OUT OF BOUNDS. 
* 
BNDCK NOP 
      STA LOC        SAVE A-REGISTER. 
      SSA 
      JMP REJCT      REJECT IF NEGATIVE.
      CMA,INA 
      ADA B 
      SSA 
      JMP REJCT      REJECT IF BEYOND LIMIT.
      LDA LOC        RESTORE A-REGISTER.
      JMP BNDCK,I    RETURN.
* 
LOC   OCT 0 
      SPC 3 
* 
* SUBROUTINE TO CHECK IF DATA LENGTH EXCEEDS DS/1000 LIMIT. 
* 
LIMCK NOP           (A) = TCOUNT: -BYTES OR +WORDS. 
      SSA,RSS 
      JMP LIM1      + WORDS.
      CMA,INA       - BYTES. CONVERT TO +WORDS. 
      INA 
      ARS 
LIM1  CMA,INA 
      ADA MAXDA 
      SSA 
      JMP REJCT     EXCEEDS LIMIT. REJECT.
      JMP LIMCK,I 
      SKP 
* 
* CONSTANTS AND WORKING STORAGE.
* 
D0    DEC 0 
D1    DEC 1 
D2    DEC 2 
D3    DEC 3 
D4    DEC 4 
D5    DEC 5 
D6    DEC 6 
D7    DEC 7 
D8    DEC 8 
D9    DEC 9 
D10   DEC 10
D11   DEC 11
D13   DEC 13
D20   DEC 20
D21   DEC 21
D23   DEC 23
D211  DEC 211 
B17   OCT 17
B20   OCT 20
B26   OCT 26
B27   EQU D23 
B377  OCT 377 
B60K  OCT 60000 
UP8   BYT 10,0      DECIMAL 8, LEFT BYTE. 
BIT13 OCT 20000 
BIT14 OCT 40000 
BIT15 OCT 100000
NOT13 OCT 157777
SB21  OCT 100021
CLS20 DEF 20,I
CLS21 DEF 21,I
CL205 OCT 040315
CL209 OCT 040321
CL213 OCT 040325
CL216 OCT 040330
N1    DEC -1
N4    DEC -4
N41   DEC -41 
N42   DEC -42 
N44   DEC -44 
N45   DEC -45 
CLASS NOP 
PARM1 NOP 
PARM2 NOP 
INPLC NOP 
SVMCL NOP 
SVSTR NOP 
SVFTO NOP 
TEMP  NOP 
TEMP1 NOP 
RQLOG NOP 
RQLEN NOP 
APLEN NOP 
DALEN NOP 
TCNT  NOP 
* 
PRMBL DEC 31        MAX LENGTH OF DS/1000 REQUEST.
PARMB BSS 31        DS/1000 REQUEST BUFFER. 
PMB7A DEF PARMB+7 
PCBA  DEF PARMB+8 
* 
TSTAD NOP           ADDR OF TST ENTRY IN S.A.M. 
TSTLN DEC 14        LENGTH OF TST ENTRY.
LTSTA DEF STREM     ADDR OF LOCAL TST AREA. 
********************************************************************
STREM NOP    *     *  DS/1000 STREAM TYPE          *
LCSEQ NOP    * L   *  LOCAL SEQUENCE NUMBER        *
HLDCL NOP    * O T *  HOLDING CLASS NUMBER         *
      NOP    * C S *  MONITOR CLASS NUMBER         *
FCNCD NOP    * A T *  CALL TYPE                    *
MASK  NOP    * L   *  MASK WORD FOR POPEN          *
RQBUF BSS 8  *     *  DS/3000 FIXED FORMAT HEADER  *
********************************************************************
      BSS L-8       PLUS REQUEST BUFFER.
      BSS DBL-L+33  MORE ROOM FOR DATA BUFFER.
DABUF EQU RQBUF+33  FWA OF DATA BUFFER AREA.
* 
MAXDA ABS DBL 
BLKLN ABS D 
* 
RQ0   EQU RQBUF 
RQ2   EQU RQBUF+2 
RQ4   EQU RQBUF+4 
RQ5   EQU RQBUF+5 
RQ7   EQU RQBUF+7 
RQ8   EQU RQBUF+8 
RQ9   EQU RQBUF+9 
RQ10  EQU RQBUF+10
RQ11  EQU RQBUF+11
RQ33  EQU RQBUF+33
* 
ARQ0  DEF RQ0 
ARQ10 DEF RQ10
ARQ11 DEF RQ11
* 
      BSS 0          ******** SIZE OF RPCNV ************
* 
      END RPCNV 
                                                                                                                                                                                                      