Skip to main content

THE DESKTOP.INF FILE by Richard Karsmakers

Everybody must have noticed a file called DESKTOP.INF on some  of 
his disks.  Some of you will probably now what it does,  but some 
of  you will just as probably not know what it does or even  what 
it is.  In this article I will try to tell all I know about  this 
file,  and about the special manipulations that are possible with 
it.  The file can be loaded into an editor or word processor that 
does not use WP mode and then it can be edited and saved back. If 
you  custom  desktop  crashes your system,  just  reset  it  with 
another (normal) disk in the drive and all will be OK.

The  DESKTOP.INF  file  is  created  whenever  you  select  "SAVE 
DESKTOP" under the "OPTIONS" menu from the GEM desktop.  We  will 
see  what  is stored in a while.  The ST's  DESKTOP.INF  file  is 
actually very limited.  The Apple Mac DESKTOP file contains a lot 
more  information  so  it seems,  and it is also  hidden  in  the 
directory (obviously,  people don't want you to mess around  with 
it).
Every  time  you start up your ST system,  reset  it,  or  switch 
between  the color resolutions,  the DESKTOP.INF is  loaded  into 
memory, and its parameters are used. More about that later.
Let's  look at a standard DESKTOP.INF file.  This was created  by 
resetting the system and immediately selecting "SAVE DESKTOP" (in 
Germany, this is "ARBEIT SICHERN").

#a000000
#b000000
#c7770007000600070055200505552220770557075055507703111103
#d                                             
#E 1B 03 
#W 00 00 04 03 43 10 00 @
#W 00 00 0D 08 2A 0B 00 @
#W 00 00 0E 09 2A 0B 00 @
#W 00 00 0F 0A 2A 0B 00 @
#M 00 00 00 FF A FLOPPY DISK@ @ 
#M 00 01 00 FF B FLOPPY DISK@ @ 
#T 00 06 02 FF   TRASH@ @ 
#F FF 04   @ *.*@ 
#D FF 01   @ *.*@ 
#G 03 FF   *.APP@ @ 
#G 03 FF   *.PRG@ @ 
#F 03 04   *.TOS@ @ 
#P 03 04   *.TTP@ @ 
Let's  now  have a look at the individual lines.  All  lines  are 
preceeded by a "#" and a identifier, followed by some parameters. 

#a000000      RS232 Parameters
  ^^^^^^
  ||||||
  |||||¯¯¯¯¯¯ Bit8           0 = On, 1 = Off
  ||||¯¯¯¯¯¯¯ Rts/Xo         0 = Off/Off, 1 = Off/On
  ||||                       2 = On/Off , 3 = On/On
  |||¯¯¯¯¯¯¯¯ Bits           0 = 8, 1 = 7, 2 = 6, 3 = 5
  ||¯¯¯¯¯¯¯¯¯ Parity         0 = No Parity, 1 = Odd, 2 = Even
  |¯¯¯¯¯¯¯¯¯¯ Baud           0 = 9600, 1 = 4800, 2 = 1200, 3 = 300
  ¯¯¯¯¯¯¯¯¯¯¯ Duplex         0 = Full, 1 = Half

This line is only in use when a desk accessory is loaded that  is 
supplied  on the ST System Disks.  This can be  recognized  under 
"DESK" by the name "RS232 Configuration".

#b000000
  ^^^^^^      Printer Configuration Parameters
  ||||||
  |||||¯¯¯¯¯¯ Paper          0 = Tractor Feed, 1 = Single Sheets
  ||||¯¯¯¯¯¯¯ Port           0 = Centronics, 1 = RS232
  |||¯¯¯¯¯¯¯¯ Quality        0 = Draft, 1 = Maximal
  ||¯¯¯¯¯¯¯¯¯ Dots           0 = 1280, 1 = 960
  |¯¯¯¯¯¯¯¯¯¯ Color          0 = B/W, 1 = Color
  ¯¯¯¯¯¯¯¯¯¯¯ Type           0 = Dot Matrix, 1 = Daisywheel

This line is only in use when a desk accessory is loaded that  is 
supplied  on  the ST System Disk.  It can be  recognized  by  the 
option "Install Printer" under the "DESK" menu.

