|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ T s ┃
Length: 2364 (0x93c) Types: TextFile Names: »simcomp.c«
└─⟦87ddcff64⟧ Bits:30001253 CPHDIST85 Tape, 1985 Autumn Conference Copenhagen └─ ⟦this⟧ »cph85dist/stage2/simcomp.c«
/* 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; }