|
|
1.1 ! root 1: /* Copyright Bell Telephone Laboratories Whippany, N.J. ! 2: ! 3: * ///////////////////////////////////// ! 4: * ///////////////////////////////////// ! 5: * /////// EXPUNGE all variables /////// ! 6: * /// J. P. Hawkins WH X4610 8C-001 /// ! 7: * ///// Sun Aug 26 05:56:08 1979 ////// ! 8: * ///////////////////////////////////// ! 9: * ///////////////////////////////////// ! 10: ! 11: * ! 12: * clear variable symbol tables and initialize core pointer ! 13: * so that all variables are freed including subscripted vars. ! 14: * and hicore points to top limit of txtbuf. ! 15: * ! 16: * This done on any invocation of the "run" command. ! 17: * or "expunge" command. ! 18: * ! 19: * MOD,J.P.Hawkins, 4-FEB-81, to include string variable symbol table clr ! 20: */ ! 21: /* "@(#) expunge.c: V 1.3 3/1/81" */ ! 22: #include "bas.h" ! 23: extern char *hicore; /* highest free user location pointer */ ! 24: extern char txtbuf[]; /* user core */ ! 25: extern char *symtab[26][11], *asymtab[26][11]; /* symbol table pointers */ ! 26: #ifdef STRINGS ! 27: extern struct FREELIST freelist[]; ! 28: extern char * ssymtab[26][11]; ! 29: extern char * sasymtab[26][11]; ! 30: #endif ! 31: expunge() ! 32: { ! 33: register i; ! 34: clrtab(symtab); /* initialize regular variable ! 35: symbol table */ ! 36: #ifdef STRINGS ! 37: clrtab(ssymtab); /* initialize string variable ! 38: symbol table */ ! 39: clrtab(sasymtab); /* initialize string array variable ! 40: symbol table */ ! 41: for(i=0; i<MAXFREE; i++) /* cleanup string freelist */ ! 42: freelist[i].size = 0; ! 43: #endif ! 44: clrtab(asymtab); /* initialize subscripted variable ! 45: symbol table */ ! 46: hicore = &txtbuf[PGSIZ*NMPAG]; /* point to top of user core */ ! 47: } ! 48: ! 49: /* ! 50: * clear 26 rows, 11 columns ! 51: * rows represent symbol letters a-z ! 52: * columns represent no-number, then 0-9 = 11 ! 53: */ ! 54: clrtab(table) ! 55: char * table[26][11]; ! 56: { ! 57: register j,k; /* row and column indicies */ ! 58: ! 59: for(j=0; j<26; j++) ! 60: for(k=0; k<11; k++) ! 61: table[j][k] = 0; ! 62: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.