User Tools

Site Tools


cdc:nos2.source:opl.opl871:common:comkfld

Common COMKFLD

1 Modification

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M01S00001.comkfld +++|          CTEXT  COMKFLD - FIELD MARCRO.
00002  M01S00002.comkfld +++|          SPACE  4
00003  M01S00003.comkfld +++|          BASE   D
Line S00004 Modification History
M01 (Added by) comkfld
M02 (Updated by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00004  M02S00004.281l803 ---|*         COMMENT COPYRIGHT CONTROL DATA CORP.  1976.
00005  M01S00001.281l803 +++|*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00006  M01S00005.comkfld +++|***       FLD - DEFINE FIELDS.
00007  M01S00006.comkfld +++|*         G. W. PROPP.  76/05/01.
00008  M01S00007.comkfld +++|*         L. E. LOVETT.      80/04/01.
00009  M01S00008.comkfld +++| FLD      SPACE  4,10
00010  M01S00009.comkfld +++|*         FLD - DEFINE FIELDS.
00011  M01S00010.comkfld +++|*         TAGS ARE GENERATED TO GIVE THE WORD LOCATION, BIT
00012  M01S00011.comkfld +++|*         LOCATION, AND NUMBER OF BITS IN FIELD.
00013  M01S00012.comkfld +++|*
00014  M01S00013.comkfld +++|*         ENTRY  TAG FIELD WP,LB,RP
00015  M01S00014.comkfld +++|*         TAG =  NAME OF FIELD (1-6 LEGAL COMPASS CHARACTERS)
00016  M01S00015.comkfld +++|*             =  *, USE CURRENT VALUE OF PSEUDO ORG COUNTER ORLOC1$
00017  M01S00016.comkfld +++|*         LB  =  LEFT-MOST BIT POSITION WITHIN A WORD (BIT 59 BEING
00018  M01S00017.comkfld +++|*                SIGN BIT).
00019  M01S00018.comkfld +++|*         RB  =  RIGHT-MOST BIT POSITION WITHIN A WORD.
00020  M01S00019.comkfld +++|*
00021  M01S00020.comkfld +++|*         EXIT   TAGW = WORD LOCATION OF FIELD.
00022  M01S00021.comkfld +++|*                TAGS = LEFT BIT POSITION OF FIELD.
00023  M01S00022.comkfld +++|*                TAGN = NUMBER OF BITS IN FIELD.
00024  M01S00023.comkfld +++|
00025  M01S00024.comkfld +++|
00026  M01S00025.comkfld +++|          MACRO  FIELD,TAG,WP,LB,RB
00027  M01S00026.comkfld +++|          IFC    NE,/WP//,4
00028  M01S00027.comkfld +++|          IFC    EQ,/WP/*/,2
00029  M01S00028.comkfld +++| _TAG_W   EQU    ORLOC1$
00030  M01S00029.comkfld +++|          SKIP   1
00031  M01S00030.comkfld +++| _TAG_W   EQU    WP
00032  M01S00031.comkfld +++| _TAG_S   EQU    LB
00033  M01S00032.comkfld +++| _TAG_N   EQU    LB-RB+1
00034  M01S00033.comkfld +++|          ENDM
00035  M01S00034.comkfld +++|          SPACE  4,30
00036  M01S00035.comkfld +++|**        PUTFLD - PUT DATA INTO FIELD DEFINED BY *FIELD* MACRO.
00037  M01S00036.comkfld +++|*         THE DATA TO BE STORED MUST BE CONTAINED,RIGHT JUSTIFIED,
00038  M01S00037.comkfld +++|*         IN X REGISTER *Y*.
00039  M01S00038.comkfld +++|*
00040  M01S00039.comkfld +++|*         ENTRY  PUTFLD  Y,RN,TAG
00041  M01S00040.comkfld +++|*         Y     = NUMERIC CHARACTER FOR X REGISTER CONTAINING
00042  M01S00041.comkfld +++|*                RIGHT JUSTIFIED DATA TO BE STORED INTO FIELD *TAG*.
00043  M01S00042.comkfld +++|*                2 THRU 7 FOR X2 THRU X7 MAY BE SPECIFIED.
00044  M01S00043.comkfld +++|*         RN   = REGISTER CONTAINING FIRST WORD ADDRESS OF THE TABLE
00045  M01S00044.comkfld +++|*                WHICH CONTAINS THE SPECIFIED FIELD *TAG*.
00046  M01S00045.comkfld +++|*                REGISTER B1 - B7, A2 - A7, X1 - X6.
00047  M01S00046.comkfld +++|*                X*Y*,X1,A1,X7 MAY NOT BE USED.
00048  M01S00047.comkfld +++|*         TAG  = NAME OF FIELD SPECIFIED FOR *FIELD* MACRO.
00049  M01S00048.comkfld +++|*
00050  M01S00049.comkfld +++|*         EXIT   THE CONTENTS OF X REGISTER *Y* IS STORED INTO THE
00051  M01S00050.comkfld +++|*                FIELD *TAG* AT LOCATION *RN* + *TAGW*.
00052  M01S00051.comkfld +++|*                ALL OTHER FIELDS IN THE SAME WORD ARE UNCHANGED.
00053  M01S00052.comkfld +++|*                ON COMPLETION OF *PUTFLD*, THE RIGHT JUSTIFIED
00054  M01S00053.comkfld +++|*                FIELD IN X REGISTER *Y* IS INTACT .
00055  M01S00054.comkfld +++|*                REGISTERS A1, X1, A7 AND X7 ARE
00056  M01S00055.comkfld +++|*                CHANGED BY *PUTFLD*.
00057  M01S00056.comkfld +++|*                NOTE - *TAGW* IS THE TABLE WORD INDEX AS GENERATED
00058  M01S00057.comkfld +++|*                       BY THE *FIELD* MACRO.
00059  M01S00058.comkfld +++|*
00060  M01S00059.comkfld +++|*         USES   X*Y*, X1, X7.
00061  M01S00060.comkfld +++|*                A1, A7.
00062  M01S00061.comkfld +++|
00063  M01S00062.comkfld +++|
00064  M01S00063.comkfld +++|          PURGMAC PUTFLD
00065  M01S00064.comkfld +++|*
00066  M01S00065.comkfld +++| PUTFLD   MACRO  Y,RN,TAG
00067  M01S00066.comkfld +++|          IFC    EQ,/Y/1/
00068  M01S00067.comkfld +++|          ERR - DATA AND TEMP LOAD REGISTERS SAME.
00069  M01S00068.comkfld +++|          ENDIF
00070  M01S00069.comkfld +++|          IFC    EQ,/Y/7/
00071  M01S00070.comkfld +++|          ERR - DATA AND TEMP STORE/MASK REGISTERS SAME.
00072  M01S00071.comkfld +++|          ENDIF
00073  M01S00072.comkfld +++|          IFC    EQ,/XY/RN/
00074  M01S00073.comkfld +++|          ERR - DATA AND BASE ADDR. REGISTERS SAME.
00075  M01S00074.comkfld +++|          ENDIF
00076  M01S00075.comkfld +++|          IFC    EQ,/RN/X1/
00077  M01S00076.comkfld +++|          ERR - BASE ADDR. AND TEMP LOAD REGISTERS SAME.
00078  M01S00077.comkfld +++|          ENDIF
00079  M01S00078.comkfld +++|          IFC    EQ,/RN/A1/
00080  M01S00079.comkfld +++|          ERR - BASE ADDR. AND TEMP LOAD REGISTERS SAME.
00081  M01S00080.comkfld +++|          ENDIF
00082  M01S00081.comkfld +++|          IFC    EQ,/RN/X7/
00083  M01S00082.comkfld +++|          ERR - BASE ADDR. AND TEMP STORE/MASK REGISTERS SAME.
00084  M01S00083.comkfld +++|          ENDIF
00085  M01S00084.comkfld +++|          MX7    -_TAG_N
00086  M01S00085.comkfld +++|          BX_Y    -X7*X_Y
00087  M01S00086.comkfld +++|          SA1    RN+_TAG_W
00088  M01S00087.comkfld +++|          LX1    _TAG_N-1-_TAG_S
00089  M01S00088.comkfld +++|          BX1    X7*X1
00090  M01S00089.comkfld +++|          BX7    X1+X_Y
00091  M01S00090.comkfld +++|          LX7    _TAG_S-_TAG_N+1
00092  M01S00091.comkfld +++|          SA7    A1
00093  M01S00092.comkfld +++| PUTFLD   ENDM
00094  M01S00093.comkfld +++|          SPACE  4,25
00095  M01S00094.comkfld +++|**        GETFLD - GET DATA FROM FIELD DEFINED BY *FIELD* MACRO.
00096  M01S00095.comkfld +++|*         THE SPECIFIED DATA FIELD IS PLACED INTO X REGISTER *Y*
00097  M01S00096.comkfld +++|*         RIGHT JUSTIFIED WITH ZERO FILL.
00098  M01S00097.comkfld +++|*
00099  M01S00098.comkfld +++|*         ENTRY  GETFLD  Y,RN,TAG
00100  M01S00099.comkfld +++|*         Y    = NUMERIC CHARACTER FOR X REGISTER TO RECEIVE THE
00101  M01S00100.comkfld +++|*                RIGHT JUSTIFIED DATA FROM FIELD *TAG*.
00102  M01S00101.comkfld +++|*                1 THRU 5 FOR X1 THRU X5 MAY BE SPECIFIED.
00103  M01S00102.comkfld +++|*         RN   = REGISTER CONTAINING FIRST WORD ADDRESS OF THE TABLE
00104  M01S00103.comkfld +++|*                WHICH CONTAINS THE SPECIFIED FIELD *TAG*.
00105  M01S00104.comkfld +++|*                REGISTER B1 - B7, X1 - X6, A1 - A7.
00106  M01S00105.comkfld +++|*         TAG  = NAME OF FIELD SPECIFEID FOR *FIELD* MACRO.
00107  M01S00106.comkfld +++|*
00108  M01S00107.comkfld +++|*         EXIT   X REGISTER *Y* CONTAINS THE CONTENTS OF FIELD
00109  M01S00108.comkfld +++|*                *TAG* AS OBTAINED FROM LOCATION *RN* + *TAGW*.
00110  M01S00109.comkfld +++|*                THE DATA IS RIGHT JUSTIFIED AND ZERO FILLED.
00111  M01S00110.comkfld +++|*                REGISTERS X7 AND A*Y* ARE CHANGED
00112  M01S00111.comkfld +++|*                NOTE - *TAGW* IS THE TABLE WORD INDEX AS
00113  M01S00112.comkfld +++|*                       GENERATED BY THE *FIELD* MACRO.
00114  M01S00113.comkfld +++|*
00115  M01S00114.comkfld +++|*         USES   X*Y*,X7.
00116  M01S00115.comkfld +++|*                A*Y*.
00117  M01S00116.comkfld +++|
00118  M01S00117.comkfld +++|
00119  M01S00118.comkfld +++|          PURGMAC GETFLD
00120  M01S00119.comkfld +++|*
00121  M01S00120.comkfld +++| GETFLD   MACRO  Y,RN,TAG
00122  M01S00121.comkfld +++|          IFC    GE,/Y/6/
00123  M01S00122.comkfld +++|          ERR - LOAD REGISTER .GT. 5.
00124  M01S00123.comkfld +++|          ENDIF
00125  M01S00124.comkfld +++|          IFC    EQ,/Y/0/
00126  M01S00125.comkfld +++|          ERR - LOAD REGISTER ZERO.
00127  M01S00126.comkfld +++|          ENDIF
00128  M01S00127.comkfld +++|          SA_Y    RN+_TAG_W
00129  M01S00128.comkfld +++|          MX7    -_TAG_N
00130  M01S00129.comkfld +++|          LX_Y    _TAG_N-1-_TAG_S
00131  M01S00130.comkfld +++|          BX_Y    -X7*X_Y
00132  M01S00131.comkfld +++| GETFLD   ENDM
00133  M01S00132.comkfld +++|          BASE   *
00134  M01S00133.comkfld +++|          ENDX
cdc/nos2.source/opl.opl871/common/comkfld.txt ยท Last modified: by 127.0.0.1