*** mod1_file.c.ORIG	2006-04-29 12:51:48.000000000 -0600
--- mod1_file.c	2006-04-29 12:52:08.000000000 -0600
***************
*** 114,125 ****
  bool mod1_validate_file_header (mod1_file_header_t *header, size_t file_size)
  {
    bool status = true;
  
    if (file_size &&
!       (file_size != (sizeof (mod1_file_header_t) +
! 		     (header->NumPages * sizeof (mod1_file_page_t)))))
      return false;  // file size invalid
!   if (strcmp (header->FileFormat, MOD_FORMAT) != 0)
      return false;  // bad magic number
    if (header->MemModules > 4)
      status = bad_header_value ("MemModules", header->MemModules);
--- 114,136 ----
  bool mod1_validate_file_header (mod1_file_header_t *header, size_t file_size)
  {
    bool status = true;
+   int h = sizeof (mod1_file_header_t);
+   int p = sizeof (mod1_file_page_t);
+   int n = header->NumPages;
  
    if (file_size &&
!       (file_size != (h + (n * p) - 3))){
! 
!     printf("Header size mismatch.\n");
!     printf("h = sizeof(mod1_file_header_t) = %d\n",h); 
!     printf("p = sizeof(mod1_file_page_t)   = %d\n",p); 
!     printf("n = header->NumPages           = %d\n",n);
!     printf("h + (n * p) - 3                = %d\n",h + (n * p) - 3);
!     printf("file_size                      = %d\n",file_size);
!     
      return false;  // file size invalid
!   }
!   if (strncmp (header->FileFormat, MOD_FORMAT,4) != 0)
      return false;  // bad magic number
    if (header->MemModules > 4)
      status = bad_header_value ("MemModules", header->MemModules);