#c7770007000600070055200505552220770557075055507703111103
   ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^
   |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
   |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ¯ Yellow
   |  |  |  |  |  |  |  |  |  |  |  |  |  |  ¯¯¯¯ No system color
   |  |  |  |  |  |  |  |  |  |  |  |  |  ¯¯¯¯¯¯¯ No system color
   |  |  |  |  |  |  |  |  |  |  |  |  ¯¯¯¯¯¯¯¯¯¯ Magenta
   |  |  |  |  |  |  |  |  |  |  |  ¯¯¯¯¯¯¯¯¯¯¯¯¯ No system color
   |  |  |  |  |  |  |  |  |  |  ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Bluegreen
   |  |  |  |  |  |  |  |  |  ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ No system color
   |  |  |  |  |  |  |  |  ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Light Grey
   |  |  |  |  |  |  |  ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ No system color
   |  |  |  |  |  |  ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ No system color
   |  |  |  |  |  ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ No system color
   |  |  |  |  ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Blue
   |  |  |  ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ No system color
   |  |  ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Red
   |  ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Black
   ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ White

The  last seven characters on this line have nothing to  do  with 
colors. Their meaning is the following:

3111103
^^^^^^^
|||||||
|||||¯¯¯¯¯¯¯¯¯¯ Two hexadecimal digits of key repeat rate
|||¯¯¯¯¯¯¯¯¯¯¯¯ Two hexadecimal digits of key repeat time
||¯¯¯¯¯¯¯¯¯¯¯¯¯ Clock       0 = Off, 1 = On
|¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Key click   0 = Off, 1 = On
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Mouse speed 0-4 (4 is fastest)

This  line  is  only activated when you use  the  desk  accessory 
called "Control Panel".  By activating the control  panel,  these 
colors and other settings are taken over by GEM.

#E 1B 03        Extras
   ^^ ^^
   || ||
   || ¯¯¯¯¯¯¯¯¯ Two digits of a hexadecimal number, of which the
   ||            individual bits have the following meaning:
   ||            0-2 = No meaning
   ||             3  = Confirm copy   (0 = No, 1 = Yes)
   ||             4  = Confirm delete (0= No, 1 = Yes)
   ||            5-6 = Sort on....    (00 = Name, 01 = Date,
   ||                                  10 = Size, 11 = Type)
   ||             7  = Show as....    (0 = Icons, 1 = Text)
   ¯¯¯¯¯¯¯¯¯¯¯¯ Resolution: 01 = 320*200 or monochrome
                            02 = 640*200 or monochrome
                            03 = Monochrome or 320*200

This line is always activated, and the values contained in it can 
be changed by using the "VIEW" and "OPTIONS" pull-down menus from 
the GEM desktop.  In the DESKTOP.INF file created on the disk  of 
ST NEWS, you'll notice that the resolution is set to '02': Medium 
res is activated when color monitors are used, whereas monochrome 
(of course) is installed on monochrome monitors.

#W 00 00 04 03 43 10 00 @       Windows
#W 00 00 0D 08 2A 0B 00 @
#W 00 00 0E 09 2A 0B 00 @
#W 00 00 0F 0A 2A 0B 00 @
   ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^
   || || || || || || || |
   || || || || || || || ¯¯¯¯¯¯¯ Name of opened window
   || || || || || || ¯¯¯¯¯¯¯¯¯¯ Value of vertical scrollbar
   || || || || || ¯¯¯¯¯¯¯¯¯¯¯¯¯ Heighth of the window
   || || || || ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Width of the window
   || || || ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Y-Position
   || || ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ X-Position
   || ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Value of vertical slider bar
   ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Value of horizontal slider bar

This  is one of the more interesting parts  to  manipulate.  More 
about  that later.  The values of 'X-Position' and 'Width of  the 
Window' have to be multiplied by 8 to get the actual pixels;  'Y-
Position'  and  'Height of the window' have to be  multiplied  by 
either  8  (color)  or 16  (monochrome)  for  this.  This  easily 
explains  why  it is impossible to position the window  sizes  by 
pixels (like the MacIntosh). Up to four windows can be defined.
#M 00 00 00 FF A FLOPPY DISK@ @ Disk Drive Icons
#M 00 01 00 FF B FLOPPY DISK@ @
   ^^ ^^ ^^ ^^ ^ ^^^^^^^^^^^
   || || || || | |||||||||||
   || || || || | ¯¯¯¯¯¯¯¯¯¯¯¯¯ Name of the Icon
   || || || || ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Drive Identifier
   || || || ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ 
   || || ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Icon Type (hexadecimal)
   || ||                         00 = Disk Drive, 01 = Folder
   || ||                         02 = Trashcan  , 03 = Program
   || ||                         04 = File
   || ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Y-Position (multiply with 40 b/w
   ||                            or 20 color to get real position
   ||                            and add 20) (Hex)
   ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ X-Position (multiply with 80 for
                                 real position) (Hex)

