*DECK QDLDIAG                                                           000360
          IDENT QDLDIAG                                                 000260
*  MACRO FOR CIO READ REQUEST AND RECALL WHILE WAIT 
* 
* ********ENTRY POINTS
* 
          ENTRY  DIAGS
          ENTRY  DIAGNOS
          ENTRY     DIAG
          ENTRY  DIAGDL 
* 
* ************EXTERNAL REFERENCES 
* 
          EXT    DAGNOS1,DAGNOS2
          EXT    CURCOL 
          EXT    NBRLINE
          EXT    DDLPRNT
          EXT ERRCNTR                                                   000770
          EXT    ABRT1                                                  000430
          EXT    ABRT3                                                  000440
          ENTRY  ENDCOMP
 DIAGDL   EQ   *+1S17        ENTRY/EXIT 
          SA1    X1 
          BX6    X1 
          SA6    DIAGNO 
          RJ     DIAG 
DIAGNO    DATA   0
          EQ   DIAGDL        RETURN 
  
*                            AN ALTERNATE ENTRY POINT 
DIAGS     DATA   0           CALLED FROM DLSYN  WRITTEN  IN SYMPL 
          RJ     DIAG 
DIAGNOS   DATA   0           DIAGNOS IS SET IN DLSYN
          EQ     DIAGS
 DIAG     DATA      0                    .TEMPORARY DIAGNOSTIC OUTPUTER 
          SA3    ERRCNTR                                                000790
          SX6    X3+1                                                   000800
          SA6    A3                                                     000810
          SA5       NOTDAG              .IN NOTE OR REMARKS MODE
          NZ        X5,DAGEX1 
          SB6       1 
          SA5       MESSBUF+2 
          SB7       9 
          BX6       X5
          SA6       A5+B6               .BLANK OOT BUFFER 
 DG69     SA6       A6+B6 
          SB7       B7-B6 
          NE        B7,B0,DG69
          SA5       DIAG
          AX5       30
          SX4       1 
          IX6       X5+X4 
          SB3       X5
          SA5       B3                  .GET DIAG NUMBER
          LX6       30
          SA6       DIAG
          SX6       X5
          SA6       DAGNUMB 
          RJ        BNDC5               .CONVERT BINARY TO DEC
          MX7       42
          BX7       -X7*X6
          SA4       MESSLGN 
          BX6       X7+X4 
          LX6       18
          SA6       MESSBUF 
          SA5       DAGNUMB 
          SB4       X5-144B 
          GE        B4,B0,DG3 
          SX4    DAGNOS1
 DG5      MX6       59
          BX6       -X6*X5
          AX5       1                   .DIVIDE BY TWO
          SB4       X5
 DG0      SA4       X4+B4 
          NZ        X6,DG1
          AX4       30                  .ADDRESS IN UPPER FOR ODD 
 DG1      SB4       X4                  .LOC OF MESSAGE 
          EQ        B4,B0,DAGEXIT 
          AX4       18
          MX5       54
          BX6       -X5*X4              .LENGTH OF MESSAGE
* STICK IN CODE HERE TO OBTAIN DIAG DEGREE OF ERROR AND STORE IN CELL 
*  OR CHECK IMMEDIATELY ON THE X OPTION 
          SB7       X6
          SX5    10 
          IX5    X5-X6             .IS LENGRH GEATER THAN 10WORDS 
          SB7       B7-B6 
          SA5       B4
          MX6       6 
          BX6       X6*X5               .GET DIAG TYPE
          LX6       6                   .RT JUST
          SB4       X6-6                .ELIMINATE DIAGS P,T-TYPE 
          LT     B0,B4,EXTND       NOT C OR E TYPE
          SX6       1 
          SA6    ENDCOMP
 DGIVE    BX6       X5
          SA6      MESSBUF+3
 DG2      SA5       A5+B6               .BLOCK TRANSFER 
          BX6       X5
          SA6       A6+B6 
          SB7       B7-B6 
          NE        B7,B0,DG2 
          SA5    NBRLINE
          BX6       X5
          MX5       30
          BX6       -X5*X6              .GET LOWER 5 DIGITS 
          LX6       30
          SA6       MESSBUF+1 
          SA5    CURCOL    GET COLUMN NUMBER
          BX6       X5
          RJ        BNDC5 
          SA4        =5503030000B 
          MX5       48                  .2 DEC DIGITS = CARD COL
          BX7       -X5*X6
          BX6       X7+X4 
          SA5       MESSBUF+1 
          BX6       X6+X5 
          SA6       A5
          SA1    PLIST
          RJ     DDLPRNT
          EQ     DAGEXIT
