* 04/26/77 --- 13:00
* MODULE NAME: BPMPROCS
* NUMBER: 36
* PURPOSE: CONTAINS ALL SYSTEM BPM PROCEDURES TO REDUCE
*        ASSEMBLY MEMORY REQUIREMENTS
*
* ENTRY POINTS:
*
         DEF      S36PRINT,S36INPUT WRITE AND READ TO M:UC
         DEF      S36WFKEY          WRITE TO FILE WITH KEY
         DEF      S36RFKEY,S36RFSEQ READ FILE WITH KEY AND SEQUENTIAL
         DEF      S36PREC,S36DREC   POSITION FILE, DELETE RECORD
         DEF      S36OPEN,S36CLOSE  OPEN, CLOSE FILE
         DEF      S36PFILE          POSITION FILE AT BOF OR EOF
         DEF      S36M:GP,S36M:FP   GET, FREE MEMORY PAGES
         DEF      S36M:GCP,S36M:FCP GET,FREE COMMON PAGES
         DEF      S36M:TABS         M:DEVICE TABS
         DEF      S36M:DRC          M:DEVICE DRC
         DEF      S36SCOC,S36RSCOC  SET/RESET COC LINE TABLE
         DEF      S36M:EXIT         EXIT TO MONITOR
         DEF      S36M:TIME         GET DATE/TIME
         DEF      S36M:INT          SET BREAK CONTROL
         DEF      S36RSBRK          RESET BREAK COUNT
         DEF      S36M:PAGE         EJECT LINE PRINTER PAGE
         DEF      S36OPNLP          OPEN LINE PRINTER DCB
         DEF      S36NXTF           OPEN NEXT FILE IN ACCT
         DEF      S36MTOPN,S36MTCLS OPEN,CLOSE MT FILES
         DEF      S36MTNXT,S36CLNXT OPEN,CLOSE NEXT MT FILE
         DEF      S36M:MSG          MESSAGE TO OPERATOR
         DEF      S36OPNVP,S36CLSVP,S36WRVP  F:VP I/O OPERATIONS
         DEF      S36LSORT          LINK TO SORT PROCESSOR
         DEF      S36XMAIL          SET UP XGP MAILBOX FILE
         DEF      S36M:WAIT         WAIT A SPECIFIED TIME
         DEF      S36CKTYP          CHECK FOR TYPE AHEAD
         DEF      S36ECON           TURN ECHOPLEX ON
         DEF      S36ECOFF          TURN ECHOPLEX OFF
         DEF      S36STRNS          SET TRANSPARENT MODE
         DEF      S36RTRNS          RESET TRANSPARENT MODE
         DEF      S36LP             LINE PRINTER TO QUEUE
         DEF      S363010R          RESET 3010 TERMINAL
         DEF      S363010I          3010 TERMINAL INIT
         DEF      S36M:BCD          SET BCD MODE
         DEF      S36ADJ            ADJUST DCB
*
*
         PAGE
*
*
*
         DEF      ARGSAVE           ARGUMENT SAVE VARIABLES
         DEF      MODE,BUFSZ            MODE FOR OPEN, BUFFER SIZE
         DEF      RECKEY                KEY FOR READ OR WRITE
         DEF      DCBADDR,FPTADDR       DCB ADDRESS, FPT ADDRESS
         DEF      PRECFPT,OPNFPT,CLSFPT FPT ADDRESSES
         DEF      PFILEFPT          POSITION FILE FPT
         DEF      TABSFPT           DEVICE TABS FPT
         DEF      DRCFPT            DEVICE DRC FPT
         DEF      BRKADDR,BRKFLAG,BRKSAVE  BREAK ADDR, FLAG
         DEF      MTOPNFPT,MTNXTFPT  MAG TAPE FPT'S
         DEF      TRMTYPE           BYTE 0 = TERMINAL TYPE:
*                                      <=3  TTY
*                                       >3  2741
*
*
         REF      M:UC,F:CPY,F:MT   DCB REF'S
         REF      F:VP              XGP OUTPUT FILE
