IDENT PASTEXT PASTEXT 2 STEXT PASTEXT 3 SYSCOM B1 PASTEXT 4 LIST F PASTEXT 5 PASTEXT SPACE 4,10 PASTEXT 6 PASTEXT TITLE PASTEXT - PASCAL SYSTEMS TEXT. PASTEXT 7 COMMENT PASCAL SYSTEMS TEXT. PASTEXT 8 HISTORY SPACE 4,10 HPASTEX 1 ** PASCAL-6000 MODIFICATION HISTORY. HPASTEX 2 * HPASTEX 3 * ADD ASCII CONDITIONAL ASSEMBLY. V41CC10 6 * CHANGE SYMBOL *NOS* TO *NOS1+NOS2*. V41AC01 13 * HPASTEX 4 PASTEXT SPACE 4,10 PASTEXT 9 SKIP 1 SKIP CTEXT LINE IN *COMSPAS* PASTEXT 10 (* CTEXT COMSPAS - PASCAL-6000 RUN TIME EQUIVALENCES. COMSPAS 2 BASE DECIMAL COMSPAS 3 *COMMENT COPYRIGHT (C) UNIVERSITY OF MINNESOTA - 1978. COMSPAS 4 COMSPAS 5 COMSPAS 6 COMSPAS 7 COMSPAS 8 ** COMSPAS - PASCAL-6000 RUN TIME EQUIVALENCES. COMSPAS 9 * J. P. STRAIT. 77/08/24. COMSPAS 10 COMSPAS 11 COMSPAS 12 COMSPAS 13 HCOMSPA 1 ** PASCAL-6000 MODIFICATION HISTORY. HCOMSPA 2 * HCOMSPA 3 * PASCAL-6000 VERSION 4.1.0. V410C 1 * PASCAL-6000 VERSION 4.1.F. V41FC 1 * RENAME SYMBOL *ETERMINL* TO *ECONNECT*. V41EC01 1 * PASCAL-6000 VERSION 4.1.E. V41EC 1 * CHANGE VALUE OF CONSTANT *ERT*. V41DC09 1 * PASCAL-6000 VERSION 4.1.D. V41DC 1 * ADD ASCII AND DISPLAY CODE CHARACTER SET CONSTANTS. V41CC16 1 * RENAME EFET SYMBOLS: CHEFET -> TXTEFET; CHEFETSZ -> TXEFETSZ; V41CC02 1 * EFETSZ -> BNEFETSZ; CHEFITSZ -> TXEFITSZ; EFITSZ -> BNEFITSZ. V41CC02 2 * PASCAL-6000 VERSION 4.1.C. V41CC 1 * PASCAL-6000 VERSION 4.1.B. V41BC 1 * DEFINE SCOPE2 RECORD MANAGER ERROR ORDINALS. V41AC06 1 * KLUDGE: DEFINE SYMBOL *TXTEFET*. V41AC04 1 * INTRODUCE SYMBOLS *NOS1* AND *NOS2*; REMOVE SYMBOL *NOS*. V41AC01 1 * PASCAL-6000 VERSION 4.1.A. V41AC 1 * HCOMSPA 4 HCOMSPA 5 HCOMSPA 6 HCOMSPA 7 COMSPAS 14 ** COMSPAS DEFINES CONSTANTS USED THROUGHOUT THE COMSPAS 15 * PASCAL-6000 SYSTEM. THIS DECK IS CONSTRUCTED SO THAT IT COMSPAS 16 * MAY BE CALLED INTO EITHER A PASCAL OR COMPASS PROGRAM. COMSPAS 17 * *) COMSPAS 18 COMSPAS 19 COMSPAS 20 COMSPAS 21 (* COMSPAS 22 ** PASCAL-6000 RELEASE, VERSION, LEVEL. COMSPAS 23 * COMSPAS 24 * THE LEVEL NUMBER IS FOR USE BY LOCAL MAINTAINERS. COMSPAS 25 * *) COMSPAS 26 COMSPAS 27 COMSPAS 28 RELNUM = 37B ; (* RELEASE NUMBER = ORD('4') *) COMSPAS 29 VERNUM = 34B ; (* VERSION NUMBER = ORD('1') *) V41AC 2 LEVNUM = 33B ; (* VERSION NUMBER = ORD('F') *) V410C 2 ASCFLAG = 55B ; (* FULL-ASCII FLAG, OFF = ORD(' ') *) COMSPAS 32 LVERNUM = 33B ; (* LIBRARY VERSION NUMBER = ORD('0') *) COMSPAS 33 LLEVNUM = 33B ; (* LIBRARY LEVEL NUMBER = ORD('0') *) COMSPAS 34 COMSPAS 35 COMSPAS 36 COMSPAS 37 (* COMSPAS 38 ** DEFINE THE TARGET OPERATING SYSTEM. *) COMSPAS 39 COMSPAS 40 COMSPAS 41 KRONOS = 0 ; COMSPAS 42 NOS1 = 0 ; V41AC01 2 NOS2 = 0 ; V41AC01 3 NOSBE = 0 ; COMSPAS 44 SCOPE2 = 0 ; COMSPAS 45 SCOPE34 = 0 ; COMSPAS 46 COMSPAS 47 COMSPAS 48 COMSPAS 49 (* COMSPAS 50 ** DEFINE THE OPERATING SYSTEM ORDINALS. *) COMSPAS 51 COMSPAS 52 COMSPAS 53 XKRONOS = 1 ; COMSPAS 54 XNOS1 = 2 ; V41AC01 4 XNOS2 = 3 ; V41AC01 5 XNOSBE = 4 ; V41AC01 6 XSCOPE2 = 5 ; V41AC01 7 XSCOPE34 = 6 ; V41AC01 8 COMSPAS 59 COMSPAS 60 COMSPAS 61 (* COMSPAS 62 ** GENERAL CONSTANTS. *) COMSPAS 63 COMSPAS 64 COMSPAS 65 MARKLIM = 31 ; (* MAXIMUM MARK LEVEL *) COMSPAS 66 NILP = 377777B ; (* NIL POINTER *) COMSPAS 67 PFLC = 1 ; (* FIRST LOCATION IN ACTIVATION RECORDS *) COMSPAS 68 MPLC = PFLC ; (* FIRST LOCATION IN PROGRAM ACTIVATION *) COMSPAS 69 ARPS = 1 ; (* ACTIVATION-RECORD PREFIX SIZE *) COMSPAS 70 PMDSPACE = 120B ; (* SIZE OF STACK CHUNK FOR PMD *) COMSPAS 71 COMSPAS 72 COMSPAS 73 COMSPAS 74 (* COMSPAS 75 ** DATA SIZE CONSTANTS. *) COMSPAS 76 COMSPAS 77 COMSPAS 78 WORDSIZE = 60 ; (* NUMBER OF BITS IN ONE WORD *) COMSPAS 79 COMSPAS 82 (* V41CC16 2 * ASCII CHARACTER SET CONSTANTS. *) V41CC16 3 V41CC16 4 ASCHARSZ = 7 ; (* NUMBER OF BITS IN ASCII CHAR *) V41CC16 5 ASALFALN = 8 ; (* NUMBER OF ASCII CHARS IN WORD *) V41CC16 6 ASMINCH = 0 ; (* MINIMAL ORDINAL VALUE OF ASCII CHAR *) V41CC16 7 ASMAXCH = 127 ; (* MAXIMUM ORDINAL VALUE OF ASCII CHAR *) V41CC16 8 ASSPACE = 32 ; (* ASCII ORDINAL FOR ' ' *) V41CC16 9 ASONE = 49 ; (* ASCII ORDINAL FOR '1' *) V41CC16 10 V41CC16 11 (* V41CC16 12 * DISPLAY CODE CHARACTER SET CONSTANTS. *) V41CC16 13 V41CC16 14 DCCHARSZ = 6 ; (* NUMBER OF BITS IN DISPLAY CODE CHAR *) V41CC16 15 DCALFALN = 10 ; (* NUMBER OF DISPLAY CODE CHARS IN WORD *) V41CC16 16 DCMINCH = 0 ; (* MINIMUM VALUE OF DISPLAY CODE CHAR *) V41CC16 17 DCMAXCH = 63 ; (* MAXIMUM VALUE OF DISPLAY CODE CHAR *) V41CC16 18 DCSPACE = 45 ; (* DISPLAY CODE ORDINAL FOR ' ' *) V41CC16 19 DCONE = 28 ; (* DISPLAY CODE ORDINAL FOR '1' *) V41CC16 20 V41CC16 21 (* V41CC16 22 * CURRENT CHARACTER SET CONSTANTS. *) V41CC16 23 V41CC16 24 CHARSIZE = DCCHARSZ ; (* NUMBER OF BITS TO HOLD ONE CHAR *) V41CC16 25 ALFALENG = DCALFALN ; (* NUMBER OF CHARACTERS IN A WORD *) V41CC16 26 MINORDCH = DCMINCH ; (* MINIMUM ORDINAL VALUE OF A CHAR *) V41CC16 27 MAXORDCH = DCMAXCH ; (* MAXIMUM ORDINAL VALUE OF A CHAR *) V41CC16 28 CHSPACE = DCSPACE ; (* ORDINAL VALUE OF ' ' *) V41CC16 29 CHONE = DCONE ; (* ORDINAL VALUE OF '1' *) V41CC16 30 COMSPAS 85 COMSPAS 86 COMSPAS 87 (* COMSPAS 88 ** FET LENGTH CONSTANTS. *) COMSPAS 89 COMSPAS 90 COMSPAS 91 BINEFET = 1 ; (* RELATIVE ADDRESS OF WORD FILE EFET *) COMSPAS 92 TXTEFET = 13 ; (* RELATIVE ADDRESS OF TEXT FILE EFET *) V41CC02 3 TXEFETSZ = 28 ; (* TEXT EFET SIZE = TXTEFET + 1 + FETSZ *) V41CC02 4 BNEFETSZ = 16 ; (* WORD EFET SIZE = BINEFET + 1 + FETSZ *) V41CC02 5 FETSZ = 14 ; (* FET LENGTH *) COMSPAS 96 COMSPAS 97 COMSPAS 98 COMSPAS 99 (* COMSPAS 100 ** FIT LENGTH CONSTANTS. *) COMSPAS 101 COMSPAS 102 COMSPAS 103 TXEFITSZ = 32 ; (* TEXT EFET SIZE *) V41CC02 6 BNEFITSZ = 20 ; (* WORD EFET SIZE *) V41CC02 7 FITSZ = 16 ; (* FIT SIZE 7000 RM *) COMSPAS 106 COMSPAS 107 COMSPAS 108 COMSPAS 109 (* COMSPAS 110 ** EFET INDICES. COMSPAS 111 * COMSPAS 112 * THESE VALUES FORM OFFSETS FOR LOCATING THE VARIOUS COMSPAS 113 * FIELDS IN THE EFET. COMSPAS 114 * *) COMSPAS 115 COMSPAS 116 COMSPAS 117 EFETLCNT = -13 ; (* LINE COUNTER FOR TEXTFILES *) COMSPAS 118 EFETCBUF = -12 ; (* FWA OF 10-CHAR BUFFER *) COMSPAS 119 EFETSNTL = -2 ; (* END-OF-BUFFER SENTINEL *) COMSPAS 120 EFETPTR = -1 ; (* POINTER TO CURRENT ELEMENT *) COMSPAS 121 EFET = 0 ; (* ANCHOR FOR ALL OFFSETS *) COMSPAS 122 EFETFET = 1 ; (* FIRST WORD OF FET *) COMSPAS 123 EFETFRST = 2 ; (* FWA OF CIRCULAR BUFFER *) COMSPAS 124 EFETIN = 3 ; (* NEXT WORD TO PUT DATA INTO BUFFER *) COMSPAS 125 EFETOUT = 4 ; (* NEXT WORD TO GET DATA OUT OF BUFFER *) COMSPAS 126 EFETLIM = 5 ; (* LWA+1 OF CIRCULAR BUFFER *) COMSPAS 127 COMSPAS 128 COMSPAS 129 COMSPAS 130 (* COMSPAS 131 ** EFIT INDICES. *) COMSPAS 132 COMSPAS 133 COMSPAS 134 EFITBUF = 1 ; (* WSA BUFFER DESCRIPTOR *) COMSPAS 135 EFITOUT = 2 ; (* OUT POINTER *) COMSPAS 136 EFITIN = 2 ; (* IN POINTER *) COMSPAS 137 EFITFIT = 3 ; (* FIT *) COMSPAS 138 COMSPAS 139 COMSPAS 140 COMSPAS 141 (* COMSPAS 142 ** BIT-FIELD DEFINITIONS. COMSPAS 143 * COMSPAS 144 * THE VALUE OF EACH ENTRY IS THE BIT POSITION OF THAT FIELD COMSPAS 145 * IN THE WORD. FOR MULTIPLE-BIT FIELDS, THE COORDINATE OF COMSPAS 146 * THE RIGHTMOST BIT IS GIVEN. COMSPAS 147 * *) COMSPAS 148 COMSPAS 149 (* COMSPAS 150 * BIT-FIELDS IN EFET+EFETPTR. *) COMSPAS 151 COMSPAS 152 PEOLN = 59 ; (* EOLN FLAG FOR TEXTFILES *) COMSPAS 153 PREWRITE = 58 ; (* EQUIVALENT TO REWRITE IN EFET WORD *) COMSPAS 154 PPOINTER = 0 ; (* POINTER INTO CHARBUFF OR CIRC. BUFF *) COMSPAS 155 COMSPAS 156 (* COMSPAS 157 * BIT-FIELDS IN EFET. *) COMSPAS 158 COMSPAS 159 EEOSF = 59 ; (* EOS/EOF FLAG FOR SEG/NON-SEG. FILES *) COMSPAS 160 EEOF = 58 ; (* EOF FLAG *) COMSPAS 161 ESEGMENT = 57 ; (* SEGMENTED FILE *) COMSPAS 162 EREWRITE = 56 ; (* REWRITE FLAG FOR ALL FILES *) COMSPAS 163 ETEXT = 55 ; (* TEXT FILE *) COMSPAS 164 ETERMFIL = 54 ; (* TERMINAL FILE ('/' ON HEADER) *) COMSPAS 165 EPERSIST = 53 ; (* PERSISTENT FILE *) COMSPAS 166 ECONNECT = 52 ; (* FILE CONNECTED TO TERMINAL *) V41EC01 2 EPROGPAR = 51 ; (* PROGRAM PARAMETER *) COMSPAS 168 EDISPC = 51 ; (* DISPOSITION CODE (ALL OF ABOVE BITS) *) V41CC02 8 EDISPCW = 9 ; (* NUMBER OF BITS IN DISPOSITION CODE *) V41CC02 9 V41CC02 10 ELRL = 0 ; (* LOGICAL RECORD LENGTH *) COMSPAS 169 V41CC16 31 EDCCHS = 18 ; (* INDEX INTO DISPLAY CODE BUFFER (DCB) *) V41CC16 32 EDCCHSW = 18 ; (* WIDTH OF EDCCHS FIELD *) V41CC16 33 COMSPAS 170 EWSALEN = 18 ; (* ACTUAL LENGTH OF WSA *) COMSPAS 171 ERT = 36 ; (* RECORD TYPE *) V41DC09 2 ERTW = 6 ; (* NUMBER OF BITS IN RECORD TYPE *) V41CC02 11 COMSPAS 173 (* COMSPAS 174 * BIT-FIELDS IN EFET+EFITBUF. *) COMSPAS 175 COMSPAS 176 BUFEND = 0 ; (* LWA CURRENT RECORD *) COMSPAS 177 BUFADDR = 18 ; (* FWA WSA *) COMSPAS 178 BUFLEN = 36 ; (* USEABLE LENGTH OF WSA *) COMSPAS 179 COMSPAS 180 (* COMSPAS 181 * SCOPE2 RECORD MANAGER FIT VALUES. *) COMSPAS 182 COMSPAS 183 FPEOI = 64 ; (* END OF INFORMATION *) COMSPAS 184 FPEOP = 32 ; (* END OF PARTITION *) COMSPAS 185 FPEOS = 16 ; (* END OF SECTION *) COMSPAS 186 FPEOR = 8 ; (* END OF RECORD *) COMSPAS 187 FPBOI = 2 ; (* BEGIN OF INFORMATION *) COMSPAS 188 COMSPAS 189 (* COMSPAS 190 * SCOPE2 RECORD MANAGER RECORD TYPES. *) COMSPAS 191 COMSPAS 192 RTW = 0 ; (* CONTROL WORD *) COMSPAS 193 RTF = 1 ; (* FIXED LENGTH *) COMSPAS 194 RTZ = 3 ; (* ZERO BYTE TERMINATOR *) COMSPAS 195 RTU = 7 ; (* UNDEFINED RECORDS *) COMSPAS 196 RTS = 8 ; (* SYSTEM LOGICAL *) COMSPAS 197 COMSPAS 198 COMSPAS 199 COMSPAS 200 (* COMSPAS 201 ** P.GLOBL - TABLE OF GLOBAL VARIABLES. COMSPAS 202 * COMSPAS 203 * THIS TABLE INCLUDES RUN TIME SYSTEM VARIABLES THAT ARE COMSPAS 204 * MAINTAINED ACROSS THE ENTIRE EXECUTION OF A PASCAL PROGRAM. COMSPAS 205 * IN OTHER WORDS, THEY ARE GLOBAL WITH RESPECT TO THE USER COMSPAS 206 * PROGRAM. THESE VALUES ARE USED AS INDICES INTO THE COMSPAS 207 * TABLE NAMED *P.GLOBL*. COMSPAS 208 * *) COMSPAS 209 COMSPAS 210 COMSPAS 211 TGVRPMDS = 1 ; (* PMD STACK CHUNK; ZERO IF PMD DISABLED *) COMSPAS 212 (* 30/LWA+1, 30/FWA, IF PMD ENABLED *) COMSPAS 213 TGVRKEY = 2 ; (* KEY FOR POINTER CHECKS *) COMSPAS 214 TGVRFORT = 3 ; (* FORTRAN CALL FLAG *) COMSPAS 215 (* 1/FTNFLAG, 41/, 18/LINENUM *) COMSPAS 216 TGVRPTRS = 4 ; (* FOR SAVING GLOBAL POINTERS *) COMSPAS 217 (* 6/0, 18/B4, 18/B5, 18/B6 *) COMSPAS 218 COMSPAS 219 COMSPAS 220 COMSPAS 221 (* COMSPAS 222 ** P.PIT - PROGRAM INFORMATION TABLE. COMSPAS 223 * COMSPAS 224 * THIS TABLE, WHICH RESIDES IN THE CODE SPACE OF THE MAIN COMSPAS 225 * PROGRAM, IS USED TO PASS PARAMETERS FROM THE COMPILER TO THE COMSPAS 226 * RUN-TIME SYSTEM. THESE CONSTANTS ARE USED AS INDICES INTO COMSPAS 227 * THE TABLE NAMED "P.PIT". COMSPAS 228 * *) COMSPAS 229 COMSPAS 230 COMSPAS 231 PITVERS = 1 ; (* PASCAL-6000 VERSION INFORMATION *) COMSPAS 232 PITMAIN = 2 ; (* MAIN-PROGRAM BHW AND ACTIVATION *) COMSPAS 233 PITFLAG = 3 ; (* PROGRAM DESCRIPTION FLAGS *) COMSPAS 234 PITPMD = 4 ; (* ADDRESS OF PASCPMD *) COMSPAS 235 PITOUTP = 4 ; (* ADDRESS OF OUTPUT EFET *) COMSPAS 236 PITIDS = 5 ; (* INITIAL DYN. SPACE, INITIAL REDUCE *) COMSPAS 237 PITMFL = 5 ; (* MAXIMUM SIZE OF DYNAMIC MEMORY *) COMSPAS 238 PITSCS = 6 ; (* STACK-CHUNK CONTROLS *) COMSPAS 239 PITMCS = 7 ; (* MEMORY MANAGER CONTROLS *) COMSPAS 240 COMSPAS 241 COMSPAS 242 COMSPAS 243 (* COMSPAS 244 ** P.TERA - TABLE OF ERROR RECOVERY ADDRESSES. COMSPAS 245 * COMSPAS 246 * THESE VALUES ARE INDICES INTO P.TERA, THE TABLE OF ERROR COMSPAS 247 * RECOVERY ADDRESSES. COMSPAS 248 * *) COMSPAS 249 COMSPAS 250 COMSPAS 251 ASSERR = 0 ; (* VALUE OUT OF RANGE *) COMSPAS 252 INXERR = 1 ; (* INDEX OR CASE EXPR OUT OF RANGE *) COMSPAS 253 DIVERR = 2 ; (* DIVISION BY ZERO *) COMSPAS 254 ICNERR = 3 ; (* INCONSISTENT NODE REFERENCE *) COMSPAS 255 OVLERR = 4 ; (* INTEGER OVERFLOW *) COMSPAS 256 PTRERR = 5 ; (* INCORRECT POINTER REFERENCE *) COMSPAS 257 MODERR = 6 ; (* MOD BY NON-POSITIVE MODULO *) COMSPAS 258 EOLERR = 7 ; (* TRIED TO CHECK EOLN WHILE AT EOS/EOF *) COMSPAS 259 ISMERR = 8 ; (* MEMORY REQUIRED EXCEEDS SPECIFIED MFL *) COMSPAS 260 COMSPAS 261 COMSPAS 262 COMSPAS 263 (* COMSPAS 264 ** P.TMEM - TABLE OF MEMORY MANAGER VARIABLES. COMSPAS 265 * COMSPAS 266 * THIS TABLE CONTAINS THE VARIABLES USED BY THE PASCAL-6000 COMSPAS 267 * MEMORY MANAGER (PMM). THESE CONSTANTS ARE USED AS INDICES COMSPAS 268 * INTO THE TABLE NAMED "P.TMEM". COMSPAS 269 * *) COMSPAS 270 COMSPAS 271 COMSPAS 272 MEMFL = 1 ; (* CURRENT FIELD LENGTH *) COMSPAS 273 MEMFF = 2 ; (* ADDRESS OF FIRST FREE NODE *) COMSPAS 274 MEMLF = 3 ; (* ADDRESS OF LAST FREE NODE *) COMSPAS 275 MEMHLF = 4 ; (* HIGHEST ADDRESS OF LAST FREE NODE *) COMSPAS 276 MEMHFL = 5 ; (* HIGHEST FL USED BY MEMORY MANAGER *) COMSPAS 277 COMSPAS 278 COMSPAS 279 COMSPAS 280 (* COMSPAS 281 ** TIOE - TABLE OF INPUT/OUTPUT ERRORS. COMSPAS 282 * COMSPAS 283 * THESE VALUES ARE USED AS INDICES INTO THE TABLE NAMED COMSPAS 284 * *TIOE*. COMSPAS 285 * *) COMSPAS 286 COMSPAS 287 COMSPAS 288 IOEA = 0 ; (* LINELIMIT EXCEEDED ON XXXXXXX.*) COMSPAS 289 IOEB = 1 ; (* TRIED TO READ XXXXXXX PAST EOS/EOF.*) COMSPAS 290 IOEC = 2 ; (* TRIED TO WRITE XXXXXX WITHOUT REWRITE.*) COMSPAS 291 IOED = 3 ; (* BUFFER TOO SMALL ON XXXXXXX.*) COMSPAS 292 IOEE = 4 ; (* NON-DIGIT FOUND WHILE READING XXXXXXX.*) COMSPAS 293 IOEF = 5 ; (* VALUE TOO LARGE WHILE READING XXXXXXX.*) COMSPAS 294 IOEG = 6 ; (* TRIED TO READ XXXXXXX WITHOUT RESET.*) COMSPAS 295 IOEH = 7 ; (* UNDEFINED VALUE TO WRITE ON XXXXXXX. *) COMSPAS 296 V41AC06 2 (* V41AC06 3 ** SCOPE2 RECORD MANAGER ERRORS. *) V41AC06 4 V41AC06 5 RMIOEA = 0 ; (* RECORD MAN ERROR ON FILE XXXXXXX. *) V41AC06 6 RMIOEB = 1 ; (* BUFFER TOO SMALL ON XXXXXXX. *) V41AC06 7 RMIOEC = 2 ; (* FILE XXXXXXX MUST BE FO=SQ,RT=W,S,Z,U.*) V41AC06 8 RMIOED = 3 ; (* FILE CARD SPECIFIES MRL>PASCAL BUFFER.*) V41AC06 9 RMIOEE = 4 ; (* INVALID RT FOR SKIP ON XXXXXXX. *) V41AC06 10 RMIOEH = 5 ; (* ZERO SKIP COUNT ON XXXXXXX. *) V41AC06 11 COMSPAS 297 COMSPAS 298 COMSPAS 299 (* COMSPAS 300 ** TYPE CODES FOR POST-MORTEM DUMP. COMSPAS 301 *) COMSPAS 302 COMSPAS 303 PMDINT = 1 ; (* INTEGER *) COMSPAS 304 PMDREAL = 2 ; (* REAL *) COMSPAS 305 PMDCHAR = 3 ; (* CHAR *) COMSPAS 306 PMDBOOL = 4 ; (* BOOLEAN *) COMSPAS 307 PMDENUM = 5 ; (* ENUMERATED TYPE *) COMSPAS 308 PMDALFA = 6 ; (* ALFA *) COMSPAS 309 PMDUPTR = 7 ; (* UNCHECKED POINTER *) COMSPAS 310 PMDCPTR = 8 ; (* CHECKED POINTER *) COMSPAS 311 COMSPAS 312 COMSPAS 313 (* COMSPAS 314 BASE * COMSPAS 315 ENDX *) COMSPAS 316 SYMBOLS SPACE 4,10 PASTEXT 12 ** SYSTEM COMMUNICATION SYMBOLS. PASTEXT 13 PASTEXT 14 PASTEXT 15 NOSBE IFNE NOSBE+SCOPE34,0 PASTEXT 16 ARGR EQU RA.ARG PASTEXT 17 PGNR EQU RA.PGN PASTEXT 18 ACTR EQU RA.ACT PASTEXT 19 LWPR EQU RA.LWP PASTEXT 20 CMUR EQU RA.CMU PASTEXT 21 FWPR EQU RA.FWP PASTEXT 22 XJPR EQU RA.CEJ PASTEXT 23 CCDR EQU RA.CCD PASTEXT 24 LDRR EQU RA.LDR PASTEXT 25 NOSBE ENDIF PASTEXT 26 PASTEXT 27 SCOPE2 IFNE SCOPE2,0 PASTEXT 28 ARGR EQU 2 PASTEXT 29 PGNR EQU 64B PASTEXT 30 ACTR EQU 64B PASTEXT 31 LWPR EQU 65B PASTEXT 32 *CMUR --- CMU NOT IN SCOPE2 SYSTEMS --- PASTEXT 33 FWPR EQU 66B PASTEXT 34 *XJPR --- XJ NOT IN SCOPE2 SYSTEMS --- PASTEXT 35 CCDR EQU 70B PASTEXT 36 SCOPE2 ENDIF PASTEXT 37 V41CC10 7 ASCII IFEQ ASCFLAG,1 V41CC10 8 ERRNZ SCOPE2 FULL-ASCII NOT SUPPORTED UNDER SCOPE 2 V41CC10 9 ASCII ENDIF V41CC10 10 PASTEXT TITLE MACROS AND MICROS. PASTEXT 38 ** MACROS. PASTEXT 39 PASTEXT SPACE 4,10 PASTEXT 40 NOS IFNE NOS1+NOS2+KRONOS,0 V41AC01 14 XTEXT COMCMAC PASTEXT 42 XTEXT COMCCMD PASTEXT 43 NOS ENDIF PASTEXT 44 PASTEXT SPACE 4,10 PASTEXT 45 LIST -F PASTEXT 46 SCOPE34 IFNE SCOPE34,0 PASTEXT 47 TTL CPCOM - CENTRAL PROGRAM SYSTEM COMMUNICATION MACROS. CPCOM 2 TITLE CPCOM 3 CPCOM SPACE 4 CPCOM 4 * COMMENT COPYRIGHT CONTROL DATA CORP. 1970. CPCOM 5 CPCOM SPACE 4 CPCOM 6 *** CPCOM - CENTRAL PROGRAM SYSTEM COMMUNICATION MACROS. CPCOM 7 * G. R. MANSFIELD. 70/09/21. CPCOM 8 HISTORY SPACE 4,10 HCPCOM 1 ** PASCAL-6000 MODIFICATION HISTORY. HCPCOM 2 * HCPCOM 3 * HCPCOM 4 CPCOM SPACE 4 CPCOM 9 *** THE SYSTEM MACROS PROVIDE THE USER WITH PREDEFINED CPCOM 10 * CALLS FOR COMMONLY USED SYSTEM REQUESTS. CPCOM 11 * WHERE A PARAMETER REFERS TO AN ADDRESS EXPRESSION, THE CPCOM 12 * PARAMETER MAY BE A REGISTER NAME, A RELOCATABLE ADDRESS, CPCOM 13 * AN EXTERNAL SYMBOL NAME, OR AN ABSOLUTE ADDRESS. CPCOM 14 * WHERE A RECALL OPTION IS SPECIFIED, THE PRESENCE OF THE CPCOM 15 * OPTION CAUSES RECALL OPERATION TO TAKE PLACE. CPCOM 16 SPACE 4 CPCOM 17 BASE DECIMAL CPCOM 18 TITLE GENERAL MACROS. CPCOM 19 GENERAL SPACE 4 CPCOM 20 *** SYSCOM - DEFINE SYSTEMS COMMUNICATION SYMBOLS. CPCOM 21 * CPCOM 22 * CPCOM 23 * SYSCOM B1 CPCOM 24 * IF *B1* IS PRESENT, USER DEFINES (B1) = 1. CPCOM 25 CPCOM 26 CPCOM 27 PURGMAC SYSCOM CPCOM 28 CPCOM 29 SYSCOM MACRO N CPCOM 30 IFC EQ,$N$B1$,1 CPCOM 31 B1=1 CPCOM 32 **** PROGRAM CONTROL AREA CPCOM 33 * CPCOM 34 * CPCOM 35 * FIRST ARGUMENT CPCOM 36 ARGR = 2 CPCOM 37 * SPECIAL PROGRAM PARAMETER AREA (27B-47B) CPCOM 38 SPPR = 27B CPCOM 39 * PROGRAM NAME (BITS 18 - 59) CPCOM 40 PGNR = 64B CPCOM 41 * ARGUMENT COUNT (BITS 0 - 17) CPCOM 42 ACTR = 64B CPCOM 43 * CMU OPTION AVAILABLE (BIT 59) CPCOM 44 CMUR = 65B CPCOM 45 * LWA+1 ASSIGNED PROGRAM SPACE (BITS 0 - 17) CPCOM 46 LWPR = 65B CPCOM 47 * FWA ASSIGNED PROGRAM SPACE (BITS 0 - 17) CPCOM 48 FWPR = 66B CPCOM 49 * JOB ORIGIN TYPE(BITS 24 - 35) CPCOM 50 JOPR = 66B CPCOM 51 * CEJ OPTION AVAILABLE (BIT 59) CPCOM 52 XJPR = 66B CPCOM 53 * *LDR* COMPLETION (BIT 29) CPCOM 54 LDRR = 67B CPCOM 55 * SYSTEM CHARACTER SET MODE FLAG CPCOM 56 CSMR = 67B CPCOM 57 * CONTROL CARD (8 LOCATIONS) CPCOM 58 CCDR = 70B CPCOM 59 * LINES/PRINTER PAGE CPCOM 60 LINP = 60D CPCOM 61 **** CPCOM 62 ENDM CPCOM 63 IDIV SPACE 4 CPCOM 64 *** IXI XJ/XK - INTEGER DIVISION. CPCOM 65 * CPCOM 66 * IXI XJ/XK CPCOM 67 * DIVIDE XJ BY XK TO XI. CPCOM 68 * DESTROYS XJ, XK, B7. CPCOM 69 CPCOM 70 CPCOM 71 PURGDEF IXX/X CPCOM 72 CPCOM 73 IXX/X OPDEF I,J,K CPCOM 74 PX.J X.J CPCOM 75 PX.K X.K CPCOM 76 NX.K X.K CPCOM 77 FX.I X.J/X.K CPCOM 78 UX.I B7,X.I CPCOM 79 LX.I X.I,B7 CPCOM 80 ENDM CPCOM 81 MOVE SPACE 4 CPCOM 82 *** MOVE - MOVE DATA BLOCK. CPCOM 83 * CPCOM 84 * CPCOM 85 * MOVE COUNT,FROM,TO CPCOM 86 * ENTRY *COUNT* = WORD COUNT OF BLOCK TO BE MOVED. CPCOM 87 * *FROM* = ADDRESS OF FIRST WORD OF BLOCK. CPCOM 88 * *TO* = ADDRESS OF FIRST WORD OF DESTINATION. CPCOM 89 * CALLS MVE= (COMCMVE). CPCOM 90 CPCOM 91 CPCOM 92 PURGMAC MOVE CPCOM 93 CPCOM 94 MOVE MACRO C,F,T CPCOM 95 R= X1,C CPCOM 96 R= X2,F CPCOM 97 R= X3,T CPCOM 98 RJ =XMVE= CPCOM 99 ENDM CPCOM 100 TITLE SYSTEM REQUESTS. CPCOM 101 SYSTEM SPACE 4 CPCOM 102 *** SYSTEM REQUEST MACROS FORMAT REQUESTS INTO X REGISTERS CPCOM 103 * AND RETURN JUMP TO THE SYSTEM COMMUNICATION SUBROUTINES. CPCOM 104 * THESE SUBROUTINES ARE AVAILABLE AS ENTRY POINTS FOR CPCOM 105 * RELOCATABLE PROGRAMS OR AS COMMON DECKS FOR ABSOLUTE CPCOM 106 * PROGRAMS. CPCOM 107 * CPCOM 108 * ENTRY COMMON DECK CPCOM 109 * CPCOM 110 * SYS= COMCSYS CPCOM 111 * MSG= COMCSYS CPCOM 112 * RCL= COMCSYS CPCOM 113 * WNB= COMCSYS CPCOM 114 * CPM= COMCCPM CPCOM 115 * OVL= COMCOVL CPCOM 116 ABORT SPACE 4 CPCOM 117 *** ABORT - ABORT JOB. CPCOM 118 * CPCOM 119 * CPCOM 120 * ABORT CPCOM 121 * CALLS SYS=. CPCOM 122 CPCOM 123 CPCOM 124 PURGMAC ABORT CPCOM 125 CPCOM 126 ABORT MACRO CPCOM 127 * FORM ABORT REQUEST CPCOM 128 SX6 4RABTP/16D CPCOM 129 LX6 40D CPCOM 130 * PROCESS SYSTEM REQUEST CPCOM 131 RJ =XSYS= CPCOM 132 ENDM CPCOM 133 CLOCK SPACE 4 CPCOM 134 *** CLOCK - RETURN TIME OF DAY. CPCOM 135 * CPCOM 136 * CPCOM 137 * CLOCK STATUS CPCOM 138 * ENTRY *STATUS* = ADDRESS FOR TIME OF DAY RESPONSE. CPCOM 139 * EXIT - CPCOM 140 * STATUS 60/ * HH.MM.SS.* CPCOM 141 * CALLS SYS=. CPCOM 142 CPCOM 143 CPCOM 144 PURGMAC CLOCK CPCOM 145 CPCOM 146 CLOCK MACRO S CPCOM 147 * FORM TIME (CLOCK) REQUEST CPCOM 148 SX6 3RTIM CPCOM 149 R= X1,S CPCOM 150 LX6 42D CPCOM 151 BX6 X6+X1 CPCOM 152 SX1 200002B CPCOM 153 LX1 24D CPCOM 154 BX6 X6+X1 CPCOM 155 * PROCESS SYSTEM REQUEST CPCOM 156 RJ =XSYS= CPCOM 157 ENDM CPCOM 158 CONTROL SPACE 4 CPCOM 159 *** CONTROL - READ NEXT CONTROL CARD. CPCOM 160 * CPCOM 161 * CPCOM 162 * CONTROL BUF,RSS,LF,SF CPCOM 163 * ENTRY *BUF* = ADDRESS TO WHICH CONTROL CARD WILL BE READ. CPCOM 164 * (ALLOW 8 WORDS) CPCOM 165 * *RSS* IF PRESENT SUPPRESSES THE ADVANCEMENT OF THE CPCOM 166 * CONTROL CARDS. THIS OPTION ALLOWS CPCOM 167 * THE NEXT CONTROL CARD TO BE CHECKED. CPCOM 168 * *LF* IF PRESENT INDICATES TO RETURN CONTROL CARD CPCOM 169 * IRREGARDLESS OF WHETHER IT POINTS AT A LOCAL FILE. CPCOM 170 * NORMALLY NO CONTROL CARD WILL BE RETURNED IF IT CALLS CPCOM 171 * FOR EXECUTION OF A LOCAL FILE. IF THIS OPTION IS CPCOM 172 * SELECTED BIT 17 IN THE PARAMETER COUNT WORD WILL CPCOM 173 * BE SET IF A CONTROL CARD IS FOR A LOCAL FILE. CPCOM 174 * *SF* IF PRESENT INDICATES PARAMETERS UNPACKED IN SCOPE CPCOM 175 * FORMAT. CPCOM 176 * CALLS SYS=. CPCOM 177 CPCOM 178 CPCOM 179 PURGMAC CONTROL CPCOM 180 CPCOM 181 CONTROL MACRO A,B,C,D CPCOM 182 R= X1,A CPCOM 183 .1 IFC EQ,$B$$ CPCOM 184 .2 IFC EQ,$D$$ CPCOM 185 BX6 X6-X6 CPCOM 186 .2 ELSE CPCOM 187 SX6 40B CPCOM 188 .2 ENDIF CPCOM 189 .1 ELSE CPCOM 190 .2 IFC EQ,$C$$ CPCOM 191 .3 IFC EQ,$D$$ CPCOM 192 R= X6,1 CPCOM 193 .3 ELSE CPCOM 194 SX6 41B CPCOM 195 .3 ENDIF CPCOM 196 .2 ELSE CPCOM 197 .3 IFC EQ,$D$$ CPCOM 198 R= X6,2 CPCOM 199 .3 ELSE CPCOM 200 SX6 42B CPCOM 201 .3 ENDIF CPCOM 202 .2 ENDIF CPCOM 203 .1 ENDIF CPCOM 204 LX6 18D CPCOM 205 BX6 X6+X1 CPCOM 206 SX2 1LP+4 CPCOM 207 SX1 3RTCS CPCOM 208 LX2 24D CPCOM 209 LX1 42D CPCOM 210 BX6 X6+X2 CPCOM 211 BX6 X6+X1 CPCOM 212 RJ =XSYS= CPCOM 213 ENDM CPCOM 214 DATE SPACE 4 CPCOM 215 *** DATE - RETURN DATE. CPCOM 216 * CPCOM 217 * CPCOM 218 * DATE STATUS CPCOM 219 * ENTRY *STATUS* = ADDRESS FOR DATE RESPONSE. CPCOM 220 * EXIT - CPCOM 221 * STATUS 60/ * YY/MM/DD.* CPCOM 222 * CALLS SYS=. CPCOM 223 CPCOM 224 CPCOM 225 PURGMAC DATE CPCOM 226 CPCOM 227 DATE MACRO S CPCOM 228 * FORM TIME (DATE) REQUEST CPCOM 229 SX6 3RTIM CPCOM 230 R= X1,S CPCOM 231 LX6 42D CPCOM 232 BX6 X6+X1 CPCOM 233 SX1 200001B CPCOM 234 LX1 24D CPCOM 235 BX6 X6+X1 CPCOM 236 * PROCESS SYSTEM REQUEST CPCOM 237 RJ =XSYS= CPCOM 238 ENDM CPCOM 239 ENDRUN SPACE 4 CPCOM 240 *** ENDRUN - END CENTRAL PROGRAM. CPCOM 241 * CPCOM 242 * CPCOM 243 * ENDRUN CPCOM 244 * CALLS SYS=. CPCOM 245 CPCOM 246 CPCOM 247 PURGMAC ENDRUN CPCOM 248 CPCOM 249 ENDRUN MACRO CPCOM 250 * FORM END REQUEST CPCOM 251 SX6 4RENDP/16D CPCOM 252 LX6 40D CPCOM 253 * PROCESS SYSTEM REQUEST CPCOM 254 RJ =XSYS= CPCOM 255 ENDM CPCOM 256 EREXIT SPACE 4 CPCOM 257 *** EREXIT - SET ERROR RETURN ADDRESS. CPCOM 258 * THIS WILL SET CPU PROGRAM ADDRESS TO RESTART THE PROGRAM AT CPCOM 259 * AFTER IT HAS BEEN ABORTED DUE TO EITHER AN ILLEGAL OPERATION CPCOM 260 * OR OPERATOR INTERVENTION. IF THE ERROR WAS DUE TO TIME CPCOM 261 * LIMIT BEING EXCEEDED, AN ADDITIONAL 8 SECONDS OF CPU TIME CPCOM 262 * WILL BE ALLOWED. ALL ERRORS EXCEPT CPU ABORT WILL BE CPCOM 263 * PROCESSED. CPCOM 264 * CPCOM 265 * CPCOM 266 * EREXIT ADDR CPCOM 267 * ENTRY *ADDR* = ADDRESS FOR ERROR RETURN. CPCOM 268 * CPCOM 269 * THE CPU WILL BE STARTED AT *ADDR* WITH RA = CPCOM 270 * RA 6/0,6/MO,18/EA,6/EF,24/0 CPCOM 271 * MO = IF ARITHMETIC ERROR CONTAINS EXIT CONDTION CPCOM 272 * EA = ADDRESS WHERE CPU WAS AT WHEN ERROR OCCURED CPCOM 273 * EF = ERROR FLAG CPCOM 274 * CALLS CPM=. CPCOM 275 CPCOM 276 CPCOM 277 PURGMAC EREXIT CPCOM 278 CPCOM 279 EREXIT MACRO A CPCOM 280 R= X1,A CPCOM 281 SX2 4 CPCOM 282 RJ =XCPM= CPCOM 283 ENDM CPCOM 284 JDATE SPACE 4 CPCOM 285 *** JDATE - JULIAN DATE. CPCOM 286 * CPCOM 287 * CPCOM 288 * JDATE STATUS CPCOM 289 * ENTRY *STATUS* = ADDRESS FOR JULIAN DATE. CPCOM 290 * EXIT - CPCOM 291 * STATUS 30/,30/ *YYDDD* CPCOM 292 * CALLS SYS=. CPCOM 293 CPCOM 294 CPCOM 295 PURGMAC JDATE CPCOM 296 CPCOM 297 JDATE MACRO S CPCOM 298 * FORM TIME (JDATE) REQUEST. CPCOM 299 SX6 3RTIM CPCOM 300 R= X1,S CPCOM 301 LX6 42D CPCOM 302 BX6 X6+X1 CPCOM 303 SX1 200003B CPCOM 304 LX1 24D CPCOM 305 BX6 X6+X1 CPCOM 306 * PROCESS SYSTEM REQUEST. CPCOM 307 RJ =XSYS= CPCOM 308 ENDM CPCOM 309 MEMORY SPACE 4 CPCOM 310 *** MEMORY - REQUEST MEMORY. CPCOM 311 * CPCOM 312 * CPCOM 313 * MEMORY TYPE,STATUS,RECALL,WORDS,NABORT CPCOM 314 * *TYPE* = *CM*, REQUEST CENTRAL MEMORY. CPCOM 315 * BLANK, REQUEST CENTRAL MEMORY. CPCOM 316 * *SCM*, REQUEST CENTRAL MEMORY. CPCOM 317 * *ECS*, REQUEST EXTENDED CORE STORAGE. CPCOM 318 * *LCM*, REQUEST EXTENDED CORE STORAGE. CPCOM 319 * *STATUS* = ADDRESS OF STATUS WORD, IF DESIRED. CPCOM 320 * THIS IS REQUIRED IF NOT CENTRAL MEMORY AND/OR CPCOM 321 * NABORT IS SELECTED. CPCOM 322 * *WORDS* = MEMORY ASSIGNMENT REQUEST. CPCOM 323 * THIS IS NOT REQUIRED IF NUMBER OF WORDS HAS BEEN CPCOM 324 * PLACED INTO *STATUS*. CPCOM 325 * *NABORT* = BLANK IF PROGRAM IS TO BE ABORTED IF THE CPCOM 326 * REQUESTED MEMORY IS NOT AVAILABLE. IF NON-BLANK AND CPCOM 327 * THE MEMORY IS UNAVAILABLE, THE CURRENT FIELD LENGTH CPCOM 328 * IS RETURNED IN BITS 30-59 OF *STATUS*. CPCOM 329 * CPCOM 330 * STATUS 30/ N,30/ 0 CPCOM 331 * N MEMORY REQUEST (IF N .GT. 0 THEN THE FOLLOWING IS CPCOM 332 * RETURNED) CPCOM 333 * CPCOM 334 * N = 12/0,1/N,17/FL CPCOM 335 * CPCOM 336 * N = NO REDUCE OVERRIDE. CPCOM 337 * FL = CM FIELD LENGTH. CPCOM 338 * CPCOM 339 * (IF N = -1 MAX FL IS RETURNED) CPCOM 340 * CALLS SYS=. CPCOM 341 CPCOM 342 CPCOM 343 PURGMAC MEMORY CPCOM 344 CPCOM 345 MEMORY MACRO T,S,L,W,N CPCOM 346 LOCAL A,B,C CPCOM 347 C SET 2 CPCOM 348 ECHO 3,A=(,CM,SCM,ECS,LCM),B=(0,0,0,1,1) CPCOM 349 IFC EQ,$T$(*A$,2 CPCOM 350 C SET B CPCOM 351 STOPDUP CPCOM 352 IFEQ C,2,1 CPCOM 353 ERR ILLEGAL MEMORY REQUEST - (T) CPCOM 354 IFC NE,$N$$,3 CPCOM 355 IFC EQ,$S$$,1 CPCOM 356 ERR ILLEGAL MEMORY REQUEST - (S) CPCOM 357 C SET C+2 CPCOM 358 .1 IFC NE,$W$$ CPCOM 359 .2 IFNE C,0 CPCOM 360 IFC EQ,$S$$,1 CPCOM 361 ERR ILLEGAL MEMORY REQUEST - (S) CPCOM 362 R= X6,W CPCOM 363 LX6 30D CPCOM 364 R= A6,S CPCOM 365 SYSTEM MEM,L,S,C CPCOM 366 .2 ELSE CPCOM 367 SYSTEM RFL,L,W,S CPCOM 368 .2 ENDIF CPCOM 369 .1 ELSE CPCOM 370 SYSTEM MEM,L,S,C CPCOM 371 .1 ENDIF CPCOM 372 ENDM CPCOM 373 MESSAGE SPACE 4,50 CPCOM 374 *** MESSAGE - DISPLAY MESSAGE. CPCOM 375 * CPCOM 376 * CPCOM 377 * MESSAGE MESSAGE,OPTION,RECALL CPCOM 378 * CPCOM 379 * CPCOM 380 * ENTRY *MESSAGE* = ADDRESS OF MESSAGE IN *C* FORMAT. CPCOM 381 * *OPTION* = DISPLAY OPTION AS FOLLOWS. CPCOM 382 * CPCOM 383 * 0 = PLACE MESSAGE IN SYSTEM DAYFILE, JOB DAYFILE, CPCOM 384 * AND DISPLAY AT LINE 1 OF CONTROL POINT. CPCOM 385 * 1 = DISPLAY AT LINE 1 OF CONTROL POINT ONLY. CPCOM 386 * 2 = DISPLAY AT LINE 2 OF CONTROL POINT ONLY. CPCOM 387 * 3 = PLACE MESSAGE IN JOB DAYFILE ONLY. CPCOM 388 * 4 = PLACE MESSAGE IN ERROR LOG (SYOT OR SSJ= ONLY). CPCOM 389 * 5 = PLACE MESSAGE IN ACCOUNT LOG (SYOT OR SSJ= ONLY). CPCOM 390 * CPCOM 391 * THE FOLLOWING ARE INCLUDED FOR NOS/BE COMPATIBILITY. CPCOM 392 * (CONVERTED BY CPUMTR/1MA) CPCOM 393 * CPCOM 394 * 6 = PROCESS AS OPTION *0*. CPCOM 395 * 7 = PROCESS AS OPTION *3*. CPCOM 396 * CPCOM 397 * FOR *OPTION* THE FOLLOWING RULES APPLY CPCOM 398 * CPCOM 399 * IF *OPTION* IF NOT DEFINED (COMPASS *DEF*), FORCE CPCOM 400 * A VALUE OF 1. CPCOM 401 * IF *OPTION* IS DEFINED (COMPASS *DEF*), PASS TO CPCOM 402 * THE SYSTEM. CPCOM 403 * IF *OPTION* IS EMPTY, FORCE A VALUE OF 0. CPCOM 404 * IF *OPTION* IS STRING *LOCAL*, FORCE A VALUE OF 3. CPCOM 405 * CPCOM 406 * ILLEGAL *OPTION* VALUES ARE RESET TO *1* BY THE CPCOM 407 * SYSTEM. CPCOM 408 * CPCOM 409 * *RECALL* = OPTIONAL RECALL PARAMETER CPCOM 410 * CPCOM 411 * CALLS MSG=. CPCOM 412 CPCOM 413 CPCOM 414 PURGMAC MESSAGE CPCOM 415 CPCOM 416 MESSAGE MACRO M,O,L CPCOM 417 LOCAL A CPCOM 418 R= X1,M CPCOM 419 A SET 200000B CPCOM 420 IFC EQ,$L$$,1 CPCOM 421 A SET 0 CPCOM 422 .1 IFC EQ,$O$LOCAL$ CPCOM 423 R= X6,3+A CPCOM 424 .1 ELSE 4 CPCOM 425 .2 IF DEF,O CPCOM 426 R= X6,O+A CPCOM 427 .2 ELSE 1 CPCOM 428 R= X6,1+A CPCOM 429 * PROCESS MESSAGE REQUEST CPCOM 430 RJ =XMSG= CPCOM 431 ENDM CPCOM 432 ONSW SPACE 4 CPCOM 433 *** ONSW - TURN ON SENSE SWITCHES. CPCOM 434 * CPCOM 435 * CPCOM 436 * ONSW N CPCOM 437 * ENTRY *N* = SENSE SWITCH BITS. (BIT 0 = SWITCH 1) CPCOM 438 * IF *N* = 0, ALL SWITCHES WILL BE TURNED ON. CPCOM 439 * CALLS CPM=. CPCOM 440 CPCOM 441 CPCOM 442 PURGMAC ONSW CPCOM 443 CPCOM 444 ONSW MACRO N CPCOM 445 R= X1,N CPCOM 446 SX2 11B CPCOM 447 RJ =XCPM= CPCOM 448 ENDM CPCOM 449 OFFSW SPACE 4 CPCOM 450 *** OFFSW - TURN OFF SENSE SWITCHES. CPCOM 451 * CPCOM 452 * CPCOM 453 * OFFSW N CPCOM 454 * ENTRY *N* = SENSE SWITCH BITS. (BIT 0 = SWITCH 1) CPCOM 455 * IF *N* = 0, ALL SWITCHES WILL BE TURNED OFF. CPCOM 456 * CALLS CPM=. CPCOM 457 CPCOM 458 CPCOM 459 PURGMAC OFFSW CPCOM 460 CPCOM 461 OFFSW MACRO N CPCOM 462 R= X1,N CPCOM 463 SX2 12B CPCOM 464 RJ =XCPM= CPCOM 465 ENDM CPCOM 466 OVERLAY SPACE 4 CPCOM 467 *** OVERLAY - LOAD OVERLAY. CPCOM 468 * CPCOM 469 * CPCOM 470 * OVERLAY NAME,LEVEL,SYSTEM,FWA CPCOM 471 * ENTRY *NAME* = ADDRESS OF FILE NAME IN *L* FORMAT. CPCOM 472 * *LEVEL* = OVERLAY LEVEL. CPCOM 473 * *SYSTEM* IF SPECIFIED, OVERLAY WILL BE LOADED FROM CPCOM 474 * SYSTEM LIBRARY, AND (NAME) = NAME OF CPCOM 475 * OVERLAY. CPCOM 476 * *FWA* IF SPECIFIED = ADDRESS AT WHICH OVERLAY WILL CPCOM 477 * BE LOADED. CPCOM 478 * EXIT (X1) = OVERLAY ENTRY ADDRESS. CPCOM 479 * CALLS OVL=. CPCOM 480 CPCOM 481 CPCOM 482 PURGMAC OVERLAY CPCOM 483 CPCOM 484 OVERLAY MACRO N,L,S,F CPCOM 485 LOCAL A CPCOM 486 A SET 0 CPCOM 487 IFC NE,$S$$,1 CPCOM 488 A SET 1 CPCOM 489 .1 IFC NE,$L$$ CPCOM 490 SX6 L*100B+A CPCOM 491 .1 ELSE 1 CPCOM 492 SX6 A CPCOM 493 R= X2,F CPCOM 494 IFC NE,$N$X1$,1 CPCOM 495 SA1 N CPCOM 496 RJ =XOVL= CPCOM 497 ENDM CPCOM 498 PDATE SPACE 4 CPCOM 499 *** PDATE - RETURN PACKED DATE. CPCOM 500 * CPCOM 501 * CPCOM 502 * PDATE STATUS CPCOM 503 * ENTRY *STATUS* = ADDRESS FOR PACKED DATE. CPCOM 504 * EXIT - CPCOM 505 * STATUS 24/,18/ YYMMDD,18/ HHMMSS CPCOM 506 * CALLS SYS=. CPCOM 507 CPCOM 508 CPCOM 509 PURGMAC PDATE CPCOM 510 CPCOM 511 PDATE MACRO S CPCOM 512 * FORM TIME (PDATE) REQUEST CPCOM 513 SX6 3RTIM CPCOM 514 R= X1,S CPCOM 515 LX6 42D CPCOM 516 BX6 X6+X1 CPCOM 517 SX1 200006B CPCOM 518 LX1 24D CPCOM 519 BX6 X6+X1 CPCOM 520 * PROCESS SYSTEM REQUEST CPCOM 521 RJ =XSYS= CPCOM 522 ENDM CPCOM 523 RECALL SPACE 4 CPCOM 524 *** RECALL - PLACE PROGRAM IN RECALL STATUS. CPCOM 525 * CPCOM 526 * CPCOM 527 * RECALL STATUS CPCOM 528 * ENTRY *STATUS* IF PRESENT, PROGRAM WILL BE RECALLED WHEN CPCOM 529 * BIT 0 OF (STATUS) IS SET. UNLESS CPCOM 530 * (STATUS) = 0. CPCOM 531 * CALLS RCL= OR WNB=. CPCOM 532 CPCOM 533 CPCOM 534 PURGMAC RECALL CPCOM 535 CPCOM 536 RECALL MACRO S CPCOM 537 * RECALL CPCOM 538 .1 IFC EQ,$S$$ CPCOM 539 RJ =XRCL= CPCOM 540 .1 ELSE CPCOM 541 * WAIT NOT BUSY CPCOM 542 R= X2,S CPCOM 543 RJ =XWNB= CPCOM 544 .1 ENDIF CPCOM 545 ENDM CPCOM 546 RTIME SPACE 4 CPCOM 547 *** RTIME - REQUEST REAL TIME CLOCK READING. CPCOM 548 * CPCOM 549 * CPCOM 550 * RTIME STATUS CPCOM 551 * ENTRY *STATUS* = ADDRESS FOR CLOCK RESPONSE. CPCOM 552 * EXIT - CPCOM 553 * STATUS 24/ SECONDS,36/ MILLISECONDS CPCOM 554 * CALLS SYS=. CPCOM 555 CPCOM 556 CPCOM 557 PURGMAC RTIME CPCOM 558 CPCOM 559 RTIME MACRO S CPCOM 560 * FORM TIME (REAL TIME CLOCK) REQUEST CPCOM 561 SX6 3RTIM CPCOM 562 R= X1,S CPCOM 563 LX6 42D CPCOM 564 BX6 X6+X1 CPCOM 565 SX1 200005B CPCOM 566 LX1 24D CPCOM 567 BX6 X6+X1 CPCOM 568 * PROCESS SYSTEM REQUEST CPCOM 569 RJ =XSYS= CPCOM 570 ENDM CPCOM 571 STIME SPACE 4 CPCOM 572 *** STIME - REQUEST ACCUMULATED SRUS. CPCOM 573 * CPCOM 574 * CPCOM 575 * STIME STATUS CPCOM 576 * ENTRY *STATUS* = ADDRESS FOR RESPONSE. CPCOM 577 * EXIT - CPCOM 578 * STATUS 12/ 2000B,12/ 0,36/ MILLI-UNITS CPCOM 579 * CALLS SYS= CPCOM 580 CPCOM 581 CPCOM 582 PURGMAC STIME CPCOM 583 CPCOM 584 STIME MACRO S CPCOM 585 * FORM TIME (STIME) REQUEST CPCOM 586 SX6 3RTIM CPCOM 587 R= X1,S CPCOM 588 LX6 42D CPCOM 589 BX6 X6+X1 CPCOM 590 SX1 200007B CPCOM 591 LX1 24D CPCOM 592 BX6 X6+X1 CPCOM 593 * PROCESS SYSTEM REQUEST CPCOM 594 RJ =XSYS= CPCOM 595 ENDM CPCOM 596 SYSTEM SPACE 4 CPCOM 597 *** SYSTEM - REQUEST SYSTEM FUNCTION. CPCOM 598 * CPCOM 599 * CPCOM 600 * SYSTEM REQUEST,RECALL,P1,P2 CPCOM 601 * ENTRY *REQUEST* = 3 CHARACTER SYSTEM REQUEST. CPCOM 602 * *P1* = PARAMETER FOR BITS 0 - 17 OF REQUEST. CPCOM 603 * *P2* = PARAMETER FOR BITS 18 - 35 OF REQUEST. CPCOM 604 * USES X2. CPCOM 605 * CALLS SYS=. CPCOM 606 CPCOM 607 CPCOM 608 PURGMAC SYSTEM CPCOM 609 CPCOM 610 SYSTEM MACRO C,L,P1,P2 CPCOM 611 QUAL CPCOM 612 (C) SET 0 CPCOM 613 QUAL * CPCOM 614 * FORM REQUEST CPCOM 615 IFC NE,$C$$,2 CPCOM 616 SX6 3R;A CPCOM 617 LX6 42D CPCOM 618 * PROCESS *P2* CPCOM 619 IFC NE,$P2$$,3 CPCOM 620 R= X2,P2 CPCOM 621 LX2 18D CPCOM 622 IX6 X6+X2 CPCOM 623 * PROCESS *P1* CPCOM 624 IFC NE,$P1$$,2 CPCOM 625 R= X1,P1 CPCOM 626 BX6 X6+X1 CPCOM 627 * PROCESS RECALL REQUEST CPCOM 628 IFC NE,$L$$,3 CPCOM 629 MX1 1 CPCOM 630 LX1 41D CPCOM 631 IX6 X6+X1 CPCOM 632 RJ =XSYS= CPCOM 633 ENDM CPCOM 634 TIME SPACE 4 CPCOM 635 *** TIME - REQUEST ACCUMULATED CPU TIME. CPCOM 636 * CPCOM 637 * CPCOM 638 * TIME STATUS CPCOM 639 * ENTRY *STATUS* = ADDRESS FOR TIME RESPONSE. CPCOM 640 * EXIT - CPCOM 641 * STATUS 12/ 2000B,12/0,24/ SEC,12/ MS CPCOM 642 * SEC SECONDS CPCOM 643 * MS MILLISECONDS CPCOM 644 * CALLS SYS=. CPCOM 645 CPCOM 646 CPCOM 647 PURGMAC TIME CPCOM 648 CPCOM 649 TIME MACRO S CPCOM 650 * FORM TIME (CPU TIME) REQUEST CPCOM 651 SX6 3RTIM CPCOM 652 R= X1,S CPCOM 653 LX6 42D CPCOM 654 BX6 X6+X1 CPCOM 655 SX1 200000B CPCOM 656 LX1 24D CPCOM 657 BX6 X6+X1 CPCOM 658 * PROCESS SYSTEM REQUEST CPCOM 659 RJ =XSYS= CPCOM 660 ENDM CPCOM 661 USECPU SPACE 4 CPCOM 662 *** USECPU - SET CPU TO BE USED. CPCOM 663 * CPCOM 664 * CPCOM 665 * USECPU N CPCOM 666 * *N* = 0, USE ANY CPU. CPCOM 667 * = 1, USE CPU - 0. CPCOM 668 * = 2, USE CPU - 1. CPCOM 669 CPCOM 670 CPCOM 671 PURGMAC USECPU CPCOM 672 CPCOM 673 USECPU MACRO N CPCOM 674 R= X1,N CPCOM 675 SX2 31B CPCOM 676 RJ =XCPM= CPCOM 677 ENDM CPCOM 678 USERNUM SPACE 4 CPCOM 679 *** USERNUM - RETURN USER NUMBER. CPCOM 680 * CPCOM 681 * CPCOM 682 * USERNUM STATUS CPCOM 683 * ENTRY *STATUS* = ADDRESS FOR USER NUMBER RETURN. CPCOM 684 * EXIT - CPCOM 685 * STATUS 42/ *USERNUM* ,18/0 CPCOM 686 * CALLS CPM=. CPCOM 687 CPCOM 688 CPCOM 689 PURGMAC USERNUM CPCOM 690 CPCOM 691 USERNUM MACRO A CPCOM 692 R= X1,A CPCOM 693 SX2 32B CPCOM 694 RJ =XCPM= CPCOM 695 ENDM CPCOM 696 TITLE FET CREATION MACROS. CPCOM 697 FET SPACE 4 CPCOM 698 *** THE FOLLOWING MACROS INITIALIZE FETS FOR FILES. CPCOM 699 * PARAMETERS ARE AS FOLLOWS - CPCOM 700 * FILE = FILE NAME. CPCOM 701 * FWA = FIRST WORD ADDRESS OF CIO BUFFER. CPCOM 702 * LENGTH = LENGTH OF CIO BUFFER. CPCOM 703 * PN = PARAMETERS FOR FIELDS IN FET. CPCOM 704 * CPCOM 705 * P1 - P5 MAY BE IN ANY ORDER AND ONE OF THE FOLLOWING - CPCOM 706 * CPCOM 707 * (WSA=I,L) CPCOM 708 * SET WORKING STORAGE FIELD TO FWA = I, LENGTH = L. CPCOM 709 * CPCOM 710 * (IND=I,L) CPCOM 711 * SET INDEX FIELD TO FWA = I, LENGTH = L. CPCOM 712 * CPCOM 713 * (OWN = I,J) CPCOM 714 * SET OWNCODE EOI ADDRESS = I. CPCOM 715 * SET OWNCODE ERROR EXIT ADDRESS = J. CPCOM 716 * IF J PRESENT, ERROR PROCESSING BIT IS SET. CPCOM 717 * CPCOM 718 * (FET=L) CPCOM 719 * SET LENGTH OF FET = L. CPCOM 720 * CPCOM 721 * (DTY=N) CPCOM 722 * SET DEVICE TYPE = N. CPCOM 723 * CPCOM 724 * (DSC = X) CPCOM 725 * VALID PARAMETER BUT IGNORED. CPCOM 726 * CPCOM 727 * (EPR) CPCOM 728 * SET ERROR PROCESSING BIT. CPCOM 729 * CPCOM 730 * (LBL) CPCOM 731 * SET FET LENGTH TO 13D. CPCOM 732 * CPCOM 733 * (UPR) CPCOM 734 * SET USER PROCESSING BIT. CPCOM 735 * CPCOM 736 * (XL) CPCOM 737 * SET EXTENDED LABEL BIT AND FET LENGTH TO 13D. CPCOM 738 * CPCOM 739 * THE FOLLOWING PARAMETERS ARE FOR COMUNICATION WITH THE CPCOM 740 * PERMANENT FILE MANAGER CPCOM 741 * REQUIRES COMSPFM CPCOM 742 * CPCOM 743 * CPCOM 744 * (PFN=PNAME) CPCOM 745 * SET PERMANENT FILE NAME *PNAME*. CPCOM 746 * CPCOM 747 * (USN=UNAME) CPCOM 748 * SET USER NAME *UNAME*. CPCOM 749 * CPCOM 750 * (PWD=PASWORD) CPCOM 751 * SET PERMANENT FILE PASSWORD. CPCOM 752 * CPCOM 753 * (UCW=USERCON) CPCOM 754 * SET USER CONTROL BITS (BIT 59 MUST BE SET TO INDICATE CPCOM 755 * WORD CONTAINS USER CONTROL INFORMATION). CPCOM 756 * CPCOM 757 * (PKN = PACKNAM) CPCOM 758 * SET PERMANENT FILE PACKNAME TO *PACKNAM*. CPCOM 759 CPCOM 760 CPCOM 761 * BASIC FET CREATION MACRO. CPCOM 762 CPCOM 763 PURGMAC =1 CPCOM 764 CPCOM 765 =1 MACRO M,R,S,F,B,L,V CPCOM 766 LOCAL FL,FG CPCOM 767 * FL = FET LENGTH. CPCOM 768 * FG = FLAG BITS IN FET+1. CPCOM 769 F VFD 42D/0L(*F,16D/,1/M,1/1 CPCOM 770 * SET INITIAL FET LENGTH BY RANDOM DETERMINATION. CPCOM 771 FG SET 4000B*R CPCOM 772 FL SET 3*R+5 CPCOM 773 * INITIALIZE VARIOUS MICROS. CPCOM 774 ECHO 1,X=(EOI,ERR,INF,INL,WSF,WSL) CPCOM 775 =1(*X MICRO 1,, 0 CPCOM 776 ECHO 1,X=(EPR,UPR,XL,DSC,DTY,FET,IND,LBL,OWN,PFN,PKN,PWD,UCW,USN,WSA) CPCOM 777 =1(*X MICRO , CPCOM 778 * PROCESS VALUE SPECIFICATIONS. CPCOM 779 ECHO 4,P=(V) CPCOM 780 .1 IFC NE, P CPCOM 781 =1A FL,FG,P CPCOM 782 .1 ELSE 1 CPCOM 783 STOPDUP CPCOM 784 * GENERATE REMAINDER OF FET. CPCOM 785 VFD 12D/<>=1DTY<>,12D/FG,12D/,6/FL-5,18D/B CPCOM 786 CON B CPCOM 787 CON B CPCOM 788 CON B+L CPCOM 789 IFGE FL,6,16D CPCOM 790 VFD 30D/<>=1WSF<>,30D/<>=1WSF<>+<>=1WSL<> CPCOM 791 IFGE FL,7,14D CPCOM 792 CON 0 CPCOM 793 IFGE FL,8D,12D CPCOM 794 VFD 24D/0,18D/<>=1INL<>,18D/<>=1INF<> CPCOM 795 IFGE FL,9D,10D CPCOM 796 CON <>=1EOI<>*1S30+<>=1ERR<>+0L<>=1PFN<> CPCOM 797 IFGE FL,10D,8D CPCOM 798 CON 0L<>=1USN<> CPCOM 799 IFGE FL,11D,6 CPCOM 800 CON 0L<>=1PWD<> CPCOM 801 IFGE FL,12D,4 CPCOM 802 CON 0L<>=1UCW<> CPCOM 803 IFGE FL,13D,2 CPCOM 804 CON 0L<>=1PKN<> CPCOM 805 BSSZ FL-13D CPCOM 806 ENDM CPCOM 807 SPACE 4,10 CPCOM 808 ** FET CREATION MACRO SUPPORT MACROS. CPCOM 809 * CPCOM 810 * THE FOLLOWING MACROS ARE USED BY THE *=1* MACRO CPCOM 811 * TO ASSIST IN GENERATION OF VALUES FOR EACH INDIVIDUAL CPCOM 812 * PARAMETER. THE *=1A* MACRO IS USED TO CALL EACH OF CPCOM 813 * THE INDIVIDUAL MACROS THAT GENERATE EACH INDIVIDUAL CPCOM 814 * PARAMETER. THE *=1B* MACRO IS A STENCIL USED BY EACH CPCOM 815 * OF THE INDIVIDUAL PARAMETRIC MACROS TO GENERATE ALL CPCOM 816 * VALUES REQUIRED BY THE PARAMETER. CPCOM 817 * CPCOM 818 * THE INDIVIDUAL PARAMETRIC MACROS GENERATE MICROS WHICH CPCOM 819 * ARE THEN USED BY THE *=1* MACRO FOR GENERATION OF THE CPCOM 820 * RESULTANT FET. CPCOM 821 CPCOM 822 CPCOM 823 PURGMAC =1A CPCOM 824 CPCOM 825 =1A MACRO FL,FG,A,B CPCOM 826 )1 MICRO 1,3, A CPCOM 827 )2 MICRO 5,, A CPCOM 828 .1 IF -MIC,=1<>)1<> CPCOM 829 ERR - ILLEGAL FET PARAMETER (<>)1<>). CPCOM 830 .1 ELSE 1 CPCOM 831 =1<>)1<> FL,FG,<>)2<>,B CPCOM 832 ENDM CPCOM 833 CPCOM 834 CPCOM 835 PURGMAC =1B CPCOM 836 CPCOM 837 =1B MACRO FL,LEN,FG,FLG,M,S CPCOM 838 FL MAX FL,LEN CPCOM 839 FG SET FG+FLG CPCOM 840 ECHO 1,A=(M),B=(S) CPCOM 841 =1(*A MICRO 1,, B CPCOM 842 ENDM CPCOM 843 SPACE 4,10 CPCOM 844 ** PARAMETER PROCESSING MACROS. CPCOM 845 CPCOM 846 PURGMAC =1DSC CPCOM 847 CPCOM 848 =1DSC MACRO CPCOM 849 * VALID PARAMETER BUT A NO-OP. CPCOM 850 ENDM CPCOM 851 CPCOM 852 CPCOM 853 PURGMAC =1DTY CPCOM 854 CPCOM 855 =1DTY MACRO FL,FG,A CPCOM 856 * SET DEVICE TYPE IN FET+1. CPCOM 857 =1B FL,,FG,,DTY,A CPCOM 858 ENDM CPCOM 859 CPCOM 860 CPCOM 861 PURGMAC =1EPR CPCOM 862 CPCOM 863 =1EPR MACRO FL,FG CPCOM 864 * SET ERROR PROCESSING FLAG BIT. CPCOM 865 =1B FL,,FG,400B CPCOM 866 ENDM CPCOM 867 CPCOM 868 CPCOM 869 PURGMAC =1FET CPCOM 870 CPCOM 871 =1FET MACRO FL,FG,A CPCOM 872 * SET FET LENGTH AS SPECIFIED. CPCOM 873 =1B FL,A,FG CPCOM 874 ENDM CPCOM 875 CPCOM 876 CPCOM 877 PURGMAC =1IND CPCOM 878 CPCOM 879 =1IND MACRO FL,FG,A,B CPCOM 880 * SET INDEX ADDRESS AND LENGTH. CPCOM 881 =1B FL,8D,FG,,(INF,INL),(A,B) CPCOM 882 ENDM CPCOM 883 CPCOM 884 CPCOM 885 PURGMAC =1LBL CPCOM 886 CPCOM 887 =1LBL MACRO FL,FG CPCOM 888 * SET FET LENGTH TO 11D. CPCOM 889 =1B FL,11D,FG CPCOM 890 ENDM CPCOM 891 CPCOM 892 CPCOM 893 PURGMAC =1OWN CPCOM 894 CPCOM 895 =1OWN MACRO FL,FG,A,B CPCOM 896 * SET OWN CODE PROCESSOR ADDRESSES. CPCOM 897 =1B FL,9D,FG,,(EOI,ERR),(A,B) CPCOM 898 ENDM CPCOM 899 CPCOM 900 CPCOM 901 PURGMAC =1PFN CPCOM 902 CPCOM 903 =1PFN MACRO FL,FG,A CPCOM 904 * SET PERMANENT FILE NAME IN FET. CPCOM 905 =1B FL,9D,FG,,PFN,A CPCOM 906 ENDM CPCOM 907 CPCOM 908 CPCOM 909 PURGMAC =1PKN CPCOM 910 CPCOM 911 =1PKN MACRO FL,FG,A CPCOM 912 * SET PERMANENT FILE PACK NAME. CPCOM 913 =1B FL,13D,FG,,PKN,A CPCOM 914 ENDM CPCOM 915 CPCOM 916 CPCOM 917 PURGMAC =1PWD CPCOM 918 CPCOM 919 =1PWD MACRO FL,FG,A CPCOM 920 * SET PERMANENT FILE PASSWORD. CPCOM 921 =1B FL,11D,FG,,PWD,A CPCOM 922 ENDM CPCOM 923 CPCOM 924 CPCOM 925 PURGMAC =1UCW CPCOM 926 CPCOM 927 =1UCW MACRO FL,FG,A CPCOM 928 * SET PERMANENT FILE USER CONTROL WORD. CPCOM 929 =1B FL,12D,FG,,UCW,A CPCOM 930 ENDM CPCOM 931 CPCOM 932 CPCOM 933 PURGMAC =1UPR CPCOM 934 CPCOM 935 =1UPR MACRO FL,FG CPCOM 936 * SET *UP* BIT IN FET+1. CPCOM 937 =1B FL,,FG,1000B CPCOM 938 ENDM CPCOM 939 CPCOM 940 CPCOM 941 PURGMAC =1USN CPCOM 942 CPCOM 943 =1USN MACRO FL,FG,A CPCOM 944 * SET PERMANENT FILE USER NUMBER IN FET. CPCOM 945 =1B FL,10D,FG,,USN,A CPCOM 946 ENDM CPCOM 947 CPCOM 948 CPCOM 949 PURGMAC =1WSA CPCOM 950 CPCOM 951 =1WSA MACRO FL,FG,A,B CPCOM 952 * SET WORKING STORAGE BUFFER ADDRESSES. CPCOM 953 =1B FL,6D,FG,,(WSF,WSL),(A,B) CPCOM 954 ENDM CPCOM 955 CPCOM 956 CPCOM 957 PURGMAC =1XL CPCOM 958 CPCOM 959 =1XL MACRO FL,FG CPCOM 960 * SET FET LENGTH TO 13D AND *XL* FLAG BIT CPCOM 961 =1B FL,13D,FG,40B CPCOM 962 ENDM CPCOM 963 FILEB SPACE 4 CPCOM 964 *** FILEB - CREATE FET FOR BINARY SEQUENTIAL FILE. CPCOM 965 * CPCOM 966 * CPCOM 967 *LFN FILEB FWA,LENGTH,A,B,C,...,P CPCOM 968 CPCOM 969 CPCOM 970 PURGMAC FILEB CPCOM 971 CPCOM 972 MACRO FILEB,LFN,FWA,LEN,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P CPCOM 973 =1 1,0,5D,LFN,FWA,LEN,((A),(B),(C),(D),(E),(F),(G),(H),(I),(J),(K),(L) CPCOM 974 ,,(M),(N),(O),(P)) CPCOM 975 ENDM CPCOM 976 FILEC SPACE 4 CPCOM 977 *** FILEC - CREATE FET FOR CODED SEQUENTIAL FILE. CPCOM 978 * CPCOM 979 * CPCOM 980 *LFN FILEC FWA,LENGTH,A,B,C,...,P CPCOM 981 CPCOM 982 CPCOM 983 PURGMAC FILEC CPCOM 984 CPCOM 985 MACRO FILEC,LFN,FWA,LEN,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P CPCOM 986 =1 0,0,5D,LFN,FWA,LEN,((A),(B),(C),(D),(E),(F),(G),(H),(I),(J),(K),(L) CPCOM 987 ,,(M),(N),(O),(P)) CPCOM 988 ENDM CPCOM 989 RFILEB SPACE 4 CPCOM 990 *** RFILEB - CREATE FET FOR BINARY RANDOM FILE. CPCOM 991 * CPCOM 992 * CPCOM 993 *LFN RFILEB FWA,LENGTH,A,B,C,...,P CPCOM 994 CPCOM 995 CPCOM 996 PURGMAC RFILEB CPCOM 997 CPCOM 998 MACRO RFILEB,LFN,FWA,LEN,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P CPCOM 999 =1 1,1,8D,LFN,FWA,LEN,((A),(B),(C),(D),(E),(F),(G),(H),(I),(J),(K),(L) CPCOM 1000 ,,(M),(N),(O),(P)) CPCOM 1001 ENDM CPCOM 1002 RFILEC SPACE 4 CPCOM 1003 *** RFILEC - CREATE FET FOR CODED RANDOM FILE. CPCOM 1004 * CPCOM 1005 * CPCOM 1006 *LFN RFILEC FWA,LENGTH,A,B,C,...,P CPCOM 1007 CPCOM 1008 CPCOM 1009 PURGMAC RFILEC CPCOM 1010 CPCOM 1011 MACRO RFILEC,LFN,FWA,LEN,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P CPCOM 1012 =1 0,1,8D,LFN,FWA,LEN,((A),(B),(C),(D),(E),(F),(G),(H),(I),(J),(K),(L) CPCOM 1013 ,,(M),(N),(O),(P)) CPCOM 1014 ENDM CPCOM 1015 TITLE LOCAL FILE ACTION MACROS. CPCOM 1016 FILE SPACE 4 CPCOM 1017 *** FILE ACTION REQUESTS FORMAT REQUESTS INTO X REGISTERS CPCOM 1018 * AND RETURN JUMP TO SUBROUTINES FOR PROCESSING. CPCOM 1019 * CPCOM 1020 * THE FOLLOWING INFORMATION APPLIES TO ALL I/O FUNCTION CPCOM 1021 * REQUESTS - CPCOM 1022 * CPCOM 1023 * THE PARAMETER *FILE* IS THE ADDRESS OF THE FET CPCOM 1024 * IS USED TO CONTROL THE FILE FOR WHICH THE OPERATION CPCOM 1025 * IS REQUESTED. CPCOM 1026 * CPCOM 1027 * IF THE PARAMETER *RECALL* IS PRESENT IN THE MACRO CPCOM 1028 * CALL, CONTROL WILL BE RETURNED TO THE USER PROGRAM CPCOM 1029 * WHEN THE REQUESTED FUNCTION IS COMPLETE. IF CPCOM 1030 * *RECALL* IS NOT SPECIFIED, CONTROL WILL BE RETURNED CPCOM 1031 * WHEN THE OPERATION IS REQUESTED. CPCOM 1032 * CPCOM 1033 * ENTRY COMMON DECK CPCOM 1034 * CIO= COMCCIO CPCOM 1035 * LFM= COMCLFM CPCOM 1036 SPACE 4 CPCOM 1037 ** BASIC I/O FUNCTION REQUEST MACROS. CPCOM 1038 CPCOM 1039 CPCOM 1040 PURGMAC =2 CPCOM 1041 CPCOM 1042 =2 MACRO F,L,O CPCOM 1043 R= X2,F CPCOM 1044 * (X7) = OPCODE CPCOM 1045 * (X7) = -OPCODE IF RECALL REQUESTED CPCOM 1046 .1 IFC EQ,$L$$ CPCOM 1047 SX7 O CPCOM 1048 .1 ELSE 1 CPCOM 1049 SX7 -O CPCOM 1050 * PROCESS REQUEST CPCOM 1051 RJ =XCIO= CPCOM 1052 ENDM CPCOM 1053 ASSIGN SPACE 4 CPCOM 1054 *** ASSIGN - ASSIGN COMMON FILE TO JOB. CPCOM 1055 * CPCOM 1056 * CPCOM 1057 * ASSIGN FILE,LIBRARY CPCOM 1058 * ENTRY *LIBRARY* IS PRESENT, FILE WILL BE ASSIGNED FROM CPCOM 1059 * SYSTEM LIBRARY IF AVAILABLE. CPCOM 1060 * CALLS LFM=. CPCOM 1061 CPCOM 1062 CPCOM 1063 PURGMAC ASSIGN CPCOM 1064 CPCOM 1065 ASSIGN MACRO F,L CPCOM 1066 R= X2,F CPCOM 1067 .1 IFC EQ,$L$$ CPCOM 1068 R= X7,1 CPCOM 1069 .1 ELSE 1 CPCOM 1070 SX7 20B CPCOM 1071 RJ =XLFM= CPCOM 1072 ENDM CPCOM 1073 BKSP SPACE 4 CPCOM 1074 *** BKSP - BACKSPACE 1 LOGICAL RECORD. CPCOM 1075 * CPCOM 1076 * CPCOM 1077 * BKSP FILE,RECALL CPCOM 1078 * CALLS CIO=. CPCOM 1079 CPCOM 1080 CPCOM 1081 PURGMAC BKSP CPCOM 1082 CPCOM 1083 BKSP MACRO F,L CPCOM 1084 =2 F,L,40B CPCOM 1085 ENDM CPCOM 1086 BKSPRU SPACE 4 CPCOM 1087 *** BKSPRU - BACKSPACE PHYSICAL RECORDS. CPCOM 1088 * CPCOM 1089 * CPCOM 1090 * BKSPRU FILE,N,RECALL CPCOM 1091 * ENTRY *N* = RECORD COUNT. CPCOM 1092 * CALLS CIO=. CPCOM 1093 CPCOM 1094 CPCOM 1095 PURGMAC BKSPRU CPCOM 1096 CPCOM 1097 BKSPRU MACRO F,N,L CPCOM 1098 R= X2,F CPCOM 1099 IFNE N,,3 CPCOM 1100 R= X1,N CPCOM 1101 LX1 18D CPCOM 1102 BX2 X1+X2 CPCOM 1103 .1 IFC EQ,$L$$ CPCOM 1104 SX7 44B CPCOM 1105 .1 ELSE 1 CPCOM 1106 SX7 -44B CPCOM 1107 RJ =XCIO= CPCOM 1108 ENDM CPCOM 1109 CLOSE SPACE 4 CPCOM 1110 *** CLOSE - CLOSE FILE. CPCOM 1111 * CPCOM 1112 * CPCOM 1113 * CLOSE FILE,TYPE,RECALL CPCOM 1114 * ENTRY *TYPE* AS FOLLOWS - CPCOM 1115 * NR DO NOT REWIND FILE CPCOM 1116 * UNLOAD UNLOAD FILE CPCOM 1117 * RETURN RETURN FILE CPCOM 1118 * REWIND REWIND FILE CPCOM 1119 * CALLS CIO=. CPCOM 1120 CPCOM 1121 CPCOM 1122 PURGMAC CLOSE CPCOM 1123 CPCOM 1124 CLOSE MACRO F,T,L CPCOM 1125 LOCAL A CPCOM 1126 R= X2,F CPCOM 1127 A SET 0 CPCOM 1128 ECHO 3,B=(,NR,UNLOAD,RETURN,REWIND),C=(150B,130B,170B,174B,150B) CPCOM 1129 IFC EQ,$B$T$,2 CPCOM 1130 STOPDUP CPCOM 1131 A SET C CPCOM 1132 IFEQ A,,1 CPCOM 1133 ERR ILLEGAL CLOSE TYPE - T CPCOM 1134 .1 IFC EQ,$L$$ CPCOM 1135 SX7 A CPCOM 1136 .1 ELSE 1 CPCOM 1137 SX7 -A CPCOM 1138 RJ =XCIO= CPCOM 1139 ENDM CPCOM 1140 CLOSER SPACE 4 CPCOM 1141 *** CLOSER - CLOSE MAGNETIC TAPE REEL. CPCOM 1142 * CPCOM 1143 * CPCOM 1144 * CLOSER FILE,TYPE,RECALL CPCOM 1145 * ENTRY *TYPE* AS FOLLOWS - CPCOM 1146 * NR DO NOT REWIND CPCOM 1147 * UNLOAD UNLOAD CPCOM 1148 * IF ABSENT REWIND CPCOM 1149 * CALLS CIO=. CPCOM 1150 CPCOM 1151 CPCOM 1152 PURGMAC CLOSER CPCOM 1153 CPCOM 1154 CLOSER MACRO F,T,L CPCOM 1155 LOCAL A CPCOM 1156 R= X2,F CPCOM 1157 A SET 0 CPCOM 1158 ECHO 3,B=(,NR,UNLOAD),C=(350B,330B,370B) CPCOM 1159 IFC EQ,$B$T$,2 CPCOM 1160 STOPDUP CPCOM 1161 A SET C CPCOM 1162 IFEQ A,,1 CPCOM 1163 ERR ILLEGAL CLOSER TYPE - T CPCOM 1164 .1 IFC EQ,$L$$ CPCOM 1165 SX7 A CPCOM 1166 .1 ELSE 1 CPCOM 1167 SX7 -A CPCOM 1168 RJ =XCIO= CPCOM 1169 ENDM CPCOM 1170 EVICT SPACE 4 CPCOM 1171 *** EVICT - RELEASE FILE SPACE. CPCOM 1172 * CPCOM 1173 * CPCOM 1174 * EVICT FILE,RECALL CPCOM 1175 * CALLS CIO=. CPCOM 1176 CPCOM 1177 CPCOM 1178 PURGMAC EVICT CPCOM 1179 CPCOM 1180 EVICT MACRO F,L CPCOM 1181 =2 F,L,114B CPCOM 1182 ENDM CPCOM 1183 FILINFO SPACE 4,10 CPCOM 1184 *** FILINFO - RETURN SYSTEM INFORMATION ABOUT SPECIFIED FILE. CPCOM 1185 * CPCOM 1186 * CPCOM 1187 * FILINFO ADDR CPCOM 1188 * ENTRY *ADDR* - ADDRESS OF PARAMETER BLOCK TO RECEIVE CPCOM 1189 * INFORMATION. CPCOM 1190 * CPCOM 1191 * CALLS LFM=. CPCOM 1192 CPCOM 1193 CPCOM 1194 PURGMAC FILINFO CPCOM 1195 CPCOM 1196 FILINFO MACRO F CPCOM 1197 R= X2,F CPCOM 1198 SX7 32B CPCOM 1199 RJ =XLFM= CPCOM 1200 ENDM CPCOM 1201 LABEL SPACE 4 CPCOM 1202 *** LABEL - REQUEST AUTOMATIC MAGNETIC TAPE ASSIGNMENT. CPCOM 1203 * CPCOM 1204 * CPCOM 1205 * LABEL F CPCOM 1206 * ENTRY *F* = FET ADDRESS CPCOM 1207 * FET+10B - FET+15B CONTAIN TAPE DESCRIPTORS AND CPCOM 1208 * LABEL INFORMATION IN THE FORMAT - CPCOM 1209 * CPCOM 1210 * FET+10B 1/R,1/L,1/N,1/T,2/ ,3/D,3/CV,12/PO,6/F,6/NS,24/FC CPCOM 1211 * R LABEL PROCESSING CPCOM 1212 * 0 = READ LABEL FILE OPENED BY OPEN/ALTER CPCOM 1213 * 1 = WRITE LABEL FILE OPENED BY OPEN/WRITE CPCOM 1214 * L KRONOS LABELED IF SET CPCOM 1215 * N NON-STANDARD LABELS IF SET CPCOM 1216 * T NINE TRACK IF SET, OTHERWISE SEVEN TRACK CPCOM 1217 * D DENSITY CPCOM 1218 * 0 = INSTALLATION DEFAULT CPCOM 1219 * 1 = 556 BPI CPCOM 1220 * 2 = 200 BPI CPCOM 1221 * 3 = 800 BPI/CPI CPCOM 1222 * 4 = 1600 CPI CPCOM 1223 * CV CONVERSION MODE CPCOM 1224 * 0 = INSTALLATION DEFAULT CPCOM 1225 * 1 = USASI/ASCII CONVERSION 9 TRACK CPCOM 1226 * 2 = EBCDIC CONVERSION 9 TRACK CPCOM 1227 * PO PROCESSING OPTIONS CPCOM 1228 * XXX0 = ABORT ON P.E. UNLESS E.P. SET CPCOM 1229 * XXX1 = ABORT ON P.E. REGARDLESS OF E.P. CPCOM 1230 * XXX2 = NO ABORT ON P.E. CPCOM 1231 * XXX4 = INHIBIT ERROR PROCESSING CPCOM 1232 * XX1X = ENFORCE RING OUT CPCOM 1233 * XX2X = ENFORCE RING IN CPCOM 1234 * XX4X = INHIBIT UNLOAD CPCOM 1235 * 0XXX = DEFAULT EOT OPTION SELECTED ACCORDING TO CPCOM 1236 * LABEL AND FORMAT SPECIFICATION CPCOM 1237 * 1XXX = STOP ON TAPE MARK AFTER EOT (UNLABELED) CPCOM 1238 * 1XXX = STOP ON TAPE MARK PLUS LABELS (LABELED) CPCOM 1239 * 2XXX = ACCEPT BLOCK IN PROGRESS ON EOT CPCOM 1240 * 4XXX = INGORE BLOCK IN PROGRESS ON EOT CPCOM 1241 * F DATA FORMAT CPCOM 1242 * 0 = INTERNAL BINARY CPCOM 1243 * 1 = SCOPE INTERNAL CPCOM 1244 * 2 = EXTERNAL BINARY CPCOM 1245 * 3 = SCOPE STRANGER OR LONG STRANGER CPCOM 1246 * 4 = CODED CPCOM 1247 * 5 = BLOCKED CODED CPCOM 1248 * 6 = MIXED CPCOM 1249 * NS NOISE SIZE IN FRAMES CPCOM 1250 * FC BLOCK SIZE IN FRAMES CPCOM 1251 * CPCOM 1252 * FET+11B 36/VSN,6/A,3/0,15/SN CPCOM 1253 * VSN 6 CHARACTER VOLUME SERIAL NUMBER (SPACE FILLED) CPCOM 1254 * A 1 CHARACTER ACCESSIBILITY (DEFAULT = * *) CPCOM 1255 * SN FILE SECTION NUMBER (DEFAULT = 0001) CPCOM 1256 * CPCOM 1257 * FET+12B 60/FI CPCOM 1258 * FI FIRST 10 CHARACTERS OF FILE IDENTIFIER CPCOM 1259 * CPCOM 1260 * FET+13B 42/FI,3/0,15/QN CPCOM 1261 * FI LAST 7 CHARACTERS OF FILE IDENTIFIER (SPACE FILLED) CPCOM 1262 * QN FILE SEQUENCE NUMBER (DEFAULT = 0001) CPCOM 1263 * CPCOM 1264 * FET+14B 36/SI,9/E,15/G CPCOM 1265 * SI 6 CHARACTER MULTI-SET IDENTIFIER (SPACE FILLED) CPCOM 1266 * E GENERATION VERSION NUMBER (DEFAULT = 00) CPCOM 1267 * G GENERATION NUMBER (DEFAULT = 0001) CPCOM 1268 * CPCOM 1269 * FET+15B 30/RTD,30/CRD CPCOM 1270 * RTD RETENTION DATE (JULIAN) (DEFAULT = TODAY) CPCOM 1271 * CRD CREATION DATE (JULIAN) (DEFAULT = TODAY) CPCOM 1272 * CPCOM 1273 * FOR AUTOMATIC ASSIGNMENT, A VOLUME SERIAL NUMBER MUST BE CPCOM 1274 * SUPPLIED EITHER THROUGH A *VSN* CONTROL CARD OR BY THE VSN CPCOM 1275 * FIELD IN FET+11B. IF THE VSN FIELD IS ZERO AND NO CPCOM 1276 * VSN HAS BEEN SPECIFIED BY A VSN CARD, THE OPERATOR CPCOM 1277 * WILL BE REQUESTED TO ASSIGN THE APPROPRIATE EQUIPMENT. CPCOM 1278 * CPCOM 1279 * CALLS LFM=. CPCOM 1280 CPCOM 1281 CPCOM 1282 PURGMAC LABEL CPCOM 1283 CPCOM 1284 LABEL MACRO F CPCOM 1285 R= X2,F CPCOM 1286 SX7 24B CPCOM 1287 RJ =XLFM= CPCOM 1288 ENDM CPCOM 1289 LOCK SPACE 4 CPCOM 1290 *** LOCK - SET WRITE LOCK OUT. CPCOM 1291 * CPCOM 1292 * CPCOM 1293 * LOCK FILE CPCOM 1294 * FILE MUST BE LOCAL. CPCOM 1295 * CALLS LFM=. CPCOM 1296 CPCOM 1297 CPCOM 1298 PURGMAC LOCK CPCOM 1299 CPCOM 1300 LOCK MACRO F CPCOM 1301 R= X2,F CPCOM 1302 SX7 10B CPCOM 1303 RJ =XLFM= CPCOM 1304 ENDM CPCOM 1305 OPEN SPACE 4 CPCOM 1306 *** OPEN - OPEN FILE FOR PROCESSING. CPCOM 1307 * CPCOM 1308 * CPCOM 1309 * OPEN FILE,TYPE,RECALL CPCOM 1310 * ENTRY *TYPE* AS FOLLOWS. CPCOM 1311 * READ CPCOM 1312 * READNR CPCOM 1313 * WRITE CPCOM 1314 * WRITENR CPCOM 1315 * ALTER CPCOM 1316 * ALTERNR CPCOM 1317 * REEL CPCOM 1318 * NR CPCOM 1319 * REELNR CPCOM 1320 * IF ABSENT, REWIND CPCOM 1321 * CALLS CIO=. CPCOM 1322 CPCOM 1323 CPCOM 1324 PURGMAC OPEN CPCOM 1325 CPCOM 1326 OPEN MACRO F,T,L CPCOM 1327 LOCAL A CPCOM 1328 R= X2,F CPCOM 1329 A SET 0 CPCOM 1330 ECHO 3,B=(,READ,REEL,ALTER,WRITE,NR,READNR,REELNR,ALTERNR,WRITENR),C=( CPCOM 1331 ,160B,140B,340B,160B,144B,120B,100B,300B,120B,104B) CPCOM 1332 IFC EQ,$B$T$,2 CPCOM 1333 STOPDUP CPCOM 1334 A SET C CPCOM 1335 IFEQ A,,1 CPCOM 1336 ERR ILLEGAL OPEN TYPE - T CPCOM 1337 .1 IFC EQ,$L$$ CPCOM 1338 SX7 A CPCOM 1339 .1 ELSE 1 CPCOM 1340 SX7 -A CPCOM 1341 RJ =XCIO= CPCOM 1342 ENDM CPCOM 1343 POSMF SPACE 4 CPCOM 1344 *** POSMF - POSITION MULTI-FILE SET. CPCOM 1345 * MAGNETIC TAPE ONLY. CPCOM 1346 * CPCOM 1347 * CPCOM 1348 * POSMF FILE,RECALL CPCOM 1349 * CALLS CIO=. CPCOM 1350 CPCOM 1351 CPCOM 1352 PURGMAC POSMF CPCOM 1353 CPCOM 1354 POSMF MACRO F,L CPCOM 1355 =2 F,L,110B CPCOM 1356 ENDM CPCOM 1357 READ SPACE 4 CPCOM 1358 *** READ - READ FILE TO CIO BUFFER. CPCOM 1359 * CPCOM 1360 * CPCOM 1361 * READ FILE,RECALL CPCOM 1362 * CALLS CIO=. CPCOM 1363 CPCOM 1364 CPCOM 1365 PURGMAC READ CPCOM 1366 CPCOM 1367 READ MACRO F,L CPCOM 1368 =2 F,L,10B CPCOM 1369 ENDM CPCOM 1370 READCW SPACE 4 CPCOM 1371 *** READCW - READ NON-STOP WITH CONTROL WORDS. CPCOM 1372 * CPCOM 1373 * CPCOM 1374 * READCW FILE,LEVEL,RECALL CPCOM 1375 * ENTRY LEVEL= 0 OR ABSENT, STOP AT END OF INFORMATION. CPCOM 1376 * = 17B, STOP AT END OF FILE. CPCOM 1377 * CALLS CIO=. CPCOM 1378 CPCOM 1379 CPCOM 1380 PURGMAC READCW CPCOM 1381 CPCOM 1382 READCW MACRO F,T,L CPCOM 1383 R= X2,F CPCOM 1384 SX7 200B CPCOM 1385 IFC NE,$T$$,3 CPCOM 1386 R= X6,T CPCOM 1387 LX6 14D CPCOM 1388 BX7 X6+X7 CPCOM 1389 IFC NE,$L$$,1 CPCOM 1390 BX7 -X7 CPCOM 1391 RJ =XCIO= CPCOM 1392 ENDM CPCOM 1393 READEI SPACE 4 CPCOM 1394 *** READEI - READ FILE TO END OF INFORMATION. CPCOM 1395 * CPCOM 1396 * CPCOM 1397 * READEI FILE,RECALL CPCOM 1398 * CALLS CIO=. CPCOM 1399 CPCOM 1400 CPCOM 1401 PURGMAC READEI CPCOM 1402 CPCOM 1403 READEI MACRO F,L CPCOM 1404 =2 F,L,600B CPCOM 1405 ENDM CPCOM 1406 READLS SPACE 4 CPCOM 1407 *** READLS - READ FILE WITH LIST. CPCOM 1408 * CPCOM 1409 * CPCOM 1410 * READLS FILE,RECALL CPCOM 1411 * MASS STORAGE FILES ONLY. CPCOM 1412 * CALLS CIO=. CPCOM 1413 CPCOM 1414 CPCOM 1415 PURGMAC READLS CPCOM 1416 CPCOM 1417 READLS MACRO F,L CPCOM 1418 =2 F,L,210B CPCOM 1419 ENDM CPCOM 1420 READN SPACE 4 CPCOM 1421 *** READN - READ *S* OR *L* FORMAT TAPE NON-STOP. CPCOM 1422 * MAGNETIC TAPE ONLY. CPCOM 1423 * CPCOM 1424 * CPCOM 1425 * READN FILE,RECALL CPCOM 1426 * CALLS CIO=. CPCOM 1427 CPCOM 1428 CPCOM 1429 PURGMAC READN CPCOM 1430 CPCOM 1431 READN MACRO F,L CPCOM 1432 =2 F,L,260B CPCOM 1433 ENDM CPCOM 1434 READNS SPACE 4 CPCOM 1435 *** READNS - READ FILE NON-STOP. (READ TO EOF) CPCOM 1436 * CPCOM 1437 * CPCOM 1438 * READNS FILE,RECALL CPCOM 1439 * CALLS CIO=. CPCOM 1440 CPCOM 1441 CPCOM 1442 PURGMAC READNS CPCOM 1443 CPCOM 1444 READNS MACRO F,L CPCOM 1445 =2 F,L,250B CPCOM 1446 ENDM CPCOM 1447 READSKP SPACE 4 CPCOM 1448 *** READSKP - READ SKIP. CPCOM 1449 * READSKP PERFORMS A READ FUNCTION UNTIL THE CIO BUFFER IS CPCOM 1450 * FULL, OR AN END OF RECORD, END OF FILE IS SENSED. CPCOM 1451 * IF THE BUFFER IS FILLED BEFORE EOR IS REACHED, THE FILE IS CPCOM 1452 * POSITIONED TO END OF RECORD. IF *LEVEL* IS GIVEN AS 17B, THE CPCOM 1453 * FILE IS POSITIONED TO END OF FILE INSTEAD OF END OF RECORD. CPCOM 1454 * CPCOM 1455 * CPCOM 1456 * READSKP FILE,LEVEL,RECALL CPCOM 1457 * ENTRY LEVEL= 0 OR ABSENT, SKIP TO END OF RECORD. CPCOM 1458 * = 17B, SKIP TO END OF FILE. CPCOM 1459 * CALLS CIO=. CPCOM 1460 CPCOM 1461 CPCOM 1462 PURGMAC READSKP CPCOM 1463 CPCOM 1464 READSKP MACRO F,T,L CPCOM 1465 R= X2,F CPCOM 1466 SX7 20B CPCOM 1467 IFC NE,$T$$,3 CPCOM 1468 R= X6,T CPCOM 1469 LX6 14D CPCOM 1470 BX7 X6+X7 CPCOM 1471 IFC NE,$L$$,1 CPCOM 1472 BX7 -X7 CPCOM 1473 RJ =XCIO= CPCOM 1474 ENDM CPCOM 1475 RELEASE SPACE 4 CPCOM 1476 *** RELEASE - RELEASE FILE. CPCOM 1477 * CPCOM 1478 * CPCOM 1479 * RELEASE FILE,TYPE,ORIG,USER CPCOM 1480 * ENTRY *TYPE* AS FOLLOWS - CPCOM 1481 * PRINT RELEASE FILE TO PRINT QUEUE. CPCOM 1482 * PUNCH RELEASE FILE TO PUNCH QUEUE (O26). CPCOM 1483 * PUNCH9 RELEASE FILE TO PUNCH QUEUE (O29). CPCOM 1484 * PUNCHB RELEASE FILE TO PUNCHB QUEUE. CPCOM 1485 * P8 RELEASE FILE TO P8 QUEUE. CPCOM 1486 * *ORIG* AS FOLLOWS - CPCOM 1487 * BC RELEASE FILE TO BATCH SUBSYSTEM. CPCOM 1488 * EI RELEASE FILE TO EXPORT SUBSYSTEM (REMOTE BATCH). CPCOM 1489 * *USER* = ADDRESS OF USER NUMBER TO RELEASE TO AT CPCOM 1490 * THAT ORIGIN. CPCOM 1491 * CALLS LFM=. CPCOM 1492 CPCOM 1493 CPCOM 1494 PURGMAC RELEASE CPCOM 1495 CPCOM 1496 RELEASE MACRO F,T,O,U CPCOM 1497 LOCAL A,D,H,PHFR,PBFR,P8FR,P9FR CPCOM 1498 LOCAL PRFT,PHFT CPCOM 1499 CPCOM 1500 * NOTE - IF THE VALUES FOR *PBFR/P8FR/PHFR/P9FR* ARE CHANGED CPCOM 1501 * IN *COMSJIO*, THE APPROPRIATE CHANGES MUST BE MADE BELOW. CPCOM 1502 CPCOM 1503 PBFR SET 1 CPCOM 1504 P8FR SET 2 CPCOM 1505 PHFR SET 4 CPCOM 1506 P9FR SET 5 CPCOM 1507 CPCOM 1508 * NOTE - IF THE VALUES FOR *PRFT/PHFT* ARE CHANGED CPCOM 1509 * IN *PPCOM*, THE APPROPRIATE VALUE MUST BE CHANGED BELOW. CPCOM 1510 CPCOM 1511 PRFT SET 2 CPCOM 1512 PHFT SET 3 CPCOM 1513 A SET 0 CPCOM 1514 ECHO 3,B=(PRINT,PUNCH,PUNCHB,P8,PUNCH9),C=(2,3,4,5,6) CPCOM 1515 IFC EQ,$B$T$,2 CPCOM 1516 STOPDUP CPCOM 1517 A SET C CPCOM 1518 IFEQ A,,1 CPCOM 1519 ERR ILLEGAL RELEASE TYPE - T CPCOM 1520 D SET 7 CPCOM 1521 ECHO 3,E=(,BC,EI),G=(0,1,2) CPCOM 1522 IFC EQ,$E$O$,2 CPCOM 1523 STOPDUP CPCOM 1524 D SET G CPCOM 1525 IFEQ D,7,1 CPCOM 1526 ERR ILLEGAL RELEASE ORIGIN - O CPCOM 1527 IFC EQ,$O$BC$,2 CPCOM 1528 BX1 X1-X1 CPCOM 1529 J SKIP CPCOM 1530 M IFC EQ,$U$$ CPCOM 1531 SX1 B0 CPCOM 1532 M ELSE CPCOM 1533 IFC NE,$U$X1$,1 CPCOM 1534 SA1 U CPCOM 1535 M ENDIF CPCOM 1536 J ENDIF CPCOM 1537 SX7 D CPCOM 1538 LX7 12D CPCOM 1539 BX7 X1+X7 CPCOM 1540 IFEQ A,2,1 CPCOM 1541 SX1 PRFT*100B CPCOM 1542 IFEQ A,3,1 CPCOM 1543 SX1 PHFT*100B+PHFR CPCOM 1544 IFEQ A,4,1 CPCOM 1545 SX1 PHFT*100B+PBFR CPCOM 1546 IFEQ A,5,1 CPCOM 1547 SX1 PHFT*100B+P8FR CPCOM 1548 IFEQ A,6,1 CPCOM 1549 SX1 PHFT*100B+P9FR CPCOM 1550 BX7 X7+X1 CPCOM 1551 SA7 F+6 CPCOM 1552 R= X2,F CPCOM 1553 SX7 16B CPCOM 1554 RJ =XLFM= CPCOM 1555 ENDM CPCOM 1556 RENAME SPACE 4 CPCOM 1557 *** RENAME - RENAME FILE. CPCOM 1558 * CPCOM 1559 * CPCOM 1560 * RENAME FILE,NAME CPCOM 1561 * ENTRY *NAME* = ADDRESS OF NEW FILE NAME. CPCOM 1562 * IF *NAME* = *X1*, (X1) = NEW FILE NAME. CPCOM 1563 * IF *NAME* IS NOT PRESENT, (FET+6) = NEW FILE NAME. CPCOM 1564 * CALLS LFM=. CPCOM 1565 CPCOM 1566 CPCOM 1567 PURGMAC RENAME CPCOM 1568 CPCOM 1569 RENAME MACRO F,N CPCOM 1570 R= X2,F CPCOM 1571 IFC NE,$N$$,4 CPCOM 1572 IFC NE,$N$X1$,1 CPCOM 1573 SA1 N CPCOM 1574 BX6 X1 CPCOM 1575 SA6 F+6 CPCOM 1576 SX7 B0 CPCOM 1577 RJ =XLFM= CPCOM 1578 ENDM CPCOM 1579 REQUEST SPACE 4 CPCOM 1580 *** REQUEST - REQUEST OPERATOR ASSIGNMENT OF EQUIPMENT. CPCOM 1581 * CPCOM 1582 * CPCOM 1583 * REQUEST FILE,UNIT CPCOM 1584 * ENTRY *UNIT* IF USED ASSIGNS THE EQUIPMENT DESIGNATED CPCOM 1585 * IN THE *DTY* POSITION IN (FILE+1). CPCOM 1586 * CALLS LFM=. CPCOM 1587 CPCOM 1588 CPCOM 1589 PURGMAC REQUEST CPCOM 1590 CPCOM 1591 REQUEST MACRO F,U CPCOM 1592 R= X2,F CPCOM 1593 .1 IFC EQ,$U$$ CPCOM 1594 SX7 14B CPCOM 1595 .1 ELSE 1 CPCOM 1596 SX7 15B CPCOM 1597 RJ =XLFM= CPCOM 1598 ENDM CPCOM 1599 RETURN SPACE 4 CPCOM 1600 *** RETURN - RETURN FILE TO SYSTEM. CPCOM 1601 * CPCOM 1602 * CPCOM 1603 * RETURN FILE,RECALL CPCOM 1604 * CALLS CIO=. CPCOM 1605 CPCOM 1606 CPCOM 1607 PURGMAC RETURN CPCOM 1608 CPCOM 1609 RETURN MACRO F,L CPCOM 1610 =2 F,L,70B CPCOM 1611 ENDM CPCOM 1612 REWIND SPACE 4 CPCOM 1613 *** REWIND - REWIND FILE. CPCOM 1614 * CPCOM 1615 * CPCOM 1616 * REWIND FILE,RECALL CPCOM 1617 * CALLS CIO=. CPCOM 1618 CPCOM 1619 CPCOM 1620 PURGMAC REWIND CPCOM 1621 CPCOM 1622 REWIND MACRO F,L CPCOM 1623 =2 F,L,50B CPCOM 1624 ENDM CPCOM 1625 REWRITE SPACE 4 CPCOM 1626 *** REWRITE - REWRITE DATA FROM CIO BUFFER. CPCOM 1627 * CPCOM 1628 * CPCOM 1629 * REWRITE FILE,RECALL CPCOM 1630 * ENTRY RECALL= *, SET CIO FUNCTION CODE IN FET, DONT CALL CIO. CPCOM 1631 * ALSO, USER MUST INSURE THAT PREVIOUS FUNCTION CPCOM 1632 * HAS COMPLETED. CPCOM 1633 * MASS STORAGE FILES ONLY. CPCOM 1634 * CALLS CIO=. CPCOM 1635 CPCOM 1636 CPCOM 1637 PURGMAC REWRITE CPCOM 1638 CPCOM 1639 REWRITE MACRO F,L CPCOM 1640 .1 IFC EQ,$L$*$ CPCOM 1641 R= X7,2 CPCOM 1642 SA2 F CPCOM 1643 MX6 42D CPCOM 1644 BX7 X6+X7 CPCOM 1645 SX6 215B CPCOM 1646 BX7 X7*X2 CPCOM 1647 BX6 X7+X6 CPCOM 1648 SA6 A2 CPCOM 1649 .1 ELSE 1 CPCOM 1650 =2 F,L,214B CPCOM 1651 ENDM CPCOM 1652 REWRITEF SPACE 4 CPCOM 1653 *** REWRITEF - REWRITE END OF FILE. CPCOM 1654 * CPCOM 1655 * CPCOM 1656 * REWRITEF FILE,RECALL CPCOM 1657 * MASS STORAGE FILES ONLY. CPCOM 1658 * CALLS CIO=. CPCOM 1659 CPCOM 1660 CPCOM 1661 PURGMAC REWRITEF CPCOM 1662 CPCOM 1663 REWRITEF MACRO F,L CPCOM 1664 =2 F,L,234B CPCOM 1665 ENDM CPCOM 1666 REWRITER SPACE 4 CPCOM 1667 *** REWRITER - REWRITE END OF RECORD. CPCOM 1668 * CPCOM 1669 * CPCOM 1670 * REWRITER FILE,RECALL CPCOM 1671 * MASS STORAGE FILES ONLY. CPCOM 1672 * CALLS CIO=. CPCOM 1673 CPCOM 1674 CPCOM 1675 PURGMAC REWRITER CPCOM 1676 CPCOM 1677 REWRITER MACRO F,L CPCOM 1678 =2 F,L,224B CPCOM 1679 ENDM CPCOM 1680 ROUTE SPACE 4,10 CPCOM 1681 ** ROUTE - ROUTE FILE TO INPUT/OUTPUT QUEUE. CPCOM 1682 * CPCOM 1683 * ROUTE ADDR,R CPCOM 1684 * CPCOM 1685 * ADDR = FWA OF CALL BLOCK. CPCOM 1686 * (SEE *DSP* DOCUMENTATION FOR FORMAT) CPCOM 1687 * R = RECALL (OPTIONAL) CPCOM 1688 CPCOM 1689 CPCOM 1690 PURGMAC ROUTE CPCOM 1691 CPCOM 1692 CPCOM 1693 ROUTE MACRO A,R CPCOM 1694 SYSTEM DSP,R,A CPCOM 1695 ENDM CPCOM 1696 RPHR SPACE 4 CPCOM 1697 *** RPHR - READ PHYSICAL RECORD TO CIO BUFFER. CPCOM 1698 * CPCOM 1699 * CPCOM 1700 * RPHR FILE,RECALL CPCOM 1701 * CALLS CIO=. CPCOM 1702 CPCOM 1703 CPCOM 1704 PURGMAC RPHR CPCOM 1705 CPCOM 1706 RPHR MACRO F,L CPCOM 1707 .1 IFC EQ,$L$$ CPCOM 1708 R= X7,0 CPCOM 1709 .1 ELSE 1 CPCOM 1710 MX7 60D CPCOM 1711 R= X2,F CPCOM 1712 RJ =XCIO= CPCOM 1713 ENDM CPCOM 1714 RPHRLS SPACE 4 CPCOM 1715 *** RPHRLS - READ PRUS WITH LIST. CPCOM 1716 * CPCOM 1717 * CPCOM 1718 * RPHRLS FILE,RECALL CPCOM 1719 * MASS STORAGE FILES ONLY. CPCOM 1720 * CALLS CIO=. CPCOM 1721 CPCOM 1722 CPCOM 1723 PURGMAC RPHRLS CPCOM 1724 CPCOM 1725 RPHRLS MACRO F,L CPCOM 1726 =2 F,L,230B CPCOM 1727 ENDM CPCOM 1728 SETID SPACE 4 CPCOM 1729 *** SETID - SET FILE ID CODE. CPCOM 1730 * CPCOM 1731 * CPCOM 1732 * SETID FILE,N CPCOM 1733 * ENTRY *N* = FILE ID CODE. CPCOM 1734 * CALLS LFM=. CPCOM 1735 CPCOM 1736 CPCOM 1737 PURGMAC SETID CPCOM 1738 CPCOM 1739 SETID MACRO F,N CPCOM 1740 R= X1,N CPCOM 1741 R= X2,F CPCOM 1742 LX1 18D CPCOM 1743 BX2 X1+X2 CPCOM 1744 SX7 17B CPCOM 1745 RJ =XLFM= CPCOM 1746 ENDM CPCOM 1747 SKIPB SPACE 4 CPCOM 1748 *** SKIPB - SKIP RECORDS BACKWARDS. CPCOM 1749 * CPCOM 1750 * CPCOM 1751 * SKIPB FILE,N,RECALL CPCOM 1752 * ENTRY *N* = RECORD COUNT. CPCOM 1753 * CALLS CIO=. CPCOM 1754 CPCOM 1755 CPCOM 1756 PURGMAC SKIPB CPCOM 1757 CPCOM 1758 SKIPB MACRO F,N,L CPCOM 1759 R= X2,F CPCOM 1760 IFNE N,,3 CPCOM 1761 R= X1,N CPCOM 1762 LX1 18D CPCOM 1763 BX2 X1+X2 CPCOM 1764 .1 IFC EQ,$L$$ CPCOM 1765 SX7 640B CPCOM 1766 .1 ELSE 1 CPCOM 1767 SX7 -640B CPCOM 1768 RJ =XCIO= CPCOM 1769 ENDM CPCOM 1770 SKIPEI SPACE 4 CPCOM 1771 *** SKIPEI - SKIP TO END OF INFORMATION. CPCOM 1772 * CPCOM 1773 * CPCOM 1774 * SKIPEI FILE,RECALL CPCOM 1775 * CALLS CIO=. CPCOM 1776 CPCOM 1777 CPCOM 1778 PURGMAC SKIPEI CPCOM 1779 CPCOM 1780 SKIPEI MACRO F,L CPCOM 1781 R= X2,F CPCOM 1782 MX1 -18D CPCOM 1783 LX1 18D CPCOM 1784 BX2 -X1+X2 CPCOM 1785 .1 IFC EQ,$L$$ CPCOM 1786 SX7 240B CPCOM 1787 .1 ELSE 1 CPCOM 1788 SX7 -240B CPCOM 1789 RJ =XCIO= CPCOM 1790 ENDM CPCOM 1791 SKIPFB SPACE 4 CPCOM 1792 *** SKIPFB - SKIP FILES BACKWARD. CPCOM 1793 * CPCOM 1794 * CPCOM 1795 * SKIPFB FILE,N,RECALL CPCOM 1796 * ENTRY *N* = RECORD COUNT. CPCOM 1797 * CALLS CIO=. CPCOM 1798 CPCOM 1799 CPCOM 1800 PURGMAC SKIPFB CPCOM 1801 CPCOM 1802 SKIPFB MACRO F,N,L CPCOM 1803 R= X2,F CPCOM 1804 IFNE N,,3 CPCOM 1805 R= X1,N CPCOM 1806 LX1 18D CPCOM 1807 BX2 X1+X2 CPCOM 1808 .1 IFC EQ,$L$$ CPCOM 1809 SX7 740640BS-3 CPCOM 1810 .1 ELSE 1 CPCOM 1811 SX7 -740640BS-3 CPCOM 1812 LX7 3 CPCOM 1813 RJ =XCIO= CPCOM 1814 ENDM CPCOM 1815 SKIPF SPACE 4 CPCOM 1816 *** SKIPF - SKIP RECORDS FORWARD. CPCOM 1817 * CPCOM 1818 * CPCOM 1819 * SKIPF FILE,N,RECALL CPCOM 1820 * *N* = RECORD COUNT. CPCOM 1821 * CALLS CIO=. CPCOM 1822 CPCOM 1823 CPCOM 1824 PURGMAC SKIPF CPCOM 1825 CPCOM 1826 SKIPF MACRO F,N,L CPCOM 1827 R= X2,F CPCOM 1828 IFNE N,,3 CPCOM 1829 R= X1,N CPCOM 1830 LX1 18D CPCOM 1831 BX2 X1+X2 CPCOM 1832 .1 IFC EQ,$L$$ CPCOM 1833 SX7 240B CPCOM 1834 .1 ELSE 1 CPCOM 1835 SX7 -240B CPCOM 1836 RJ =XCIO= CPCOM 1837 ENDM CPCOM 1838 SKIPFF SPACE 4 CPCOM 1839 *** SKIPFF - SKIP FILES FORWARD. CPCOM 1840 * CPCOM 1841 * CPCOM 1842 * SKIPFF FILE,N,RECALL CPCOM 1843 * *N* = COUNT COUNT. CPCOM 1844 * CALLS CIO=. CPCOM 1845 CPCOM 1846 CPCOM 1847 PURGMAC SKIPFF CPCOM 1848 CPCOM 1849 SKIPFF MACRO F,N,L CPCOM 1850 R= X2,F CPCOM 1851 IFNE N,,3 CPCOM 1852 R= X1,N CPCOM 1853 LX1 18D CPCOM 1854 BX2 X1+X2 CPCOM 1855 .1 IFC EQ,$L$$ CPCOM 1856 SX7 740240BS-3 CPCOM 1857 .1 ELSE 1 CPCOM 1858 SX7 -740240BS-3 CPCOM 1859 LX7 3 CPCOM 1860 RJ =XCIO= CPCOM 1861 ENDM CPCOM 1862 STATUS SPACE 4 CPCOM 1863 *** STATUS - RETURN CURRENT FILE STATUS. CPCOM 1864 * CPCOM 1865 * CPCOM 1866 * STATUS FILE,POSITION,TAPEINFO CPCOM 1867 * ENTRY *POSITION* IF PRESENT CURRENT FILE POSITION WILL BE CPCOM 1868 * RETURNED TO (FET+6). CPCOM 1869 * *TAPEINFO* IF SPECIFIED, IN ADDITION TO *POSITION*, CPCOM 1870 * AND FILE IS A MAGNETIC TAPE FILE, CPCOM 1871 * ADDITIONAL TAPE INFORMATION IS RETURNED TO CPCOM 1872 * FET+8 IN LABEL MACRO FORMAT, INCLUDING CPCOM 1873 * LABEL BIT, NONSTANDARD LABEL BIT, TRACK CPCOM 1874 * BIT, DENSITY, CONVERSION MODE, PROCESSING CPCOM 1875 * OPTIONS, FORMAT, NOISE SIZE IN FRAMES, AND CPCOM 1876 * BLOCK SIZE IN CM WORDS. CPCOM 1877 * CALLS LFM=. CPCOM 1878 CPCOM 1879 CPCOM 1880 PURGMAC STATUS CPCOM 1881 CPCOM 1882 STATUS MACRO F,N,T CPCOM 1883 R= X2,F CPCOM 1884 .1 IFC EQ,$N$$ CPCOM 1885 SX7 12B CPCOM 1886 .1 ELSE CPCOM 1887 SX7 13B CPCOM 1888 IFC NE,$T$$,3 CPCOM 1889 MX6 1 CPCOM 1890 LX6 1+18D CPCOM 1891 BX2 X2+X6 CPCOM 1892 .1 ENDIF CPCOM 1893 RJ =XLFM= CPCOM 1894 ENDM CPCOM 1895 UNLOAD SPACE 4 CPCOM 1896 *** UNLOAD - UNLOAD FILE. CPCOM 1897 * CPCOM 1898 * CPCOM 1899 * UNLOAD FILE,RECALL CPCOM 1900 * CALLS CIO=. CPCOM 1901 CPCOM 1902 CPCOM 1903 PURGMAC UNLOAD CPCOM 1904 CPCOM 1905 UNLOAD MACRO F,L CPCOM 1906 =2 F,L,60B CPCOM 1907 ENDM CPCOM 1908 UNLOCK SPACE 4 CPCOM 1909 *** UNLOCK - CLEAR WRITE LOCK OUT. CPCOM 1910 * CPCOM 1911 * CPCOM 1912 * UNLOCK FILE CPCOM 1913 * FILE MUST BE LOCAL. CPCOM 1914 * CALLS LFM=. CPCOM 1915 CPCOM 1916 CPCOM 1917 PURGMAC UNLOCK CPCOM 1918 CPCOM 1919 UNLOCK MACRO F CPCOM 1920 R= X2,F CPCOM 1921 SX7 11B CPCOM 1922 RJ =XLFM= CPCOM 1923 ENDM CPCOM 1924 WPHR SPACE 4 CPCOM 1925 *** WPHR - WRITE 1 PHYSICAL RECORD FROM CIO BUFFER. CPCOM 1926 * CPCOM 1927 * CPCOM 1928 * WPHR FILE,RECALL CPCOM 1929 * CALLS CIO=. CPCOM 1930 CPCOM 1931 CPCOM 1932 PURGMAC WPHR CPCOM 1933 CPCOM 1934 WPHR MACRO F,L CPCOM 1935 =2 F,L,4 CPCOM 1936 ENDM CPCOM 1937 WRITE SPACE 4 CPCOM 1938 *** WRITE - WRITE DATA FROM CIO BUFFER. CPCOM 1939 * CPCOM 1940 * CPCOM 1941 * WRITE FILE,RECALL CPCOM 1942 * ENTRY RECALL= *, SET CIO FUNCTION CODE IN FET, DONT CALL CIO. CPCOM 1943 * ALSO, USER MUST INSURE THAT PREVIOUS FUNCTION CPCOM 1944 * HAS COMPLETED. CPCOM 1945 * CALLS CIO=. CPCOM 1946 CPCOM 1947 CPCOM 1948 PURGMAC WRITE CPCOM 1949 CPCOM 1950 WRITE MACRO F,L CPCOM 1951 .1 IFC EQ,$L$*$ CPCOM 1952 R= X7,2 CPCOM 1953 SA2 F CPCOM 1954 MX6 42D CPCOM 1955 BX7 X6+X7 CPCOM 1956 SX6 15B CPCOM 1957 BX7 X7*X2 CPCOM 1958 BX6 X7+X6 CPCOM 1959 SA6 A2 CPCOM 1960 .1 ELSE 1 CPCOM 1961 =2 F,L,14B CPCOM 1962 ENDM CPCOM 1963 WRITECW SPACE 4 CPCOM 1964 *** WRITECW - WRITE NON-STOP WITH CONTROL WORDS. CPCOM 1965 * CPCOM 1966 * CPCOM 1967 * WRITECW FILE,RECALL CPCOM 1968 * ENTRY RECALL= *, SET CIO FUNCTION CODE IN FET, DONT CALL CIO. CPCOM 1969 * ALSO, USER MUST INSURE THAT PREVIOUS FUNCTION CPCOM 1970 * HAS COMPLETED. CPCOM 1971 * CALLS CIO=. CPCOM 1972 CPCOM 1973 CPCOM 1974 PURGMAC WRITECW CPCOM 1975 CPCOM 1976 WRITECW MACRO F,L CPCOM 1977 .1 IFC EQ,$L$*$ CPCOM 1978 R= X7,2 CPCOM 1979 SA2 F CPCOM 1980 MX6 42D CPCOM 1981 BX7 X6+X7 CPCOM 1982 SX6 205B CPCOM 1983 BX7 X7*X2 CPCOM 1984 BX6 X7+X6 CPCOM 1985 SA6 A2 CPCOM 1986 .1 ELSE 1 CPCOM 1987 =2 F,L,204B CPCOM 1988 ENDM CPCOM 1989 WRITEF SPACE 4 CPCOM 1990 *** WRITEF - WRITE END OF FILE. CPCOM 1991 * CPCOM 1992 * CPCOM 1993 * WRITEF FILE,RECALL CPCOM 1994 * CALLS CIO=. CPCOM 1995 CPCOM 1996 CPCOM 1997 PURGMAC WRITEF CPCOM 1998 CPCOM 1999 WRITEF MACRO F,L CPCOM 2000 =2 F,L,34B CPCOM 2001 ENDM CPCOM 2002 WRITEN SPACE 4 CPCOM 2003 *** WRITEN - WRITE *S* OR *L* FORMAT TAPE NON-STOP. CPCOM 2004 * MAGNETIC TAPE ONLY. CPCOM 2005 * CPCOM 2006 * CPCOM 2007 * WRITEN FILE,RECALL CPCOM 2008 * ENTRY RECALL= *, SET CIO FUNCTION CODE IN FET, DONT CALL CIO. CPCOM 2009 * ALSO, USER MUST INSURE THAT PREVIOUS FUNCTION CPCOM 2010 * HAS COMPLETED. CPCOM 2011 * CALLS CIO=. CPCOM 2012 CPCOM 2013 CPCOM 2014 PURGMAC WRITEN CPCOM 2015 CPCOM 2016 WRITEN MACRO F,L CPCOM 2017 .1 IFC EQ,$L$*$ CPCOM 2018 R= X7,2 CPCOM 2019 SA2 F CPCOM 2020 MX6 42D CPCOM 2021 BX7 X6+X7 CPCOM 2022 SX6 265B CPCOM 2023 BX7 X7*X2 CPCOM 2024 BX6 X7+X6 CPCOM 2025 SA6 A2 CPCOM 2026 .1 ELSE 1 CPCOM 2027 =2 F,L,264B CPCOM 2028 ENDM CPCOM 2029 WRITER SPACE 4 CPCOM 2030 *** WRITER - WRITE END OF RECORD. CPCOM 2031 * CPCOM 2032 * CPCOM 2033 * WRITER FILE,,RECALL CPCOM 2034 * CALLS CIO=. CPCOM 2035 CPCOM 2036 CPCOM 2037 PURGMAC WRITER CPCOM 2038 CPCOM 2039 WRITER MACRO F,L CPCOM 2040 =2 F,L,24B CPCOM 2041 ENDM CPCOM 2042 TITLE PERMANENT FILE REQUEST MACROS. CPCOM 2043 *** PERMANENT FILE ACTION MACROS. CPCOM 2044 * CPCOM 2045 * THE FOLLOWING INFORMATION APPLIES TO ALL PERMANENT CPCOM 2046 * FILE ACTION MACROS. CPCOM 2047 * CODE CAN BE OPTIMIZED BY PASSING ARGUMENTS VIA REGISTERS CPCOM 2048 * INDICATED ON THE FOLLOWING PARAMETERS. CPCOM 2049 * THE FET LENGTH MAY BE- CPCOM 2050 * A. 5 WORDS IF NO SPECIAL OPTIONS ARE REQUIRED. CPCOM 2051 * B. UP TO 15B WORDS IF ANY SPECIAL OTPIONS ARE REQUIRED CPCOM 2052 * CPCOM 2053 * IF *PF* IS NOT SPECIFIED. (F+8) CONTAINS PERMANENT CPCOM 2054 * FILE NAME.(X1) CPCOM 2055 * IF *UN* IS NOT SPECIFIED, (F+9) CONTAINS NAME OF CPCOM 2056 * ALTERNATE CATALOG.(X3) CPCOM 2057 * IF *PW* IS NOT SPECIFIED, (F+10) CONTAINS THE CPCOM 2058 * FILE PASSWORD.(X2) CPCOM 2059 * IF *UC* IS NOT SPECIFIED, (F+11) CONTAINS USER CPCOM 2060 * CONTROL INFORMATION. BIT 59 MUST BE SET IF THIS WORD CPCOM 2061 * CONTAINS DATA FOR *PFM* TO PROCESS. CPCOM 2062 * IF *PN* IS NOT SPECIFIED, (F+12) CONTAINS ALTERNATE PACKNAME CPCOM 2063 * TO SATISFY PF REQUESTS FROM. CPCOM 2064 * IF *NF* IS NOT SPECIFIED, (F+13 ) CONTAINS NEW CPCOM 2065 * FILE NAME FOR CHANGE COMMAND. CPCOM 2066 * CPCOM 2067 * IF *FO* IS SET TO *IP* THE PACKNAME IS IGNORED CPCOM 2068 * AND THE CURRENT FAMILY IS USED FOR PF ACCESS. CPCOM 2069 * IF *FO* IS SET TO *DF* THE PACKNAME AND FAMILY CPCOM 2070 * ARE IGNORED AND THE DEFAULT SYSTEM FAMILY IS ACCESSED. CPCOM 2071 * THE *DF* OPTION MAY ONLY BE USED BY *SSJ=* TYPE JOBS. CPCOM 2072 * CPCOM 2073 * THE ADDRESS OF THE FET MUST BE SUPPLIED VIA *F* PARAMETER. CPCOM 2074 * THE USER MUST INSURE THAT ALL ACTIVITY HAS COMPLETED ON CPCOM 2075 * THIS FET PRIOR TO EXECUTING A PERMANENT FILE ACTION MACRO. CPCOM 2076 * THE CALL MADE TO *PFM* WILL RECALL THE CPU WHEN THE REQUEST CPCOM 2077 * IS COMPLETE. IF THE USER DESIRES TO PROCESS *PFM* ERRORS CPCOM 2078 * THE ERROR PROCESSING BIT MUST BE SET IN THE FET. CPCOM 2079 * THE ERROR CODES WILL BE RETURNED IN THE CODE AND STATUS CPCOM 2080 * POSITION OF THE FET (WORD 0, BITS 10-17). SEE PFM CPCOM 2081 * DOCUMENTATION FOR ERROR CODES AND DESCRIPTIONS. CPCOM 2082 * CPCOM 2083 * USES X - 1,2,3,4,6,7. CPCOM 2084 * B - 2. CPCOM 2085 * A - 1,2,3,4,6,7. CPCOM 2086 SPACE 4 CPCOM 2087 SPACE 4 CPCOM 2088 PURGMAC =3 CPCOM 2089 CPCOM 2090 =3 MACRO F,PF,U,PW,UC,PN,T,FM,DT,FO,O,SR. CPCOM 2091 CPCOM 2092 * FILE CATEGORY. CPCOM 2093 CPCOM 2094 LOCAL FC,I,J,N1,Q,Q1,Z,Z1,K,KK,K1,K2,V,VV,WW,AA CPCOM 2095 FC SET 0 CPCOM 2096 J IFC NE,$T$$ CPCOM 2097 FC SET 77B CPCOM 2098 I SET 77B CPCOM 2099 ECHO 3,B=(P,S,L,PU),C=(0,1,2,2) CPCOM 2100 IFC EQ,$B$T$,2 CPCOM 2101 STOPDUP CPCOM 2102 I SET C+40B CPCOM 2103 * CPCOM 2104 N1 IFEQ I,77B CPCOM 2105 R= A4,T CPCOM 2106 N1 ELSE 1 CPCOM 2107 R= X4,I CPCOM 2108 LX4 6 CPCOM 2109 IFC NE,$FM$$,1 CPCOM 2110 SB2 X4 CPCOM 2111 J ENDIF CPCOM 2112 * FILE MODE. CPCOM 2113 Q IFC NE,$FM$$ CPCOM 2114 I SET 77B CPCOM 2115 ECHO 3,B=(W,R,A,E,N,M,RM,RA),C=(0,1,2,3,4,5,6,7) CPCOM 2116 IFC EQ,$B$FM$,2 CPCOM 2117 STOPDUP CPCOM 2118 I SET C+40B CPCOM 2119 * CPCOM 2120 Q1 IFEQ I,77B CPCOM 2121 R= A4,FM CPCOM 2122 Q1 ELSE 1 CPCOM 2123 R= X4,I CPCOM 2124 IFEQ FC,77B,1 CPCOM 2125 SX4 B2+X4 CPCOM 2126 FC SET 77B CPCOM 2127 Q ENDIF CPCOM 2128 * MERGE IN SPECIAL REQUEST OPTION CPCOM 2129 R IFC NE,$SR$$ CPCOM 2130 I SET 0 CPCOM 2131 ECHO 3,B=(FA),C=(1) CPCOM 2132 IFC EQ,$B$SR$,2 CPCOM 2133 STOPDUP CPCOM 2134 I SET C CPCOM 2135 IFEQ I,0,1 CPCOM 2136 ERR - ILLEGAL SPECIAL REQUEST OPTION CPCOM 2137 R1 IFEQ FC,77B CPCOM 2138 SX4 X4+I*10000B CPCOM 2139 R1 ELSE 1 CPCOM 2140 SX4 I*10000B CPCOM 2141 FC SET 77B CPCOM 2142 R ENDIF CPCOM 2143 * PF NAME. CPCOM 2144 Z IFC NE,$PF$$ CPCOM 2145 IFC EQ,$PF$0$,2 CPCOM 2146 SX1 B0 CPCOM 2147 Z2 ELSE 2 CPCOM 2148 IFC NE,$PF$X1$,1 CPCOM 2149 R= A1,PF CPCOM 2150 * MERGE IN FILE CATEGORY + MODE. CPCOM 2151 Z1 IFEQ FC,77B CPCOM 2152 BX6 X1+X4 CPCOM 2153 Z1 ELSE 1 CPCOM 2154 BX6 X1 CPCOM 2155 SA6 F+10B CPCOM 2156 Z ELSE CPCOM 2157 IFEQ FC,77B CPCOM 2158 MX6 42D CPCOM 2159 SA1 F+10B CPCOM 2160 BX6 X6*X1 CPCOM 2161 BX6 X6+X4 CPCOM 2162 SA6 A1 CPCOM 2163 Z ENDIF CPCOM 2164 * OPTIONAL USER NUMBER. CPCOM 2165 IFC NE,$U$$,4 CPCOM 2166 IFC NE,$U$X3$,1 CPCOM 2167 R= A3,U CPCOM 2168 BX6 X3 CPCOM 2169 SA6 F+11B CPCOM 2170 * PASSWORD. CPCOM 2171 IFC NE,$PW$$,8 CPCOM 2172 IFC NE,$PW$X2$,1 CPCOM 2173 R= A2,PW CPCOM 2174 MX4 42D CPCOM 2175 SA1 F+12B CPCOM 2176 BX6 -X4*X1 CPCOM 2177 BX7 X4*X2 CPCOM 2178 BX6 X6+X7 CPCOM 2179 SA6 A1 CPCOM 2180 * USER CONTROL WORD. CPCOM 2181 IFC NE,$UC$$,3 CPCOM 2182 R= A4,UC CPCOM 2183 BX6 X4 CPCOM 2184 SA6 F+13B CPCOM 2185 * PACKNAME. CPCOM 2186 IFC NE,$PN$$,3 CPCOM 2187 R= A4,PN CPCOM 2188 BX6 X4 CPCOM 2189 SA6 F+14B CPCOM 2190 * DEVICE TYPE. CPCOM 2191 K IFC NE,$DT$$ CPCOM 2192 MX7 12D CPCOM 2193 SX1 B0 CPCOM 2194 VV MICRO 1,2, DT CPCOM 2195 WW MICRO 3,, DT CPCOM 2196 V SET 77B CPCOM 2197 K1 MICCNT WW CPCOM 2198 K2 IFLE K1,2 CPCOM 2199 ECHO 3,B=(DA,DB,DC,DE,DF,DH) CPCOM 2200 IFC EQ,$B$<>VV<>$,2 CPCOM 2201 STOPDUP CPCOM 2202 V SET 2R(*<>VV<> CPCOM 2203 * CPCOM 2204 IFNE V,77B,2 CPCOM 2205 IFC NE,$<>WW<>$$,1 CPCOM 2206 ERR - ILLEGAL PARAMETER CPCOM 2207 IFEQ V,77B,6 CPCOM 2208 ECHO 5,B=(DD,DI,DJ,MD) CPCOM 2209 IFC EQ,$B$<>VV<>$,4 CPCOM 2210 STOPDUP CPCOM 2211 V SET 2R(*<>VV<> CPCOM 2212 IFC NE,$<>WW<>$$,1 CPCOM 2213 SX1 1R(*<>WW<> CPCOM 2214 K2 ENDIF CPCOM 2215 * CPCOM 2216 KK IFEQ V,77B CPCOM 2217 R= A4,DT CPCOM 2218 BX6 X7*X4 CPCOM 2219 LX4 12D CPCOM 2220 BX1 X7*X4 CPCOM 2221 LX1 6 CPCOM 2222 KK ELSE 3 CPCOM 2223 R= X4,V CPCOM 2224 LX4 48D CPCOM 2225 BX6 X7*X4 CPCOM 2226 * CPCOM 2227 SA4 F+1 CPCOM 2228 BX4 -X7*X4 CPCOM 2229 BX6 X4+X6 CPCOM 2230 SA6 A4 CPCOM 2231 * CPCOM 2232 ZR X1,AA CPCOM 2233 SX1 X1-1R0 CPCOM 2234 AA SA4 F+14B CPCOM 2235 LX7 12D CPCOM 2236 BX4 -X7*X4 CPCOM 2237 BX6 X4+X1 CPCOM 2238 SA6 A4 CPCOM 2239 K ENDIF CPCOM 2240 * SET FUNCTION. CPCOM 2241 I SET 0 CPCOM 2242 L IFC NE,$FO$$ CPCOM 2243 ECHO 3,B=(DF,IP),C=(1000B,2000B) CPCOM 2244 IFC EQ,$B$FO$,2 CPCOM 2245 STOPDUP CPCOM 2246 I SET C CPCOM 2247 IFEQ I,0,1 CPCOM 2248 ERR - ILLEGAL FORCE FAMILY OPTION CPCOM 2249 L ENDIF CPCOM 2250 SX7 O+I CPCOM 2251 * CPCOM 2252 R= X2,F CPCOM 2253 RJ =XPFM= CPCOM 2254 ENDM CPCOM 2255 APPEND SPACE 4 CPCOM 2256 *** APPEND (F,PF,UN,PW,PN,D,FO) CPCOM 2257 * CPCOM 2258 * F = ADDRESS OF FET (CONTAINS FILE TO BE APPENDED). CPCOM 2259 * PF = PERMANENT FILE TO BE APPENDED TO. CPCOM 2260 * UN = OPTIONAL USER NUMBER. CPCOM 2261 * PW = FILE PASSWORD. CPCOM 2262 * PN = PACKNAME. CPCOM 2263 * D = DEVICE TYPE. CPCOM 2264 * FO = FORCE FAMILY OPTION. CPCOM 2265 CPCOM 2266 CPCOM 2267 PURGMAC APPEND CPCOM 2268 CPCOM 2269 APPEND MACRO F,PF,UN,PW,PN,D,FO CPCOM 2270 =3 F,PF,UN,PW,,PN,,,D,FO,7 CPCOM 2271 ENDM CPCOM 2272 ATTACH SPACE 4 CPCOM 2273 *** ATTACH (F,PF,UN,PW,M,PN,D,FO,SR) CPCOM 2274 * CPCOM 2275 * F = ADDRESS OF FET (WORKING FILE NAME). CPCOM 2276 * PF = PERMANENT FILE NAME. CPCOM 2277 * UN = OPTIONAL USER NUMBER. CPCOM 2278 * PW = FILE PASSWORD. CPCOM 2279 * M = MODE OF ACCESS DESIRED. CPCOM 2280 * PN = PACKNAME. CPCOM 2281 * D = DEVICE TYPE. CPCOM 2282 * FO = FORCE FAMILY OPTION. CPCOM 2283 * SR = SPECIAL REQUEST OPTION. CPCOM 2284 CPCOM 2285 CPCOM 2286 PURGMAC ATTACH CPCOM 2287 CPCOM 2288 ATTACH MACRO F,PF,UN,PW,M,PN,D,FO,SR CPCOM 2289 =3 F,PF,UN,PW,,PN,,M,D,FO,11B,SR CPCOM 2290 ENDM CPCOM 2291 CHG SPACE 4 CPCOM 2292 *** CHANGE (F,PF,NF,PW,UC,CT,M,PN,F,FO) CPCOM 2293 * CPCOM 2294 * F = ADDRESS OF FET. CPCOM 2295 * NF = NEW PERMANENT FILE NAME. CPCOM 2296 * PF = OLD PERMANENT FILE NAME. CPCOM 2297 * CT = FILE CATEGORY. CPCOM 2298 * M = MODE OF ACCESS ALLOWED TO FILE. CPCOM 2299 * PN = PACKNAME. CPCOM 2300 * UC = USER CONTROL INFORMATION. CPCOM 2301 * PW = FILE PASSWORD. CPCOM 2302 * D = DEVICE TYPE. CPCOM 2303 * FO = FORCE FAMILY OPTION. CPCOM 2304 * NOTE - IF M OR CT IS NOT SPECIFIED AS MNEMONIC, CPCOM 2305 * THEN CONTENTS OF M OR CT MUST BE 40B + MODE CPCOM 2306 * OR CATEGORY. CPCOM 2307 CPCOM 2308 CPCOM 2309 PURGMAC CHANGE CPCOM 2310 CPCOM 2311 CHANGE MACRO F,PF,NF,PW,UC,CT,M,PN,D,FO CPCOM 2312 IFC NE,$NF$$,3 CPCOM 2313 R= A4,NF CPCOM 2314 BX6 X4 CPCOM 2315 SA6 F+15B CPCOM 2316 =3 F,PF,,PW,UC,PN,CT,M,D,FO,12B CPCOM 2317 ENDM CPCOM 2318 DEFINE SPACE 4 CPCOM 2319 *** DEFINE (F,PF,PW,UC,D,CT,M,PN,S,FO) CPCOM 2320 * CPCOM 2321 * F = ADDRESS OF FET (WORKING FILE NAME). CPCOM 2322 * PF = PERMANENT FILE NAME. CPCOM 2323 * PW = FILE PASSWORD. CPCOM 2324 * UC = USER CONTROL WORD. CPCOM 2325 * CT = FILE CATEGORY. CPCOM 2326 * M = MODE OF ACCESS ALLOWED TO FILE. CPCOM 2327 * D = DEVICE TYPE. CPCOM 2328 * PN = PACKNAME. CPCOM 2329 * S = SPACE IN PRUS DESIRED FOR FILE ( THIS IS ADDRESS CPCOM 2330 * OF RIGHT JUSTIFIED OCTAL QUANTITY). CPCOM 2331 * FO = FORCE FAMILY OPTION. CPCOM 2332 * CPCOM 2333 * USES X - 1,2,3,4,5,6,7. CPCOM 2334 * B - 2. CPCOM 2335 * A - 1,2,3,4,5,6,7. CPCOM 2336 CPCOM 2337 CPCOM 2338 PURGMAC DEFINE CPCOM 2339 CPCOM 2340 DEFINE MACRO F,PF,PW,UC,D,CT,M,PN,S,FO CPCOM 2341 IFC NE,$S$$,3 CPCOM 2342 R= A5,S CPCOM 2343 BX6 X5 CPCOM 2344 SA6 F+11B CPCOM 2345 =3 F,PF,,PW,UC,PN,CT,M,D,FO,10B CPCOM 2346 ENDM CPCOM 2347 GET SPACE 4 CPCOM 2348 *** GET (F,PF,UN,PW,PN,D,FO) CPCOM 2349 * CPCOM 2350 * F = ADDRESS OF FET (WORKING FILE NAME). CPCOM 2351 * PF = PERMANENT FILE NAME. CPCOM 2352 * UN = OPTIONAL USER NUMBER. CPCOM 2353 * PW = FILE PASSWORD. CPCOM 2354 * PN = PACKNAME. CPCOM 2355 * D = DEVICE TYPE. CPCOM 2356 * FO = FORCE FAMILY OPTION. CPCOM 2357 CPCOM 2358 CPCOM 2359 PURGMAC GET CPCOM 2360 CPCOM 2361 GET MACRO F,PF,UN,PW,PN,D,FO CPCOM 2362 =3 F,PF,UN,PW,,PN,,,D,FO,2 CPCOM 2363 ENDM CPCOM 2364 PERMIT SPACE 4 CPCOM 2365 *** PERMIT (F,PF,UN,M,PN,D,FO) CPCOM 2366 * CPCOM 2367 * F = ADDRESS OF FET. CPCOM 2368 * PF = PERMANENT FILE NAME. CPCOM 2369 * UN = USER NUMBER TO PERMIT. CPCOM 2370 * M = MODE OF ACCESS PERMITTED. CPCOM 2371 * D = DEVICE TYPE. CPCOM 2372 * PN = PACK NAME. CPCOM 2373 * FO = FORCE FAMILY OPTION. CPCOM 2374 CPCOM 2375 CPCOM 2376 PURGMAC PERMIT CPCOM 2377 CPCOM 2378 PERMIT MACRO F,PF,UN,M,PN,D,FO CPCOM 2379 =3 F,PF,UN,,,PN,,M,D,FO,5 CPCOM 2380 ENDM CPCOM 2381 PUR SPACE 4 CPCOM 2382 *** PURGE (F,UN,PW,PN,D,FO) CPCOM 2383 * CPCOM 2384 * F = ADDRESS OF FET (PERMANENT FILE NAME). CPCOM 2385 * UN = OPTIONAL USER NUMBER. CPCOM 2386 * PW = FILE PASSWORD. CPCOM 2387 * PN = PACKNAME. CPCOM 2388 * D = DEVICE TYPE. CPCOM 2389 * FO = FORCE FAMILY OPTION. CPCOM 2390 CPCOM 2391 CPCOM 2392 PURGMAC PURGE CPCOM 2393 CPCOM 2394 PURGE MACRO F,UN,PW,PN,D,FO CPCOM 2395 =3 F,,UN,PW,,PN,,,D,FO,3 CPCOM 2396 ENDM CPCOM 2397 REPLACE SPACE 4 CPCOM 2398 *** REPLACE(F,PF,UN,PW,UC,PN,D,FO) CPCOM 2399 * CPCOM 2400 * F = ADDRESS OF FET (WORKING FILE NAME). CPCOM 2401 * PF = PERMANENT FILE NAME. CPCOM 2402 * UN = OPTIONAL USER NUMBER. CPCOM 2403 * PW = FILE PASSWORD. CPCOM 2404 * UC = USER CONTROL WORD. CPCOM 2405 * PN = PACKNAME. CPCOM 2406 * D = DEVICE TYPE. CPCOM 2407 * FO = FORCE FAMILY OPTION. CPCOM 2408 CPCOM 2409 CPCOM 2410 PURGMAC REPLACE CPCOM 2411 CPCOM 2412 REPLACE MACRO F,PF,UN,PW,UC,PN,D,FO CPCOM 2413 =3 F,PF,UN,PW,UC,PN,,,D,FO,6 CPCOM 2414 ENDM CPCOM 2415 SAVE SPACE 4 CPCOM 2416 *** SAVE (F,PF,PW,UC,CT,M,PN,D,FO) CPCOM 2417 * CPCOM 2418 * F = ADDRESS OF FET (WORKING FILE NAME). CPCOM 2419 * PF = PERMANENT FILE NAME. CPCOM 2420 * PW = FILE PASSWORD. CPCOM 2421 * UC = USER CONTROL WORD. CPCOM 2422 * CT = FILE CATEGORY. CPCOM 2423 * M = FILE MODE. CPCOM 2424 * PN = PACKNAME. CPCOM 2425 * D = DEVICE TYPE. CPCOM 2426 * FO = FORCE FAMILY OPTION. CPCOM 2427 CPCOM 2428 CPCOM 2429 PURGMAC SAVE CPCOM 2430 CPCOM 2431 SAVE MACRO F,PF,PW,UC,T,M,PN,D,FO CPCOM 2432 =3 F,PF,,PW,UC,PN,T,M,D,FO,1 CPCOM 2433 ENDM CPCOM 2434 TITLE DATA TRANSFER MACROS. CPCOM 2435 DATA SPACE 4 CPCOM 2436 *** DATA TRANSFER MACROS FORMAT REQUESTS INTO X REGISTERS CPCOM 2437 * AND RETURN JUMP TO PROCESSING SUBROUTINES. CPCOM 2438 SPACE 4 CPCOM 2439 *** MACROS WHICH READ DATA FROM A FILE RETURN STATUS INFORMATION CPCOM 2440 * AS FOLLOWS - CPCOM 2441 * (X1) = 0 FOR TRANSFER COMPLETE. CPCOM 2442 * (X1) = -1 FOR EOF DETECTED ON FILE. CPCOM 2443 * (X1) = +NON-ZERO IF EOR DETECTED ON FILE BEFORE TRANSFER CPCOM 2444 * WAS COMPLETED. (X1) = ADDRESS OF LAST WORD CPCOM 2445 * TRANSFERRED INTO WORKING BUFFER. CPCOM 2446 * DATA WILL NOT BE TRANSFERRED AFTER AN EOR/EOF IS SENSED. CPCOM 2447 READC SPACE 4 CPCOM 2448 *** THE FOLLOWING MACROS TRANSFER DATA TO OR FROM WORKING CPCOM 2449 * BUFFERS AND THE SELECTED FILE IN FORMATS SPECIFIED. CPCOM 2450 * MACROS WHICH READ DATA FROM A FILE RETURN WITH (X7) = (B6) = CPCOM 2451 * LAST WORD OF DATA TRANSFERRED. CPCOM 2452 * CPCOM 2453 * ENTRY *BUF* = ADDRESS OF WORKING BUFFER. CPCOM 2454 * *N* = WORD COUNT OF WORKING BUFFER. CPCOM 2455 SPACE 4 CPCOM 2456 *** READC - READ CODED LINE IN *C* FORMAT. CPCOM 2457 * CPCOM 2458 * CPCOM 2459 * READC FILE,BUF,N CPCOM 2460 * READ 1 CODED LINE FROM *FILE* TO *BUF*. CPCOM 2461 * DATA IS TRANSFERRED UNTIL THE END OF LINE 0000 IS SENSED. CPCOM 2462 * CALLS RDC=. CPCOM 2463 CPCOM 2464 CPCOM 2465 PURGMAC READC CPCOM 2466 CPCOM 2467 READC MACRO F,S,N CPCOM 2468 R= B6,S CPCOM 2469 R= B7,N CPCOM 2470 R= X2,F CPCOM 2471 RJ =XRDC= CPCOM 2472 ENDM CPCOM 2473 WRITEC SPACE 4 CPCOM 2474 *** WRITEC - WRITE CODED LINE IN *C* FORMAT. CPCOM 2475 * CPCOM 2476 * CPCOM 2477 * WRITEC FILE,BUF CPCOM 2478 * DATA IS TRANSFERRED UNTIL THE END OF LINE 0000 IS SENSED. CPCOM 2479 * CALLS WTC=. CPCOM 2480 CPCOM 2481 CPCOM 2482 PURGMAC WRITEC CPCOM 2483 CPCOM 2484 WRITEC MACRO F,S CPCOM 2485 R= B6,S CPCOM 2486 R= X2,F CPCOM 2487 RJ =XWTC= CPCOM 2488 ENDM CPCOM 2489 READH SPACE 4 CPCOM 2490 *** READH - READ CODED LINE IN *H* FORMAT. CPCOM 2491 * CPCOM 2492 * CPCOM 2493 * READH FILE,BUF,N CPCOM 2494 * DATA IS TRANSFERRED UNTIL THE END OF LINE 0000 IS SENSED. CPCOM 2495 * TRAILING SPACES ARE FILLED INTO THE WORKING BUFFER. CPCOM 2496 * CALLS RDH=. CPCOM 2497 CPCOM 2498 CPCOM 2499 PURGMAC READH CPCOM 2500 CPCOM 2501 READH MACRO F,S,N CPCOM 2502 R= B6,S CPCOM 2503 R= B7,N CPCOM 2504 R= X2,F CPCOM 2505 RJ =XRDH= CPCOM 2506 ENDM CPCOM 2507 WRITEH SPACE 4 CPCOM 2508 *** WRITEH - WRITE CODED LINE IN *H* FORMAT. CPCOM 2509 * CPCOM 2510 * CPCOM 2511 * WRITEH FILE,BUF,N CPCOM 2512 * TRAILING SPACES ARE DELETED. CPCOM 2513 * CALLS WTH=. CPCOM 2514 CPCOM 2515 CPCOM 2516 PURGMAC WRITEH CPCOM 2517 CPCOM 2518 WRITEH MACRO F,S,N CPCOM 2519 R= B6,S CPCOM 2520 R= B7,N CPCOM 2521 R= X2,F CPCOM 2522 RJ =XWTH= CPCOM 2523 ENDM CPCOM 2524 READO SPACE 4 CPCOM 2525 *** READO - READ ONE WORD. CPCOM 2526 * CPCOM 2527 * CPCOM 2528 * READO FILE CPCOM 2529 * ENTRY NONE. CPCOM 2530 * EXIT (X6) = WORD READ. CPCOM 2531 * CALLS RDO=. CPCOM 2532 CPCOM 2533 CPCOM 2534 PURGMAC READO CPCOM 2535 CPCOM 2536 READO MACRO F CPCOM 2537 SA1 F+2 CPCOM 2538 RJ =XRDO= CPCOM 2539 ENDM CPCOM 2540 WRITEO SPACE 4 CPCOM 2541 *** WRITEO - WRITE ONE WORD. CPCOM 2542 * CPCOM 2543 * CPCOM 2544 * WRITEO FILE CPCOM 2545 * ENTRY (X6) = WORD TO WRITE. CPCOM 2546 * CALLS WTO=. CPCOM 2547 CPCOM 2548 CPCOM 2549 PURGMAC WRITEO (1051) CPCOM 2550 CPCOM 2551 WRITEO MACRO F CPCOM 2552 SA1 F+2 CPCOM 2553 RJ =XWTO= CPCOM 2554 ENDM CPCOM 2555 READS SPACE 4 CPCOM 2556 *** READS - READ CODED LINE TO CHARACTER BUFFER. CPCOM 2557 * CPCOM 2558 * CPCOM 2559 * READS FILE,BUF,N CPCOM 2560 * WORDS ARE UNPACKED AND STORED IN THE WORKING BUFFER 1 CPCOM 2561 * CHARACTER/WORD UNTIL THE END OF LINE (0000) BYTE IS SENSED. CPCOM 2562 * 00 CHARACTERS ARE STORED AS SPACE (55) CODES. CPCOM 2563 * IF THE CODED LINE TERMINATES BEFORE *N* CHARACTERS ARE CPCOM 2564 * STORED, THE WORKING BUFFER IS FILLED WITH SPACE CODES. CPCOM 2565 * CALLS RDS=. CPCOM 2566 CPCOM 2567 CPCOM 2568 PURGMAC READS CPCOM 2569 CPCOM 2570 READS MACRO F,S,N CPCOM 2571 R= B6,S CPCOM 2572 R= B7,N CPCOM 2573 R= X2,F CPCOM 2574 RJ =XRDS= CPCOM 2575 ENDM CPCOM 2576 WRITES SPACE 4 CPCOM 2577 *** WRITES - WRITE CODED LINE FROM CHARACTER BUFFER. CPCOM 2578 * CPCOM 2579 * CPCOM 2580 * WRITES FILE,BUF,N CPCOM 2581 * CHARACTERS ARE PACKED FROM THE WORKING BUFFER 10 CHARACTERS CPCOM 2582 * PER WORD. CPCOM 2583 * TRAILING CODES ARE DELETED BEFORE CHARACTERS ARE PACKED. CPCOM 2584 * CALLS WTS=. CPCOM 2585 CPCOM 2586 CPCOM 2587 PURGMAC WRITES CPCOM 2588 CPCOM 2589 WRITES MACRO F,S,N CPCOM 2590 R= B6,S CPCOM 2591 R= B7,N CPCOM 2592 R= X2,F CPCOM 2593 RJ =XWTS= CPCOM 2594 ENDM CPCOM 2595 READW SPACE 4 CPCOM 2596 *** READW - READ DATA TO WORKING BUFFER. CPCOM 2597 * CPCOM 2598 * CPCOM 2599 * READW FILE,BUF,N CPCOM 2600 * CALLS RDW=. CPCOM 2601 CPCOM 2602 CPCOM 2603 PURGMAC READW CPCOM 2604 CPCOM 2605 READW MACRO F,S,N CPCOM 2606 R= B6,S CPCOM 2607 R= B7,N CPCOM 2608 R= X2,F CPCOM 2609 RJ =XRDW= CPCOM 2610 ENDM CPCOM 2611 WRITEW SPACE 4 CPCOM 2612 *** WRITEW - WRITE DATA FROM WORKING BUFFER. CPCOM 2613 * CPCOM 2614 * CPCOM 2615 * WRITEW FILE,BUF,N CPCOM 2616 * CALLS WTW=. CPCOM 2617 CPCOM 2618 CPCOM 2619 PURGMAC WRITEW CPCOM 2620 CPCOM 2621 WRITEW MACRO F,S,N CPCOM 2622 R= B6,S CPCOM 2623 R= B7,N CPCOM 2624 R= X2,F CPCOM 2625 RJ =XWTW= CPCOM 2626 ENDM CPCOM 2627 CPCOM 2628 CPCOM 2629 XTEXT ACTCOM PASTEXT 49 XTEXT COMSRAS PASTEXT 50 SCOPE34 ENDIF PASTEXT 51 LIST * PASTEXT 52 ENTER SPACE 4,10 PASTEXT 53 ** ENTER - DECLARE SYSTEM ENTRY POINT. PASTEXT 54 * PASTEXT 55 * DECLARES A SYSTEM ENTRY POINT WITH BOTH AN INTERNAL PASTEXT 56 * AND EXTERNAL NAME. PASTEXT 57 * PASTEXT 58 * SYM ENTER P.SYM PASTEXT 59 * PASTEXT 60 * ENTRY *SYM* = INTERNAL NAME. PASTEXT 61 * *P.SYM* = EXTERNAL NAME (ENTRY POINT). PASTEXT 62 * PASTEXT 63 * EXIT INTERNAL LABEL *SYM* CREATED BY *BSS 0*. PASTEXT 64 * EXTERNAL LABEL *P.SYM* SET EQUAL TO *SYM*. PASTEXT 65 PASTEXT 66 PASTEXT 67 PURGMAC ENTER PASTEXT 68 PASTEXT 69 MACRO ENTER,A,B PASTEXT 70 A BSS 0 PASTEXT 71 B EQU A PASTEXT 72 ENDM PASTEXT 73 ROUTINE SPACE 4,10 PASTEXT 74 ** ROUTINE - DECLARE SYSTEM ROUTINE. PASTEXT 75 * PASTEXT 76 * DECLARES A SYSTEM ROUTINE WITH BOTH AN INTERNAL AND PASTEXT 77 * EXTERNAL NAME. PASTEXT 78 * PASTEXT 79 * SYM ROUTINE P.SYM PASTEXT 80 * PASTEXT 81 * ENTRY *SYM* = INTERNAL NAME. PASTEXT 82 * *P.SYM* = EXTERNAL NAME (ENTRY POINT). PASTEXT 83 * PASTEXT 84 * EXIT INTERNAL LABEL *SYM* CREATED BY *SUBR*. PASTEXT 85 * EXTERNAL LABEL *P.SYM* SET EQUAL TO *SYM*. PASTEXT 86 * PASTEXT 87 * MACROS SUBR. PASTEXT 88 PASTEXT 89 PASTEXT 90 PURGMAC ROUTINE PASTEXT 91 PASTEXT 92 MACRO ROUTINE,A,B PASTEXT 93 A SUBR PASTEXT 94 B EQU A PASTEXT 95 ENDM PASTEXT 96 MICROS SPACE 4,10 PASTEXT 97 ** MICROS. PASTEXT 98 EMSG SPACE 4,10 PASTEXT 99 ** EMSG - ERROR DAYFILE MESSAGE OPTION. PASTEXT 100 PASTEXT 101 PASTEXT 102 SCOPE2 IFNE SCOPE2,1 PASTEXT 103 EMSG MICRO 1,,*3* ERROR MESSAGES TO USER DAYFILE PASTEXT 104 SCOPE2 ELSE PASTEXT 105 EMSG MICRO 1,,*,1* PASTEXT 106 SCOPE2 ENDIF PASTEXT 107 IMSG SPACE 4,10 PASTEXT 108 ** IMSG - INFORMATIVE DAYFILE MESSAGE OPTION. PASTEXT 109 PASTEXT 110 PASTEXT 111 SCOPE2 IFNE SCOPE2,1 PASTEXT 112 IMSG MICRO 1,,*3* INFORMATIVE MESSAGE TO USER DAYFILE PASTEXT 113 SCOPE2 ELSE PASTEXT 114 IMSG MICRO 1,,*,1* PASTEXT 115 SCOPE2 ENDIF PASTEXT 116 PLID SPACE 4,10 PASTEXT 117 ** PLID - DEFAULT PASCAL LIBRARY ID. PASTEXT 118 PASTEXT 119 PASTEXT 120 PLID MICRO 1,,$PASCAL4$ PASTEXT 121 RLFN SPACE 4,10 PASTEXT 122 ** RLFN - DEFAULT RELOCATABLE LIBRARY FILE NAME. PASTEXT 123 PASTEXT 124 PASTEXT 125 ASCII IFNE ASCFLAG,1 V41CC10 11 RLFN MICRO 1,,$PASCLIB$ V41CC10 12 ASCII ELSE V41CC10 13 RLFN MICRO 1,,$APASLIB$ V41CC10 14 ASCII ENDIF V41CC10 15 TLFN SPACE 4,10 PASTEXT 127 ** TLFN - DEFAULT TEXT LIBRARY FILE NAME. PASTEXT 128 PASTEXT 129 PASTEXT 130 OS IFNE NOSBE+SCOPE34,0 V41CC10 16 ASCII IFNE ASCFLAG,1 V41CC10 17 TLFN MICRO 1,,$PSRCLIB$ V41CC10 18 ASCII ELSE V41CC10 19 TLFN MICRO 1,,$APRCLIB$ V41CC10 20 ASCII ENDIF V41CC10 21 OS ENDIF V41CC10 22 V41CC10 23 OS IFNE KRONOS+NOS1+NOS2+SCOPE2,0 V41CC10 24 ASCII IFNE ASCFLAG,1 V41CC10 25 TLFN MICRO 1,,$PASCLIB$ V41CC10 26 ASCII ELSE V41CC10 27 TLFN MICRO 1,,$APASLIB$ V41CC10 28 ASCII ENDIF V41CC10 29 OS ENDIF V41CC10 30 PASTEXT SPACE 4 V41CC10 31 END PASTEXT 137 1 IDENT PASCAL COMPOVL 2 HISTORY SPACE 4,10 HCOMPOV 1 ** PASCAL-6000 MODIFICATION HISTORY. HCOMPOV 2 * HCOMPOV 3 * HCOMPOV 4 PASCAL SPACE 4,10 COMPOVL 3 LCC OVERLAY(PASCAL,0,0) COMPOVL 4 PASCAL SPACE 4,10 COMPOVL 5 END COMPOVL 6 IDENT COMPRTN COMPRTN 2 SST COMPRTN 3 SYSCOM B1 COMPRTN 4 LIST F COMPRTN 5 ENTRY BMSG COMPRTN 6 ENTRY CDATE COMPRTN 7 ENTRY CSABORT V41DC05 13 ENTRY CSARG V41DC05 14 ENTRY FIND COMPRTN 11 ENTRY LOADGO COMPRTN 12 ENTRY MAKESET V41DC05 15 ENTRY MASK COMPRTN 13 ENTRY MERGE COMPRTN 14 ENTRY NEXTCH COMPRTN 15 ENTRY NEXTCHS COMPRTN 16 ENTRY PORTION COMPRTN 17 ENTRY RLIBNAM COMPRTN 18 ENTRY ROTATE COMPRTN 19 ENTRY UNPACKC V41DC05 16 COMPRTN SPACE 4,10 COMPRTN 21 COMPRTN TITLE COMPRTN - PASCAL-6000 COMPILER ROUTINES. COMPRTN 22 COMMENT PASCAL-6000 COMPILER ROUTINES. COMPRTN 23 COMMENT COPYRIGHT (C) UNIVERSITY OF MINNESOTA - 1978. COMPRTN 24 COMPRTN SPACE 4,10 COMPRTN 25 *** COMPRTN - PASCAL-6000 COMPILER ROUTINES. COMPRTN 26 * J. J. DRUMMOND. 77/09/10. COMPRTN 27 * J. P. STRAIT. 78/03/28. COMPRTN 28 HISTORY SPACE 4,10 HCOMPRT 1 ** PASCAL-6000 MODIFICATION HISTORY. HCOMPRT 2 * HCOMPRT 3 * REMOVE CSLOC, SETREAD. V41DC05 17 * ADD CSARG, CSABORT, MAKESET, UNPACKC. V41DC05 18 * FIX *FIND* TO WAIT FOR HEADER I/O TO COMPLETE BEFORE CONTINUING. V41CC23 7 * ADD ASCII CONDITIONAL ASSEMBLY. V41CC10 32 * REMOVE ROUTINES *CLOSEB* AND *CLOSET*. V41BC01 6 * CHANGE SYMBOL *NOS* TO *NOS1+NOS2*. V41AC01 15 * HCOMPRT 4 MACROS SPACE 4,10 V41CC03 7 ** MACROS. V41CC03 8 BITPOS SPACE 4,10 V41CC03 9 ** BITPOS - DEFINE SYMBOL WITH SPECIFIED BIT SET. V41CC03 10 * V41CC03 11 * TAG BITPOS EXPR V41CC03 12 * V41CC03 13 * ENTRY EXPR = VALUE IN THE RANGE 0..16. V41CC03 14 * V41CC03 15 * EXIT TAG = SYMBOL DEFINED AS 2 RAISED TO THE EXPR POWER. V41CC03 16 V41CC03 17 V41CC03 18 PURGMAC BITPOS V41CC03 19 V41CC03 20 MACRO BITPOS,S,X V41CC03 21 LOCAL B,Y V41CC03 22 Y SET X V41CC03 23 ERRNG Y BITPOS - EYPRESSION NEGATIVE V41CC03 24 ERRNG 16-Y BITPOS - EYPRESSION TOO LARGE V41CC03 25 B DECMIC Y V41CC03 26 S EQU 1S+"B" V41CC03 27 ENDM V41CC03 28 BMSG SPACE 4,15 COMPRTN 29 ** BMSG - ISSUE COMPILER *B* DISPLAY MESSAGE. COMPRTN 30 * COMPRTN 31 * PROCEDURE BMSG(NAME : ALFA); COMPRTN 32 * COMPRTN 33 * ENTRY (B1) = 1. COMPRTN 34 * (X0) = PROCEDURE NAME. COMPRTN 35 * COMPRTN 36 * EXIT COMPILER MESSAGE ISSUED TO *B* DISPLAY. COMPRTN 37 * COMPRTN 38 * USES X - 6. COMPRTN 39 * A - 6. COMPRTN 40 * COMPRTN 41 * MACROS MESSAGE. COMPRTN 42 COMPRTN 43 COMPRTN 44 BMS ROUTINE BMSG ENTRY/EXIT COMPRTN 45 BX6 X0 PROCEDURE NAME COMPRTN 46 SA6 BMSA+1 STORE PROCEDURE NAME COMPRTN 47 MESSAGE BMSA,1 ISSUE *B* DISPLAY MESSAGE COMPRTN 48 EQ BMSX RETURN COMPRTN 49 COMPRTN 50 BMSA DATA 10HCOMPILING COMPRTN 51 BSS 1 PROCEDURE NAME COMPRTN 52 CON 0 MESSAGE TERMINATOR COMPRTN 53 CDATE SPACE 4,15 COMPRTN 54 ** CDATE - RETURN COMPILE DATE. COMPRTN 55 * COMPRTN 56 * PROCEDURE CDATE(VAR COMPILEDATE : ALFA); COMPRTN 57 * COMPRTN 58 * ENTRY (B1) = 1. COMPRTN 59 * (X0) = ADDRESS OF VARIABLE TO RECEIVE COMPILE DATE. COMPRTN 60 * COMPRTN 61 * EXIT ((X0)) = COMPILE DATE IN THE FORM *(YY/MM/DD)*. COMPRTN 62 * COMPRTN 63 * USES X - 1, 6. COMPRTN 64 * A - 1, 6. COMPRTN 65 COMPRTN 66 COMPRTN 67 CDT ROUTINE CDATE ENTRY/EXIT COMPRTN 68 SA1 CDTA LOAD COMPILE DATE COMPRTN 69 BX6 X1 COMPRTN 70 SA6 X0 AND STORE IT COMPRTN 71 EQ CDTX RETURN COMPRTN 72 COMPRTN 73 CDATE MICRO 2,8,$"DATE"$ COMPRTN 74 CDTA DATA 10H("CDATE") COMPRTN 75 CSABORT SPACE 4,20 V41DC05 19 ** CSABORT - ISSUE CONTROL STATEMENT ABORT MESSAGE. V41DC05 20 * V41DC05 21 * TYPE CH7 = PACKED ARRAY [1..7] OF CHAR; V41DC05 22 * PROCEDURE CSABORT(ERR : INTEGER; KEY, VAL : CH7); V41DC05 23 * V41DC05 24 * V41DC05 25 * ENTRY (X0) = ERROR NUMBER (0-6). V41DC05 26 * (X1) = CURRENT PARAMETER KEYWORD. V41DC05 27 * (X2) = CURRENT PARAMETER EQUIVALENCE. V41DC05 28 * V41DC05 29 * EXIT DAYFILE MESSAGE ISSUED, PROGRAM ABORTED. V41DC05 30 * V41DC05 31 * USES X - 0, 1, 2, 4, 5, 6. V41DC05 32 * A - 1, 2, 4, 6. V41DC05 33 * B - 2, 7. V41DC05 34 * V41DC05 35 * CALLS P.SNM, ZFN=. V41DC05 36 * V41DC05 37 * MACROS ABORT. V41DC05 38 V41DC05 39 V41DC05 40 ABT ROUTINE CSABORT ENTRY/EXIT V41DC05 41 SX0 X0-1 V41DC05 42 NG X0,ABTX IF NO ERROR V41DC05 43 BX5 X2 V41DC05 44 RJ =XZFN= ZERO FILL NAME V41DC05 45 SA6 ABTA SAVE PARAMETER KEYWORD V41DC05 46 BX1 X5 V41DC05 47 RJ =XZFN= ZERO FILL NAME V41DC05 48 SA6 ABTB SAVE PARAMETER EQUIVALENCE V41DC05 49 SA2 X0+ABTC V41DC05 50 SX5 X2-1 V41DC05 51 SA1 ABTA V41DC05 52 ZR X1,ABT1 IF NULL PARAMETER KEYWORD V41DC05 53 SA4 X5 V41DC05 54 SB7 1R+ V41DC05 55 RJ =XP.SNM SET NAME IN MESSAGE V41DC05 56 ABT1 SA1 ABTB V41DC05 57 ZR X1,ABT2 IF NULL PARAMETER VALUE V41DC05 58 SA4 X5 V41DC05 59 SB7 1R/ V41DC05 60 RJ =XP.SNM SET NAME IN MESSAGE V41DC05 61 ABT2 SX0 X5+B1 FWA OF MESSAGE V41DC05 62 MESSAGE X0 ISSUE DAYFILE MESSAGE V41DC05 63 ABORT ABORT PROGRAM V41DC05 64 V41DC05 65 ABTA BSS 1 PARAMETER KEYWORD V41DC05 66 ABTB BSS 1 PARAMETER EQUIVALENCE V41DC05 67 ABTC CON ABTD V41DC05 68 CON ABTE V41DC05 69 CON ABTF V41DC05 70 CON ABTG V41DC05 71 CON ABTH V41DC05 72 CON ABTI V41DC05 73 ABTD DATA C* INVALID PARAMETER - +++++++. * V41DC05 74 ABTE DATA C* PARAMETER USED TWICE - +++++++.* V41DC05 75 ABTF DATA C* PARAMETER MUST NOT BE EQUIVALENCED - +++++++.* V41DC05 76 ABTG DATA C* PARAMETER MUST BE EQUIVALENCED - +++++++.* V41DC05 77 ABTH DATA C* INVALID CONTROL STATEMENT DELIMITER. * V41DC05 78 ABTI DATA C* INVALID PARAMETER SETTING - +++++++=///////. * V41DC05 79 CSARG SPACE 4,20 V41DC05 80 ** CSARG - RETURN CONTROL STATEMENT ARGUMENT LIST. V41DC05 81 * V41DC05 82 * TYPE ARGLIST = ARRAY [1..50] OF WORD; V41DC05 83 * PROCEDURE CSARG (VAR ARGL: ARGLIST; VAR ACTR: INTEGER); V41DC05 84 * V41DC05 85 * V41DC05 86 * ENTRY (X0) = ADDRESS OF ARGUMENT ARRAY. V41DC05 87 * (X1) = ADDRESS OF ARGUMENT COUNT VARIABLE. V41DC05 88 * (B1) = 1. V41DC05 89 * V41DC05 90 * EXIT ((X1)) = ARGUMENT COUNT. V41DC05 91 * ARGUMENT LIST RETURNED, EACH ARGUMENT SPACE-FILLED V41DC05 92 * TO SEVEN (7) CHARS. V41DC05 93 * V41DC05 94 * USES X - 1, 2, 5, 6. V41DC05 95 * A - 1, 2, 6. V41DC05 96 * B - 2, 3, 7. V41DC05 97 * V41DC05 98 * CALLS ZTB=. V41DC05 99 V41DC05 100 V41DC05 101 ARG ROUTINE CSARG ENTRY/EXIT V41DC05 102 SA2 ACTR (X2) = 42/,18/ARGUMENT COUNT V41DC05 103 ERRNZ ARGR-2 FIX NEXT LINE V41DC05 104 SB2 B1+B1 ADDRESS OF FIRST ARGUMENT V41DC05 105 SX6 X2 ARGUMENT COUNT V41DC05 106 SB7 X0 ADDRESS OF ARRAY V41DC05 107 SA6 X1 STORE ARGUMENT COUNT V41DC05 108 ERRNZ ARGR-2 FIX NEXT LINE V41DC05 109 SB3 X6+B1 ADDRESS OF LAST ARGUMENT V41DC05 110 MX5 42 V41DC05 111 ARG1 SA1 B2 LOAD NEXT ARGUMENT WORD V41DC05 112 BX2 -X5*X1 SAVE LOWER 18 BITS V41DC05 113 BX1 X5*X1 V41DC05 114 RJ =XZTB= CONVERT ZEROS TO BLANKS V41DC05 115 BX6 X5*X6 REMOVE TRAILING SPACES V41DC05 116 BX6 X6+X2 RESTORE LOWER 18 BITS V41DC05 117 SA6 B7 STORE ARGUMENT IN ARRAY V41DC05 118 SB2 B2+B1 V41DC05 119 SB7 B7+B1 V41DC05 120 LE B2,B3,ARG1 IF MORE ARGUMENTS LEFT V41DC05 121 BX6 X6-X6 V41DC05 122 SA6 B7 STORE ZERO WORD AT END OF LIST V41DC05 123 EQ ARGX RETURN V41DC05 124 FIND SPACE 4,25 COMPRTN 136 ** FIND - FIND A NAMED RECORD ON A NAMED FILE. COMPRTN 137 * COMPRTN 138 * TYPE SEGTEXT = SEGMENTED TEXT; COMPRTN 139 * PROCEDURE FIND(VAR F : SEGTEXT; FNAME, RNAME : ALFA); COMPRTN 140 * COMPRTN 141 * ENTRY (B1) = 1. COMPRTN 142 * (X0) = EFET - TXTEFET. V41CC03 29 * (X1) = FILE NAME. COMPRTN 144 * (X1) = ' ' FOR DEFAULT FILE NAME. COMPRTN 145 * (X2) = RECORD NAME. COMPRTN 146 * COMPRTN 147 * EXIT IF SUCCESS, FILE POSITIONED TO REQUESTED RECORD, COMPRTN 148 * ELSE FILE POSITIONED AT EOS/EOF. COMPRTN 149 * COMPRTN 150 * USES X - ALL. COMPRTN 151 * A - 1, 2, 4, 6, 7. COMPRTN 152 * COMPRTN 153 * CALLS P.CLO, P.GETB, P.GETCH, P.GETS, P.SRS, SPT, ZFN=. COMPRTN 154 * COMPRTN 155 * MACROS ASSIGN, ATTACH, FETCH, FILEINFO, FILESTAT, FIND, COMPRTN 156 * OPENM, RECALL, STORE. COMPRTN 157 COMPRTN 158 COMPRTN 159 * DEFINE EFET DISPOSITION CODES. V41CC03 30 V41CC03 31 FNDSEG BITPOS ESEGMENT-EDISPC V41CC03 32 FNDTEXT BITPOS ETEXT-EDISPC V41CC03 33 FNDTERM BITPOS ETERMFIL-EDISPC V41CC03 34 FNDPERS BITPOS EPERSIST-EDISPC V41CC03 35 V41CC03 36 FND ROUTINE FIND ENTRY/EXIT COMPRTN 160 BX6 X2 COMPRTN 161 SA6 FNDB SAVE RECORD NAME COMPRTN 162 RJ =XZFN= ZERO FILL FILE NAME COMPRTN 163 SA1 =0L"TLFN" DEFAULT FILE NAME COMPRTN 164 BX3 X3-X3 COMPRTN 165 IX4 X3-X6 COMPRTN 166 BX5 X4+X6 COMPRTN 167 BX1 -X5*X1 COMPRTN 168 IX6 X6+X1 FILE NAME OR DEFAULT COMPRTN 169 SA6 FNDA SAVE FILE NAME COMPRTN 170 SA1 FNDB COMPRTN 171 RJ =XZFN= ZERO FILL RECORD NAME COMPRTN 172 SA6 FNDB SAVE RECORD NAME COMPRTN 173 SA1 X0+TXTEFET EFET V41CC03 37 RJ =XP.CLO CLOSE EFET COMPRTN 175 COMPRTN 176 SCOPE2 IFNE SCOPE2,1 COMPRTN 177 RECALL X2 WAIT I/O COMPLETE COMPRTN 178 SA1 FNDA FILE NAME COMPRTN 179 SX7 B1 COMPRTN 180 SA7 X2+6 PRESET RANDOM REQUEST COMPRTN 181 IX6 X1+X7 COMPRTN 182 SA6 X2 SET FILE NAME INTO FET COMPRTN 183 SX4 11B COMPRTN 184 SA1 X2+B1 COMPRTN 185 LX4 44 COMPRTN 186 BX6 X1+X4 SET RANDOM ACCESS AND ERROR PROCESSING COMPRTN 187 SA6 A1 COMPRTN 188 SCOPE2 ENDIF COMPRTN 189 COMPRTN 190 NOS IFNE KRONOS+NOS1+NOS2,0 V41AC01 16 COMPRTN 192 * LOCATE FILE. COMPRTN 193 COMPRTN 194 ASSIGN X2,L FIND FILE COMPRTN 195 SA1 X2 COMPRTN 196 SX6 B1 COMPRTN 197 SX3 X1 COMPRTN 198 AX3 10 STATUS RETURN COMPRTN 199 SX4 X3-9 COMPRTN 200 SX0 FNDSEG+FNDTEXT+FNDTERM+FNDPERS DISPOSITION CODE V41CC03 38 NZ X4,FND1 IF NOT FOUND AS LOCAL FILE COMPRTN 202 SA6 X2+6 SET RANDOM REQUEST TO FIRST SECTOR COMPRTN 203 EQ FND2 COMPRTN 204 COMPRTN 205 FND1 SX4 X3-5 COMPRTN 206 SX0 130B DISP: SEG, TEXT, TERM COMPRTN 207 SX0 FNDSEG+FNDTEXT+FNDTERM DISPOSITION CODE V41CC03 39 ZR X4,FND7 IF NOT FOUND AS SYSTEM FILE COMPRTN 208 NOS ENDIF COMPRTN 209 COMPRTN 210 SCOPE34 IFNE SCOPE34,0 COMPRTN 211 BX6 X2 SAVE FET ADDRESS COMPRTN 212 SA6 FNDC COMPRTN 213 SX6 3 SET STATUS TABLE LENGTH COMPRTN 214 LX6 36-0 COMPRTN 215 SA6 FNDD COMPRTN 216 SA1 FNDA SET FILE NAME COMPRTN 217 BX6 X1 COMPRTN 218 SA6 A6+B1 COMPRTN 219 MX6 0 CLEAR REMAINDER OF TABLE COMPRTN 220 SA6 A6+B1 COMPRTN 221 SA6 A6+B1 COMPRTN 222 FILESTAT FNDD,RECALL COMPRTN 223 SA1 FNDD+1 COMPRTN 224 SA2 FNDC RELOAD FET ADDRESS COMPRTN 225 SX0 FNDSEG+FNDTEXT+FNDTERM+FNDPERS DISPOSITION CODE V41CC03 40 NZ X1,FND2 IF LOCAL FILE FOUND COMPRTN 227 SCOPE34 ENDIF COMPRTN 228 COMPRTN 229 SCOPE2 IFNE SCOPE2,0 COMPRTN 230 SA1 FNDA PICK UP LFN COMPRTN 231 BX6 X1 COMPRTN 232 SA6 X2 AND SET INTO FIT[0] COMPRTN 233 SX2 X2-EFITFIT X2 := ADDR(EFET[0]) COMPRTN 234 SCOPE2 ENDIF COMPRTN 235 COMPRTN 236 NOSBE IFNE NOSBE+SCOPE2,0 ALSO NOS IF NECESSARY COMPRTN 237 BX6 X2 SAVE FET ADDRESS COMPRTN 238 SA6 FNDC COMPRTN 239 SA1 FNDA SET FILE NAME AND TABLE SIZE COMPRTN 240 SX6 5 COMPRTN 241 LX6 12-0 COMPRTN 242 BX6 X1+X6 COMPRTN 243 SA6 FNDD COMPRTN 244 MX6 0 CLEAR REMAINDER OF TABLE COMPRTN 245 SA6 A6+B1 COMPRTN 246 SA6 A6+B1 COMPRTN 247 SA6 A6+B1 COMPRTN 248 SA6 A6+B1 COMPRTN 249 FILINFO FNDD COMPRTN 250 SA1 FNDD+1 COMPRTN 251 SA2 FNDC RELOAD FET ADDRESS COMPRTN 252 NOSBE ENDIF COMPRTN 253 COMPRTN 254 NOSBE IFNE NOSBE,0 COMPRTN 255 SX0 FNDSEG+FNDTEXT+FNDTERM+FNDPERS DISPOSITION CODE V41CC03 41 NZ X1,FND2 IF LOCAL FILE FOUND COMPRTN 257 NOSBE ENDIF COMPRTN 258 COMPRTN 259 SCOPE2 IFNE SCOPE2,0 COMPRTN 260 ZR X1,FND1.2 LOCAL FILE DOES NOT EXIST COMPRTN 261 MX0 -6 COMPRTN 262 BX1 -X0*X1 FOR TYPE FIELD IN FILINFO TABLE COMPRTN 263 SX0 FNDSEG+FNDTEXT+FNDTERM+FNDPERS DISPOSITION CODE V41CC03 42 ZR X1,FND2 FILE ALREADY LOCAL COMPRTN 265 SX1 X1-4 COMPRTN 266 ZR X1,FND2 LOCAL FILE MAPPED TO PERMANENT COMPRTN 267 EQ FND7 FILE NEITHER LOCAL OR PERMANENT COMPRTN 268 COMPRTN 269 FND1.2 BSS 0 ATTACH FILE AND MAKE INTERNAL COMPRTN 270 SCOPE2 ENDIF COMPRTN 271 COMPRTN 272 NOSBE IFNE NOSBE+SCOPE34+SCOPE2,0 COMPRTN 273 SA1 FNDA SET PFN AND LFN COMPRTN 274 BX6 X1 COMPRTN 275 SA6 FNDE-4 COMPRTN 276 SA6 FNDE COMPRTN 277 ATTACH FNDE,RC COMPRTN 278 SA1 FNDE CHECK RETURN CODE COMPRTN 279 SA2 FNDC RELOAD FET ADDRESS COMPRTN 280 MX0 -9 COMPRTN 281 AX1 9 COMPRTN 282 BX1 -X0*X1 COMPRTN 283 NOSBE ENDIF COMPRTN 284 COMPRTN 285 SCOPE2 IFNE SCOPE2,0 COMPRTN 286 ZR X1,FND2 FILE ATTACHED SUCCESSFULLY COMPRTN 287 SX1 X1-2 FILE ALREADY ATTACHED COMPRTN 288 SCOPE2 ENDIF COMPRTN 289 COMPRTN 290 NOSBE IFNE NOSBE+SCOPE34+SCOPE2,0 COMPRTN 291 SX0 FNDSEG+FNDTEXT+FNDTERM DISPOSITION CODE V41CC03 43 NZ X1,FND7 IF NO SUCH PERMANENT FILE COMPRTN 293 NOSBE ENDIF COMPRTN 294 COMPRTN 295 * RESET POINTERS AND DISPOSITION TO OPEN THE FILE. COMPRTN 296 COMPRTN 297 SCOPE2 IFNE SCOPE2,1 COMPRTN 298 FND2 SA1 X2+1 FIRST COMPRTN 299 SX6 X1+B1 COMPRTN 300 SX7 X1 COMPRTN 301 SA6 A1+B1 RESET IN COMPRTN 302 SA7 A6+B1 RESET OUT COMPRTN 303 SA1 X2-EFETFET EFET V41CC03 44 MX6 EDISPCW-1 MASK DISPOSITION CODE EXCEPT PROG. PAR. V41CC03 45 ERRNZ EPROGPAR-EDISPC FIX X6 V41CC03 46 ERRNZ EDISPC+EDISPCW-60 FIX X6 V41CC03 47 LX0 EDISPC-0 POSITION NEW DISPOSITION CODE V41CC03 48 BX1 -X6*X1 CLEAR OLD DISPOSITION EXCEPT PROG PARAM COMPRTN 307 BX6 X1+X0 SET NEW DISPOSITION COMPRTN 308 SA6 A1 EFET COMPRTN 309 COMPRTN 310 * PROCESS *ULIB* RECORD, IF PRESENT. COMPRTN 311 COMPRTN 312 BX1 X6 EFET COMPRTN 313 RJ =XP.GETB GET FIRST WORD OF FILE COMPRTN 314 SA1 X2-EFETFET EFET V41CC03 49 NG X1,FND7 IF EOS/EOF ENCOUNTERED COMPRTN 316 SA1 X3 FIRST WORD OF FILE COMPRTN 317 LX1 18 COMPRTN 318 SX6 X1-770000B COMPRTN 319 NZ X6,FND6 IF NO PREFIX TABLE COMPRTN 320 RJ SPT SKIP PREFIX TABLE COMPRTN 321 LX1 18 COMPRTN 322 SX6 X1-760000B COMPRTN 323 NZ X6,FND7 IF NOT *ULIB* RECORD COMPRTN 324 COMPRTN 325 * LOCATE RECORD RANDOMLY. COMPRTN 326 COMPRTN 327 LX1 -30 COMPRTN 328 MX0 -24 COMPRTN 329 BX3 -X0*X1 RANDOM ADDRESS OF *OPLD* COMPRTN 330 SA4 X2+7 COMPRTN 331 BX4 -X0*X4 ADDRESS BIAS COMPRTN 332 IX7 X3+X4 ABSOLUTE RANDOM ADDRESS OF *OPLD* V41CC23 8 RECALL X2 WAIT HEADER I/O COMPLETE V41CC23 9 SA7 A4-B1 SET RANDOM ADDRESS INTO (FET+6) V41CC23 10 RJ =XP.SRS SET READ STATUS COMPRTN 335 SA1 X2-EFETFET RELOAD EFET V41CC03 50 RJ =XP.GETB READ DIRECTORY RECORD COMPRTN 337 SA1 X2-EFETFET EFET V41CC03 51 NG X1,FND7 IF EOS/EOF ENCOUNTERED COMPRTN 339 SA1 X3 GET FIRST WORD OF DIRECTORY COMPRTN 340 LX1 18 COMPRTN 341 SX6 X1-770000B COMPRTN 342 NZ X6,FND7 IF NO PREFIX TABLE COMPRTN 343 RJ SPT SKIP PREFIX TABLE COMPRTN 344 LX1 18 COMPRTN 345 SX6 X1-700000B COMPRTN 346 NZ X6,FND7 IF NOT 7000 TABLE COMPRTN 347 COMPRTN 348 * SEARCH FOR RECORD NAME IN 7000 TABLE. COMPRTN 349 COMPRTN 350 SA1 X2-EFETFET RELOAD EFET V41CC03 52 FND4.1 RJ =XP.GETB GET NEXT WORD COMPRTN 352 SA1 X2-EFETFET EFET V41CC03 53 NG X1,FND7 IF EOS/EOF ENCOUNTERED COMPRTN 354 SA1 X3 LOAD RECORD NAME COMPRTN 355 SA4 FNDB TARGET RECORD NAME COMPRTN 356 BX4 X4-X1 COMPRTN 357 ZR X4,FND4.2 IF MATCH COMPRTN 358 SA1 X2-EFETFET RELOAD EFET V41CC03 54 RJ =XP.GETB GET SECOND WORD OF DIRECTORY ENTRY COMPRTN 360 SA1 X2-EFETFET EFET V41CC03 55 NG X1,FND7 IF EOS/EOF ENCOUNTERED COMPRTN 362 EQ FND4.1 LOOP COMPRTN 363 COMPRTN 364 FND4.2 SA1 X2-EFETFET RELOAD EFET V41CC03 56 RJ =XP.GETB GET SECOND WORD OF DIRECTORY ENTRY COMPRTN 366 RECALL X2 WAIT DIRECTORY I/O COMPLETE COMPRTN 367 SA1 X3+ GET WORD COMPRTN 368 MX0 -24 COMPRTN 369 BX3 -X0*X1 RANDOM ADDRESS OF RECORD COMPRTN 370 SA4 X2+7 COMPRTN 371 BX4 -X0*X4 ADDRESS BIAS COMPRTN 372 IX6 X3+X4 ABSOLUTE RANDOM ADDRESS OF RECORD COMPRTN 373 SA6 A4-B1 SET IN (FET+6) COMPRTN 374 RJ =XP.SRS SET READ STATUS COMPRTN 375 SA1 X2-EFETFET RELOAD EFET V41CC03 57 RJ =XP.GETB SKIP RECORD NAME COMPRTN 377 SX0 X2 SET FET ADDRESS COMPRTN 378 EQ FND6.1 TERMINATION COMPRTN 379 COMPRTN 380 * LOCATE RECORD. COMPRTN 381 COMPRTN 382 FND5 SA1 X2-EFETFET RELOAD EFET V41CC03 58 SX2 1 SKIP COUNT COMPRTN 384 RJ =XP.GETS GET SEGMENT COMPRTN 385 SA1 X2-EFETFET RELOAD EFET V41CC03 59 RJ =XP.GETB GET FIRST WORD OF RECORD COMPRTN 387 SA1 X2-EFETFET EFET V41CC03 60 NG X1,FND7 IF EOS/EOF ENCOUNTERED COMPRTN 389 SA1 X3 FIRST WORD OF RECORD COMPRTN 390 LX1 18 COMPRTN 391 SX6 X1-770000B COMPRTN 392 ZR X6,FND7 IF PREFIX TABLE (IMPLYING NON-TEXT) COMPRTN 393 FND6 LX1 -18 COMPRTN 394 SX0 X2 SAVE FET ADDRESS COMPRTN 395 RJ =XZFN= ZERO FILL RECORD NAME COMPRTN 396 SX2 X0 RESTORE FET ADDRESS COMPRTN 397 SA1 FNDB TARGET RECORD NAME COMPRTN 398 BX3 X1-X6 COMPRTN 399 NZ X3,FND5 IF NO MATCH COMPRTN 400 SCOPE2 ELSE COMPRTN 401 FND2 SA1 FNDC COMPRTN 402 SA1 X1 A1 := ADDR(EFET[0]) COMPRTN 403 MX6 60-EEISPCW-1 MASK DISPOSITION EXCEPT PROG PARAM V41CC03 61 ERRNZ EPROGPAR-EDISPC FIX X6 V41CC03 62 ERRNZ EDISPC+EDISPCW-60 FIX X6 V41CC03 63 LX0 EDISPC-0 V41CC03 64 BX1 -X6*X1 CLEAR OLD DISPOSITION EXCEPT PROG PARAM V41CC03 65 BX6 X1+X0 SET NEW DISPOSITION V41CC03 66 SA6 A1 INTO EFET[0] COMPRTN 408 COMPRTN 409 * RE-TYPE FILE ORGANIZATION AS *LIBRARY* AND COMPRTN 410 * SEARCH DIRECTORY FOR NAMED RECORD. COMPRTN 411 COMPRTN 412 SX2 A1+EFITFIT X2 := ADDR(FIT[0]) COMPRTN 413 FETCH X2,EX,X6 COMPRTN 414 SA6 FNDG SAVE ERROR EXIT ADDRESS COMPRTN 415 STORE X2,FO=LB LIBRARY ORGANISATION COMPRTN 416 STORE X2,PD=INPUT READ-ONLY COMPRTN 417 STORE X2,EO=DD TERMINATE AND DISPLAY BAD DATA COMPRTN 418 STORE X2,EX=FNDSQ TAKE ERROR EXIT TO FNDSQ ON BAD SEARCH COMPRTN 419 OPENM X2,INPUT,N OPEN FOR INPUT ONLY COMPRTN 420 RJ =XP.SRS SET READ STATUS ON FILE COMPRTN 421 SA1 FNDB SET UP 2-WORD RECORD TO COMPRTN 422 BX6 X1 RECEIVE DIRECTORY ENTRY COMPRTN 423 SA6 FNDF FNDF[0] := RECORD-NAME COMPRTN 424 SX7 B1 COMPRTN 425 SA7 A6+B1 FNDF[1] := 1 FOR 2-WORD ENTRY COMPRTN 426 FIND X2,FNDF SEARCH LIB FOR ENTRY COMPRTN 427 SA5 FNDG RESTORE ERROR EXIT ADDRESS COMPRTN 428 STORE X2,EX=X5 COMPRTN 429 SA1 FNDF+1 COMPRTN 430 SX2 X2-EFITFIT+EFITBUF V41CC03 67 ZR X1,FND7 RECORD NOT FOUND ON THIS LIBRARY COMPRTN 432 BX0 X2 SO WE CAN DROP THROUGH TO COMMON CODE COMPRTN 433 EQ FND4 COMPRTN 434 COMPRTN 435 * ERROR EXIT ROUTINE. COMPRTN 436 COMPRTN 437 FNDSQ DATA 0 COMPRTN 438 SA5 FNDG RESTORE ERROR EXIT ADDRESS COMPRTN 439 STORE X2,EX=X5 COMPRTN 440 STORE X2,DX=FND8 COMPRTN 441 STORE X2,FO=SQ COMPRTN 442 OPENM X2,INPUT,R COMPRTN 443 RJ =XP.SRS COMPRTN 444 SA1 X2-EFITFIT EFET V41CC03 68 RJ =XP.GETB COMPRTN 446 COMPRTN 447 SA1 X2-EFITFIT EFET V41CC03 69 NG,X1 FND7 COMPRTN 449 SA1 X2-EFITFIT+EFITIN IN V41CC03 70 SA1 X1 COMPRTN 451 SX0 X2 COMPRTN 452 RJ =XZFN= COMPRTN 453 SX2 X0 COMPRTN 454 SA1 FNDB COMPRTN 455 BX3 X1-X6 COMPRTN 456 ZR,X3 FND3.5 COMPRTN 457 SA1 X2-EFITFIT EFET V41CC03 71 SX2 1 COMPRTN 459 RJ =XP.GETS COMPRTN 460 SA1 X2-EFITFIT EFET V41CC03 72 RJ =XP.GETB COMPRTN 462 EQ FND3 COMPRTN 463 FND3.5 SX0 X2-EFITFIT+EFITBUF V41CC03 73 COMPRTN 465 FND4 BSS 0 COMPRTN 466 SCOPE2 ENDIF COMPRTN 467 COMPRTN 468 * DEFINE FILE POINTER AS FIRST CHARACTER OF SECOND WORD. COMPRTN 469 COMPRTN 470 FND6.1 SA1 X0-EFETFET+EFETPTR EFET-1 COMPRTN 471 MX3 60 REQUEST TO FILL CHARACTER BUFFER COMPRTN 472 SX7 FIND RETURN ADDRESS FOR P.GETCH COMPRTN 473 EQ =XP.GETCH FILL CHARACTER BUFFER COMPRTN 474 COMPRTN 475 * SIGNAL FAILURE. COMPRTN 476 COMPRTN 477 FND7 SA1 X2-EFETFET EFET V41CC03 74 MX6 2 COMPRTN 479 ERRNZ EEOSF-59 FIX X6 V41CC03 75 ERRNZ EEOF-58 FIX X6 V41CC03 76 BX6 X1+X6 SET EOS/EOF BITS COMPRTN 480 SA6 A1 FLAG FAILURE COMPRTN 481 EQ FIND RETURN COMPRTN 482 COMPRTN 483 SCOPE2 IFNE SCOPE2,0 COMPRTN 484 FND8 PS ENTRY/EXIT FOR ERROR PROCESSING COMPRTN 485 SX2 X2-EFITFIT+EFITBUF X2 := ADDR(EFET[1]) V41CC03 77 EQ FND7 COMPRTN 487 SCOPE2 ENDIF COMPRTN 488 COMPRTN 489 FNDA BSS 1 FILE NAME COMPRTN 490 FNDB BSS 1 RECORD NAME COMPRTN 491 V41CC03 78 NOSBE IFNE NOSBE+SCOPE34+SCOPE2,0 COMPRTN 492 FNDC BSS 1 FET ADDRESS COMPRTN 493 FNDD BSS 5 FILE STATUS REQUEST TABLE COMPRTN 494 FNDE FDB LFN,PFN,ID="PLID",MR=1,SN DEFAULT PF TABLE COMPRTN 495 NOSBE ENDIF COMPRTN 496 V41CC03 79 SCOPE2 IFNE SCOPE2,0 COMPRTN 497 FNDF BSS 2 TO RECEIVE DIRECTORY ENTRY COMPRTN 498 FNDG BSS 1 TO RECEIVE ERROR EXIT ADDRESS COMPRTN 499 SCOPE2 ENDIF COMPRTN 500 SPT SPACE 4,15 COMPRTN 501 ** SPT - SKIP PREFIX TABLE. COMPRTN 502 * COMPRTN 503 * ENTRY (X1) = FIRST WORD OF PREFIX TABLE, SHIFTED LEFT 18. V41CC03 80 * (X2) = ADDRESS OF FET. COMPRTN 505 * COMPRTN 506 * EXIT (X1) = FIRST WORD AFTER PREFIX TABLE. COMPRTN 507 * TO *FND7* IF EOS/EOF ENCOUNTERED BEFORE REACHING COMPRTN 508 * THE WORD AFTER PREFIX TABLE. COMPRTN 509 * COMPRTN 510 * USES X - 1. COMPRTN 511 * A - 1. COMPRTN 512 * B - 2. COMPRTN 513 * COMPRTN 514 * CALLS P.GETB. COMPRTN 515 COMPRTN 516 COMPRTN 517 OS IFNE SCOPE2,1 V41CC03 81 SPT SUBR ENTRY/EXIT COMPRTN 518 LX1 6 COMPRTN 519 SB2 X1 SIZE OF PREFIX TABLE COMPRTN 520 SPT1 ZR B2,SPT2 IF FINISHED SKIPPING PREFIX TABLE COMPRTN 521 SA1 X2-EFETFET RELOAD EFET V41CC03 82 SB2 B2-B1 COUNT THIS WORD COMPRTN 523 RJ =XP.GETB ADVANCE TO NEXT WORD COMPRTN 524 SA1 X2-EFETFET EFET V41CC03 83 NG X1,FND7 IF EOS/EOF ENCOUNTERED COMPRTN 526 EQ SPT1 LOOP COMPRTN 527 COMPRTN 528 SPT2 SA1 X2-EFETFET RELOAD EFET V41CC03 84 RJ =XP.GETB GET FIRST WORD OF NEXT TABLE COMPRTN 530 SA1 X2-EFETFET EFET V41CC03 85 NG X1,FND7 IF EOS/EOF ENCOUNTERED COMPRTN 532 SA1 X3 FIRST WORD COMPRTN 533 EQ SPTX RETURN COMPRTN 534 OS ENDIF V41CC03 86 LOADGO SPACE 4,20 COMPRTN 535 ** LOADGO - PERFORM AUTOMATIC LOAD AND GO. COMPRTN 536 * COMPRTN 537 * PROCEDURE LOADGO(VAR LGO : FILE); COMPRTN 538 * COMPRTN 539 * ENTRY (X0) = EFET ADDRESS - BINEFET. V41CC03 87 * (B1) = 1. V41CC03 88 * COMPRTN 542 * EXIT TO LOADED MODULE. COMPRTN 543 * COMPRTN 544 * USES X - 0, 1, 2, 3, 4, 6, 7. COMPRTN 545 * A - 1, 3, 6, 7. COMPRTN 546 * B - 7. COMPRTN 547 * COMPRTN 548 * CALLS LOADER=, P.DER, P.ISM, P.SNM. COMPRTN 549 * COMPRTN 550 * MACROS RECALL, SYSTEM. COMPRTN 551 COMPRTN 552 COMPRTN 553 LGO ROUTINE LOADGO ENTRY/EXIT COMPRTN 554 SCOPE2 IFNE SCOPE2,1 COMPRTN 555 SA1 X0+BINEFET+EFETFET FILE NAME V41CC03 89 SCOPE2 ELSE COMPRTN 557 SA1 X0+BINEFET+EFITFIT V41CC03 90 SCOPE2 ENDIF COMPRTN 559 MX2 42 COMPRTN 560 BX6 X2*X1 COMPRTN 561 SA6 PGNR SET PROGRAM NAME / CLEAR ARGUMENT COUNT COMPRTN 562 COMPRTN 563 KRONOS IFNE KRONOS,0 COMPRTN 564 SB7 1R= SUBSTITUTION CHARACTER COMPRTN 565 COMPRTN 566 * BUILD NEW CONTROL STATEMENT IMAGE (FOR LINK LOADER). COMPRTN 567 COMPRTN 568 SA3 LGOA COMPRTN 569 BX6 X6-X6 COMPRTN 570 LX7 X3 COMPRTN 571 SA7 CCDR COMPRTN 572 MX4 8-2 NUMBER OF WORDS TO ZERO COMPRTN 573 SA6 A7+B1 COMPRTN 574 LGO1 SA6 A6+B1 COMPRTN 575 LX4 1 COMPRTN 576 NG X4,LGO1 IF MORE WORDS TO ZERO COMPRTN 577 SA4 A7-B1 FWA - 1 OF NEW CONTROL STATEMENT IMAGE COMPRTN 578 BX1 X2*X1 FILE NAME COMPRTN 579 RJ =XP.SNM SET NAME IN MESSAGE COMPRTN 580 KRONOS ENDIF COMPRTN 581 COMPRTN 582 RJ =XP.ISM ISSUE STATISTICS MESSAGE TO DAYFILE COMPRTN 583 SX1 =YP.DER COMPRTN 584 NG X1,LGO2 IF NO REPRIEVE COMPRTN 585 RJ =YP.DER DISABLE ERROR REPRIEVE COMPRTN 586 COMPRTN 587 * EXECUTE LOADER REQUEST. COMPRTN 588 COMPRTN 589 LGO2 SX0 B0 COMPRTN 590 COMPRTN 591 NOS IFNE KRONOS+NOS1+NOS2,0 V41AC01 17 SYSTEM LDV,R,X0 LOAD BINARY COMPRTN 593 NOS ENDIF COMPRTN 594 COMPRTN 595 NOSBE IFNE NOSBE+SCOPE34,0 COMPRTN 596 SA1 LDRR CLEAR LOAD COMPLETE BIT COMPRTN 597 MX2 -1 COMPRTN 598 LX2 29-0 COMPRTN 599 BX6 X2*X1 COMPRTN 600 SA6 A1 COMPRTN 601 SYSTEM LDV,,X0 LOAD BINARY COMPRTN 602 LGO3 RECALL DELAY COMPRTN 603 SA1 LDRR COMPRTN 604 LX1 59-29 COMPRTN 605 PL X1,LGO3 IF LOAD NOT COMPLETE COMPRTN 606 NOSBE ENDIF COMPRTN 607 COMPRTN 608 SCOPE2 IFNE SCOPE2,0 COMPRTN 609 RJ =XLOADER= COMPRTN 610 - VFD 30/0 COMPRTN 611 SCOPE2 ENDIF COMPRTN 612 COMPRTN 613 PS ABORT IF LOAD NOT SUCCESSFUL COMPRTN 614 COMPRTN 615 KRONOS IFNE KRONOS,0 COMPRTN 616 LGOA CON 8L=======. COMPRTN 617 KRONOS ENDIF COMPRTN 618 MAKESET SPACE 4,15 V41DC05 125 ** MAKESET - CONVERT STRING TO SET OF CHARS. V41DC05 126 * V41DC05 127 * TYPE SETOFA2Z = SET OF 'A'..'Z'; V41DC05 128 * PROCEDURE MAKESET(STR: ALFA; VAR CS: SETOFA2Z); V41DC05 129 * V41DC05 130 * V41DC05 131 * ENTRY (X0) = ALPHANUMERIC STRING, LEFT JUSTIFIED. V41DC05 132 * (X1) = ADDRESS OF SET VARIABLE. V41DC05 133 * V41DC05 134 * EXIT ((X1)) = SET OF CHARS IN STRING. V41DC05 135 * V41DC05 136 * USES X - 0, 2, 3, 4, 6, 7. V41DC05 137 * A - 6. V41DC05 138 * B - 2. V41DC05 139 V41DC05 140 V41DC05 141 MKS2 SA6 X1 STORE SET V41DC05 142 V41DC05 143 MKS ROUTINE MAKESET ENTRY/EXIT V41DC05 144 BX6 X6-X6 V41DC05 145 MX2 -DCCHARSZ ONE DISPLAY CODE CHAR MASK V41DC05 146 SX4 1 V41DC05 147 MKS1 LX0 DCCHARSZ V41DC05 148 BX3 -X2*X0 V41DC05 149 ZR X3,MKS2 IF END OF CHARS V41DC05 150 SX7 X3-DCSPACE V41DC05 151 ZR X7,MKS2 IF SPACE V41DC05 152 SB2 X3+ V41DC05 153 LX7 X4,B2 V41DC05 154 BX6 X6+X7 ADD CHAR TO SET V41DC05 155 EQ MKS1 PROCESS NEXT CHAR V41DC05 156 MASK SPACE 4,15 COMPRTN 619 ** MASK - GENERATE MASK. COMPRTN 620 * COMPRTN 621 * TYPE BITRANGE = 0..59; COMPRTN 622 * FUNCTION MASK(COUNT : BITRANGE) : INTEGER; COMPRTN 623 * COMPRTN 624 * ENTRY (B1) = 1. COMPRTN 625 * (X0) = SHIFT COUNT. COMPRTN 626 * COMPRTN 627 * EXIT (X6) = MASK (MAY BE NEGATIVE ZERO). COMPRTN 628 * COMPRTN 629 * USES X - 0, 6. COMPRTN 630 * B - 2. COMPRTN 631 COMPRTN 632 COMPRTN 633 MSK ROUTINE MASK ENTRY/EXIT COMPRTN 634 SB2 X0-1 COMPRTN 635 SX6 B0+ COMPRTN 636 NG B2,MSKX IF ZERO MASK COMPRTN 637 MX0 1 COMPRTN 638 AX6 B2,X0 GENERATE MASK COMPRTN 639 EQ MSKX RETURN COMPRTN 640 MERGE SPACE 4,15 COMPRTN 641 ** MERGE - LOGICALLY MERGE TWO WORDS. COMPRTN 642 * COMPRTN 643 * FUNCTION MERGE(A,B : VALU) : INTEGER; COMPRTN 644 * COMPRTN 645 * ENTRY (B1) = 1. COMPRTN 646 * (X0) = FIRST VALUE. COMPRTN 647 * (X1) = SECOND VALUE. COMPRTN 648 * COMPRTN 649 * EXIT (X6) = (X0) .OR. (X1). COMPRTN 650 * COMPRTN 651 * USES X - 6. COMPRTN 652 COMPRTN 653 COMPRTN 654 MRG ROUTINE MERGE ENTRY/EXIT COMPRTN 655 BX6 X0+X1 COMPRTN 656 EQ MRGX RETURN COMPRTN 657 NEXTCH SPACE 4,15 COMPRTN 658 ** NEXTCH - GET NEXT SOURCE CHARACTER, CROSSING INPUT LINES COMPRTN 659 * WHEN NECESSARY. COMPRTN 660 * COMPRTN 661 * PROCEDURE NEXTCH; COMPRTN 662 * COMPRTN 663 * ENTRY (B1) = 1. COMPRTN 664 * COMPRTN 665 * EXIT (CH) = NEXT CHARACTER. COMPRTN 666 * (CHCNT) UPDATED. COMPRTN 667 * COMPRTN 668 * USES X - ALL. COMPRTN 669 * A - 1, 2, 5, 6. COMPRTN 670 * COMPRTN 671 * CALLS BEGINLI, ENDLINE. COMPRTN 672 COMPRTN 673 COMPRTN 674 NCH1 SA5 X2+ LINE[CHCNT] COMPRTN 675 SX4 CHSPACE ORDINAL FOR SPACE V41CC10 33 IX7 X1-X6 COMPRTN 677 SA6 A2 CHCNT := CHCHT + 1 COMPRTN 678 IX0 X5-X4 CH - ' ' COMPRTN 679 AX7 59 COMPRTN 680 NCHC BX1 X7*X0 COMPRTN 681 IX6 X5-X1 ' ' OR CH COMPRTN 682 SA6 0 CH COMPRTN 683 COMPRTN 684 NCH ROUTINE NEXTCH ENTRY/EXIT COMPRTN 685 NCHA SA1 0 SOURCELENGTH COMPRTN 686 SA2 0 CHCNT COMPRTN 687 IX3 X1-X2 COMPRTN 688 SX6 X2+B1 COMPRTN 689 PL X3,NCH1 IF CHCNT <= SOURCELENGTH COMPRTN 690 RJ =XENDLINE PROCESS END OF SOURCE LINE COMPRTN 691 RJ =XBEGINLI READ NEXT SOURCE LINE COMPRTN 692 NCHB SA1 0 SOURCELENGTH COMPRTN 693 SA2 0 CHCNT COMPRTN 694 SX6 X2+1 COMPRTN 695 EQ NCH1 COMPRTN 696 NEXTCHS SPACE 4,20 COMPRTN 697 ** NEXTCHS - NEXTCH SETUP ROUTINE. COMPRTN 698 * COMPRTN 699 * CONST MAXLINELEN = 120; COMPRTN 700 * TYPE LINEBUFFER = ARRAY[1..MAXLINELEN] OF CHAR; COMPRTN 701 * PROCEDURE NEXTCHSETUP( VAR LINE : LINEBUFFER; COMPRTN 702 * VAR CH: CHAR; VAR CHCNT,SOURCELENGTH: INTEGER); EXTERN; COMPRTN 703 * COMPRTN 704 * ENTRY (B1) = 1. COMPRTN 705 * (X0) = ADDRESS OF LINE. COMPRTN 706 * (X1) = ADDRESS OF CH. COMPRTN 707 * (X2) = ADDRESS OF CHCNT. COMPRTN 708 * (X3) = ADDRESS OF SOURCELENGTH. COMPRTN 709 * COMPRTN 710 * EXIT CODE IN NEXTCH MODIFIED WITH REQUIRED ADDRESSES. COMPRTN 711 * COMPRTN 712 * USES X - 0, 2, 3, 4, 5, 6, 7. COMPRTN 713 * A - 4, 5, 6, 7. COMPRTN 714 COMPRTN 715 COMPRTN 716 NCS ROUTINE NEXTCHS ENTRY/EXIT COMPRTN 717 SA4 NCHA COMPRTN 718 LX3 30 COMPRTN 719 BX2 X2+X3 MERGE ADDRESSES COMPRTN 720 LX0 30 COMPRTN 721 BX6 X4+X2 COMPRTN 722 SA6 A4+ COMPRTN 723 SA5 NCH1 COMPRTN 724 SA6 NCHB COMPRTN 725 BX7 X5+X0 MERGE ADDRESS COMPRTN 726 SA4 NCHC COMPRTN 727 SA7 A5 COMPRTN 728 BX6 X1+X4 MERGE ADDRESS COMPRTN 729 SA6 A4 COMPRTN 730 EQ NCSX RETURN COMPRTN 731 PORTION SPACE 4,15 COMPRTN 732 ** PORTION - EXTRACT PORTION OF WORD. COMPRTN 733 * COMPRTN 734 * TYPE BITRANGE = 0..59; (* BIT 59 IS MOST SIGNIFICANT BIT *) COMPRTN 735 * FUNCTION PORTION(WORD : INTEGER; SB,EB : BITRANGE) : INTEGER; COMPRTN 736 * COMPRTN 737 * ENTRY (B1) = 1. COMPRTN 738 * (X0) = WORD CONTAINING FIELD TO BE EXTRACTED. COMPRTN 739 * (X1) = STARTING BIT POSITION. COMPRTN 740 * (X2) = ENDING BIT POSITION. COMPRTN 741 * COMPRTN 742 * EXIT (X6) = RIGHT JUSTIFIED FIELD FROM SB TO EB INCLUSIVELY. COMPRTN 743 * COMPRTN 744 * USES X - 0, 3, 6. COMPRTN 745 * B - 2, 3. COMPRTN 746 COMPRTN 747 COMPRTN 748 PRT ROUTINE PORTION ENTRY/EXIT COMPRTN 749 IX3 X1-X2 FIELD WIDTH - 1 COMPRTN 750 MX6 1 COMPRTN 751 SB2 X3 COMPRTN 752 SB3 X3+B1 FIELD WIDTH COMPRTN 753 AX6 B2 MASK COMPRTN 754 SB2 X2 LOW ORDER BIT POSITION COMPRTN 755 LX6 B3 POSITION MASK COMPRTN 756 AX0 B2 POSITION WORD COMPRTN 757 BX6 X6*X0 EXTRACT FIELD COMPRTN 758 EQ PRTX RETURN COMPRTN 759 RLIBNAM SPACE 4,15 COMPRTN 760 ** RLIBNAM - RETURN RELOCATABLE LIBRARY FILE NAME. COMPRTN 761 * COMPRTN 762 * PROCEDURE RLIBNAM(VAR FN : ALFA); COMPRTN 763 * COMPRTN 764 * ENTRY (B1) = 1. COMPRTN 765 * (X0) = ADDRESS OF ALFA VARIABLE. COMPRTN 766 * COMPRTN 767 * EXIT ((X0)) = FILE NAME, LEFT JUSTIFIED, ZERO FILLED. COMPRTN 768 * COMPRTN 769 * USES X - 1, 6. COMPRTN 770 * A - 1, 6. COMPRTN 771 COMPRTN 772 COMPRTN 773 RLN ROUTINE RLIBNAM ENTRY/EXIT COMPRTN 774 SA1 =0L"RLFN" COMPRTN 775 BX6 X1 COMPRTN 776 SA6 X0 COMPRTN 777 EQ RLNX RETURN COMPRTN 778 ROTATE SPACE 4,15 COMPRTN 779 ** ROTATE - ROTATE WORD. COMPRTN 780 * COMPRTN 781 * TYPE BR = -59..59; COMPRTN 782 * FUNCTION ROTATE(WORD : INTEGER; COUNT : BR) : INTEGER; COMPRTN 783 * COMPRTN 784 * ENTRY (B1) = 1. COMPRTN 785 * (X0) = WORD TO BE ROTATED. COMPRTN 786 * (X1) = SHIFT COUNT. COMPRTN 787 * COMPRTN 788 * EXIT (X6) = WORD SHIFTED CIRCULARLY BY COUNT. COMPRTN 789 * COMPRTN 790 * USES X - 1, 6. COMPRTN 791 * B - 2. COMPRTN 792 COMPRTN 793 COMPRTN 794 ROT ROUTINE ROTATE ENTRY/EXIT COMPRTN 795 PL X1,ROT1 IF POSITIVE ROTATION COMPRTN 796 SX1 X1+60 COMPRTN 797 ROT1 SB2 X1 SET SHIFT COUNT COMPRTN 798 LX6 B2,X0 ROTATE WORD COMPRTN 799 EQ ROTX RETURN COMPRTN 800 UNPACKC SPACE 4,15 V41DC05 157 ** UNPACKC - UNPACK CONTROL STATEMENT. V41DC05 158 * V41DC05 159 * TYPE BUFFER = ARRAY [1 .. 80] OF CHAR; V41DC05 160 * PROCEDURE UNPACKC(VAR CS : BUFFER); V41DC05 161 * V41DC05 162 * V41DC05 163 * ENTRY (X0) = ADDRESS OF UNPACKED STRING BUFFER. V41DC05 164 * (B1) = 1. V41DC05 165 * V41DC05 166 * EXIT CONTROL STATEMENT AT (CCDR) UNPACKED TO (X0). V41DC05 167 * V41DC05 168 * USES X - 1, 2, 4, 6. V41DC05 169 * A - 1, 6. V41DC05 170 * B - 2, 3, 7. V41DC05 171 V41DC05 172 V41DC05 173 UPC ROUTINE UNPACKC ENTRY/EXIT V41DC05 174 SB2 CCDR ADDRESS OF CONTROL STATEMENT IMAGE V41DC05 175 SB7 X0 ADDRESS OF DESTINATION V41DC05 176 MX2 -DCCHARSZ V41DC05 177 SB3 B2+80/DCALFALN LWA+1 OF CONTROL STATEMENT IMAGE V41DC05 178 UPC1 SA1 B2 LOAD NEXT WORD V41DC05 179 MX4 DCALFALN CHARS TO UNPACK THIS WORD V41DC05 180 UPC2 LX1 DCCHARSZ V41DC05 181 BX6 -X2*X1 EXTRACT NEXT CHAR V41DC05 182 SA6 B7 V41DC05 183 SB7 B7+B1 V41DC05 184 LX4 1 DECREMENT CHAR COUNT V41DC05 185 NG X4,UPC2 IF MORE CHARS LEFT V41DC05 186 SB2 B2+B1 V41DC05 187 NE B2,B3,UPC1 IF MORE WORDS LEFT V41DC05 188 EQ UPCX RETURN V41DC05 189 COMPRTN SPACE 4 V41DC05 190 END COMPRTN 836