PLIST     VFD    60/MESSBUF 
          VFD    60/MESSLEN 
          VFD    60/MESSRTR 
 MESSLEN  DATA   137
MESSRTR   DATA   0
 EXTND    SA4       XTENDMD             .IS WE
          ZR        X4,DAGEXIT          DONT PRINT THIS MESSAGE 
          EQ        B0,B0,DGIVE               .GIVE THESE MICKIES 
DG3       SB7    B4-120             IN RANGE 100 - 120
          GE     B7,B0,DG20 
          SX4    DAGNOS2
          SX5       B4
          EQ        B0,B0,DG5 
 DG20     SX5       25
          SX4    DAGNOS1
          EQ        B0,B0,DG5 
 DAGEX1   SA5       DIAG
          SX6       1 
          LX6       30
          IX6       X6+X5 
          SA6       A5
DAGEXIT   BSS    0
          SA1    DAGNUMB                                                000460
          SX2    X1-140                                                 000470
          ZR     X2,ABORT1                                              000480
          SX2    X1-169                                                 000490
          ZR     X2,ABORT3                                              000500
          SB3       X5
          SA5       A5+B6 
          SB4       X5
          EQ        B0,B0,DIAG
 ABORT1   RJ     ABRT1                                                  000520
 ABORT3   RJ     ABRT3                                                  000530
 NOTDAG   DATA      0                    .NOTE MODE FLAG
 DAGNUMB  DATA      0                    .TEMP STORAGE
 BLNK     DATA      55555555555555555500B 
 MESSBUF  DATA      30H ***   **
          BSSZ      10
          DATA   55555555555555555555B
          DATA   55555555555555555555B
 XTENDMD  DATA    1                                                     000450
 ENDCOMP  DATA   0
 MESSLGN  VFD       60/47475555474747000000B
*         FIVE DIGIT BINARY TO DECIMAL
* 
*         REGISTER USAGE
*         A0        NOT USEC
*         B1 TO B4  NOT USEC
*         B5        VOLATILE
*         B6        MUST CONTAIN 1
*         B7        NOT USED
*         X0 TO X3  NOT USED
*         X4 TO X5  VOLATILE
*         X6        INPUT - BINARY INTEGER IN RIGHT 18 BITS 
*         X6        OUTPUT - FIVE BLANKS AND FIVE DECIMAL DIGITS
*         X7        VOLATILE
 LOOP     FX4       X5*X7               HI ORDER AFTER LEFT ONE DECIMAL 
          DX7       X5*X7               LO ORDER AFTER LEFT ONE DECIMAL 
          LX6       6                   SHIFT ACCUMULATED DIGITS
          SB5       B5-B6               COUNT DOWN
          IX6       X6+X4               ACCUMULATE DECIMAL DIGITS 
          NE        B5,LOOP             NOT FINISHED
 BNDC5    DATA      0                    IN AND CUT POINT 
          SA5       TENM5               DECIMAL RIGHT SHIFTER 
          LX7       B6,X6               DOUBLE AND
          SX6       X7+B6                  ROUND
          LX6       31
          PX6       B0,X6               PACK UP 
          RX7       X6*X5               DECIMAL RIGHT SHIFT 
          SA5       PROT
          SB5       5                   DGIGT COUNTER PRESET
          LX7       1 
          BX6       X5
          SA5       TEN 
          EQ        B0,B0,LOOP
 TEN      DATA      20000000000000000012B 
 PROT     DATA      H*0WWWW(    * 
 TENM5    DATA      00702476132610706644B 
          END 
