(c) Copyright 1989 Commodore-Amiga, Inc. All rights reserved. The information contained herein is subject to change without notice, and is provided "as is" without warranty of any kind, either expressed or implied. The entire risk as to the use of this information is assumed by the user. Avoiding Port, Task, and File Name Conflicts by Carolyn Scheppner Many developers are starting to use named tasks and ports to find and communicate with separate tasks within their program. In addition, some new applications make it possible for other independently developed software to find, communicate with, and direct them through named ports. When such techniques are used, it is very important to use unique port and task names, so that name collisions with existing or future products may be avoided. We urge all developers to include their full developer number in their port and task names. Non-registered developers should include unique information such as their initials and company name. We also urge you to use unique names for any logical assigns or additional files required by your application. Such files would include run-time libraries, script files, parameter or setup files, special fonts, drivers, handlers, devices, commands, and readmes. This is especially important for any files which must reside in one of the logical system directories such as LIBS:, DEVS:, S: or C:. Commercial software products which can be directed and controlled by other applications through messages to a named MsgPort is an important capability of the Amiga computer - one that has not yet been fully realized. Externally controllable programs have a market with the consumer/amateur-programmer but can also be licensed for distribution with the products of other 3rd party developers. Here are some examples that I think other companies would license: - An SMUS and 8SVX reader/player - An ILBM displayer with fades/dissolves, speech and text overlay - A general purpose database or expert system - A telecommunications handler which could Xmodem/Kermit files These items could be sold as commercial products and packaged with a licensing agreement allowing other developers to use and distribute the software on a royalty, one-time, or yearly fee basis. The packages could be designed so that more than one external program can use one running copy through the same named port. In some cases, a library, device, or handler might be a better implementation. In any case, there's a great deal of potential here for inventive developers. Just remember to make your names unique so you can multitask with anything that comes along. 68010/68020 Compatibility by Carolyn A. Scheppner More Amiga owners will be installing 68020 boards, so it is more important than ever that your software work properly with this processor. The following programming practices are required for upward compatibility. 1. Do not use the upper 8 bits of a pointer for storing unrelated information. The 68020 uses all 32 bits for addressing. 2. Do not use signed variables or signed math for addresses. 3. Do not use InitStruct() to initialize APTR fields. For 68020 compatibility, InitStruct() does not support 24 bit APTRs. Use ULONGs instead. 4. Do not use the MOVE SR, instruction. This is a priviledged instruction on the 68010/68020. Use the Exec function GetCC(). 5. Do not execute code on your stack. 6. The assembler TAS instruction should not be used in any Amiga program. This instruction's indivisible read-modify-write cycle can conflict with system DMA.