Atari ST TOS history, details
   It is 40 years now since first Atari ST models arrived in shops, so really good time period to write some interesting and actually even useful details for people using still them, and/or want to run, check old Atari ST SW even on not original machines - like emulators on modern computers, or HW kind of emulators (MiSTer for instance) .

   As could expect after first paragraph, Atari ST was launched in 1985. As next generation (for that time) home/business computer, with GUI (graphical user interface), mouse as standard equipment, floppy drive, hard disk support in HW and OS. Atari ST's OS is called TOS, and consists from 2 main parts: GEMDOS - responsible for boot, HW, disk/file handling. And GEM - graphical environment manager , + Desktop as part of it, where most common tasks can be performed.

  Here will not go in HW details - there are pages here and all around WEB dealing with it. This page is dedicated for Atari ST TOS (as title says), and all it is actually not so simple. Only one thing - used CPU (main processor) is Motorola 68000 - then pretty advanced and not so cheap CPU, but prices went down, as prices of memory chips too.


  So, the new owner of Atari company decided to develop and launch new home and partially business computer with GUI OS (graphical user interface operating system) - as it was then 'in' , together with then in Motorola 68000 CPU (yeah, was in Macintosh :-)  ).  And there were some good ideas:  being compatible with then mainstream PC and it's DOS (based in big part on CPM) , having plenty of RAM, and CPU what can deal with it - what actually means 32-bit program address counter. And it was 68000 CPU then, among affordable ones for home computer.  All it about CPUs is pretty well known, probably main thing was to get them among very good conditions. And Tramiel was good in such things.  More complex thing: developing OS for that CPU, and much more complex one than OS for that time home computers . So, Atari c.  choosed DRI (Digital Research Inc.) for that task - and DRI had good reputation as developer of CPM .
  Sure, it was good way, as there were no people with some better experience in all it at Atari c.  . DRI made his 'Concurrent DOS' for PC, and it was not big success, but worked well. But as I see, they did not have any experience with 68000 CPU - and that may be really important part of whole TOS history.   How some OS for PC, Mac and like computer was developed then ? Well, for sure in C language - well biggest part of it. And that needs good C compiler. Well, here we are at part what can explain some problems in TOS (yeah, I used word 'can' instead 'explains' simply because all it is my interpreting of reasons, details and like. I just don't like claiming as for sure of things about which not have complete access and all informations.  Everyone who comes with better explanation(s) is welcome.

 
 First TOS version:  it is called floppy TOS 1.00, and was present in early STs - spring of 1985 . It was just shorter ROM, with code to load TOS from floppy - and that was not how it was planned. Big disadvantage is of course that it uses lot of RAM, so only about half of 512 KB left for SW what user runs.
 Most interesting part in it is reason for it.  And it is that TOS 1.00 early development v. did not fit in 192 KB ROM space . Designers gave 192 KB space for TOS ROM, what goes in 6x 32 KB ROMs, and there are 6 28 pin sockets for that. Well, better would be to use 2x 128 KB - more space and only 2 ROM chips (still 28 pins with factory programmed ROMs, in case of EPROMs it needs 32 pin sockets) . So why 192 KB, 6 chips ? Only reasonable explanation is prices of ROM chips then.  
 How they made it fitting in 192 KB space ? Nothing is removed, programmers found a way - and it is done with so called Line-F emulator - will not go here in details how it works, what matters is that it makes possible much shorter code by TOS AES function calls , and there is lot of them in AES part of TOS, for screen operations, GUI functions.
 With it they made TOS size shorter by some 8 KB, and that was enough to fit in 192 KB space.
 First Atari STs with complete TOS 1.00 in ROM arrived in shops in November 1985 . That was big improvement, and I would say important for bigger sales, much more new SW for ...  For instance ST games before it were with low level floppy access, so not using normal filename/DIR name based access, as it was not in ROM, and if would load TOS in RAM, some 200 KB less space would be for game . Not to mention cases like DRI ST Basic - with 512 KB RAM only some 10 KB left for Basic program - what was mentioned in some magazines as big flaw.
 And yes, sales went up, especially in Germany, West Eu. And more and more SW was developed for.
And actually, most of games, some 65 % was with disk (floppy) access via TOS functions (FAT12 filesystem).
  Here need to mention some silly writings in later years - worst I saw is on Github, and says that Atari SW SW was buggy, as TOS was buggy too. Mentioning that old SW  "
rely on weird patterns or buggy TOS error codes to work properly" .

  Total stupidity . Before going in such talk should look TOS DOCs and other literature - and there is plenty of it online.  Filesystem TOS calls are pretty well done, and nothing is weird. And it works reliable. I know it well, as I programmed it since 1987. Bought Atari ST ProfiBuch at same time as Atari ST.

  Further TOS versions:

  TOS 1.02  -  called Mega ST TOS, as it came first in Atari Mega ST - 'professional' model with separated keyboard, bigger case with place for upgrades, hard disk, with expansion connector. Some smaller improvements and added support for then new blitter chip. Year is 1987 .

 TOS 1.04 - year is 1989, and it is called Rainbow TOS because Atari logo effect in Desktop Info. It has pretty much improvements and is actually latest TOS v. designed for ST machines (incl. Mega ST) .
 For instance max supported partition size is 512 MB (in 1.00 and 1.02 it was 256 MB), faster and more reliable work with hard disks, some Desktop improvements.  Still with Line-F emulation.

 TOS 1.06 - year 1989, for then new Atari STE (E is for 'enhanced' ) - pretty much same as 1.04, for instance filesystem code is practically same. It has extra code for new HW in STE:  audio DMA, enhanced color palette, HW scroll in video chip.
 And because it did not fit in 192 KB ROM space, so start address is changed (from $FC0000  to  $E00000) and size is 256 KB, in 2 ROM or EPROM chips (32 pins) . And need to mention: some SW worked not because that TOS ROM address change, so needs patching. Luckily they did not use Line-F emulator, as there was enough space for direct code, and that means some 8% faster work of diverse screen operations.
 Unfortunately there were couple bugs, so version 1.62 was released soon. I would add that I found bug in audio mixer code - as it has 2 audio sources - usual PSG as is in STs (YM chip) and DMA audio. It will set 4x lower DMA audio level in some cases, and that means too silent DMA sound, especially bad if works together with some PSG audio. I made patch for it. Was not fixed by Atari.  Probably because not so many SW, game used DMA audio.
 And yes, 1.62 is latest official TOS v. for Atari STE machines.

 TOS 2.05 - 1991, came with first Mega STE machines. Soon v. 2.06 arrived, with some fixes. It has pretty much improved Desktop, IDE hard disk autoboot code and other things added.  And is made to work on ST and STE machines (but needs little HW add on with STs, because different ROM start address).  Not recommended for gaming:  uses more RAM, so some games will not work, even if there is 1 MB or more RAM, as some are coded for lower start address, and it conflicts with TOS 2.06 workspace. And floppy code is changed too - it uses Timer-C (because HD floppy support) and if game changed Timer-C settings floppy will not work.

 TOS 3.06 - 1991 - TT TOS.  Pretty similar with 2.06 .
 TOS 4.02 - 1992 - Falcon TOS .  And there is 4.04 - later Falcon TOS - it has max 1 GB partition size support. 4.02 same as 1.04-2.06 .

  Of course nothing is perfect, so little about Atari ST TOS flaws:
 It will be not about all of it, plus it is for sure little subjective. There are problems with some situations which happen only by little %-age of users, and some patches, fixes, programs for were released.
  I was always interested a lot for storage, and in the beginning (1987) coded some floppy utility SW - like floppy format program, some copy accessory solution combined with RAMdisk . That was useful in those times when only small %-age of people had hard disks.
  And prices went down, so I bought my first hard disk in 1992 - IDE one, 40 MB capacity. After reading how IDE disk work in  PCs (in book about PC HW) with usual home/small business computers (with lot of details) I realized how IDE adapter for Atari ST needs to be designed.
 And I did it, and it worked well. Used then exising hard disk driver SW like AHDI. Important thing even then was easy data transfer with some PC (of course with DOS then) - and it worked well actually. But little later I found that it worked well only until partition sizes of max 32 MB . And I was for having couple smaller partitions instead one bigger one (as I do today, still) - that makes it little better organised. It was when I purchased some larger capacity IDE drives ( 2.5 inch, 160 MB) - and tried with bigger partitions than 32 MB. ) - Well, it needed lot of time and experimencing to realise that 32 MB limit.
 And of course it was bigger and bigger flaw as hard disk capacities raised.
  This is really longer story, so I will jump to what I realised many years later - like about 2001-2008:
 TOS-es FAT16 filesystem is not fully compatible with then widely used DOS FAT16 filesystem. It was not bigger problem with smaller disk capacities earlier.  So, after lot of experimenting, tracing I found exact reason:  TOS FAT16 uses only 16-bit sector addressing - and that's good only up to 32 MB partition sizes. Over it 32-bit sector addressing is needed - and that was present in PC DOS, even with 16-bit CPUs .
 TOS programmers went on solution called large logical sectors - simply joined multiple sectors as group, and so could address all sectors on larger sized partitions with 16-bit value - like on 64 MB partition - what  is 131072 sectors - logical sector size is 1024 bytes . And of course more with larger partitions - 512 MB means 8 KB logical sector size. But is is actually worse - max logical sector addressing value was not 2 POW 16 -1 , but 2 POW 15-1 (TOS 1.04 and higher) . So, with partition sizes between 256 and 512 MB logical sector size is 16 KB . And that's not good - means less efficient work, need for larger buffers .
  And of course everyone will ask :  why it happened ? To be sure, we should know how it was with DRI's Concurrent DOS for PC . I did not think about it earlier. But if then it was with 32-bit sector addressing, then I have only one explanation: DRI C compiler for 68000 CPU had some flaws - like being not accurate with 32-bit integers. So they used 16-bit ones in filesystem .
 I even saw some comment in C source file for TOS 2.06 - 'it should be 32-bit' . I never saw C sources for some TOS 1.xx . And if it was not 32-bit in 2.06 certainly was not in any TOS 1.xx  .
  OK, it's easy to be smart now. In those years - at 1984 people did not have experience with 68000 CPU, so it was not easy to programm it in ASM, or to make very good C compiler for it. Actually, maybe better question would be: why it was not made 32-bit in later TOS versions ?  Sure, it would break compatibility.  And if Atari would last longer, that would be must to correct.
 Anyway, all it still does not mean that Atari ST TOS was buggy. Just that some things could be solved better, even then.
