<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://fileformats.archiveteam.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://fileformats.archiveteam.org/index.php?action=history&amp;feed=atom&amp;title=GEOS_VLIR</id>
		<title>GEOS VLIR - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://fileformats.archiveteam.org/index.php?action=history&amp;feed=atom&amp;title=GEOS_VLIR"/>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/index.php?title=GEOS_VLIR&amp;action=history"/>
		<updated>2026-04-23T22:56:41Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.19.2</generator>

	<entry>
		<id>http://fileformats.archiveteam.org/index.php?title=GEOS_VLIR&amp;diff=11636&amp;oldid=prev</id>
		<title>Dan Tobias: Add infobox, category</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/index.php?title=GEOS_VLIR&amp;diff=11636&amp;oldid=prev"/>
				<updated>2013-05-20T22:06:05Z</updated>
		
		<summary type="html">&lt;p&gt;Add infobox, category&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 22:06, 20 May 2013&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;{{FormatInfo&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|formattype=electronic&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;|subcat=Filesystem&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Later on in the life of the C64, the GEOS OS came out. It&amp;#160; was&amp;#160; a&amp;#160; system&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Later on in the life of the C64, the GEOS OS came out. It&amp;#160; was&amp;#160; a&amp;#160; system&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;much like many other windowing OS's (MAC&amp;#160; OS,&amp;#160; Windows)&amp;#160; in&amp;#160; that&amp;#160; it&amp;#160; used&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;much like many other windowing OS's (MAC&amp;#160; OS,&amp;#160; Windows)&amp;#160; in&amp;#160; that&amp;#160; it&amp;#160; used&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 289:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 294:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;(Content taken from [http://unusedino.de/ec64/technical/formats/geos.html GEOS.TXT] in Peter Scheper's compendium of c64 file formats)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;(Content taken from [http://unusedino.de/ec64/technical/formats/geos.html GEOS.TXT] in Peter Scheper's compendium of c64 file formats)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Commodore computers]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dan Tobias</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/index.php?title=GEOS_VLIR&amp;diff=11629&amp;oldid=prev</id>
		<title>Jonnosan: Content taken from http://unusedino.de/ec64/technical/formats/geos.html in Peter Scheper's compendium of c64 file formats</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/index.php?title=GEOS_VLIR&amp;diff=11629&amp;oldid=prev"/>
				<updated>2013-05-20T21:26:05Z</updated>
		
		<summary type="html">&lt;p&gt;Content taken from http://unusedino.de/ec64/technical/formats/geos.html in Peter Scheper&amp;#039;s compendium of c64 file formats&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Later on in the life of the C64, the GEOS OS came out. It  was  a  system&lt;br /&gt;
much like many other windowing OS's (MAC  OS,  Windows)  in  that  it  used&lt;br /&gt;
icons, windows, a mouse pointer and resource drivers. In order  to  contain&lt;br /&gt;
all the information needed for the windowing system (icon, window position,&lt;br /&gt;
creation time/date), a new filetype called VLIR was  needed  and  directory&lt;br /&gt;
changes were made. While GEOS files might not be of interest to many of the&lt;br /&gt;
emulator users, it is likely that these  files  will  be  encountered,  and&lt;br /&gt;
knowledge of them would be helpful.&lt;br /&gt;
&lt;br /&gt;
There are actually two types of GEOS files, VLIR  and  SEQuential.  Don't&lt;br /&gt;
confuse the GEOS SEQuential type with that of the standard  D64  SEQ  file.&lt;br /&gt;
They are related, but not the same.  VLIR  are  described  in  more  detail&lt;br /&gt;
following this paragraph. GEOS SEQuential files  are  all  non-VLIR  files,&lt;br /&gt;
including normal PRG, USR and SEQ types.&lt;br /&gt;
&lt;br /&gt;
GEOS files usually have an entity  attached  called  an  INFO  block.  It&lt;br /&gt;
contains ICON info, author, file description, load  address  etc.  However,&lt;br /&gt;
just because an INFO block does not exist for a given file, does  not  mean&lt;br /&gt;
that the file is not a GEOS file.&lt;br /&gt;
&lt;br /&gt;
Each GEOS VLIR file or application is comprised of many  separate  chains&lt;br /&gt;
(called RECORDS) for different sections of the app/file. Each RECORD can be&lt;br /&gt;
loaded in separately and overtop of other ones. Below  is  a  dump  of  the&lt;br /&gt;
first directory sector of the GEOS 2.0 disk. Note  the  first  entry  seems&lt;br /&gt;
normal enough, but the rest have additional  information  in  the  normally&lt;br /&gt;
unused section of the entry.&lt;br /&gt;
&lt;br /&gt;
      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F&lt;br /&gt;
      -----------------------------------------------&lt;br /&gt;
  00: 12 04 82 13 00 47 45 4F 53 20 56 32 2E 30 20 45  &amp;lt;- Normal entry&lt;br /&gt;
  10: 4E 47 4C 2E A0 00 00 00 00 00 00 00 00 00 58 00&lt;br /&gt;
  20: 00 00 83 02 02 44 45 53 4B 20 54 4F 50 A0 A0 A0  &amp;lt;- First GEOS file.&lt;br /&gt;
  30: A0 A0 A0 A0 A0 02 0F 01 04 58 08 13 0D 23 78 00  &amp;lt;- Note extra info&lt;br /&gt;
  40: 00 00 83 0B 13 43 4F 4D 4D 20 31 33 35 31 28 61     from offset $15 to&lt;br /&gt;
  50: 29 A0 A0 A0 A0 08 0F 00 0A 58 05 09 15 24 03 00     $1D.&lt;br /&gt;
  60: 00 00 83 0F 0D 4D 50 53 2D 38 30 31 A0 A0 A0 A0&lt;br /&gt;
  70: A0 A0 A0 A0 A0 0F 05 00 09 56 07 19 01 00 04 00&lt;br /&gt;
  80: 00 00 83 08 0D 43 4F 4E 46 49 47 55 52 45 A0 A0&lt;br /&gt;
  90: A0 A0 A0 A0 A0 08 05 01 0E 58 05 1F 0B 31 4E 00&lt;br /&gt;
  A0: 00 00 83 01 10 50 41 49 4E 54 20 44 52 49 56 45&lt;br /&gt;
  B0: 52 53 A0 A0 A0 01 08 00 06 57 08 0C 0E 00 12 00&lt;br /&gt;
  C0: 00 00 83 0B 05 70 72 65 66 65 72 65 6E 63 65 20&lt;br /&gt;
  D0: 6D 67 72 A0 A0 0B 12 00 05 56 0A 09 13 2D 16 00&lt;br /&gt;
  E0: 00 00 83 08 11 70 61 64 20 63 6F 6C 6F 72 20 6D&lt;br /&gt;
  F0: 67 72 A0 A0 A0 08 07 00 05 58 05 19 0C 10 16 00 &lt;br /&gt;
&lt;br /&gt;
Lets analyze the second entry to see what's all involved with GEOS files.&lt;br /&gt;
Note, the offset values have been changed to 0 to make referencing easier.&lt;br /&gt;
&lt;br /&gt;
  00: 00 00 83 02 02 44 45 53 4B 20 54 4F 50 A0 A0 A0&lt;br /&gt;
  10: A0 A0 A0 A0 A0 02 0F 01 04 58 08 13 0D 23 78 00 &lt;br /&gt;
&lt;br /&gt;
  Byte:   $02: C64 filetype (see the section on D64 for an explanation) REL&lt;br /&gt;
               files are not allowed.&lt;br /&gt;
        03-04: Starting track/sector (02/02 from above) of C64 file if GEOS&lt;br /&gt;
               filetype is $00. If GEOS filetype is non-zero,  track/sector&lt;br /&gt;
               of single-sector RECORD block&lt;br /&gt;
        05-14: Filename (in ASCII, padded with $A0, case varies)&lt;br /&gt;
        15-16: Track/sector location of info block&lt;br /&gt;
           17: GEOS file structure&lt;br /&gt;
                 $00 - Sequential&lt;br /&gt;
                  01 - VLIR file&lt;br /&gt;
           18: GEOS filetype&lt;br /&gt;
                 $00 - Non-GEOS (normal C64 file)&lt;br /&gt;
                  01 - BASIC&lt;br /&gt;
                  02 - Assembler&lt;br /&gt;
                  03 - Data file&lt;br /&gt;
                  04 - System File&lt;br /&gt;
                  05 - Desk Accessory&lt;br /&gt;
                  06 - Application&lt;br /&gt;
                  07 - Application Data (user-created documents)&lt;br /&gt;
                  08 - Font File&lt;br /&gt;
                  09 - Printer Driver&lt;br /&gt;
                  0A - Input Driver&lt;br /&gt;
                  0B - Disk Driver (or Disk Device)&lt;br /&gt;
                  0C - System Boot File&lt;br /&gt;
                  0D - Temporary&lt;br /&gt;
                  0E - Auto-Execute File&lt;br /&gt;
               0F-FF - Undefined&lt;br /&gt;
           19: Year (1900 + value)&lt;br /&gt;
           1A: Month (1-12, $01 to $0C)&lt;br /&gt;
           1B: Day (1-31, $01 to $1F)&lt;br /&gt;
           1C: Hour (0-23, $00 to $17) in military format&lt;br /&gt;
           1D: Minute (0-59, $00 to $3B)&lt;br /&gt;
        1E-1F: Filesize, in sectors (low/high byte order)&lt;br /&gt;
&lt;br /&gt;
If the values at byte $18 is 00 then we have a  normal,  sequential,  C64&lt;br /&gt;
file, without an info block. If the value at byte  $18  is  anything  other&lt;br /&gt;
than 00, we have a GEOS file, be it VLIR or sequential, with an info block.&lt;br /&gt;
&lt;br /&gt;
One big addition to the directory is the TIME STAMP contained at $19-$1D.&lt;br /&gt;
The year is simply the number 1900 plus whatever is stored at that location&lt;br /&gt;
so the year 2005 would have a $69 (105 decimal) stored there. The  rest  of&lt;br /&gt;
the values are limited as described above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The INFO BLOCK stores items like  the  ICON,  size,  load  address,  file&lt;br /&gt;
types, description, etc, and is always only 1 sector long. Since there is a&lt;br /&gt;
fixed space to store information, the ICON height, width and bitmap  length&lt;br /&gt;
must be the same. Here is a sample info block, and layout...&lt;br /&gt;
&lt;br /&gt;
      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII&lt;br /&gt;
      -----------------------------------------------  ----------------&lt;br /&gt;
  00: 00 FF 03 15 BF 3F 83 F8 40 44 04 8E 38 E2 B5 93  ????+??°@D??8?+?&lt;br /&gt;
  10: 59 AA 92 A9 B5 93 59 AA 92 A9 BF 93 F9 B1 93 19  Y???+?Y???+?????&lt;br /&gt;
  20: 8E 10 E1 BB 93 B9 B5 93 59 AA 92 A9 B5 93 59 AE  ??????+?Y???+?Y?&lt;br /&gt;
  30: 92 E9 B1 93 19 80 10 01 BF 93 F9 FF D7 FD 80 38  ????????+??????8&lt;br /&gt;
  40: 03 FF FF FF 83 05 00 00 2E D9 54 00 2E 50 68 6F  ????????.+T?.Pho&lt;br /&gt;
  50: 74 6F 20 4D 67 72 20 20 20 56 32 2E 31 00 00 00  to?Mgr???V2.1???&lt;br /&gt;
  60: 00 43 68 72 69 73 20 48 61 77 6C 65 79 00 00 00  ?Chris?Hawley???&lt;br /&gt;
  70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????&lt;br /&gt;
  80: 00 00 00 00 00 00 00 00 00 53 61 76 65 20 70 68  ?????????Save?ph&lt;br /&gt;
  90: 6F 74 6F 20 69 6D 61 67 65 73 20 69 6E 20 61 20  oto?images?in?a?&lt;br /&gt;
  A0: 53 61 76 65 20 70 68 6F 74 6F 20 69 6D 61 67 65  Save?photo?image&lt;br /&gt;
  B0: 73 20 69 6E 20 61 20 70 68 6F 74 6F 20 61 6C 62  s?in?a?photo?alb&lt;br /&gt;
  C0: 75 6D 20 66 6F 72 20 6C 61 74 65 72 20 75 73 65  um?for?later?use&lt;br /&gt;
  D0: 20 69 6E 20 67 65 6F 57 72 69 74 65 20 6F 72 20  ?in?geoWrite?or?&lt;br /&gt;
  E0: 67 65 6F 50 61 69 6E 74 2E 00 02 85 06 85 07 85  geoPaint.???????&lt;br /&gt;
  F0: 08 85 09 85 16 A9 04 85 11 A9 00 85 10 4C 2F C2  ?????????????L/+&lt;br /&gt;
&lt;br /&gt;
  Byte: $00-01: Contains $00/$FF since its only 1 sector long&lt;br /&gt;
         02-04: Information sector ID bytes (03 15 BF). The &amp;quot;03&amp;quot; is  likely&lt;br /&gt;
                the bitmap width, and the &amp;quot;15&amp;quot; is likely the bitmap height,&lt;br /&gt;
                but rare exceptions do exist to this!&lt;br /&gt;
         05-43: Icon bitmap (sprite format, 63 bytes)&lt;br /&gt;
            44: C64 filetype (same as that from the directory entry)&lt;br /&gt;
            45: GEOS filetype (same as that from the directory entry)&lt;br /&gt;
            46: GEOS file structure (same as that from the dir entry)&lt;br /&gt;
         47-48: Program load address&lt;br /&gt;
         49-4A: Program end address (only with accessories)&lt;br /&gt;
         4B-4C: Program start address&lt;br /&gt;
         4D-60: Class text (terminated with a $00)&lt;br /&gt;
         61-74: Author (with application data: name  of  application  disk,&lt;br /&gt;
                terminated with a $00. This string may not  necessarily  be&lt;br /&gt;
                set, or it may contain invalid data)&lt;br /&gt;
                The following GEOS files have authors:&lt;br /&gt;
                  1 - BASIC&lt;br /&gt;
                  2 - Assembler&lt;br /&gt;
                  5 - Desk Accessory&lt;br /&gt;
                  6 - Application&lt;br /&gt;
                  9 - Printer Driver&lt;br /&gt;
                 10 - Input Driver&lt;br /&gt;
         75-88: If a document, the name of the application that created it.&lt;br /&gt;
         89-9F: Available for applications, unreserved.&lt;br /&gt;
         A0-FF: Description (terminated with a $00)&lt;br /&gt;
&lt;br /&gt;
Note: all the text strings above are in ASCII, not PETASCII.&lt;br /&gt;
&lt;br /&gt;
If the file is a VLIR, then the RECORD block is of interest. This  single&lt;br /&gt;
sector is made up of up to 127 track/sector pointers, each of  which  point&lt;br /&gt;
to program sections (called RECORDS). VLIR files are comprised of  loadable&lt;br /&gt;
RECORDS (overlays, if you wish to use PC terminology). The first RECORD  is&lt;br /&gt;
what is always loaded first when you run that application. After that,  the&lt;br /&gt;
OS loads whatever RECORD it needs. Here is a partial sample of  the  RECORD&lt;br /&gt;
sector...&lt;br /&gt;
&lt;br /&gt;
  00: 00 FF 08 00 09 04 09 03 0A 0A 0B 11 0F 11 00 00&lt;br /&gt;
  10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br /&gt;
  20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &lt;br /&gt;
&lt;br /&gt;
  Byte: $00-01: Contains 00/FF since its only 1 sector long&lt;br /&gt;
         02-03: Starting track/sector (8,0) for the first RECORD&lt;br /&gt;
         04-05: Starting track/sector (9,4) for the second RECORD&lt;br /&gt;
         06-07: Starting track/sector (9,3) for the third RECORD&lt;br /&gt;
         08-09: fourth RECORD (10/10)&lt;br /&gt;
         0A-0B: fifth RECORD (11/17)&lt;br /&gt;
         0C-0D: sixth RECORD (15/17)&lt;br /&gt;
         0E-0F: seventh RECORD (0/0)&lt;br /&gt;
&lt;br /&gt;
When a T/S link of $00/$00 is encountered, we  are  at  the  end  of  the&lt;br /&gt;
RECORD block. If the T/S  link  is  a  $00/$FF,  then  the  record  is  not&lt;br /&gt;
available.&lt;br /&gt;
&lt;br /&gt;
Note that if you add up the sectors so far, we have only  used  two,  one&lt;br /&gt;
for the INFO sector and one for the RECORD sector. Obviously there are more&lt;br /&gt;
used, and they are contained in the sector chains from the  RECORD  sector.&lt;br /&gt;
Each t/s link in the RECORD sector points to a chain of sectors, the length&lt;br /&gt;
of which is included in the  sector  count  for  the  GEOS  file.  Doing  a&lt;br /&gt;
VALIDATE on a GEOS disk when not in GEOS would de-allocate all these sector&lt;br /&gt;
chains (and the RECORD sector as well), which would not be good!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is the dump of a BAM sector from a  GEOS-formatted  D64  image  and&lt;br /&gt;
there are some changes for GEOS. We have all the typical data (forward  t/s&lt;br /&gt;
pointer to 18/1, DOS type, disk name/id) but we also have  the  GEOS-format&lt;br /&gt;
signature from $AB-BC. From observation, any GEOS-formatted disk will  have&lt;br /&gt;
the GEOS signature written in the same place (offset  $AB)  in  the  sector&lt;br /&gt;
that contains the disk name/ID.&lt;br /&gt;
&lt;br /&gt;
      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII&lt;br /&gt;
      -----------------------------------------------  ----------------&lt;br /&gt;
  00: 12 01 41 00 13 FE DF 1F 0A 69 29 0D 15 FF FF 1F  ??A??????i)?????&lt;br /&gt;
  10: 0C 96 D6 16 01 00 00 10 00 00 00 00 11 FD BD 1D  ????????????????&lt;br /&gt;
  20: 15 FF FF 1F 0C 96 D6 16 00 00 00 00 00 00 00 00  ????????????????&lt;br /&gt;
  30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????&lt;br /&gt;
  40: 00 00 00 00 00 00 00 00 0F FC FD 05 00 00 00 00  ????????????????&lt;br /&gt;
  50: 00 00 00 00 06 05 05 05 01 00 40 00 00 00 00 00  ??????????@?????&lt;br /&gt;
  60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????&lt;br /&gt;
  70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????&lt;br /&gt;
  80: 00 00 00 00 00 00 00 00 01 00 02 00 11 FF FF 01  ????????????????&lt;br /&gt;
  90: 41 70 70 6C 69 63 61 74 69 6F 6E 73 A0 A0 A0 A0  Applications????&lt;br /&gt;
  A0: A0 A0 4A 44 A0 32 41 A0 A0 A0 A0 13 08 47 45 4F  ??JD?2A??????GEO&lt;br /&gt;
  B0: 53 20 66 6F 72 6D 61 74 20 56 31 2E 30 50 BD 1E  S?format?V1.0P??&lt;br /&gt;
  C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????&lt;br /&gt;
  D0: 00 00 00 00 00 00 00 00 00 00 00 18 2D 00 00 00  ????????????-???&lt;br /&gt;
  E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????&lt;br /&gt;
  F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ????????????????&lt;br /&gt;
&lt;br /&gt;
  Bytes:$00-01: Track/Sector location of the first directory sector (should&lt;br /&gt;
                be 18,1, but it doesn't seem to matter)&lt;br /&gt;
            02: Disk DOS version type&lt;br /&gt;
                  $41=1541&lt;br /&gt;
            03: $2A, DOS version.&lt;br /&gt;
         04-8F: BAM entries for each track, in groups  of  four  bytes  per&lt;br /&gt;
                track, starting on track 1&lt;br /&gt;
         90-9F: Disk Name (padded with $A0)&lt;br /&gt;
         A0-A1: Filled with $A0&lt;br /&gt;
         A2-A3: Disk ID&lt;br /&gt;
            A4: Usually $A0&lt;br /&gt;
         A5-A6: DOS type, usually &amp;quot;2A&amp;quot;&lt;br /&gt;
         A7-AA: Filled with $A0&lt;br /&gt;
         AB-AC: Border sector trk/sec (see below)&lt;br /&gt;
         AD-BC: GEOS ID string (&amp;quot;GEOS format V1.x&amp;quot;, in ASCII)&lt;br /&gt;
         BD-DC: Unused (usually $00)&lt;br /&gt;
         DD-FF: Free sector info for tracks  36-70,  used  on  double-sided&lt;br /&gt;
                1571 disks only!&lt;br /&gt;
&lt;br /&gt;
The first two bytes at $AB/$AC ($13 $08) are the track/sector location of&lt;br /&gt;
the BORDER SECTOR, which is one sector long,  has  the  same  layout  as  a&lt;br /&gt;
normal directory sector, and is used for copying files  from  one  disk  to&lt;br /&gt;
another. When you need to copy a file, you drag the icon to the  bottom  of&lt;br /&gt;
the screen and the file is moved from its normal location in the  directory&lt;br /&gt;
to the border sector. Since it is  only  1  sector,  it  can  only  hold  8&lt;br /&gt;
entries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to check to see if a disk is formatted for  GEOS,  check  the&lt;br /&gt;
string in the BAM sector starting at $AD (offset 173) for the string  &amp;quot;GEOS&lt;br /&gt;
format&amp;quot;. If it does not match, the disk is not in GEOS format. This is  the&lt;br /&gt;
way that GEOS itself verifies if a disk is GEOS formatted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On a D64/1541, here is how GEOS allocates blocks as it either saves files&lt;br /&gt;
or needs blocks for other purposes:&lt;br /&gt;
&lt;br /&gt;
Saving files: When there's still at least one free  block  in  the  current&lt;br /&gt;
track, then the next block is searched for starting at the sector which  is&lt;br /&gt;
away from the current one by at least the soft interleave.  The  exceptions&lt;br /&gt;
are track 25 and  above  where  the  interleave  changes  to  the  original&lt;br /&gt;
interleave _minus one_.&lt;br /&gt;
&lt;br /&gt;
When stepping to the next track, the sector where the  next  block  of  the&lt;br /&gt;
files is saved to is computed as following:&lt;br /&gt;
&lt;br /&gt;
  New sector = (Next track - Previous Track) * 2 + 4 + Soft interleave&lt;br /&gt;
&lt;br /&gt;
Getting the Border Sector: When allocating  the  GEOS  border  sector,  the&lt;br /&gt;
search starts upwards from sector 19/0 for a  free  sector  and  then  from&lt;br /&gt;
sector 1/0 if no free one has been found yet.&lt;br /&gt;
&lt;br /&gt;
Getting the first sector for saving a file: Start searching from sector 1/0&lt;br /&gt;
and, on the first track that has  at  least  one  free  sector,  you  start&lt;br /&gt;
searching at the sector computed by the form above.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to detect if a file is GEOS ===&lt;br /&gt;
&lt;br /&gt;
1. Check the bottom 3 bits of the D64 file type (byte position $02  of  the&lt;br /&gt;
directory entry). If it is not 0, 1 or 2  (but  3  or  higher,  REL  and&lt;br /&gt;
above), the file cannot be GEOS.&lt;br /&gt;
&lt;br /&gt;
2. Check the FILE STRUCTURE and FILE TYPE bytes (byte position $23 and  $24&lt;br /&gt;
respectively). If they are both $00, then the file is not GEOS, but is a&lt;br /&gt;
normal D64 filetype (no INFO block either).&lt;br /&gt;
&lt;br /&gt;
3. Check the FILE STRUCTURE byte (position $23). If it  is  anything  other&lt;br /&gt;
than $00 or $01, then the file is not GEOS (as those are the only  legal&lt;br /&gt;
values).&lt;br /&gt;
&lt;br /&gt;
4. If you've reached this point, and everything looks ok, then the file  is&lt;br /&gt;
GEOS. Now, if the FILE STRUCTURE byte (position $23) is a $01, then  the&lt;br /&gt;
file is a GEOS VLIR, othersize it is a GEOS SEQ.&lt;br /&gt;
&lt;br /&gt;
5. Check the FILE TYPE byte (position $24). If it is non-zero,  then  there&lt;br /&gt;
is likely an INFO block attached.  Check  the  track/sector  pointer  at&lt;br /&gt;
position $21/22 to see if they are valid numbers (track within the specs&lt;br /&gt;
of the disk and sector in range for the track value). If they look good,&lt;br /&gt;
then the info block exists.&lt;br /&gt;
&lt;br /&gt;
(Content taken from [http://unusedino.de/ec64/technical/formats/geos.html GEOS.TXT] in Peter Scheper's compendium of c64 file formats)&lt;/div&gt;</summary>
		<author><name>Jonnosan</name></author>	</entry>

	</feed>