Jump to content
ParanoidLittleMan

Atari ST hard disk facts, things to know

Recommended Posts

I feel need to put here little longer text about basic facts related with Atari ST computers hard disk usage. Mostly because see here lot of shallow posts, which instead giving help just make more confusion in all this.

 

First thing, the terminology :

Drive: stays for physical hard disk, but we can consider as it some modern Flash card with it's adapter. And right here comes possible confusion: UltraSatan has 2 SD card slots. So, is it one or 2 drives ? It is 2 for sure, since ACSI targer # is different for 2 slots/cards, so they act for TOS as 2 separated hard disks in fact.  Today we call Flash cards rather media.

 

Logical drive: that's actually partition of physical drive, since hard disks are usually divided into smaller sections. Usual letters for are:  C to P under TOS .

 

Filesystem: the way how data, files self are organized on storage media (drive) . All modern solutions (since late 70-es) are based on access by filename, have directories, sub directories, allow changes of file content and size at any time.

 

FAT filesystem:  abbrev of File Allocation Table - so there is table what covers complete partition area. Records in that table are called clusters too. For each file there is start cluster, so where in partition file starts, after that comes next cluster # - and that must be not next one, what comes after current one. If cluster is last, there is mark for it instead next cluster # . This is what allows mentioned file size change - so file can be longer even when space right after it is allocated (with some other file).

 

FAT12 - used by floppies. Means 2 POW 12 = 4096 possible FAT records (clusters) . Enough for floppies up to 4 MB size, because normally 1 cluster is 2 sectors.

 

FAT16 - used by hard disks. 2 POW 16 = 65536 possible FAT records.

And here need to say much more, since Atari and DRI made some really not too good solution, when established so called AHDI, BigGEM, or as many say 'TOS' partitions.

So, usual FAT16, what was used mostly by DOS allows up to 65534 FAT records (2 records at start are reserved) - what is btw. max file count on that partition too, and partition sizes supported by DOS were up to 2 GB.  Wait ... if there are max 65536 records, how big is 1 record size in case of 2 GB partition ?  Calculation says: 32 KB - and yes, that means that one cluster is 64 sectors long (1 sector is always 512 bytes) . And means that even shortest files will take min 32 KB space on drive - but that's price of simpler filesystem.

Cluster size practically depends from partition size - if it is in range 256-511 MB will be 8 KB .

 

FAT16 used by TOS: most likely because used C compiler limitations (Alcyon) Atari went on little different FAT16 system: they introduced so called logical sectors, what is actually group of physical (512 byte) sectors - so 1,2,4,8,16 of them handled as one.  Because did not use 32-bit sector addressing, only 16-bit one (mentioned compiler limit) - so could access larger partition sizes with that - like 16 phys. sectors = 8 KB x 65536 = 512 MB .

Then, cluster count is set on fixed 2 - what means that in case of partition size 256-511 MB it is 2x8 KB = 16 KB . In range of 64-127 MB it is 4x less, 4 KB .

But then what is max cluster (and file) count ? Well, only 32766 - 2 POW 15 and not 16 !  Yeah, that's another compiler limitation, most likely. And believe me, I know what I talking since I disassembled FAT16 filesystem of TOS and even corrected it to real 16-bit one (iTOS) . Those who looked some TOS sources in C can see there comment "it should be 32-bit" .

We can even say that TOS uses FAT15 actually.

The sad thing is that it was done as partially DOS compatible, so even byte order is in Intel format (low Endian), not Motorola. But you can not access 'TOS' partitions on some PC or MAC without special SW .

 

Still at terminology:  'DOS partitions' should mean FAT16 partitions used by DOS, with real FAT16 - and they are not accessible under TOS, except partitions under 32 MB size.

'TOS' partitions are with different parameters, with some kind of limited FAT16 . Called AHDI, BigGEM partitions too. And even MBR (very first sector in hard disk where locations of partitions are given) format is different. Which sector is not handled by TOS at all (except loading it in RAM), it's on hard disk driver to deal with data in it.

 

TOS/DOS compatible partitions, disk/media:

 

Luckily, it is possible to make such thing, and that's better solution than using program BigDOS with pure DOS partitions.

The whole thing is in giving such parameters, that they will be good for DOS and for TOS type FAT16. For instance count of reserved sectors at start  must be dividable with logical sector's physical sector count (usually it is 1-2 by DOS) .

