
Do not read, write, or use any currently undefined address ranges. The current and future
usage of such areas is reserved by Commodore and is definitely subject to change.
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-D1/A0-A1 must be
assumed gone after a system call.
NOTE
The assembler TAS instruction should not be used in any Amiga program. The TAS
instruction assumes an indivisible read-modify-write but this can be defeated by system
DMA. Instead use BSET and BCLR. These instructions perform a test and set operation
which cannot be interrupted.
TAS is only needed for a multiple CPU system. On a single CPU system, the BSET and
BCLR instructions are identical to TAS, as the 68000 does not interrupt instructions in the
middle. BSET and BCLR first test, then set bits.
Do not use assembler instructions which are privileged on any 68000 family processor,
most notably MOVE SR,<ea> which is privileged on the 68010/20/30. Use the Exec
function GetCC() instead of MOVE SR, or use the appropriate non-privileged instruction as
shown below:
CPU User Mode Super Mode
68000 MOVE SR,<ea> MOVE SR,<ea>
68010/20/30 MOVE CCR,<ea> MOVE SR,<ea>
All addresses must be 32 bits. Do not use the upper 8 bits for other data, and do not use
signed variables or signed math for addresses. Do not execute code on your stack or use
self-modifying code since such code can be defeated by the caching capabilities of some
68xxx processors. And never use processor or clock speed dependent software loops for
timing delays. See Appendix F for information on using an 8520 timer for delays.
NOTE
When strobing any register which responds to either a read or a write, (for example
copjmp2) be sure to use a MOVE.W #$00, not CLR.W. The CLR instruction causes a read
and a clear (two accesses) on a 68000, but only a single access on 68020 and above. This
will give different results on different processors.
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. Test your software on many different systems, with different processors, OS,
hardware, and RAM configurations.
- 10 Introduction -
Содержание Amiga A1000
Страница 1: ...AMIGA HARDWARE REFERENCE MANUAL 1992 Commodore Business Machines Amiga 1200 PAL...
Страница 20: ...Figure 1 1 Block Diagram for the Amiga Computer Family Introduction 11...
Страница 21: ...12 Introduction...
Страница 72: ...Figure 3 12 A dual Playfield display Playfield Hardware 63...
Страница 87: ...Figure 3 24 Horizontal Scrolling 78 playfield hardware...
Страница 101: ...92 Playfield Hardware...
Страница 199: ...Figure 6 9 DMA time slot allocation 190 Blitter hardware...
Страница 203: ...Figure 6 13 Blitter Block Diagram 194 Blitter Hardware...
Страница 229: ...220 System Control Hardware...
Страница 246: ...Figure 8 8 Chinon Timing diagram cont Interface Hardware 237...
Страница 265: ...256 Interface Hardware...
Страница 289: ...280 Appendix A...
Страница 297: ...288 Appendix B...
Страница 298: ...APPENDIX C CUSTOM CHIP PIN ALLOCATION LIST NOTE Means an active low signal Appendix C 289...
Страница 302: ...APPENDIX D SYSTEM MEMORY MAP Appendix D 293...
Страница 343: ...334 Appendix F...
Страница 351: ...342 Appendix G...
Страница 361: ...352 Appendix H...
Страница 367: ...358 Appendix I...