70 lines
3.2 KiB
Plaintext
70 lines
3.2 KiB
Plaintext
|
|
* Copyright 1988 Commodore-Amiga, Inc.
|
|
* This information is provided "as is"; no warranties are made. All
|
|
* use is at your own risk. No liability or responsibility is assumed.
|
|
* Permission granted to reproduce, provided this notice remains.
|
|
|
|
IMPORTANT !
|
|
|
|
Official Warning to Rom-Jumpers, Structure-Hackers, and Others
|
|
==============================================================
|
|
From Commodore Engineering, Commodore-Amiga, and C.A.T.S.
|
|
|
|
We who bring you the Amiga want to make it perfectly clear that
|
|
if you don't follow the rules, you WILL break.
|
|
|
|
The following practices are NOT supported !
|
|
- Jumping directly to ROM code
|
|
- Modifying or depending on private system structures
|
|
- Depending on the addresses of system structures or free memory
|
|
- Ignoring hardware or software interfacing specifications
|
|
|
|
|
|
Do not jump into ROM. Beware of any example code that calls routines
|
|
in the $F80000 to $FFFFFF range. Those are ROM addresses and those ROM
|
|
routines WILL move. The only supported interface to system ROM code
|
|
is through the provided library, device, and resource calls.
|
|
|
|
Do not modify or depend on the format of the private system structures.
|
|
This includes the poking of copper lists, memory lists, and library bases.
|
|
|
|
Do not depend on any address containing any particular system structure
|
|
or type of memory. The system modules dynamically allocate their memory
|
|
space when they are initialized. The addresses of system structures and
|
|
buffers differ with every OS, every model, and every configuration, as
|
|
does the amount of free memory and system stack usage.
|
|
|
|
If you are using the system libraries, devices, and resources, you
|
|
must follow the defined interface. Assembler programmers (and compiler
|
|
writers) must enter functions through the library base jump tables,
|
|
with arguments passed as longs and library base address in A6. Results
|
|
returned in D0 must be tested, and the contents of D0-D0/A0-A1 must be
|
|
assumed gone after a system call. Do not use the TAS instruction.
|
|
|
|
Do not use assembler instructions which are priviledged on any
|
|
68000 family processor. All addresses must be 32 bits. Do not use
|
|
the upper 8 bits for other data. Do not execute code on your stack
|
|
or put shared system or DOS structures on your stack. And do not use
|
|
processor dependent software timimg loops for delays.
|
|
|
|
If you are programming at the hardware level, you must follow hardware
|
|
interfacing specifications. All hardware is NOT the same. Do not assume
|
|
that low level hacks for speed or copy protection will work on all drives,
|
|
or all keyboards, or all systems, or future systems.
|
|
|
|
|
|
Software distributers who purchase or contract software from
|
|
outside programmers must make sure that the programmers are aware
|
|
of correct programming practices and are providing software which
|
|
will not break on different machines or different OS revisions.
|
|
|
|
|
|
We are dedicated to enhancing and expanding the capabilities of
|
|
the Amiga hardware and software, while maintaining compatibility
|
|
wherever possible for those who follow the rules. Those who don't
|
|
follow the rules cans consider themselves warned.
|
|
|
|
|
|
|
|
|