*
         REF      XGPJCL1           XGP CONTROL CARD 1
         REF      XGPJCL2           XGP CONTROL CARD 2
*
         REF      3010FLG           3010 TERMINAL FLAG
         REF      3010FWD           3010 FORWARD ONLY FLAG
         REF      M:LO              M:LO DCB
         REF      F:LO
*
*
         SYSTEM   TEXTDEF
         SYSTEM   BPM
         SYSTEM   GTH               3010 INTERFACE SYSTEM
*
         DEF      36P,36D
36P      EQU      %
         DATA     X'36'             MODULE NUMBER
         DATA     X'042677'         DATE
         DATA     X'1300'           TIME
*
*
         TITLE    '** BPMPROCS(36) **'
*
*
S36PRINT EQU      %
         SAVRTN
*
         MTB,0    3010FLG           IS OUTPUT TO A 3010 TERMINAL
         BEZ      PRINT20           NO
         LW,AC3   3010W1            DEFAULT = FWD/BACK PRINT
         MTW,0    3010FWD           CHECK FORWARD ONLY FLAG
         BEZ      PRINT10           FWD/BACK
         LW,AC3   3010W2            FORWARD ONLY
PRINT10  RES      0
         STW,AC3  LITEFPT+1         STORE IN FPT
         LI,AC3   0
         STW,AC3  3010FWD           RESET 3010 FORWARD FLAG
,LITEFPT M:LITE   *DCBADDR,(BUF,*D1),(BTD,*DX1),(SIZE,*AC1)
         B        PRINT900
PRINT20  RES      0
         M:WRITE  *DCBADDR,(BUF,*D1),(BTD,*DX1),(SIZE,*AC1)
*
PRINT900 RES      0
         RETURN
*
*
S36INPUT EQU      %
         SAVRTN
*
         M:READ   *DCBADDR,(BUF,*D1),(BTD,*DX1),(SIZE,*BUFSZ),;
                  (ABN,ERRSET),(ERR,ERRSET)
         LI,SR3   0                 RESET ERROR FLAG
*
         RETURN
*
*
         PAGE
*
*
S36WFKEY EQU      %
         SAVRTN
*
         M:WRITE  *DCBADDR,(BUF,*D1),(BTD,*DX1),(SIZE,*BUFSZ),;
                  (KEY,RECKEY),(ONEWKEY),(ABN,ERRSET),(ERR,ERRSET)
         LI,SR3   0                 SET ERROR CODE TO ZERO
         B        BPMRTN            RETURN
*
*
         PAGE
*
*
S36RFKEY EQU      %
         SAVRTN
*
         M:READ   *DCBADDR,(BUF,*D1),(BTD,*DX1),(SIZE,*BUFSZ),;
                    (KEY,RECKEY),(ABN,ERRSET)
         LI,SR3   0                 SET ERROR CODE TO ZERO
         B        BPMRTN            RETURN
*
*
S36RFSEQ EQU      %
         SAVRTN
*
         M:READ   *DCBADDR,(BUF,*D1),(BTD,*DX1),(SIZE,*BUFSZ),;
                    (ABN,ERRSET)
         LI,SR3   0                 SET ERROR CODE TO ZERO
         B        BPMRTN            RETURN
*
*
         PAGE
*
*
S36PREC  EQU      %
         SAVRTN
*
,PRECFPT M:PRECORD *DCBADDR,(N,*AC1),(ABN,ERRSET)
         LI,SR3   0                 SET ERROR CODE TO ZERO
         B        BPMRTN            RETURN
*
*
S36DREC  EQU      %
         SAVRTN
*
         M:DELREC *DCBADDR,(KEY,RECKEY)
         LI,SR3   0                 SET ERROR CODE TO ZERO
         B        BPMRTN            RETURN
*
*
         PAGE
*
*
S36OPEN  EQU      %
         SAVRTN
*
         M:SETDCB *DCBADDR,(ERR,ERRSET),(ABN,ERRSET)
