| 1 | /LAB8E ADVANCED AVERAGER MS-SIGNAL AVERAGER SECTION 1,\r |
| 2 | /PARAMETER SETUP AND TRIGGER.\r |
| 3 | /\r |
| 4 | /DEC-8E-AAA1A-A-LA\r |
| 5 | /\r |
| 6 | /COPYRIGHT 1972\r |
| 7 | /DIGITAL EQUIPMENT CORPORATION\r |
| 8 | /MAYNARD, MASSACHUSETTS 01754\r |
| 9 | /\r |
| 10 | \f/AD1.5\r |
| 11 | /THE ADVANCED AVERAGER MS FOR OS-8 WILL AVERAGE DATA\r |
| 12 | /TAKEN FROM THE A/D , DISPLAY IT, AND WRITE IT TO\r |
| 13 | /MASS STORAGE IF DESIRED.\r |
| 14 | /SECTION I OF THE LAB8/E ADVANCED AVERAGER .\r |
| 15 | /FOR DSK/DTA SYSTEMS.\r |
| 16 | /ADVANCED AVG. TO RUN UNDER PS8.\r |
| 17 | \r |
| 18 | *7557\r |
| 19 | OVRLAY, IOF\r |
| 20 | CLA CLL CMA\r |
| 21 | CLZE /DISABLE CLOCK\r |
| 22 | CLA\r |
| 23 | ADCL /AD\r |
| 24 | DILC /DISPLAY\r |
| 25 | DBDI /I/O\r |
| 26 | CDF 0 /CHAIN IN SEC.2\r |
| 27 | DCA I KC7746 /0 PS8 JOB STATUS WORD.\r |
| 28 | CIF 10\r |
| 29 | JMS I CHAIN\r |
| 30 | 6\r |
| 31 | XX0V1, 0\r |
| 32 | CHAIN, 7700\r |
| 33 | KC7746, 7746\r |
| 34 | \r |
| 35 | MONITR=7600\r |
| 36 | CLZE=6130\r |
| 37 | ADCL=6530\r |
| 38 | DILC=6050\r |
| 39 | DBEI=6501\r |
| 40 | \r |
| 41 | \r |
| 42 | \f\r |
| 43 | /MEMORY BOUNDS FOR FIELD 0\r |
| 44 | LOCORE=230 /LISTS, BUFERS, DATA BLOCKS START HERE\r |
| 45 | HICORE=6300 /PROTECTED AREA BEGINS HERE\r |
| 46 | NXLOAD=7000 /NEXT SECTION LOADING BEGINS HERE\r |
| 47 | \r |
| 48 | /AVERAGING PARAMETERS: LOCATIONS 20-64\r |
| 49 | MEMTOT=20 /FIELDS IN THIS MACHINE\r |
| 50 | FIELD0=21 /ROOM FOR DATA IN FIELD 0\r |
| 51 | \r |
| 52 | /DIGITAL I/O OPTION, CONTINGENCY AND # OF SYNC INPUTS\r |
| 53 | XROPT=22 /0 IF I/O NOT IMPLEMENTED, 1 IF IT IS\r |
| 54 | \r |
| 55 | /LIST ADDRESSES\r |
| 56 | ADJLIS=23 /START OF JOB LIST-1\r |
| 57 | ADCHNL=24 /START OF CHANNNEL DISPLAY LIST-1\r |
| 58 | \r |
| 59 | /JOINT SWEEP PARAMETERS - 29 LOCATIONS\r |
| 60 | SMASK=25 /STIMULUS (SYNC) CHANNEL MASK\r |
| 61 | NSWEP=26 /-# OF SWEEPS IN AVERAGE\r |
| 62 | KSYTIM=27 /-(# OF ASI FROM STIM TO SYNC POINT -1)\r |
| 63 | KITIM=31 /-(# OF ASI FROM S0 TO S0)\r |
| 64 | KCTIM=33 /-(# OF ASI FROM STIM TO CONTINGENCY READING)\r |
| 65 | KWTIM=35 /(-# OF ASI FROM LAST STIM TO A/B OPENING)\r |
| 66 | ASI=37 /# OF USEC PER ASI\r |
| 67 | S0=41 /TEMPORARY TIMER\r |
| 68 | K0017=42\r |
| 69 | KMODE=43 /CONTAINS CLOCK RATE AND MODE\r |
| 70 | /SWEEP A LIST PARAMETERS\r |
| 71 | SAMA=44 /-# OF POINTS (ASI) IN SWEEP A (EACH CHANNEL)\r |
| 72 | NCHA=45 /# OF CHAN IN SWEEP A\r |
| 73 | ADPNTA=46 /LOGICAL 1 OF ADC BUFFER A-1 (GEN BY ON-LINE)\r |
| 74 | ADBUFA=47 /LOCATION -1 FOR START OF ADC BUFFER -A\r |
| 75 | LNBUFA=50 /PHYSICAL LENGTH OF BUFFER -A\r |
| 76 | \r |
| 77 | EJECT\r |
| 78 | \r |
| 79 | /SWEEP B LIST PARAMETERS\r |
| 80 | SAMB=51 /-# 0F POINTS (BSI) IN SWEEP B\r |
| 81 | NCHB=52 /# 0F CHAN IN SWEEP B\r |
| 82 | ADPNTB=53 /LOGICAL 1 OF ADC BUFFER-B - 1\r |
| 83 | ADBUFB=54 /LOCATION-1 FOR START OF BUFFER\r |
| 84 | LNBUFB=55 /PHYSICAL LENGTH OF BUFFER-B\r |
| 85 | \r |
| 86 | /SWEEP A - ON-LINE PARAMETERS\r |
| 87 | ADMPXA=56 /ADDRESS OF A SWEEP MPLX LIST -1\r |
| 88 | ADEL=57 /ADJUSTMENT AT SYNC POINT TO FIND LOGICAL 1 OF BUFFER-A\r |
| 89 | KBLA=60 /-# OF ASI FROM SYNC POINT TO LOGICAL END OF A-1\r |
| 90 | \r |
| 91 | /SWEEP B - ON LINE PARAMTERS\r |
| 92 | KBTOA=61 /-# OF A'S TO B, 0 FOR NO B\r |
| 93 | ADMPXB=62 /ADDRESS OF B MPLX LIST - 0\r |
| 94 | BDEL=63 /ADJUSTMENT AT SYNC POINT TO FIND LOGICAL 1 OF BUFFER-B\r |
| 95 | KBLB=64 /-# OF BSI FROM SYNC POINT TO LOGICAL END OF B - 1\r |
| 96 | \r |
| 97 | /INTERRUPT REFERENCES\r |
| 98 | INTERX=65 /LINK TO INTERRUPT SERVICE\r |
| 99 | ASAVE=66 /AC AT INTERRUPT\r |
| 100 | LSAVE=67 /LINK AT INTERRUPT\r |
| 101 | \r |
| 102 | /LINKAGES TO SUBROUTINES IN CORE FOR THIS SECTION\r |
| 103 | /MISC. SUBROUTINES\r |
| 104 | FRAME=JMS I 76 /Q & A WITH SCOPE\r |
| 105 | OCTARG=JMS I 77 /PICK UP OCTAL TYPEIN\r |
| 106 | DFIX=JMS I 100 /DOUBLE PRECISION FIX\r |
| 107 | \r |
| 108 | /NUMERICAL I/O [SU56A]\r |
| 109 | DECARG=JMS I 101 /PICK UP DECIMAL TYPEIN\r |
| 110 | FLTARG=JMS I 102 /PICK UP FLOATING TYPEIN\r |
| 111 | FLTOUT=JMS I 103 /FLOATING AC TO TYPE BUFFER (FLOATING FORMAT)\r |
| 112 | OCTOUT=JMS I 104 /AC TO TYPE BUFFER (OCTAL FORMAT)\r |
| 113 | \f/FLOATING POINT ARITHMETIC [SU64A]\r |
| 114 | FADD=JMS I 105 /FLOATING ADD\r |
| 115 | FDIV=JMS I 106 /FLOATING DIVIDE\r |
| 116 | FLOAT=JMS I 107 /FLOAT AC TO FAC\r |
| 117 | FMUL=JMS I 110 /FLOATING MULTIPLY\r |
| 118 | FIX=JMS I 111 /FIX FAC TO AC\r |
| 119 | \r |
| 120 | /BASIC SUBROUTINES [SU63A]\r |
| 121 | BRAN=JMS I 132 /BRANCH ACCORDING TO AC MATCH WITH LIST\r |
| 122 | SHFT=JMS I 133 /DOUBLE PRECISION ARITHMETIC SHIFT\r |
| 123 | DADD=JMS I 134 /DOUBLE PRECISION ADD\r |
| 124 | \r |
| 125 | /HALFWORD SUBROUTINES [SU60A]\r |
| 126 | SETH=JMS I 135 /SET HALFWORD POINTER\r |
| 127 | TYPE=JMS I 136 /TYPE 6BIT IN AC\r |
| 128 | LDH=JMS I 137 /LOAD HALFWORD INTO AC\r |
| 129 | SRCH=JMS I 140 /SEARCH FOR HALFWORD THAT MATCHES AC6-11\r |
| 130 | ALPHA=JMS I 141 /GET FIRST CHARACTER OF A TYPE-IN\r |
| 131 | \r |
| 132 | /FLOATING POINT HANDLERS [SU64A]\r |
| 133 | SAVE=JMS I 142 /SAVE FAC\r |
| 134 | LOAD=JMS I 143 /LOAD FAC\r |
| 135 | DCOM=JMS I 144 /DOUBLE PRECISION NEGATE\r |
| 136 | NORM=JMS I 145 /NORMALIZE FAC\r |
| 137 | \r |
| 138 | /PAGE ZERO CONSTANTS\r |
| 139 | K0004=112\r |
| 140 | K0003=113\r |
| 141 | K0002=114\r |
| 142 | KM0001=115\r |
| 143 | \r |
| 144 | K0007=116\r |
| 145 | KM0027=117\r |
| 146 | K0377=120\r |
| 147 | KM0004=121\r |
| 148 | \r |
| 149 | /TTY-LIST\r |
| 150 | TTYLST=122\r |
| 151 | PROMRK=123\r |
| 152 | TXMRK=125\r |
| 153 | KCR=126\r |
| 154 | KM0043=127\r |
| 155 | \r |
| 156 | /OCSORT\r |
| 157 | OCSORT=130\r |
| 158 | K0040=130\r |
| 159 | MTXMRK=131\r |
| 160 | \f/TEMPORARY STORAGE REGISTERS 146-177\r |
| 161 | TEMP01=146\r |
| 162 | TEMP02=147\r |
| 163 | TEMP03=150\r |
| 164 | TEMP04=151\r |
| 165 | TEMP05=152\r |
| 166 | TEMP06=153\r |
| 167 | TEMP07=154\r |
| 168 | TEMP10=155\r |
| 169 | \r |
| 170 | TEMP11=156\r |
| 171 | TEMP12=157\r |
| 172 | TEMP13=160\r |
| 173 | TEMP14=161\r |
| 174 | TEMP15=162\r |
| 175 | TEMP16=163\r |
| 176 | TEMP17=164\r |
| 177 | TEMP20=165\r |
| 178 | TEMP21=166\r |
| 179 | \r |
| 180 | /TEMPORARY STORAGE AND MULTIPLE ACCUMULATORS\r |
| 181 | ARITH0=167\r |
| 182 | TEMP22=167\r |
| 183 | \r |
| 184 | ARITH1=170\r |
| 185 | TEMP23=170\r |
| 186 | \r |
| 187 | ARITH2=171\r |
| 188 | TEMP24=171\r |
| 189 | \r |
| 190 | ARITH3=172\r |
| 191 | TEMP25=172\r |
| 192 | \r |
| 193 | ARITH4=173\r |
| 194 | TEMP26=173\r |
| 195 | \r |
| 196 | \r |
| 197 | ARITH5=174\r |
| 198 | TEMP27=174\r |
| 199 | \r |
| 200 | /TEMPORARY STORAGE AND TTY-KBD BUFFERS\r |
| 201 | KBDBUF=175\r |
| 202 | TEMP30=175\r |
| 203 | \r |
| 204 | TTYBUF=176\r |
| 205 | TEMP31=176\r |
| 206 | \r |
| 207 | TTYFLG=177\r |
| 208 | TEMP32=177\r |
| 209 | /FLOATING VARIABLES\r |
| 210 | FLOT01=5772\r |
| 211 | FLOT02=5775\r |
| 212 | FLOT03=5347\r |
| 213 | FLOT04=5352\r |
| 214 | FLOT05=5355\r |
| 215 | FLOT06=5360\r |
| 216 | FLOT07=5363\r |
| 217 | FLOT10=5366\r |
| 218 | \f/IOT REFERENCES FOR THE LAB/8E\r |
| 219 | /\r |
| 220 | /\r |
| 221 | /AD8-EA 10 BIT A/D CONVERTER\r |
| 222 | /\r |
| 223 | ADCL=6530 /CLEAR ALL\r |
| 224 | ADLM=6531 /LOAD MPLXR\r |
| 225 | ADST=6532 /START CONVERSION\r |
| 226 | ADRB=6533 /READ AD BUFFER\r |
| 227 | ADSK=6534 /SKIP ON AD DONE\r |
| 228 | ADSE=6535 /SKIP ON TIMING ERROR\r |
| 229 | ADLE=6536 /LOAD ENABLE REGISTER\r |
| 230 | ADRS=6537 /READ STATUS REGISTER\r |
| 231 | /\r |
| 232 | /VC8-E POINT PLOT DISPLAY\r |
| 233 | /\r |
| 234 | DILC=6050 /CLEAR ALL\r |
| 235 | DICD=6051 /CLEAR DONE FLAG\r |
| 236 | DISD=6052 /SKIP ON DONE FLAG\r |
| 237 | DILX=6053 /CLEAR DONE FLAG LOAD X\r |
| 238 | DILY=6054 /CLEAR DONE FLAG LOAD Y\r |
| 239 | DIXY=6055 /CLEAR DONE, INTENSIFY, SET DONE\r |
| 240 | DILE=6056 /LOAD ENABLE CLEAR AC\r |
| 241 | DIRE=6057 /ENABLE TO AC\r |
| 242 | /\r |
| 243 | /DK8-EP REAL TIME CLOCK\r |
| 244 | /\r |
| 245 | CLZE=6130 /ZERO TO ENABLE\r |
| 246 | CLSK=6131 /SKP ON CLOCK FG\r |
| 247 | CLOE=6132 /ONES TO ENABLE\r |
| 248 | CLAB=6133 /AC TO CLK BUF AND COUNTER REGISTER\r |
| 249 | CLEN=6134 /ENABLE TO AC\r |
| 250 | CLSA=6135 /STATUS TO AC AND AC ONE'S CLEAR STATUS REG.\r |
| 251 | CLBA=6136 /CLK BUF TO AC\r |
| 252 | CLCA=6137 /CLK CNTR TO AC AND TO AC\r |
| 253 | /\r |
| 254 | /DB8-EA 12 CHANNEL DIGITAL I/O\r |
| 255 | /\r |
| 256 | DBDI=6500 /DISABLE INTERRUPT\r |
| 257 | DBEI=6501 /ENABLE INTERRUPT\r |
| 258 | DBSK=6502 /SKIP ON INPUT\r |
| 259 | DBCI=6503 /CLEAR INPUT BITS WITH SET AC BIT\r |
| 260 | DBRI=6504 /READ INPUT\r |
| 261 | DBCO=6505 /CLEAR OUTPUT BITS WITH AC BITS\r |
| 262 | DBSO=6506 /SET OUTPUT BITS WITH AC BITS\r |
| 263 | DBRO=6507 /READ OUTPUT REGISTER\r |
| 264 | \r |
| 265 | /COMBINED OPERATES\r |
| 266 | MTH=CLA CMA CLL RTL; MTW=CLA CMA CLL RAL\r |
| 267 | TWO=CLA CLL CML RTL; TWOK=CLA CLL CML RTR\r |
| 268 | \r |
| 269 | /EXTENDED MEMORY\r |
| 270 | CDF=6201; RDF=6214; RMF=6244\r |
| 271 | \r |
| 272 | \f/PAGE ZERO FOR ADVANCED AVERAGER [U10ZC]\r |
| 273 | *1\r |
| 274 | DCA ASAVE /INTERRUPT SERVICE DISPATCH\r |
| 275 | RAR\r |
| 276 | DCA LSAVE\r |
| 277 | JMP I INTERX\r |
| 278 | PG0OV, 0\r |
| 279 | 0\r |
| 280 | 0\r |
| 281 | /INSTALLATION PARAMETERS: LOCATIONS 20-64\r |
| 282 | / 0 /FIELDS IN THIS MACHINE: MEMTOT\r |
| 283 | / HICORE-LOCORE-4 /ROOM FOR DATA IN FIELD 0: FIELD0\r |
| 284 | /XR-OPTION, CONTINGENCY AND # OF SYNC INPUTS\r |
| 285 | / 0 /0 IF XR NOT IMPLEMENTED, 1 IF IT IS: XROPT\r |
| 286 | /LIST ADDRESSES\r |
| 287 | / LOCORE-1 /START OF LISTS. BUFFERS, DATA: ADJLIS\r |
| 288 | / 0 /START OF CHANNEL DISPLAY WORDS: ADCHNL\r |
| 289 | /JOINT SWEEP PARAMETERS - 29 LOCATIONS\r |
| 290 | / 0 /STIMULUS (SYNC) CHANNEL MASK: SMASK\r |
| 291 | / 0 /-# OF SWEEPS IN AVERAGE: NSWEP\r |
| 292 | / 0 /-(# OF ASI FROM STIM TO SYNC POINT -1): KSYTIM\r |
| 293 | / 0 /(DBL PRECISION)\r |
| 294 | / 0 /-(# OF ASI FROM S0 TO S0): KITIM\r |
| 295 | / 0 /(DBL)\r |
| 296 | / 0 /-(# OF ASI FROM STIM TO CONTINGENCY READING): KCTIM\r |
| 297 | / 0 /(DBL)\r |
| 298 | / 0 /-(#OF ASI FROM LAST STIM TO A/B OPENING): KWTIM\r |
| 299 | / 0 /(DBL)\r |
| 300 | / 0 /# OF USEC PER ASI: ASI\r |
| 301 | / 0 /(DBL)\r |
| 302 | / 0 /S0\r |
| 303 | EJECT\r |
| 304 | \r |
| 305 | *41\r |
| 306 | K1001A, 7001\r |
| 307 | K0017, 17\r |
| 308 | / 0 /K0017\r |
| 309 | / 0 /KMODE\r |
| 310 | /SWEEP A LIST PARAMETERS\r |
| 311 | / 0 /-#OF POINTS (ASI) IN SWEEP A (EACH CHANNEL): SAMA\r |
| 312 | / 0 /# OF CHAN IN SWEEP A: NCHA\r |
| 313 | / 0 /LOGICAL 1 OF ADC BUFFERA - 1 (GEN BY ON-LINE): ADPNTA\r |
| 314 | / 0 /LOCATION -1 FOR START OF A: ADBUFA\r |
| 315 | / 0 /PHYSICAL LENGTH OF BUFFER A: LNBUFA\r |
| 316 | /SWEEP B LIST PARAMETERS\r |
| 317 | / 0 /-# OF POINTS (BSI) IN SWEEP B (EACH CHANNEL): SAMB\r |
| 318 | / 0 /# OF CHAN IN SWEEP B: NCHB\r |
| 319 | / 0 /LOGICAL 1 OF ADC-BUFFER-B-1 (GEN BV ONLINE): ADPNTB\r |
| 320 | / 0 /LOCATION -1 FOR START OF ADC BUFFER B\r |
| 321 | /SWEEP A - ON-LINE PARAMETERS\r |
| 322 | / 0 /ADDRESS OF A SWEEP MPLX LIST -1\r |
| 323 | / 0 /-# OF LOCATIONS FROM SYNC POINT TO LOGICAL 1 OF A\r |
| 324 | / 0 /-# OF ASI FROM SYNC POINT TO LOGICAL END OF A -1\r |
| 325 | /SWEEP B - ON LINE PARAMETERS\r |
| 326 | / 0 /-# OF A'S TO B, 0 FOR NO B\r |
| 327 | / 0 /ADDRESS OF B-SWEEP MPLX LIST -0\r |
| 328 | / 0 /-# OF LOCATIONS FROM SYNC POINT TO LOGICAL END OF B -1\r |
| 329 | / 0 /-# OF ASI FROM SYNC POINT TO LOGICAL 1 OF\r |
| 330 | \f*70\r |
| 331 | /LINKAGES TO SECTION 2 SUBROUTINES\r |
| 332 | 7200 /PICKUP NEXT JOB FROM JOB LIST: JGET\r |
| 333 | \r |
| 334 | 7243 /MOVE THRU DATA BLOCK: BLKCNT\r |
| 335 | \r |
| 336 | 6474 /SET ADC POINTERS: SETPNT\r |
| 337 | \r |
| 338 | 6451 /MOVE THRU ADC BUFFERS: IXPNT\r |
| 339 | \r |
| 340 | 7121 /SET UP DISPLAY: SDIS\r |
| 341 | \r |
| 342 | DISPS /DISPLAY A POINT: DISP\r |
| 343 | \r |
| 344 | /LINKAGES TO ALPHABETIC HANDLERS\r |
| 345 | FRAMES /Q AND A WITH THE SCOPE: FRAMES\r |
| 346 | \r |
| 347 | OCTARS /PICK UP OCTAL TYPE-IN: OCTARG\r |
| 348 | \r |
| 349 | /LINKAGE TO DFIX\r |
| 350 | DFIXS /DOUBLE PRECISION FIX: DFIX\r |
| 351 | \r |
| 352 | /LINKAGES TO NUMERICAL IO\r |
| 353 | DECARS /PICK UP DECIMAL TYPE-IN: DECARG\r |
| 354 | \r |
| 355 | FLTARS /PICK UP FLOATING TYPE-IN: FLTARG\r |
| 356 | \r |
| 357 | FLTOUS /OUTPUT FAC TO TYPE BUFFER: FLTOUT\r |
| 358 | \r |
| 359 | OCTOUS /OUTPUT AC (OCTAL FORMAT) TO TYPE BUFFER: OCTOUT\r |
| 360 | /FLTSUB USED BY FLTIO - DON'T RELOCATE\r |
| 361 | FADDS /FLOATING ADD: FADD\r |
| 362 | \r |
| 363 | FDIVS /FLOATING DIVIDE: FDIV\r |
| 364 | \r |
| 365 | FLOATS /FLOAT AC TO FAC: FLOAT\r |
| 366 | \r |
| 367 | FMULS /FLOATING MULTIPLY: FMUL\r |
| 368 | \r |
| 369 | FIXS /FIX FAC TO AC: FIX\r |
| 370 | \r |
| 371 | /PAGE ZERO CONSTANTS - USED BY RESIDENT SUBROUTINES - DON'T RELOCATE\r |
| 372 | 0004 /K0004\r |
| 373 | 0003 /K0003\r |
| 374 | 0002 /K0002\r |
| 375 | -001 /KM0001\r |
| 376 | \r |
| 377 | +0007 /K0007\r |
| 378 | -0027 /KM0027\r |
| 379 | +0377 /K0377\r |
| 380 | -0004 /KM0004\r |
| 381 | \f/TTY-LIST\r |
| 382 | 0 /@-END OF LIST\r |
| 383 | 42 /"-PROGRAM OUTPUT MARKER: PROMRK\r |
| 384 | 44 /$-DISPLAY RESET\r |
| 385 | 47 /'-KEYBORAD INPUT MARKER: TXMRK\r |
| 386 | 45 /CR-CARRIAGE RETURN: KCR\r |
| 387 | -43 /LF-LINE FEED: KM0043\r |
| 388 | \r |
| 389 | /OCSORT\r |
| 390 | 40 /SPACE: K0040\r |
| 391 | -47 /': MTXMRK\r |
| 392 | \r |
| 393 | /LINKAGES TO BASIC SUBROUTINES\r |
| 394 | BRANS /BRANCH ACCORDING TO FOLLOWING LIST: BRAN\r |
| 395 | \r |
| 396 | SHFTS /DOUBLE PRECISION ARITHMETIC SHIFT: SHFT\r |
| 397 | \r |
| 398 | DADDS /DOUBLE PRECISION ADD: DADD\r |
| 399 | \r |
| 400 | /LINKAGES TO HALFWORD SUBROUTINES\r |
| 401 | SETHS /SET HALFWORD POINTER: SETH\r |
| 402 | \r |
| 403 | \r |
| 404 | TYPES /TYPE 6BIT IN AC: TYPE\r |
| 405 | \r |
| 406 | LDHS /GET NEXT HALFWORD TO AC: LDH\r |
| 407 | \r |
| 408 | SRCHS /SEARCH FOR HALFWORD WATCH OF AC6-11: SRCH\r |
| 409 | \r |
| 410 | ALPHAS /PICK UP ALPHABETIC TYPE-IN: ALPHA\r |
| 411 | \r |
| 412 | /LINKAGES TO FLTSUB SUBROUTINES\r |
| 413 | SAVES /SAVE FAC: SAVE\r |
| 414 | \r |
| 415 | LOADS /LOAD FAC: LOAD\r |
| 416 | \r |
| 417 | DCOMS /DOUBLE PRECISION NEGATE: DCOM\r |
| 418 | \r |
| 419 | NORMS /NORMALIZE FAC: NORM\r |
| 420 | \r |
| 421 | /TEMPORARY STORAGE REGISTERS FROM 146-177\r |
| 422 | *162\r |
| 423 | 0 /SET 0 TO CONVERT WRONG DECIMAL\r |
| 424 | /PLACE IN DISPLAY CON09B\r |
| 425 | \f\r |
| 426 | \r |
| 427 | *200\r |
| 428 | /SUBROUTINE FOR SECTION II TO DISPLAY POINT OF DATA: DISP\r |
| 429 | \r |
| 430 | DISPS, 0\r |
| 431 | TAD YSX /AC+(YS)=#PLACES TO SHIFT RIGHT\r |
| 432 | CMA IAC\r |
| 433 | SHFT /SCALE\r |
| 434 | TAD ARITH4 /MOVE X TO NEW VALUE\r |
| 435 | DILX /LOAD X\r |
| 436 | CLA /AND CLEAR\r |
| 437 | TAD YZX /BIAS\r |
| 438 | TAD ARITH2\r |
| 439 | DILY /LOAD Y\r |
| 440 | DISD /WAIT\r |
| 441 | JMP .-1\r |
| 442 | DIXY /DISPLAY\r |
| 443 | CLA /CLEAR\r |
| 444 | TAD DELX /LOAD INCREMENT FOR X\r |
| 445 | DCA ARITH1\r |
| 446 | TAD DELXY\r |
| 447 | DCA ARITH2 /ADD TO PRESENT X\r |
| 448 | DADD\r |
| 449 | JMP I DISPS\r |
| 450 | YSX, 0\r |
| 451 | YZX, 0\r |
| 452 | DELX, 0\r |
| 453 | DELXY, 0\r |
| 454 | \f\r |
| 455 | *400\r |
| 456 | /OVERLAY LOOKUP FOR CAINING.\r |
| 457 | /START AT START0 (400) FOR SECTION 1\r |
| 458 | /START AT START1 (403) TO RUN WITH CONTROL TAPES.\r |
| 459 | START0, CDF 0\r |
| 460 | JMS LINKLK /CALL CHAIN LOOKUP.\r |
| 461 | JMP START\r |
| 462 | START1, CDF 0\r |
| 463 | JMS LINKLK\r |
| 464 | CDF CIF 10\r |
| 465 | JMP I (CONTAP /READ IN CONTROL FILE.\r |
| 466 | \r |
| 467 | LINKLK, 0\r |
| 468 | CLL CLA\r |
| 469 | TAD (2001\r |
| 470 | DCA 7746 /SET PS-8 JOB STATUS WORD.\r |
| 471 | \r |
| 472 | TAD (PG0OV\r |
| 473 | DCA XXT3\r |
| 474 | TAD (NAMES\r |
| 475 | DCA XXT2\r |
| 476 | TAD (-3\r |
| 477 | DCA XXT1\r |
| 478 | \r |
| 479 | CDF 0\r |
| 480 | CIF 10\r |
| 481 | JMS I (7700 /LOCK IN USR.\r |
| 482 | 10\r |
| 483 | \r |
| 484 | CLA IAC /FIND BLOCK ADDRESS OF SECT. 2\r |
| 485 | CDF 0\r |
| 486 | CIF 10\r |
| 487 | JMS I (200\r |
| 488 | 2\r |
| 489 | ARGA, NAME1\r |
| 490 | 0\r |
| 491 | JMP ERRXX\r |
| 492 | \r |
| 493 | CLA CLL\r |
| 494 | TAD ARGA /STORE BLOCK ADD.IN CHAIN COMMAND\r |
| 495 | DCA XX0V1 /TO CALL SEC.2.\r |
| 496 | ARGBS, CLA IAC /FIND BLOCK ADD.OF SEC.3,4,\r |
| 497 | CDF 0 /AND WRITE OVERLAY.\r |
| 498 | CIF 10\r |
| 499 | JMS I (200\r |
| 500 | 2\r |
| 501 | ARGB, NAME2\r |
| 502 | 0\r |
| 503 | JMP ERRXX\r |
| 504 | \r |
| 505 | CLA CLL\r |
| 506 | TAD ARGB\r |
| 507 | DCA I XXT3 /STORE AT LOCS. 5,6,7.\r |
| 508 | TAD I XXT2\r |
| 509 | DCA ARGB\r |
| 510 | ISZ XXT2\r |
| 511 | ISZ XXT3\r |
| 512 | ISZ XXT1\r |
| 513 | JMP ARGBS\r |
| 514 | \r |
| 515 | CDF 0\r |
| 516 | CIF 10\r |
| 517 | JMS I (200 /UNLOCK USR.\r |
| 518 | 11\r |
| 519 | \r |
| 520 | CLA CLL\r |
| 521 | DCA 7746 /RESET JOB STATUS WORD.\r |
| 522 | JMP I LINKLK\r |
| 523 | \r |
| 524 | ERRXX, CDF 0\r |
| 525 | CIF 10\r |
| 526 | JMS I (200\r |
| 527 | 7\r |
| 528 | 1 /USER ERROR 1\r |
| 529 | HLT\r |
| 530 | XXT1, 0\r |
| 531 | XXT2, 0\r |
| 532 | XXT3, 0\r |
| 533 | NAME1, FILENAME AAVG2.SV\r |
| 534 | NAME2, FILENAME AAVG3.SV\r |
| 535 | NAME3, FILENAME AAVG4.SV\r |
| 536 | NAME4, FILENAME AAVG5.SV\r |
| 537 | NAMES, NAME3\r |
| 538 | NAME4\r |
| 539 | EJECT\r |
| 540 | *600\r |
| 541 | /LAB-8 ADVANCED AVERAGER - SECTION 1 - MAIN: U11MC\r |
| 542 | /ONCE ONLY CODE - INTIALIZATION\r |
| 543 | START, CLL CLA\r |
| 544 | DILC\r |
| 545 | ADCL\r |
| 546 | SETH /VERSION. CONFIGURATION MESSAGE\r |
| 547 | DIS99 /"(VAP,#DF-1, CORE LIMITS)"\r |
| 548 | DCA MEMTOT\r |
| 549 | \r |
| 550 | /FIND # OF FIELDS AVAILABLE\r |
| 551 | TAD KMK /CDF N = CDF 0\r |
| 552 | DCA MKTEST\r |
| 553 | MKLOOP, TAD MKTEST /CDF N+1\r |
| 554 | TAD KP10\r |
| 555 | DCA MKTEST\r |
| 556 | MKTEST, CDF /CHANGE TO N+1\r |
| 557 | RDF /IF 4K - THIS IS A NOP\r |
| 558 | DCA I TTYLST /PUTS DF# IN DF, 0000; FOR 4K, PUT 0 IN 0000 OF FIELD 0\r |
| 559 | TAD I TTYLST /GETS A 0 IF FIELD DOESN'T EXIST\r |
| 560 | TAD KMK /GETS A CDF N+1 IF FIELD DOES EXIST\r |
| 561 | CMA IAC\r |
| 562 | TAD MKTEST\r |
| 563 | ISZ MEMTOT /# OF FIELDS\r |
| 564 | SNA CLA /IF AC=0, FIELD N+1 EXISTS\r |
| 565 | JMP MKLOOP /LOOK AT NEXT FIELD\r |
| 566 | EJECT\r |
| 567 | \r |
| 568 | KMK, CDF 0 /NO MORE FIELDS\r |
| 569 | CLA CMA\r |
| 570 | TAD MEMTOT /# OF FIELDS -1\r |
| 571 | DCA MEMTOT\r |
| 572 | TAD MEMTOT /PUT #DF-1 IN CONFIGURATION MESSAGE\r |
| 573 | OCTOUT\r |
| 574 | TAD KJLIST /START OF JOB LIST -1\r |
| 575 | DCA ADJLIST\r |
| 576 | TAD KFIELD /LENGTH OF AVAILABLE FIELD 0\r |
| 577 | DCA FIELD0\r |
| 578 | IAC /OUTPUT LOW CORE LIMIT\r |
| 579 | TAD ADJLIS\r |
| 580 | OCTOUT\r |
| 581 | TAD ADJLIS /OUTPUT HIGH CORE LIMIT\r |
| 582 | TAD FIELD0 /START OF FIELD0 + LENGTH OF FIELD 0\r |
| 583 | TAD K0004 /+4 FOR END OF LIST MARKERS\r |
| 584 | OCTOUT\r |
| 585 | PRES00, FRAME /"LAB-8 IS READY\r |
| 586 | DIS00 /HIT RETURN TO PROCEED"\r |
| 587 | JMP PRES00\r |
| 588 | \r |
| 589 | \f\r |
| 590 | PRES01, FRAME /DIGITAL I/O?'-'[Y OR N]\r |
| 591 | DIS00B /(Y FOR YES, N FOR NO)"\r |
| 592 | JMP PRES00 /LINE FEED - ASK PREVIOUS QUESTION\r |
| 593 | ALPHA /C.R. - GET ANSWER\r |
| 594 | BRAN /BRANCH ON Y\r |
| 595 | YESNO\r |
| 596 | IAC /AC=1 IF Y\r |
| 597 | NOP /AC=0 IF N\r |
| 598 | DCA XROPT /AC=0 OTHERWISE, XROPT=1 IF YES, 0 FOR NO\r |
| 599 | JMP I .+1\r |
| 600 | CON01\r |
| 601 | \r |
| 602 | /LOCAL CONSTANTS\r |
| 603 | KP10, 0010\r |
| 604 | KJLIST, LOCORE-1\r |
| 605 | KFIELD, HICORE-LOCORE-4\r |
| 606 | \f/DISPLAYS FOR ONCE ONLY CODE\r |
| 607 | DIS00, 1401 /"LAB8/E IS READY\r |
| 608 | 0270 /HIT RETURN TO PROCEED''"\r |
| 609 | 5705\r |
| 610 | 4011\r |
| 611 | 2340\r |
| 612 | 2205\r |
| 613 | 0104\r |
| 614 | 3140\r |
| 615 | 4045\r |
| 616 | 1011\r |
| 617 | 2440\r |
| 618 | 2205\r |
| 619 | 2425\r |
| 620 | 2216\r |
| 621 | 4024\r |
| 622 | 1740\r |
| 623 | 2022\r |
| 624 | 1703\r |
| 625 | 0505\r |
| 626 | 0447\r |
| 627 | 4700\r |
| 628 | \r |
| 629 | DIS00B, 0411 /"DIGITAL I/O? -\r |
| 630 | 0711 /<Y FOR YES, N FOR NO>"\r |
| 631 | 2401\r |
| 632 | 1440\r |
| 633 | 1157\r |
| 634 | 1777\r |
| 635 | 4047\r |
| 636 | 5547\r |
| 637 | 4045\r |
| 638 | 7431\r |
| 639 | 4006\r |
| 640 | 1722\r |
| 641 | 4031\r |
| 642 | 0523\r |
| 643 | 5440\r |
| 644 | 1640\r |
| 645 | 0617\r |
| 646 | 2240\r |
| 647 | 1617\r |
| 648 | 7600\r |
| 649 | \f/DISPLAYS AND TEXTS FOR COMPILER [LB-U11*-PB]\r |
| 650 | CON00, /END OF ONCE ONLY AREA\r |
| 651 | DIS02, 2324 /"STANDARD RESOLUTION:\r |
| 652 | 0116 /"'----' DATA POINTS\r |
| 653 | 0401\r |
| 654 | 2204\r |
| 655 | 4022\r |
| 656 | 0523\r |
| 657 | 1714\r |
| 658 | 2524\r |
| 659 | 1117\r |
| 660 | 1672\r |
| 661 | 4547\r |
| 662 | 5555\r |
| 663 | 5555\r |
| 664 | 4740\r |
| 665 | 0401\r |
| 666 | 2401\r |
| 667 | 4020\r |
| 668 | 1711\r |
| 669 | 1624\r |
| 670 | 2300\r |
| 671 | \fDIS03, 1405 /"LENGTH: '-----' '-'SEC"\r |
| 672 | 1607\r |
| 673 | 2410\r |
| 674 | 7240\r |
| 675 | 4755\r |
| 676 | 5555\r |
| 677 | 5555\r |
| 678 | 4740\r |
| 679 | 4755\r |
| 680 | 4723\r |
| 681 | 0503\r |
| 682 | 0000\r |
| 683 | \r |
| 684 | DIS04, 0405 /"DELAY: '-----' '-'SEC"\r |
| 685 | 1401\r |
| 686 | 3172\r |
| 687 | 4047\r |
| 688 | 5555\r |
| 689 | 5555\r |
| 690 | 5547\r |
| 691 | 4047\r |
| 692 | 5547\r |
| 693 | 2305\r |
| 694 | 0300\r |
| 695 | \r |
| 696 | DIS05, 1011 /"HIGH RESOLUTION EPOCH\r |
| 697 | 0710 /'----' DATA POINTS"\r |
| 698 | 4022\r |
| 699 | 0523\r |
| 700 | 1714\r |
| 701 | 2524\r |
| 702 | 1117\r |
| 703 | 1640\r |
| 704 | 0520\r |
| 705 | 1703\r |
| 706 | 1045\r |
| 707 | 4347\r |
| 708 | 5555\r |
| 709 | 5555\r |
| 710 | 4740\r |
| 711 | 0401\r |
| 712 | 2401\r |
| 713 | 4020\r |
| 714 | 1711\r |
| 715 | 1624\r |
| 716 | 2300\r |
| 717 | \fDIS06, 1011 /"HI LENGTH: '-----' '-'SEC"\r |
| 718 | 4014\r |
| 719 | 0516\r |
| 720 | 0724\r |
| 721 | 1072\r |
| 722 | 4047\r |
| 723 | 5555\r |
| 724 | 5555\r |
| 725 | 5547\r |
| 726 | 4047\r |
| 727 | 5547\r |
| 728 | 2305\r |
| 729 | 0300\r |
| 730 | \r |
| 731 | DIS07, 1011 /"HI DELAY: '-----' '-'SEC"\r |
| 732 | 4004\r |
| 733 | 0514\r |
| 734 | 0131\r |
| 735 | 7240\r |
| 736 | 4755\r |
| 737 | 5555\r |
| 738 | 5555\r |
| 739 | 4740\r |
| 740 | 4755\r |
| 741 | 4723\r |
| 742 | 0503\r |
| 743 | 0000\r |
| 744 | \r |
| 745 | DIS01, 4523 /"\r |
| 746 | 3116 /SYNC ON INPUT: S'-'\r |
| 747 | 0340 /"\r |
| 748 | 1716\r |
| 749 | 4011\r |
| 750 | 1620\r |
| 751 | 2524\r |
| 752 | 7240\r |
| 753 | 2347\r |
| 754 | 5547\r |
| 755 | 4500\r |
| 756 | \fDIS09, 4002 / "BEGINS-AT RATE-ENDS\r |
| 757 | 0507 /"XXXXXX""X""XXXXXX""X""XXXXXX""X"\r |
| 758 | 1116 /"XXXXXX""X""XXXXXX""X""XXXXXX""X"\r |
| 759 | 2355 /\r |
| 760 | 0124 /'-': CHANGE (H,L,&)"\r |
| 761 | 4022\r |
| 762 | 0124\r |
| 763 | 0555\r |
| 764 | 0516\r |
| 765 | 0423\r |
| 766 | 4542\r |
| 767 | 3030\r |
| 768 | 3030\r |
| 769 | 3030\r |
| 770 | 4242\r |
| 771 | 3042\r |
| 772 | 4230\r |
| 773 | 3030\r |
| 774 | 3030\r |
| 775 | 3042\r |
| 776 | 4230\r |
| 777 | 4242\r |
| 778 | 3030\r |
| 779 | 3030\r |
| 780 | 3030\r |
| 781 | 4242\r |
| 782 | 3042\r |
| 783 | 4542\r |
| 784 | 3030\r |
| 785 | 3030\r |
| 786 | 3030\r |
| 787 | 4242\r |
| 788 | 3042\r |
| 789 | 4230\r |
| 790 | 3030\r |
| 791 | 3030\r |
| 792 | 3042\r |
| 793 | 4230\r |
| 794 | 4242\r |
| 795 | 3030\r |
| 796 | 3030\r |
| 797 | 3030\r |
| 798 | 4242\r |
| 799 | 3042\r |
| 800 | 4545\r |
| 801 | 4755\r |
| 802 | 4772\r |
| 803 | 4003\r |
| 804 | 1001\r |
| 805 | 1607\r |
| 806 | 0540\r |
| 807 | 5010\r |
| 808 | 5414\r |
| 809 | 5446\r |
| 810 | 5100\r |
| 811 | \fDIS12, 2317 /"SORT AT '-----' '-'SEC"\r |
| 812 | 2224\r |
| 813 | 4001\r |
| 814 | 2440\r |
| 815 | 4755\r |
| 816 | 5555\r |
| 817 | 5555\r |
| 818 | 4740\r |
| 819 | 4755\r |
| 820 | 4723\r |
| 821 | 0503\r |
| 822 | 0000\r |
| 823 | \r |
| 824 | DIS15, 0126 /"AVG #"XX"\r |
| 825 | 0740\r |
| 826 | 3342 /ANALOG INPUT '--' "\r |
| 827 | 3030\r |
| 828 | 4245\r |
| 829 | 4501\r |
| 830 | 1601\r |
| 831 | 1417\r |
| 832 | 0740\r |
| 833 | 1116\r |
| 834 | 2025\r |
| 835 | 2440\r |
| 836 | 4755\r |
| 837 | 5547\r |
| 838 | 0000\r |
| 839 | \r |
| 840 | DIS16, 2205 /"RESOLUTION: '-' (H,L)"\r |
| 841 | 2317\r |
| 842 | 1425\r |
| 843 | 2411\r |
| 844 | 1716\r |
| 845 | 7240\r |
| 846 | 4755\r |
| 847 | 4740\r |
| 848 | 5010\r |
| 849 | 5414\r |
| 850 | 5100\r |
| 851 | \r |
| 852 | DIS17, 2317 /"SORT CODE: '---'"\r |
| 853 | 2224\r |
| 854 | 4003\r |
| 855 | 1704\r |
| 856 | 0572\r |
| 857 | 4047\r |
| 858 | 5555\r |
| 859 | 5547\r |
| 860 | 0000\r |
| 861 | \fDIS18, 0317 /"CONFIDENCE LIMITS?:'-'\r |
| 862 | 1606 /<Y:YES>"\r |
| 863 | 1104\r |
| 864 | 0516\r |
| 865 | 0305\r |
| 866 | 4014\r |
| 867 | 1115\r |
| 868 | 1124\r |
| 869 | 2377\r |
| 870 | 7240\r |
| 871 | 4755\r |
| 872 | 4745\r |
| 873 | 7431\r |
| 874 | 7240\r |
| 875 | 3105\r |
| 876 | 2376\r |
| 877 | 0000\r |
| 878 | \r |
| 879 | DIS19, 0317 /"COMPUTE TREND?: '-'\r |
| 880 | 1520 /<Y: YES>"\r |
| 881 | 2524\r |
| 882 | 0540\r |
| 883 | 2422\r |
| 884 | 0516\r |
| 885 | 0477\r |
| 886 | 7240\r |
| 887 | 4755\r |
| 888 | 4745\r |
| 889 | 7431\r |
| 890 | 7240\r |
| 891 | 3105\r |
| 892 | 2376\r |
| 893 | 0000\r |
| 894 | \fDIS24, 1405 /"LEAST SWEEP INTERVAL:\r |
| 895 | 0123 /'------' '-'S (>"XXXXX" "X"S)"\r |
| 896 | 2440\r |
| 897 | 2327\r |
| 898 | 0505\r |
| 899 | 2040\r |
| 900 | 1116\r |
| 901 | 2405\r |
| 902 | 2226\r |
| 903 | 0114\r |
| 904 | 7245\r |
| 905 | 4755\r |
| 906 | 5555\r |
| 907 | 5555\r |
| 908 | 4740\r |
| 909 | 4755\r |
| 910 | 4723\r |
| 911 | 4050\r |
| 912 | 7642\r |
| 913 | 3030\r |
| 914 | 3030\r |
| 915 | 3030\r |
| 916 | 4240\r |
| 917 | 4230\r |
| 918 | 4223\r |
| 919 | 5100\r |
| 920 | \r |
| 921 | DIS25, 0126 /"AVERAGE '....' SWEEPS"\r |
| 922 | 0522\r |
| 923 | 0107\r |
| 924 | 0540\r |
| 925 | 4755\r |
| 926 | 5555\r |
| 927 | 5547\r |
| 928 | 4023\r |
| 929 | 2705\r |
| 930 | 0520\r |
| 931 | 2300\r |
| 932 | \r |
| 933 | DIS27, 4416 /"$FA8/INPUTS$AP4/"\r |
| 934 | 0170\r |
| 935 | 1116\r |
| 936 | 2025\r |
| 937 | 2423\r |
| 938 | 4411\r |
| 939 | 2064\r |
| 940 | 0000\r |
| 941 | \fDIS27A, 4230 /"XX":"XX",X\r |
| 942 | 3042\r |
| 943 | 7242\r |
| 944 | 3030\r |
| 945 | 4254\r |
| 946 | 3000\r |
| 947 | \r |
| 948 | DIS30, 4415 /"$EA8/AVERAGES"\r |
| 949 | 0170\r |
| 950 | 0126\r |
| 951 | 0522\r |
| 952 | 0107\r |
| 953 | 0523\r |
| 954 | 0000\r |
| 955 | \r |
| 956 | DIS30A, 4230 /-"XX"-\r |
| 957 | 3042\r |
| 958 | 0000\r |
| 959 | \r |
| 960 | DIS32, 2025 /"PUNCH CONTROL TAPE? '-'\r |
| 961 | 1603 /<Y: YES>"\r |
| 962 | 1040\r |
| 963 | 0317\r |
| 964 | 1624\r |
| 965 | 2217\r |
| 966 | 1440\r |
| 967 | 2401\r |
| 968 | 2005\r |
| 969 | 7740\r |
| 970 | 4755\r |
| 971 | 4745\r |
| 972 | 7431\r |
| 973 | 7240\r |
| 974 | 3105\r |
| 975 | 2376\r |
| 976 | 0000\r |
| 977 | \fDIS32A, 2411 /"TITLE:\r |
| 978 | 2414 /'---------------------'"\r |
| 979 | 0572\r |
| 980 | 4547\r |
| 981 | 5555\r |
| 982 | 5555\r |
| 983 | 5555\r |
| 984 | 5555\r |
| 985 | 5555\r |
| 986 | 5555\r |
| 987 | 5555\r |
| 988 | 5555\r |
| 989 | 5555\r |
| 990 | 5555\r |
| 991 | 5547\r |
| 992 | 4545\r |
| 993 | 0000\r |
| 994 | \r |
| 995 | ERR01, 7740 /"? SWEEP ENDS EARLY ' '"\r |
| 996 | 2327\r |
| 997 | 0505\r |
| 998 | 2040\r |
| 999 | 0516\r |
| 1000 | 0423\r |
| 1001 | 4005\r |
| 1002 | 0122\r |
| 1003 | 1431\r |
| 1004 | 4747\r |
| 1005 | 0000\r |
| 1006 | \r |
| 1007 | ERR02, 7740 /"? INSUFFICIENT MEMORY ' '"\r |
| 1008 | 1116\r |
| 1009 | 2325\r |
| 1010 | 0606\r |
| 1011 | 1103\r |
| 1012 | 1105\r |
| 1013 | 1624\r |
| 1014 | 4015\r |
| 1015 | 0515\r |
| 1016 | 1722\r |
| 1017 | 3147\r |
| 1018 | 4700\r |
| 1019 | \r |
| 1020 | ERR03, 7740 /"? BAD SAMPLING RATIO ' '"\r |
| 1021 | 0201\r |
| 1022 | 0440\r |
| 1023 | 2301\r |
| 1024 | 1520\r |
| 1025 | 1411\r |
| 1026 | 1607\r |
| 1027 | 4022\r |
| 1028 | 0124\r |
| 1029 | 1117\r |
| 1030 | 4747\r |
| 1031 | 0000\r |
| 1032 | \fERR04, 7740 /"? NO COMMON INTERVAL"\r |
| 1033 | 1617\r |
| 1034 | 4003\r |
| 1035 | 1715\r |
| 1036 | 1517\r |
| 1037 | 1640\r |
| 1038 | 1116\r |
| 1039 | 2405\r |
| 1040 | 2226\r |
| 1041 | 0114\r |
| 1042 | 4747\r |
| 1043 | 0000\r |
| 1044 | \r |
| 1045 | \r |
| 1046 | ERR05, 7740 /"? TOO MANY INPUTS\r |
| 1047 | 2417 / FOR SWEEP RATE"\r |
| 1048 | 1740\r |
| 1049 | 1501\r |
| 1050 | 1631\r |
| 1051 | 4011\r |
| 1052 | 1620\r |
| 1053 | 2524\r |
| 1054 | 2345\r |
| 1055 | 4040\r |
| 1056 | 0617\r |
| 1057 | 2240\r |
| 1058 | 2327\r |
| 1059 | 0505\r |
| 1060 | 2040\r |
| 1061 | 2201\r |
| 1062 | 2405\r |
| 1063 | 4747\r |
| 1064 | 0000\r |
| 1065 | \r |
| 1066 | TXT32, 4545 /<CRLF><CRLF> SWEEP SUMMARY<CRLF>\r |
| 1067 | 4040\r |
| 1068 | 4023\r |
| 1069 | 2705\r |
| 1070 | 0520\r |
| 1071 | 4023\r |
| 1072 | 2515\r |
| 1073 | 1501\r |
| 1074 | 2231\r |
| 1075 | 4500\r |
| 1076 | \fTXT32A, 4040 /" AVERAGES\r |
| 1077 | 4040 /CHAN RATE TYPE SORT\r |
| 1078 | 0126\r |
| 1079 | 0522\r |
| 1080 | 0107\r |
| 1081 | 0523\r |
| 1082 | 4503\r |
| 1083 | 1001\r |
| 1084 | 1640\r |
| 1085 | 2201\r |
| 1086 | 2405\r |
| 1087 | 4024\r |
| 1088 | 3120\r |
| 1089 | 0540\r |
| 1090 | 2317\r |
| 1091 | 2224\r |
| 1092 | 4500\r |
| 1093 | \r |
| 1094 | TXT33A, 4042 /" "XX" X "XX" "XXX"\r |
| 1095 | 3030 /"\r |
| 1096 | 4240\r |
| 1097 | 4040\r |
| 1098 | 4030\r |
| 1099 | 4040\r |
| 1100 | 4040\r |
| 1101 | 4042\r |
| 1102 | 3030\r |
| 1103 | 4240\r |
| 1104 | 4042\r |
| 1105 | 3030\r |
| 1106 | 3042\r |
| 1107 | 4500\r |
| 1108 | \r |
| 1109 | DIS99, 5026 /"(VAP,"X","XXXX"-"XXXX")\r |
| 1110 | 0120\r |
| 1111 | 5442\r |
| 1112 | 3042\r |
| 1113 | 5442\r |
| 1114 | 3030\r |
| 1115 | 3030\r |
| 1116 | 4255\r |
| 1117 | 4230\r |
| 1118 | 3030\r |
| 1119 | 3042\r |
| 1120 | 5145\r |
| 1121 | 0000\r |
| 1122 | \r |
| 1123 | TXT34B, 4023 /" SWEEPS AT "\r |
| 1124 | 2705\r |
| 1125 | 0520\r |
| 1126 | 2340\r |
| 1127 | 0124\r |
| 1128 | 4000\r |
| 1129 | \f\r |
| 1130 | TXT34C, 2345 /"S\r |
| 1131 | \r |
| 1132 | /TTYLST: H,L\r |
| 1133 | HLSWIT, 0010 /H\r |
| 1134 | -014 /L\r |
| 1135 | \r |
| 1136 | TXCRLF, 4545\r |
| 1137 | 4500\r |
| 1138 | \r |
| 1139 | /TTYLST: LF,CR\r |
| 1140 | CRLF, +212\r |
| 1141 | -215\r |
| 1142 | \r |
| 1143 | /FLOATING VARIABLES\r |
| 1144 | FLOT11, 0\r |
| 1145 | 0\r |
| 1146 | 0\r |
| 1147 | \r |
| 1148 | FLOT12, 0\r |
| 1149 | 0\r |
| 1150 | 0\r |
| 1151 | \r |
| 1152 | FLOT13, 0\r |
| 1153 | 0\r |
| 1154 | 0\r |
| 1155 | \r |
| 1156 | FLOT14, 0\r |
| 1157 | 0\r |
| 1158 | 0\r |
| 1159 | \r |
| 1160 | FLOT15, 0\r |
| 1161 | 0\r |
| 1162 | 0\r |
| 1163 | \r |
| 1164 | FLOT16, 0\r |
| 1165 | 0\r |
| 1166 | 0\r |
| 1167 | \r |
| 1168 | FLOT17, 0\r |
| 1169 | 0\r |
| 1170 | 0\r |
| 1171 | \r |
| 1172 | FLOT20, 0\r |
| 1173 | 0\r |
| 1174 | 0\r |
| 1175 | \r |
| 1176 | /FLOATING CONSTANT\r |
| 1177 | VARTIM, 0011\r |
| 1178 | 3100\r |
| 1179 | 0000\r |
| 1180 | \r |
| 1181 | CON02A, TAD SAMB\r |
| 1182 | TAD CON02H\r |
| 1183 | SMA CLA\r |
| 1184 | JMP I CON02J\r |
| 1185 | TAD SAMB\r |
| 1186 | IAC\r |
| 1187 | JMP I CON02K\r |
| 1188 | CON02K, CON02P\r |
| 1189 | CON02J, CON02\r |
| 1190 | CON02H, 100\r |
| 1191 | XX76NO, TAD FAC+2 /SUBTRACT 200 FOR EACH FIELD USED.\r |
| 1192 | TAD XXM200 /PS8 USES 7600 AND UP.\r |
| 1193 | DCA FAC+2\r |
| 1194 | JMP .+2\r |
| 1195 | DADD\r |
| 1196 | ISZ TLINKS\r |
| 1197 | JMP .-2\r |
| 1198 | TAD TEMP06 /SUBTRACT AGAIN IF ANOTHER FIELD\r |
| 1199 | CIA /WAS USED.\r |
| 1200 | TAD FOP+1\r |
| 1201 | SZA CLA\r |
| 1202 | DADD\r |
| 1203 | JMP I .+1\r |
| 1204 | XX76BK\r |
| 1205 | XXM200, -200\r |
| 1206 | *1763\r |
| 1207 | /FLOATING CONSTANT\r |
| 1208 | AVGTIM, 0007\r |
| 1209 | 2770\r |
| 1210 | 0000\r |
| 1211 | \r |
| 1212 | \f/SELECT SWEEP PARAMETERS\r |
| 1213 | CHASX, CHAS\r |
| 1214 | CON01, FRAME /"SYNC ON CHANNEL S'-'"\r |
| 1215 | DIS01\r |
| 1216 | JMP CON01 /L.F.: RESTART\r |
| 1217 | OCTARG\r |
| 1218 | JMP CON01 /FORMAT ERROR - ASK AGAIN\r |
| 1219 | SNA\r |
| 1220 | JMP I CHASX\r |
| 1221 | DCA SMASK\r |
| 1222 | TAD SMASK\r |
| 1223 | BRAN\r |
| 1224 | K0004\r |
| 1225 | JMP OK\r |
| 1226 | JMP I CON01Z\r |
| 1227 | JMP OK\r |
| 1228 | JMP OK\r |
| 1229 | JMP I CON01Z\r |
| 1230 | CHAS, CLL CML RAR\r |
| 1231 | DCA SMASK\r |
| 1232 | OK, TAD MODE\r |
| 1233 | DCA KMODE\r |
| 1234 | CON02, FRAME /"STANDARD RESOLUTION\r |
| 1235 | DIS02 /'---' DATA POINTS"\r |
| 1236 | JMP I CON01Z /L.F.: PREVIOUS QUESTION\r |
| 1237 | DECARG\r |
| 1238 | JMP CON02 /FORMAT ERROR - ASK AGAIN\r |
| 1239 | CMA IAC\r |
| 1240 | DCA SAMB /-# OF DATA POINTS IN LOW (OR ONLY) EPOCH\r |
| 1241 | JMP I .+1 /CHECK IF # OF POINTS IS LESS\r |
| 1242 | /THAN 65.\r |
| 1243 | CON02A\r |
| 1244 | CON02P, FLOAT /FSAMB =-(#OF POINTS -1)\r |
| 1245 | SAVE\r |
| 1246 | FSAMB\r |
| 1247 | FSAMB=FLOT03\r |
| 1248 | FADD\r |
| 1249 | KM001F\r |
| 1250 | SAVE /-# OF POINTS\r |
| 1251 | FLOT01\r |
| 1252 | TAD SAMB\r |
| 1253 | TAD FIELD0 /DECREASE AVAILABLE FIELD0 BY ADC BUF\r |
| 1254 | SZL CLA /(+)+(-): LINK WILL BE 1 IF NO OVERFLOW\r |
| 1255 | JMP CON03\r |
| 1256 | FRAME /"? INSUFFICIENT MEMORY"\r |
| 1257 | ERR02\r |
| 1258 | JMP CON02 /ASK FOR # OF DATA POINTS\r |
| 1259 | JMP CON02\r |
| 1260 | \r |
| 1261 | /LOCAL CONSTANTS\r |
| 1262 | K0226, +226\r |
| 1263 | CON01Z, CON01\r |
| 1264 | \r |
| 1265 | MODE, 5057 /EXTERNAL ENABLE,SCHMITT ENABLE,RESET\r |
| 1266 | \fCON03, FRAME /"LENGTH: '----' '-'SEC"\r |
| 1267 | DIS03 /\r |
| 1268 | JMP CON02 /GO BACK TO PREVIOUS QUESTION\r |
| 1269 | FLTARG\r |
| 1270 | JMP CON03 /FORMAT ERROR - ASK LENGTH AGAIN\r |
| 1271 | FDIV /GET TIME BETWEEN DATA POINTS\r |
| 1272 | FLOT01\r |
| 1273 | SAVE\r |
| 1274 | FBSI\r |
| 1275 | FBSI=FLOT04\r |
| 1276 | TAD K0226 /MUST BE GREATER THAN OR EQUAL 150 USEC"\r |
| 1277 | FLOAT\r |
| 1278 | FADD /150US-RATE\r |
| 1279 | FBSI\r |
| 1280 | TAD FAC+1\r |
| 1281 | SMA SZA CLA\r |
| 1282 | JMP CON03 /.LT. 150 USEC, TRY AGAIN\r |
| 1283 | \r |
| 1284 | CON04, FRAME /"DELAY: '----' '-'SEC\r |
| 1285 | DIS04\r |
| 1286 | JMP CON03 /L.F.: PREVIOUS QUESTION\r |
| 1287 | FLTARG\r |
| 1288 | JMP CON04 /FORMAT ERROR - ASK DELAY AGAIN\r |
| 1289 | SAVE\r |
| 1290 | FBLATT /LATENCY IN USEC\r |
| 1291 | FBLATT=FLOT05\r |
| 1292 | FDIV /GET LATENCY IN TERMS OF SAMPLING INTERVAL\r |
| 1293 | FBSI\r |
| 1294 | SAVE /-LATENCY IN BSI\r |
| 1295 | FBLAT\r |
| 1296 | FBLAT=FLOT06\r |
| 1297 | FADD\r |
| 1298 | FSAMB /-LENGTH OF SWEEP IN BSI\r |
| 1299 | TAD FAC+1\r |
| 1300 | SPA SNA CLA /DOES SWEEP END BEFORE SYNC PULSE?\r |
| 1301 | JMP CON05 /NO, OK.\r |
| 1302 | FRAME /YES;"? SWEEP ENDS EARLY"\r |
| 1303 | ERR01\r |
| 1304 | JMP CON03 /LF: GET NEW SWEEP LENGTH\r |
| 1305 | JMP CON04 /CR: GET NEW SWEEP DELAY\r |
| 1306 | \r |
| 1307 | /LOCAL CROSSPAGE\r |
| 1308 | CON08X, CON08\r |
| 1309 | CON07X, CON07A\r |
| 1310 | \fCON05, DCA KBTOA\r |
| 1311 | FRAME /"HIGH RESOLUTION EPOCH\r |
| 1312 | DIS05 /'----' DATA POINTS"\r |
| 1313 | JMP CON04 /L.F.: LAST QUESTION\r |
| 1314 | DECARG\r |
| 1315 | JMP .-4 /FORMAT ERROR - ASK # POINTS AGAIN\r |
| 1316 | CMA IAC /-# DATA POINTS\r |
| 1317 | SNA\r |
| 1318 | JMP I CON08X /0 DATA POINTS INDICATES SINGLE MODE\r |
| 1319 | DCA SAMA /- POINTS IN HI RESOLUTION EPOCH\r |
| 1320 | TAD SAMA\r |
| 1321 | IAC\r |
| 1322 | FLOAT /-(#DATA POINTS-1)\r |
| 1323 | SAVE\r |
| 1324 | FSAMA=FLOT10\r |
| 1325 | FSAMA /FSAMA=FLOT10\r |
| 1326 | FADD\r |
| 1327 | KM001F\r |
| 1328 | SAVE /-#DATA POINTS\r |
| 1329 | FLOT01\r |
| 1330 | TAD SAMA /PARTS OF FIELD 0 IN USE\r |
| 1331 | TAD SAMB\r |
| 1332 | TAD FIELD0 /FIELD 0 AVAILABLE\r |
| 1333 | SNL CLA /LINK=1 IF OVERFLOW\r |
| 1334 | JMP CON06\r |
| 1335 | FRAME /"? INSUFFICIENT MEMORY"\r |
| 1336 | ERR02\r |
| 1337 | JMP CON02 /L.F.: RESPECIFY LO-EPOCH\r |
| 1338 | JMP CON05 /C.R.: RESPECIFY HI-EPOCH\r |
| 1339 | CON06, FRAME /"HI LENGTH: '----' '-'SEC"\r |
| 1340 | DIS06 \r |
| 1341 | JMP CON05 /LF: PREVIOUS QUESTION\r |
| 1342 | FLTARG\r |
| 1343 | JMP CON06 /FORMAT ERROR - ASK AGAIN\r |
| 1344 | FDIV /LENGTH\# POINTS= SAMPLING INTERVAL\r |
| 1345 | FLOT01\r |
| 1346 | SAVE /GET ASI IN USEC\r |
| 1347 | FASI \r |
| 1348 | FASI=FLOT11\r |
| 1349 | TAD K0226 /IF ASI. .LT. 150 US, TOO FAST\r |
| 1350 | FLOAT\r |
| 1351 | FADD /150US-ASI\r |
| 1352 | FASI\r |
| 1353 | TAD FAC+1\r |
| 1354 | SMA CLA\r |
| 1355 | JMP CON06 /.LT. 150 US, TOO FAST\r |
| 1356 | LOAD /CHECK BSI/ASI RATIO\r |
| 1357 | FBSI\r |
| 1358 | FDIV\r |
| 1359 | FASI\r |
| 1360 | DCOM\r |
| 1361 | FIX /.ABS. RATIO .LT. 1 OR .GT. 2^11 ?\r |
| 1362 | SZA /-BSI/ASI RATIO IN AC\r |
| 1363 | JMP I CON07X /NO - IS OK\r |
| 1364 | \f FRAME /"? BAD SAMPLING RATIO"\r |
| 1365 | ERR03\r |
| 1366 | JMP I CON02X /LF: CHANGE BOTH SWEEPS\r |
| 1367 | JMP I CON05Y /CR: CHANGE HIGH\r |
| 1368 | \r |
| 1369 | CON07A, DCA KBTOA /KBTOA HOLDS -RATIO\r |
| 1370 | CON07, FRAME /"HI DELAY: '----' '-'SEC"\r |
| 1371 | DIS07 \r |
| 1372 | JMP I CON06X /LF: PREVIOUS QUESTION\r |
| 1373 | FLTARG\r |
| 1374 | JMP CON07 /FORMAT ERROR: ASK AGAIN\r |
| 1375 | FDIV /-LATENCY IN TERMS OF ASI\r |
| 1376 | FASI\r |
| 1377 | SAVE\r |
| 1378 | FALAT\r |
| 1379 | FALAT=FLOT12\r |
| 1380 | TAD KBTOA /BSI=-KBTOA*ASIF\r |
| 1381 | CMA IAC\r |
| 1382 | FLOAT\r |
| 1383 | FMUL\r |
| 1384 | FASI\r |
| 1385 | SAVE\r |
| 1386 | FBSI\r |
| 1387 | LOAD /GET LO SWEEP LATENCY IN TERMS OF ASI\r |
| 1388 | FBLATT /-LO-LATENCY IN USEC.\r |
| 1389 | FDIV\r |
| 1390 | FASI\r |
| 1391 | SAVE /LO-LATENCY IN ASI.\r |
| 1392 | FBLAT\r |
| 1393 | TAD KBTOA /GET END TIME OF LO SWEEP (IN ASI)\r |
| 1394 | CMA IAC\r |
| 1395 | FLOAT\r |
| 1396 | FMUL /(B/A RATIO)*(-# OF POINTS)\r |
| 1397 | FSAMB\r |
| 1398 | FADD /ADD -DELAY (IN ASI)\r |
| 1399 | FBLAT\r |
| 1400 | DCOM\r |
| 1401 | SAVE /DELAY (IN ASI)+# OF POINTS*RATIO\r |
| 1402 | FBEND /POSITIVE SENSE\r |
| 1403 | FBEND=FLOT07\r |
| 1404 | JMP CON08A\r |
| 1405 | \r |
| 1406 | /LOCAL CROSS-PAGE\r |
| 1407 | CON02X, CON02\r |
| 1408 | CON04X, CON04\r |
| 1409 | CON05Y, CON05\r |
| 1410 | CON06X, CON06\r |
| 1411 | CON09X, CON09\r |
| 1412 | FMINX, FMINS\r |
| 1413 | \fCON08, LOAD /HERE FOR 1-EPOCH MODE\r |
| 1414 | FBSI\r |
| 1415 | SAVE /BSI=ASI\r |
| 1416 | FASI\r |
| 1417 | LOAD /LO-LATENCY=HI-LATENCY\r |
| 1418 | FBLAT\r |
| 1419 | SAVE\r |
| 1420 | FALAT\r |
| 1421 | JMS I FMINX /SYNC TIME IS AT MIN (SYNC PULSE, DELAY)\r |
| 1422 | KZEROF\r |
| 1423 | DCOM\r |
| 1424 | SAVE /FAKE END OF B (SYNC TIME)\r |
| 1425 | FBEND\r |
| 1426 | LOAD\r |
| 1427 | FSAMB\r |
| 1428 | SAVE\r |
| 1429 | FSAMA\r |
| 1430 | CON08A, TAD KBTOA /COME HERE FOR 2-EPOCH MODE\r |
| 1431 | FLOAT\r |
| 1432 | SAVE /-BSI/ASI\r |
| 1433 | FBTOA\r |
| 1434 | FBTOA=FLOT20\r |
| 1435 | LOAD /GET AEND, AEND=-(ALAT+SAMA)\r |
| 1436 | FSAMA /AEND IS - TIME OF A-SWEEP ENDING\r |
| 1437 | FADD\r |
| 1438 | FALAT /FALAT IS NEGATIVE SENSE A-DELAY\r |
| 1439 | SAVE\r |
| 1440 | FAEND /NEGATIVE SENSE.\r |
| 1441 | FAEND=FLOT13\r |
| 1442 | FADD\r |
| 1443 | FBEND /FBEND IS POSITIVE SENSE END OF B-SWEEP\r |
| 1444 | TAD FAC+1 /DIFFERENCE BETWEEN END TIMES\r |
| 1445 | SMA SZA CLA /BEND .LT. AEND?\r |
| 1446 | JMP CON08C /YES, LO ENDS AFTER HI ENDS\r |
| 1447 | FIX /NO, HI ENDS AFTER LO ENDS\r |
| 1448 | FLOAT /TRUNCATE. ROUND UP\r |
| 1449 | SAVE /(LO ENDS FIRST)\r |
| 1450 | EJECT\r |
| 1451 | \r |
| 1452 | FBLA /-# OF POINTS LEFT IN A AT END OF B\r |
| 1453 | FBLA=FLOT14\r |
| 1454 | LOAD /SYNC TIME AT END OF LO SWEEP: KSYTIM=-(BEND-1)\r |
| 1455 | FBEND\r |
| 1456 | DCOM\r |
| 1457 | FADD\r |
| 1458 | KM001F\r |
| 1459 | SAVE\r |
| 1460 | KSYTIM-1\r |
| 1461 | LOAD /DOES HI START AFTER LO ENDS?\r |
| 1462 | FBEND /+(END-OF-B TIME)\r |
| 1463 | FADD\r |
| 1464 | FALAT /MINUS (START-OF-A TIME)\r |
| 1465 | TAD FAC+1 /(END B) - (START A) .LT 0?\r |
| 1466 | SPA CLA\r |
| 1467 | JMP CON08B /YES-NO COMMON INTERVAL\r |
| 1468 | \f FIX /NO - TRUNCATE, ROUND DOWN\r |
| 1469 | FLOAT\r |
| 1470 | DCOM /LOGICAL START OF HI-SWEEP\r |
| 1471 | SAVE /[(END B) - (START A)] FROM SYNC TIME\r |
| 1472 | FADEL /NEGATIVE\r |
| 1473 | FADEL=FLOT15\r |
| 1474 | LOAD /LOGICAL START OF LO-SWEEP ENTIRE BUFFER BACK\r |
| 1475 | FSAMB\r |
| 1476 | SAVE\r |
| 1477 | FBDEL\r |
| 1478 | FBDEL=FLOT16\r |
| 1479 | LOAD /CLOSE LO BUFFER AT SYNC TIME\r |
| 1480 | KZEROF\r |
| 1481 | SAVE\r |
| 1482 | FBLB\r |
| 1483 | FBLB=FLOT17\r |
| 1484 | JMP I CON09X\r |
| 1485 | \r |
| 1486 | CON08B, FRAME /"? NO COMMON INTERVAL"\r |
| 1487 | ERR04\r |
| 1488 | JMP I CON04X /L.F.: GO BACK TO RESPECIFY LO-LATENCY\r |
| 1489 | JMP I CON02X /C.R.: RESPECIFY HI-LATENCY\r |
| 1490 | \r |
| 1491 | CON08C, FDIV /HI SWEEP ENDS BEFORE LO SWEEP ENDS\r |
| 1492 | FBTOA /KBLB=[(BEND-AEND)/KBTOA]-1\r |
| 1493 | FIX /-# OF POINTS LEFT TO GET IN B WHEN A STOPS\r |
| 1494 | FLOAT /TRUNCATE - ROUND UP\r |
| 1495 | SAVE /LO CLOSES KBLB AFTER SYNC TIME (IN BSI)\r |
| 1496 | FBLB\r |
| 1497 | LOAD /SYNC TIME AT END OF HI SWEEP\r |
| 1498 | FAEND\r |
| 1499 | FADD\r |
| 1500 | KM001F\r |
| 1501 | SAVE\r |
| 1502 | KSYTIM-1\r |
| 1503 | LOAD /DOES HI END BEFORE LO BEGINS?\r |
| 1504 | FAEND\r |
| 1505 | DCOM\r |
| 1506 | FADD /(END A)-(START B) .LT. 0 ?\r |
| 1507 | FBLAT\r |
| 1508 | TAD FAC+1\r |
| 1509 | SPA CLA\r |
| 1510 | JMP I CON08W /YES - NO COMMON INTERVAL\r |
| 1511 | FDIV /BDEL IS TIME FROM LOGICAL START TO SYNC TIME\r |
| 1512 | FBTOA /IN ASI\r |
| 1513 | DCOM\r |
| 1514 | FIX\r |
| 1515 | FLOAT /TRUNCATE, ROUND DOWN\r |
| 1516 | DCOM\r |
| 1517 | SAVE\r |
| 1518 | FBDEL\r |
| 1519 | \f LOAD /LOGICAL START OF HI IS ENTIRE BUFFER BACK\r |
| 1520 | FSAMA\r |
| 1521 | SAVE\r |
| 1522 | FADEL\r |
| 1523 | LOAD /THERE ARE NO MORE A-POINTS TO GET AT SYNC TIME\r |
| 1524 | KZEROF\r |
| 1525 | SAVE /CLOSE HI BUFFER AT SYNC TIME\r |
| 1526 | FBLA\r |
| 1527 | \r |
| 1528 | CON09, TAD KSYTIM /SETUP SWEEP SUMMARY DISPLAY\r |
| 1529 | SPA CLA /UNLESS EITHER SWEEP ENDS BEFORE SYNC\r |
| 1530 | JMP CON09A\r |
| 1531 | FRAME /"? SWEEP ENDS EARLY"\r |
| 1532 | ERR01\r |
| 1533 | JMP I CON04Y /LF: RESPECIFY LATENCY\r |
| 1534 | JMP I CON05X /CR: RESPECIFY HI SWEEP\r |
| 1535 | \r |
| 1536 | /LOCAL CROSSPAGE\r |
| 1537 | CON04Y, CON04\r |
| 1538 | CON05X, CON05\r |
| 1539 | CON08W, CON08B\r |
| 1540 | \r |
| 1541 | /SUBROUTINE TO GET MAX OF TWO FLOATING ARGUMENTS: FMAX\r |
| 1542 | FMAXS, 0\r |
| 1543 | TAD FMAXS /GET PARAMETER ADDRESS\r |
| 1544 | DCA FMLOCS\r |
| 1545 | JMS FMARGS /COMPARE\r |
| 1546 | FMEXIT, SPA CLA /SIGN OF COMPARSION\r |
| 1547 | TAD K0003 /GET COMPARAND AS RESULT (FMARG2=FMARG1+3)\r |
| 1548 | TAD ADRARG /GET FAC AS RESULT\r |
| 1549 | DCA .+2\r |
| 1550 | LOAD /PUT INTO FAC\r |
| 1551 | 0\r |
| 1552 | JMP I FMLOCS /EXIT\r |
| 1553 | \r |
| 1554 | /SUBROUTINE TO GET MIN OF TWO FLOATING ARGS: FMIN\r |
| 1555 | FMINS, 0\r |
| 1556 | JMS FMARGS /COMPARE\r |
| 1557 | CMA IAC /REVERSE SIGN OF COMPARSION\r |
| 1558 | JMP FMEXIT\r |
| 1559 | \f FMLOCS=FMINS\r |
| 1560 | FMARGS, 0\r |
| 1561 | SAVE /SAVE THE FAC\r |
| 1562 | ADRARG, FMARG1\r |
| 1563 | FMARG1=FLOT01\r |
| 1564 | TAD I FMLOCS /GET ADDRESS OF COMPARAND\r |
| 1565 | DCA .+2\r |
| 1566 | LOAD /PUT COMPARAND IN FAC\r |
| 1567 | 0\r |
| 1568 | SAVE /AND SAVE IT\r |
| 1569 | FMARG2\r |
| 1570 | FMARG2=FLOT02\r |
| 1571 | DCOM /FAC - COMPARAND\r |
| 1572 | FADD\r |
| 1573 | FMARG1\r |
| 1574 | TAD FAC+1 /SIGN OF (FAC-COMPARAND)\r |
| 1575 | ISZ FMLOCS /ADJUST RETURN ADDRESS\r |
| 1576 | JMP I FMARGS\r |
| 1577 | \r |
| 1578 | CON09A, SETH /POSITION HALFWORD POINTER\r |
| 1579 | DIS09 /PICK UP ARGUMENTS FOR DISPLAY\r |
| 1580 | LOAD\r |
| 1581 | KSYTIM-1\r |
| 1582 | DFIX /-SYNC POINT+1\r |
| 1583 | FAC+1\r |
| 1584 | NORM /TRUNCATE, ROUND UP\r |
| 1585 | DCA FAC\r |
| 1586 | SAVE\r |
| 1587 | KSYTIM-1\r |
| 1588 | DCOM\r |
| 1589 | FADD\r |
| 1590 | KM001F\r |
| 1591 | FADD /A-START TIME\r |
| 1592 | FADEL\r |
| 1593 | DCOM\r |
| 1594 | FMUL /SYNC POINT - DELAY (IN USEC)\r |
| 1595 | FASI\r |
| 1596 | FLTOUT\r |
| 1597 | LOAD\r |
| 1598 | FASI /HI SWEEP SAMPLING RATE\r |
| 1599 | DCOM\r |
| 1600 | FLTOUT\r |
| 1601 | LOAD /A-END TIME\r |
| 1602 | KM001F\r |
| 1603 | DCOM\r |
| 1604 | FADD\r |
| 1605 | KSYTIM-1\r |
| 1606 | FADD\r |
| 1607 | FBLA\r |
| 1608 | \f FMUL /SYNC POINT + POINTS LEFT (IN USEC)\r |
| 1609 | FASI\r |
| 1610 | FLTOUT\r |
| 1611 | LOAD /GET START TIME OF LO SWEEP\r |
| 1612 | FBDEL\r |
| 1613 | FMUL\r |
| 1614 | FBTOA\r |
| 1615 | FADD\r |
| 1616 | KSYTIM-1\r |
| 1617 | DCOM\r |
| 1618 | FADD\r |
| 1619 | KM001F\r |
| 1620 | DCOM\r |
| 1621 | FMUL /SYNC POINT - DELAY\r |
| 1622 | FASI\r |
| 1623 | FLTOUT\r |
| 1624 | LOAD /LO RESOLUTION SAMPLING INTERVAL\r |
| 1625 | FBTOA\r |
| 1626 | FMUL\r |
| 1627 | FASI\r |
| 1628 | FLTOUT\r |
| 1629 | LOAD /B-END TIME\r |
| 1630 | FBLB\r |
| 1631 | FMUL\r |
| 1632 | FBTOA\r |
| 1633 | FADD\r |
| 1634 | KM001F\r |
| 1635 | DCOM /SYNC POINT + POINTS LEFT (IN USEC)\r |
| 1636 | FADD\r |
| 1637 | KSYTIM-1\r |
| 1638 | FMUL\r |
| 1639 | FASI\r |
| 1640 | FLTOUT\r |
| 1641 | LOAD /PRESET FAC TO -1 FOR NO XR\r |
| 1642 | KM001F\r |
| 1643 | CON09B, FRAME /"BEGINS -AT RATE- ENDS\r |
| 1644 | DIS09 /SDDDDDMSDDDDDMSDDDDDM\r |
| 1645 | JMP CON09B /SDDDDDMSDDDDDMSDDDDDM\r |
| 1646 | ALPHA /\r |
| 1647 | BRAN /'-': CHANGE [H,L,-]"\r |
| 1648 | HLSWIT /(S: - OR SPACE; D: 0-9, OR -; M: U, M, OR SPACE)\r |
| 1649 | JMP I CON05Z /CHANGE HI (H)\r |
| 1650 | JMP I CON02Y /CHANGE HI AND LO (L)\r |
| 1651 | \r |
| 1652 | \f/GET LAST SWEEP PARAMETER: SORT TIME\r |
| 1653 | CON12D, TAD XROPT /IF NO XR IN SYS, SKIP QUESTION\r |
| 1654 | SNA CLA\r |
| 1655 | JMP CON12E /ASSUME CTIME IS AT SYNC TIME\r |
| 1656 | FRAME /"SORT AT '-----' '-'SEC"\r |
| 1657 | DIS12\r |
| 1658 | JMP I CON9X /LF: LOOK AT SUMMARY AGAIN\r |
| 1659 | FLTARG\r |
| 1660 | JMP CON12D /FORMAT ERROR - ASK AGAIN\r |
| 1661 | FDIV /TIME IN ASI - CAN NO LONGER CHANGE SW PARAMETERS\r |
| 1662 | FASI\r |
| 1663 | FADD\r |
| 1664 | KM001F\r |
| 1665 | TAD FAC+1 /-SORT TIME MUST BE .LT.0 (-1 IF UNSPEC)\r |
| 1666 | SMA CLA\r |
| 1667 | JMP CON12D /RE ASK QUESTION\r |
| 1668 | CON12E, SAVE\r |
| 1669 | FCTIM\r |
| 1670 | FCTIM=FLOT04 /FBSI. BLOCK 3-8\r |
| 1671 | DFIX\r |
| 1672 | KCTIM\r |
| 1673 | LOAD\r |
| 1674 | FAEND\r |
| 1675 | JMS I FMINY /FIND END OF SW PHASE\r |
| 1676 | FCTIM /MAX (END-A, SORT TIME)= MIN (-END-A, -SORT TIME)\r |
| 1677 | DCOM\r |
| 1678 | JMS I FMAXX /MAX (END-A, SORT TIME, END-B) IS END OF SW PHASE\r |
| 1679 | FBEND\r |
| 1680 | SAVE /SWEEP PHASE END POINT (IN ASI)\r |
| 1681 | FSWEND\r |
| 1682 | FSWEND=FLOT04 /FCTIM, BLOCK 12E\r |
| 1683 | LOAD\r |
| 1684 | FALAT\r |
| 1685 | JMS I FMAXX /FIND BEGIN TIME FOR SWEEP PHASE (IN ASI)\r |
| 1686 | FBLAT /MIN (START-A,START-B) = MAX (-START-A,-START-B)\r |
| 1687 | SAVE\r |
| 1688 | FSWBEG /-START TIME OF SWEEP PHASE\r |
| 1689 | FSWBEG=FLOT13 /12E,8-12\r |
| 1690 | FADD /+ END TIME OF SWEEP PHASE\r |
| 1691 | FSWEND\r |
| 1692 | SAVE /LENGTH OF SWEEP PHASE IN ASI\r |
| 1693 | FSWTIM\r |
| 1694 | FSWTIM=FLOT04 /FSWEND, BLOCK 12E\r |
| 1695 | \f/ASK QUESTIONS AND GENERATE JOB LIST\r |
| 1696 | CON13, DCA TNJOB /INITIALIZE SECTION VARIABLES - JOB 0\r |
| 1697 | TNJOB=TEMP30\r |
| 1698 | TAD KBTOA /SET ALLOWED MIN SAMPLING TIME\r |
| 1699 | SZA CLA\r |
| 1700 | TAD K0031 /25 (10)\r |
| 1701 | TAD K0175 /125(10)\r |
| 1702 | FLOAT /125 US IF SINGLE\r |
| 1703 | SAVE /150 US IF DOUBLE MODE\r |
| 1704 | FTIMSV /HOLDS MIN SWEEP INTV PERMITTED\r |
| 1705 | FTIMSV=FLOT01 /INCREASED FOR JOBS AS CHOSEN\r |
| 1706 | LOAD /SET TIME USED TO ZERO\r |
| 1707 | KZEROF\r |
| 1708 | SAVE\r |
| 1709 | CALTIM\r |
| 1710 | CALTIM=FLOT05 /FBLATT, BLOCK 4-7\r |
| 1711 | LOAD /MEMORY AVAILABLE AT INSTALLATION\r |
| 1712 | MEMTOT-1\r |
| 1713 | SAVE\r |
| 1714 | DAVAIL /DBL PREC. FIXED POINT. # OF CELLS AVAIL IN ALL OF CORE\r |
| 1715 | DAVAIL=FLOT02\r |
| 1716 | TAD FIELD0 /FIELD0 AVAIL FOR BUFFERS & LISTS\r |
| 1717 | DCA TLEFT0 /# OF CELLS LEFT IN FIELD 0\r |
| 1718 | TLEFT0=TEMP15\r |
| 1719 | DCA NCHA /INITIALIZE # OF CHANNELS TO ZERO\r |
| 1720 | DCA NCHB\r |
| 1721 | TAD ADJLIS /INITIALIZE JOB LIST POINTER\r |
| 1722 | IAC\r |
| 1723 | DCA TJPNTR\r |
| 1724 | TJPNTR=TEMP21\r |
| 1725 | DCA I TJPNTR /PUT EOL WORD IN JOB LIST (J1=0)\r |
| 1726 | TAD KMAXSZ /-MAXIMUM SIZE OF LIST +20\r |
| 1727 | CON14, DCA TSZLST\r |
| 1728 | TSZLST=TEMP13\r |
| 1729 | TAD TLEFT0 /INITIALIZE FOR NEXT JOB\r |
| 1730 | DCA TAVAIL /TLEFT0 MODIFIED AT CON16\r |
| 1731 | TAVAIL=TEMP14\r |
| 1732 | LOAD /UPDATE TIME COUNT, FTIMSV MOD AT CON21\r |
| 1733 | FTIMSV\r |
| 1734 | SAVE\r |
| 1735 | FTIMIN\r |
| 1736 | FTIMIN=FLOT07 /FBEND. BLOCK 4-12E\r |
| 1737 | SETH /PUT AVERAGE # IN MESSAGE\r |
| 1738 | DIS15\r |
| 1739 | TAD TNJOB\r |
| 1740 | IAC\r |
| 1741 | OCTOUT\r |
| 1742 | EJECT\r |
| 1743 | \r |
| 1744 | CON15, FRAME /"AVG XX\r |
| 1745 | DIS15 /AVERAGE INPUT '--'"\r |
| 1746 | JMP I CON22X /L.F.: ENOUGH AVERAGES\r |
| 1747 | OCTARG\r |
| 1748 | JMP CON15 /FORMAT ERROR - ASK AGAIN\r |
| 1749 | DCA SHFR /SHFR HAS CHANNEL NUMBER\r |
| 1750 | \fCON16, TAD SAMA /INITIALIZE FOR SINGLE MODE (H RESOL)\r |
| 1751 | DCA TNSAM /NUMBER OF DATA POINTS THIS JOB\r |
| 1752 | TNSAM=TEMP16\r |
| 1753 | TAD NCHA /ORDER OF THIS JOB IN JLIST\r |
| 1754 | DCA TORDER\r |
| 1755 | TORDER=TEMP17\r |
| 1756 | TAD KBTOA /DUAL BEAM MODE?\r |
| 1757 | SNA CLA\r |
| 1758 | JMP CON16J /NO- OMIT QUESTION\r |
| 1759 | CON16A, FRAME /"RESOLUTION: '-' [H,L]"\r |
| 1760 | DIS16\r |
| 1761 | JMP CON15 /L.F.: RESTART JOB\r |
| 1762 | ALPHA /GET ANSWER\r |
| 1763 | BRAN\r |
| 1764 | HLSWIT\r |
| 1765 | JMP CON16B /H - OK\r |
| 1766 | JMP CON16G /L. - READUST FOR LO\r |
| 1767 | JMP CON16A /OTHER - ERROR, ASK AGAIN\r |
| 1768 | \r |
| 1769 | /LOCAL CONSTANTS\r |
| 1770 | K0006, 0006\r |
| 1771 | K0031, 31 /25(10)\r |
| 1772 | K0175, 175 /125(10)\r |
| 1773 | \r |
| 1774 | /LOCAL CROSS-PAGE\r |
| 1775 | CON9X, CON09B\r |
| 1776 | CON02Y, CON02\r |
| 1777 | CON05Z, CON05\r |
| 1778 | CON22X, CON22\r |
| 1779 | FMINY, FMINS\r |
| 1780 | FMAXX, FMAXS\r |
| 1781 | KMAXSZ, CON00-LOCORE-16 /FROM LOCORE TO CON00 FOR LISTS (-16 FOR NEXT JOB)\r |
| 1782 | \r |
| 1783 | CON16G, TAD NCHB /ORDER IN MX-B LIST\r |
| 1784 | DCA TORDER\r |
| 1785 | TAD K0040 /SET A/B BIT =1\r |
| 1786 | TAD SHFR\r |
| 1787 | DCA SHFR\r |
| 1788 | CON16J, TAD SAMB /LO RESOLUTION SWEEP POINTS\r |
| 1789 | DCA TNSAM\r |
| 1790 | EJECT\r |
| 1791 | \r |
| 1792 | CON16B, TAD K0003 /INITIALIZE FOR NEW CHANNEL\r |
| 1793 | DCA TCHINC /HOW MUCH TO INCREMENT CORE USED FOR MX, CD LIST ENTRY\r |
| 1794 | TCHINC=TEMP20\r |
| 1795 | TAD K0006 /MOVE A/B, CHAN # TO TOP 6 BITS\r |
| 1796 | SHFT\r |
| 1797 | TAD TNSAM /IMAGE OF # DATA POINTS \r |
| 1798 | DCA TNSAMM\r |
| 1799 | TNSAMM=TEMP10\r |
| 1800 | TAD SHFR\r |
| 1801 | TAD TORDER\r |
| 1802 | TAD K0040 /ADD IN 1(1), CHAN ORD (5) TO BOTTOM 6 BITS\r |
| 1803 | DCA TJCHAN /SAVE FOR J-LIST\r |
| 1804 | TJCHAN=TEMP12\r |
| 1805 | TAD ADJLIS /SET POINTER TO TOP OF JOB LIST\r |
| 1806 | IAC\r |
| 1807 | \fCON16C, DCA TJPNTR /SEARCH FOR SWEEP, CHAN # ALREADY ON J-LIST\r |
| 1808 | TAD I TJPNTR\r |
| 1809 | SNA\r |
| 1810 | JMP CON16E /FOUND END OF LIST (J1=0)\r |
| 1811 | AND K7700 /THESE BITS HOLD SWEEP TYPE AND CHAN #\r |
| 1812 | DCA TJMAT\r |
| 1813 | TJMAT=TEMP01\r |
| 1814 | TAD TJCHAN /NEW JOB'S J1 WORD\r |
| 1815 | AND K7700\r |
| 1816 | CMA IAC\r |
| 1817 | TAD TJMAT /MATCH BETWEEN TOP 6 BITS OF WORDS?\r |
| 1818 | SZA CLA\r |
| 1819 | JMP CON16D /NO MATCH, MOVE ON\r |
| 1820 | DCA TCHINC /FOUND A MATCH NO INCREASE IN MX- OR CD-LIST LENGTH\r |
| 1821 | DCA TNSAMM /NO NEW BUFFER AREA REQUIRED\r |
| 1822 | TAD I TJPNTR /CHAN ORDER IS SAME AS MATCHING J1'S\r |
| 1823 | DCA TJCHAN\r |
| 1824 | CON16D, TAD K0007 /MOVE TO NEXT JOB\r |
| 1825 | TAD TJPNTR\r |
| 1826 | JMP CON16C\r |
| 1827 | CON16H, FRAME /"? INSUFFICIENT MEMORY"\r |
| 1828 | ERR02\r |
| 1829 | JMP I CON13X /LF: START AT JOB 1\r |
| 1830 | JMP I CON15X /CR: RESTART CURRENT JOB\r |
| 1831 | \r |
| 1832 | /TTY LIST\r |
| 1833 | YESNO, 31 /Y\r |
| 1834 | -16 /N\r |
| 1835 | \r |
| 1836 | /LOCAL CROSSPAGE\r |
| 1837 | CON13X, CON13\r |
| 1838 | CON15X, CON15\r |
| 1839 | \r |
| 1840 | CON16E, TAD TCHINC /UPDATE MIN SAMP INTV\r |
| 1841 | SNA CLA\r |
| 1842 | JMP CON16K\r |
| 1843 | TAD K0017 /NEW CHANNEL TAKES 15 USEC MORE TO ACQUIRE\r |
| 1844 | FLOAT\r |
| 1845 | FADD /OLD MIN SAMP INTV\r |
| 1846 | FTIMIN\r |
| 1847 | SAVE\r |
| 1848 | FTIMSV\r |
| 1849 | FADD /REQUIRED SAMP INTV\r |
| 1850 | FASI\r |
| 1851 | TAD FAC+1 /DOES THIS MAKE REQ. SAMPLING RATE IMPOSSIBLE?\r |
| 1852 | SPA SNA CLA\r |
| 1853 | JMP CON16K /NO-IT'S OK\r |
| 1854 | FRAME /"? TOO MANY INPUTS\r |
| 1855 | ERR05 /FOR SWEEP RATE"\r |
| 1856 | JMP I CON13X /RESTART FROM JOB 1 (LF)\r |
| 1857 | JMP I CON15X /RESTART THIS JOB (CR)\r |
| 1858 | \fCON16K, TAD TCHINC /SEE IF THERE IS BUFFER ROOM\r |
| 1859 | TAD K0007\r |
| 1860 | CMA\r |
| 1861 | TAD TNSAMM\r |
| 1862 | DCA TDECF0 /HOW MUCH TO DECR FIELD0\r |
| 1863 | TDECF0=TEMP10\r |
| 1864 | CLL\r |
| 1865 | TAD TDECF0 /IS THERE ROOM?\r |
| 1866 | TAD TAVAIL\r |
| 1867 | SNL\r |
| 1868 | JMP CON16H /NO- INSUFFICIENT MEMORY\r |
| 1869 | \r |
| 1870 | CON16F, DCA TLEFT0 /FIELD 0 LEFT\r |
| 1871 | DCA TCMASK /INITIALIZE FOR NO CONTINGENCY MASK\r |
| 1872 | TCMASK=TEMP11\r |
| 1873 | TAD XROPT /DOES INSTALLATION HAVE XR OPTION?\r |
| 1874 | SNA CLA\r |
| 1875 | JMP CON18 /NO-SKIP QUESTION\r |
| 1876 | \r |
| 1877 | CON17, FRAME /"SORT CODE: '---'"\r |
| 1878 | DIS17\r |
| 1879 | JMP I CON15X /LF: RESTART JOB\r |
| 1880 | OCTARG\r |
| 1881 | JMP CON17 /FORMAT ERROR - ASK AGAIN\r |
| 1882 | AND K0377 /SET CONTINGENCY PART OF J2\r |
| 1883 | DCA TCMASK\r |
| 1884 | CON18, IAC\r |
| 1885 | DCA TJTYPE /INITIALIZE JOB TYPE TO TYPE 1 (AVG ONLY)\r |
| 1886 | TJTYPE=TEMP07\r |
| 1887 | FRAME /"COMPUTE S.D.?: '-'\r |
| 1888 | DIS18 /(Y: YES)"\r |
| 1889 | JMP I CON15X /L.F.:RE-DO JOB\r |
| 1890 | ALPHA /GET ANSWER\r |
| 1891 | BRAN /Y FOR YES\r |
| 1892 | YESNO\r |
| 1893 | JMP .+3 /Y: YES\r |
| 1894 | JMP CON19A /N: NO\r |
| 1895 | JMP CON19A /OTHER - SAME AS N\r |
| 1896 | TWO /JOB TYPE SET TO TWO\r |
| 1897 | DCA TJTYPE\r |
| 1898 | \fCON19, FRAME /"COMPUTE TREND?: '-'\r |
| 1899 | DIS19 /(Y: YES)"\r |
| 1900 | JMP CON18 /L.F. RE ASK VARIANCE\r |
| 1901 | ALPHA /GET ANSWER\r |
| 1902 | BRAN\r |
| 1903 | YESNO\r |
| 1904 | ISZ TJTYPE /Y: YES - SET JOB TYPE = 3\r |
| 1905 | K7700, 7700 /N: NO (A NOP)\r |
| 1906 | CON19A, TAD TJTYPE /UPDATE TOTAL AVAILABLE CORE\r |
| 1907 | BRAN /AFTER THIS JOB'S CALC REGION\r |
| 1908 | K0003 /IS SET ASIDE\r |
| 1909 | TAD K0004 /TYPE 3, NCELL=9\r |
| 1910 | TAD K0003 /TYPE 2, NCELL=5\r |
| 1911 | TAD K0002 /TYPE 1, NCELL=2\r |
| 1912 | DCA TNCELL /LOCATIONS REQUIRED PER DATA POINT\r |
| 1913 | TNCELL=TEMP02\r |
| 1914 | TAD TNCELL\r |
| 1915 | CMA IAC\r |
| 1916 | DCA TNCNT /FIND REQUIRED CORE FOR THIS JOB\r |
| 1917 | TNCNT=TEMP01\r |
| 1918 | CLA CMA\r |
| 1919 | DCA FOP+1\r |
| 1920 | TAD TDECF0 /FIGURE IN INCREASE IN MX, CD, AND J LISTS\r |
| 1921 | DCA FOP+2\r |
| 1922 | TAD TNSAM\r |
| 1923 | DCA FAC+2 /ADD (# OF POINTS)*(# OF LOCATIONS PER POINT)\r |
| 1924 | CMA\r |
| 1925 | DCA FAC+1\r |
| 1926 | DADD\r |
| 1927 | ISZ TNCNT /ADD IN # OF POINTS. (# OF LOCS) TIMES\r |
| 1928 | JMP .-2\r |
| 1929 | LOAD /DECREASE CURRENTLY AVAIL. MEMORY\r |
| 1930 | DAVAIL\r |
| 1931 | DADD\r |
| 1932 | TAD FOP+1\r |
| 1933 | DCA TEMP06\r |
| 1934 | TAD FAC+1 /# OF DATA FIELDS PREVIOUSLY AVAILABLE\r |
| 1935 | CMA\r |
| 1936 | TAD FOP+1 /- OF DATA FIELDS NOW AVAILABLE+1\r |
| 1937 | EJECT\r |
| 1938 | \r |
| 1939 | DCA TLINKS /IS # OF BLOCKS (LINKAGE) REQUIRED\r |
| 1940 | TLINKS=TEMP01\r |
| 1941 | CLA CMA /PUT-(3 LOCS+1 DATA POINT) IN FAC\r |
| 1942 | DCA FAC+1\r |
| 1943 | TAD TNCELL\r |
| 1944 | TAD K0003\r |
| 1945 | CMA IAC\r |
| 1946 | DCA FAC+2\r |
| 1947 | DADD /SUBTRACT THIS AMOUNT FOR EACH LINKAGE REQUIRED\r |
| 1948 | JMP I .+1\r |
| 1949 | XX76NO\r |
| 1950 | XX76BK, TAD FOP+1 /IS THERE ENOUGH MEMORY TO DO THIS JOB?\r |
| 1951 | SPA CLA\r |
| 1952 | JMP I CON16W /NO, INSUFFICIENT MEMORY\r |
| 1953 | \r |
| 1954 | \fCON20, LOAD /AMOUNT OF MEMORY LEFT (DBL PREC) WAS IN FOP\r |
| 1955 | FOP\r |
| 1956 | SAVE\r |
| 1957 | DAVAIL\r |
| 1958 | TAD TJCHAN /PUT A/B(1), CHAN#(5), 1(1), CHAN ORDER(5) IN J1\r |
| 1959 | DCA I TJPNTR\r |
| 1960 | TAD TJTYPE /PUT TYPE (4), SORT CODE(8) IN J2\r |
| 1961 | CLL RTR /TYPE# TO AC0-3\r |
| 1962 | RTR\r |
| 1963 | RAR\r |
| 1964 | TAD TCMASK /SORT CODE TO AC 8-11\r |
| 1965 | ISZ TJPNTR\r |
| 1966 | DCA I TJPNTR\r |
| 1967 | TAD TNCELL /PUT NCELL IN J3 FOR NOW\r |
| 1968 | ISZ TJPNTR\r |
| 1969 | DCA I TJPNTR\r |
| 1970 | TAD TNSAM /PUT NSAM IN J4 FOR NOW\r |
| 1971 | ISZ TJPNTR\r |
| 1972 | DCA I TJPNTR\r |
| 1973 | TAD K0004 /SKIP OVER J5, J6, AND J7\r |
| 1974 | TAD TJPNTR\r |
| 1975 | DCA TJPNTR\r |
| 1976 | DCA I TJPNTR /PUT EOL WORD AT CURRENT END OF JOB LIST\r |
| 1977 | TAD TCHINC /WAS THIS A NEW CHANNEL?\r |
| 1978 | SNA CLA\r |
| 1979 | JMP CON21 /NO.\r |
| 1980 | TAD TJCHAN /YES, INDEX CHANNEL COUNTER\r |
| 1981 | SMA CLA /WHICH ONE, A OR B?\r |
| 1982 | JMP CON21-1 /CHANNEL IS IN A-SWEEP\r |
| 1983 | ISZ NCHB /J1(0)=1 FOR B (LO-RESOLUTION)\r |
| 1984 | JMP CON21\r |
| 1985 | \r |
| 1986 | /LOCAL CROSS-PAGE\r |
| 1987 | CON15Y, CON15\r |
| 1988 | CON14X, CON14\r |
| 1989 | CON16W, CON16H\r |
| 1990 | \r |
| 1991 | ISZ NCHA /J1(0)=0 FOR A (HI-RESOLUTION\r |
| 1992 | EJECT\r |
| 1993 | \r |
| 1994 | CON21, TAD TNSAM /-# OF DATA POINTS\r |
| 1995 | FLOAT\r |
| 1996 | SAVE\r |
| 1997 | FLOT01\r |
| 1998 | LOAD /PRESET FAC FOR JOB TYPE 1\r |
| 1999 | AVGTIM /TIME TO AVERAGE ONE POINT\r |
| 2000 | TAD TJTYPE /GET THE JOB TYPE\r |
| 2001 | BRAN\r |
| 2002 | K0002\r |
| 2003 | JMP CON21B /JOB TYPE=2, AVG AND VAR\r |
| 2004 | JMP CON21A /JOB TYPE=1, AVG ONLY\r |
| 2005 | FADD /JOB TYPE=3 (OTHER), AVG, VAR, AND TREND\r |
| 2006 | TRNTIM /TIME TO TAKE TREND OF ONE POINT\r |
| 2007 | CON21B, FADD /ADD TIME TO TAKE VARIANCE ON ONE POINT\r |
| 2008 | VARTIM\r |
| 2009 | \fCON21A, FMUL /MULTIPLY BY NUMBER OF POINTS\r |
| 2010 | FLOT01\r |
| 2011 | FADD /UPDATE BUSY TIME\r |
| 2012 | CALTIM\r |
| 2013 | SAVE\r |
| 2014 | CALTIM\r |
| 2015 | ISZ TNJOB /UPDATE JOB NUMBER\r |
| 2016 | TAD TCHINC /INCREASE LIST LENGTH\r |
| 2017 | TAD K0007\r |
| 2018 | TAD TSZLST /UPDATE AREA LEFT FOR JOB LIST\r |
| 2019 | SMA /OUT OF RESERVED AREA?\r |
| 2020 | JMP I CON14X /NO- GET NEXT JOB'S PARAMETERS\r |
| 2021 | \r |
| 2022 | /FIX PARAMETERS AND POINTERS\r |
| 2023 | CON22, CLA\r |
| 2024 | TAD TNJOB /JOBS HAVE ALL BEEN CHOSEN\r |
| 2025 | SNA CLA /THERE MUST BE AT LEAST ONE JOB\r |
| 2026 | JMP I CON15Y /IF NOT RETURN TO SPECIFY ONE\r |
| 2027 | TAD TJPNTR /SET UP MX AND CD LIST POINTERS\r |
| 2028 | DCA ADMPXA /START OF MX LIST-1 (HI RESOLUTION)\r |
| 2029 | TAD ADMPXA\r |
| 2030 | TAD NCHA\r |
| 2031 | IAC\r |
| 2032 | DCA ADMPXB /START OF LO MPLX LIST\r |
| 2033 | TAD ADMPXB\r |
| 2034 | TAD NCHB\r |
| 2035 | DCA ADCHNL /START OF CHANNEL LIST-1\r |
| 2036 | TAD NCHA\r |
| 2037 | TAD NCHB\r |
| 2038 | IAC\r |
| 2039 | CLL RAL /LENGTH OF CH LIST=2*NCHA+1+2*NCHB+1\r |
| 2040 | TAD ADCHNL\r |
| 2041 | DCA ADBUFA /START OF ADC BUFFER-A\r |
| 2042 | LOAD /SAMPLES IN SWEEP-A\r |
| 2043 | FSAMA\r |
| 2044 | FIX\r |
| 2045 | TAD KM0001\r |
| 2046 | DCA SAMA\r |
| 2047 | \r |
| 2048 | TAD NCHA /# CHANNELS IN A\r |
| 2049 | CMA IAC\r |
| 2050 | FLOAT\r |
| 2051 | SAVE\r |
| 2052 | FLOT01 /LENGTH OF BUFFER-A IS #SAMPLES * #CHANNELS\r |
| 2053 | TAD SAMA\r |
| 2054 | FLOAT\r |
| 2055 | FMUL\r |
| 2056 | FLOT01\r |
| 2057 | FIX\r |
| 2058 | DCA LNBUFA /LNBUFA IS POSITIVE\r |
| 2059 | LOAD\r |
| 2060 | FLOT01\r |
| 2061 | \f FMUL /FADEL IS # OF SAMPLE TIMES BACK\r |
| 2062 | FADEL\r |
| 2063 | FIX /GET PHYSICAL DISTANCE BACK\r |
| 2064 | TAD ADBUFA\r |
| 2065 | TAD KM0001\r |
| 2066 | CMA IAC\r |
| 2067 | DCA ADEL /-(ADBUFA +DISTANCE BACK)=ADEL\r |
| 2068 | LOAD /GET SAMPLES IN B\r |
| 2069 | FSAMB\r |
| 2070 | FIX\r |
| 2071 | TAD KM0001\r |
| 2072 | DCA SAMB\r |
| 2073 | TAD NCHB /GET PHYS. LENGTH OF BUFFER-B\r |
| 2074 | CMA IAC\r |
| 2075 | FLOAT\r |
| 2076 | SAVE\r |
| 2077 | FLOT01\r |
| 2078 | TAD SAMB\r |
| 2079 | FLOAT\r |
| 2080 | FMUL\r |
| 2081 | FLOT01\r |
| 2082 | FIX\r |
| 2083 | DCA LNBUFB /LENGTH OF B (IN LOCATIONS)\r |
| 2084 | \r |
| 2085 | TAD ADBUFA /START OF ADC BUFFER FOR HIGH RESOLUTION-1\r |
| 2086 | TAD LNBUFA\r |
| 2087 | DCA ADBUFB /START OF ADC BUFFER FOR LOW RESOLUTION-1\r |
| 2088 | \r |
| 2089 | LOAD /GET DISTANCE BACK IN BUFFER FOR START OF B\r |
| 2090 | FLOT01\r |
| 2091 | FMUL\r |
| 2092 | FBDEL\r |
| 2093 | FIX\r |
| 2094 | TAD ADBUFB\r |
| 2095 | TAD KM0001\r |
| 2096 | CMA IAC\r |
| 2097 | DCA BDEL /-(ADBUFA+DISTANCE BACK IN B)\r |
| 2098 | \r |
| 2099 | TAD LNBUFA /IS THERE AN A-SWEEP?\r |
| 2100 | SNA CLA\r |
| 2101 | EJECT\r |
| 2102 | \r |
| 2103 | JMP .+5 /NO, SET KBLA TO 0\r |
| 2104 | LOAD /POINTS TO GET AT SYNC TIME IN A\r |
| 2105 | FBLA\r |
| 2106 | FIX\r |
| 2107 | TAD KM0001\r |
| 2108 | DCA KBLA\r |
| 2109 | \r |
| 2110 | TAD LNBUFB /IS THERE A B-SWEEP?\r |
| 2111 | SNA CLA\r |
| 2112 | JMP CON22A /NO- THERE ARE 0 POINTS TO GET AT SYNC TIME\r |
| 2113 | LOAD /YES\r |
| 2114 | FBLB\r |
| 2115 | FIX\r |
| 2116 | TAD KM0001\r |
| 2117 | \fCON22A, DCA KBLB /B-POINTS TO GET AT SYNC TIME\r |
| 2118 | LOAD /GET TIME FROM SYNC POINT TO SYNC TIME\r |
| 2119 | KSYTIM-1\r |
| 2120 | DFIX\r |
| 2121 | KSYTIM\r |
| 2122 | TAD ADJLIS /SET POINTER TO START OF JOB LIST\r |
| 2123 | IAC\r |
| 2124 | CON23, DCA TJPNTR /MAKE UP MULTIPLEXOR LIST\r |
| 2125 | TAD I TJPNTR /GET J1\r |
| 2126 | SNA\r |
| 2127 | JMP CON24 /J1=0 IMPLIES END OF LIST\r |
| 2128 | AND K4037 /GET CHANNEL ORDER AND SWEEP\r |
| 2129 | SPA\r |
| 2130 | IAC /SWEEP-B\r |
| 2131 | SNA SPA\r |
| 2132 | TAD NCHA /(ORDER 0, SWEEP A) OR SWEEP B\r |
| 2133 | AND K0037A\r |
| 2134 | TAD ADMPXA\r |
| 2135 | DCA TCHLOC /ADDRESS FOR ENTRY IN MX-LIST\r |
| 2136 | TCHLOC=TEMP01\r |
| 2137 | TAD I TJPNTR /GET CHANNEL # FOR THIS JOB\r |
| 2138 | RTR\r |
| 2139 | RTR\r |
| 2140 | RTR\r |
| 2141 | AND K0037A\r |
| 2142 | DCA I TCHLOC /STORE IN ADDRESS CALCULATED\r |
| 2143 | TAD K0007 /MOVE POINTER TO NEXT J1\r |
| 2144 | TAD TJPNTR\r |
| 2145 | JMP CON23\r |
| 2146 | \r |
| 2147 | /LOCAL CONSTANTS\r |
| 2148 | KM0014, -0014\r |
| 2149 | K4037, 4037\r |
| 2150 | K0037A, 0037\r |
| 2151 | K0175A, 0175\r |
| 2152 | \r |
| 2153 | /THIS SUBROUTINE GETS MAX-X FOR A DISPLAY GROUP\r |
| 2154 | EJECT\r |
| 2155 | \r |
| 2156 | XMAXS, 0\r |
| 2157 | DCA TNPT /# OF POINTS\r |
| 2158 | TNPT=TEMP03\r |
| 2159 | JMS I SDISX /GET XZERO AND DELTAX\r |
| 2160 | JMP XMEXIT /NO MORE ENTRIES IN DISPLAY LIST\r |
| 2161 | LOAD /FIND #PTS*DELTAX+XZERO\r |
| 2162 | DELTAX\r |
| 2163 | DELTAX=FLOT01\r |
| 2164 | NORM /DELTAX*2^12\r |
| 2165 | TAD KM0014\r |
| 2166 | DCA FAC\r |
| 2167 | SAVE\r |
| 2168 | FLOT01 /DELTAX*2^12/2^12\r |
| 2169 | TAD FOP+1 /FOP HOLDS X0\r |
| 2170 | DCA TXZ\r |
| 2171 | TXZ=TEMP13\r |
| 2172 | \f TAD TNPT /#PTS*DELTAX\r |
| 2173 | FLOAT\r |
| 2174 | FMUL\r |
| 2175 | FLOT01\r |
| 2176 | DCOM\r |
| 2177 | TAD K0002\r |
| 2178 | FIX\r |
| 2179 | CLL RTR\r |
| 2180 | TAD TXZ /+(X-ZERO)\r |
| 2181 | DCA I BXPNTR /MAXIMUM-X FOR THIS DISPLAY\r |
| 2182 | TAD TXZ\r |
| 2183 | DCA FOP+1\r |
| 2184 | JMP I XMAXS\r |
| 2185 | \r |
| 2186 | XMEXIT, ISZ XMAXS\r |
| 2187 | JMP I XMAXS\r |
| 2188 | \r |
| 2189 | /LOCAL CROSSPAGE\r |
| 2190 | CON13Z, CON13\r |
| 2191 | SDISX, SDISS\r |
| 2192 | \r |
| 2193 | /ASK LAST OF SWEEP PARAMETER QUESTIONS\r |
| 2194 | CON24, TAD K0175A /SWEEP TIME+(CALCTIME*ASI)/(AS1-125US)\r |
| 2195 | FLOAT\r |
| 2196 | FADD\r |
| 2197 | FASI\r |
| 2198 | SAVE /(ASI-125US)\r |
| 2199 | FLOT01 /TIME LEFT FOR CALCULATIONS BETWEEN INTERRUPTS\r |
| 2200 | LOAD /-TIME TO DO CALCULATIONS AT 100% PROCESSOR AVAILABILITY\r |
| 2201 | CALTIM\r |
| 2202 | FDIV /ADJUST FOR ACTUAL AVAILABILITY\r |
| 2203 | FLOT01\r |
| 2204 | FADD /INCLUDE TIME TO ACCEPT SWEEP\r |
| 2205 | FSWTIM\r |
| 2206 | FMUL\r |
| 2207 | FASI /PUT IN TERMS OF USEC\r |
| 2208 | FADD\r |
| 2209 | FASI\r |
| 2210 | SAVE\r |
| 2211 | CALTIM\r |
| 2212 | DCOM\r |
| 2213 | SETH /THIS IS MIN TIME BETWEEN SWEEPS\r |
| 2214 | DIS24\r |
| 2215 | FLTOUT\r |
| 2216 | CON24A, FRAME /"LEAST SWEEP INTERVAL\r |
| 2217 | DIS24 /'-----' ':'S [>SDDDDD MS]"\r |
| 2218 | JMP I CON13Z /L.F.: RE SELECT JOBS\r |
| 2219 | FLTARG\r |
| 2220 | JMP CON24A /FORMAT ERROR-TRY AGAIN\r |
| 2221 | \f SAVE\r |
| 2222 | FSYNTM\r |
| 2223 | FSYNTM=FLOT01\r |
| 2224 | FADD /BUSY TIME (CALTIM) .GT. INTER SYNC TIME?\r |
| 2225 | CALTIM\r |
| 2226 | TAD FAC+1\r |
| 2227 | SPA CLA\r |
| 2228 | JMP CON24A /YES-TRY AGAIN\r |
| 2229 | CLA CMA /NO- PUT EOL WORDS IN MX-LISTS\r |
| 2230 | TAD ADMPXB\r |
| 2231 | DCA MPXPNT\r |
| 2232 | MPXPNT=TEMP01\r |
| 2233 | CLL CLA CML RAR /FIRST PUT EOMX WORDS IN PLACE\r |
| 2234 | TAD I MPXPNT /4000+FIRST CHAN (ORD=0) IN A TO END OF MXA-LIST\r |
| 2235 | DCA I MPXPNT\r |
| 2236 | TAD I MPXPNT /4000+ORD(0) OF A TO END OF MXB-LIST\r |
| 2237 | DCA I ADCHNL\r |
| 2238 | LOAD /GET ITIM FOR S0 FIRING\r |
| 2239 | FSYNTM\r |
| 2240 | FDIV /PUT IN TERMS OF ASI\r |
| 2241 | FASI\r |
| 2242 | SAVE /- TIME FOR S0 TO FIRE\r |
| 2243 | FITIM\r |
| 2244 | FITIM=FLOT02\r |
| 2245 | LOAD\r |
| 2246 | FSWBEG /GET TIME FOR ADC BUFFER OPENING\r |
| 2247 | FADD\r |
| 2248 | KM001F\r |
| 2249 | TAD FAC+1 /DOES SWEEP BEGIN BEFORE SYNC?\r |
| 2250 | SPA CLA /- TIME OF SWEEP START\r |
| 2251 | JMP CON24B /NO\r |
| 2252 | FADD /YES- TIME IT FROM PREVIOUS SWEEP\r |
| 2253 | FITIM /CONSTRAINT IS THAT SWEEPS INTERVAL IS >ITIM\r |
| 2254 | CON24B, DFIX\r |
| 2255 | KWTIM /TIME TO OPEN BUFFER WINDOWS\r |
| 2256 | LOAD\r |
| 2257 | FASI\r |
| 2258 | DFIX /GET ASI IN USEC\r |
| 2259 | ASI\r |
| 2260 | \r |
| 2261 | EJECT\r |
| 2262 | \r |
| 2263 | CON25, FRAME /"AVERAGE '----' SWEEPS"\r |
| 2264 | DIS25\r |
| 2265 | JMP CON25 /CAN'T CHANGE JOBS OR SWEEP PARAMETERS\r |
| 2266 | DECARG\r |
| 2267 | JMP CON25 /FORMAT ERROR - ASK AGAIN\r |
| 2268 | CMA IAC\r |
| 2269 | DCA NSWEP /-# OF SWEEPS REQUIRED\r |
| 2270 | JMP CON26\r |
| 2271 | \r |
| 2272 | /AUTO INDEX USE\r |
| 2273 | AXPNTR=10\r |
| 2274 | BXPNTR=11\r |
| 2275 | \f/GET PARAMETERS REQUIRED FOR DISPLAY WORD GENERATION\r |
| 2276 | PREDWS, 0\r |
| 2277 | DCA ND /# OF CURVES TO FIT ON SCOPE\r |
| 2278 | ND=TEMP03\r |
| 2279 | TAD ND /SET COUNT OF REQUIRED DISPLAY ENTRIES\r |
| 2280 | JMS SETCNS\r |
| 2281 | JMP I PREDWS /COUNT IS 0. EXIT\r |
| 2282 | CLA CMA /GET # OF COLUMNS REQUIRED\r |
| 2283 | TAD ND\r |
| 2284 | CLL RAR\r |
| 2285 | CLL RAR /(# OF CURVES/4)+1\r |
| 2286 | IAC\r |
| 2287 | FLOAT\r |
| 2288 | SAVE\r |
| 2289 | FLOT01 /# OF COLUMNS TO FIT ON SCOPE\r |
| 2290 | TAD ND /HOW MANY ROWS?\r |
| 2291 | BRAN\r |
| 2292 | K0002\r |
| 2293 | IAC /IF # OF CURVES IS 2, 2 ROWS (SCALE Y BY 2^1)\r |
| 2294 | SKP /IF # OF CURVES IS 1. 1 ROW (SCALE Y BY 2^0)\r |
| 2295 | TWO /OTHERWISE , 4 ROWS (SCALE Y BY 2^2)\r |
| 2296 | DCA YSS\r |
| 2297 | YSS=TEMP14\r |
| 2298 | TWOK /#POINTS ON DISPLAY *2\r |
| 2299 | FLOAT\r |
| 2300 | FDIV\r |
| 2301 | FLOT01\r |
| 2302 | FIX\r |
| 2303 | DCA XZD /DISTANCE BETWEEN COLUMNS *2\r |
| 2304 | XZD=TEMP15\r |
| 2305 | TAD YSS /GET Y-ZERO FOR 1ST ROW IN COLUMNS\r |
| 2306 | BRAN\r |
| 2307 | K0002\r |
| 2308 | TAD K0010 /4 ROWS, START AT Y=300\r |
| 2309 | TAD K0020 /2 ROWS, START AT Y=200\r |
| 2310 | DCA YZZ /1 ROW, START AT Y=000\r |
| 2311 | YZZ=TEMP16\r |
| 2312 | TAD YSS /GET Y-ZERO DECR TO GO FROM NTH TO N+1TH ROW\r |
| 2313 | CMA\r |
| 2314 | DCA TYSC\r |
| 2315 | TYSC=TEMP01\r |
| 2316 | TAD KM0200 /(-200)/2^(Y-SCALE+1)\r |
| 2317 | CLL CML RAR\r |
| 2318 | ISZ TYSC\r |
| 2319 | JMP .-2\r |
| 2320 | DCA YZD /0,-40,OR -20\r |
| 2321 | YZD=TEMP17\r |
| 2322 | TAD K1001A\r |
| 2323 | JMS PRESTY /SET UP FOR 1ST COLUMN\r |
| 2324 | JMP I PREDWS\r |
| 2325 | \f/SUBROUTINE PRESETS Y AND X FOR NEW COLUMN\r |
| 2326 | PRESTY, 0\r |
| 2327 | DCA XZ /X-ZERO IN AC\r |
| 2328 | XZ=TEMP20\r |
| 2329 | TAD YZZ /RESET TO TOP OF COLUMN\r |
| 2330 | DCA YZW\r |
| 2331 | YZW=TEMP21\r |
| 2332 | TAD KM0004 /4 ROWS (MAXIMUM) TO A COLUMN\r |
| 2333 | DCA UPCNT\r |
| 2334 | UPCNT=TEMP30\r |
| 2335 | JMP I PRESTY\r |
| 2336 | \r |
| 2337 | /GET DISPLAY WORDS FOR A GROUP - ENTER WITH # OF PTS IN AC\r |
| 2338 | GETDWS, 0\r |
| 2339 | CMA IAC /#OF POINTS TO DISPLAY\r |
| 2340 | FLOAT\r |
| 2341 | SAVE\r |
| 2342 | FLOT01\r |
| 2343 | TAD XZD /DISTANCE BETWEEN COLUMNS\r |
| 2344 | FLOAT /2*ROOM AVAILABLE/#POINTS = X-DIST BETWEEN POINTS*2\r |
| 2345 | FDIV\r |
| 2346 | FLOT01\r |
| 2347 | TAD K0007 /SCALE BY 2^7\r |
| 2348 | FIX /(DELTA-X)*2^8\r |
| 2349 | AND K7760 /DELTAX(8),0(4)\r |
| 2350 | TAD YSS /DELTAX(8),Y-SCALE(4)\r |
| 2351 | DCA I AXPNTR /THIS IS D1.\r |
| 2352 | \r |
| 2353 | TAD XZ /GET X-ZER0*2\r |
| 2354 | RTL\r |
| 2355 | AND K7700B /X-ZER0(6),0(6)\r |
| 2356 | TAD YZW /X-ZERO(6),Y-ZERO(6)\r |
| 2357 | DCA I AXPNTR /THIS IS D2.\r |
| 2358 | \r |
| 2359 | TAD YZW /MOVE TO NEXT ROW\r |
| 2360 | TAD YZD\r |
| 2361 | AND K0077C\r |
| 2362 | DCA YZW\r |
| 2363 | \r |
| 2364 | ISZ UPCNT /4 COLUMNS DONE?\r |
| 2365 | JMP .+4 /NO-CONTINUE\r |
| 2366 | TAD XZ /YES-MOVE TO NEXT COLUMN\r |
| 2367 | TAD XZD\r |
| 2368 | JMS PRESTY /SET UP FOR NEXT COLUMN.\r |
| 2369 | ISZ CHCNT /ALL GROUPS COMPLETE?\r |
| 2370 | JMP I GETDWS /NO-EXIT AT CALL+1\r |
| 2371 | ISZ GETDWS /YES-EXIT TO CALL+2\r |
| 2372 | JMP I GETDWS\r |
| 2373 | \r |
| 2374 | \f/SET COUNT OF # OF GROUPS\r |
| 2375 | SETCNS, 0\r |
| 2376 | SNA\r |
| 2377 | JMP I SETCNS /0, EXIT AT CALL+1\r |
| 2378 | CMA IAC\r |
| 2379 | DCA CHCNT\r |
| 2380 | CHCNT=TEMP13\r |
| 2381 | ISZ SETCNS /NOT 0, EXIT AT CALL+2\r |
| 2382 | JMP I SETCNS\r |
| 2383 | \r |
| 2384 | /LOCAL CONSTANTS\r |
| 2385 | K0077C, 0077\r |
| 2386 | K7700B, +7700\r |
| 2387 | K0020, +0020\r |
| 2388 | KM0200, -0200\r |
| 2389 | K7760, +7760\r |
| 2390 | K0010, 10\r |
| 2391 | \r |
| 2392 | /MAKE UP DISPLAY ENTRIES FOR JOBS AND CHANNELS\r |
| 2393 | CON26, TAD ADJLIS /MAKE UP JOB DISPLAY WORDS\r |
| 2394 | DCA AXPNTR\r |
| 2395 | TAD TNJOB /NUMBER OF CURVES ON SCOPE\r |
| 2396 | JMS I PREDWX\r |
| 2397 | CON26A, TAD AXPNTR /SKIP J1,J2,J3\r |
| 2398 | TAD K0003\r |
| 2399 | DCA AXPNTR\r |
| 2400 | TAD I AXPNTR /J4 HOLDS -#OF POINTS\r |
| 2401 | ISZ AXPNTR /SKIP OVER J5\r |
| 2402 | JMS I GETDWX /J6 AND J7 ARE DISPLAY WORDS\r |
| 2403 | JMP CON26A /DO NEXT JOB\r |
| 2404 | TAD ADCHNL /ALL DONE\r |
| 2405 | DCA AXPNTR /MAKE UP CHANNEL DISPLAY WORDS\r |
| 2406 | TAD NCHA /GET NUMBER OF CHANNELS IN ALL\r |
| 2407 | TAD NCHB\r |
| 2408 | JMS I PREDWX /DIVIDE UP SCOPE FOR TOTAL # OF CHAN\r |
| 2409 | TAD NCHA\r |
| 2410 | JMS I SETCNX /SET COUNT OF DISPLAYS WITH "SAMA" POINTS\r |
| 2411 | JMP CON26B /NONE-TRY LO-RESOLUTION\r |
| 2412 | TAD SAMA /SET UP DISPLAY FOR HI CHANS\r |
| 2413 | JMS I GETDWX\r |
| 2414 | JMP .-2\r |
| 2415 | CON26B, DCA I AXPNTR /EOL WORD FOR HI INPUTS\r |
| 2416 | TAD NCHB /SET COUNT OF DISPLAYS WITH "SAMB" POINTS\r |
| 2417 | JMS I SETCNX\r |
| 2418 | JMP CON26C /NONE-GO TO MODIFY\r |
| 2419 | TAD SAMB /SET UP DISPLAY FOR LO CHANS\r |
| 2420 | JMS I GETDWX\r |
| 2421 | JMP .-2\r |
| 2422 | CON26C, DCA I AXPNTR /EOL WORD FOR LO INPUTS\r |
| 2423 | \f/DISPLAY AND MODIFY INPUT PRESENTATION\r |
| 2424 | TAD ADCHNL /GET X-MAXIMA FOR EACH INPUT\r |
| 2425 | DCA AXPNTR\r |
| 2426 | TAD ADBUFA /PUT IN ADC BUFFER\r |
| 2427 | DCA BXPNTR\r |
| 2428 | TAD I ADCHNL /PUT 1ST CHAN IN ADMPXA\r |
| 2429 | DCA I ADMPXA\r |
| 2430 | TAD SAMA /GET HI RESOLUTION X-MAX'S\r |
| 2431 | JMS I XMAXX\r |
| 2432 | JMP .-2\r |
| 2433 | TAD SAMB /GET LO RESOLUTION X-MAX'S\r |
| 2434 | JMS I XMAXX\r |
| 2435 | JMP .-2\r |
| 2436 | DCA TMOD /TMOD=0 FOR NO MODIFICATIONS\r |
| 2437 | TMOD=TEMP16\r |
| 2438 | CON27, TAD ADCHNL /DISPLAY WORDS BEGIN AT ADCHNL-1\r |
| 2439 | JMS I CON1SX\r |
| 2440 | FRAME /"$FA41INPUTS$AP21"\r |
| 2441 | DIS27\r |
| 2442 | NOP /THIS IS SKIPPED\r |
| 2443 | JMS I CRBRAX /BRANCH ON KEYBOARD\r |
| 2444 | JMP .+3 /NO CHARACTER\r |
| 2445 | JMP CON29 /C.R.:ALLOCATION OK\r |
| 2446 | NOP /L.F. FORGET IT\r |
| 2447 | CLA CMA /OTHER: GET CHANNEL NUMBERS IN ORDER\r |
| 2448 | TAD ADMPXA \r |
| 2449 | DCA CXPNTR\r |
| 2450 | CXPNTR=12\r |
| 2451 | CON27A, JMS SDISS\r |
| 2452 | JMP CON27B /OUT OF HI CHANNELS-GO TO LOW\r |
| 2453 | TAD K1000B /PUT "H@" IN SWEEP MESSAGE\r |
| 2454 | JMS I CON2SX /DISPLAY DOTS AND MESSAGE\r |
| 2455 | JMP CON27A /GET NEXT CHANNEL\r |
| 2456 | CON27B, ISZ CXPNTR /SKIP OVER FIRST OF HI\r |
| 2457 | JMS SDISS\r |
| 2458 | JMP CON27 /OUT OF CHANNELS, RESTART\r |
| 2459 | TAD K1400 /PUT "L@" IN SWEEP MESSAGE\r |
| 2460 | JMS I CON2SX /DISPLAY DOTS AND MESSAGE\r |
| 2461 | JMP CON27B+1\r |
| 2462 | \r |
| 2463 | /LOCAL CONSTANTS\r |
| 2464 | K1000B, 1000\r |
| 2465 | K1400, 1400\r |
| 2466 | KM0006, -0006\r |
| 2467 | \f/LOCAL CROSSPAGE\r |
| 2468 | XMAXX, XMAXS\r |
| 2469 | OTTY, CON30-1\r |
| 2470 | CON1SX, CON1S\r |
| 2471 | CON2SX, CON2S\r |
| 2472 | CRBRAX, CRBRAS\r |
| 2473 | GETDWX, GETDWS\r |
| 2474 | PREDWX, PREDWS\r |
| 2475 | SETCNX, SETCNS\r |
| 2476 | \r |
| 2477 | /THIS SUBROUTINE DECODES DISPLAY WORDS: SDIS\r |
| 2478 | /POINTER IS AUTOINDEX REGISTER "AXPNTR"\r |
| 2479 | /CALL: SDIS\r |
| 2480 | / END OF LIST RETURN\r |
| 2481 | / NORMAL RETURN\r |
| 2482 | \r |
| 2483 | SDISS, 0\r |
| 2484 | TAD I AXPNTR /DX (8),YS(4)\r |
| 2485 | SNA\r |
| 2486 | JMP I SDISS /EOL IF D1=0, RETURN TO CALL+1\r |
| 2487 | DCA SHFR+1\r |
| 2488 | TAD SHFR+1\r |
| 2489 | AND K0017 /HAVE Y SCALE FACTOR\r |
| 2490 | DCA YS\r |
| 2491 | YS=TEMP17\r |
| 2492 | DCA SHFR /0 TO HI FAC\r |
| 2493 | TAD K0004\r |
| 2494 | IAC\r |
| 2495 | SHFT /MOVE BINARY POINT TO END OF SHFR+1\r |
| 2496 | SAVE /DX(8) IS INTEGER PART (5), FRACTIONAL PART (3)\r |
| 2497 | DELTAX\r |
| 2498 | TAD I AXPNTR /XZ(6),YZ(6)\r |
| 2499 | DCA SHFR+1\r |
| 2500 | TAD K0004 /MOVE YZ TO 10 SIGNIF, BITS\r |
| 2501 | SHFT\r |
| 2502 | TAD SHFR+1\r |
| 2503 | DCA YZ /POSITION OF Y-ZERO\r |
| 2504 | YZ=TEMP20\r |
| 2505 | TAD KM0006 /MOVE XZ TO 10 BITS OF SHFR+1\r |
| 2506 | SHFT\r |
| 2507 | TAD SHFR+1\r |
| 2508 | AND KM0006 /7772 - IGNORE SCALE PART (MOSTLY)\r |
| 2509 | DILX /LOAD X\r |
| 2510 | DCA DBLARG /DBLARG & DBLARG+1 HOLD X-POSITION\r |
| 2511 | ISZ SDISS /EXIT TO CALL+2\r |
| 2512 | JMP I SDISS\r |
| 2513 | \f/SUBROUTINE SCALES, BIASES, AND DISPLAYS Y: YDIS\r |
| 2514 | /USES "YS", "YZ", FROM SDIS, Y VALUE IN DBLAC AT CALL\r |
| 2515 | YDISS, 0\r |
| 2516 | DCA SHFR /VALUE TO BE SCALED, BIASED\r |
| 2517 | TAD YS /SCALE IT\r |
| 2518 | CMA IAC\r |
| 2519 | SHFT\r |
| 2520 | TAD YZ /ADD BIAS\r |
| 2521 | TAD SHFR /GET SCALED VALUE\r |
| 2522 | DILY /DISPLAY IT\r |
| 2523 | CLA\r |
| 2524 | DISD\r |
| 2525 | JMP .-1\r |
| 2526 | DIXY\r |
| 2527 | JMP I YDISS\r |
| 2528 | \r |
| 2529 | CON29, DCA I ADMPXA /REPLACE EOL FOR JOB LIST\r |
| 2530 | LOAD /ASI BETWEEN SYNCS\r |
| 2531 | FITIM\r |
| 2532 | DFIX /FIX TO DOUBLE-WORD\r |
| 2533 | KITIM\r |
| 2534 | TAD ADBUFA /PUT X-MAXIMUMS IN ADC BUFFER\r |
| 2535 | DCA BXPNTR\r |
| 2536 | TAD ADJLIS /TAKE PARAMETERS FROM JOB LIST\r |
| 2537 | DCA AXPNTR\r |
| 2538 | CON29A, TAD I AXPNTR /LOOK AT J1\r |
| 2539 | SNA CLA\r |
| 2540 | JMP I OTTY /J1=0,END OF LIST\r |
| 2541 | ISZ AXPNTR /SKIP J2,J3\r |
| 2542 | ISZ AXPNTR\r |
| 2543 | TAD I AXPNTR /J4 HAS # OF POINTS\r |
| 2544 | ISZ AXPNTR /SKIP J5\r |
| 2545 | JMS I XMAXY /FIND MAX-X USING J6 AND J7\r |
| 2546 | JMP I CON29B /GET NEXT JOB\r |
| 2547 | \r |
| 2548 | DCA TMOD /MODIFY WHICH? -0 (NONE) TO BEGIN WITH\r |
| 2549 | CON30, TAD ADJLIS\r |
| 2550 | JMS I CON1SY /INITIALIZE POINTERS & COUNTERS\r |
| 2551 | FRAME /"$EA41AVERAGES$"\r |
| 2552 | DIS30\r |
| 2553 | CON1SY, CON1S /SKIPPED\r |
| 2554 | JMS CRBRAS /BRANCH ON CR OR LF\r |
| 2555 | JMP CON30A /NEITHER CR OR LF\r |
| 2556 | JMP CON32 /C.R.:ALLOCATION OK\r |
| 2557 | JMP CON30A /L.F.:CHANGE ALLOCATION\r |
| 2558 | \r |
| 2559 | /LOCAL CROSSPAGE\r |
| 2560 | SDISZ, SDISS\r |
| 2561 | CON29B, CON29A\r |
| 2562 | \fCON30A, TAD I AXPNTR /DISPLAY AVERAGES ALLOCATIONS\r |
| 2563 | SNA CLA /J1=0?\r |
| 2564 | JMP CON30 /YES-START OVER\r |
| 2565 | ISZ AXPNTR /SKIP J2 AND J3\r |
| 2566 | ISZ AXPNTR\r |
| 2567 | TAD I AXPNTR /J4 HAS # OF POINTS\r |
| 2568 | DCA TPSAVE\r |
| 2569 | TPSAVE=TEMP02\r |
| 2570 | ISZ AXPNTR /SKIP J5\r |
| 2571 | JMS I SDISZ /SET UP DISPLAY: J6 J7 ARE DISPLAY WORDS\r |
| 2572 | DLIMX, DLIMS /SKIPPED\r |
| 2573 | SETH\r |
| 2574 | DIS30A /DISPLAY LIMIT DOTS AND JOB #\r |
| 2575 | JMS I DLIMX /LIMIT DOTS, PUT JOB # IN BUFFER\r |
| 2576 | SETH\r |
| 2577 | DIS30A /JOB#\r |
| 2578 | LDH\r |
| 2579 | JMS I DSCX\r |
| 2580 | JMP .-2\r |
| 2581 | JMP CON30A /GET NEXT JOB\r |
| 2582 | \f\r |
| 2583 | F4K, 0015\r |
| 2584 | 2000\r |
| 2585 | 0000\r |
| 2586 | \r |
| 2587 | TEMP, 0\r |
| 2588 | 0\r |
| 2589 | 0\r |
| 2590 | \f\r |
| 2591 | /LOCAL CROSSPAGE\r |
| 2592 | XMAXY, XMAXS\r |
| 2593 | DSCX, DSCS\r |
| 2594 | \r |
| 2595 | \r |
| 2596 | /SUBROUTINE TO BRANCH AND ECHO KBD CR OR LF\r |
| 2597 | CRBRAS, 0\r |
| 2598 | KSF /KEYBOARD STRUCK?\r |
| 2599 | JMP I CRBRAS /NO-EXIT TO CALL+1\r |
| 2600 | KRB /YES- READ IT IN\r |
| 2601 | BRAN /CHECK FOR CR OR LF\r |
| 2602 | CRLF\r |
| 2603 | ISZ CRBRAS /LF - EXITS TO CALL+3\r |
| 2604 | SKP /CR - EXITS TO CALL+2\r |
| 2605 | JMP I CRBRAS /OTHER - EXITS TO CALL+1\r |
| 2606 | TAD KCR /FOR CR OR LF - TYPE CRLF\r |
| 2607 | TYPE\r |
| 2608 | ISZ CRBRAS /EXIT TO CALL+2(CR) OR CALL+3(LF)\r |
| 2609 | JMP I CRBRAS\r |
| 2610 | \f *4372\r |
| 2611 | /OUTPUT CONTROL TAPE OR MODIFY MEMORY\r |
| 2612 | CON32, FRAME /"PUNCH CONTROL TAPE? '-'\r |
| 2613 | DIS32 /(Y: YES)"\r |
| 2614 | JMP CON32 /LF: CAN'T GO BACK - ASK AGAIN\r |
| 2615 | DCA TENPUN /INITIALIZE FOR "NO PUNCH"\r |
| 2616 | TENPUN=TEMP30\r |
| 2617 | ALPHA /GET RESPONSE\r |
| 2618 | BRAN\r |
| 2619 | YESNO\r |
| 2620 | ISZ TENPUN /Y: YES, TENPUN=1 TO ALLOW PUNCHING\r |
| 2621 | CLA /*** TITLE NOT ASKED,A MS. DEVICE WRITTEN ON.\r |
| 2622 | SNA CLA /OTHER\r |
| 2623 | JMP CON32B /NO PUNCH - DON'T ASK FOR TITLE\r |
| 2624 | CON32A, FRAME /"TITLE:\r |
| 2625 | DIS32A /'-------------'"\r |
| 2626 | JMP CON32A /LF: ASK AGAIN\r |
| 2627 | JMS I INITOX /INITIALIZE SYS DEVICE (OUTPUT)\r |
| 2628 | TAD TXMRK /MOVE HALFWORD POINTER TO TITLE\r |
| 2629 | SRCH\r |
| 2630 | K0006B, 0006 /SKIPPED\r |
| 2631 | JMS I TITLEX /VISUAL MODE TITLE ON TAPE\r |
| 2632 | TXPUN /DO 3 CRLF'S\r |
| 2633 | TXCRLF\r |
| 2634 | SETH /REPOSITION HALFWORD POINTER TO TITLE\r |
| 2635 | DIS32A\r |
| 2636 | TPUNQ /OUTPUT TITLE TO SYS DEV.\r |
| 2637 | CON32B, TXPUN /"<CRLF>SWEEP SUMMARY<CRLF>"\r |
| 2638 | TXT32\r |
| 2639 | TXPUN /OUTPUT SUMMARY\r |
| 2640 | DIS09 /END WITH 2 CRLF'S\r |
| 2641 | TXPUN /" AVERAGES\r |
| 2642 | TXT32A /CHAN RATE TYPE SORT<CRLF>"\r |
| 2643 | CON33, TAD ADJLIS /GO THRU JOB LIST FOR THIS INFO\r |
| 2644 | IAC\r |
| 2645 | DCA TOPNT\r |
| 2646 | TOPNT=TEMP07\r |
| 2647 | \fCON33A, SETH /".XX.....X....X....XXX<CRLF>"IS FORMAT\r |
| 2648 | TXT33A\r |
| 2649 | TAD I TOPNT /GET J1\r |
| 2650 | SNA /J1=0?\r |
| 2651 | JMP I CON34X /YES-END OF JOB LIST\r |
| 2652 | DCA SHFR /J1 = A/B(1), CHAN#(5), 1(1), CHAN ORDER (5)\r |
| 2653 | ISZ TOPNT\r |
| 2654 | TAD I TOPNT /J2=TYPE (4), SORT CODE (8)\r |
| 2655 | DCA SHFR+1\r |
| 2656 | TAD SHFR+1 /GET SORT CODE\r |
| 2657 | AND K0377\r |
| 2658 | DCA TCNTG\r |
| 2659 | TCNTG=TEMP03\r |
| 2660 | TAD KM06 /SHIFT J1,J2 RIGHT 6\r |
| 2661 | SHFT\r |
| 2662 | TAD SHFR /CHAN # IN AC7-11\r |
| 2663 | AND K0037B\r |
| 2664 | DCA TCHN\r |
| 2665 | TCHN=TEMP04\r |
| 2666 | MTW /MOVE JOB TYPE TO SHFR+1 BITS 8-11\r |
| 2667 | SHFT\r |
| 2668 | TAD SHFR /SIGN EXTENSION IN SHFTS SO BIT 0 OF SHFR HOLDS A/B\r |
| 2669 | SPA CLA\r |
| 2670 | TAD K0004 /L FOR LO\r |
| 2671 | TAD K4010 /H FOR HI\r |
| 2672 | DCA I TXT33X /PUT IT IN MESSAGE\r |
| 2673 | TAD SHFR+1\r |
| 2674 | AND K0017 /GET TYPE\r |
| 2675 | DCA TJOB\r |
| 2676 | TJOB=TEMP05 /OUTPUT CHAN # TO BUFFER\r |
| 2677 | TAD TCHN\r |
| 2678 | OCTOUT\r |
| 2679 | TAD TJOB /OUTPUT TYPE TO BUFFER\r |
| 2680 | OCTOUT\r |
| 2681 | TAD TCNTG /OUTPUT SORT CODE TO BUFFER\r |
| 2682 | OCTOUT\r |
| 2683 | TXPUN /OUTPUT BUFFER TO TTY\r |
| 2684 | TXT33A\r |
| 2685 | TAD K0006B /MOVE TO NEXT J1\r |
| 2686 | TAD TOPNT\r |
| 2687 | DCA TOPNT\r |
| 2688 | JMP CON33A /DO NEXT JOB\r |
| 2689 | \f/SUBROUTINE TO DISPLAY DOTS AT EXTREMA,POSITION, DSC,AND SEQ.\r |
| 2690 | DLIMS, 0\r |
| 2691 | TAD FOP+1 /SET X TO X-ZERO\r |
| 2692 | DILX\r |
| 2693 | CLA IAC\r |
| 2694 | TAD KM1000 /SET Y TO BOTTOM\r |
| 2695 | JMS I YDISX /DISPLAY LOWER LEFT DOT\r |
| 2696 | TAD K0777 /SET Y TO TOP\r |
| 2697 | JMS I YDISX /DISPLAY UPPER LEFT\r |
| 2698 | TAD I BXPNTR /SET X TO MAX\r |
| 2699 | DILY /DISPLAY UPPER RIGHT\r |
| 2700 | DISD\r |
| 2701 | JMP .-1\r |
| 2702 | DIXY\r |
| 2703 | CLA IAC\r |
| 2704 | TAD KM1000 /SET Y TO BOTTOM\r |
| 2705 | JMS I YDISX /DISPLAY BOTTOM RIGHT\r |
| 2706 | TAD FOP+1 /POSITION DSC\r |
| 2707 | DCA I XDSCX\r |
| 2708 | TAD YZ /IN MIDDLE RIGHT OF FIELD\r |
| 2709 | DCA I YDSCX\r |
| 2710 | ISZ TDCNTR /NEXT SEQUENCE #\r |
| 2711 | TAD TDCNTR /PUT IT IN MESSAGE FOR DISPLAY\r |
| 2712 | OCTOUT\r |
| 2713 | JMP I DLIMS\r |
| 2714 | \r |
| 2715 | /LOCAL CROSSPAGE\r |
| 2716 | XDSCX, CHXL\r |
| 2717 | YDSCX, CHYL\r |
| 2718 | YDISX, YDISS\r |
| 2719 | K0777, 777\r |
| 2720 | \r |
| 2721 | /SUBROUTINE TO INITIALIZE PARAM POINTERS AND DISPLAY MESSAGE\r |
| 2722 | CON1S, 0\r |
| 2723 | DCA AXPNTR /POINTER TO DISPLAY WORDS\r |
| 2724 | TAD ADBUFA /POINTER TO X-MAX LIST\r |
| 2725 | DCA BXPNTR\r |
| 2726 | DCA TDCNTR /SET SEQUENCE # TO 0\r |
| 2727 | TDCNTR=TEMP14\r |
| 2728 | TAD TMOD /SET MODIS COUNTER\r |
| 2729 | DCA TMDCNT\r |
| 2730 | TMDCNT=TEMP15\r |
| 2731 | JMP I CON1S\r |
| 2732 | \f/SUBROUTINE TO DISPLAY LIMIT DOTS WITH MESSAGE FOR INPUT DISPLAY\r |
| 2733 | CON2S, 0\r |
| 2734 | DCA I DIS27X /PUT SWEEP TYPE IN MESSAGE\r |
| 2735 | SETH /"XX:XX,X"\r |
| 2736 | DIS27A\r |
| 2737 | JMS DLIMS /DISPLAY LIMIT DOTS AND FILL ITEM #\r |
| 2738 | TAD I CXPNTR /GET CHANNEL NUMBER\r |
| 2739 | AND K0037B\r |
| 2740 | OCTOUT /FILL SPACE FOR CHAN # IN MESSAGE\r |
| 2741 | SETH /DISPLAY THE MESSAGE\r |
| 2742 | DIS27A\r |
| 2743 | LDH\r |
| 2744 | JMS I DSCY\r |
| 2745 | JMP .-2\r |
| 2746 | JMP I CON2S\r |
| 2747 | \r |
| 2748 | /LOCAL CROSSPAGE\r |
| 2749 | DSCY, DSCS\r |
| 2750 | DIS27X, DIS27A+5\r |
| 2751 | \r |
| 2752 | \r |
| 2753 | /LOCAL CONSTANTS\r |
| 2754 | KM1000, -1000\r |
| 2755 | K4010, 4010\r |
| 2756 | K0037B, 0037\r |
| 2757 | KM06, -6\r |
| 2758 | \r |
| 2759 | /LOCAL CROSSPAGE\r |
| 2760 | INITOX, INITOS\r |
| 2761 | TPUNQ=JMS I .\r |
| 2762 | TPUNQS\r |
| 2763 | TXPUN=JMS I .\r |
| 2764 | TXPUNS\r |
| 2765 | TITLEX, TITLES\r |
| 2766 | TXT33X, TXT33A+4\r |
| 2767 | CON34X, CON34\r |
| 2768 | \f\r |
| 2769 | *4603\r |
| 2770 | /SUBROUTINES TO HANDLE DISPLAY IO [SU46AB]\r |
| 2771 | /HAND READABLE PUNCH SUBROUTINE: TITLE\r |
| 2772 | HCNTR=TEMP02\r |
| 2773 | \r |
| 2774 | /CALL: SETH\r |
| 2775 | / ADDR OF TEXT TO BE USED IN TITLE\r |
| 2776 | / TITLE\r |
| 2777 | \r |
| 2778 | TITLES, 0\r |
| 2779 | TAD K0377 /PUNCH A RUBOUT (BRACKET TITLE WITH RUBOUTS)\r |
| 2780 | JMS I PUNX1\r |
| 2781 | JMP PSKIP-1 /PUNCH A SPACE (6-200 CODES)\r |
| 2782 | HRNXT, LDH /GET 6 BIT CHAR\r |
| 2783 | CLL RAL\r |
| 2784 | TAD ADRTBL /FIND ENTRY IN DISPLAY TABLE\r |
| 2785 | DCA PNTR\r |
| 2786 | TAD I PNTR /GET THE ENTRY\r |
| 2787 | SNA CLA /SEE IF SPECIAL CHARACTER\r |
| 2788 | JMP HRCHK /SPECIAL - FIND OUT WHAT TO DO\r |
| 2789 | JMS I SHPX1 /SAVE HALFWORD POINTER FOR MORE CHARACTERS\r |
| 2790 | TAD KM0004 /FOUR HALF WORDS TO A CHARACTER\r |
| 2791 | DCA HCNTR\r |
| 2792 | SETH\r |
| 2793 | PNTR, 0 /SET UP POINTER FOR TABLE PUNCH\r |
| 2794 | HRPUN, LDH /GET LINE\r |
| 2795 | TAD K0200A /8 HOLE PUNCHED TOO\r |
| 2796 | JMS I PUNX1 /PUNCH THE LINE\r |
| 2797 | ISZ HCNTR\r |
| 2798 | JMP HRPUN /MORE HALVES\r |
| 2799 | JMS I RHPX1 /ALL PUNCHED - RESTORE TEXT POINTER\r |
| 2800 | MTW /SKIP TWO LINES\r |
| 2801 | JMP PSKIP\r |
| 2802 | HRCHK, ISZ PNTR /SPECIAL CHAR FIND OUT\r |
| 2803 | TAD I PNTR /WHAT TO DO\r |
| 2804 | SMA SZA /SPACE OR END OF TEXT?\r |
| 2805 | JMP HRNXT /NO, IGNORE AND GET NEXT CHARACTER\r |
| 2806 | SNA CLA /END OF TEXT?\r |
| 2807 | JMP TILEND /YES - GO PUNCH RUBOUT AND EXIT\r |
| 2808 | LDH /SPACE - SEE IF NEXT CHARACTER IS A SPACE\r |
| 2809 | TAD KM040A\r |
| 2810 | SNA CLA\r |
| 2811 | JMP .-3 /YES - COMPRESS MULTIPLE SPACE TO 1 SPACE\r |
| 2812 | JMS I DHPX2 /MOVE BACK HALFWORD POINTER\r |
| 2813 | TAD KM006 /AND PUNCH A SPACE\r |
| 2814 | EJECT\r |
| 2815 | \r |
| 2816 | PSKIP, DCA HCNTR /PUNCH 6 LINES OF 200 CODE\r |
| 2817 | TAD K0200A\r |
| 2818 | JMS I PUNX1\r |
| 2819 | ISZ HCNTR /DONE 6 LINES?\r |
| 2820 | JMP .-3 /NO - CONTINUE\r |
| 2821 | JMP HRNXT /YES - GET NEXT CHARACTER\r |
| 2822 | TILEND, TAD K0377 /PUNCH A RUBOUT AND EXIT\r |
| 2823 | JMS I PUNX1\r |
| 2824 | JMP I TITLES\r |
| 2825 | \f/LOCAL CONSTANTS\r |
| 2826 | KM006, -6\r |
| 2827 | KM040A, -40\r |
| 2828 | ADRTBL, DSCTBL\r |
| 2829 | \r |
| 2830 | /LOCAL CROSSPAGE\r |
| 2831 | PUNX1, PUNCHS /PUNCH A CHARACTER\r |
| 2832 | DHPX2, DHPS /MOVE BACK 1 CHARACTER\r |
| 2833 | \r |
| 2834 | /SUBROUTINE TO DO Q AND A BETWEEN TTY AND DIS: FRAME\r |
| 2835 | / FRAME\r |
| 2836 | / [FRAME NAME /ADDRESS OF TEXT TO BE DISPLAYED\r |
| 2837 | / L.F. RETN /L.F. AT ANYTIME RETURNS HERE\r |
| 2838 | / C.R. RETN /C.R. AFTER FINAL BLANK RETURNS HERE\r |
| 2839 | FRAMES, 0\r |
| 2840 | CLA\r |
| 2841 | TAD I FRAMES /GET ADDRESS\r |
| 2842 | DCA FRSET\r |
| 2843 | ISZ FRAMES /MOVE RETURN TO CALL+2\r |
| 2844 | JMS FRSETH /MOVE POINTER TO START OF TEXT\r |
| 2845 | JMS I TXIX /PUT BLANK MARKS IN KBD AREAS\r |
| 2846 | JMS FRDIS /DISPLAY THE TEXT\r |
| 2847 | JMS FRSETH /MOVE POINTER TO START OF TEXT\r |
| 2848 | FRQUES, TAD TXMRK /GET KBD AREA\r |
| 2849 | SRCH\r |
| 2850 | JMP FREND /END OF TEXT - EXIT\r |
| 2851 | FRLOOP, JMS I SHPX1 /SAVE TEXT POINTER\r |
| 2852 | JMS FRDIS /DISPLAY TEXT\r |
| 2853 | JMS I RHPX1 /RESTORE TEXT POINTER\r |
| 2854 | JMS I TXKX /ACCEPT A CHARACTER INTO BUFFER.\r |
| 2855 | JMP FRLOOP /NORMAL RETURN\r |
| 2856 | JMP FREND+1 /L.F. - EXIT TO CALL+2\r |
| 2857 | JMP FRQUES /C.R. - GET NEXT KBD AREA\r |
| 2858 | FREND, ISZ FRAMES /NO MORE KBD AREAS TO FILL\r |
| 2859 | JMS FRSETH /REPOSITION TEXT POINTER\r |
| 2860 | JMP I FRAMES /EXIT\r |
| 2861 | \r |
| 2862 | FRSETH, 0\r |
| 2863 | SETH /REPOSITION TEXT POINTER\r |
| 2864 | FRSET, 0 /TO START OF FRAME\r |
| 2865 | JMP I FRSETH\r |
| 2866 | \r |
| 2867 | FRDIS, 0 /DISPLAY THE FRAME\r |
| 2868 | SETH /INITIALIZE DISPLAY\r |
| 2869 | DSINIT\r |
| 2870 | LDH /X0,Y0,SIZE,INTENSITY\r |
| 2871 | JMS I DSCX1\r |
| 2872 | JMP .-2\r |
| 2873 | JMS FRSETH /REPOSITION TEXT POINTER\r |
| 2874 | LDH /DISPLAY THE CHARACTERS\r |
| 2875 | JMS I DSCX1 /OF THE FRAME\r |
| 2876 | JMP .-2\r |
| 2877 | JMP I FRDIS /TEXT ENDED\r |
| 2878 | \f/DISPLAY INITIALIZE\r |
| 2879 | DSINIT, 4411 /$AH10@\r |
| 2880 | 1010 /X=000, Y=001, SIZE=10,\r |
| 2881 | 0000\r |
| 2882 | \r |
| 2883 | /LOCAL CROSSPAGE\r |
| 2884 | TXIX, TXIS /PUT BLANKMARKS IN KBD ENTRIES\r |
| 2885 | TXKX, TXKS /GET KBD INTO KBD AREA\r |
| 2886 | DSCX1, DSCS /DISPLAY CHARACTER\r |
| 2887 | RHPX1, RHPS /RESTORE HALFWORD POINTER\r |
| 2888 | SHPX1, SHPS /SAVE HALFWORD POINTER\r |
| 2889 | \r |
| 2890 | /THIS SUBROUTINE GETS OCTAL ARGUMENT: OCTARG\r |
| 2891 | OCTOP=ARITH4\r |
| 2892 | OCTARS, 0\r |
| 2893 | JMS I ARSETX /GET TO KBD - ENTRY\r |
| 2894 | OCNEXT, LDH /GET CHARACTER\r |
| 2895 | BRAN\r |
| 2896 | OCSORT /IS IT SPACE OR TXMRK?\r |
| 2897 | JMP OCNEXT /SPACE IGNORE\r |
| 2898 | JMP OCEND /TXMRK - END\r |
| 2899 | JMS I STRNUX /OTHERS - IS IT A NUMERIC?\r |
| 2900 | JMP I OCTARS /NO - EXIT TO CALL+1 (ERROR RETURN)\r |
| 2901 | TAD KM007A /NUMERIC 0-7?\r |
| 2902 | SMA SZA CLA\r |
| 2903 | JMP I OCTARS /NO - ERROR RETURN\r |
| 2904 | LOAD /SHIFT ACCUMULATED SUM 3 LEFT\r |
| 2905 | OCTOP-1 /(MULTIPLIES BY 8)\r |
| 2906 | TAD STRSAV /ADD CURRENT DIGIT\r |
| 2907 | DCA OCTOP+1\r |
| 2908 | TAD K0003\r |
| 2909 | SHFT /NEW ACCUMULATED SUM\r |
| 2910 | DADD\r |
| 2911 | JMP OCNEXT /NEXT CHARACTER\r |
| 2912 | OCEND, TAD OCTOP /OVERFLOW ?\r |
| 2913 | SZA CLA\r |
| 2914 | JMP I OCTARS /YES - ERROR RETURN\r |
| 2915 | TAD OCTOP+1 /NO - GET ACCUMULATED SUM\r |
| 2916 | ISZ OCTARS /EXIT TO CALL+2\r |
| 2917 | JMP I OCTARS\r |
| 2918 | \r |
| 2919 | /CONSTANTS THIS PAGE\r |
| 2920 | KM007A, -7\r |
| 2921 | K0200A, 0200\r |
| 2922 | ARSETX, ARSET\r |
| 2923 | STRNUX, STRNUM\r |
| 2924 | \r |
| 2925 | \r |
| 2926 | \f*5000\r |
| 2927 | /REQ: [SU60A],[SU64A]; THIS IS [SU50AC]\r |
| 2928 | /DISPLAY STRIPPED ASCII CHAR IN AC: DSC\r |
| 2929 | /CALL: LDH /GET HALFWORD\r |
| 2930 | / DSC /DISPLAY IF NON ZERO\r |
| 2931 | / JMP .-2 /DISPLAY THE NEXT HALFWORD\r |
| 2932 | \r |
| 2933 | /TEMPORARY STORAGE:\r |
| 2934 | CHCNT3=TEMP02\r |
| 2935 | CHCNT2=TEMP03\r |
| 2936 | CHCNT1=TEMP04\r |
| 2937 | CHROT=TEMP05\r |
| 2938 | CHFAC=TEMP01\r |
| 2939 | CHPNT=TEMP06\r |
| 2940 | CHYS=TEMP01\r |
| 2941 | \r |
| 2942 | /DISPLAY TABLE EXCEPTIONS\r |
| 2943 | SPACE=7777\r |
| 2944 | ENDIS=0\r |
| 2945 | RESET=1\r |
| 2946 | CRETN=2\r |
| 2947 | IGNOR=3\r |
| 2948 | \r |
| 2949 | DSCS, 0\r |
| 2950 | CLL RAL /TWICE STRIPPED ASCII\r |
| 2951 | TAD ADSTBL /FOR TABLE POINTER\r |
| 2952 | DCA CHPNT\r |
| 2953 | TAD I CHPNT /GET DISPLAY WORD 1\r |
| 2954 | ISZ CHPNT /SET FOR NEXT DISPLAY WORD 2\r |
| 2955 | SNA /NOT SPECIAL CHARACTER?\r |
| 2956 | JMP CHSPEC /SPECIAL CHARACTER\r |
| 2957 | \r |
| 2958 | CHSET1, DCA CHROT /HOLDS ROTATED DISPLAY WORD\r |
| 2959 | TAD CHXL /MOVE TO NEXT X POSITION\r |
| 2960 | DILX\r |
| 2961 | MTW /NUMBER OF WORDS IS TWO\r |
| 2962 | DCA CHCNT3\r |
| 2963 | CHSET2, MTW /NUMBER OF LINES PER WORD IS TWO\r |
| 2964 | DCA CHCNT2\r |
| 2965 | CHSET3, TAD KM006A /NUMBER OF POINTS IN A LINE IS SIX\r |
| 2966 | DCA CHCNT1\r |
| 2967 | TAD CHYL /REPOSITION Y AT BOTTOM OF CHARACTER\r |
| 2968 | DCA CHYS\r |
| 2969 | \fCHDIS, TAD CHROT\r |
| 2970 | CLL RAL /GET DISPLAY BIT FOR THIS POINT INTO LINK\r |
| 2971 | DCA CHROT /STORE CODE WORD FOR NEXT POINT\r |
| 2972 | TAD CHYS /LOAD INTENSIFICATION POSITION\r |
| 2973 | DILY\r |
| 2974 | SNL /DISPLAY IF LINK=1\r |
| 2975 | JMP .+4\r |
| 2976 | DISD\r |
| 2977 | JMP .-1\r |
| 2978 | DIXY\r |
| 2979 | TAD CHSIZ /GO NEXT POSSIBLE DOT\r |
| 2980 | DCA CHYS /KEEP RECORD OF PRESENT POSITION\r |
| 2981 | ISZ CHCNT1 /DO ALL THIS SIX TIMES\r |
| 2982 | JMP CHDIS\r |
| 2983 | TAD CHXL /MOVE X TO NEXT LINE\r |
| 2984 | TAD CHSIZ\r |
| 2985 | DILX\r |
| 2986 | DCA CHXL\r |
| 2987 | ISZ CHCNT2 /HAS SECOND HALF BEEN DONE?\r |
| 2988 | JMP CHSET3 /NO, DO IT\r |
| 2989 | TAD I CHPNT /GET SECOND WORD\r |
| 2990 | DCA CHROT /AND DISPLAY IT\r |
| 2991 | ISZ CHCNT3\r |
| 2992 | JMP CHSET2\r |
| 2993 | TAD CHSIZ /BOTH WORDS DONE - DO TWO EMPTY ROWS\r |
| 2994 | CLL RAL /(SPACE OVER 2 LINES)\r |
| 2995 | TAD CHXL\r |
| 2996 | DCA CHXL\r |
| 2997 | JMP I DSCS /THEN EXIT AT CALL+1\r |
| 2998 | \r |
| 2999 | CHSPEC, TAD I CHPNT /SPECIAL CHARACTER-GET WORD 2 FOR BRANCH\r |
| 3000 | TAD CHJMP /SETUP FOR JMP TO\r |
| 3001 | DCA .+1 /SPECIAL ROUTINE\r |
| 3002 | JMP I CHJMPL /THIS IS THE JUMP\r |
| 3003 | \r |
| 3004 | /DISPATCH TABLE FOR ABOVE JMP\r |
| 3005 | CHJMPL, CHSPA /JUMP TABLE: SPACE\r |
| 3006 | CHEND /END OF TEXT\r |
| 3007 | CHREST /NEXT 4 CHARACTERS RESET X, Y, DELTA, INTENSITY\r |
| 3008 | CHCR /DO A CARRIAGE RETURN, LINE FEED\r |
| 3009 | CHEND+1 /IGNORE\r |
| 3010 | \r |
| 3011 | CHEND, ISZ DSCS /ATTEMPT TO DSC E.O.T. MARK\r |
| 3012 | JMP I DSCS /EXIT TO CALL +2CS\r |
| 3013 | \r |
| 3014 | /SPACE: MOVE X RIGHT 6 INCREMENTS\r |
| 3015 | EJECT\r |
| 3016 | \r |
| 3017 | CHSPA, TAD CHSIZ\r |
| 3018 | CLL RTL /4 TIMES SIZE\r |
| 3019 | DCA CHFAC\r |
| 3020 | TAD CHSIZ\r |
| 3021 | CLL RAL /PLUS 2 TIMES SIZE\r |
| 3022 | TAD CHFAC /IS SIX TIMES SIZE\r |
| 3023 | TAD CHXL /MOVE X POINTER LEFT\r |
| 3024 | DCA CHXL /ONE CHARACTER (6 LINES)\r |
| 3025 | JMP I DSCS\r |
| 3026 | \r |
| 3027 | \f/$-DISPLAY RESET\r |
| 3028 | CHREST, LDH /NEXT HALFWORD "A"-"P"\r |
| 3029 | TAD KM0001 /GETS X POSITION\r |
| 3030 | AND K0017 /"A" IS LEFT MARGIN, "P" IS RIGHT MARGIN\r |
| 3031 | CLL RTL\r |
| 3032 | RTL\r |
| 3033 | RTL\r |
| 3034 | DCA CHXL /64 POINTS BETWEEN "A" AND "B"\r |
| 3035 | CHYPOS, LDH /NEXT HALF WORD GETS Y POSITION\r |
| 3036 | AND K0017 /"A"-"P"\r |
| 3037 | CLL RTL\r |
| 3038 | RTL\r |
| 3039 | RTL\r |
| 3040 | CMA IAC\r |
| 3041 | TAD K1001 /"A" IS TOP OF SCREEN. "B" IS BOTTOM\r |
| 3042 | DCA CHYL /64 POINTS BETWEEN "A" AND "B"\r |
| 3043 | CHCSZ, LDH /NEXT CHARACTER GETS SIZE OF CHARACTER -"4" IS NORMAL\r |
| 3044 | AND K0017 /ELIMINATE ALL BUT BITS 8-11\r |
| 3045 | DCA CHSIZ /STORE DESIRED CHARACTER SIZE\r |
| 3046 | JMP I DSCS\r |
| 3047 | \r |
| 3048 | /CR-LF: RETURN X TO LEFT MARGIN, MOVE Y DOWN 8 INCREMENTS\r |
| 3049 | CHCR, TAD K1001\r |
| 3050 | DCA CHXL /RESET X TO 0\r |
| 3051 | TAD CHSIZ /8 TIMES CHAR SIZE\r |
| 3052 | CLL RTL\r |
| 3053 | RAL\r |
| 3054 | CMA IAC /SUBTRACT FROM Y POSITION\r |
| 3055 | TAD CHYL\r |
| 3056 | DCA CHYL /NEW Y POSITION\r |
| 3057 | JMP I DSCS\r |
| 3058 | \r |
| 3059 | /CONSTANTS USED THIS PAGE ONLY\r |
| 3060 | CHJMP, JMP I CHJMPL+1\r |
| 3061 | ADSTBL, DSCTBL\r |
| 3062 | KM006A, -6\r |
| 3063 | K1001, 1001\r |
| 3064 | \r |
| 3065 | /VARIABLES FOR THIS PAGE\r |
| 3066 | CHXL, 0 /X LOCATION ON SCOPE\r |
| 3067 | CHYL, 0 /Y LOCATION OF CURRENT LINE\r |
| 3068 | CHSIZ, 0 /CHARACTER SIZE CONSTANT\r |
| 3069 | \f/DISPLAY TABLE - PATTERN MATRICES FOR CHARACTERS\r |
| 3070 | DSCTBL, 0 /@ SPECIAL, MEANS END OF TEXT\r |
| 3071 | ENDIS\r |
| 3072 | \r |
| 3073 | 7711 /A\r |
| 3074 | 1177\r |
| 3075 | \r |
| 3076 | 7745 /B\r |
| 3077 | 4532\r |
| 3078 | \r |
| 3079 | 3641 /C\r |
| 3080 | 4122\r |
| 3081 | \r |
| 3082 | 7741 /D\r |
| 3083 | 4136\r |
| 3084 | \r |
| 3085 | 7751 /E\r |
| 3086 | 5141\r |
| 3087 | \r |
| 3088 | 7711 /F\r |
| 3089 | 1101\r |
| 3090 | \r |
| 3091 | \r |
| 3092 | 3641 /G\r |
| 3093 | 5132\r |
| 3094 | \r |
| 3095 | 7710 /H\r |
| 3096 | 1077\r |
| 3097 | \r |
| 3098 | 0077 /I\r |
| 3099 | 0000\r |
| 3100 | \r |
| 3101 | 2040 /J\r |
| 3102 | 4037\r |
| 3103 | \r |
| 3104 | 7714 /K\r |
| 3105 | 2241\r |
| 3106 | \r |
| 3107 | 7740 /L\r |
| 3108 | 4040\r |
| 3109 | \r |
| 3110 | 7706 /M\r |
| 3111 | 0677\r |
| 3112 | \r |
| 3113 | 7704 /N\r |
| 3114 | 1077\r |
| 3115 | \r |
| 3116 | 3641 /O\r |
| 3117 | 4136\r |
| 3118 | \r |
| 3119 | 7711 /P\r |
| 3120 | 1106\r |
| 3121 | \r |
| 3122 | 1621 /Q\r |
| 3123 | 3156\r |
| 3124 | \f 7711 /R\r |
| 3125 | 3146\r |
| 3126 | \r |
| 3127 | 2245 /S\r |
| 3128 | 4530\r |
| 3129 | \r |
| 3130 | 0101 /T\r |
| 3131 | 7701\r |
| 3132 | \r |
| 3133 | 7740 /U\r |
| 3134 | 4077\r |
| 3135 | \r |
| 3136 | 3740 /V\r |
| 3137 | 2017\r |
| 3138 | \r |
| 3139 | 7730 /W\r |
| 3140 | 4077\r |
| 3141 | \r |
| 3142 | 6314 /X\r |
| 3143 | 1463\r |
| 3144 | \r |
| 3145 | 0770 /Y\r |
| 3146 | 7007\r |
| 3147 | \r |
| 3148 | 6151 /Z\r |
| 3149 | 4543\r |
| 3150 | \r |
| 3151 | 0617 /[ DISPLAYED AS #\r |
| 3152 | 1706\r |
| 3153 | \r |
| 3154 | 1057 /\ DISPLAYED AS DOWN ARROW\r |
| 3155 | 1000\r |
| 3156 | \r |
| 3157 | 2313 /] DISPLAYED AS %\r |
| 3158 | 6462\r |
| 3159 | \r |
| 3160 | 0475 /^\r |
| 3161 | 0400\r |
| 3162 | \r |
| 3163 | 0416 /_\r |
| 3164 | 2504\r |
| 3165 | \r |
| 3166 | 0 /SPACE IS A SPECIAL CHARACTER\r |
| 3167 | SPACE\r |
| 3168 | \r |
| 3169 | 0057 /!\r |
| 3170 | 0000\r |
| 3171 | \r |
| 3172 | 0 /" SPECIAL, MARKS PROG INPUT TO TEXT, NOT DISPLAYED\r |
| 3173 | IGNOR\r |
| 3174 | \r |
| 3175 | 0 /# SPECIAL, IGNORES\r |
| 3176 | IGNOR\r |
| 3177 | \f 0 /$ SPECIAL, DISPLAY RESET FOLLOWS\r |
| 3178 | RESET\r |
| 3179 | \r |
| 3180 | 0 /% SPECIAL, DOES CARRIAGE RETURN\r |
| 3181 | CRETN\r |
| 3182 | \r |
| 3183 | 4040 /& - USED IN Q&A BLANKS\r |
| 3184 | 4040\r |
| 3185 | \r |
| 3186 | 0 /' SPECIAL, MARKS KBD INPUT TO TEXT, NOT DISPLAYED\r |
| 3187 | IGNOR\r |
| 3188 | \r |
| 3189 | 7741 /( DISPLAYED AS [\r |
| 3190 | 4100\r |
| 3191 | \r |
| 3192 | 0041 /) DISPLAYED AS ]\r |
| 3193 | 4177\r |
| 3194 | \r |
| 3195 | 2214 /* DISPLAYED AS LITTLE X\r |
| 3196 | 1422\r |
| 3197 | \r |
| 3198 | 0010 /+\r |
| 3199 | 3410\r |
| 3200 | \r |
| 3201 | 0050 /,\r |
| 3202 | 3000\r |
| 3203 | \r |
| 3204 | 0404 /-\r |
| 3205 | 0400\r |
| 3206 | \r |
| 3207 | 0040 /.\r |
| 3208 | 0000\r |
| 3209 | \r |
| 3210 | 2010 //\r |
| 3211 | 0402\r |
| 3212 | \r |
| 3213 | 3651 /0\r |
| 3214 | 4536\r |
| 3215 | \r |
| 3216 | 0042 /1\r |
| 3217 | 7740\r |
| 3218 | \r |
| 3219 | 6251 /2\r |
| 3220 | 5146\r |
| 3221 | \r |
| 3222 | 2241 /3\r |
| 3223 | 4532\r |
| 3224 | \r |
| 3225 | 1412 /4\r |
| 3226 | 7710\r |
| 3227 | \r |
| 3228 | 2745 /5\r |
| 3229 | 4531\r |
| 3230 | \f 3645 /6\r |
| 3231 | 4530\r |
| 3232 | \r |
| 3233 | 4111 /7\r |
| 3234 | 0503\r |
| 3235 | \r |
| 3236 | \r |
| 3237 | 3245 /8\r |
| 3238 | 4532\r |
| 3239 | \r |
| 3240 | 0651 /9\r |
| 3241 | 5136\r |
| 3242 | \r |
| 3243 | 2400 /:\r |
| 3244 | 0000\r |
| 3245 | \r |
| 3246 | 0040 /;\r |
| 3247 | 3200\r |
| 3248 | \r |
| 3249 | 1422 /<\r |
| 3250 | 4100\r |
| 3251 | \r |
| 3252 | 0012 /=\r |
| 3253 | 1212\r |
| 3254 | \r |
| 3255 | 4122 />\r |
| 3256 | 1400\r |
| 3257 | \r |
| 3258 | 0251 /?\r |
| 3259 | 0502\r |
| 3260 | \f/FLOATING VARIABLES\r |
| 3261 | FLOT03, 0\r |
| 3262 | 0\r |
| 3263 | 0\r |
| 3264 | \r |
| 3265 | FLOT04, 0\r |
| 3266 | 0\r |
| 3267 | 0\r |
| 3268 | \r |
| 3269 | FLOT05, 0\r |
| 3270 | 0\r |
| 3271 | 0\r |
| 3272 | \r |
| 3273 | FLOT06, 0\r |
| 3274 | 0\r |
| 3275 | 0\r |
| 3276 | \r |
| 3277 | FLOT07, 0\r |
| 3278 | 0\r |
| 3279 | 0\r |
| 3280 | \r |
| 3281 | FLOT10, 0\r |
| 3282 | 0\r |
| 3283 | 0\r |
| 3284 | \r |
| 3285 | /TTY-LST\r |
| 3286 | CRTX, 45 /CR\r |
| 3287 | -47 /TXMRK\r |
| 3288 | \r |
| 3289 | \f*5400\r |
| 3290 | /SUBROUTINES TO HANDLE FLOATING, DECIMAL, AND OCTAL IO [SU54AB]\r |
| 3291 | /REQUIRES [SU60A] [SU62A], [SU63A], [SU64A]\r |
| 3292 | \r |
| 3293 | /SUBROUTINE CONVERTS AC TO OCTAL CHARACTERS ON HALFWORD BUFFER: OCTOUT\r |
| 3294 | /USES TEMP01-02\r |
| 3295 | \r |
| 3296 | OCTOUS, 0\r |
| 3297 | DCA SHFR+1 /PUT AC IN LOW ORDER SHIFT REGISTER\r |
| 3298 | TAD KM0004 /GET 4 CHARACTERS\r |
| 3299 | DCA OCNT\r |
| 3300 | OCNT=TEMP02\r |
| 3301 | TAD KM0004 /AC=0 STORES AS "0 "\r |
| 3302 | DCA LSWIT\r |
| 3303 | TAD PROMRK /LOOK FOR ENTRY AREA\r |
| 3304 | SRCH\r |
| 3305 | MPRMRK, -42 /SKIPPED-PRESUME THERE IS AN ENTRY AREA LEFT\r |
| 3306 | OCVROT, TAD K0003 /OCTAL CHARACTER REPRESENTS 3 BITS\r |
| 3307 | SHFT\r |
| 3308 | TAD SHFR /# IS IN LEFT 3 BITS OF AC\r |
| 3309 | AND K0007\r |
| 3310 | JMS OUTCH /OUTPUT THE #\r |
| 3311 | K0060, 0060 /LEADING 0 OR NO ROOM - "AND" WITH 0 IS NOP\r |
| 3312 | ISZ OCNT /MORE CHARACTERS?\r |
| 3313 | JMP OCVROT /YES-CONTINUE\r |
| 3314 | TAD KM0020 /NO-FILL REMAINING AREA WITH SPACES\r |
| 3315 | JMS OUTCH\r |
| 3316 | JMP I OCTOUS /AREA IS FULL-EXIT\r |
| 3317 | JMP .-3 /PUT IN SPACES\r |
| 3318 | \r |
| 3319 | /GENERALIZED NUMERICAL OUTPUT ROUTINE\r |
| 3320 | /SUBROUTINE STORES A CHAR AWAY IF NOT A LEADING 0 AND THERE IS ROOM\r |
| 3321 | /EXITS TO CALL+1 IF THESE CONDITIONS NOT MET, CALL+2 IF THEY ARE\r |
| 3322 | /TEMPORARY STORAGE ALLOCATION\r |
| 3323 | STOR=TEMP01\r |
| 3324 | \r |
| 3325 | EJECT\r |
| 3326 | \r |
| 3327 | OUTCH, 0\r |
| 3328 | ISZ LSWIT /IS THIS A LEADING ZERO?\r |
| 3329 | SZA /IT'S LEADING\r |
| 3330 | SKP\r |
| 3331 | JMP I OUTCH /AND IT'S A ZERO-EXIT TO CALL+1\r |
| 3332 | DCA STOR /NO-NOT A LEADING ZERO.\r |
| 3333 | CLA CMA /FIX UP LEAD SWITCH\r |
| 3334 | DCA LSWIT\r |
| 3335 | LDH /IS THERE ROOM IN THE BUFFER?\r |
| 3336 | TAD MPRMRK\r |
| 3337 | SNA CLA\r |
| 3338 | JMP I OUTCH /NO MORE ROOM-EXIT TO CALL+1\r |
| 3339 | TAD STOR /ROOM AVAILABLE-MAKE 6BIT OUT OF #.\r |
| 3340 | TAD K0060\r |
| 3341 | JMS I STHX1\r |
| 3342 | ISZ OUTCH /PUT IT AWAY\r |
| 3343 | JMP I OUTCH /EXIT TO CALL+2\r |
| 3344 | \f/SUBROUTINE CONVERTS FLOATING AC TO ASCII STRING: FLTOUT\r |
| 3345 | /TEMPORARY STORAGE ALLOCATION\r |
| 3346 | FCVCNT=TEMP14\r |
| 3347 | DIGIT=TEMP13\r |
| 3348 | PERCNT=TEMP15\r |
| 3349 | ZSWIT=TEMP16\r |
| 3350 | \r |
| 3351 | FLTOUS, 0\r |
| 3352 | DCA CHEXP\r |
| 3353 | TAD PROMRK /LOOK FOR A PLACE TO PUT CHARACTERS\r |
| 3354 | SRCH\r |
| 3355 | KM0033, -33 /SKIPPED\r |
| 3356 | TAD FAC+1\r |
| 3357 | SPA CLA /PUT IN A "-" OR A SPACE DEPENDING UPON SIGN\r |
| 3358 | TAD K0015\r |
| 3359 | TAD KM0020\r |
| 3360 | JMS OUTCH /PUT OUT CHARACTER\r |
| 3361 | CHEXP, 0 /A NOP-BUT NOT REACHED ANYWAY\r |
| 3362 | TAD FAC+1\r |
| 3363 | SPA CLA /GET .ABS. FAC\r |
| 3364 | DCOM\r |
| 3365 | SAVE\r |
| 3366 | REMAIN /SET UP FOR RADIX DEFLATION\r |
| 3367 | TAD KM011\r |
| 3368 | DCA FCVCNT /WE WILL LOOK AT 9 POWERS OF 10\r |
| 3369 | DCA LSWIT /ENABLE SEARCH FOR LEADING 0'S\r |
| 3370 | CLA CMA\r |
| 3371 | DCA ZSWIT /DETECT FIRST NON ZERO LEAD\r |
| 3372 | LOAD /HOW MANY 100,000,000'S\r |
| 3373 | K100MF\r |
| 3374 | CVLOOP, SAVE /HOW MANY MULTIPLES OF RADIX?\r |
| 3375 | RADIX\r |
| 3376 | LOAD /DEFLATE\r |
| 3377 | REMAIN\r |
| 3378 | FDIV\r |
| 3379 | RADIX\r |
| 3380 | FIX /# OF MULT. OF RADIX\r |
| 3381 | DCA DIGIT\r |
| 3382 | TAD DIGIT /GET REMAINDER\r |
| 3383 | FLOAT\r |
| 3384 | FMUL\r |
| 3385 | RADIX\r |
| 3386 | DCOM\r |
| 3387 | FADD\r |
| 3388 | REMAIN\r |
| 3389 | SAVE\r |
| 3390 | REMAIN\r |
| 3391 | TAD DIGIT /PUT DIGIT OUT INTO BUFFER\r |
| 3392 | JMS OUTCH\r |
| 3393 | JMP CVRLZ /LEADING ZERO OR NO MORE ROOM\r |
| 3394 | ISZ ZSWIT /FIRST NON-ZERO?\r |
| 3395 | JMP CVRNZ /NO\r |
| 3396 | TAD KM0033 /YES, PUT "U" IN MULTIPLIER\r |
| 3397 | DCA CHEXP\r |
| 3398 | \f TAD FCVCNT /U:1-3, M:4-6, SPACE: 7-9=-FCVCNT\r |
| 3399 | TAD K0003 /9+FCVCNT (-) IS # OF LEADING ZEROES\r |
| 3400 | SMA /M OR SPACE?\r |
| 3401 | JMP CVRLZ /NEITHER, MULTIPLIER IS U, NO PERIOD\r |
| 3402 | TAD K0003\r |
| 3403 | SPA\r |
| 3404 | JMP CVRSP /MULTIPLIER IS SPACE\r |
| 3405 | TAD KM0003 /MULTIPLIER IS M, COUNT UNTIL "."\r |
| 3406 | DCA PERCNT /3, 2, OR 1 CHARACTERS UNTIL "."\r |
| 3407 | TAD KM0043 /PUT M IN MULTIPLIER\r |
| 3408 | JMP .+3\r |
| 3409 | CVRSP, DCA PERCNT /3,2,OR 1 CHARACTERS BEFORE "."\r |
| 3410 | TAD KM0020 /PUT SPACE IN MULTIPLIER\r |
| 3411 | DCA CHEXP\r |
| 3412 | TAD KM0004 /AND PUT ONLY 4#'S IN BUFFER\r |
| 3413 | DCA FCVCNT\r |
| 3414 | \r |
| 3415 | CVRNZ, ISZ PERCNT /NON-ZERO ENTRY WAS MADE\r |
| 3416 | JMP CVRLZ /NOT YET TIME FOR "."\r |
| 3417 | MTW /PUT IN THE "."\r |
| 3418 | JMS OUTCH\r |
| 3419 | KM0020, -20 /THIS INSTRUCTION IS SKIPPED\r |
| 3420 | \r |
| 3421 | CVRLZ, LOAD /REDUCE THE RADIX BY A FACTOR OF 10\r |
| 3422 | RADIX\r |
| 3423 | FDIV\r |
| 3424 | K10F\r |
| 3425 | ISZ FCVCNT /HAD ENOUGH?\r |
| 3426 | JMP CVLOOP /NO-CONTINUE\r |
| 3427 | TAD KM0020 /FILL REMAINING WITH SPACES\r |
| 3428 | JMS OUTCH\r |
| 3429 | SKP\r |
| 3430 | JMP .-3\r |
| 3431 | CVREND, TAD PROMRK /MOVE TO FILL EXPONENT CHARACTER\r |
| 3432 | SRCH\r |
| 3433 | KM011, -11\r |
| 3434 | TAD CHEXP /STORE IT\r |
| 3435 | JMS OUTCH\r |
| 3436 | JMP I FLTOUS\r |
| 3437 | TAD KM0020 /NOW FILL REMAINING WITH SPACES\r |
| 3438 | JMP .-3\r |
| 3439 | \r |
| 3440 | /LOCAL VARIABLES\r |
| 3441 | LSWIT, -1 /-1 TO ACCEPT LEADING ZEROS\r |
| 3442 | \r |
| 3443 | /LOCAL CROSSPAGE\r |
| 3444 | STHX1, STHS /STH SUBROUTINE\r |
| 3445 | \r |
| 3446 | /LOCAL CONSTANTS\r |
| 3447 | KM0003, -3\r |
| 3448 | \f/TTY-LISTS USED TO SCAN FLOATING ARGUMENTS\r |
| 3449 | MODCHR,\r |
| 3450 | K0015, 15 /M\r |
| 3451 | -40 /SPACE\r |
| 3452 | \r |
| 3453 | FLSORT, 56 /.\r |
| 3454 | 47 /'\r |
| 3455 | 55 /-\r |
| 3456 | -40 /SPACE\r |
| 3457 | \r |
| 3458 | K10F, 0004\r |
| 3459 | 2400\r |
| 3460 | 0000\r |
| 3461 | \r |
| 3462 | /THIS SUBROUTINE SCANS FOR DECIMAL ARGUMENT: DECARG\r |
| 3463 | DECARS, 0\r |
| 3464 | JMS ARSET /POSITION HALFWORD POINTERS\r |
| 3465 | DECNXT, LDH\r |
| 3466 | BRAN /LOOK FOR SPACES AND TXMRKS\r |
| 3467 | OCSORT\r |
| 3468 | JMP DECNXT /SPACE - IGNORE\r |
| 3469 | JMP DECEND /TXMRK\r |
| 3470 | JMS STRNUM /OTHERS-STRIP OFF 60\r |
| 3471 | JMP I DECARS /NOT A (6BIT) NUMERAL\r |
| 3472 | TAD KM0011 /0-9 ARE ALLOWED\r |
| 3473 | SMA SZA CLA\r |
| 3474 | JMP I DECARS /NOT A DECIMAL NUMERAL\r |
| 3475 | TAD STRSAV /MULTIPLY PREVIOUS ACCUMULATION BY 10\r |
| 3476 | JMS DX10\r |
| 3477 | JMP DECNXT\r |
| 3478 | \r |
| 3479 | \r |
| 3480 | DECEND, TAD DBLARG /CHECK FOR OVERFLOW\r |
| 3481 | SZA CLA\r |
| 3482 | JMP I DECARS /GREATER THAN 4095, EXIT TO CALL+1\r |
| 3483 | TAD DBLARG+1 /ARGUMENT OK-EXIT AT CALL+2\r |
| 3484 | ISZ DECARS\r |
| 3485 | JMP I DECARS\r |
| 3486 | \f/THIS SUBROUTINE MULTIPLIES DXAC BY 10 AND ADDS CURRENT STRIPPED CHARACTER [IN AC]\r |
| 3487 | /TEMPORARY STORAGE ALLOCATION\r |
| 3488 | DXCHAR=TEMP02\r |
| 3489 | DX10, 0\r |
| 3490 | DCA DXCHAR /AC HOLDS NEXT # TO ADD\r |
| 3491 | LOAD\r |
| 3492 | DBLARG-1\r |
| 3493 | CLA IAC /GET 2 * OLD SUM\r |
| 3494 | SHFT\r |
| 3495 | SAVE /STORE IT\r |
| 3496 | DBLARG-1\r |
| 3497 | TWO /GET 8 * OLD SUM\r |
| 3498 | SHFT\r |
| 3499 | DADD /ADD TO 2 * OLD SUM\r |
| 3500 | TAD DXCHAR\r |
| 3501 | DCA DBLAC+1 /ADD NEXT #\r |
| 3502 | DCA DBLAC\r |
| 3503 | DADD\r |
| 3504 | JMP I DX10 /10 * OLD SUM + NEXT#\r |
| 3505 | \r |
| 3506 | /THIS SUBROUTINE SCANS FOR FLOATING ARGUMENT AND LEAVES IN FAC: FLTARG\r |
| 3507 | /ARITHMETIC REGISTER ALLOCATION\r |
| 3508 | FLOPR=ARITH4\r |
| 3509 | /TEMPORARY STORAGE ALLOCATION\r |
| 3510 | FLCHAR=TEMP01\r |
| 3511 | FRCNT=TEMP13\r |
| 3512 | FLSGN=TEMP14\r |
| 3513 | \r |
| 3514 | FLTARS, 0\r |
| 3515 | JMS ARSET\r |
| 3516 | DCA FRCNT /DECIMAL POINT INDICATOR\r |
| 3517 | CLA CMA\r |
| 3518 | DCA FLSGN /SIGN INDICATOR\r |
| 3519 | FLNEXT, LDH /GET NEXT CHARACTER FROM BUFFER\r |
| 3520 | BRAN\r |
| 3521 | FLSORT /SPECIAL CHARACTERS\r |
| 3522 | JMP FRCHK /. - CHECK FRCNT AND SET IT\r |
| 3523 | JMP FLTMOD /TXMRK - GO TO STAGE 2\r |
| 3524 | DCA FLSGN /- - SET SIGN = 0\r |
| 3525 | JMP FLNEXT /SPACE - IGNORE\r |
| 3526 | JMS STRNUM /OTHER - CHECK FOR 0,...,9\r |
| 3527 | JMP I FLTARS /NOT NUMERIC: ERROR RETURN\r |
| 3528 | TAD KM0011 /GREATER THAN 9?\r |
| 3529 | SMA SZA CLA\r |
| 3530 | JMP I FLTARS /YES: ERROR RETURN\r |
| 3531 | TAD FLCHAR /NO, IN RANGE 0-9\r |
| 3532 | JMS DX10 /INCREASE RESULT\r |
| 3533 | ISZ FRCNT /ENOUGH CHARACTERS?\r |
| 3534 | JMP FLNEXT /NO\r |
| 3535 | JMP I FLTARS /YES-MORE THAN 3 DIGITS IN FRACTION-EXIT\r |
| 3536 | \r |
| 3537 | FRCHK, TAD KM0004 /ALLOW 3 DIGITS TO RIGHT OF "."\r |
| 3538 | DCA FRCNT\r |
| 3539 | JMP FLNEXT\r |
| 3540 | \fFLTMOD, LOAD /GET MODIFY CHARACTER\r |
| 3541 | DBLARG-1\r |
| 3542 | NORM /MAKE FLOATING POINT OF FIRST PART\r |
| 3543 | DCA FAC\r |
| 3544 | TAD FRCNT /HOW MANY DIGITS TO RIGHT OF DECIMAL?\r |
| 3545 | SPA CLA /POS INDICATES 0 DIGITS TO RIGHT\r |
| 3546 | JMP .+3\r |
| 3547 | TAD KM0004 /DIGITS TO RIGHT -4="FRCNT"\r |
| 3548 | DCA FRCNT\r |
| 3549 | ALPHA /GET "M" OR "SPACE"\r |
| 3550 | BRAN\r |
| 3551 | MODCHR\r |
| 3552 | TAD K0003 /M\r |
| 3553 | SKP /SPACE\r |
| 3554 | JMP I FLTARS /OTHER-ERROR RETURN\r |
| 3555 | TAD KM0002 /MULTIPLIER IS 10^[2+(-FRCNT)] IF "SPACE", 3 LESS IF "M"\r |
| 3556 | TAD FRCNT\r |
| 3557 | SMA SZA /.GT. 0 MEANS ERROR, FRACTION OF U\r |
| 3558 | JMP FLEND\r |
| 3559 | SNA\r |
| 3560 | JMP FLDONE /IF MULT IS 10^0,DONE\r |
| 3561 | DCA FRCNT /IF NOT. SET UP LOOP COUNT\r |
| 3562 | FMUL\r |
| 3563 | K10F\r |
| 3564 | ISZ FRCNT\r |
| 3565 | JMP .-3\r |
| 3566 | FLDONE, ISZ FLSGN /NOW ADJUST SIGN\r |
| 3567 | DCOM\r |
| 3568 | ISZ FLTARS /RETURN TO CALL+2 IF OK\r |
| 3569 | LDH /MOVE OVER NEXT CHAR (TXMRK)\r |
| 3570 | FLEND, CLL CLA\r |
| 3571 | JMP I FLTARS /EXIT\r |
| 3572 | \r |
| 3573 | /THIS SUBROUTINE DOES GENERALIZED NUMERICAL INPUT - STRIPS 60 AND STORES\r |
| 3574 | /TEMPORARY STORAGE ALLOCATION\r |
| 3575 | STRSAV=TEMP01\r |
| 3576 | \r |
| 3577 | STRNUM, 0\r |
| 3578 | TAD BSAVE /CHAR ASSUMED IN TEMP02\r |
| 3579 | TAD KM0060 /6BIT MUST BE .GE. 60\r |
| 3580 | SPA\r |
| 3581 | JMP STRERR /IF NOT IS NOT A CHARACTER\r |
| 3582 | DCA STRSAV /STORE STRIPPED CHARACTER IN TEMP02\r |
| 3583 | TAD STRSAV /AND LEAVE IN AC\r |
| 3584 | ISZ STRNUM\r |
| 3585 | JMP I STRNUM\r |
| 3586 | \r |
| 3587 | STRERR, CLL CLA\r |
| 3588 | JMP I STRNUM\r |
| 3589 | \f/THIS SUBROUTINE INITIALIZES INPUT POINTERS\r |
| 3590 | /ARITHMETIC REGISTER ALLOCATION\r |
| 3591 | AROP=ARITH4\r |
| 3592 | \r |
| 3593 | ARSET, 0\r |
| 3594 | TAD TXMRK /MOVE TO INPUT REGION\r |
| 3595 | SRCH\r |
| 3596 | KM0002, -2 /THIS LOCATION SKIPPED\r |
| 3597 | DCA AROP /CLEAR SUM REGISTER\r |
| 3598 | DCA AROP+1\r |
| 3599 | JMP I ARSET\r |
| 3600 | \r |
| 3601 | \r |
| 3602 | /LOCAL CONSTANTS\r |
| 3603 | KM0060, -60\r |
| 3604 | KM0011, -11\r |
| 3605 | \r |
| 3606 | /FLOATING VARIABLES\r |
| 3607 | FLOT01, 0\r |
| 3608 | 0\r |
| 3609 | 0\r |
| 3610 | RADIX=FLOT01\r |
| 3611 | \r |
| 3612 | FLOT02, 0\r |
| 3613 | 0\r |
| 3614 | 0\r |
| 3615 | REMAIN=FLOT02\r |
| 3616 | \r |
| 3617 | \f*6000\r |
| 3618 | /HALFWORD AND TEXT HANDLERS [SU60AB] - REQUIRES [SU63A]\r |
| 3619 | \r |
| 3620 | /TEMPORARY STORAGE ALLOCATION\r |
| 3621 | HSAVE=TEMP01\r |
| 3622 | \r |
| 3623 | /SET H WORD POINTERS TO FIRST HALF OF AC HELD ADDRESS: SETH\r |
| 3624 | /TYPICAL CALLING SEQUENCE\r |
| 3625 | / SETH\r |
| 3626 | / ADDRESS\r |
| 3627 | / RETURN\r |
| 3628 | \r |
| 3629 | SETHS, 0\r |
| 3630 | TAD I SETHS /GET ADDRESS FROM CALL+1\r |
| 3631 | DCA HPNT2 /PUT IT IN LDH POINTER\r |
| 3632 | CMA /LEFT HALF\r |
| 3633 | DCA HSW2\r |
| 3634 | ISZ SETHS /EXIT CALL+2\r |
| 3635 | JMP I SETHS\r |
| 3636 | \r |
| 3637 | /SAVE H WORD POINTERS: SHP\r |
| 3638 | SHPS, 0\r |
| 3639 | CLA\r |
| 3640 | TAD HPNT2 /GET LDH POINTERS\r |
| 3641 | DCA HPSV /ADDRESS\r |
| 3642 | TAD HSW2 /HALF WORD\r |
| 3643 | DCA HSWSV\r |
| 3644 | JMP I SHPS\r |
| 3645 | \r |
| 3646 | /RESTORE HWORD POINTERS TO SAVED VALUES: RHP\r |
| 3647 | RHPS, 0\r |
| 3648 | CLA\r |
| 3649 | TAD HPSV /GET SAVED POINTERS\r |
| 3650 | DCA HPNT2\r |
| 3651 | TAD HSWSV /PUT IN LDH POINTERS\r |
| 3652 | DCA HSW2\r |
| 3653 | JMP I RHPS\r |
| 3654 | \r |
| 3655 | /DECREMENT HALF-WORD POINTER: DHP\r |
| 3656 | DHPS, 0\r |
| 3657 | CLA CMA\r |
| 3658 | ISZ HSW2 /SKIP IF LEFT HALF\r |
| 3659 | JMP HPD2 /RIGHT HALF\r |
| 3660 | TAD HPNT2 /LEFT HALF, MOVE TO RIGHT HALF OF PREVIOUS WORD\r |
| 3661 | DCA HPNT2\r |
| 3662 | JMP I DHPS\r |
| 3663 | HPD2, DCA HSW2 /RIGHT HALF, MOVE TO LEFT HALF, SAME WORD\r |
| 3664 | JMP I DHPS\r |
| 3665 | \f\r |
| 3666 | BSW=7002\r |
| 3667 | \r |
| 3668 | /HALF WORD LOAD AC: LDH\r |
| 3669 | LDHS, 0 /GET HALF WORD AND MOVE POINTER TO NEXT HALF\r |
| 3670 | CLL CLA /PUT LDH POINTERS IN STH POINTERS\r |
| 3671 | TAD HSW2\r |
| 3672 | DCA HSW1\r |
| 3673 | TAD HPNT2\r |
| 3674 | DCA HPNT1 /WHICH HALF ARE WE ON?\r |
| 3675 | ISZ HSW2 /RIGHT\r |
| 3676 | JMP LDH2 /LEFT\r |
| 3677 | TAD I HPNT2\r |
| 3678 | AND K7700H\r |
| 3679 | BSW\r |
| 3680 | JMP I LDHS\r |
| 3681 | \r |
| 3682 | LDH2, CMA /SET POINTER TO LEFT HALF (HSW2)\r |
| 3683 | DCA HSW2\r |
| 3684 | TAD I HPNT2\r |
| 3685 | AND K0077 /GET HALFWORD\r |
| 3686 | ISZ HPNT2 /NEXT HALF IS LEFT HALF OF NEXT WORD\r |
| 3687 | JMP I LDHS\r |
| 3688 | \r |
| 3689 | /HALF WORD STORE AC - FROM PLACE LDH WAS DONE: STH\r |
| 3690 | STHS, 0\r |
| 3691 | AND K0077 /SAVE RIGHT HALF OF AC\r |
| 3692 | ISZ HSW1 /STORE IN FIRST OR SECOND HALF?\r |
| 3693 | JMP STH2 /SECOND (RIGHT) HALF\r |
| 3694 | CLL RTL /POSITION IN LEFT HALF\r |
| 3695 | RTL\r |
| 3696 | RTL\r |
| 3697 | DCA HSAVE\r |
| 3698 | TAD I HPNT1 /GET OLD WORD FROM TEXT BFFER\r |
| 3699 | AND K0077 /CLEAR LEFT HALF\r |
| 3700 | JMP STH3 /GO STORE NEW VALUE\r |
| 3701 | \r |
| 3702 | STH2, DCA HSAVE /RIGHT HALF\r |
| 3703 | TAD I HPNT1 /GET OLD WORD\r |
| 3704 | AND K7700H /CLEAR RIGHT HALF\r |
| 3705 | STH3, TAD HSAVE /STORE WITH NEW VALUE\r |
| 3706 | DCA I HPNT1\r |
| 3707 | JMP I STHS /RETURN\r |
| 3708 | \r |
| 3709 | \f/SEARCH HALF-WORD BUFFER FOR CHARACTER: SRCH\r |
| 3710 | /CALL: TAD [X /SEARCH FOR X\r |
| 3711 | / SRCH\r |
| 3712 | / CAN'T FIND\r |
| 3713 | / NORMAL RETURN\r |
| 3714 | \r |
| 3715 | SRCHS, 0\r |
| 3716 | CMA IAC\r |
| 3717 | DCA HSAVE\r |
| 3718 | CHNX, JMS LDHS /GET NEXT HALFWORD\r |
| 3719 | SNA /HALFWORD IS 0: END OF BUFFER REACHED\r |
| 3720 | JMP I SRCHS\r |
| 3721 | TAD HSAVE /SUBTRACT SEARCH CHARACTER\r |
| 3722 | SZA CLA\r |
| 3723 | JMP CHNX\r |
| 3724 | ISZ SRCHS /HAVE NOT FOUND IT, CONTINUE\r |
| 3725 | JMP I SRCHS /FOUND IT! EXIT TO CALL+2\r |
| 3726 | \r |
| 3727 | /THIS SUBROUTINE TYPES STRIPPED ASCII CHARACTERS: TYPE\r |
| 3728 | /CALL: LDH\r |
| 3729 | / TYPE\r |
| 3730 | / JMP .-2\r |
| 3731 | / END OF TEXT RETURN\r |
| 3732 | \r |
| 3733 | TYPES, 0\r |
| 3734 | BRAN /CHECK AGAINST SPECIAL CHARACTER LIST\r |
| 3735 | TTYLST\r |
| 3736 | ISZ TYPES /@-END OF RECORD- SPECIAL RETN\r |
| 3737 | K0100T, 0100 /" - IGNORE - "AND" WITH AC = 0\r |
| 3738 | NOP /$ - DISPLAY RESET IS IGNORED\r |
| 3739 | JMP I TYPES /' - KBD ENTRY DELIMITOR IS IGNORED\r |
| 3740 | JMP TCR /C.R. - DO C.R.L.F.\r |
| 3741 | JMP I TYPES /L.F. - IGNORE\r |
| 3742 | TAD BSAVE /NONE OF THE ABOVE\r |
| 3743 | TAD KM0040 /00-37 ARE 300-337; 40-77 ARE 240-277\r |
| 3744 | SPA\r |
| 3745 | TAD K0100T /00-37\r |
| 3746 | TAD K0240\r |
| 3747 | TPEX, JMS TOUT /TYPE IT\r |
| 3748 | JMP I TYPES\r |
| 3749 | \r |
| 3750 | TCR, TAD K215 /C.R.L.F. - DO CR FIRST\r |
| 3751 | JMS TOUT\r |
| 3752 | TAD K212 /THEN DO LF\r |
| 3753 | JMP TPEX /EXIT\r |
| 3754 | \r |
| 3755 | /LOCAL CONSTANTS\r |
| 3756 | K215, 215\r |
| 3757 | K212, 212\r |
| 3758 | \f/SUBROUTINE TYPES OUT 8BIT IN AC\r |
| 3759 | TOUT, 0\r |
| 3760 | KXX46, TLS /THIS IS A CONSTANT\r |
| 3761 | TSF\r |
| 3762 | JMP .-1\r |
| 3763 | TCF /LEAVES FLAG CLEARED\r |
| 3764 | DCA TEMP02\r |
| 3765 | JMP I TOUT\r |
| 3766 | \r |
| 3767 | /FILLS ALL ENTRY AREAS WITH BLANKMARKS: TXI\r |
| 3768 | /CALL: SETH\r |
| 3769 | / ADDRESS OF TEXT START\r |
| 3770 | / TXI\r |
| 3771 | / RETURN\r |
| 3772 | \r |
| 3773 | TXIS, 0\r |
| 3774 | TXSR1, TAD TXMRK /GET FIRST BREAK CHAR\r |
| 3775 | JMS SRCHS\r |
| 3776 | JMP I TXIS /END CHAR FOUND\r |
| 3777 | \r |
| 3778 | TXSR2, JMS LDHS /FIND BREAK 2\r |
| 3779 | TAD MTXMRK /PUT BLANKMARKS FROM BRK 1 TO 2\r |
| 3780 | SNA CLA\r |
| 3781 | JMP TXSR1 /FOUND 2ND BREAK\r |
| 3782 | TAD KXX46 /NOT FOUND YET\r |
| 3783 | JMS STHS /PUT IN BLANKMARKS\r |
| 3784 | JMP TXSR2 /CONTINUE\r |
| 3785 | \r |
| 3786 | /LOCAL VARIABLES THIS PAGE\r |
| 3787 | HPSV, 0 /SAVE ADDRESS\r |
| 3788 | HSWSV, 0 /SAVE HALF\r |
| 3789 | HPNT2, 0 /LDH ADDRESS\r |
| 3790 | HSW2, 0 /LDH HALF\r |
| 3791 | HPNT1, 0 /STH ADDRESS\r |
| 3792 | HSW1, 0 /STH HALF\r |
| 3793 | \r |
| 3794 | /CONSTANTS FOR THIS PAGE\r |
| 3795 | K0077, 0077\r |
| 3796 | K7700H, 7700\r |
| 3797 | K0240, 0240\r |
| 3798 | KM0040, -0040\r |
| 3799 | \r |
| 3800 | \f*6200\r |
| 3801 | /TEXT-KEYBOARD HANDLES [SU62AB]\r |
| 3802 | /REQUIRES [SU63A]\r |
| 3803 | \r |
| 3804 | /SUBROUTINE PICKS UP FIRST CHARACTER OF AN ENTRY\r |
| 3805 | ALPHAS, 0\r |
| 3806 | TAD TXMRK /FIND TXMRX (KEYBOARD DELIMITOR)\r |
| 3807 | SRCH\r |
| 3808 | JMP I ALPHAS /NOT HERE, EXIT WITH AC=0\r |
| 3809 | LDH /GETS FIRST CHARACTER\r |
| 3810 | JMP I ALPHAS /EXIT\r |
| 3811 | \r |
| 3812 | /LOADS KBD CHARACTERS INTO BUFFER: TXK\r |
| 3813 | /CALL: TXK\r |
| 3814 | / NORMAL EXIT\r |
| 3815 | / LINE FEED\r |
| 3816 | / CARRIAGE RETURN\r |
| 3817 | \r |
| 3818 | TXKS, 0\r |
| 3819 | KSF\r |
| 3820 | JMP I TXKS /NO KEY - EXIT\r |
| 3821 | KRB\r |
| 3822 | JMS I UCHECK /USER MUST HAVE SUBROUTINE AT 7540 OR NOP THIS LOCATION\r |
| 3823 | BRAN /CHECK AGAINST SPECIAL CHARACTERS\r |
| 3824 | TXKEY\r |
| 3825 | ISZ TXKS /C.R.\r |
| 3826 | JMP TXLF /L.F.\r |
| 3827 | JMP TXRUB /RUBOUT\r |
| 3828 | LDH /OTHER\r |
| 3829 | TAD MTXMRK /CHECK THAT KEYBOARD AREA NOT FULL.\r |
| 3830 | SNA CLA\r |
| 3831 | JMP TXEN /NO MORE ROOM - EXIT WITHOUT ECHO\r |
| 3832 | TAD BSAVE\r |
| 3833 | AND K0077A /STRIP CHARACTER TO 6BIT\r |
| 3834 | BRAN /CHECK AGAINST SPECIAL 6BIT'S\r |
| 3835 | TTYLST\r |
| 3836 | K0034A, 0034 /@ - END OF TEXT MARKER\r |
| 3837 | K0077A, 0077 /" - PROGRAMMED INPUT TEXT MARKER\r |
| 3838 | K0046, 0046 /$ - DISPLAY RESET\r |
| 3839 | JMP TXEN /' - KBD MARKER - FOR THIS AND ABOVE: EXIT WITHOUT ECHO\r |
| 3840 | K0070, 0070 /% - CONVERT TO ] WHICH IS DISPLAYED AS %\r |
| 3841 | TAD K0070 /# - CONVERT TO [ WHICH IS DISPLAYED AS #\r |
| 3842 | TAD BSAVE /NONE OF THE ABOVE\r |
| 3843 | TYPE /ECHO\r |
| 3844 | TAD BSAVE /STORE AWAY\r |
| 3845 | JMS I STHX2\r |
| 3846 | JMP I TXKS\r |
| 3847 | \fTXLF, ISZ TXKS /C.R. OR L.F.\r |
| 3848 | LDH /FILL REST OF KBD AREA WITH SPACES\r |
| 3849 | TAD MTXMRK /END OF AREA?\r |
| 3850 | SNA CLA\r |
| 3851 | JMP TXER /YES - TYPE A CRLF AND EXIT\r |
| 3852 | TAD K0040 /NO - PUT ANOTHER SPACE IN.\r |
| 3853 | JMS I STHX2\r |
| 3854 | JMP TXLF+1 /AND CONTINUE\r |
| 3855 | \r |
| 3856 | TXER, TAD KCR /TYPE A CRLF\r |
| 3857 | TYPE\r |
| 3858 | JMP I TXKS /AND EXIT\r |
| 3859 | \r |
| 3860 | TXRUB, TAD K0034A /PROCESS A RUBOUT - DELETE 1 CHAR.\r |
| 3861 | TYPE /TYPE "\"\r |
| 3862 | JMS I DHPX1 /MOVE POINTER BACK 1 HALF WORD\r |
| 3863 | LDH /IS THAT HALFWORD A TXMRK?\r |
| 3864 | TAD MTXMRK\r |
| 3865 | SNA CLA\r |
| 3866 | JMP TXER /YES - KBD AREA HAS BEEN ALL RUBBED OUT\r |
| 3867 | TAD K0046 /NO - PUT A BLANKMARK IN THERE\r |
| 3868 | JMS I STHX2\r |
| 3869 | \r |
| 3870 | TXEN, JMS I DHPX1 /IGNORE INPUT - MOVE POINTER BACK\r |
| 3871 | JMP I TXKS /AND EXIT\r |
| 3872 | \r |
| 3873 | /TTY-LST\r |
| 3874 | TXKEY, 215 /CR\r |
| 3875 | 212 /LF\r |
| 3876 | -377 /RUBOUT\r |
| 3877 | \r |
| 3878 | /LOCAL CROSSPAGE\r |
| 3879 | DHPX1, DHPS\r |
| 3880 | STHX2, STHS\r |
| 3881 | \r |
| 3882 | /REFERENCE TO USER'S AREA - ROUTINE TO CHECK CTRLS MUST BE THERE\r |
| 3883 | UCHECK, KBRANS\r |
| 3884 | \r |
| 3885 | /FLOATING CONSTANT\r |
| 3886 | KM001F, 0001\r |
| 3887 | 6000\r |
| 3888 | 0000\r |
| 3889 | \r |
| 3890 | \f*6302\r |
| 3891 | /BASIC SUBROUTINES SHFT, DADD, AND BRAN [SU63AB]\r |
| 3892 | \r |
| 3893 | /SUBROUTINE TO SHIFT DOUBLE PRECISION WORD (SHFR): SHFT (10+6N)\r |
| 3894 | /CALL: TAD KXXXX /AC HOLDS SHFT COUNT, RIGHT IS NEGATIVE\r |
| 3895 | / SHFT\r |
| 3896 | / RETURN /LINK=0, AC=0\r |
| 3897 | /FORMAT OF DOUBLE WORD IS (HI,LO) HI(0)-ONLY-HOLDS SIGN\r |
| 3898 | /SIGN BIT WILL BE REPLICATED IN RIGHT SHIFTS\r |
| 3899 | \r |
| 3900 | /TEMPORARY STORAGE ALLOCATION\r |
| 3901 | SHCNT=TEMP01\r |
| 3902 | \r |
| 3903 | /ARITHMETIC REGISTER ALLOCATION\r |
| 3904 | SHFR=ARITH1 /ARITH1-2 ARE FOR SHIFTING\r |
| 3905 | \r |
| 3906 | SHFTS, 0\r |
| 3907 | CLL\r |
| 3908 | SNA /IF SHIFT COUNT=0. EXIT\r |
| 3909 | JMP I SHFTS\r |
| 3910 | SMA /SHIFT RIGHT OR LEFT\r |
| 3911 | CML CMA IAC /LEFT-SET LINK=1 AND COUNT NEGATIVE\r |
| 3912 | DCA SHCNT\r |
| 3913 | SZL /RIGHT SHIFT?\r |
| 3914 | JMP SHLEFT /NO-SHIFT LEFT\r |
| 3915 | \r |
| 3916 | SHRIHT, TAD SHFR /SHIFT DONE ON ARITH1-2\r |
| 3917 | SPA /SET L=1 IF NEGATIVE\r |
| 3918 | CML\r |
| 3919 | RAR\r |
| 3920 | DCA SHFR /SHIFT WITH SIGN REPLICATION\r |
| 3921 | TAD SHFR+1 /SHIFT LO ORDER HALF\r |
| 3922 | RAR\r |
| 3923 | DCA SHFR+1\r |
| 3924 | CLL\r |
| 3925 | ISZ SHCNT /ENOUGH SHIFTS?\r |
| 3926 | JMP SHRIHT /NO-CONTINUE\r |
| 3927 | JMP I SHFTS /YES-EXIT\r |
| 3928 | \r |
| 3929 | SHLEFT, TAD SHFR+1 /SHIFT LO-ORDER\r |
| 3930 | CLL RAL /0 TO LSB\r |
| 3931 | DCA SHFR+1\r |
| 3932 | TAD SHFR /SHIFT HI-ORDER\r |
| 3933 | RAL\r |
| 3934 | DCA SHFR\r |
| 3935 | CLL\r |
| 3936 | ISZ SHCNT /ENOUGH?\r |
| 3937 | JMP SHLEFT /NO-CONTINUE\r |
| 3938 | JMP I SHFTS\r |
| 3939 | \r |
| 3940 | \f/SUBROUTINE FOR BRANCHING ON MATCH OF AC AGAINST TABLE: BRAN\r |
| 3941 | / BRAN\r |
| 3942 | / ADDRESS OF TABLE\r |
| 3943 | / RETURN HERE IF FIRST ENTRY MEETS MATCH\r |
| 3944 | / ETC.\r |
| 3945 | / NONE MATCH\r |
| 3946 | /TABLE, FIRST ENTRY\r |
| 3947 | / SECOND ENTRY\r |
| 3948 | / -LAST ENTRY\r |
| 3949 | \r |
| 3950 | /TEMPORARY STORAGE ALLOCATION\r |
| 3951 | BPNT=TEMP01\r |
| 3952 | BSAVE=TEMP02\r |
| 3953 | BRANS, 0\r |
| 3954 | DCA BSAVE\r |
| 3955 | TAD I BRANS /GET ADDRESS OF FIRST ENTRY OF MATCH LIST\r |
| 3956 | DCA BPNT\r |
| 3957 | BRLOOP, TAD I BPNT /LOOK AT ENTRY\r |
| 3958 | SMA /GET MAGNITUDE\r |
| 3959 | CMA IAC\r |
| 3960 | ISZ BRANS /INDEX RETURN ADDRESS\r |
| 3961 | TAD BSAVE /MATCH FOUND?\r |
| 3962 | SNA CLA\r |
| 3963 | JMP I BRANS /YES-EXIT TO RETURN AS CALCULATED\r |
| 3964 | TAD I BPNT /NO-TEST FOR LAST ENTRY.\r |
| 3965 | ISZ BPNT /INDEX ENTRY POINTER\r |
| 3966 | SMA CLA /-INDICATES THIS WAS LAST ENTRY\r |
| 3967 | JMP BRLOOP /NOT LAST-CONTINUE\r |
| 3968 | ISZ BRANS /EXIT, NOT IN LIST, NONE MATCH\r |
| 3969 | JMP I BRANS\r |
| 3970 | \r |
| 3971 | /SUBROUTINE TO DO DOUBLE PRECISION ADD OF ARITH1-2, AND 4-5: DADD (21)\r |
| 3972 | /ARITHMETIC REGISTER ALLOCATION\r |
| 3973 | DBLAC=ARITH1\r |
| 3974 | DBLARG=ARITH4\r |
| 3975 | DADDS, 0 /ADD LO-ORDER\r |
| 3976 | CLL CLA\r |
| 3977 | TAD DBLAC+1\r |
| 3978 | TAD DBLARG+1\r |
| 3979 | DCA DBLARG+1\r |
| 3980 | RAL /CARRY\r |
| 3981 | TAD DBLAC /ADD HI-ORDER\r |
| 3982 | TAD DBLARG\r |
| 3983 | DCA DBLARG /LEAVE IN ARITH4-5.\r |
| 3984 | CLL\r |
| 3985 | JMP I DADDS\r |
| 3986 | \r |
| 3987 | /FLOATING CONSTANT USED BY [SU54A]\r |
| 3988 | K100MF, 0033 /100,000,000(10)\r |
| 3989 | 2765\r |
| 3990 | 7020\r |
| 3991 | \r |
| 3992 | \r |
| 3993 | \f*6400\r |
| 3994 | /2-PAGE FLOATING POINT PACKAGE [SU64AC] - REQUIRES [SU63A]\r |
| 3995 | /LOAD, SAVE, DCOM, NORM, FMUL, FIX, DFIX, FADD, FDIV, FLOAT\r |
| 3996 | /FLOATING POINT FORMAT\r |
| 3997 | / WORD1: EXPONENT (2'S COMPLEMENT)\r |
| 3998 | / WORD2: HI ORDER MANTISSA\r |
| 3999 | / WORD3: LO ORDER MANTISSA\r |
| 4000 | /\r |
| 4001 | /MANTISSA IS REPRESENTED IN 24 BIT, 2'S COMPLEMENT NOTATION\r |
| 4002 | /A FLOATING POINT IS STORED AS MANTISSA*2^ EXPONENT\r |
| 4003 | /ZERO IS ALWAYS STORED AS 0*2^0\r |
| 4004 | /0.5 .LE. .ABS. MANTISSA .LT. 1.0\r |
| 4005 | \r |
| 4006 | /FLOATING POINT ACCUMULATOR\r |
| 4007 | FAC=ARITH0\r |
| 4008 | /FLOATING POINT OPERATOR\r |
| 4009 | FOP=ARITH3\r |
| 4010 | \r |
| 4011 | /SUBROUTINE TO LOAD FLOATING ACCUMULATOR: LOAD\r |
| 4012 | /TEMPORARY STORAGE ALLOCATION\r |
| 4013 | LDPNT=17\r |
| 4014 | \r |
| 4015 | LOADS, 0\r |
| 4016 | CLL CML CLA CMA /CALL: LOAD\r |
| 4017 | TAD I LOADS / ADDRESS\r |
| 4018 | DCA LDPNT /GETS ADDRESS, ADDRESS+1, ADDRESS+2 TO FAC\r |
| 4019 | ISZ LOADS\r |
| 4020 | TAD I LDPNT /ORDER IN MEMORY IS ASSUMED TO BE:\r |
| 4021 | DCA FAC / WORD1\r |
| 4022 | TAD I LDPNT\r |
| 4023 | DCA FAC+1 / WORD2\r |
| 4024 | TAD I LDPNT\r |
| 4025 | DCA FAC+2 / WORD3\r |
| 4026 | JMP I LOADS\r |
| 4027 | \r |
| 4028 | \r |
| 4029 | /SUBROUTINE TO SAVE FLOATING ACCUMULATOR: SAVE\r |
| 4030 | /TEMPORARY STORAGE ALLOCATION\r |
| 4031 | SVPNT=17\r |
| 4032 | \r |
| 4033 | SAVES, 0\r |
| 4034 | CLL CML CLA CMA /CALL: SAVE\r |
| 4035 | TAD I SAVES / ADDRESS\r |
| 4036 | DCA SVPNT\r |
| 4037 | ISZ SAVES /SAVES FAC IN ADDRESS, ADDRESS+1, ADDRESS+2\r |
| 4038 | TAD FAC /ORDER: WORD1\r |
| 4039 | DCA I SVPNT\r |
| 4040 | TAD FAC+1 /ORDER: WORD2\r |
| 4041 | DCA I SVPNT\r |
| 4042 | TAD FAC+2 /ORDER: WORD3 \r |
| 4043 | DCA I SVPNT\r |
| 4044 | JMP I SAVES\r |
| 4045 | \f/SUBROUTINE TO FORM NEGATIVE OF ARITH1-2: DCOM\r |
| 4046 | DCOMS, 0\r |
| 4047 | CLL CLA\r |
| 4048 | TAD ARITH2\r |
| 4049 | CMA IAC\r |
| 4050 | DCA ARITH2 /-ARITH2 TO ARITH2\r |
| 4051 | TAD ARITH1 /CARRY IS IN LINK BIT\r |
| 4052 | CMA\r |
| 4053 | SZL /DO CARRY\r |
| 4054 | IAC\r |
| 4055 | DCA ARITH1\r |
| 4056 | JMP I DCOMS\r |
| 4057 | \r |
| 4058 | /SUBROUTINE TO NORMALIZE MANTISSA IN FAC: NORM\r |
| 4059 | /MODIFIES ARITH 1-2 (NORHI,NORLO), TEMP01(IN SHFT), TEMP02(NORCNT)\r |
| 4060 | /LEAVES FAC MANTISSA NORMALIZED, \r |
| 4061 | /SIGN OF MANTISSA IN LINK BIT, EXPONENT IN AC\r |
| 4062 | /TEMPORARY STORAGE ALLOCATION\r |
| 4063 | NORCNT=TEMP02\r |
| 4064 | \r |
| 4065 | /ARITHMETIC REGISTER ALLOCATION\r |
| 4066 | NORHI=FAC+1\r |
| 4067 | NORLO=FAC+2\r |
| 4068 | \r |
| 4069 | NORMS, 0\r |
| 4070 | CLL CLA\r |
| 4071 | TAD KM0027 /-23(10)\r |
| 4072 | DCA NORCNT\r |
| 4073 | NORLV, TAD NORHI\r |
| 4074 | CLL RAL\r |
| 4075 | SMA SNL /TEST FOR L,AC0\r |
| 4076 | JMP NORSH /0,0 - SHIFT IT\r |
| 4077 | CMA CML /1,1 TO 0,0\r |
| 4078 | SPA SZL CLA /TEST FOR 1,1\r |
| 4079 | JMP NOREX /0,1 OR 1,0 - DONE\r |
| 4080 | TAD NORHI /1,1 - TEST FOR 6000\r |
| 4081 | AND K1777\r |
| 4082 | SZA CLA\r |
| 4083 | JMP NORSH /NO - CONTINUE\r |
| 4084 | TAD NORLO /YES - TEST FOR 6000 0000\r |
| 4085 | SNA CLA\r |
| 4086 | JMP NOREX /YES AND L HOLD 1 FOR -\r |
| 4087 | NORSH, CLL CLA IAC\r |
| 4088 | SHFT /1 LEFT\r |
| 4089 | ISZ NORCNT /23 TIMES?\r |
| 4090 | JMP NORLV /NO - LOOK AGAIN\r |
| 4091 | NOREX, CML /23 SHIFTS IS ENOUGH - OR DONE\r |
| 4092 | TAD NORCNT\r |
| 4093 | CMA IAC /L GETS COMPLEMENTED IF=0, NORM OF 0 LEAVES 0 IN L.\r |
| 4094 | JMP I NORMS\r |
| 4095 | \r |
| 4096 | /LOCAL CONSTANT\r |
| 4097 | K1777, +1777\r |
| 4098 | \f/SUBROUTINE FOR FLOATING POINT MULTIPLICATION: FMUL\r |
| 4099 | /CALL: FMUL /ONE ARGUMENT\r |
| 4100 | / ARG ADDRESS /ARG IS THE OTHER\r |
| 4101 | / (RETURN) /AC=0, L UNSPECIFIED\r |
| 4102 | /MODIFIES ARITH0-5(FAC,FOP), TEMP01-12\r |
| 4103 | /USES SUBROUTINES NORM,SHFT,DADD,DCOM,SAVE,LOAD\r |
| 4104 | /LEAVES RESULT IN FAC\r |
| 4105 | /TEMPORARY STORAGE ALLOCATION\r |
| 4106 | FMULP=TEMP10 /11 AND 12\r |
| 4107 | \r |
| 4108 | FMULS, 0\r |
| 4109 | TAD I FMULS\r |
| 4110 | JMS I GARGX /GET ARG AND FAC MAGNITUDE, SET SIGN\r |
| 4111 | ISZ FMULS /FIX UP RETURN ADDRESS\r |
| 4112 | SAVE\r |
| 4113 | FMULP\r |
| 4114 | DCA FOP+1 /CLEAR PRODUCT ACCUMULATION\r |
| 4115 | DCA FOP+2\r |
| 4116 | MULOOP, LOAD /SHIFT MULTIPLIER TO TEST\r |
| 4117 | FMULP /WHETHER TO INCREASE PRODUCT\r |
| 4118 | IAC /(FIRST TIME THRU IS ZERO SO WE\r |
| 4119 | SHFT /SKIP IT)\r |
| 4120 | SAVE\r |
| 4121 | FMULP\r |
| 4122 | LOAD /DECREASE POSSIBLE PRODUCT\r |
| 4123 | FARG /INCREMENT BY A FACTOR OF 2\r |
| 4124 | CLA CMA\r |
| 4125 | SHFT\r |
| 4126 | SAVE\r |
| 4127 | FARG\r |
| 4128 | TAD FMULP+1 /BIT 0 IS FLAG FOR INCREASING\r |
| 4129 | SPA CLA /PRODUCT ACCUMULATION\r |
| 4130 | DADD /BY CURRENT INCREMENT\r |
| 4131 | ISZ FCNTR /DO THIS 23 TIMES\r |
| 4132 | JMP MULOOP\r |
| 4133 | LOAD /NORMALIZE RESULT MANTISSA\r |
| 4134 | FOP\r |
| 4135 | JMS NORMS /ADJUST EXPONENT\r |
| 4136 | SNA\r |
| 4137 | JMP FMEXP /MANTISSA WAS ZERO\r |
| 4138 | TAD FMULP\r |
| 4139 | TAD FARG\r |
| 4140 | TAD KM0027\r |
| 4141 | \r |
| 4142 | FMEXP, DCA FAC\r |
| 4143 | TAD FLSIGN /FIX SIGN OF RESULT\r |
| 4144 | SZA CLA\r |
| 4145 | DCOM\r |
| 4146 | JMP I FMULS\r |
| 4147 | \r |
| 4148 | /LOCAL CROSSPAGE\r |
| 4149 | GARGX, GARG\r |
| 4150 | \f/THIS SUBROUTINE FIXES FAC TO AC: FIX\r |
| 4151 | FIXS, 0\r |
| 4152 | TAD FAC /AC BIASES FIX\r |
| 4153 | SPA SNA /FIX OF FAC .LT. 1 GIVES 0 IN AC\r |
| 4154 | JMP FIXNG\r |
| 4155 | TAD KM14\r |
| 4156 | SMA /FIX OF .ABS. FAC .GE. 2^11; EXITS 0 IN AC\r |
| 4157 | JMP FIXNG\r |
| 4158 | IAC\r |
| 4159 | SHFT\r |
| 4160 | TAD ARITH1\r |
| 4161 | JMP I FIXS\r |
| 4162 | \r |
| 4163 | FIXNG, CLL CLA\r |
| 4164 | JMP I FIXS\r |
| 4165 | \r |
| 4166 | /LOCAL CONSTANT\r |
| 4167 | KM14, -0014\r |
| 4168 | \r |
| 4169 | /SUBROUTINE TO FIX FAC TO DBL PREC IN FAC+1 AND FAC+2\r |
| 4170 | DFIXL=TEMP01\r |
| 4171 | \r |
| 4172 | DFIXS, 0\r |
| 4173 | TAD FAC /AC BIASES FIX\r |
| 4174 | TAD KM0027\r |
| 4175 | SHFT\r |
| 4176 | TAD I DFIXS /CALL+1 HOLDS ADDRESS OF HI ORDER FIX\r |
| 4177 | ISZ DFIXS\r |
| 4178 | DCA DFIXL\r |
| 4179 | TAD FAC+1 /STORE AT C(CALL+1) AND C(CALL+1)+1\r |
| 4180 | DCA I DFIXL\r |
| 4181 | ISZ DFIXL\r |
| 4182 | TAD FAC+2\r |
| 4183 | DCA I DFIXL\r |
| 4184 | JMP I DFIXS /EXIT TO CALL+2\r |
| 4185 | \f*.-1 177+1\r |
| 4186 | /PAGE 2 OF 2 PAGE FLOATING POINT PACKAGE [SU64A]\r |
| 4187 | /FADD, FDIV, FLOAT\r |
| 4188 | \r |
| 4189 | /SUBROUTINE TO FLOATING ADD TO FAC: FADD\r |
| 4190 | /CALL: FADD\r |
| 4191 | / ADDRESS\r |
| 4192 | /MODIFIES ARITH 0-5 (FAC,FOP), TEMP01(FADSHF),TEMP02-04(ADDEND),\r |
| 4193 | /TEMP05-07(AUGEND)\r |
| 4194 | /USES SUBROUTINES: NORM, SHFT, DADD, SAVE, LOAD\r |
| 4195 | /RESULT IN FAC (RE-NORMALIZED),AC=0,L=U\r |
| 4196 | \r |
| 4197 | /TEMPORARY STORAGE ALLOCATION:\r |
| 4198 | FADSHF=TEMP01\r |
| 4199 | ADDEND=TEMP02 /03 AND 04\r |
| 4200 | AUGEND=TEMP05 /06 AND 07\r |
| 4201 | \r |
| 4202 | /ARITHMETIC REGISTER ALLOCATION\r |
| 4203 | BIGGER=FOP\r |
| 4204 | \r |
| 4205 | FADDS, 0\r |
| 4206 | CLA CMA\r |
| 4207 | SHFT /PREPARE FOR POSSIBLE DADD OVERFLOW\r |
| 4208 | SAVE /LOSES LSB OF MANTISSA\r |
| 4209 | ADDEND\r |
| 4210 | TAD I FADDS /GET ARGUMENT ADDRESS\r |
| 4211 | DCA .+2\r |
| 4212 | LOAD /ARGUMENT TO FAC\r |
| 4213 | 0\r |
| 4214 | CLA CMA /SHIFT FOR POSSIBLE OVERFLOW ALSO\r |
| 4215 | SHFT\r |
| 4216 | SAVE /SUM HAS 23 BITS PRECISION\r |
| 4217 | AUGEND\r |
| 4218 | ISZ FADDS /SETUP FOR EXIT\r |
| 4219 | TAD ADDEND /COMPARE EXPONENTS\r |
| 4220 | CMA IAC /WHICH TO SHIFT (SMALLER ARGUMENT)\r |
| 4221 | TAD AUGEND /TO ALIGN BINARY POINTS\r |
| 4222 | SPA /EXP DIFFERENCE IN AC\r |
| 4223 | JMP FADADD /EXP OF AUGEND SMALLER\r |
| 4224 | CMA IAC /MAKE DIFFERENCE NEGATIVE\r |
| 4225 | DCA FADSHF /TO SHIFT RIGHT\r |
| 4226 | LOAD /AUGEND (OLD FAC) IS LARGER\r |
| 4227 | AUGEND\r |
| 4228 | SAVE\r |
| 4229 | BIGGER\r |
| 4230 | LOAD /PREPARE TO SHIFT ADDEND\r |
| 4231 | ADDEND\r |
| 4232 | JMP FADFIN\r |
| 4233 | \fFADADD, DCA FADSHF /AUGEND (OLD FAC) IS SMALLER\r |
| 4234 | LOAD\r |
| 4235 | ADDEND\r |
| 4236 | SAVE /SAVE ADDEND AS LARGER ARGUMENT\r |
| 4237 | BIGGER\r |
| 4238 | LOAD /PREPARE TO SHIFT SMALLER ARG\r |
| 4239 | AUGEND\r |
| 4240 | \r |
| 4241 | FADFIN, TAD FADSHF\r |
| 4242 | SHFT /ALIGN ARGUMENTS\r |
| 4243 | DADD /ADD MANTISSAS\r |
| 4244 | LOAD /NORMALIZE RESULT\r |
| 4245 | FOP\r |
| 4246 | NORM\r |
| 4247 | SNA /0 IF MANISSAS ADDED TO 0\r |
| 4248 | JMP FADEXP /ZERO SHOWN AS 0*2^0\r |
| 4249 | TAD KM0026 /-22(10)\r |
| 4250 | TAD BIGGER /ADD +1 TO -21(10) TO LARGER EXP\r |
| 4251 | FADEXP, DCA FAC /SAVE AS NEW EXPONENT\r |
| 4252 | JMP I FADDS\r |
| 4253 | \r |
| 4254 | /LOCAL CONSTANT\r |
| 4255 | KM0026, -0026\r |
| 4256 | \r |
| 4257 | /SUBROUTINE TO INITIALIZE COUNTERS AND SWITCHES USED IN FMUL AND FDIV\r |
| 4258 | FLSIGN=TEMP03\r |
| 4259 | FCNTR=TEMP04\r |
| 4260 | FARG=TEMP05 /06 AND 07\r |
| 4261 | \r |
| 4262 | GARG, 0\r |
| 4263 | DCA LOCARG /AC HOLDS LOCATION OF ARGUMENT\r |
| 4264 | TAD FAC+1\r |
| 4265 | SMA CLA /SET FLSIGN WITH SIGN OF FAC\r |
| 4266 | CMA\r |
| 4267 | DCA FLSIGN\r |
| 4268 | ISZ FLSIGN /LEAVE FLSIGN=0 FOR +, 1 FOR -\r |
| 4269 | DCOM /GET .ABS. FAC\r |
| 4270 | SAVE\r |
| 4271 | FARG\r |
| 4272 | LOAD\r |
| 4273 | EJECT\r |
| 4274 | \r |
| 4275 | LOCARG, 0\r |
| 4276 | TAD FAC+1 /GET SIGN OF ARGUMENT\r |
| 4277 | SPA CLA\r |
| 4278 | CLA CMA\r |
| 4279 | TAD FLSIGN /+OP+=+, -OP-=+, +OP-=-, -OP+=-\r |
| 4280 | DCA FLSIGN /FLSIGN = 0 FOR +, .NE. 0 FOR -\r |
| 4281 | TAD FAC+1 /GET .ABS. ARG\r |
| 4282 | SPA CLA\r |
| 4283 | DCOM /.LT. 0: GET COMPLEMENT AND SET L=0\r |
| 4284 | TAD KM0027 /-23(10)\r |
| 4285 | DCA FCNTR\r |
| 4286 | JMP I GARG \r |
| 4287 | \f/THIS SUBROUTINE FLOATS AC TO FAC: FLOAT\r |
| 4288 | FLOATS, 0\r |
| 4289 | DCA FAC+1\r |
| 4290 | TAD KM014 /SHIFT TO GET SIGN EXTENSION\r |
| 4291 | SHFT\r |
| 4292 | NORM\r |
| 4293 | DCA FAC /NORMALIZE\r |
| 4294 | JMP I FLOATS\r |
| 4295 | \r |
| 4296 | /LOCAL CONSTANT\r |
| 4297 | KM014, -0014\r |
| 4298 | \r |
| 4299 | /SUBROUTINE TO FLOATING DIVIDE FAC BY ARGUMENT- FDIV\r |
| 4300 | /CALL: FDIV\r |
| 4301 | / ARG ADDRESS /ARG ADDRESS HOLD ARGUMENT\r |
| 4302 | / (RETURN) /AC=0, L UNSPECIFIED\r |
| 4303 | /MODIFIES ARITH0-5 (FAC,FOP), TEMP01-14, REMAINDER IN FOP\r |
| 4304 | /TEMPORARY STORAGE ALLOCATION\r |
| 4305 | DVSOR=TEMP10 /11 AND 12\r |
| 4306 | QUO=TEMP05 /06 AND 07\r |
| 4307 | \r |
| 4308 | FDIVS, 0\r |
| 4309 | TAD I FDIVS /GET ADDRESS OF ARGUMENT\r |
| 4310 | ISZ FDIVS /EXIT TO CALL+2\r |
| 4311 | JMS GARG /GET .ABS. FAC, .ABS. ARG, SIGN OF RESULT\r |
| 4312 | DCOM\r |
| 4313 | SAVE /ARG IS DIVISOR\r |
| 4314 | DVSOR\r |
| 4315 | LOAD /.ABS. FAC: DIVIDEND\r |
| 4316 | FARG\r |
| 4317 | SAVE\r |
| 4318 | FOP\r |
| 4319 | DCA FAC+1 /FAC WILL HOLD QUOTIENT\r |
| 4320 | DCA FAC+2\r |
| 4321 | DVLOOP, IAC /QUO*2\r |
| 4322 | SHFT\r |
| 4323 | SAVE\r |
| 4324 | QUO\r |
| 4325 | LOAD\r |
| 4326 | DVSOR /TRIAL SUBTRACTION\r |
| 4327 | DADD\r |
| 4328 | TAD FOP+1 /CHECK FOR - AS RESULT OF TRIAL\r |
| 4329 | SMA CLA\r |
| 4330 | JMP DVOK /POSITIVE, INCREASE QUOTIENT\r |
| 4331 | DCOM /NEGATIVE, REVERSE\r |
| 4332 | DADD\r |
| 4333 | DCOM\r |
| 4334 | SKP /BUT DON'T INCREASE QUOTIENT\r |
| 4335 | \fDVOK, ISZ QUO+2 /MARK QUOTIENT\r |
| 4336 | CLA CMA /NEXT TIME REDUCE DIMINISHER\r |
| 4337 | SHFT\r |
| 4338 | SAVE\r |
| 4339 | DVSOR\r |
| 4340 | LOAD /MAKE READY TO MULTIPLY QUOTIENT\r |
| 4341 | QUO\r |
| 4342 | ISZ FCNTR /DO THIS 23 TIMES\r |
| 4343 | JMP DVLOOP /CONTINUE\r |
| 4344 | NORM /NORMALIZE MANTISSA\r |
| 4345 | SNA\r |
| 4346 | JMP DVEXP /0 MANTISSA IMPLIES ZERO - EXIT IMMEDIATELY\r |
| 4347 | TAD FOP /ADJUST EXPONENT\r |
| 4348 | TAD KM0026\r |
| 4349 | CMA IAC\r |
| 4350 | TAD DVSOR\r |
| 4351 | CMA IAC\r |
| 4352 | DVEXP, DCA FAC\r |
| 4353 | TAD FLSIGN /ADJUST SIGN\r |
| 4354 | SZA CLA /FLSIGN=0 FOR POSITIVE QUOTIENT\r |
| 4355 | DCOM\r |
| 4356 | JMP I FDIVS\r |
| 4357 | \r |
| 4358 | \f\r |
| 4359 | *7000\r |
| 4360 | /SUBROUTINE TO TYPE AND OUTPUT A MESSAGE UNTIL A TXMRK\r |
| 4361 | TXPUNS, 0\r |
| 4362 | TAD I TXPUNS /GET MESSAGE ADDRESS\r |
| 4363 | ISZ TXPUNS\r |
| 4364 | DCA .+2\r |
| 4365 | SETH /SET HALFWD POINTERS\r |
| 4366 | 0\r |
| 4367 | JMS DBLPUN /TYPE AND PUNCH\r |
| 4368 | JMP I TXPUNS\r |
| 4369 | \r |
| 4370 | /SUBROUTINE TO TYPE AND OUTPUT A MESSAGE BETWEEN TXMRKS\r |
| 4371 | TPUNQS, 0\r |
| 4372 | TAD TXMRK /MOVE TO MESSAGE\r |
| 4373 | SRCH\r |
| 4374 | JMP I TPUNQS /NO MESSAGE - EXIT\r |
| 4375 | JMS DBLPUN /TYPE & PUNCH UNTIL TXMRK\r |
| 4376 | JMP I TPUNQS\r |
| 4377 | \r |
| 4378 | /PUNCH AND TYPE UNTIL A TXMRK OR END OF RECORD\r |
| 4379 | DBLPUN, 0\r |
| 4380 | TAD K0377 /PRECEED MESSAGE WITH RUBOUT\r |
| 4381 | DCA BSAVE\r |
| 4382 | DBLNXT, JMS PCOPYS /PUNCH FOR HI, NOP FOR LO SPEED PUNCH\r |
| 4383 | LDH /GET CHARACTER\r |
| 4384 | BRAN /CR OR TX MRK?\r |
| 4385 | CRTX\r |
| 4386 | JMP DBLCR /C.R.\r |
| 4387 | JMP DBLEXT /TX MARK\r |
| 4388 | TAD BSAVE /OTHER - TYPE IT\r |
| 4389 | DBLTYP, TYPE\r |
| 4390 | JMP DBLNXT /PUNCH THIS AND GET NEXT\r |
| 4391 | DBLEXT, TAD K0377 /E.O.R. OR TXMRK\r |
| 4392 | JMS I PUNCHX /BRACKET MESSAGE WITH RUBOUTS\r |
| 4393 | JMP I DBLPUN /EXIT\r |
| 4394 | \r |
| 4395 | DBLCR, TAD K0215 /PUNCH CR\r |
| 4396 | DCA BSAVE\r |
| 4397 | JMS PCOPYS\r |
| 4398 | TAD KCR /TYPE CRLF\r |
| 4399 | JMP DBLTYP /AND THEN PUNCH LF\r |
| 4400 | \r |
| 4401 | /SUBROTINE TO PUNCH ON PC8I WHAT WAS TYPED OR NOP IF NO PC8I\r |
| 4402 | PCOPYS, 0\r |
| 4403 | LAS /CHECK SWITCHES\r |
| 4404 | SPA CLA /+ FOR PC8I, - FOR ASR33\r |
| 4405 | JMP I PCOPYS /-, EXIT IMMEDIATELY\r |
| 4406 | TAD BSAVE /IS IT A LEGIT ASCII CODE?\r |
| 4407 | AND K0200\r |
| 4408 | SNA CLA\r |
| 4409 | JMP I PCOPYS /NO - EXIT IMMEDIATELY\r |
| 4410 | TAD BSAVE /OK - PUNCH IT\r |
| 4411 | JMS I PUNCHX\r |
| 4412 | JMP I PCOPYS\r |
| 4413 | \r |
| 4414 | \f/SUBROUTINE TO PUNCH LEADER-TRAILER\r |
| 4415 | LTPUNS, 0\r |
| 4416 | TAD KM0043\r |
| 4417 | DCA TLTCNT /# OF 200 CODES TO PUNCH\r |
| 4418 | TLTCNT=TEMP02\r |
| 4419 | TAD K0200 /200\r |
| 4420 | JMS I PUNCHX /PUNCH\r |
| 4421 | ISZ TLTCNT\r |
| 4422 | JMP .-3\r |
| 4423 | JMP I LTPUNS\r |
| 4424 | \r |
| 4425 | /LOCAL CONSTANTS\r |
| 4426 | K16, 16\r |
| 4427 | ENPARA, KBLB\r |
| 4428 | K0200, 0200\r |
| 4429 | K0215, 0215\r |
| 4430 | RATE, 0\r |
| 4431 | K0700, 700\r |
| 4432 | \r |
| 4433 | /LOCAL CROSSPAGE\r |
| 4434 | BINAX, BINAS\r |
| 4435 | BINGX, BINGS\r |
| 4436 | PUNCHX, PUNCHS\r |
| 4437 | \r |
| 4438 | /OUTPUT REST OF TEXT AND PUNCH PARAMETER TAPE\r |
| 4439 | CON34, JMS TXPUNS /"<CRLF> SYNC ON CHANNEL: "-\r |
| 4440 | DIS01\r |
| 4441 | JMS DBLPUN /"<CRLF>SYNC ON CHANNEL:S#"\r |
| 4442 | JMS DBLPUN /"<CRLF>SYNC ON CHANNEL:S#<CRLF>"\r |
| 4443 | SETH\r |
| 4444 | DIS25\r |
| 4445 | JMS TPUNQS /"####"\r |
| 4446 | JMS TXPUNS /"#### SWEEPS AT"\r |
| 4447 | TXT34B\r |
| 4448 | SETH /"#### SWEEPS AT ######"\r |
| 4449 | DIS24\r |
| 4450 | JMS TPUNQS\r |
| 4451 | JMS TPUNQS /"#### SWEEPS AT ######*"\r |
| 4452 | JMS TXPUNS /"#### SWEEPS AT ######*S'<CRLF>"\r |
| 4453 | TXT34C\r |
| 4454 | TAD XROPT /IS THERE A SORT?\r |
| 4455 | SNA CLA\r |
| 4456 | JMP CON34A /NO-SKIP AHEAD\r |
| 4457 | JMS TXPUNS /"SORT AT"\r |
| 4458 | DIS12\r |
| 4459 | JMS DBLPUN /"SORT AT ###### *S<CRLF>"\r |
| 4460 | JMS TPUNQS\r |
| 4461 | JMS TXPUNS\r |
| 4462 | TXT34C\r |
| 4463 | \fCON34A, JMS TXPUNS /"(V**,#,####-####)<CRLF>"\r |
| 4464 | DIS99\r |
| 4465 | TAD LNBUFB /WAS THE B-SWEEP USED?\r |
| 4466 | SNA CLA\r |
| 4467 | DCA KBTOA /NO, DISABLE IT\r |
| 4468 | DCA RATE\r |
| 4469 | LOAD /CLEAR RATE\r |
| 4470 | FASI /LOAD-A SWEEP SAMPLING RATE\r |
| 4471 | JMP INTO /JUMP TO TRIAL SUBTRACT\r |
| 4472 | SIZE, LOAD\r |
| 4473 | TEMP\r |
| 4474 | FDIV\r |
| 4475 | TEN /REDUCE SAMPLING RATE BY TEN\r |
| 4476 | INTO, SAVE /SAVE RESULT\r |
| 4477 | TEMP /AND DO A TRIAL SUBTRACT\r |
| 4478 | FADD\r |
| 4479 | F4K\r |
| 4480 | ISZ RATE /RECORD THE SUBTRACT\r |
| 4481 | TAD FAC+1\r |
| 4482 | SPA CLA /TEST IT\r |
| 4483 | JMP SIZE /DO IT AGAIN\r |
| 4484 | NOP\r |
| 4485 | DFIX /NOW FIX THE REMAINDER\r |
| 4486 | 15 /AND FIX THE RATE FOR THE CLOCK\r |
| 4487 | TAD RATE\r |
| 4488 | BSW /1 GOES TO 100, 2 GOES TO 200, ETC.\r |
| 4489 | CMA /COMPLEMENT OF THESE THREE BITS IS THE RATE MODE\r |
| 4490 | AND K0700\r |
| 4491 | TAD KMODE\r |
| 4492 | DCA KMODE\r |
| 4493 | JMS LTPUNS /PUNCH OUT 200 CODE\r |
| 4494 | TAD K16 /OUTPUT PARAMETERS (BIN)\r |
| 4495 | JMS I BINAX\r |
| 4496 | TAD ENPARA /OUTPUT FROM ADPARA TO END OF PARAMETERS\r |
| 4497 | JMS I BINGX\r |
| 4498 | TAD ADJLIS /OUTPUT LISTS (BIN)\r |
| 4499 | IAC\r |
| 4500 | JMS I BINAX\r |
| 4501 | TAD ADBUFA /OUTPUT FROM ADJLIS TO ADBUFA\r |
| 4502 | JMS I BINGX\r |
| 4503 | EJECT\r |
| 4504 | \r |
| 4505 | CON34B, TAD ADJLIS /PUNCH OUT DATA BLOCK LINKAGES\r |
| 4506 | DCA AXPNTR /SET UP TO LOOK AT JOB LIST\r |
| 4507 | TAD MEMTOT /SET AVAILABLE FIELD COUNT\r |
| 4508 | CMA\r |
| 4509 | DCA TFIELD /-# OF FIELDS IN CONFIGURATION\r |
| 4510 | TFIELD=TEMP16\r |
| 4511 | TAD KHICOR /FIELD 0 MAX ALLOWABLE ADDR.\r |
| 4512 | DCA TMAXPG\r |
| 4513 | TMAXPG=TEMP17\r |
| 4514 | TAD ADBUFB\r |
| 4515 | TAD LNBUFB\r |
| 4516 | DCA TCURAD\r |
| 4517 | TCURAD=TEMP20\r |
| 4518 | \fCON35, TAD I AXPNTR /GET J1\r |
| 4519 | SNA CLA\r |
| 4520 | JMP CON37 /J1=0 FOR E.O.L.\r |
| 4521 | DCA LINST1 /SET LINK FLAG 0.\r |
| 4522 | ISZ AXPNTR /SKIP J2\r |
| 4523 | TAD I AXPNTR /J3 HOLDS # OF CELLS/POINT\r |
| 4524 | FLOAT\r |
| 4525 | SAVE\r |
| 4526 | FLOT01\r |
| 4527 | TAD K6201 /CDF 0\r |
| 4528 | JMS I BINFY\r |
| 4529 | TAD AXPNTR /ADDRESS OF LINKAGE (AXPNTR=J3)\r |
| 4530 | JMS I BINAY /PUNCH IT\r |
| 4531 | TAD I AXPNTR /GET # OF POINTS REQUIRED (J4)\r |
| 4532 | DCA TPOINT\r |
| 4533 | TPOINT=TEMP15\r |
| 4534 | TAD K0003 /SKIP J5, J6, AND J7\r |
| 4535 | TAD AXPNTR\r |
| 4536 | DCA AXPNTR\r |
| 4537 | TWO /FIRST BLOCK HAS 1 LOCATION FOR SWEEP COUNT\r |
| 4538 | \r |
| 4539 | CON35A, DCA INITOS\r |
| 4540 | TAD K0003 /3 LOCATIONS FOR LINKAGES\r |
| 4541 | TAD TCURAD /CURRENT FREE ADDRESS\r |
| 4542 | CMA IAC\r |
| 4543 | TAD TMAXPG /COMPARE AGAINST MAX ALLOWABLE FOR FIELD\r |
| 4544 | DCA FAC+2\r |
| 4545 | DCA FAC+1\r |
| 4546 | NORM /# OF LOCATIONS AVAILABLE\r |
| 4547 | DCA FAC\r |
| 4548 | FDIV /LOCATIONS/LOC PER POINT\r |
| 4549 | FLOT01\r |
| 4550 | FIX\r |
| 4551 | DCA TSAM /#POINTS AVAIL FOR THIS BLOCK\r |
| 4552 | TSAM=TEMP13\r |
| 4553 | \r |
| 4554 | CON36, TAD TSAM /POINTS AVAILABLE\r |
| 4555 | TAD TPOINT /POINTS REQUIRED\r |
| 4556 | SMA /DECREASE POINTS REQ BY POINTS AVAIL\r |
| 4557 | CLA /UNLESS MORE ARE AVAIL THAN ARE REQ\r |
| 4558 | DCA TREQ /-POINTS REQ AFTER THIS BLOCK\r |
| 4559 | TREQ=TEMP01\r |
| 4560 | \f TAD TREQ \r |
| 4561 | CMA IAC\r |
| 4562 | TAD TPOINT /+POINTS REQUIRED BEFORE THIS BLOCK\r |
| 4563 | DCA TBLK /POINTS IN THIS BLOCK.\r |
| 4564 | TBLK=TEMP02\r |
| 4565 | TAD TREQ /UPDATE POINTS REQUIRED\r |
| 4566 | DCA TPOINT\r |
| 4567 | TAD TBLK /LINK 1:-POINTS IN BLK (NEXT)\r |
| 4568 | JMS LINSTX /STORE LOC IN FIELD 1\r |
| 4569 | /*******OLD WAS JMS I BINDY\r |
| 4570 | TAD TFIELD /-# OF FIELDS LEFT \r |
| 4571 | TAD MEMTOT /+# OF FIELDS IN MACHINE -1\r |
| 4572 | IAC /+1: CURRENT FIELD\r |
| 4573 | CLL RTL /MAKE A CDF N INSTRUCTION\r |
| 4574 | RAL\r |
| 4575 | TAD K6201 /LINK2: CDF N\r |
| 4576 | DCA NXTCDF\r |
| 4577 | NXTCDF=TEMP14\r |
| 4578 | \r |
| 4579 | TAD NXTCDF\r |
| 4580 | JMS LINSTX /******WAS JMS I BINDY\r |
| 4581 | TAD TCURAD /L3: NEXT BLOCK STARTS AT ...-1\r |
| 4582 | JMS LINSTX /***** WAS JMS I BINDY\r |
| 4583 | TAD TBLK /-POINTS IN BLOCK\r |
| 4584 | CMA IAC\r |
| 4585 | SNA /ANY POINTS IN BLOCK BEING LINKED TO?\r |
| 4586 | JMP CON35 /NO-GET NEXT JOB\r |
| 4587 | FLOAT /YES - GET BLOCK LENGTH\r |
| 4588 | FMUL /#CELLS IN BLK = PTS * CELLS/PNT\r |
| 4589 | FLOT01\r |
| 4590 | CLA CMA\r |
| 4591 | FIX\r |
| 4592 | CLA IAC\r |
| 4593 | SHFT\r |
| 4594 | TAD SHFR\r |
| 4595 | TAD TCURAD /CURRENT ADDR+BLK LENGTH\r |
| 4596 | DCA TCURAD /GETS NEW CURADDR.(NEXT BLOCK START -1)\r |
| 4597 | ISZ LINST1 /SET FLAG TO STORE CORE LINKS.\r |
| 4598 | TAD NXTCDF /PUNCH LINKAGE WORDS\r |
| 4599 | JMS I BINFY /FIELD\r |
| 4600 | TAD TCURAD /AND ADDRESS\r |
| 4601 | TAD INITOS /ADJUST FOR FIRST BLOCK LENGTH\r |
| 4602 | JMS I BINAY\r |
| 4603 | TAD K0003 /MOVE OVER L1,L2,L3\r |
| 4604 | EJECT\r |
| 4605 | \r |
| 4606 | TAD TCURAD\r |
| 4607 | DCA TCURAD\r |
| 4608 | TAD TPOINT /IF POINTS STILL REQ .NE. 0, NEW FIELD\r |
| 4609 | SNA CLA /IF .EQ. 0, PUT END-OF-BLOCK\r |
| 4610 | JMP CON36 /PUT E.O.B.\r |
| 4611 | CLA CMA /NEW FIELD, START AT 0000\r |
| 4612 | DCA TCURAD\r |
| 4613 | TAD K7577\r |
| 4614 | DCA TMAXPG /ALL BUT FIELD 0 HAVE 7600 CELLS\r |
| 4615 | IAC /TCURAD IS ADDR-1\r |
| 4616 | ISZ TFIELD /UPDATE FIELD COUNT\r |
| 4617 | JMP CON35A /BLOCK OUT NEXT FIELD\r |
| 4618 | \fCON37, TAD CHKSUM /FINISH OUTPUT DEVICE.\r |
| 4619 | JMS I BINDY\r |
| 4620 | JMS I LTPUNX /PUNCH CHECKSUM AND LEADER TRAILER.\r |
| 4621 | CIF 10\r |
| 4622 | TAD TENPUN\r |
| 4623 | SZA CLA /PUNCHED CONTROL TAPE?\r |
| 4624 | JMP I PCONTX /YES WRITE CONTROL TAPE TO M.S.\r |
| 4625 | JMP I .+1 /STORE LINKS IN CORE AND DO TRIG.\r |
| 4626 | TRIGSU\r |
| 4627 | \r |
| 4628 | /SUBROUTINE INITIALIZES PC8I OR ASR33\r |
| 4629 | /NOT USED ANY MORE.\r |
| 4630 | INITOS, 0\r |
| 4631 | CLA\r |
| 4632 | CHKSUM=TEMP21\r |
| 4633 | JMP I INITOS\r |
| 4634 | LINSTX, 0\r |
| 4635 | CDF CIF 10\r |
| 4636 | JMS I LINKSX /SAVE LINKS IN FIELD 1.\r |
| 4637 | JMS I BINDY\r |
| 4638 | JMP I LINSTX\r |
| 4639 | LINKSX, LINKS\r |
| 4640 | LINST1, 0\r |
| 4641 | \r |
| 4642 | \r |
| 4643 | *7364\r |
| 4644 | /LOCAL CROSSPAGE\r |
| 4645 | BINDY, BINDS\r |
| 4646 | BINAY, BINAS\r |
| 4647 | BINFY, BINFS\r |
| 4648 | LTPUNX, LTPUNS\r |
| 4649 | PCONTX, PCONTT\r |
| 4650 | \r |
| 4651 | K7577, 7577\r |
| 4652 | /LOCAL CONSTANTS\r |
| 4653 | K6201, 6201\r |
| 4654 | K0036, 36\r |
| 4655 | KMCTRL, -220\r |
| 4656 | KHICOR, HICORE-1\r |
| 4657 | \r |
| 4658 | \r |
| 4659 | /FLOATING CONSTANTS\r |
| 4660 | TRNTIM, 0011\r |
| 4661 | 3330\r |
| 4662 | KZEROF, 0000\r |
| 4663 | 0000\r |
| 4664 | 0000\r |
| 4665 | TEN, 0004\r |
| 4666 | 2400\r |
| 4667 | 0000\r |
| 4668 | \f/OUTPUTS BINARY GROUP STARTING AT BINA ADDRESS\r |
| 4669 | /AC HOLDS END ADDRESS FOR OUTPUT\r |
| 4670 | BINGS, 0\r |
| 4671 | CMA /-(END ADDRESS+1)\r |
| 4672 | TAD SHFR /+ BEGIN ADDRESS\r |
| 4673 | DCA BINCNT /IS # OF LOCATIONS TO OUTPUT\r |
| 4674 | BINCNT=TEMP02\r |
| 4675 | CMA /SET POINTER TO BEGIN ADDRESS\r |
| 4676 | TAD SHFR\r |
| 4677 | DCA AXPNTR\r |
| 4678 | TAD KCDF0\r |
| 4679 | JMS BINFS /SET DATA FIELD TO 0\r |
| 4680 | TAD I AXPNTR /GET DATA\r |
| 4681 | JMS BINDS /PUNCH IT\r |
| 4682 | ISZ BINCNT /ENOUGH?\r |
| 4683 | JMP .-3 /NO - AGAIN\r |
| 4684 | JMP I BINGS\r |
| 4685 | \r |
| 4686 | /SUBROUTINE TO PUNCH CHARACTER (8-BIT)\r |
| 4687 | PUNCHS, 0\r |
| 4688 | DCA TCHAR /AC HOLDS 8BIT\r |
| 4689 | TCHAR=TEMP01\r |
| 4690 | TAD TENPUN /=1 IF PUNCHING\r |
| 4691 | CLA /**** CONTROL TAPES NOT PUNCHED.\r |
| 4692 | JMP I PUNCHS /NO - EXIT\r |
| 4693 | LAS /LOOK AT SWITCHES\r |
| 4694 | SMA CLA /SR0=0 FOR HI SPEED\r |
| 4695 | JMP PUNCHI /HI SPEED\r |
| 4696 | PUNLO, TAD TCHAR /LO SPEED - GET CHARACTER\r |
| 4697 | TLS /PUNCH IT\r |
| 4698 | TSF\r |
| 4699 | JMP .-1\r |
| 4700 | TCF /LEAVE WITH CLEARED FLAG\r |
| 4701 | CLA\r |
| 4702 | JMP I PUNCHS\r |
| 4703 | PUNCHI, TAD TCHAR /HI - GET CHARACTER\r |
| 4704 | PLS /PUNCH IT\r |
| 4705 | LAS /IF SR WAS SET INCORRECTLY\r |
| 4706 | SPA CLA /ALLOW USER TO RECOVER\r |
| 4707 | JMP PUNLO /PUNCH THIS ON LO\r |
| 4708 | PSF /PUNCH THIS ON HI\r |
| 4709 | JMP .-4\r |
| 4710 | PCF\r |
| 4711 | JMP I PUNCHS\r |
| 4712 | \f/SUBROUTINE CONVERTS AC TO TWO DATA FRAMES\r |
| 4713 | BINDS, 0\r |
| 4714 | DCA SHFR+1 /DATA TO BE PUNCHED\r |
| 4715 | TAD TENPUN /PUNCH ENABLED?\r |
| 4716 | SZA CLA\r |
| 4717 | CLA /***** CONTROL TAPES NOT PUNCHED\r |
| 4718 | /****** THEY ARE WRITTEN ON MASS STORAGE.\r |
| 4719 | TAD SHFR+1 /NO - STORE IN MEMORY\r |
| 4720 | BINMX, CDF /SET BY BINFS\r |
| 4721 | DCA I BPNTR /BPNTR SET UP BY BINAS\r |
| 4722 | CDF 0\r |
| 4723 | BINDO, JMS SHFT6 /GET HI ORDER 6 BITS\r |
| 4724 | JMS PUNWDS /PUNCH THEN GET NEXT 6 BITS AND PUNCH\r |
| 4725 | JMP I BINDS\r |
| 4726 | \r |
| 4727 | /SUBROUTINE CONVERTS AC TO TWO ADDRESS FRAMES\r |
| 4728 | BINAS, 0\r |
| 4729 | DCA SHFR+1 /ADDRESS\r |
| 4730 | CLA CMA /SET POINTER FOR STORING IN CORE (IF TENPUN=0)\r |
| 4731 | TAD SHFR+1\r |
| 4732 | DCA BPNTR\r |
| 4733 | BPNTR=11\r |
| 4734 | JMS SHFT6 /GET HI ORDER 6 BITS\r |
| 4735 | TAD K0100A /SIGNIFIES ADDRESS WORD TO BIN LOADER\r |
| 4736 | JMS PUNWDS /PUNCH THEN GET NEXT 6 BITS AND PUNCH\r |
| 4737 | JMP I BINAS\r |
| 4738 | \r |
| 4739 | /SUBROUTINE TO PUNCH TWO HALVES OF WORD\r |
| 4740 | PUNWDS, 0\r |
| 4741 | JMS UPCHKS /UPDATE CHECKSUM WITH 6 BITS IN AC\r |
| 4742 | JMS PUNCHS /PUNCH\r |
| 4743 | JMS SHFT6 /GET NEXT 6 BITS\r |
| 4744 | JMS UPCHKS /UPDATE CHECKSUM\r |
| 4745 | JMS PUNCHS /PUNCH IT OUT\r |
| 4746 | JMP I PUNWDS\r |
| 4747 | \r |
| 4748 | /SUBROUTINE SHIFTS FAC 6 PLACES AND PUTS OUT 6 RIGHT OF FAC+1\r |
| 4749 | SHFT6, 0\r |
| 4750 | TAD K0006A /SHIFT 6 PLACES LEFT\r |
| 4751 | SHFT\r |
| 4752 | TAD SHFR /GET RESULT\r |
| 4753 | AND K0077B /MASK OFF\r |
| 4754 | JMP I SHFT6\r |
| 4755 | \r |
| 4756 | /SUBROUTINE CONVERTS AC 9-11 TO FIELDATA\r |
| 4757 | BINFS, 0\r |
| 4758 | DCA BINMX /SET UP CDF N INSTRUCTION IF STORING IN CORE\r |
| 4759 | TAD BINMX\r |
| 4760 | AND K0070A\r |
| 4761 | TAD K0300 /MAKE A FIELD WORD FOR BIN LOADER\r |
| 4762 | JMS PUNCHS /PUNCH IT\r |
| 4763 | JMP I BINFS\r |
| 4764 | \f/SUBROUTINE TO UPDATE CHECKSUM\r |
| 4765 | UPCHKS, 0\r |
| 4766 | DCA TEMP01 /SAVE\r |
| 4767 | TAD CHKSUM /ADD TO CHECKSUM\r |
| 4768 | TAD TEMP01\r |
| 4769 | DCA CHKSUM /NEW CHECKSUM\r |
| 4770 | TAD TEMP01 /RESTORE\r |
| 4771 | JMP I UPCHKS\r |
| 4772 | \r |
| 4773 | /LOCAL CONSTANTS\r |
| 4774 | K0006A, 0006\r |
| 4775 | K0070A, 0070\r |
| 4776 | K0077B, 0077\r |
| 4777 | K0100A, 0100\r |
| 4778 | K0300, 0300\r |
| 4779 | KCDF0, 6201\r |
| 4780 | \r |
| 4781 | /COME TO 7540 TO CHECK FOR CTRL CHARACTERS\r |
| 4782 | /THIS VERSION IS FOR PC8I OR ASR 33 \r |
| 4783 | KBRANS, 0\r |
| 4784 | BRAN\r |
| 4785 | CTRLST\r |
| 4786 | JMP I CTRLC /^C\r |
| 4787 | JMP I PRES0Y /^Z\r |
| 4788 | TAD BSAVE /NOT ^Z, OR ^C\r |
| 4789 | JMP I KBRANS\r |
| 4790 | \r |
| 4791 | /LIST OF CTRL CHARACTERS\r |
| 4792 | CTRLST, +203 /^C\r |
| 4793 | -232 /^Z\r |
| 4794 | \r |
| 4795 | /INDIRECT BRANCHES\r |
| 4796 | CTRLC, MONITR /7777 IF PAPER TAPE, 7600 FOR DSK OR DTA\r |
| 4797 | PRES0Y, PRES00\r |
| 4798 | \r |
| 4799 | \f EJECT\r |
| 4800 | FIELD 1\r |
| 4801 | /WRITE OUT CONTROL FILE.\r |
| 4802 | *2000\r |
| 4803 | PCONTT, CDF 0\r |
| 4804 | CLA IAC /0-1777 OF FIELD 1 NEED NOT BE SAVED.\r |
| 4805 | DCA I (7746\r |
| 4806 | CDF 10\r |
| 4807 | JMS I (7700\r |
| 4808 | 5 /CALL COMMAND DECODER.\r |
| 4809 | 0\r |
| 4810 | 0\r |
| 4811 | \r |
| 4812 | TAD I (7600\r |
| 4813 | SNA /TEST FOR NO OUTPUT FILE.\r |
| 4814 | JMP ERR\r |
| 4815 | AND (17\r |
| 4816 | JMS I (7700\r |
| 4817 | 1\r |
| 4818 | ANS1, 7201 /ENTRY POINT.\r |
| 4819 | JMP ERR\r |
| 4820 | \r |
| 4821 | TAD I (7600\r |
| 4822 | JMS I (7700\r |
| 4823 | 3\r |
| 4824 | ANS2, 7601 /RETURN BLOCK START.\r |
| 4825 | ANS3, 0 /- BLOCK LENGTH RETURNED.\r |
| 4826 | JMP ERR\r |
| 4827 | \r |
| 4828 | CDF 0 /LOOK JOB LIST AND CONTROL LIST\r |
| 4829 | TAD (230 /END.\r |
| 4830 | DCA 10\r |
| 4831 | TAD (-3\r |
| 4832 | DCA 11\r |
| 4833 | \r |
| 4834 | TAG1, TAD I 10\r |
| 4835 | SZA CLA\r |
| 4836 | JMP .-2\r |
| 4837 | ISZ 11\r |
| 4838 | JMP TAG1\r |
| 4839 | CDF 10\r |
| 4840 | CLA IAC\r |
| 4841 | TAD 10 /CALCULATE # OF 128 RECORDS.\r |
| 4842 | AND (7600\r |
| 4843 | CLL RAR\r |
| 4844 | DCA ARG1 /LOAD WRITE ARG.\r |
| 4845 | IAC\r |
| 4846 | TAD 10\r |
| 4847 | AND (177\r |
| 4848 | SZA CLA\r |
| 4849 | TAD (100\r |
| 4850 | TAD ARG1\r |
| 4851 | TAD (4000\r |
| 4852 | DCA ARG1\r |
| 4853 | DCA ARG2\r |
| 4854 | TAD ANS2\r |
| 4855 | DCA ARG3\r |
| 4856 | \r |
| 4857 | JMS FILSZC /TEST IF OUTPUT FILE FULL.\r |
| 4858 | JMS FILBWT /WRITE FIELD 0 STUFF.\r |
| 4859 | \r |
| 4860 | TAD ANS2 /RETURN WITH # OF BLOCKS WRITTEN.\r |
| 4861 | DCA ARG3 /NEW START BLOCK.\r |
| 4862 | TAD (CORSTG /START OF LINKS IN FIELD 1.\r |
| 4863 | DCA ARG2\r |
| 4864 | \r |
| 4865 | TAD (100 /CAL. # OF 128 RECORDS TO WRITE.\r |
| 4866 | DCA ARG1\r |
| 4867 | TAD (CORSTG\r |
| 4868 | DCA 20\r |
| 4869 | TAG3, TAD (-200\r |
| 4870 | DCA 21\r |
| 4871 | TAG2, TAD I 20\r |
| 4872 | SNA CLA\r |
| 4873 | JMP TAG4\r |
| 4874 | TAD 20\r |
| 4875 | TAD (5\r |
| 4876 | DCA 20\r |
| 4877 | TAD 21\r |
| 4878 | TAD (5\r |
| 4879 | DCA 21\r |
| 4880 | TAD 21\r |
| 4881 | SPA CLA\r |
| 4882 | JMP TAG2\r |
| 4883 | TAD (100\r |
| 4884 | TAD ARG1\r |
| 4885 | DCA ARG1\r |
| 4886 | TAD 21\r |
| 4887 | JMP TAG3\r |
| 4888 | \r |
| 4889 | TAG4, TAD (4010\r |
| 4890 | TAD ARG1\r |
| 4891 | DCA ARG1\r |
| 4892 | JMS FILSZC /TEST IF OUTPUT FILE FULL.\r |
| 4893 | JMS FILBWT /WRITE FIELD 1 LINKS.\r |
| 4894 | TAD ARG3 /RETURN WITH # OF BLOCKS USED,\r |
| 4895 | CIA\r |
| 4896 | TAD ANS2 /CALCULATE # OF BLOCKS USED.\r |
| 4897 | CIA\r |
| 4898 | DCA ARG4\r |
| 4899 | TAD I (7600 /CLOSE FILE.\r |
| 4900 | AND (17\r |
| 4901 | JMS I (7700\r |
| 4902 | 4\r |
| 4903 | 7601\r |
| 4904 | ARG4, 0\r |
| 4905 | JMP ERR\r |
| 4906 | JMP WDONE\r |
| 4907 | \r |
| 4908 | FILBWT, 0\r |
| 4909 | CIF 0\r |
| 4910 | JMS I ANS1 /WRITE THE FILE.\r |
| 4911 | ARG1, 0\r |
| 4912 | ARG2, 0\r |
| 4913 | ARG3, 0\r |
| 4914 | JMP ERR\r |
| 4915 | \r |
| 4916 | TAD ARG1 /CALCULATE # OF 256 BLOCKS.\r |
| 4917 | AND (3700\r |
| 4918 | CLL RTR\r |
| 4919 | RTR\r |
| 4920 | RTR\r |
| 4921 | RAR\r |
| 4922 | SZL\r |
| 4923 | IAC\r |
| 4924 | JMP I FILBWT\r |
| 4925 | \r |
| 4926 | \r |
| 4927 | *2200\r |
| 4928 | \r |
| 4929 | WDONE, CDF CIF 0 /RETURN TO OS-8.\r |
| 4930 | JMP I .+1\r |
| 4931 | 7600\r |
| 4932 | \r |
| 4933 | \fFILSZC, 0 /TESTS IF FILE FULL.\r |
| 4934 | TAD ARG1 /GET # OF 128 RECORDS,\r |
| 4935 | AND (3700 /AND CALCULATE # OF BLOCKS.\r |
| 4936 | CLL RTR\r |
| 4937 | RTR\r |
| 4938 | RTR\r |
| 4939 | RAR\r |
| 4940 | SZL\r |
| 4941 | IAC CLL\r |
| 4942 | TAD ANS3 /TEST IF SIZE OVERFLOW.\r |
| 4943 | SNL\r |
| 4944 | JMP .+3\r |
| 4945 | SZA\r |
| 4946 | JMP ERR\r |
| 4947 | DCA ANS3\r |
| 4948 | JMP I FILSZC\r |
| 4949 | \r |
| 4950 | ERR, HLT\r |
| 4951 | CLA CLL\r |
| 4952 | JMS I (7700 /ERROR MESSAGE.\r |
| 4953 | 7\r |
| 4954 | 0\r |
| 4955 | HLT\r |
| 4956 | \r |
| 4957 | /READ IN CONTROL FILE\r |
| 4958 | \r |
| 4959 | CONTAP, CLA CLL\r |
| 4960 | CDF 0 /SAVE LINKS FOR CHAIN.\r |
| 4961 | TAD I (5\r |
| 4962 | DCA CONSA1\r |
| 4963 | TAD I (6\r |
| 4964 | DCA CONSA2\r |
| 4965 | TAD I (7\r |
| 4966 | DCA CONSA3\r |
| 4967 | \r |
| 4968 | CDF 10\r |
| 4969 | JMS I (7700 /CALL COMMAND DECODER\r |
| 4970 | 5\r |
| 4971 | 0\r |
| 4972 | 0\r |
| 4973 | \r |
| 4974 | TAD I (7617\r |
| 4975 | SNA /TEST FOR NO INPUT FILE.\r |
| 4976 | JMP ERR\r |
| 4977 | JMS I (7700 /FETCH DEVICE HANDLER\r |
| 4978 | 1\r |
| 4979 | CONTP1, 7201 /ENTRY POINT.\r |
| 4980 | JMP ERR\r |
| 4981 | \r |
| 4982 | TAD (200 /SETUP TO READ FILE.\r |
| 4983 | DCA CONP1\r |
| 4984 | TAD I (7620\r |
| 4985 | DCA CONP3\r |
| 4986 | JMS FILERD /READ 1ST BLOCK.\r |
| 4987 | TAD (-150\r |
| 4988 | DCA CONSA5 /# OF LOC TO SEARCH.\r |
| 4989 | JMP .+2\r |
| 4990 | CONTP5, JMS FILERD /READ NEXT BLOCK.\r |
| 4991 | CONTP2, CDF 0\r |
| 4992 | TAD I CONSA4 /SEARCH FOR END OF JOB LIST AND\r |
| 4993 | /OTHER PAR. 3 RD 0 IS END.\r |
| 4994 | ISZ CONSA4\r |
| 4995 | CDF 10\r |
| 4996 | SNA CLA\r |
| 4997 | JMP CONTP3\r |
| 4998 | CONTP4, ISZ CONSA5 /FIND END OF BLOCK READ.\r |
| 4999 | JMP CONTP2\r |
| 5000 | JMP CONTP5\r |
| 5001 | CONTP3, ISZ CONSA6 /CHECK FOR 3RD 0.\r |
| 5002 | JMP CONTP4\r |
| 5003 | TAD (210 /FIELD 0 DATA IN.\r |
| 5004 | DCA CONP1 /READ FIELD 1 DATA.\r |
| 5005 | TAD (CORSTG\r |
| 5006 | DCA CONP2\r |
| 5007 | CONTP6, TAD (CORSTG\r |
| 5008 | DCA CONSA4\r |
| 5009 | CONTP9, JMS FILERD /READ NEXT BLOCK.\r |
| 5010 | CONTP8, TAD I CONSA4 /0 MARKS THE END OF THE LINKS\r |
| 5011 | /5 LOC. PER LINK,CDF,ORG.,AND 3 LINK WORDS.\r |
| 5012 | /IF CDF IS 0 ITS THE END.\r |
| 5013 | SNA CLA\r |
| 5014 | JMP CONTP7\r |
| 5015 | TAD (5\r |
| 5016 | TAD CONSA4\r |
| 5017 | DCA CONSA4\r |
| 5018 | ISZ CONSA5\r |
| 5019 | JMP CONTP8\r |
| 5020 | JMP CONTP9\r |
| 5021 | \r |
| 5022 | CONTP7, CDF 0 /RESTOR LINKS FOR CHAIN.\r |
| 5023 | \r |
| 5024 | TAD CONSA1\r |
| 5025 | DCA I (5\r |
| 5026 | TAD CONSA2\r |
| 5027 | DCA I (6\r |
| 5028 | TAD CONSA3\r |
| 5029 | DCA I (7\r |
| 5030 | \r |
| 5031 | JMP I (TRIGSU\r |
| 5032 | \r |
| 5033 | CONSA1, 0\r |
| 5034 | CONSA2, 0\r |
| 5035 | CONSA3, 0\r |
| 5036 | CONSA4, 230\r |
| 5037 | CONSA5, 0\r |
| 5038 | CONSA6, -3\r |
| 5039 | \r |
| 5040 | FILERD, 0\r |
| 5041 | CIF 0\r |
| 5042 | JMS I CONTP1\r |
| 5043 | CONP1, 0\r |
| 5044 | CONP2, 0 /SET TO READ TO LOC 0 ON 1ST READ.\r |
| 5045 | CONP3, 0\r |
| 5046 | JMP ERR\r |
| 5047 | TAD (-400\r |
| 5048 | DCA CONSA5\r |
| 5049 | ISZ CONP3\r |
| 5050 | TAD CONP2\r |
| 5051 | TAD (400\r |
| 5052 | DCA CONP2\r |
| 5053 | JMP I FILERD\r |
| 5054 | \r |
| 5055 | \f*2400\r |
| 5056 | LINKS, 0\r |
| 5057 | DCA LK1 /SAVE LINK VALUE TO SAVE.\r |
| 5058 | CDF 0\r |
| 5059 | TAD I (LINST1 /TEST TO STORE LINKS.\r |
| 5060 | SNA CLA\r |
| 5061 | JMP LK4 /NO IF 0.\r |
| 5062 | ISZ LK2 /PROGRAM IS ONE PASS,LK2 SET ON LOAD.\r |
| 5063 | JMP LK3 /NOT A NEW LINK.\r |
| 5064 | TAD I (BINMX /NEW LINK SAVE CDF,ORG.\r |
| 5065 | CDF 10\r |
| 5066 | DCA I LINSPT\r |
| 5067 | ISZ LINSPT\r |
| 5068 | CDF 0\r |
| 5069 | TAD I (BPNTR /ADDRESS,SAVE AS ADDRESS-1.\r |
| 5070 | CDF 10\r |
| 5071 | DCA I LINSPT\r |
| 5072 | ISZ LINSPT\r |
| 5073 | TAD (-3\r |
| 5074 | DCA LK2 /STORE 3 VALUES OF LINK.\r |
| 5075 | LK3, TAD LK1\r |
| 5076 | CDF 10\r |
| 5077 | DCA I LINSPT\r |
| 5078 | ISZ LINSPT\r |
| 5079 | DCA I LINSPT /SET 0 TO MARK END IF SO.\r |
| 5080 | /NOTE IF NO AVERAGES SPECIFIED,CAN'T\r |
| 5081 | /GET HERE.\r |
| 5082 | ISZ LINKS\r |
| 5083 | CDF CIF 0\r |
| 5084 | JMP I LINKS\r |
| 5085 | LK4, TAD LK1 /RETURN WITH JOB LIST VALUE FOR BINDS.\r |
| 5086 | CDF CIF 0\r |
| 5087 | JMP I LINKS\r |
| 5088 | CORSTG=3200\r |
| 5089 | LINSPT, CORSTG\r |
| 5090 | LK1, 0\r |
| 5091 | LK2, -1\r |
| 5092 | \r |
| 5093 | TRIGSU, CDF 10 /MOVE TRIG AND LINK STORE CODE TO FIELD 0\r |
| 5094 | /THEN EXECUTE IT.\r |
| 5095 | TAD (6377\r |
| 5096 | DCA 10\r |
| 5097 | TAD (CORFIX-1\r |
| 5098 | DCA 11\r |
| 5099 | TAD (-EXITXX+CORFIX-1\r |
| 5100 | DCA 12\r |
| 5101 | TRGSU1, CDF 10\r |
| 5102 | TAD I 11\r |
| 5103 | CDF 0\r |
| 5104 | DCA I 10\r |
| 5105 | ISZ 12\r |
| 5106 | JMP TRGSU1\r |
| 5107 | CDF CIF 0\r |
| 5108 | JMP .+1\r |
| 5109 | 6400\r |
| 5110 | \f*2600\r |
| 5111 | \r |
| 5112 | /LINKS SAVED IN FIELD 1 AS CDF,ORG. AND 3 LINK VALUES.\r |
| 5113 | \r |
| 5114 | CORFIX, CDF 0 /SAVE LINKS IN CORE.\r |
| 5115 | TAD ZZ3177\r |
| 5116 | DCA 10\r |
| 5117 | TAD ZZ6777\r |
| 5118 | DCA 13\r |
| 5119 | DCA I ZZ7000\r |
| 5120 | CORFX3, CDF 10\r |
| 5121 | TAD I 10 /GET 5 WORDS OF LINKS.\r |
| 5122 | SNA\r |
| 5123 | JMP CORFX6 /0 NO MORE LINKS.\r |
| 5124 | DCA CORFXX /SAVE CDF VALUE.\r |
| 5125 | TAD CORFXX\r |
| 5126 | TAD ZM6211 /IF CDF 10,SAVE IN FIELD 0.\r |
| 5127 | SNA CLA\r |
| 5128 | JMP CORFX4\r |
| 5129 | JMS CORFXS /STORE LINKS.\r |
| 5130 | JMP CORFX3\r |
| 5131 | CORFX4, TAD ZZM4 /SAVE FIELD 1 LINK IN FIELD 0.\r |
| 5132 | DCA 14\r |
| 5133 | CDF 0 /SAVE AS 1,ORG,3 LINK VALUES.\r |
| 5134 | IAC\r |
| 5135 | DCA I 13\r |
| 5136 | CORFX5, CDF 10\r |
| 5137 | TAD I 10\r |
| 5138 | CDF 0\r |
| 5139 | DCA I 13\r |
| 5140 | ISZ 14 /STORE ORG AND 3 LINKS.\r |
| 5141 | JMP CORFX5\r |
| 5142 | DCA I 13 /SET NEXT WORD 0 TO MARK END.\r |
| 5143 | CLA CMA\r |
| 5144 | TAD 13\r |
| 5145 | DCA 13\r |
| 5146 | JMP CORFX3\r |
| 5147 | CORFX6, TAD ZZ6777 /OTHER FIELDS DONE,\r |
| 5148 | DCA 10 /STORE FIELD 1 LINKS.\r |
| 5149 | TAD ZZ6201\r |
| 5150 | DCA CORFRS+1\r |
| 5151 | TAD ZZ6211\r |
| 5152 | DCA CORFXX\r |
| 5153 | CORFX7, CDF 0\r |
| 5154 | TAD I 10 /GET 5 WORD LINK SET.\r |
| 5155 | SNA CLA\r |
| 5156 | JMP I (6600 /DONE GO TO TRIGGER.\r |
| 5157 | JMS CORFXS\r |
| 5158 | JMP CORFX7\r |
| 5159 | \r |
| 5160 | CORFXS, 0\r |
| 5161 | JMS CORFRS\r |
| 5162 | TAD I 10 /STORAGE ADD. IS LOC-1 FOR AUTO INDEX.\r |
| 5163 | DCA 11\r |
| 5164 | TAD ZZM3\r |
| 5165 | DCA 12\r |
| 5166 | CORFX2, JMS CORFRS /SET CDF WHERE TO FETCH LINK.\r |
| 5167 | TAD I 10\r |
| 5168 | JMS CORFXZ /SET CDF WHERE TO STORE LINK.\r |
| 5169 | DCA I 11\r |
| 5170 | ISZ 12 /STORE 3 LINKS.\r |
| 5171 | JMP CORFX2\r |
| 5172 | JMP I CORFXS\r |
| 5173 | \r |
| 5174 | CORFRS, 0\r |
| 5175 | CDF 10\r |
| 5176 | JMP I CORFRS\r |
| 5177 | ZZ3177, 3177\r |
| 5178 | ZZM3, -3\r |
| 5179 | ZZ6777, 6777\r |
| 5180 | ZZ7000, 7000\r |
| 5181 | ZZ6201, CDF 0\r |
| 5182 | ZZ6211, CDF 10\r |
| 5183 | ZM6211, -6211\r |
| 5184 | ZZM4, -4\r |
| 5185 | \r |
| 5186 | CORFXZ, 0\r |
| 5187 | CORFXX, 0\r |
| 5188 | JMP I CORFXZ\r |
| 5189 | \f*3000\r |
| 5190 | /THIS SECTION CALIBRATES A SCHMITT TRIGGER BY WIATING\r |
| 5191 | /FOR THE SPECIFIED TRIGGER TO FIRE AND THEN TAKING A\r |
| 5192 | /SWEEP OF ANALOG CHANNEL 0.\r |
| 5193 | TRIG, CDF 0\r |
| 5194 | KCC\r |
| 5195 | TAD TTYLIS\r |
| 5196 | DCA 10\r |
| 5197 | TYP, TAD I 10\r |
| 5198 | SNA /IS THIS THE END OF LIST?\r |
| 5199 | JMP DONE /YES\r |
| 5200 | TLS\r |
| 5201 | CLA\r |
| 5202 | TSF\r |
| 5203 | JMP .-1\r |
| 5204 | JMP TYP\r |
| 5205 | DONE, TAD KMODE /NOW SET UP CLOCK\r |
| 5206 | CLOE\r |
| 5207 | CMA\r |
| 5208 | CLZE\r |
| 5209 | CLA\r |
| 5210 | ADCL\r |
| 5211 | TAD K200\r |
| 5212 | ADLE\r |
| 5213 | CLSA\r |
| 5214 | TWAIT, CLSA\r |
| 5215 | AND SMASK /IS IT THE PROPER SYNC?\r |
| 5216 | SNA CLA\r |
| 5217 | JMP HELEN\r |
| 5218 | TAD 16\r |
| 5219 | CLAB\r |
| 5220 | CLA CLL\r |
| 5221 | TAD M1000\r |
| 5222 | DCA PNTCNT\r |
| 5223 | PNTCNT=TEMP01\r |
| 5224 | TAD M1000\r |
| 5225 | DCA XREF\r |
| 5226 | XREF=TEMP02\r |
| 5227 | ALOOP, ADSK\r |
| 5228 | JMP .-1\r |
| 5229 | ADRB\r |
| 5230 | DILY\r |
| 5231 | CLL CLA IAC RAL\r |
| 5232 | TAD XREF\r |
| 5233 | DILX\r |
| 5234 | DCA XREF\r |
| 5235 | DISD\r |
| 5236 | JMP .-1\r |
| 5237 | DIXY\r |
| 5238 | ISZ PNTCNT\r |
| 5239 | JMP ALOOP\r |
| 5240 | JMP TWAIT-1\r |
| 5241 | HELEN, KSF\r |
| 5242 | JMP TWAIT\r |
| 5243 | KRB\r |
| 5244 | TAD ZZM203\r |
| 5245 | SNA CLA\r |
| 5246 | JMP I EXITXX\r |
| 5247 | JMP I SECT2\r |
| 5248 | TTYLIS, 6665\r |
| 5249 | LIST, 324\r |
| 5250 | 322\r |
| 5251 | 311\r |
| 5252 | 307\r |
| 5253 | 307\r |
| 5254 | 305\r |
| 5255 | 322\r |
| 5256 | 0\r |
| 5257 | K200, 200\r |
| 5258 | M1000, -1000\r |
| 5259 | SECT2, OVRLAY\r |
| 5260 | ZZM203, -203\r |
| 5261 | EXITXX, 7600 /SHOULD BE LAST THING ON PAGE.\r |
| 5262 | \r |
| 5263 | $\r |
| 5264 | \f\1a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 |