Seq # *Modification Id* Act
----------------------------+
00001 M00S00001.compvlc +++| CTEXT COMPVLC - VALIDATE ACCESS LEVEL OR CATEGORY STRING.
00002 M00S00002.compvlc +++| SPACE 4,10
00003 M00S00003.compvlc +++| IF -DEF,QUAL$,1
00004 M00S00004.compvlc +++| QUAL COMPVLC
Line S00005 Modification History |
M01 (Removed by) | 281l803 |
Seq # *Modification Id* Act
----------------------------+
00005 M01S00005.281l803 ---|* COMMENT COPYRIGHT CONTROL DATA CORPORATION, 1982.
Line S00001 Modification History |
M01 (Added by) | 281l803 |
Seq # *Modification Id* Act
----------------------------+
00006 M01S00001.281l803 +++|* COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
00007 M00S00006.compvlc +++| SPACE 4,10
00008 M00S00007.compvlc +++|*** COMPVLC - VALIDATE ACCESS LEVEL OR CATEGORY STRING.
00009 M00S00008.compvlc +++|* J. HOLLISTER 82/11/03.
00010 M00S00009.compvlc +++| SPACE 4,25
00011 M00S00010.compvlc +++|*** COMPVLC VALIDATES AN ACCESS CATEGORY STRING AND/OR
00012 M00S00011.compvlc +++|* AN ACCESS LEVEL STRING, AND CALCULATES THE VALUES
00013 M00S00012.compvlc +++|* CORRESPONDING TO THE STRING SPECIFIED.
00014 M00S00013.compvlc +++|*
00015 M00S00014.compvlc +++|*
00016 M00S00015.compvlc +++|* ASSEMBLY OPTIONS -
00017 M00S00016.compvlc +++|*
00018 M00S00017.compvlc +++|* VAC$ - ASSEMBLE CODE TO SEARCH ACCESS CATEGORY TABLE.
00019 M00S00018.compvlc +++|* IF *TACT* NOT DEFINED, ASSEMBLE TABLE.
00020 M00S00019.compvlc +++|*
00021 M00S00020.compvlc +++|* VAL$ - ASSEMBLE CODE TO SEARCH ACCESS LEVEL TABLE.
00022 M00S00021.compvlc +++|* IF *TALV* NOT DEFINED, ASSEMBLE TABLE.
00023 M00S00022.compvlc +++|*
00024 M00S00023.compvlc +++|* SCH$ - ASSEMBLE SEARCH CODE. IF *SCH$* IS NOT DEFINED
00025 M00S00024.compvlc +++|* BUT *VAC$* AND/OR *VAL$* ARE DEFINED, ASSEMBLE
00026 M00S00025.compvlc +++|* ONLY THE APPROPRIATE TABLE(S).
00027 M00S00026.compvlc +++|*
00028 M00S00027.compvlc +++|* REL$ - GENERATE RELOCATED CODE FOR USE IN ZERO-LEVEL
00029 M00S00028.compvlc +++|* OVERLAY (THIS TAG IS DEFINED IN *COMPRLI*).
00030 M00S00029.compvlc +++| SPACE 4,10
00031 M00S00030.compvlc +++| SCH$ IF DEF,SCH$
00032 M00S00031.compvlc +++| VAC$ IF DEF,VAC$
00033 M00S00032.compvlc +++| VAC SPACE 4,10
00034 M00S00033.compvlc +++|** VAC - VALIDATE ACCESS CATEGORY STRING.
00035 M00S00034.compvlc +++|*
00036 M00S00035.compvlc +++|* ENTRY (A) = ADDRESS OF ACCESS CATEGORY STRING.
00037 M00S00036.compvlc +++|*
00038 M00S00037.compvlc +++|* EXIT (A) = ACCESS CATEGORY VALUE.
00039 M00S00038.compvlc +++|* (A) .LT. 0 IF ACCESS CATEGORY NOT VALID.
00040 M00S00039.compvlc +++|*
00041 M00S00040.compvlc +++|* USES T3, T4, T7.
00042 M00S00041.compvlc +++|*
00043 M00S00042.compvlc +++|* CALLS STN.
00044 M00S00043.compvlc +++|
00045 M00S00044.compvlc +++|
00046 M00S00045.compvlc +++| VAC SUBR ENTRY/EXIT
00047 M00S00046.compvlc +++| STD T7 SAVE STRING ADDRESS
00048 M00S00047.compvlc +++| REL$ IF DEF,REL$
00049 M00S00048.compvlc +++| LDC. TACT SAVE TABLE FWA
00050 M00S00049.compvlc +++| REL$ ELSE
00051 M00S00050.compvlc +++| LDC TACT
00052 M00S00051.compvlc +++| REL$ ENDIF
00053 M00S00052.compvlc +++| STD T4
00054 M00S00053.compvlc +++| LDC TACTL SAVE TABLE LENGTH
00055 M00S00054.compvlc +++| STD T3
00056 M00S00055.compvlc +++| RJM STN SEARCH TABLE FOR NAME
00057 M00S00056.compvlc +++| UJN VACX RETURN
00058 M00S00057.compvlc +++| VAC$ ENDIF
00059 M00S00058.compvlc +++| SPACE 4,10
00060 M00S00059.compvlc +++| VAL$ IF DEF,VAL$
00061 M00S00060.compvlc +++| VAL SPACE 4,10
00062 M00S00061.compvlc +++|** VAL - VALIDATE ACCESS LEVEL STRING.
00063 M00S00062.compvlc +++|*
00064 M00S00063.compvlc +++|* ENTRY (A) = ADDRESS OF ACCESS LEVEL STRING.
00065 M00S00064.compvlc +++|*
00066 M00S00065.compvlc +++|* EXIT (A) = ACCESS LEVEL VALUE.
00067 M00S00066.compvlc +++|* (A) .LT. 0 IF ACCESS LEVEL NOT VALID.
00068 M00S00067.compvlc +++|*
00069 M00S00068.compvlc +++|* USES T3, T4, T7.
00070 M00S00069.compvlc +++|*
00071 M00S00070.compvlc +++|* CALLS STN.
00072 M00S00071.compvlc +++|
00073 M00S00072.compvlc +++|
00074 M00S00073.compvlc +++| VAL SUBR ENTRY/EXIT
00075 M00S00074.compvlc +++| STD T7 SAVE STRING ADDRESS
00076 M00S00075.compvlc +++| REL$ IF DEF,REL$
00077 M00S00076.compvlc +++| LDC. TALV SAVE TABLE FWA
00078 M00S00077.compvlc +++| REL$ ELSE
00079 M00S00078.compvlc +++| LDC TALV
00080 M00S00079.compvlc +++| REL$ ENDIF
00081 M00S00080.compvlc +++| STD T4
00082 M00S00081.compvlc +++| LDN TALVL SAVE TABLE LENGTH
00083 M00S00082.compvlc +++| STD T3
00084 M00S00083.compvlc +++| RJM STN SEARCH TABLE FOR NAME
00085 M00S00084.compvlc +++| UJN VALX RETURN
00086 M00S00085.compvlc +++| VAL$ ENDIF
00087 M00S00086.compvlc +++| STN SPACE 4,10
00088 M00S00087.compvlc +++|** STN - SEARCH TABLE FOR NAME.
00089 M00S00088.compvlc +++|*
00090 M00S00089.compvlc +++|* ENTRY (T7) = FWA OF BUFFER CONTAINING NAME.
00091 M00S00090.compvlc +++|* (T4) = FWA OF TABLE TO BE SEARCHED.
00092 M00S00091.compvlc +++|* (T3) = LENGTH OF TABLE TO BE SEARCHED.
00093 M00S00092.compvlc +++|*
00094 M00S00093.compvlc +++|* EXIT (A) = TABLE INDEX OF MATCHING ENTRY.
00095 M00S00094.compvlc +++|* (A) .LT. 0 IF ENTRY NOT FOUND IN TABLE.
00096 M00S00095.compvlc +++|*
00097 M00S00096.compvlc +++|* USES T1, T2, T3, T7.
00098 M00S00097.compvlc +++|
00099 M00S00098.compvlc +++|
00100 M00S00099.compvlc +++| STN3 LDD T1 SET POINTER TO NEXT TABLE ENTRY
00101 M00S00100.compvlc +++| ADD T7
00102 M00S00101.compvlc +++| SBD T2
00103 M00S00102.compvlc +++| STD T1
00104 M00S00103.compvlc +++| SBD T4 CHECK IF ALL ENTRIES IN TABLE CHECKED
00105 M00S00104.compvlc +++| PJN STN1 IF NOT END OF TABLE
00106 M00S00105.compvlc +++|
00107 M00S00106.compvlc +++| STN SUBR ENTRY/EXIT
00108 M00S00107.compvlc +++| LDD T4 SET LWA OF TABLE
00109 M00S00108.compvlc +++| ADD T3
00110 M00S00109.compvlc +++| SBN 1
00111 M00S00110.compvlc +++| STD T1
00112 M00S00111.compvlc +++| SOD T7 PRESET NAME BUFFER FWA-1
00113 M00S00112.compvlc +++| STN1 LDN 4 SET NAME BUFFER POINTER
00114 M00S00113.compvlc +++| ADD T7
00115 M00S00114.compvlc +++| STD T2
00116 M00S00115.compvlc +++| STN2 LDI T2 COMPARE BYTES OF NAMES
00117 M00S00116.compvlc +++| SBI T1
00118 M00S00117.compvlc +++| NJN STN3 IF NO MATCH
00119 M00S00118.compvlc +++| SOD T1 DECREMENT TABLE POINTER
00120 M00S00119.compvlc +++| SOD T2 DECREMENT NAME BUFFER POINTER
00121 M00S00120.compvlc +++| SBD T7
00122 M00S00121.compvlc +++| NJN STN2 IF MORE TO COMPARE
00123 M00S00122.compvlc +++| AOD T1 NAME FOUND - CALCULATE INDEX
00124 M00S00123.compvlc +++| SBD T4
00125 M00S00124.compvlc +++| SHN -2
00126 M00S00125.compvlc +++| UJN STNX RETURN
00127 M00S00126.compvlc +++| SCH$ ENDIF
00128 M00S00127.compvlc +++| SPACE 4,10
00129 M00S00128.compvlc +++| VAC$ IF DEF,VAC$
00130 M00S00129.compvlc +++| TACT IF -DEF,TACT
00131 M00S00130.compvlc +++|** TACT - TABLE OF VALID SECURITY ACCESS CATEGORIES.
00132 M00S00131.compvlc +++|
00133 M00S00132.compvlc +++|
00134 M00S00133.compvlc +++| TACT BSS 0
00135 M00S00134.compvlc +++| LOC 0
00136 M00S00135.compvlc +++| VFD 48/0L"ACM00"
00137 M00S00136.compvlc +++| VFD 48/0L"ACM01"
00138 M00S00137.compvlc +++| VFD 48/0L"ACM02"
00139 M00S00138.compvlc +++| VFD 48/0L"ACM03"
00140 M00S00139.compvlc +++| VFD 48/0L"ACM04"
00141 M00S00140.compvlc +++| VFD 48/0L"ACM05"
00142 M00S00141.compvlc +++| VFD 48/0L"ACM06"
00143 M00S00142.compvlc +++| VFD 48/0L"ACM07"
00144 M00S00143.compvlc +++| VFD 48/0L"ACM08"
00145 M00S00144.compvlc +++| VFD 48/0L"ACM09"
00146 M00S00145.compvlc +++| VFD 48/0L"ACM10"
00147 M00S00146.compvlc +++| VFD 48/0L"ACM11"
00148 M00S00147.compvlc +++| VFD 48/0L"ACM12"
00149 M00S00148.compvlc +++| VFD 48/0L"ACM13"
00150 M00S00149.compvlc +++| VFD 48/0L"ACM14"
00151 M00S00150.compvlc +++| VFD 48/0L"ACM15"
00152 M00S00151.compvlc +++| VFD 48/0L"ACM16"
00153 M00S00152.compvlc +++| VFD 48/0L"ACM17"
00154 M00S00153.compvlc +++| VFD 48/0L"ACM18"
00155 M00S00154.compvlc +++| VFD 48/0L"ACM19"
00156 M00S00155.compvlc +++| VFD 48/0L"ACM20"
00157 M00S00156.compvlc +++| VFD 48/0L"ACM21"
00158 M00S00157.compvlc +++| VFD 48/0L"ACM22"
00159 M00S00158.compvlc +++| VFD 48/0L"ACM23"
00160 M00S00159.compvlc +++| VFD 48/0L"ACM24"
00161 M00S00160.compvlc +++| VFD 48/0L"ACM25"
00162 M00S00161.compvlc +++| VFD 48/0L"ACM26"
00163 M00S00162.compvlc +++| VFD 48/0L"ACM27"
00164 M00S00163.compvlc +++| VFD 48/0L"ACM28"
00165 M00S00164.compvlc +++| VFD 48/0L"ACM29"
00166 M00S00165.compvlc +++| VFD 48/0L"ACM30"
00167 M00S00166.compvlc +++| VFD 48/0L"ACM31"
00168 M00S00167.compvlc +++| TACTL BSS 0
00169 M00S00168.compvlc +++| LOC *O
00170 M00S00169.compvlc +++| TACT ENDIF
00171 M00S00170.compvlc +++| VAC$ ENDIF
00172 M00S00171.compvlc +++| SPACE 4,10
00173 M00S00172.compvlc +++| VAL$ IF DEF,VAL$
00174 M00S00173.compvlc +++| TALV IF -DEF,TALV
00175 M00S00174.compvlc +++|** TALV - TABLE OF SECURITY ACCESS LEVELS.
00176 M00S00175.compvlc +++|
00177 M00S00176.compvlc +++|
00178 M00S00177.compvlc +++| TALV BSS 0
00179 M00S00178.compvlc +++| LOC 0
00180 M00S00179.compvlc +++| VFD 48/0L"ALM0"
00181 M00S00180.compvlc +++| VFD 48/0L"ALM1"
00182 M00S00181.compvlc +++| VFD 48/0L"ALM2"
00183 M00S00182.compvlc +++| VFD 48/0L"ALM3"
00184 M00S00183.compvlc +++| VFD 48/0L"ALM4"
00185 M00S00184.compvlc +++| VFD 48/0L"ALM5"
00186 M00S00185.compvlc +++| VFD 48/0L"ALM6"
00187 M00S00186.compvlc +++| VFD 48/0L"ALM7"
00188 M00S00187.compvlc +++| TALVL BSS 0
00189 M00S00188.compvlc +++| LOC *O
00190 M00S00189.compvlc +++| TALV ENDIF
00191 M00S00190.compvlc +++| VAL$ ENDIF
00192 M00S00191.compvlc +++| SPACE 4,10
00193 M00S00192.compvlc +++| QUAL$ IF -DEF,QUAL$
00194 M00S00193.compvlc +++| QUAL *
00195 M00S00194.compvlc +++|
00196 M00S00195.compvlc +++| VAC$ IF DEF,VAC$
00197 M00S00196.compvlc +++| IF DEF,SCH$,1
00198 M00S00197.compvlc +++| VAC EQU /COMPVLC/VAC
00199 M00S00198.compvlc +++| IF -DEF,TACT,2
00200 M00S00199.compvlc +++| TACT EQU /COMPVLC/TACT
00201 M00S00200.compvlc +++| TACTL EQU /COMPVLC/TACTL
00202 M00S00201.compvlc +++| VAC$ ENDIF
00203 M00S00202.compvlc +++|
00204 M00S00203.compvlc +++| VAL$ IF DEF,VAL$
00205 M00S00204.compvlc +++| IF DEF,SCH$,1
00206 M00S00205.compvlc +++| VAL EQU /COMPVLC/VAL
00207 M00S00206.compvlc +++| IF -DEF,TALV,2
00208 M00S00207.compvlc +++| TALV EQU /COMPVLC/TALV
00209 M00S00208.compvlc +++| TALVL EQU /COMPVLC/TALVL
00210 M00S00209.compvlc +++| VAL$ ENDIF
00211 M00S00210.compvlc +++|
00212 M00S00211.compvlc +++| QUAL$ ENDIF
00213 M00S00212.compvlc +++|
00214 M00S00213.compvlc +++| ENDX