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