,OPNFPT  M:OPEN   *DCBADDR,(FILE),(PASS),(IN),(ABN,ERRSET),;
                  (ERR,ERRSET),;
                  (KEYED),(DIRECT),(KEYM,3)
         LI,SR3   0                 SET ERROR CODE TO ZERO
         B        BPMRTN            RETURN
*
*
         PAGE
*
*
* ADJUST CAL -- SET DCB TO KEYED,DIRECT,KEYM=3,OUT
*
* INPUT PARAMETERS
*       AC3 = DCB ADDR
*
S36ADJ   RES      0
         SAVRTN
         STW,AC3  DCBADDR           SAVE DCB ADDRESS
         CAL1,1   ADJFPT            ADJUST CAL
         RETURN
S36CLOSE EQU      %
         SAVRTN
*
,CLSFPT  M:CLOSE  *DCBADDR,(SAVE)
         LI,SR3   0                 SET ERROR CODE TO ZERO
         B        BPMRTN            RETURN
*
*
         PAGE
*
* S36PFILE -- POSITION FILE AT BEGINNING OR END
*
S36PFILE EQU      %
         SAVRTN
*
,PFILEFPT M:PFIL  *DCBADDR,(BOF)
*
         B        BPMRTN            RETURN
*
*
* S36NXTF -- OPEN NEXT FILE IN ACCT
*
S36NXTF  EQU      %
         SAVRTN
*
         M:SETDCB F:CPY,(ERR,ERRSET),(ABN,ERRSET)
         M:OPEN   F:CPY,(IN),(NXTF),(ERR,ERRSET),(ABN,ERRSET)
         RETURN
*
*
         PAGE
*
*
ERRSET   EQU      %                 ERROR RETURN
         SLD,SR3  -24               GET ERROR CODE IN SR3
         SLS,SR4  -25               ...AND SUBCODE IN SR4
*
BPMRTN   EQU      %                 RETURN
         RETURN
*
*
* S36M:EXIT -- EXIT TO MONITOR
*
S36M:EXIT EQU     %
         M:EXIT
*
*
         PAGE
*
* F:VP I/O OPERATIONS FOR OUTPUT TO XGP FILE
*
*
S36OPNVP EQU      %
         SAVRTN
*
         M:SETDCB F:VP,(ABN,NOVPFLE)
         M:OPEN   F:VP,(INOUT),(SAVE)
         M:PFIL   F:VP,(EOF)
         B        RTNOPNVP
*
NOVPFLE  EQU      %
         M:SETDCB F:VP,(ABN,0)
         M:OPEN   F:VP,(OUT),(SAVE)
*
RTNOPNVP EQU      %
         RETURN
*
*
S36WRVP  EQU      %
         SAVRTN
*
         LW,BUF2  BUF1              GET BYTE ADDR OF BUFFER
         SLD,BUF2 -2                CONVERT TO WORD ADDR
         SLS,BUF3 -30               RIGHT-JUSTIFY BYTE DISPLACEMENT
         M:WRITE  F:VP,(BUF,*BUF2),(BTD,*BUF3),(SIZE,*AC1)
         RETURN
*
*
S36CLSVP EQU      %
         SAVRTN
*
         M:CLOSE  F:VP,(SAVE)
         RETURN
*
*
         PAGE
*
* S36M:GP, S36M:FP -- GET, FREE MEMORY PAGES
*
* ENTRY PARAMETER: AC1 = NUMBER OF PAGES TO GET/FREE
* EXIT PARAMETERS:
*        BUF1 = ADDR OF FIRST PAGE
*        AC1  = NUMBER OF PAGES
*
S36M:GP  EQU      %
         SAVRTN
*
         M:GP     *AC1              GET NUMBER OF PAGES IN AC1
         LW,BUF1  SR2               GET ADDR OF FIRST PAGE
         LW,AC1   SR1               GET NUMBER OF PAGES
         RETURN
*
*
S36M:FP  EQU      %
         SAVRTN
*
         M:FP     *AC1              FREE NUMBER OF PAGES IN AC1
         RETURN
*
*
         PAGE
