Improved Atari TOS versions available
 
   For the start, little about why I did this TOS mods, changes, and what are benefits of them:

Floppies and drives for them became obsolete, problematic, hard to find, and even prices go up now. While Flash cards, SD cards becoming cheaper and cheaper. Atari ST has good for it's time mass storage support - ACSI port. It is fast enough, diverse adapters where made for, and today can buy some too, brand new. Or DIY. Because ST is ROM OS computer, with not so much RAM, main part of hard disk support is in TOS ROM. It is called FAT16 filesystem. And it could be done better - yes, I say it, I know it for many years, and exactly why. Limitations of it - max 512 MB partitions, max 14 partitions (C-P), need for extra buffers + some extra tasks on hard disk driver SW, which should be rather in TOS self. Surely, 512 MB was extremely good (and expensive) capacity for 1989, but that changed fast. Actually, TOS FAT16 is good really only up to 32 MB partition (logical drive size). Over it it needs so called BigDOS or BigGEM partitions, and that is what is not done as should be. Most likely because DRI C compiler (Alcyon) limitations.
All in all, my FAT16 mod, improving of TOS results in:  max 1 GB partitions, 30 is max what TOS can handle (we are out of drive letters with it). And all it at 'price' of less RAM needed for it - actually no need for extra buffers. 2 KB what TOS provides by default is enough. Normally, min 32 KB buffer space is needed for partitions up to 512 MB. Some may say that it is not much, but sometimes that makes a difference, and work is more efficient, because minimal block size for disk access is 512 bytes versus 8 KB in case of regular TOS. And I added integrated driver, so even less RAM usage.
And maybe most useful benefit:  full DOS compatibility - you can access disks, cards partitioned with PC, Linux with Atari now. Or vs. - access you Atari SD card with Windows, MAC, Linux, without extra SW. That is possible with TOS/DOS compatible partitioning too, but this is better.
Technical details about improved FAT16

Because Atari ST SW is mostly floppy based, I added powerful Virtual Floppy feature. See below for more details.
There are some features for easier usage, easier settings of diverse things.
And all it fits (even partitioner) in 192 KB TOS 1.04 space - without removing anything. How is it possible ? Optimisation of original code. Packing some things. Doing all new code in assembler.


Which TOS versions are improved

1. TOS 1.04 - latest TOS for ST machines.
2. TOS 1.62 - That's actually latest TOS for STE machines.
3. TOS 2.06 Desktop combined with improved 1.04 GEMDOS - what gives advanced Desktop of 2.06 and better compatibility of 1.04 - ST*
   marked as TOS 2.14 .
4. TOS 2.06 Desktop combined with improved 1.62 - what gives advanced Desktop of 2.06 and better compatibility of 1.62 - STE
    marked as TOS 2.16 .
5. TOS 1.04 and 1.62 with large stackframe support - what means work with CPUs 68010-68030 . Good for some accelerators.

Compatibility with diverse Atari HW:  as visible above. However, all it can work on Atari Mega STE . Even TOS 1.04i . There is added code what inits. extra Mega STE HW if runs on them.
* TOS 2.06 needs little HW logic in ST (so Mega ST) machines - and some people have it already - for instance it goes with some IDE adapters.

 T
his is not some kind of TOS "patch" . Several changes are performed, including serious optimisations of code, lot of it is added. Without reassembling complete code with optimizations + some data packing it just wouldn't fit in 192 KB ROM space of Atari ST .

 TV test pic :
May call it after boot, when logo appears. It is in res. 320x240 px . Shots done with camera.

p/TPovrDrv.jpg

Above is case of RGB lines overdrive - common problem with modern TVs, monitors.
Look that grey scale at lower third of circle.

p/TPgooGrad.jpg

How it should look. Now grey scale is good. Solution is quite simple - adding resistors of about 200 ohm in 3 RGB lines, best in Scart connector.
Of course, test pic helps in other settings too - geometry. Checking colors. Because 16 color limitation of Atari some colors are not same as on regular test pictures.  This needs to be well packable to fit in TOS ROM space.

Final test pic:
p/finTP.png


 Integrated partitioner:
p/intF16p.png

