home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / comm / jmodem.zip / JMODEM_B.C < prev    next >
Text File  |  1990-06-20  |  5KB  |  88 lines

  1. /****************************************************************************/
  2. /*   FILE JMODEM_B.C                                                        */
  3. /*   Created 11-JAN-1990            Richard B. Johnson                      */
  4. /*                                  405 Brougton Drive                      */
  5. /*                                  Beverly, Massachusetts 01915            */
  6. /*                                  BBS (508) 922-3166                      */
  7. /*                                                                          */
  8. /*   allocate_memory();  (All memory allocation )                           */
  9. /*   get port();         (Parse, get ASCII port)                            */
  10. /*   get_inp();          (Parse, get filename)                              */
  11. /*   get_fun();          (Parse, get function S,R )                         */
  12. /*   get_prt();          (Convert ASCII port to numeric offset)             */
  13. /*                                                                          */
  14. /****************************************************************************/
  15. #include <stdio.h>                              /* Used for _puts();        */
  16. #if defined (TURBOC)
  17.     #include <alloc.h>
  18. #else
  19.     #include <malloc.h>                         /* Used for _malloc();      */
  20. #endif
  21. #include <string.h>                             /* Used for _strcpy(), etc  */
  22. #include "jmodem.h"                             /* JMODEM primatives        */
  23. /****************************************************************************/
  24. /*                          Allocate memory                                 */
  25. /****************************************************************************/
  26. unsigned char *allocate_memory(buf_len)
  27. unsigned short buf_len;
  28. {
  29.     register unsigned char *memory;
  30.     memory = (unsigned char *) malloc( buf_len );
  31.     if (!memory)
  32.         puts(malfail);
  33.     return memory;
  34. }
  35. /****************************************************************************/
  36. /*                            Get filename                                  */
  37. /****************************************************************************/
  38. unsigned char *get_inp (argc, argv)
  39. unsigned short argc;
  40. register char *argv[];
  41. {
  42.     register char *name;                   /* Filename string pointer       */
  43.     if (argc > 2)                          /* Check command-line parameters */
  44.     {
  45.         name = argv[2];                    /* Copy the file name pointer    */
  46.         do
  47.         {                                  /* Cheap _toupper()              */
  48.             if ( ( *name <  0x7B )         /* Check upper limit             */
  49.               && ( *name >  0x60 ) )       /* Check lower limit             */
  50.                    *name &= 0x5F;          /* Map to upper case             */
  51.     } while (*(++name));                   /* Until the NULL character      */
  52.         return argv[2];                    /* Return a pointer to the name  */
  53.     }
  54.     return NULL;
  55. }
  56. /****************************************************************************/
  57. /*                          Get function  (S or R)                          */
  58. /****************************************************************************/
  59. unsigned char get_fun(argc,argv)
  60. unsigned short argc;
  61. register char *argv[];
  62. {
  63.     if (argc > 2)                               /* Command-line parameters */
  64.     {
  65.         *argv[1] &= 0x5F;                        /* Map to upper case      */
  66.         if (*argv[1] == 'S' || *argv[1] == 'R')  /* Check valid parameters */
  67.             return *argv[1];                     /* Either 'R' or 'S'      */
  68.     }
  69.     return NULL;                                 /* Else NULL              */
  70. }
  71. /****************************************************************************/
  72. /*                      Get port ASCII number (1 - 4)                       */
  73. /****************************************************************************/
  74. unsigned short get_port(argc,argv)
  75. unsigned short argc;
  76. register char *argv[];
  77. {
  78.     if (argc > 2)                               /* Command-line parameters  */
  79.     {
  80.         if (*(++argv[1]) > '0' && *argv[1] < '5') /* Check for valid ports  */
  81.             return ((unsigned short)
  82.                     *argv[1] - '0');            /* Return binary port value */
  83.     }
  84.     return NULL;
  85. }
  86. /****************************************************************************/
  87. /************************ E N D  O F   M O D U L E **************************/
  88.