*
* S36M:GCP,S36M:FCP -- GET,FREE COMMON PAGES
*
* ENTRY,EXIT PARAMETERS SAME AS S36M:GP,S36M:FP
*
*
S36M:GCP EQU      %
         SAVRTN
*
         M:GCP    *AC1              GET COMMON PAGES
         LW,BUF1  SR2               GET ADDR OF LOWEST PAGE
         LW,AC1   SR1               GET NUMBER OF PAGES
         RETURN
*
*
S36M:FCP EQU      %
         SAVRTN
*
         M:FCP    *AC1              FREE COMMON PAGES
         RETURN
*
*
         PAGE
*
* S36RSBRK -- RESET BREAK COUNT (TEMPORARY FIX FOR UTS-B00)
*
S36RSBRK EQU      %
         SAVRTN
*
         CAL1,8   ACTVFPT           RESET BREAK COUNT
         RETURN
*
ACTVFPT  DATA     X'06100000'       RESET BREAK COUNT FPT
*
*
         PAGE
*
* S36SCOC,S36RSCOC -- SET/RESET COC LINE TABLE
*
*
S36SCOC  EQU      %
         SAVRTN
*
         CAL1,8   L(X'06600000')    GET TERMINAL STATUS
         STW,SR1  TRMTYPE           SAVE TYPE, MODES
         STB,SR4  TRMLNGTH          SAVE TERMINAL PAGE LENGTH
         SLS,SR4  -8
         STB,SR4  TRMWDTH           SAVE TERMINAL PAGE WIDTH
         LB,AC1   TRMTYPE           GET TERMINAL TYPE
         CI,AC1   3                 TEST TERMINAL TYPE
         BLE      TTYSET               TTY, GO SET NEW COC MODES
*
2741SET  EQU      %                 SET COC MODES FOR 2741
         CAL1,8   2741FPT
         B        RTNSCOC           RETURN
*
TTYSET   EQU      %                 SET COC MODES FOR TTY
         CAL1,8   TTYFPT
         B        RTNSCOC           RETURN
*
*
S36RSCOC EQU      %
         SAVRTN
*
         LI,AC1   WA(TTYMODE)+4     GET POINTER TO TTY MODES (P5)
         LB,AC2   TRMTYPE           GET TERMINAL TYPE
         CI,AC2   3                 TEST TERMINAL TYPE
         BLE      RSMODES              TTY, GO RESET COC MODES
         LI,AC1   WA(2741MODE)+4       2741, GET POINTER TO MODES (P5)
*
RSMODES  EQU      %
         LB,AC2   TRMLNGTH          GET TERMINAL PAGE LENGTH
         STW,AC2  *AC1              SET IN FPT
         AI,AC1   -1                DECR POINTER INTO MODES
         LB,AC2   TRMWDTH           GET TERMINAL PAGE WIDTH
         STW,AC2  *AC1              SET IN FPT
         AI,AC1   -1                DECR POINTER INTO MODES
*
         LI,X1    1                 INDEX FOR PROPER BYTE IN MODE WORDS
         LI,X2    3                 THREE MODE WORDS TO SET
RSLOOP   EQU      %
         LB,AC2   TRMTYPE,X2        GET OLD MODE BYTE
         STB,AC2  *AC1,X1           SET IN FPT
         AI,AC1   -1                DECR POINTER INTO MODES
         BDR,X2   RSLOOP            DO ALL MODES
*
         LB,AC2   TRMTYPE           GET TERMINAL TYPE
         CI,AC2   3                 TEST TERMINAL TYPE
         BLE      TTYSET               TTY, GO DO RESET CAL
         B        2741SET              2741, GO DO 2741 RESET CAL
*
*
RTNSCOC  EQU      %
         RETURN
*
*
         PAGE
*
*
* M:DEVICE DRC -- SET DRC BIT IN DCB
*
S36M:DRC EQU      %
         SAVRTN
*
,DRCFPT  M:DEVICE *DCBADDR,(DRC)
         RETURN
*
*
* M:DEVICE BCD  --  SET BCD BIT IN DCB
*
S36M:BCD RES      0
         SAVRTN