#T 00 06 02 FF   TRASH@ @      Trashcan
   ^^ ^^ ^^ ^^   ^^^^^
   || || || ||   |||||
   || || || ||   ¯¯¯¯¯¯¯¯¯¯¯¯¯ Name of the Trashcan
   || || || ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
   || || ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Icon Type (hexadecimal) (For types
   || ||                        please look on the previous page)
   || ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Y-Position (see previous page)
   ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ X-Position (see previous page)

#G 03 FF   *.APP@ @            GEM Application
#G 03 FF   *.PRG@ @ 
   ^^ ^^     ^^^
   || ||     |||
   || ||     ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Extension of file that is GEM App.
   || ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ See note on page 12
   ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Type of Icon for GEM App. (see
                                previous page)

#F 03 04   *.TOS@ @            TOS Application
   ^^ ^^     ^^^
   || ||     |||
   || ||     ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Extension of file that is TOS App.
   || ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ See note on page 12
   ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Type of Icon for TOS App. (see
                                two pages back)

#P 03 04   *.TTP@ @            TTP Application
   ^^ ^^     ^^^
   || ||     |||
   || ||     ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Extension of file that is TTP App.
   || ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ See note on page 12
   ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Type of Icon for TTP App. (see
                                two pages back)

Note  to a relatively unknown byte (mostly $FF) in the lines  for 
TTP-, GEM-and TOS applications:
According to Mr.  Wilfred Kilwinger (see "Did you know that....") 
in  his  article  in SAG Magazine Volume 2  Issue  5,  this  byte 
indicated that the program uses AES if $FF,  and GEMDOS/TOS  when 
$04. Not surely known, though.

Now for some practical manipulations.  I will not talk about  all 
the  logical manipulations (changing the obvious first couple  of 
lines),  but I will just look at two new manipulations that  have 
not yet been treated in any other magazines.

The first one is a way to make sure that only ONE file  displayed 
in the directory of a disk.  Is doesn't matter which other  files 
are on the disk - they will simply not be displayed.

The trick: After each window line, you can see one '@' sign. This 
is  the  place where the name of the current  (sub-)directory  is 
placed  when  a window (or several windows) was opened  when  you 
SAVEd  the desktop.  If you give this line a program name  rather 
than a (sub-)directory name (upper-or lowercase doesn't  matter), 
only  the program with that name is displayed!  Take care not  to 
throw away the '@',  and leave a space between the name and  that 
character. Example:

#W 00 00 04 03 43 10 00 @

becomes

#W 00 00 04 04 43 10 00 A:\ST_NEWS.PRG @

The  second technique I'd like to discuss is the one  that  takes 
care that you see only a limited amount of file on the disk.  For 
example, you can have the following modes:

- Show Folders and Programs (no other files)
- Show Data files and Programs (no folders)
- Show Programs (no folders and other files)
The secret is hidden in the following two lines:

#F FF 04   @ *.*@ 
#D FF 01   @ *.*@ 

If you delete the first one,  only folders and PRG icons will  be 
displayed.  If  you delete the second,  only data files  and  PRG 
icons will be displayed.  And if you delete both,  only PRG icons 
are displayed.

I almost forgot one small third manipulation.  For example, it is 
possible   to  make  programs  executable  that  have   different 
extensions that just .TOS,  .TTP,  .APP or .PRG.  For example, if 
you  want  all files that end on .AAA to be  treated  as  program 
files as well, you should add the following line:

#G 03 FF   *.AAA@ @ 

The  'G'  stands for GEM application,  and thus  makes  the  file 
exactly the same as any .APP or .PRG file.  The 03 defines a  PRG 
icon  (you can change that as well),  and the FF  probably  means 
that the program uses GEM (see note on page 12).
But do not expect that you can now just rename all files to  .AAA 
extensions!  The  files  need to have proper  executable  program 
formats to be used correctly.

That's  all for now.  If you think you have found a new  kind  of 
DESKTOP.INF  manipulation technique,  please do not  hesitate  to 
write to me (or maybe you can even write an article about it!).

Disclaimer
The text of the articles is identical to the originals like they appeared in old ST NEWS issues. Please take into consideration that the author(s) was (were) a lot younger and less responsible back then. So bad jokes, bad English, youthful arrogance, insults, bravura, over-crediting and tastelessness should be taken with at least a grain of salt. Any contact and/or payment information, as well as deadlines/release dates of any kind should be regarded as outdated. Due to the fact that these pages are not actually contained in an Atari executable here, references to scroll texts, featured demo screens and hidden articles may also be irrelevant.