|
|
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 - metrics - 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;
}