#include <stdio.h>
#include <stdlib.h>
#define FileSize 58880

struct Header
{
  char *Header_Name;
  char *Header_Description;
  char *Header_Number;
};

struct _GroupFile
{
              char   ID[3];
              char   Empty1[254];
     struct Header **Titles;
              char   Empty2[5247];
              char   Errors[4479];
              // reached 0x2600
               char   Crap[58890];
    
};
               
struct _GroupFile *Cos;

main( int argc , char **argv )
{
  
   FILE *Group_FileHandle;
   char *Raw_Memory;  
   char Single=0;
   int counter;
   int Start=0;
   int loop=0;
  Raw_Memory = malloc(FileSize);
  Cos        = malloc(sizeof(struct _GroupFile));
   if(Cos && Raw_Memory)
    {
     Group_FileHandle = fopen("work:cos.grp","rb");
     if(Group_FileHandle)
        {
            fread(Raw_Memory,FileSize,1,Group_FileHandle);        
            printf("Loaded %d Bytes At %p\n",FileSize,Raw_Memory);
            counter=0;

            while(loop!=25)
                   {
                      Start=(0x100*loop)+counter;
                      Cos->Titles[loop]->Header_Name=&Raw_Memory[0x100+counter];
                      while(Single!=0x1B)
                            {
                             Single = Raw_Memory[0x100+counter];
                             counter++;
                            }
                      Raw_Memory[0x100+counter]=00;
                      counter++;
                      Cos->Titles[loop]->Header_Description=&Raw_Memory[0x100+counter];
                      Single=0;
                      while(Single!=0x1B)
                            {
                             Single = Raw_Memory[0x100+counter];
                             counter++;
                            }
                      Raw_Memory[0x100+counter]=0;
                      counter++;
                      while(counter!=Start+62)counter++;
                            
                            
                     printf("Code_  %s, Name_  %s\n",Cos->Titles[loop]->Header_Name,Cos->Titles[loop]->Header_Description);
                       loop++;
                  }
                            
            fclose(Group_FileHandle);
        }
        else
         printf("Failed To Open The GroupFile\n");

     free(Cos);   
    }
    else
     printf("Failed To Allocate Memory\n");
 
 
       
}  
