/* Beispiel Programm (dupliziert ein 27512)
 * (c) Merlin Computer   KICKSTART
 * erstellt am 18.4.88
 * Gerald Carda
 *
 * Aztec C 3.6
 * cc beispiel +C +D
 * as junior -N -C -D
 * as typtab -N -C -D
 * ln beispiel.o junior.o typtab.o -lcl
 */

#include "junior.h"

main()
{
   int i,error;
   ULONG juniorerror;
   UBYTE *speicher;

   EpromTyp=&TypTab;    /* Basisadresse TypTab holen */
   EpromTyp+=9;         /* Eprom Typ auf 27512 (Index 9)
                         * setzen */

   if(GetParPort()!=0)  /* Parallel Port reservieren */
     {
       puts("Parallel Port belegt");
       exit(10);
     }
   if(GetTimer()!=0)    /* Timer oeffnen */
     {
       FreeParPort();
       puts("Timer nicht erreichbar !?");
       exit(15);
     }
   speicher=(UBYTE *)AllocMem((ULONG)EpromTyp->et_Kapazi,
                              MEMF_PUBLIC);
   if(speicher==NULL)
     {
       FreeParPort();
       FreeTimer();
       puts("nicht genug Speicher");
       exit(20);
     }

   printf("%lx %ld\n",speicher,(ULONG)EpromTyp->et_Kapazi);

   printf("EpromTyp  Name : %s Kapazität : %ld\n",
           EpromTyp->et_Zkette,EpromTyp->et_Kapazi);

/* setze Typ */
   Junior((UWORD)10,(struct EpromTyp *)EpromTyp);

/* init Prommer */
   Junior((UWORD)11);

   puts("Bitte Eprom des angezeigten Typs einsetzen <Return>");
   getchar();

/* Lese Eprom nach Speicher von Eprom Adresse bis Eprom Adresse */
   juniorerror=Junior((UWORD)4,(ULONG)speicher,
                      (ULONG)0,(ULONG)EpromTyp->et_Kapazi);
   printf("Lesen    Ergebniss : %ld\n",juniorerror);

   puts("Bitte das Eprom fuer das Duplikat einsetzen <Return>");
   getchar();

   puts("Leertest");
   juniorerror=Junior((UWORD)5,
                      (ULONG)0,(ULONG)EpromTyp->et_Kapazi);
   printf("Leertest Ergebniss : %ld\n",juniorerror);

   puts("Brennen der Daten");
   juniorerror=Junior((UWORD)8,(ULONG)speicher,
                      (ULONG)0,(ULONG)EpromTyp->et_Kapazi,(UWORD)0);
   printf("Brennen Ergebniss  : %ld\n",juniorerror);

   puts("0");
   FreeParPort();
   puts("1");
   FreeTimer();
   puts("2");
   printf("%lx %ld\n",speicher,(ULONG)EpromTyp->et_Kapazi);
   FreeMem((UBYTE *)speicher,(ULONG)EpromTyp->et_Kapazi);
   puts("3");
   exit(0);
}
  
 
