From 024f069d1f0feb3ecb2eea6b1443536defb01f35 Mon Sep 17 00:00:00 2001 From: Ian C Date: Mon, 7 May 2007 02:05:54 +0000 Subject: This commit was generated by cvs2svn to compensate for changes in r2, which included commits to RCS files with non-trunk default branches. --- src/main.c | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 src/main.c (limited to 'src/main.c') 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 +#include +#include +#include +#include +#include +#include + +#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 */ -- cgit v1.2.3