|
|
1.1 ! root 1: movl initr,r8 # terminal flag ! 2: #---> tstl r8 # skip if no terminal ! 3: beqlu ini13 # skip if no terminal ! 4: ! 5: addl2 cswex,noxeq # add -noexecute flag ! 6: #---> tstl noxeq # jump if execution suppressed ! 7: bnequ inix2 # jump if execution suppressed ! 8: ! 9: movl 4*icval(r10),r5 # load exponent ! 10: #---> tstl r5 # error if negative exponent ! 11: bgeq 0f # error if negative exponent ! 12: ! 13: subl2 4*1(sp),r6 # minus final cursor = total length ! 14: #---> tstl r6 # jump if result is null ! 15: bnequ 0f # jump if result is null ! 16: ! 17: movl 4*sclen(r10),r6 # load length ! 18: #---> tstl r6 # jump if null replacement ! 19: beqlu orpl2 # jump if null replacement ! 20: ! 21: subl2 r8,r6 # minus final cursor = part 3 length ! 22: #---> tstl r6 # jump to assign if part 3 is null ! 23: bnequ 0f # jump to assign if part 3 is null ! 24: ! 25: labo1: movl kvert,r6 # load error code ! 26: #---> tstl r6 # jump if no error has occured ! 27: beqlu labo2 # jump if no error has occured ! 28: ! 29: lcnt1: movl r$cnt,r9 # load continuation code block ptr ! 30: #---> tstl r9 # jump if no previous error ! 31: beqlu lcnt2 # jump if no previous error ! 32: ! 33: movl 4*efrsl(r10),r7 # get result type id ! 34: #---> tstl r7 # branch if not unconverted ! 35: bnequ befa8 # branch if not unconverted ! 36: ! 37: movl 4*ffnxt(r9),r9 # else link to next ffblk on chain ! 38: #---> tstl r9 # loop back if another entry to check ! 39: bnequ bffc1 # loop back if another entry to check ! 40: ! 41: movl 4*pfnlo(r10),r6 # load number of locals ! 42: #---> tstl r6 # jump if no locals ! 43: beqlu bpf07 # jump if no locals ! 44: ! 45: addl2 kvftr,r6 # add ftrace value ! 46: #---> tstl r6 # jump if tracing possible ! 47: bnequ bpf09 # jump if tracing possible ! 48: ! 49: bicl2 r11,r6 ! 50: #---> tstl r6 # fail if no match ! 51: bnequ 0f # fail if no match ! 52: ! 53: decl r8 # else decrement level counter ! 54: #---> tstl r8 # loop back if not at outer level ! 55: bnequ pbal2 # loop back if not at outer level ! 56: ! 57: subl2 r7,r8 # get number of characters left ! 58: #---> tstl r8 # fail if no characters left ! 59: bnequ 0f # fail if no characters left ! 60: ! 61: subl2 r7,r8 # get number of characters left ! 62: #---> tstl r8 # fail if no characters left ! 63: bnequ 0f # fail if no characters left ! 64: ! 65: bicl2 r11,r6 ! 66: #---> tstl r6 # succeed if break character found ! 67: beqlu 0f # succeed if break character found ! 68: ! 69: bicl2 r11,r6 ! 70: #---> tstl r6 # fail if character is matched ! 71: beqlu 0f # fail if character is matched ! 72: ! 73: subl2 r7,r8 # calculate number of characters left ! 74: #---> tstl r8 # fail if no characters left ! 75: bnequ 0f # fail if no characters left ! 76: ! 77: bicl2 r11,r6 ! 78: #---> tstl r6 # jump if no match ! 79: beqlu pspn3 # jump if no match ! 80: ! 81: subl2 r7,r8 # calculate number of characters left ! 82: #---> tstl r8 # fail if no characters left ! 83: bnequ 0f # fail if no characters left ! 84: ! 85: movl 4*icval(r9),r5 # load integer value ! 86: #---> tstl r5 # jump if zero or neg (bad dimension) ! 87: bgtr 0f # jump if zero or neg (bad dimension) ! 88: ! 89: movl arptr,r10 # load offset (also pass indicator) ! 90: #---> tstl r10 # jump if first pass ! 91: beqlu sar05 # jump if first pass ! 92: ! 93: movl 4*icval(r9),r5 # get value ! 94: #---> tstl r5 # branch if negative or zero ! 95: bleq sbf01 # branch if negative or zero ! 96: ! 97: sclr4: movl 4*vrnxt(r9),r9 # point to next vrblk on chain ! 98: #---> tstl r9 # jump for next bucket if chain end ! 99: beqlu sclr3 # jump for next bucket if chain end ! 100: ! 101: scv02: movl (r10)+,r9 # load next table entry, bump pointer ! 102: #---> tstl r9 # fail if zero marking end of list ! 103: bnequ 0f # fail if zero marking end of list ! 104: ! 105: subl2 intv2,r5 # subtract 2 to compare ! 106: #---> tstl r5 # fail if dim2 not 2 ! 107: beql 0f # fail if dim2 not 2 ! 108: ! 109: movl 4*1(r10),r6 # load length for sbstr ! 110: #---> tstl r6 # return null if length is zero ! 111: bnequ 0f # return null if length is zero ! 112: ! 113: decl (sp) # count down ! 114: #---> tstl (sp) # loop ! 115: bnequ sdup5 # loop ! 116: ! 117: movl 4*2(r10),r10 # get next link ! 118: #---> tstl r10 # stop if chain end ! 119: beqlu senf4 # stop if chain end ! 120: ! 121: senf4: movl enfch,r10 # get chain head ! 122: #---> tstl r10 # finished if chain end ! 123: bnequ 0f # finished if chain end ! 124: ! 125: movl r$rpt,r9 # point to current table (if any) ! 126: #---> tstl r9 # jump if we already have a table ! 127: bnequ srpl2 # jump if we already have a table ! 128: ! 129: movl r9,r7 # save second argument ! 130: #---> tstl r7 # jump if second argument zero ! 131: bnequ 0f # jump if second argument zero ! 132: ! 133: ssubb: movl sbssv,r8 # reload third argument ! 134: #---> tstl r8 # skip if third arg given ! 135: bnequ ssub1 # skip if third arg given ! 136: ! 137: acs05: movl 4*trtyp(r9),r7 # load trap type code ! 138: #---> tstl r7 # jump if not input association ! 139: beqlu 0f # jump if not input association ! 140: ! 141: movl 4*trfpt(r9),r10 # get file ctrl blk ptr or zero ! 142: #---> tstl r10 # jump if not standard input file ! 143: bnequ acs06 # jump if not standard input file ! 144: ! 145: acmp3: movl 4*icval(r10),r5 # load second argument ! 146: #---> tstl r5 # gt if negative ! 147: blss acmp1 # gt if negative ! 148: ! 149: subl2 aldyn,r5 # subtract from scaled up free store ! 150: #---> tstl r5 # jump if sufficient free store ! 151: bgtr aloc5 # jump if sufficient free store ! 152: ! 153: asg11: movl 4*trfpt(r10),r6 # fcblk ptr ! 154: #---> tstl r6 # jump if standard output file ! 155: beqlu asg13 # jump if standard output file ! 156: ! 157: bicl2 r11,r6 ! 158: #---> tstl r6 # jump if constant keyword ! 159: bnequ cgv00 # jump if constant keyword ! 160: ! 161: bicl2 r11,r6 ! 162: #---> tstl r6 # jump if not ! 163: beqlu cgv12 # jump if not ! 164: ! 165: bicl2 r11,r6 ! 166: #---> tstl r6 # jump if preevaluation permitted ! 167: bnequ cgv08 # jump if preevaluation permitted ! 168: ! 169: bicl2 r11,r6 ! 170: #---> tstl r6 # ordinary binop if not ! 171: bnequ 0f # ordinary binop if not ! 172: ! 173: bicl2 r11,r6 ! 174: #---> tstl r6 # go gen if not constant ! 175: bnequ 0f # go gen if not constant ! 176: ! 177: cdwd1: movl r$ccb,r9 # load ptr to ccblk being built ! 178: #---> tstl r9 # jump if block allocated ! 179: bnequ cdwd2 # jump if block allocated ! 180: ! 181: subl2 r7,r6 # get length of label ! 182: #---> tstl r6 # skip if label length zero ! 183: bnequ 0f # skip if label length zero ! 184: ! 185: bisl2 4*cmcgo(sp),r8 # check if conditional goto ! 186: #---> tstl r8 # jump if -nofail and no cond. goto ! 187: beqlu cmpse # jump if -nofail and no cond. goto ! 188: ! 189: movl 4*cmlbl(sp),r10 # get possible label pointer ! 190: #---> tstl r10 # skip if no label ! 191: beqlu cmp26 # skip if no label ! 192: ! 193: cmp27: movl 4*cmsop(sp),r6 # load success offset ! 194: #---> tstl r6 # jump if no fill in required ! 195: beqlu cmp28 # jump if no fill in required ! 196: ! 197: bisl2 4*cmsgo(sp),r7 # or in success goto ! 198: #---> tstl r7 # ok if non-null field ! 199: beqlu 0f # ok if non-null field ! 200: ! 201: bicl2 r11,r7 ! 202: #---> tstl r7 # redef ok if not ! 203: beqlu dffn3 # redef ok if not ! 204: ! 205: movl 4*trtrf(r10),r10# point to trtrf trap block ! 206: #---> tstl r10 # jump if no iochn ! 207: beqlu dtch5 # jump if no iochn ! 208: ! 209: movl 4*trtrf(r10),r10# point to next link ! 210: #---> tstl r10 # jump if end of chain ! 211: beqlu dtch5 # jump if end of chain ! 212: ! 213: dmp01: movl 4*vrnxt(r9),r9 # point to next vrblk on chain ! 214: #---> tstl r9 # jump if end of this hash chain ! 215: bnequ 0f # jump if end of this hash chain ! 216: ! 217: movl (r10),r9 # load pointer to next entry ! 218: #---> tstl r9 # jump if end of chain to insert ! 219: bnequ 0f # jump if end of chain to insert ! 220: ! 221: dmp10: movl dmvch,r9 # load pointer to next entry on chain ! 222: #---> tstl r9 # jump if end of chain ! 223: beqlu dmp11 # jump if end of chain ! 224: ! 225: dmp12: movl (r10)+,r9 # load next svblk ptr from table ! 226: #---> tstl r9 # jump if end of list ! 227: beqlu dmp13 # jump if end of list ! 228: ! 229: movl 4*bclen(r9),r8 # load defined length ! 230: #---> tstl r8 # skip characters if none ! 231: beqlu dmp32 # skip characters if none ! 232: ! 233: movl 4*sclen(r9),r6 # get length of string ! 234: #---> tstl r6 # jump if null ! 235: beqlu ert02 # jump if null ! 236: ! 237: gbc02: movl (r10),r9 # load ptr to next vrblk ! 238: #---> tstl r9 # jump if end of chain ! 239: beqlu gbc03 # jump if end of chain ! 240: ! 241: gbc11: movl gbcnm,r10 # point to next move block ! 242: #---> tstl r10 # jump if end of chain ! 243: beqlu gbc12 # jump if end of chain ! 244: ! 245: movl gbsvb,r7 # reload move offset ! 246: #---> tstl r7 # jump if no move required ! 247: beqlu gbc13 # jump if no move required ! 248: ! 249: movl (sp)+,r8 # restore block pointer ! 250: #---> tstl r8 # continue loop unless outer levl ! 251: bnequ gpf02 # continue loop unless outer levl ! 252: ! 253: movl 4*vrnxt(r10),r10# point to next vrblk on chain ! 254: #---> tstl r10 # jump if end of chain ! 255: beqlu gnv08 # jump if end of chain ! 256: ! 257: bicl2 r11,r7 ! 258: #---> tstl r7 # jump if not present ! 259: beqlu gnv13 # jump if not present ! 260: ! 261: bicl2 r11,r8 ! 262: #---> tstl r8 # jump if no keyword number ! 263: beqlu gnv17 # jump if no keyword number ! 264: ! 265: bicl2 r11,r8 ! 266: #---> tstl r8 # skip if no system function ! 267: beqlu gnv18 # skip if no system function ! 268: ! 269: bicl2 r11,r8 ! 270: #---> tstl r8 # jump if bit is off (no system labl) ! 271: beqlu gnv19 # jump if bit is off (no system labl) ! 272: ! 273: bicl2 r11,r8 ! 274: #---> tstl r8 # all done if no value ! 275: bnequ 0f # all done if no value ! 276: ! 277: movl 4*sclen(r10),r6 # load length ! 278: #---> tstl r6 # jump if not system variable ! 279: bnequ gts04 # jump if not system variable ! 280: ! 281: decl r10 # decrement counter ! 282: #---> tstl r10 # loop back if more to go ! 283: bnequ gts25 # loop back if more to go ! 284: ! 285: movl 4*bclen(r10),r6 # get size to allocate ! 286: #---> tstl r6 # if null then return null ! 287: beqlu gts33 # if null then return null ! 288: ! 289: subl2 r8,r6 # subtract to get remainder ! 290: #---> tstl r6 # no pad if already even boundary ! 291: bnequ 0f # no pad if already even boundary ! 292: ! 293: movl r$iot,r9 # get 0 or trtrf ptr ! 294: #---> tstl r9 # jump if trtrf block exists ! 295: beqlu 0f # jump if trtrf block exists ! 296: ! 297: iop20: movl 4*trtrf(r9),r9 # next link of chain ! 298: #---> tstl r9 # not found ! 299: beqlu iop21 # not found ! 300: ! 301: bicl2 r11,r6 ! 302: #---> tstl r6 # error if no keyword association ! 303: beqlu kwnm1 # error if no keyword association ! 304: ! 305: movl lstsn,r9 # load statement number ! 306: #---> tstl r9 # jump if no statement number ! 307: beqlu list2 # jump if no statement number ! 308: ! 309: movl r$stl,r9 # load pointer to sub-title ! 310: #---> tstl r9 # jump if no sub-title ! 311: beqlu lstt1 # jump if no sub-title ! 312: ! 313: movl r$cim,r9 # point to image ! 314: #---> tstl r9 # jump if no image ! 315: beqlu nxts2 # jump if no image ! 316: ! 317: movl 4*sclen(r10),r7 # load string length ! 318: #---> tstl r7 # jump if null string case ! 319: beqlu pats6 # jump if null string case ! 320: ! 321: movl (r9),r5 # load nr of executions ! 322: #---> tstl r5 # no printing if zero ! 323: beql prfl3 # no printing if zero ! 324: ! 325: movl prlen,r7 # get prior length if any ! 326: #---> tstl r7 # skip if no length ! 327: beqlu prpa2 # skip if no length ! 328: ! 329: bicl2 r11,r7 ! 330: #---> tstl r7 # skip if clear ! 331: beqlu prpa4 # skip if clear ! 332: ! 333: bicl2 r11,r8 ! 334: #---> tstl r8 # jump if terminal required ! 335: beqlu 0f # jump if terminal required ! 336: ! 337: prn07: movl r9,r8 # copy vrblk pointer ! 338: #---> tstl r8 # jump if chain end (or prnmv zero) ! 339: beqlu prn09 # jump if chain end (or prnmv zero) ! 340: ! 341: subl2 r7,r6 # subtract count of chars already out ! 342: #---> tstl r6 # jump to exit if none left ! 343: bnequ 0f # jump to exit if none left ! 344: ! 345: subl2 profs,r9 # get chars left in print buffer ! 346: #---> tstl r9 # skip if room left on this line ! 347: bnequ prst2 # skip if room left on this line ! 348: ! 349: movl r$cni,r9 # get ptr to next image ! 350: #---> tstl r9 # exit if already read ! 351: bnequ read3 # exit if already read ! 352: ! 353: subl2 4*ardm2(r10),r5 # check against dimension ! 354: #---> tstl r5 # fail if too large ! 355: blss 0f # fail if too large ! 356: ! 357: subl2 $4,r8 # i = i - 1 ! 358: #---> tstl r8 # loop if i gt 0 ! 359: bnequ srt10 # loop if i gt 0 ! 360: ! 361: srt11: subl2 $4,r8 # i = i - 1 (n - 1 initially) ! 362: #---> tstl r8 # jump if done ! 363: beqlu srt12 # jump if done ! 364: ! 365: decl srtnr # decrement row count ! 366: #---> tstl srtnr # repeat till all rows done ! 367: bnequ srt13 # repeat till all rows done ! 368: ! 369: movl srtfd,r9 # get possible former dfblk ptr ! 370: #---> tstl r9 # jump if not ! 371: beqlu srtf4 # jump if not ! 372: ! 373: tfn02: movl 4*1(r9),r5 # load value as hash source ! 374: #---> tstl r5 # ok if positive or zero ! 375: bgeq tfn06 # ok if positive or zero ! 376: ! 377: movl 4*2(sp),r7 # restore name/value indicator ! 378: #---> tstl r7 # jump if called by name ! 379: bnequ tfn09 # jump if called by name ! 380: ! 381: movl 4*2(sp),r7 # load name/value indicator ! 382: #---> tstl r7 # exit with default if value call ! 383: beqlu tfn09 # exit with default if value call ! 384: ! 385: movl (sp)+,r7 # get trblk ptr again ! 386: #---> tstl r7 # jump if stoptr case ! 387: beqlu trc05 # jump if stoptr case ! 388: ! 389: movl 4*sclen(r9),r6 # load string length ! 390: #---> tstl r6 # jump if null input ! 391: beqlu trim2 # jump if null input ! 392: ! 393: trim1: decl r6 # else decrement character count ! 394: #---> tstl r6 # loop back if more to check ! 395: bnequ trim0 # loop back if more to check ! 396: ! 397: subl2 r7,r6 # get number of remaining characters ! 398: #---> tstl r6 # jump if no characters left ! 399: beqlu xscn2 # jump if no characters left ! 400: ! 401: decl r6 # decrement count of chars left ! 402: #---> tstl r6 # loop back if more chars to go ! 403: bnequ xscn1 # loop back if more chars to go ! 404: ! 405: subl2 4*ardim(r9),r5 # subtract dimension ! 406: #---> tstl r5 # out of range fail if too large ! 407: blss 0f # out of range fail if too large ! 408: ! 409: addl2 kvftr,r7 # add ftrace ! 410: #---> tstl r7 # jump if no tracing possible ! 411: bnequ 0f # jump if no tracing possible ! 412: ! 413: movl 4*pfrtr(r9),r9 # else load return trace trblk ptr ! 414: #---> tstl r9 # jump if not return traced ! 415: beqlu rtn02 # jump if not return traced ! 416: ! 417: movl (sp)+,r10 # pop saved pointer ! 418: #---> tstl r10 # no action if none ! 419: beqlu rtn7c # no action if none ! 420: ! 421: addl2 4*pfnlo(r9),r7 # add number of locals ! 422: #---> tstl r7 # jump if no args/locals ! 423: beqlu rtn10 # jump if no args/locals ! 424: ! 425: movl kvstc,r5 # get stmt count ! 426: #---> tstl r5 # omit counting if negative ! 427: bgeq 0f # omit counting if negative ! 428: ! 429: movl kvstl,r5 # get statement limit ! 430: #---> tstl r5 # skip if negative ! 431: blss stpr2 # skip if negative ! 432: ! 433: movl scnse,r6 # load scan element offset ! 434: #---> tstl r6 # skip if not set ! 435: beqlu err02 # skip if not set ! 436: ! 437: movl r$sxc,r9 # load setexit cdblk pointer ! 438: #---> tstl r9 # continue if no setexit trap ! 439: bnequ 0f # continue if no setexit trap ! 440: ! 441: err08: movl dmvch,r9 # chain head for affected vrblks ! 442: #---> tstl r9 # done if zero ! 443: beqlu err06 # done if zero ! 444: ! 445: 111 redundant TSTL instructions removed
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.