WALDI@DHDIHEP1.BITNET (05/12/87)
Date: 12 May 1987, 12:20:58 SET From: Roland Waldi phone (6221) 564334 WALDI at DHDIHEP1 D-6900 Heidelberg / F.R. Germany To: INFO-ATARI16 Topic: fixed addresses like _shell_p, $440... Several people discussed on the net the use of the variable _shell_p at location $4F6, e.g.: > Using the location at $4F6 for different purposes will crash more than one > program. If one needs to use anything, use some of the space at either the > $500 range, or in the $300 range ( before the save area for the registers > .... > Jos Vermaseren > t68@nikhefh.uucp According to Simon Poole's reply it is used by GEM/AES. Let me tell you my observations: 1. According to the documentations I could access, it is for use of the OS Shell. I assume, this is meant to be GEM usually, so it would be consistent with Simon's observations. A command line shell, which is supposed not to invoke GEM, might then also safely use this for any purpose, but not if it may call GEM-applications. 2. I looked into this variable with a debugger, while running a GEM program. I could not verify it's use by GEM/AES, since it was ALWAYS 00000000. So my question to Simon: When can one find a real address at this place? Actually, there were such "PATH='... data in memory, But I could not find a place with a pointer to them. (I have TOS in ROM). 3. To ATARI: Can anyone comment on the proper use of this storage location? The suggestion to use locations at $500 is very dangerous. Though these locations are not documented, they are nevertheless used by TOS! There are several pointers to printer (Centronics) output routines, and a pointer to the PUN used for harddisk access is close above $500! So please no one use these for private programs, if you want to avoid system crashes. Whether the place before the post-mortem-savearea is save, I don't know. Another location that was discussed is $440 / $A08, A0C to control the floppy seek rate: > Apparently, there is a location (0x0A08) that contains the > current seek rate. This location is one WORD long. It > ..... > What about the documented, 0x0440 location? Well, I ran some > ..... > John Ogawa > > NET: ...ucbvax!sdcsvax!sdcc13!ps136sag Actually, I can confirm locations $A08 and $A0c for the floppy drives' seek rate. SInce it is undocumented, it may --however-- not be ported to other TOS versions (the adresses may change). A more save way is to use the documented location $440. Then, after changing, you have to inform the OS by calling a hdv_init (which does not initialize hard disk, but rather floppy i/o). This can be called via its (documented) pointer at $46A, e.g. try: move #2,$440 move.l $46A,A0 jsr (A0) or something similar (not tested). Again, could anyone from Atari comment? Roland Waldi, WALDI@DHDIHEP1.BITNET