purity-1.orig/ 40755 1750 144 0 6413576456 12152 5ustar aaronuserspurity-1.orig/Makefile100644 1750 144 1123 5471555024 13673 0ustar aaronusers# makefile for the purity test # # edit all appropriate paths, and then make # # make sure the definitions in pt.h are correct before making # BINDIR: the directory where the binary will go. BINDIR = /usr/games # LIBDIR: the directory where the test datafiles are kept LIBDIR = /usr/games/lib/pt # options for the c compiler (-g, -O, etc.) # Specify -DSYS for sysV, -DLINUX for linux, BSD is default #CFLAGS = -O CFLAGS = -O6 -s -DLINUX # compiler libraries (-ltermcap, etc.) LIBS = purity: pt.c pt.h cc $(CFLAGS) -DLIBDIR=\"$(LIBDIR)\" -o purity pt.c $(LIBS) clean: rm -f purity *.o purity-1.orig/README100644 1750 144 1711 4543317135 13114 0ustar aaronusersThis is a "purity testing" progam. There have been many purity tests floating around the net, and this provides a more or less automated way to take the tests, and keep score, without having to always find pencil and paper. It should be pretty straightforward to install. edit the appropriate paths in the Makefile, and make sure that definitions are correct in "pt.h". After the program is compiled, put it in its directory, and put the "tests" subdirectory into its library directory. Several tests are included, as well as the datafile format, in the event you want to add more tests. It should run in both bsd and sysV, if the appropriate definition in pt.h is made. I've compiled it under both 4.3 BSD and A/UX 1.1. This program is public domain. Please don't charge for it. If you improve it/fix it/etc, please let me know, so i can keep my version up to date with everyone else's. Eric Lechner lechner@ucscb.ucsc.edu ...!ucbvax!ucscc!ucscb!lechner purity-1.orig/pt.6100644 1750 144 7563 4543317137 12763 0ustar aaronusers.TH PURITY 6 "18 December 1989" .SH NAME purity \- a general purpose purity test .SH SYNOPSIS .B /usr/games/purity [ .I flags ] [ .I testname ] .SH DESCRIPTION Purity is an interactive purity test program with a simple, user interface and datafile format. For each test, questions are printed to the your terminal, and you are prompted for an answer to the current question. At a prompt, these are your choices: .RS .IP y Answer "yes" to the question. .IP n Answer "no" to the question. .IP b Backup one question, if you answered it incorrectly, or someone is watching you take the test, and you don't (or do) want to admit a different answer. .IP r Redraw the current question. .IP q Quit the test, and print the current score. .IP ? Print a help screen for the current prompt. .IP k .I Kill a section of the test. This skips all the questions of the test until the next subject heading. .IP a Toggle answer mode between .I real answers and .I obfuscated answers. .I Real answers print "yes" and "no", while .I obfuscated answers are "Maybe" and "maybe". Obfuscated answers are preferred if you are shy, and don't want people to be able to read your answers over your shoulder as you take the test. .IP d Toggle dERanGe output. .IP s Print your current score on the test you are taking. .IP l Toggle score logging. .RE .PP At the end of the test, your score is printed out. For most purity tests, lower scores denote more "experience" of the test material. .SH FLAGS These are the command line flags for the test. .RS .IP -a Show .I real answers (i.e. "yes" and "no") instead of .I obfuscated ones (i.e. "Maybe" and "maybe") as you answer the questions. .IP -d PrINt THe tESt in DerANgeD pRInT. .IP -f Take the test in .I fast mode. Only the questions are printed, and not any other text blocks, like the introdution, subject headers, and the conclusion. .IP -l Take the test without having your score logged. .IP -p Print the test without prompting for answers. This is useful for making hard copies of the tests without having to edit out the prompts by hand. .IP -r Decrypt the test using the .I Rot 13 algorithm. This is done as a form of "protection", such that if you read a rot13 test and it offends you, it's your own fault. .IP -z .I zoom through more prompts in large text blocks. The default is to prompt the user for .I "more" when a screenful of text has been printed without any user input. .RE .SH DATAFILE FORMAT The format of the datafiles is a very simple format, intended such that new tests can quickly and easily be converted to run with the test. .PP There are four types of text in a purity test datafile. Each type is contained in a .I bracket type of punctuation. The definitions are as follows: .PP the styles of text blocks are: .IP { plain text block } .IP [ subject header ] .IP ( test question ) .IP and < conclusion > .PP Plain text blocks are printed out character for character. .PP Subject headers are preceeded by their subject numbers, starting at 1, and then printed as text blocks. .PP Questions are preceeded by their numbers, and then prompt the user to answer the question, keeping track of the user's current score. .PP Conclusions first calculate and print the user's score for the test, then print out the conclusion as a text block. .PP If you wish to include any of the various bracket punctuation in your text, the backslash ("\\") character will .I escape the next character. To print a question with parentheses, you would use the following format: .PP (have you ever written a purity test \\(like this one\\)?) .PP the output would be this: .PP 1. have you ever written a purity test (like this one)? .PP and then it would have asked the user for her/his answer. .PP For a generic datafile, use the "sample" datafile for the test. .SH FILES .nf /usr/games/lib/purity/scores the score logfile /usr/games/lib/purity/* test data files .fi .SH AUTHOR Eric Lechner, lechner@ucscb.ucsc.edu purity-1.orig/pt.c100644 1750 144 41274 5471555726 13066 0ustar aaronusers/* pt.c version 3.9 December 19, 1989 Eric Lechner (lechner@ucscb.ucsc.edu) a general purpose N-question (purity) test. data file format given in pt.h tailor definitions to your needs in pt.h */ #define VERSION "3.9" /* current test version # */ #ifdef LINUX # define SYSV # include #endif #include "pt.h" #include #include #ifdef SYSV #include #include #ifdef LINUX # include #else # include #endif #include #else #include #include #include #endif #include #include #include #define SKIP 255 #define TRUE 1 #define FALSE 0 #define DO_ECHO TRUE #define NO_ECHO FALSE #define OK 10 #define FILE_ERR -1 #define QUIT -2 #define EXIT -3 #define BACKUP 5 #define LOOP -10 struct quest { int num, /* # of question */ answer; /* answer to current question */ long fpos; /* position in file for fseek */ struct quest *last; /* pointer to last question */ }; int question(), get_response(), getresp(), subject(), print(), more(); void explain(), quit(), #ifdef SIGTSTP ctrlz(), ctrlzret(), #endif set_mode(), clr_mode(), freemem(), printscore(), sizewindow(); #ifndef PW struct passwd *getpw(); #endif FILE *fp; struct quest *theq, *nextq, *the_s, *next_s; int num_ch, num_ln, kill_sub, no_ans, zoom, obfus, fast, derange, rot13; short tty_flags; #ifdef SYSV unsigned char baz; #endif unsigned short rows, cols; char *testtype; #ifdef LOGFILE int logme; #endif main(argc,argv) int argc; char *argv[]; { int err, ch; /* var to store error reports */ char path[256], *ch1; (void) signal(SIGINT,quit); #ifdef SIGTSTP (void) signal(SIGTSTP,ctrlz); (void) signal(SIGCONT,ctrlzret); #endif #ifdef GID (void) setgid(GID); #endif srand (getpid()); /* seed r.n.g. for derange mode */ /* it's only derange, why not use the pid? */ err = 0; *path = '\0'; testtype = NULL; ch = FALSE; while (ch == FALSE) { if (++err >= argc) { (void) sprintf(path,"%s/%s",LIBDIR,"intro"); ch = TRUE; } else { switch (*argv[err]) { case '-' : break; default : (void) sprintf(path,"%s/%s", LIBDIR, argv[err]); ch = TRUE; break; } } } fp = fopen(path,"r"); if (fp == NULL) { (void) sprintf(path,"%s",argv[err]); fp = fopen(path,"r"); } if (fp == NULL) { #ifndef SYSV if (ch1 = rindex(argv[0],'/')) ch1++; #else if (ch1 = strrchr(argv[0],'/')) ch1++; #endif else ch1 = argv[0]; #ifndef SYSV if (testtype = rindex(path,'/')) testtype++; #else if (testtype = strrchr(path,'/')) testtype++; #endif else testtype = path; fprintf(stderr,"%s: error opening datafile '%s'.\n", ch1,testtype); exit(-1); } rewind (fp); if (testtype == NULL) { #ifndef SYSV if (testtype = rindex(path,'/')) testtype++; #else if (testtype = strrchr(path,'/')) testtype++; #endif else testtype = path; } #ifdef LOGFILE if (!strcmp(testtype,"intro") || !strcmp(testtype,"scores") || !strcmp(testtype,"format") || !strcmp(testtype,"help") || !strcmp(testtype,"list")) logme = FALSE; else logme = TRUE; #endif theq = (struct quest *) malloc (sizeof(struct quest)); the_s = (struct quest *) malloc (sizeof(struct quest)); if ((theq == NULL) || (the_s == NULL)) { fprintf(stderr,"Memory allocation error.\n"); (void) fclose(fp); exit(-1); } #ifdef MASK (void) strncpy (argv[0],MASK,strlen(argv[0])); #endif theq->num = 1; /* setup initial question pointer info */ theq->last = NULL; theq->answer = FALSE; the_s->num = 1; /* setup initial subject pointer info */ the_s->last = NULL; no_ans = zoom = fast = derange = rot13 = FALSE; /* set default flags */ obfus = TRUE; if (argc > 1) { /* read command line options, set flags */ for (err=1; errfpos = ftell(fp) - 1; if (kill_sub == FALSE) { fprintf(stdout,"%3d. ",theq->num); err = print(DO_ECHO,ENDQUEST); (void) fputc('\n',stdout); } else err = print(NO_ECHO,ENDQUEST); if (err == OK) { if (kill_sub || no_ans) err = SKIP; else err = get_response(); switch (err) { case EXIT : case QUIT : break; case BACKUP : if (theq->last != NULL) { nextq = theq; theq = nextq->last; free((char *) nextq); fprintf(stdout,"Your old answer was: "); if (theq->answer == TRUE) fprintf(stdout,"yes.\n\n"); else if (theq->answer == FALSE) fprintf(stdout,"no.\n\n"); else fprintf(stdout,"skipped.\n\n"); if (the_s->last != NULL) { next_s = the_s->last; if (next_s->fpos > theq->fpos) { free((char *) the_s); the_s = next_s; } } } else fprintf(stderr,"Silly, you can't back up past the beginning of the test...\n\n"); err = fseek(fp,theq->fpos,0); if (err == EOF) err = FILE_ERR; else err = OK; break; default : theq->answer = err; err = OK; nextq = (struct quest *) malloc (sizeof(struct quest)); if (nextq == NULL) { fprintf(stderr,"Memory allocation error.\n"); err = EXIT; } else { nextq->num = theq->num + 1; nextq->last = theq; nextq->answer = FALSE; theq = nextq; } break; } } if (no_ans == FALSE) num_ch = num_ln = 0; return(err); } int get_response() { int ch, done = FALSE; while (done == FALSE) { #ifndef LOGFILE fprintf(stdout,"your answer? [ynbakdsrq?] : "); #else fprintf(stdout,"your answer? [ynbakdlsrq?] : "); #endif ch = getresp(); switch (ch) { case 'y' : case 'Y' : case ' ' : case '\n' : if (obfus) fprintf(stdout,"%s\n\n",YES); else fprintf(stdout,"yes\n\n"); ch = TRUE; done = TRUE; break; case 'n' : case 'N' : if (obfus) fprintf(stdout,"%s\n\n",NO); else fprintf(stdout,"no\n\n"); ch = FALSE; done = TRUE; break; case 'b' : case 'B' : case '-' : case 'c' : case 'C' : fprintf(stdout,"backup\n\n"); ch = BACKUP; done = TRUE; break; case 'x' : case 'X' : case 'q' : case 'Q' : fprintf(stdout,"quit\n"); ch = QUIT; done = TRUE; break; case 's' : case 'S' : fprintf(stdout,"print score\n"); printscore(); ch = 's'; case 'r' : case 'R' : if (ch != 's') fprintf(stdout,"redraw\n"); (void) fputc('\n',stdout); ch = redraw(); if (ch == FILE_ERR) { done = TRUE; ch = EXIT; } break; case 'h' : case 'H' : case '?' : fprintf(stdout,"help\n\n"); explain(); break; case 'k' : case 'K' : fprintf(stdout,"kill\n\n"); kill_sub = TRUE; ch = SKIP; done = TRUE; break; #ifdef LOGFILE case 'l' : case 'L' : fprintf (stdout,"logscore is now "); if (logme) { logme = FALSE; fprintf (stdout,"off\n"); } else { logme = TRUE; fprintf(stdout,"on\n"); } break; #endif case 'd' : case 'D' : fprintf (stdout,"derange is now "); if (derange) { derange = FALSE; fprintf (stdout,"off\n"); } else { derange = TRUE; fprintf(stdout,"on\n"); } break; case 'a' : case 'A' : fprintf (stdout,"answers are now "); if (obfus) { obfus = FALSE; fprintf(stdout,"real\n"); } else { obfus = TRUE; fprintf (stdout,"obfuscated\n"); } break; default : fprintf(stdout,"huh?\n"); break; } } return (ch); } void explain() { fprintf(stdout,"the purity test: version %s by Eric Lechner\n\n", VERSION); fprintf(stdout,"y - answer 'yes' to current question.\n"); fprintf(stdout,"n - answer 'no' to current question.\n"); fprintf(stdout,"b - backup one question.\n"); fprintf(stdout,"a - answer style (%s/%s vs. yes/no)\n",YES,NO); fprintf(stdout,"k - kills all questions until the next subject.\n"); fprintf(stdout,"d - toggles between normal and dERanGeD text.\n"); fprintf(stdout,"s - prints your current score for the test.\n"); #ifdef LOGFILE fprintf(stdout,"l - toggles whether or not your score is logged.\n"); #endif fprintf(stdout,"r - redraw current question.\n"); fprintf(stdout,"q - quit the program.\n"); fprintf(stdout,"? - print this help screen.\n\n"); } int getresp() { int ch; ch = fgetc(stdin); return (ch); } int subject() { int err; the_s->fpos = ftell(fp) - 1; kill_sub = FALSE; if (fast) err = print (NO_ECHO,ENDSUB); else { fprintf(stdout,"------------------------------------------------------------------------------\n"); fprintf(stdout,"%d. ",the_s->num); err = print(DO_ECHO,ENDSUB); (void) fputc('\n',stdout); } if (err == OK) { next_s = (struct quest *) malloc (sizeof(struct quest)); if (next_s == NULL) { fprintf(stderr,"Memory allocation error.\n"); err = EXIT; } else { next_s->last = the_s; next_s->num = the_s->num + 1; the_s = next_s; } } return (err); } int print(echo,esc) int echo; /* if echo then print the text, and give "more" prompts */ int esc; /* the escape character to end this text block */ { int ch; while (TRUE) { ch = fgetc(fp); if (ch == EOF) return (FILE_ERR); if (ch == '\\') ch = fgetc(fp); else if (ch == esc) { /* check next char for escapeness */ return(OK); } if (echo) { if (derange) if ((ch >= 'a') && (ch <= 'z')) if (rand() % 2) ch += 'A' - 'a'; if (rot13) { if ((ch <= 'z') && (ch >= 'a')) { if ((ch += 13) > 'z') ch -= 26; } else if ((ch <= 'Z') && (ch >= 'A')) { if ((ch += 13) > 'Z') ch -= 26; } } (void) fputc((char)ch,stdout); if (zoom == FALSE) { if (ch == '\n') { num_ch = 0; num_ln++; } if (num_ch >= cols) { /* autowrap */ num_ln++; (void) fputc('\n',stdout); } if (num_ln >= rows - 2) echo = more(); if (echo == QUIT) return (QUIT); } } } } int more() { int resp; long ret = LOOP; num_ch = num_ln = 0; fprintf(stdout,"--- more ---"); while (ret == LOOP) { resp = getresp(); switch (resp) { case ' ' : case 'y' : case 'Y' : case 'm' : case 'M' : case '\n' : ret = DO_ECHO; break; case 'n' : case 'N' : case 'k' : case 'K' : ret = NO_ECHO; break; case 'q' : case 'Q' : case 'x' : case 'X' : ret = QUIT; break; default : (void) fputc(007,stdout); break; } } fprintf(stdout,"\b\b\b\b\b\b\b\b\b\b\b\b \b\b\b\b\b\b\b\b\b\b\b\b"); return (ret); } void quit () { (void) fflush(stdout); (void) signal (SIGINT, SIG_DFL); clr_mode(); printscore(); freemem(); fprintf(stderr,"\nFine. Be that way. Don't use the 'q' option.\n"); exit (0); } #ifdef SIGTSTP void ctrlz () { (void) fflush(stdout); fprintf(stdout,"\nyou'll be back, right?\n"); clr_mode(); (void) signal (SIGTSTP, SIG_DFL); (void) kill (getpid(), SIGTSTP); } void ctrlzret () { fprintf(stdout,"nice to see you came back...\n"); (void) fflush(stdout); set_mode(); } #endif void set_mode() { #ifndef SYSV struct sgttyb p; #else struct termio p; #endif #ifndef SYSV (void) ioctl(0,TIOCGETP,&p); tty_flags = p.sg_flags; p.sg_flags |= CBREAK; p.sg_flags &= ~ECHO; (void) ioctl(0,TIOCSETP,&p); #else (void) ioctl(0,TCGETA,&p); tty_flags = p.c_lflag; baz = p.c_cc[VMIN]; p.c_lflag &= ~ICANON; p.c_lflag &= ~ECHO; p.c_cc[VMIN] = 1; (void) ioctl(0,TCSETA,&p); #endif } void clr_mode() { #ifndef SYSV struct sgttyb p; #else struct termio p; #endif #ifndef SYSV (void) ioctl(0,TIOCGETP,&p); p.sg_flags = tty_flags; (void) ioctl(0,TIOCSETP,&p); #else (void) ioctl(0,TCGETA,&p); p.c_lflag = tty_flags; p.c_cc[VMIN] = baz; (void) ioctl(0,TCSETA,&p); #endif } void printscore() { int score = 0, num_q = 0; if (no_ans) return; nextq = theq->last; while (nextq != NULL) { if (nextq->answer == FALSE) score++; if (nextq->answer != SKIP) num_q++; nextq = nextq->last; } if (num_q <= 0) { fprintf(stdout,"\nyou can't get a score without answering any questions, silly.\n\n"); num_ln += 2; } else { fprintf(stdout, "\nyou answered %d 'no' answer%s out of %d question%s,\n",score,(score -1) ? "s" : "",num_q,(num_q-1) ? "s" : ""); fprintf(stdout,"which makes your purity score %.2f%%.\n\n", ((float) 100 * score / num_q)); num_ln += 3; } } void freemem() { #ifdef LOGFILE int score = 0, ans = 0; char login[8], scorepath[512]; struct passwd *pw; #endif while (theq != NULL) { nextq = theq->last; free ((char *) theq); theq = nextq; #ifdef LOGFILE if ((logme) && (no_ans == FALSE)) { if (theq != NULL) { if (nextq->answer == FALSE) score++; if (nextq->answer != SKIP) ans++; } } #endif } while (the_s != NULL) { next_s = the_s->last; free ((char *) the_s); the_s = next_s; } #ifdef LOGFILE if ((no_ans == FALSE) && logme && (ans > 0)) { sprintf(scorepath,"%s/%s",LIBDIR,"scores"); fp = fopen (scorepath,"a+"); if (fp != NULL) { #ifdef GETLOGIN (void) strcpy(login,getlogin()); if (*login == '\0') { #endif #ifdef PW pw = getpwuid(getuid()); #else pw = getpw(getuid()); #endif (void) strcpy(login,pw->pw_name); #ifdef GETLOGIN } #endif fprintf (fp,"%s:%s: %d / %d = %.2f%%\n",login,testtype, score, ans, (float) ((100 * score) / ans)); (void) fclose (fp); } } #endif } int redraw() { int err; err = fseek(fp,theq->fpos+1,0); if (err == -1) err = FILE_ERR; else { fprintf(stdout,"%3d. ",theq->num); err = print(DO_ECHO,ENDQUEST); fprintf(stdout,"\n"); } return(err); } void sizewindow() { struct winsize wsize; (void) ioctl(0,TIOCGWINSZ,&wsize); cols = wsize.ws_col; rows = wsize.ws_row; if (cols == 0) cols = 80; /* if no row/col values, assign */ if (rows == 0) rows = 24; /* reasonable default ones. */ } #ifndef PW struct passwd *getpw(uid) int uid; { FILE *pwfp; /* the password file pointer */ struct passwd pw; char line[1024], *tmp, *tmp2; int count, ch; pwfp = fopen("/etc/passwd","r"); if (pwfp == NULL) { return ((struct passwd *) NULL); } else { ch = fgetc(pwfp); count = 0; while (ch != EOF) { if (ch != '\n') { line[count++] = ch; } else { line[count] = '\0'; count = 0; pw.pw_name = line; #ifndef SYSV tmp = index(pw.pw_name,':'); *tmp = '\0'; pw.pw_passwd = ++tmp; tmp = index(pw.pw_passwd,':'); *tmp = '\0'; tmp2 = ++tmp; tmp = index(tmp2,':'); *tmp = '\0'; pw.pw_uid = atoi(tmp2); tmp2 = ++tmp; tmp = index(tmp2,':'); *tmp = '\0'; pw.pw_gid = atoi(tmp2); pw.pw_comment = ++tmp; tmp = index(pw.pw_comment,':'); *tmp = '\0'; pw.pw_dir = ++tmp; tmp = index(pw.pw_dir,':'); #else tmp = strchr(pw.pw_name,':'); *tmp = '\0'; pw.pw_passwd = ++tmp; tmp = strchr(pw.pw_passwd,':'); *tmp = '\0'; tmp2 = ++tmp; tmp = strchr(tmp2,':'); *tmp = '\0'; pw.pw_uid = atoi(tmp2); tmp2 = ++tmp; tmp = strchr(tmp2,':'); *tmp = '\0'; pw.pw_gid = atoi(tmp2); pw.pw_comment = ++tmp; tmp = strchr(pw.pw_comment,':'); *tmp = '\0'; pw.pw_dir = ++tmp; tmp = strchr(pw.pw_dir,':'); #endif *tmp = '\0'; pw.pw_shell = ++tmp; if (pw.pw_uid == uid) { fclose(pwfp); return (&pw); } } ch = fgetc(pwfp); } fclose(pwfp); return(NULL); } } #endif purity-1.orig/pt.h100644 1750 144 5252 5471553736 13046 0ustar aaronusers/* pt.h Eric Lechner December 1989 files, definitions, and structures for pt.c, including the escape character definitions, as well as certain message definitions. edit all entries as necessary. pay particular attention to all directory and file path entries. */ /* SYSV define removed, and SYSV and LINUX defines moved to Makefile */ /* GID: if defined, the program will set its group id to GID */ #define GID 13 /* LOGFILE: determines whether or not to save scores. if it is defined, scores will be kept in the $(LIBDIR)/scores file. */ #define LOGFILE /* MASK: the string that is copied into argv[0] as a command mask. (if not defined, then no mask is performed) */ #define MASK "purity testing! " /* GETLOGIN: if you want username checking to check getlogin() before trying getpwuid(getuid()), define GETLOGIN. */ #define GETLOGIN /* PW: if you want the purity test to use getpwuid(getuid()) instead of my hacked (MUCH smaller on our system) routine, define PW. */ #define PW /* How text is printed in the purity test: Blocks of plain text (like for introductions): anything enclosed within TEXT and ENDTEXT characters is printed. Subjects headings: the subject number printed, then the block of text enclosed in SUBJECT and ENDSUB characters. Questions: anything within the characters QUESTION and ENDQUEST are printed as a question, with its number preceeding it, and with a prompt for the answer afterwards. End of test, time to print score, and then the conclusion: the score for the test is printed, and then the text within the PRINTSCORE and ENDSCORE characters is printed. */ #ifdef LINUX # define TEXT '{' /* open squiggly */ # define ENDTEXT '}' /* close squiggly */ # define SUBJECT '[' /* open brace */ # define ENDSUB ']' /* close brace */ # define QUESTION '(' /* open paren */ # define ENDQUEST ')' /* close paren */ #else # define TEXT '\{' /* open squiggly */ # define ENDTEXT '\}' /* close squiggly */ # define SUBJECT '\[' /* open brace */ # define ENDSUB '\]' /* close brace */ # define QUESTION '\(' /* open paren */ # define ENDQUEST '\)' /* close paren */ #endif #define PRINTSCORE '<' /* open brocket */ #define ENDSCORE '>' /* close broket */ /* the following are what the test prints for you answer */ /* instead of "yes" and "no" for purposes of obfuscating the */ /* printed answers the questions. */ /* YES: what the test echoes when the user answers 'yes' to a question. */ #define YES "Maybe" /* NO: what the test echoes when the user answers 'no' to a question. */ #define NO "maybe" /* end of the purity test library file */ purity-1.orig/tests/ 40755 1750 144 0 6440153372 13300 5ustar aaronuserspurity-1.orig/tests/format100644 1750 144 3353 4543317161 14614 0ustar aaronusers{ The Purity Test: datafile format If you wish to create your own datafiles for the purity test, follow these simple intructions. Each block of text (questions, subject headers, etc.) is enclosed in a "bracket" type of punctuation. the styles of text blocks are: \{ plain text block \} \[ subject header \] \( test question \) and \< conclusion \> Plain text blocks are just printed out character for character. Subject headers are prefaced by the subject number, and then printed as text blocks. Questions are preceeded by their numbers, and then prompt the user to answer the question, keeping track of the user's current score. Conclusions first calculate and print the user's score for the test, then print out the conclusion as a text block. If you wish to include any of the bracket punctuation in your text, the "\\" character will "escape" the next character. This means that to print a question with parentheses, you would use the following format: (have you ever created your own purity test \\(like this one\\)?) the output would be this: 1. have you ever created your own purity test (like this one)? and then it would have asked the user for her/his answer. -Eric Lechner 10-26-1989 -----------------sample data file------------------ \{ Welcome to the purity test! Answer all the questions, and I'll tell you your score when you've finished the test! \} [First subject: clown questions] (Can you stand on your head?) (Can you juggle?) (Do you own a pair of stilts?) [Second subject: computer programming] (Have you programmed a computer?) (Do you know more than 5 programming languages?) (Do you write purity test programs for fun?) --------------end of sample data file-------------- } purity-1.orig/tests/intro100644 1750 144 762 4543317163 14442 0ustar aaronusers{welcome to the purity test. try "purity list" for a list of current tests. to run each test, use "purity [flags]". flags: -z : "zoom" through "more" prompts. -p : print the test without prompting for answers. -l : start out without scorelogging turned on. -d : print the test in DerANgeD pRInT. -a : show answers as "yes"/"no" instead of "Maybe"/"maybe" -r : pipe the test through "rot 13" decryption -f : fast mode (doesn't print out text blocks other than questions) } purity-1.orig/tests/list100644 1750 144 603 6440154214 14246 0ustar aaronusers{welcome to the purity test. the current available tests are: mtrek - see how muck of an mtrek geek you are... nerd - tests to see how "nerdy" you are... hacker - a hard core computer hacker purity test. format - an explanation of the data file format (for writing your own tests) sample - prints a generic sample datafile to run each test, use "purity [flags]". } purity-1.orig/tests/nerd100644 1750 144 10421 4543317167 14274 0ustar aaronusers{ The East Campus Nerd Test Posted to talk.bizarre by: SKITCHEN@kcgl1.eng.ohio-state.edu \(Kitchen Scott\) Score one point for each YES. The score is % nerdity. } (Have you ever used a computer? If the answer is no, try taking the Baker House Purity Test.) (Have you ever programmed a computer?) (Have you ever built a computer?) (Programmed a computer continuously for more than four hours?) (Programmed a computer continuously for more than eight hours?) (? \(For those non-MIT students out there, this translates as, "Do/did you major in electrical engineering or computer science?\)) (Do you wear glasses?) (Are your glasses broken \(e.g. taped\)?) (Is your vision worse than 20/40?) (Worse than 20/80?) (Are you legally blind?) (Have you ever asked a question in lecture?) (Have you ever answered a question in lecture?) (Have you ever corrected a professor?) (Have you ever answered a rhetorical question?) (Do you sit in the front row?) (Do you take notes in more than one color?) (Have you ever worn a calculator?) (Do you read science fiction?) (Have you ever used a microscope?) (Have you ever used a telescope?) (Have you ever used an oscilloscope?) (Is your weight less than your IQ?) (Have you ever programmed a computer on Friday, Saturday, and Sunday of the same weekend?) (Have you ever programmed a computer past 4 am?) (Have you ever programmed a computer with someone of the appropriate \(either or both, your choice\) sex \(besides your consultant\)?) (Have you ever programmed a computer for money?) (Do you have a Rubik's Cube?) (Can you solve it?) (Without the book?) (Without looking?) (Do you have acne?) (Do you have greasy hair?) (Are you unaware of it?) (Have you ever bought anything from Radio Shack?) (From Heathkit?) (Do you know trigonometry?) (Do you know calculus?) (Do you know Maxwell's Equations?) (Do you have them on a t-shirt?) (Have you ever dissected anything?) (Do you know pi past five decimal places?) (Do you know e past five decimal places?) (Do you own more than $500 in electronics \(excluding stereo\)?) (More than $1000?) (More than $2500?) (Have you ever built more than $2500 worth of electronics?) (Have you ever watched Dr. Who?) (More than three times in the same night?) (Have you ever read _The_Hitchhiker's_Guide_to_the_Galaxy_?) (Was your SAT math score more than 300 points higher than your verbal?) (Have you ever done homework on a Friday night?) (Have you ever pulled an all-nighter?) (Have you ever redesigned a major household appliance?) (Have you ever played a computer game?) (Played a computer game in the last three months?) (Played a computer game in the last three weeks?) (Have you ever written a computer game?) (Are your pants too short?) (Do your socks mismatch?) (Have you used a chemistry set?) (After the age of 13?) (Have you ever played D&D \(or any other role-playing game\)?) (Since high school?) (Have you ever entered a science fair?) (Did you win?) (Do you own a digital watch?) (Does it play music?) (Does it have a calculator?) (Have you ever used a rare earth element?) (Do you own a CRC?) (Do you own a CRT?) (Do you know RPN?) (Do you own a laser \(over 1 mw\)?) (Were you ever on a chess team?) (A debate team?) (Do you know more than three programming languages?) (More than eight?) (Have you ever made a technical joke?) (Did no one get it?) (Can you name more than ten Star Trek episodes?) (Are you socially inept?) (Do you own a pencil case?) (Do you wear it?) (Do you know Schrodinger's Equation?) (Have you ever solved it?) (Have you ever used the word "asymptotic"?) (Can you count in binary?) (Have you ever broken into a computer system?) (A government system?) (Have you ever changed your bank account?) (Changed someone else's?) (Changed someone else's bank account for money?) (Have you ever inhaled helium?) (Do you know the Latin name for the fruit fly?) (Do you own anything that is radio controlled?) (Have you ever interpolated?) (Have you ever extrapolated?) (Have you ever used a modem?) (Have you ever reached sexual climax while programming a computer?) < Hmmm... well, that's your nerd pureness score. your "nerd" score \(or nerdiosity, if you prefer\) is 100% - your score. no direct correlation has been found between this test, and the "normal" purity tests, though an inverse relationship is suspected. > purity-1.orig/tests/sample100644 1750 144 743 4543317171 14566 0ustar aaronusers{ \{ This is a sample datafile for the purity test. It just prints out a generic datafile for the test. \} \[This is the first subject\] \(question number 1\) \(question number 2\) \(question number 3 \\\(parenthetical comment in question\\\) \) \(question number 4\) \[This is the second subject\] \(question number 5\) \(question number 6\) \(question number 7\) \(question number 8\) \< this is where the score gets printed, and this \\\( the conclusion\\\) gets printed.\> } purity-1.orig/tests/mtrek100644 1750 144 16513 5122704446 14470 0ustar aaronusers{The mtrek purity test... tests to see how "pure" you are at playing mtrek... this test was originated \(i think\) by escher@ucscb.ucsc.edu and has recently been lengthened by jedi@ucscb.ucsc.edu.} [the original test. written by escher. ] (Done a torp dump ?) (Been torp dumped ?) (Torp dumped someone with assistance ?) (Dodged plasma ?) (Shot plasma ?) (Used a bug ?) (Flown a "Rommie" ?) (Cloaked ?) (Cloaked in combat ?) (Had your cloaking burn out ?) (Fired phasers ?) (Locked phasers ?) (Fired phasers wide ?) (Played a ship with a misleading name ? \(i.e. "mine field", "asteroid field", "Starbase", ect.\)) (Annoyed people in the Geek Lab for playing Mtrek too loudly ?) (Switched the baud rate ?) (Forgot to switch the baud rate back ?) (Played Mtrek for 4 hours ?) (Played Mtrek for 8 hours ?) (in one day?) (Played Mtrek with an SO ?) (Played Mtrek later than 4 a.m. ?) (Used a class account to rlogin for Mtrek ?) (Used a friend's class account ?) (Logged on multiple times so as to fly more than one ship ?) (Mtreked while reading forums ?) (Mtreked while eating ?) (Mtreked while going to the bathroom ?) (Taken an Mtrek Purity Test ?) (Exaggerated tales of Mtrek combat for the purpose of impressing fellow Mtrekers ?) (Adminstered an Mtrek Purity Test ?) (Taught someone how to play Mtrek ?) (Mapped keys ?) (Played without keymaps \(the so-called "suicide" strategy\) ?) (Spent days without wondering what the sky was like ?) (Spent days fretting because Mtrek was still down ?) (Annoyed companions with "rousing" tales of Mtrek combat ?) (Considered real life, then rejected it ?) (Scored more than 30 K ?) (Scored within the Top Ten ?) (Played Mtrek by modem ?) (Played Mtrek by net ?) (Played Mtrek on an adm3a ?) (Played Mtrek on a Qume ?) (Self-destructed to kill your opponents ? \(Pyrrhic victory\)) (Let people kill you so they could get more points ?) (Let people kill you so you could lose Mtrek Purity Points ?) (Mourned the loss of a high-point ship ?) (Saved off to prevent immienent destruction ?) (Used the Mtrek Purity Test as a list of things to do ?) [the brand new questions thanks to jedi ] (Ever rammed someone to denotate them?) (Ever burned more than 10 cloaks in just one ship?) (Ever burned warp in a ConIIa to kill someone?) (Ever Broke saved?) (Ever given a "Freighter Tag"? \( 14 torps at 1000 range \)) (Have you ever gotten a freighter to denotate?) (Ever killed a freighter with a BR-5?) (Ever killed anyone with a freighter?) (Have you been guilty of "point shipping"?) (Have you been called a "save artist"?) (Ever teamed?) (With more than 3 people?) (More than 4?) (More than 5?) (Ever given someone 100 phasers at 0 range?) (Ever helped to give 300 phasers at point blank?) (Ever been on the top of the board? \(old or new scoreboard\)) (Rememeber the days of no keymaps? \(keyboard frenzy\)) (Ever survived with more than 175 internal?) (Ever kill someone with a baby con?) (Did you survive to power the ship later?) (Ever let someone bleed to death instead of denotating them?) \(This assumes that you could denotate your enemy, and choose not to.\)) (Are you allied with any of the other players?) (Are you part of permanently part of a federation?) (Have you ever hounded a single ship for more than an hour?) (More than 2 hours?) (More than 3 hours? ) (Have you ever broken a truce? \(back stabbing\)) (Have you ever tried to play the tridium as a real ship?) (Ever self-destructed under cloak?) (Ever played mtrek INSTEAD of having sex?) (Ever had more than three people scan you?) (More than 4?) (More than 5?) (More than 6?) (Ever peek at someone else's screen to get location info?) (Have you planet hopped? \(Twarp to 1150, shoot all 54 torps, and then leave?\)) [and even more fun questions... \(thanks to: numbers@b\) ] (Ever played mtrek by yourself? \(ie: no one else on the system\)) (Ever played mtrek by yourself for more than one hour?) [and even more \(gee, isn't this fun?\)... \(thanks to judoka@b\) ] (Have you ever played mtrek sober?) (Have you ever played mtrek stoned?) (Have you ever played mtrek on LSD?) (Have you ever played mtrek drunk?) (Have you ever taken 3 or more drugs at once and played mtrek?) (Do you play more often intoxicated than not?) (Have you ever flicked ashes all over your keyboard because you were smoking while playing mtrek when suddenly something happens?) (Have you ever gotten stoned while playing mtrek?) (Have you ever been attacked by klingondude?) (Do you know what ship type was Mr. Rogers?) (Ever been attacked by a tie_fighter?) (Ever play at 1200 baud?) (Ever play the 2-d, 6 slot version?) (Failed a course due to mtrek?) (Did you play the night when 5 phasers could wipe out all your energy?) (Ever torp dump with a d10 when you could pump someone up to 500+ damage?) (Ever lose a high score ship due to call waiting?) [and even more and more questions by hube@ucscb ] (Ever killed another player and then killed the same player's subsequent suicide?) (Second suicide?) (Third?) (Suicided on another player that recently blew you up?) (Suicided with another ship other than an excelsior? \(freighter\)) (Taken more than one suicide to kill another player?) (Killed yourself because you left intercept on? \( in the days when you could leave intercept on, though you were going max warp\)) (Flown the Constitution II class? \(not IIA\)) (Flown a BR1000 with two torp tubes?) (Know what a "vogon poet" is?) [can you say even _more_ additions to the test? this set by mikkyo@b. ] (Have you ever played a ship name like "Major Asshole" or similar name, and gone out to z=100000 or so, just to send obnoxious messages?) (Ever had a vengeance against one ship type or one player?) (Many players?) (Many ship types?!?) (Ever waited at a home planet just to kill unpowered ships?) (Ever teamed Con/D11?) (Ever teamed Con/Con?!?\(Sick\)) (Ever teamed 3 Br-1000 that dont move and are 2499 Units from each other? \(Gross\)) (Ever "vultured" or finished off a high-point ship that you'd normally have no chance against?) (Ever killed someone because they called you a name in a open message?) (Ever played someone else's ship name just to annoy them?) (Ever killed, tried to kill, or searched fervently for a ship using a name that you normally use?) (Ever attacked Chuck \(Mtrek creator\) or a rommie named clp?) (Ever lost to Chuck or clp?) (Ever killed Chuck or clp?) (Ever teamed against Chuck or clp?) (Did your whole team die?) (Ever been killed, by Chuck or clp using the Admiral's Password? ) (Ever known the Admiral's Password?) (Ever killed someone using the Admiral's Password?) [more important questions coming from lafolle@b ] (Ever offered peace?) (Ever broken peace?) (Ever offered to team up with someone when your real objective was to kill the person you "teamed up" with?) (Ever written a nasty message in forum to or about Alan Waterman?) (Ever had other people in forum argue about *your* prowess?) (Have you ever sent the message "Just out of curiosity, have you ever kissed a girl?" to make fun of unix geeks?) (Have you ever constructed an alter ego with a fake unixb account, become pen pals with a rival mtrekker, and then threaten to post personal messages in mtrek forum?) (Ever keymapped an obnoxious message and sent it out over and over \(madonna lyrics,"Go Go Gadget Chainsaw", etc...\)?) < if you scored low on this test, you probably need to go out and get a life. > purity-1.orig/tests/hacker100644 1750 144 52751 4543317346 14614 0ustar aaronusers{ (From NutWorks, the former Bitnet humour group) Submitted-by: claudio@amsoft.imp.com (Claudio Nieder, Uster, Switzerland) THE HACKER TEST - Version 1.0 Preface: 06.16.89 This test was conceived and written by Felix Lee, John Hayes and Angela Thomas at the end of the spring semester, 1989. It has gone through many revisions prior to this initial release, and will undoubtedly go through many more. (Slight revisions by William Ward on 12.08.89) (Herewith a compendium of fact and folklore about computer hackerdom, cunningly disguised as a test.) } [ And now for the questions... ] ( 0x000 Have you ever owned a computer?) ( 0x001 Have you ever used a computer?) ( 0x002 ... for more than 4 hours continuously?) ( 0x003 ... more than 8 hours?) ( 0x004 ... more than 16 hours?) ( 0x005 ... more than 32 hours?) ( 0x006 Have you ever patched paper tape?) ( 0x007 Have you ever missed a class while programming?) ( 0x008 ... Missed an examination?) ( 0x009 ... Missed a wedding?) ( 0x00A ... Missed your own wedding?) ( 0x00B Have you ever programmed while intoxicated?) ( 0x00C ... Did it make sense the next day?) ( 0x00D Have you ever written a flight simulator?) ( 0x00E Have you ever voided the warranty on your equipment?) ( 0x00F Ever change the value of 4?) ( 0x010 ... Unintentionally?) ( 0x011 ... In a language other than Fortran?) ( 0x012 Do you use DWIM to make life interesting?) ( 0x013 Have you named a computer?) ( 0x014 Do you complain when a "feature" you use gets fixed?) ( 0x015 Do you eat slime-molds?) ( 0x016 Do you know how many days old you are?) ( 0x017 Have you ever wanted to download pizza?) ( 0x018 Have you ever invented a computer joke?) ( 0x019 ... Did someone not 'get' it?) ( 0x01A Can you recite Jabberwocky?) ( 0x01B ... Backwards?) ( 0x01C Have you seen "Donald Duck in Mathemagic Land"?) ( 0x01D Have you seen "Tron"?) ( 0x01E Have you seen "Wargames"?) ( 0x01F Do you know what ASCII stands for?) ( 0x020 ... EBCDIC?) ( 0x021 Can you read and write ASCII in hex or octal?) ( 0x022 Do you know the names of all the ASCII control codes?) ( 0x023 Can you read and write EBCDIC in hex?) ( 0x024 Can you convert from EBCDIC to ASCII and vice versa?) ( 0x025 Do you know what characters are the same in both ASCII and EBCDIC?) ( 0x026 Do you know maxint on your system?) ( 0x027 Ever define your own numerical type to get better precision?) ( 0x028 Can you name powers of two up to 2**16 in arbitrary order?) ( 0x029 ... up to 2**32?) ( 0x02A ... up to 2**64?) ( 0x02B Can you read a punched card, looking at the holes?) ( 0x02C ... feeling the holes?) ( 0x02D Have you ever patched binary code?) ( 0x02E ... While the program was running?) ( 0x02F Have you ever used program overlays?) ( 0x030 Have you met any IBM vice-president?) ( 0x031 Do you know Dennis, Bill, or Ken?) ( 0x032 Have you ever taken a picture of a CRT?) ( 0x033 Have you ever played a videotape on your CRT?) ( 0x034 Have you ever digitized a picture?) ( 0x035 Did you ever forget to mount a scratch monkey?) ( 0x036 Have you ever optimized an idle loop?) ( 0x037 Did you ever optimize a bubble sort?) ( 0x038 Does your terminal/computer talk to you?) ( 0x039 Have you ever talked into an acoustic modem?) ( 0x03A ... Did it answer?) ( 0x03B Can you whistle 300 baud?) ( 0x03C ... 1200 baud?) ( 0x03D Can you whistle a telephone number?) ( 0x03E Have you witnessed a disk crash?) ( 0x03F Have you made a disk drive "walk"?) ( 0x040 Can you build a puffer train?) ( 0x041 ... Do you know what it is?) ( 0x042 Can you play music on your line printer?) ( 0x043 ... Your disk drive?) ( 0x044 ... Your tape drive?) ( 0x045 Do you have a Snoopy calendar?) ( 0x046 ... Is it out-of-date?) { 0x047 Do you have a line printer picture of...} ( 0x048 ... the Mona Lisa?) ( 0x049 ... the Enterprise?) ( 0x04A ... Einstein?) ( 0x04B ... Oliver?) ( 0x04C Have you ever made a line printer picture?) { 0x04D Do you know what the following stand for?} ( 0x04E ... DASD) ( 0x04F ... Emacs) ( 0x050 ... ITS) ( 0x051 ... RSTS/E) ( 0x052 ... SNA) ( 0x053 ... Spool) ( 0x054 ... TCP/IP) [ Have you ever used: ] ( 0x055 ... TPU?) ( 0x056 ... TECO?) ( 0x057 ... Emacs?) ( 0x058 ... ed?) ( 0x059 ... vi?) ( 0x05A ... Xedit \(in VM/CMS\)?) ( 0x05B ... SOS?) ( 0x05C ... EDT?) ( 0x05D ... Wordstar?) ( 0x05E Have you ever written a CLIST?) ( 0x05F Have you ever programmed in the X windowing system?) ( 0x060 ... CICS?) ( 0x061 Have you ever received a Fax or a photocopy of a floppy?) ( 0x062 Have you ever shown a novice the "any" key?) ( 0x063 ... Was it the power switch?) ( 0x064 Have you ever attended Usenix?) ( 0x065 ... DECUS?) ( 0x066 ... SHARE?) ( 0x067 ... SIGGRAPH?) ( 0x068 ... NetCon?) ( 0x069 Have you ever participated in a standards group?) ( 0x06A Have you ever debugged machine code over the telephone?) ( 0x06B Have you ever seen voice mail?) ( 0x06C ... Can you read it?) ( 0x06D Do you solve word puzzles with an on-line dictionary?) ( 0x06E Have you ever taken a Turing test?) ( 0x06F ... Did you fail?) ( 0x070 Ever drop a card deck?) ( 0x071 ... Did you successfully put it back together?) ( 0x072 ... Without looking?) ( 0x073 Have you ever used IPCS?) ( 0x074 Have you ever received a case of beer with your computer?) ( 0x075 Does your computer come in 'designer' colors?) ( 0x076 Ever interrupted a UPS?) ( 0x077 Ever mask an NMI?) ( 0x078 Have you ever set off a Halon system?) ( 0x079 ... Intentionally?) ( 0x07A ... Do you still work there?) ( 0x07B Have you ever hit the emergency power switch?) ( 0x07C ... Intentionally?) ( 0x07D Do you have any defunct documentation?) ( 0x07E ... Do you still read it?) ( 0x07F Ever reverse-engineer or decompile a program?) ( 0x080 ... Did you find bugs in it?) ( 0x081 Ever help the person behind the counter with their terminal/computer?) ( 0x082 Ever tried rack mounting your telephone?) ( 0x083 Ever thrown a computer from more than two stories high?) ( 0x084 Ever patched a bug the vendor does not acknowledge?) ( 0x085 Ever fix a hardware problem in software?) ( 0x086 ... Vice versa?) ( 0x087 Ever belong to a user/support group?) ( 0x088 Ever been mentioned in Computer Recreations?) ( 0x089 Ever had your activities mentioned in the newspaper?) ( 0x08A ... Did you get away with it?) ( 0x08B Ever engage a drum brake while the drum was spinning?) ( 0x08C Ever write comments in a non-native language?) ( 0x08D Ever physically destroy equipment from software?) ( 0x08E Ever tried to improve your score on the Hacker Test?) ( 0x08F Do you take listings with you to lunch?) ( 0x090 ... To bed?) ( 0x091 Ever patch a microcode bug?) ( 0x092 ... around a microcode bug?) ( 0x093 Can you program a Turing machine?) ( 0x094 Can you convert postfix to prefix in your head?) ( 0x095 Can you convert hex to octal in your head?) ( 0x096 Do you know how to use a Kleene star?) ( 0x097 Have you ever starved while dining with philosophers?) ( 0x098 Have you solved the halting problem?) ( 0x099 ... Correctly?) ( 0x09A Ever deadlock trying eating spaghetti?) ( 0x09B Ever written a self-reproducing program?) ( 0x09C Ever swapped out the swapper?) ( 0x09D Can you read a state diagram?) ( 0x09E ... Do you need one?) ( 0x09F Ever create an unkillable program?) ( 0x0A0 ... Intentionally?) ( 0x0A1 Ever been asked for a cookie?) ( 0x0A2 Ever speed up a system by removing a jumper?) [ Do you know...] ( 0x0A3 Do you know who wrote Rogue?) ( 0x0A4 ... Rogomatic?) ( 0x0A5 Do you know Gray code?) ( 0x0A6 Do you know what HCF means?) ( 0x0A7 ... Ever use it?) ( 0x0A8 ... Intentionally?) ( 0x0A9 Do you know what a lace card is?) ( 0x0AA ... Ever make one?) ( 0x0AB Do you know the end of the epoch?) ( 0x0AC ... Have you celebrated the end of an epoch?) ( 0x0AD ... Did you have to rewrite code?) ( 0x0AE Do you know the difference between DTE and DCE?) ( 0x0AF Do you know the RS-232C pinout?) ( 0x0B0 ... Can you wire a connector without looking?) [ Do you have...] ( 0x0B1 Do you have a copy of Dec Wars?) ( 0x0B2 Do you have the Canonical Collection of Lightbulb Jokes?) ( 0x0B3 Do you have a copy of the Hacker's dictionary?) ( 0x0B4 ... Did you contribute to it?) ( 0x0B5 Do you have a flowchart template?) ( 0x0B6 ... Is it unused?) ( 0x0B7 Do you have your own fortune-cookie file?) ( 0x0B8 Do you have the Anarchist's Cookbook?) ( 0x0B9 ... Ever make anything from it?) ( 0x0BA Do you own a modem?) ( 0x0BB ... a terminal?) ( 0x0BC ... a toy computer?) ( 0x0BD ... a personal computer?) ( 0x0BE ... a minicomputer?) ( 0x0BF ... a mainframe?) ( 0x0C0 ... a supercomputer?) ( 0x0C1 ... a hypercube?) ( 0x0C2 ... a printer?) ( 0x0C3 ... a laser printer?) ( 0x0C4 ... a tape drive?) ( 0x0C5 ... an outmoded peripheral device?) ( 0x0C6 Do you have a programmable calculator?) ( 0x0C7 ... Is it RPN?) ( 0x0C8 Have you ever owned more than 1 computer?) ( 0x0C9 ... 4 computers?) ( 0x0CA ... 16 computers?) ( 0x0CB Do you have a SLIP line?) ( 0x0CC ... a T1 line?) ( 0x0CD Do you have a separate phone line for your terminal/computer?) ( 0x0CE ... Is it illegal?) ( 0x0CF Do you have core memory?) ( 0x0D0 ... drum storage?) ( 0x0D1 ... bubble memory?) ( 0x0D2 Do you use more than 16 megabytes of disk space?) ( 0x0D3 ... 256 megabytes?) ( 0x0D4 ... 1 gigabyte?) ( 0x0D5 ... 16 gigabytes?) ( 0x0D6 ... 256 gigabytes?) ( 0x0D7 ... 1 terabyte?) ( 0x0D8 Do you have an optical disk/disk drive?) ( 0x0D9 Do you have a personal magnetic tape library?) ( 0x0DA ... Is it unlabelled?) ( 0x0DB Do you own more than 16 floppy disks?) ( 0x0DC ... 64 floppy disks?) ( 0x0DD ... 256 floppy disks?) ( 0x0DE ... 1624 floppy disks?) ( 0x0DF Do you have any 8-inch disks?) ( 0x0E0 Do you have an internal stack?) ( 0x0E1 Do you have a clock interrupt?) ( 0x0E2 Do you own volumes 1 to 3 of _The Art of Computer Programming_?) ( 0x0E3 ... Have you done all the exercises?) ( 0x0E4 ... Do you have a MIX simulator?) ( 0x0E5 ... Can you name the unwritten volumes?) ( 0x0E6 Can you quote from _The Mythical Man-month_?) ( 0x0E7 ... Did you participate in the OS/360 project?) ( 0x0E8 Do you have a TTL handbook?) ( 0x0E9 Do you have printouts more than three years old?) [ Career questions ] ( 0x0EA Do you have a job?) ( 0x0EB ... Have you ever had a job?) ( 0x0EC ... Was it computer-related?) ( 0x0ED Do you work irregular hours?) ( 0x0EE Have you ever been a system administrator?) ( 0x0EF Do you have more megabytes than megabucks?) ( 0x0F0 Have you ever downgraded your job to upgrade your processing power?) ( 0x0F1 Is your job secure?) ( 0x0F2 ... Do you have code to prove it?) ( 0x0F3 Have you ever had a security clearance?) [ Games ] ( 0x0F4 Have you ever played Pong?) ( 0x0F5 ... Spacewar?) ( 0x0F6 ... Star Trek?) ( 0x0F7 ... Wumpus?) ( 0x0F8 ... Lunar Lander?) ( 0x0F9 ... Empire?) ( 0x0FA Have you ever beaten Moria 4.8?) ( 0x0FB ... Rogue 3.6?) ( 0x0FC ... Rogue 5.3?) ( 0x0FD ... Larn?) ( 0x0FE ... Hack 1.0.3?) ( 0x0FF ... Nethack 2.4?) ( 0x100 Can you get a better score on Rogue than Rogomatic?) ( 0x101 Have you ever solved Adventure?) ( 0x102 ... Zork?) ( 0x103 Have you ever written any redcode?) ( 0x104 Have you ever written an adventure program?) ( 0x105 ... a real-time game?) ( 0x106 ... a multi-player game?) ( 0x107 ... a networked game?) ( 0x108 Can you out-doctor Eliza?) [ Hardware ] ( 0x109 Have you ever used a light pen?) ( 0x10A ... did you build it?) ( 0x10B Have you ever used a teletype?) ( 0x10C ... a paper tape?) ( 0x10D ... a decwriter?) ( 0x10E ... a card reader/punch?) ( 0x10F ... a SOL?) ( 0x110 Have you ever built an Altair?) ( 0x111 ... a Heath/Zenith computer?) ( 0x112 Do you know how to use an oscilliscope?) ( 0x113 ... a voltmeter?) ( 0x114 ... a frequency counter?) ( 0x115 ... a logic probe?) ( 0x116 ... a wirewrap tool?) ( 0x117 ... a soldering iron?) ( 0x118 ... a logic analyzer?) ( 0x119 Have you ever designed an LSI chip?) ( 0x11A ... has it been fabricated?) ( 0x11B Have you ever etched a printed circuit board?) [ Historical ] ( 0x11C Have you ever toggled in boot code on the front panel?) ( 0x11D Can you program an Eniac?) ( 0x11E Ever seen a 90 column card?) [ IBM ] ( 0x11F Do you recite IBM part numbers in your sleep?) ( 0x120 Do you know what IBM part number 7320154 is?) ( 0x121 Do you understand 3270 data streams?) ( 0x122 Do you know what the VM privilege classes are?) ( 0x123 Have you IPLed an IBM off the tape drive?) ( 0x124 ... off a card reader?) ( 0x125 Can you sing something from the IBM Songbook?) [ Languages ] ( 0x126 Do you know more than 4 programming languages?) ( 0x127 ... 8 languages?) ( 0x128 ... 16 languages?) ( 0x129 ... 32 languages?) ( 0x12A Have you ever designed a programming language?) ( 0x12B Do you know what Basic stands for?) ( 0x12C ... Pascal?) ( 0x12D Can you program in Basic?) ( 0x12E ... Do you admit it?) ( 0x12F Can you program in Cobol?) ( 0x130 ... Do you deny it?) ( 0x131 Do you know Pascal?) ( 0x132 ... Modula-2?) ( 0x133 ... Oberon?) ( 0x134 ... More that two Wirth languages?) ( 0x135 ... Can you recite a Nicklaus Wirth joke?) ( 0x136 Do you know Algol-60?) ( 0x137 ... Algol-W?) ( 0x138 ... Algol-68?) ( 0x139 ... Do you understand the Algol-68 report?) ( 0x13A ... Do you like two-level grammars?) ( 0x13B Can you program in assembler on 2 different machines?) ( 0x13C ... on 4 different machines?) ( 0x13D ... on 8 different machines?) ( 0x13E Do you know APL?) ( 0x13F ... Ada?) ( 0x140 ... BCPL?) ( 0x141 ... C++?) ( 0x142 ... C?) ( 0x143 ... Comal?) ( 0x144 ... Eiffel?) ( 0x145 ... Forth?) ( 0x146 ... Fortran?) ( 0x147 ... Hypertalk?) ( 0x148 ... Icon?) ( 0x149 ... Lisp?) ( 0x14A ... Logo?) ( 0x14B ... MIIS?) ( 0x14C ... MUMPS?) ( 0x14D ... PL/I?) ( 0x14E ... Pilot?) ( 0x14F ... Plato?) ( 0x150 ... Prolog?) ( 0x151 ... RPG?) ( 0x152 ... Rexx \(or ARexx\)?) ( 0x153 ... SETL?) ( 0x154 ... Smalltalk?) ( 0x155 ... Snobol?) ( 0x156 ... VHDL?) ( 0x157 ... any assembly language?) ( 0x158 Can you talk VT-160?) ( 0x159 ... Postscript?) ( 0x15A ... SMTP?) ( 0x15B ... UUCP?) ( 0x15C ... English?) [ Micros ] ( 0x15D Ever copy a copy-protected disk?) ( 0x15E Ever create a copy-protection scheme?) ( 0x15F Have you ever made a "flippy" disk?) ( 0x160 Have you ever recovered data from a damaged disk?) ( 0x161 Ever boot a naked floppy?) [ Networking ] ( 0x162 Have you ever been logged in to two different timezones at once?) ( 0x163 Have you memorized the UUCP map for your country?) ( 0x164 ... For any country?) ( 0x165 Have you ever found a sendmail bug?) ( 0x166 ... Was it a security hole?) ( 0x167 Have you memorized the HOSTS.TXT table?) ( 0x168 ... Are you up to date?) ( 0x169 Can you name all the top-level nameservers and their addresses?) ( 0x16A Do you know RFC-822 by heart?) ( 0x16B ... Can you recite all the errors in it?) ( 0x16C Have you written a Sendmail configuration file?) ( 0x16D ... Does it work?) ( 0x16E ... Do you mumble "defocus" in your sleep?) ( 0x16F Do you know the max packet lifetime?) [ Operating systems ] ( 0x170 Can you use BSD Unix?) ( 0x171 ... non-BSD Unix?) ( 0x172 ... AIX) ( 0x173 ... VM/CMS?) ( 0x174 ... VMS?) ( 0x175 ... MVS?) ( 0x176 ... VSE?) ( 0x177 ... RSTS/E?) ( 0x178 ... CP/M?) ( 0x179 ... COS?) ( 0x17A ... NOS?) ( 0x17B ... CP-67?) ( 0x17C ... RT-11?) ( 0x17D ... MS-DOS?) ( 0x17E ... Finder?) ( 0x17F ... PRODOS?) ( 0x180 ... more than one OS for the TRS-80?) ( 0x181 ... Tops-10?) ( 0x182 ... Tops-20?) ( 0x183 ... OS-9?) ( 0x184 ... OS/2?) ( 0x185 ... AOS/VS?) ( 0x186 ... Multics?) ( 0x187 ... ITS?) ( 0x188 ... Vulcan?) ( 0x189 Have you ever paged or swapped off a tape drive?) ( 0x18A ... Off a card reader/punch?) ( 0x18B ... Off a teletype?) ( 0x18C ... Off a networked \(non-local\) disk?) ( 0x18D Have you ever found an operating system bug?) ( 0x18E ... Did you exploit it?) ( 0x18F ... Did you report it?) ( 0x190 ... Was your report ignored?) ( 0x191 Have you ever crashed a machine?) ( 0x192 ... Intentionally?) [ People ] ( 0x193 Do you know fewer than three people?) ( 0x194 ... fewer than two?) ( 0x195 ... nobody at all?) [ Personal ] ( 0x196 Are your shoelaces untied?) ( 0x197 Do you interface poorly with strangers?) ( 0x198 Are you able to recite phone numbers for half-a-dozen computer systems but unable to recite your own?) ( 0x199 Do you log in before breakfast?) ( 0x19A Do you consume more than LD-50 caffeine a day?) ( 0x19B Do you answer either-or questions with "yes"?) ( 0x19C Do you own an up-to-date copy of any operating system manual?) ( 0x19D ... *every* operating system manual?) ( 0x19E Do other people have difficulty using your customized environment?) ( 0x19F Do you dream in any programming languages?) ( 0x1A0 Do you have difficulty focusing on three-dimensional objects?) ( 0x1A1 Do you ignore mice?) ( 0x1A2 Do you despise the CAPS LOCK key?) ( 0x1A3 Do you believe menus belong in restaurants?) ( 0x1A4 Do you have a Mandelbrot hanging on your wall?) ( 0x1A5 Have you ever decorated with magnetic tape or punched cards?) ( 0x1A6 Do you have a disk platter or a naked floppy hanging in your home?) ( 0x1A7 Have you ever seen the dawn?) ( 0x1A8 ... Twice in a row?) ( 0x1A9 Do you use "foobar" in daily conversation?) ( 0x1AA ... "bletch"?) ( 0x1AB Do you use the "P convention"?) ( 0x1AC Do you automatically respond to any user question with RTFM?) ( 0x1AD ... Do you know what it means?) ( 0x1AE Do you think garbage collection means memory management?) ( 0x1AF Do you have problems allocating horizontal space in your room/office?) ( 0x1B0 Do you read Scientific American in bars to pick up women?) ( 0x1B1 Is your license plate computer-related?) ( 0x1B2 Have you ever taken the Purity test?) ( 0x1B3 Ever have an out-of-CPU experience?) ( 0x1B4 Have you ever set up a blind date over the computer?) ( 0x1B5 Do you talk to the person next to you via computer?) [ Programming ] ( 0x1B6 Can you write a Fortran compiler?) ( 0x1B7 ... In TECO?) ( 0x1B8 Can you read a machine dump?) ( 0x1B9 Can you disassemble code in your head?) ( 0x1BA Have you ever written a compiler?) ( 0x1BB ... an operating system?) ( 0x1BC ... a device driver?) ( 0x1BD ... a text processor?) ( 0x1BE ... a display hack?) ( 0x1BF ... a database system?) ( 0x1C0 ... an expert system?) ( 0x1C1 ... an edge detector?) ( 0x1C2 ... a real-time control system?) ( 0x1C3 ... an accounting package?) ( 0x1C4 ... a virus?) ( 0x1C5 ... a prophylactic?) ( 0x1C6 Have you ever written a biorhythm program?) ( 0x1C7 ... Did you sell the output?) ( 0x1C8 ... Was the output arbitrarily invented?) ( 0x1C9 Have you ever computed pi to more than a thousand decimal places?) ( 0x1CA ... the number e?) ( 0x1CB Ever find a prime number of more than a hundred digits?) ( 0x1CC Have you ever written self-modifying code?) ( 0x1CD ... Are you proud of it?) ( 0x1CE Did you ever write a program that ran correctly the first time?) ( 0x1CF ... Was it longer than 20 lines?) ( 0x1D0 ... 100 lines?) ( 0x1D1 ... Was it in assembly language?) ( 0x1D2 ... Did it work the second time?) ( 0x1D3 Can you solve the Towers of Hanoi recursively?) ( 0x1D4 ... Non-recursively?) ( 0x1D5 ... Using the Troff text formatter?) ( 0x1D6 Ever submit an entry to the Obfuscated C code contest?) ( 0x1D7 ... Did it win?) ( 0x1D8 ... Did your entry inspire a new rule?) ( 0x1D9 Do you know Duff's device?) ( 0x1DA Do you know Jensen's device?) ( 0x1DB Ever spend ten minutes trying to find a single-character error?) ( 0x1DC ... More than an hour?) ( 0x1DD ... More than a day?) ( 0x1DE ... More than a week?) ( 0x1DF ... Did the first person you show it to find it immediately?) [ Unix ] ( 0x1E0 Can you use Berkeley Unix?) ( 0x1E1 .. Non-Berkeley Unix?) ( 0x1E2 Can you distinguish between sections 4 and 5 of the Unix manual?) ( 0x1E3 Can you find TERMIO in the System V release 2 documentation?) ( 0x1E4 Have you ever mounted a tape as a Unix file system?) ( 0x1E5 Have you ever built Minix?) ( 0x1E6 Can you answer "quiz function ed-command" correctly?) ( 0x1E7 ... How about "quiz ed-command function"?) [ Usenet ] ( 0x1E8 Do you read news?) ( 0x1E9 ... More than 32 newsgroups?) ( 0x1EA ... More than 256 newsgroups?) ( 0x1EB ... All the newsgroups?) ( 0x1EC Have you ever posted an article?) ( 0x1ED ... Do you post regularly?) ( 0x1EE Have you ever posted a flame?) ( 0x1EF ... Ever flame a cross-posting?) ( 0x1F0 ... Ever flame a flame?) ( 0x1F1 ... Do you flame regularly?) ( 0x1F2 Ever have your program posted to a source newsgroup?) ( 0x1F3 Ever forge a posting?) ( 0x1F4 Ever form a new newsgroup?) ( 0x1F5 ... Does it still exist?) ( 0x1F6 Ever delete a pre-existing newsgroup?) { Do you remember} ( 0x1F7 ... mod.ber?) ( 0x1F8 ... the Stupid People's Court?) ( 0x1F9 ... Bandy-grams?) [ Phreaking ] ( 0x1FA Have you ever built a black box?) ( 0x1FB Can you name all of the 'colors' of boxes?) ( 0x1FC ... and their associated functions?) ( 0x1FD Does your touch tone phone have 16 DTMF buttons on it?) ( 0x1FE Did the breakup of MaBell create more opportunities for you?) ( 0x1FF Do you know 4 or more calling card numbers \(not your own\)?) < Scoring - Count 1 for each item that you have done, or each question that you can answer correctly. If you score is between: You are 0x000 and 0x016 -\> a Wizard 0x011 and 0x040 -\> a Guru 0x041 and 0x080 -\> a Hacker 0x081 and 0x0C0 -\> a Nerd 0x0C1 and 0x100 -\> an Operator 0x161 and 0x180 -\> a User 0x181 and 0x200 -\> Computer Illiterate If you don't understand the scoring part of the test, you should have just stopped at the beginning. If you have any comments of suggestions regarding the HACKER TEST, Please send then to: hayes@psunuce.bitnet or jwh100@psuvm.bitnet / jwh100@psuvmxa.bitnet or jwh100@psuvm.psu.edu / jwh100@psuvmxa.psu.edu or ...!psuvax0!psuvm.bitnet!jwh100 > purity-1.orig/README.linux100644 1750 144 523 5471564711 14237 0ustar aaronusersI just put in a few changes here and there to make this compile under linux. basically, the SYSV option does most of the work, with only a few minor LINUX ifdefs put in to include needed header files, and help in a cleaner compile. I don't support this stuff....I only ported it.....so send your flames to /dev/null. -Jim jwf@esu.edu