! "W N0 V=    @ #D  D ҃TP  B ы e@W 0 ,"& 7   0ߋp@E A Ze      |@7x@ eE " 0 ɋ -hɋ e-NJDɋ Z?ccms/cmsarg.c Byccms/scanf.c Crccms/calloc.c x'0link/iutil.cU ,U)link/uio.c * link/etatab.c ,link/uutil.c /link/t2a.c T0 link/atetab.c\ @Nlink/link.cG( Bs1/glob.c W#s1/cat.co )_Ws1/chmod.c 6`As1/cp.c' aus1/echo.c dYs1/exit.c5 e s1/okay fs1/cpcmd.c g5s1/chmod.a 6hs2/sh.c9- 4ls2/sh.a #ys2/myinit.c 8s2/mknod.c3 6Uds2/mv.c  6bs2/size.c s2/sleep.c 8\s2/stty.c^ 8s2/sync.c 8's2/okay )s3/printf.cG D%s3/errlst.c~ ms5/qsort.c, oGs1/icheck.cl fbs1/dcheck.c7 s1/df.c Us2/ncheck.cU is1/date.ct f/* Convert CMS argument list into C equivalent */ # define MAXNARG 64 char _args_[400]; char *_argv_[MAXNARG]; _gtargs() { int i,*intparm,argc; char *parmlist,*argv,*lastarg; /* find register 1 which was copied to register 3 */ parmlist = genreg(3,0); /* Zero high order byte */ i = parmlist << 8; parmlist = i >> 8; argc = 0; argv = _args_; lastarg = argv; for(;;) { intparm = parmlist; /* Cms arg list is terminated by hex FFFFFFFFFFFFFFFF, or two words of -1 */ if(*intparm == -1) return(argc); i=0; while(*parmlist != ' ' && i < 8) { *argv++ = *parmlist++; i++; } *argv++ = '\0'; parmlist =+ 8-i; /* Bump pointer to next doubleword */ _argv_[argc++] = lastarg; lastarg = argv; } } gister 3 */ parmlist = genreg(3,0); /* Zero high order byte */ i = parmlist << 8; parmlist = i >> 8; argc = 0; argv = _args_; lastarg = argv; for(;;) { intparm = parmlist; /* Cms arg list is terminated by hex FFFFFFFFFFFFFFFF, or two words of -1 */ if(*intparm == -1) reint kludge 0; /* This is so a switch table won't be the first thing in the data csect, to get around a bug in the switch code. */ scanf (p1, p2, p3, p4, z0,z1,z2,z3,z4,z5,z6,z7,z8,z9) int p1, p2, p3, p4; { /* first arg can be a control string, a file id, or -1 */ int ptrs[10], nptrs, j, ip, flp, k; extern int cin; extern (*_Igetc)(), (*_Iungc)(), cgetc(), ungetc(), _Igstr(), _Iungs(); extern char *_Iinpt; ip = 0; if (p1 == -1) {k = 1; _Iinpt = p2;} else if (p1 >= 0 && p1 < 10) k = 0; else k = -1; if (k <= 0) {_Igetc = cgetc; _Iungc = ungetc;} else {_Igetc = _Igstr; _Iungc = _Iungs;} nptrs = nargs(14) -2 - k; for (j= 0; j < nptrs; j++) ptrs[ip++] = (&p3)[j+k]; return (_Iscan ((k==0 ? p1 : cin), (&p2)[k], ptrs)); } _Iscan (fileid, format, listp) char *format; int *listp; { char ch, _Inxch(); int nmatch; extern int _Isfil; _Isfil = fileid; nmatch = 0; while (1) switch (ch= *format++) { case '\0': return (nmatch); case '%': switch (_Isfrm(&format, *listp++)) { case 0: listp--; break; case -1: return (nmatch > 0 ? nmatch : -1); default: nmatch++; } case ' ': case '\n': case '\t': break; default: if (ch != _Inxch()) return(nmatch); } } int _Isfil 0; _Ichar (cptr) char *cptr; { char ch, _Inxch(); if ((ch = _Inxch()) < 0) return (-1); if (cptr == 0) return (0); *cptr = ch; return (1); } /*%%%%% _Iflot (fptr, length) float *fptr; int length; { char temp[75]; int _Inodg(); float x; double atof(); if (_Isstr(temp, length, _Inodg) < 0) return (-1); x = atof(temp); if (fptr == 0) return (0); *fptr = x; return (1); } %%%%%*/ _Inodg (ch) char ch; { if (_Idigt(ch)) return (0); switch (ch) { case 'E': case 'e': case '.': case '+': case '-': return (0); } return (1); } _Isfrm (spec, pointer) char **spec; int pointer; { int length, lflag, _Iestr(), _Ispnd(); char ch; length = lflag = 0; while (1) switch (ch = *((*spec)++)) { case '*': pointer=0; break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': length = length*10 + ch - '0' ; lflag++; break; case 'o': case 'O': /* octal */ return(_Iint(pointer, lflag ? length : 100, 8)); case 'x': case 'X': /* hex */ return(_Iint(pointer, lflag ? length : 100, 16)); case 'd': case 'D': /* decimal */ return (_Iint(pointer, lflag ? length : 100, 10)); case 'c': case 'C': /* character */ return (_Ichar(pointer)); case 's': case 'S': /* string */ return (_Isstr(pointer, lflag ? length : 100, _Iestr)); case 'f': case 'F': case 'e': case 'E': /* float */ /*%%%% return (_Iflot(pointer, lflag ? length : 100)); */ ermsg("SCAN: no floating point\n",0); /*%%%%*/ case 'l': case 'L': /* double (long */ /*%%%%% ermsg("SCAN: no floating point\n",0); return (_Ilong (pointer, lflag ? length : 100)); %%%%*/ case '[': /* special strings */ _Imtab(spec); return (_Isstr (pointer, lflag ? length : 100, _Ispnd)); case '%': if (_Inxch() != '%') return (-1); return(0); case '\0': _Ierr("scanf: bad format termination\n"); default: _Ierr ("scanf: format character %c", ch); } } _Iint (iptr, length, numbase) int *iptr, length; { int n, minus, numdig; extern int _Isfil, (*_Iungc)(), (*_Igetc)(); int c, dval; n = minus = numdig = 0; switch ((c=_Inxch())) { case '-': minus = 1; case '+': break; default: (*_Iungc)(c,_Isfil); } while ((dval=_Idigt(c=((*_Igetc)(_Isfil)), numbase ) ) >= 0 && numdig++ < length) n = n*numbase + dval; (*_Iungc)(c,_Isfil); if (numdig == 0) return (-1); if (iptr == 0) return (0); *iptr = minus ? -n : n; return (1); } _Idigt (x, base) { switch (x) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': return(x-'0'); case '8': case '9': if (base > 8) return(x - '0'); case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': if (base >10) return(x - 'a' + 10); case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': if (base > 10) return(x-'A' + 10); } return(-1); } /*%%%% _Ilong (dptr, length) double *dptr; int length; { char temp[75]; int _Inodg(); double x; double atof(); if (_Isstr(temp, length, _Inodg) < 0) return (-1); x = atof(temp); if (dptr == 0) return (0); *dptr = x; return (1); } %%%%%*/ _Isstr (sptr, length, stopf) char *sptr; int length, (*stopf)(); { int ch, initlen, _Inxch(); extern int _Isfil, (*_Igetc)(), (*_Iungc)(); initlen = length; if ((ch=_Inxch()) < 0) return (-1); (*_Iungc)(ch,_Isfil); while (!((*stopf)(ch=(*_Igetc)(_Isfil))) && length-- > 0) if (sptr != 0) *(sptr++) = ch; if (ch >= 0) (*_Iungc)(ch,_Isfil); if (length == initlen) return (-1); if (sptr == 0) return (0); *sptr = '\0'; return (1); } _Iestr (c) char c; { if (_Ispce(c)) return (1); if (c == '\0') return (1); return (0); } _Ierr (message, a, b, c, d, e) char message[]; { printf("ERROR "); printf(message, a, b, c, d, e); cputc('\n'); cexit(); } char _Iendm[128] {0}; _Imtab (formatp) char **formatp; { /* make up special table of string ending characters */ int i, normal; char ch; /* normally all characters end string except those listed */ normal = 1; if (**formatp == '^') {normal = 0; (*formatp)++;} for (i= 0; i < 128; i++) _Iendm[i] = normal; while ((ch = *((*formatp)++)) != ']') _Iendm[ch] = !_Iendm[ch]; } _Inxch () /* returns next character which is not _Ispce */ { extern int _Isfil, (*_Igetc)(); int ch; while ((ch = (*_Igetc)(_Isfil)) > 0 && _Ispce(ch)); if (ch > 0) return (ch); return (-1); } _Ispce (c) char c; { switch (c) { case ' ': case '\n': case '\t': return(1); } return(0); } _Ispnd (ch) char ch; { return (_Iendm[ch] > 0); } char *_Iinpt; int (*_Igetc)(), (*_Iungc)(); _Igstr () { extern char *_Iinpt; return (*_Iinpt++); } _Iungs(ch) { extern char *_Iinpt; *--_Iinpt = ch; } ; } _Inxch () /* returns next character which is not _Ispce */ { extern int _Isfil, (*_Igetc)(); int ch; while ((ch = (*_Igetc)(_Isfil)) > 0 && _Ispce(ch)); if (ch > 0) return (ch); return (-1); } _Ispce (c) char c; { switch (c) { case ' ': case '\n': case '\t': return(1); } return(0); } _Ispnd (chstruct fb { int size; char *next; }; int _freech[] { 0, -1, }; int slop 4; calloc(nitems, itemsize) { int size, asize, *v; /* struct fb *np, *cp; */ char *np, *cp; if ((size = nitems*itemsize) == 0) return(0); size =+ 7; size =& ~03; for (;;) { for (cp=_freech; (np= cp->next) != -1; cp=np) { if (np->size>=size) { if (size+slop >= np->size) { cp->next = np->next; return(&np->next); } cp = cp->next = np+size; cp->size = np->size - size; cp->next = np->next; np->size = size; return(&np->next); } } asize = size<1020? 1024: size+4; cp = getmain(asize, asize<<2); if (cp->next <= 0) return(-1); v = cp->next; v[0] = cp->size-4; v[1] = cp->next+4; cfree(v+1); } } ; size =& ~03; for (;;) { for (cp=_freech; (np= cp->next) != -1; cp=np) { if (np->size>=size) { if (size+slop >= np->size) { cp->next = np->next; return(&np->next); } cp = cp->next = np+size; cp->size = np->size - size; cp->next = np->next;struct { int integ; }; out2(loc) int *loc; { return(*loc>>16); } out3(loc) int *loc; { return(*loc>>8); } out4(loc) int *loc; { return(*loc); } in2(loc, conten) char *loc; { *loc++ = conten>>8; *loc = conten; } in3(loc, conten) char *loc; { *loc = conten>>16; in2(loc+1, conten); } in4(loc, conten) int *loc; { *loc = conten; } if (size+slop >= np->size) { cp->next = np->next; return(&np->next); } cp = cp->next = np+size; cp->size = np->size - size; cp->next = np->next;int urnleft 0; uread(fd, loc, xcount) { register n, count; static char urbuf[80]; static int reclen; if(xcount < 0) {printf("Bad read count\n");cexit();} count = xcount; do { n = min(urnleft, count); move(&urbuf[reclen-urnleft], loc, n); loc =+ n; count =- n; urnleft =- n; if(urnleft <= 0) { if ((n = cread(urbuf, &urbuf[1], 80, fd)) <= 0) return(xcount-count); else reclen = urnleft = n; } } while(count); return (xcount); } int uwcount; char uwbuf[80]; uwrite(fd, loc, count) { register n; /*/*/ if(count<0){printf("Bad write count\n");cexit();} do { n = min(count, 80-uwcount); move(loc, &uwbuf[uwcount], n); loc =+ n; count =- n; uwcount =+ n; if(uwcount >= 80) { uwcount = 0; cwrite(uwbuf, &uwbuf[1], 80, fd); } } while(count); } char iozer[79]; uclose(fd) { uwrite(fd, iozer, 79); } min(a,b) { return(a>b?b:a); } move(a, b, n) char *a, *b; { while (n--) *b++ = *a++; } (count); return (xcount); } int uwcount; char uwbuf[80]; uwrite(fd, locchar etatab[256] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 012, 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, 040, 000, 000, 000, 000, 000, 000, 000, 000, 000, 027, 056, 074, 050, 053,0174, 046, 000, 000, 000, 000, 000, 000, 000, 000, 000, 041, 044, 052, 051, 073, 005, 055, 057, 000, 000, 000, 000, 000, 000, 000, 000, 000, 054, 045,0137, 076, 077, 000,0176, 000, 000, 000, 000, 000, 000, 000,0140, 072, 043,0100, 074, 075, 042, 000,0141,0142,0143,0144,0145,0146,0147, 0150,0151, 000,0173, 000, 000, 000, 000, 000,0152,0153,0154,0155,0156,0157,0160, 0161,0162, 000,0175, 000, 000, 000, 000, 000,0176,0163,0164,0165,0166,0167,0170, 0171,0172, 000, 000, 000,0133, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000,0133,0134,0135,0136, 000, 0173,0101,0102,0103,0104,0105,0106,0107, 0110,0111, 000, 000, 000, 000, 000, 000, 0175,0112,0113,0114,0115,0116,0117,0120, 0121,0122, 000, 000, 000, 000, 000, 000, 0134, 000,0123,0124,0125,0126,0127,0130, 0131,0132, 000, 000, 000, 000, 000, 000, 060, 061, 062, 063, 064, 065, 066, 067, 070, 071, 000, 000, 000, 000, 000, 000 }; 000, 000,0176,0163,0164,0165,0166,0167,0170, 0171,0172, 000, 000, 000,0133, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000,0133,0134,0135,0136, 000, 0173,0101,0102,0103,0104,0105,0106,0107, 0110,0111, 000, 000, 000, 000, 000, 000, 0175,0112,0113,0114,0115,0116,0117,0120, 0121,01/**********************************/ /* utility routines for unix */ out2(loc) char *loc; { return(*loc<<8 | (*(loc+1)&0377)); } out3(loc) { return(out2(loc+1)); } out4(loc) { return(out2(loc+2)); } in2(loc, conten) char *loc; { *loc++ = conten>>8; *loc = conten; } in3(loc, conten) char *loc; { *loc = conten<0 ? -1 : 0; in2(loc+1, conten); } in4(loc, conten) char *loc; { *loc = *(loc+1) = conten<0 ? -1 : 0; in2(loc+2, conten); } 0, 000, 000, 0175,0112,0113,0114,0115,0116,0117,0120, 0121,01# /* text deck to unix 370 a.out format conversion program */ /* symbol types (a.out) */ #define TEXT 1 #define DATA 2 #define BSS 3 #define ABS 4 #define PSREG 5 #define WEXTERN 010 #define SEXTERN 011 #define COMMON 012 #define EXTDISP 014 /* external displacement - not yet implemented */ #define EXT 0 /* rld only */ #define NONPROC 0100 /* temporary flag - never seen in file */ #define UNSPEC 0 /* temp flag - means segment type still unknown */ /* esd symbol types (text) */ #define SD 0 #define LD 01 #define ER 02 #define LR 03 #define PC 04 #define CM 05 #define PR 06 #define WX 10 /* x'0a' */ #define NSYM 200 #define NRLD 400 #define NSECT 20 #define ASCIIC 0103 #define ASCSPACE 040 char esym[] {02, 0342, 0350, 0324}; char eesd[] {02, 0305, 0342, 0304}; char etxt[] {02, 0343, 0347, 0343}; char erld[] {02, 0331, 0323, 0304}; char eend[] {02, 0305, 0325, 0304}; char buf[80]; int id, od, td; int rldr, rldp; char magcon[] {0107, 0360, 0, 040}; char zeroes[80]; struct esd { char name[8]; char type; char addr[1]; char addr1; char addr2; char align; char length[1]; char length1; char length2; int newaddr; } *stab, *si, *lsi, *si2; struct idtab { struct esd *stp; int textp; } idtab[NSYM], *ii, *lii; struct rld { char flag; char loc[1]; char loc1; char loc2; char sym[2]; } *rldtab; char *ri; struct { char ch;}; int text, data, bss; struct { char magic[4]; char text[4]; char data[4]; char bss[4]; char hrld[4]; char est[2]; char lst[1]; char lst1; char free[8]; } header; struct textab { int tlen; int tpnt; int taddr; } textab[NSECT]; char ttab[] { 0, 0, SEXTERN, 0, 0, COMMON, PSREG, 0, 0, 0, WEXTERN}; main(argc,argv) char **argv; { register n; register char *p; int a; int diff; struct esd *tsi; register c; if(argc != 3) { printf("Argc count!\n"); cexit(1); } rldtab = calloc(NRLD, sizeof(*rldtab)); clear(rldtab, NRLD*sizeof(*rldtab)); stab = calloc(NSYM, sizeof(*stab)); clear(stab, NSYM*sizeof(*stab)); id = copen(argv[1],'r'); od = copen(argv[2], 'w'); /* td = uopen("temp linktemp"); */ if(uread(id, buf, 80) <= 0) { /* printf("no xxx text\n"); cexit(4); */ } if(buf[0] != 02) { printf("not a text file\n"); cexit(5); } while(cmp(buf,esym,4)) { buf[0]=0; uread(id, buf, 80); } ii = idtab; si = stab; while(cmp(buf, eesd, 4)) { n = out2(&buf[10]) + 16; for(p = &buf[16]; p < &buf[n]; p =+ 16) { pesd(p); } buf[0] = 0; uread(id, buf, 80); } lsi = si; lii = ii; while(cmp(buf,etxt,4)) { ii = &idtab[out2(&buf[14])-1]; n = out2(&buf[10]); si = ii->stp; a = out3(&buf[5]) - out3(si->addr); if(a<0 || a+n > out3(si->length)) { printf("bad format text card\n"); pcard(); cexit(7); } move(&buf[16], ii->textp+a, n); if( /* cmp(&buf[16], zeroes, n) == 0 && */ si->type == (BSS|NONPROC)) si->type = DATA|NONPROC; buf[0] = 0; uread(id, buf, 80); } text = data = bss = 0; for(si = stab; si < lsi; si++) { if(si->type&NONPROC) { switch(si->type =& ~NONPROC) { case ABS: si->newaddr = out3(si->addr); break; case TEXT: rtext(si); break; case DATA: rdata(si); break; case BSS: rbss(si); break; case UNSPEC: si->type=(tsi=idtab[out3(si->length)-1].stp)->type& ~NONPROC; if(tsi->type&NONPROC) { switch(tsi->type =& ~NONPROC) { case TEXT: rtext(tsi); break; case DATA: rdata(tsi); break; case BSS: rbss(tsi); } } si->newaddr = tsi->newaddr + out3(si->addr) - out3(tsi->addr); } /* end of switch */ } } /* end of for */ data =+ text; bss =+ data; for(si = stab; sitype == DATA) si->newaddr =+ text; else if(si->type == BSS) si->newaddr =+ data; } ri = rldtab; while(cmp(buf,erld,4)) { rldr = rldp = 0; n = out2(&buf[10]) + 16; for(p = &buf[16]; p<&buf[n]; p=+ 4) { if(rldr == 0) { rldr = out2(p); rldp = out2(p+2); p =+ 4; } c = *p & 077; si2 = idtab[rldp-1].stp; if((si = idtab[rldr-1].stp)->type < PSREG) { /* not undefined */ diff = si->newaddr-out3(si->addr); genrld((si->type&3)|(c&014)|((c&02)<<3), si2->newaddr+out3(p+1) - out3(si2->addr)); if(c&060) diff=+ out3(si->addr);/*branch type*/ printf("c=%o,diff=%x,sinew=%x,si2new=%x,coff=%x\n",c,diff,si->newaddr,si2->newaddr,out3(p+1)); if(diff) { if(c&02) /* relocation direction */ diff = -diff; addn(idtab[rldp-1].textp+out3(p+1),diff,c&014); } } else { genrld((c&014)|((c&02)<<3), si2->newaddr+out3(p+1)-out3(si2->addr), si - stab); } if((c&01) == 0) rldr = 0; } buf[0] = 0; uread(id,buf,80); } if(!cmp(buf,eend,4)) { printf("bad format text deck\n"); pcard(); cexit(7); } dumpit(); cexit(0); } cmp(a,b,n) char *a, *b; { while(n--) if(*a++ != *b++) return(0); return(1); } pesd(p) struct esd *p; { int last; extern char etatab[]; register i,c; last = 0; for(i=0; i<8; i++) { c = etatab[p->name[i]&0377]; if(c == ASCSPACE) { c = 0; if(last == 0) last = si->name[i-1]; } si->name[i] = c; } if(last == 0) last = si->name[7]; move(p->addr, si->addr, 7); switch(p->type) { case WX: case PR: case ER: case CM: si->type = ttab[p->type]; idd: ii++->stp = si; break; case SD: case PC: i = out3(si->length) +7 & ~7; in3(si->length,i); if(i== 0) { /* printf("defered length csect not supported\n"); */ /* zero length csect assumed - if this is incorrect diagnostic will be generated when we try to read text into it */ } else { ii->textp = calloc(i,1); clear(ii->textp, i); } if(last == ASCIIC) i = TEXT | NONPROC; else i = BSS | NONPROC; /* will be turned into data if nonzero text exists */ si->type = i; goto idd; case LR: ii++->stp = si; case LD: si->type = UNSPEC | NONPROC; } si++; } rtext(asi) { asi->newaddr = text; text =+ out3(asi->length) + 7; text =& ~7; } rdata(asi) { asi->newaddr = data; data =+ out3(asi->length) + 7; data =& ~7; } rbss(asi) { asi->newaddr = bss; bss =+ out3(asi->length) + 7; bss =& ~7; } addn(loc, offset, length) { switch(length) { case 04: return(in2(loc, out2(loc) + offset)); case 010: return(in3(loc, out3(loc) + offset)); } return(in4(loc, out4(loc) + offset)); } clear(a,i) char *a; { while(i--) *a++ = 0; } genrld(flags, loc, sym /* optional */) { *ri = flags; in3(ri + 1, loc); ri =+ 4; if((flags&03) == 0) { in2(ri, sym); ri =+ 2; } } dumpit() { move(magcon, header.magic, 4); in4(header.text, text); in4(header.data, data-text); in4(header.bss, bss- data); in4(header.hrld, ri - &(rldtab->ch)); in2(header.est, (lsi - stab)*12); uwrite(od, &header, 32); writx(TEXT); writx(DATA); uwrite(od, rldtab, ri - &(rldtab->ch)); for(si = stab; siaddr, si->newaddr); uwrite(od, si, 12); } uclose(od); } writx(type) { int a; register struct textab *ti, *ti1; register tem; struct textab *lti; ti = textab; for(ii = idtab; iitextp && (si=ii->stp)->type == type) { ti->tlen = out3(si->length); ti->tpnt = ii->textp; ti++->taddr = si->newaddr; } } lti = ti; /* bubble sort */ for(ti1 = lti - 1; ti1> &textab[0]; ti1--) { for(ti = textab; titaddr > (ti+1)->taddr) { tem = ti->taddr; ti->taddr = (ti+1)->taddr; (ti+1)->taddr = tem; tem = ti->tpnt; ti->tpnt = (ti+1)->tpnt; (ti+1)->tpnt = tem; tem = ti->tlen; ti->tlen = (ti+1)->tlen; (ti+1)->tlen = tem; } } } a = textab[0].taddr; for(ti = textab; titpnt, ti->tlen); if(a != ti->taddr) { printf("writx length error\n"); pcard(); } a =+ ti->tlen; } } pcard() { register char *p; register j; register i; for(p = buf; p<&buf[80];) { for(i=0; i<5; i++) { for(j=0;j<4;j++) printf("%02x",*p++ & 0377); printf(" "); } printf("\n"); } /*abort(); */ } #ifndef unix #include "iutil.c" #endif #ifdef unix #include "uutil.c" #endif #include "uio.c" m; } } } a = textab[0].taddr; for(ti = textab; titpnt, ti->tlen); if(a != tichar atetab[128] { 0,0,0,0,0,0137,0,0, 0,0,025,0,0,0,0,0, 0,0,0,0,0,0,0,0112, 0,0,0,0,0,0,0,0, 0100,0132,0177,0173,0133,0154,0120,0175, 0115,0135,0134,0116,0153,0140,0113,0141, 0360,0361,0362,0363,0364,0365,0366,0367, 0370,0371,0172,0136,0114,0176,0156,0157, 0174,0301,0302,0303,0304,0305,0306,0307, 0310,0311,0321,0322,0323,0324,0325,0326, 0327,0330,0331,0342,0343,0344,0345,0346, 0347,0350,0351,0255,0340,0275,0276,0155, 0171,0201,0202,0203,0204,0205,0206,0207, 0210,0211,0221,0222,0223,0224,0225,0226, 0227,0230,0231,0242,0243,0244,0245,0246, 0247,0250,0251,0213,0117,0233,0241,0000 }; 0,0, 0100,0132,0177,0173,0133,0154,0120,0175, 0115,0135,0134,0116,0153,0140,0113,0141, 0360,0361,0362,0363,0364,0365,0366,0367, 0370,0371,0172,0136,0114,0176,0156,0157, 0174,0301,0302,0303,0304,0305,0306,0307, 0310,0311,0321,0322,0323,0324,0325,0326, 0327,0330,0331,0342,0343,0344,0345,0346, 0347,0350,0351,0255,0340,0275,0276,0155, 0171,0201,0202,0203,0204,0205,0206,0207, 0210,0211,0221,0222,0223,0224,0225,0# /* unix 370 link editor */ #define NSYM 400 #define NFILES 40 #define bytes 1 #ifndef unix #define words 4 #endif #ifdef unix #define words 2 #endif struct filtab { int text; int textsize; int textaddr; int data; int datasize; int dataaddr; int bsssize; int bssaddr; int prld; int rldsize; int *symtran; } filtab[NFILES], *fp, *lfp; #define ASCIIE 0105 char ASCEND[] {0105, 0116, 0104, 0}; char ASCEDATA[] {0105, 0104, 0101, 0124, 0101, 0}; char ASCETEXT[] {0105, 0124, 0105, 0130, 0124, 0}; /* define symbol types */ #define TEXT 1 #define DATA 2 #define BSS 3 #define ABS 4 #define PSREG 5 #define WEXTERN 010 #define SEXTERN 011 #define COMMON 012 #define EXTDISP 014 /* external displacement - not yet implemented */ struct rld { char flag; char loc[1]; char loc1; char loc2; char sym[2]; }; struct eesd { char name[8]; char type; char addr[1]; char addr1; char addr2; } eesd; struct iesd { char name[8]; char type; int value; int reloc; int filp; } *symtab; int gsymtran[NSYM]; int text, data, bss, rldsize; int od; int totsym; int relocflg, comflg, locflg; int verflg; #define MAGIC1 010774000040 struct { char magic[4]; char tsize[4]; char dsize[4]; char bsize[4]; char rsize[4]; char esize[2]; char lsize[1]; char lsize1; char free[8]; } header; main(argc, argv) char **argv; { fp = filtab; symtab = calloc(NSYM, sizeof(*symtab)); clear(symtab, NSYM*sizeof(*symtab)); od = copen("AOUT", 'w'); rldsize = text = data = bss = 0; while(--argc) { argv++; if(**argv == '-') { switch(*++*argv) { case 'r': case 'R': relocflg++; /* preserve reloc info */ break; case 'd': case 'D': /* force definition of common storage */ comflg++; break; case 'l': case 'L': locflg++; /*preserve local symbols */ break; case 'v': case 'V': verflg++; /* verbose */ break; default: printf("bad switch\n"); cexit(1); } } else { paout(*argv); } } finish(); if(verflg) printsyms(); cexit(0); } paout(file) char *file; { int id; register struct iesd *s; register int *q, n; extern int urnleft; if (fp >= &filtab[NFILES]) { printf("Too many files; Maximum is %d\n",NFILES); cexit(12); } urnleft = 0; id = copen(file,'r'); uread(id, &header, sizeof header); if(out2(&header.magic[2]) != MAGIC1) { printf("bad format a.out file: %s\n", file); cexit(1); } fp->textaddr = text; if(fp->textsize = out4(header.tsize)) { fp->text = calloc(fp->textsize, bytes); uread(id, fp->text, fp->textsize); text =+ fp->textsize; } fp->dataaddr = data; if(fp->datasize = out4(header.dsize)) { fp->data = calloc(fp->datasize, bytes); uread(id, fp->data, fp->datasize); data =+ fp->datasize; } fp->bsssize = out4(header.bsize); bss =+ fp->bsssize; if(fp->rldsize = out4(header.rsize)) { fp->prld = calloc(fp->rldsize, bytes); uread(id, fp->prld, fp->rldsize); rldsize =+ fp->rldsize; } n = out2(header.esize)/sizeof eesd; q = fp->symtran = calloc(n, words); clear(q, n*words); while(n--) { uread(id, &eesd, sizeof eesd); *q++ = s = lookup(); if(s->type == 0) { /* previously undeclared */ s->value = out3(eesd.addr); s->type = eesd.type; s->filp = fp; } else { /* otherwise check for conflicts */ mergesym(&eesd, s, file); } } /* for now we ignore local symbols */ fp++; cclose(id); /**/ } mergesym(new, old, file) struct iesd *old; struct eesd *new; char *file; { if(old->type > PSREG) { if(new->type > PSREG) { /* both undefined - decide who wins */ if(new->type > old->type) { old->type = new->type; old->value = out3(new->addr); } } else { /* new is defined and old is undefined */ old->type = new->type; old->value = out3(new->addr); old->filp = fp; }} else { if(new->type > PSREG) { /* new is undefined & old is defined */ /* do nothing */ } else { /* both defined - allowed only if both are absolute with same value */ if(new->type != ABS || old->type != ABS || out3(new->addr) != old->value) { printf("Multiply Defined Symbol "); pname(old->name); printf("in file %s\n", file); } }} } finish() { register char *p; register struct iesd *s; register int c; int n; int newloc; int r; /* now that everything is in core link it all together */ lfp = fp; buildst(); /* build symbol number translation table & relocate symbols */ if(relocflg == 0 || comflg) defcom(); /* define common storage */ if(relocflg == 0) pundef(); /* print undefined symbols */ for(fp=filtab; fpprld; pprld+fp->rldsize;) { /* compute segment of address constant */ n = out3(p->loc); c = TEXT; if(n>= fp->textsize) { c++; n =- fp->textsize; if(n >= fp->datasize) { printf("address constants not permitted in bss segment\n"); continue; } } if(c == TEXT) { newloc = fp->textaddr+n; n =+ fp->text; } else { newloc = text + fp->dataaddr - fp->textsize + n; n =+ fp->data; } in3(p->loc, newloc); if(p->flag&03) { switch(p->flag&03) { case TEXT: r = fp->textaddr; break; case DATA: r = text + fp->dataaddr - fp->textsize; break; case BSS: r = text + data + fp->bssaddr - fp->textsize - fp->datasize; } reloc(n, p->flag>>2, r); p =+ 4; } else { /* external */ /* printf("stype=%o,pflag=%o,sval=%x\n",s->type,p->flag,s->value); /**/ s = fp->symtran[out2(p->sym)]; in2(p->sym, gsymtran[s - symtab]); if(s->type <= PSREG) { /* symbol is defined * relocate & change (text, data, bss) * or delete (abs) rld entry, but flag it * so output routine won't choke on gap */ if(s->type == ABS) { reloc(n, p->flag>>2, s->value); p->flag = 0200; /* deleted 6-byte rld entry */ rldsize =- 6; } else { reloc(n, p->flag>>2, s->value); p->flag =| 0200 + (s->type&03); rldsize =- 2; } } p=+ 6; } } /* end of for */ } /* end of other for */ in4(header.tsize, text); in4(header.dsize, data); in4(header.bsize, bss); in4(header.rsize, relocflg? rldsize : 0); in2(header.esize, totsym*sizeof eesd); uwrite(od, &header, sizeof header); for(fp=filtab; fptextsize) { uwrite(od, fp->text, fp->textsize); } } for(fp=filtab; fpdatasize) { uwrite(od, fp->data, fp->datasize); } } if(relocflg) { for(fp = filtab; fpprld; for(n=p+fp->rldsize; pflag == 0200) { continue; } if(p->flag&0200) { p->flag =& ~0200; uwrite(od, p, 4); } else { if(p->flag&03) { uwrite(od, p, 4); p =- 2; } else { uwrite(od, p, 6); } } } } } for(s=symtab; s<&symtab[NSYM]; s++) { if(s->type) { move(s, &eesd, 9); in3(eesd.addr, s->value); uwrite(od, &eesd, sizeof eesd); } } uclose(od); } defcom() /* routine to define common areas */ { register n; register struct iesd *s; for(s = symtab; s< &symtab[NSYM]; s++) { if(s->type == COMMON) { s->type = BSS; n = s->value; s->value = bss; bss =+ n; } } } buildst() /* routine to build symbol number translation table */ /* and relocate symbols */ { register i; register struct iesd *s; i = 0; for(s = symtab; s<&symtab[NSYM]; s++) { if(s->type) { gsymtran[s-&symtab[0]] = i; i++; if((fp = s->filp) && s->type < ABS) { switch(s->type) { case TEXT: s->value =+ fp->textaddr; break; case DATA: s->value =+ text + fp->dataaddr - fp->textsize; break; case BSS: s->value =+ text + data + fp->bssaddr - fp->textsize - fp->datasize; } } } } totsym = i; } pundef() /* check for undefined symbols and complain */ { register uflg; register struct iesd *s; uflg = 0; for(s = symtab; s< &symtab[NSYM]; s++) { if(s->type == SEXTERN) { if(s->name[0] == ASCIIE) { if(cmp(s->name, ASCEND, 4)) { s->value = text + data + bss; s->type = BSS; continue; } if(cmp(s->name, ASCEDATA, 6)) { s->value = text + data; s->type = DATA; continue; } if(cmp(s->name, ASCETEXT, 6)) { s->value = text; s->type = TEXT; continue; } } if(uflg == 0) { printf("undefined:\n"); uflg++; } pname(s->name); printf("\n"); } } if(uflg) { printf("\n"); } } struct iesd *lookup() { register struct iesd *s; register char *p, *q; int i; static symcount; /* /* printf("lookup %.8s ", eesd.name); /**/ i = 0; for(p = eesd.name; p<&eesd.name[8];) i = (i<<1) + *p++; for(s = &symtab[(i&077777)%NSYM]; s->type != 0;) { q = s->name; for(p = eesd.name; p< &eesd.name[8];) if(*p++ != *q++) goto next; /* printf("old %o\n", s); /**/ return(s); next: if(++s >= &symtab[NSYM]) s = symtab; } if (++symcount >= NSYM) { printf("Too many symbols; Maximum is %d\n",NSYM-1); cexit(12); } q = s->name; for(p = eesd.name; p< &eesd.name[8]; *q++ = *p++); /* printf("new %o\n", s); /**/ return(s); } reloc(loc, flag, off) { if(flag&04) off = -off; switch(flag&03) { case 1: return(in2(loc, out2(loc) + off)); case 2: return(in3(loc, out3(loc) + off)); } return(in4(loc, out4(loc) + off)); } #include "uio.c" char *typetab[] { "illegal", "text ", "data ", "bss", "abs", "psreg", "illegal", "illegal", "wextern", "sextern", "common" }; printsyms() { struct iesd *s; int *j, *w; int tem; register i; i=0; w = calloc(totsym, words); for(s = symtab; s<&symtab[NSYM]; s++) if(s->type) w[i++] = s; for(i=totsym-1; i; i--) { for(j = w; j < w+i; j++) { if((*j)->value > (*(j+1))->value) { tem = *j; *j = *(j+1); *(j+1) = tem; } } } for(j = w; j < w+totsym; j++) { pname((*j)->name); printf(" %s %x\n", typetab[(*j)->type], (*j)->value); } } pname(name) char *name; { #ifdef unix printf("%.8s", name); #endif #ifndef unix register i; extern char atetab[]; for(i=0; i<8; i++) { if(*name) putchar(atetab[*name++]); else putchar(' '); } #endif } cmp(a, b, n) char *a, *b; { while(n--) if(*a++ != *b++) return(0); return(1); } #ifdef unix #include "uutil.c" #endif #ifndef unix #include "iutil.c" #endif clear(a, i) char *a; { while(i--) *a++ = 0; } j++) { pname((*j)->name); printf(" %s %x\n", typetab[(*j)->type], (*j)->value); } } pname(name) char *name; { #ifdef unix printf("%.8s", name); #endif #ifndef unix register i; extern char atetab[]; for(i=0; i<8; i++) { if(*name) putchar(atetab[*name++]); else putchar(' '); } #endif } cmp(a, b, n) char *a, *b; { while(n--) if(*a++ != *b++) return(0); return(1); } #ifdef unix #include "uutil.c" #endif #ifndef unix #in# /* global command -- glob params "*" in params matches r.e ".*" "?" in params matches r.e. "." "[...]" in params matches character class "[...a-z...]" in params matches a through z. perform command with argument list constructed as follows: if param does not contain "*", "[", or "?", use it as is if it does, find all files in current directory which match the param, sort them, and use them prepend the command name with "/bin" or "/usr/bin" as required. */ #define E2BIG 7 #define ENOEXEC 8 #define ENOENT 2 #define STRSIZ 522 char ab[STRSIZ]; /* generated characters */ char *ava[200]; /* generated arguments */ char **av &ava[1]; char *string ab; extern int errno; int ncoll; main(argc, argv) char *argv[]; { register char *cp; if (argc < 3) { write(2, "Arg count\n", 10); return; } argv++; *av++ = *argv; while (--argc >= 2) expand(*++argv); if (ncoll==0) { write(2, "No match\n", 9); return; } execute(ava[1], &ava[1]); cp = cat("/usr/bin/", ava[1]); execute(cp+4, &ava[1]); execute(cp, &ava[1]); write(2, "Command not found.\n", 19); } expand(as) char *as; { register char *s, *cs; register int dirf; char **oav; static struct { int ino; char name[16]; } entry; char dentry[17],*cp1,*cp2; s = cs = as; while (*cs!='*' && *cs!='?' && *cs!='[') { if (*cs++ == 0) { *av++ = cat(s, ""); return; } } for (;;) { if (cs==s) { dirf = open(".", 0); s = ""; break; } if (*--cs == '/') { *cs = 0; dirf = open(s==cs? "/": s, 0); *cs++ = 0200; break; } } if (dirf<0) { write(2, "No directory\n", 13); exit(); } oav = av; while (read(dirf, &dentry, 16) == 16) { entry.ino = (dentry[0]<<8)|dentry[1]; cp1 = &dentry[2]; cp2 = entry.name; dentry[16] = 0; while(*cp2++ = *cp1++); if (entry.ino==0) continue; if (match(entry.name, cs)) { *av++ = cat(s, entry.name); ncoll++; } } close(dirf); sort(oav); } sort(oav) char **oav; { register char **p1, **p2, **c; p1 = oav; while (p1 < av-1) { p2 = p1; while(++p2 < av) { if (compar(*p1, *p2) > 0) { c = *p1; *p1 = *p2; *p2 = c; } } p1++; } } execute(afile, aarg) char *afile; char **aarg; { register char *file, **arg; arg = aarg; file = afile; execv(file, arg); if (errno==ENOEXEC) { arg[0] = file; *--arg = "/bin/sh"; execv(*arg, arg); } if (errno==E2BIG) toolong(); } toolong() { write(2, "Arg list too long\n", 18); exit(); } match(s, p) char *s, *p; { if (*s=='.' && *p!='.') return(0); return(amatch(s, p)); } amatch(as, ap) char *as, *ap; { register char *s, *p; register scc; int c, cc, ok, lc; s = as; p = ap; if (scc = *s++) if ((scc =& 0177) == 0) scc = 0200; switch (c = *p++) { case '[': ok = 0; lc = 077777; while (cc = *p++) { if (cc==']') { if (ok) return(amatch(s, p)); else return(0); } else if (cc=='-') { if (lc<=scc && scc<=(c = *p++)) ok++; } else if (scc == (lc=cc)) ok++; } return(0); default: if (c!=scc) return(0); case '?': if (scc) return(amatch(s, p)); return(0); case '*': return(umatch(--s, p)); case '\0': return(!scc); } } umatch(s, p) char *s, *p; { if(*p==0) return(1); while(*s) if (amatch(s++,p)) return(1); return(0); } compar(as1, as2) char *as1, *as2; { register char *s1, *s2; s1 = as1; s2 = as2; while (*s1++ == *s2) if (*s2++ == 0) return(0); return (*--s1 - *s2); } cat(as1, as2) char *as1, *as2; { register char *s1, *s2; register int c; s2 = string; s1 = as1; while (c = *s1++) { if (s2 > &ab[STRSIZ]) toolong(); c =& 0177; if (c==0) { *s2++ = '/'; break; } *s2++ = c; } s1 = as2; do { if (s2 > &ab[STRSIZ]) toolong(); *s2++ = c = *s1++; } while (c); s1 = string; string = s2; return(s1); } ar *as1, *as2; { register char *s1, *s2; s1 = as1; s2 = as2; while (*s1++ == *s2) if (*s2++ == 0) return(0); return (*--s1 - *s2); } cat(as1, as2) char *as1, *as2; { register char *s1, *s2; register int c; s2 = string; schar buf[512]; main(argc,argv) int argc; char **argv; { int i,fd; if(argc <= 1) { docat(0); exit(); } for(i=1;i= 0) { docat(fd); close(fd); } } } } docat(fd) int fd; { int n; while((n = read(fd, buf, 512)) > 0) write(1, buf, n); } (*s2++ == 0) return(0); return (*--s1 - *s2); } cat(as1, as2) char *as1, *as2; { register char *s1, *s2; register int c; s2 = string; smain(argc, argv) char **argv; { register i, m; register char *c; int count; if(argc < 3) { printf("arg count\n"); exit(1); } c = argv[1]; m = 0; for(m=0; *c; c++) { if(*c < '0' || *c > '7') { printf("bad mode\n"); exit(1); } m = (m<<3) | *c - '0'; } for(i=2; i=0 && (buf[52]&060000)==040000) { p1 = argv[1]; p2 = argv[2]; bp = buf+100; while(*bp++ = *p2++); bp[-1] = '/'; p2 = bp; while(*bp = *p1++) if(*bp++ == '/') bp = p2; argv[2] = buf+100; } if (stat(argv[2], buf+50) >= 0) { if (buf[0]==buf[50] && buf[1]==buf[51]) { write(1, "Copying file to itself.\n", 24); exit(1); } } if ((fnew = creat(argv[2], mode)) < 0) { write(1, "Can't create new file.\n", 23); exit(1); } while(n = read(fold, buf, 512)) { if(n < 0) { write(1, "Read error\n", 11); exit(1); } else if(write(fnew, buf, n) != n){ write(1, "Write error.\n", 13); exit(1); } } exit(0); } bp = *p1++) if(*bp++ == '/') bp = p2; argv[2] = buf+100; } if (stat(argv[2], buf+50) >= 0) { if (buf[0]==buf[50] && buf[1]==buf[51]) { write(1, "Copying file to itself.\n", 24); exit(1); } } if ((fnew = creat(argv[2], mode)) < 0) { write(1, "Can't create new file.\n", 23); exit(1); } while(n = read(fold, buf, 512)) { if(n < 0) { write(1, "Read error\n", 11); exit(1); } else if(write(fnew, buf, n) != n){ write(1, "Write error.\nmain(argc, argv) int argc; char *argv[]; { int i; argc--; for(i=1; i<=argc; i++) printf("%s%c", argv[i], i==argc? '\n': ' '); } >= 0) { if (buf[0]==buf[50] && buf[1]==buf[51]) { write(1, "Copying file to itself.\n", 24); exit(1); } } if ((fnew = creat(argv[2], mode)) < 0) { write(1, "Can't create new file.\n", 23); exit(1); } while(n = read(fold, buf, 512)) { if(n < 0) { write(1, "Read error\n", 11); exit(1); } else if(write(fnew, buf, n) != n){ write(1, "Write error.\n/* exit -- end runcom */ main() { seek(0, 0, 2); } argc--; for(i=1; i<=argc; i++) printf("%s%c", argv[i], i==argc? '\n': ' '); } >= 0) { if (buf[0]==buf[50] && buf[1]==buf[51]) { write(1, "Copying file to itself.\n", 24); exit(1); } } if ((fnew = creat(argv[2], mode)) < 0) { write(1, "Can't create new file.\n", 23); exit(1); } while(n = read(fold, buf, 512)) { if(n < 0) { write(1, "Read error\n", 11); exit(1); } else if(write(fnew, buf, n) != n){ write(1, "Write error.\nchmod echo exit cat glob cpcmd ) { seek(0, 0, 2); } argc--; for(i=1; i<=argc; i++) printf("%s%c", argv[i], i==argc? '\n': ' '); } >= 0) { if (buf[0]==buf[50] && buf[1]==buf[51]) { write(1, "Copying file to itself.\n", 24); exit(1); } } if ((fnew = creat(argv[2], mode)) < 0) { write(1, "Can't create new file.\n", 23); exit(1); } while(n = read(fold, buf, 512)) { if(n < 0) { write(1, "Read error\n", 11); exit(1); } else if(write(fnew, buf, n) != n){ write(1, "Write error.\nmain(argc,argv) int argc; char **argv; { int i; char buf[512]; char *cp1,*cp2; cp2 = buf; for(i=1;i=0; f--) { pidp[f] = '0' + dolc%10; dolc =/ 10; } v = av; /* no accounting for now */ acname = "/dev/null"; promp = "% "; if(((uid = getuid())&0377) == 0) promp = "# "; acctf = open(acname, 1); if(c > 1) { promp = 0; if (*v[1]=='-') { **v = '-'; if (v[1][1]=='c' && c>2) arginp = v[2]; else if (v[1][1]=='t') onelflg = 2; } else { close(0); f = open(v[1], 0); if(f < 0) { prs(v[1]); err(": cannot open"); } } } if(**v == '-') { setintr++; signal(QUIT, 1); signal(INTR, 1); } dolv = v+1; dolc = c-1; loop: if(promp != 0) prs(promp); peekc = getc(); main1(); goto loop; } main1() { register char c, *cp; register *t; argp = args; eargp = args+ARGSIZ-5; linep = line; elinep = line+LINSIZ-5; error = 0; gflg = 0; do { cp = linep; word(); } while(*cp != '\n'); treep = trebuf; treeend = &trebuf[TRESIZ]; if(gflg == 0) { if(error == 0) { setexit(); if (error) return; t = syntax(args, argp); } if(error != 0) err("syntax error"); else execute(t); } } word() { register char c, c1; *argp++ = linep; loop: switch(c = getc()) { case ' ': case '\t': goto loop; case '\'': case '"': c1 = c; while((c=readc()) != c1) { if(c == '\n') { error++; peekc = c; return; } *linep++ = c|QUOTE; } goto pack; case '&': case ';': case '<': case '>': case '(': case ')': case '|': case '^': case '\n': *linep++ = c; *linep++ = '\0'; return; } peekc = c; pack: for(;;) { c = getc(); if(any(c, " '\"\t;&<>()|^\n")) { peekc = c; if(any(c, "\"'")) goto loop; *linep++ = '\0'; return; } *linep++ = c; } } tree(n) int n; { register *t; t = treep; treep =+ n; if (treep>treeend) { prs("Command line overflow\n"); error++; reset(); } return(t); } getc() { register char c; if(peekc) { c = peekc; peekc = 0; return(c); } if(argp > eargp) { argp =- 10; while((c=getc()) != '\n'); argp =+ 10; err("Too many args"); gflg++; return(c); } if(linep > elinep) { linep =- 10; while((c=getc()) != '\n'); linep =+ 10; err("Too many characters"); gflg++; return(c); } getd: if(dolp) { c = *dolp++; if(c != '\0') return(c); dolp = 0; } c = readc(); if(c == '\\') { c = readc(); if(c == '\n') return(' '); return(c|QUOTE); } if(c == '$') { c = readc(); if(c>='0' && c<='9') { if(c-'0' < dolc) dolp = dolv[c-'0']; goto getd; } if(c == '$') { dolp = pidp; goto getd; } } return(c&0177); } readc() { char cc; register c; if (arginp) { if (arginp == 1) exit(); if ((c = *arginp++) == 0) { arginp = 1; c = '\n'; } return(c); } if (onelflg==1) exit(); if(read(0, &cc, 1) != 1) exit(); if (cc=='\n' && onelflg) onelflg--; return(cc); } /* * syntax * empty * syn1 */ syntax(p1, p2) char **p1, **p2; { while(p1 != p2) { if(any(**p1, ";&\n")) p1++; else return(syn1(p1, p2)); } return(0); } /* * syn1 * syn2 * syn2 & syntax * syn2 ; syntax */ syn1(p1, p2) char **p1, **p2; { register char **p; register *t, *t1; int l; l = 0; for(p=p1; p!=p2; p++) switch(**p) { case '(': l++; continue; case ')': l--; if(l < 0) error++; continue; case '&': case ';': case '\n': if(l == 0) { l = **p; t = tree(4); t[DTYP] = TLST; t[DLEF] = syn2(p1, p); t[DFLG] = 0; if(l == '&') { t1 = t[DLEF]; t1[DFLG] =| FAND|FPRS|FINT; } t[DRIT] = syntax(p+1, p2); return(t); } } if(l == 0) return(syn2(p1, p2)); error++; } /* * syn2 * syn3 * syn3 | syn2 */ syn2(p1, p2) char **p1, **p2; { register char **p; register int l, *t; l = 0; for(p=p1; p!=p2; p++) switch(**p) { case '(': l++; continue; case ')': l--; continue; case '|': case '^': if(l == 0) { t = tree(4); t[DTYP] = TFIL; t[DLEF] = syn3(p1, p); t[DRIT] = syn2(p+1, p2); t[DFLG] = 0; return(t); } } return(syn3(p1, p2)); } /* * syn3 * ( syn1 ) [ < in ] [ > out ] * word word* [ < in ] [ > out ] */ syn3(p1, p2) char **p1, **p2; { register char **p; char **lp, **rp; register *t; int n, l, i, o, c, flg; flg = 0; if(**p2 == ')') flg =| FPAR; lp = 0; rp = 0; i = 0; o = 0; n = 0; l = 0; for(p=p1; p!=p2; p++) switch(c = **p) { case '(': if(l == 0) { if(lp != 0) error++; lp = p+1; } l++; continue; case ')': l--; if(l == 0) rp = p; continue; case '>': p++; if(p!=p2 && **p=='>') flg =| FCAT; else p--; case '<': if(l == 0) { p++; if(p == p2) { error++; p--; } if(any(**p, "<>(")) error++; if(c == '<') { if(i != 0) error++; i = *p; continue; } if(o != 0) error++; o = *p; } continue; default: if(l == 0) p1[n++] = *p; } if(lp != 0) { if(n != 0) error++; t = tree(5); t[DTYP] = TPAR; t[DSPR] = syn1(lp, rp); goto out; } if(n == 0) error++; p1[n++] = 0; t = tree(n+5); t[DTYP] = TCOM; for(l=0; l= 0) { seek(i, 0, 2); goto f1; } } i = creat(t[DRIT], 0666); if(i < 0) { prs(t[DRIT]); err(": cannot create"); exit(); } f1: close(1); dup(i); close(i); } if((f&FPIN) != 0) { close(0); dup(pf1[0]); close(pf1[0]); close(pf1[1]); } if((f&FPOU) != 0) { close(1); dup(pf2[1]); close(pf2[0]); close(pf2[1]); } if((f&FINT)!=0 && t[DLEF]==0 && (f&FPIN)==0) { close(0); open("/dev/null", 0); } if((f&FINT) == 0 && setintr) { signal(INTR, 0); signal(QUIT, 0); } if(t[DTYP] == TPAR) { if(t1 = t[DSPR]) t1[DFLG] =| f&FINT; execute(t1); exit(); } close(acctf); gflg = 0; scan(t, &tglob); if(gflg) { t[DSPR] = "/etc/glob"; execv(t[DSPR], t+DSPR); prs("glob: cannot execute\n"); exit(); } scan(t, &trim); *linep = 0; texec(t[DCOM], t); cp1 = linep; cp2 = "/usr/bin/"; while(*cp1 = *cp2++) cp1++; cp2 = t[DCOM]; while(*cp1++ = *cp2++); texec(linep+4, t); texec(linep, t); prs(t[DCOM]); err(": not found"); exit(); case TFIL: f = t[DFLG]; pipe(pv); t1 = t[DLEF]; t1[DFLG] =| FPOU | (f&(FPIN|FINT|FPRS)); execute(t1, pf1, pv); t1 = t[DRIT]; t1[DFLG] =| FPIN | (f&(FPOU|FINT|FAND|FPRS)); execute(t1, pv, pf2); return; case TLST: f = t[DFLG]&FINT; if(t1 = t[DLEF]) t1[DFLG] =| f; execute(t1); if(t1 = t[DRIT]) t1[DFLG] =| f; execute(t1); return; } } texec(f, at) int *at; { extern errno; register int *t; t = at; execv(f, t+DCOM); if (errno==ENOEXEC) { if (*linep) t[DCOM] = linep; t[DSPR] = "/bin/sh"; execv(t[DSPR], t+DSPR); prs("No shell!\n"); exit(); } if (errno==ENOMEM) { prs(t[DCOM]); err(": too large"); exit(); } } err(s) char *s; { prs(s); prs("\n"); if(promp == 0) { seek(0, 0, 2); exit(); } } prs(as) char *as; { register char *s; s = as; while(*s) putc(*s++); } putc(c) { char cc; cc = c; write(2, &cc, 1); } prn(n) int n; { register a; if(a = n/10) prn(a); putc(n%10 + '0'); } any(c, as) int c; char *as; { register char *s; s = as; while(*s) if(*s++ == c) return(1); return(0); } equal(as1, as2) char *as1, *as2; { register char *s1, *s2; s1 = as1; s2 = as2; while(*s1++ == *s2) if(*s2++ == '\0') return(1); return(0); } pwait(i, t) int i, *t; { register p, e; int s; if(i != 0) for(;;) { times(&timeb); time(timeb.proct); p = wait(&s); if(p == -1) break; e = s&0177; if(mesg[e] != 0) { if(p != i) { prn(p); prs(": "); } prs(mesg[e]); if(s&0200) prs(" -- Core dumped"); } if(e != 0) err(""); if(i == p) { acct(t); break; } else acct(0); } } acct(t) int *t; { if(t == 0) enacct("**gok"); else if(*t == TPAR) enacct("()"); else enacct(t[DCOM]); } enacct(as) char *as; { /* none of this for now... struct stime timbuf; struct { char cname[14]; char shf; char uid; int datet; int realt; int bcput; int bsyst; } tbuf; register i; register char *np, *s; s = as; times(&timbuf); time(timbuf.proct); tbuf.realt = timbuf.proct - timeb.proct; tbuf.bcput = timbuf.cputim - timeb.cputim; tbuf.bsyst = timbuf.systim - timeb.systim; do { np = s; while (*s != '\0' && *s != '/') s++; } while (*s++ != '\0'); for (i=0; i<14; i++) { tbuf.cname[i] = *np; if (*np) np++; } tbuf.date = timbuf.proct; tbuf.uid = uid; tbuf.shf = 0; if (promp==0) tbuf.shf = 1; seek(acctf, 0, 2); write(acctf, &tbuf, sizeof(tbuf)); ...*/ } i; register char *np, *s; s = as; times(&timbuf); time(timbuf.proct); tbuf.realt = timbuf.proct - timeb.proct; tbuf.bcput = timbuf.cputim - timeb.cputim; tbuf.bsyst = timbuf.systim - timeb.sysh startup dataloc dolp dc 4x'00' codeloc dataloc pidp dc 8x'00' codeloc dataloc ldivr dc 4x'00' codeloc dataloc dolv dc 4x'00' codeloc dataloc dolc dc 4x'00' codeloc dataloc promp dc 4x'00' codeloc dataloc linep dc 4x'00' codeloc dataloc elinep dc 4x'00' codeloc dataloc argp dc 4x'00' codeloc dataloc eargp dc 4x'00' codeloc dataloc treep dc 4x'00' codeloc dataloc treeend dc 4x'00' codeloc dataloc peekc dc 4x'00' codeloc dataloc gflg dc 4x'00' codeloc dataloc error dc 4x'00' codeloc dataloc acctf dc 4x'00' codeloc dataloc uid dc 4x'00' codeloc dataloc setintr dc 4x'00' codeloc dataloc arginp dc 4x'00' codeloc dataloc onelflg dc 4x'00' codeloc dataloc cnop 0,4 mesg equ * dc f'0' istrloc $1 dc x'48616E677570' dc x'00' dataloc dc a($1) dc f'0' istrloc $2 dc x'51756974' dc x'00' dataloc dc a($2) istrloc $3 dc x'496C6C6567616C20696E737472756374696F6E' dc x'00' dataloc dc a($3) istrloc $4 dc x'54726163652F4250542074726170' dc x'00' dataloc dc a($4) istrloc $5 dc x'494F542074726170' dc x'00' dataloc dc a($5) istrloc $6 dc x'454D542074726170' dc x'00' dataloc dc a($6) istrloc $7 dc x'466C6F6174696E6720657863657074696F6E' dc x'00' dataloc dc a($7) istrloc $8 dc x'4B696C6C6564' dc x'00' dataloc dc a($8) istrloc $9 dc x'427573206572726F72' dc x'00' dataloc dc a($9) istrloc $10 dc x'4D656D6F7279206661756C74' dc x'00' dataloc dc a($10) istrloc $11 dc x'4261642073797374656D2063616C6C' dc x'00' dataloc dc a($11) dc f'0' istrloc $12 dc x'536967203134' dc x'00' dataloc dc a($12) istrloc $13 dc x'536967203135' dc x'00' dataloc dc a($13) istrloc $14 dc x'536967203136' dc x'00' dataloc dc a($14) istrloc $15 dc x'536967203137' dc x'00' dataloc dc a($15) istrloc $16 dc x'536967203138' dc x'00' dataloc dc a($16) istrloc $17 dc x'536967203139' dc x'00' dataloc dc a($17) cnop 0,4 codeloc dataloc timeb dc 12x'00' codeloc dataloc line dc 1000x'00' codeloc dataloc args dc 200x'00' codeloc dataloc trebuf dc 400x'00' codeloc litloc ltorg mainloc $main$ equ * subsave runmain subretrn cc=00 ltorg stackdo codeloc main PROLOG 4 2 args l 2,=f'2' st 2,64(R12) $19 equ * l 2,64(R12) c 2,=f'15' bnl $20 l 2,64(R12) st 2,0(SP) lfunc 15,@close la 1,4 BCALL $21 equ * l 2,64(R12) lr 0,2 a 0,=f'1' st 0,64(R12) B $19 $20 equ * l 2,=f'1' st 2,0(SP) lfunc 15,@dup la 1,4 BCALL st 0,64(R12) c 0,=f'2' be $22 l 2,64(R12) st 2,0(SP) lfunc 15,@close la 1,4 BCALL $22 equ * lfunc 15,@getpid sr 1,1 BCALL st 0,dolc l 2,=f'4' st 2,64(R12) $23 equ * l 2,64(R12) ltr 2,2 bl $24 l 2,64(R12) la 3,pidp ar 2,3 l 4,dolc srda 4,32 d 4,=f'10' a 4,=f'48' stc 4,0(2) lr 2,4 l 2,=f'10' l 0,dolc srda 0,32 dr 0,2 st 1,dolc lr 3,1 $25 equ * l 2,64(R12) lr 0,2 s 0,=f'1' st 0,64(R12) B $23 $24 equ * l 2,ss$&fnum+4(R12) st 2,72(R12) strgloc $26 dc x'2F6465762F6E756C6C' dc x'00' codeloc la 2,$26 st 2,68(R12) strgloc $27 dc x'2520' dc x'00' codeloc la 2,$27 st 2,promp lfunc 15,@getuid sr 1,1 BCALL stc 0,uid lr 2,0 n 2,=f'255' ltr 2,2 bne $28 strgloc $29 dc x'2320' dc x'00' codeloc la 2,$29 st 2,promp $28 equ * s SP,=f'4' l 2,68(R12) st 2,0(SP) l 2,=f'1' st 2,4(SP) lfunc 15,@open la 1,8 BCALL la SP,4(SP) stc 0,acctf l 2,ss$&fnum+0(R12) c 2,=f'1' bnh $30 sr 2,2 st 2,promp l 2,72(R12) l 2,4(2) sr 1,1 ic 1,0(2) lr 2,1 c 2,=f'45' bne $31 l 1,72(R12) l 2,0(1) l 3,=f'45' stc 3,0(2) lr 2,3 l 2,72(R12) l 2,4(2) sr 1,1 ic 1,1(2) lr 2,1 c 2,=f'99' bne $32 l 2,ss$&fnum+0(R12) c 2,=f'2' bnh $32 l 2,72(R12) l 2,8(2) st 2,arginp B $33 $32 equ * l 2,72(R12) l 2,4(2) sr 1,1 ic 1,1(2) lr 2,1 c 2,=f'116' bne $34 l 2,=f'2' st 2,onelflg $34 equ * $33 equ * B $35 $31 equ * sr 2,2 st 2,0(SP) lfunc 15,@close la 1,4 BCALL s SP,=f'4' l 2,72(R12) l 2,4(2) st 2,0(SP) sr 2,2 st 2,4(SP) lfunc 15,@open la 1,8 BCALL la SP,4(SP) st 0,64(R12) l 2,64(R12) ltr 2,2 bnl $36 l 2,72(R12) l 2,4(2) st 2,0(SP) lfunc 15,@prs la 1,4 BCALL strgloc $37 dc x'3A2063616E6E6F74206F70656E' dc x'00' codeloc la 2,$37 st 2,0(SP) lfunc 15,@err la 1,4 BCALL $36 equ * $35 equ * $30 equ * l 1,72(R12) l 2,0(1) sr 1,1 ic 1,0(2) lr 2,1 c 2,=f'45' bne $38 lc 2,setintr lr 0,2 a 0,=f'1' stc 0,setintr s SP,=f'4' l 2,=f'3' st 2,0(SP) l 2,=f'1' st 2,4(SP) lfunc 15,@signal la 1,8 BCALL la SP,4(SP) s SP,=f'4' l 2,=f'2' st 2,0(SP) l 2,=f'1' st 2,4(SP) lfunc 15,@signal la 1,8 BCALL la SP,4(SP) $38 equ * l 2,72(R12) a 2,=f'4' st 2,dolv l 2,ss$&fnum+0(R12) a 2,=f'-1' st 2,dolc $39 equ * l 2,promp ltr 2,2 be $40 l 2,promp st 2,0(SP) lfunc 15,@prs la 1,4 BCALL $40 equ * lfunc 15,@getc sr 1,1 BCALL stc 0,peekc lfunc 15,@main1 sr 1,1 BCALL B $39 $18 EPILOG 76 DC C'END main' main1 PROLOG 4 0 args la 2,args st 2,argp la 2,200+args a 2,=f'-20' st 2,eargp la 2,line st 2,linep la 2,1000+line a 2,=f'-5' st 2,elinep sr 2,2 stc 2,error sr 2,2 stc 2,gflg $44 equ * l 2,linep st 2,68(R12) lfunc 15,@word sr 1,1 BCALL $42 equ * l 1,68(R12) lc 2,0(1) c 2,=f'10' bne $44 $43 equ * la 2,trebuf st 2,treep la 2,400+trebuf st 2,treeend sr 2,2 ic 2,gflg ltr 2,2 bne $45 sr 2,2 ic 2,error ltr 2,2 bne $46 lfunc 15,@setexit sr 1,1 BCALL sr 2,2 ic 2,error ltr 2,2 bne $41 s SP,=f'4' la 2,args st 2,0(SP) l 2,argp st 2,4(SP) lfunc 15,@syntax la 1,8 BCALL la SP,4(SP) st 0,72(R12) $46 equ * sr 2,2 ic 2,error ltr 2,2 be $47 strgloc $48 dc x'73796E746178206572726F72' dc x'00' codeloc la 2,$48 st 2,0(SP) lfunc 15,@err la 1,4 BCALL B $49 $47 equ * l 2,72(R12) st 2,0(SP) lfunc 15,@execute la 1,4 BCALL $49 equ * $45 equ * $41 EPILOG 76 DC C'END main1' word PROLOG 4 0 args l 2,argp lr 0,2 a 0,=f'4' st 0,argp l 3,linep st 3,0(2) lr 2,3 $51 equ * lfunc 15,@getc sr 1,1 BCALL stc 0,64(R12) B $53 $54 equ * $55 equ * B $51 $56 equ * $57 equ * sr 2,2 ic 2,64(R12) stc 2,68(R12) $58 equ * lfunc 15,@readc sr 1,1 BCALL stc 0,64(R12) lr 2,0 sr 3,3 ic 3,68(R12) cr 2,3 be $59 sr 2,2 ic 2,64(R12) c 2,=f'10' bne $60 lc 2,error lr 0,2 a 0,=f'1' stc 0,error sr 2,2 ic 2,64(R12) stc 2,peekc B $50 $60 equ * l 2,linep lr 0,2 a 0,=f'1' st 0,linep sr 3,3 ic 3,64(R12) o 3,=f'128' stc 3,0(2) lr 2,3 B $58 $59 equ * B $61 $62 equ * $63 equ * $64 equ * $65 equ * $66 equ * $67 equ * $68 equ * $69 equ * $70 equ * l 2,linep lr 0,2 a 0,=f'1' st 0,linep sr 3,3 ic 3,64(R12) stc 3,0(2) lr 2,3 l 2,linep lr 0,2 a 0,=f'1' st 0,linep sr 3,3 stc 3,0(2) lr 2,3 B $50 B $52 $53 equ * c 0,=f'9' be $55 c 0,=f'10' be $70 c 0,=f'32' be $54 c 0,=f'34' be $57 c 0,=f'38' be $62 c 0,=f'39' be $56 c 0,=f'40' be $66 c 0,=f'41' be $67 c 0,=f'59' be $63 c 0,=f'60' be $64 c 0,=f'62' be $65 c 0,=f'94' be $69 c 0,=f'124' be $68 b $52 * End of switch code. $52 equ * sr 2,2 ic 2,64(R12) stc 2,peekc $61 equ * $71 equ * lfunc 15,@getc sr 1,1 BCALL stc 0,64(R12) strgloc $73 dc x'202722093B263C3E28297C5E0A' dc x'00' codeloc s SP,=f'4' sr 2,2 ic 2,64(R12) st 2,0(SP) la 2,$73 st 2,4(SP) lfunc 15,@any la 1,8 BCALL la SP,4(SP) ltr 0,0 be $74 sr 2,2 ic 2,64(R12) stc 2,peekc strgloc $75 dc x'2227' dc x'00' codeloc s SP,=f'4' sr 2,2 ic 2,64(R12) st 2,0(SP) la 2,$75 st 2,4(SP) lfunc 15,@any la 1,8 BCALL la SP,4(SP) ltr 0,0 bne $51 l 2,linep lr 0,2 a 0,=f'1' st 0,linep sr 3,3 stc 3,0(2) lr 2,3 B $50 $74 equ * l 2,linep lr 0,2 a 0,=f'1' st 0,linep sr 3,3 ic 3,64(R12) stc 3,0(2) lr 2,3 B $71 $72 equ * $50 EPILOG 72 DC C'END word' tree PROLOG 4 1 args l 2,treep st 2,64(R12) l 2,ss$&fnum+0(R12) sll 2,2 a 2,treep st 2,treep l 2,treep c 2,treeend bnh $77 strgloc $78 dc x'436F6D6D616E64206C696E65206F766572666C6F770A' dc x'00' codeloc la 2,$78 st 2,0(SP) lfunc 15,@prs la 1,4 BCALL lc 2,error lr 0,2 a 0,=f'1' stc 0,error lfunc 15,@reset sr 1,1 BCALL $77 equ * l 2,64(R12) lr 0,2 B $76 $76 EPILOG 68 DC C'END tree' getc PROLOG 4 0 args sr 2,2 ic 2,peekc ltr 2,2 be $80 sr 2,2 ic 2,peekc stc 2,64(R12) sr 2,2 stc 2,peekc sr 2,2 ic 2,64(R12) lr 0,2 B $79 $80 equ * l 2,argp c 2,eargp bnh $81 l 2,argp s 2,=f'40' st 2,argp $82 equ * lfunc 15,@getc sr 1,1 BCALL stc 0,64(R12) c 0,=f'10' be $83 B $82 $83 equ * l 2,=f'40' a 2,argp st 2,argp strgloc $84 dc x'546F6F206D616E792061726773' dc x'00' codeloc la 2,$84 st 2,0(SP) lfunc 15,@err la 1,4 BCALL lc 2,gflg lr 0,2 a 0,=f'1' stc 0,gflg sr 2,2 ic 2,64(R12) lr 0,2 B $79 $81 equ * l 2,linep c 2,elinep bnh $85 l 2,linep s 2,=f'10' st 2,linep $86 equ * lfunc 15,@getc sr 1,1 BCALL stc 0,64(R12) c 0,=f'10' be $87 B $86 $87 equ * l 2,=f'10' a 2,linep st 2,linep strgloc $88 dc x'546F6F206D616E792063686172616374657273' dc x'00' codeloc la 2,$88 st 2,0(SP) lfunc 15,@err la 1,4 BCALL lc 2,gflg lr 0,2 a 0,=f'1' stc 0,gflg sr 2,2 ic 2,64(R12) lr 0,2 B $79 $85 equ * $89 equ * l 2,dolp ltr 2,2 be $90 l 2,dolp lr 0,2 a 0,=f'1' st 0,dolp sr 1,1 ic 1,0(2) lr 2,1 stc 2,64(R12) sr 2,2 ic 2,64(R12) ltr 2,2 be $91 sr 2,2 ic 2,64(R12) lr 0,2 B $79 $91 equ * sr 2,2 st 2,dolp $90 equ * lfunc 15,@readc sr 1,1 BCALL stc 0,64(R12) sr 2,2 ic 2,64(R12) c 2,=f'92' bne $92 lfunc 15,@readc sr 1,1 BCALL stc 0,64(R12) sr 2,2 ic 2,64(R12) c 2,=f'10' bne $93 l 2,=f'32' lr 0,2 B $79 $93 equ * sr 2,2 ic 2,64(R12) o 2,=f'128' lr 0,2 B $79 $92 equ * sr 2,2 ic 2,64(R12) c 2,=f'36' bne $94 lfunc 15,@readc sr 1,1 BCALL stc 0,64(R12) sr 2,2 ic 2,64(R12) c 2,=f'48' bl $95 sr 2,2 ic 2,64(R12) c 2,=f'57' bh $95 sr 2,2 ic 2,64(R12) a 2,=f'-48' c 2,dolc bnl $96 sr 2,2 ic 2,64(R12) sll 2,2 a 2,dolv a 2,=f'-192' l 2,0(2) st 2,dolp $96 equ * B $89 $95 equ * sr 2,2 ic 2,64(R12) c 2,=f'36' bne $97 la 2,pidp st 2,dolp B $89 $97 equ * $94 equ * sr 2,2 ic 2,64(R12) n 2,=f'127' lr 0,2 B $79 $79 EPILOG 68 DC C'END getc' readc PROLOG 4 0 args l 2,arginp ltr 2,2 be $99 l 2,arginp c 2,=f'1' bne $100 lfunc 15,@exit sr 1,1 BCALL $100 equ * l 2,arginp lr 0,2 a 0,=f'1' st 0,arginp sr 1,1 ic 1,0(2) lr 2,1 st 2,68(R12) ltr 2,2 bne $101 l 2,=f'1' st 2,arginp l 2,=f'10' st 2,68(R12) $101 equ * l 2,68(R12) lr 0,2 B $98 $99 equ * l 2,onelflg c 2,=f'1' bne $102 lfunc 15,@exit sr 1,1 BCALL $102 equ * s SP,=f'8' sr 2,2 st 2,0(SP) la 2,64(R12) st 2,4(SP) l 2,=f'1' st 2,8(SP) lfunc 15,@read la 1,12 BCALL la SP,8(SP) c 0,=f'1' be $103 lfunc 15,@exit sr 1,1 BCALL $103 equ * sr 2,2 ic 2,64(R12) c 2,=f'10' bne $104 l 2,onelflg ltr 2,2 be $104 l 2,onelflg lr 0,2 s 0,=f'1' st 0,onelflg $104 equ * sr 2,2 ic 2,64(R12) lr 0,2 B $98 $98 EPILOG 72 DC C'END readc' syntax PROLOG 4 2 args $106 equ * l 2,ss$&fnum+0(R12) c 2,ss$&fnum+4(R12) be $107 strgloc $108 dc x'3B260A' dc x'00' codeloc s SP,=f'4' l 1,ss$&fnum+0(R12) l 2,0(1) sr 1,1 ic 1,0(2) lr 2,1 st 2,0(SP) la 2,$108 st 2,4(SP) lfunc 15,@any la 1,8 BCALL la SP,4(SP) ltr 0,0 be $109 l 2,ss$&fnum+0(R12) lr 0,2 a 0,=f'4' st 0,ss$&fnum+0(R12) B $110 $109 equ * s SP,=f'4' l 2,ss$&fnum+0(R12) st 2,0(SP) l 2,ss$&fnum+4(R12) st 2,4(SP) lfunc 15,@syn1 la 1,8 BCALL la SP,4(SP) B $105 $110 equ * B $106 $107 equ * sr 2,2 lr 0,2 B $105 $105 EPILOG 64 DC C'END syntax' syn1 PROLOG 4 2 args sr 2,2 st 2,76(R12) l 2,ss$&fnum+0(R12) st 2,64(R12) $112 equ * l 2,64(R12) c 2,ss$&fnum+4(R12) be $113 l 1,64(R12) l 2,0(1) sr 1,1 ic 1,0(2) lr 2,1 lr 0,2 B $116 $117 equ * l 2,76(R12) lr 0,2 a 0,=f'1' st 0,76(R12) B $114 $118 equ * l 2,76(R12) lr 0,2 s 0,=f'1' st 0,76(R12) l 2,76(R12) ltr 2,2 bnl $119 lc 2,error lr 0,2 a 0,=f'1' stc 0,error $119 equ * B $114 $120 equ * $121 equ * $122 equ * l 2,76(R12) ltr 2,2 bne $123 l 1,64(R12) l 2,0(1) sr 1,1 ic 1,0(2) lr 2,1 st 2,76(R12) l 2,=f'4' st 2,0(SP) lfunc 15,@tree la 1,4 BCALL st 0,68(R12) l 2,=f'4' l 1,68(R12) st 2,0(1) l 2,68(R12) st 2,80(R12) temp s SP,=f'4' l 2,ss$&fnum+0(R12) st 2,0(SP) l 2,64(R12) st 2,4(SP) lfunc 15,@syn2 la 1,8 BCALL la SP,4(SP) l 1,80(R12) temp st 0,4(1) l 2,68(R12) sr 3,3 st 3,12(2) lr 2,3 l 2,76(R12) c 2,=f'38' bne $124 l 2,68(R12) l 2,4(2) st 2,72(R12) l 2,72(R12) l 0,12(2) o 0,=f'97' st 0,12(2) lr 2,0 $124 equ * l 2,68(R12) st 2,84(R12) temp s SP,=f'4' l 2,64(R12) a 2,=f'4' st 2,0(SP) l 2,ss$&fnum+4(R12) st 2,4(SP) lfunc 15,@syntax la 1,8 BCALL la SP,4(SP) l 1,84(R12) temp st 0,8(1) l 2,68(R12) lr 0,2 B $111 $123 equ * B $115 $116 equ * c 0,=f'10' be $122 c 0,=f'38' be $120 c 0,=f'40' be $117 c 0,=f'41' be $118 c 0,=f'59' be $121 b $115 * End of switch code. $115 equ * $114 equ * l 2,64(R12) lr 0,2 a 0,=f'4' st 0,64(R12) B $112 $113 equ * l 2,76(R12) ltr 2,2 bne $125 s SP,=f'4' l 2,ss$&fnum+0(R12) st 2,0(SP) l 2,ss$&fnum+4(R12) st 2,4(SP) lfunc 15,@syn2 la 1,8 BCALL la SP,4(SP) B $111 $125 equ * lc 2,error lr 0,2 a 0,=f'1' stc 0,error $111 EPILOG 88 DC C'END syn1' syn2 PROLOG 4 2 args sr 2,2 st 2,68(R12) l 2,ss$&fnum+0(R12) st 2,64(R12) $127 equ * l 2,64(R12) c 2,ss$&fnum+4(R12) be $128 l 1,64(R12) l 2,0(1) sr 1,1 ic 1,0(2) lr 2,1 lr 0,2 B $131 $132 equ * l 2,68(R12) lr 0,2 a 0,=f'1' st 0,68(R12) B $129 $133 equ * l 2,68(R12) lr 0,2 s 0,=f'1' st 0,68(R12) B $129 $134 equ * $135 equ * l 2,68(R12) ltr 2,2 bne $136 l 2,=f'4' st 2,0(SP) lfunc 15,@tree la 1,4 BCALL st 0,72(R12) l 2,=f'3' l 1,72(R12) st 2,0(1) l 2,72(R12) st 2,76(R12) temp s SP,=f'4' l 2,ss$&fnum+0(R12) st 2,0(SP) l 2,64(R12) st 2,4(SP) lfunc 15,@syn3 la 1,8 BCALL la SP,4(SP) l 1,76(R12) temp st 0,4(1) l 2,72(R12) st 2,80(R12) temp s SP,=f'4' l 2,64(R12) a 2,=f'4' st 2,0(SP) l 2,ss$&fnum+4(R12) st 2,4(SP) lfunc 15,@syn2 la 1,8 BCALL la SP,4(SP) l 1,80(R12) temp st 0,8(1) l 2,72(R12) sr 3,3 st 3,12(2) lr 2,3 l 2,72(R12) lr 0,2 B $126 $136 equ * B $130 $131 equ * c 0,=f'40' be $132 c 0,=f'41' be $133 c 0,=f'94' be $135 c 0,=f'124' be $134 b $130 * End of switch code. $130 equ * $129 equ * l 2,64(R12) lr 0,2 a 0,=f'4' st 0,64(R12) B $127 $128 equ * s SP,=f'4' l 2,ss$&fnum+0(R12) st 2,0(SP) l 2,ss$&fnum+4(R12) st 2,4(SP) lfunc 15,@syn3 la 1,8 BCALL la SP,4(SP) B $126 $126 EPILOG 84 DC C'END syn2' syn3 PROLOG 4 2 args sr 2,2 st 2,100(R12) l 1,ss$&fnum+4(R12) l 2,0(1) sr 1,1 ic 1,0(2) lr 2,1 c 2,=f'41' bne $138 l 2,=f'16' o 2,100(R12) st 2,100(R12) $138 equ * sr 2,2 st 2,68(R12) sr 2,2 st 2,72(R12) sr 2,2 st 2,88(R12) sr 2,2 st 2,92(R12) sr 2,2 st 2,80(R12) sr 2,2 st 2,84(R12) l 2,ss$&fnum+0(R12) st 2,64(R12) $139 equ * l 2,64(R12) c 2,ss$&fnum+4(R12) be $140 l 1,64(R12) l 2,0(1) sr 1,1 ic 1,0(2) lr 2,1 st 2,96(R12) lr 0,2 B $143 $144 equ * l 2,84(R12) ltr 2,2 bne $145 l 2,68(R12) ltr 2,2 be $146 lc 2,error lr 0,2 a 0,=f'1' stc 0,error $146 equ * l 2,64(R12) a 2,=f'4' st 2,68(R12) $145 equ * l 2,84(R12) lr 0,2 a 0,=f'1' st 0,84(R12) B $141 $147 equ * l 2,84(R12) lr 0,2 s 0,=f'1' st 0,84(R12) l 2,84(R12) ltr 2,2 bne $148 l 2,64(R12) st 2,72(R12) $148 equ * B $141 $149 equ * l 2,64(R12) lr 0,2 a 0,=f'4' st 0,64(R12) l 2,64(R12) c 2,ss$&fnum+4(R12) be $150 l 1,64(R12) l 2,0(1) sr 1,1 ic 1,0(2) lr 2,1 c 2,=f'62' bne $150 l 2,=f'2' o 2,100(R12) st 2,100(R12) B $151 $150 equ * l 2,64(R12) lr 0,2 s 0,=f'4' st 0,64(R12) $151 equ * $152 equ * l 2,84(R12) ltr 2,2 bne $153 l 2,64(R12) lr 0,2 a 0,=f'4' st 0,64(R12) l 2,64(R12) c 2,ss$&fnum+4(R12) bne $154 lc 2,error lr 0,2 a 0,=f'1' stc 0,error l 2,64(R12) lr 0,2 s 0,=f'4' st 0,64(R12) $154 equ * strgloc $155 dc x'3C3E28' dc x'00' codeloc s SP,=f'4' l 1,64(R12) l 2,0(1) sr 1,1 ic 1,0(2) lr 2,1 st 2,0(SP) la 2,$155 st 2,4(SP) lfunc 15,@any la 1,8 BCALL la SP,4(SP) ltr 0,0 be $156 lc 2,error lr 0,2 a 0,=f'1' stc 0,error $156 equ * l 2,96(R12) c 2,=f'60' bne $157 l 2,88(R12) ltr 2,2 be $158 lc 2,error lr 0,2 a 0,=f'1' stc 0,error $158 equ * l 1,64(R12) l 2,0(1) st 2,88(R12) B $141 $157 equ * l 2,92(R12) ltr 2,2 be $159 lc 2,error lr 0,2 a 0,=f'1' stc 0,error $159 equ * l 1,64(R12) l 2,0(1) st 2,92(R12) $153 equ * B $141 $160 equ * l 2,84(R12) ltr 2,2 bne $161 l 2,80(R12) lr 0,2 a 0,=f'1' st 0,80(R12) sll 2,2 a 2,ss$&fnum+0(R12) l 1,64(R12) l 3,0(1) st 3,0(2) lr 2,3 $161 equ * B $142 $143 equ * c 0,=f'40' be $144 c 0,=f'41' be $147 c 0,=f'60' be $152 c 0,=f'62' be $149 b $160 * End of switch code. $142 equ * $141 equ * l 2,64(R12) lr 0,2 a 0,=f'4' st 0,64(R12) B $139 $140 equ * l 2,68(R12) ltr 2,2 be $162 l 2,80(R12) ltr 2,2 be $163 lc 2,error lr 0,2 a 0,=f'1' stc 0,error $163 equ * l 2,=f'5' st 2,0(SP) lfunc 15,@tree la 1,4 BCALL st 0,76(R12) l 2,=f'2' l 1,76(R12) st 2,0(1) l 2,76(R12) st 2,104(R12) temp s SP,=f'4' l 2,68(R12) st 2,0(SP) l 2,72(R12) st 2,4(SP) lfunc 15,@syn1 la 1,8 BCALL la SP,4(SP) l 1,104(R12) temp st 0,16(1) B $164 $162 equ * l 2,80(R12) ltr 2,2 bne $165 lc 2,error lr 0,2 a 0,=f'1' stc 0,error $165 equ * l 2,80(R12) lr 0,2 a 0,=f'1' st 0,80(R12) sll 2,2 a 2,ss$&fnum+0(R12) sr 3,3 st 3,0(2) lr 2,3 l 2,80(R12) a 2,=f'5' st 2,0(SP) lfunc 15,@tree la 1,4 BCALL st 0,76(R12) l 2,=f'1' l 1,76(R12) st 2,0(1) sr 2,2 st 2,84(R12) $166 equ * l 2,84(R12) c 2,80(R12) bnl $167 l 2,84(R12) sll 2,2 a 2,76(R12) l 3,84(R12) sll 3,2 a 3,ss$&fnum+0(R12) l 3,0(3) st 3,20(2) lr 2,3 $168 equ * l 2,84(R12) lr 0,2 a 0,=f'1' st 0,84(R12) B $166 $167 equ * $164 equ * l 2,76(R12) l 3,100(R12) st 3,12(2) lr 2,3 l 2,76(R12) l 3,88(R12) st 3,4(2) lr 2,3 l 2,76(R12) l 3,92(R12) st 3,8(2) lr 2,3 l 2,76(R12) lr 0,2 B $137 $137 EPILOG 108 DC C'END syn3' scan PROLOG 4 2 args l 2,ss$&fnum+0(R12) a 2,=f'20' st 2,72(R12) $170 equ * l 2,72(R12) lr 0,2 a 0,=f'4' st 0,72(R12) l 2,0(2) st 2,64(R12) ltr 2,2 be $171 $172 equ * l 1,64(R12) lc 2,0(1) stc 2,68(R12) ltr 2,2 be $173 l 2,64(R12) lr 0,2 a 0,=f'1' st 0,64(R12) st 2,76(R12) temp sr 2,2 ic 2,68(R12) st 2,0(SP) lfunc 15,ss$&fnum+4(R12) la 1,4 BCALL l 1,76(R12) temp stc 0,0(1) B $172 $173 equ * B $170 $171 equ * $169 EPILOG 80 DC C'END scan' tglob PROLOG 4 1 args strgloc $175 dc x'5B3F2A' dc x'00' codeloc s SP,=f'4' l 2,ss$&fnum+0(R12) st 2,0(SP) la 2,$175 st 2,4(SP) lfunc 15,@any la 1,8 BCALL la SP,4(SP) ltr 0,0 be $176 l 2,=f'1' stc 2,gflg $176 equ * l 2,ss$&fnum+0(R12) lr 0,2 B $174 $174 EPILOG 64 DC C'END tglob' trim PROLOG 4 1 args l 2,ss$&fnum+0(R12) n 2,=f'127' lr 0,2 B $177 $177 EPILOG 64 DC C'END trim' execute PROLOG 4 3 args l 2,ss$&fnum+0(R12) ltr 2,2 be $179 l 1,ss$&fnum+0(R12) l 2,0(1) lr 0,2 B $181 $182 equ * l 2,ss$&fnum+0(R12) l 2,20(2) st 2,84(R12) strgloc $183 dc x'6368646972' dc x'00' codeloc s SP,=f'4' l 2,84(R12) st 2,0(SP) la 2,$183 st 2,4(SP) lfunc 15,@equal la 1,8 BCALL la SP,4(SP) ltr 0,0 be $184 l 2,ss$&fnum+0(R12) l 2,24(2) ltr 2,2 be $185 l 2,ss$&fnum+0(R12) l 2,24(2) st 2,0(SP) lfunc 15,@chdir la 1,4 BCALL ltr 0,0 bnl $186 strgloc $187 dc x'63686469723A20626164206469726563746F7279' dc x'00' codeloc la 2,$187 st 2,0(SP) lfunc 15,@err la 1,4 BCALL $186 equ * B $188 $185 equ * strgloc $189 dc x'63686469723A2061726720636F756E74' dc x'00' codeloc la 2,$189 st 2,0(SP) lfunc 15,@err la 1,4 BCALL $188 equ * B $178 $184 equ * strgloc $190 dc x'7368696674' dc x'00' codeloc s SP,=f'4' l 2,84(R12) st 2,0(SP) la 2,$190 st 2,4(SP) lfunc 15,@equal la 1,8 BCALL la SP,4(SP) ltr 0,0 be $191 l 2,dolc c 2,=f'1' bnl $192 strgloc $193 dc x'73686966743A206E6F20617267730A' dc x'00' codeloc la 2,$193 st 2,0(SP) lfunc 15,@prs la 1,4 BCALL B $178 $192 equ * l 2,dolv l 1,dolv l 3,0(1) st 3,4(2) lr 2,3 l 2,dolv lr 0,2 a 0,=f'4' st 0,dolv l 2,dolc lr 0,2 s 0,=f'1' st 0,dolc B $178 $191 equ * strgloc $194 dc x'6C6F67696E' dc x'00' codeloc s SP,=f'4' l 2,84(R12) st 2,0(SP) la 2,$194 st 2,4(SP) lfunc 15,@equal la 1,8 BCALL la SP,4(SP) ltr 0,0 be $195 l 2,promp ltr 2,2 be $196 sr 2,2 ic 2,acctf st 2,0(SP) lfunc 15,@close la 1,4 BCALL strgloc $197 dc x'2F62696E2F6C6F67696E' dc x'00' codeloc s SP,=f'4' la 2,$197 st 2,0(SP) l 2,ss$&fnum+0(R12) a 2,=f'20' st 2,4(SP) lfunc 15,@execv la 1,8 BCALL la SP,4(SP) $196 equ * strgloc $198 dc x'6C6F67696E3A2063616E6E6F7420657865637574650A' dc x'00' codeloc la 2,$198 st 2,0(SP) lfunc 15,@prs la 1,4 BCALL B $178 $195 equ * strgloc $199 dc x'6E6577677270' dc x'00' codeloc s SP,=f'4' l 2,84(R12) st 2,0(SP) la 2,$199 st 2,4(SP) lfunc 15,@equal la 1,8 BCALL la SP,4(SP) ltr 0,0 be $200 l 2,promp ltr 2,2 be $201 sr 2,2 ic 2,acctf st 2,0(SP) lfunc 15,@close la 1,4 BCALL strgloc $202 dc x'2F62696E2F6E6577677270' dc x'00' codeloc s SP,=f'4' la 2,$202 st 2,0(SP) l 2,ss$&fnum+0(R12) a 2,=f'20' st 2,4(SP) lfunc 15,@execv la 1,8 BCALL la SP,4(SP) $201 equ * strgloc $203 dc x'6E65776772703A2063616E6E6F7420657865637574650A' dc x'00' codeloc la 2,$203 st 2,0(SP) lfunc 15,@prs la 1,4 BCALL B $178 $200 equ * strgloc $204 dc x'77616974' dc x'00' codeloc s SP,=f'4' l 2,84(R12) st 2,0(SP) la 2,$204 st 2,4(SP) lfunc 15,@equal la 1,8 BCALL la SP,4(SP) ltr 0,0 be $205 s SP,=f'4' l 2,=f'-1' st 2,0(SP) sr 2,2 st 2,4(SP) lfunc 15,@pwait la 1,8 BCALL la SP,4(SP) B $178 $205 equ * strgloc $206 dc x'3A' dc x'00' codeloc s SP,=f'4' l 2,84(R12) st 2,0(SP) la 2,$206 st 2,4(SP) lfunc 15,@equal la 1,8 BCALL la SP,4(SP) ltr 0,0 bne $178 $207 equ * l 2,ss$&fnum+0(R12) l 2,12(2) st 2,68(R12) sr 2,2 st 2,64(R12) l 2,68(R12) n 2,=f'16' ltr 2,2 bne $208 lfunc 15,@fork sr 1,1 BCALL st 0,64(R12) $208 equ * l 2,64(R12) c 2,=f'-1' bne $209 strgloc $210 dc x'74727920616761696E' dc x'00' codeloc la 2,$210 st 2,0(SP) lfunc 15,@err la 1,4 BCALL B $178 $209 equ * l 2,64(R12) ltr 2,2 be $211 l 2,68(R12) n 2,=f'4' ltr 2,2 be $212 l 1,ss$&fnum+4(R12) l 2,0(1) st 2,0(SP) lfunc 15,@close la 1,4 BCALL l 2,ss$&fnum+4(R12) l 2,4(2) st 2,0(SP) lfunc 15,@close la 1,4 BCALL $212 equ * l 2,68(R12) n 2,=f'64' ltr 2,2 be $213 l 2,64(R12) st 2,0(SP) lfunc 15,@prn la 1,4 BCALL strgloc $214 dc x'0A' dc x'00' codeloc la 2,$214 st 2,0(SP) lfunc 15,@prs la 1,4 BCALL $213 equ * l 2,68(R12) n 2,=f'1' ltr 2,2 bne $178 l 2,68(R12) n 2,=f'8' ltr 2,2 bne $215 s SP,=f'4' l 2,64(R12) st 2,0(SP) l 2,ss$&fnum+0(R12) st 2,4(SP) lfunc 15,@pwait la 1,8 BCALL la SP,4(SP) $215 equ * B $178 $211 equ * l 2,ss$&fnum+0(R12) l 2,4(2) ltr 2,2 be $216 sr 2,2 st 2,0(SP) lfunc 15,@close la 1,4 BCALL s SP,=f'4' l 2,ss$&fnum+0(R12) l 2,4(2) st 2,0(SP) sr 2,2 st 2,4(SP) lfunc 15,@open la 1,8 BCALL la SP,4(SP) st 0,64(R12) l 2,64(R12) ltr 2,2 bnl $217 l 2,ss$&fnum+0(R12) l 2,4(2) st 2,0(SP) lfunc 15,@prs la 1,4 BCALL strgloc $218 dc x'3A2063616E6E6F74206F70656E' dc x'00' codeloc la 2,$218 st 2,0(SP) lfunc 15,@err la 1,4 BCALL lfunc 15,@exit sr 1,1 BCALL $217 equ * $216 equ * l 2,ss$&fnum+0(R12) l 2,8(2) ltr 2,2 be $219 l 2,68(R12) n 2,=f'2' ltr 2,2 be $220 s SP,=f'4' l 2,ss$&fnum+0(R12) l 2,8(2) st 2,0(SP) l 2,=f'1' st 2,4(SP) lfunc 15,@open la 1,8 BCALL la SP,4(SP) st 0,64(R12) l 2,64(R12) ltr 2,2 bl $221 s SP,=f'8' l 2,64(R12) st 2,0(SP) sr 2,2 st 2,4(SP) l 2,=f'2' st 2,8(SP) lfunc 15,@seek la 1,12 BCALL la SP,8(SP) B $222 $221 equ * $220 equ * s SP,=f'4' l 2,ss$&fnum+0(R12) l 2,8(2) st 2,0(SP) l 2,=f'438' st 2,4(SP) lfunc 15,@creat la 1,8 BCALL la SP,4(SP) st 0,64(R12) l 2,64(R12) ltr 2,2 bnl $223 l 2,ss$&fnum+0(R12) l 2,8(2) st 2,0(SP) lfunc 15,@prs la 1,4 BCALL strgloc $224 dc x'3A2063616E6E6F7420637265617465' dc x'00' codeloc la 2,$224 st 2,0(SP) lfunc 15,@err la 1,4 BCALL lfunc 15,@exit sr 1,1 BCALL $223 equ * $222 equ * l 2,=f'1' st 2,0(SP) lfunc 15,@close la 1,4 BCALL l 2,64(R12) st 2,0(SP) lfunc 15,@dup la 1,4 BCALL l 2,64(R12) st 2,0(SP) lfunc 15,@close la 1,4 BCALL $219 equ * l 2,68(R12) n 2,=f'4' ltr 2,2 be $225 sr 2,2 st 2,0(SP) lfunc 15,@close la 1,4 BCALL l 1,ss$&fnum+4(R12) l 2,0(1) st 2,0(SP) lfunc 15,@dup la 1,4 BCALL l 1,ss$&fnum+4(R12) l 2,0(1) st 2,0(SP) lfunc 15,@close la 1,4 BCALL l 2,ss$&fnum+4(R12) l 2,4(2) st 2,0(SP) lfunc 15,@close la 1,4 BCALL $225 equ * l 2,68(R12) n 2,=f'8' ltr 2,2 be $226 l 2,=f'1' st 2,0(SP) lfunc 15,@close la 1,4 BCALL l 2,ss$&fnum+8(R12) l 2,4(2) st 2,0(SP) lfunc 15,@dup la 1,4 BCALL l 1,ss$&fnum+8(R12) l 2,0(1) st 2,0(SP) lfunc 15,@close la 1,4 BCALL l 2,ss$&fnum+8(R12) l 2,4(2) st 2,0(SP) lfunc 15,@close la 1,4 BCALL $226 equ * l 2,68(R12) n 2,=f'32' ltr 2,2 be $227 l 2,ss$&fnum+0(R12) l 2,4(2) ltr 2,2 bne $227 l 2,68(R12) n 2,=f'4' ltr 2,2 bne $227 sr 2,2 st 2,0(SP) lfunc 15,@close la 1,4 BCALL strgloc $228 dc x'2F6465762F6E756C6C' dc x'00' codeloc s SP,=f'4' la 2,$228 st 2,0(SP) sr 2,2 st 2,4(SP) lfunc 15,@open la 1,8 BCALL la SP,4(SP) $227 equ * l 2,68(R12) n 2,=f'32' ltr 2,2 bne $229 sr 2,2 ic 2,setintr ltr 2,2 be $229 s SP,=f'4' l 2,=f'2' st 2,0(SP) sr 2,2 st 2,4(SP) lfunc 15,@signal la 1,8 BCALL la SP,4(SP) s SP,=f'4' l 2,=f'3' st 2,0(SP) sr 2,2 st 2,4(SP) lfunc 15,@signal la 1,8 BCALL la SP,4(SP) $229 equ * l 1,ss$&fnum+0(R12) l 2,0(1) c 2,=f'2' bne $230 l 2,ss$&fnum+0(R12) l 2,16(2) st 2,80(R12) ltr 2,2 be $231 l 2,68(R12) n 2,=f'32' l 3,80(R12) o 2,12(3) st 2,12(3) $231 equ * l 2,80(R12) st 2,0(SP) lfunc 15,@execute la 1,4 BCALL lfunc 15,@exit sr 1,1 BCALL $230 equ * sr 2,2 ic 2,acctf st 2,0(SP) lfunc 15,@close la 1,4 BCALL sr 2,2 stc 2,gflg s SP,=f'4' l 2,ss$&fnum+0(R12) st 2,0(SP) l 2,@tglob st 2,4(SP) lfunc 15,@scan la 1,8 BCALL la SP,4(SP) sr 2,2 ic 2,gflg ltr 2,2 be $232 strgloc $233 dc x'2F6574632F676C6F62' dc x'00' codeloc l 2,ss$&fnum+0(R12) la 3,$233 st 3,16(2) lr 2,3 s SP,=f'4' l 2,ss$&fnum+0(R12) l 2,16(2) st 2,0(SP) l 2,ss$&fnum+0(R12) a 2,=f'16' st 2,4(SP) lfunc 15,@execv la 1,8 BCALL la SP,4(SP) strgloc $234 dc x'676C6F623A2063616E6E6F7420657865637574650A' dc x'00' codeloc la 2,$234 st 2,0(SP) lfunc 15,@prs la 1,4 BCALL lfunc 15,@exit sr 1,1 BCALL $232 equ * s SP,=f'4' l 2,ss$&fnum+0(R12) st 2,0(SP) l 2,@trim st 2,4(SP) lfunc 15,@scan la 1,8 BCALL la SP,4(SP) sr 2,2 l 1,linep stc 2,0(1) s SP,=f'4' l 2,ss$&fnum+0(R12) l 2,20(2) st 2,0(SP) l 2,ss$&fnum+0(R12) st 2,4(SP) lfunc 15,@texec la 1,8 BCALL la SP,4(SP) l 2,linep st 2,84(R12) strgloc $235 dc x'2F7573722F62696E2F' dc x'00' codeloc la 2,$235 st 2,88(R12) $236 equ * l 2,88(R12) lr 0,2 a 0,=f'1' st 0,88(R12) sr 1,1 ic 1,0(2) lr 2,1 l 1,84(R12) stc 2,0(1) ltr 2,2 be $237 l 2,84(R12) lr 0,2 a 0,=f'1' st 0,84(R12) B $236 $237 equ * l 2,ss$&fnum+0(R12) l 2,20(2) st 2,88(R12) $238 equ * l 2,84(R12) lr 0,2 a 0,=f'1' st 0,84(R12) l 3,88(R12) lr 0,3 a 0,=f'1' st 0,88(R12) sr 1,1 ic 1,0(3) lr 3,1 stc 3,0(2) lr 2,3 ltr 2,2 be $239 B $238 $239 equ * s SP,=f'4' l 2,linep a 2,=f'4' st 2,0(SP) l 2,ss$&fnum+0(R12) st 2,4(SP) lfunc 15,@texec la 1,8 BCALL la SP,4(SP) s SP,=f'4' l 2,linep st 2,0(SP) l 2,ss$&fnum+0(R12) st 2,4(SP) lfunc 15,@texec la 1,8 BCALL la SP,4(SP) l 2,ss$&fnum+0(R12) l 2,20(2) st 2,0(SP) lfunc 15,@prs la 1,4 BCALL strgloc $240 dc x'3A206E6F7420666F756E64' dc x'00' codeloc la 2,$240 st 2,0(SP) lfunc 15,@err la 1,4 BCALL lfunc 15,@exit sr 1,1 BCALL $241 equ * l 2,ss$&fnum+0(R12) l 2,12(2) st 2,68(R12) la 2,72(R12) st 2,0(SP) lfunc 15,@pipe la 1,4 BCALL l 2,ss$&fnum+0(R12) l 2,4(2) st 2,80(R12) l 2,68(R12) n 2,=f'100' o 2,=f'8' l 3,80(R12) o 2,12(3) st 2,12(3) s SP,=f'8' l 2,80(R12) st 2,0(SP) l 2,ss$&fnum+4(R12) st 2,4(SP) la 2,72(R12) st 2,8(SP) lfunc 15,@execute la 1,12 BCALL la SP,8(SP) l 2,ss$&fnum+0(R12) l 2,8(2) st 2,80(R12) l 2,68(R12) n 2,=f'105' o 2,=f'4' l 3,80(R12) o 2,12(3) st 2,12(3) s SP,=f'8' l 2,80(R12) st 2,0(SP) la 2,72(R12) st 2,4(SP) l 2,ss$&fnum+8(R12) st 2,8(SP) lfunc 15,@execute la 1,12 BCALL la SP,8(SP) B $178 $242 equ * l 2,ss$&fnum+0(R12) l 2,12(2) n 2,=f'32' st 2,68(R12) l 2,ss$&fnum+0(R12) l 2,4(2) st 2,80(R12) ltr 2,2 be $243 l 2,80(R12) l 0,12(2) o 0,68(R12) st 0,12(2) lr 2,0 $243 equ * l 2,80(R12) st 2,0(SP) lfunc 15,@execute la 1,4 BCALL l 2,ss$&fnum+0(R12) l 2,8(2) st 2,80(R12) ltr 2,2 be $244 l 2,80(R12) l 0,12(2) o 0,68(R12) st 0,12(2) lr 2,0 $244 equ * l 2,80(R12) st 2,0(SP) lfunc 15,@execute la 1,4 BCALL B $178 B $180 $181 equ * s 0,=f'1' c r0,=f'3' bh $180 lr r1,r0 sll r1,2 b *+4(r1) b $182 b $207 b $241 b $242 * End of switch code. $180 equ * $179 equ * $178 EPILOG 92 DC C'END execute' texec PROLOG 4 2 args l 2,ss$&fnum+4(R12) st 2,64(R12) s SP,=f'4' l 2,ss$&fnum+0(R12) st 2,0(SP) l 2,64(R12) a 2,=f'20' st 2,4(SP) lfunc 15,@execv la 1,8 BCALL la SP,4(SP) l 1,@errno l 2,0(1) c 2,=f'8' bne $246 l 1,linep lc 2,0(1) ltr 2,2 be $247 l 2,64(R12) l 3,linep st 3,20(2) lr 2,3 $247 equ * strgloc $248 dc x'2F62696E2F7368' dc x'00' codeloc l 2,64(R12) la 3,$248 st 3,16(2) lr 2,3 s SP,=f'4' l 2,64(R12) l 2,16(2) st 2,0(SP) l 2,64(R12) a 2,=f'16' st 2,4(SP) lfunc 15,@execv la 1,8 BCALL la SP,4(SP) strgloc $249 dc x'4E6F207368656C6C210A' dc x'00' codeloc la 2,$249 st 2,0(SP) lfunc 15,@prs la 1,4 BCALL lfunc 15,@exit sr 1,1 BCALL $246 equ * l 1,@errno l 2,0(1) c 2,=f'12' bne $250 l 2,64(R12) l 2,20(2) st 2,0(SP) lfunc 15,@prs la 1,4 BCALL strgloc $251 dc x'3A20746F6F206C61726765' dc x'00' codeloc la 2,$251 st 2,0(SP) lfunc 15,@err la 1,4 BCALL lfunc 15,@exit sr 1,1 BCALL $250 equ * $245 EPILOG 68 DC C'END texec' err PROLOG 4 1 args l 2,ss$&fnum+0(R12) st 2,0(SP) lfunc 15,@prs la 1,4 BCALL strgloc $253 dc x'0A' dc x'00' codeloc la 2,$253 st 2,0(SP) lfunc 15,@prs la 1,4 BCALL l 2,promp ltr 2,2 bne $254 s SP,=f'8' sr 2,2 st 2,0(SP) sr 2,2 st 2,4(SP) l 2,=f'2' st 2,8(SP) lfunc 15,@seek la 1,12 BCALL la SP,8(SP) lfunc 15,@exit sr 1,1 BCALL $254 equ * $252 EPILOG 64 DC C'END err' prs PROLOG 4 1 args l 2,ss$&fnum+0(R12) st 2,64(R12) $256 equ * l 1,64(R12) lc 2,0(1) ltr 2,2 be $257 l 2,64(R12) lr 0,2 a 0,=f'1' st 0,64(R12) sr 1,1 ic 1,0(2) lr 2,1 st 2,0(SP) lfunc 15,@putc la 1,4 BCALL B $256 $257 equ * $255 EPILOG 68 DC C'END prs' putc PROLOG 4 1 args s SP,=f'8' l 2,=f'2' st 2,0(SP) la 2,ss$&fnum+0(R12) st 2,4(SP) l 2,=f'1' st 2,8(SP) lfunc 15,@write la 1,12 BCALL la SP,8(SP) $258 EPILOG 64 DC C'END putc' prn PROLOG 4 1 args l 2,ss$&fnum+0(R12) srda 2,32 d 2,=f'10' st 3,64(R12) ltr 3,3 be $260 l 2,64(R12) st 2,0(SP) lfunc 15,@prn la 1,4 BCALL $260 equ * l 2,ss$&fnum+0(R12) srda 2,32 d 2,=f'10' a 2,=f'48' st 2,0(SP) lfunc 15,@putc la 1,4 BCALL $259 EPILOG 68 DC C'END prn' any PROLOG 4 2 args l 2,ss$&fnum+4(R12) st 2,64(R12) $262 equ * l 1,64(R12) lc 2,0(1) ltr 2,2 be $263 l 2,64(R12) lr 0,2 a 0,=f'1' st 0,64(R12) sr 1,1 ic 1,0(2) lr 2,1 c 2,ss$&fnum+0(R12) bne $264 l 2,=f'1' lr 0,2 B $261 $264 equ * B $262 $263 equ * sr 2,2 lr 0,2 B $261 $261 EPILOG 68 DC C'END any' equal PROLOG 4 2 args l 2,ss$&fnum+0(R12) st 2,64(R12) l 2,ss$&fnum+4(R12) st 2,68(R12) $266 equ * l 2,64(R12) lr 0,2 a 0,=f'1' st 0,64(R12) sr 1,1 ic 1,0(2) lr 2,1 l 1,68(R12) lc 3,0(1) cr 2,3 bne $267 l 2,68(R12) lr 0,2 a 0,=f'1' st 0,68(R12) sr 1,1 ic 1,0(2) lr 2,1 ltr 2,2 bne $268 l 2,=f'1' lr 0,2 B $265 $268 equ * B $266 $267 equ * sr 2,2 lr 0,2 B $265 $265 EPILOG 72 DC C'END equal' pwait PROLOG 4 2 args l 2,ss$&fnum+0(R12) ltr 2,2 be $270 $271 equ * la 2,timeb st 2,0(SP) lfunc 15,@times la 1,4 BCALL l 2,timeb st 2,0(SP) lfunc 15,@time la 1,4 BCALL la 2,72(R12) st 2,0(SP) lfunc 15,@wait la 1,4 BCALL st 0,64(R12) l 2,64(R12) c 2,=f'-1' be $272 l 2,72(R12) n 2,=f'127' st 2,68(R12) l 2,68(R12) sll 2,2 la 3,mesg ar 2,3 l 2,0(2) ltr 2,2 be $273 l 2,64(R12) c 2,ss$&fnum+0(R12) be $274 l 2,64(R12) st 2,0(SP) lfunc 15,@prn la 1,4 BCALL strgloc $275 dc x'3A20' dc x'00' codeloc la 2,$275 st 2,0(SP) lfunc 15,@prs la 1,4 BCALL $274 equ * l 2,68(R12) sll 2,2 la 3,mesg ar 2,3 l 2,0(2) st 2,0(SP) lfunc 15,@prs la 1,4 BCALL l 2,72(R12) n 2,=f'128' ltr 2,2 be $276 strgloc $277 dc x'202D2D20436F72652064756D706564' dc x'00' codeloc la 2,$277 st 2,0(SP) lfunc 15,@prs la 1,4 BCALL $276 equ * $273 equ * l 2,68(R12) ltr 2,2 be $278 strgloc $279 dc x'00' dc x'00' codeloc la 2,$279 st 2,0(SP) lfunc 15,@err la 1,4 BCALL $278 equ * l 2,ss$&fnum+0(R12) c 2,64(R12) bne $280 l 2,ss$&fnum+4(R12) st 2,0(SP) lfunc 15,@acct la 1,4 BCALL B $272 B $281 $280 equ * sr 2,2 st 2,0(SP) lfunc 15,@acct la 1,4 BCALL $281 equ * B $271 $272 equ * $270 equ * $269 EPILOG 76 DC C'END pwait' acct PROLOG 4 1 args l 2,ss$&fnum+0(R12) ltr 2,2 bne $283 strgloc $284 dc x'2A2A676F6B' dc x'00' codeloc la 2,$284 st 2,0(SP) lfunc 15,@enacct la 1,4 BCALL B $285 $283 equ * l 1,ss$&fnum+0(R12) l 2,0(1) c 2,=f'2' bne $286 strgloc $287 dc x'2829' dc x'00' codeloc la 2,$287 st 2,0(SP) lfunc 15,@enacct la 1,4 BCALL B $288 $286 equ * l 2,ss$&fnum+0(R12) l 2,20(2) st 2,0(SP) lfunc 15,@enacct la 1,4 BCALL $288 equ * $285 equ * $282 EPILOG 64 DC C'END acct' enacct PROLOG 4 1 args $289 EPILOG 64 DC C'END enacct' tvecloc entry acct @acct INTFUNC acct @read EXTFUNC read entry gflg @gflg INTADDR gflg entry dolc @dolc INTADDR dolc entry getc @getc INTFUNC getc @main INTFUNC main entry scan @scan INTFUNC scan entry line @line INTADDR line entry argp @argp INTADDR argp @seek EXTFUNC seek entry mesg @mesg INTADDR mesg entry pidp @pidp INTADDR pidp entry args @args INTADDR args entry dolp @dolp INTADDR dolp entry tree @tree INTFUNC tree @pipe EXTFUNC pipe @open EXTFUNC open @fork EXTFUNC fork @time EXTFUNC time entry dolv @dolv INTADDR dolv @wait EXTFUNC wait @exit EXTFUNC exit entry word @word INTFUNC word entry trim @trim INTFUNC trim entry putc @putc INTFUNC putc entry main1 @main1 INTFUNC main1 entry readc @readc INTFUNC readc entry acctf @acctf INTADDR acctf entry peekc @peekc INTADDR peekc @chdir EXTFUNC chdir entry eargp @eargp INTADDR eargp @creat EXTFUNC creat entry timeb @timeb INTADDR timeb @close EXTFUNC close entry linep @linep INTADDR linep entry tglob @tglob INTFUNC tglob entry equal @equal INTFUNC equal @execv EXTFUNC execv entry texec @texec INTFUNC texec entry treep @treep INTADDR treep entry ldivr @ldivr INTADDR ldivr @times EXTFUNC times @reset EXTFUNC reset entry pwait @pwait INTFUNC pwait @errno EXTADDR errno entry error @error INTADDR error @write EXTFUNC write entry promp @promp INTADDR promp entry enacct @enacct INTFUNC enacct entry elinep @elinep INTADDR elinep @getpid EXTFUNC getpid @signal EXTFUNC signal entry arginp @arginp INTADDR arginp @getuid EXTFUNC getuid entry trebuf @trebuf INTADDR trebuf entry syntax @syntax INTFUNC syntax entry uid @uid INTADDR uid @dup EXTFUNC dup entry err @err INTFUNC err entry any @any INTFUNC any entry prn @prn INTFUNC prn entry prs @prs INTFUNC prs entry treeend @treeend INTADDR treeend entry onelflg @onelflg INTADDR onelflg entry execute @execute INTFUNC execute @setexit EXTFUNC setexit entry setintr @setintr INTADDR setintr entry syn1 @syn1 INTFUNC syn1 entry syn2 @syn2 INTFUNC syn2 entry syn3 @syn3 INTFUNC syn3 codeloc litloc ltorg end $main$ ntax @syntax INTFUNC syntax entry uid @uid INTADDR uid @dup EXTFUNC dup entry err @err INTFUNC err entry any @any INTF#define NTRMS 4 char tty[] "/dev/ttyx"; main() { int pids[NTRMS]; int i,j; for(i=0;i'9') return(-1); n = n*10 + c-'0'; } return(n); } , b; if(argc != 5) { printf("arg count\n"); goto usage; } if(*argv[2] == 'b') m = 0160666; else if(*argv[2] == 'c') m = 0120666; else goto usage; a = number(argv[3]); if(a < 0) goto usage; b = number(argv[4]); if(b < 0) goto usage; if(mknod(argv[1], m, (a<<8)|b) < 0) perror("mknod"); exit(); usage: printf("usage: mknod name b/c major minor\n"); } number(s) char *s; { int n, c; n = 0; while(c = *s++) { if(c<'0' || c>'9') /* mv [-d] file1 file2 unlink file2 link file1 file2 unlink file1 */ int stbuf[42]; struct sbuf { int dev; int inum; int imode; char nlink; char uid; char gid; char siz0; char siz1; int addr[8]; int adate[2]; int mdate[2]; }; char strbuf[70]; main(argc,argv) int argc; char *argv[]; { char **argp; char *argp1, *argp2, *argp3, *argp4; char *p, *p1, *p2; char place[100]; int i; int status; int b; argp = argv; /* check for correct number of arguments */ if(argc != 3){ write(1,"Usage: mv name1 name2\n",22); exit(); } /* is there anything to do? */ argp3 = argp[1]; argp4 = argp[2]; if(stat(argp[1], stbuf) < 0){ write(1,"Source file non-existent\n",25); exit(); } /* yes, there is a source. check whether file or directory */ if((stbuf[0].imode & 060000) == 040000){ /* The source is a directory, so we do lots of checking and messing around so as not to get into trouble. This patch of code contains administrative policies rather than system restrictions. */ if(stat(argp[2], stbuf) >= 0){ write(1,"Directory target exists.\n",25); exit(); } argp1 = argp[1]; argp2 = argp[2]; while(*argp1 == *argp2){ argp1++; if(*argp2++ == 0){ write(1,"???\n",4); exit(); } } while(*argp1)if(*argp1++ == '/'){ write(1,"Directory rename only\n",22); exit(); } while(*argp2)if(*argp2++ == '/'){ write(1,"Directory rename only\n",22); exit(); } if(*--argp1 == '.'){ write(1,"values of B will give rise to dom!\n",37); exit(); } }else{ /* the source is a file. */ setuid(getuid()); if(stat(argp4, &stbuf[2]) >= 0){ if((stbuf[2].imode & 060000) == 040000){ argp2 = strbuf; while(*argp2++ = *argp4++); argp2[-1] = '/'; argp4 = argp[1]; argp1 = argp[1]; while(*argp4) if(*argp4++ == '/') argp1 = argp4; while(*argp2++ = *argp1++); argp4 = strbuf; } if(stat(argp4, &stbuf[2]) >= 0){ if((stbuf[0]==stbuf[2]) && (stbuf[1]==stbuf[3])){ write(1,"Files are identical.\n",21); exit(); } if((getuid()&0377) == stbuf[2].uid) b = 0200; else if((getgid()&0377) == stbuf[2].gid) b = 020; else b = 02; if((stbuf[2].imode & b) == 0) { printf("%s: %o mode ", argp4, stbuf[2].imode & 07777); i = b = getchar(); while(b != '\n' && b != '\0') b = getchar(); if(i != 'y') exit(); } if(unlink(argp4) < 0){ write(1,"Cannot remove target file.\n",27); exit(); } } } } if(link(argp3, argp4) < 0){ i = fork(); if(i == -1){ write(1,"Try again.\n",11); exit(); } if(i){ while(wait(&status) != i); }else{ p = place; p1 = p; while(*p++ = *argp3++); p2 = p; while(*p++ = *argp4++); execl("/bin/cp","cp", p1, p2, 0); write(1, "no cp\n", 6); exit(1); } if((status & 0377) != 0){ write(1,"?\n", 2); exit(); } if(status != 0) exit(); } if(unlink(argp3) < 0){ write(1,"Cannot unlink source file.\n",27); exit(); } } putchar(c) { write(1, &c, 1); } getchar() { char c; if(read(0, &c, 1) != 1) return(0); return(c); } y again.\n",11); exit(); } if(i){ while(wait(&status) != i); }else{ # /* size -- determine object size */ #define MAGIC1 #47f00020 #define MAGIC2 #47f00024 #define HDRLEN 32 main(argc, argv) char **argv; { int buf[HDRLEN/4], f, ac, sum; ac = argc; if (ac==1) { *argv = "a.out"; ac++; --argv; } while(--ac) { ++argv; if((f=open(*argv, 0))<0) { printf("%s not found\n", *argv); continue; } read(f, buf, HDRLEN); if(buf[0]!=MAGIC1 && buf[0]!=MAGIC2) { printf("Bad format: %s\n", *argv); close(f); continue; } if (argc>2) printf("%s: ", *argv); printf("%d+%d+%d=", buf[1],buf[2],buf[3]); sum = buf[1]+buf[2]+buf[3]; printf("%d (%o)\n", sum, sum); close(f); } } argv; { int buf[HDRLEN/4], f, ac, sum; ac = argc; if (ac==1) { *argv = "a.out"; ac++; --argv; } while(--ac) { ++argv; if((f=open(*argv, 0))<0) { printf("%s not found\n", *argv); continue; } read(f, buf, HDRLEN); if(buf[0]!=MAGIC1 && buf[0]!=MAGIC2) { printf("Bad format: %s\n", *argv); close(f); continue; } if (argc>2) printf("%s: "main(argc, argv) char **argv; { int c, n; char *s; n = 0; if(argc < 2) { printf("arg count\n"); exit(); } s = argv[1]; while(c = *s++) { if(c<'0' || c>'9') { printf("bad character\n"); exit(); } n = n*10 + c - '0'; } sleep(n); } { ++argv; if((f=open(*argv, 0))<0) { printf("%s not found\n", *argv); continue; } read(f, buf, HDRLEN); if(buf[0]!=MAGIC1 && buf[0]!=MAGIC2) { printf("Bad format: %s\n", *argv); close(f); continue; } if (argc>2) printf("%s: "# /* * set teletype modes */ /* * tty flags */ #define HUPCL 01 #define XTABS 02 #define LCASE 04 #define ECHO 010 #define CRMOD 020 #define RAW 040 #define ODDP 0100 #define EVENP 0200 #define ANYP 0300 /* * Delay algorithms */ #define CR0 0 #define CR1 010000 #define CR2 020000 #define CR3 030000 #define NL0 0 #define NL1 000400 #define NL2 001000 #define NL3 001400 #define TAB0 0 #define TAB1 002000 #define TAB2 004000 #define TAB3 006000 #define FF0 0 #define FF1 040000 #define BS0 0 #define BS1 0100000 #define ALL 0177400 struct { char *string; int speed; } speeds[] { "0", (0<<8)|0, "50", (1<<8)|1, "75", (2<<8)|2, "110", (3<<8)|3, "134", (4<<8)|4, "134.5",(4<<8)|4, "150", (5<<8)|5, "200", (6<<8)|6, "300", (7<<8)|7, "600", (8<<8)|8, "1200", (9<<8)|9, "1800", (10<<8)|10, "2400", (11<<8)|11, "4800", (12<<8)|12, "9600", (13<<8)|13, "exta", (14<<8)|14, "extb", (15<<8)|15, 0, }; struct { char *string; int set; int reset; } modes[] { "even", EVENP, 0, "-even", 0, EVENP, "odd", ODDP, 0, "-odd", 0, ODDP, "raw", RAW, 0, "-raw", 0, RAW, "cooked", 0, RAW, "-nl", CRMOD, 0, "nl", 0, CRMOD, "echo", ECHO, 0, "-echo", 0, ECHO, "LCASE", LCASE, 0, "lcase", LCASE, 0, "-LCASE", 0, LCASE, "-lcase", 0, LCASE, "-tabs", XTABS, 0, "tabs", 0, XTABS, "hup", HUPCL, 0, "-hup", 0, HUPCL, "cr0", CR0, CR3, "cr1", CR1, CR3, "cr2", CR2, CR3, "cr3", CR3, CR3, "tab0", TAB0, TAB3, "tab1", TAB1, TAB3, "tab2", TAB2, TAB3, "tab3", TAB3, TAB3, "nl0", NL0, NL3, "nl1", NL1, NL3, "nl2", NL2, NL3, "nl3", NL3, NL3, "ff0", FF0, FF1, "ff1", FF1, FF1, "bs0", BS0, BS1, "bs1", BS1, BS1, "33", CR1, ALL, "tty33", CR1, ALL, "37", FF1+CR2+TAB1+NL1, ALL, "tty37", FF1+CR2+TAB1+NL1, ALL, "05", NL2, ALL, "vt05", NL2, ALL, "tn", CR1, ALL, "tn300", CR1, ALL, "ti", CR2, ALL, "ti700", CR2, ALL, "tek", FF1, ALL, 0, }; char *arg; int mode[3]; struct { char lobyte, hibyte; }; main(argc, argv) char *argv[]; { int i; gtty(1, mode); if(argc == 1) { prmodes(); exit(0); } while(--argc > 0) { arg = *++argv; if (eq("ek")) mode[1] = '#@'; if (eq("erase")) { mode[1].lobyte = **++argv; argc--; } if (eq("kill")) { mode[1].hibyte = **++argv; argc--; } for(i=0; speeds[i].string; i++) if(eq(speeds[i].string)) mode[0] = speeds[i].speed; for(i=0; modes[i].string; i++) if(eq(modes[i].string)) { mode[2] =& ~modes[i].reset; mode[2] =| modes[i].set; } if(arg) printf("unknown mode: %s\n", arg); } stty(1,mode); } eq(string) char *string; { int i; if(!arg) return(0); i = 0; loop: if(arg[i] != string[i]) return(0); if(arg[i++] != '\0') goto loop; arg = 0; return(1); } prmodes() { register m; if(mode[0].lobyte != mode[0].hibyte) { prspeed("input speed ", mode[0].lobyte); prspeed("output speed ", mode[0].hibyte); } else prspeed("speed ", mode[0].lobyte); printf("erase = '%c'; kill = '%c'\n", mode[1].lobyte, mode[1].hibyte); m = mode[2]; if(m & 0200) printf("even "); if(m & 0100) printf("odd "); if(m & 040) printf("raw "); if(m & 020) printf("-nl "); if(m & 010) printf("echo "); if(m & 04) printf("lcase "); if(m & 02) printf("-tabs "); if(m & 01) printf("hup "); delay(m>>8, "nl"); delay(m>>10, "tab"); delay(m>>12, "cr"); delay((m>>14)&1, "ff"); delay((m>>15)&1, "bs"); printf("\n"); } delay(m, s) char *s; { if(m =& 3) printf("%s%d ", s, m); } int speed[] { 0,50,75,110,134,150,200,300,600,1200,1800,2400,4800,9600,0,0 }; prspeed(c, s) { printf("%s%d baud\n", c, speed[s]); } putchar(c) { write(2, &c, 1); } if(m & 020) printf("-nl "); if(m & 010) printf("echo "); if(m & 04) printf("lcase "); if(m & 02) printf("-tabs "); if(m & 01) printf("hup "); delay(m>>8, "nl"); delay(m>>10, "tab"); delay(m>>12, "cr"); delay((m>>14)&1, "ff"); delay((m>>15)&1, "bs"); printf("\n"); } delay(m, s) char *s; { if(m =& 3) printf("%s%d ", s, m); } int speed[] { 0,50,75,110,134,150,200,300,600,1200,1800,2400,4800,9600,0,0 }main() { sync(); } printf("%s%d baud\n", c, speed[s]); } putchar(c) { write(2, &c, 1); } if(m & 020) printf("-nl "); if(m & 010) printf("echo "); if(m & 04) printf("lcase "); if(m & 02) printf("-tabs "); if(m & 01) printf("hup "); delay(m>>8, "nl"); delay(m>>10, "tab"); delay(m>>12, "cr"); delay((m>>14)&1, "ff"); delay((m>>15)&1, "bs"); printf("\n"); } delay(m, s) char *s; { if(m =& 3) printf("%s%d ", s, m); } int speed[] { 0,50,75,110,134,150,200,300,600,1200,1800,2400,4800,9600,0,0 }sleep sync mknod size sh f("%s%d baud\n", c, speed[s]); } putchar(c) { write(2, &c, 1); } if(m & 020) printf("-nl "); if(m & 010) printf("echo "); if(m & 04) printf("lcase "); if(m & 02) printf("-tabs "); if(m & 01) printf("hup "); delay(m>>8, "nl"); delay(m>>10, "tab"); delay(m>>12, "cr"); delay((m>>14)&1, "ff"); delay((m>>15)&1, "bs"); printf("\n"); } delay(m, s) char *s; { if(m =& 3) printf("%s%d ", s, m); } int speed[] { 0,50,75,110,134,150,200,300,600,1200,1800,2400,4800,9600,0,0 }int fout 1; char prbuf[32]; /* Buffer for number conversion */ char prch[] "0123456789abcdef"; /* * Scaled down version of C Library printf. * Only %s %l %d (==%l) %o and %x are recognized. * Used to print diagnostic information * directly on console tty. * Since it is not interrupt driven, * all system activities are pretty much * suspended. * Printf should not be used for chit-chat. */ printf(fmt,x1,x2,x3,x4,x5,x6,x7,x8,x9,xa,xb,xc) char fmt[]; { register char *s; register *adx, c; adx = &x1; loop: while((c = *fmt++) != '%') { if(c == '\0') return; putchar(c); } c = *fmt++; if(c == 'd' || c == 'l') printn(*adx); if(c == 'o' || c == 'x'){ printl(*adx, c == 'o' ? 8 : 16); } if(c == 's') { s = *adx; while(c = *s++) putchar(c); } if(c == 'c') putchar(*adx); adx++; goto loop; } /* * Print an unsigned integer in base b. * b must be a power of 2. */ printl(n, b) { int m; char *p; p = prbuf; m = b == 8 ? 11 : 8; while(m--){ *p++ = prch[n & (b-1)]; n =/ b; } while(--p >= prbuf) putchar(*p); } /* * Print a decimal integer. */ printn(n) { char *p; p = prbuf; if(n < 0){ n = -n; putchar('-'); } while(n){ *p++ = prch[n % 10]; n = n / 10; } if(p == prbuf) putchar('0'); else while(--p >= prbuf) putchar(*p); } putchar(c) { char cc; cc = c; write(fout,&cc,1); } int an unsigned integer in base b. * b must be a power of 2. */ printl(n, b) { int m; char *p; p = prbuf; m = b == 8 ? 11 : 8; while(m--){ *p++ = prch[n & (b-1)]; n =/ b; char *sys_errlist[] { "Error 0", "Not super-user", "No such file or directory", "No such process", "Interrupted system call", "I/O error", "No such device or address", "Arg list too long", "Exec format error", "Bad file number", "No children", "No more processes", "Not enough core", "Permission denied", "Error 14", "Block device required", "Mount device busy", "File exists", "Cross-device link", "No such device", "Not a directory", "Is a directory", "Invalid argument", "File table overflow", "Too many open files", "Not a typewriter", "Text file busy", "File too large", "No space left on device", "Illegal seek", "Read-only file system", "Too many links", "Broken Pipe", }; int sys_nerr 33; "Bad file number", "No children", "No more processes", "Not enough core", "Permission denied", "Error 14", "Block device required", "Mount device busy", "File exists", "Cross-device link", "No such device", "Not a directory", "Is a directory", "Invalid argument", "File table ov int (*qscmp)(); int qses; qsort(a, n, es, fc) char *a; int n, es; int (*fc)(); { qscmp = fc; qses = es; qs1(a, a+n*es); } qs1(a, l) char *a, *l; { register char *i, *j, *es; char *lp, *hp; int n, c; es = qses; start: if((n=l-a) <= es) return; n = ((n/(2*es))*es) & 077777; hp = lp = a+n; i = a; j = l-es; for(;;) { if(i < lp) { if((c = (*qscmp)(i, lp)) == 0) { qsexc(i, lp =- es); continue; } if(c < 0) { i =+ es; continue; } } loop: if(j > hp) { if((c = (*qscmp)(hp, j)) == 0) { qsexc(hp =+ es, j); goto loop; } if(c > 0) { if(i == lp) { qstexc(i, hp =+ es, j); i = lp =+ es; goto loop; } qsexc(i, j); j =- es; i =+ es; continue; } j =- es; goto loop; } if(i == lp) { if(lp-a >= l-hp) { qs1(hp+es, l); l = lp; } else { qs1(a, lp); a = hp+es; } goto start; } qstexc(j, lp =- es, i); j = hp =- es; } } qsexc(i, j) char *i, *j; { register char *ri, *rj, c; int n; n = qses; ri = i; rj = j; do { c = *ri; *ri++ = *rj; *rj++ = c; } while(--n); } qstexc(i, j, k) char *i, *j, *k; { register char *ri, *rj, *rk; char c; int n; n = qses; ri = i; rj = j; rk = k; do { c = *ri; *ri++ = *rk; *rk++ = *rj; *rj++ = c; } while(--n); } = l-hp) { qs1(hp+es, l); l = lp; } else { qs1(a, lp); a = hp+es; } goto start; } qstexc(j, lp =- es, i); j = hp =- es; } } qsexc(i, j) char *i, *j; { register char *ri, *rj, c;# char *dargv[] { "/dev/dsk0", 0 }; #define NINODE 16*IPERBLK #define NB 10 #include "../manifest.h" #include "../ino.h" #include "../filsys.h" extern struct inode inode[]; struct filsys sblock; int sflg; int fi; int nifiles; int nfile; int nspcl; int nlarg; int nvlarg; int nindir; int nvindir; int ndir; int nused; int nfree; int ino; int ndup; int blist[10] { -1}; int nerror; #define BMAPSZ 1024 extern int bmap[]; main(argc, argv) char **argv; { register char **p; register int n, *lp; if (argc == 1) { for (p = dargv; *p;) check(*p++); return(nerror); } while (--argc) { argv++; if (**argv=='-') switch ((*argv)[1]) { case 's': sflg++; continue; case 'b': lp = blist; while (lp < &blist[NB-1] && (n = number(argv[1]))) { *lp++ = n; argv++; argc--; } *lp++ = -1; continue; default: printf("Bad flag\n"); } check(*argv); } return(nerror); } check(file) char *file; { register *ip, i, j; fi = open(file, sflg?2:0); if (fi < 0) { printf("cannot open %s\n", file); nerror =| 04; return; } printf("%s:\n", file); nfile = 0; nspcl = 0; nlarg = 0; nvlarg = 0; nindir = 0; nvindir = 0; ndir = 0; nused = 0; nfree = 0; ndup = 0; for (ip = bmap; ip < &bmap[BMAPSZ];) *ip++ = 0; sync(); bread(1, &sblock, BLKSIZE); nifiles = sblock.s_isize*IPERBLK; for(i=0; ino < nifiles; i =+ NINODE/IPERBLK) { bread(i+2, inode, sizeof inode); for(j=0; ji_mode&IALLOC) == 0) return; if ((ip->i_mode&IFCHR&IFBLK) != 0) { nspcl++; return; } if ((ip->i_mode&IFMT) == IFDIR) ndir++; else nfile++; if ((ip->i_mode&ILARG) != 0) { nlarg++; for(i=0; ii_addr[i] != 0) { nindir++; if (chk(ip->i_addr[i], "indirect")) continue; bread(ip->i_addr[i], buf, BLKSIZE); for(j=0; ji_addr[IADDRSIZ-1]) { nvlarg++; if (chk(ip->i_addr[IADDRSIZ-1], "indirect")) return; bread(ip->i_addr[IADDRSIZ-1], buf, BLKSIZE); for(i=0; ii_addr[i] != 0) chk(ip->i_addr[i], "data (small)"); } } chk(ab, s) char *ab; { register char *b; register n, m; b = ab; if (ino) nused++; if (b=sblock.s_fsize) { printf("%l bad; inode=%l, class=%s\n", b, ino, s); return(1); } m = 1 << (b&037); n = (b>>5) & 0777777777; if (bmap[n]&m) { printf("%l dup; inode=%l, class=%s\n", b, ino, s); ndup++; } bmap[n] =| m; for (n=0; blist[n] != -1; n++) if (b == blist[n]) printf("%l arg; inode=%l, class=%s\n", b, ino, s); return(0); } alloc() { register b, i; int buf[BLKSIZEW]; i = --sblock.s_nfree; if (i<0 || i>=SFREESIZ) { printf("bad freeblock\n"); return(0); } b = sblock.s_free[i]; if (b == 0) return(0); if (sblock.s_nfree <= 0) { bread(b, buf, BLKSIZE); sblock.s_nfree = buf[0]; for(i=0; i= SFREESIZ) { buf[0] = sblock.s_nfree; for(i=0; i= '0' && c <= '9') { n = n*10+c-'0'; } return(n); } makefree() { register i; sblock.s_nfree = 0; sblock.s_ninode = 0; sblock.s_flock = 0; sblock.s_ilock = 0; sblock.s_fmod = 0; free(0); for(i=sblock.s_fsize-1; i>=sblock.s_isize+2; i--) { if ((bmap[(i>>5)&0777777777] & (1<<(i&037)))==0) free(i); } bwrite(1, &sblock); close(fi); sync(); return; } KSIZE) printf("write error %d\n", bno); } number(as) char *as; { register n, c; register char *s; s = as; n = 0; while ((c = *s++) >= '0' && c <= '9') { n = n*10+c-'0'; } return(n); } makefree() { register i; sblock.s_nfree = 0; sblock.s_ninode = 0; sblock.s_flock = 0; sblock.s_ilock = 0; sblock.s_fmod = 0; free(0); for(i=sblock.s_fsize-1; i>=sblock.s_isize+2; i--) { if ((bmap# char *dargv[] { "/dev/dsk0", 0 }; #define NINODE 16*IPERBLK #define NI 20 #include "../manifest.h" #include "../ino.h" #include "../filsys.h" struct inode inode[NINODE]; struct filsys sblock; int sflg; int headpr; int ilist[NI] { -1}; int fi; char *ecount; char *lasts; int ino; int nerror; int nfiles; main(argc, argv) char **argv; { register char **p; register int n, *lp; ecount = sbrk(0); if (argc == 1) { for (p = dargv; *p;) check(*p++); return(nerror); } while (--argc) { argv++; if (**argv=='-') switch ((*argv)[1]) { case 's': sflg++; continue; case 'i': lp = ilist; while (lp < &ilist[NI-1] && (n = number(argv[1]))) { *lp++ = n; argv++; argc--; } *lp++ = -1; continue; default: printf("Bad flag\n"); } check(*argv); } return(nerror); } check(file) char *file; { register i, j; fi = open(file, 0); if(fi < 0) { printf("cannot open %s\n", file); return; } headpr = 0; printf("%s:\n", file); sync(); bread(1, &sblock, BLKSIZE); nfiles = sblock.s_isize*IPERBLK; if (lasts < nfiles) { if ((sbrk(nfiles - lasts)) == -1) { printf("Not enough core\n"); exit(04); } lasts = nfiles; } for (i=0; ii_mode&IALLOC) == 0) return; if((ip->i_mode&IFMT) != IFDIR) return; doff = 0; while (dp = dread(ip, doff)) { doff =+ DIRENTSZ; inum = (dp[0]<<8)|dp[1]; if (inum==0) continue; for (i=0; ilist[i] != -1; i++) if (ilist[i]==inum) printf("%d arg; %d/%s\n", inum, ino, &dp[2]); ecount[inum]++; } } pass2(aip) { register struct inode *ip; register i; ip = aip; i = ino; if ((ip->i_mode&IALLOC)==0 && ecount[i]==0) return; if (ip->i_nlink==ecount[i] && ip->i_nlink!=0) return; if (headpr==0) { printf(" entries link cnt\n"); headpr++; } printf("%d %d %d\n", ino, ecount[i]&0377, ip->i_nlink&0377); } dread(aip, aoff) { register b, off; register struct inode *ip; static ibuf[BLKSIZEW]; static char buf[BLKSIZE]; off = aoff; ip = aip; if ((off%BLKSIZE)==0) { if (off==0177*BLKSIZE) { printf("Monstrous directory %d\n", ino); return(0); } if ((ip->i_mode&ILARG)==0) { if (off>=IADDRSIZ*BLKSIZE || (b = ip->i_addr[off/BLKSIZE])==0) return(0); bread(b, buf, BLKSIZE); } else { if (off==0) { if (ip->i_addr[0]==0) return(0); bread(ip->i_addr[0], ibuf, BLKSIZE); } if ((b = ibuf[(off/BLKSIZE)&0177])==0) return(0); bread(b, buf, BLKSIZE); } } return(&buf[off%BLKSIZE]); } bread(bno, buf, cnt) { seek(fi, bno, 3); if(read(fi, buf, cnt) != cnt) { printf("read error %d\n", bno); exit(); } } bwrite(bno, buf) { seek(fi, bno, 3); if(write(fi, buf, BLKSIZE) != BLKSIZE) { printf("write error %d\n", bno); exit(); } } number(as) char *as; { register n, c; register char *s; s = as; n = 0; while ((c = *s++) >= '0' && c <= '9') { n = n*10+c-'0'; } return(n); } f/BLKSIZE)&0177])==0) return(0); bread(b, buf, BLKSIZE); } } return(&buf[off%BLKSIZE]); } bread(bno, buf, cnt) { seek(fi, bno, 3); if(read(fi, buf, cnt) != cnt) { printf("read error %d# #include "../manifest.h" #include "../filsys.h" char *dargv[] { 0, "/dev/dsk0", 0 }; struct filsys sblock; int fi; main(argc, argv) char **argv; { int i; if(argc <= 1) { for(argc = 1; dargv[argc]; argc++); argv = dargv; } for(i=1; i 1) printf("%s ", argv[i]); dfree(argv[i]); } } dfree(file) char *file; { int i; fi = open(file, 0); if(fi < 0) { printf("cannot open %s\n", file); return; } sync(); bread(1, &sblock); i = 0; while(alloc()) i++; printf("%l\n", i); close(fi); } alloc() { int b, i, buf[256]; i = --sblock.s_nfree; if(i<0 || i>=SFREESIZ) { printf("bad free count\n"); return(0); } b = sblock.s_free[i]; if(b == 0) return(0); if(b=sblock.s_fsize) { printf("bad free block (%l)\n", b); return(0); } if(sblock.s_nfree <= 0) { bread(b, buf); sblock.s_nfree = buf[0]; for(i=0; i=sblock.s_fsize) { printf("bad free block (%l)\n", b); return(0); } if(sblock.s_nfree <= 0) { bread(b, buf); sblock.s_nfree = buf[0]; for(i=0; ii_mode&IALLOC)==0 || (ip->i_mode&IFMT)!=IFDIR) return; lookup(ino, 1); } pass2(ip) struct inode *ip; { register doff; register struct htab *hp; char *dp; int i,inum; if ((ip->i_mode&IALLOC)==0 || (ip->i_mode&IFMT)!=IFDIR) return; doff = 0; while (dp = dread(ip, doff)) { doff =+ DIRENTSZ; inum = (dp[0]<<8) | dp[1]; if (inum==0) continue; if ((hp = lookup(inum, 0)) == 0) continue; if (dotname(dp)) continue; hp->hpino = ino; for (i=0; ihname[i] = dp[i+2]; } } pass3(ip) struct inode *ip; { register doff; char *dp; int inum; register int *ilp; if ((ip->i_mode&IALLOC)==0 || (ip->i_mode&IFMT)!=IFDIR) return; doff = 0; while (dp = dread(ip, doff)) { doff =+ DIRENTSZ; inum = (dp[0]<<8) | dp[1]; if (inum==0) continue; if (aflg==0 && dotname(dp)) continue; for (ilp=ilist; *ilp >= 0; ilp++) if (*ilp == inum) break; if (ilp > ilist && *ilp!=inum) continue; printf("%d ", inum); pname(ino, 0); printf("/%s\n", &dp[2]); } } dotname(adp) { char *dp; dp = adp; if (dp[2] == '.') if (dp[3] == 0 || dp[3] == '.' && dp[4] == 0) return(1); return(0); } pname(i, lev) { register struct htab *hp; if (i==1) return; if ((hp = lookup(i, 0)) == 0) { printf("???"); return; } if (lev > 10) { printf("..."); return; } pname(hp->hpino, ++lev); printf("/%s", hp->hname); } lookup(i, ef) { register struct htab *hp; for (hp = &htab[i%NDIRS]; hp->hino;) { if (hp->hino==i) return(hp); if (++hp >= &htab[NDIRS]) hp = htab; } if (ef==0) return(0); if (++nhent >= NDIRS) { printf2("Out of core-- increase NDIRS\n"); flush(); exit(1); } hp->hino = i; return(hp); } dread(aip, aoff) { register b, off; register struct inode *ip; static ibuf[BLKSIZEW]; static char buf[BLKSIZE]; off = aoff; ip = aip; if ((off%BLKSIZE)==0) { if (off==0177*BLKSIZE) { printf2("Monstrous directory %l\n", ino); return(0); } if ((ip->i_mode&ILARG)==0) { if (off>=IADDRSIZ*BLKSIZE || (b = ip->i_addr[off/BLKSIZE])==0) return(0); bread(b, buf, BLKSIZE); } else { if (off==0) { if (ip->i_addr[0]==0) return(0); bread(ip->i_addr[0], ibuf, BLKSIZE); } if ((b = ibuf[(off/BLKSIZE)&0177])==0) return(0); bread(b, buf, BLKSIZE); } } return(&buf[off%BLKSIZE]); } bread(bno, buf, cnt) { seek(fi, bno, 3); if (read(fi, buf, cnt) != cnt) { printf2("read error %d\n", bno); exit(); } } bwrite(bno, buf) { seek(fi, bno, 3); if (write(fi, buf, BLKSIZE) != BLKSIZE) { printf2("write error %d\n", bno); exit(); } } number(as) char *as; { register n, c; register char *s; s = as; n = 0; while ((c = *s++) >= '0' && c <= '9') { n = n*10+c-'0'; } return(n); } printf2(s, a1, a2) { extern fout; flush(); fout = 2; printf(s, a1, a2); fout = nffil; flush(); } no, buf, cnt) { seek(fi, bno, 3); if (read(fi, buf, cnt) != cnt) { printf2("read error %d\n", bno); exit(); } } bwrite(bno, buf) { seek(fi, bno, 3); if (write(# main() { int tim,*localtime(); char *tzn; extern char *tzname[]; tim = time(); write(1, ctime(tim), 20); if(tzn = tzname[localtime(tim)[8]]) write(1, tzn, 3); write(1, ctime(tim)+19, 6); } /* * This routine converts time as follows. * The epoch is 0000 Jan 1 1970 GMT. * The argument time is in seconds since then. * The localtime(t) entry returns a pointer to an array * containing * seconds (0-59) * minutes (0-59) * hours (0-23) * day of month (1-31) * month (0-11) * year-1970 * weekday (0-6, Sun is 0) * day of the year * daylight savings flag * * The routine corrects for daylight saving * time and will work in any time zone provided * "timezone" is adjusted to the difference between * Greenwich and local standard time (measured in seconds). * In places like Michigan "daylight" must * be initialized to 0 to prevent the conversion * to daylight time. * There is a table which accounts for the peculiarities * undergone by daylight time in 1974-1975. * * The routine does not work * in Saudi Arabia which runs on Solar time. * * asctime(tvec)) * where tvec is produced by localtime * returns a ptr to a character string * that has the ascii time in the form * Thu Jan 01 00:00:00 1970n0\\ * 01234567890123456789012345 * 0 1 2 * * ctime(t) just calls localtime, then asctime. */ char cbuf[26]; int dmsize[12] { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; int timezone 5*60*60; int tzname[] { "EST", "EDT", }; int daylight 1; /* Allow daylight conversion */ /* * The following table is used for 1974 and 1975 and * gives the day number of the first day after the Sunday of the * change. */ struct { int daylb; int dayle; } daytab[] { 5, 333, /* 1974: Jan 6 - last Sun. in Nov */ 58, 303, /* 1975: Last Sun. in Feb - last Sun in Oct */ }; #define SEC 0 #define MIN 1 #define HOUR 2 #define MDAY 3 #define MON 4 #define YEAR 5 #define WDAY 6 #define YDAY 7 #define ISDAY 8 ctime(at) int *at; { return(asctime(localtime(at))); } localtime(tim) int tim; { register int t, *ct, dayno; int daylbegin, daylend; t = tim - timezone; ct = gmtime(t); dayno = ct[YDAY]; daylbegin = 119; /* last Sun in Apr */ daylend = 303; /* Last Sun in Oct */ if (ct[YEAR]==74 || ct[YEAR]==75) { daylbegin = daytab[ct[YEAR]-74].daylb; daylend = daytab[ct[YEAR]-74].dayle; } daylbegin = sunday(ct, daylbegin); daylend = sunday(ct, daylend); if (daylight && (dayno>daylbegin || (dayno==daylbegin && ct[HOUR]>=2)) && (dayno= 58) d =+ dysize(t[YEAR]) - 365; return(d - (d - t[YDAY] + t[WDAY] + 700) % 7); } gmtime(tim) int tim; { register int d0, d1; register *tp; static xtime[9]; /* * break initial number into * multiples of 8 hours. * (28800 = 60*60*8) */ d0 = tim / 28800; d1 = tim % 28800; tp = &xtime[0]; /* * generate hours:minutes:seconds */ *tp++ = d1%60; d1 =/ 60; *tp++ = d1%60; d1 =/ 60; d1 =+ (d0%3)*8; d0 =/ 3; *tp++ = d1; /* * d0 is the day number. * generate day of the week. */ xtime[WDAY] = (d0+4)%7; /* * year number */ for(d1=70; d0 >= dysize(d1); d1++) d0 =- dysize(d1); xtime[YEAR] = d1; xtime[YDAY] = d0; /* * generate month */ if (dysize(d1)==366) dmsize[1] = 29; for(d1=0; d0 >= dmsize[d1]; d1++) d0 =- dmsize[d1]; dmsize[1] = 28; *tp++ = d0+1; *tp++ = d1; xtime[ISDAY] = 0; return(xtime); } asctime(t) int *t; { register char *cp, *ncp; register int *tp; cp = cbuf; for (ncp = "Day Mon 00 00:00:00 1900\n"; *cp++ = *ncp++;); ncp = &"SunMonTueWedThuFriSat"[3*t[6]]; cp = cbuf; *cp++ = *ncp++; *cp++ = *ncp++; *cp++ = *ncp++; cp++; tp = &t[4]; ncp = &"JanFebMarAprMayJunJulAugSepOctNovDec"[(*tp)*3]; *cp++ = *ncp++; *cp++ = *ncp++; *cp++ = *ncp++; cp = ct_numb(cp, *--tp); cp = ct_numb(cp, *--tp+100); cp = ct_numb(cp, *--tp+100); cp = ct_numb(cp, *--tp+100); cp =+ 2; cp = ct_numb(cp, t[YEAR]); return(cbuf); } dysize(y) { if((y%4) == 0) return(366); return(365); } ct_numb(acp, n) { register char *cp; cp = acp; cp++; if (n>=10) *cp++ = (n/10)%10 + '0'; else *cp++ = ' '; *cp++ = n%10 + '0'; return(cp); } cp++; tp = &t[4]; ncp = &"JanFebMarAprMayJunJulAugSepOctNovDec"[(*tp)*3]; *cp++ = *ncp++; *cp++ = *ncp++; *cp++ = *ncp++; cp = ct_numb entry opdope entry defsym entry proflg entry mosflg entry regvar entry osleft entry nchstr entry strflg extrn notrel entry symbuf entry nerror entry eof entry ndp extrn machine extrn isn entry contlab entry swp entry initflg extrn mainftn entry hshused entry hgcurlo entry autolen extrn peeksym entry funcsym extrn isn1 codeloc litloc ltorg end ntry parame entry hshtab entry retlab entry paraml entry hgoffs extrn maprel entry nstack entry nfloat c05 startup dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc swtab dc 1600x'00' codeloc dataloc codeloc dataloc codeloc dataloc machine dc 4x'00' codeloc lookup PROLOG 0 sr 2,2 st 2,64(HGAUTOP) l 2,=f'1' st 2,84(HGAUTOP) sr 2,2 st 2,88(HGAUTOP) l 2,@symbuf st 2,72(HGAUTOP) $2 equ * l 2,@symbuf a 2,=f'8' c 2,72(HGAUTOP) bnh $3 l 2,72(HGAUTOP) lr 0,2 a 0,=f'1' st 0,72(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 n 2,=f'255' a 2,64(HGAUTOP) st 2,64(HGAUTOP) B $2 $3 equ * l 4,64(HGAUTOP) srda 4,32 d 4,=f'400' lr 3,4 m 2,=f'28' a 3,@hshtab st 3,68(HGAUTOP) $4 equ * l 2,68(HGAUTOP) a 2,=f'20' st 2,76(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 ltr 2,2 be $5 l 2,84(HGAUTOP) c 2,=f'1' bne $6 l 2,68(HGAUTOP) l 2,16(2) n 2,=f'4' c 2,=f'4' bne $6 l 2,68(HGAUTOP) l 2,16(2) n 2,=f'1' ltr 2,2 bne $6 l 2,68(HGAUTOP) st 2,80(HGAUTOP) sr 2,2 st 2,84(HGAUTOP) $6 equ * l 2,@symbuf st 2,72(HGAUTOP) $7 equ * l 2,@symbuf a 2,=f'8' c 2,72(HGAUTOP) bnh $8 l 2,76(HGAUTOP) lr 0,2 a 0,=f'1' st 0,76(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 n 2,=f'255' l 3,72(HGAUTOP) lr 0,3 a 0,=f'1' st 0,72(HGAUTOP) sr 1,1 ic 1,0(3) lr 3,1 cr 2,3 bne $9 B $7 $8 equ * l 2,68(HGAUTOP) l 2,16(2) n 2,=f'4' c 2,=f'4' be $10 l 2,68(HGAUTOP) lr 0,2 B $1 $9 equ * l 2,=f'1' a 2,88(HGAUTOP) st 2,88(HGAUTOP) c 2,=f'400' bnl $11 l 2,=f'28' a 2,68(HGAUTOP) st 2,68(HGAUTOP) l 3,@hshtab a 3,=f'11200' cr 2,3 bl $12 l 2,@hshtab st 2,68(HGAUTOP) $12 equ * B $4 $5 equ * $11 equ * l 2,84(HGAUTOP) ltr 2,2 bne $13 l 2,80(HGAUTOP) st 2,68(HGAUTOP) $13 equ * $10 equ * l 2,@hshused l 0,0(2) a 0,=f'1' st 0,0(2) lr 2,0 c 2,=f'400' bl $14 strgloc $15 dc x'E2A89482969340A3818293854096A58599869396A6' dc x'00' codeloc la 2,$15 st 2,0(HGARGP) lfunc 15,@error la 1,4 BCALL l 2,=f'1' st 2,0(HGARGP) lfunc 15,@cexit la 1,4 BCALL $14 equ * sr 2,2 l 1,68(HGAUTOP) st 2,0(1) l 2,68(HGAUTOP) sr 3,3 st 3,4(2) lr 2,3 l 2,68(HGAUTOP) sr 3,3 st 3,12(2) lr 2,3 l 2,68(HGAUTOP) sr 3,3 st 3,8(2) lr 2,3 l 2,68(HGAUTOP) sr 3,3 st 3,16(2) lr 2,3 l 2,@symbuf st 2,72(HGAUTOP) l 1,@xdflg l 2,0(1) ltr 2,2 be $16 l 2,68(HGAUTOP) l 0,16(2) o 0,=f'8' st 0,16(2) lr 2,0 $16 equ * l 2,68(HGAUTOP) a 2,=f'20' st 2,76(HGAUTOP) $17 equ * l 2,@symbuf a 2,=f'8' c 2,72(HGAUTOP) bnh $18 l 2,76(HGAUTOP) lr 0,2 a 0,=f'1' st 0,76(HGAUTOP) l 3,72(HGAUTOP) lr 0,3 a 0,=f'1' st 0,72(HGAUTOP) sr 1,1 ic 1,0(3) lr 3,1 stc 3,0(2) lr 2,3 B $17 $18 equ * l 2,68(HGAUTOP) lr 0,2 B $1 $1 EPILOG 0,92 DC C'END lookup' symbol PROLOG 0 dataloc $20 equ * dc 32x'00' codeloc l 1,@peeksym l 2,0(1) ltr 2,2 bl $21 l 1,@peeksym l 2,0(1) st 2,64(HGAUTOP) l 2,=f'-1' l 1,@peeksym st 2,0(1) l 2,64(HGAUTOP) c 2,=f'20' bne $22 sr 2,2 l 1,@mosflg st 2,0(1) $22 equ * l 2,64(HGAUTOP) lr 0,2 B $19 $21 equ * l 1,@peekc l 2,0(1) ltr 2,2 be $23 l 1,@peekc l 2,0(1) st 2,64(HGAUTOP) sr 2,2 l 1,@peekc st 2,0(1) B $24 $23 equ * l 1,@eof l 2,0(1) ltr 2,2 be $25 sr 2,2 lr 0,2 B $19 $25 equ * lfunc 15,@getchar la 1,0 BCALL st 0,64(HGAUTOP) $24 equ * $26 equ * l 2,64(HGAUTOP) st 2,0(HGARGP) lfunc 15,@getctab la 1,4 BCALL B $28 $29 equ * l 2,=f'1' l 1,@inhdr st 2,0(1) lfunc 15,@getchar la 1,0 BCALL st 0,64(HGAUTOP) B $26 $30 equ * l 1,@inhdr l 2,0(1) ltr 2,2 bne $31 l 2,@line l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 $31 equ * sr 2,2 l 1,@inhdr st 2,0(1) $32 equ * lfunc 15,@getchar la 1,0 BCALL st 0,64(HGAUTOP) B $26 $33 equ * l 2,@eof l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 sr 2,2 lr 0,2 B $19 $34 equ * l 2,64(HGAUTOP) st 2,0(HGARGP) l 2,=f'40' st 2,4(HGARGP) l 2,=f'30' st 2,8(HGARGP) lfunc 15,@subseq la 1,12 BCALL B $19 $35 equ * l 2,64(HGAUTOP) st 2,0(HGARGP) l 2,=f'110' st 2,4(HGARGP) l 2,=f'41' st 2,8(HGARGP) l 2,=f'50' st 2,12(HGARGP) lfunc 15,@subseq la 1,12 la HGARGP,4(HGARGP) BCALL s HGARGP,=f'4' st 0,4(HGARGP) l 2,=f'31' st 2,8(HGARGP) lfunc 15,@subseq la 1,12 BCALL B $19 $36 equ * l 2,=f'64' st 2,0(HGARGP) sr 2,2 st 2,4(HGARGP) l 2,=f'1' st 2,8(HGARGP) lfunc 15,@subseq la 1,12 BCALL ltr 0,0 be $37 l 2,=f'80' lr 0,2 B $19 $37 equ * lfunc 15,@symbol la 1,0 BCALL st 0,64(HGAUTOP) l 2,64(HGAUTOP) c 2,=f'40' bl $38 l 2,64(HGAUTOP) c 2,=f'49' bh $38 l 2,64(HGAUTOP) a 2,=f'30' lr 0,2 B $19 $38 equ * l 2,64(HGAUTOP) c 2,=f'80' bne $39 l 2,=f'60' lr 0,2 B $19 $39 equ * l 2,64(HGAUTOP) l 1,@peeksym st 2,0(1) l 2,=f'80' lr 0,2 B $19 $40 equ * l 2,64(HGAUTOP) st 2,0(HGARGP) sr 2,2 st 2,4(HGARGP) l 2,=f'1' st 2,8(HGARGP) lfunc 15,@subseq la 1,12 BCALL ltr 0,0 be $41 l 2,=f'46' lr 0,2 B $19 $41 equ * l 2,=f'126' st 2,0(HGARGP) l 2,=f'63' st 2,4(HGARGP) l 2,=f'62' st 2,8(HGARGP) lfunc 15,@subseq la 1,12 BCALL B $19 $42 equ * l 2,64(HGAUTOP) st 2,0(HGARGP) sr 2,2 st 2,4(HGARGP) l 2,=f'1' st 2,8(HGARGP) lfunc 15,@subseq la 1,12 BCALL ltr 0,0 be $43 l 2,=f'45' lr 0,2 B $19 $43 equ * l 2,=f'126' st 2,0(HGARGP) l 2,=f'65' st 2,4(HGARGP) l 2,=f'64' st 2,8(HGARGP) lfunc 15,@subseq la 1,12 BCALL B $19 $44 equ * l 2,=f'126' st 2,0(HGARGP) l 2,=f'34' st 2,4(HGARGP) l 2,=f'61' st 2,8(HGARGP) lfunc 15,@subseq la 1,12 BCALL B $19 $45 equ * l 2,=f'92' st 2,0(HGARGP) l 2,=f'1' st 2,4(HGARGP) sr 2,2 st 2,8(HGARGP) lfunc 15,@subseq la 1,12 BCALL ltr 0,0 be $46 l 2,=f'43' lr 0,2 B $19 $46 equ * $47 equ * lfunc 15,@getchar la 1,0 BCALL st 0,64(HGAUTOP) $48 equ * l 2,64(HGAUTOP) lr 0,2 B $50 $51 equ * l 2,@eof l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 strgloc $52 dc x'D59695A3859994899581A3858440839694948595A3' dc x'00' codeloc la 2,$52 st 2,0(HGARGP) lfunc 15,@error la 1,4 BCALL sr 2,2 lr 0,2 B $19 $53 equ * l 1,@inhdr l 2,0(1) ltr 2,2 bne $54 l 2,@line l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 $54 equ * sr 2,2 l 1,@inhdr st 2,0(1) B $47 $55 equ * l 2,@inhdr l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 $56 equ * B $47 $57 equ * lfunc 15,@getchar la 1,0 BCALL st 0,64(HGAUTOP) l 2,64(HGAUTOP) c 2,=f'97' bne $48 B $49 $50 equ * la 1,4 put 4 into r1 la 2,0 zero r2 $10002 c 2,$10001-4(1) is addr 0 ? be $10003+4 c 0,$10001(1) is case satisfied ? be $10003 la 1,8(1) bump r1 by 8 b $10002 $10003 s 1,=f'4' l 2,$10001(1) br 2 dataloc cnop 0,4 $10001 equ * dc a($51) dc f'0' dc a($55) dc f'1' dc a($53) dc f'37' dc a($57) dc f'92' dc f'0' dc a($56) codeloc * End of switch code. $49 equ * lfunc 15,@getchar la 1,0 BCALL st 0,64(HGAUTOP) B $26 $58 equ * lfunc 15,@getchar la 1,0 BCALL st 0,64(HGAUTOP) l 2,64(HGAUTOP) c 2,=f'240' bl $59 l 2,64(HGAUTOP) c 2,=f'249' bh $59 l 2,=f'75' stc 2,$20 l 2,=f'1' st 2,76(HGAUTOP) B $60 $59 equ * l 2,64(HGAUTOP) l 1,@peekc st 2,0(1) l 2,=f'39' lr 0,2 B $19 $61 equ * sr 2,2 l 1,@cval st 2,0(1) sr 2,2 st 2,76(HGAUTOP) l 2,64(HGAUTOP) c 2,=f'240' bne $10004 l 2,=f'8' B $10005 $10004 equ * l 2,=f'10' $10005 equ * st 2,72(HGAUTOP) $62 equ * l 2,64(HGAUTOP) c 2,=f'240' bl $63 l 2,64(HGAUTOP) c 2,=f'249' bh $63 l 1,@cval l 3,0(1) m 2,72(HGAUTOP) a 3,64(HGAUTOP) a 3,=f'-240' l 1,@cval st 3,0(1) l 2,76(HGAUTOP) lr 0,2 a 0,=f'1' st 0,76(HGAUTOP) la 3,$20 ar 2,3 l 3,64(HGAUTOP) stc 3,0(2) lr 2,3 lfunc 15,@getchar la 1,0 BCALL st 0,64(HGAUTOP) B $62 $63 equ * l 2,64(HGAUTOP) c 2,=f'75' be $60 l 2,64(HGAUTOP) c 2,=f'132' be $60 l 2,64(HGAUTOP) c 2,=f'196' be $60 l 2,64(HGAUTOP) c 2,=f'133' be $60 l 2,64(HGAUTOP) c 2,=f'197' be $60 l 2,64(HGAUTOP) l 1,@peekc st 2,0(1) l 2,=f'21' lr 0,2 B $19 $60 equ * sr 2,2 st 2,80(HGAUTOP) $64 equ * l 2,64(HGAUTOP) lr 0,2 B $68 $69 equ * $70 equ * $71 equ * $72 equ * $73 equ * $74 equ * $75 equ * $76 equ * $77 equ * $78 equ * $79 equ * l 2,76(HGAUTOP) lr 0,2 a 0,=f'1' st 0,76(HGAUTOP) la 3,$20 ar 2,3 l 3,64(HGAUTOP) stc 3,0(2) lr 2,3 l 2,80(HGAUTOP) ltr 2,2 be $80 l 2,=f'2' st 2,80(HGAUTOP) $80 equ * B $66 $81 equ * $82 equ * $83 equ * $84 equ * l 2,76(HGAUTOP) lr 0,2 a 0,=f'1' st 0,76(HGAUTOP) la 3,$20 ar 2,3 l 3,=f'108' stc 3,0(2) lr 2,3 l 2,76(HGAUTOP) lr 0,2 a 0,=f'1' st 0,76(HGAUTOP) la 3,$20 ar 2,3 l 3,=f'131' stc 3,0(2) lr 2,3 l 2,80(HGAUTOP) ltr 2,2 be $85 strgloc $86 dc x'899393858781934086939681A38995874097968995A3408396' dc x'95A2A38195A3' dc x'00' codeloc la 2,$86 st 2,0(HGARGP) lfunc 15,@error la 1,4 BCALL $85 equ * l 2,=f'1' st 2,80(HGAUTOP) B $66 $87 equ * $88 equ * l 2,80(HGAUTOP) c 2,=f'1' bne $89 l 2,76(HGAUTOP) lr 0,2 a 0,=f'1' st 0,76(HGAUTOP) la 3,$20 ar 2,3 l 3,64(HGAUTOP) stc 3,0(2) lr 2,3 B $66 $89 equ * B $67 $68 equ * la 1,4 put 4 into r1 la 2,0 zero r2 $10008 c 2,$10007-4(1) is addr 0 ? be $10009+4 c 0,$10007(1) is case satisfied ? be $10009 la 1,8(1) bump r1 by 8 b $10008 $10009 s 1,=f'4' l 2,$10007(1) br 2 dataloc cnop 0,4 $10007 equ * dc a($79) dc f'75' dc a($87) dc f'78' dc a($88) dc f'96' dc a($81) dc f'132' dc a($83) dc f'133' dc a($82) dc f'196' dc a($84) dc f'197' dc a($78) dc f'240' dc a($69) dc f'241' dc a($70) dc f'242' dc a($71) dc f'243' dc a($72) dc f'244' dc a($73) dc f'245' dc a($74) dc f'246' dc a($75) dc f'247' dc a($76) dc f'248' dc a($77) dc f'249' dc f'0' dc a($67) codeloc * End of switch code. $67 equ * B $65 $66 equ * lfunc 15,@getchar la 1,0 BCALL st 0,64(HGAUTOP) B $64 $65 equ * l 2,80(HGAUTOP) ltr 2,2 bne $90 l 2,76(HGAUTOP) lr 0,2 a 0,=f'1' st 0,76(HGAUTOP) la 3,$20 ar 2,3 l 3,=f'108' stc 3,0(2) lr 2,3 l 2,76(HGAUTOP) lr 0,2 a 0,=f'1' st 0,76(HGAUTOP) la 3,$20 ar 2,3 l 3,=f'131' stc 3,0(2) lr 2,3 l 2,76(HGAUTOP) lr 0,2 a 0,=f'1' st 0,76(HGAUTOP) la 3,$20 ar 2,3 l 3,=f'240' stc 3,0(2) lr 2,3 $90 equ * l 2,64(HGAUTOP) l 1,@peekc st 2,0(1) l 2,76(HGAUTOP) lr 0,2 a 0,=f'1' st 0,76(HGAUTOP) la 3,$20 ar 2,3 sr 3,3 stc 3,0(2) lr 2,3 la 2,$20 l 1,@fcval st 2,0(1) l 2,=f'23' lr 0,2 B $19 $91 equ * l 2,=f'22' lr 0,2 B $19 $92 equ * lfunc 15,@getcc la 1,0 BCALL B $19 $93 equ * l 2,@symbuf st 2,68(HGAUTOP) l 1,@mosflg l 2,0(1) ltr 2,2 be $94 l 2,68(HGAUTOP) lr 0,2 a 0,=f'1' st 0,68(HGAUTOP) l 3,=f'75' stc 3,0(2) lr 2,3 sr 2,2 l 1,@mosflg st 2,0(1) $94 equ * $95 equ * l 2,64(HGAUTOP) st 2,0(HGARGP) lfunc 15,@getctab la 1,4 BCALL c 0,=f'123' be $10010 l 2,64(HGAUTOP) st 2,0(HGARGP) lfunc 15,@getctab la 1,4 BCALL c 0,=f'124' bne $96 $10010 equ * l 2,64(HGAUTOP) c 2,=f'109' bne $97 l 2,=f'123' st 2,64(HGAUTOP) $97 equ * l 2,@symbuf a 2,=f'8' c 2,68(HGAUTOP) bnh $98 l 2,68(HGAUTOP) lr 0,2 a 0,=f'1' st 0,68(HGAUTOP) l 3,64(HGAUTOP) stc 3,0(2) lr 2,3 $98 equ * lfunc 15,@getchar la 1,0 BCALL st 0,64(HGAUTOP) B $95 $96 equ * $99 equ * l 2,@symbuf a 2,=f'8' c 2,68(HGAUTOP) bnh $100 l 2,68(HGAUTOP) lr 0,2 a 0,=f'1' st 0,68(HGAUTOP) sr 3,3 stc 3,0(2) lr 2,3 B $99 $100 equ * l 2,64(HGAUTOP) l 1,@peekc st 2,0(1) lfunc 15,@lookup la 1,0 BCALL l 1,@csym st 0,0(1) l 1,@csym l 2,0(1) l 2,0(2) c 2,=f'1' bne $101 l 1,@csym l 2,0(1) l 2,4(2) c 2,=f'29' bne $102 l 2,=f'29' lr 0,2 B $19 $102 equ * l 1,@csym l 2,0(1) l 2,4(2) l 1,@cval st 2,0(1) l 2,=f'19' lr 0,2 B $19 $101 equ * l 2,=f'20' lr 0,2 B $19 $103 equ * l 2,=f'80' st 2,0(HGARGP) l 2,=f'47' st 2,4(HGARGP) l 2,=f'53' st 2,8(HGARGP) lfunc 15,@subseq la 1,12 BCALL B $19 $104 equ * l 2,=f'79' st 2,0(HGARGP) l 2,=f'48' st 2,4(HGARGP) l 2,=f'54' st 2,8(HGARGP) lfunc 15,@subseq la 1,12 BCALL B $19 $105 equ * strgloc $106 dc x'E495929596A69540838881998183A38599' dc x'00' codeloc la 2,$106 st 2,0(HGARGP) lfunc 15,@error la 1,4 BCALL lfunc 15,@getchar la 1,0 BCALL st 0,64(HGAUTOP) B $26 B $27 $28 equ * la 1,4 put 4 into r1 la 2,0 zero r2 $10013 c 2,$10012-4(1) is addr 0 ? be $10014+4 c 0,$10012(1) is case satisfied ? be $10014 la 1,8(1) bump r1 by 8 b $10013 $10014 s 1,=f'4' l 2,$10012(1) br 2 dataloc cnop 0,4 $10012 equ * dc a($33) dc f'0' dc a($44) dc f'34' dc a($34) dc f'40' dc a($35) dc f'41' dc a($45) dc f'43' dc a($103) dc f'47' dc a($104) dc f'48' dc a($40) dc f'63' dc a($42) dc f'65' dc a($36) dc f'80' dc a($29) dc f'119' dc a($58) dc f'120' dc a($92) dc f'121' dc a($91) dc f'122' dc a($93) dc f'123' dc a($61) dc f'124' dc a($30) dc f'125' dc a($32) dc f'126' dc a($105) dc f'127' dc f'0' dc a($27) codeloc * End of switch code. $27 equ * l 2,64(HGAUTOP) st 2,0(HGARGP) lfunc 15,@getctab la 1,4 BCALL B $19 $19 EPILOG 0,84 DC C'END symbol' subseq PROLOG 3 l 1,@peekc l 2,0(1) ltr 2,2 bne $108 lfunc 15,@getchar la 1,0 BCALL l 1,@peekc st 0,0(1) $108 equ * l 1,@peekc l 2,0(1) c 2,0(HGAUTOP) be $109 l 2,4(HGAUTOP) lr 0,2 B $107 $109 equ * sr 2,2 l 1,@peekc st 2,0(1) l 2,8(HGAUTOP) lr 0,2 B $107 $107 EPILOG 3,76 DC C'END subseq' getstr PROLOG 0 l 2,=f'1' l 1,@nchstr st 2,0(1) strgloc $111 dc x'5B6C84' dc x'00' codeloc la 2,$111 st 2,0(HGARGP) l 2,@isn l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 l 1,@cval st 2,0(1) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL strgloc $112 dc x'05848305A77D' dc x'00' codeloc la 2,$112 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL sr 2,2 st 2,68(HGAUTOP) $113 equ * l 2,=f'127' st 2,0(HGARGP) lfunc 15,@mapch la 1,4 BCALL st 0,64(HGAUTOP) ltr 0,0 bl $114 l 2,68(HGAUTOP) c 2,=f'25' bl $115 sr 2,2 st 2,68(HGAUTOP) strgloc $116 dc x'7D2505848305A77D' dc x'00' codeloc la 2,$116 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL $115 equ * strgloc $117 dc x'6CF0F2A7' dc x'00' codeloc la 2,$117 st 2,0(HGARGP) l 2,64(HGAUTOP) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL l 2,@nchstr l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 l 2,68(HGAUTOP) lr 0,2 a 0,=f'1' st 0,68(HGAUTOP) B $113 $114 equ * l 1,@nchstr l 2,0(1) c 2,=f'1' bh $118 strgloc $119 dc x'F0F0' dc x'00' codeloc la 2,$119 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL $118 equ * strgloc $120 dc x'7D402505848305A77DF0F07D4025' dc x'00' codeloc la 2,$120 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL $110 EPILOG 0,72 DC C'END getstr' getcc PROLOG 0 sr 2,2 l 1,@cval st 2,0(1) sr 2,2 st 2,68(HGAUTOP) $122 equ * l 2,=f'125' st 2,0(HGARGP) lfunc 15,@mapch la 1,4 BCALL st 0,64(HGAUTOP) ltr 0,0 bl $123 l 2,68(HGAUTOP) lr 0,2 a 0,=f'1' st 0,68(HGAUTOP) l 2,68(HGAUTOP) c 2,=f'2' bh $124 l 1,@cval l 2,0(1) sll 2,8 a 2,64(HGAUTOP) l 1,@cval st 2,0(1) $124 equ * B $122 $123 equ * l 2,68(HGAUTOP) c 2,=f'2' bnh $125 strgloc $126 dc x'D396958740838881998183A3859940839695A2A38195A3' dc x'00' codeloc la 2,$126 st 2,0(HGARGP) lfunc 15,@error la 1,4 BCALL $125 equ * l 2,=f'21' lr 0,2 B $121 $121 EPILOG 0,72 DC C'END getcc' mapch PROLOG 1 l 2,0(HGAUTOP) st 2,72(HGAUTOP) $128 equ * lfunc 15,@getchar la 1,0 BCALL st 0,68(HGAUTOP) c 0,72(HGAUTOP) bne $129 l 2,=f'-1' lr 0,2 B $127 $129 equ * l 2,68(HGAUTOP) lr 0,2 B $131 $132 equ * $133 equ * strgloc $134 dc x'D59695A3859994899581A3858440A2A399899587' dc x'00' codeloc la 2,$134 st 2,0(HGARGP) lfunc 15,@error la 1,4 BCALL l 2,68(HGAUTOP) l 1,@peekc st 2,0(1) l 2,=f'-1' lr 0,2 B $127 $135 equ * lfunc 15,@getchar la 1,0 BCALL st 0,68(HGAUTOP) B $137 $138 equ * l 2,=f'5' lr 0,2 B $127 $139 equ * l 2,=f'37' lr 0,2 B $127 $140 equ * l 2,=f'22' lr 0,2 B $127 $141 equ * sr 2,2 lr 0,2 B $127 $142 equ * l 2,=f'13' lr 0,2 B $127 $143 equ * l 1,@inhdr l 2,0(1) ltr 2,2 bne $144 l 2,@line l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 $144 equ * sr 2,2 l 1,@inhdr st 2,0(1) B $128 B $136 $137 equ * la 1,4 put 4 into r1 la 2,0 zero r2 $10017 c 2,$10016-4(1) is addr 0 ? be $10018+4 c 0,$10016(1) is case satisfied ? be $10018 la 1,8(1) bump r1 by 8 b $10017 $10018 s 1,=f'4' l 2,$10016(1) br 2 dataloc cnop 0,4 $10016 equ * dc a($143) dc f'37' dc a($140) dc f'130' dc a($139) dc f'149' dc a($142) dc f'153' dc a($138) dc f'163' dc a($141) dc f'240' dc f'0' dc a($136) codeloc * End of switch code. $136 equ * B $130 $131 equ * la 1,4 put 4 into r1 la 2,0 zero r2 $10021 c 2,$10020-4(1) is addr 0 ? be $10022+4 c 0,$10020(1) is case satisfied ? be $10022 la 1,8(1) bump r1 by 8 b $10021 $10022 s 1,=f'4' l 2,$10020(1) br 2 dataloc cnop 0,4 $10020 equ * dc a($133) dc f'0' dc a($132) dc f'37' dc a($135) dc f'224' dc f'0' dc a($130) codeloc * End of switch code. $130 equ * l 2,machine c 2,=f'1' bne $145 l 2,@atoe a 2,68(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 n 2,=f'255' st 2,72(HGAUTOP) l 2,72(HGAUTOP) lr 0,2 B $127 B $146 $145 equ * l 2,68(HGAUTOP) lr 0,2 B $127 $146 equ * $127 EPILOG 1,76 DC C'END mapch' getctab PROLOG 1 l 2,machine ltr 2,2 bne $148 l 2,@etoa a 2,0(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 a 2,@ctab sr 1,1 ic 1,0(2) lr 2,1 lr 0,2 B $147 $148 equ * l 2,@ctab a 2,0(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 lr 0,2 B $147 $147 EPILOG 1,68 DC C'END getctab' tvecloc @ctab EXTADDR ctab @fflg EXTADDR fflg @cone EXTADDR cone @cval EXTADDR cval @endp EXTADDR endp @line EXTADDR line @dimp EXTADDR dimp @etoa EXTADDR etoa @nreg EXTADDR nreg @atoe EXTADDR atoe @mainfil EXTADDR mainfile @cmst EXTADDR cmst @treebas EXTADDR treebase @csym EXTADDR csym @hgcurlo EXTADDR hgcurloc @functio EXTADDR function @cctab EXTADDR cctab entry getcc @getcc INTFUNC getcc @peekc EXTADDR peekc entry mapch @mapch INTFUNC mapch @space EXTADDR space @fcval EXTADDR fcval @cvtab EXTADDR cvtab @xdflg EXTADDR xdflg @inhdr EXTADDR inhdr @cexit EXTFUNC cexit @ftern EXTADDR ftern entry swtab @swtab INTADDR swtab @czero EXTADDR czero @error EXTFUNC error @xtern EXTADDR xtern @deflab EXTADDR deflab @cp EXTADDR cp @efftab EXTADDR efftab @brklab EXTADDR brklab @dimtab EXTADDR dimtab @regtab EXTADDR regtab @parame EXTADDR parame @hshtab EXTADDR hshtab @retlab EXTADDR retlab @paraml EXTADDR paraml @hgoffs EXTADDR hgoffs @maprel EXTADDR maprel @nstack EXTADDR nstack @nfloat EXTADDR nfloat @opdope EXTADDR opdope @defsym EXTADDR defsym @proflg EXTADDR proflg @mosflg EXTADDR mosflg @regvar EXTADDR regvar @osleft EXTADDR osleft @nchstr EXTADDR nchstr @strflg EXTADDR strflg @notrel EXTADDR notrel @symbuf EXTADDR symbuf @nerror EXTADDR nerror entry symbol @symbol INTFUNC symbol entry lookup @lookup INTFUNC lookup entry subseq @subseq INTFUNC subseq entry getstr @getstr INTFUNC getstr @printf EXTFUNC printf @eof EXTADDR eof @ndp EXTADDR ndp entry machine @machine INTADDR machine @isn EXTADDR isn entry getctab @getctab INTFUNC getctab @getchar EXTFUNC getchar @contlab EXTADDR contlab @swp EXTADDR swp @initflg EXTADDR initflg @mainftn EXTADDR mainftn @hshused EXTADDR hshused @autolen EXTADDR autolen @peeksym EXTADDR peeksym @funcsym EXTADDR funcsym @isn1 EXTADDR isn1 codeloc litloc ltorg end TFUNC lookup entry subseq @subseq INTFUNC subseq entry getstr @getstr INTFUNC getstr @printf EXTFUNC printf @eof EXTADDR eof @ndp EXTADDR ndp entry machine @machine INTADDR machine @isn EXTADDR isn entry getctab @getctab INTFUNC getctab @getchar EXTFUNC getchar @contlab EXTADDR contlab @swp EXTADDR swp @initflg EXTADDR initflg @mainftn EXTADDR mainftn @hshused EXTADDR hshused @autolen EXTADDR autolen @peeksym EXTADDR peeksym @funcsym EXTADDR funcsym @isn1 EXc10 startup dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc cnop 0,4 hdebug equ * dc f'0' cnop 0,4 codeloc dataloc maprel equ * dc x'3C' dc x'3D' dc x'40' dc x'41' dc x'3E' dc x'3F' dc x'44' dc x'45' dc x'42' dc x'43' cnop 0,4 codeloc dataloc notrel equ * dc x'3D' dc x'3C' dc x'41' dc x'40' dc x'3F' dc x'3E' dc x'45' dc x'44' dc x'43' dc x'42' cnop 0,4 codeloc dataloc cnop 0,4 nreg equ * dc f'7' cnop 0,4 codeloc dataloc cnop 0,4 flreg equ * dc f'0' cnop 0,4 codeloc dataloc treebase dc 4x'00' codeloc dataloc codeloc match PROLOG 3 l 2,0(HGAUTOP) st 2,112(HGAUTOP) ltr 2,2 bne $2 sr 2,2 lr 0,2 B $1 $2 equ * l 1,112(HGAUTOP) l 2,0(1) st 2,76(HGAUTOP) l 2,76(HGAUTOP) sll 2,2 a 2,@opdope l 2,0(2) st 2,96(HGAUTOP) l 2,112(HGAUTOP) st 2,0(HGARGP) lfunc 15,@isfloat la 1,4 BCALL ltr 0,0 be $3 l 2,76(HGAUTOP) c 2,=f'44' be $10000 l 2,76(HGAUTOP) c 2,=f'74' bne $4 $10000 equ * sr 2,2 lr 0,2 B $1 $4 equ * $3 equ * l 2,96(HGAUTOP) n 2,=f'256' ltr 2,2 bne $5 l 2,112(HGAUTOP) l 2,12(2) st 2,108(HGAUTOP) B $6 $5 equ * l 2,112(HGAUTOP) st 2,108(HGAUTOP) $6 equ * l 2,108(HGAUTOP) l 2,4(2) st 2,88(HGAUTOP) l 2,108(HGAUTOP) st 2,0(HGARGP) l 2,8(HGAUTOP) st 2,4(HGARGP) lfunc 15,@dcalc la 1,8 BCALL st 0,80(HGAUTOP) l 2,hdebug c 2,=f'100' bnh $7 strgloc $8 dc x'84F17E6C8425' dc x'00' codeloc la 2,$8 st 2,0(HGARGP) l 2,80(HGAUTOP) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL $7 equ * l 2,96(HGAUTOP) n 2,=f'1' ltr 2,2 be $9 l 2,112(HGAUTOP) l 2,16(2) st 2,104(HGAUTOP) l 2,104(HGAUTOP) l 2,4(2) st 2,92(HGAUTOP) l 2,104(HGAUTOP) st 2,0(HGARGP) l 2,8(HGAUTOP) st 2,4(HGARGP) lfunc 15,@dcalc la 1,8 BCALL st 0,84(HGAUTOP) l 2,hdebug c 2,=f'100' bnh $10 strgloc $11 dc x'84F27E6C8425' dc x'00' codeloc la 2,$11 st 2,0(HGARGP) l 2,84(HGAUTOP) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL $10 equ * $9 equ * $12 equ * l 1,4(HGAUTOP) l 2,0(1) c 2,76(HGAUTOP) be $13 l 1,4(HGAUTOP) l 2,0(1) ltr 2,2 bne $15 sr 2,2 lr 0,2 B $1 $15 equ * $14 equ * l 2,4(HGAUTOP) lr 0,2 a 0,=f'8' st 0,4(HGAUTOP) B $12 $13 equ * l 2,hdebug c 2,=f'100' bnh $16 strgloc $17 dc x'A381829385606EA3818296977E6C8425' dc x'00' codeloc la 2,$17 st 2,0(HGARGP) l 1,4(HGAUTOP) l 2,0(1) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL $16 equ * l 2,4(HGAUTOP) l 2,4(2) st 2,116(HGAUTOP) $18 equ * l 1,116(HGAUTOP) l 2,0(1) ltr 2,2 be $19 l 2,hdebug c 2,=f'100' bnh $21 strgloc $22 dc x'9697A3606EA38182848587F17E6C8425' dc x'00' codeloc la 2,$22 st 2,0(HGARGP) l 1,116(HGAUTOP) l 2,0(1) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL $21 equ * l 1,116(HGAUTOP) l 2,0(1) c 2,=f'64' bl $23 l 1,108(HGAUTOP) l 2,0(1) c 2,=f'36' be $24 l 2,hdebug c 2,=f'100' bnh $25 strgloc $26 dc x'97F1606E96977E6C8425' dc x'00' codeloc la 2,$26 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL $25 equ * B $20 $24 equ * l 2,108(HGAUTOP) l 2,12(2) st 2,0(HGARGP) l 2,8(HGAUTOP) st 2,4(HGARGP) lfunc 15,@dcalc la 1,8 BCALL st 0,100(HGAUTOP) lr 2,0 l 1,116(HGAUTOP) l 3,0(1) n 3,=f'63' cr 2,3 bnh $27 l 2,hdebug c 2,=f'100' bnh $28 strgloc $29 dc x'84838193834D97F1606EA399F15D7E6C846B409697A3606EA3' dc x'8182848587F150F0F7F77E6C8425' dc x'00' codeloc la 2,$29 st 2,0(HGARGP) l 2,100(HGAUTOP) st 2,4(HGARGP) l 1,116(HGAUTOP) l 2,0(1) n 2,=f'63' st 2,8(HGARGP) lfunc 15,@printf la 1,12 BCALL $28 equ * B $20 $27 equ * $23 equ * l 1,116(HGAUTOP) l 2,0(1) c 2,80(HGAUTOP) bl $20 l 2,108(HGAUTOP) st 2,0(HGARGP) l 2,116(HGAUTOP) l 2,4(2) st 2,4(HGARGP) lfunc 15,@notcomp la 1,8 BCALL st 0,100(HGAUTOP) ltr 0,0 be $30 l 2,hdebug c 2,=f'100' bnh $31 strgloc $32 dc x'9596A38396949781A37E6C8425' dc x'00' codeloc la 2,$32 st 2,0(HGARGP) l 2,100(HGAUTOP) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL $31 equ * B $20 $30 equ * l 2,76(HGAUTOP) sll 2,2 a 2,@opdope l 2,0(2) n 2,=f'1' ltr 2,2 be $33 l 2,104(HGAUTOP) ltr 2,2 be $33 l 2,116(HGAUTOP) l 2,8(2) n 2,=f'63' c 2,84(HGAUTOP) bl $10001 l 2,116(HGAUTOP) l 2,8(2) c 2,=f'64' bl $34 l 1,104(HGAUTOP) l 2,0(1) c 2,=f'36' be $34 $10001 equ * l 2,hdebug c 2,=f'100' bnh $35 strgloc $36 dc x'9697A3606EA38182848587F27E6C846B97F2606E96977E6C84' dc x'25' dc x'00' codeloc la 2,$36 st 2,0(HGARGP) l 2,116(HGAUTOP) l 2,8(2) st 2,4(HGARGP) l 1,104(HGAUTOP) l 2,0(1) st 2,8(HGARGP) lfunc 15,@printf la 1,12 BCALL $35 equ * B $20 $34 equ * l 2,104(HGAUTOP) st 2,0(HGARGP) l 2,116(HGAUTOP) l 2,12(2) st 2,4(HGARGP) lfunc 15,@notcomp la 1,8 BCALL st 0,100(HGAUTOP) ltr 0,0 be $37 l 2,hdebug c 2,=f'100' bnh $38 strgloc $39 dc x'9596A38396949781A3F27E6C8425' dc x'00' codeloc la 2,$39 st 2,0(HGARGP) l 2,100(HGAUTOP) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL $38 equ * B $20 $37 equ * $33 equ * $40 equ * l 2,116(HGAUTOP) l 2,16(2) ltr 2,2 bne $41 l 2,116(HGAUTOP) lr 0,2 a 0,=f'20' st 0,116(HGAUTOP) B $40 $41 equ * l 2,116(HGAUTOP) lr 0,2 B $1 $20 equ * l 2,116(HGAUTOP) lr 0,2 a 0,=f'20' st 0,116(HGAUTOP) B $18 $19 equ * sr 2,2 lr 0,2 B $1 $1 EPILOG 3,120 DC C'END match' rcexpr PROLOG 3 l 2,8(HGAUTOP) c 2,=f'2' bl $10002 l 2,8(HGAUTOP) c 2,=f'7' bnh $43 $10002 equ * strgloc $44 dc x'998385A79785994099858789A2A38599408599999699' dc x'00' codeloc la 2,$44 st 2,0(HGARGP) lfunc 15,@error la 1,4 BCALL l 2,=f'2' lr 0,2 B $42 $43 equ * l 2,4(HGAUTOP) st 2,84(HGAUTOP) l 2,0(HGAUTOP) st 2,80(HGAUTOP) ltr 2,2 bne $45 l 2,=f'99' lr 0,2 B $42 $45 equ * l 1,80(HGAUTOP) l 2,0(1) lr 0,2 B $47 $48 equ * l 2,80(HGAUTOP) l 2,4(2) st 2,0(HGARGP) l 2,80(HGAUTOP) l 2,8(2) st 2,4(HGARGP) l 2,80(HGAUTOP) l 2,12(2) st 2,8(HGARGP) l 2,=f'2' st 2,12(HGARGP) lfunc 15,@cbranch la 1,16 BCALL l 2,=f'99' lr 0,2 B $42 $49 equ * l 2,80(HGAUTOP) l 2,12(2) l 2,0(2) c 2,=f'35' bne $50 l 2,80(HGAUTOP) l 3,80(HGAUTOP) l 3,12(3) l 3,12(3) st 3,12(2) lr 2,3 $50 equ * l 2,80(HGAUTOP) l 2,12(2) l 2,0(2) c 2,=f'20' be $51 l 2,80(HGAUTOP) l 2,12(2) l 2,0(2) c 2,=f'21' be $51 strgloc $52 dc x'C993938587819340899589A389819389A981A3899695' dc x'00' codeloc la 2,$52 st 2,0(HGARGP) lfunc 15,@error la 1,4 BCALL B $53 $51 equ * l 2,80(HGAUTOP) st 2,0(HGARGP) l 2,@regtab st 2,4(HGARGP) l 2,nreg st 2,8(HGARGP) lfunc 15,@cexpr la 1,12 BCALL $53 equ * l 2,=f'99' lr 0,2 B $42 $54 equ * l 2,80(HGAUTOP) st 2,0(HGARGP) l 2,@regtab st 2,4(HGARGP) l 2,nreg st 2,8(HGARGP) lfunc 15,@cexpr la 1,12 BCALL l 2,=f'99' lr 0,2 B $42 $55 equ * l 2,80(HGAUTOP) l 2,12(2) l 2,0(2) sll 2,2 a 2,@opdope l 2,0(2) n 2,=f'4' ltr 2,2 be $56 l 2,80(HGAUTOP) l 2,12(2) st 2,80(HGAUTOP) l 1,80(HGAUTOP) l 2,0(1) la 3,notrel ar 2,3 a 2,=f'-60' sr 1,1 ic 1,0(2) lr 2,1 l 1,80(HGAUTOP) st 2,0(1) $56 equ * B $46 $57 equ * l 2,80(HGAUTOP) l 2,12(2) st 2,0(HGARGP) l 2,84(HGAUTOP) st 2,4(HGARGP) l 2,8(HGAUTOP) st 2,8(HGARGP) lfunc 15,@rcexpr la 1,12 BCALL st 0,76(HGAUTOP) ltr 0,0 be $58 strgloc $59 dc x'05939905F06B6C8425' dc x'00' codeloc la 2,$59 st 2,0(HGARGP) l 2,76(HGAUTOP) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL $58 equ * sr 2,2 lr 0,2 B $42 $60 equ * $61 equ * l 2,80(HGAUTOP) st 2,0(HGARGP) lfunc 15,@pow2 la 1,4 BCALL B $46 $47 equ * la 1,4 put 4 into r1 la 2,0 zero r2 $10005 c 2,$10004-4(1) is addr 0 ? be $10006+4 c 0,$10004(1) is case satisfied ? be $10006 la 1,8(1) bump r1 by 8 b $10005 $10006 s 1,=f'4' l 2,$10004(1) br 2 dataloc cnop 0,4 $10004 equ * dc a($55) dc f'34' dc a($60) dc f'42' dc a($61) dc f'72' dc a($48) dc f'103' dc a($49) dc f'104' dc a($54) dc f'107' dc a($57) dc f'110' dc f'0' dc a($46) codeloc * End of switch code. $46 equ * l 2,80(HGAUTOP) st 2,0(HGARGP) l 2,84(HGAUTOP) st 2,4(HGARGP) l 2,8(HGAUTOP) st 2,8(HGARGP) lfunc 15,@cexpr la 1,12 BCALL st 0,76(HGAUTOP) ltr 0,0 bl $62 l 2,76(HGAUTOP) lr 0,2 B $42 $62 equ * l 2,84(HGAUTOP) c 2,@regtab be $63 l 2,80(HGAUTOP) st 2,0(HGARGP) l 2,@regtab st 2,4(HGARGP) l 2,8(HGAUTOP) st 2,8(HGARGP) lfunc 15,@cexpr la 1,12 BCALL st 0,76(HGAUTOP) ltr 0,0 bl $64 l 2,84(HGAUTOP) c 2,@cctab bne $65 strgloc $66 dc x'0593A399056C846B6C8425' dc x'00' codeloc la 2,$66 st 2,0(HGARGP) l 2,76(HGAUTOP) st 2,4(HGARGP) l 2,76(HGAUTOP) st 2,8(HGARGP) lfunc 15,@printf la 1,12 BCALL $65 equ * l 2,=f'99' lr 0,2 B $42 $64 equ * $63 equ * strgloc $67 dc x'D596409481A3838840869699409697406C84' dc x'00' codeloc la 2,$67 st 2,0(HGARGP) l 1,80(HGAUTOP) l 2,0(1) st 2,4(HGARGP) lfunc 15,@error la 1,8 BCALL l 2,=f'2' lr 0,2 B $42 $42 EPILOG 3,88 DC C'END rcexpr' cexpr PROLOG 3 l 2,8(HGAUTOP) c 2,=f'2' bl $10007 l 2,8(HGAUTOP) c 2,=f'7' bnh $69 $10007 equ * l 2,hdebug c 2,=f'50' bnh $70 strgloc $71 dc x'9396A69985877E6C846B40819985877E6C8425' dc x'00' codeloc l 2,=f'2' st 2,0(HGARGP) la 2,$71 st 2,4(HGARGP) l 2,=f'2' st 2,8(HGARGP) l 2,8(HGAUTOP) st 2,12(HGARGP) lfunc 15,@printf la 1,16 BCALL $70 equ * strgloc $72 dc x'8385A797994099858789A2A38599408599999699' dc x'00' codeloc la 2,$72 st 2,0(HGARGP) lfunc 15,@error la 1,4 BCALL l 2,=f'2' lr 0,2 B $68 $69 equ * sr 2,2 st 2,84(HGAUTOP) l 2,0(HGAUTOP) st 2,96(HGAUTOP) l 2,8(HGAUTOP) st 2,108(HGAUTOP) l 2,96(HGAUTOP) l 2,16(2) st 2,92(HGAUTOP) l 1,96(HGAUTOP) l 2,0(1) st 2,76(HGAUTOP) c 2,=f'100' bne $73 l 2,96(HGAUTOP) l 2,12(2) l 2,0(2) c 2,=f'36' bne $74 l 2,96(HGAUTOP) l 3,96(HGAUTOP) l 3,12(3) l 3,12(3) st 3,12(2) lr 2,3 B $75 $74 equ * strgloc $76 dc x'C3969497899385994086A3954083819393408599999699' dc x'00' codeloc la 2,$76 st 2,0(HGARGP) lfunc 15,@error la 1,4 BCALL $75 equ * l 2,96(HGAUTOP) l 2,12(2) l 2,12(2) c 2,=f'23' bne $77 l 2,=f'1' l 1,@ftern st 2,0(1) B $78 $77 equ * sr 2,2 l 1,@ftern st 2,0(1) $78 equ * l 1,@fflg l 2,0(1) sll 2,1 l 3,@ftern a 2,0(3) l 1,@fflg st 2,0(1) sr 2,2 st 2,80(HGAUTOP) l 1,92(HGAUTOP) l 2,0(1) ltr 2,2 be $79 $80 equ * l 1,92(HGAUTOP) l 2,0(1) c 2,=f'9' bne $81 l 2,92(HGAUTOP) l 2,12(2) st 2,0(HGARGP) lfunc 15,@comarg la 1,4 BCALL a 0,80(HGAUTOP) st 0,80(HGAUTOP) l 2,92(HGAUTOP) l 2,16(2) st 2,92(HGAUTOP) B $80 $81 equ * l 2,92(HGAUTOP) st 2,0(HGARGP) lfunc 15,@comarg la 1,4 BCALL a 0,80(HGAUTOP) st 0,80(HGAUTOP) $79 equ * l 2,=f'101' l 1,96(HGAUTOP) st 2,0(1) l 2,96(HGAUTOP) l 3,80(HGAUTOP) st 3,8(2) lr 2,3 l 1,@fflg l 2,0(1) srl 2,1 l 1,@fflg st 2,0(1) $73 equ * l 2,76(HGAUTOP) sll 2,2 a 2,@opdope l 2,0(2) n 2,=f'4' ltr 2,2 bne $10008 l 2,76(HGAUTOP) c 2,=f'53' be $10008 l 2,76(HGAUTOP) c 2,=f'54' be $10008 l 2,76(HGAUTOP) c 2,=f'34' bne $82 $10008 equ * l 2,4(HGAUTOP) c 2,@cctab be $82 l 2,96(HGAUTOP) st 2,0(HGARGP) l 2,@isn l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 st 2,76(HGAUTOP) st 2,4(HGARGP) l 2,=f'1' st 2,8(HGARGP) l 2,108(HGAUTOP) st 2,12(HGARGP) lfunc 15,@cbranch la 1,16 BCALL l 2,@czero st 2,0(HGARGP) l 2,4(HGAUTOP) st 2,4(HGARGP) l 2,108(HGAUTOP) st 2,8(HGARGP) lfunc 15,@rcexpr la 1,12 BCALL l 1,@isn l 2,0(1) st 2,0(HGARGP) lfunc 15,@branch la 1,4 BCALL l 2,76(HGAUTOP) st 2,0(HGARGP) lfunc 15,@label la 1,4 BCALL l 2,@cone st 2,0(HGARGP) l 2,4(HGAUTOP) st 2,4(HGARGP) l 2,108(HGAUTOP) st 2,8(HGARGP) lfunc 15,@rcexpr la 1,12 BCALL l 2,@isn l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 st 2,0(HGARGP) lfunc 15,@label la 1,4 BCALL l 2,108(HGAUTOP) lr 0,2 B $68 $82 equ * l 2,76(HGAUTOP) c 2,=f'90' bne $83 l 2,4(HGAUTOP) c 2,@cctab bne $84 l 2,=f'-1' lr 0,2 B $68 $84 equ * l 2,96(HGAUTOP) l 2,12(2) st 2,0(HGARGP) l 2,@isn1 l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 st 2,76(HGAUTOP) st 2,4(HGARGP) sr 2,2 st 2,8(HGARGP) l 2,108(HGAUTOP) st 2,12(HGARGP) lfunc 15,@cbranch la 1,16 BCALL l 2,92(HGAUTOP) l 2,12(2) st 2,0(HGARGP) l 2,4(HGAUTOP) st 2,4(HGARGP) l 2,108(HGAUTOP) st 2,8(HGARGP) lfunc 15,@rcexpr la 1,12 BCALL st 0,116(HGAUTOP) l 2,@isn1 l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 st 2,80(HGAUTOP) st 2,0(HGARGP) lfunc 15,@branch la 1,4 BCALL l 2,76(HGAUTOP) st 2,0(HGARGP) lfunc 15,@label la 1,4 BCALL l 2,92(HGAUTOP) l 2,16(2) st 2,0(HGARGP) l 2,4(HGAUTOP) st 2,4(HGARGP) l 2,108(HGAUTOP) st 2,8(HGARGP) lfunc 15,@rcexpr la 1,12 BCALL st 0,108(HGAUTOP) l 2,116(HGAUTOP) c 2,108(HGAUTOP) be $85 strgloc $86 dc x'059399056C846B6C8425' dc x'00' codeloc la 2,$86 st 2,0(HGARGP) l 2,116(HGAUTOP) st 2,4(HGARGP) l 2,108(HGAUTOP) st 2,8(HGARGP) lfunc 15,@printf la 1,12 BCALL $85 equ * l 2,116(HGAUTOP) st 2,108(HGAUTOP) l 2,80(HGAUTOP) st 2,0(HGARGP) lfunc 15,@label la 1,4 BCALL B $87 $83 equ * l 2,96(HGAUTOP) st 2,0(HGARGP) l 2,108(HGAUTOP) st 2,4(HGARGP) lfunc 15,@oddreg la 1,8 BCALL st 0,108(HGAUTOP) l 2,108(HGAUTOP) a 2,=f'1' st 2,112(HGAUTOP) l 2,96(HGAUTOP) st 2,0(HGARGP) l 2,4(HGAUTOP) st 2,4(HGARGP) l 2,108(HGAUTOP) st 2,8(HGARGP) lfunc 15,@chkleaf la 1,12 BCALL ltr 0,0 bnl $87 l 2,96(HGAUTOP) st 2,0(HGARGP) l 2,4(HGAUTOP) st 2,4(HGARGP) l 2,nreg s 2,108(HGAUTOP) st 2,8(HGARGP) lfunc 15,@match la 1,12 BCALL st 0,120(HGAUTOP) ltr 0,0 bne $88 l 2,=f'-1' lr 0,2 B $68 $88 equ * l 2,120(HGAUTOP) l 2,16(2) st 2,104(HGAUTOP) l 2,96(HGAUTOP) l 2,12(2) st 2,92(HGAUTOP) sr 2,2 st 2,100(HGAUTOP) l 1,96(HGAUTOP) l 2,0(1) sll 2,2 a 2,@opdope l 2,0(2) n 2,=f'1' ltr 2,2 be $89 l 2,96(HGAUTOP) l 2,16(2) st 2,100(HGAUTOP) $89 equ * $90 equ * l 2,104(HGAUTOP) lr 0,2 a 0,=f'1' st 0,104(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 st 2,76(HGAUTOP) lr 0,2 B $92 $93 equ * l 1,96(HGAUTOP) l 2,0(1) c 2,=f'101' bne $94 l 2,96(HGAUTOP) l 2,12(2) l 2,12(2) c 2,=f'23' bne $95 l 2,=f'1' l 1,@ftern st 2,0(1) B $96 $95 equ * sr 2,2 l 1,@ftern st 2,0(1) $96 equ * l 1,@ftern l 2,0(1) c 2,=f'1' bne $97 strgloc $98 dc x'0594A589056C844DC8C7C1D9C7D75D6BA77DF8F07D25' dc x'00' codeloc la 2,$98 st 2,0(HGARGP) l 1,@hgoffs l 2,0(1) a 2,=f'-4' st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL strgloc $99 dc x'05938105F16B6C844DC8C7C1D9C7D75D25' dc x'00' codeloc la 2,$99 st 2,0(HGARGP) l 1,@hgoffs l 2,0(1) l 3,96(HGAUTOP) s 2,8(3) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL strgloc $100 dc x'05938105C8C7C1D9C7D76B6C844DC8C7C1D9C7D75D25' dc x'00' codeloc la 2,$100 st 2,0(HGARGP) l 1,@hgoffs l 2,0(1) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL strgloc $101 dc x'05C6C3C1D3D325' dc x'00' codeloc la 2,$101 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL strgloc $102 dc x'05A205C8C7C1D9C7D76B7E867D6C847D25' dc x'00' codeloc la 2,$102 st 2,0(HGARGP) l 1,@hgoffs l 2,0(1) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL B $103 $97 equ * strgloc $104 dc x'05938105F16B6C8425' dc x'00' codeloc la 2,$104 st 2,0(HGARGP) l 2,96(HGAUTOP) l 2,8(2) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL l 1,@hgoffs l 2,0(1) l 3,96(HGAUTOP) s 2,8(3) ltr 2,2 be $105 strgloc $106 dc x'05938105C8C7C1D9C7D76B6C844DC8C7C1D9C7D75D25' dc x'00' codeloc la 2,$106 st 2,0(HGARGP) l 1,@hgoffs l 2,0(1) l 3,96(HGAUTOP) s 2,8(3) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL $105 equ * strgloc $107 dc x'05C2C3C1D3D325' dc x'00' codeloc la 2,$107 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL l 1,@hgoffs l 2,0(1) l 3,96(HGAUTOP) s 2,8(3) ltr 2,2 be $108 strgloc $109 dc x'05A205C8C7C1D9C7D76B7E867D6C847D25' dc x'00' codeloc la 2,$109 st 2,0(HGARGP) l 1,@hgoffs l 2,0(1) l 3,96(HGAUTOP) s 2,8(3) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL $108 equ * $103 equ * l 2,96(HGAUTOP) l 2,8(2) l 3,@hgoffs s 2,0(3) lcr 2,2 st 2,0(3) sr 2,2 st 2,108(HGAUTOP) $94 equ * $87 equ * l 2,84(HGAUTOP) ltr 2,2 be $110 l 2,84(HGAUTOP) c 2,=f'3' be $110 strgloc $111 dc x'83969497899385994085999996995E40A2A3819940A689A388' dc x'96A4A340A288819997' dc x'00' codeloc la 2,$111 st 2,0(HGARGP) lfunc 15,@error la 1,4 BCALL $110 equ * l 2,96(HGAUTOP) st 2,0(HGARGP) lfunc 15,@isfloat la 1,4 BCALL ltr 0,0 bne $112 l 1,96(HGAUTOP) l 2,0(1) c 2,=f'43' be $10009 l 1,96(HGAUTOP) l 2,0(1) c 2,=f'73' bne $113 $10009 equ * l 2,108(HGAUTOP) lr 0,2 a 0,=f'1' st 0,108(HGAUTOP) $113 equ * $112 equ * l 2,96(HGAUTOP) l 2,4(2) c 2,=f'2' be $10010 l 2,96(HGAUTOP) l 2,4(2) c 2,=f'3' bne $114 $10010 equ * sr 2,2 lr 0,2 B $68 $114 equ * l 2,108(HGAUTOP) lr 0,2 B $68 $115 equ * l 2,104(HGAUTOP) lr 0,2 a 0,=f'1' st 0,104(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 c 2,=f'241' bne $116 l 2,92(HGAUTOP) st 2,88(HGAUTOP) B $117 $116 equ * l 2,100(HGAUTOP) st 2,88(HGAUTOP) $117 equ * l 2,88(HGAUTOP) st 2,0(HGARGP) lfunc 15,@pname la 1,4 BCALL B $90 $118 equ * l 2,104(HGAUTOP) lr 0,2 a 0,=f'1' st 0,104(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 lr 0,2 B $120 $121 equ * l 2,96(HGAUTOP) st 2,88(HGAUTOP) l 2,88(HGAUTOP) st 2,0(HGARGP) lfunc 15,@isfloat la 1,4 BCALL ltr 0,0 be $122 l 2,=f'132' st 2,0(HGARGP) lfunc 15,@putchar la 1,4 BCALL $122 equ * B $90 $123 equ * $124 equ * l 1,96(HGAUTOP) l 2,0(1) sll 2,2 a 2,@opdope l 2,0(2) n 2,=f'256' ltr 2,2 bne $10011 l 1,96(HGAUTOP) l 2,0(1) c 2,=f'36' bne $125 $10011 equ * l 2,96(HGAUTOP) st 2,88(HGAUTOP) B $126 $125 equ * l 2,104(HGAUTOP) a 2,=f'-1' sr 1,1 ic 1,0(2) lr 2,1 c 2,=f'241' bne $127 l 2,92(HGAUTOP) st 2,88(HGAUTOP) B $128 $127 equ * l 2,100(HGAUTOP) st 2,88(HGAUTOP) $128 equ * $126 equ * B $119 $120 equ * la 1,4 put 4 into r1 la 2,0 zero r2 $10014 c 2,$10013-4(1) is addr 0 ? be $10015+4 c 0,$10013(1) is case satisfied ? be $10015 la 1,8(1) bump r1 by 8 b $10014 $10015 s 1,=f'4' l 2,$10013(1) br 2 dataloc cnop 0,4 $10013 equ * dc a($121) dc f'198' dc a($123) dc f'241' dc a($124) dc f'242' dc f'0' dc a($119) codeloc * End of switch code. $119 equ * l 2,88(HGAUTOP) l 2,4(2) c 2,=f'1' bne $129 l 2,=f'131' st 2,0(HGARGP) lfunc 15,@putchar la 1,4 BCALL $129 equ * l 2,88(HGAUTOP) st 2,0(HGARGP) lfunc 15,@isfloat la 1,4 BCALL stc 0,128(HGAUTOP) ltr 0,0 be $130 sr 2,2 ic 2,128(HGAUTOP) st 2,0(HGARGP) lfunc 15,@putchar la 1,4 BCALL $130 equ * B $90 $131 equ * l 2,104(HGAUTOP) lr 0,2 a 0,=f'1' st 0,104(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 c 2,=f'241' bne $132 l 2,92(HGAUTOP) l 2,12(2) st 2,88(HGAUTOP) B $133 $132 equ * l 2,100(HGAUTOP) l 2,12(2) st 2,88(HGAUTOP) $133 equ * strgloc $134 dc x'6C84' dc x'00' codeloc la 2,$134 st 2,0(HGARGP) l 2,88(HGAUTOP) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL B $90 $135 equ * l 1,104(HGAUTOP) lc 2,0(1) c 2,=f'217' be $136 l 2,92(HGAUTOP) st 2,88(HGAUTOP) B $137 B $138 $136 equ * l 2,104(HGAUTOP) lr 0,2 a 0,=f'1' st 0,104(HGAUTOP) B $139 $138 equ * $140 equ * l 2,100(HGAUTOP) st 2,88(HGAUTOP) B $137 $141 equ * l 2,96(HGAUTOP) st 2,88(HGAUTOP) $137 equ * l 2,104(HGAUTOP) lr 0,2 a 0,=f'1' st 0,104(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 sll 2,3 l 3,104(HGAUTOP) lr 0,3 a 0,=f'1' st 0,104(HGAUTOP) sr 1,1 ic 1,0(3) lr 3,1 ar 2,3 a 2,=f'-2160' st 2,76(HGAUTOP) l 2,76(HGAUTOP) n 2,=f'1' ltr 2,2 be $142 l 1,88(HGAUTOP) l 2,0(1) c 2,=f'36' be $143 strgloc $144 dc x'83969497899385994085999996995E4082818440A2A3819940' dc x'8595A399A8' dc x'00' codeloc la 2,$144 st 2,0(HGARGP) lfunc 15,@error la 1,4 BCALL $143 equ * l 2,88(HGAUTOP) l 2,12(2) st 2,88(HGAUTOP) l 2,=f'2' o 2,84(HGAUTOP) st 2,84(HGAUTOP) l 2,88(HGAUTOP) st 2,0(HGARGP) lfunc 15,@collcon la 1,4 BCALL ltr 0,0 be $145 l 2,88(HGAUTOP) l 2,12(2) st 2,88(HGAUTOP) $145 equ * $142 equ * l 2,76(HGAUTOP) n 2,=f'2' ltr 2,2 be $146 l 2,88(HGAUTOP) st 2,0(HGARGP) l 2,@regtab st 2,4(HGARGP) l 2,8(HGAUTOP) st 2,8(HGARGP) lfunc 15,@rcexpr la 1,12 BCALL st 0,116(HGAUTOP) l 1,@autolen l 2,0(1) st 2,124(HGAUTOP) l 2,@autolen l 0,0(2) a 0,=f'4' st 0,0(2) lr 2,0 l 2,88(HGAUTOP) st 2,0(HGARGP) lfunc 15,@isfloat la 1,4 BCALL ltr 0,0 be $147 l 2,@autolen l 0,0(2) a 0,=f'4' st 0,0(2) lr 2,0 strgloc $148 dc x'05A2A384056C846B6C844DC8C7C1E4E3D6D75D05A385949725' dc x'00' codeloc la 2,$148 st 2,0(HGARGP) l 2,flreg st 2,4(HGARGP) l 2,124(HGAUTOP) st 2,8(HGARGP) lfunc 15,@printf la 1,12 BCALL B $149 $147 equ * strgloc $150 dc x'05A2A3056C846B6C844DC8C7C1E4E3D6D75D05A385949725' dc x'00' codeloc la 2,$150 st 2,0(HGARGP) l 2,116(HGAUTOP) st 2,4(HGARGP) l 2,124(HGAUTOP) st 2,8(HGARGP) lfunc 15,@printf la 1,12 BCALL $149 equ * B $90 $146 equ * l 2,76(HGAUTOP) n 2,=f'8' ltr 2,2 be $151 l 2,112(HGAUTOP) a 2,=f'1' st 2,80(HGAUTOP) B $152 $151 equ * l 2,76(HGAUTOP) n 2,=f'4' ltr 2,2 be $153 l 2,112(HGAUTOP) st 2,80(HGAUTOP) B $154 $153 equ * l 2,76(HGAUTOP) n 2,=f'16' ltr 2,2 be $155 l 2,8(HGAUTOP) st 2,80(HGAUTOP) B $156 $155 equ * l 2,108(HGAUTOP) st 2,80(HGAUTOP) $156 equ * $154 equ * $152 equ * l 2,88(HGAUTOP) st 2,0(HGARGP) l 2,@regtab st 2,4(HGARGP) l 2,80(HGAUTOP) st 2,8(HGARGP) lfunc 15,@rcexpr la 1,12 BCALL st 0,116(HGAUTOP) l 2,76(HGAUTOP) n 2,=f'8' ltr 2,2 be $157 l 2,116(HGAUTOP) c 2,80(HGAUTOP) be $158 strgloc $159 dc x'059399056C846B6C8425' dc x'00' codeloc la 2,$159 st 2,0(HGARGP) l 2,80(HGAUTOP) st 2,4(HGARGP) l 2,116(HGAUTOP) st 2,8(HGARGP) lfunc 15,@printf la 1,12 BCALL l 2,hdebug c 2,=f'100' bnh $160 strgloc $161 dc x'F0F1F0409481A3838885A225' dc x'00' codeloc la 2,$161 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL $160 equ * $158 equ * B $90 $157 equ * l 2,76(HGAUTOP) n 2,=f'4' ltr 2,2 be $162 l 2,116(HGAUTOP) st 2,112(HGAUTOP) B $163 $162 equ * l 2,116(HGAUTOP) c 2,108(HGAUTOP) be $164 l 2,76(HGAUTOP) n 2,=f'16' ltr 2,2 be $165 l 2,116(HGAUTOP) st 2,108(HGAUTOP) l 2,=f'99' st 2,112(HGAUTOP) B $166 $165 equ * l 2,96(HGAUTOP) l 2,4(2) c 2,=f'2' be $167 l 2,96(HGAUTOP) l 2,4(2) c 2,=f'3' be $167 strgloc $168 dc x'059399056C846B6C8425' dc x'00' codeloc la 2,$168 st 2,0(HGARGP) l 2,108(HGAUTOP) st 2,4(HGARGP) l 2,116(HGAUTOP) st 2,8(HGARGP) lfunc 15,@printf la 1,12 BCALL $167 equ * l 2,hdebug c 2,=f'100' bnh $169 strgloc $170 dc x'F0F2F0409596A34099858396879589A9858425' dc x'00' codeloc la 2,$170 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL $169 equ * $166 equ * $164 equ * $163 equ * B $90 $171 equ * l 2,88(HGAUTOP) st 2,0(HGARGP) lfunc 15,@isfloat la 1,4 BCALL ltr 0,0 be $172 $139 equ * l 2,flreg st 2,80(HGAUTOP) l 1,104(HGAUTOP) lc 2,0(1) c 2,=f'242' bne $173 l 2,=f'2' a 2,80(HGAUTOP) st 2,80(HGAUTOP) l 2,104(HGAUTOP) lr 0,2 a 0,=f'1' st 0,104(HGAUTOP) $173 equ * B $174 $172 equ * $175 equ * l 2,104(HGAUTOP) lr 0,2 a 0,=f'1' st 0,104(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 lr 0,2 B $177 $178 equ * l 2,108(HGAUTOP) a 2,=f'-1' st 2,80(HGAUTOP) B $174 $179 equ * l 2,108(HGAUTOP) a 2,=f'1' st 2,80(HGAUTOP) B $174 $180 equ * l 2,112(HGAUTOP) st 2,80(HGAUTOP) B $174 $181 equ * l 2,108(HGAUTOP) a 2,=f'2' st 2,80(HGAUTOP) l 2,104(HGAUTOP) lr 0,2 a 0,=f'1' st 0,104(HGAUTOP) B $174 $182 equ * l 2,108(HGAUTOP) st 2,80(HGAUTOP) l 2,104(HGAUTOP) lr 0,2 s 0,=f'1' st 0,104(HGAUTOP) $174 equ * l 2,80(HGAUTOP) c 2,nreg bnh $183 strgloc $184 dc x'D9858789A2A385994096A58599869396A67A40A28994979389' dc x'86A84085A7979985A2A2899695' dc x'00' codeloc la 2,$184 st 2,0(HGARGP) lfunc 15,@error la 1,4 BCALL $183 equ * strgloc $185 dc x'6C84' dc x'00' codeloc la 2,$185 st 2,0(HGARGP) l 2,80(HGAUTOP) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL B $90 B $176 $177 equ * la 1,4 put 4 into r1 la 2,0 zero r2 $10018 c 2,$10017-4(1) is addr 0 ? be $10019+4 c 0,$10017(1) is case satisfied ? be $10019 la 1,8(1) bump r1 by 8 b $10018 $10019 s 1,=f'4' l 2,$10017(1) br 2 dataloc cnop 0,4 $10017 equ * dc a($179) dc f'78' dc a($178) dc f'96' dc a($180) dc f'241' dc a($181) dc f'242' dc f'0' dc a($182) codeloc * End of switch code. $176 equ * $186 equ * l 2,104(HGAUTOP) lr 0,2 a 0,=f'1' st 0,104(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 c 2,=f'241' bne $187 l 2,92(HGAUTOP) l 2,12(2) st 2,88(HGAUTOP) B $188 $187 equ * l 2,100(HGAUTOP) l 2,12(2) st 2,88(HGAUTOP) $188 equ * B $189 $190 equ * l 2,92(HGAUTOP) st 2,88(HGAUTOP) $189 equ * l 2,=f'1' o 2,84(HGAUTOP) st 2,84(HGAUTOP) l 2,88(HGAUTOP) st 2,0(HGARGP) lfunc 15,@collcon la 1,4 BCALL ltr 0,0 be $191 strgloc $192 dc x'6C84' dc x'00' codeloc la 2,$192 st 2,0(HGARGP) l 2,88(HGAUTOP) l 2,16(2) l 2,12(2) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL B $193 $191 equ * strgloc $194 dc x'F0' dc x'00' codeloc la 2,$194 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL $193 equ * B $90 $195 equ * l 2,92(HGAUTOP) l 2,12(2) st 2,88(HGAUTOP) strgloc $196 dc x'6CA7' dc x'00' codeloc la 2,$196 st 2,0(HGARGP) l 2,88(HGAUTOP) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL B $90 $197 equ * l 1,96(HGAUTOP) l 2,0(1) c 2,=f'50' bnl $10020 l 1,96(HGAUTOP) l 2,0(1) B $10021 $10020 equ * l 1,96(HGAUTOP) l 2,0(1) a 2,=f'-30' $10021 equ * st 2,0(HGARGP) l 2,96(HGAUTOP) st 2,4(HGARGP) lfunc 15,@wexpr la 1,8 BCALL B $90 $198 equ * strgloc $199 dc x'6C844DC8C7C1E4E3D6D75D05A3859497' dc x'00' codeloc la 2,$199 st 2,0(HGARGP) l 2,124(HGAUTOP) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL B $90 B $91 $92 equ * la 1,4 put 4 into r1 la 2,0 zero r2 $10024 c 2,$10023-4(1) is addr 0 ? be $10025+4 c 0,$10023(1) is case satisfied ? be $10025 la 1,8(1) bump r1 by 8 b $10024 $10025 s 1,=f'4' l 2,$10023(1) br 2 dataloc cnop 0,4 $10023 equ * dc a($93) dc f'0' dc a($186) dc f'123' dc a($190) dc f'161' dc a($115) dc f'193' dc a($118) dc f'194' dc a($131) dc f'195' dc a($135) dc f'198' dc a($141) dc f'200' dc a($197) dc f'214' dc a($195) dc f'216' dc a($175) dc f'217' dc a($140) dc f'226' dc a($198) dc f'227' dc a($171) dc f'233' dc f'0' dc a($91) codeloc * End of switch code. $91 equ * l 2,76(HGAUTOP) st 2,0(HGARGP) lfunc 15,@putchar la 1,4 BCALL B $90 $68 EPILOG 3,132 DC C'END cexpr' wexpr PROLOG 2 l 2,0(HGAUTOP) lr 0,2 B $202 $203 equ * $204 equ * strgloc $205 dc x'81' dc x'00' codeloc la 2,$205 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL B $201 $206 equ * $207 equ * strgloc $208 dc x'A2' dc x'00' codeloc la 2,$208 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL B $201 $209 equ * strgloc $210 dc x'95' dc x'00' codeloc la 2,$210 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL B $201 $211 equ * strgloc $212 dc x'96' dc x'00' codeloc la 2,$212 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL B $201 $213 equ * strgloc $214 dc x'A7' dc x'00' codeloc la 2,$214 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL B $201 $215 equ * strgloc $216 dc x'D596409481A383884060408289958199A8409697406C84' dc x'00' codeloc la 2,$216 st 2,0(HGARGP) l 1,4(HGAUTOP) l 2,0(1) st 2,4(HGARGP) lfunc 15,@error la 1,8 BCALL B $201 $202 equ * la 1,4 put 4 into r1 la 2,0 zero r2 $10028 c 2,$10027-4(1) is addr 0 ? be $10029+4 c 0,$10027(1) is case satisfied ? be $10029 la 1,8(1) bump r1 by 8 b $10028 $10029 s 1,=f'4' l 2,$10027(1) br 2 dataloc cnop 0,4 $10027 equ * dc a($203) dc f'32' dc a($206) dc f'33' dc a($204) dc f'40' dc a($207) dc f'41' dc a($209) dc f'47' dc a($211) dc f'48' dc a($213) dc f'49' dc f'0' dc a($215) codeloc * End of switch code. $201 equ * $200 EPILOG 2,72 DC C'END wexpr' chkleaf PROLOG 3 l 2,0(HGAUTOP) st 2,96(HGAUTOP) l 2,96(HGAUTOP) st 2,0(HGARGP) l 2,nreg s 2,8(HGAUTOP) st 2,4(HGARGP) lfunc 15,@dcalc la 1,8 BCALL c 0,=f'12' bnh $218 l 2,=f'-1' lr 0,2 B $217 $218 equ * l 2,=f'106' st 2,76(HGAUTOP) l 2,96(HGAUTOP) l 2,4(2) st 2,4+76(HGAUTOP) l 2,96(HGAUTOP) l 2,8(2) st 2,8+76(HGAUTOP) l 2,96(HGAUTOP) st 2,12+76(HGAUTOP) la 2,76(HGAUTOP) st 2,0(HGARGP) l 2,4(HGAUTOP) st 2,4(HGARGP) l 2,8(HGAUTOP) st 2,8(HGARGP) lfunc 15,@cexpr la 1,12 BCALL B $217 $217 EPILOG 3,100 DC C'END chkleaf' comarg PROLOG 1 l 2,0(HGAUTOP) st 2,68(HGAUTOP) l 2,68(HGAUTOP) st 2,0(HGARGP) lfunc 15,@isfloat la 1,4 BCALL st 0,76(HGAUTOP) l 2,68(HGAUTOP) l 2,4(2) c 2,=f'4' bne $220 strgloc $221 dc x'C993938587819340A2A399A483A3A49985' dc x'00' codeloc la 2,$221 st 2,0(HGARGP) lfunc 15,@error la 1,4 BCALL $220 equ * l 2,68(HGAUTOP) st 2,0(HGARGP) l 2,@regtab st 2,4(HGARGP) l 2,=f'2' st 2,8(HGARGP) lfunc 15,@rcexpr la 1,12 BCALL st 0,72(HGAUTOP) l 1,@fflg l 2,0(1) n 2,=f'1' l 1,@ftern st 2,0(1) l 1,@ftern l 2,0(1) ltr 2,2 be $222 l 2,76(HGAUTOP) ltr 2,2 be $223 strgloc $224 dc x'05A2A384056C84' dc x'00' codeloc la 2,$224 st 2,0(HGARGP) l 2,flreg st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL l 2,=f'8' st 2,80(HGAUTOP) B $225 $223 equ * strgloc $226 dc x'05A2A3056C84' dc x'00' codeloc la 2,$226 st 2,0(HGARGP) l 2,72(HGAUTOP) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL l 2,=f'4' st 2,80(HGAUTOP) $225 equ * strgloc $227 dc x'6B6C844DC8C7C1E4E3D6D75D05839695A540819987A240A396' dc x'4097A399A24086969940869699A399819525' dc x'00' codeloc la 2,$227 st 2,0(HGARGP) l 1,@autolen l 2,0(1) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL strgloc $228 dc x'059381056C846B6C844DC8C7C1E4E3D6D75D25' dc x'00' codeloc la 2,$228 st 2,0(HGARGP) l 2,72(HGAUTOP) st 2,4(HGARGP) l 1,@autolen l 2,0(1) st 2,8(HGARGP) lfunc 15,@printf la 1,12 BCALL l 2,@autolen l 0,0(2) a 0,80(HGAUTOP) st 0,0(2) lr 2,0 $222 equ * l 2,76(HGAUTOP) ltr 2,2 be $229 l 1,@ftern l 2,0(1) ltr 2,2 bne $229 strgloc $230 dc x'05A2A384056C846B6C844DC8C7C1D9C7D75D25' dc x'00' codeloc la 2,$230 st 2,0(HGARGP) l 2,flreg st 2,4(HGARGP) l 1,@hgoffs l 2,0(1) st 2,8(HGARGP) lfunc 15,@printf la 1,12 BCALL l 2,@hgoffs l 0,0(2) a 0,=f'8' st 0,0(2) lr 2,0 l 2,=f'8' st 2,80(HGAUTOP) B $231 $229 equ * strgloc $232 dc x'05A2A3056C846B6C844DC8C7C1D9C7D75D25' dc x'00' codeloc la 2,$232 st 2,0(HGARGP) l 2,72(HGAUTOP) st 2,4(HGARGP) l 1,@hgoffs l 2,0(1) st 2,8(HGARGP) lfunc 15,@printf la 1,12 BCALL l 2,@hgoffs l 0,0(2) a 0,=f'4' st 0,0(2) lr 2,0 l 2,=f'4' st 2,80(HGAUTOP) $231 equ * l 2,80(HGAUTOP) lr 0,2 B $219 $219 EPILOG 1,84 DC C'END comarg' tvecloc @ctab EXTADDR ctab @fflg EXTADDR fflg @cone EXTADDR cone @cval EXTADDR cval @endp EXTADDR endp @line EXTADDR line @dimp EXTADDR dimp @etoa EXTADDR etoa entry nreg @nreg INTADDR nreg @mainfil EXTADDR mainfile @cmst EXTADDR cmst entry treebase @treebas INTADDR treebase @csym EXTADDR csym @hgcurlo EXTADDR hgcurloc @notcomp EXTFUNC notcompa @functio EXTADDR function @dcalc EXTFUNC dcalc @cctab EXTADDR cctab @label EXTFUNC label @peekc EXTADDR peekc @space EXTADDR space @fcval EXTADDR fcval entry match @match INTFUNC match @cvtab EXTADDR cvtab entry flreg @flreg INTADDR flreg @pname EXTFUNC pname @xdflg EXTADDR xdflg @inhdr EXTADDR inhdr @ftern EXTADDR ftern @swtab EXTADDR swtab entry cexpr @cexpr INTFUNC cexpr @czero EXTADDR czero @error EXTFUNC error @xtern EXTADDR xtern entry wexpr @wexpr INTFUNC wexpr @deflab EXTADDR deflab @cp EXTADDR cp @efftab EXTADDR efftab @brklab EXTADDR brklab entry hdebug @hdebug INTADDR hdebug @branch EXTFUNC branch @dimtab EXTADDR dimtab @regtab EXTADDR regtab @parame EXTADDR parame @oddreg EXTFUNC oddreg entry comarg @comarg INTFUNC comarg @hshtab EXTADDR hshtab @retlab EXTADDR retlab @paraml EXTADDR paraml @hgoffs EXTADDR hgoffs entry maprel @maprel INTADDR maprel @nstack EXTADDR nstack @nfloat EXTADDR nfloat @opdope EXTADDR opdope @defsym EXTADDR defsym @proflg EXTADDR proflg @mosflg EXTADDR mosflg @regvar EXTADDR regvar @osleft EXTADDR osleft @nchstr EXTADDR nchstr @strflg EXTADDR strflg entry notrel @notrel INTADDR notrel @symbuf EXTADDR symbuf @nerror EXTADDR nerror @printf EXTFUNC printf entry rcexpr @rcexpr INTFUNC rcexpr @eof EXTADDR eof entry chkleaf @chkleaf INTFUNC chkleaf @ndp EXTADDR ndp @cbranch EXTFUNC cbranch @machine EXTADDR machine @isn EXTADDR isn @contlab EXTADDR contlab @swp EXTADDR swp @collcon EXTFUNC collcon @initflg EXTADDR initflg @mainftn EXTADDR mainftn @isfloat EXTFUNC isfloat @hshused EXTADDR hshused @putchar EXTFUNC putchar @autolen EXTADDR autolen @peeksym EXTADDR peeksym @funcsym EXTADDR funcsym @isn1 EXTADDR isn1 @pow2 EXTFUNC pow2 codeloc litloc ltorg end ry rcexpr @rcexpr INTFUNC rcexpr @eof EXTADDR eof entry chkleaf @chkleaf INTFUNC chkleaf @ndp EXTADDR ndp @cbranch EXTFUNC cbranch @machine EXTADDR machine @isn EXTADDR isn c11 startup dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc cnop 0,4 condop equ * istrloc $1 dc x'8285' dc x'00' dataloc dc a($1) istrloc $2 dc x'829585' dc x'00' dataloc dc a($2) istrloc $3 dc x'829588' dc x'00' dataloc dc a($3) istrloc $4 dc x'8293' dc x'00' dataloc dc a($4) istrloc $5 dc x'829593' dc x'00' dataloc dc a($5) istrloc $6 dc x'8288' dc x'00' dataloc dc a($6) istrloc $7 dc x'8293' dc x'00' dataloc dc a($7) istrloc $8 dc x'829588' dc x'00' dataloc dc a($8) istrloc $9 dc x'8288' dc x'00' dataloc dc a($9) istrloc $10 dc x'829593' dc x'00' dataloc dc a($10) dc f'0' cnop 0,4 codeloc max PROLOG 2 l 2,0(HGAUTOP) c 2,4(HGAUTOP) bnh $12 l 2,0(HGAUTOP) lr 0,2 B $11 $12 equ * l 2,4(HGAUTOP) lr 0,2 B $11 $11 EPILOG 2,72 DC C'END max' degree PROLOG 1 l 2,0(HGAUTOP) st 2,68(HGAUTOP) ltr 2,2 be $10000 l 1,68(HGAUTOP) l 2,0(1) ltr 2,2 bne $14 $10000 equ * sr 2,2 lr 0,2 B $13 $14 equ * l 1,68(HGAUTOP) l 2,0(1) c 2,=f'21' bne $15 l 2,=f'-3' lr 0,2 B $13 $15 equ * l 1,68(HGAUTOP) l 2,0(1) c 2,=f'35' bne $16 l 2,=f'-2' lr 0,2 B $13 $16 equ * l 1,68(HGAUTOP) l 2,0(1) sll 2,2 a 2,@opdope l 2,0(2) n 2,=f'256' ltr 2,2 be $17 sr 2,2 lr 0,2 B $13 $17 equ * l 2,68(HGAUTOP) l 2,8(2) lr 0,2 B $13 $13 EPILOG 1,72 DC C'END degree' pname PROLOG 1 l 2,0(HGAUTOP) st 2,72(HGAUTOP) l 1,72(HGAUTOP) l 2,0(1) c 2,=f'36' bne $19 l 2,72(HGAUTOP) l 2,12(2) st 2,72(HGAUTOP) $19 equ * $20 equ * l 1,72(HGAUTOP) l 2,0(1) lr 0,2 B $22 $23 equ * $24 equ * strgloc $25 dc x'5B6C84' dc x'00' codeloc la 2,$25 st 2,0(HGARGP) l 2,72(HGAUTOP) l 2,12(2) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL B $18 $26 equ * strgloc $27 dc x'7E867D6C847D' dc x'00' codeloc la 2,$27 st 2,0(HGARGP) l 2,72(HGAUTOP) l 2,12(2) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL B $18 $28 equ * l 2,72(HGAUTOP) l 2,16(2) st 2,68(HGAUTOP) ltr 2,2 be $29 strgloc $30 dc x'6C844E' dc x'00' codeloc la 2,$30 st 2,0(HGARGP) l 2,68(HGAUTOP) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL $29 equ * l 2,72(HGAUTOP) l 2,12(2) lr 0,2 B $32 $33 equ * strgloc $34 dc x'6C844DC8C7C1E4E3D6D75D' dc x'00' codeloc la 2,$34 st 2,0(HGARGP) l 2,72(HGAUTOP) l 2,20(2) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL B $18 $35 equ * strgloc $36 dc x'6C4BF8A2' dc x'00' codeloc la 2,$36 st 2,0(HGARGP) l 2,72(HGAUTOP) a 2,=f'20' st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL B $18 $37 equ * $38 equ * strgloc $39 dc x'7C6C4BF7A2' dc x'00' codeloc la 2,$39 st 2,0(HGARGP) l 2,72(HGAUTOP) a 2,=f'20' st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL B $18 $40 equ * strgloc $41 dc x'C993938587819340A2A399A483A3A499854099858685998595' dc x'8385' dc x'00' codeloc la 2,$41 st 2,0(HGARGP) lfunc 15,@error la 1,4 BCALL strgloc $42 dc x'5BF0' dc x'00' codeloc la 2,$42 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL B $18 $43 equ * l 2,68(HGAUTOP) ltr 2,2 be $44 strgloc $45 dc x'C28184409985874B40998586859985958385' dc x'00' codeloc la 2,$45 st 2,0(HGARGP) lfunc 15,@error la 1,4 BCALL $44 equ * strgloc $46 dc x'6C84' dc x'00' codeloc la 2,$46 st 2,0(HGARGP) l 2,72(HGAUTOP) l 2,20(2) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL B $18 B $31 $32 equ * la 1,4 put 4 into r1 la 2,0 zero r2 $10003 c 2,$10002-4(1) is addr 0 ? be $10004+4 c 0,$10002(1) is case satisfied ? be $10004 la 1,8(1) bump r1 by 8 b $10003 $10004 s 1,=f'4' l 2,$10002(1) br 2 dataloc cnop 0,4 $10002 equ * dc a($40) dc f'4' dc a($33) dc f'5' dc a($35) dc f'6' dc a($43) dc f'8' dc a($38) dc f'9' dc a($37) dc f'23' dc f'0' dc a($31) codeloc * End of switch code. $31 equ * strgloc $47 dc x'5B6C84' dc x'00' codeloc la 2,$47 st 2,0(HGARGP) l 2,72(HGAUTOP) l 2,20(2) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL B $18 B $21 $22 equ * la 1,4 put 4 into r1 la 2,0 zero r2 $10007 c 2,$10006-4(1) is addr 0 ? be $10008+4 c 0,$10006(1) is case satisfied ? be $10008 la 1,8(1) bump r1 by 8 b $10007 $10008 s 1,=f'4' l 2,$10006(1) br 2 dataloc cnop 0,4 $10006 equ * dc a($28) dc f'20' dc a($26) dc f'21' dc a($24) dc f'23' dc a($23) dc f'24' dc f'0' dc a($21) codeloc * End of switch code. $21 equ * strgloc $48 dc x'979581948540838193938584408993938587819393A8' dc x'00' codeloc la 2,$48 st 2,0(HGARGP) lfunc 15,@error la 1,4 BCALL $18 EPILOG 1,76 DC C'END pname' dcalc PROLOG 2 l 2,0(HGAUTOP) st 2,72(HGAUTOP) ltr 2,2 bne $50 sr 2,2 lr 0,2 B $49 $50 equ * l 1,72(HGAUTOP) l 2,0(1) lr 0,2 B $52 $53 equ * l 2,=f'12' lr 0,2 B $49 $54 equ * $55 equ * l 2,=f'12' lr 0,2 B $49 $56 equ * l 2,72(HGAUTOP) l 2,12(2) ltr 2,2 bne $10009 l 2,=f'4' B $10010 $10009 equ * l 2,72(HGAUTOP) l 2,12(2) c 2,=f'1' bne $10011 l 2,=f'5' B $10012 $10011 equ * l 2,72(HGAUTOP) l 2,12(2) ltr 2,2 bl $10013 l 2,72(HGAUTOP) l 2,12(2) c 2,=f'4096' bnl $10013 l 2,=f'6' B $10014 $10013 equ * l 2,=f'8' $10014 equ * $10012 equ * $10010 equ * lr 0,2 B $49 B $51 $52 equ * la 1,4 put 4 into r1 la 2,0 zero r2 $10017 c 2,$10016-4(1) is addr 0 ? be $10018+4 c 0,$10016(1) is case satisfied ? be $10018 la 1,8(1) bump r1 by 8 b $10017 $10018 s 1,=f'4' l 2,$10016(1) br 2 dataloc cnop 0,4 $10016 equ * dc a($53) dc f'20' dc a($56) dc f'21' dc a($55) dc f'23' dc a($54) dc f'24' dc f'0' dc a($51) codeloc * End of switch code. $51 equ * l 2,72(HGAUTOP) l 2,8(2) c 2,4(HGAUTOP) bh $10019 l 2,=f'20' B $10020 $10019 equ * l 2,=f'24' $10020 equ * lr 0,2 B $49 $49 EPILOG 2,76 DC C'END dcalc' notcompa PROLOG 2 l 2,0(HGAUTOP) st 2,80(HGAUTOP) l 2,80(HGAUTOP) l 2,4(2) st 2,72(HGAUTOP) l 2,4(HGAUTOP) st 2,76(HGAUTOP) l 2,72(HGAUTOP) n 2,=f'7' c 2,=f'4' bne $58 l 2,=f'32760' n 2,72(HGAUTOP) st 2,72(HGAUTOP) $58 equ * l 2,76(HGAUTOP) ltr 2,2 bne $59 l 2,72(HGAUTOP) c 2,=f'1' bh $60 sr 2,2 B $61 $60 equ * l 2,=f'1' $61 equ * l 3,72(HGAUTOP) c 3,=f'7' bnh $62 sr 3,3 B $63 $62 equ * l 3,=f'1' $63 equ * nr 2,3 lr 0,2 B $57 $59 equ * l 2,76(HGAUTOP) c 2,=f'1' bne $64 l 2,72(HGAUTOP) ltr 2,2 bh $65 sr 2,2 B $66 $65 equ * l 2,=f'1' $66 equ * l 3,72(HGAUTOP) c 3,=f'7' bnh $67 sr 3,3 B $68 $67 equ * l 3,=f'1' $68 equ * nr 2,3 lr 0,2 B $57 $64 equ * l 2,76(HGAUTOP) s 2,=f'2' st 2,76(HGAUTOP) l 2,72(HGAUTOP) n 2,=f'32736' ltr 2,2 be $69 l 2,=f'16' st 2,72(HGAUTOP) $69 equ * l 2,72(HGAUTOP) n 2,=f'32760' ltr 2,2 be $70 l 2,72(HGAUTOP) n 2,=f'7' o 2,=f'16' st 2,72(HGAUTOP) $70 equ * l 2,76(HGAUTOP) c 2,=f'3' bne $71 l 2,72(HGAUTOP) c 2,=f'2' bne $71 l 2,=f'3' st 2,72(HGAUTOP) $71 equ * l 2,76(HGAUTOP) c 2,72(HGAUTOP) bne $72 sr 2,2 B $73 $72 equ * l 2,=f'1' $73 equ * lr 0,2 B $57 $57 EPILOG 2,84 DC C'END notcompa' collcon PROLOG 1 l 2,0(HGAUTOP) st 2,72(HGAUTOP) l 1,72(HGAUTOP) l 2,0(1) c 2,=f'40' bne $75 l 2,72(HGAUTOP) l 2,16(2) l 2,0(2) st 2,68(HGAUTOP) l 2,68(HGAUTOP) c 2,=f'21' bne $76 l 2,72(HGAUTOP) l 2,16(2) l 2,12(2) ltr 2,2 bl $76 l 2,72(HGAUTOP) l 2,16(2) l 2,12(2) c 2,=f'4096' bnl $76 l 2,=f'1' lr 0,2 B $74 $76 equ * $75 equ * sr 2,2 lr 0,2 B $74 $74 EPILOG 1,76 DC C'END collcon' isfloat PROLOG 1 l 2,0(HGAUTOP) st 2,68(HGAUTOP) l 1,68(HGAUTOP) l 2,0(1) sll 2,2 a 2,@opdope l 2,0(2) n 2,=f'4' ltr 2,2 be $78 l 2,68(HGAUTOP) l 2,12(2) st 2,68(HGAUTOP) $78 equ * l 2,68(HGAUTOP) l 2,4(2) c 2,=f'2' bne $79 l 2,=f'133' lr 0,2 B $77 $79 equ * l 2,68(HGAUTOP) l 2,4(2) c 2,=f'3' bne $80 l 2,=f'132' lr 0,2 B $77 $80 equ * sr 2,2 lr 0,2 B $77 $77 EPILOG 1,72 DC C'END isfloat' oddreg PROLOG 2 l 2,4(HGAUTOP) st 2,72(HGAUTOP) l 2,0(HGAUTOP) st 2,0(HGARGP) lfunc 15,@isfloat la 1,4 BCALL ltr 0,0 bne $82 l 1,0(HGAUTOP) l 2,0(1) lr 0,2 B $84 $85 equ * $86 equ * $87 equ * $88 equ * l 2,72(HGAUTOP) lr 0,2 a 0,=f'1' st 0,72(HGAUTOP) l 2,72(HGAUTOP) n 2,=f'510' lr 0,2 B $81 $89 equ * $90 equ * l 2,72(HGAUTOP) lr 0,2 a 0,=f'1' st 0,72(HGAUTOP) l 2,72(HGAUTOP) o 2,=f'1' lr 0,2 B $81 B $83 $84 equ * la 1,4 put 4 into r1 la 2,0 zero r2 $10023 c 2,$10022-4(1) is addr 0 ? be $10024+4 c 0,$10022(1) is case satisfied ? be $10024 la 1,8(1) bump r1 by 8 b $10023 $10024 s 1,=f'4' l 2,$10022(1) br 2 dataloc cnop 0,4 $10022 equ * dc a($89) dc f'42' dc a($85) dc f'43' dc a($86) dc f'44' dc a($90) dc f'72' dc a($87) dc f'73' dc a($88) dc f'74' dc f'0' dc a($83) codeloc * End of switch code. $83 equ * $82 equ * l 2,72(HGAUTOP) lr 0,2 B $81 $81 EPILOG 2,76 DC C'END oddreg' pswitch PROLOG 2 l 2,0(HGAUTOP) st 2,120(HGAUTOP) l 2,4(HGAUTOP) st 2,124(HGAUTOP) l 2,120(HGAUTOP) c 2,124(HGAUTOP) bne $92 strgloc $93 dc x'0582055B6C8425' dc x'00' codeloc la 2,$93 st 2,0(HGARGP) l 1,@deflab l 2,0(1) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL B $91 $92 equ * l 2,@isn1 l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 st 2,72(HGAUTOP) l 2,120(HGAUTOP) st 2,0(HGARGP) l 2,124(HGAUTOP) st 2,4(HGARGP) lfunc 15,@sort la 1,8 BCALL ltr 0,0 bne $91 l 2,124(HGAUTOP) s 2,120(HGAUTOP) srda 2,32 d 2,=f'8' st 3,76(HGAUTOP) l 2,124(HGAUTOP) lr 0,2 s 0,=f'8' st 0,124(HGAUTOP) l 2,124(HGAUTOP) l 2,4(2) l 3,120(HGAUTOP) s 2,4(3) st 2,100(HGAUTOP) l 2,=f'1' ltr 2,2 bne $10025 l 2,76(HGAUTOP) c 2,=f'8' bnl $94 $10025 equ * strgloc $95 dc x'05938105F16BF40597A4A340F4408995A3964099F14025' dc x'00' codeloc la 2,$95 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL strgloc $96 dc x'059381056C846BF005A98599964099F24025' dc x'00' codeloc la 2,$96 st 2,0(HGARGP) l 2,=f'2' st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL strgloc $97 dc x'5B6C840583056C846B5B6C8460F44DF15D0589A24081848499' dc x'40F0406F4025' dc x'00' codeloc la 2,$97 st 2,0(HGARGP) l 2,@isn1 l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 st 2,112(HGAUTOP) st 2,4(HGARGP) l 2,=f'2' st 2,8(HGARGP) l 2,@isn1 l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 st 2,104(HGAUTOP) st 2,12(HGARGP) lfunc 15,@printf la 1,16 BCALL strgloc $98 dc x'058285055B6C844EF44025' dc x'00' codeloc la 2,$98 st 2,0(HGARGP) l 2,@isn1 l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 st 2,108(HGAUTOP) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL strgloc $99 dc x'058305F06B5B6C844DF15D0589A2408381A28540A281A389A2' dc x'86898584406F4025' dc x'00' codeloc la 2,$99 st 2,0(HGARGP) l 2,104(HGAUTOP) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL strgloc $100 dc x'058285055B6C844025' dc x'00' codeloc la 2,$100 st 2,0(HGARGP) l 2,108(HGAUTOP) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL strgloc $101 dc x'05938105F16BF84DF15D0582A494974099F14082A840F84025' dc x'00' codeloc la 2,$101 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL strgloc $102 dc x'0582055B6C844025' dc x'00' codeloc la 2,$102 st 2,0(HGARGP) l 2,112(HGAUTOP) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL strgloc $103 dc x'5B6C8405A205F16B7E867DF47D4025' dc x'00' codeloc la 2,$103 st 2,0(HGARGP) l 2,108(HGAUTOP) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL strgloc $104 dc x'0593056C846B5B6C844DF15D4025' dc x'00' codeloc la 2,$104 st 2,0(HGARGP) l 2,=f'2' st 2,4(HGARGP) l 2,104(HGAUTOP) st 2,8(HGARGP) lfunc 15,@printf la 1,12 BCALL strgloc $105 dc x'058299056C844025' dc x'00' codeloc la 2,$105 st 2,0(HGARGP) l 2,=f'2' st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL strgloc $106 dc x'058481A38193968325' dc x'00' codeloc la 2,$106 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL strgloc $107 dc x'058395969705F06BF440255B6C84058598A4055C4025' dc x'00' codeloc la 2,$107 st 2,0(HGARGP) l 2,104(HGAUTOP) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL $108 equ * l 2,120(HGAUTOP) c 2,124(HGAUTOP) bh $109 strgloc $111 dc x'05848305814D5B6C845D402505848305867D6C847D4025' dc x'00' codeloc la 2,$111 st 2,0(HGARGP) l 1,120(HGAUTOP) l 2,0(1) st 2,4(HGARGP) l 2,120(HGAUTOP) l 2,4(2) st 2,8(HGARGP) lfunc 15,@printf la 1,12 BCALL $110 equ * l 2,120(HGAUTOP) lr 0,2 a 0,=f'8' st 0,120(HGAUTOP) B $108 $109 equ * strgloc $112 dc x'4005848305867DF07D402505848305814D5B6C845D4025' dc x'00' codeloc la 2,$112 st 2,0(HGARGP) l 1,@deflab l 2,0(1) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL strgloc $113 dc x'058396848593968325' dc x'00' codeloc la 2,$113 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL B $114 $94 equ * $114 equ * strgloc $115 dc x'5C40C5958440968640A2A689A3838840839684854B25' dc x'00' codeloc la 2,$115 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL $91 EPILOG 2,928 DC C'END pswitch' sort PROLOG 2 l 2,0(HGAUTOP) st 2,76(HGAUTOP) l 2,4(HGAUTOP) st 2,80(HGAUTOP) $117 equ * l 2,80(HGAUTOP) s 2,=f'8' st 2,80(HGAUTOP) c 2,76(HGAUTOP) bnh $118 sr 2,2 st 2,84(HGAUTOP) l 2,76(HGAUTOP) st 2,72(HGAUTOP) $119 equ * l 2,72(HGAUTOP) c 2,80(HGAUTOP) bnl $120 l 2,72(HGAUTOP) l 2,4(2) l 3,72(HGAUTOP) c 2,12(3) bne $122 strgloc $123 dc x'C4A49793898381A385408381A285404D6C845D' dc x'00' codeloc la 2,$123 st 2,0(HGARGP) l 2,72(HGAUTOP) l 2,4(2) st 2,4(HGARGP) lfunc 15,@error la 1,8 BCALL l 2,=f'1' lr 0,2 B $116 $122 equ * l 2,72(HGAUTOP) l 2,4(2) l 3,72(HGAUTOP) c 2,12(3) bnh $124 l 2,84(HGAUTOP) lr 0,2 a 0,=f'1' st 0,84(HGAUTOP) l 2,72(HGAUTOP) l 2,4(2) st 2,88(HGAUTOP) l 2,72(HGAUTOP) l 3,72(HGAUTOP) l 3,12(3) st 3,4(2) lr 2,3 l 2,72(HGAUTOP) l 3,88(HGAUTOP) st 3,12(2) lr 2,3 l 1,72(HGAUTOP) l 2,0(1) st 2,88(HGAUTOP) l 2,72(HGAUTOP) l 2,8(2) l 1,72(HGAUTOP) st 2,0(1) l 2,72(HGAUTOP) l 3,88(HGAUTOP) st 3,8(2) lr 2,3 $124 equ * $121 equ * l 2,72(HGAUTOP) lr 0,2 a 0,=f'8' st 0,72(HGAUTOP) B $119 $120 equ * l 2,84(HGAUTOP) ltr 2,2 be $118 B $117 $118 equ * sr 2,2 lr 0,2 B $116 $116 EPILOG 2,92 DC C'END sort' ispow2 PROLOG 1 l 2,0(HGAUTOP) st 2,72(HGAUTOP) l 2,72(HGAUTOP) st 2,0(HGARGP) lfunc 15,@isfloat la 1,4 BCALL ltr 0,0 bne $126 l 2,72(HGAUTOP) l 2,16(2) l 2,0(2) c 2,=f'21' bne $126 l 2,72(HGAUTOP) l 2,16(2) l 2,12(2) st 2,68(HGAUTOP) l 2,68(HGAUTOP) ltr 2,2 bnh $127 l 2,68(HGAUTOP) a 2,=f'-1' n 2,68(HGAUTOP) ltr 2,2 bne $127 l 2,68(HGAUTOP) lr 0,2 B $125 $127 equ * $126 equ * sr 2,2 lr 0,2 B $125 $125 EPILOG 1,76 DC C'END ispow2' pow2 PROLOG 1 l 2,0(HGAUTOP) st 2,76(HGAUTOP) l 2,76(HGAUTOP) st 2,0(HGARGP) lfunc 15,@ispow2 la 1,4 BCALL st 0,68(HGAUTOP) ltr 0,0 be $129 sr 2,2 st 2,72(HGAUTOP) $130 equ * l 2,68(HGAUTOP) srl 2,1 st 2,68(HGAUTOP) ltr 2,2 be $131 $132 equ * l 2,72(HGAUTOP) lr 0,2 a 0,=f'1' st 0,72(HGAUTOP) B $130 $131 equ * l 2,76(HGAUTOP) l 2,16(2) l 3,72(HGAUTOP) st 3,12(2) lr 2,3 l 1,76(HGAUTOP) l 2,0(1) st 2,68(HGAUTOP) l 2,68(HGAUTOP) c 2,=f'42' bne $10026 l 2,=f'46' B $10027 $10026 equ * l 2,=f'76' $10027 equ * l 1,76(HGAUTOP) st 2,0(1) $129 equ * $128 EPILOG 1,80 DC C'END pow2' dataloc cnop 0,4 czero equ * dc f'21' dc f'0' dc f'0' dc f'0' cnop 0,4 codeloc dataloc cnop 0,4 cone equ * dc f'21' dc f'0' dc f'0' dc f'1' cnop 0,4 codeloc cbranch PROLOG 4 l 2,4(HGAUTOP) st 2,84(HGAUTOP) l 2,12(HGAUTOP) st 2,88(HGAUTOP) l 2,0(HGAUTOP) st 2,92(HGAUTOP) ltr 2,2 be $133 l 1,92(HGAUTOP) l 2,0(1) lr 0,2 B $135 $136 equ * l 2,8(HGAUTOP) ltr 2,2 be $137 l 2,92(HGAUTOP) l 2,12(2) st 2,0(HGARGP) l 2,@isn1 l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 st 2,80(HGAUTOP) st 2,4(HGARGP) sr 2,2 st 2,8(HGARGP) l 2,88(HGAUTOP) st 2,12(HGARGP) lfunc 15,@cbranch la 1,16 BCALL l 2,92(HGAUTOP) l 2,16(2) st 2,0(HGARGP) l 2,84(HGAUTOP) st 2,4(HGARGP) l 2,=f'1' st 2,8(HGARGP) l 2,88(HGAUTOP) st 2,12(HGARGP) lfunc 15,@cbranch la 1,16 BCALL l 2,80(HGAUTOP) st 2,0(HGARGP) lfunc 15,@label la 1,4 BCALL B $138 $137 equ * l 2,92(HGAUTOP) l 2,12(2) st 2,0(HGARGP) l 2,84(HGAUTOP) st 2,4(HGARGP) sr 2,2 st 2,8(HGARGP) l 2,88(HGAUTOP) st 2,12(HGARGP) lfunc 15,@cbranch la 1,16 BCALL l 2,92(HGAUTOP) l 2,16(2) st 2,0(HGARGP) l 2,84(HGAUTOP) st 2,4(HGARGP) sr 2,2 st 2,8(HGARGP) l 2,88(HGAUTOP) st 2,12(HGARGP) lfunc 15,@cbranch la 1,16 BCALL $138 equ * B $133 $139 equ * l 2,8(HGAUTOP) ltr 2,2 be $140 l 2,92(HGAUTOP) l 2,12(2) st 2,0(HGARGP) l 2,84(HGAUTOP) st 2,4(HGARGP) l 2,=f'1' st 2,8(HGARGP) l 2,88(HGAUTOP) st 2,12(HGARGP) lfunc 15,@cbranch la 1,16 BCALL l 2,92(HGAUTOP) l 2,16(2) st 2,0(HGARGP) l 2,84(HGAUTOP) st 2,4(HGARGP) l 2,=f'1' st 2,8(HGARGP) l 2,88(HGAUTOP) st 2,12(HGARGP) lfunc 15,@cbranch la 1,16 BCALL B $141 $140 equ * l 2,92(HGAUTOP) l 2,12(2) st 2,0(HGARGP) l 2,@isn1 l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 st 2,80(HGAUTOP) st 2,4(HGARGP) l 2,=f'1' st 2,8(HGARGP) l 2,88(HGAUTOP) st 2,12(HGARGP) lfunc 15,@cbranch la 1,16 BCALL l 2,92(HGAUTOP) l 2,16(2) st 2,0(HGARGP) l 2,84(HGAUTOP) st 2,4(HGARGP) sr 2,2 st 2,8(HGARGP) l 2,88(HGAUTOP) st 2,12(HGARGP) lfunc 15,@cbranch la 1,16 BCALL l 2,80(HGAUTOP) st 2,0(HGARGP) lfunc 15,@label la 1,4 BCALL $141 equ * B $133 $142 equ * l 2,92(HGAUTOP) l 2,12(2) st 2,0(HGARGP) l 2,84(HGAUTOP) st 2,4(HGARGP) l 2,8(HGAUTOP) ltr 2,2 be $143 sr 2,2 B $144 $143 equ * l 2,=f'1' $144 equ * st 2,8(HGARGP) l 2,88(HGAUTOP) st 2,12(HGARGP) lfunc 15,@cbranch la 1,16 BCALL B $133 B $134 $135 equ * la 1,4 put 4 into r1 la 2,0 zero r2 $10030 c 2,$10029-4(1) is addr 0 ? be $10031+4 c 0,$10029(1) is case satisfied ? be $10031 la 1,8(1) bump r1 by 8 b $10030 $10031 s 1,=f'4' l 2,$10029(1) br 2 dataloc cnop 0,4 $10029 equ * dc a($142) dc f'34' dc a($136) dc f'53' dc a($139) dc f'54' dc f'0' dc a($134) codeloc * End of switch code. $134 equ * l 1,92(HGAUTOP) l 2,0(1) sll 2,2 a 2,@opdope l 2,0(2) n 2,=f'4' ltr 2,2 bne $145 l 2,=f'61' st 2,96(HGAUTOP) l 2,92(HGAUTOP) l 2,4(2) st 2,4+96(HGAUTOP) l 2,92(HGAUTOP) l 2,8(2) st 2,8+96(HGAUTOP) l 2,92(HGAUTOP) st 2,12+96(HGAUTOP) la 2,czero st 2,16+96(HGAUTOP) la 2,96(HGAUTOP) st 2,92(HGAUTOP) $145 equ * l 2,92(HGAUTOP) st 2,0(HGARGP) l 2,@cctab st 2,4(HGARGP) l 2,88(HGAUTOP) st 2,8(HGARGP) lfunc 15,@rcexpr la 1,12 BCALL l 2,84(HGAUTOP) st 2,0(HGARGP) l 1,92(HGAUTOP) l 2,0(1) st 2,4(HGARGP) l 2,8(HGAUTOP) ltr 2,2 be $146 sr 2,2 B $147 $146 equ * l 2,=f'1' $147 equ * st 2,8(HGARGP) lfunc 15,@branch1 la 1,12 BCALL $133 EPILOG 4,116 DC C'END cbranch' branch1 PROLOG 3 l 2,4(HGAUTOP) st 2,76(HGAUTOP) ltr 2,2 be $149 l 2,76(HGAUTOP) st 2,0(HGARGP) l 2,8(HGAUTOP) st 2,4(HGARGP) lfunc 15,@cbr la 1,8 BCALL B $150 $149 equ * strgloc $151 dc x'82' dc x'00' codeloc la 2,$151 st 2,0(HGARGP) lfunc 15,@printf la 1,4 BCALL $150 equ * strgloc $152 dc x'055B6C8425' dc x'00' codeloc la 2,$152 st 2,0(HGARGP) l 2,0(HGAUTOP) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL $148 EPILOG 3,80 DC C'END branch1' cbr PROLOG 2 l 2,4(HGAUTOP) ltr 2,2 be $154 l 2,@notrel a 2,0(HGAUTOP) a 2,=f'-60' sr 1,1 ic 1,0(2) lr 2,1 st 2,0(HGAUTOP) $154 equ * strgloc $155 dc x'056CA2' dc x'00' codeloc la 2,$155 st 2,0(HGARGP) l 2,0(HGAUTOP) sll 2,2 la 3,condop ar 2,3 a 2,=f'-240' l 2,0(2) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL $153 EPILOG 2,72 DC C'END cbr' tvecloc @ctab EXTADDR ctab @fflg EXTADDR fflg entry cone @cone INTADDR cone @cval EXTADDR cval @endp EXTADDR endp @line EXTADDR line @dimp EXTADDR dimp @nreg EXTADDR nreg @mainfil EXTADDR mainfile @cmst EXTADDR cmst @treebas EXTADDR treebase @csym EXTADDR csym @hgcurlo EXTADDR hgcurloc entry sort @sort INTFUNC sort entry notcompa @notcomp INTFUNC notcompa @functio EXTADDR function entry dcalc @dcalc INTFUNC dcalc @cctab EXTADDR cctab @label EXTFUNC label @peekc EXTADDR peekc @space EXTADDR space @fcval EXTADDR fcval @cvtab EXTADDR cvtab entry pname @pname INTFUNC pname @xdflg EXTADDR xdflg @inhdr EXTADDR inhdr @ftern EXTADDR ftern @swtab EXTADDR swtab entry czero @czero INTADDR czero @error EXTFUNC error @xtern EXTADDR xtern @deflab EXTADDR deflab @cp EXTADDR cp entry ispow2 @ispow2 INTFUNC ispow2 @efftab EXTADDR efftab entry degree @degree INTFUNC degree @brklab EXTADDR brklab @dimtab EXTADDR dimtab @regtab EXTADDR regtab @parame EXTADDR parame entry oddreg @oddreg INTFUNC oddreg @hshtab EXTADDR hshtab @retlab EXTADDR retlab @paraml EXTADDR paraml @hgoffs EXTADDR hgoffs @maprel EXTADDR maprel entry condop @condop INTADDR condop @nstack EXTADDR nstack @nfloat EXTADDR nfloat @opdope EXTADDR opdope @defsym EXTADDR defsym @proflg EXTADDR proflg @mosflg EXTADDR mosflg @regvar EXTADDR regvar @osleft EXTADDR osleft @nchstr EXTADDR nchstr @strflg EXTADDR strflg @notrel EXTADDR notrel @symbuf EXTADDR symbuf @nerror EXTADDR nerror @printf EXTFUNC printf @rcexpr EXTFUNC rcexpr entry branch1 @branch1 INTFUNC branch1 entry cbr @cbr INTFUNC cbr @eof EXTADDR eof @ndp EXTADDR ndp entry cbranch @cbranch INTFUNC cbranch @machine EXTADDR machine entry max @max INTFUNC max @isn EXTADDR isn @contlab EXTADDR contlab @swp EXTADDR swp entry collcon @collcon INTFUNC collcon @initflg EXTADDR initflg @mainftn EXTADDR mainftn entry isfloat @isfloat INTFUNC isfloat @hshused EXTADDR hshused @autolen EXTADDR autolen @peeksym EXTADDR peeksym entry pswitch @pswitch INTFUNC pswitch @funcsym EXTADDR funcsym @isn1 EXTADDR isn1 entry pow2 @pow2 INTFUNC pow2 codeloc litloc ltorg end dp entry cbranch @cbranch INTFUNC cbranch @machine EXTADDR machine entry max @max INTFUNC max @isn EXTADDR isn @contlab EXc12 startup dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc dataloc codeloc optim PROLOG 1 l 2,0(HGAUTOP) st 2,88(HGAUTOP) ltr 2,2 bne $2 sr 2,2 lr 0,2 B $1 $2 equ * l 1,88(HGAUTOP) l 2,0(1) st 2,68(HGAUTOP) l 2,68(HGAUTOP) ltr 2,2 bne $3 l 2,88(HGAUTOP) lr 0,2 B $1 $3 equ * l 2,68(HGAUTOP) sll 2,2 a 2,@opdope l 2,0(2) st 2,72(HGAUTOP) l 2,72(HGAUTOP) n 2,=f'256' ltr 2,2 be $4 l 2,88(HGAUTOP) lr 0,2 B $1 $4 equ * l 2,72(HGAUTOP) n 2,=f'1' ltr 2,2 bne $5 l 2,88(HGAUTOP) st 2,0(HGARGP) lfunc 15,@unoptim la 1,4 BCALL B $1 $5 equ * l 2,72(HGAUTOP) n 2,=f'64' ltr 2,2 be $6 $7 equ * l 2,88(HGAUTOP) l 2,4(2) st 2,76(HGAUTOP) l 2,88(HGAUTOP) st 2,0(HGARGP) lfunc 15,@acommut la 1,4 BCALL st 0,88(HGAUTOP) l 2,88(HGAUTOP) l 3,76(HGAUTOP) st 3,4(2) lr 2,3 l 2,88(HGAUTOP) lr 0,2 B $1 $6 equ * l 2,88(HGAUTOP) st 2,92(HGAUTOP) temp l 2,88(HGAUTOP) l 2,12(2) st 2,0(HGARGP) lfunc 15,@optim la 1,4 BCALL l 1,92(HGAUTOP) temp st 0,12(1) l 2,88(HGAUTOP) st 2,96(HGAUTOP) temp l 2,88(HGAUTOP) l 2,16(2) st 2,0(HGARGP) lfunc 15,@optim la 1,4 BCALL l 1,96(HGAUTOP) temp st 0,16(1) l 2,72(HGAUTOP) n 2,=f'4' ltr 2,2 be $8 l 2,88(HGAUTOP) l 2,16(2) st 2,0(HGARGP) lfunc 15,@degree la 1,4 BCALL st 0,100(HGAUTOP) temp l 2,88(HGAUTOP) l 2,12(2) st 2,0(HGARGP) lfunc 15,@degree la 1,4 BCALL c 0,100(HGAUTOP) temp bnl $9 l 2,88(HGAUTOP) l 2,12(2) st 2,84(HGAUTOP) l 2,88(HGAUTOP) l 3,88(HGAUTOP) l 3,16(3) st 3,12(2) lr 2,3 l 2,88(HGAUTOP) l 3,84(HGAUTOP) st 3,16(2) lr 2,3 l 2,@maprel a 2,68(HGAUTOP) a 2,=f'-60' sr 1,1 ic 1,0(2) lr 2,1 l 1,88(HGAUTOP) st 2,0(1) $9 equ * $8 equ * l 2,88(HGAUTOP) l 2,12(2) st 2,0(HGARGP) lfunc 15,@degree la 1,4 BCALL st 0,0(HGARGP) l 2,=f'1' st 2,4(HGARGP) lfunc 15,@max la 1,8 BCALL st 0,76(HGAUTOP) l 2,88(HGAUTOP) l 2,16(2) st 2,0(HGARGP) lfunc 15,@degree la 1,4 BCALL st 0,0(HGARGP) sr 2,2 st 2,4(HGARGP) lfunc 15,@max la 1,8 BCALL st 0,80(HGAUTOP) l 1,@hdebug l 2,0(1) c 2,=f'100' bnh $10 strgloc $11 dc x'9697A389944D6C965D6B409697407E406C846B4084F16B4084' dc x'F2407E406C846B406C8425' dc x'00' codeloc la 2,$11 st 2,0(HGARGP) l 2,88(HGAUTOP) st 2,4(HGARGP) l 2,68(HGAUTOP) st 2,8(HGARGP) l 2,76(HGAUTOP) st 2,12(HGARGP) l 2,80(HGAUTOP) st 2,16(HGARGP) lfunc 15,@printf la 1,20 BCALL $10 equ * l 2,68(HGAUTOP) lr 0,2 B $13 $14 equ * l 2,88(HGAUTOP) l 3,=f'10' st 3,8(2) lr 2,3 B $12 $15 equ * $16 equ * l 2,88(HGAUTOP) st 2,104(HGAUTOP) temp l 2,76(HGAUTOP) st 2,0(HGARGP) l 2,80(HGAUTOP) st 2,4(HGARGP) lfunc 15,@max la 1,8 BCALL l 1,104(HGAUTOP) temp st 0,8(1) B $12 $17 equ * l 2,88(HGAUTOP) l 2,16(2) l 2,0(2) c 2,=f'21' bne $18 l 2,=f'40' l 1,88(HGAUTOP) st 2,0(1) l 2,88(HGAUTOP) l 2,16(2) l 3,88(HGAUTOP) l 3,16(3) l 3,12(3) lcr 3,3 st 3,12(2) lr 2,3 B $7 $18 equ * B $19 $20 equ * l 2,88(HGAUTOP) st 2,0(HGARGP) lfunc 15,@ispow2 la 1,4 BCALL ltr 0,0 bne $21 $22 equ * $23 equ * $24 equ * $25 equ * l 2,=f'2' a 2,76(HGAUTOP) st 2,76(HGAUTOP) l 2,=f'2' a 2,80(HGAUTOP) st 2,80(HGAUTOP) $21 equ * $26 equ * $27 equ * l 2,88(HGAUTOP) l 2,12(2) l 2,0(2) c 2,=f'21' bne $28 l 2,88(HGAUTOP) l 2,16(2) l 2,0(2) c 2,=f'21' bne $28 l 2,68(HGAUTOP) st 2,0(HGARGP) l 2,88(HGAUTOP) l 2,12(2) a 2,=f'12' st 2,4(HGARGP) l 2,88(HGAUTOP) l 2,16(2) l 2,12(2) st 2,8(HGARGP) lfunc 15,@const la 1,12 BCALL l 2,88(HGAUTOP) l 2,12(2) lr 0,2 B $1 $28 equ * $19 equ * $29 equ * l 2,88(HGAUTOP) st 2,108(HGAUTOP) temp l 2,76(HGAUTOP) c 2,80(HGAUTOP) bne $10000 l 2,=f'1' a 2,76(HGAUTOP) st 2,76(HGAUTOP) B $10001 $10000 equ * l 2,76(HGAUTOP) st 2,0(HGARGP) l 2,80(HGAUTOP) st 2,4(HGARGP) lfunc 15,@max la 1,8 BCALL lr 2,0 $10001 equ * l 1,108(HGAUTOP) temp st 2,8(1) B $12 B $12 $13 equ * la 1,4 put 4 into r1 la 2,0 zero r2 $10004 c 2,$10003-4(1) is addr 0 ? be $10005+4 c 0,$10003(1) is case satisfied ? be $10005 la 1,8(1) bump r1 by 8 b $10004 $10005 s 1,=f'4' l 2,$10003(1) br 2 dataloc cnop 0,4 $10003 equ * dc a($16) dc f'8' dc a($17) dc f'41' dc a($22) dc f'43' dc a($24) dc f'44' dc a($27) dc f'45' dc a($26) dc f'46' dc a($20) dc f'72' dc a($23) dc f'73' dc a($25) dc f'74' dc a($15) dc f'90' dc a($14) dc f'100' dc f'0' dc a($29) codeloc * End of switch code. $12 equ * l 1,@hdebug l 2,0(1) c 2,=f'100' bnh $30 strgloc $31 dc x'05848587998585407E406C8425' dc x'00' codeloc la 2,$31 st 2,0(HGARGP) l 2,88(HGAUTOP) l 2,8(2) st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL $30 equ * l 2,88(HGAUTOP) lr 0,2 B $1 $1 EPILOG 1,112 DC C'END optim' unoptim PROLOG 1 l 2,0(HGAUTOP) st 2,72(HGAUTOP) ltr 2,2 bne $33 sr 2,2 lr 0,2 B $32 $33 equ * l 1,72(HGAUTOP) l 2,0(1) c 2,=f'103' bne $34 l 2,72(HGAUTOP) st 2,76(HGAUTOP) temp l 2,72(HGAUTOP) l 2,4(2) st 2,0(HGARGP) lfunc 15,@optim la 1,4 BCALL l 1,76(HGAUTOP) temp st 0,4(1) l 2,72(HGAUTOP) lr 0,2 B $32 $34 equ * l 2,72(HGAUTOP) st 2,80(HGAUTOP) temp l 2,72(HGAUTOP) l 2,12(2) st 2,0(HGARGP) lfunc 15,@optim la 1,4 BCALL l 1,80(HGAUTOP) temp st 0,12(1) st 0,68(HGAUTOP) l 1,72(HGAUTOP) l 2,0(1) c 2,=f'36' bne $35 l 1,68(HGAUTOP) l 2,0(1) c 2,=f'35' bne $35 l 2,68(HGAUTOP) l 2,12(2) lr 0,2 B $32 $35 equ * l 1,72(HGAUTOP) l 2,0(1) c 2,=f'35' bne $36 l 1,68(HGAUTOP) l 2,0(1) c 2,=f'36' bne $36 l 2,68(HGAUTOP) l 2,12(2) lr 0,2 B $32 $36 equ * l 1,68(HGAUTOP) l 2,0(1) c 2,=f'21' bne $37 l 1,72(HGAUTOP) l 2,0(1) lr 0,2 B $39 $40 equ * l 2,68(HGAUTOP) l 3,68(HGAUTOP) l 3,12(3) lcr 3,3 st 3,12(2) lr 2,3 l 2,68(HGAUTOP) lr 0,2 B $32 $41 equ * l 2,68(HGAUTOP) l 3,68(HGAUTOP) l 3,12(3) x 3,=x'ffffffff' st 3,12(2) lr 2,3 l 2,68(HGAUTOP) lr 0,2 B $32 B $38 $39 equ * la 1,4 put 4 into r1 la 2,0 zero r2 $10008 c 2,$10007-4(1) is addr 0 ? be $10009+4 c 0,$10007(1) is case satisfied ? be $10009 la 1,8(1) bump r1 by 8 b $10008 $10009 s 1,=f'4' l 2,$10007(1) br 2 dataloc cnop 0,4 $10007 equ * dc a($40) dc f'37' dc a($41) dc f'38' dc f'0' dc a($38) codeloc * End of switch code. $38 equ * $37 equ * l 2,72(HGAUTOP) st 2,84(HGAUTOP) temp l 2,=f'1' st 2,0(HGARGP) l 2,68(HGAUTOP) st 2,4(HGARGP) lfunc 15,@degree la 1,4 la HGARGP,4(HGARGP) BCALL s HGARGP,=f'4' st 0,4(HGARGP) lfunc 15,@max la 1,8 BCALL l 1,84(HGAUTOP) temp st 0,8(1) l 2,72(HGAUTOP) lr 0,2 B $32 $32 EPILOG 1,88 DC C'END unoptim' acommute PROLOG 1 sr 2,2 st 2,68(HGAUTOP) sr 2,2 st 2,4+68(HGAUTOP) l 2,0(HGAUTOP) st 2,264(HGAUTOP) l 1,264(HGAUTOP) l 2,0(1) st 2,248(HGAUTOP) l 2,264(HGAUTOP) st 2,0(HGARGP) lfunc 15,@isfloat la 1,4 BCALL st 0,252(HGAUTOP) l 2,248(HGAUTOP) st 2,0(HGARGP) l 2,264(HGAUTOP) st 2,4(HGARGP) la 2,68(HGAUTOP) st 2,8(HGARGP) lfunc 15,@insert la 1,12 BCALL l 2,68(HGAUTOP) lr 0,2 s 0,=f'1' st 0,68(HGAUTOP) l 2,252(HGAUTOP) ltr 2,2 bne $43 l 2,68(HGAUTOP) sll 2,2 la 3,88+68(HGAUTOP) ar 2,3 st 2,260(HGAUTOP) l 2,68(HGAUTOP) st 2,244(HGAUTOP) $44 equ * l 2,244(HGAUTOP) ltr 2,2 bnh $45 l 1,260(HGAUTOP) l 2,0(1) l 2,0(2) c 2,=f'21' bne $45 l 2,260(HGAUTOP) a 2,=f'-4' l 2,0(2) l 2,0(2) c 2,=f'21' bne $45 l 2,68(HGAUTOP) lr 0,2 s 0,=f'1' st 0,68(HGAUTOP) l 2,260(HGAUTOP) lr 0,2 s 0,=f'4' st 0,260(HGAUTOP) l 2,248(HGAUTOP) st 2,0(HGARGP) l 1,260(HGAUTOP) l 2,0(1) a 2,=f'12' st 2,4(HGARGP) l 2,260(HGAUTOP) l 2,4(2) l 2,12(2) st 2,8(HGARGP) lfunc 15,@const la 1,12 BCALL $46 equ * l 2,244(HGAUTOP) lr 0,2 s 0,=f'1' st 0,244(HGAUTOP) B $44 $45 equ * $43 equ * l 2,248(HGAUTOP) c 2,=f'40' bne $47 l 2,252(HGAUTOP) ltr 2,2 bne $47 l 2,68(HGAUTOP) ltr 2,2 bnh $48 l 1,260(HGAUTOP) l 2,0(1) l 2,0(2) c 2,=f'21' bne $48 l 1,260(HGAUTOP) l 2,0(1) l 2,12(2) ltr 2,2 bne $48 l 2,68(HGAUTOP) lr 0,2 s 0,=f'1' st 0,68(HGAUTOP) l 2,260(HGAUTOP) lr 0,2 s 0,=f'4' st 0,260(HGAUTOP) $48 equ * l 2,68(HGAUTOP) ltr 2,2 bh $49 l 1,260(HGAUTOP) l 2,0(1) lr 0,2 B $42 $49 equ * l 1,260(HGAUTOP) l 2,0(1) l 2,0(2) c 2,=f'21' bne $50 l 1,260(HGAUTOP) l 2,0(1) l 2,12(2) ltr 2,2 bl $50 l 2,260(HGAUTOP) a 2,=f'-4' l 2,0(2) l 2,0(2) c 2,=f'35' bne $50 l 2,260(HGAUTOP) lr 0,2 s 0,=f'4' st 0,260(HGAUTOP) l 2,260(HGAUTOP) l 2,4(2) l 2,12(2) l 1,260(HGAUTOP) l 3,0(1) l 3,12(3) a 2,16(3) st 2,16(3) l 2,68(HGAUTOP) lr 0,2 s 0,=f'1' st 0,68(HGAUTOP) $50 equ * B $51 $47 equ * l 2,248(HGAUTOP) c 2,=f'42' bne $52 l 2,68(HGAUTOP) sll 2,2 la 3,88+68(HGAUTOP) ar 2,3 l 2,0(2) st 2,256(HGAUTOP) l 1,256(HGAUTOP) l 2,0(1) c 2,=f'21' bne $53 l 2,256(HGAUTOP) l 2,12(2) ltr 2,2 bne $53 l 2,256(HGAUTOP) lr 0,2 B $42 $53 equ * $52 equ * $51 equ * l 2,248(HGAUTOP) c 2,=f'40' bne $54 l 2,252(HGAUTOP) ltr 2,2 bne $54 la 2,68(HGAUTOP) st 2,0(HGARGP) lfunc 15,@distrib la 1,4 BCALL $54 equ * la 2,88+68(HGAUTOP) st 2,260(HGAUTOP) l 2,0(2) st 2,264(HGAUTOP) l 2,264(HGAUTOP) st 2,0(HGARGP) lfunc 15,@degree la 1,4 BCALL st 0,0(HGARGP) l 2,=f'1' st 2,4(HGARGP) lfunc 15,@max la 1,8 BCALL st 0,240(HGAUTOP) l 2,248(HGAUTOP) c 2,=f'42' bne $55 l 2,252(HGAUTOP) ltr 2,2 bne $55 l 2,240(HGAUTOP) lr 0,2 a 0,=f'1' st 0,240(HGAUTOP) $55 equ * sr 2,2 st 2,244(HGAUTOP) $56 equ * l 2,244(HGAUTOP) c 2,68(HGAUTOP) bnl $57 l 2,244(HGAUTOP) sll 2,2 la 3,8+68(HGAUTOP) ar 2,3 l 2,0(2) st 2,256(HGAUTOP) l 2,256(HGAUTOP) l 3,=f'4' a 3,260(HGAUTOP) st 3,260(HGAUTOP) l 3,0(3) st 3,268(HGAUTOP) st 3,16(2) lr 2,3 l 2,256(HGAUTOP) st 2,272(HGAUTOP) temp l 2,268(HGAUTOP) st 2,0(HGARGP) lfunc 15,@degree la 1,4 BCALL c 0,240(HGAUTOP) bl $10010 l 2,240(HGAUTOP) a 2,=f'1' B $10011 $10010 equ * l 2,240(HGAUTOP) $10011 equ * st 2,240(HGAUTOP) l 1,272(HGAUTOP) temp st 2,8(1) l 2,256(HGAUTOP) l 3,264(HGAUTOP) st 3,12(2) lr 2,3 l 2,256(HGAUTOP) st 2,264(HGAUTOP) $58 equ * l 2,244(HGAUTOP) lr 0,2 a 0,=f'1' st 0,244(HGAUTOP) B $56 $57 equ * l 1,264(HGAUTOP) l 2,0(1) c 2,=f'42' bne $59 l 2,264(HGAUTOP) st 2,0(HGARGP) lfunc 15,@ispow2 la 1,4 BCALL ltr 0,0 be $59 l 2,264(HGAUTOP) st 2,276(HGAUTOP) temp l 2,264(HGAUTOP) l 2,12(2) st 2,0(HGARGP) lfunc 15,@degree la 1,4 BCALL st 0,0(HGARGP) l 2,=f'1' st 2,4(HGARGP) lfunc 15,@max la 1,8 BCALL l 1,276(HGAUTOP) temp st 0,8(1) $59 equ * l 2,264(HGAUTOP) lr 0,2 B $42 $42 EPILOG 1,280 DC C'END acommute' distrib PROLOG 1 $61 equ * l 1,0(HGAUTOP) l 2,0(1) sll 2,2 a 2,0(HGAUTOP) a 2,=f'88' st 2,96(HGAUTOP) l 2,=f'1000' st 2,80(HGAUTOP) sr 2,2 st 2,88(HGAUTOP) l 2,0(HGAUTOP) a 2,=f'88' st 2,68(HGAUTOP) $62 equ * l 2,68(HGAUTOP) c 2,96(HGAUTOP) bh $63 l 1,68(HGAUTOP) l 2,0(1) l 2,0(2) c 2,=f'42' bne $64 l 1,68(HGAUTOP) l 2,0(1) l 2,16(2) l 2,0(2) c 2,=f'21' bne $64 sr 2,2 st 2,84(HGAUTOP) l 2,0(HGAUTOP) a 2,=f'88' st 2,72(HGAUTOP) $65 equ * l 2,72(HGAUTOP) c 2,96(HGAUTOP) bh $66 l 2,68(HGAUTOP) c 2,72(HGAUTOP) be $67 l 1,72(HGAUTOP) l 2,0(1) l 2,0(2) c 2,=f'42' bne $67 l 1,72(HGAUTOP) l 2,0(1) l 2,16(2) l 2,0(2) c 2,=f'21' bne $67 l 1,68(HGAUTOP) l 2,0(1) l 2,16(2) l 2,12(2) l 1,72(HGAUTOP) l 3,0(1) l 3,16(3) c 2,12(3) bne $68 l 1,72(HGAUTOP) l 2,0(1) l 1,68(HGAUTOP) l 3,0(1) l 3,12(3) st 3,16(2) lr 2,3 l 1,72(HGAUTOP) l 2,0(1) l 3,=f'40' st 3,0(2) lr 2,3 l 1,68(HGAUTOP) l 2,0(1) l 1,72(HGAUTOP) l 3,0(1) st 3,12(2) lr 2,3 l 1,68(HGAUTOP) l 2,0(1) st 2,0(HGARGP) lfunc 15,@optim la 1,4 BCALL l 1,68(HGAUTOP) st 0,0(1) l 2,72(HGAUTOP) st 2,0(HGARGP) l 2,96(HGAUTOP) st 2,4(HGARGP) lfunc 15,@squash la 1,8 BCALL l 2,0(HGAUTOP) l 0,0(2) lr 1,0 s 1,=f'1' st 1,0(2) lr 2,0 B $61 $68 equ * l 1,72(HGAUTOP) l 2,0(1) l 2,16(2) l 2,12(2) l 1,68(HGAUTOP) l 3,0(1) l 3,16(3) l 0,12(3) srda 2,32 dr 2,0 ltr 2,2 be $69 l 1,68(HGAUTOP) l 2,0(1) l 2,16(2) l 2,12(2) l 1,72(HGAUTOP) l 3,0(1) l 3,16(3) l 0,12(3) srda 2,32 dr 2,0 ltr 2,2 bne $70 l 2,84(HGAUTOP) lr 0,2 a 0,=f'1' st 0,84(HGAUTOP) l 2,72(HGAUTOP) st 2,100(HGAUTOP) $70 equ * $67 equ * l 2,72(HGAUTOP) lr 0,2 a 0,=f'4' st 0,72(HGAUTOP) B $65 $66 equ * l 2,84(HGAUTOP) ltr 2,2 bnh $71 l 2,84(HGAUTOP) c 2,80(HGAUTOP) bnl $71 l 2,84(HGAUTOP) st 2,80(HGAUTOP) l 2,68(HGAUTOP) st 2,88(HGAUTOP) l 2,100(HGAUTOP) st 2,92(HGAUTOP) $71 equ * $69 equ * $64 equ * l 2,68(HGAUTOP) lr 0,2 a 0,=f'4' st 0,68(HGAUTOP) B $62 $63 equ * l 2,88(HGAUTOP) ltr 2,2 be $60 l 2,0(HGAUTOP) l 0,4(2) s 0,=f'1' st 0,4(2) lr 2,0 sll 2,2 a 2,0(HGAUTOP) l 2,8(2) st 2,76(HGAUTOP) l 2,88(HGAUTOP) st 2,68(HGAUTOP) l 2,92(HGAUTOP) st 2,72(HGAUTOP) l 2,=f'40' l 1,76(HGAUTOP) st 2,0(1) l 2,76(HGAUTOP) l 1,68(HGAUTOP) l 3,0(1) l 3,4(3) st 3,4(2) lr 2,3 l 2,76(HGAUTOP) l 1,68(HGAUTOP) l 3,0(1) st 3,12(2) lr 2,3 l 2,76(HGAUTOP) l 1,72(HGAUTOP) l 3,0(1) l 3,12(3) st 3,16(2) lr 2,3 l 1,68(HGAUTOP) l 2,0(1) l 2,16(2) l 1,68(HGAUTOP) l 4,0(1) l 4,16(4) l 4,12(4) l 1,72(HGAUTOP) l 5,0(1) l 5,16(5) l 0,12(5) srda 4,32 dr 4,0 st 5,12(2) lr 2,5 l 1,72(HGAUTOP) l 2,0(1) l 3,76(HGAUTOP) st 3,12(2) lr 2,3 l 1,72(HGAUTOP) l 2,0(1) st 2,0(HGARGP) lfunc 15,@optim la 1,4 BCALL st 0,76(HGAUTOP) l 2,68(HGAUTOP) c 2,72(HGAUTOP) bnl $72 l 2,76(HGAUTOP) l 1,68(HGAUTOP) st 2,0(1) l 2,72(HGAUTOP) st 2,0(HGARGP) l 2,96(HGAUTOP) st 2,4(HGARGP) lfunc 15,@squash la 1,8 BCALL l 2,0(HGAUTOP) l 0,0(2) lr 1,0 s 1,=f'1' st 1,0(2) lr 2,0 B $61 $72 equ * l 2,76(HGAUTOP) l 1,72(HGAUTOP) st 2,0(1) l 2,68(HGAUTOP) st 2,0(HGARGP) l 2,96(HGAUTOP) st 2,4(HGARGP) lfunc 15,@squash la 1,8 BCALL l 2,0(HGAUTOP) l 0,0(2) lr 1,0 s 1,=f'1' st 1,0(2) lr 2,0 B $61 $60 EPILOG 1,104 DC C'END distrib' squash PROLOG 2 l 2,0(HGAUTOP) st 2,72(HGAUTOP) $74 equ * l 2,72(HGAUTOP) c 2,4(HGAUTOP) bnl $75 l 2,72(HGAUTOP) l 2,4(2) l 1,72(HGAUTOP) st 2,0(1) $76 equ * l 2,72(HGAUTOP) lr 0,2 a 0,=f'4' st 0,72(HGAUTOP) B $74 $75 equ * $73 EPILOG 2,76 DC C'END squash' const PROLOG 3 l 2,8(HGAUTOP) st 2,76(HGAUTOP) l 2,0(HGAUTOP) lr 0,2 B $79 $80 equ * l 2,4(HGAUTOP) l 0,0(2) a 0,76(HGAUTOP) st 0,0(2) lr 2,0 B $77 $81 equ * l 1,4(HGAUTOP) l 3,0(1) m 2,76(HGAUTOP) l 1,4(HGAUTOP) st 3,0(1) B $77 $82 equ * l 2,4(HGAUTOP) l 0,0(2) n 0,76(HGAUTOP) st 0,0(2) lr 2,0 B $77 $83 equ * l 2,4(HGAUTOP) l 0,0(2) o 0,76(HGAUTOP) st 0,0(2) lr 2,0 B $77 $84 equ * l 2,4(HGAUTOP) l 0,0(2) x 0,76(HGAUTOP) st 0,0(2) lr 2,0 B $77 $85 equ * $86 equ * l 2,76(HGAUTOP) ltr 2,2 bne $87 strgloc $88 dc x'C489A5898485408388858392' dc x'00' codeloc la 2,$88 st 2,0(HGARGP) lfunc 15,@error la 1,4 BCALL B $89 $87 equ * l 2,0(HGAUTOP) c 2,=f'43' bne $90 l 1,4(HGAUTOP) l 2,0(1) srda 2,32 d 2,76(HGAUTOP) l 1,4(HGAUTOP) st 3,0(1) B $91 $90 equ * l 1,4(HGAUTOP) l 2,0(1) srda 2,32 d 2,76(HGAUTOP) l 1,4(HGAUTOP) st 2,0(1) $91 equ * $89 equ * B $77 $92 equ * l 1,4(HGAUTOP) l 2,0(1) l 3,76(HGAUTOP) srl 2,0(3) l 1,4(HGAUTOP) st 2,0(1) B $77 $93 equ * l 1,4(HGAUTOP) l 2,0(1) l 3,76(HGAUTOP) sll 2,0(3) l 1,4(HGAUTOP) st 2,0(1) B $77 B $78 $79 equ * la 1,4 put 4 into r1 la 2,0 zero r2 $10014 c 2,$10013-4(1) is addr 0 ? be $10015+4 c 0,$10013(1) is case satisfied ? be $10015 la 1,8(1) bump r1 by 8 b $10014 $10015 s 1,=f'4' l 2,$10013(1) br 2 dataloc cnop 0,4 $10013 equ * dc a($80) dc f'40' dc a($81) dc f'42' dc a($85) dc f'43' dc a($86) dc f'44' dc a($92) dc f'45' dc a($93) dc f'46' dc a($82) dc f'47' dc a($83) dc f'48' dc a($84) dc f'49' dc f'0' dc a($78) codeloc * End of switch code. $78 equ * strgloc $94 dc x'C34085999996997A40839695A2A3' dc x'00' codeloc la 2,$94 st 2,0(HGARGP) lfunc 15,@error la 1,4 BCALL $77 EPILOG 3,80 DC C'END const' insert PROLOG 3 l 2,4(HGAUTOP) st 2,84(HGAUTOP) l 2,8(HGAUTOP) st 2,80(HGAUTOP) l 1,84(HGAUTOP) l 2,0(1) c 2,0(HGAUTOP) bne $96 $97 equ * l 2,80(HGAUTOP) l 0,4(2) lr 1,0 a 1,=f'1' st 1,4(2) lr 2,0 sll 2,2 a 2,80(HGAUTOP) l 3,84(HGAUTOP) st 3,8(2) lr 2,3 l 2,0(HGAUTOP) st 2,0(HGARGP) l 2,84(HGAUTOP) l 2,12(2) st 2,4(HGARGP) l 2,80(HGAUTOP) st 2,8(HGARGP) lfunc 15,@insert la 1,12 BCALL l 2,0(HGAUTOP) st 2,0(HGARGP) l 2,84(HGAUTOP) l 2,16(2) st 2,4(HGARGP) l 2,80(HGAUTOP) st 2,8(HGARGP) lfunc 15,@insert la 1,12 BCALL B $95 $96 equ * l 2,84(HGAUTOP) st 2,0(HGARGP) lfunc 15,@optim la 1,4 BCALL st 0,84(HGAUTOP) l 1,84(HGAUTOP) l 2,0(1) c 2,0(HGAUTOP) be $97 l 2,84(HGAUTOP) st 2,0(HGARGP) lfunc 15,@isfloat la 1,4 BCALL ltr 0,0 bne $98 l 1,84(HGAUTOP) l 2,0(1) c 2,=f'42' be $10016 l 1,84(HGAUTOP) l 2,0(1) c 2,=f'46' bne $99 $10016 equ * l 2,84(HGAUTOP) l 2,16(2) l 2,0(2) c 2,=f'21' bne $99 l 2,84(HGAUTOP) l 2,12(2) l 2,0(2) c 2,=f'40' bne $99 l 2,84(HGAUTOP) l 2,12(2) l 2,16(2) l 2,0(2) c 2,=f'21' bne $99 l 2,84(HGAUTOP) l 2,16(2) l 2,12(2) st 2,76(HGAUTOP) l 1,84(HGAUTOP) l 2,0(1) c 2,=f'42' bne $100 l 2,84(HGAUTOP) l 2,16(2) l 5,84(HGAUTOP) l 5,16(5) l 5,12(5) l 6,84(HGAUTOP) l 6,12(6) l 6,16(6) m 4,12(6) st 5,12(2) lr 2,5 B $101 $100 equ * l 2,84(HGAUTOP) l 2,16(2) l 3,84(HGAUTOP) l 3,12(3) l 3,16(3) l 3,12(3) l 4,76(HGAUTOP) sll 3,0(4) st 3,12(2) lr 2,3 $101 equ * l 2,84(HGAUTOP) l 2,12(2) l 2,16(2) l 3,76(HGAUTOP) st 3,12(2) lr 2,3 l 2,84(HGAUTOP) l 2,12(2) l 1,84(HGAUTOP) l 3,0(1) st 3,0(2) lr 2,3 l 2,=f'40' l 1,84(HGAUTOP) st 2,0(1) l 2,0(HGAUTOP) c 2,=f'40' be $97 $99 equ * $98 equ * l 2,84(HGAUTOP) st 2,0(HGARGP) lfunc 15,@degree la 1,4 BCALL st 0,76(HGAUTOP) sr 2,2 st 2,92(HGAUTOP) $102 equ * l 1,80(HGAUTOP) l 2,0(1) c 2,92(HGAUTOP) bnh $103 l 2,92(HGAUTOP) sll 2,2 a 2,80(HGAUTOP) l 2,88(2) st 2,0(HGARGP) lfunc 15,@degree la 1,4 BCALL st 0,88(HGAUTOP) c 0,76(HGAUTOP) bnl $105 l 2,92(HGAUTOP) sll 2,2 a 2,80(HGAUTOP) l 2,88(2) st 2,96(HGAUTOP) l 2,92(HGAUTOP) sll 2,2 a 2,80(HGAUTOP) l 3,84(HGAUTOP) st 3,88(2) lr 2,3 l 2,96(HGAUTOP) st 2,84(HGAUTOP) l 2,88(HGAUTOP) st 2,76(HGAUTOP) $105 equ * $104 equ * l 2,92(HGAUTOP) lr 0,2 a 0,=f'1' st 0,92(HGAUTOP) B $102 $103 equ * l 2,80(HGAUTOP) l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 sll 2,2 a 2,80(HGAUTOP) l 3,84(HGAUTOP) st 3,88(2) lr 2,3 $95 EPILOG 3,100 DC C'END insert' tvecloc @ctab EXTADDR ctab @fflg EXTADDR fflg @cone EXTADDR cone @cval EXTADDR cval @endp EXTADDR endp @line EXTADDR line @dimp EXTADDR dimp @nreg EXTADDR nreg @mainfil EXTADDR mainfile @cmst EXTADDR cmst @treebas EXTADDR treebase @csym EXTADDR csym @hgcurlo EXTADDR hgcurloc entry acommute @acommut INTFUNC acommute @functio EXTADDR function @cctab EXTADDR cctab @peekc EXTADDR peekc @space EXTADDR space @fcval EXTADDR fcval @cvtab EXTADDR cvtab @xdflg EXTADDR xdflg @inhdr EXTADDR inhdr @ftern EXTADDR ftern @swtab EXTADDR swtab @czero EXTADDR czero entry const @const INTFUNC const entry optim @optim INTFUNC optim @error EXTFUNC error @xtern EXTADDR xtern @deflab EXTADDR deflab @cp EXTADDR cp @ispow2 EXTFUNC ispow2 @efftab EXTADDR efftab @degree EXTFUNC degree @brklab EXTADDR brklab @hdebug EXTADDR hdebug @dimtab EXTADDR dimtab @regtab EXTADDR regtab @parame EXTADDR parame @hshtab EXTADDR hshtab @retlab EXTADDR retlab @paraml EXTADDR paraml @hgoffs EXTADDR hgoffs @maprel EXTADDR maprel @nstack EXTADDR nstack @nfloat EXTADDR nfloat @opdope EXTADDR opdope @defsym EXTADDR defsym @proflg EXTADDR proflg @mosflg EXTADDR mosflg @regvar EXTADDR regvar @osleft EXTADDR osleft @nchstr EXTADDR nchstr @strflg EXTADDR strflg @notrel EXTADDR notrel @symbuf EXTADDR symbuf @nerror EXTADDR nerror @printf EXTFUNC printf entry insert @insert INTFUNC insert entry squash @squash INTFUNC squash @eof EXTADDR eof @ndp EXTADDR ndp @machine EXTADDR machine @max EXTFUNC max @isn EXTADDR isn @contlab EXTADDR contlab @swp EXTADDR swp @initflg EXTADDR initflg @mainftn EXTADDR mainftn entry distrib @distrib INTFUNC distrib @isfloat EXTFUNC isfloat @hshused EXTADDR hshused @autolen EXTADDR autolen @peeksym EXTADDR peeksym @funcsym EXTADDR funcsym @isn1 EXTADDR isn1 entry unoptim @unoptim INTFUNC unoptim codeloc litloc ltorg end insert @insert INTFUNC insert entry squash @squash INTFUNC squash @eof EXTADDR eof @ndp EXTADDR ndp @machine EXTADDR machine @max EXTFUNC max @isn EXTADDR isn @contlab EXTADDR contlab @swp EXTADDR swp @initflg EXTADDR initflg @mainftn EXTADDR mainftn entry distrib @distrib INTFUNC distrib @isfloat EXTFUNC isfloat @hshused EXTADDR hshused @autolen EXTADDR autolen @peeksym EXTADDR peeksym @funcsym EXTADDR funcsym @ic14 startup dataloc cnop 0,4 regtabop equ * dc f'8' dc f'0' dc f'63' dc f'0' istrloc $1 dc x'05848305867DC3F17D25' dc x'00' dataloc dc a($1) dc f'16' dc f'0' dc f'63' dc f'0' dc f'0' dc f'16' dc f'5' dc f'63' dc f'0' istrloc $2 dc x'05848305814DC1F15D25' dc x'00' dataloc dc a($2) dc f'8' dc f'0' dc f'63' dc f'0' istrloc $3 dc x'05848305A77DD87D25' dc x'00' dataloc dc a($3) dc f'16' dc f'0' dc f'63' dc f'0' istrloc $4 dc x'058205C1F125' dc x'00' dataloc dc a($4) dc f'127' dc f'0' dc f'63' dc f'0' istrloc $5 dc x'C6F0F10582057BF14DD95D25' dc x'00' dataloc dc a($5) dc f'16' dc f'0' dc f'63' dc f'0' dc f'0' dc f'16' dc f'0' dc f'63' dc f'5' istrloc $6 dc x'059386A4958305F1F56BC1F125' dc x'00' dataloc dc a($6) dc f'63' dc f'0' dc f'63' dc f'0' dc f'0' dc f'63' dc f'0' dc f'63' dc f'5' istrloc $7 dc x'C6F2F005939905F1F56BD925' dc x'00' dataloc dc a($7) dc f'4' dc f'0' dc f'63' dc f'0' istrloc $8 dc x'05A29905D96BD925' dc x'00' dataloc dc a($8) dc f'16' dc f'3' dc f'63' dc f'0' istrloc $9 dc x'05A29905D96BD92505898305D96BC1F125' dc x'00' dataloc dc a($9) dc f'16' dc f'0' dc f'63' dc f'0' istrloc $10 dc x'059305D96BC1F125' dc x'00' dataloc dc a($10) dc f'16' dc f'4' dc f'63' dc f'0' istrloc $11 dc x'05A2849905C6D96BC6D92505938505C6D96BC1F125' dc x'00' dataloc dc a($11) dc f'16' dc f'5' dc f'63' dc f'0' istrloc $12 dc x'05938405C6D96BC1F125' dc x'00' dataloc dc a($12) dc f'16' dc f'0' dc f'63' dc f'0' dc f'0' dc f'16' dc f'3' dc f'63' dc f'0' istrloc $13 dc x'0593C2F105D96BC1F12505939905F06BD92505D605F06BC1F2' dc x'2505A2A3C2F105F06BC1F125' dc x'00' dataloc dc a($13) dc f'84' dc f'0' dc f'63' dc f'0' dc f'0' dc f'84' dc f'3' dc f'63' dc f'0' istrloc $14 dc x'C6F0F10593C2F105F06B7BF14DD95D2505939905F16BF02505' dc x'D605F16BC1F22505A2A3C2F105F16B7BF14DD95D2505939905' dc x'D96BF025' dc x'00' dataloc dc a($14) dc f'127' dc f'0' dc f'63' dc f'0' istrloc $15 dc x'C6F0F105939905F16BD9250593C2F105D96B7BF14DF15D2505' dc x'939905F06BD92505D605F06BC1F22505A2A3C2F105F06B7BF1' dc x'4DF15D25' dc x'00' dataloc dc a($15) dc f'16' dc f'0' dc f'63' dc f'0' dc f'0' dc f'16' dc f'4' dc f'63' dc f'0' istrloc $16 dc x'05938105D96BC1F125' dc x'00' dataloc dc a($16) dc f'16' dc f'18' dc f'63' dc f'0' dc f'0' dc f'16' dc f'19' dc f'63' dc f'0' istrloc $17 dc x'059305F16BC1F1250593C2F105D96BF04DF15D25' dc x'00' dataloc dc a($17) dc f'63' dc f'19' dc f'63' dc f'0' istrloc $18 dc x'C8F0F105A29905F16BF12505898305F16BA14DD95D25059399' dc x'05D96BF125' dc x'00' dataloc dc a($18) dc f'63' dc f'20' dc f'63' dc f'0' istrloc $19 dc x'C8F0F105A2849905C6D96BC6D92505938505C6D96BA14DD95D' dc x'25' dc x'00' dataloc dc a($19) dc f'63' dc f'0' dc f'63' dc f'0' dc f'0' dc f'63' dc f'21' dc f'63' dc f'0' istrloc $20 dc x'C8F0F10593C2C605E96BA14DD95D25' dc x'00' dataloc dc a($20) dc f'63' dc f'0' dc f'63' dc f'0' dc f'0' dc f'63' dc f'5' dc f'63' dc f'0' istrloc $21 dc x'C6F2F0059383C2C69905E96BE925' dc x'00' dataloc dc a($21) dc f'63' dc f'0' dc f'63' dc f'0' istrloc $22 dc x'C6F2F005A705D96B7EA77D86868686868686867D25' dc x'00' dataloc dc a($22) dc f'16' dc f'0' dc f'63' dc f'0' dc f'0' dc f'16' dc f'5' dc f'63' dc f'5' istrloc $23 dc x'E2F2F005A2A3C2F105E96BC1F125' dc x'00' dataloc dc a($23) dc f'80' dc f'0' dc f'63' dc f'0' istrloc $24 dc x'E2F2F0059305F16BC1F12505A2A3C2F105D96BF04DF15D25' dc x'00' dataloc dc a($24) dc f'16' dc f'0' dc f'63' dc f'5' istrloc $25 dc x'E2F2F0059496A5868905C6D96BD92505A2A3C2F105D96BC1F1' dc x'25' dc x'00' dataloc dc a($25) dc f'84' dc f'0' dc f'63' dc f'5' istrloc $26 dc x'E2F0F0C6F0F5059496A5868905C6D96BD92505A2A3C2F105D9' dc x'6B7BF14DD9F15D25' dc x'00' dataloc dc a($26) dc f'127' dc f'0' dc f'63' dc f'5' istrloc $27 dc x'C6F0F3E2F0F0059496A5868905C6D96BD92505A2A3C2F105D9' dc x'F16B7BF14DD95D2505939905D96BD9F125' dc x'00' dataloc dc a($27) dc f'127' dc f'0' dc f'20' dc f'0' istrloc $28 dc x'C6F0F1E2F0F405A2A3C2F105D9F16B7BF14DD95D2505939905' dc x'D96BD9F125' dc x'00' dataloc dc a($28) dc f'127' dc f'0' dc f'63' dc f'0' dc f'0' dc f'127' dc f'5' dc f'63' dc f'5' istrloc $29 dc x'C6F0F3E2F2F0059305F16BE32505A2A3C2F105E96B7BF14DF1' dc x'5D25' dc x'00' dataloc dc a($29) dc f'63' dc f'0' dc f'4' dc f'0' istrloc $30 dc x'C6F2F0' dc x'00' dataloc dc a($30) dc f'63' dc f'0' dc f'8' dc f'0' istrloc $31 dc x'C6F2F005A2999305D96BC3F225' dc x'00' dataloc dc a($31) dc f'63' dc f'0' dc f'20' dc f'0' istrloc $32 dc x'C6F0F0E2F0F405A2999305D96BF04DD9F15D25' dc x'00' dataloc dc a($32) dc f'63' dc f'0' dc f'63' dc f'0' istrloc $33 dc x'E2F0F2C6F2F0059305F16BE32505A2999305D96BF04DF15D25' dc x'00' dataloc dc a($33) dc f'63' dc f'0' dc f'4' dc f'0' istrloc $34 dc x'C6F2F0' dc x'00' dataloc dc a($34) dc f'63' dc f'0' dc f'8' dc f'0' istrloc $35 dc x'C6F2F005A2939305D96BC3F225' dc x'00' dataloc dc a($35) dc f'63' dc f'0' dc f'20' dc f'0' istrloc $36 dc x'C6F0F0E2F0F405A2939305D96BF04DD9F15D25' dc x'00' dataloc dc a($36) dc f'63' dc f'0' dc f'63' dc f'0' istrloc $37 dc x'E2F0F2C6F2F0059305F16BE32505A2939305D96BF04DF15D25' dc x'00' dataloc dc a($37) dc f'63' dc f'0' dc f'4' dc f'0' istrloc $38 dc x'C6F0F0' dc x'00' dataloc dc a($38) dc f'63' dc f'0' dc f'16' dc f'1' dc f'0' dc f'63' dc f'5' dc f'16' dc f'5' istrloc $39 dc x'C6F2F005D6C2F205E96BC1F225' dc x'00' dataloc dc a($39) dc f'63' dc f'0' dc f'84' dc f'1' istrloc $40 dc x'C6F0F0E2F0F505D6C2F205E96B7BF24DD9F15D25' dc x'00' dataloc dc a($40) dc f'63' dc f'0' dc f'20' dc f'0' istrloc $41 dc x'C6F0F0E2F0F405D69905D96BD9F125' dc x'00' dataloc dc a($41) dc f'63' dc f'0' dc f'63' dc f'0' dc f'0' dc f'63' dc f'5' dc f'63' dc f'5' istrloc $42 dc x'E2F0F2C6F2F005D6C2C605E96BE325' dc x'00' dataloc dc a($42) dc f'63' dc f'0' dc f'4' dc f'0' istrloc $43 dc x'05A29905D96BD925' dc x'00' dataloc dc a($43) dc f'63' dc f'0' dc f'16' dc f'1' istrloc $44 dc x'C6F0F0059505D96BC1F225' dc x'00' dataloc dc a($44) dc f'63' dc f'0' dc f'84' dc f'1' istrloc $45 dc x'C6F0F0E2F0F5059505D96B7BF24DD9F15D25' dc x'00' dataloc dc a($45) dc f'63' dc f'0' dc f'20' dc f'0' istrloc $46 dc x'C6F0F0E2F0F405959905D96BD9F125' dc x'00' dataloc dc a($46) dc f'63' dc f'0' dc f'63' dc f'0' istrloc $47 dc x'E2F0F2C6F0F0059505D96BE325' dc x'00' dataloc dc a($47) dc f'63' dc f'0' dc f'16' dc f'1' istrloc $48 dc x'C6F0F0059405D9606BC1F225' dc x'00' dataloc dc a($48) dc f'63' dc f'0' dc f'84' dc f'1' istrloc $49 dc x'C6F0F0E2F0F5059405D9606B7BF24DD9F15D25' dc x'00' dataloc dc a($49) dc f'63' dc f'0' dc f'20' dc f'0' istrloc $50 dc x'C6F0F0E2F0F405949905D9606BD9F125' dc x'00' dataloc dc a($50) dc f'63' dc f'0' dc f'63' dc f'0' istrloc $51 dc x'E2F0F2C6F0F0059405D9606BE325' dc x'00' dataloc dc a($51) dc f'63' dc f'5' dc f'16' dc f'5' istrloc $52 dc x'C6F0F00594C2F205C6D96BC1F225' dc x'00' dataloc dc a($52) dc f'63' dc f'5' dc f'63' dc f'5' istrloc $53 dc x'E2F0F2C6F0F005948405C6D96BE325' dc x'00' dataloc dc a($53) dc f'63' dc f'0' dc f'16' dc f'1' istrloc $54 dc x'C6F0F005A299848105D96BF3F225058405D96BC1F225' dc x'00' dataloc dc a($54) dc f'63' dc f'0' dc f'84' dc f'1' istrloc $55 dc x'C6F0F0E2F0F5059305F06B7BF24DD9F15D2505A299848105D9' dc x'6BF3F22505849905D96BF025' dc x'00' dataloc dc a($55) dc f'63' dc f'0' dc f'20' dc f'0' istrloc $56 dc x'C6F0F0E2F0F4059305F06BD9F12505A299848105D96BF3F225' dc x'05849905D96BF025' dc x'00' dataloc dc a($56) dc f'63' dc f'0' dc f'63' dc f'0' istrloc $57 dc x'E2F0F2C6F0F005A299848105D96BF3F225058405D96BE325' dc x'00' dataloc dc a($57) dc f'63' dc f'5' dc f'16' dc f'5' istrloc $58 dc x'C6F0F00584C2F205C6D96BC1F225' dc x'00' dataloc dc a($58) dc f'63' dc f'5' dc f'63' dc f'5' istrloc $59 dc x'E2F0F2C6F0F00584C2C605C6D96BE325' dc x'00' dataloc dc a($59) dc f'16' dc f'3' dc f'63' dc f'0' istrloc $60 dc x'E2F0F005A29905F06BF02505898305F06BC1F12505949905D9' dc x'606BF02505A2A38305D96BC1F125' dc x'00' dataloc dc a($60) dc f'16' dc f'0' dc f'63' dc f'0' istrloc $61 dc x'E2F0F0059405D9606BC1F12505A2A305D96BC1F125' dc x'00' dataloc dc a($61) dc f'84' dc f'3' dc f'63' dc f'0' istrloc $62 dc x'E2F0F0C6F0F505A29905F06BF02505898305F06B7BF14DD9F1' dc x'5D2505949905D9606BF02505A2A38305D96B7BF14DD9F15D25' dc x'00' dataloc dc a($62) dc f'84' dc f'0' dc f'63' dc f'0' istrloc $63 dc x'E2F0F0C6F0F5059405D9606B7BF14DD9F15D2505A2A305D96B' dc x'7BF14DD9F15D25' dc x'00' dataloc dc a($63) dc f'127' dc f'3' dc f'63' dc f'0' istrloc $64 dc x'C6F0F3E2F0F0059305F16BE32505A29905F06BF02505898305' dc x'F06B7BF14DF15D2505949905D9606BF02505A2A38305D96B7B' dc x'F14DF15D25' dc x'00' dataloc dc a($64) dc f'127' dc f'0' dc f'63' dc f'0' istrloc $65 dc x'C6F0F3E2F0F0059305F16BE325059405D9606B7BF14DF15D25' dc x'05A2A305D96B7BF14DF15D25' dc x'00' dataloc dc a($65) dc f'16' dc f'5' dc f'16' dc f'5' istrloc $66 dc x'C6F0F00594C2F205C6D96BC1F22505A2A3C2F105C6D96BC1F1' dc x'25' dc x'00' dataloc dc a($66) dc f'16' dc f'5' dc f'63' dc f'5' istrloc $67 dc x'E2F0F2C6F0F005948405C6D96BE32505A2A3C2F105C6D96BC1' dc x'F125' dc x'00' dataloc dc a($67) dc f'127' dc f'5' dc f'16' dc f'5' istrloc $68 dc x'C6F0F10593C2F105C6D96B7BF14DD95D250594C2F205C6D96B' dc x'C1F22505A2A3C2F105C6D96B7BF14DD95D25' dc x'00' dataloc dc a($68) dc f'127' dc f'5' dc f'63' dc f'5' istrloc $69 dc x'E2F0F2C6F0F10593C2F105C6D96B7BF14DD95D2505948405C6' dc x'D96BE32505A2A3C2F105C6D96B7BF14DD95D25' dc x'00' dataloc dc a($69) dc f'16' dc f'3' dc f'63' dc f'0' dc f'0' dc f'16' dc f'0' dc f'63' dc f'0' istrloc $70 dc x'E2F0F00593C2F105F06BC1F12505A299848105F06BF3F22505' dc x'849905F06BD9254005A2A3C2F105F16BC1F12505939905D94E' dc x'6BF125' dc x'00' dataloc dc a($70) dc f'84' dc f'3' dc f'63' dc f'0' dc f'0' dc f'84' dc f'0' dc f'63' dc f'0' istrloc $71 dc x'E2F0F0C6F0F50593C2F105F06B7BF14DD9F15D2505A2998481' dc x'05F06BF3F22505849905F06BD92505A2A3C2F105F16B7BF14D' dc x'D9F15D2505939905D94E6BF125' dc x'00' dataloc dc a($71) dc f'127' dc f'0' dc f'63' dc f'0' istrloc $72 dc x'E2F0F2C6F0F10593C2F105F06B7BF14DD95D2505A299848105' dc x'F06BF3F225058405F06BE32505A2A3C2F105F16B7BF14DD95D' dc x'2505939905D94E6BF125' dc x'00' dataloc dc a($72) dc f'16' dc f'5' dc f'16' dc f'5' istrloc $73 dc x'C6F0F00584C2F205C6D96BC1F22505A2A3C2F105C6D96BC1F1' dc x'25' dc x'00' dataloc dc a($73) dc f'16' dc f'5' dc f'63' dc f'5' istrloc $74 dc x'E2F0F2C6F0F005848405C6D96BE32505A2A3C2F105C6D96BC1' dc x'F125' dc x'00' dataloc dc a($74) dc f'127' dc f'5' dc f'16' dc f'5' istrloc $75 dc x'C6F0F10593C2F105C6D96B7BF14DD95D250594C2F205C6D96B' dc x'C1F22505A2A3C2F105C6D96B7BF14DD95D25' dc x'00' dataloc dc a($75) dc f'127' dc f'5' dc f'63' dc f'5' istrloc $76 dc x'E2F0F2C6F0F10593C2F105C6D96B7BF14DD95D2505848405C6' dc x'D96BE32505A2A3C2F105C6D96B7BF14DD95D25' dc x'00' dataloc dc a($76) dc f'16' dc f'3' dc f'63' dc f'0' dc f'0' dc f'16' dc f'0' dc f'63' dc f'0' istrloc $77 dc x'E2F0F00593C2F105F06BC1F12505A299848105F06BF3F22505' dc x'849905F06BD92505A2A3C2F105F06BC1F12505939905D96BF0' dc x'25' dc x'00' dataloc dc a($77) dc f'84' dc f'3' dc f'63' dc f'0' dc f'0' dc f'84' dc f'0' dc f'63' dc f'0' istrloc $78 dc x'E2F0F0C6F0F50593C2F105F06B7BF14DD9F15D2505A2998481' dc x'05F06BF3F22505849905F06BD92505A2A3C2F105F06B7BF14D' dc x'D9F15D2505939905D96BF025' dc x'00' dataloc dc a($78) dc f'127' dc f'0' dc f'63' dc f'0' istrloc $79 dc x'E2F0F2C6F0F10593C2F105F06B7BF14DD95D2505A299848105' dc x'F06BF3F225058405F06BE32505A2A3C2F105F06B7BF14DD95D' dc x'2505939905D96BF025' dc x'00' dataloc dc a($79) dc f'16' dc f'0' dc f'8' dc f'0' istrloc $80 dc x'0593C2F105D96BC1F12505A2999305D96BC3F22505A2A3C2F1' dc x'05D96BC1F125' dc x'00' dataloc dc a($80) dc f'16' dc f'0' dc f'63' dc f'0' istrloc $81 dc x'E2F0F00593C2F105F16BC1F12505A2999305F16BF04DD95D25' dc x'05A2A3C2F105F16BC1F12505939905D96BF125' dc x'00' dataloc dc a($81) dc f'127' dc f'0' dc f'8' dc f'0' istrloc $82 dc x'C6F0F10593C2F105F16B7BF14DD95D2505A2999305F16BC3F2' dc x'2505A2A3C2F105F16B7BF14DD95D2505939905D96BF125' dc x'00' dataloc dc a($82) dc f'84' dc f'0' dc f'63' dc f'0' istrloc $83 dc x'E2F0F0C6F0F50593C2F105F16B7BF14DD9F15D2505A2999305' dc x'F16BF04DD95D2505A2A3C2F105F16B7BF14DD9F15D25059399' dc x'05D96BF125' dc x'00' dataloc dc a($83) dc f'127' dc f'0' dc f'63' dc f'0' istrloc $84 dc x'E2F0F2C6F0F10593C2F105F06B7BF14DD95D25059305F16BE3' dc x'2505A2999305F06BF04DF15D2505A2A3C2F105F06B7BF14DD9' dc x'5D2505939905D96BF025' dc x'00' dataloc dc a($84) dc f'16' dc f'0' dc f'8' dc f'0' istrloc $85 dc x'0593C2F105D96BC1F12505A2939305D96BC3F22505A2A3C2F1' dc x'05D96BC1F125' dc x'00' dataloc dc a($85) dc f'16' dc f'0' dc f'63' dc f'0' istrloc $86 dc x'E2F0F00593C2F105F16BC1F12505A2939305F16BF04DD95D25' dc x'05A2A3C2F105F16BC1F12505939905D96BF125' dc x'00' dataloc dc a($86) dc f'127' dc f'0' dc f'8' dc f'0' istrloc $87 dc x'C6F0F10593C2F105F16B7BF14DD95D2505A2939305F16BC3F2' dc x'2505A2A3C2F105F16B7BF14DD95D2505939905D96BF125' dc x'00' dataloc dc a($87) dc f'84' dc f'0' dc f'63' dc f'0' istrloc $88 dc x'E2F0F0C6F0F50593C2F105F16B7BF14DD9F15D2505A2939305' dc x'F16BF04DD95D2505A2A3C2F105F16B7BF14DD9F15D25059399' dc x'05D96BF125' dc x'00' dataloc dc a($88) dc f'127' dc f'0' dc f'63' dc f'0' istrloc $89 dc x'E2F0F2C6F0F10593C2F105F06B7BF14DD95D25059305F16BE3' dc x'2505A2939305F06BF04DF15D2505A2A3C2F105F06B7BF14DD9' dc x'5D2505939905D96BF025' dc x'00' dataloc dc a($89) dc f'16' dc f'3' dc f'63' dc f'0' istrloc $90 dc x'E2F2F005A29905F16BF12505898305F16BC1F12505D69905D9' dc x'6BF12505A2A38305D96BC1F125' dc x'00' dataloc dc a($90) dc f'16' dc f'0' dc f'63' dc f'0' dc f'0' dc f'16' dc f'5' dc f'63' dc f'5' istrloc $91 dc x'E2F2F005D6C2F105E96BC1F12505A2A3C2F105E96BC1F125' dc x'00' dataloc dc a($91) dc f'84' dc f'3' dc f'16' dc f'1' dc f'0' dc f'84' dc f'0' dc f'16' dc f'1' istrloc $92 dc x'C6F0F10593C2F105F06B7BF14DD95D2505D605F06BC1F22505' dc x'A2A3C2F105F06B7BF14DD95D2505939905D96BF025' dc x'00' dataloc dc a($92) dc f'84' dc f'3' dc f'63' dc f'0' istrloc $93 dc x'E2F0F0C6F0F505A29905F06BF02505898305F06B7BF14DD9F1' dc x'5D2505D69905D96BF02505A2A38305D96B7BF14DD9F15D25' dc x'00' dataloc dc a($93) dc f'84' dc f'0' dc f'63' dc f'0' istrloc $94 dc x'E2F0F0C6F0F505D605D96B7BF14DD9F15D2505A2A305D96B7B' dc x'F14DD9F15D25' dc x'00' dataloc dc a($94) dc f'127' dc f'0' dc f'16' dc f'1' istrloc $95 dc x'C6F2F105939905F16BD9250593C2F105D96B7BF14DF15D2505' dc x'D605D96BC1F22505A2A3C2F105D96B7BF14DF15D25' dc x'00' dataloc dc a($95) dc f'127' dc f'3' dc f'63' dc f'0' istrloc $96 dc x'C6F0F3E2F0F0059305F16BE32505A29905F06BF02505898305' dc x'F06B7BF14DF15D2505D69905D96BF02505A2A38305D96B7BF1' dc x'4DF15D25' dc x'00' dataloc dc a($96) dc f'127' dc f'0' dc f'63' dc f'0' istrloc $97 dc x'C6F0F3E2F2F0059305F16BE32505D605D96B7BF14DF15D2505' dc x'A2A305D96B7BF14DF15D25' dc x'00' dataloc dc a($97) dc f'127' dc f'5' dc f'16' dc f'5' istrloc $98 dc x'C6F0F1059305C6D96B7BF14DD95D250581C2F205C6D96BC1F2' dc x'2505A2A3C2F105C6D96B7BF14DD95D25' dc x'00' dataloc dc a($98) dc f'127' dc f'5' dc f'63' dc f'5' istrloc $99 dc x'E2F0F2C6F0F1059305C6D96B7BF14DD95D2505818405C6D96B' dc x'E32505A2A3C2F105C6D96B7BF14DD95D25' dc x'00' dataloc dc a($99) dc f'16' dc f'3' dc f'63' dc f'0' istrloc $100 dc x'E2F2F005A29905F16BF12505898305F16BC1F12505D69905D9' dc x'6BF1250593839905D96BD92505A2A38305D96BC1F125' dc x'00' dataloc dc a($100) dc f'16' dc f'0' dc f'16' dc f'1' istrloc $101 dc x'059305D96BC1F12505D605D96BC1F22505A2A305D96BC1F125' dc x'00' dataloc dc a($101) dc f'16' dc f'0' dc f'63' dc f'0' dc f'0' dc f'16' dc f'5' dc f'63' dc f'5' istrloc $102 dc x'E2F2F005D6C2F105E96BC1F125059383C2C69905E96BE92505' dc x'A2A3C2F105E96BC1F125' dc x'00' dataloc dc a($102) dc f'84' dc f'3' dc f'16' dc f'1' istrloc $103 dc x'C6F0F105A29905F06BF02505898305F06B7BF14DD95D2505D6' dc x'05F06BC1F22505A2A38305F06B7BF14DD95D2505939905D96B' dc x'F025' dc x'00' dataloc dc a($103) dc f'84' dc f'3' dc f'63' dc f'0' istrloc $104 dc x'E2F0F0C6F0F505A29905F06BF02505898305F06B7BF14DD9F1' dc x'5D2505D69905F06BD92505A2A38305F06B7BF14DD9F15D2505' dc x'939905D96BF025' dc x'00' dataloc dc a($104) dc f'84' dc f'0' dc f'16' dc f'1' istrloc $105 dc x'C6F0F1059305F06B7BF14DD95D2505D605F06BC1F22505A2A3' dc x'05F06B7BF14DD95D2505939905D96BF025' dc x'00' dataloc dc a($105) dc f'84' dc f'0' dc f'63' dc f'0' istrloc $106 dc x'E2F0F0C6F0F505D605D96B7BF14DD9F15D250593839905D96B' dc x'D92505A2A305D96B7BF14DD9F15D25' dc x'00' dataloc dc a($106) dc f'127' dc f'3' dc f'16' dc f'1' istrloc $107 dc x'C6F2F105939905F16BD92505A29905D96BD92505898305D96B' dc x'7BF14DF15D2505D605D96BC1F22505A2A38305D96B7BF14DF1' dc x'5D25' dc x'00' dataloc dc a($107) dc f'127' dc f'3' dc f'63' dc f'0' istrloc $108 dc x'C6F0F3E2F0F0059305F16BE32505A29905F06BF02505898305' dc x'F06B7BF14DF15D2505D69905F06BD92505A2A38305F06B7BF1' dc x'4DF15D2505939905D96BF025' dc x'00' dataloc dc a($108) dc f'127' dc f'0' dc f'16' dc f'1' istrloc $109 dc x'C6F2F105939905F16BD925059305D96B7BF14DF15D2505D605' dc x'D96BC1F22505A2A305D96B7BF14DF15D25' dc x'00' dataloc dc a($109) dc f'127' dc f'0' dc f'63' dc f'0' istrloc $110 dc x'C6F0F3E2F2F0059305F16BE32505D69905D96B7BF14DF15D25' dc x'0593839905D96BD92505A2A305D96B7BF14DF15D25' dc x'00' dataloc dc a($110) dc f'127' dc f'5' dc f'16' dc f'5' istrloc $111 dc x'C6F0F10593C2F105C6D96B7BF14DD95D2505A2C2F205C6D96B' dc x'C1F22505A2A3C2F105C6D96B7BF14DD95D25' dc x'00' dataloc dc a($111) dc f'127' dc f'5' dc f'63' dc f'5' istrloc $112 dc x'E2F0F2C6F0F10593C2F105C6D96B7BF14DD95D2505A28405C6' dc x'D96BE32505A2A3C2F105C6D96B7BF14DD95D25' dc x'00' dataloc dc a($112) dc f'16' dc f'0' dc f'63' dc f'0' istrloc $113 dc x'059305D96BC1F125059496A5898605C6D96BD925' dc x'00' dataloc dc a($113) dc f'127' dc f'0' dc f'63' dc f'0' istrloc $114 dc x'C6F0F1059305D96B7BF14DD95D25059496A5898605C6D96BD9' dc x'25' dc x'00' dataloc dc a($114) dc f'63' dc f'0' dc f'63' dc f'0' istrloc $115 dc x'C6F2F0059496A5898605C6D96BD925' dc x'00' dataloc dc a($115) dc f'63' dc f'5' dc f'63' dc f'0' istrloc $116 dc x'C6F2F0059496A5868905C6D96BD925' dc x'00' dataloc dc a($116) dc 16x'00' cnop 0,4 codeloc dataloc cnop 0,4 regtab equ * dc f'106' dc a(200+regtabop) dc f'32' dc a(300+regtabop) dc f'33' dc a(300+regtabop) dc f'35' dc a(400+regtabop) dc f'36' dc a(440+regtabop) dc f'37' dc a(560+regtabop) dc f'38' dc a(600+regtabop) dc f'101' dc a(120+regtabop) dc f'80' dc a(620+regtabop) dc f'40' dc a(960+regtabop) dc f'41' dc a(960+regtabop) dc f'42' dc a(1200+regtabop) dc f'43' dc a(1320+regtabop) dc f'44' dc a(1320+regtabop) dc f'45' dc a(800+regtabop) dc f'46' dc a(880+regtabop) dc f'47' dc a(1100+regtabop) dc f'48' dc a(960+regtabop) dc f'49' dc a(960+regtabop) dc f'70' dc a(2120+regtabop) dc f'71' dc a(2360+regtabop) dc f'72' dc a(1440+regtabop) dc f'73' dc a(1640+regtabop) dc f'74' dc a(1820+regtabop) dc f'75' dc a(1920+regtabop) dc f'76' dc a(2020+regtabop) dc f'77' dc a(2120+regtabop) dc f'78' dc a(2120+regtabop) dc f'79' dc a(2120+regtabop) dc f'102' dc a(80+regtabop) dc f'51' dc a(2640+regtabop) dc f'52' dc a(2700+regtabop) dc f'104' dc a(regtabop) dc f'107' dc a(60+regtabop) dc f'0' dc f'0' cnop 0,4 codeloc tvecloc entry regtabop entry regtab codeloc litloc ltorg end bop) dc f'72' dc a(1440+regtabop) dc f'73' dc a(1640+regtabop) dc f'74' dc a(1820+regtabop) dc f'75' dc a(1920+regtabop) dc f'76' dcc15 startup dataloc cnop 0,4 cctabop equ * dc f'63' dc f'0' dc f'4' dc f'0' dc f'0' dc f'63' dc f'4' dc f'4' dc f'0' dc f'0' dc f'63' dc f'5' dc f'4' dc f'0' dc f'0' dc f'63' dc f'4' dc f'4' dc f'4' dc f'0' dc f'63' dc f'5' dc f'4' dc f'5' istrloc $1 dc x'C6F2F00593A3C2C69905E96BE925' dc x'00' dataloc dc a($1) dc f'63' dc f'0' dc f'16' dc f'1' dc f'0' dc f'63' dc f'4' dc f'16' dc f'5' dc f'0' dc f'63' dc f'5' dc f'16' dc f'5' istrloc $2 dc x'C6F2F00583C2C605E96BC1F225' dc x'00' dataloc dc a($2) dc f'63' dc f'0' dc f'84' dc f'1' dc f'0' dc f'63' dc f'4' dc f'84' dc f'4' dc f'0' dc f'63' dc f'4' dc f'84' dc f'5' istrloc $3 dc x'C6F0F0E2F0F50583C2C605E96B7BF24DD9F15D25' dc x'00' dataloc dc a($3) dc f'63' dc f'0' dc f'20' dc f'0' istrloc $4 dc x'C6F0F0E2F0F405839905D96BD9F125' dc x'00' dataloc dc a($4) dc f'63' dc f'0' dc f'63' dc f'0' dc f'0' dc f'63' dc f'4' dc f'63' dc f'4' dc f'0' dc f'63' dc f'4' dc f'20' dc f'4' dc f'0' dc f'63' dc f'5' dc f'20' dc f'5' dc f'0' dc f'63' dc f'5' dc f'63' dc f'5' istrloc $5 dc x'E2F0F2C6F2F00583C2C605E96BE325' dc x'00' dataloc dc a($5) dc f'63' dc f'0' dc f'63' dc f'0' dc f'0' dc f'63' dc f'4' dc f'63' dc f'4' istrloc $6 dc x'C8F0F0' dc x'00' dataloc dc a($6) dc 16x'00' cnop 0,4 codeloc dataloc cnop 0,4 cctab equ * dc f'60' dc a(cctabop) dc f'61' dc a(cctabop) dc f'62' dc a(cctabop) dc f'63' dc a(cctabop) dc f'64' dc a(cctabop) dc f'65' dc a(cctabop) dc f'66' dc a(cctabop) dc f'67' dc a(cctabop) dc f'68' dc a(cctabop) dc f'69' dc a(cctabop) dc f'0' dc f'0' cnop 0,4 codeloc tvecloc entry cctab entry cctabop codeloc litloc ltorg end '63' dc f'4' dc f'63' dc f'4' istrloc $6 dc x'C8F0F0' dc x'00' dataloc dc a($6) dc 16x'00' cnop 0,4 codeloc dataloc cnop 0,4 cctab equ * dc f'60' dc a(cctabop) dc f'61' dc a(cctabop) dc f'62' dc a(cctabop) dc f'63' dc a(cctabop) dc f'64' dc a(cctabop) dc f'pr1 startup dataloc codeloc dataloc codeloc dataloc ppeekc dc 4x'00' codeloc dataloc inlno dc 4x'00' codeloc dataloc lno1 dc 4x'00' codeloc dataloc lno2 dc 4x'00' codeloc dataloc instring dc 4x'00' codeloc dataloc exfail dc 4x'00' codeloc dataloc infil dc 4x'00' codeloc dataloc f1 dc 4x'00' codeloc dataloc f2 dc 4x'00' codeloc dataloc depth dc 4x'00' codeloc dataloc lp dc 4x'00' codeloc dataloc ppline dc 4x'00' codeloc dataloc lineno dc 4x'00' codeloc dataloc symtab dc 4x'00' codeloc dataloc codeloc dataloc defloc dc 4x'00' codeloc dataloc incloc dc 4x'00' codeloc dataloc eifloc dc 4x'00' codeloc dataloc ifdloc dc 4x'00' codeloc dataloc ifnloc dc 4x'00' codeloc dataloc locsys dc 4x'00' codeloc dataloc trulvl dc 4x'00' codeloc dataloc flslvl dc 4x'00' codeloc dataloc stringbu dc 4x'00' codeloc dataloc ln dc 512x'00' codeloc dataloc codeloc litloc ltorg mainloc $main$ equ * subsave runmain subretrn cc=00 ltorg stackdo codeloc main PROLOG 2 l 2,0(HGAUTOP) ltr 2,2 bne $2 strgloc $3 dc x'5C5CF2' dc x'00' codeloc la 2,$3 st 2,0(HGARGP) l 2,=f'166' st 2,4(HGARGP) lfunc 15,@copen la 1,8 BCALL l 1,@cout st 0,0(1) strgloc $4 dc x'5CE25C' dc x'00' codeloc la 2,$4 st 2,0(HGARGP) lfunc 15,@expand la 1,4 BCALL B $5 $2 equ * l 2,0(HGAUTOP) c 2,=f'3' bl $6 l 2,4(HGAUTOP) l 2,8(2) st 2,0(HGARGP) l 2,=f'166' st 2,4(HGARGP) lfunc 15,@copen la 1,8 BCALL l 1,@cout st 0,0(1) l 2,4(HGAUTOP) l 2,4(2) st 2,0(HGARGP) lfunc 15,@expand la 1,4 BCALL B $7 $6 equ * strgloc $8 dc x'C19987408396A495A3' dc x'00' codeloc la 2,$8 st 2,0(HGARGP) lfunc 15,@perror la 1,4 BCALL $7 equ * $5 equ * l 2,exfail ltr 2,2 be $9 l 2,=f'1' st 2,0(HGARGP) lfunc 15,@cexit la 1,4 BCALL $9 equ * $1 EPILOG 2,72 DC C'END main' expand PROLOG 1 l 2,0(HGAUTOP) st 2,0(HGARGP) l 2,=f'153' st 2,4(HGARGP) lfunc 15,@copen la 1,8 BCALL st 0,f1 st 0,infil ltr 0,0 bnl $11 strgloc $12 dc x'C381957DA34086899584406CA2' dc x'00' codeloc la 2,$12 st 2,0(HGARGP) l 2,0(HGAUTOP) st 2,4(HGARGP) lfunc 15,@perror la 1,8 BCALL B $10 $11 equ * l 2,@stab st 2,symtab sr 2,2 st 2,68(HGAUTOP) $13 equ * l 2,68(HGAUTOP) c 2,=f'1000' bnl $14 l 3,68(HGAUTOP) m 2,=f'12' a 3,@stab lr 2,3 sr 3,3 stc 3,0(2) lr 2,3 l 3,68(HGAUTOP) m 2,=f'12' a 3,@stab lr 2,3 sr 3,3 st 3,8(2) lr 2,3 $15 equ * l 2,68(HGAUTOP) lr 0,2 a 0,=f'1' st 0,68(HGAUTOP) B $13 $14 equ * strgloc $16 dc x'848586899585' dc x'00' codeloc la 2,defloc st 2,0(HGARGP) la 2,$16 st 2,4(HGARGP) lfunc 15,@insym la 1,8 BCALL strgloc $17 dc x'89958393A48485' dc x'00' codeloc la 2,incloc st 2,0(HGARGP) la 2,$17 st 2,4(HGARGP) lfunc 15,@insym la 1,8 BCALL strgloc $18 dc x'8595848986' dc x'00' codeloc la 2,eifloc st 2,0(HGARGP) la 2,$18 st 2,4(HGARGP) lfunc 15,@insym la 1,8 BCALL strgloc $19 dc x'8986848586' dc x'00' codeloc la 2,ifdloc st 2,0(HGARGP) la 2,$19 st 2,4(HGARGP) lfunc 15,@insym la 1,8 BCALL strgloc $20 dc x'898695848586' dc x'00' codeloc la 2,ifnloc st 2,0(HGARGP) la 2,$20 st 2,4(HGARGP) lfunc 15,@insym la 1,8 BCALL l 2,@sbf st 2,stringbu sr 2,2 st 2,trulvl sr 2,2 st 2,flslvl la 2,ln st 2,ppline sr 2,2 st 2,lineno sr 2,2 st 2,lno1 lfunc 15,@getch la 1,0 BCALL st 0,ppeekc c 0,=f'240' bl $21 l 2,ppeekc c 2,=f'249' bh $21 l 2,=f'1' a 2,lno1 st 2,lno1 $21 equ * l 2,ppeekc st 2,0(HGARGP) l 2,infil st 2,4(HGARGP) lfunc 15,@ungetc la 1,8 BCALL l 2,lno1 st 2,inlno $22 equ * lfunc 15,@getline la 1,0 BCALL ltr 0,0 be $23 l 2,infil c 2,f2 bne $24 l 2,=f'1' st 2,0(HGARGP) l 1,@cout l 2,0(1) st 2,4(HGARGP) lfunc 15,@cputc la 1,8 BCALL $24 equ * sr 2,2 ic 2,ln c 2,=f'123' be $25 l 2,flslvl ltr 2,2 bne $25 l 2,ppline st 2,72(HGAUTOP) $26 equ * l 2,72(HGAUTOP) lr 0,2 a 0,=f'1' st 0,72(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 st 2,68(HGAUTOP) ltr 2,2 be $27 l 2,68(HGAUTOP) st 2,0(HGARGP) l 1,@cout l 2,0(1) st 2,4(HGARGP) lfunc 15,@cputc la 1,8 BCALL B $26 $27 equ * $25 equ * l 2,=f'37' st 2,0(HGARGP) l 1,@cout l 2,0(1) st 2,4(HGARGP) lfunc 15,@cputc la 1,8 BCALL B $22 $23 equ * l 2,f1 st 2,0(HGARGP) lfunc 15,@cclose la 1,4 BCALL $10 EPILOG 1,76 DC C'END expand' getline PROLOG 0 l 2,infil c 2,f1 bne $29 l 2,lineno lr 0,2 a 0,=f'1' st 0,lineno $29 equ * sr 2,2 st 2,depth l 2,ppline st 2,lp sr 2,2 l 1,lp stc 2,0(1) sr 2,2 st 2,72(HGAUTOP) lfunc 15,@getch la 1,0 BCALL st 0,64(HGAUTOP) l 2,inlno ltr 2,2 be $30 $31 equ * l 2,64(HGAUTOP) c 2,=f'240' bl $32 l 2,64(HGAUTOP) c 2,=f'249' bh $32 lfunc 15,@getch la 1,0 BCALL st 0,64(HGAUTOP) B $31 $32 equ * l 2,64(HGAUTOP) c 2,=f'123' bne $33 lfunc 15,@getch la 1,0 BCALL st 0,64(HGAUTOP) $33 equ * $30 equ * l 2,64(HGAUTOP) c 2,=f'123' bne $34 l 2,=f'1' st 2,72(HGAUTOP) $34 equ * $35 equ * l 2,64(HGAUTOP) c 2,=f'37' be $36 l 2,64(HGAUTOP) ltr 2,2 be $36 l 2,64(HGAUTOP) st 2,0(HGARGP) lfunc 15,@alpha la 1,4 BCALL ltr 0,0 bne $10000 l 2,64(HGAUTOP) c 2,=f'109' bne $37 $10000 equ * l 2,lp st 2,80(HGAUTOP) l 2,64(HGAUTOP) st 2,0(HGARGP) lfunc 15,@sch la 1,4 BCALL $38 equ * lfunc 15,@getch la 1,0 BCALL st 0,64(HGAUTOP) st 0,0(HGARGP) lfunc 15,@alpha la 1,4 BCALL ltr 0,0 bne $10001 l 2,64(HGAUTOP) c 2,=f'240' bl $10002 l 2,64(HGAUTOP) c 2,=f'249' bnh $10001 $10002 equ * l 2,64(HGAUTOP) c 2,=f'109' bne $39 $10001 equ * l 2,64(HGAUTOP) st 2,0(HGARGP) lfunc 15,@sch la 1,4 BCALL B $38 $39 equ * sr 2,2 st 2,0(HGARGP) lfunc 15,@sch la 1,4 BCALL l 2,lp lr 0,2 s 0,=f'1' st 0,lp l 2,72(HGAUTOP) c 2,=f'3' bnh $40 l 2,flslvl ltr 2,2 bne $41 l 2,80(HGAUTOP) st 2,0(HGARGP) sr 2,2 st 2,4(HGARGP) lfunc 15,@plookup la 1,8 BCALL lr 2,0 sr 1,1 ic 1,0(2) lr 2,1 ltr 2,2 be $42 sr 2,2 B $43 $42 equ * l 2,=f'1' $43 equ * a 2,72(HGAUTOP) c 2,=f'5' bne $41 l 2,trulvl lr 0,2 a 0,=f'1' st 0,trulvl B $44 $41 equ * l 2,flslvl lr 0,2 a 0,=f'1' st 0,flslvl $44 equ * $45 equ * $46 equ * l 2,64(HGAUTOP) c 2,=f'37' be $47 l 2,64(HGAUTOP) ltr 2,2 be $47 lfunc 15,@getch la 1,0 BCALL st 0,64(HGAUTOP) B $46 $47 equ * l 2,64(HGAUTOP) lr 0,2 B $28 $40 equ * l 2,72(HGAUTOP) c 2,=f'2' bne $10003 l 2,flslvl ltr 2,2 bne $48 $10003 equ * l 2,64(HGAUTOP) st 2,0(HGARGP) l 2,infil st 2,4(HGARGP) lfunc 15,@ungetc la 1,8 BCALL l 2,80(HGAUTOP) st 2,0(HGARGP) l 2,72(HGAUTOP) st 2,4(HGARGP) lfunc 15,@plookup la 1,8 BCALL st 0,76(HGAUTOP) lfunc 15,@getch la 1,0 BCALL st 0,64(HGAUTOP) $48 equ * l 2,72(HGAUTOP) c 2,=f'1' bne $49 l 2,76(HGAUTOP) c 2,defloc bne $50 l 2,=f'2' st 2,72(HGAUTOP) B $51 $50 equ * l 2,76(HGAUTOP) c 2,incloc bne $52 l 2,=f'3' st 2,72(HGAUTOP) B $53 $52 equ * l 2,76(HGAUTOP) c 2,ifnloc bne $54 l 2,=f'4' st 2,72(HGAUTOP) B $55 $54 equ * l 2,76(HGAUTOP) c 2,ifdloc bne $56 l 2,=f'5' st 2,72(HGAUTOP) B $57 $56 equ * l 2,76(HGAUTOP) c 2,eifloc bne $58 l 2,flslvl ltr 2,2 be $59 l 2,flslvl s 2,=f'1' st 2,flslvl B $60 $59 equ * l 2,trulvl ltr 2,2 be $61 l 2,trulvl s 2,=f'1' st 2,trulvl B $62 $61 equ * strgloc $63 dc x'C986609385A2A2408595848986' dc x'00' codeloc la 2,$63 st 2,0(HGARGP) lfunc 15,@perror la 1,4 BCALL $62 equ * $60 equ * B $45 B $64 $58 equ * strgloc $65 dc x'E4958485868995858440839695A3999693' dc x'00' codeloc la 2,$65 st 2,0(HGARGP) lfunc 15,@perror la 1,4 BCALL $66 equ * l 2,64(HGAUTOP) c 2,=f'37' be $67 l 2,64(HGAUTOP) ltr 2,2 be $67 lfunc 15,@getch la 1,0 BCALL st 0,64(HGAUTOP) B $66 $67 equ * l 2,64(HGAUTOP) lr 0,2 B $28 $64 equ * $57 equ * $55 equ * $53 equ * $51 equ * B $68 $49 equ * l 2,72(HGAUTOP) c 2,=f'2' bne $69 l 2,flslvl ltr 2,2 bne $45 l 2,76(HGAUTOP) l 3,stringbu st 3,8(2) lr 2,3 l 2,64(HGAUTOP) st 2,0(HGARGP) lfunc 15,@savch la 1,4 BCALL $70 equ * lfunc 15,@getch la 1,0 BCALL st 0,64(HGAUTOP) c 0,=f'37' be $71 l 2,64(HGAUTOP) ltr 2,2 be $71 l 2,64(HGAUTOP) st 2,0(HGARGP) lfunc 15,@savch la 1,4 BCALL B $70 $71 equ * sr 2,2 st 2,0(HGARGP) lfunc 15,@savch la 1,4 BCALL lfunc 15,@trimsav la 1,0 BCALL l 2,=f'1' lr 0,2 B $28 $69 equ * $68 equ * B $35 B $72 $37 equ * l 2,64(HGAUTOP) st 2,68(HGAUTOP) c 2,=f'125' be $10004 l 2,68(HGAUTOP) c 2,=f'127' bne $73 $10004 equ * l 2,68(HGAUTOP) st 2,0(HGARGP) lfunc 15,@sch la 1,4 BCALL l 2,lp st 2,84(HGAUTOP) l 2,instring lr 0,2 a 0,=f'1' st 0,instring $74 equ * lfunc 15,@getch la 1,0 BCALL st 0,64(HGAUTOP) c 0,68(HGAUTOP) be $75 l 2,64(HGAUTOP) c 2,=f'37' be $75 l 2,64(HGAUTOP) ltr 2,2 be $75 l 2,64(HGAUTOP) st 2,0(HGARGP) lfunc 15,@sch la 1,4 BCALL l 2,64(HGAUTOP) c 2,=f'224' bne $76 lfunc 15,@getch la 1,0 BCALL st 0,0(HGARGP) lfunc 15,@sch la 1,4 BCALL $76 equ * B $74 $75 equ * sr 2,2 st 2,instring l 2,flslvl ltr 2,2 bne $45 l 2,72(HGAUTOP) c 2,=f'3' bne $77 sr 2,2 l 1,lp stc 2,0(1) $78 equ * lfunc 15,@getch la 1,0 BCALL st 0,64(HGAUTOP) c 0,=f'37' be $79 l 2,64(HGAUTOP) ltr 2,2 be $79 B $78 $79 equ * l 2,infil c 2,f2 bne $80 strgloc $81 dc x'D585A2A38584407D89958393A484857D' dc x'00' codeloc la 2,$81 st 2,0(HGARGP) lfunc 15,@perror la 1,4 BCALL $80 equ * l 2,84(HGAUTOP) st 2,0(HGARGP) l 2,=f'153' st 2,4(HGARGP) lfunc 15,@copen la 1,8 BCALL st 0,f2 ltr 0,0 bnl $82 strgloc $83 dc x'D489A2A28995874086899385406CA2' dc x'00' codeloc la 2,$83 st 2,0(HGARGP) l 2,84(HGAUTOP) st 2,4(HGARGP) lfunc 15,@perror la 1,8 BCALL B $84 $82 equ * l 2,f2 st 2,infil sr 2,2 st 2,lno2 lfunc 15,@getch la 1,0 BCALL st 0,ppeekc c 0,=f'240' bl $85 l 2,ppeekc c 2,=f'249' bh $85 l 2,=f'1' a 2,lno2 st 2,lno2 $85 equ * l 2,ppeekc st 2,0(HGARGP) l 2,infil st 2,4(HGARGP) lfunc 15,@ungetc la 1,8 BCALL l 2,lno2 st 2,inlno $84 equ * l 2,64(HGAUTOP) lr 0,2 B $28 $77 equ * $73 equ * $72 equ * l 2,64(HGAUTOP) st 2,0(HGARGP) lfunc 15,@sch la 1,4 BCALL lfunc 15,@getch la 1,0 BCALL st 0,64(HGAUTOP) B $35 $36 equ * sr 2,2 st 2,0(HGARGP) lfunc 15,@sch la 1,4 BCALL l 2,72(HGAUTOP) c 2,=f'1' bnh $86 strgloc $87 dc x'C39695A399969340A2A895A381A7' dc x'00' codeloc la 2,$87 st 2,0(HGARGP) lfunc 15,@perror la 1,4 BCALL $86 equ * l 2,64(HGAUTOP) lr 0,2 B $28 $28 EPILOG 0,88 DC C'END getline' insym PROLOG 2 l 2,4(HGAUTOP) st 2,0(HGARGP) l 2,=f'1' st 2,4(HGARGP) lfunc 15,@plookup la 1,8 BCALL st 0,72(HGAUTOP) l 1,0(HGAUTOP) st 0,0(1) l 2,72(HGAUTOP) l 3,72(HGAUTOP) st 3,8(2) lr 2,3 $88 EPILOG 2,76 DC C'END insym' perror PROLOG 2 strgloc $90 dc x'5CC65C40404040406C847A40' dc x'00' codeloc l 2,=f'2' st 2,0(HGARGP) la 2,$90 st 2,4(HGARGP) l 2,lineno st 2,8(HGARGP) lfunc 15,@printf la 1,12 BCALL l 2,=f'2' st 2,0(HGARGP) l 2,0(HGAUTOP) st 2,4(HGARGP) l 2,4(HGAUTOP) st 2,8(HGARGP) lfunc 15,@printf la 1,12 BCALL strgloc $91 dc x'25' dc x'00' codeloc l 2,=f'2' st 2,0(HGARGP) la 2,$91 st 2,4(HGARGP) lfunc 15,@printf la 1,8 BCALL l 2,exfail lr 0,2 a 0,=f'1' st 0,exfail $89 EPILOG 2,72 DC C'END perror' sch PROLOG 1 l 2,lp st 2,68(HGAUTOP) l 2,ppline a 2,=f'510' c 2,68(HGAUTOP) bne $93 strgloc $94 dc x'D38995854096A58599869396A6' dc x'00' codeloc la 2,$94 st 2,0(HGARGP) lfunc 15,@perror la 1,4 BCALL $93 equ * l 2,68(HGAUTOP) lr 0,2 a 0,=f'1' st 0,68(HGAUTOP) l 3,0(HGAUTOP) stc 3,0(2) lr 2,3 l 2,ppline a 2,=f'511' c 2,68(HGAUTOP) bnl $95 l 2,ppline a 2,=f'511' st 2,68(HGAUTOP) $95 equ * l 2,68(HGAUTOP) st 2,lp $92 EPILOG 1,72 DC C'END sch' savch PROLOG 1 l 2,stringbu lr 0,2 a 0,=f'1' st 0,stringbu l 3,0(HGAUTOP) stc 3,0(2) lr 2,3 l 2,stringbu s 2,@sbf c 2,=f'20000' bl $96 strgloc $97 dc x'A396964094A48388408485868995899587' dc x'00' codeloc la 2,$97 st 2,0(HGARGP) lfunc 15,@perror la 1,4 BCALL l 2,=f'1' st 2,0(HGARGP) lfunc 15,@cexit la 1,4 BCALL $96 EPILOG 1,68 DC C'END savch' trimsav PROLOG 0 l 2,stringbu lr 0,2 s 0,=f'1' st 0,stringbu $99 equ * l 2,stringbu a 2,=f'-1' sr 1,1 ic 1,0(2) lr 2,1 c 2,=f'64' bne $100 l 2,stringbu c 2,@sbf bnh $100 l 2,stringbu s 2,=f'1' st 2,stringbu sr 3,3 stc 3,0(2) lr 2,3 B $99 $100 equ * l 2,stringbu lr 0,2 a 0,=f'1' st 0,stringbu $98 EPILOG 0,64 DC C'END trimsav' getch PROLOG 0 $102 equ * lfunc 15,@getc1 la 1,0 BCALL st 0,64(HGAUTOP) c 0,=f'97' bne $103 l 2,instring ltr 2,2 bne $103 lfunc 15,@getc1 la 1,0 BCALL st 0,64(HGAUTOP) c 0,=f'92' be $104 l 2,64(HGAUTOP) st 2,0(HGARGP) l 2,infil st 2,4(HGARGP) lfunc 15,@ungetc la 1,8 BCALL l 2,=f'97' lr 0,2 B $101 $104 equ * $105 equ * lfunc 15,@getc1 la 1,0 BCALL st 0,64(HGAUTOP) $107 equ * l 2,64(HGAUTOP) lr 0,2 B $109 $110 equ * sr 2,2 lr 0,2 B $101 $111 equ * lfunc 15,@getc1 la 1,0 BCALL st 0,64(HGAUTOP) c 0,=f'97' be $102 B $107 $112 equ * l 2,infil c 2,f1 bne $113 l 2,=f'37' st 2,0(HGARGP) l 1,@cout l 2,0(1) st 2,4(HGARGP) lfunc 15,@cputc la 1,8 BCALL l 2,lineno lr 0,2 a 0,=f'1' st 0,lineno $113 equ * sr 2,2 st 2,depth B $105 B $108 $109 equ * la 1,4 put 4 into r1 la 2,0 zero r2 $10007 c 2,$10006-4(1) is addr 0 ? be $10008+4 c 0,$10006(1) is case satisfied ? be $10008 la 1,8(1) bump r1 by 8 b $10007 $10008 s 1,=f'4' l 2,$10006(1) br 2 dataloc cnop 0,4 $10006 equ * dc a($110) dc f'0' dc a($112) dc f'37' dc a($111) dc f'92' dc f'0' dc a($108) codeloc * End of switch code. $108 equ * B $105 $106 equ * $103 equ * l 2,64(HGAUTOP) lr 0,2 B $101 $101 EPILOG 0,68 DC C'END getch' getc1 PROLOG 0 l 2,infil st 2,0(HGARGP) lfunc 15,@cgetc la 1,4 BCALL st 0,64(HGAUTOP) ltr 0,0 bh $115 l 2,infil c 2,f2 bne $115 l 2,f2 st 2,0(HGARGP) lfunc 15,@cclose la 1,4 BCALL l 2,f1 st 2,infil l 2,lno1 st 2,inlno l 2,=f'37' st 2,0(HGARGP) l 1,@cout l 2,0(1) st 2,4(HGARGP) lfunc 15,@cputc la 1,8 BCALL lfunc 15,@getc1 la 1,0 BCALL st 0,64(HGAUTOP) $115 equ * l 2,64(HGAUTOP) ltr 2,2 bnl $116 sr 2,2 lr 0,2 B $114 $116 equ * l 2,64(HGAUTOP) lr 0,2 B $114 $114 EPILOG 0,68 DC C'END getc1' plookup PROLOG 2 l 2,0(HGAUTOP) st 2,72(HGAUTOP) sr 2,2 st 2,84(HGAUTOP) st 2,92(HGAUTOP) $118 equ * l 2,72(HGAUTOP) lr 0,2 a 0,=f'1' st 0,72(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 st 2,88(HGAUTOP) ltr 2,2 be $119 l 2,88(HGAUTOP) a 2,84(HGAUTOP) st 2,84(HGAUTOP) B $118 $119 equ * l 2,84(HGAUTOP) srda 2,32 d 2,=f'1000' st 2,84(HGAUTOP) l 3,84(HGAUTOP) m 2,=f'12' a 3,symtab st 3,80(HGAUTOP) $120 equ * l 1,80(HGAUTOP) lc 2,0(1) ltr 2,2 be $121 l 2,80(HGAUTOP) st 2,76(HGAUTOP) l 2,0(HGAUTOP) st 2,72(HGAUTOP) $122 equ * l 2,76(HGAUTOP) lr 0,2 a 0,=f'1' st 0,76(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 l 1,72(HGAUTOP) lc 3,0(1) cr 2,3 bne $123 l 2,72(HGAUTOP) lr 0,2 a 0,=f'1' st 0,72(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 ltr 2,2 be $10009 l 2,0(HGAUTOP) a 2,=f'8' c 2,72(HGAUTOP) bne $124 $10009 equ * l 2,4(HGAUTOP) ltr 2,2 bne $125 l 2,0(HGAUTOP) st 2,0(HGARGP) l 2,80(HGAUTOP) st 2,4(HGARGP) lfunc 15,@subst la 1,8 BCALL $125 equ * l 2,80(HGAUTOP) lr 0,2 B $117 $124 equ * B $122 $123 equ * l 2,=f'12' a 2,80(HGAUTOP) st 2,80(HGAUTOP) l 3,symtab a 3,=f'12000' cr 2,3 bl $126 l 2,92(HGAUTOP) lr 0,2 a 0,=f'1' st 0,92(HGAUTOP) ltr 2,2 be $127 strgloc $128 dc x'A3969640948195A840848586899585A2' dc x'00' codeloc la 2,$128 st 2,0(HGARGP) lfunc 15,@perror la 1,4 BCALL l 2,=f'1' st 2,0(HGARGP) lfunc 15,@cexit la 1,4 BCALL B $129 $127 equ * l 2,symtab st 2,80(HGAUTOP) $129 equ * $126 equ * B $120 $121 equ * l 2,4(HGAUTOP) ltr 2,2 be $130 l 2,0(HGAUTOP) st 2,76(HGAUTOP) l 2,80(HGAUTOP) st 2,72(HGAUTOP) $131 equ * l 2,80(HGAUTOP) a 2,=f'8' c 2,72(HGAUTOP) bnh $132 l 2,72(HGAUTOP) lr 0,2 a 0,=f'1' st 0,72(HGAUTOP) l 1,76(HGAUTOP) lc 3,0(1) stc 3,0(2) lr 2,3 ltr 2,2 be $133 l 2,76(HGAUTOP) lr 0,2 a 0,=f'1' st 0,76(HGAUTOP) $133 equ * B $131 $132 equ * $130 equ * l 2,80(HGAUTOP) lr 0,2 B $117 $117 EPILOG 2,96 DC C'END plookup' dataloc revbuff dc 200x'00' codeloc dataloc bp dc 4x'00' codeloc backsch PROLOG 1 l 2,bp la 3,revbuff sr 2,3 c 2,=f'200' bnh $135 strgloc $136 dc x'C5A78385A2A289A585408485868995854093969697899587' dc x'00' codeloc la 2,$136 st 2,0(HGARGP) l 2,bp lr 0,2 s 0,=f'1' st 0,bp st 2,4(HGARGP) lfunc 15,@perror la 1,8 BCALL $135 equ * l 2,bp lr 0,2 a 0,=f'1' st 0,bp l 3,0(HGAUTOP) stc 3,0(2) lr 2,3 $134 EPILOG 1,68 DC C'END backsch' subst PROLOG 2 l 2,0(HGAUTOP) st 2,lp la 2,revbuff st 2,bp l 2,depth lr 0,2 a 0,=f'1' st 0,depth c 2,=f'100' bnh $138 strgloc $139 dc x'84858689958540998583A499A2899695409396969725' dc x'00' codeloc la 2,$139 st 2,0(HGARGP) lfunc 15,@perror la 1,4 BCALL B $137 $138 equ * l 2,4(HGAUTOP) l 2,8(2) st 2,72(HGAUTOP) ltr 2,2 be $137 l 2,4(HGAUTOP) st 2,0(HGARGP) l 2,4(HGAUTOP) l 2,8(2) st 2,4(HGARGP) lfunc 15,@streq la 1,8 BCALL ltr 0,0 be $140 $141 equ * l 1,72(HGAUTOP) lc 2,0(1) ltr 2,2 be $142 l 2,72(HGAUTOP) lr 0,2 a 0,=f'1' st 0,72(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 st 2,0(HGARGP) lfunc 15,@sch la 1,4 BCALL B $141 $142 equ * B $137 $140 equ * l 2,=f'64' st 2,0(HGARGP) lfunc 15,@backsch la 1,4 BCALL l 1,72(HGAUTOP) lc 2,0(1) c 2,=f'77' bne $143 l 2,72(HGAUTOP) st 2,0(HGARGP) lfunc 15,@expdef la 1,4 BCALL B $144 $143 equ * $145 equ * l 1,72(HGAUTOP) lc 2,0(1) ltr 2,2 be $146 l 2,72(HGAUTOP) lr 0,2 a 0,=f'1' st 0,72(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 st 2,0(HGARGP) lfunc 15,@backsch la 1,4 BCALL B $145 $146 equ * $144 equ * l 2,=f'64' st 2,0(HGARGP) lfunc 15,@backsch la 1,4 BCALL $147 equ * l 2,bp la 3,revbuff cr 2,3 bnh $148 l 2,bp s 2,=f'1' st 2,bp sr 1,1 ic 1,0(2) lr 2,1 st 2,0(HGARGP) l 2,infil st 2,4(HGARGP) lfunc 15,@ungetc la 1,8 BCALL B $147 $148 equ * $137 EPILOG 2,76 DC C'END subst' expdef PROLOG 1 la 2,356(HGAUTOP) st 2,456(HGAUTOP) $150 equ * l 2,456(HGAUTOP) lr 0,2 a 0,=f'1' st 0,456(HGAUTOP) l 3,0(HGAUTOP) lr 0,3 a 0,=f'1' st 0,0(HGAUTOP) sr 1,1 ic 1,0(3) lr 3,1 stc 3,0(2) lr 2,3 ltr 2,2 be $151 B $150 $151 equ * la 2,356(HGAUTOP) st 2,0(HGAUTOP) sr 2,2 st 2,460(HGAUTOP) $152 equ * l 2,460(HGAUTOP) sll 2,2 la 3,168(HGAUTOP) ar 2,3 st 2,476(HGAUTOP) temp la 2,0(HGAUTOP) st 2,0(HGARGP) lfunc 15,@token la 1,4 BCALL l 1,476(HGAUTOP) temp st 0,0(1) ltr 0,0 be $153 $154 equ * l 2,460(HGAUTOP) lr 0,2 a 0,=f'1' st 0,460(HGAUTOP) B $152 $153 equ * la 2,68(HGAUTOP) st 2,348(HGAUTOP) lfunc 15,@getch la 1,0 BCALL st 0,472(HGAUTOP) c 0,=f'64' bne $155 $156 equ * lfunc 15,@getch la 1,0 BCALL st 0,472(HGAUTOP) c 0,=f'64' bne $157 B $156 $157 equ * $155 equ * l 2,472(HGAUTOP) st 2,0(HGARGP) l 2,infil st 2,4(HGARGP) lfunc 15,@ungetc la 1,8 BCALL sr 2,2 st 2,464(HGAUTOP) $158 equ * l 2,464(HGAUTOP) sll 2,2 la 3,248(HGAUTOP) ar 2,3 st 2,480(HGAUTOP) temp la 2,348(HGAUTOP) st 2,0(HGARGP) lfunc 15,@coptok la 1,4 BCALL l 1,480(HGAUTOP) temp st 0,0(1) ltr 0,0 be $159 $160 equ * l 2,464(HGAUTOP) lr 0,2 a 0,=f'1' st 0,464(HGAUTOP) B $158 $159 equ * l 2,464(HGAUTOP) c 2,460(HGAUTOP) be $161 strgloc $162 dc x'84858689958540819987A4948595A3409489A29481A38388' dc x'00' codeloc la 2,$162 st 2,0(HGARGP) lfunc 15,@perror la 1,4 BCALL $161 equ * $163 equ * l 2,0(HGAUTOP) lr 0,2 a 0,=f'1' st 0,0(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 st 2,472(HGAUTOP) ltr 2,2 be $164 l 2,472(HGAUTOP) st 2,0(HGARGP) lfunc 15,@letter la 1,4 BCALL ltr 0,0 bne $165 l 2,472(HGAUTOP) st 2,0(HGARGP) lfunc 15,@sch la 1,4 BCALL B $166 $165 equ * la 2,328(HGAUTOP) st 2,352(HGAUTOP) l 2,352(HGAUTOP) lr 0,2 a 0,=f'1' st 0,352(HGAUTOP) l 3,472(HGAUTOP) stc 3,0(2) lr 2,3 $167 equ * l 1,0(HGAUTOP) lc 2,0(1) st 2,0(HGARGP) lfunc 15,@letnum la 1,4 BCALL ltr 0,0 be $168 l 2,352(HGAUTOP) lr 0,2 a 0,=f'1' st 0,352(HGAUTOP) l 3,0(HGAUTOP) lr 0,3 a 0,=f'1' st 0,0(HGAUTOP) sr 1,1 ic 1,0(3) lr 3,1 stc 3,0(2) lr 2,3 B $167 $168 equ * sr 2,2 l 1,352(HGAUTOP) stc 2,0(1) sr 2,2 st 2,464(HGAUTOP) $169 equ * l 2,464(HGAUTOP) c 2,460(HGAUTOP) bnl $170 la 2,328(HGAUTOP) st 2,0(HGARGP) l 2,464(HGAUTOP) sll 2,2 la 3,168(HGAUTOP) ar 2,3 l 2,0(2) st 2,4(HGARGP) lfunc 15,@streq la 1,8 BCALL ltr 0,0 bne $170 $171 equ * l 2,464(HGAUTOP) lr 0,2 a 0,=f'1' st 0,464(HGAUTOP) B $169 $170 equ * l 2,464(HGAUTOP) c 2,460(HGAUTOP) bnl $10010 l 2,464(HGAUTOP) sll 2,2 la 3,248(HGAUTOP) ar 2,3 l 2,0(2) B $10011 $10010 equ * la 2,328(HGAUTOP) $10011 equ * st 2,352(HGAUTOP) $172 equ * l 1,352(HGAUTOP) lc 2,0(1) ltr 2,2 be $173 l 2,352(HGAUTOP) lr 0,2 a 0,=f'1' st 0,352(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 st 2,0(HGARGP) lfunc 15,@sch la 1,4 BCALL B $172 $173 equ * $166 equ * B $163 $164 equ * $149 EPILOG 1,484 DC C'END expdef' token PROLOG 1 l 1,0(HGAUTOP) l 2,0(1) sr 1,1 ic 1,0(2) lr 2,1 st 2,72(HGAUTOP) l 2,0(HGAUTOP) l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 sr 3,3 stc 3,0(2) lr 2,3 l 2,72(HGAUTOP) c 2,=f'93' bne $175 sr 2,2 lr 0,2 B $174 $175 equ * $176 equ * l 1,0(HGAUTOP) l 2,0(1) sr 1,1 ic 1,0(2) lr 2,1 c 2,=f'64' bne $177 l 2,0(HGAUTOP) l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 B $176 $177 equ * l 1,0(HGAUTOP) l 2,0(1) st 2,68(HGAUTOP) $178 equ * l 1,0(HGAUTOP) l 2,0(1) sr 1,1 ic 1,0(2) lr 2,1 st 2,72(HGAUTOP) c 2,=f'107' be $179 l 2,72(HGAUTOP) c 2,=f'93' be $179 l 2,72(HGAUTOP) st 2,0(HGARGP) lfunc 15,@letnum la 1,4 BCALL ltr 0,0 be $10012 l 1,0(HGAUTOP) l 2,0(1) c 2,68(HGAUTOP) bne $181 l 2,72(HGAUTOP) st 2,0(HGARGP) lfunc 15,@letter la 1,4 BCALL ltr 0,0 bne $181 $10012 equ * strgloc $182 dc x'84858689958540979996A396A3A8978540819987A4948595A3' dc x'40978599999699' dc x'00' codeloc la 2,$182 st 2,0(HGARGP) lfunc 15,@perror la 1,4 BCALL $181 equ * $180 equ * l 2,0(HGAUTOP) l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 B $178 $179 equ * l 2,68(HGAUTOP) lr 0,2 B $174 $174 EPILOG 1,76 DC C'END token' coptok PROLOG 1 sr 2,2 st 2,80(HGAUTOP) l 1,0(HGAUTOP) l 2,0(1) st 2,68(HGAUTOP) lfunc 15,@getch la 1,0 BCALL c 0,=f'93' bne $184 sr 2,2 lr 0,2 B $183 $184 equ * $185 equ * lfunc 15,@getch la 1,0 BCALL st 0,72(HGAUTOP) c 0,=f'107' be $10014 l 2,72(HGAUTOP) c 2,=f'93' bne $10013 $10014 equ * l 2,80(HGAUTOP) ltr 2,2 bnh $186 $10013 equ * l 2,72(HGAUTOP) ltr 2,2 bne $187 strgloc $188 dc x'95969540A3859994899581A385844094818399964083819393' dc x'00' codeloc la 2,$188 st 2,0(HGARGP) lfunc 15,@perror la 1,4 BCALL sr 2,2 st 2,68(HGAUTOP) B $186 $187 equ * l 2,72(HGAUTOP) c 2,=f'127' be $10015 l 2,72(HGAUTOP) c 2,=f'125' bne $189 $10015 equ * l 2,72(HGAUTOP) st 2,76(HGAUTOP) l 2,76(HGAUTOP) c 2,=f'125' bne $190 l 2,0(HGAUTOP) l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 l 3,=f'125' stc 3,0(2) lr 2,3 $190 equ * $191 equ * lfunc 15,@getch la 1,0 BCALL st 0,72(HGAUTOP) c 0,76(HGAUTOP) be $192 l 2,72(HGAUTOP) c 2,=f'37' be $10016 l 2,72(HGAUTOP) c 2,=f'240' bne $193 $10016 equ * strgloc $194 dc x'95969560A3859994899581A3858440A2A399899587' dc x'00' codeloc la 2,$194 st 2,0(HGARGP) lfunc 15,@perror la 1,4 BCALL B $192 $193 equ * l 2,72(HGAUTOP) c 2,=f'224' bne $195 lfunc 15,@getch la 1,0 BCALL st 0,72(HGAUTOP) c 0,76(HGAUTOP) be $196 l 2,72(HGAUTOP) c 2,=f'224' be $196 l 2,0(HGAUTOP) l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 l 3,=f'224' stc 3,0(2) lr 2,3 $196 equ * $195 equ * l 2,0(HGAUTOP) l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 l 3,72(HGAUTOP) stc 3,0(2) lr 2,3 B $191 $192 equ * l 2,=f'125' st 2,76(HGAUTOP) ltr 2,2 be $197 l 2,0(HGAUTOP) l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 l 3,=f'125' stc 3,0(2) lr 2,3 $197 equ * B $198 $189 equ * l 2,72(HGAUTOP) c 2,=f'224' bne $199 lfunc 15,@getch la 1,0 BCALL st 0,72(HGAUTOP) l 2,72(HGAUTOP) c 2,=f'127' be $200 l 2,72(HGAUTOP) c 2,=f'224' be $200 l 2,0(HGAUTOP) l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 l 3,=f'224' stc 3,0(2) lr 2,3 $200 equ * l 2,0(HGAUTOP) l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 l 3,72(HGAUTOP) stc 3,0(2) lr 2,3 B $201 $199 equ * l 2,0(HGAUTOP) l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 l 3,72(HGAUTOP) stc 3,0(2) lr 2,3 l 2,72(HGAUTOP) c 2,=f'77' bne $202 l 2,80(HGAUTOP) lr 0,2 a 0,=f'1' st 0,80(HGAUTOP) $202 equ * l 2,72(HGAUTOP) c 2,=f'93' bne $203 l 2,80(HGAUTOP) lr 0,2 s 0,=f'1' st 0,80(HGAUTOP) $203 equ * $201 equ * $198 equ * B $185 $186 equ * l 2,0(HGAUTOP) l 0,0(2) lr 1,0 a 1,=f'1' st 1,0(2) lr 2,0 sr 3,3 stc 3,0(2) lr 2,3 l 2,72(HGAUTOP) st 2,0(HGARGP) l 2,infil st 2,4(HGARGP) lfunc 15,@ungetc la 1,8 BCALL l 2,68(HGAUTOP) lr 0,2 B $183 $183 EPILOG 1,84 DC C'END coptok' letter PROLOG 1 l 2,0(HGAUTOP) st 2,0(HGARGP) lfunc 15,@alpha la 1,4 BCALL ltr 0,0 bne $10017 l 2,0(HGAUTOP) c 2,=f'109' bne $205 $10017 equ * l 2,=f'1' lr 0,2 B $204 $205 equ * sr 2,2 lr 0,2 B $204 $204 EPILOG 1,68 DC C'END letter' letnum PROLOG 1 l 2,0(HGAUTOP) st 2,0(HGARGP) lfunc 15,@letter la 1,4 BCALL ltr 0,0 bne $10018 l 2,0(HGAUTOP) c 2,=f'240' bl $207 l 2,0(HGAUTOP) c 2,=f'249' bh $207 $10018 equ * l 2,=f'1' lr 0,2 B $206 $207 equ * sr 2,2 lr 0,2 B $206 $206 EPILOG 1,68 DC C'END letnum' streq PROLOG 2 $209 equ * l 2,0(HGAUTOP) lr 0,2 a 0,=f'1' st 0,0(HGAUTOP) sr 1,1 ic 1,0(2) lr 2,1 st 2,72(HGAUTOP) l 3,4(HGAUTOP) lr 0,3 a 0,=f'1' st 0,4(HGAUTOP) sr 1,1 ic 1,0(3) lr 3,1 cr 2,3 bne $210 l 2,72(HGAUTOP) ltr 2,2 bne $211 l 2,=f'1' lr 0,2 B $208 $211 equ * B $209 $210 equ * sr 2,2 lr 0,2 B $208 $208 EPILOG 2,76 DC C'END streq' alpha PROLOG 1 l 2,0(HGAUTOP) lr 0,2 B $214 $215 equ * $216 equ * $217 equ * $218 equ * $219 equ * $220 equ * $221 equ * $222 equ * $223 equ * $224 equ * $225 equ * $226 equ * $227 equ * $228 equ * $229 equ * $230 equ * $231 equ * $232 equ * $233 equ * $234 equ * $235 equ * $236 equ * $237 equ * $238 equ * $239 equ * $240 equ * $241 equ * $242 equ * $243 equ * $244 equ * $245 equ * $246 equ * $247 equ * $248 equ * $249 equ * $250 equ * $251 equ * $252 equ * $253 equ * $254 equ * $255 equ * $256 equ * $257 equ * $258 equ * $259 equ * $260 equ * $261 equ * $262 equ * $263 equ * $264 equ * $265 equ * $266 equ * l 2,=f'1' lr 0,2 B $212 B $213 $214 equ * la 1,4 put 4 into r1 la 2,0 zero r2 $10021 c 2,$10020-4(1) is addr 0 ? be $10022+4 c 0,$10020(1) is case satisfied ? be $10022 la 1,8(1) bump r1 by 8 b $10021 $10022 s 1,=f'4' l 2,$10020(1) br 2 dataloc cnop 0,4 $10020 equ * dc a($215) dc f'129' dc a($216) dc f'130' dc a($217) dc f'131' dc a($218) dc f'132' dc a($219) dc f'133' dc a($220) dc f'134' dc a($221) dc f'135' dc a($222) dc f'136' dc a($223) dc f'137' dc a($224) dc f'145' dc a($225) dc f'146' dc a($226) dc f'147' dc a($227) dc f'148' dc a($228) dc f'149' dc a($229) dc f'150' dc a($230) dc f'151' dc a($231) dc f'152' dc a($232) dc f'153' dc a($233) dc f'162' dc a($234) dc f'163' dc a($235) dc f'164' dc a($236) dc f'165' dc a($237) dc f'166' dc a($238) dc f'167' dc a($239) dc f'168' dc a($240) dc f'169' dc a($241) dc f'193' dc a($242) dc f'194' dc a($243) dc f'195' dc a($244) dc f'196' dc a($245) dc f'197' dc a($246) dc f'198' dc a($247) dc f'199' dc a($248) dc f'200' dc a($249) dc f'201' dc a($250) dc f'209' dc a($251) dc f'210' dc a($252) dc f'211' dc a($253) dc f'212' dc a($254) dc f'213' dc a($255) dc f'214' dc a($256) dc f'215' dc a($257) dc f'216' dc a($258) dc f'217' dc a($259) dc f'226' dc a($260) dc f'227' dc a($261) dc f'228' dc a($262) dc f'229' dc a($263) dc f'230' dc a($264) dc f'231' dc a($265) dc f'232' dc a($266) dc f'233' dc f'0' dc a($213) codeloc * End of switch code. $213 equ * sr 2,2 lr 0,2 B $212 $212 EPILOG 1,68 DC C'END alpha' tvecloc @main INTFUNC main @stab EXTADDR stab @cout EXTADDR cout entry getc1 @getc1 INTFUNC getc1 entry instring @instrin INTADDR instring entry stringbu @stringb INTADDR stringbu entry alpha @alpha INTFUNC alpha @cgetc EXTFUNC cgetc entry getch @getch INTFUNC getch entry infil @infil INTADDR infil entry depth @depth INTADDR depth @copen EXTFUNC copen entry savch @savch INTFUNC savch @cexit EXTFUNC cexit @cputc EXTFUNC cputc entry inlno @inlno INTADDR inlno entry token @token INTFUNC token entry f1 @f1 INTADDR f1 entry f2 @f2 INTADDR f2 entry streq @streq INTFUNC streq entry insym @insym INTFUNC insym entry subst @subst INTFUNC subst entry bp @bp INTADDR bp entry ln @ln INTADDR ln entry lp @lp INTADDR lp entry defloc @defloc INTADDR defloc entry ifdloc @ifdloc INTADDR ifdloc entry eifloc @eifloc INTADDR eifloc entry ppeekc @ppeekc INTADDR ppeekc entry exfail @exfail INTADDR exfail entry incloc @incloc INTADDR incloc entry ifnloc @ifnloc INTADDR ifnloc @cclose EXTFUNC cclose entry expdef @expdef INTFUNC expdef entry expand @expand INTFUNC expand entry lineno @lineno INTADDR lineno @ungetc EXTFUNC ungetc entry ppline @ppline INTADDR ppline entry symtab @symtab INTADDR symtab entry flslvl @flslvl INTADDR flslvl @printf EXTFUNC printf entry coptok @coptok INTFUNC coptok entry letter @letter INTFUNC letter entry letnum @letnum INTFUNC letnum entry perror @perror INTFUNC perror entry locsys @locsys INTADDR locsys entry trulvl @trulvl INTADDR trulvl @cin EXTADDR cin @sbf EXTADDR sbf entry sch @sch INTFUNC sch entry backsch @backsch INTFUNC backsch entry getline @getline INTFUNC getline entry revbuff @revbuff INTADDR revbuff entry trimsav @trimsav INTFUNC trimsav entry lno1 @lno1 INTADDR lno1 entry lno2 @lno2 INTADDR lno2 entry plookup @plookup INTFUNC plookup codeloc litloc ltorg end $main$ etnum @letnum INTFUNC letnum entry perror @perror INTFUNC perror entry locsys @locsys INTADDR locsys entry trulvl @trulvl INTADDR trulvl @cin EXTADDRpr2 startup dataloc stab dc 12000x'00' codeloc dataloc sbf dc 20000x'00' codeloc tvecloc entry stab entry sbf codeloc litloc ltorg end vbuff INTADDR revbuff entry trimsav @trimsav INTFUNC trimsav entry lno1 @lno1 INTADDR lno1 entry lno2 @lno2 INTADDR lno2 entry plookup @plookup INTFUNC plookup codeloc litloc ltorg end $main$ etnum @letnum INTFUNC letnum entry perror @perror INTFUNC perror entry locsys @locsys INTADDR locsys entry trulvl @trulvl INTADDR trulvl @cin EXTADDR99584406CA2' dc x'00' codeloc la 2,$12 st 2,0(HGARGP) l 2,0(HGAUTOP) st 2,4(HGARGP) lfunc 15,@perror la 1,8 BCALL B $10 $11 equ * l 2,@stab st 2,symtab sr 2,2 st 2,68(HGAUTOP) $13 equ * l 2,68(HGAUTOP) c 2,=f'1000' bnl $14 l 3,68(HGAUTOP) m 2,=f'12' a 3,@stab lr 2,3 sr 3,3 stc 3,0(2) lr 2,3 l 3,68(HGAUTOP) m 2,=f'12' a 3,@stab lr 2,3 sr 3,3 st 3,8(2) lr 2,3 $15 equ * l 2,68(HGAUTOP) lr 0,2 a 0,=f'1' st 0,68(HGAUTOP) B $13 $14 equ * strgloc $16 dc x'848586899585'