#define TONE /* which version of the program are we producing? */ #pragma once #include /* Character variables and arrays common to IBM and Mac versions*/ #ifdef global #define extern #endif // defines #define BEL 0x7 /*Warning noise*/ #define BS '\b' /*backspace character*/ #define CANERR 6 /*error canceling code*/ #define CONOUT stdout /*console output file*/ #define CR '\r' /*return character*/ #define DEL 0x7F /*delete character*/ #define EOL 13 /*end-of-line character - same as CR*/ #define FILESIZE 42000 //Filesize #define FF '\f' /*Formfeed character*/ #define LF 10 /*New line character*/ #define MAXCARDS 1100 /*Maximum number of input items*/ #define MAXCOMS 50 /*Maximum number of comment items*/ #define MAXLINE 256 /*Maximum line length*/ #define MAXR 6 /*Maximum number of rungs*/ #define NEXTF 1 /*Code to go to next card*/ #define NL '\n' /*New line character = LF*/ #define NUL '\0' /*Null character*/ #define PASSF 8 /*Code to pass over a card*/ #define SP ' ' /*Space character*/ #define STOPF 2 /*Code to end card display */ #define WORD_ALIGN #ifdef TTHREE typedef struct flashcd{ /*Flashcard array for primitives and affixes*/ char flag[4]; char *prim; char *affix; char *trans; char *extn; } FlashCd; #else typedef struct flashcd { /*Flashcard array for sentences*/ char flag[6]; char *logsent; char *engsent; } FlashCd; #endif extern FlashCd flasharray[MAXCARDS]; // Prototypes //long labs(long n); void brush(void); void countflag(void); void doselect(void); void doshufl(void); void dotest(short ID); void getend(void); void getstart(void); void header(void); void init(void); short isqrt(long n); short mycomp(char *str2, char *str1); short RandOf(short n); void readfile(void); void findcmts(void); void restore(void); void savedo(void); void setrank(void); void setstat(void); void statdo(short ticks); void statline(void); short strindex(char *s, char *t); void upstat(void); void upstring(char *stg); void writefile(FILE *fname); /* JPJ: made these extern so that the header can be included more than once */ extern short affixflag; /*Flag used for indicating if affix or primitive mode*/ extern char *ansptr[20]; /*pointers to individual words in answer*/ extern short average; /* For saving average time */ extern char bufr[2000]; /* Buffer for comment page in Mac MT1 version*/ extern short cardcount; /* Current total number of cards*/ //cflag is 1 if there are alternatives, 2 if comments extern short cflag; /* Flag for comments and optional translations 1=Yes 2=0*/ extern char *cmmt; /* Pointer to comment to Loglan text */ extern char comname[15]; /*Name of comment file for this test input */ extern long compos[MAXCOMS]; /*File positions for start of each comment*/ extern short curflag; /*Flags affixes or primitives, and recognition or recall*/ extern short dirty; /*indicates if file changed since last written*/ extern short drillflg; /*# of correct responses required to leave error box*/ extern struct tm *etime; /* Macintosh structure for obtaining the time */ extern short factor; /*time conversion factor*/ extern char filename[256]; /*array for filename JPJ: name it 256. */ extern short ind1,ind2; /*indexes for string comparison. Must be global*/ extern short inpfile; /* flag to indicate if an input file is open */ extern char instring[MAXLINE]; /* string to read in test answer*/ extern char istring[MAXLINE]; /*temp string to hold correct answer*/ extern short left; /*Count of cards remaining in a test set*/ extern long macticks; /*TickCount() returns a long*/ extern short maximum; /* maximum response time recorded in a test group */ extern short minimum; /* minimum response time in a test group */ extern short moment; /* used in calculating standard deviation */ extern unsigned long next; /* used in random number generation */ extern short oldlevel; /*used by teach3 for restoring after an error correction*/ extern short opt; /*A flag showing an optional word is being processed*/ extern short percent; /* percent correct in a test group */ extern char prog; /*Type of program being processed*/ extern short r [MAXR]; /*holds card count at each level */ extern short rank [MAXCARDS];/* used for shuffling card order */ extern short reviewflag; /* Indicates whether testing or review in progress */ extern short right; /* number correct in this test group */ extern short righttot; /*number correct in this session */ extern short rrflag; /*Is recognition or recall current*/ extern short rungflag; /*Indicates which rung is being tested */ extern short sdevn; /* standard deviation of response times */ extern short selection; /*count of cards selected*/ extern short shour; /* starting hour */ extern short smin; /* starting minute */ extern short shufflag; /* flag to indicate if shuffling wanted */ extern long square; /*used to calculate standard deviation of test group*/ extern long sqtotal; /* used for session standard deviation */ extern struct tm *stime; /* start time structure (Macintosh only??) */ extern short testav; /* Session average */ extern short tested; /* Number tested in this group */ extern short testtotl; /* Total number tested in a session */ extern short threshld; /* Maximum time permitted for response */ extern short ticks; /* Macintosh time measure (60ths second) */ extern long ticktotl; /* Total test group time */ extern long timetotl; /* Total session time */ extern short tmouts; /* Number of session timeouts */ extern short tsd; /* Standard deviation for session */ extern short val; /* Used to highlight dialog items */ extern short wall; /*Used to establish word barriers for test string comparison*/ extern short winht; /*Number of lines visible in a help window*/ extern char *wordptr[20]; /*pointers to individual words*/ extern FILE *inp, *out, *stats ; /* Input, output and statistics file pointers*/ extern FILE *cmt; /* Lesson comment files for Teach 3*/