*
         M:DEVICE *DCBADDR,(BCD)
         RETURN
*
*
* M:TIME -- GET DATE AND T'ME FROM MONITOR
*
S36M:TIME EQU     %
         SAVRTN
*
         M:TIME   *AC3
         RETURN
*
*
         PAGE
*
* S36M:INT -- SET BREAK CONTROL
*
S36M:INT EQU      %
         SAVRTN
*
         M:INT    BRKPROG           SET BREAK CONTROL
         RETURN
*
*
BRKPROG  EQU      %
         CAL1,8   ACTVFPT           RESET BREAK COUNT
         MTW,0    BRKFLAG           TEST FOR PREVIOUS BRK
         BNEZ     TRTNCAL              YES, RETURN
         LI,AC2   X'1FFFF'          GET MASK TO GET ADDR
         LS,AC2   0,1               GET BREAK ADDR
         STW,AC2  BRKSAVE           SAVE BREAK ADDR
*
         LW,D1    BRKADDR           GET CURRENT BREAK RETURN
         BEZ      TRTNCAL              ZERO, RETURN TO BRK LOC
         LI,DX1   X'1FFFF'          GET ADDR MASK
         STS,D1   0,1               STORE RETURN ADDR IN PSD
*
TRTNCAL  EQU      %
         MTW,1    BRKFLAG           INCR BREAK FLAG
         M:TRTN                     RETURN TO BREAK ADDR
*
*
         PAGE
*
* M:DEVICE TABS -- SET TABS IN DCB
*
S36M:TABS EQU     %
         SAVRTN
*
,TABSFPT M:DEVICE *DCBADDR,(TAB,0,0,0,0,0,0,0,0,;
                                0,0,0,0,0,0,0,0)
*
         RETURN
*
*
         PAGE
*
*
* S36M:WAIT -- WAIT A SPECIFIED TIME (1.2 SEC UNITS)
*
* ENTRY PARAMETERS:
*         AC1 = NUMBER OF WAIT UNITS
*
S36M:WAIT  RES    0
         SAVRTN
         M:WAIT   *AC1
         RETURN
*
*
* M36CKTYP -- CHECK FOR TYPE AHEAD
*
* EXIT PARAMETERS:
*        SR3 = 0 IF NO TYPE AHEAD
*            = 1 IF TYPE AHEAD
*
S36CKTYP RES      0
         SAVRTN
         CAL1,8   L(X'06600000')    EXTENDED M:TS
         AND,SR3  L(X'100')         ISOLATE BIT 23 (I BIT)
         SLS,SR3  -8                RIGHT JUSTIFY
         RETURN
         PAGE
*
*
* S36STRNS -- SET TRANSPARENT MODE
*
S36STRNS RES      0
         SAVRTN
         M:DEVICE *DCBADDR,(DRC)    SET DRC MODE
         M:DEVICE *DCBADDR,(BIN)    SET BIN MODE
         RETURN
*
*
* S36RTRNS -- RESET TRANSPARENT MODE
*
S36RTRNS RES      0
         SAVRTN
         M:DEVICE *DCBADDR,(NODRC)  RESET DRC MODE
         M:DEVICE *DCBADDR,(BCD)    SET BCD MODE
         RETURN
         PAGE
*
*
* S36ECON -- TURN ECHO ON
*
S36ECON  RES      0
         SAVRTN
         CAL1,8   ECONFPT           TURN ECHO ON
         RETURN
*
*
* S36ECOFF -- TURN ECHO OFF
*
S36ECOFF RES      0
         SAVRTN
         CAL1,8   ECOFFFPT          TURN ECHO OFF
         RETURN
         PAGE
*
*
* S36LP -- FORCE LINE PRINTER OUTPUT TO SYMBIONT QUEUE
*
S36LP    RES      0
         SAVRTN
         CAL1,9   6                 FORCE LP TO QUEUE
         RETURN
*
*
         PAGE
