*COMDECK /DPEDSQ/ 
*#
*1CD  /DPEDSQ/
*0D   PURPOSE 
*0        COMMON DECK TO DISPLAY PARITY ERROR BLOCK VIA ERR$RM AND
*         HANDLE PARITY ERROR OPTION EO. IF EO=T, ERR$RM IS CALLED
*         VIA LABEL ABTPAR ISSUING FATAL ERROR 137B. IF EO=A, CONTROL 
*         IS PASSED TO LABEL ACPTDAT WHICH MUST BE SUPPLIED BY CALLING
*         PROGRAM. IF EO=D, CONTROL IS PASSED TO THE END OF THE COMMON B
*         BLOCK.
*0D   CALL
*         *CALL /DPEDSQ/
*0D   PARAMETERS
*         A0        FIT ADDRESS 
*         B1        1 
*         B3        START OF BAD BLOCK
*0D   REGISTERS USED
*         ALL 
*0D   OTHER CODE
*         ERR$RM
*#
          SX1       36000B
          SA2       A0
          BX7       -X1*X2
          SA7       A0             CLEAR ERROR STATUS 
          F.RM      EO,B2 
          SB4       4 
          LT        B2,B4,NDISP 
*#
*         SET UP INSERTS FOR ERROR MESSAGE TO DISPLAY BAD DATA
*#
          SX3       B3
          MX2       42
          SA5       INST
          BX2       X5*X2          PUT OUT AS LOC OF INSERT 
          MX4       1 
          BX5       X3+X2 
          BX6       X4+X5          SET EOL
          F.RM      IN,3,B4        PUT IN IN X3 AND B4
          GE        B4,B3,GLEN     IF IT DOEN NOT WRAP BUFFER 
          BX6       -X4*X6         CLEAR EOL
          F.RM      LIMIT,B4
 GLEN     BSS       0 
          SX2       B4-B3          LENGTH OF INSERT 
          MX5       12
          LX2       18             POSITION LENGTH
          LX5       30
          BX1       -X5*X6         CLEAR LEN
          BX6       X1+X2          ADD LEN
          SA6       A5             REWRITE INST 
          NG        X6,DISP1       IF IT DOES NOT WRAP BUFFER 
          F.RM      FIRST,5 
          SA1       A6+B1          PICK UP INST1
          MX2       42
          BX1       X1*X2          CLEAR LOC
          BX6       X1+X5          ADD LOC
          IX2       X3-X5          LENGTH OF INSERT 
          MX3       12
          LX2       18             POSITION LENGTH
          LX3       30
          BX1       -X3*X6         CLEAR LEN
          BX6       X1+X2          ADD    LEN 
          SA6       A6+B1          REWRITE INST1
 DISP1    BSS       0 
          BX7       X"XREG.RM"
          SA7       A0+"FWRD.RM"
          SX7       B3
          SA7       SAVB3 
          CRMEP     ES=1137B,SES=3,INA=INST 
          SA1       SAVB3 
          SB3       X1
          SA1       A0+"FWRD.RM"
          BX"XREG.RM" X1
 NDISP    BSS       0 
 .CAP     IFC       EQ,/"#.C#"/CAP.IN/   MICRO DEFINED BY CAP.RM
          SA1       CAPSTAT 
          BX7       X1
          SA7       =XRM$TMP
 .CAP     ENDIF 
          SET.RM    PEF,1 
          F.RM      EO
          MX2       58
          BX1       -X2*X1
          SB2       X1             EO WITH DISPLAY BIT REMOVED
          SB5       #T# 
          EQ        B2,B5,ABTPAR   IF EO=T, TAKE ERROR EXIT-FATAL 
          SB5       #A# 
          EQ        B2,B5,ACPTDAT  IF EO=A, ACCEPT DATA AS OK 
          SB5       #D# 
          EQ        B2,B5,DROPPAR  IF DROP, ELSE INVALID SO ABORT 
* 
*         PARITY ERROR IS FATAL - PRINT FATAL MESSAGE AND TAKE EX 
* 
 ABTPAR   BSS       0 
          BX7       X"XREG.RM"
          SA7       A0+"FWRD.RM"
          CRMEP     ES=137B,FNF=#YES#,SES=4 
 INST     CRMEI     EOL=0,TYPE=1,MODE=1,LEN=0,LOC=0 
 INST1    CRMEI     EOL=1,TYPE=1,MODE=1,LEN=0,LOC=0 
 SAVB3    BSS       1 
 DROPPAR  BSS       0 
************************************************************************
* 
*        END OF COMMON CODE 
* 
************************************************************************
* END /DPEDSQ/
