Page 2 of 2

Re: Why is there no TOS 1.4 annotated disassembly?

Posted: Sun Feb 09, 2020 11:13 am
by terriblefire
czietz wrote: Sun Feb 09, 2020 10:51 am Also, because of the Line-F-trickery used by Atari, TOS 1.04 isn't particularly easy to understand, anyway.
Agreed. Its awful and uses self modifying code. (It installs code in the F-Line handler and self modifies the code to suit the operation under way... really nasty stuff).

Re: Why is there no TOS 1.4 annotated disassembly?

Posted: Sun Feb 09, 2020 11:19 am
by Smonson
czietz wrote: Sun Feb 09, 2020 10:51 am I think a disassembly of the parts of TOS written in C wouldn't be very helpful for understanding what's going on.
That's true, but a demarcation of the major elements (e.g. function names and data objects) would be quite useful.

I appreciate the advice about the line-f stuff, I haven't encountered any of that yet. Maybe nobody would ever want to touch that code anyway. I'm specifically interested in the Desktop itself right now.

Re: Why is there no TOS 1.4 annotated disassembly?

Posted: Sun Feb 09, 2020 5:08 pm
by thorsten.otto
In http://www.tho-otto.de/download/tos306de.tar.bz2 you will find the complete source code to build all 2.06 and 3.06 TOS versions (not 1.04 though). You can build them on TOS (will last several hours) or use the cross-compiler on linux (lasts a few seconds).

TOS 1.04 was quite different though. Apart from the new hardware supported in 2.06 and above, the whole ROM is not so well organized (AES and desktop routines are intermixed for example). And of course there is the Line-F handler to save space.

Re: Why is there no TOS 1.4 annotated disassembly?

Posted: Sun Feb 09, 2020 10:47 pm
by terriblefire
thorsten.otto wrote: Sun Feb 09, 2020 5:08 pm In http://www.tho-otto.de/download/tos306de.tar.bz2 you will find the complete source code to build all 2.06 and 3.06 TOS versions (not 1.04 though). You can build them on TOS (will last several hours) or use the cross-compiler on linux (lasts a few seconds).

TOS 1.04 was quite different though. Apart from the new hardware supported in 2.06 and above, the whole ROM is not so well organized (AES and desktop routines are intermixed for example). And of course there is the Line-F handler to save space.
Yes i was looking for this... NIce find sir.

Re: Why is there no TOS 1.4 annotated disassembly?

Posted: Mon Feb 10, 2020 12:05 am
by Smonson
Thanks Thorsten, this is the only time I've seen the Desktop source anywhere. You're a legend! :D

Re: Why is there no TOS 1.4 annotated disassembly?

Posted: Mon Feb 10, 2020 2:33 pm
by thorsten.otto
terriblefire wrote: Sun Feb 09, 2020 10:47 pm NIce find sir.
It's a bit more than just a "find" :)

Re: Why is there no TOS 1.4 annotated disassembly?

Posted: Mon Feb 10, 2020 7:02 pm
by terriblefire
thorsten.otto wrote: Mon Feb 10, 2020 2:33 pm
terriblefire wrote: Sun Feb 09, 2020 10:47 pm NIce find sir.
It's a bit more than just a "find" :)
Ah i hadnt made the connection that this was your work. Very nice.

But one favour please... un tar-bomb the tar ball.

http://www.linfo.org/tarbomb.html

Great work though.

Re: Why is there no TOS 1.4 annotated disassembly?

Posted: Mon Feb 10, 2020 11:27 pm
by thorsten.otto
terriblefire wrote: Mon Feb 10, 2020 7:02 pm But one favour please... un tar-bomb the tar ball.
I wasn't aware that this might be a problem. Most GUI programs will create a dedicated directory anyway, and then you would end up with a directory that just contains a single directory itself, which i would find annoing. Also there are some other scripts which i personally used during development, and all those would require changes then (not that i really "develop" it anymore, my main goal was to produce exact versions of original TOS roms, and that is achieved; there are other alternatives like EmuTOS if you are looking for actively developed TOS versions).

BTW, for the curious, there is also a second archive with the source of the tools used to compile the TOS source (mainly the alcyon compiler, and a few other tools). It comes in two flavours, the "orig" directory compiles to binary identical versions of the tools found in the atari development kit, the others are fixed versions so they can be used on other hosts like linux, but still produce the same 68k code. That second archive also contains the needed "GNUmakefiles" used for cross-compiling (which is maybe a mistake; they should be in in the original archive, too). The reason for splitting the archives was to allow the sources to fit into a 16MB partition.

Edit: archives should be fixed now