This is integrated partitioner in TOS self. And it is something unusual. I was thinking about to add another test pic, with horizontal overscan, but that would need different code and size for ST and STE, and is no real need for another test pic.
Partitioner program without GEM, AES can be really short, especially if there is already low level disk access code in TOS.
So, this works in textual mode, and I decided to add mouse - that will make usage easier and faster - better than navigating with cursor keys, and there is even click :-)
With this, user don't need any floppy, or even SD card with any PRG, data, partitions on it. Can make it work with brand new, empty card in couple minutes.  Create partitions by own desires, according to available space. Then just activate integrated driver, and it is ready to use, with practically 0 + RAM need - no extra buffers needed with true Big FAT16.
Exit from this is with 'button' Reset - from 2 reasons: 1: reset is needed to make it boot, now with partitioned disk. 2: this txt. mode with active mouse is not really something after what can start AES and Desktop, not without some longer extra code.
Yes, simple is sometime the best :-)




Multiple TOS versions in Atari, switchable
It becomes more and more popular. Solves some compatibility problems, and is really easy to add in Atari ST(E) machines.
Because that EPROMs 27C512 are available at practically same price as 27C256 (what goes in STs when set for 6 TOS ROM chips) I will send for people with STs, who want 6 TOS ROM chips them - and that means 2 TOS versions at once in machine, active one is switchable with simple circuit:
p/TOSsw1.png
This is for early STs without soldering pads for setting it for 6 or 2 TOS ROM chips. Need to bend pins 1 of EPROMs, so not go in socket, and solder there point between 1K resistor and switch. In case of newer, where are soldering pads for that setting, like Mega ST, no need to bend pins, need to connect it to middle of W3, and remove connection to left or right pad. In case of 1040 STFM need to remove connection at  soldering pads marked with A16, and solder point between resistor and switch to pad closer to ROM sockets - stays for rev. C103175 REV 1.1 . The whole thing is to put GND or +5V to pins 1 of EPROMS, which are highest address line, so it selects which half of EPROM content will be accessed. Resistor is just for safety here.
Then can have 2 TOS versions in machine - like 1.04i and 1.02, or 1.04 regular. Or even some game adapted for TOS ROM space - I done some popular titles: GoldRunner, Backlash, Black Lamp, Time Bandit, Great Giana Sisters (with blitter scroll if present), Eliminator, Nebulus, Moon Patrol, Jimmy White Snooker, Quartz, Star Wars  ...


Why I made it ? I seen some limitations of TOS long time ago. Even had idea how to fix some of them, but that needed lot of time. Got many ideas what is worth to add during years, and some are suggested by Atari people in forums. Base is still original Atari TOS, and RAM requirements of TOS did not increase, compatibility with SW is same as in regular versions.

Main improvements in short:

More efficient work with mass storage- Flash cards, hard disks. Larger partitions (up to 1 GB) and max 30 partitions accessible. Direct support for DOS type FAT16 partitions, which are accessible directly with modern OS-es like Windows, Linux, MAC-OS . And can use even less RAM as TOS type partitions. Added long filename (LFN) filtering in code (it's currently in my hard disk drivers). With integrated driver there is no extra RAM usage - same as when using only floppies .

New partitioner program under work:
p/parti30p.png

Partitioning in Windows: it is possible. For instance with this: MiniTool Partition Wizard .
Must create FAT16 (sometimes indicated just as FAT) partitions, max 1023 MB size, with default Cluster size.

Virtual Floppy - much better than Floppy Image Runner (my creation too) - needs less RAM, faster work, possible to use very large pseudo floppy image files .
More and more problems with floppy disks and drives. Who needs them in 2019, when we can do almost everything from mass storage ? Including playing old games.

Logo at startup, followed with short delay, when can perform some settings, integrated boot manager

Saving GEM SW states and quick restore of them




Instructions for usage

What can order right now ?
UK & US, De versions with new icons, or with original icons. Doing it with other language TOS versions is possible of course, but it is lot of extra work, so all depend from interest.

TOS 1.04i UK or US, De, Es, Fr, Sg   OI - original icons - 50 Euros + shipping. 6 EPROMs of double capacity. 40 Euros for 2 chips variant - see below for details
TOS 1.04i UK, US, De, Es, Fr, Sg   NI - new icons - 50 Euros + shipping.
TOS 1.62i UK, US, Fr, De, Es, Se, Sg    OI - original icons - 40 Euros + shipping.
TOS 1.62i UK, US, Fr, De, Es, Se, Sg    NI - new icons - 40 Euros + shipping.
TOS 2.14 UK, US, Es    OI - original icons - 40 Euros + shipping.
TOS 2.14 UK, US, Es    NI  - 40 Euros + shipping.
TOS 2.16 UK, US, Fr, De, Se   OI - 40 Euros + shipping.
TOS 2.16 UK, US, Fr, De, Se   NI - 40 Euros + shipping.
6 ROM version price is 50 Euros + shipping. Only 1.04i .
All it is tested very thoroughly, I work on this over 4 years.

Above goes in 2x 1Mbit EPROMs, like 27C010 , 32 pins. Fits directly in STE, Mega STE.
Or 6x 28 pin EPROMs for ST, Mega ST . But it is now 27C512, double capacity - see above.

Note about 2 or 6 chip TOS for ST, Mega ST: 2 chip variant needs 32 pin EPROMs (what you see in case of 2 chip original TOS 1.04 are mask programmed ROMs, and they can have less pins). So, to use 2 chip variant for 1.04 need socket expanders and some soldering.
Older STs even don't have logic for 2 chip TOS (74LS11), so there can go only 6 chip variant without extra work and logic.


p/MST6EPR.jpg
This is with 6x 27C512 . I added short wires to ROM version setting soldering pads. W3 middle pad is here connected not left or right (+5V there), but to GND - and that selects other half of 27C512, so other TOS version. Of course, users need to add there simple switch solution, accessible from outside - 1 switch (must be not alternative) and 1x 1K resistor.


TOS switch is of course possible with 32-pin EPROMs too - like 4 TOS versions with 27C4xx or 29F040 . Please contact me in e-mail (petari@8bitchip.info) for arranging it.
All orders in e-mail too. Please write your HW details, especially mass storage type. Some features need special code for specific adapter - Virtual Floppy, state saves/restores. At moment UltraSatan is most popular by my knowledge. And it is what I can test well.


Solution for TOS 2.14 or original 2.06 with 4x 28 pin EPROM chips - no need for intermediate socket, so will remain low.
p/MegaST206_4Epr.jpg
TOS 2.06 is longer and on different address space than TOS 1.00-1.04 (ST TOS-es) . But it works fine with ST, Mega ST, because it is coded to work on them. Just needs extra logic chip for accessing different address space. Usually it goes then in 2x 32 pin EPROMs. That can be problem for some people because space needed for it.
Well, it is possible to solve TOS 2.06 (or 2.14i) for ST, Mega STE with 28-pin EPROMs, which go direct in original sockets. 4x 27C512, what means 4x 64 KB = 256 KB (size of 2.06) . Chips go direct in sockets except pins 20 of 2 chips in middle socket - LO1 and HI1 on pic. Need to bend them, and solder on them line from GAL (with address decoding logic). Some special setting of W soldering pads is needed too. And soldering wires - most go on CPU . Those who order it will get detailed instructions and programmed GAL, EPROMs.


You will get EPROMs via post. Instructions in e-mail, support in e-mail.
Sending TOS image files is possible too, but that needs talk via e-mail.

  petari@8bitchip.info


Rainbow logo at start:



New Desktop Icons - optional:

p/picolr.png
 

Inevitable legal talk

Details:

Logo at startup, followed with short delay, when can perform some settings:
50/60 Hz refresh rate, disable AUTO run. Switch black and white colors.
Most interesting is environment setting, like with boot managers, just without need to install and bother with them:
When pressing some of keys 1-9 right after logo appears, it will not load AUTO run PRG file(s), DESKTOP.INF and ACCessories from their regular locations (AUTO dir and ROOT of boot partition). but from special directory BT, what must be in ROOT of C partition (works from floppy too, but there is not so useful), and in it can have 9 subdirectories 1-9, in which need to place files what want to be automatically loaded during boot and AES start, res. change.
So, for instance if place  SOME.PRG (for auto run), DESKTOP.INF and SOME.ACC in  BT\3\  - it will activate them when pressing key 3 after logo appears.  With it, very easy to start with desired resident SW, Desktop layout, ACCessories. If nothing is pressed, it will load from usual locations.  Desktop save will go too in proper subdirectory. AUTO run and ACC needs to be copied in proper folder.

Saving GEM SW states and quick restore of them:
Something better than hybernate. May save state of computer, running GEM program by key combination press, practically in any moment (except disk operation periods) . And later can restore that state with key comb. press in couple seconds.
Time depends from RAM amount in machine and disk speed. Of course, only for hard disks, Flash card. Time may be under 1 sec with 512 KB RAM, and about 3-6 secs with 4 MB RAM (stays not for slow Satandisk).
10 diverse states can be saved in 10 slots by holding down left shift+Ctrl and pressing 1-9 or 0. Restore by holding down left shift+Ctrl and pressing F1-F10 .
This will work only with SW what uses TOS functions for peripheral access and other things. And GEM SW is mostly such.
This, and Virtual Floppy must use very low level mass storage access (normal filesystem is not good for), so there is special driver in ROM TOS. And it is for specific adapter - so basic ACSI (Internal  MSTE adapter, old ACSI-SCSI adapters ...), ICD extended ACSI (UltraSatan, better ICD adapters  ...), IDE adapters. May be for some custom adapers too in future.
And that low level driver may serve for regular hard disk driver - then can autoboot it even faster, with very low RAM usage (combined with improved FAT16).


Short demo of state saves and restore:



Here is speed test I made some months ago:

Done on Mega STE, with same UltraSatan, with 2 SD cards with practically same speed.
Test is just copying SUBDIR with 80 very short files to some other SUBDIR on partition.

Regular TOS 2.06 :

Note: it needs min 32 KB for buffers for 500 MB partition.
Almost empty 500 MB partition:
At 8 MHz: 39 sec , at 16 MHz 27 sec



Regular TOS 1.04, 8 MHz for same as above: 38 sec - marginally faster.

Improved TOS 1.04 (without large sectors), DOS FAT16 partition of 1000 MB, almost empty:
No added buffers, only base 2 KB, what TOS creates after boot.

At 8 MHz: 26 sec , at 16 MHz: 17 sec
With 32 KB added buffers:
8 MHz - 25 sec, 16 MHz - 17 sec - marginal improvement, or just in range of test error.


Wasted space on hard disk/Flash card :

Because of FAT16 nature, there is minimal space what some very short file takes on disk.
FAT16 means 16-bit file allocation table.  So, it  can have 2 POWER 16  records max -  about  65000.
And that's max count of files too. Now, calculate how long is space on disk for 1 FAT record in case of 256-512 MB partition:
512 millions per 65536 = 512x16 = 8192 bytes, or 8 KB .  That means that even very short file of 10 bytes will take 8 KB on disk. Or if file is 8193 bytes, it will take 2 records, called clusters in terminology, so 16 KB. That wasted space is called slack.

Unfortunately, in case of TOS and AHDI partitions it is worse. Max count of FAT records, files is 2 POW 15 instead 16.
Probably because used C compiler limitations. And that means that in case of 256-512 MB partition cluster size is 16 KB instead 8. So, more wasted space (slack).

Here are concrete test results:
Regular TOS, 512 MB AHDI compatible partition. Free space before adding files is 535609344 bytes. Adding DIR with 80 very short files, all below 100 bytes. After that free space is 534282240 bytes. So 1327104 bytes less. And that's exactly 81x16384 .
81 because DIR takes 1 cluster too.

Improved TOS, 512 MB real FAT16 partition (DOS type):  Free space before adding files is 535519232 bytes. After adding 80 short files with DIR containing them free space is 534855680 bytes. 663552 bytes less - or 2 times less as above.
Cluster size is 8 KB instead 16 KB in case of same partition size. And that means better space usage. Less wasted space.
It may be pretty much in case of many short files.





So much for now, features are explained here:
Features, screenshots, YT video link

 

    PP,   July  2022.