aboutsummaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2012-04-18 03:47:31 +0000
committerDimitri Sokolyuk <demon@dim13.org>2012-04-18 03:47:31 +0000
commitce38b43357c573f4a68d24a10f847473ff77b305 (patch)
tree460172d3071b95854d354661a0352c910aa003f3 /main.c
parentb7fd152aa1f40ca89da321040e8e86a48e19d1e0 (diff)
Graphic display, no scalling, no input ... jet
Diffstat (limited to 'main.c')
-rw-r--r--main.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/main.c b/main.c
index 02a4f8f..70634d1 100644
--- a/main.c
+++ b/main.c
@@ -21,8 +21,10 @@
#include <unistd.h>
#include "dcpu16.h"
+void (*emu)(unsigned short *, unsigned short *);
+
void
-dumpcode(unsigned short *m)
+dumpcode(unsigned short *m, unsigned short *r)
{
int i, k, sum;
@@ -54,17 +56,17 @@ main(int argc, char **argv)
unsigned short *m;
unsigned short r[nReg] = { 0 };
FILE *fd;
- int e_flag = 0;
- int g_flag = 0;
int ch;
+ emu = dumpcode;
+
while ((ch = getopt(argc, argv, "eg")) != -1)
switch (ch) {
case 'e':
- e_flag = 1;
+ emu = tuiemu;
break;
case 'g':
- g_flag = 1;
+ emu = guiemu;
break;
default:
usage();
@@ -84,10 +86,7 @@ main(int argc, char **argv)
m = compile(fd, MEMSZ);
fclose(fd);
- if (e_flag)
- tuiemu(m, r);
- else
- dumpcode(m);
+ emu(m, r);
return 0;
}