// Zmod12.cpp : Defines the entry point for the console application.
//

#define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers
#include <stdio.h>
#include <tchar.h>
#include <stdlib.h>
//#include <conio.h>

extern "C"
{
	#include "zmodem.h"
}

int _tmain(int argc, _TCHAR* argv[])
{
    static ZMODEM zmodem;
	char filename[80];
	
	printf("\nZmodem program...");
	
	// No arguments?
	if((argc == 1 || argc > 3))
	{
		printf("\nUsage: zmodem /r /s [filename]");
		exit(1);
	}
 
	// Get the filename
	if(argv[1][0] == '/')
	{
		switch(argv[1][1])
		{
		case 'r':	// Receive
		    zmodemDefaults(&zmodem);
		    zmodemInit(&zmodem);
			zmodemReceive(&zmodem);
			zmodemTerm(&zmodem);
			break;

		case 's':	// Send
			if(argc == 3) 
			{
				strcpy(filename, argv[2]);
			}
			else 
			{
				printf("\nError: send requires filename");
				exit(1);
			}
		    zmodemDefaults(&zmodem);
		    zmodemInit(&zmodem);
			zmodemSend(&zmodem, filename);
			zmodemTerm(&zmodem);
			break;
		default:
			printf("\nUnrecognized argument");
		}
	}
	else printf("\nUnrecognized argument");
    
//	while(!kbhit());	// Pause before exiting to let me read the screen.
    return (0);
}
