DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T s

⟦3ef8eefc2⟧ TextFile

    Length: 2364 (0x93c)
    Types: TextFile
    Names: »simcomp.c«

Derivation

└─⟦87ddcff64⟧ Bits:30001253 CPHDIST85 Tape, 1985 Autumn Conference Copenhagen
    └─ ⟦this⟧ »cph85dist/stage2/simcomp.c« 

TextFile

/* Simcomp.c - Pre-pre processor for generating Stage2 */

#define OK 0
#define Eof 1
#define ILLEGAL 2
#define ERROR 3
#define READ -1
#define CONTROL 0
#define WRITE 1
#define TRUE 1
#define FALSE 0

/* common areas defining various things */


main(argc,argv)

char **argv;
{
int p1;

int list[12000],
    i,j,k,l,m,n,kmax;

  p1=1;

 kmax = 12000-80;

 if(ioop(READ,1,list,&p1,&i)) {printf("Stop 10."); exit(1);}
 list[6]=100;
 k=18;

L1: list[k]= -1;

  p1 = k+1;

 if(ioop(READ,1,list,&p1,&i)) {printf("Stop 11."); exit(1);}

 if(i >= kmax) {printf("Stop 20."); exit(1);}

 list[i]=list[1];
 i=k;

L2: i++;

 if(list[i]-list[1] < 0) goto L2;
 if(list[i]-list[1] > 0) goto L2;
  else goto L13;

L10: i++;

 if(list[i] == list[3]) goto L12;

L11: if(list[i] != list[4]) goto L10;

 list[i] = -2;
 list[i+1] = list[i+1]-list[5]+7;
 i++; i++;
 list[i] = list[i]-list[5];

 if( list[i-1] != 7) goto L10;

 if( list[k] < list[i] ) list[k]=list[i];
 goto L10;

L12: list[i]= -1;

L13: i++;
  if(ioop(READ,1,list,&i,&j)) {printf("Stop 12."); exit(1);}

  if( j >= kmax) {printf("Stop 21."); exit(1);}

 list[j]=list[3];

 if(list[i] != list[3]) goto L11;

 list[k-1] = i;
 k = i+1;

 if( k >= j) goto L1;
 if(list[k] != list[3]) goto L1;

L20: if(ioop(READ,1,list,&i,&n))
        {ioop(CONTROL,3,list,&i,&n);
        exit(0);
        }

 list[n] = list[1];

 m=17;

L30: l=8;
  j=m+1;
 for (k=i; k<=n; k++) {

 j++;


 if(list[j] == list[2]) goto L32;
 if(list[j] != list[k]) goto L31;

 if( list[j] < list[1]) goto L33;
 if( list[j] > list[1]) goto L33;
  else goto L40;

L31: m=list[m];
 if( m < i) goto L30;

 if(ioop(WRITE,3,list,&i,&n)) {printf("Stop 30."); exit(1);}
 goto L20;

L32: if(list[k] == list[1]) goto L31;

 list[l]=list[k];
 l++;

L33: l=l; }

L41: list[k]=list[j];

L42: k++;

L43: j++;

 if(list[m] == j) goto L48;
 if(list[j]+1 < 0) goto L44;
 if(list[j]+1 > 0) goto L41;
  else goto L47;

L44: l=list[j+1];
 j++; j++;

 if(l == 7) goto L45;

 if(list[j] != 0) goto L46;

 list[k]=list[l];
 goto L42;

L45: list[7]=list[j]+list[6];

L46: list[k]=list[5];
 list[k+1]=list[l]/64;
 n=list[l]/8;
 list[k+2]=n-list[k+1]*8+list[5];
 list[k+3]=list[l]-n*8+list[5];
 list[k+1]=list[k+1]+list[5];

 k=k+4;
 goto L43;

L47: if(ioop(WRITE,3,list,&i,&k)) {printf("Stop 31."); exit(1);}

L40: k=i;
 goto L43;

L48: list[6]=list[m+1]+list[6]+1;
 goto L20;

}