/*
*****************************************************************************
*
*        Name   :  UHR.C                                                    
*        Author :  Gerd Oppermann                                                   
*        Date   :  1989/01/11     
*
*****************************************************************************
*
*
*****************************************************************************
*/
#define SYSDAT "1989/01/11"          /* last compile date */
#include "fcntl.h"
#define CR      0x0d
int tasten_code;
int tc;
char *zeits();
char static st[5];
char static zahlen[8];
char static lw[] = " 0A:SMASTER S ";
char *cbuf;

int p2705_flag = 0;

main()
{

  inmask();         /* Eingabe Maske*/
  stopzeit();       /* Eingabe + Pr}fung der Stopzeit*/
  drive();          /* Eingabe + Pr}fung des zu sichernden Laufwerks*/
  outmask();        /* Ausgabe Maske setzen*/

  sscanf(zeits(),"%s",zahlen);

  for( ;strncmp(st,zahlen,5); )
   {
    uhr();          /* Anzeige der Uhrzeit im Grafik Mode*/
    sscanf(zeits(),"%s",zahlen);
   }

    uhr();
    scr_graphic(0);
    scr_curs(23,1);
    cbuf = lw;
    send_commandline(cbuf);  
    exit();
}


inmask()
{
  int flag;

  scr_clear();
  scr_curs(4,1);
  scr_hint(flag);
  scr_graphic(flag);
  printf("KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK");
  scr_curs(21,1);
  printf("KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK");
  flag = 0;
  scr_graphic(flag);
  scr_hint(flag);
  scr_video(1);
  scr_curs(1,1);
  printf("Uhr zum automatischen Programmstart     Ver.1.0 Copyright (c) 1988 PKI AG Siegen"); 
  scr_video(0); 
  scr_curs(3,1);
  printf("Programmstart = %s  ", zeits());                    
  scr_curs(10,5);
  printf("Bitte geben Sie die Stopzeit an \(SSMM CR\) : ");
  scr_curs(14,5);
  printf("Bitte geben Sie das Laufwerk an, das auf      ");
  scr_curs(16,5);
  printf("STREAMER gesichert werden soll  \(A - P\)   : ");
  scr_curs(10,51);
}

stopzeit()
{
	int  i;
        int  y = 1;
        int  tasten; 
        int  sth;

        
         for(;(tasten_code = scr_getc()) &&  y != 5 ;)
	  {
            if(y == 1)
             {
               scr_curs(23,51);
               printf("                            ");
               scr_curs(10,51);                  
             }              
    	       scr_putc(tasten_code);
	       tasten = tasten_code;
               tasten = tasten - 48;
               sth = st[1];
               sth = sth - 48;
            if(y != 5 && tasten_code == CR )
             {
               y = 0;
               scr_curs(23,51);
               printf("Fehlerhafte Uhrzeiteingabe  ");
               scr_curs(10,51);
             } 
            if(y == 1 && tasten > 2 )
             {
               y = 0;
               scr_curs(23,51);
               printf("Fehlerhafte Uhrzeiteingabe  ");
               scr_curs(10,51);
             } 
            if(y == 2 && (sth == 1 || sth == 0) && tasten > 9 )
             {
               y = 0;
               scr_curs(23,51);
               printf("Fehlerhafte Uhrzeiteingabe   ");
               scr_curs(10,51);
             }
            if((y == 2 && sth == 2) && tasten > 4 )
             {
               y = 0;
               scr_curs(23,51);
               printf("Fehlerhafte Uhrzeiteingabe  ");
               scr_curs(10,51);
             }
            if(y == 3 && tasten > 5)
             {
                y = 0;
                scr_curs(23,51);
                printf("Fehlerhafte Uhrzeiteingabe  ");
                scr_curs(10,51);
             }
            if(y == 4 && tasten > 9)
             {
                y = 0;
                scr_curs(23,51);
                printf("Fehlerhafte Uhrzeiteingabe ");
                scr_curs(10,51);
             }
            if(y != 0)
             {

                 st[y] = tasten_code;
             }

                 ++y; 
          }
            st[0] = st[1];
            st[1] = st[2];
            st[2] = ':';
}



drive()
{

        int i;
	int zeile;
	int spalte;
        int echo;
	zeile = 16;
	spalte = 51;
	echo = 0;
	scr_echo(echo);
	scr_curs(zeile, spalte);
	printf("  ");
	scr_curs(zeile, spalte);
	tasten_code = scr_getc();
        tc = toupper(tasten_code);

       switch(tc) 
	{
        case 'A':
                   break;
        case 'B':
                   break;
        case 'C':
                   break;
        case 'D':
                   break;
        case 'E':
                   break;
        case 'F':
                   break;
        case 'G':
                   break;
        case 'H':
                   break;
        case 'I':
                   break;
        case 'J':
                   break;
        case 'K':
                   break;
        case 'L':
                   break;
        case 'M':
                   break;
        case 'N':
                   break;
        case 'O':
                   break;
        case 'P':
                   break; 
        default:
                scr_bel();
         	scr_curs(23,5);
		printf("Ung}ltige Laufwerksangabe ");
		i = crch_input();
		scr_curs(23,5);
		printf("                                 ");
                drive();
        }
	echo = 1;
	scr_echo(echo);
	scr_curs(zeile,spalte);
        scr_putc(tc);       
        lw[13] = tc;
}