Such partitions (with regular DOS type MBR) will be directly accessible under DOS, Windows, Linux, MacOS . Well, here must say that Windows normally allows access only to first partition in case of removable drives/medias, so will need to install some special driver to override that - very stupid limit in my opinion.

On Atari side needs of course driver what can handle it properly - what means as 'TOS' partitions.

 

TOS limitations:

 

TOS 1.00-1.02 :  max partition size is 256 MB

TOS 1.04-4.02 : max partition size is 512 MB

TOS 4.04 - max p. size is 1 GB.

 

Max partirion count (all partitions on all attached disks, medias together) :  14    C-P .

And yes, that's another strange limit on 32 bit CPU - because including A and B for floppies it makes exactly 16 instead 32 .

 

The efficiency:

 

Here must say that TOS FAT16 with it's large logical sectors is less efficient than real FAT16 with regular 512 sectors. Because minimum data size with what TOS and hard disk driver operate is 1 logical sector - so even if only few bytes, or few sectors are needed system is forced to load or write whole logical sector.

And another big flaw: because max 2 POW 15 records instead 2 POW 16 cluster size is 2x bigger in case of same partition size in case of TOS than DOS - so more slack (wasted space) on disk.

 

Usual errors, misinterpretations by users:

 

Not using proper terminology, confusing terms. Instead of looking for facts, and that's really easy now in Internet era, they making some own assumptions, or asking on forums - well later just works not as good as could, because some people likes to write, even if they have no sufficient knowledge about subject.

 

Some practical, up to date advice:

 

What to use today with ancient Ataris, as mass storage ?

Indeed some Flash card based solution. Some say 'old hard disks are real thing, that 'retro feeling', etc ...'  Yeah, do so if have too much money and like 'feeling of seeing it break' 🙂 I say it from own experience - I had really lot of hard disks with my Ataris - starting with diverse 2.5 inch IDE drives from 1992, then later SCSI drives - almost all of it broke. Appearance of Flash cards, since about 2005 was the best thing what happened - and I bought that year my first Sandisk CF card (128 MB), then same capacity Flash IDE (what goes directly to IDE connector/port) - later one is still working. CF cards are by my experience more fragile than SD cards, probably because 50 pin connector. But overall failure rate is very low in my case: max 10% during 15 years and about 35 cards overall. Much better than with classic hard disks.  Not to mention low power and space consumption.

 

As here I seen solution: ACSI-SCSI adapter + SCSI2SD adapter  multiple times suggested need to say:

Don't see it as good idea. Why 2 adapters instead one ? We have UltraSatan, Gigafile what goes in ACSI port, or may go internally. It's cheaper, more reliable.

And not to forget 1 GB limitation of Mega STE or Stacy internal ACSI-SCSI adapter. You can not even buy now so low capacity new SD card.

 

Possible speeds:

 

In case of Ataris, speed of hard disk transfers, using ACSI port (so DMA chip) is limited mostly by DMA chip max speed. And it is 2 MB/sec in peak. Here to say that literature is wrong about it - I saw values of 1 MB/ses, 10 Mbit/sec. Wrong for sure - I did tests with all possible versions of DMA chip, on STs, Mega ST, Mega STE, even TT, and with all it was 2 MB/sec .

Of course, with older, small capacity drives, max speed will be rather under 800 KB/sec.

UlltraSatan can up to some 1150 KB/sec, but that depends from used SD card.

Satandisk is very slow: some 150 KB/sec .

Old good ICD adapters, later versions with overridden limit of 1 GB could up to 1.6 MB/sec with better SCSI drives. And that was what made me to make those DMA speed tests. btw.

My ACSI-CF adapter can up to 1.8 MB/sec with Sandisk cards.

 

Good IDE adapters with fast disk, CF card can up to 1.6 MB/sec .

 

Another factor is access time, and no wonder, it's much better in case of Flash cards than by classic hard disks - no mechanic.

 

My speed test SW: http://atari.8bitchip.info/ahpt.html

 

 

 

  • Like 6

Share this post


Link to post
Share on other sites

Good stuff, thanks for all that information Peter.

 

As far as the STacy and Mega STe goes (both use the same controller),

SD card readers are a god-send. Using Alan H's, or Lotharek's adapters,

users can blow right past that former 1 gig limit on mass storage.

 

Share this post


Link to post
Share on other sites

