| 
 | 
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: 1445 (0x5a5)
    Types: TextFile
    Names: »source_converter.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
    └─⟦this⟧ »EUUGD18/Sun/Sdi/source_converter.c« 
/*
 * Copyright 1987 by Mark Weiser.
 * Permission to reproduce and use in any manner whatsoever on Suns is granted
 * so long as this copyright and other identifying marks of authorship
 * in the code and the game remain intact and visible.  Use of this code
 * in other products is reserved to me--I'm working on Mac and IBM versions.
 */
/*
 * Little hack to help generate assembler for the source code option.
 */
#include <stdio.h>
#include <ctype.h>
#define OUTSIZE 64
#define MaxSizeOfAnOctalRepresentation 5
char buff[OUTSIZE * MaxSizeOfAnOctalRepresentation];
main(argc, argv)
char **argv;
{
	char *p, c;
	int i;
	if (argc < 2) {
		fprintf(stderr, "Need an argument.\n");
		exit(1);
	}
	printf(" .even\n__start_of_text:\n");
	while (! feof(stdin)) {
		p = buff;
		for (i = 0; i < OUTSIZE; i += 1) {
			if ((c = getchar()) != EOF) {
				if (isalnum(c)  || c == ' ' || c == '*' || c == '/'
					|| c == '#' || c == '<' || c == '>' || c == '.'
					|| c == '_' || c == '[' || c == ']' || c == '(' 
					|| c == ')' || c == '{' || c == '}'
					) {
					*p++ = c;
				} else {
					*p++ = '\\';
					sprintf(p, "%o", (unsigned int)c);
					i += strlen(p);
					p += strlen(p);
				}
			} else {
				goto done;
			}
		}
done:
		*p = '\0';
		printf(" .ascii \"%s\"\n", buff);
	}
	printf(" .ascii \"\\0\"\n",'\\');
	printf(" .even\n");
	printf(" .globl _%s\n", argv[1]);
	printf("_%s:\n", argv[1]);
	printf(" .long __start_of_text\n");
}