User Tools

Site Tools


cdc:nos2.source:opl.opl871:deck:bldabh

Deck BLDABH

Library Member Format: MODIFY

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M00S00001.bldabh  +++|          IDENT  BLDABH
00002  M00S00002.bldabh  +++|          ENTRY  BLDABH
00003  M00S00003.bldabh  +++|          ENTRY  GETABH
Line S00004 Modification History
M01 (Removed by) ns2440
Seq #  *Modification Id* Act 
----------------------------+
00004  M01S00004.ns2440  ---|*COMMENT  BUILD APPLICATION BLOCK HEADER.
Line S00001 Modification History
M01 (Added by) ns2440
Seq #  *Modification Id* Act 
----------------------------+
00005  M01S00001.ns2440  +++|*COMMENT  BLDABH - BUILD APPLICATION BLOCK HEADER.
Line S00005 Modification History
M01 (Removed by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00006  M01S00005.281l803 ---|          COMMENT COPYRIGHT CONTROL DATA CORP.  1978.
Line S00001 Modification History
M01 (Added by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00007  M01S00001.281l803 +++|          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00008  M00S00006.bldabh  +++|          TITLE  BLDABH - BUILD APPLICATION BLOCK HEADER.
00009  M00S00007.bldabh  +++|          SPACE  4
00010  M00S00008.bldabh  +++|*****     BLDABH - BUILD APPLICATION BLOCK HEADER.
00011  M00S00009.bldabh  +++|*         W.E. MARTIN.       77/01/31.
00012  M00S00010.bldabh  +++|
00013  M00S00011.bldabh  +++|
00014  M00S00012.bldabh  +++|*         COMMON TEXT DEFINITION.
00015  M00S00013.bldabh  +++|
00016  M00S00014.bldabh  +++|
00017  M00S00015.bldabh  +++|*CALL     COMCMAC
00018  M00S00016.bldabh  +++|*CALL     COMKFLD
00019  M00S00017.bldabh  +++|*CALL     COMKMAC
00020  M00S00018.bldabh  +++|*CALL     COMKNWF
00021  M00S00019.bldabh  +++|*CALL     COMSPRD
00022  M00S00020.bldabh  +++| BLDABH   SPACE  4,35
00023  M00S00021.bldabh  +++|***       BLDABH - BUILD APPLICATION BLOCK HEADER.
00024  M00S00022.bldabh  +++|*
00025  M00S00023.bldabh  +++|*         *BLDABH* WILL FORMAT THE APPLICATION BLOCK HEADER, *ABH*,
00026  M00S00024.bldabh  +++|*         FOR A FORTRAN EXTENDED OR COBOL USER.  SINCE THE HEADER
00027  M00S00025.bldabh  +++|*         IS PACKED INTO FIELDS THAT ARE MEANINGFUL ONLY TO THE
00028  M00S00026.bldabh  +++|*         SUPERVISORY MESSAGE PROCESSOR, THIS ROUTINE WILL MAP USER
00029  M00S00027.bldabh  +++|*         SUPPLIED (KEYWORD,VALUE) PAIRS INTO THE APPROPRIATE FIELDS
00030  M00S00028.bldabh  +++|*         VIA TABLE LOOKUP OF THE KEYWORD.
00031  M00S00029.bldabh  +++|*
00032  M00S00030.bldabh  +++|*         CALL FORMAT -
00033  M00S00031.bldabh  +++|*
00034  M00S00032.bldabh  +++|*         FORTRAN EXTENDED -
00035  M00S00033.bldabh  +++|*
00036  M00S00034.bldabh  +++|*         CALL BLDABH(KEYWORD1,VALUE1, ... )
00037  M00S00035.bldabh  +++|*
00038  M00S00036.bldabh  +++|*         COBOL -
00039  M00S00037.bldabh  +++|*
00040  M00S00038.bldabh  +++|*         ENTER BLDABH USING KEYWORD1,VALUE1, ... .
00041  M00S00039.bldabh  +++|*
00042  M00S00040.bldabh  +++|*         WHERE - KEYWORD1 = MAY BE OF THE FORM 3CXXX, WHERE C IS THE
00043  M00S00041.bldabh  +++|*                            HOLLERITH CHARACTER DESCRIPTOR, L OR H,
00044  M00S00042.bldabh  +++|*                            AND XXX IS ANY OF THE KEYWORDS WHOSE
00045  M00S00043.bldabh  +++|*                            UNION DETERMINES THE SET OF FIELDS IN THE
00046  M00S00044.bldabh  +++|*                            *ABH*.
00047  M00S00045.bldabh  +++|*
00048  M00S00046.bldabh  +++|*                 VALUE1 = VALUE TO BE ASSOCIATED WITH PRECEDING
00049  M00S00047.bldabh  +++|*                          KEYWORD.
00050  M00S00048.bldabh  +++|*                          FORTRAN EXTENDED = INTEGER.
00051  M00S00049.bldabh  +++|*                          COBOL = COMPUTATIONAL-1.
00052  M00S00050.bldabh  +++|
00053  M00S00051.bldabh  +++|
00054  M00S00052.bldabh  +++|          VFD    42/0LBLDABH,18/BLDABH
00055  M00S00053.bldabh  +++| BLDABH   SUBR               ENTRY/EXIT
00056  M00S00054.bldabh  +++|          SX6    A0
00057  M00S00055.bldabh  +++|          SB1    1
00058  M00S00056.bldabh  +++|          SA2    A1          READ TERMINAL NAME
00059  M00S00057.bldabh  +++|          SA6    BLDA        SAVE (A0)
00060  M00S00058.bldabh  +++|          SA3    =XABH.      DEFAULT APPLICATION BLOCK HEADER
00061  M00S00059.bldabh  +++|          ZR     X1,BLD2     IF NO ARGUMENTS - ABORT TASK
00062  M00S00060.bldabh  +++|          BX0    X3
00063  M00S00061.bldabh  +++|          SA1    X2
00064  M00S00062.bldabh  +++|
00065  M00S00063.bldabh  +++|*         PROCESS (KEYWORD,VALUE) PAIRS.
00066  M00S00064.bldabh  +++|
00067  M00S00065.bldabh  +++| BLD1     RJ     ZFN         ZERO FILL NAME
00068  M00S00066.bldabh  +++|          RJ     FKA         FIND KEYWORD ARGUMENT
00069  M00S00067.bldabh  +++|          NZ     X6,BLD2     IF KEYWORD NOT FOUND
00070  M00S00068.bldabh  +++|          MX1    1
00071  M00S00069.bldabh  +++|          SB5    B3+B4
00072  M00S00070.bldabh  +++|          AX1    B4          FORM MASK
00073  M00S00071.bldabh  +++|          SB5    B5+B1       INCREMENT SHIFT COUNT
00074  M00S00072.bldabh  +++|          SA2    A2+B1       READ VALUE FIELD
00075  M00S00073.bldabh  +++|          LX1    B5
00076  M00S00074.bldabh  +++|          ZR     X2,BLD2     IF PREMATURE END OF ARGUMENT LIST
00077  M00S00075.bldabh  +++|          SA3    X2
00078  M00S00076.bldabh  +++|          BX0    -X1*X0
00079  M00S00077.bldabh  +++|          UX3    X3          UNPACK POSSIBLE COBOL ARGUMENT
00080  M00S00078.bldabh  +++|          LX3    B3
00081  M00S00079.bldabh  +++|          BX0    X0+X3       MERGE VALUE
00082  M00S00080.bldabh  +++|          SA2    A2+B1
00083  M00S00081.bldabh  +++|          SA1    X2          NEXT KEYWORD
00084  M00S00082.bldabh  +++|          NZ     X2,BLD1     IF NOT END OF ARGUMENT LIST
00085  M00S00083.bldabh  +++|          BX6    X0
00086  M00S00084.bldabh  +++|          SA1    BLDA        SAVE (A0)
00087  M00S00085.bldabh  +++|          SA6    =XABH.
00088  M00S00086.bldabh  +++|          SA0    X1
00089  M00S00087.bldabh  +++|          EQ     BLDABHX     RETURN
00090  M00S00088.bldabh  +++|
00091  M00S00089.bldabh  +++|*         ABORT TASK DUE TO ARGUMENT ERROR.
00092  M00S00090.bldabh  +++|
00093  M00S00091.bldabh  +++| BLD2     SA1    BLDABH
00094  M00S00092.bldabh  +++|          MX0    30
00095  M00S00093.bldabh  +++|          LX1    30
00096  M00S00094.bldabh  +++|          SA2    X1-1        READ *RJ* FROM CALLING PROGRAM
00097  M00S00095.bldabh  +++|          BX6    -X0*X2      SET TRACE-BACK WORD INTO BUFFER
00098  M00S00096.bldabh  +++|          SA6    BLDB
00099  M00S00097.bldabh  +++|          ARGERR A6          EXIT TO EXECUTIVE
00100  M00S00098.bldabh  +++|
00101  M00S00099.bldabh  +++| GETABH   SPACE  4,10
00102  M00S00100.bldabh  +++|***       GETABH - GET APPLICATION BLOCK HEADER.
00103  M00S00101.bldabh  +++|*
00104  M00S00102.bldabh  +++|*         GET APPLICATION BLOCK HEADER MAKES A *CTI* REQUEST
00105  M00S00103.bldabh  +++|*         FOR RETURN OF THE LAST APPLICATION BLOCK HEADER THAT
00106  M00S00104.bldabh  +++|*         ACCOMPANIED A TERMINAL REQUEST.  THE KEYWORDS ARE
00107  M00S00105.bldabh  +++|*         LOOKED UP, THE APPROPRIATE FIELDS INTERROGATED AND
00108  M00S00106.bldabh  +++|*         RETURNED TO THE LOCATIONS SPECIFIED IN THE PARAMETER
00109  M00S00107.bldabh  +++|*         LIST.  IF THE TERMINAL IS LOGGED IN, THE STATUS WORD
00110  M00S00108.bldabh  +++|*         WILL BE RETURNED NON-ZERO; FURTHER, THE TASK WILL BE
00111  M00S00109.bldabh  +++|*         ABORTED IF THE REQUEST ATTEMPTS TO CROSS DATA BASES.
00112  M00S00110.bldabh  +++|*
00113  M00S00111.bldabh  +++|*         CALL FORMAT -
00114  M00S00112.bldabh  +++|*
00115  M00S00113.bldabh  +++|*         ALL CALLS ARE EXACTLY AS SPECIFIED IN *BLDABH*, WITH
00116  M00S00114.bldabh  +++|*         THE VALUES BEING RETURNED TO THE USER, INSTEAD OF
00117  M00S00115.bldabh  +++|*         BEING ACCEPTED.
00118  M00S00116.bldabh  +++|
00119  M00S00117.bldabh  +++|
00120  M00S00118.bldabh  +++|          VFD    42/0LGETABH,18/GETABH
00121  M00S00119.bldabh  +++| GETABH   SUBR               ENTRY/EXIT
00122  M00S00120.bldabh  +++|          MX0    42
00123  M00S00121.bldabh  +++|          SA2    X1          TERMINAL NAME
00124  M00S00122.bldabh  +++|          SB1    1
00125  M00S00123.bldabh  +++|          ZR     X1,GAH3     IF NO PARAMETERS
00126  M00S00124.bldabh  +++|          SX6    A0
00127  M00S00125.bldabh  +++|          UX1,B6 X2
00128  M00S00126.bldabh  +++|          SA6    BLDA
00129  M00S00127.bldabh  +++|          ZR     X1,GAH1     IF NO TERMINAL NAME
00130  M00S00128.bldabh  +++|          BX1    X0*X2
00131  M00S00129.bldabh  +++|          RJ     ZFN         ZERO FILL NAME
00132  M00S00130.bldabh  +++| GAH1     BX6    X1
00133  M00S00131.bldabh  +++|          SA3    A1+B1
00134  M00S00132.bldabh  +++|          SA6    BLDB
00135  M00S00133.bldabh  +++|          SX7    X3          (X7) = ADRESS OF STATUS PARAMETER
00136  M00S00134.bldabh  +++|          SX5    A1+         (X5) = ADDRESS OF PARAMETER LIST
00137  M00S00135.bldabh  +++|          SA7    A6+B1
00138  M00S00136.bldabh  +++|          GETABH A6
00139  M00S00137.bldabh  +++|          SA2    BLDB+2      APPLICATION BLOCK HEADER
00140  M00S00138.bldabh  +++|          BX0    X2          (X0) = ABH
00141  M00S00139.bldabh  +++|          SA2    BLDB+1      ADDRESS OF LOGGIN STATUS WORD
00142  M00S00140.bldabh  +++|          SA3    X2          (X3) = TERMINAL LOGIN STATUS
00143  M00S00141.bldabh  +++|          UX3    X3
00144  M00S00142.bldabh  +++|          NZ     X3,GAH3     IF TERMINAL LOGGED IN
00145  M00S00143.bldabh  +++| GAH2     SA1    BLDA
00146  M00S00144.bldabh  +++|          SA0    X1+
00147  M00S00145.bldabh  +++|          EQ     GETABHX     RETURN - TERMINAL NOT LOGGED IN
00148  M00S00146.bldabh  +++|
00149  M00S00147.bldabh  +++| GAH3     SA2    X5+2        READ ADDRESS OF KEYWORD
00150  M00S00148.bldabh  +++|          ZR     X2,GAH5     IF SHORT ARGUMENT LIST
00151  M00S00149.bldabh  +++|          SA1    X2+
00152  M00S00150.bldabh  +++| GAH4     RJ     ZFN         ZERO FILL NAME
00153  M00S00151.bldabh  +++|          RJ     FKA         FIND KEYWORD ARGUMENT
00154  M00S00152.bldabh  +++|          NZ     X6,GAH5     IF KEYWORD NOT FOUND
00155  M00S00153.bldabh  +++|          MX3    1
00156  M00S00154.bldabh  +++|          SB5    B3+B4       (B5) = SHIFT COUNT TO POSITION MASK
00157  M00S00155.bldabh  +++|          AX3    B4
00158  M00S00156.bldabh  +++|          SB5    B5+B1
00159  M00S00157.bldabh  +++|          LX3    B5          POSITION MASK
00160  M00S00158.bldabh  +++|          SA2    A2+B1       READ ADDRESS OF VALUE PARAMETER
00161  M00S00159.bldabh  +++|          BX6    X0*X3
00162  M00S00160.bldabh  +++|          AX6    B3
00163  M00S00161.bldabh  +++|          ZR     X2,GAH5     IF NO LOCATION FOR KEYWORD
00164  M00S00162.bldabh  +++|          PX6    X6
00165  M00S00163.bldabh  +++|          SA6    X2
00166  M00S00164.bldabh  +++|          SA2    A2+B1       READ ADDRESS OF KEYWORD PARAMETER
00167  M00S00165.bldabh  +++|          SA1    X2          READ NEXT KEYWORD
00168  M00S00166.bldabh  +++|          NZ     X2,GAH4     IF SHOULD CONTINUE PROCESSING
00169  M00S00167.bldabh  +++|          EQ     GAH2        RESTORE (A0) AND RETURN
00170  M00S00168.bldabh  +++|
00171  M00S00169.bldabh  +++|*         ABORT TASK DUE TO ARGUMENT ERRORS.
00172  M00S00170.bldabh  +++|
00173  M00S00171.bldabh  +++| GAH5     SA1    GETABH
00174  M00S00172.bldabh  +++|          MX0    30
00175  M00S00173.bldabh  +++|          LX1    30
00176  M00S00174.bldabh  +++|          SA2    X1-1        READ *RJ* FROM CALLING PROGRAM
00177  M00S00175.bldabh  +++|          BX6    -X0*X2      SET TRACE-BACK WORD INTO BUFFER
00178  M00S00176.bldabh  +++|          SA6    BLDB
00179  M00S00177.bldabh  +++|          ARGERR  A6         EXIT TO EXECUTIVE
00180  M00S00178.bldabh  +++|
00181  M00S00179.bldabh  +++|          SPACE  4,10
00182  M00S00180.bldabh  +++|**        FKA - FIND KEYWORD ARGUMENT.
00183  M00S00181.bldabh  +++|*
00184  M00S00182.bldabh  +++|*         FIND KEYWORD ARGUMENT FINDS A KEYWORD PARAMETER AND RETURNS
00185  M00S00183.bldabh  +++|*         A FIELD WIDTH AND SHIFT COUNT WITH WHICH TO FORM A MASK IN
00186  M00S00184.bldabh  +++|*         THE APPROPRIATE FIELD OF THE *ABH*.
00187  M00S00185.bldabh  +++|*
00188  M00S00186.bldabh  +++|*         ENTRY  (X1) = KEYWORD TO BE FOUND - LEFT JUSTIFIED.
00189  M00S00187.bldabh  +++|*
00190  M00S00188.bldabh  +++|*         EXIT   (B3) = SHIFT COUNT FOR A MASK RIGHT JUSTIFIED.
00191  M00S00189.bldabh  +++|*                (B4) = FIELD WIDTH FOR MASK OF KEYWORD.
00192  M00S00190.bldabh  +++|*                (X6) = NON-ZERO - IF ARGUMENT NOT FOUND.
00193  M00S00191.bldabh  +++|*
00194  M00S00192.bldabh  +++|*         USES   X - 3, 4, 5, 6, 7.
00195  M00S00193.bldabh  +++|*                B - 3, 4.
00196  M00S00194.bldabh  +++|*                A - 3.
00197  M00S00195.bldabh  +++|
00198  M00S00196.bldabh  +++|
00199  M00S00197.bldabh  +++| FKA      SUBR               ENTRY/EXIT
00200  M00S00198.bldabh  +++|          MX4    18
00201  M00S00199.bldabh  +++|          SB3    TABHL
00202  M00S00200.bldabh  +++|          MX7    -6
00203  M00S00201.bldabh  +++| FKA1     SA3    TABH-1+B3   CURRENT ENTRY
00204  M00S00202.bldabh  +++|          BX5    X4*X3
00205  M00S00203.bldabh  +++|          SB3    B3-B1
00206  M00S00204.bldabh  +++|          BX6    X5-X1
00207  M00S00205.bldabh  +++|          ZR     X6,FKA2     IF KEY WORD FOUND
00208  M00S00206.bldabh  +++|          GE     B3,FKA1     IF TABLE NOT EXHAUSTED
00209  M00S00207.bldabh  +++|          EQ     FKAX        RETURN - ARGUMENT NOT VALID KEYWORD
00210  M00S00208.bldabh  +++|
00211  M00S00209.bldabh  +++| FKA2     BX4    -X7*X3
00212  M00S00210.bldabh  +++|          AX3    6
00213  M00S00211.bldabh  +++|          SB3    X4          (B3) = SHIFT COUNT
00214  M00S00212.bldabh  +++|          BX4    -X7*X3
00215  M00S00213.bldabh  +++|          SB4    X4          (B4) = FIELD WIDTH OF KEYWORD
00216  M00S00214.bldabh  +++|          EQ     FKAX        RETURN
00217  M00S00215.bldabh  +++|          SPACE  4,10
00218  M00S00216.bldabh  +++| BLDA     BSS    1           TEMPORARY STORAGE FOR (A0)
00219  M00S00217.bldabh  +++| BLDB     BSS    3           PARAMETER BLOCK FOR *CTI* REQUEST
00220  M00S00218.bldabh  +++|          SPACE  4
00221  M00S00219.bldabh  +++|**        TABH - TABLE OF KEYWORD PARAMETERS.
00222  M00S00220.bldabh  +++|*
00223  M00S00221.bldabh  +++|*T        18/KEYWORD, 30/0, 6/MASK, 6/BIT
Figure

056111229BITMASK0304142590KEYWORD

00224  M00S00222.bldabh  +++|*
00225  M00S00223.bldabh  +++|*         WHERE - MASK = MASK WIDTH-1.
00226  M00S00224.bldabh  +++|*
00227  M00S00225.bldabh  +++|*                 BIT = BEGINNING BIT POSITION OF FIELD.
00228  M00S00226.bldabh  +++|
00229  M00S00227.bldabh  +++| TABH     BSS    0
00230  M00S00228.bldabh  +++|          VFD    18/3LABT,30/0,6/AHBTN-1,6/AHBTS-AHBTN+1
00231  M00S00229.bldabh  +++|          VFD    18/3LADR,30/0,6/AHADN-1,6/AHADS-AHADN+1
00232  M00S00230.bldabh  +++|          VFD    18/3LABN,30/0,6/AHBNN-1,6/AHBNS-AHBNN+1
00233  M00S00231.bldabh  +++|          VFD    18/3LACT,30/0,6/AHCTN-1,6/AHCTS-AHCTN+1
00234  M00S00232.bldabh  +++|          VFD    18/3LIBU,30/0,6/AHBUN-1,6/AHBUS-AHBUN+1
00235  M00S00233.bldabh  +++|          VFD    18/3LRFE,30/0,6/AHRFN-1,6/AHRFS-AHRFN+1
00236  M00S00234.bldabh  +++|          VFD    18/3LNFE,30/0,6/AHNFN-1,6/AHNFS-AHNFN+1
00237  M00S00235.bldabh  +++|          VFD    18/3LXPT,30/0,6/AHPTN-1,6/AHPTS-AHPTN+1
00238  M00S00236.bldabh  +++|          VFD    18/3LCAN,30/0,6/AHCNN-1,6/AHCNS-AHCNN+1
00239  M00S00237.bldabh  +++|          VFD    18/3LBIT,30/0,6/AHPRN-1,6/AHPRS-AHPRN+1
00240  M00S00238.bldabh  +++|          VFD    18/3LAIM,30/0,6/AHPRN-1,6/AHPRS-AHPRN+1
00241  M00S00239.bldabh  +++|          VFD    18/3LPEF,30/0,6/AHPRN-1,6/AHPRS-AHPRN+1
00242  M00S00240.bldabh  +++|          VFD    18/3LTLC,30/0,6/AHLCN-1,6/AHLCS-AHLCN+1
00243  M00S00241.bldabh  +++| TABHL    EQU    *-TABH      LENGTH OF KEYWORD PARAMETER TABLE
00244  M00S00242.bldabh  +++|          SPACE  4
00245  M00S00243.bldabh  +++|*         COMMON DECKS.
00246  M00S00244.bldabh  +++|
00247  M00S00245.bldabh  +++|
00248  M00S00246.bldabh  +++|*CALL     COMKZFN
00249  M00S00247.bldabh  +++|          SPACE  4
00250  M00S00248.bldabh  +++|          END
cdc/nos2.source/opl.opl871/deck/bldabh.txt ยท Last modified: by 127.0.0.1