#include "standard.h"
#include "interface.h"
#include <sys/types.h>
#include <sys/time.h>
Go to the source code of this file.
Defines | |
#define | STRLEN 256 |
Enumerations | |
enum | { Prompt, Run, Cont, Next, Quit } |
Functions | |
void | prompt (void) |
void | get_input (void) |
int | white (char c) |
void | parse_input (void) |
int | equals (char *s1, char *s2) |
void | show_vars () |
char * | rank (int x) |
void | show_score (void) |
void | print_commands (void) |
void | do_cmd (void) |
void | interface (void) |
Variables | |
char | line [STRLEN] |
char | lastline [STRLEN] |
char | cmd [STRLEN] |
char | arg [STRLEN] |
int | breakpoint = 0 |
int | stop = 0 |
enum { ... } | mode |
int | Quit_Mux |
int | debug |
|
Definition at line 7 of file interface.c. |
|
Definition at line 15 of file interface.c. 00015 { Prompt, Run, Cont, Next, Quit } mode;
|
|
Definition at line 125 of file interface.c. References arg, breakpoint, clrscr(), cmd, debug, equals(), get_clock(), mode, print_commands(), Quit_Mux, show_score(), show_vars(), and stop. Referenced by interface(). 00126 { 00127 char s[STRLEN]; 00128 if (equals(cmd, "score")) { 00129 show_score(); 00130 } 00131 else if (equals(cmd, "xyzzy")) { 00132 if (debug) 00133 printf("Poof!\n"); 00134 else 00135 printf("Nothing happens.\n"); 00136 } 00137 else if (equals(cmd, "clear")) { 00138 clrscr(); 00139 } 00140 else if (equals(cmd, "?")||equals(cmd, "h")||equals(cmd, "help")) { 00141 print_commands(); 00142 } 00143 else if (equals(cmd, "q")) { 00144 Quit_Mux = 1; 00145 mode = Quit; 00146 } 00147 else if (equals(cmd, "quit")) { 00148 Quit_Mux = 1; 00149 mode = Quit; 00150 } 00151 else if (equals(cmd, "set")) { 00152 show_vars(); 00153 } 00154 else if (equals(cmd, "c")) { 00155 mode = Cont; 00156 } 00157 else if (equals(cmd, "d")) { 00158 debug = atoi(arg); 00159 printf("debug set to %d\n", debug); 00160 } 00161 else if (equals(cmd, "b")) { 00162 if (arg[0]!='\0') { 00163 breakpoint = atoi(arg); 00164 printf("New breakpoint at clock=%d\n", breakpoint); 00165 } else { 00166 printf("Breakpoint not changed.\n"); 00167 } 00168 } 00169 else if (equals(cmd, "n")) { 00170 if (stop=atoi(arg)) 00171 stop += get_clock(); 00172 else 00173 stop += get_clock() + 1; 00174 mode = Next; 00175 } 00176 }
|
|
Definition at line 71 of file interface.c. 00072 {
00073 return (strcmp(s1,s2)==0);
00074 }
|
|
Definition at line 26 of file interface.c. Referenced by interface(). 00027 { 00028 fgets(line, STRLEN, stdin); 00029 if (strlen(line)) { 00030 line[strlen(line)-1]='\0'; 00031 } 00032 #ifdef DEBUG 00033 printf("line=\"%s\"\n", line); 00034 #endif 00035 }
|
|
Definition at line 179 of file interface.c. References Cont, do_cmd(), error(), get_clock(), get_input(), mode, Next, parse_input(), Prompt, prompt(), Quit, and Run. Referenced by main_loop(). 00180 { 00181 switch (mode) { 00182 case Prompt: break; 00183 case Run: break; 00184 case Cont: 00185 if (get_clock() == breakpoint) 00186 mode = Prompt; 00187 break; 00188 case Next: 00189 if (get_clock() == stop) 00190 mode = Prompt; 00191 break; 00192 case Quit: 00193 break; 00194 default: 00195 error("interface","invalid mode"); 00196 } 00197 00198 while (mode == Prompt) { 00199 prompt(); 00200 get_input(); 00201 parse_input(); 00202 do_cmd(); 00203 } 00204 }
|
|
Definition at line 42 of file interface.c. References arg, cmd, lastline, line, and white(). Referenced by interface(). 00043 { 00044 int i=0,j=0,k=0; 00045 00046 if ((line[0]=='\0') && (lastline[0]!='\0')) 00047 strcpy(line, lastline); 00048 else 00049 strcpy(lastline, line); 00050 00051 cmd[0]='\0'; 00052 arg[0]='\0'; 00053 00054 if (strlen(line)) { 00055 while (white(line[i])) 00056 i++; 00057 while ((!white(line[i])) && (line[i]!='\0')) 00058 cmd[j++]=line[i++]; 00059 cmd[j]='\0'; 00060 while (white(line[i])) 00061 i++; 00062 while (line[i]!='\0') 00063 arg[k++]=line[i++]; 00064 arg[k]='\0'; 00065 #ifdef DEBUG 00066 printf("cmd=\"%s\", arg=\"%s\"\n", cmd, arg); 00067 #endif 00068 } 00069 }
|
|
Definition at line 112 of file interface.c. Referenced by do_cmd(). 00113 { 00114 printf("\nAvailable Commands:\n\n"); 00115 printf("b <x> = break when clock = x\n"); 00116 printf("c = continue until breakpoint\n"); 00117 printf("d <l> = set debug = l\n"); 00118 printf("n <i> = continue for i clock cycles\n"); 00119 printf("r = run continuously\n"); 00120 printf("q = quit\n"); 00121 printf("\n"); 00122 }
|
|
Definition at line 20 of file interface.c. References get_clock(), and lastline. Referenced by interface(). 00021 { 00022 printf("mux_sim:%d [%s]> ", get_clock(), lastline); 00023 fflush(stdout); 00024 }
|
|
Definition at line 85 of file interface.c. 00086 { 00087 if (x >= 250) 00088 return (" Master MUXer"); 00089 if (x >= 200) 00090 return (" MUX Engineer"); 00091 if (x >= 150) 00092 return ("n ITU LBC Expert"); 00093 if (x >= 100) 00094 return ("n ITU Technical Writer"); 00095 return(" Novice Adventurer"); 00096 }
|
|
Definition at line 99 of file interface.c. References rank(). Referenced by do_cmd(). 00100 { 00101 static int first = 1; 00102 int x; 00103 if (first) { 00104 time_t tloc; 00105 srand((int) time(&tloc)); 00106 first=0; 00107 } 00108 x = rand() % 256; 00109 printf("Your score is %d points, which ranks you as a%s\n", x, rank(x)); 00110 }
|
|
Definition at line 78 of file interface.c. References debug. Referenced by do_cmd(). 00079 { 00080 printf("Variables:\n"); 00081 printf("\tdebug = %d\n", debug); 00082 }
|
|
Definition at line 37 of file interface.c. 00038 { 00039 return ((c == ' ') || (c == '\t')); 00040 }
|
|
Definition at line 12 of file interface.c. Referenced by do_cmd(), and parse_input(). |
|
Definition at line 13 of file interface.c. Referenced by do_cmd(). |
|
Definition at line 11 of file interface.c. Referenced by do_cmd(), and parse_input(). |
|
|
|
Definition at line 10 of file interface.c. Referenced by parse_input(), and prompt(). |
|
Definition at line 9 of file interface.c. Referenced by get_input(), and parse_input(). |
|
Referenced by do_cmd(), and interface(). |
|
Definition at line 24 of file main.c. Referenced by do_cmd(), and main_loop(). |
|
Definition at line 14 of file interface.c. Referenced by do_cmd(). |