0660103030566 9[....................................................] ----------------------------------------------------------------- | | | AAA TTTTT AAA RRRR III **** SSS TTTTT | | A A T A A R R I **** S S T | | A A T A A R R I **** S T | | AAAAA T AAAAA RRRR I ****** SSS T | | A A T A A R R I ** ** ** S T | | A A T A A R R I ** ** ** S S T | | A A T A A R R III ** ** ** SSS T | | | | DDDD EEEEE V V EEEEE L OOO PPPP EEEEE RRRR SSS | | D D E V V E L O O P P E R R S S | | D D E V V E L O O P P E R R S | | D D EEEE V V EEEE L O O PPPP EEEE RRRR SSS | | D D E V V E L O O P E R R S | | D D E V V E L O O P E R R S S | | DDDD EEEEE V EEEEE LLLLL OOO P EEEEE R R SSS | | | ----------------------------------------------------------------- Question and Answer Bulletin June 1986 Copyright (C) 1986 by Atari Corp. "all rights reserved" 1196 Borregas Ave., Sunnyvale, Ca. 94086 ----------------------------------------------------------------- Here are the latest questions from the Atari developers mailbag as answered by John Feagans, Director of Software Technology. Leave questions on Compuserve for PIN 70007,1072 or GO PCS57 for Atari developer SIG information. 1. Discussion We would like to clear up a bit of the confusion on the use of the Alcyon version 4.14 C compiler. The programs which are actually new in the system are cp, c0, and c1, the as68, and ar68. The Motorola FFP (libf) and the double precision math pack (libm) are upgraded and a new addition respectively. All the other tools and programs on the disks are the standard issue in the regular developer's kit. GEMLIB was modified slightly by Alcyon to include procedures needed by the new math libraries. In the future, everyone will be updated with a new linker. The files on the disks have been organized in a two disk system for C- development. There is some redundancy on the linker and compiler disks with regard to batch.ttp, wait, and rm. The header files for the AES and VDI are not included since you already have them on the standard kit. You may configure the .bat files any way you wish, but be especially vigilant to cf.bat and linkf.bat which are intended to work as a pair. cf.bat has the -f option which is telling the new c-compiler to use the Motorola fast floating point. If you mix cf.bat with link.bat, the first symptom you will see is "printf.o multiply defined." I have done this accidently with my keyboard that has a sticking "k" key. If you want to be safe, just make a batch file that compiles and links your file in one operation. Remember also _________________________________________________________________ ATARI ST DEVELOPERS -1- June 1986 Question and Answer Bulletin _________________________________________________________________ that you must add stdio.h and ctype.h as before if you use those functions. ----------------------------------------------------------------- 2. BIOS Q: How can you initiate a screen dump from the keyboard? A: Hold down the key and press . Be sure you have done the correct printer installation if you are using a non-Atari printer capable of doing raster dumps. Repeat the key sequence to halt the print at any time. The best part of this feature is that you can activate it from any program even if it does not use GEM. Q: How do you turn off the cursor in a TOS application? A: Send the VT-52 escape to turn off the cursor. Look in the Hitchhiker's Guide to the BIOS for a complete description of all the escape codes. ----------------------------------------------------------------- 3. DOS Q: How do I install partitions I have created with the hard disk format program? A: Select one of the drive icons on the desktop. Move the mouse to the Options menu and select Install drive. Change the drive identifier to your choice and select OK. Be sure to do a Save desktop so that the installed drive will appear each time you boot. Q: How can I recover some files I accidently trashed? A: There is hope -- but not much. If you have not created a new file since your accident, you may be able to use a disk utility to view sectors and piece it back together. However, those sectors may be scattered all over your disk. The best medicine is prevention. Leave the confirm deletes option connected. ----------------------------------------------------------------- 4. VDI Q: Looking into the VDIBIND library, I saw that there were many functions which couldn't be found in VDIBIND.H. e.g. vro_cpyfm, vs_clip. What is the rason for not including these in VDIBIND. Can we include them or don't they work well? A: VDIBIND.H is not necessary because all functions return an integer value--if ever. All these functions are in the VDIBIND _________________________________________________________________ ATARI ST DEVELOPERS -2- June 1986 Question and Answer Bulletin _________________________________________________________________ object library. Q: I was using vg_text to output a string. When I switched to line-a to output the characters of the string one character at a time it was slower -- why? A: When you pass a string to the VDI you are performing only one Trap or software interrupt. If you use line-a, you do a software interrupt--and all of the overhead--on each character you output. In the end, the same code outputs the pixels to the video RAM. In some cases, like this, VDI can exceed line-a. Q: What is the standard address of screen memory? A: Unlike older systems, the ST can have video display memory located anywhere as long as it is on 1k boundaries. Various device drivers may be loaded in at boot time so it is impossible to say that video memory has a fixed address. The only thing that can be said for sure about the location is that it is usually the high end of RAM. ----------------------------------------------------------------- 5. AES Q: Is it possible to track the mouse through the process of menu item selection? I need to change the appearance of items on the fly. A: No, this is not an option of the AES. The usual scenario is to stay in the evnt_multi until a menu_event message is returned. Q: How many parameters does the objc_edit command have? A: The correct number is five. The AES manual incorrectly states six. ----------------------------------------------------------------- 6. Desktop Q: I would like to know if information from the desktop.inf is available to normal applications. I have noticed that the control panel and VT 52 emulator accessories have access to this information. A: It is the responsibility of every application in the system to save and restore changes to system variables. We do not recommend an application going in to directly change the desktop.inf. There is a constant danger of user modifications causing damage to the system that cannot be supported. The best way to change colors is through the vdi. Modifying the hardware _________________________________________________________________ ATARI ST DEVELOPERS -3- June 1986 Question and Answer Bulletin _________________________________________________________________ registers directly is also discouraged since you are locking your application to one version of ST hardware. There are also xbios entries for changing and inquiring printer and rs-232 data. ----------------------------------------------------------------- 7. BASIC Q: How can I access the RS-232 from BASIC? A: Where X is a character: For output use OUT 1,X and for input use X = INP(1). ----------------------------------------------------------------- 8. Development Tools Q: The function itoa is not in the C-runtime libraries. What can I use for this function? A: If you have a special case where you need a small number of digits in a hurry, you can write a quick C function to convert an integer to ASCII characters. Another way is if you have included stdio, you can use sprintf to output an integer to a string. Q: We are having serious troubles with C. The functions getchar and stream reading does not work properly. In fact a German version has modified "stdio.h" definitions, (sic) though it works better has still problems. A: There is another version of stdio.h floating around Europe which uses a #define of getchar to be a BIOS Bconin(CON). This does not help the scanf function however. There is also a danger in using this version because when you mix Gem DOS calls (which the C run-time uses), and direct BIOS calls to get characters from the keyboard. A symptom of this has been noted as "10 characters disappearing" as the DOS bufferes them up whenever a printf is called. The safest replacements for getchar and scanf are using Cconin and Cconrs+sscanf respectively. ----------------------------------------------------------------- 9. New On Compuserve In data library 7 (for registered Atari Developers only) in the Atari Developers SIG on Compuserve, the following files are new this month: gemlib Works with both Alcyon versions. test.c Example using stdio to lst: and con:. qa4.doc May Q/A newsletter. _________________________________________________________________ ATARI ST DEVELOPERS -4- June 1986 Press to continue !³£tϬžXI1913½ ®¥h •_P›ùjüMWÍ+p½1 šj›  i…UL¸œâsÙùS¬¥R¬s±HFx—ŒÍæó–VOVÛšVØS'89T÷vŸ!Yr Bugs in the ST Resource Construction Set The RCS originally shipped with the Atari Developers' Kit did not receive adequate testing, and as a result contains a number of bugs, two of which are show stoppers. Due to numerous questions on the SIG, and Tom Hudson's suggestion, I am documenting them here. (The statements here are my own, and have nothing to with Atari or DRI. Use them at your own risk.) Bug #1) The RCS does not work properly with color systems. The character size used is incorrect, resulting in objects which are twice as high as intended. The only solution is to use the RCS with a monochrome system only. Bug #2) When using icons or bit images, the RCS may produce a resource file which causes an address error on the 68000. This occurs because the RCS is not forcing the images to an even byte boundary. Since the images are written immediately after strings, any resource with an odd number of bytes in the string will suffer from this problem (if it contains images as well). To work around: make a copy of the resource BEFORE adding ANY images. Then add the images and attempt to save the resource from the RCS. If you get an error, restore from your backup, add one byte to any string, and try again. Whenever editing ANY string, do the same thing. ALWAYS keep a backup copy! By the time the RCS bombs, your resource is history! "Feature" #3) The icon format expected by the RCS is rather obscure, shall we say. This happened because the RCS expects to find icons written by the GEM IconEditor, which was never ported to the ST. If you want to "roll your own", an example of the correc