home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / misc / b186_1 / Source / c / main~ < prev    next >
Text File  |  1990-04-16  |  2KB  |  108 lines

  1. /*
  2.  
  3.        This file is part of the PDP software package.
  4.          
  5.        Copyright 1987 by James L. McClelland and David E. Rumelhart.
  6.        
  7.        Please refer to licensing information in the file license.txt,
  8.        which is in the same directory with this source file and is
  9.        included here by reference.
  10. */
  11.  
  12. /*
  13.     Just defines main() -- try command.c for the command interface.
  14.     
  15.     First version implemented by Elliot Jaffe.
  16.     
  17.     Date of last revision:  8-12-87/JLM.
  18. */
  19.  
  20. #include "general.h"
  21. #include "variable.h"
  22. #include "command.h"
  23. #include "patterns.h"
  24.  
  25. boolean    start_up = 1;
  26.  
  27. char    err_string[LINE_SIZE];
  28. char    prog_name[10];
  29. char  version[10] = "1.1";
  30.  
  31. main(argc, argv)
  32. int     argc;
  33. char  **argv;
  34. {
  35.  
  36.     char   *get_command ();
  37.     
  38.     get_progname();
  39.  
  40.     printf("      Welcome to %s, a PDP program (Version %s).\n",
  41.             prog_name,version);
  42.     printf("Copyright 1987 by J. L. McClelland and D. E. Rumelhart.\n");
  43.     sleep(3);
  44.     (void) srand(time(0));
  45.     random_seed = rand();
  46.     (void) srand(random_seed); /* we now have a restartable random seed */
  47.     init_general();
  48.     init_display();
  49.     init_system();
  50.  
  51.     start_up = 1;
  52.  
  53.     if (argc-- > 1) {
  54.         ++argv;
  55.     if (argv[0][0] == '-'){
  56.         /* user wants to skip the template file */
  57.     }
  58.     else if ((in_stream = fopen(*argv, "r")) == NULL) {
  59.         sprintf(err_string,"cannot open %s\n", *argv);
  60.         put_error(err_string);
  61.     }
  62.     else {
  63.         read_template();
  64.         fclose(in_stream);
  65.     }
  66.     if (argc-- > 1) {
  67.         if ((in_stream = fopen(*++argv, "r")) == NULL) {
  68.         sprintf(err_string,"cannot open %s\n", *argv);
  69.         put_error(err_string);
  70.         }
  71.         else {
  72.         while(! feof(in_stream))
  73.           do_command(Prompt, (int *) BASEMENU);
  74.         }
  75.         fclose(in_stream);
  76.     }
  77.     }
  78.  
  79.     if (!System_Defined && nunits > 0) {
  80.         (void) define_system();
  81.     }
  82.     
  83.     redisplay();    /* tests templates for validity */
  84.  
  85.     in_stream = stdin;
  86.  
  87.     start_up = 0;
  88.     
  89.     io_initscr();        /* initialize the screen */
  90.     redisplay();        /* put up initial display */
  91.  
  92.     while (TRUE) {
  93.       do_command(Prompt, (int *) BASEMENU);
  94.     }
  95. }     
  96.  
  97. get_progname() {
  98.     int i;
  99.     
  100.     i = 0;
  101.     
  102.     while (Prompt[i] && Prompt[i] != ':') {
  103.         prog_name[i] = Prompt[i];
  104.     i++;
  105.     }
  106.     prog_name[i] = '\0';
  107. }
  108.