outmask()
{

char static dat[11];
int  a_zeile;
int  a_spalte;
int  n_zeile;
int  n_spalte;
char *datum();

int flag = 1;
a_zeile = 7; 
a_spalte = 13;
n_zeile = 11;
n_spalte = 53;
scr_curs(10,5);
printf("                                                   ");
scr_curs(14,5);
printf("                                                   ");
scr_curs(16,5);
printf("                                                   ");
scr_box(a_zeile,a_spalte,n_zeile,n_spalte);
flag = 0;
scr_hint(flag);
scr_graphic(flag);
scr_curs(3,31);
printf("Stopzeit : %s      Laufwerk \"%c\" wird gesichert ",st,lw[13]);                    
scr_curs(16,30);
flag = 1;
scr_video(flag);
sscanf(datum(),"%s",dat);
printf(" Datum  %c%c.%c%c.%c%c%c%c ",dat[8],dat[9],dat[5],dat[6],dat[0],dat[1],dat[2],dat[3]);
flag = 0;
scr_video(flag);
}


uhr()
{

  int  z = 10;
  int  s = 16;   
  int  i = 8; 
  int  y = 0;
  int  flag = 1;
  scr_graphic(flag);


 for(i;i --;i==0)
  {
   z = 10;

	switch(zahlen[y]) 
	{

	case '1':
                scr_curs(z,s);
		printf("  N  ");
                scr_curs(++z,s);
		printf("  J  "); 
                scr_curs(++z,s);
		printf("  J  ");
                scr_curs(++z,s);
		printf("  J  ");
                scr_curs(++z,s);
		printf("  O  ");
        break;		
	case '2':

                scr_curs(z,s);
		printf("BKKKC");
                scr_curs(++z,s);
		printf("    J"); 
                scr_curs(++z,s);
		printf("BKKKD");
                scr_curs(++z,s);
		printf("J    ");
                scr_curs(++z,s);
		printf("AKKKK");		
        break; 
	case '3':

                scr_curs(z,s);
		printf("BKKKC");
                scr_curs(++z,s);
		printf("    J"); 
                scr_curs(++z,s);
		printf("  KKL");
                scr_curs(++z,s);
		printf("    J");
                scr_curs(++z,s);
		printf("AKKKD");		
        break;
	case '4':

                scr_curs(z,s);
		printf("N   N");
                scr_curs(++z,s);
		printf("J   J"); 
                scr_curs(++z,s);
		printf("AKKKL");
                scr_curs(++z,s);
		printf("    J");
                scr_curs(++z,s);
		printf("    O");		
        break;
	case '5':

                scr_curs(z,s);
		printf("BKKKK");
                scr_curs(++z,s);
		printf("J    "); 
                scr_curs(++z,s);
		printf("EKKKC");
                scr_curs(++z,s);
		printf("    J");
                scr_curs(++z,s);
		printf("AKKKD");		
        break;
	case '6':

                scr_curs(z,s);
		printf("BKKKC");
                scr_curs(++z,s);
		printf("J    "); 
                scr_curs(++z,s);
		printf("MKKKC");
                scr_curs(++z,s);
		printf("J   J");
                scr_curs(++z,s);
		printf("AKKKD");		
        break;
	case '7':
                scr_curs(z,s);
		printf("KKKKC");
                scr_curs(++z,s);
		printf("    J"); 
                scr_curs(++z,s);
		printf("    J");
                scr_curs(++z,s);
		printf("    J");
                scr_curs(++z,s);
		printf("    O");		
        break;
	case '8':

                scr_curs(z,s);
		printf("BKKKC");
                scr_curs(++z,s);
		printf("J   J"); 
                scr_curs(++z,s);
		printf("MKKKL");
                scr_curs(++z,s);
		printf("J   J");
                scr_curs(++z,s);
		printf("AKKKD");		
        break;
	case '9':

                scr_curs(z,s);
		printf("BKKKC");
                scr_curs(++z,s);
		printf("J   J"); 
                scr_curs(++z,s);
		printf("AKKKL");
                scr_curs(++z,s);
		printf("    J");
                scr_curs(++z,s);
		printf(" KKKD");		
        break;
	case '0':

                scr_curs(z,s);
		printf("BKKKC");
                scr_curs(++z,s);
		printf("J   J"); 
                scr_curs(++z,s);
		printf("J   J");
                scr_curs(++z,s);
		printf("J   J");
                scr_curs(++z,s);
		printf("AKKKD");		
        break;

	case ':':
                flag = 3;
                scr_video(flag);
                scr_curs(z,s);
		printf("     ");
                scr_curs(++z,s);
		printf("  /  "); 
                scr_curs(++z,s);
		printf("     ");
                scr_curs(++z,s);
		printf("  /  ");
                scr_curs(++z,s);
		printf("     ");		
                flag = 0;
                scr_video(flag);
        break;
	default:
		scr_bel();
	}
	++y;
        s = s + 6;
   }
}