SW compatibility with ST and followers, TOS versions

News,announcements,programming,fixes,game patches & discussions.

Moderator: troed

Post Reply
Trusted Guru
Trusted Guru
Posts: 556
Joined: Tue Nov 28, 2017 1:32 pm

SW compatibility with ST and followers, TOS versions

Post by Petari » Mon May 28, 2018 4:15 pm

This area is probably most confusing and complex problem in Atari computer waters.

Despite whole design of ST serial, up to Falcon, and used CPU family 680xx is made with future compatibility in mind, it works not so well .
The reasons/causes lay in:
1. CPU changes - larger stackframe in 68010-30 and later, what just fails on SW what manipulates with data on stack. And TOS is such SW, so needs special support for larger stackframe. Threre are some other changes, like reading of SR register, then pipeline used by 68030 (maybe bt 68020 too ?) what causes bad work of some self modifying SW.
All SW, what fails because mentioned CPU changes may fail on 68010-30. Reading of SR register is exception - that can be solved in TOS, as it is .

2. Changes in TOS versions - later TOS versions use more RAM, so SW coded for running in lower areas may fail, especially on 2.06 .
Changes in Timer-C usage - 2.06 needs it intact. But many SW took over Timer-C, since in earlier TOS versions it was not problem.
Changed TOS location in address space - at 1.06 it is not $FC0000, but at $E00000 (they needed more than 192 KB, and that was only way) .
Some SW, what assumes that TOS is always at $FC0000 will fail.

3. Not well, not properly coded SW. But part of it is because Atari - poor TOS documentation forced SW authors to use some 'hacky' solutions, which fail on later TOS versions. I seen some really stupid code, even in SW from better houses, otherwise well done SW. Like in Stardust - great game, but code for detecting HW is total crap.

4. HW changes in STE and later models. Actually, STE is very HW compatible. But there is always some SW, where are stupid errors, like cycle counter overshot in Grand Monster Slam, and that screws STE HW scroll registers, while in ST there is nothing there, so they did not notice that bug.
In TT and Falcon are some changes considering video, floppy access (in Mega STE too), PSG audio, and even DMA audio is not 100% same in Falcon than in STE. All it needs carefully written SW, what was not case always, of course. Well, far from always :lol:

5. Case of very-very stupid SW. Direct jumps in TOS ? Sure way to make it not working on any other TOS version - GFA Artist for instance.
Very old TOS version tied input read - some work only on 1.00, some even on 1.02 ! . Although, part of to blame are bad docs too.

Usual opinion is that 1.00 and 1.02 are best for gaming. And that's true in most cases, with older games. But need to know that 1.02 uses more RAM than 1.04, and therefore there are some which work on 1.04 and not on 1.02 . 2.06 is pretty bad with games. There are some problems with not enough good code, like direct floppy access on Mega STE.
On Later CPUs fails some 30-40% od older SW, mostly games, because mentioned problems.

Couple words about hard disk and hard disk driver SW compatibility. 1.00 is very bad, 1.02 little better. 1.04 is there it is really OK, and actually, later versions are not much better at all. Falcon can handle larger partitions, but they did not improve main flaw - large sector usage. As floppy support is partially DOS compatible, it is so with hard disks - they missed couple details to make it 100% compatible.
There is 2 kind of people: one thinking about moving to Mars after here becomes too bad, the others thinking about how to keep this planet habitable.

Post Reply