*
*
* S363010R -- RESET 3010 TERMINAL
*
S363010R RES      0
         SAVRTN
         MTB,0    3010FLG           IS OUTPUT DIRECTED TO A 3010
         BEZ      3010R90           NO
         LI,AC1   M:UC              GET M:UC DCB
         STW,AC1  DCBADDR           SAVE IN DCB ADDRESS WORD
         M:INIT   *DCBADDR,(RESET)  RESET 3010 TERMINAL
3010R90  RES      0
         RETURN
*
*
* S363010I -- 3010 TERMINAL INIT
*
* INPUT PARAMETERS:
*
*       D1 = PAGE SIZE
*       D2 = LEFT MARGIN COLUMN (1ST COL = 0)
*
S363010I RES      0
         MTW,0    3010FLG           3010 MODE
         BEZ      *SRTN
         LI,D1    0                 TURN VERTICAL TABBING OFF
         SAVRTN
         LI,AC1   M:UC              GET M:UC DCB
         STW,AC1  DCBADDR           SAVE IN DCB ADDR WORD
         STW,D1   INITFPT+2         STORE PAGE SIZE IN FPT
         STW,D2   INITFPT+3         STORE  MARGIN IN FPT
,INITFPT M:INIT   *DCBADDR,(PAGSIZE),(LEFTMAR,0)
         RETURN
         PAGE
*
* LINE PRINTER OPERATIONS
*
*
S36M:PAGE EQU     %                 EJECT PAGE
         SAVRTN
*
         M:DEVICE *DCBADDR,(PAGE)
         RETURN
*
*
S36OPNLP EQU      %                 OPEN DCB TO LINE PRINTER
         SAVRTN
*
         M:SETDCB *DCBADDR,(ERR,ERRSET),(ABN,ERRSET)
         M:OPEN   *DCBADDR,(DEVICE,'LP'),(ERR,ERRSET),(ABN,ERRSET)
         RETURN
*
*
         PAGE
*
*
* S36M:MSG -- MESSAGE TO OPERATOR
*
*
S36M:MSG EQU      %
         SAVRTN
*
         M:MESSAGE  (MESS,*BUF1)
         RETURN
*
*
         PAGE
*
* S36MTNXT,S36CLNXT -- OPEN,CLOSE NEXT MAG TAPE FILE
*
*
S36MTNXT EQU      %
         SAVRTN
*
,MTNXTFPT M:OPEN  F:MT,(DEVICE,'9T'),(INOUT),(NXTF),(SN,'XXXX'),;
                       (ERR,ERRSET),(ABN,ERRSET),(LABEL)
         RETURN
*
*
S36CLNXT EQU      %
         SAVRTN
*
         M:CLOSE  F:MT,(SAVE)
         RETURN
*
         PAGE
*
* S36MTOPN,S36MTCLS -- OPEN,CLOSE MAG TAPE FILES
*
*
S36MTOPN EQU      %
         SAVRTN
*
,MTOPNFPT M:OPEN  F:MT,(DEVICE,'9T'),(LABEL),(IN),(INSN,'0'),;
                       (OUTSN,'0'),(ERR,ERRSET),(ABN,ERRSET)
         RETURN
*
*
S36MTCLS EQU      %
         SAVRTN
*
         M:CLOSE  F:MT,(SAVE),(REM)
         RETURN
*
*
*
* S36LSORT -- LINK TO THE SORT PROCESSOR
*
S36LSORT RES      0
         SAVRTN
         M:LINK   'SORT',':SYS'
         RETURN
*
*
         PAGE
*
*
* S36XMAIL -- SET UP XGP MAILBOX FILE
*
S36XMAIL RES      0
         SAVRTN
XMAIL10  RES      0
         M:SETDCB F:VP,(ERR,XMOERR),(ABN,XMOERR)
         M:OPEN   F:VP,(FILE,'XGPJLIST','X'),;
                        (INOUT),;
                        (SEQUEN),;
                        (ABN,XMOERR),;
                        (ERR,XMOERR),;
                        (SAVE)
         M:PFIL   F:VP,(EOF)
         M:WRITE  F:VP,(BUF,XGPJCL1),(SIZE,80),(WAIT)
         M:WRITE  F:VP,(BUF,XGPJCL2),(SIZE,80),(WAIT)
         M:CLOSE  F:VP,(SAVE)
         RETURN
