/* 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 */