|
|
[ Back to Main ] 8. Important changes of the Operating System -------------------------------------------- This chaper concludes the essential part of this FAQ as it describes the most important change of the operating system of the STE with respect to the most recent one of the ST-series. ? What TOS version does the Atari STE-series feature ? ! The 1040STE was shipped with TOS 1.06 first, later with TOS 1.62. Both are basically just improved versions of TOS 1.04, the final Atari ST-TOS, and a few minor bugs made an update from 1.06 to 1.62 necessary. It features the "Rainbow-colour"-effect in the DESKTOP INFO dialogue. The Mega STE has either TOS 2.05 or the final 68000- compatible TOS 2.06. ? What are the most important changes between 1.04 and 1.06 ? ! TOS 1.06 introduces the Cookie Jar as a standard feature of the operating system - not 1.04. Each TOS that followed 1.06 had the Cookie Jar as a permanent gadget to store informations about the installed software that might require sharing with other software. Please note that ANY TOS-version supports a Cookie Jar, but only TOS 1.06 and the later version automatically install a Cookie Jar on bootup. ? Tell me more about the Cookie Jar. ! The Cookie Jar is nothing but a compilation of Cookies. Each Cookie is a 2x32 bit record with the first 32 bit representing the identity of each cookie and the other 32 bit either - containing an address of where to find the full cookie - the Cookie itself The Cookie Jar "base" is at address $000005A0. This longword is a pointer of where in memory to find the real Cookie Jar which contains the cookies of the type described above. It is highly recommended to always follow the vector at $05A0 to locate the Cookie Jar and not rely on other fixed addresses. If the longword at $05A0 is a "0", then there is no Cookie Jar installed and the machine executing this program is certainly no STE because each STE-compatible TOS features a Cookie Jar. ? I want to write demos and games, not applications. What do i need the Cookie Jar for ? ! For example to cleanly find out what type of machine your program is being run on. Also, you can find out what extra gadgets the machine offers. And it is really easy to do so. First, look for a Cookie Jar at address $05A0. If it returns a zero, there is no Cookie Jar installed - and the TOS version is < 1.06. However, finding a valid pointer to a Cookie Jar also does not mean automatically that you have an STE or better. Cookie Jars can also be software installed or it could be a simple ST equipped with TOS 2.06. ? So how can i use the Cookie Jar to learn more about the machine my program is being executed on ? ! That is a lot easier than it might sound. Once you found the base-pointer to the Cookie Jar, you just need to search the Cookies. Each Cookie has an ID which consists of 4 bytes each. Usually, these are being used as 4 ASCII-characters so you have an acronym for most cookies. Atari only uses the 3 right chars with the first char being a "_" to point out that this is an Atari "standard" cookie. To browse through the cookies you just need to read the first longword at the address $05A0 points to - This is the ID of the first cookie in the jar. If that is not the ID you are looking for, add 8 to the address (4 for the ID and 4 for the Cookie itself) and read the resulting address again. This is then the ID of the next cookie and so forth. The Cookie Jar is terminated by a 32-bit "0" as the ID, the so- called Null-cookie, which has the number of cookies installed as the cookie data. (So for example if you read $00000000 $00000004 whithin the Cookie Jar, this means you have just found the last entry and that 4 cookies are installed in total). ? Doesn't sound so hard. What Cookies are automatically created on boot-up ? ! There's a list of cookies TOS initializes directly on boot-up so you can take them for granted even on a clean machine: ID Usage _CPU Contains the CPU-type. Possible Cookie values are 00 - 68000 10 - 68010 20 - 68020 30 - 68030 40 - 68040 in the lowest byte _FPU Contains whether the machine has an FPU, and if so of which type this FPU is and how to access it. The bits of the Cookie itself mean: Bit 0 - SFP-004 or compatible FPU-card present (SFP was the standard 16MHz 68881 FPU card, FPU is treated as a peripheral device then) Bit 1-2 - These two bit encode the FPU-type: Value 0 - No coprocessor Value 1 - Either 68881 or 68882, unknown Value 2 - 68881 Value 3 - 68882 Bit 3 - 68040 internal FPU Please note that Bit 0 refers to an FPU as peripheral device (FPU-card on Megabus or similar) while Bit 1 and 2 refer to an FPU as coprocessor for the CPU. _FRB Contains the address to a Fast-RAM buffer. Only suitable for machines with FastRAM (meaning Atari TT). _MCH Contains the machine type. The upper word reads as: 0 - Any kind of ST (260, 520, 1040, Mega ST, STf, STfm) 1 - STE (520, 1040, 2080, 4160, Mega STE) 2 - TT 3 - Falcon The low-word can contain additional data and Atari uses the low-word only to store STE-specific information: No Bit - 1040 STE Bit 1 - ST Book Bit 5 - Mega STE (anything unequal to zero) _SND Stores information about the sound hardware present: Bit 0 - YM2149 present Bit 1 - 8-bit Stereo DMA sound Bit 2 - 16-bit Stereo DMA sound Bit 3 - DSP56001 Bit 4 - Connection Matrix Bit 5 - CodeC present _SWI Contains DIP-switch settings. Usually only needed in the Atari TT and MegaSTE _VDO Encodes the video-hardware in the system. The values mean 0 - ST-Shifter 1 - STE-Shifter 2 - TT-Shifter 3 - Falcon VIDEL in the highword ? Are these cookies always present ? ! If the TOS features a Cookie Jar as default, yes, then these values are automatically written. Please note though that the Cookie Jar could have been installed per software though or altered by Auto- folder programs. It is therefore unwise to take a certain sequence of cookies for granted. Rather search the Cookie-Jar for a certain ID. ? What additional cookies do exist ? ! There is a list of additional cookies that is being installed by software and is not necessarily featured in a "default" Cookie Jar. The set of rather common cookies is: _FDC Floppy Disk Controller Usually used by software driving the Floppy Disk with respect to the options this Controller allows. Commonly the top byte of the 4 reads as 0 means standard Floppy Disk Drive (720 kb) 1 means HD 1.44 MB drive 2 means ED 2.88 MB drive Just for completeness the other 3 bytes of this Cookie: $000000 No information given $415443 "ATC" - original Atari Hardware or 100% compatible hardware $445031 "DP1" DreamPark Development hardware. The last byte might vary. other Third-party manufacturer hardware _FLK File Locking Installed GEMDOS(-replacement) support File-Locking. If present it contains the version number. _INF DESKTOP.INF-bug patch Cookie of the program that patches a TOS 1.06 bug _NET Network support Flag for the network support of the GEMDOS(-replacement). Contains a pointer to the full Cookie structure. _OOL Poolfix GEMDOS Poolfix-patch. Contains the version number _SLM SLM driver Contains the version number of the Diablo SLM804 driver. _AKP Keyboard/Language configuration Bits 15 to 8 encode the keyboard, Bits 7 to 0 the language: 1 - German 2 - French 3 - English 4 - Spanish 5 - Italian 6 - English 7 - Swiss French 8 - Swiss German all others imply English, too _IDT International Date/Time Format Bit 12 selects 12 hour format (0) or 24 hour format (1) Bits 9 and 8 select date format: 00 - MMDDYY 01 - DDMMYY 10 - YYMMDD 11 - YYDDMM Bit 7 to 0 contain an ASCII character for the separator MiNT MiNT Is being initializes on MiNT/MultiTOS systems. The cookie contains the version of the kernel. Please note that MACCEL3 (Mouse-accelerator 3) also installs a cookie but the ID is not conform (unprintable ASCII). ? Can I also install a Cookie myself ? ! Sure. In most cases that's even pretty easy: All you need to do is find the "Null-Cookie" and store it. Then install your cookie(s) where the Null-Cookie has been. Then, write a new Null-Cookie right behind your cookies with the new number of installed cookies as its value. In the rare case that there is not enough memory behind the current Cookie Jar to install your Cookies, you will have to install a new Cookie Jar: First, copy all Cookie Jar entries to the new location with enough memory, then add your cookies, terminate this Cookie Jar with the new Null-Cookie and then write the pointer to your new Cookie-Jar to $05A0. This will also work if there is no Cookie Jar at all and you want to install one yourself. However, please note that on TOS-systems that do not feature a Cookie Jar, the vector at $05A0 will not be cleared on a reset. ? My program is being started on the first possible AUTO-Boot occassion. When in the ordinary boot-structure is the Cookie Jar initialized ? ! According to the documentation, the Cookie Jar is part of the Bios and is being initialized when the system vectors are being set, which is done very early and before the first disk-access. You should be able to access the Cookie Jar in any case - with two minor restrictions. First, on a machine with no Cookie Jar you will of course not be able to access it, second there is no warranty that all cookies have already been written. The "basic ones" like machine type, Videohardware and sound should already be present. ? So much for the Cookie Jar. What else is new in TOS 1.06 and 1.62 with respect to 1.04 ? ! Not much, really. ? You mean there is not even an XBIOS-routine to replay DMA-sound or to read the extended joystick ports or something ? ! There don't seem to be. ? What is that TOS 1.06 DESKTOP.INF bug i read about ? ! TOS 1.06 didn't store the resolution (in colour) in the DESKTOP.INF. It always booted into lowres when connected to a colour monitor. ? Is TOS 1.06 or 1.62 the one people refer to as "STE-TOS" ? ! As funny as it sounds - none of them is. The list of nicknames is as follows: TOS 1.00 - No nickname TOS 1.02 - BlitterTOS (had Blitter routines) TOS 1.04 - RainbowTOS (considered final TOS for a ST computers) TOS 1.06 - No nickname (STE only) TOS 1.62 - No nickname (STE only, bugfixed from 1.06) TOS 2.05 - STE-TOS (name given by Atari, MegaSTE only) TOS 2.06 - No nickname (general 68000-TOS for any ST and STE) Besides the Cookie Jar there is really not much to mention about TOS 1.06 or 1.62 with respect to 1.04. Please refer to a TOS 1.04 documentation for all the BIOS-, XBIOS- and GEMDOS-routines. TOS 2.05 and 2.06 do not feature really new BIOS-, XBIOS- or GEMDOS- routines but a much more advanced AES and Desktop. They are not being covered here though. Please refer to a recent TOS 2.0x documentation for more details. [ Back to Main ] [ Onto next Chapter ] |
|