home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.sys.tandy      Life is dandy cuz you're gettin a Tandy!      5,684 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 5,086 of 5,684   
   Grinder to All   
   TRSDOS 1.3 Directory Entries   
   16 Jun 09 21:02:31   
   
   From: grinder@no.spam.maam.com   
      
   Ok, I've done a little reverse engineering, with the benefit of David   
   Keil's Model III emulator.   
      
   I started with a TRSDOS 1.3 disk image, which I formatted from TRSDOS   
   1.3.  It has 40 tracks of 18 sectors.  Sectors are numbered from 1-18;   
   and tracks, 0-39.  Track 17 is the directory track.  This is apparently   
   a SSDD disk.   
      
   The first sector of the directory track probably contains a GAT, but I   
   haven't picked it entirely apart.  I can see that the disk name and   
   creation date is in there, and probably a password hash or two.  The   
   second sector of the directory is probably a HIT, but I've only glanced   
   at it.   
      
   The directory entries follow.  They are 48 bytes in length and arrayed   
   as this stuct shows:   
      
      TTrs80_TRSDOS13_DirectoryEntry = packed record   
        Modified  : array[0..2] of Byte; // DMY   
        EOF       : Byte;   
        LRL       : Byte;   
        FileName  : array[0..7] of Char;   
        FileExt   : array[0..2] of Char;   
        Password1 : Word;   
        Password2 : Word;   
        ERN       : Word;   
        Extent    : array[0..12] of Word;   
      end;   
      
   There apparently is no primary and extended directory entry scheme.   
   This means you file size is limited by the number of extents, and of   
   course, ultimately a file size.   
      
   A contiguous file on this disk could take up to 403 granules (13 x 31),   
   which at 3 sectors per granule (6 gpt) works out to about 302K.  It   
   would probably be less than that because of boundary conditions around   
   the directory track, but still obviously exceed the capacity of a 180K   
   SSDD disk.   
      
   Or, if you have a horribly fragmented file, you may only be able to get   
   39 granules, or about 29K.  I was able to do this by formatting the   
   disk, then generating a bunch of 256 byte files, which would each take a   
   granule on the disk.  I deleted every other file, then started cranking   
   bytes into a large file.   
      
   I may have broken something, though, as when I now try to delete the   
   rest of those small files, I sometimes get an Error 24 - File Not Found,   
   after it has killed it.  Weird.   
      
   Next up, TRSDOS 2.3.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca