(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,<ea> 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.


      


