/* This is skeleton code as of Program 2. Small changes may be made for later programs. */ #define DS_SIZE 10000 #include #include #define T0 500 #define T1 501 #define SP reg[0] #define FP reg[1] #define BUFFER_SIZE 200 int ds[DS_SIZE]; int reg[4]; char buffer[BUFFER_SIZE]; char *stringlist[] = {}; void readstring(int loc) { // accepts newline-terminated from keyboard and // stores characters in ds[] beginning at loc fgets(buffer, BUFFER_SIZE, stdin); // keyboard input int i = 0; while (buffer[i]) // copy buffer to position in ds[] { ds[loc + i] = buffer[i]; i++; } ds[loc + i] = 0; // terminator } void writestring(int loc) { // displays string beginning at loc << endl; int i = 0; // copy string from ds to buffer while (i < BUFFER_SIZE - 1 && ds[loc + i]) { buffer[i] = ds[loc + i]; i++; } buffer[i - 1] = '\0'; // terminator printf("%s", buffer); // display } int readint() { // reads integer from the keyboard fgets(buffer, BUFFER_SIZE, stdin); buffer[strlen(buffer) - 1] = '\0'; // clear '\n; return atoi(buffer); } int main() { SP = 500; /* empty stack */ }