XMOERR   RES      0
         SLD,SR3  -24               GET ERROR CODE IN SR3
         SLS,SR4  -25               GET SUB-CODE IN SR4
         CI,SR3   3                 DOES MAILBOX FILE EXIST
         BE       XMOERR50          NO
         CI,SR3   X'14'             IS FILE BUSY
         BNE      XMOERR50          NO
         CI,SR3   1                 MAYBE
         BE       XMAIL10           YES, TRY AGAIN
XMOERR50 RES      0
         RETURN
*
*
         PAGE
*
*
36D      CSECT    0                 DATA AREA
ARGSAVE  EQU      %                 SAVE INPUT ARGUMENTS
MODE,BUFSZ RES    1                 MODE FOR OPEN, BUFFER SIZE
RECKEY   RES      1                 KEY FOR READ OR WRITE
DCBADDR  RES      1                 DCB ADDRESS
FPTADDR  RES      1                 FPT ADDRESS
*
BRKADDR  RES      1                 BREAK RETURN ADDR
BRKFLAG  RES      1                 BREAK FLAG
BRKSAVE  RES      1                 SAVE BREAK ADDR
*
TRMTYPE  RES      1                 TERMINAL TYPE, MODES
TRMWDTH  RES      1                 TERMINAL PAGE WIDTH
TRMLNGTH RES      1                 TERMINAL PAGE LENGTH
*
2741FPT  EQU      %                 FPT FOR SETTING COC MODES
         DATA     X'06200000'       WORD 0
         DATA     X'F8000000'       FLAGS (P1,P2,P3,P4,P5)
2741MODE EQU      %
2741P1   DATA     X'0000000C'       TAB SIM OFF, UC RESTRICT OFF
2741P2   DATA     X'00020023'       SPACE INS OFF, BREAK SET = 2
2741P3   DATA     X'000000A0'       TAB RELATIVE OFF, BACKSPACE EDIT OFF
2741P4   DATA     0                 PLATEN WIDTH = 0 (INFINITE)
2741P5   DATA     0                 PAGE LENGTH = 0 (INFINITE)
*
TTYFPT   EQU      %                 FPT FOR SETTING COC MODES
         DATA     X'06200000'       WORD 0
         DATA     X'F8000000'       FLAGS (P1,P2,P3,P4,P5)
TTYMODE  EQU      %
TTYP1    DATA     X'0008000C'       TAB SIMULATION ON, UC RESTRICT OFF
TTYP2    DATA     X'00000023'       SPACE INS OFF, BREAK SET = 0
TTYP3    DATA     0                 (NONE)
TTYP4    DATA     0                 PLATEN WIDTH = 0 (INFINITE)
TTYP5    DATA     0                 PAGE LENGTH = 0 (INFINITE)
*
*
ECONFPT  RES      0                 ECHOPLEX ON FPT
         DATA     X'06200000'       WORD 0
         DATA     X'80000000'       FLAGS = P1
         DATA     X'00800080'       ECHOPLEX ON WORD
*
*
ECOFFFPT RES      0                 ECHO OFF FPT
         DATA     X'06200000'       WORD 0
         DATA     X'80000000'       FLAGS = P1
         DATA     X'00000080'       ECHOPLEX OFF WORD
*
*
3010W1   DATA     X'34000010'       FWD/BACK PRINT
3010W2   DATA     X'34000018'       FORWARD ONLY PRINT
*
*
ADJFPT   RES      0
         GEN,1,7,7,17  1,X'14',0,DCBADDR
         DATA     X'A000'           ADJUST
         DATA     X'07080000'       P6,P7,P8,P13
         DATA     2                 ORG = KEYED
         DATA     2                 ACC = DIRECT
         DATA     2                 MODE = OUT
         DATA     3                 KEYM = 3
*
         USECT    #PLOC
         END
