/*****************************************************************************
**
**  ShowLNX (c) 2002 by Michaī Pasiecznik (pasiussg@wp.pl).
**  Program jest klasy freeware. O dokonywanych zmianach napisz w poniūszym
**  śródle programu.
**
**  Autor             : Michaī Pasiecznik
**  Data              : 14 lutego 2002
**  Wersja            : 0.7
**
**  Opis programu     : Wyōwietla informacje o nagīówku pliku kartridūa
**                      .lnx, przeznaczonego dla emulatorów Atari Lynx.
**
*****************************************************************************/

#include <stdio.h>
#include <string.h>

struct
{
  unsigned char magic[4];
  unsigned char bank0a;
  unsigned char bank0b;
  unsigned char bank1a;
  unsigned char bank1b;
  unsigned char versiona;
  unsigned char versionb;
  unsigned char cartname[32];
  unsigned char manufname[16];
  unsigned char rotation;
}header;

int main(int argc, char *argv[])
{

FILE *plik;
unsigned short bank0,bank1,version;
unsigned int lenght;

printf("\nShowLNX v0.7 by Michaī Pasiecznik (pasiussg@wp.pl)\n");

if(argc==1)
 {
  printf("\nUūycie: ShowLNX nazwapliku[.lnx]\n\n");
  return(0);
 }

if(argc>2)
 {
  printf("\nZīa liczba argumentów!\n\n");
  return(0);
 }

if(strstr(argv[1],".lnx")==NULL)
 strcat(argv[1],".lnx");

if((plik=fopen(argv[1],"rb"))==NULL)
 {
  printf("\nBrak pliku o takiej nazwie!\n\n");
  fclose(plik);
  return(0);
 }

fread(&header,sizeof(header),1,plik);

if(strcmp(header.magic,"LYNX")!=0)
 {
  printf("\nTo nie jest plik *.lnx!\n\n");
  return(0);
 }

bank0=header.bank0b*256+header.bank0a;
bank1=header.bank1b*256+header.bank1a;
lenght=(bank0+bank1)*256;
version=header.versionb*256+header.versiona;

fclose(plik);

printf("\nNazwa:   %s",header.cartname);
printf("\nFirma:   %s",header.manufname);
printf("\nDīugoōź: %d",lenght);
printf("\nBank0:   %d",bank0);
printf("\nBank1:   %d",bank1);
printf("\nRotacja: ");

if(header.rotation==0)
 printf("brak");
else
if(header.rotation==1)
 printf("w lewo");
else
if(header.rotation==2)
 printf("w prawo");
else
 printf("???");

printf("\nTyp:     %s",header.magic);
printf("\nWersja:  %d\n\n",version);

return(1);

}
