summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorIan C <ianc@noddybox.co.uk>2007-05-07 02:05:54 +0000
committerIan C <ianc@noddybox.co.uk>2007-05-07 02:05:54 +0000
commit024f069d1f0feb3ecb2eea6b1443536defb01f35 (patch)
treefd108ce1dcc82fe14029db250f4505ea7f4321ff /src/main.c
parentc657944c91fae5f581839912cb0a55bee84c9278 (diff)
This commit was generated by cvs2svn to compensate for changes in r2,HEADmaster
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c140
1 files changed, 140 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c
new file mode 100644
index 0000000..3c9ef78
--- /dev/null
+++ b/src/main.c
@@ -0,0 +1,140 @@
+/*
+
+ atarisio - A UNIX backend for an Atari SIO2PC lead.
+
+ Copyright (C) 2004 Ian Cowburn (ianc@noddybox.demon.co.uk)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ -------------------------------------------------------------------------
+
+*/
+static const char id[]="$Id$";
+
+#include <stdlib.h>
+#include <limits.h>
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <unistd.h>
+#include <fcntl.h>
+
+#include "serial.h"
+#include "disk.h"
+#include "config.h"
+#include "token.h"
+#include "util.h"
+
+
+/* ---------------------------------------- MACROS
+*/
+#define TRUE 1
+#define FALSE 0
+
+
+/* ---------------------------------------- STATIC
+*/
+static int quit=FALSE;
+
+
+/* ---------------------------------------- COMMAND HANDLERS
+*/
+
+static void Quit(int argc, char *argv[])
+{
+ quit=TRUE;
+}
+
+
+static void Start(int argc, char *argv[])
+{
+ SerialOpen(SConfig(CONF_DEVICE));
+}
+
+
+static void Stop(int argc, char *argv[])
+{
+ SerialClose();
+}
+
+
+static void Debug(int argc, char *argv[])
+{
+ int flag;
+
+ if (YesNo(argv[1],&flag))
+ {
+ SerialDebug(flag);
+ }
+ else
+ {
+ printf("Invalid argument\n");
+ }
+}
+
+
+/* ---------------------------------------- COMMAND TABLE
+*/
+
+static Command cmd[]=
+{
+ {"quit", 1,1, "quit", "Exit atarisio", Quit},
+ {"start", 1,1, "start", "Start emulation", Start},
+ {"stop", 1,1, "stop", "Stop emulation", Stop},
+ {"debug", 2,2, "debug on|off", "Switch debug on/off", Debug}
+};
+
+
+/* ---------------------------------------- MAIN
+*/
+int main(int argc, char *argv[])
+{
+ char buff[1024];
+
+ TokenRegister(sizeof cmd/sizeof cmd[0],cmd);
+ SerialInit();
+ DiskInit();
+
+ printf("atarsio, Copyright (C) 2004 Ian Cowburn\n");
+ printf("atarsio comes with with ABSOLUTELY NO WARRANTY.\n");
+
+ if (!ConfigRead())
+ {
+ fprintf(stderr,"Failed to read ~/.siorc\n");
+ return EXIT_FAILURE;
+ }
+
+ if (!quit)
+ {
+ printf("%s",SConfig(CONF_PROMPT));
+ fflush(stdout);
+
+ while(fgets(buff,sizeof buff,stdin))
+ {
+ TokenRun(buff);
+
+ if (quit)
+ break;
+
+ printf("%s",SConfig(CONF_PROMPT));
+ fflush(stdout);
+ }
+ }
+
+ return EXIT_SUCCESS;
+}
+
+
+/* END OF FILE */