Hard disk (FAT16 filesistem) flaws became problem much later - like in 21-st Century. Remember:  max partition count is 14 (C-P), max partition size is 512 MB - it means 7 GB - and not much people had so large capacity hard disk in year 2000 .

  How to solve work of good old Atari ST SW in this years (2020-es) ?

 It is actually complex question. Some prefer making very detailed images of original floppies, and there are devices and SW for such image making. Image sizes may be pretty large - like 50 MB for 1 floppy image. And latest emulators support those formats.
 I'm not fan of it - for instance because I already made hundreds of hard disk adaptations before those devices appeared. And of course hard disk run is faster, added some corrections, better TOS version compatibility , and state saves at any moment during play. Not to mention cheat options.  Of course some will say that only original is real . Their right.

 Other way, still with floppies is using so called 'cracks' - they were done long time ago, and most of it is on so called menu disks, packed with system what has slow depacking with Atari ST - so longer waitings, not present with original.
 And there are errors, corrupted parts (for instance during copying it) and what I hate : lot of cracker, pirate crew messages before game start (sometimes even in game) - mostly self praising.  Let's just say: obsolete, unreliable.

 Third way is running games, old Atari ST SW from hard disk, now rather SD cards. And some dealt with it already in 90-es. Like crew Superior. It worked only with partitions under 32 MB size, what was good then, and now ? We know answer.

  And how is it in 2025 ? I'm sure that most of people with real Atari HW now using some mass storage for running old SW. Because old floppy drives and disks are broken, unreliable, and fixing is almost impossible.  SD cards are cheap now, and with huge capacities for not so huge sized old Atari ST SW, data . That means that all it can fit on single 8 GB SD card.

 And there are ways without old Atari STs : emulators: SW and HW ones. Can they run all Atari ST SW well ? Sure, except few rare cases. And of course, many consider it as not true retro computing. And even on them will need original TOS versions and full hard disk driver (by AHDI concept, working with low level disk access) to run all old SW what has hard disk install options, and all hard disk adaptations.  That's why Steem uses pasti.dll - what is real ACSI hard disk emulation . In Hatari there are more hard disk emulation ways - BASIC ACSI (as pasti.dll) Max 1 GB accessible, ICD ACSI - much more accessible, using protocol developed by ICD - designer and manufacturer of ACSI-SCSI adapters, for capacities of over 1 GB .  And there is IDE emul. too in Hatari. + so called GemDOS - basically same as 'Hard disk' in Steem - not compatible with all old SW, hard disk adapts, and it works only with TOS in ROM, not with TOS in RAM .

 Conclusion:  original TOS is done well. It works good in 99.9 % cases. Especially for people who know it's limitations.
 Those which praise and recommend EmuTOS just don't have correct approach, attitude, and worst: have no enough experience with old Atari ST ans SW for it.  Sure, there are some flaws, as in everything. But rear flaw is blaming some(one) that did not made SW for standards coming years, decade later.
 
 What about TOS can see on diverse WEB sites, forums ?
 
 Well, there is lot of it, and I did not see much really good writings. Saying that Atari ST was much like Commodore 64, just because was designed by team with lot of people who worked on C64 design, boss was same (Jack Tramiel) is wrong. As I wrote many times C64 was designed mostly for games, with pretty limited Basic in short ROM . So, there was HW support for diverse graphic operations. And it was manufactured in South Korea, and quality was not that good. Failures were more frequent than in other home computers , and I know it well, as I serviced them. PSU had design error (bad cooling, as alu. plate was covered) .
 Atari ST was manufactured in Taiwan, some components in Japan. Much better quality and much less failures, need for repair.
 And designed as universal purpose home computer, good for business too (can see in some movies from that era in offices) .
There is no HW support for gaming in first release, only blitter chip since 1987 . In 1989 little more support in STE .
  But programmers need some time to develop good code for efficient usage of new HW, plus need to make version what works on bare STs without new HW, as they are still in majority. So, there is really low count of games using blitter, STE HW scroll, DMA audio (well this needs more RAM too) .
 Can read more about diverse details, especially about TOS FAT16 filesystem of this site. On homepage are diverse links, including page about my improved TOS versions. What to say - it can be done only if you know well what you improving.

 

 

    PP,   July 2025 .