Interesting project, for what never heard, and it's there for over 1 year.  That STM32 is really cheap, and probably that's reason for lower speed, still 2x faster than Satandisk.  I will look to order it and build adapter ..

Share this post


Link to post
Share on other sites

When I had a hard drive on my STe back in the day,  I was told that the partition size limit was 32Mb,  and was 16Mb for older TOS's.  Was that misinformation or a limit of some hard disk driver?  (I think I had the ICD one)

Share this post


Link to post
Share on other sites
9 hours ago, zzip said:

When I had a hard drive on my STe back in the day,  I was told that the partition size limit was 32Mb,  and was 16Mb for older TOS's.  Was that misinformation or a limit of some hard disk driver?  (I think I had the ICD one)

That limit was only for first partition ( C ) by some not so good coded drivers. And yes, it was even only 16 MB by some. But that's really not TOS limitation, even if those who sold that crap said so 🙂

 

Share this post


Link to post
Share on other sites

Hadn't seen this before either - put a 3D printed case around it,

and bang! you're in business...

 

Share this post


Link to post
Share on other sites
Posted (edited)
20 hours ago, ParanoidLittleMan said:

That limit was only for first partition ( C ) by some not so good coded drivers. And yes, it was even only 16 MB by some. But that's really not TOS limitation, even if those who sold that crap said so 🙂

 

The guy who helped me set it up told me 32Mb was the max for all partitions,  so I guess I ended up having more partitions than I needed!   Ha!  oh well.    32mb seems small, but it was a decent size for an ST.

Edited by zzip

Share this post


Link to post
Share on other sites
9 hours ago, TheNameOfTheGame said:

Nice project!  Is there the possibility of pass-through for other devices on the bus?

According to my experiences, with modern devices - I tested with Satandisk and UltraSatan it is better to connect multiple devices to ACSI port parallel, than using pass-through. So, can solve it with simple splitter - where hardest part is to get 19-pin connectors - need 2 female and 1 male.

Well, as picture says, can solve with 25-pin one with some wire removing.

Share this post


Link to post
Share on other sites
1 hour ago, zzip said:

The guy who helped me set it up told me 32Mb was the max for all partitions,  so I guess I ended up having more partitions than I needed!   Ha!  oh well.    32mb seems small, but it was a decent size for an ST.

 

I've ran into that belief a lot. PP's absolutely right though. I run an Atari ST based BBS that

has been going since the early 90's and I've always had a large C partition. In fact, I'm using

a 4 gig SCSI drive with something like 8 partitions, all just slightly under 512 megs, including

the C drive - it's worked just fine all these years and is still going (HDDriver software).

 

It really does depend on the TOS version/software. Lowest version I have on any of my Atari's

is v1.04, so it's not an issue. You really don't want to run anything less than that, especially if

you're using any mass storage.

 

Glad you got everything working.  :)

 

Share this post


Link to post
Share on other sites

With the world the way it is at the moment, it could be months and months before Lotharek is able to ship my Ultrasatan from Poland to the U.S. This, at least, gives me some good reading material. Between all of my projects, I'll be getting hard drives for my 8-bit and my STE soon, and I have no experience with one on either, so this will be a major learning opportunity.

 

Thanks for posting this Peter! I really appreciate it.

 

Share this post


Link to post
Share on other sites

Yes, I heard from Lotharek that air mail from Poland is suspended currently. Maybe will not last so long. I was able to send smaller package to USA from Hungary yesterday, for instance.

Share this post


Link to post
Share on other sites

I'm waiting on a VBXE for my 1088XEL, and the US, cable, & software SD for my STE. I ordered right before things started getting bad. Just bad timing. It'll make it eventually. I have a lot to learn between now and then though.

 

I'm sure I'll be contacting you soon about the drivers I'll need.

 

Thanks again for all of the information.

 

Share this post


Link to post
Share on other sites
20 hours ago, ParanoidLittleMan said:

According to my experiences, with modern devices - I tested with Satandisk and UltraSatan it is better to connect multiple devices to ACSI port parallel, than using pass-through. So, can solve it with simple splitter - where hardest part is to get 19-pin connectors - need 2 female and 1 male.

Well, as picture says, can solve with 25-pin one with some wire removing.

Ah, thanks for the information.

Share this post


Link to post
Share on other sites

Sadly, this ACSI2STM is written on Arduino Environment, thus it is NOT using DMA, which STM32F103 is capable of, but the idea is really great!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...