amiga hardware manual - ebook-eng
DESCRIPTION
HARD WARE MANUAL COMMODORE-AMIGA, INC. The text of this manual was written by Robert Peck, Susan Deyl, and Jay Miner. COPYRIGHT OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATION OR EXCLUSION 1-IAY NOT APPLY. DISCLAlMER Amiga is a trademark of Commodore-Amiga, Inc CBM Product Number 327272-01 rev 1.08.27.85TRANSCRIPT
![Page 1: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/1.jpg)
![Page 2: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/2.jpg)
![Page 3: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/3.jpg)
AMIGA
HARD WARE MANUAL
COMMODORE-AMIGA, INC.
![Page 4: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/4.jpg)
The text of this manual was written by Robert Peck, Susan Deyl, and Jay Miner.
COPYRIGHT
This manual is copyrighted and all rights are reserved. ThIS document may not, in whole or in part, be copied, photocopied, reproduced, translated or reduced to any electroDlc medium or machine readable form without pnor consent, in writing, from Commodore-Amiga, Inc.
DISCLAlMER
COMMODORE-AMIGA, INC, ("COMMODORE") 1-W<:ES NO WARRANTIES, EITHER EXPRESSED OR IMPLIED, WITH RESPECT TO THE PROGRAM DESCRIBED lIEREIN, ITS QUALITY, PERFORMA ... NCE, MERCHANTABILITY, OR FITNESS FOR ANY PARTICULAR PURPOSE. THIS PROGRAM IS SOLD "AS IS" THE ENTIRE RISK AS TO ITS QUALITY AND PERFORMANCE IS WITH THE BUYER SHOULD THE PROGRAM PROVE DEFECTIVE FOLLOWING ITS PURCHASE, THE BUYER (AND NOT THE CREATOR OF THE PROGRAM, COMMODORE, THEIR DISTRIBUTORS OR THEIR RETAILERS) ASSUMES THE ENTIRE COST OF ALL NECESSARY DAMAGES. IN NO EVENT WILL CO~IMODORE BE LIABLE FOR DIRECT, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES RESULTING FROM ANY DEFECT IN THE PROGRAM EVEN IF IT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME LAWS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF IMPLIED WARRANTIES on LLWILITIES FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATION OR EXCLUSION 1-IAY NOT APPLY.
Amiga is a trademark of Commodore-Amiga, Inc
CBM Product Number 327272-01 rev 1.08.27.85
![Page 5: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/5.jpg)
PREFACE
This manual provides information about the Amiga[tm] graphics and audio hardware and about how the Amiga talks to the outside world through peripheral devices. A portion of this manual is a tutorial on writing assembly language programs to directly control the Amiga's graphics and hardware.
This book is intended for the following audiences:
o Assembly language programmers who need a more direct way of interacting with the system than the routines described in the Amiga ROM Kernel A-fanual. You can find information here to help you make your programs run faster or do things that the ROM kernel rou tines don't do.
o Anyone who wants to add new peripherals to the Amiga or just wants to know how the hardware works
We suggest that you use this book according to your level of familiarity with the Amiga system. Here are some suggestions:
o If this is your initial exposure to the Amiga, Chapter 1 gives a survey of all the hardware features and a brief rundown of graphics and audio effects created by hardware interaction.
o If you are already familiar with the system and want to acquaint yourself with how the various bits in the hardware registers govern the way the system functions, browse through chapters 2 through 8. Examples are included in these chapters.
o For advanced users, the Appendices give a concise summary of the entire register set and the uses of the individual bits. Once you are familiar with the effects of changes in the various bits, you may wish to refer more often to the Appendices than to the explanatory chapters.
Here is a brief overview of the contents:
Chapter 1, Introduction. An overview of the hardware and survey of the Amiga's graphics and audio features.
Chapter 2, Coprocessor Hardware. Using the Copper coprocessor to convIO the entire graphics and audio system; directing mid-screen modifications in graphics dis?lays and directing register changes during the time between displays.
Chapter 3, Playfield Hardware. Creating, displaying and scrolling the playfields, one of the basic display elements of the Amiga; how the Amiga produces multi-color, multigraphical bit-mapped displays.
Chapter 4, Sprite Hardware. Using the 8 sprite direct-memory access (DMA) channels to make sprite movable objects; creating their data structures, displaying and moving them, reusing the DMA channels.
Chapter 5, Audio Hardware. Overview of sampled sound; how to produce quality sound, simple and complex sounds, and modulated sounds.
![Page 6: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/6.jpg)
Chapter 6, Blitter Hardware. Using the blitter DMA channel to create animation effects and draw lines into playfields.
Chapter 7, System Control Hardware. Using the control registers to define depth arrangement of graphics objects, detect collisions between graphics objects, control direct memory access, and control interrupts.
Chapter 8, Interface Hardware. How the Amiga talks to the outside world through controller ports, keyboard, audio jacks and video connectors, serial and parallel interfaces; information about the disk controller and RAM: expansion slot.
Appendices. Alphabetical and address-order listings of all the graphics and audio system registers and the functions of their bits; system memory map; descriptions of internal and external connectors; specifications for the peripheral interface ports; specifications for the expansion connector; and specifications for the keyboard.
Glossary. After the appendices, there is a glossary of important terms.
You may wish to look at the following books and manuals for further information about the Amiga:
o The Amiga ROM Kernel Manual contains information about the Exec multi-tasking routines and is the source for all the C language primitives for Amiga graphics, animation, and audio.
o The following manuals contain information about the AmigaDOS operating system:
o AmigaDOS User's Manual
o AmigaDOS Developer's Manual
o AmigaDOS Technical Reference Manual
It is our policy to make certain that the information contained here is accurate, consistent, and up-to-date. If you should find any material confusing, inaccurate, or incomplete, please feel free to contact Amiga with your questions or comments.
Ii
![Page 7: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/7.jpg)
AMIGA HARDWARE MANUAL
Table of Contents
Chapter 1 INTRODUCTION ........................................................................................................................... 1-1 1.1. COMPONENTS OF THE AMIGA ................................................................................................. 1-1 1.2. SYSTEM EXP ANDABILITY AND ADAPTABILITy........................................................ 1-5
Chapter 2 COPROCESSOR HARDWARE ............................................................................................. 2-] 2.1. INTRODUCTION ...................................................................................................................................... 2-1 2.2. WHAT IS A COPPER INSTRUCTION? .................................................................................... 2-3 2.3. THE MOVE INSTRUCTION ............................................................................................................. 2-4 2.4. THE WAIT INSTRUCTION ............................................................................................................... 2-5 2.5. USING THE COPPER REGISTERS ............................................................................................. 2-7
2.5.1. Location Registers ............................................................................................................................ 2-7 2.5.2. Jump Strobe Address ..................................................................................................................... 2-8 2.5.3. Control Register ............................................................................................................................. .. 2-8
2.6. PUTTING TOGETHER A COPPER INSTRUCTION LIST ......................................... ~-g
2.7. STARTING AND STOPPING THE COPPER ....................................................................... 2-11 2.8. ADVANCED TOPICS ............................................................................................................................. 2-13
2.8.1. The SKIP Instruction .................................................................................................................... 2-13 2.8.2. Copper Loops and Branches and Comparison Enable ............................................... 2-13 2.8.3. Using the Copper in Interlace Mode ..................................................................................... 2-15 2.8.4. Using the Copper with the Blitter ......................................................................................... 2-16 2.8.5. The Copper and the 68000 ......................................................................................................... 2-16
2.9. SUMMARY OF COPPER INSTRUCTIONS ............................................................................ 2-17
Chapter 3 PLA YFIELD HARDWARE ....................................................................................................... 3-1 3.1. INTRODUCTION ...................................................................................................................................... 3-1 3.2. FORMING A BASIC PLAYFIELD ................................................................................................. 3-7
3.2.1. Height and Width of the Playfield ........................................................................................ 3-7 3.2.2. Bit-Planes and Color ...................................................................................................................... 3-7 3.2.3. Selecting Horizon tal and Vertical Resolu tion .................................................................. 3-10 3.2.4. Allocating Memory for Bit-Planes .......................................................................................... 3-12 3.2.5. Coding the Bit-Planes for Correct Coloring ..................................................................... 3-14 3.2.6. Defining the Size of the Display Window .......................................................................... 3-16 3.2.7. Telling the System How to Fetch and Display Data .................................................. 3-19 3.2.8. Displaying and Redisplaying the Playfield ........................................................................ 3-22 3.2.9. Enabling the Color Display ........................................................................................................ 3-23
- i -
![Page 8: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/8.jpg)
3.2.10. Summary ............................................................................................................................................. 3-23 3.3. FORMING A DUAL PLA YFIELD DISPLAy........................................................................... 3-27
3.3.1. How Bit-Planes are Assigned in Dual Playfield Mode ................................................ 3-29 3.3.2. How Color Registers are Assigned in Dual Playfield Mode .................................... 3-31 3.3.3. Dual Playfield Priority and Control ..................................................................................... 3-32 3.3.4. Activating Dual Playfield Mode .............................................................................................. 3-33 3.3 .. 5. Summary ............................................................................................................................................... 3-33
3.4. BIT-PLANES AND DISPLAY WINDOWS OF ALL SIZES ............................................ 3-33 3.4.1. When the Big Picture is Larger than the- Display Window .................................... 3-34 3.4.2. Maximum Display Window Size .............................................................................................. 3-42
3.5. MOVING (SCROLLING) PLA YFIELDS ..................................................................................... 3-43 3.5.1. Vertical Scrolling .............................................................................................................................. 3-43 3.5.2. Horizontal Scrolling ......................................................................................................................... 3-45 3.5.3. Summary ............................................................................................................................................... 3-50
3.6. ADVANCED TOPICS ............................................................................................................................. 3-52 3.6.1. Interactions Between Playfields and Other Objects .................................................... 3-52 3.6.2. Hold and Modify Mode ................................................................................................................. 3-52 3.6.3. Forming a Display with Several Different Playfields ......................................... , ........ 3-53 3.6.4. Using an External Video Source .............................................................................................. 3-53
3.7. SUMMARY OF PLAYFIELD REGISTERS .............................................................................. 3-54 3.8. SUMMARY OF COLOR SELECTION ........................................................................................ 3-56
3.8.1. Color Register Contents ............................................................................................................... 3-56 3.8.2. Some Sample Color Register Contents ................................................................................ 3-56 3.8.3. Color Selection in Low Resolution Mode ........................................................................... 3-57 3.8.4. Color Selection in High Resolution Mode .......................................................................... 3-59
Chapter 4 SPRITE HARDWARE ................................................................................................................. 4-1 4.1. INTRODUCTION ...................................................................................................................................... 4-1 4.2. FOR~1ING A SPRITE ............................................................................................................................. 4-2
4.2.1. Screen Position .................................................................................................................................. 4-2 4.2.2. Shape of Sprites ................................................................................................................................ 4-5 4.2.3. Sprite Color ......................................................................................................................................... 4-7 4.2.4. Designing a Sprite ............................................................................................................................ 4-9 4.2.5. Building the Data Structure ...................................................................................................... 4-9
4.3. DISPLAYING A SPRITE ...................................................................................................................... 4-14 4.3.1. Selecting the Sprite D~fA Channel and Setting the Pointers ............................... 4-14 4.3.2. Resetting the Address Pointers ................................................................................................ 4-15
4.4. MOVING A SPRITE ................................................................................................................................ 4-15 4.5. CREATING ADDITIONAL SPRITES .......................................................................................... 4-16 4.6. REUSING SPRITE DMA CHANNELS ........................................................................................ 4-18 4.7. OVERLAPPED SPRITES ..................................................................................................................... 4-20 4.8. ATTACHED SPRITES ........................................................................................................................... 4-23 4.9. ~1r\NUAL MODE ....................................................................................................................................... 4-25 4.10. SPRITE HARDWARE DETAILS .................................................................................................. 4-25 4.11. SUMMARY OF SPRITE REGISTERS ...................................................................................... 4-29
- 11 -
![Page 9: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/9.jpg)
4.11.1 .. Pointers .......................................................................................................................................... 4-29 4.11.2. Control Registers ........................................................................................................................... 4-29 4.11.3. Data registers ................................................................................................................................... 4-31
4.12. SUMMARY OF SPRITE COLOR REGISTERS ............................................................... 4-32
Chapter 5 AUDIO HARDWARE ................................................................................................................... 5-1 5.1. INTRODUCTION ...................................................................................................................................... 5-1 5.2. FORMING AND PLAYING A SOUND ....................................................................................... 5-6
5.2.1. Deciding Which Channel to Use ............................................................................................. 5-6 5.2.2. Creating the Waveform Data ................................................................................................... 5-6 5.2.3. Telling the System About the Data ...................................................................................... 5-7 5.2.4. Selecting the Volume ...................................................................................................................... 5-8 5.2.5. Selecting the Data Output Rate ............................................................................................. 5-9 5.2.6. Playing the Waveform .................................................................................................................. 5-12 5.2.7. Stopping the Audio DMA ........................................................................................................... 5-13 5.2.8. Summary ............................................................................................................................................... 5-14 5.2.9. Example ................................................................................................................................................. 5-14
5.3. PRODUCING COMPLEX SOUNDS .............................................................................................. 5-16 5.3.1. Joining Tones ...................................................................................................................................... 5-16 5.3.2. Playing Multiple Tones at the Same Time ....................................................................... 5-17 5.3.3. Modulating Sound ............................................................................................................................ 5-18
5.4. PRODUCING QUALITY SOUND ................................................................................................... 5-21 5.4.1. Making Waveform Transitions ................................................................................................ 5-21 5.4.2. Sampling Rate .................................................................................................................................... 5-21 5.4.3. Efficiency ............................................................................................................................................... 5-22 5.4.4. Noise Reduction ................................................................................................................................ 5-23 5.4.5. Aliasing Distortion ........................................................................................................................... 5-23 5.4.6. Low Pass Filter .................................................................................................................................. 5-26
5.5. USING DIRECT (NON-DMA) AUDIO OUTPUT ................................................................. 5-28 5.6. THE EQUAL-TEMPERED MUSICAL SCALE ....................................................................... 5-29 5.7. DECIBEL VALUES FOR VOLUME RANGES ....................................................................... 5-31
Chapter 6 BLITTER HARDWARE ............................................................................................................. 6-1 6.1. INTRODUCTION ...................................................................................................................................... 6-1 6.2. DATA COPYING ....................................................................................................................................... 6-2 6.3. MULTIPLE SOURCES ........................................................................................................................... 6-3 6.4. LOGIC OPERATIONS ........................................................................................................................... 6-3
6.4.1. Blitter Logic Operations - Combining Minterms .......................................................... 6-4 6.4.2. Table of Commonly Used Equations .................................................................................... 6-5 6.4.3. Equation to Minterm Conversion ........................................................................................... 6-6
6.5. MULTIPLE MODULOS ......................................................................................................................... 6-7 6.6. ASCENDING AND DESCENDING ADDRESSING ............................................................. 6-8 6.7. SHIFTING ....................................................................................................................................................... 6-8 6.8. MASI(ING ....................................................................................................................................................... 6-9 6.9. ZERO DETECTION ................................................................................................................................ 6-10
- III -
![Page 10: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/10.jpg)
6.10. AREA FILLING ........................................................................................................................................ 6-10 6.10.1. Inclusive (Normal) Area Filling ............................................................................................ 6-10 6.10.2. Exclusive Area Filling ... .................. .............................. ................................. .. ................... 6-12
6.11. LINE DRAWING ................................................................................................................................... 6-13 6.12. VENN DIAGRAMS ................................................................................................................................ 6-16
Chapter 7 SYSTEM CONTROL HARDWARE ................................................................................... 7-1 7.1. INTRODUCTION ...................................................................................................................................... 7-1 7.2. VIDEO PRIORITIES ................................................................................................................................ 7-1
7.2.1. Fixed Sprite Priorities ................................................................................................................... 7-1 7.2.2. How Sprites Are Grouped ........................................................................................................... 7-2 7.2.3. Understanding Video Priorities ................................................................................................ 7-2 7.2.4. Setting the Priority Control Register .................................................................................. 7-4
7.3. COLLISION DETECTION ................................................................................................................... 7-6 7.3.1. How Collisions Are Determined ............................................................................................... 7-6 7.3.2. How to Interpret the Collision Data ..................................................................................... 7-6 7.3.3. How Collision Detection is Controlled ................................................................................. 7-7
7.4. BEAM POSITION DETECTION ..................................................................................................... 7-9 7.4.1. Using the Beam Position Counter .......................................................................................... 7-9
7.5. INTERRUPTS .............................................................................................................................................. 7-10 7.5.1. Non-Maskable Interrupt ............................................................................................................... 7-10 7.5.2. Maskable Interrupts ........................................................................................................................ 7-10 i.5.3. User Interface to the Interrupt Systenl .............................................................................. . 7.5.4. Interrupt Control Registers ....................................................................................................... . 7.5.5. Setting and Clearing Bits ........................................................................................................... .
7.6. DMA CONTROL ...................................................................................................................................... ..
7-10 7-11 7-15
Chapter 8 INTERFACE HARDWARE ...................................................................................................... 8-1 8.1. INTRODUCTION ...................................................................................................................................... 8-1 8.2. CONTROLLER PORT INTERFACE ........................................................................................... 8-1
8.2.1. How to Read The Controller Port ......................................................................................... 8-2 8.3. DISK CONTROLLER ............................................................................................................................. 8-13
8.3.1. Disk Selection, Control and Sensing ..................................................................................... 8-13 8.3.2. Other Registers Involved with Disk Operations ............................................................ 8-16 8.3.3. Disk Interrupts ................................................................................................................................... 8-19
8.4. THE I(EYBOARD ..................................................................................................................................... 8-19 8.4.1. How the Keyboard Data is Received .................................................................................... 8-20 8.4.2. Type of Data Received .................................................................................................................. 8-20 8.4.3. Limitations of the Keyboard ..................................................................................................... 8-23
8.5. PARALLEL INPUT jOUTPUT INTERFACE ......................................................................... 8-25 8.6. SERIAL INTERFACE ............................................................................................................................. 8-25
8.6.1. Introduction to Serial Circuitry ............................................................................................... 8-25 8.6.2. Setting the Baud Rate ................................................................................................................... 8-25 8.6.3. Setting the Receive Mode ............................................................................................................ 8-25 8.6.4. Contents of the Receive Data Register ............................................................................... 8-26
- IV -
![Page 11: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/11.jpg)
8.6.5. How Output Data is Transmitted .......................................................................................... 8-27 8.6.6. How to Specify the Register Contents ................................................................................ 8-29
8.7. AUDIO OUTPUT CONNECTIONS ............................................................................................... 8-29 8.8. DISPLAY OUTPUT CONNECTIONS ......................................................................................... 8-30
Appendix A REGISTER SET SUMMARY -- ALPHABETICAL ORDER .......................... A-1
Appendix B REGISTER SET SUMMARY -- ADDRESS ORDER ........................................... B-1
Appendix 0 PIN ALLOCATION LIST ...................................................................................................... 0-1
Appendix D SYSTEM MEMORY MAP ................................................................................ ................... D-1
Appendix E INTERFACES ............................................................................................................................... E-1
Appendix F PERIPHERAL INTERFACE ADAPTERS ................................................................ F-1
Appendix G EXPANSION CONNECTOR ............................................................................................. G-1
Appendix H KEYBOARD .................................. ............................................................................................. H-1
GLOSSARY ........................................................................ .. ............................................................................. Glossary-l
- v -
![Page 12: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/12.jpg)
![Page 13: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/13.jpg)
Chapter 1
INTRODUCTIOl'~
The Amiga is a low-cost, high-performance computer with advanced graphics and sound features. This chapter lists and describes the Amiga's hardware components and gives a brief overview of its graphics and sound features.
1.1. COMPONENTS OF THE AMIGA
These are the hardware components of the Amiga:
o Motorola Me 68000 16/32-bit main processor
o 256K bytes of internal RAM, expandable to 5121(
o 256K bytes of ROM containing a real-time, multi-tasking operating system with sound, graphics, and animation support routines
o built-in 3 1/2-inch double-sided disk drive
o expansion disk port for connecting up to 3 additional disk drives, which may be either 3-1/2 inch or 5-1/4 inch, double-sided
o fully programmable serial port
o fully programmable parallel port
o two-button opto-mechanical mouse
o two reconfigureable con troller ports (for mice, joysticks, paddles, or custom con trollers)
o detached Sg-key keyboard with calculator pad, function keys, and cursor keys
o ports for simultaneous composite video, and analog or digital RGB output
o ports for audio output to left and right stereo channels from 4 special-purpose audio channels
o expansion connector that allows you to add RAM, additional disk drives (floppy or hard disks), peripherals, or coprocessors
1-1
![Page 14: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/14.jpg)
The Me 68000 and the Special-Purpose Hardware
The Motorola 68000 is a 16/32-bit microprocessor operating at 7.16 megahertz. In the Amiga, the 68000 can address over 8 megabytes of contiguous random access memory (RAM). Performance of the 68000 is enhanced by a system design that gives it every alternate bus cycle, allowing it to run at full rated speed most of the time. As described in the section below, the special purpose hardware can steal time from the 68000 for jobs it can do more efficien tly than the 68000. Even then, such cycle stealing only blocks the 68000's access to the shared memory. When using ROM or external memory, the 68000 always runs at full speed.
Among other functions, the special-purpose hardware provides the following:
o bit-plane generated high-resolution graphics typically producing 320 by 200 noninterlaced displays and 320 by 400 interlaced displays in 32 colors, and 640 by 200 noninterlaced or 640 by 400 interlaced displays in 16 colors. There is also a special mode that allows you to have up to 4096 colors on-screen simultaneously.
o a custom display coprocessor, allowing changes to most of the special-purpose registers in synchronization with the position of the video beam. This allows such special effects as mid-screen changes to the color palette, splitting the screen into multiple horizontal slices each having different video resolutions and color depths, beam-synchronized interrupt generation for the 68000, and more. The coprocessor can trigger many times per screen. It can trigger in the middle of lines, as well as at the beginning or during the blanking interval. The coprocessor itself can directly affect most of the registers of the specialpurpose hardware, freeing the 68000 for general purpose computing tasks.
o 32 system color registers, each of which contains a 12-bit number as 4 bits of RED, 4 bits of GREEN, and 4 bits of BLUE intensity information. This allows a system color palette of 4096 different choices of color for each register. Although an RGB monitor provides the best available output for the system graphics, test, and color, the composite video signal has been carefully designed to provide maximum NTSC compatibility. This signal may be video-taped or fed to a standard composite video monitor.
o 8 reusable 16-bit-wide sprites with up to 15 color choices per sprite pixel (when sprites are paired). A sprite is an easily movable graphics object whose display is entirely independent of the background (called a playfield); sprites can be displayed "over" or "under" this background. A sprite is 16 low-resolution pixels wide and an arbitrary number of lines tall. After producing the last line of a sprite on the screen, a sprite DMA (direct memory access) channel may be used to produce yet another sprite image elsewhere on-screen (with at least one horizontal line between each reuse of a sprite processor). Thus, you can produce many, many small sprites by simply reusing the sprite processors appropriately.
1-2
![Page 15: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/15.jpg)
o dynamically-controllable in ter-object priority, with collision detection. This means that the system can dynamically control the video priority between the sprite objects and the bit-plane backgrounds (playfields). You can control which object or objects appear "on top" at any time .
.4. 1 l' J • 11 J 1 1 J 1 j j 11" 1, 1', 1 1 .t\.UUILIOll3I1Y, you call u~e ~Y~LeIIl naruware to aeeecr; cOlllslonS Oetween oOJects ana nave your program react to such collisions.
o custom bit-blitter used for high speed data movement, adaptable to bit-plane animation. The blitter has been designed to efficiently retrieve data from up to 3 sources, combine the data in one of 256 different possible ways, and optionally store the combined data in a destination area. This is one of the situations where the 68000 gives up memory cycles to a DMA channel that can do the job more efficiently. The bit-blitter, in a special mode, draws patterned lines into rectangularly organized memory regions at a speed of abou t 1 million dots per second; and it can efficiently handle area fill.
o audio consisting of 4 low-noise digital channels with independently programmable volume and sampling rate. The audio channels retrieve their control and data via direct memory access. Once started, each channel can automatically playa specified waveform without further processor interaction. Two channels are directed into each of the two stereo audio outputs. The audio channels may be linked together if desired to provide amplitude or frequency modulation or both forms of modulation simultaneously.
o DMA-controlled floppy disk read and write on a full-track basis. This means that the built-in disk can read something over 5.6K bytes of data in a single disk revolution (11 sectors of 512 bytes each).
All of the special functions described above are produced by three custom-designed VLSI circuits, which work in concert with the 68000. These circuits and the 68000 use the shared memory on a fully in terleaved basis. Since the 68000 only needs to access the memory bus during each alternate clock cycle in order to run full-speed, the rest of the time the memory bus is free for other activities.
The special purpose hardware uses the memory bus during these free cycles, effectively allowing the 68000 to run at full rated speed "most of the time". We say "most of the time" because there are some occasions when the special purpose hardware steals memory cycles from the 68000, but with good reason. Specifically, the coprocessor and the data-moving DMA channel called the blitter can each steal time from the 68000 for jobs they can do better than the 68000. Thus, the system DMA channels are designed with maximum performance in mind, where the job to be done is performed by the most efficient hardware element available. In addition, sprites, audio, and disk DMA also steal cycles when in operation.
Another primary feature of the Amiga hardware is the ability to dynamically control which part of memory is used for the background display, audio, and sprites. The Amiga is not limited to a small, specific area of RAM for a frame buffer. Instead, the system allows display bit-planes, sprite-processor control lists, coprocessor instruction lists, or audio channel control lists to be located anywhere within the lowest 512K of the memory map.
This same region of memory can be accessed by the bit-blitter. This means, for example, that the user can store partial images at scattered areas of memory and use these images for animation effects by means of rapid replacement of OIl-screen material while saving and
1-3
![Page 16: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/16.jpg)
restoring background images. In fact, the Amiga includes firmware support for display definition and control as well as support for animated objects embedded within playfields.
VCR and Direct Camera Interface
In addition to the connections for NTSC composite Amiga video, and both digital and analog RGB monitors, the system can be expanded to include a VCR or camera interface. This system is capable of synchronizing with an external video source and replacing the system background color with the external image. This allows for the development of fully integrated video images with computer-generated graphics. Laser disk input is accepted in the same manner.
Prima.ry a.nd Secondary Memory
Primary memory in the Amiga consists of 2561( bytes of ROM and 256K bytes of RAM. A RAM expansion cartridge is available as an option. Secondary memory is provided by a built-in 3 1/2-inch floppy disk drive. Disks are SO-track, double-sided, formatted as 11 sectors per track, 512 bytes per sector (over 900,000 bytes per disk). A special utility can read and write disk files compatible with the Apple II[tm]. In addition, the disk controller can read and write 320/3601( IBM PC[tm] formatted disks. External 3 1/2-inch or 5 1/4-inch disk drives can be added to the system through the expansion connector.
Peripherals
Circuitry for some of the peripherals resides on one of the custom chips; other chips handle various signals not specifically assigned to any of the custom chips, including modem controls, disk status sensing, disk motor and stepping controls, ROM enable, parallel input/output interface, and keyboard interface.
The Amiga includes a standard RS-232 serial port for external serial input/output devices.
A detached, professional quality keyboard is included in the base system. You can store the keyboard beneath the system cabinet. For maximum flexibility, both key-down and key-up signals are sent.
For those who prefer incremental cursor control, there are cursor keys on the keyboard. You can attach many other types of controllers through the two controller ports on the side of
1-4
![Page 17: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/17.jpg)
the base unit. You can use a mouse, joystick, keypad, trackball, or steering wheel controller in either of the controller ports. (A light pen can be attached to Port 0.)
1.2. SYSTEM EXPANDABILITY 4J\ND 4J\D4J\PT.A .. BILITY
You can add peripheral devices to the Amiga's expansion connector, and add additional external RAM: on the same expansion connector or upgrade internal RAM: to 512K. Additional disk units may be daisy-chained from a connector at the rear of the unit for a total of 3 extra drives.
The system software, as well, is highly adaptable to other host operating systems. The Amiga's graphics support routines are designed to make the user interface as friendly as possible. New peripheral devices are recognized and used by system software through a well defined, well documented linking procedure.
1-5
![Page 18: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/18.jpg)
![Page 19: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/19.jpg)
Chapter 2
COPROCESSOR HARDWARE
2.1. INTRODUCTION
The Copper is a general purpose coprocessor which resides in one of the Amiga's custom chips. It retrieves its instructions via direct memory access (DMA). The Copper can control nearly the entire graphics system, freeing the 68000 to execute program logic; and it can directly affect the contents of most of the chip control registers. It is a very powerful tool for directing mid-screen modifications in graphics displays and for directing the register changes that must occur during the vertical blanking periods. Among other things, it can control register updates, reposition sprites, change the color palette, update the audio channels, and control the blitter.
One of the features of the Copper is its ability to WAIT for a specific video beam position, then MOVE data into a system register. During the WAIT period, the Copper examines the contents of the video beam position counter directly. This means that while the Copper is waiting for the beam to reach a specific position, it does not use the memory bus at all. Therefore, the bus is freed for use by the other DMA channels or by the 68000.
When the WAIT condition has been satisfied, the Copper steals memory cycles from either the blitter or the 68000 to move the specified data in to the selected special-purpose register.
The Copper is a 2-cycle processor that requests the bus only during odd-numbered memory cycles. This prevents collision with audio, disk, refresh, sprites, and most low-resolution display DMA access, all of which use only the even-numbered memory cycles. The Copper, therefore, only needs priority over the 68000 and the blitter (DMA channel that handles animation, line drawing, and polygon filling).
As with all the other DMA channels in the Amiga system, the Copper can only retrieve its instructions from the lowest 512K of system memory.
About This Chapter
In this chapter, you will learn how to use the special Copper instruction set to organize midscreen register value modifications and pointer register setup during the vertical blanking interval. The chapter shows how to organize Copper instructions into Copper lists, how to use Copper lists in interlace mode, and how to use the Copper with the blitter. The Copper is discussed in this chapter in a general fashion. The chapterf> that deal with playfields,
2-1
![Page 20: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/20.jpg)
sprites, audio, and the blitter contain more specific suggestions for using the Copper.
2-2
![Page 21: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/21.jpg)
2.2. WHAT IS A COPPER INSTRUCTION?
As a coprocessor, the Copper adds its own instruction set to the instructions already provided by the 68000. The Copper has only three instructions, but you can do a lot with them:
o WAIT for a specific screen position specified as x and y coordinates.
o MOVE an intermediate value into one of the special purpose registers.
o SKIP the next instruction if the video beam has already reached a specified screen position.
All Copper instructions consist of two 16-bit words in sequential memory locations. Each time the Copper fetches an instruction, it fetches both words. The MOVE and SKIP instructions require 2 memory cycles and 2 instruction words. Since only the odd memory cycles are requested by the Copper, 4 memory cycle times are required per instruction. The WAIT instruction requires 3 memory cycles and 6 memory cycle times; it takes one extra memory cycle to wake up.
Although the copper can directly affect only machine registers, it can affect the memory by setting up a blitter operation. More information about how to use the Copper in controlling the blitter can be found in the sections called "Control Register" and "Using the Copper with the Blitter" .
The WAIT and MOVE instructions are described below. The SKIP instruction is described in the "Advanced Topics" section.
2-3
![Page 22: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/22.jpg)
2.3. THE MOVE INSTRUCTION
The MOVE instruction transfers data from RAj\l to a register destination. The transferred data is con tained in the second word of the MOVE instruction; the first word contains the address of the destination register. This is shown in detail in the section called "Summary of Copper Instructions" .
FIRST INSTRUCTION WORD (IRl)
Bit 0 Always set to O.
Bits 8 - 1 Register destination address (DA8-1).
Bits 15 - 9 Not used, but should be set to o.
SECOND INSTRUCTION WORD (IR2)
Bits 15 - 0 16 bits of data to be transferred (moved) to the register destination.
The Copper can store data into the following registers:
o Any register whose address is hex 20 or above.
o .lALny register ,vhose address is bet,:veen hex 10 and hex 20 if the Copper danger bit is a 1. The Copper danger bit is in the Copper's control register, COPCON, which is described in the "Con trol Register" section.
o The Copper cannot write into any register whose address is lower than hex 10.
Appendix B at the end of this manual contains all the machine register addresses.
2-4
![Page 23: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/23.jpg)
2.4. THE WAIT INSTRUCTION
The WAIT instruction causes the Copper to wait until the video beam counters are equal to (or greater than) the coordinates specified in the instruction. While waiting, the Copper is off the bus and not using memory cycles.
The first instruction word contains the vertical and horizontal coordinates of the beam position. The second word contains enable bits that are used to form a "mask" that tells the system which bits of the beam position to use in making the comparison.
FIRST INSTRUCTION WORD (IRl)
Bit 0 Always set to l.
Bits 15 - 8 Vertical beam position (called VP).
Bits 7 - 1 Horizontal beam position (called lIP).
SECOl\'D INSTRUCTION \vOI~D (IR2)
Bit 0 Always set to o. Bit 15 The Blitter Finished Disable bit.
Normally, this bit is a 1. (See the "Advanced Topics" section below.)
Bits 14 - 8 Vertical position compare enable bits (called VE).
Bits 7 - 1 Horizontal position compare enable bits (called HE).
The following notes apply to both the WAIT instruction and to the SKIP instruction, which is described below in the "Advanced Topics" section.
Horizontal Beam Position
The horizontal beam position has a value of $0 to $E2 (hex).l The least significant bit is not used in the comparison, so there are 113 positions available for Copper operations. This corresponds to 4 pixels in low resolution and 8 pixels in high resolution. Horizontal blanking falls in the range of $OF to $35. The standard screen (320 pixels wide) has an unused horizontal portion of $04 to $47 (during which only the background color is displayed).
1 In this manual hexadecimal numbers are distingUlshed from decimal numbers by the $ prefix.
2-5
![Page 24: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/24.jpg)
Vertical Beam Position
The vertical beam position can be resolved to 1 line, with a maximum value of 2.5.5. There are actually 262 possible vertical positions. Some minor complications can occur if you want something to happen within these last 6 or 7 scan line;;. Since there are only 8 bits of resolution for vertical beam position (allowing 256 different positions), one of the simplest ways to handle this is shown in the Copper sequence below.
INSTRUCTION
[ ... other instructions ... 1
WAIT for position (0,255)
" .. T "TrT" ro 1',"· • • • • 1 " VVfUl lor any nOflZOIlLaJ pOSILJOII WILli ven-ical position 0 through 6, covering the last 6 lines of the scan before vertical blanking occurs.
The Comparison Enable Bits
EXPLANATION
At this point, the vertical counter appears to wrap to 0, since the comparison works on the least significant bits of the vertical count.
Tlmts l!t~ lulul vf /2:J(j + (j = /26/2 lz·rtes vf video beam travel during which Copper instructions can be executed.
Bits 14-1 are normally set to all l's. The use of the comparison enable bits is described later in the "Advanced Topics" section.
2-6
![Page 25: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/25.jpg)
2.5. USING THE COPPER REGISTERS
There are several machine registers and strobe addresses dedicated to the Copper:
o Location registers
o Jump address strobes
o Control register
2.5.1 Location Registers
The Copper has two sets of location registers, which are:
COPILCH High 3 bits of first Copper list address
COPILCL Low 16 bits of first Copper list address
COP2LCH High 3 bits of second Copper list address
COP2LCL Low 16 bits of second Copper list address
In accessing the hardware directly, you often have to write to a pair of registers that contain the address of some data. The register with the lower address always has a name ending in "H" and contains the most significant data, or high 3 bits of the address. The register with the higher address has a name ending in "L" and contains the least significant data, or low 15 bits of the address. Therefore, you write the 18-bit address by moving one long word to the register whose name ends in "H". This is because when you write long words with the 68000, the most significant word goes in the lower addressed word.
In the case of the copper location registers, you write the address to COPILCH. In the following text, for simplicity, both addresses are referred to as COPILC or COP2LC.
The copper location registers contain the two indirect jump addresses used by the Copper. The Copper fetches its instructions by using its program counter and increments the program counter after each fetch. When a jump address strobe is written, the corresponding location register is loaded into the Copper program counter. This causes the Copper to jump to a new location from which its next instruction will be fetched. Instruction fetch continues sequentially until the Copper is interrupted by another jump address strobe.
NOTE
At the start of each vertical blanking interval, COPILC is automatically used to start the program counter. That is, no matter what the Copper is doing, when vertical blanking reset occurs, the Copper is automatically freed to restart its operations at the address contained in COPILC.
2-7
![Page 26: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/26.jpg)
2.5.2. Jump Strobe Address
When you write to a strobe address, the Copper reloads its program counter from the corresponding location register. The Copper can write its own location registers to perform programmed jumps. For instance, you might MOVE an indirect address into the COP2LC location register. Then, any MOVE instruction that addresses COP JMP2, loads this indirect address into into the program counter.
There are two jump strobe addresses:
COP JMPI Restart Copper from address contained in COPILC
COPJMP2 Restart Copper from address contained in COP2LC
2.5.3. Control Register
The Copper can access:
A. :::lome speCIal-purpose regIsters all of the tIme,
B. Some registers only when a special control bit is set to a 1,
C. Some registers not at all.
The registers that the Copper can always affect are numbered from $20 through $FF inclusive. Those it cannot affect at all are numbered from $00 to $OF inclusive. (See Appendix B at the end of this manual for a list of registers in address order.) The Copper control register is within this third, always protected, group. This means that it takes deliberate action on the part of the 68000 to allow the Copper to write into a specific range of the special- pu rpose registers.
The Copper control register, called COPCON, contains only one bit, Bit #1. This bit, called CDANG (for Copper Danger Bit) protects all registers numbered between $10 and $IF inclusive. This includes the blitter control registers. When CDANG is a 0, these registers cannot be written by the Copper. When CDANG is a 1, these registers can be written by the Copper. Preventing the Copper from accessing the blitter control registers prevents a "runaway" Copper (caused by a poorly formed instruction list), from accidentally affecting system memory.
NOTE
The CDANG bit is cleared after a reset.
2-8
![Page 27: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/27.jpg)
2.6. PUTTING TOGETHER A COPPER INSTRUCTION LIST
The Copper instruction list contains all the register resetting done during the vertical blanking interval and the register modifications necessary for making mid-screen alterations. As you are planning what will happen during each display field, you may find it easier to think of each aspect of the display as a separate subsystem, such as playfields, sprites, audio, interrupts, and so on. Then you can build a separate list of things that must be done for each subsystem individually at each video beam position.
When you have created all these intermediate lists of things to be done, you must merge them together into a single instruction list to be executed by the Copper once for each display frame. The alternative is to create this all-inclusive list directly, without the intermediate steps.
For example, the bit-plane pointers used in playfield displays and the sprite pointers must be rewritten during the vertical blanking interval so the data will be properly retrieved when the screen display starts again. This can be done with a Copper instruction list that does the following:
WAIT until first line of the display MOVE data to bit-plane pointer 1 MOVE data to bit-plane pointer 2 MOVE data to sprite pointer 1 and so on
As a further example, the sprite DMA channels that create movable objects can be reused multiple times during the same display field. You can change the size and shape of the multiple reuses of a sprite; however, every reuse will normally use the same set of colors during a full display frame. You can change sprite colors mid-screen with a Copper instruction list that waits until the last line of the first use of the sprite processor and changes the colors before the first line of the next use of the same sprite processor:
WAIT for first line of display MOVE firstcolorl to COLOR17 MOVE firstcolor2 to COLOR18 MOVE firstcolor3 to COLORl\) WAIT for last line +1 of sprite's first use MOVE secondcolorl to COLOR17 MOVE secondcolor2 to COLOR18 MOVE secondcolor3 to COLOR19 and so on
As you create Copper instruction lists, note that the final list must be in the same order as the order in which the video beam creates the display. The video beam traverses the screen from position (0,0) in the upper left hand corner of the screen to the end of the display (226,263) in the lower right hand corner. The first ° in (0,0) represents the x, position. The second ° represents the y position. For example, an instruction that does something at
2-9
![Page 28: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/28.jpg)
position (0,100) should come after an instruction that affects the display at position (0,60).
Note that because of the form of the WAIT instruction, you can sometimes get away with not sorting the list in strict video beam order. The WAIT instruction causes the Copper to wait until the value in the beam counter is equal to or greater than the value in the instruction. This means, for example, if you have instructions following each other like this:
WAIT for position (64,64) MOVE data
WAIT for position (60,60) MOVE data
the Copper will perform both moves, even though the instructions are out of sequence. The reason for the "greater than" specification is to prevent the Copper from locking up if the beam has already passed the specified position. A side effect is that the second MOVE below will be performed:
WAIT for position (60,60) MOVE data
"VAiT [or posilioll (60,60) MOVE data
At the time of the second WAIT in this sequence, the beam counters will be greater than the position shown in the instructions. Therefore, the second MOVE will also be performed.
Note also that the above sequence of instructions can just as easily be:
WAIT for position (60,60) MOVE data MOVE data MOVE data
since multiple moves can follow a single WAIT.
Loops and Branches
Loops and branches in Copper lists are covered in the "Advanced Topics" section below.
2-10
![Page 29: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/29.jpg)
2.7. STARTING AND STOPPING THE COPPER
Starting the Copper After Reset
At power-on or reset time, you must initialize one of the copper location registers (COPILC or COP2LC) and write to its strobe address before Copper DMA is turned on. This ensures a known start address and known state. Usually, COPILC is used because this particular register is reused each vertical blanking time. The following sequence of 68000 assembly instructions shows how to initialize a location register.
move.l mycoplist, aO move.l aO, COPILCH move.w COPJMPl, dO
move.w #SETBIT + COPPERDMA, dO
;It is assumed that the ;user has already created ;correct Copper instruction ;list at location "mycoplist"
; Write both COP1LCH and COP1LCL ;A ny access to tMs location forces ;load from COP1LC to Copper ;program counter
move.w dO, DMACONW ;Enable Copper DMA
Now, if the contents of COPILC are not changed, every time vertical blanking occurs the Copper will restart at the same location for each subsequent video screen. This forms a repeatable loop which, if the list is correctly formulated, will cause the displayed screen to be stable.
Stopping the Copper
There is no stop instruction provided for the Copper. To ensure that it will stop and do nothing until the screen display ends and the program counter starts again at the top of the instruction list, the last instruction should be to ·WAIT for an event that cannot occur. A typical instruction is to WAIT for VP = $FF and HP = $FE. An HP of greater than $E2 is not possible. When the screen display ends and vertical blanking starts, the Copper will au tomatically be pointed to the top of its instruction list and this final WAIT instruction never finishes.
You can also stop the Copper by disabling its ability to use DrvfA for retrieving instructions or placing data. The register called DMACON controls all of the DMA channels. Bit 7,
2-11
![Page 30: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/30.jpg)
COPEN, enables Copper DMA when set to 1.
For information about controlling the DMA, see Chapter 7, "System Control Hardware".
2-12
![Page 31: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/31.jpg)
2.8. ADVANCED TOPICS
2.8.1. The SKIP Instruction
The SKIP instruction causes the Copper to skip the next instruction if the video beam counters are equal to, or greater than, the value given in the instruction.
The contents of the SKIP instruction's words are shown below. They are identical to the WAIT instruction, except that bit 0 of the second instruction word is a 1 to iden tify this as a SKIP instruction.
FIRST INSTRUCTION WORD (IRl)
Bit 0 Always set to l.
Bits 15 - 8 Vertical position (called VP).
Bits 7 - 1 Horizontal position (called liP).
Bit 0
Bit 15
Skip if the beam counter is equal to or greater than these combined bits (bits 15 through 1).
SECOND INSTRUCTION WORD (IR2)
Always set to l.
The Blitter Finished Disable bit. (See "Using the Copper with the Blitter" below.)
Bits 14 - 8 Vertical position compare enable bits (called VEl.
Bits 7 - 1 Horizontal position compare enable bits (called HE).
The notes about horizontal and vertical beam position found in the discussion of the WAIT instruction apply also to the SKIP instruction.
2.8.2. Copper Loops and Branches and Comparison Enable
You can change the value in the location registers at any time and use this value to construct loops in the instruction list. Before the next vertical blanking time, however, the COPILC registers must be repointed to the beginning of the appropriate Copper list. The value in the COP lLC location registers will be restored to the Copper's program coun ter at the start of the vertical blanking period.
Bits 14-1 of instruction word 2 in the WAIT and SKIP instructions specify which bits of the horizontal and vert ie-al position are to be used for the beam counter comparison. The
2-13
![Page 32: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/32.jpg)
posItIOn in instruction word 1 and the compare enable bits in instruction word 2 are tested against the actual beam counters before any further action is taken. A position bit in instruction word 1 is used in comparing the positions with the actual beam counters if and only if the corresponding enable bit in instruction word 2 is set to 1. If the corresponding enable bit is 0, the comparison is always true. For instance, if you only care about the value in the last 4 bits of the vertical position, you only set the last 4 compare enable bits, bits (11-8) in instruction word 2.
As another example, suppose you want to issue an interrupt each time a total of 16 vertical scan lines has occurred. In addition, you want the interrupts only between lines 80 and 160. Here is a Copper instruction sequence which would do this. The enable "masks" are specified with the instructions.
Before the Copper is told to begin this set of instructions, you use the 68000 to write the address of LOOP to COP2LC.
The Copper instruction stream for the interrupt example includes instructions to do the following:
2-14
(Word 1) WAIT for Vertical Position (VP) = 80 Horizontal Position (HP) = o.
(Word 2)
LOOP:
Mask for vertical = 111111 Mask for horizontal = 111111
All bits of the mask are important; we want y = 80.
(Word 1) WAIT for VP = 0 HP=O
(Word 2) Mask for VP = 001111 Mask for HP = 000000
Only the lowest 4 bits are important; we want an interrupt every 16 lines.
(Word 1) MOVE to (INTREQ)
(Word 2)
(Word 1) SKIP
(Word 2)
In terru pt word con ten ts
Issue an interrupt to the 68000 ..
(next instruction if) VP = 160 HP=O
Mask for VP = 111111 Mask for IIP = 000000
We want this loop executed only between lines 80 and 160.
(\Vorcl 1) MOVE to COPJ~rp2
(Word 2) (anything)
![Page 33: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/33.jpg)
Program counter set to address of loop.
2.8.3. Using the Copper in Interlace Mode
An interlaced bit-plane display has twice the normal number of vertical lines on the screen. Whereas a normal display has 200 lines, an interlaced display has 400 lines. In interlace mode, the video beam scans the screen twice from top to bottom, displaying 200 lines at a time. During the first scan, the odd-numbered lines are displayed. During the second scan, the even-numbered lines are displayed and interlaced with the odd-numbered ones. The scanning circuitry thus treats an interlaced display as two display fields, one containing the even-numbered lines and one containing the odd-numbered lines. The diagram below shows how an interlaced display is stored in memory.
DATA AS DISPLAYED
odd field even fi eld odd field even field
odd field even field
DATA IN MEMORY
line 1 line 2 line 3 line 4
line 399 line 400
Figure 2-1: Interlaced Bit-Plane in RAM - 400 Lines Long
The system retrieves data for bit-plane displays by using pointers to the starting address of the data in memory. As you can see, the starting address for the even-numbered fields is one line greater than the starting address for the odd-numbered fields. Therefore, the bit-plane pointer must contain a different value for alternate fields of the interlaced display. This means that two separate Copper instruction lists are required.
To get the Copper to execute the correct list, you set an interrupt to the 68000 just after the first line of the display. When the interrupt is executed, you change the contents of the COP1LC location register to point to the second list. Then, during the vertical blanking interval, COP1LC will be automatically reset to point to the original list.
For more information about interlaced displays, see Chapter 3, "Playfield Hardware".
2-15
![Page 34: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/34.jpg)
2.8.4. Using the Copper with the Blitter
If the Copper is used to start up a sequence of blitter operations, it must wait for the blitter-finished interrupt before starting another blitter operation. Changing blitter registers while the blitter is operating causes unpredictable results. For just this purpose, the WAIT instruction includes an additional control bit, called BFD (for blitter finished disable). Normally, this bit is a 1 and only the beam counter comparisons control the WAIT.
When the BFD bit is a 0, the logic of the Copper WAIT instruction is modified. The Copper will WAIT until the beam counter comparison is true and the blitter has finished. The blitter has finished when the Blitter Finish flag is set. This bit should be unset with caution. It could possibly prevent some screen displays or prevent objects from being displayed correctly.
For more information about using the blitter, see Chapter 6, "Blitter Hardware".
2.8.5. The Copper and the 68000
On those occaslOns when the Copper's instructions do not suffice, you can interrupt the G8000 and Ube it~ in&truction set instead. The 68000 can poll for interrupt flags set in the INTREQ register by various devices. To interrupt the 68000, use the copper MOVE instruction to store a 1 in to the following bits of INTREQ:
BIT NUMBER NAME FUNCTION
15 SET /CLR Set/Clear control bit. Determines if bits written with a 1 get set or cleared.
4 COPEN Coprocessor interrupting 68000.
See Chapter 7, "System Control Hardware", for more information about interrupts.
2-16
![Page 35: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/35.jpg)
2.9. SUMMARY OF COPPER INSTRUCTIONS
The table below shows a summary of the bit positions for each of the Copper instructions.
MOVE WAIT BIT# JRl IR2 IRI IR2
15 X RD15 VP7 BFD 14 X RD14 VP6 VE6 13 X RD13 VP5 VE5 12 X RD12 VP4 VE4 11 X RDll VP3 VE3 10 X RDlO VP2 VE2 Og X RD09 VP1 VEl 08 DA8 RD08 VPO YEO 07 DA7 RD07 HP8 HE8 06 DA6 RD06 HP7 HE7 OS DA5 RD05 HP6 HE6 04 DA4 RD04 BPS HE5 03 DA3 RD03 HP4 HE4 02 DA2 RD02 HP3 HE3 01 DAI RDOl HP2 HE2 00 0 RDOO 1 0
X = don't care, but should be a 0 for upward compatibility IRI = first instruction word IR2 = second instruction word DA = destination address RD = RAM data to be moved to destination register VP = vertical beam position bit HP = horizon tal beam position bit VE = enable comparison (mask bit) HE = enable comparison (mask bit) BFD = blitter-finished disable
SKIP IRI IR2
VP7 BFD VP6 VE6 VP5 VE5 VP4 VE4 VP3 VE3 VP2 VE2 VP1 VEl VPO YEO HP8 HE8 HP7 HE7 HP6 HE6 HP5 HES HP4 HE4 HP3 HE3 HP2 HE2
1 1
2-17
![Page 36: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/36.jpg)
![Page 37: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/37.jpg)
Chapter 3
PLAYFIELD HARDWARE
3.1. INTRODUCTION
The screen display of the Amiga consists of two basic parts-playfields, which are sometimes called backgrounds, and sprites, which are easily movable graphics objects. This chapter describes how to directly access hardware registers to form playfields.
About this Chapter
This chapter begins with a brief overview of playfield features, including definitions of some fundamental terms, and continues with the following major topics:
o Forming a single "basic" play field, which is a playfield the same size as the display screen. This section includes concepts that are fundamental to forming any playfield.
o Forming a dual-playfield display, where one playfield is superimposed upon another. This differs from a basic playfield in some of the details.
o Forming playfields of various sizes, and displaying only part of a larger playfield.
o Moving playfields by scrolling them vertically and horizontally.
o Advanced topics to help you use playfields in special situations.
The following topics are relevant to playfields and are discussed elsewhere. For information about the movable sprite objects, see Chapter 4, "Sprite Hardware". There are also movable playfield objects, which are subsections of a playfield. To move portions of a playfield, you use a technique called playfield animation, which is described in Chapter 6, "Blitter Hardware" .
3-1
![Page 38: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/38.jpg)
Playfield Features
This section gIves an overvIew of playfield features and how playfields are displayed and colored.
The Amiga produces its video displays with raster display techniques. You create a graphic display by defining one or more bit-planes in memory and filling them with 1 's and O's to determine the colors in your display. The picture you see on the screen is made up of a series of horizontal video lines displayed one after the other .
.. .. Video Picture
Each line represents one sweep of an electron beam which is "painting" the picture as it goes along.
The video beam produces each line by sweeping from left to right. It produces the full screen by sweeping the beam from the top to the bottom, one line at a time.
Figure 3-1: How the Video Display Picture is Produced
The video beam produces about 262 video lines from top to bottom, of which about 200 normally are visible on the screen. Each complete set of 262 lines is called a display field. A complete display field is produced in approximately 1/60th of a second; this is known as the field time. Between display fields, the video beam is traversing the lines you don't see and is returning to the top of the screen to produce another display field.
The display area is defined as a grid of pixels. A pixel is a single picture element, the smallest addressable part of a screen display. The drawings below show what a pixel is and how pixels form displays.
3-2
![Page 39: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/39.jpg)
..
DI ... ------+------The picture is formed from many elements.
• 320 Pixels
Each element is called a pixel.
i .... --+------Pixels are used together to build larger graphic objects .
.. • 640 Pixels
In normal resolution mode, 320 pixels fill a horizontal line.
In high resolution mode, 640 pixels fill a horizontal line.
Figure 3-2: What is a Pixel
The Amiga has four basic display modes - interlace, non-interlace, low resolution, and high resolution. In non-interlace mode, the normal playfield has a height of 200 video lines. Interlace mode gives finer vertical resolution - 400 lines in the same physical display area. In low resolution mode, the normal playfield has a width of 320 pixels. High resolution mode gives finer horizontal resolution - 640 pixels in the same physical display area. These modes can be combined so you can have, for instance, an interlace, high resolution display.
Note that the dimensions referred to as "normal" in the previous paragraph are nominal dimensions and represent the normal values you should expect to use. Actually, you can display larger playfields; the maximum dimensions are given in the section called "Bit-Planes and Playfields of All Sizes". Also, the dimensions of the playfield in memory are often larger than the playfield displayed on the screen. You chose which part of this larger memory
3-3
![Page 40: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/40.jpg)
picture to display by specifying a different size for the display window.
A playfield taller than the screen can be scrolled, or moved smoothly, up or down. A playfield wider than the screen can be scrolled horizontally, from left to right or right to left. Scrolling is described in the section called "1foving (Scrolling) Playfields".
In the Amiga graphics system, you can have up to 32 different colors in a single playfield, using normal display methods. You can control the color of each individual pixel in the playfield display by setting the bit or bits that control each pixel. A display formed in this way is called a bit-mapped display. For instance, in a 2-color display, the color of each pixel is determined by whether a single bit is on or off. If the bit is a 0, the pixel is one userdefined color; if the bit is a 1, the pixel is another color. For a 4-color display, you build two bit-planes in memory. When the playfield is displayed, the two bit-planes are overlapped, which means that each pixel is now 2 bits deep. You can combine up to 5 bit-planes in this way. Displays made up of 3, 4, or 5 bit-planes allow a choice of 8, 16, or 32 colors, respectively.
The color of a pixel is always determined by the binary combination of the bits that define it. vVhen the system combines bit-planes for display, the combination of bits formed for each pixel corresponds to the number of a color register. This method of coloring pixels is called color indirection. The Amiga has 32 color registers, each containing bits defining a userselected color (from a total of 4,096 possible colors).
Figure 3-3 shows how the combination of up to .) bit-planes forms a code that selects which one of the 32 registers to use to display the color of a plavfield pixel.
3-4
![Page 41: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/41.jpg)
One Pixel
Bit-Plane 5
Bit-Plane 4
Bit-Plane 3
Bits from Planes 5,4,3,2, 1
00000 00001 00010 00011 00100
11000 11001 11010 11011 11100 11101 11110 11111
Figure 3-3: How Bit-Planes Select a Color
Color Registers
. :
y ...•.. > .......
Values in the highest numbered bit-plane have the highest significance in the binary number_ As shown in Figure 3-4, the value in each pixel in the highest-numbered bit-plane forms the leftmost digit of the number_ The value in the next highest-numbered bit-plane forms the next bit, and so on.
3-5
![Page 42: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/42.jpg)
Sample Data for 4 Pixels
1 1 1 o o
1 o o 1 o
o 1 o 1 1
o Data in Bit-Plane 5 - Most Significant o Data in Bit- Plane 4 1 Data in Bit-Plane 3 1 Data in Bit-Plane 2 o Data in Bit-Plane 1 - Least Significant
L V,I", 6 - COLOR6 "----- \'aluc 11 COLOR11
'----------- Value 18 - COLOR18 ........ ------------ Value 28 - COLOR28
Figure 3-4: Significance of Bit-Plane Data in Selecting Colors
You also have the choice of defining 2 separate playfields, each formed from up to 3 hitplanes. Each of the two playfields uses a separate set of 8 different colors. This is called dual playfield mode.
3-6
![Page 43: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/43.jpg)
3.2. FORMING A BASIC PLA YFIELD
To get you started, this section describes how to directly access hardware registers to form a single basic playfield that is the same size as the video screen. Here, "same size" means that the playfield is the same size as the actual display window. This will leave a small border between the playfield and the edge of the video screen. The playfield usually does not extend all the way to the edge.
To form a playfield, you need to define these characteristics:
o height and width of the playfield and size of the display window (that is, how much of the playfield actually appears on the screen)
o color of each pixel in the playfield
o horizontal resolution
o vertical resolution, or interlacing
o data fetch and modulo, which tell the system how much data to put on a horizontal line and how to fetch data from memory to the screen
In addition, you need to allocate memory to store the playfield, set pointers to tell the system where to find the data in memory, and (optionally) write a Copper routine to handle redisplay of the playfield.
All these topics are described in this section, and some of them are expanded upon in the more specialized sections that follow. At the end of this section there is a short summary of all the steps and there are two examples showing how to form a play field that is the same size as the screen.
3.2.1. Height and Width of the Playfield
Because this is a basic playfield that is the same size as the screen, the width is either 320 pixels or 640 pixels, depending upon the resolu tion you choose. The height is either 200 lines or 400 lines, depending upon whether or not you choose interlace mode.
3.2.2. Bit-Planes and Color
You define playfield color by:
1. Deciding how many colors you need and how you want to color each pixel.
2. Loading the colors in to the color registers.
3. Allocating memory for the number of bit-planes you need and setting a pointer to each bit-plane.
4. Writing instructions to place a value in each bit in the bit-planes to give you the correct color.
3-7
![Page 44: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/44.jpg)
Table 3-1 shows how many bit-planes to use for the color selection you need.
The Color Table
Table 3-1: Colors in a Single Playfield
NUMBER OF COLORS
1 - 2 3 - 4 5 - 8
9 - 16 17 - 32
l\Ut--fBER OF BIT-PLANES
1 2 3 4 5
The color table contains 32 registers and you may load a different color into each of the registers. Here is a condensed view of the con ten ts of the color table:
Table 3-2: Portion of the Color Table
REGISTER NAME CONTENTS MEANING
COLORO 12 bits User defined - color for the background area and borders.
COLOR1 12 bits User defined color number 1. (For example, the alternate color selection for a two-color playfield.
COLOR2 12 bits User defined color number 2.
COLOR31 12 bits User defined color number 31.
COLORO is always reserved for the background color. The background color shows in any area on the display where there is no other object present and is also displayed outside the defined display window, in the border area.
If you are using the optional genlock board for video input from a camera, VCR, or laser disk, the background color will be replaced by the incoming video display.
3-8
![Page 45: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/45.jpg)
Twelve bits of color selection allow you to define, for each of the 32 registers, one of 4096 possible colors as shown below.
Table 3-3: Contents of the Color Registers
CONTENTS OF EACH COLOR REGISTER
Bits 15 - 12 Bits 11 - 8 Bits 7 - 4 Bits 3 - 0
Unused Red Green Blue
Here are some sample color register bit assignments and the resulting colors. At the end of the chapter is a more extensive list.
Table 3-4: Sample Color Register Contents
CONTENTS OF TIlE COLOR REGISTER
$FFF $6FE $DB9 $000
RESULTING COLOR
white sky blue tan black
Some sample instructions for loading the color registers are shown below:
lea COLORO, aO move.w #$FFF, (aO) move.w #$6FE, 2(aO)
;get address of color register 0 into aO ;load white into color register 0 ;load sky blue into color register 1
Note that the color registers are write-only. Only by looking at the screen can you find out the contents of each color register. As a standard practice, then, for these and certain other write-only registers, you may wish to keep a "backup" RAM copy. As you write to the color register itself, you should update this RAM copy. In this way, you will always know what value each register contains.
Selecting Number of Bit-Planes
After deciding how many colors you want and how many bit-planes are required to give you those colors, you tell the system how many bit-planes to use.
You select the number of bit-planes by writing the number into the register BPLCONO (for Bit Plane Control Register 0) The relevant bits are bits 14, 13, 12, named BPU2, BPUl, BPUO (for Bit Planes Used). The table below shows the values to write to these bits, and how the system assigns bit-plane numbers.
3-9
![Page 46: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/46.jpg)
Table 3-5: Setting the Number of Bit-Planes
NUMBER OF VALUE BIT-PLANES
000 None * 001 1 010 2 011 3 100 4 101 5 110 6 111
NAME(S) OF BIT PLANES
PLANE 1 PLANES 1 and 2 PLANES 1- 3 PLANES 1- 4 PLANES 1- 5 PLANES 1 - 6 ** Value not used.
* Shows only a background color; no playfield is visible.
** Sixth bit-plane is used only in dual-playfield mode and in hold and modify mode, (described in the section called "Advanced Topics").
NOTE
The bits in the BPLCONO register are not independently settable. To set any bits, you must reload them all.
3.2.3. Selecting Horizontal and Vertical Resolution
Standard home television screens are best suited for low resolution displays. Low resolution mode provides 320 pixels for each horizontal line. High-resolution monochrome and ROB monitors can produce displays in high-resolution mode, which provides 640 pixels for each horizontal line. If you define an object in low resolution mode and then display it in high resolution mode, the object will be only half as wide.
To set horizontal resolution mode, you write to Bit 15, HIRES, in register BPLCONO:
High resolution mode - write 1 to bit 15 Low resolution mode - write 0 to bit 15
Note that in high resolution mode, you can have up to 4 bit-planes in the playfield and, therefore, up to 16 colors.
Interlacing allows you to double the number of lines appearing on the video screen. In nonin terlaced mode, normally, 200 lines fill the screen and a normal size playfield appears fullsize. In interlace mode, normally, a maximum of 400 lines fill the screen. Twice as much data is displayed in the same vertical area as in non-interlace mode.
3-10
![Page 47: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/47.jpg)
In interlace mode, the scanning circuitry vertically offsets the start of every other field by 1/2 of a scan line.
Line 1
Field 1
Line 1
Field 2
\ Line 1
/ Line 2 Video Display
(400 lines)
(Same physical space as used by a 200 line noninterlaced display.)
Figure 3-5: In terlacing
Even though interlace mode requires a modest amount of extra work in setting registers (as you will see later on in this section), it provides needed fine tuning for certain graphics effects. Consider the diagonal line in the picture below as it appears in non-interlaced and interlaced modes. Interlacing eliminates much of the jaggedness or "staircasing" in the edges of the line.
3-11
![Page 48: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/48.jpg)
Non-I nterlace Interlace
Figure 3-6: Effect of Interlace Mode on Edges of Objects
When you use the special blitter DMA channel to draw lines or polygons onto an interlaced playfield, the playfield is treated as one display, rather than as odd and even fields. Therefore, you still get the smoother edges provided by interlacing.
To set interlace or non-interlace mode, you write to bit 2, LACE, in register BPLCONO:
Interlace mode - write 1 to bit 2 Non-interlace mode - write 0 to bit 2
As explained under Section 3.2.2, bits in BPLCONO are not independently settable.
The amount of memory you need to allocate for each bit-plane depends upon the resolution modes you have selected, as high-resolution or interlaced playfields contain more data and require larger bit-planes. The following sub-section describes memory requirements.
3.2.4. Allocating Memory for Bit-Planes
After you set the number of bit-planes and specify resolution modes, you are ready to allocate memory. A bit-plane consists of an end-to-end sequence of words at consecutive memory locations. To allocate memory, you set the registers that point to the starting memory address of each bit-plane you are using. The starting address is the memory word that contains the bits of the upper left-hand corner of the bit-plane.
3-12
![Page 49: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/49.jpg)
Table 3-6 shows how much memory is needed for basic play fields. You may need to balance your color and resolution requirements against the amount of available memory you have.
Table 3-6: Playfield Memory Requirements
NUMBER OF BYTES PICTURE SIZE MODES PER BIT-PLANE
320 X 200 low-resolu tion, 8,000 non-interlaced
320X 400 low-resolution, 16,000 interlaced
640 X 200 high-resolu tion, 16,000 non-interlaced
640 X 400 high-resolu tion, 32,000 interlaced
A normal low-resolution, non-interlaced display has 320 pixels across each display line and a total of 200 display lines. Each line of the bit-plane for such a display requires 40 bytes (320 bits divided by 8 bits per byte = 40).
A low-resolution, non-interlaced playfield made up of two bit-planes requires 16,000 bytes of memory area. The memory for each bit-plane must be continuous so you need to have two 8,000-byte blocks of available memory. The figure below shows an 8,000-byte memory area organized as 200 lines of 40 bytes each, providing 1 bit for each pixel position in the display plane.
3-13
![Page 50: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/50.jpg)
I I I I I I I I �------------------------------~· I I I I I I I II
Mem. Location N Mem. Location N+38
II I I I I I I I------------------------------~· I I I I I I I I I
Mem. Location N+40 Mem. Location N+78
I I I I I I I II------------------~------~·I I I I II I II
ivierll. LU(;Cition N+79GO rv1eiTl. Location Nt 7998
Figure 3-7: Memory Organization for a Basic Bit-Plane
Access to bit-planes in memory is provided by two address registers, BPLxPTH and BPLxPTL, for each bit-plane (12 registers in all). The "x" position in the name holds the bit-plane number; for example BPLIPTH and BPLIPTL hold the starting address of PLANE 1. As usual, pairs of registers with names ending in PTH and PTL contain 19-bit addresses. 68000 programmers may treat these as one 32-bit address and write to them as one long word. You write to the high-order word, which is the register whose name ends in "PTH".
Note that the memory requirements given here are for the playfield only. You may need to allocate additional memory for other parts of the display - sprites, audio, animation - and for your application programs. Memory allocation for other parts of the display is discussed in the chapters describing those topics.
3.2.5. Coding the Bit-Planes for Correct Coloring
After you have specified the number of bit-planes and set the bit-plane pointers, you can actually write the color register codes into the bit-planes.
3-14
![Page 51: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/51.jpg)
A One- or Two-Color Playfield
For a one-color playfield, all you need do is write O's in all the bits of the single bit-plane. For a two-color playfield, you define a bit-plane that has O's where you want the background color and 1 's where you want the color in register 1.
A Playfield of Three or More Colors
For 3 or more colors, you need more than one bit-plane. The task here is to define each bitplane in such a way that, when they are combined for display, each pixel contains the correct combination of bits. This is a little more complicated than a one-bit-plane playfield. The following examples show a 4-color playfield, but the basic idea and procedures are the same for playfields containing up to 32 colors.
Figure 3-8 shows two bit-planes forming a four-color playfield:
3-15
![Page 52: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/52.jpg)
Results in a display Image in Image in similar to this: Bit-Plane 2 Bit-Plane
a a ° []]o a a a 0 0[JJ0 0 0 0 0 000 0 0 0 0 0 o 1 1 0 0 0 0 0 000 0 0 0 0 0 o 1 1 0 0 0
1 001 100 1 1 1 1 1 001 1 1 0 0 1 1 1 0 0 o r;l0
0 0 0 0 O~o 0 0 0 0 o 1 1 0 a 0 0 0 o 1 1 0 0 0 0 0 ,... ..... 1"'\ " " G G r\ .. .. 1"\ n n u~u U u u~u u u
Color 00
/ (background)
Color 3
Figure 3-8: Combining Bit-Planes
You place the correct 1 's and O's in both bit-planes to give each pixel in the picture above the correct color.
In a single playfield you can combine up to 5 bit-planes in this way. Using 5 bit-planes allows a choice of 32 differen t colors for any single pixel. The playfield color selection charts at the end of this chapter summarize the bit combinations for playfields made from 4 and 5 bit-planes.
3.2.6. Defining the Size of the Display Window
After you have completely defined the playfield, you need to define the size of the display window. The display window is the actual size of the on-screen display. Adjustment of display window size affects the entire display area, including the border and the sprites, not just the playfield. You cannot display objects outside of the defined display window. Also, the size of the border around the playfield depends on the size of the display window.
3-16
![Page 53: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/53.jpg)
The basic play field described in this section is the same size as the screen display area and also the same size as the display window. This is not always the case; often the display window is smaller than the actual "big picture" of the playfield as defined in memory (the raster). A display window that is smaller than the playfield allows you to display some segment of a large playfield or scroll the playfield through the window. You can also define display windows larger than the basic playfield. These larger playfields and different-sized display windows are described in the section below called "Bit-Planes and Display Windows of All Sizes" .
You define the size of the display window by specifying the vertical and horizontal positions where the window starts and stops, and writing these positions to the display window registers. The resolution of vertical start and stop is 1 scan line. The resolution of horizontal start and stop is 1 low-resolution pixel. Each position on the screen defines the horizontal and vertical position of some pixel, and this position is specified by the x and y coordinates of the pixel. This document shows the x and y coordinates in this form: (x,y). Although the coordinates begin at (0,0) in the upper left-hand corner of the screen, the first horizontal position normally used is $81 and the first vertical position is $20. The hardware allows you to specify a starting position before ($81,$20), but part of the display may not be visible. The difference between the absolute starting position of (0,0) and the normal starting position of ($81,$20) is due to the way many video display monitors are designed. To overcome the distortion that can occur at the extreme edges of the screen, the scanning beam sweeps over a larger area than the front face of the screen can display. A starting position of ($81,$20) centers a normal size display, leaving a border of 8 low-resolution pixels around the display window. Figure 3-9 shows the relationship between the normal display window, the visible screen area, and the area actually covered by the scanning beam.
3-17
![Page 54: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/54.jpg)
(81,2C) hex.
~--+------320--------~~
200
I
DISPLAY WINDOW Starting and Stopping Positions
Visible Screen Boundaries
Figure 3-9: Positioning the On-Screen Display
Setting the Display Window Starting Position
A horizontal starting position of approximately $81 and a vertical starting position of approximately $20 centers the display on most standard television screens. If you select high-resolution mode (640 pixels horizontally) or interlace mode (400 lines) the starting position does not change. The starting position is always interpreted in low-resolution, noninterlace mode. In other words, you select a starting position that represents the correct coordinates in low-resolution, non-interlace mode.
3-18
![Page 55: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/55.jpg)
The register DIWSTRT (for Display Window Start) controls the display window starting position. This register contains both the horizontal and vertical components of the display window starting positions, known respectively as HSTART and VSTART.
Setting the Display Window Stopping Position
You also need to set the display window stopping position, which is the lower right hand corner of the display window. If you select high-resolution or interlace mode, the stopping position does not change. Like the starting position, it is interpreted in low-resolution, noninterlace mode.
The register DIWSTOP (for Display Window Stop) controls the display window stopping position. This register contains both the horizontal and vertical components of the display window stopping positions, known respectively as HSTOP and VSTOP. The instructions below show how to set HSTOP and VSTOP for the basic playfield, assuming a starting position of ($81,$2C). Note that the HSTOP value you write is the actual value less 256 ($100). The HSTOP position is restricted to the right hand side of the screen. The normal HSTOP value is ($ICl) but is written as ($Cl).
The VSTOP position is restricted to the lower half of the screen. This is accomplished in the hardware by forcing the MSB of the stop position to be the complement of the next MSB. This allows for a VSTOP position greater than 256 ($100) with only 8 bits. Normally, the VSTOP is set to ($F4).
The normal DIWSTART is ($2C81). The normal DIWSTOP is ($F4Cl).
3.2.7. Telling the System How to Fetch and Display Data
After defining the size and position of the display window, you need to give the system the on-screen location for data fetched from memory. To do this, you describe the horizontal positions where each line starts and stops and write these positions to the data fetch registers. The data fetch registers have a 4-pixel resolution (unlike the display window registers, which have a one-pixel resolution). Each position specified is 4 pixels from the last one. Pixel 0 is position 0; pixel 4 is position 1, and so on.
Data fetch start and horizontal scrolling position interact with each other. It is recommended that data fetch start values be restricted to a programming resolution of 16 pixels (8 clocks in low resolution mode, 4 clocks in high resolution mode). The hardware requires some time after the first data fetch before it can actually display the data. As a result, there is a difference between the value of window start and data fetch start. In low-resolution mode the difference is 8.5 clocks; in high-resolution mode the difference is 4.5 clocks.
The normal low-resolution DDFSTART is ($0038). The normal high-resolution DDFSTART is ($003C). Recall that the hardware resolution of display window start and stop is twice the hardware resolu tion of data fetch:
3-19
![Page 56: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/56.jpg)
($81/2 - 8.5) = ($38) ($81/2 - 4.5) = ($3C)
The relationship between data fetch start and stop is:
DDFSTART = DDFSTOP - (8*(word count - 1) for low-resolution DDFSTART = DDFSTOP - (4*(word count - 2) for high-resolution
The normal low-resolution DDFSTOP is ($OODO). The normal high-resolution DDFSTOP is ($OOD4).
You also need to tell the system exactly which bytes in memory belong on each horizontal line of the display. To do this, you specify the modulo value. Modulo refers to the number of bytes in memory between the last word on one horizontal line and the beginning of the first word on the next line. Thus, the modulo enables the system to convert bit-plane data stored in linear form (each data byte at a sequentially increasing memory address) into rectangular form (one "line" of sequential data followed by another line). For the' basic playfield, where the playfield in memory is the same size as the display window, the modulo is zero because the memory area contains exactly the same number of bytes as you want to rlic;:nl<;lv ()n t.hP ~f"rppn ViO"l1l'PQ ~_1() -::lInrl 1._11 c:hrYHT t'ht:t. h.fJI~':1" h~t_nl()n.o l~'HAl1" ~n Y"'r1onrn ...... ,...,.' o ..... ..l _ .................. .1 .......... "' ........ ""''''' ... V 'V ....... ...... 0 .................. ,., ......... ......., .......... '-'" ........ ......... 1.'-' ,! v ...... "" ...,\Ao'toJJ.V _ ... v t',"IoA.IJ.J.V J.UiJ vuv .lJ..1 .1J..I.\.I.111VIJ Cl.>JIU
how to make sure the correct data is retrieved.
The bit-plane address pointers (BPLxPTH and BPLxPTL) are used by the system to fetch the data to the screen. These pointers are dynamic; once the data fetch begins, the pointers are continuously incremented to point to the next word to be fetched (data is fetched two bytes at a time). When the end-of-line condition is reached (defined by the Data Fetch register, DDFSTOP) the modulo is added to the bit-plane pointers, adjusting the pointer to the first word to be fetched for the next horizontal line.
3-20
![Page 57: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/57.jpg)
Data for Line 1 :
Location: START
Leftmost Display Word
START+2
Next Word
START+4
Next Word
START+38
Last Display
Screen data fetch stops (DDFSTOP) for wJord each horizontal line after the last word on the line has been fetched. -----------'
Figure 3-10: Data Fetched for the First Line When Modulo = 0
After the first line is fetched, the bit-plane pointers BPLxPTH and BPLxPTL contain the value START+40. The modulo (in this case, 0) is added to the current value of the pointer so when the pointer begins the data fetch for the next line, it fetches the data you want on that line. The data for the next line begins at memory location START +40.
Data for Line 2:
Location: START+40
Leftmost Display Word
START+42
Next Word
START+44
Next Word
START+78
Last Display Word
Figure 3-11: Data Fetched for the Second Line When Modulo = 0
3-21
![Page 58: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/58.jpg)
Note that the pointers always contain an even number, because data is fetched from display a word at a time.
There are two modulo registers-BPLIMOD for the odd-numbered bit-planes and BPL2MOD for the even-numbered bit-planes.
Data Fetch in High Resolution Mode
When you are using high-resolution mode to display the basic playfield, you need to fetch SO bytes for each line, instead of 40.
Modulo in Interlace Mode
For interlace mode, you must redefine the modulo. This is because there are two separate scannings of the video screen for a single display of the playfield. During the first scanning the odd-numbered lines are fetched to the screen, and during the second scanning the evennumbered lines are fetched.
The bit-planes for a full-screen-size, interlaced display are 400 lines long, instead of 200 lines. Assuming that the playfield in memory is the normal 320 pixels wide, then data for the interlaced picture begins at the following locations. These are all byte addresses.
Line 1 Line 2 Line 3 Line 4
START START+40 START+SO START+120
and so on. Therefore, you use a modulo of 40 to skip the lines in the other field. For odd fields, the bit-plane pointers begin at START. For even fields, the bit-plane pointers begin at START+40.
You can use the Copper to handle resetting of the bit-plane pointers for interlaced displays.
3.2.8. Displaying and Redisplaying the Playfield
You start playfield display by making certain that the bit-plane pointers are set and bitplane DMA is turned on. You turn on bit-plane D.MA by writing a 1 to bit BPLEN in the DMACON (for D~1A control) register. See Chapter 7, "System Control Hardware", for instructions on setting this register.
3-22
![Page 59: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/59.jpg)
Each time the playfield is redisplayed, you have to reset the bit-plane pointers. Resetting is necessary because the pointers have been incremented to point to each successive word in memory and must be repointed to the first word for the next display. You write Copper instructions to handle the redisplay or perform this operation as part of a vertical blanking task.
3.2.9. Enabling the Color Display
To enable color, rather than black and white display, you need to set Bit 9 in BPLCONO. This enables the color burst signal on composite video. This does not affect RGB video.
3.2.10. Summary
The steps for defining a basic playfield are summarized here.
Define Playfield Characteristics
Specify height in lines
o 200 maximum for non-interlaced mode
o 400 maximum for interlaced mode
Specify width in pixels
o 320 maximum for low-resolution mode
o 640 maximum for high-resolution mode
Specify color for each pixel
o Load desired colors in color table registers.
o Define color of each pixel in terms of the binary value that points at the desired color register.
o Build bit-planes
o Set bit-plane registers:
* Bits 12-14 in BPLCONO - number of bit-planes (BPU2 - BPUO)
3-23
![Page 60: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/60.jpg)
* BPLxPTH - pointer bit-plane starting position m memory (written as a long word)
Specify resolu tion
o Low resolution:
* 320 pixels in each horizon tal line
* Clear bit 15 in register BPLCONO (HIRES)
o High resolution:
* 640 pixels in each horizon tal line
* Set bit 15 in register BPLCONO (HIRES)
Specify interlace or non-interlace
o In ter lace modI"
* 400 vertical lines
* Set bit 2 in register BPLCONO (LACE)
o Non-interlace mode
* 200 vertical lines
* Clear bit 2 in BPLCONO (LACE)
Allocate Memory
To calculate data-bytes in the total bit-planes, use the formula:
bytes per line * lines in playfield * number of bit-planes
3-24
![Page 61: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/61.jpg)
Define Size of Display Window
Write start position of display window in DIWSTRT
o Horizontal position in bits 0 through 7 (low-order bits)
o Vertical position in bits 8 through 15 (high-order bits)
Write stop position of display window in DIWSTOP
o Horizontal position in bits 0 through 7
o Vertical position in bits 8 through 15
Define Data Fetch
Set registers DDFSTRT and DDFSTOP
o For DDFSTRT, use the horizontal position as shown in the DDFSTRT section.
o For DDFSTOP, use the horizontal position as shown in the DDFSTOP section.
Define Modulo
Set registers BPLIMOD and BPL2MOD
o Set modulo to 0 for non-interlace, 40 for interlace.
3-25
![Page 62: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/62.jpg)
Write Copper Instructions
o To handle redisplay
Enable Color Display
o Set bit 9 in BPLCONO to enable the color display on a composite video monitor. RGB video is not affected.
3-26
![Page 63: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/63.jpg)
3.3. FORMING A DUAL PLAYFIELD DISPLAY
For more flexibility in designing your background display, you can specify two playfields instead of one. In dual playfield mode, one playfield is displayed directly in front of the other. For example, a computer game display might have some action going on in one playfield in the background, while the other playfield is showing a control panel in the foreground. You could then change either the foreground or the background without having to redesign the entire display. You can also move the two playfields independently.
A dual playfield display is similar to a single play field display, differing only in these aspects:
o Each playfield in a dual display is formed from 1, 2 or 3 bit-planes.
o The colors in each playfield (up to 7 plus transparent) are taken from different sets of color registers.
o You must set a bit to activate dual playficld mode.
Figure 3-12 shows a dual playfield display.
3-27
![Page 64: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/64.jpg)
Playfield 1 (1, 2, or 3 bit-planes)" Playfield 2 (1, 2, or 3 bit-planes)"
G ~ SPEED HEADING
52 0000
FUEL MISSILES OIL
\
Both playfields appear onscreen, combined to form the complete
display.
~ 123 10 FUEL MISSILES OIL
Figure 3-12: A Dual Playfield Display
o
J
The background color shows through where there are transparent sections of both playfie Ids_
The sketch also shows that one of the colors in the playfield is "transparent" (color 0 in playfield 1 and color 8 in playfield 2). You can use transparency to allow selected features of the background play field to show through.
3-28
![Page 65: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/65.jpg)
In dual playfield mode, each playfield is formed from up to 3 bit-planes. Color registers 0 through 7 are assigned to Playfield 1, depending upon how many bit-planes you use. Color registers 8 through 15 are assigned to Play field 2.
3.3.1. How Bit-Planes are Assigned in Dual Playfield Mode
The 3 odd-numbered bit-planes (1, 3 and 5) are grouped together by the hardware and may be used in Play field 1. Likewise, the 3 even-numbered bit-planes (2, 4, and 6) are grouped together and may be used in Playfield 2. The bit-planes are assigned alternately to each playfield as shown in the figure below. Note that in high-resolution mode, you can have up to 2 bit-planes in each playfield - bit-planes 1, 3 in Playfield 1 and bit-planes 2, 4 in Play field 2.
3-29
![Page 66: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/66.jpg)
3-30
Number of Bit-Planes
"turned-on" Playfield 1 * Playfield 2*
0 None None
C )
2 D e )
~3 ~ 0 3 I
\.. /
4 C 0 5
6
*NOTE: Either playfield may be paced "in front of" or "behind" the other using the "swap=bit."
Figure 3-13: How Bit-Planes are Assigned to Dual Playfields
![Page 67: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/67.jpg)
3.3.2. How Color Registers are Assigned in Dual Playfield Mode
When you are using dual playfields, the hardware interprets color numbers for Playfield 1 from the bit combinations of bit-planes 1, 3, and 5. Bits from PLANE 5 have the highest significance, and form the most significant digit of the color register number. Bits from PLANE a have the lowest significance. These bit combinations select the first 8 color registers from the color palette as shown in Table 3-7.
Table 3-7: Playfield 1 Color Registers - Low Resolution Mode
PLAYFIELD 1
BIT COMBINATION SELECTS
000 001 010 011 100 101 110 111
Transparent Mode COLOR1 COLOR2 COLOR3 COLOR4 COLOR5 COLOR6 COLOR7
The hardware interprets color numbers for Playfield 2 from the bit combinations of bitplanes 2, 4, and 6. Bits from PLANE 6 have the highest significance. Bits from PLANE 2 have the lowest significance. These bit combinations select the color registers from the second 8 colors in the color table as shown in Table 3-8.
Table 3-8: Playfield 2 Color Registers - Low Resolution Mode
PLAYFIELD 2
BIT COMBINATION SELECTS
000 Transparent Mode 001 COLOR9 010 COLORlO 011 COLORl1 100 COLOR12 101 COLOR13 110 COLOR14 111 COLOR15
Combination 000 selects transparent mode, to show the color of whatever object (the other playfield, a sprite, or the background color) may be "behind" the playfield.
The following tables show the color registers for high resolution, dual playfield mode.
3-3J
![Page 68: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/68.jpg)
Table 3-9: Playfield 1 and 2 Color Registers - High Resolution Mode
PLAYFIELD 1
BIT COMBINATION SELECTS
00 01 10 11
Transparent Mode COLOR1 COLOR2 COLOR3
PLAYFIELD 2
BIT COMBINATION SELECTS
00 01 10 11
Transparen t Mode COLOR9 COLORlO COLORll
3.3.3. Dual Playfield Priority and Control
Either Playfield 1 or 2 may have priority; that is, may be displayed in front of the other. Normally Play field 1 has priority. You use the bit known as PF2PRI (Bit 6) in register BPLCON2 to control priority. When PF2PRI = 1, Playfield 2 has priority over Playfield 1. When PF2PRI = 0, Playfield 1 has priority.
You can also con trol the relative priority of playfields and sprites. Chapter 7, "System Control Hardware", shows you how to control the priority of these objects.
You can separately control the two playfields as follows:
o They can have different sized representations in memory and different portions of each one can be selected for display.
o They can be scrolled separately.
3-32
NOTE: You must take special care when scrolling one playfield and holding the other stationary. When you are scrolling low resolution playfields, you must fetch one word more than the width of the playfield you are trying to scroll (two words more in high-resolution mode) in order to provide some data to display when the actual scrolling takes place. There is only one data fetch start and one data fetch stop register, and this register is shared by both playfields. If you want to scroll one playfield and hold the other, you must still adjust the data fetch start and data fetch stop to handle the one being scrolled. Therefore, you have to adjust the modulo and the bit-plane pointers of the playfield that is not being scrolled to maintain its position on the display. In low resolution mode, you adjust the pointers by
![Page 69: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/69.jpg)
-2 and the modulo by -2. In high resolution mode, you adjust the pointers by -4 and the modulo by -4.
3.3.4. Activating Dual Playfield Mode
\Vriting a 1 to bit 10 (called DBLPF) of the Bit Plane Control Register BPLCONOselects dual playfield mode. Selecting dual playfield mode changes:
o the way hardware groups the bit-planes for color interpretation; that is, all oddnumbered bit-planes are grouped together and all even-numbered bit-planes are grouped together.
o the way hardware can move the bit-planes on the screen.
3.3.5. Summary
The steps for defining dual playfields are almost the same as for the basic playfield. These steps are somewhat different:
o Loading colors into the registers. Keep in mind that color registers 0-7 are used by Playfield 1 and registers 8 through 15 are used by Playfield 2 (if there are 3 bitplanes in each playfield).
o Building bit-planes. Recall that Play field 1 is formed from PLANES 1, 3 and 5 and Playfield 2 from PLANES 2, 4, and O.
o Setting the modulo registers. Write the modulo to both BPLIMOD and BPL2MOD as you will be using both odd- and even-numbered bit-planes.
These steps are added:
o Defining Priority. If you want Play field 2 to have priority, set Bit 6 (PF2PRI) in BPLCO N2 to 1.
o Activating Dual Playfield Mode. Set bit 10 (DBLPF) in BPLCONO to 1.
3.4. BIT-PLANES AND DISPLAY WINDOWS OF ALL SIZES
You have seen how to form single and dual play fields where the playfield in memory is the same size as the display window. This section shows you:
3-33
![Page 70: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/70.jpg)
o How to define and use a play field whose big picture in memory is larger than the display window.
o How to define display windows larger or smaller than the normal playfield size.
o How to move the display window in the big picture.
3.4.1. When the Big Picture is Larger than the Display Window
If you design a memory picture larger than the display window, then you must chose which part of it to display. Displaying a portion of a larger playfield differs in the following ways from the basic playfields described up to now:
o If the big picture in memory is larger than the display window, you respecify the modulo. The modulo must be some value other than O.
o You must allocate more memory for the larger memory picture.
Specifying the Modulo
For a memory picture wider than the display window, you need to respecify the modulo so the correct data words are fetched for each line of the display. As an example, assume the display window is the standard 320 pixels wide, so 40 bytes are to be displayed on each line. The big picture in memory, however, is exactly twice as wide as the display window, or 80 bytes wide. Also, assume that you wish to display the left half of the big picture. Figure 3-14 shows the relationship between the big picture and the picture to be displayed.
3-34
![Page 71: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/71.jpg)
START
I Width of the Bit-Plane Defined in RAM
Width of defined screen on which bit-plane data is to appear
START+78
Figure 3-14: Memory Picture Larger than the Display
Because 40 bytes are to be fetched for each line, the data fetch for line 1 is as shown in Figure 3-15.
3-35
![Page 72: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/72.jpg)
Data for Line 1:
Location: START
Leftmost Display Word
START+2
Next Word
START+4
Next Word
START+38
Last Display
wtord Screen data fetch stops (DDFSTOP) for each horizontal line after the last word on the line has been fetched. _______ ----1
Figure 3-15: Data Fetch for the First Line when Modulo = 40
At this point, BPLxPTH and BPLxPTL contain the value START+40. The modulo, which is 40, is added to the current value of the pointer so that when it begins the data fetch for the next line, it fetches the data that you intend for that line. The data fetch for line 2 is shown in Figure 3-16.
Data for Line 2:
Location: START+80
Leftmost Display Word
START+82
Next Word
START+84
Next Word
Figure 3-16: Data Fetch for the Second Line when Modulo = 40
3-36
START+118
Last Display Word
![Page 73: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/73.jpg)
To display the right half of the big picture, you set up a vertical blanking routine to start the bit-plane pointers at location START+40 rather than START; with the modulo remaining at 40. The data layou t is shown in Figures 3-17 and 3-18.
Data for Line 2:
Location: START+40
Leftmost Display Word
START+42
Next Word
START+44
Next Word
START+78
Last Display Word
Figure 3-17: Data Layout for First Line - Right Half of Big Picture
Now, the bit-plane pointers contain the value START+80. The modulo (40) is added to the pointers so when they begin the data fetch for the second line, the correct data is fetched.
Data for Line 2:
Location: START+120
Leftmost Display Word
START+122
Next Word
START+124
Next Word
START+158
Last Display Word
Figure 3-18: Data Layout for Second Line - Right Half of Big Picture
Remember, in high resolution mode, you need to fetch twice as many bytes as in low resolution mode. For a normal size display, you fetch 80 bytes for each horizontal line instead of 40.
3-37
![Page 74: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/74.jpg)
Specifying the Data Fetch
The data fetch registers specify the beginning and end positions for data placement on each horizontal line of the display. You specify data fetch in the same way as shown in the section called "Forming a Basic Play field ".
Memory Allocation
For larger memory pictures, you need to allocate more memory. Here is a formula for calculating memory requiremen ts in general:
bytes per line * lines in play field * # of bit-planes
Thus if the wide playfield described in this section is formed from two bit-planes, it requires:
80 * 200 * 2 = 32,000 bytes of memory
Recall that this is the memory requirement for the playfield alone. You need more memory for any sprites, animation, audio, or application programs you are using.
Selecting the Display Window Starting Position
The display window starting position is the horizontal and vertical coordinates of the upper left-hand corner of the display window. One register, DIWSTRT, holds both the horizontal and vertical coordinates, known as HSTART and VSTART, respectively. The 8 bits allocated to HSTART are assigned to the first 2,56 positions counting from the leftmost possible position. Thus, you can start the display window at any pixel position within this range.
3-38
![Page 75: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/75.jpg)
FULL SCREEN AREA
o
HSTARTof DISPLAY WINDOW occurs in this region.
255 361
Figure 3-19: Display Window Horizontal Starting Position
The 8 bits allocated to VSTART are assigned to the first 256 positions counting down from the top of the display.
3-39
![Page 76: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/76.jpg)
FULL SCREEN AREA
VSTART of DISPLAY WINDJW occurs in this region.
o
_---L_-+-_ 255 (NTSC) ----1--262
Figure 3-20: Display Window Vertical Starting Position
Recall that you select the values for the starting position as if the display were in lowresolution, non-interlace mode. Keep in mind, though, that for interlace mode the display window should be an even number of lines in height to allow for equal-size odd and even fields.
To set the display window starting position, write the value for HSTART into bits 0 through 7 and the value for VSTART into bits 8 through 15 of DIWSTRT.
Selecting the Stopping Position
Stopping position for the display window is the horizontal and vertical coordinates of the lower right-hand corner of the display window. One register, DIWSTOP, contains both coordinates, known as HSTOP and VSTOP, respectively.
See the notes in the "Forming a Basic Playfield" section for how to set these registers.
3-40
![Page 77: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/77.jpg)
FULL SCREEN AREA
o 255
HSTOPof DISPLAY WINDOW occurs in this region.
361
Figure 3-21: Display Window Horizontal Stopping Position
Select a value that represents the correct position in low resolution, non-interlaced mode.
3-41
![Page 78: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/78.jpg)
FULL SCREEN AREA
~------------------------------------------~ 0
----------~--------------------~128 VSTOP of DISPLAY WI NDOW occurs in this region.
(NTSC) ----I-- 262
Figure 3-22: Display Window Vertical Stopping Position
To set the display window stopping position, write HSTOP into bits 0 through 7 and VSTOP into bits 8 through 15 of DIWSTOP.
3.4.2. Maximum Display Window Size
The maximum size of a playfield display is determined by the maximum number of lines and the maximum number of columns. Vertically, the restrictions are simple. There cannot be any displayed data in vertical blanking which has a range of line 0 through line 19 (20 lines total). This leaves 242 lines of displayable screen video (interlace doubles this to 484).
Horizontally, the situation is similar. Strictly speaking, the hardware sets a rightmost limit to DDFSTOP of ($D8) and a leftmost limit to DDFSTRT of ($18). This gives a maximum of 25 words fetched in low-resolution. In high resolution, the maximum here is 49 words because the rightmost limit remains ($D8) and only one word is fetched at this limit. However, horizontal blanking actually limits the displayable video to 376 low-resolution pixels (23.5 words). In addition, it should be noted that using a data fetch start earlier than ($38) will disable some sprites.
3-42
![Page 79: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/79.jpg)
3.5. MOVING (SCROLLING) PLAYFIELDS
If you want a moving background display, you can design a playfield larger than the display window and scroll it. If you are using dual playfields, you can scroll them separately.
In vertical scrolling, the playfield appears to move smoothly up or down on the screen. All you need do for vertical scrolling is progressively increase or decrease the starting address for the bit-plane pointers by the size of a horizontal line in the playfield. This has the effect of showing a lower or higher part of the picture each field time.
In horizontal scrolling the playfield appears to move from right to left or left to right on the screen. Horizontal scrolling works differently from vertical scrolling - you must arrange to fetch one more word of data for each display line and delay the display of this data.
For either type of scrolling, resetting of pointers or data fetch registers can be handled during the vertical blanking interval by the Copper.
3.5.1. Vertical Scrolling
You can scroll a playfield upward or downward in the window. Each time you display the playfield, the bit-plane pointers start at a progressively higher or lower place in the big picture in memory. As the value of the pointer increases, more of the lower part of the picture is shown and the picture appears to scroll upward. As the value of the pointer decreases, more of the upper part is shown and the picture scrolls downward. If your picture has 200 vertical lines, each step can be as little as 1/200th of the screen. In interlace mode each step could be 1/400th of the screen if clever manipulation of the pointers is used, but it is recommended that scrolling be done 2 lines at a time to maintain the odd/even field relationship.
3-43
![Page 80: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/80.jpg)
Bit-Plane Pointer
Start Address As the value of the bit-plane
pointer increases, more of the lower part of the picture is shown.
As it decreases, more of the upper part is shown.
Figure 3-23: Vertical Scrolling
To set up a playfield for vertical scrolling, you need to
o Form bit-planes tall enough to allow for the amount of scrolling you want.
o Write software to calculate the bit-plane pointers for the scrolling you want, and allow for the Copper to use the resultant pointers.
Assume you wish to scroll a playfield upward one line at a time. To accomplish this, before each field is displayed, the bit-plane pointers have to increase by enough to ensure that the poin ters begin one line lower each time. For a normal size low resolution display where the modulo is 0, the pointers would be incremented by 40 bytes each time_
3-44
![Page 81: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/81.jpg)
3.5.2. Horizontal Scrolling
You can scroll playfields horizontally from left to right or right to left on the screen. You control the speed of scrolling by specifying the amount of delay in pixels. Delay means that a extra word of data is fetched but not immediately displayed. The extra word is placed just to the left of the window's leftmost edge and before normal data fetch. As the display shifts to the right, the bits in this extra word appear on-screen at the left-hand side of the window as bits on the right-hand side disappear off-screen. For each pixel of delay, the on-screen data shifts one pixel to the right each display field. The greater the delay, the greater the speed of scrolling. You can have up to 15 pixels of delay. In high-resolution mode, scrolling is in increments of 2 pixels.
Note that fetching an extra word for scrolling will disable some sprites.
Figure 3-24 shows how the delay and extra data fetch combine to cause the scrolling effect.
3-45
![Page 82: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/82.jpg)
Data Fetch Start
0-15 bits of delay will cause the system to
show the early-fetched
word.
16 Bits (1 word)-----I~
3-46
Display Window
Start
.-:':': ........ .
o
..... 1---- Data Fetch 21 Words ----t~
I_---Display Window --__ , 1-..--320 Bits (20 words)----t~
o
-
Display position in example is shown with O-bits of delay.
As delay is added, on screen display
shifts this direction.
This data is displayed if scroll = 0
This data is displayed if scroll = 15
Figure 3-24: Horizontal Scrolling
![Page 83: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/83.jpg)
To set up a play field for horizontal scrolling, you need to:
a define bit-planes wide enough to allow for the scrolling you need
a set the data fetch registers to correctly place each horizontal line, including the extra word, on the screen
o set the delay bits
o set the modulo so the bit-plane pointers begin at the correct word for each line
a write Copper instructions to handle the changes during the vertical blanking interval
Specifying Data Fetch in Horizontal Scrolling
The normal data fetch start for non-scrolled displays is ($38). If horizontal scrolling is desired, then the data fetch must start one word sooner (DDFSTRT = $0030). Incidentally, this will disable sprite 7. DDFSTOP remains unchanged. Remember that the settings of the data fetch registers affect both playfields.
Specifying the Modulo in Horizontal Scrolling
As always, the modulo is two counts less than the difference between the address of the next word you want to fetch and the address of the last word that was fetched. As an example for horizontal scrolling, let us assume a 40-byte display in an SO-byte "big picture". Because horizontal scrolling requires a data fetch of 2 extra bytes, the data for each line will be 42 bytes long.
3-47
![Page 84: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/84.jpg)
START START+38 START +78
DISPLAY WINDOW
Width
Memory Picture Width •
Figure 3-25: Memory Picture Larger than the Display Window
3-48
![Page 85: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/85.jpg)
Data for Li ne 1 :
Location: START
Leftmost Display Word
START+2
Next Word
START+4
Next Word
Figure 3-26: Data for Line 1 - Horizontal Scrolling
START+40
Last Display Word
At this point the bit-plane pointers contain the value START+42. Adding the modulo of 38 gives the correct starting point for the next line.
3-49
![Page 86: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/86.jpg)
Data for Line 2:
Location: START+80
Leftmost Display Word
START+82
Next Word
START+84
Next Word
Figure 3-27: Data for Line 2 - Horizontal Scrolling
In the BPLxMOD registers you set the modulo for each bit-plane used.
Specifying Amount of Delay
START+120
Last Display Word
The amount of delay in horizontal scrolling is controlled by bits 7-0 in BPLCONI. You set the delay separately for each playfield; bits 3-0 for Playfield 1 (bit-planes 1, 3, and 5) and bits 7-4 for Playfield 2 (bit-planes 2, 4, and 6).
NOTE: You always set all six bits, even if you have only one playfield. Set 3-0 and 7-4 to the same value if you are using only one playfield.
3.5.3. Summary
The steps for defining a scrolled playfield are almost the same as for the basic playfield. These steps are different:
3-50
![Page 87: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/87.jpg)
o Defining the data fetch. Fetch one extra word per horizontal line and start it 16 pixels before the normal (unscrolled) data fetch start.
o Defining the modulo. The modulo is 2 counts greater than when there is no scrolling.
These steps are added:
o For vertical scrolling, reset the bit-plane pointers for the amount of the scrolling increment. Reset BPLxPTH and BPLxPTL during the vertical blanking interval.
o For horizontal scrolling, specify the delay. Set bits 7-0 in BPLCON1 for 0 to 15 bits of delay.
3-51
![Page 88: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/88.jpg)
3.6. ADVANCED TOPICS
This section describes features that are used less often, or are optional.
3.6.1. Interactions Between Playfields and Other Objects
Playfields share the display with sprites. Chapter 7, "System Control Hardware" shows how:
o playfields can be given different video display priorities relative to the sprites.
o playfields can collide with (overlap) the sprites or each other.
3.6.2. Hold and Modify Mode
This is a special mode that allows you to produce more than 32 colors on-screen simultaneously. In this mode you can display up to 4,096 colors on the screen at the same time. Normally, as each value formed by the combination of bit-planes is selected, the data contained in the selected color register is loaded into the color output circuit for the pixel being written on the screen. Therefore, each pixel is colored by the con ten ts of the selected color register.
In hold and modify mode, however, the value in the color output circuitry is held and one of the three components of the color (red, green, or blue) is modified by bits coming from certain pre-selected bit-planes. After modification, the pixel is written to the screen.
Hold and modify allows very fine gradients of color or shading to be produced on the screen. For example, you might draw a set of 16 vases, each a different color, using all 16 colors in the color palette. Then, for each vase, you use hold and modify to very finely shade or highlight or add a completely different color to each of the vases. Note that a particular hold and modify pixel can only change one of the three color values at a time. Thus, the effect has a limited control.
In hold and modify mode, you use all six bit-planes. planes 5 and 6 are used to modify the way bits from planes 1 - 4 are treated, as follows:
o If the 6-5 bit combination from planes 6 and 5 for any given pixel is 00, normal color selection procedure is followed. Thus, the bit combinations from planes 4-1, in that order of significance, are used to choose one of 16 color registers (registers 0 -15).
3-52
If only 5 bit-planes are used, the data from the 6th plane is automatically supplied with the value as O.
o If the 5-5 bit com bination is 01, the color of the pixel immediately to the left of this pixel is duplicated and then modified. The bit-combinations from planes 4 - 1 are
![Page 89: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/89.jpg)
used to replace the 4 "Blue" bits in the corresponding color register.
o If the 6-5 bit combination is 10, the color of the pixel immediately to the left of this pixel is duplicated and then modified. The bit-combinations from planes 4 - 1 are used to replace the 4 "Red" bits.
o If the 6-5 bit combination is 11, the color of the pixel immediately to the left of this pixel is duplicated and then modified. The bit-combinations from planes 4 - 1 are used to replace the 4 "Green" bits.
Using hold and modify mode, it is possible to get by with defining only one color register, which is COLORO, the color of the background. You treat the entire screen as a modification of that original color, according to the scheme above.
The bit that selects hold and modify mode is bit 11 of register BPLCONO. The following bits in BPLCONO must be set for hold and modify mode to be active:
oBit HOMOD, bit 11, is 1.
oBit DBLPF, bit 10, is 0 (single playfield specified).
o Bit HIRES, bit 15, is 0 (normal resolution mode specified).
oBits BPU2, BPUl, and BPUO - bits 14, 13, and 12, are 101 or 110 (5 or 6 bit-planes active).
3.6.3. Forming a Display with Several Different Playfields
The graphics library provides the ability to split the screen into several viewports, each with its own colors and resolutions. See the "Amiga ROM Kernel Manual" for more information.
3.6.4. Using an External Video Source
There is an optional board available for the Amiga that provides genlock. Genlock allows you to bring in your graphics display from an external video source (such as a VCR, camera, or laser disk player). When you use genlock, the background color is replaced by the display from this external video source. For more information, see the instructions furnished with the optional board.
3-53
![Page 90: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/90.jpg)
3.7. SUMMARY OF PLAYFIELD REGISTERS
This section summarizes the registers used in this chapter and the meaning of their bit settings. The color registers are summarized in the next section.
BPLCONO - Bit Plane Control
NOTE: Bits in this register are not independently settable.
Bit 0 - unused
Bit 1 - ERSY (genlock video enable 1 = Genlock video enabled o = Genlock video disabled
Bit 2 - LACE (interlace enable) 1 = interlace mode enabled 0= non-interlace mode enabled
Bit 3 - LPEN (light pen enable)
Bit 8 - GAUD (genlock audio enable) 1 = Genlock audio enabled o = Genlock audio disabled
Bit 9 - COLOR_ON (color enable) 1 = composite video color-burst enabled 0= composite video color-burst disabled
Bit 10 - DBLPF (double-playfield enable) 1 = dual playfields enabled o = single playfield enabled
Bit 11 - HOMOD (hold-and-modify enable) 1 = hold and modify enabled o = hold and modify disabled
Bits 14, 13, 12 - BPU2, BPUl, BPUO Number of bit-planes used.
000 = only a background color 001 = 1 bit-plane, PLANE 1 010 = 2 bit-planes, PLANES 1 and 2 011 = 3 bit-planes, PLANES 1 - 3 100 = 4 bit-planes, PLANES 1 - 4 101 = 5 bit-planes, PLANES 1 - 5 110 = 6 bit-planes, PLANES 1 - 6 111 not used
3-54
Bit 15 - HIRES (high-resolution enable) 1 = high-resolution mode o = low-resolution mode
![Page 91: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/91.jpg)
BPLCONI - Bit Plane Control
Bits 3-0 - PFIH(3-0) Playfield 1 delay
Bits 7-4 - PF2H(3-0) Playfield 2 delay
Bits 15-8 not used
BPLCON2 - Bit Plane Control
Bit 6 - PF2PRI
1 = Playfield 2 has priority
o = Playfield 1 has priority
Bits 0-5 Playfield sprite priority
Bits 7-15 not used
DDFSTR T - Data Fetch Start Beginning position for data fetch.
Bits 15-8 - not used
Bits 7-3 - pixel position H8-H4
Bits 2-0 - not used
DDFSTOP - Data Fetch Stop Ending position for data fetch.
Bits 15-8 - not used
Bits 7-3 - pixel position HS-H4
Bits 1-0 - not used
BPLxPTH - Bit Plane Pointer Bit plane pointer high word where x is the bit-plane number.
BPLxPTL - Bit Plane Pointer Bit plane pointer low word where x is the bit-plane number.
DIWSTRT - Display Window Start Starting vertical and horizon tal coord inates.
3-55
![Page 92: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/92.jpg)
Bits 15-8 - VSTART (V7-VO)
Bits 7-0 - HSTART (H7-HO)
DIWSTOP - Display Window Stop Ending vertical and horizontal coordinates.
Bits 15-8 - VSTOP (V7-VO)
Bits 7-0 - HSTOP (H7-HO)
BPLIMOD - Bit-Plane Modulo Odd-numbered bit-planes, Playfield 1.
BPL2MOD - Bit-Plane Modulo Even-numbered bit-planes, Playfield 2.
3.8. SUMMARY OF COLOR SELECTION
This section contains summaries of playfield color selection including color register contents, example colors, and the differences in color selection in high resolution and low resolution modes.
3.8.1. Color Register Contents
The table below shows the contents of each color register. All color registers are write-only.
Table 3-10: Color Register Contents
Bits 15 12 (Unused)
Bits 11 8 Red Bits 7 4 Green Bits 3 0 Blue
3.8.2. Some Sample Color Register Contents
The table below shows a variety of colors and the hexadecimal values to load into the color registers for these colors.
3-56
![Page 93: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/93.jpg)
Table 3-11: Some Register Values and Resulting Colors
VALUE COLOR
$FFF white $DOO brick red $FOO red $F80 red-orange $F90 orange $FBO golden orange $FDO cadmium yellow $FFO lemon yellow $BFO lime green $8EO light green $OFO green $2CO dark green $OBI forest green $OBB blue green $ODB aqua $lFB light aqua $6FE sky blue $6CE light blue $OOF blue $61F bright blue $06D dark blue $91F purple $CIF violet $FIF magenta $FAC pink $DB9 tan $C80 brown $A87 dark brown $CCC light grey $999 medium grey $000 black
3.S.3. Color Selection in Low Resolution Mode
The following table shows playfield color selection in low-resolution mode. If the bitcombinations from the playfielcls are as shown, then the color is taken from the color register number indicated.
3-57
![Page 94: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/94.jpg)
Table 3-12: Low Resolution Color Selection
SINGLE PLAYFIELD DUAL PLAYFIELD COLOR Normal Hold & Modify REGISTER Mode Mode NUMBER
Bit-,[!Janes 5)1./J,2,1 B£t-,[!./anes 1.,8. 2J Playfield 1
Bit-Planes 5Al
00000 0000 000 0* 00001 0001 001 1 00010 0010 010 2 00011 0011 011 3 00100 0100 100 4 00101 0101 101 5 00110 0100 110 6 00111 0111 111 7
Playfield 2 Bit-Planes 611z2
()1 nnn lnnn 000 ** 8 V.l.VVV .l.UUV
01001 1001 001 9 01010 1010 010 10 01011 1011 011 11 01100 1100 100 12 01101 1101 101 13 01110 1110 110 14 01111 1111 111 15 10000 I I 16 10001 I I 17 10010 I I 18 10011 I I 19 10100 NOT NOT 20 10101 USED USED 21 10110 IN IN 22 10111 THIS THIS 23 11000 MODE MODE 24 11001 I I 25 11010 I I 26 11011 I I 27 11100 I I 28 11101 I I 29 11110 I I 30 11111 I I 31
* Color Register 0 always defines the background color
** Selects "transparent" mode instead of selecting Register 8.
In hoid and modify mode, the coior register contents are changed as shown below. This
3-58
![Page 95: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/95.jpg)
mode is in effect only if Bit 10 of BPLCONO = 1.
Table 3-13: Color Selection in Hold and Modify Mode
HOLD AND MODIFY 6th and 5th Bit-Plane Special Mode
Bit-Plane 6 Bit-Plane 5 Result
o o 1 1
o 1 o 1
Normal Operation Hold green and red Hold green and blue Hold blue and red
(use Color Register itself) B = Bit-Plane 4-1 contents R = Bit-Plane 4-1 contents G = Bit-Plane 4-1 contents
3.8.4. Color Selection in High Resolution Mode
The following table shows playfield color selection in high-resolution mode. If the bitcombinations from the playfields are as shown, then the color is taken from the color register number indicated.
3-59
![Page 96: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/96.jpg)
Table 3-14: High Resolution Color Selection
SINGLE DUAL COLOR PLAYFIELD PLAYFIELD REGISTER
Bit-r.ianes 1:./1,2,1 NUMBER Playfield 1
Bit-rJanes Bz1
0000 00 ** 0* 0001 01 1 0010 10 2 0011 11 3
0100 I 4 0101 NOT USED 5 0110 IN THIS MODE 6 0111 I 7
Playfield 2 Bit-rJanes 1:.,2
1000 00 ** 8 1001 01 9 1010 10 10 1011 11 11
1100 I 12 1101 NOT USED 13 1110 IN THIS MODE 14 1111 I 15
* Color Register 0 always defines the background color.
** Selects" transparen t" mode.
3-60
![Page 97: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/97.jpg)
Chapter 4
SPRITE HARDWARE
4.1. INTRODUCTION
This chapter is about sprites, hardware objects that are created and moved independently of the playfield display and independently of each other. Together with playfields, sprites form the graphics display of the Amiga. You can create more complex animation effects by using the blitter described in the chapter called "Blitter Hardware". Sprites are easily movable graphics objects produced on-screen by 8 special-purpose sprite DMA channels. Basic sprites are 16 pixels wide and any number of lines high. You can choose from 3 colors for a sprite's pixels and a pixel may also be transparent, showing any object behind the sprite. For larger or more complex objects, or more color choices, you can combine sprites.
Sprite DMA channels can be reused several times within the same display field. Thus, you are not limited to having only 8 sprites on the screen at the same time.
About this Chapter
This chapter shows how to:
o Define the size, shape, color and screen position of sprites.
o Display and move sprites
o Combine sprites for more complex images, additional width, or additional colors
o Reuse a sprite DMA channel multiple times within a display field to create more than 8 sprites on the screen at one time.
4-1
![Page 98: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/98.jpg)
4.2. FORMING A SPRITE
To form a sprite, you first need to define it and then create a formal data structure III
memory . You define a sprite by specifying its characteristics:
o On-screen width of up to 16 pixels
o Unlimited height
o Any shape
o A combination of 3 colors, plus transparent
o Any position on the screen
4.2.1. Screen Position
A sprite's screen position is defined as a set of X,Y coordinates. Position (0,0), where X = ° and Y = 0, is the upper left-hand corner of the display . You define a sprite's location by specifying the coordinates of its upper left-hand pixel. Sprit.e position is ::llways df'finpd as though the display mode were low-resolution and non-interlace. The X,Y coordinate system and definition of a sprite's position are graphically represented in Figure 4-1. Notice that because of display overscan, the coordinates (0,0) (that is, X = 0, Y = 0) are not normally in a viewable region of the screen. For more information about overscan and the visible area of the screen, see the "Playfield Hardware" chapter.
4-2
![Page 99: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/99.jpg)
Visible Screen Area
(O,O)~r--_____ ......,..._
I
Figure 4-1: Defining Sprite On-screen Position
The amount of viewable area is also affected by the size of the playfield display window. See the "Playfield Hardware" chapter for more information about overscan and display windows.
Horizontal Position
A sprite's horizontal position (X value) can be at any pixel on the screen from 0 to 447. To be visible, however, any object must be within the boundaries of the playfield display window. In addition, the normally usable range of the video screen is from pixel 64 to pixel 383 (that is, 320 pixels of usable width). A larger area is actually scanned by the video beam but is not usually visible on the screen.
If you specify an X value for the sprite of less than 64 or an X value outside the display window, part or all of the sprite may not appear on the screen. This is sometimes desirable, and such a sprite is said to be "clipped".
To have a sprite appear, unclipped, in its correct on-screen horizontal position, add 64 to the X value. For example, to make the upper leftmost pixel of a sprite appear at a position 94 pixels from the left edge of the screen, you perform this calculation:
4-3
![Page 100: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/100.jpg)
Desired X position 94 32 off-screen lines +64
158
Thus, 158 becomes the X value which will be written into the data structure.
Note that the X position represents the location of the Ell first (leftmost) pixel in the full 16-bit-wide sprite. This is always the case even if the leftmost pixels are specified as transparent and do not appear on the screen. If the sprite shown in Figure 4-2 were located at an X value of 158, the actual image would begin on-screen 4 pixels later at 162. The first 4 pixels in this sprite are transparent and allow the the background to show through.
"::~:: "."
... � .. ----16 Pixels------l.~1
Figure 4-2: Position of Sprites
Vertical Position
You can select any position from line 0 to line 262 for the topmost edge of the sprite. The normal usable range of the video screen, however, is from line 44 through line 243. This allows the normal display height of 200 lines in non-interlace mode. If you specify a vertical
4-4
![Page 101: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/101.jpg)
position (Y value) of less than 44, the top edge of the sprite may not appear on screen.
To have a sprite appear in its correct on-screen vertical position, add 44 to the desired position. For example, to make the upper leftmost pixel appear 25 lines below the top edge of the screen, perform this calculation:
Desired Y position 25 44 above-screen lines +44
69
Thus, 69 is the Y-value you will write into the data structure.
Clipped Sprites
As noted above, sprites will be partially or totally clipped if they pass across or beyond the boundaries of the display window. The values of 64 (horizontal) and 44 (vertical) are "normal" for a centered display on a standard video monitor. If you choose other values to establish your display window, your sprites will be clipped accordingly.
Size of Sprites
Sprites are 16 pixels wide and can be almost any height you wish - as little as 1 line tall or taller than the screen. You would probably move a very tall sprite vertically to display a portion of it at a time.
Sprite size is based on a pixel that is 1/320th of a normal screen width and 1/200th of a normal screen height. This pixel size corresponds to the normal resolution and non-interlace modes of the normal full-size playfield. Sprites, however, are independent of playfield modes of display, so changing the resolution or interlace mode of the playfield has !lQ ~ on the size or resolution of a sprite.
4.2.2. Shape of Sprites
A sprite can have any shape that will fit within the 16-pixel width. You define a sprite's shape by specifying which pixels actually appear in each of the sprite's locations. For example, Figures 4-3 and 4-4 show a spaceship whose shape is marked by X's. The first figure shows only the spaceship as you might sketch it ou t on graph paper. The second figure
4-5
![Page 102: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/102.jpg)
shows the spaceship within the 16-pixel width. The O's around the spaceship mark the part of the sprite not covered by the spaceship and transparent when displayed.
xx xxxxxx
xxxxxxxxxx XXXXXXXXXX
XXXXXX xx
Figure 4-3: Shape of Spacesh ip
o 0 0 0 X X 0 0 0 0 0 0 0 0 0 0 OOXXXXXXOOOOOOOO XXXXXXXXXXOOOOOO XXXXXXXXXXOOOOOO OOOXXXXOOOOOOOOO
Figure 4-4: Sprite with Spaceship Shape Defined
In this example, the widest part of the shape is 10 pixels and the shape is shifted to the left of the sprite. Whenever the shape is narrower than the sprite, you can control which part of the sprite is used to define the shape. This particular shape could also start at any of the pixels from 2-7 instead of pixel!.
4-6
![Page 103: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/103.jpg)
4.2.3. Sprite Color
When sprites are used individually (that is, not "attached" as described under "Attached Sprites" later), each pixel can be one of 3 colors, or transparent. Colors are selected in much the same manner as playfield colors. Figure 4-5 shows how the color of each pixel in a sprite is determined. The O's and 1 's in the two data words that define each line of a sprite in the data structure form a binary number.
Transparent
o
High order word of sprite data line
Low order word of sprite data line
Forms a binary code, used as
the color choice from a group of color registers.
Figure 4-5: Sprite Color Definition
This binary number points to one of the 4 color registers assigned to that particular sprite D:tvlA channel. There are 32 color registers in the system, each containing a user-defined color. The 8 sprites use color registers 16 - 31. For purposes of color selection, the 8 sprites are organized into pairs and each pair uses 4 of the color registers as shown in the Figure 4-6. Note that the color value of the first register in each group of 4 registers is ignored by sprites. When the sprite bits select this register, "transparent" is used.
4-7
![Page 104: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/104.jpg)
Codes 01, 10, or 11 select one of three possi ble registers from the normal color register group, from which the actual color data is taken.
Sprite 0 or 1 ~
Sprite 2 or 3 ~
Sprite 4 or 5 ~
~~ 10 11
~~ 10 11
00 01 1n
L ~~ Sprite 6 or 7 ~ 00
01
10 11
Color Register Set
Unused
Unused
Unused
Unused
Figure 4-6: Color Register Assignments
16
~ ~YieldS ~ Transparent
J.--24
~-;/
31
If you require certain colors in a sprite, you will want to load the sprite's color registers with those colors. The "Playfield Hardware" chapter contains instructions on loading color registers.
The binary number 00 is special in this color scheme. A pixel whose value is 00 becomes transparent and shows the color of any other sprite or playfield that has lower video priority. An object with low priority appears "behind" an object with higher priority. Each sprite has a fixed video priority with respect to all the other sprites. You can vary the priority between sprites and playfields. (See Chapter 7, "System Control Hardware", for more information about sprite priority.)
4-8
![Page 105: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/105.jpg)
4.2.4. Designing a Sprite
To design a sprite, it is convenient to layout the sprite on paper first. You can show the desired colors as numbers from 0 to 3. For example, the spaceship shown above might look like this:
0000122332210000 0001223333221000 0012223333222100 0001223333221000 0000122332210000
The next step is to convert the numbers 0-3 into binary numbers, which will be used to build the color descriptor words of the sprite data structure. The section below shows how to do this.
4.2.5. Building the Data Structure
After defining the sprite, you need to build its data structure, which is a series of 16-bit words in a contiguous memory area. Some of the words contain position and control and information and some contain color descriptions. To create a sprite's data structure, you need to:
o Write the horizontal and vertical position of the sprite into the first control word.
o Write the vertical stopping position into the second control word.
o Translate the decimal color numbers 0 - 3 in your sprite grid picture into binary color numbers. Use the binary values to build color descriptor (data) words and write these words into the data structure.
o Write the control words that indicate the end of the sprite data structure.
The following shows a sprite data structure with the memory location and function of each word:
4-9
![Page 106: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/106.jpg)
Memory Location
N N+l N+2 N+3 N+4 N+5
I6-bit Word
Sprite Control Word 1 Sprite Control Word 2 Color descriptor low word Color descriptor high word Color descriptor low word Color descriptor high word
End-or-data words
Function
Vertical and horizon tal start position Vertical stop position Color bits for Line 1 Color bits for Line 1 Color bits for Line 2 Color bits for Line 2
Two words indicating the next usage of this sprite
All memory addresses for sprites are word addresses. You will need enough contiguous memory to provide room for:
2 words for the control information 2 words for each horizontal line in the sprite 2 end-or-data words
Because this data structure must be accessible by the special-purpose chips, you must ensure that this data is located within the lowest 512K bytes of the system memory.
Figure 4-7 shows how the data structure relates to the sprite.
4-10
![Page 107: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/107.jpg)
Increasing Addresses
.... 1-------16 bits-------l ••
VSTART, HSTART
VSTOP, Control Bits
Low Word of data, line 1
High Word of data, line 1
Data describing central lines of
this sprite.
Low Word of data, last line
High Word of data, last line
o 0 0 0 0 0 0 0 0 0 0 0 000 0
o 0 0 0 0 000 0 0 0 0 0 000
HSTART
Each group of words defines one vertical usage of a sprite. Conta ins starting location and physical appearance of this sprite image.
Pairs of words containing color information for pixel lines.
Last word pair contains all zeros if this sprite processor to be used only once vertically in the display frame.
EACH WORD PAIR
Low Word of pair
High Word of pair
DESCRIBES ONE VIDEO Part of a
Screen Display
VSTART /" LINE OF THE SPRITE
===::~=+=======~~ ~------------------~ VSTOP
Figure 4-7: Data Structure Layout
4-11
![Page 108: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/108.jpg)
Sprite Control Word 1 : SPRxPOS
This word contains the vertical (VSTART) and horizontal (HSTART) starting position for the sprite. This is where the topmost line of the sprite will be positioned.
Bits 15-8 contain the low 8 bits of VSTART Bits 7-0 contain the high 8 bits of HSTART
Sprite Control Word 2 : SPRxCTL
This word contains the vertical stopping position of the sprite on the screen. This word also contains some data having to do with sprite attachment, which is described later on.
Bits 15-8 Bit 7 Bits 6-3 Bit 2 Bit 1 Bit 0
SPRxCTL
the low 8 bits of VSTOP (used in attachment) unused (make zero) the VST ART high bit the VSTOP high bit the HSTART low bit
The value (VSTOP - VSTART + 1) defines how many lines high the sprite will be.
Sprite Color Descriptor Words
It takes two color descriptor words to describe each horizontal line of a sprite, the high order word and the lower order word. To calculate how many color descriptor words you need, multiply the height of the sprite in lines by 2. The bits in the high order color descriptor word contribute the leftmost digit of the binary color selector number for each pixel; the low order word contributes the rightmost digit.
4-12
![Page 109: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/109.jpg)
To form the color descriptor words, you first need to form a picture of the sprite, showing the color of each pixel as a number from 0 - 3. Each number represents one of the colors in the sprite's color registers. For example, here is the spaceship sprite again:
0000122332210000 0001223333221000 0012223333222100 0001223333221000 0000122332210000
Next, you translate each of the numbers in this picture into a binary number. The first line in binary is shown below. The binary numbers are represented vertically with the low digit in the top line and the high digit right below it. This is how the two color descriptor words for each sprite line are written in memory.
0000100110010000 0000011111100000
The first line above becomes the color descriptor high word for line 1 of the sprite. The second line becomes the color descriptor low word. In this fashion, you translate each line in the sprite into binary O's and l's.
Each of the binary numbers formed by the combination of the two data words for each line refers to a specific color register in that particular sprite channel's segment of the color table. Sprite channel 0, for example, takes its colors from registers 17 - 1 g. The binary numbers corresponding to the color registers for sprite DMA channel 0 are shown below:
Binary Number Color Register Number
00 01 10 11
transparen t 17 18 19
Recall that binary 00 always means transparent and never refers to a color.
End-or-data Words
When the vertical position of the beam counter is equal to the VSTOP value in the sprite control words, the next two words fetched from the sprite data structure are written into the sprite control registers instead of being sen t to the color registers. These two words are interpreted by the hardware iIi the same manner as the original words first loaded into the
4-13
![Page 110: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/110.jpg)
control registers. If the VSTART value contained in these words is lower than the current beam position, then this sprite will not be reused in this field. For consistency, the value 0 should be used for both words when ending the usage of a sprite. Sprite reuse is discussed later on.
4.3. DISPLAYING A SPRITE
After builuillg the uata :structure, whicll couLaiu:s the size aau color of the :sprite auu it:s initial position, you need to tell the system to display it. This section describes the display of sprites in "automatic" mode. In automatic mode, once the sprite DMA channel begins to retrieve and display the data, the display continues until the VSTOP position is reached. Manual mode is described later on in this chapter.
The steps in displaying the sprite are:
1. Decide which of the 8 sprite Dt-.lA channels to use.
2. Set the sprite pointers to tell the system where to find the sprite data.
3. Turn on sprite direct memory access if it is not already on.
4. For each subsequent display field, during the vertical blanking interval, rewrite the sprite pointers.
4.3.1. Selecting the Sprite DMA Channel and Setting the Pointers
In deciding which DMA channel to use, you should take into consideration the colors assigned to the sprite and the sprite's video priority.
The sprite D}'1A channel uses 2 pointers to read in sprite data and control words. During the vertical blanking interval before the first display of the sprite, you need to write the sprite's memory address into these pointers.
There are two pointers for each sprite, called SPRxPTH and SPRxPTL, where "x" is the number of the sprite DMA channel. SPRxPTH points to the high 3 bits of the memory
4-14
![Page 111: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/111.jpg)
address of the first word in the sprite and SPRxPTL points to the low 15 bits. As usual, you can write a long word into SPRxPTH.
These pointers are dynamic; they are incremented by the sprite DMA channel to point first to the control words, then to the data words, and finally to the end-of-data words. After reading in the sprite control information and storing it in other registers, they proceed to read in the color descriptor words. The color descriptor words are stored in sprite data registers, which are used by the sprite DMA channel to display the data on screen. For more information about how the sprite DMA channels handle the display, see the "Hardware Details" section below.
4.3.2. Resetting the Address Pointers
For one single display field, the system will automatically read the data structure and prod uce the sprite on-screen in the colors in the sprite's color registers. If you want the sprite to be displayed in subsequent display fields, you have to rewrite the contents of the sprite pointers during each vertical blanking interval. The pointers must be rewritten because during the display field, they are incremented to point to the data which is being fetched as the screen display progresses.
The rewrite becomes part of the vertical blanking routine that can be handled by instructions in the Copper lists.
4.4. MOVING A SPRITE
This section shows how to move a sprite generated in automatic mode. Moving a sprite is a simple matter of specifying a different position in the data structure. The data will be reread and the sprite redrawn automatically for each display field. Therefore, if you change the position data before the sprite is redrawn, it appears elsewhere and seems to be moving.
You must take care that you are not moving the sprite (that is, changing control word data) at the same time the system is using that data to find out where to display the object. As data is retrieved, the system might find the start position for one field and the stop position for the following field. This would cause the system to misinterpret the data, causing a "glitch" and messing up the screen. Therefore, you should only change the content of the control words during a time when the system is not trying to read them. Usually, the vertical blanking period is a safe time, so moving the sprites becomes part of the vertical blanking tasks and is handled by the Copper as shown in the example below.
As sprites move about on the screen, they can collide with each other or with either of the two play fields. You can use the hard ware to detect these collisions and exploit this capability for special effects. You can use collision detection to keep a moving object within specified on-screen boundaries. Collision is described in Chapter 7, "System Control Hardware".
4-15
![Page 112: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/112.jpg)
4.5. CREATING ADDITIONAL SPRITES
To use additional sprites, you create a data structure for each one and arrange the display as shown in the previous section, naming the pointers SPRIPTH and SPRIPTL for sprite D11A channel 1, SPR2PTH and SPR2PTL for sprite DMA channel 2, and so on.
Note that when you enable sprite DMA for one sprite, you enable DMA for all the sprites and place them all in automatic mode. Thus, you do not need to repeat this step when using additional sprite DMA channels. Once the sprite DMA channels are enabled, all 8 sprite pointers must be initialized to either a real sprite or a safe null sprite. An uninitialized sprite could cause spurious sprite video to appear.
Also, recall that each pair of sprites takes its color from different color registers, as shown in the table below:
Sprite Number
o and 1 2 and 3 4 and 5 6 and 7
Color Registers
17 - 19 21 - 23 25 - 27 29 - 31
When you have more than one sprite on the screen, you may need to take into consideration their relative video priority, that is, which sprite appears in front of or behind another. Each sprite has a fixed video priority with respect to all the others. The lowest numbered sprite has the highest priority and appears in front of all other sprites. The highest numbered sprite has the lowest priority. This is illustrated in Figure 4-8.
4-16
![Page 113: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/113.jpg)
7 6
5 f--4 f--
3 f-2 f--
1 I--0 ~
I--
Figure 4-8: Sprite Priority
4-17
![Page 114: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/114.jpg)
4.6. REUSING SPRITE DMA CHANNELS
Each of the 8 sprite DMA channels can produce more than 1 independently controllable image. There may be times when you want more than 8 objects. Or, you may have attached some of the sprites to produce more colors or larger objects or overlapped some to produce more complex images and are left with fewer than 8 objects. You can reuse each sprite DMA channel several times within the same display field, as shown in Figure 4-9.
r Each image of this sprite may be placed at any desired spot horizontal or vertical.
HOWEVER, r::():J :~ at least one video line
Part ~ must separate the bottom
of a """tr' of one usage of a sprite
Screen from the starting point of
Display 0 the next usage.
Figure 4-9: Typical Example of Sprite Re-use
In single-sprite usage, two all-zero words are placed at the end of the data structure to stop the DMA channel from retrieving any more data for that particular sprite during that display field. To reuse a DMA channel, you replace this pair of zero words with another complete sprite data structure, which describes the reuse of the DMA channel a position lower on the screen than the first use. You place the two all-zero words at the end of the data structure which contains the information for all usages of the DMA channel. For example, Figure 4-10 shows the data structure which describes the picture above.
The only restrictions on reuse of sprites during a single display field is that the bottom line of one usage of a sprite must be separated from the top line of the next usage by at least one horizontal scan line. This restriction is necessary because only two DMA cycles per
4-18
![Page 115: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/115.jpg)
Increasing RAM
Memory Addresses
SPRITE DISPLAY LIST -
-
~ Data describing the first vertical / usage of this sprite.
Data describing the second vertical usage of this sprite. Contents of vertical start word must be at least one video line below actual end of preceding usage.
V End-of-data words ending the usage of this sprite.
Figure 4-10: Typical Data Structure for Sprite Re-use
horizontal scan line are allotted to each of the 8 channels. The sprite channel needs the time during the blank line to fetch the con trol word describing the next usage of the sprite.
4-19
![Page 116: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/116.jpg)
4.7. OVERLAPPED SPRITES
For more complex or larger moving objects, you can overlap sprites. Overlapping simply means that the sprites have the same or relatively close screen positions. A relatively close screen position can result in an object that is wider than 16 pixels.
The built-in sprite video priority ensures that one sprite appears to be behind the the other when sprites are overlapped. The priority circuitry gives the lowest-numbered sprite the highest priority and the highest numbered sprite the lowest priority. Therefore, when designing displays with overlapped sprites, make sure the "foreground" sprite has a lower number than the "background" sprite. In Figure 4-11, for example, the cage should be generated by a lower-numbered sprite D~1A channel than the monkey.
4-20
![Page 117: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/117.jpg)
I ndividual sprites can be combined by simple overlap .
.... ___ ---;:o~Built in sprite "Priority" displays one sprite behind the other when overlapped.
Figure 4-11: Overlapping Sprites (not attached)
You can create a wider sprite display by placing two sprites next to each other. For instance, Figure 4-12 shows the spaceship sprite and how it can be made twice as large by using two sprites placed next to each other.
4-21
![Page 118: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/118.jpg)
(128.65)
I~I (128.65) (144.65)
Sprite 0 Sprite 1
Figure 4-12: Placing Sprites Next to Each Other
4-22
![Page 119: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/119.jpg)
4.8. ATTACHED SPRITES
You can create sprites that have 15 possible color choices (plus transparen t) instead of 3 (plus transparent), by "attaching" two sprites. To create attached sprites, you need to:
o Use 2 channels per sprite, creating two sprites of the same size and located at the same position.
o Set a bit called ATTACH in the second sprite control word.
The 15 colors are selected from the full range of color registers available to sprites - registers 17 through 31. The extra color choices are possible as each pixel con tains 4 bits instead of only 2 as in the normal, unattached sprite. Each sprite in the attached pair contributes 2 bits to the binary color selector number. For example, if you are using sprite DMA channels o and 1, the high and low order color descriptor words for line 1 in both data structures are combined into line 1 of the attached object.
Sprites can be attached in the combinations shown in the following table:
sprite 1 to sprite 0 sprite 3 to sprite 2 sprite 5 to sprite 4 sprite 7 to sprite 6
Any or all of these attachments can be active during the same display field. As an example, assume that you wish to have more colors in the spaceship sprite and you are using sprite DMA channels 0 and 1. There are 5 colors plus transparent in this sprite.
0000154444510000 0001564444651000 0015676446765100 0001564444651000 0000154444510000
The first line in this sprite requires the following 4 data words to form color selector numbers:
Pixel Number 15 14 13 12 11 10 g 8 7 6 5 4
Line 1: 0 0 0 0 0 0 0 0 0 0 0 0 Line 2: 0 0 0 0 0 1 1 1 1 1 1 0 Line 3: 0 0 0 0 0 0 0 0 0 0 0 0 Line 4: 0 0 0 0 1 1 0 0 0 0 1 1
the correct binary
3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
The binary numbers 0 through 15 select registers 17 through 31 as shown in the table below:
4-23
![Page 120: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/120.jpg)
Table 4-1: Color Registers in Attached Sprites
Decimal Binary Color Register Number Number Number
a 0000 15 * 1 0001 17 2 0010 18 3 0011 19 4 0100 20 5 0101 21 6 0110 22 7 0111 23 8 1000 24 9 1001 25
10 1010 26 11 1011 27 12 1100 28 13 1101 29 14 1110 30 15 1111 'H
U'~
* Unused, yields transparent pixel.
The highest numbered sprite (number 1, in this example), contributes the highest order bits (leftmost) in the binary number. The high order data word in each sprite contributes the leftmost digit. Therefore, the lines above are written to the sprite data structures like this:
Line 1 Line 2 Line 3 Line 4
Sprite 1 high order word for sprite line 1 Sprite 1 low order word for sprite line 1 Sprite a high order word for sprite line 1 Sprite a low order word for sprite line 1
Attachment is in effect only when the ATTACH bit, bit 7 in Sprite Control Word 2, is set to 1 in the data structure for the odd-numbered sprite. So, in this example, you set bit 7 in Sprite Control Word 2 in the data structure for Sprite l.
vVhen the sprites are moved, the Copper list must keep them both at exactly the same position. If they are not kept together on the screen, then their pixels will change color. Each sprite will revert to 3 colors plus transparent, but the colors may be different than if they were ordinary, unattached sprites. The color selection for the lower numbered sprite will be from color registers 17-19. The color selection for the higher numbered sprite will be from color registers 20, 24, and 28.
4-24
![Page 121: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/121.jpg)
4.9. MANUAL MODE
It is almost always best to load sprites by using the automatic DMA channels. Sometimes, however, it is useful to load these registers directly from one of the microprocessors. Sprites may be activated "manually" whenever they are not being used by a DMA channel. The same sprite that is showing a DMA-controlled icon near the top of the screen can also be reloaded manually to show a vertical colored bar near the bottom of the screen. Sprites can be activated manually even when the sprite DMA is turned off.
You display sprites manually by writing to the sprite data registers SPRxDATB and SPRxDATA, in that order. You write to SPRxDATA last because that address "arms" the sprite to be output at the next horizontal comparison. The data written will then be displayed on every line, at the horizontal position given in the "H" portion of the position registers SPRxPOS and SPRxCTL. If the data is unchanged, the result will be a vertical bar. If the data is reloaded very line, a complex sprite can be produced.
The sprite can be terminated ("disarmed") by writing to the SPRxCTL register. If you write to the SPRxPOS register, you can manually move the sprite horizontally at any time, even during normal sprite usage.
4.10. SPRITE HARDWARE DETAILS
Sprites are prod uced by the circuitry shown in Figure 4-13. This figure shows in block form how a pair of data words becomes a set of pixels displayed on the screen.
The circuitry elements for sprite display are explained below.
Sprite data registers The registers SPRxDATA and SPRxDATB hold the bit patterns that describe one horizontal line of a sprite for each of the 8 sprites. A line is 16 pixels wide and each line is defined by two words to provide selection of 3 colors and transparent.
Parallel-to-serial converters Each of the 16 bits of the sprite data bit pattern is individually sent to the color select circuitry at the time that the pixel associated with that bit is being displayed on-screen.
Immediately after the data is transferred from the sprite data registers, each parallel-toserial converter begins shifting the bits out of the converter, most significant bit (leftmost bit) first. The shift occurs once each low-resolution pixel time, and continues until all 16 bits have been transferred to the display circuitry. The shifting and data output does not begin again until the next time this converter is loaded from the data registers.
Because the video image is being produced by an electron beam being swept from left to right on the screen, the bit-image of the data corresponds exactly to the image that actually appears on the screen (most significant data on the left).
Sprite serial video data Sprite data goes to the priority circuit to establish the priority between sprites and
4-25
![Page 122: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/122.jpg)
playfields.
Sprite position register The registers, called SPRxPOS, contain the horizontal position value (X value) and vertical position value (Y value) for each of the 8 sprites.
Sprite control register These registers, called SPRxCTL, contain the stopping position for each of the 8 sprites and whether or not a sprite is attached.
Beam counter The beam counter tells the system the current location of the video beam that is producing the picture.
Comparator This device compares the value of the beam counter to the Y value in the position register SPRxPOS. If the beam has reached the position at which the leftmost upper pixel of the sprite is to appear, the comparator issues a load signal to the serial-to-parallel converter and the sprite display begins.
4-26
![Page 123: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/123.jpg)
Converter
Parallel to Serial
DATA BUS
Equal
SPRxPOS Load Decode
(68000 or DMA)
"ARM" Sprite
SPRxDATA Load Decode
(68000 or DMA)
r-------; Q S
Q R SPRxCTL Load Decode
(68000 or DMA)
Sprite Serial Video Data
-----.~~-;--------------~~
Output to Video Priority
Logic
"ARM" Sprite
SPRxDATA Load Decode
(68000 or DMA)
Figure 4-13: Sprite Control Circuitry
4-27
![Page 124: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/124.jpg)
Figure 4-13 shows the following:
o writing to the sprite control registers disables the horizontal comparator circuitry. This prevents the system from sending any output from the data registers to the serial converter or to the screen.
o writing to the sprite A data register enables the horizontal comparator. This enables output to the screen when the horizontal position of the video beam equals the horizontal value in the position register.
o If the comparator is enabled, the sprite data will be sent to the display, with the leftmost pixel of the sprite data placed at the position defined in the horizontal part of SPRxPOS.
o As long as the comparator remains enabled. the current contents of the sprite data register will be output at the selected horizontal position on a video line.
o The data in the sprite data registers does not change. It is either rewritten by the user, or modified under DMA control.
This is how the components described above produce the automatic DMA display. When the sprites are in DIvlA mode, the I8-bit sprite pointer register (composed of SPRxPTH and SPRxPTL) is used to read the first two words from the sprite data structure. These words contain the starting and stopping position of the sprite. Next, the pointers write these words into SPRxPOS and SPRxCTL. After this write, the value in the pointers points to the address of the first data word (low word of data for line 1 of the sprite.)
Writing into the SPRxCTL register disabled the sprite. Now the sprite DMA channel will wait until the vertical beam counter value is the same as the data in the VSTART (Y value) part of SPRxPOS. When these values match, the system enables the sprite data access.
The sprite DMA channel examines the contents of VSTOP (from SPRxCTL) (location of the line after the last line of the sprite) and VSTART (from SPRxPOS) to see how many lines of sprite data are to be fetched. Two words are fetched per line of sprite height and written into the sprite data registers. The first word is stored in SPRxDATA and the second word in SPRxDATB.
The fetch and store for each horizon tal scan line occurs during a horizon tal blanking interval, far to the left of the start of the screen display. This arms the sprite horizontal comparators and allows them to start the output of the sprite data to the screen when the horizontal beam count values matches the value stored in the HSTART (X value) part of SPRxPOS.
If the count of VSTOP - VSTART equals zero, no sprite output occurs. The next data word pair will be fetched, but it will not be stored into the sprite data registers. It will instead become the next pair of data words for SPRxPOS and SPRxCTL.
When a sprite is used only once within a single display field, the final pair of data words, which follow the sprite color descriptor words, are loaded automatically as the next con ten ts of the SPRxPOS and SPRxCTL registers. To stop the sprite after that first data set, the pair of words should be all zeros.
Thus, if you have formed a sprite pattern in memory, this same pattern will be produced as pixels line-by-line automatically under D11A control.
4-28
![Page 125: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/125.jpg)
4.11. SUMMARY OF SPRITE REGISTERS
There are 8 complete sets of registers used to describe the sprites. Each set consists of 5 registers. Only the registers for sprite 0 are described here. All of the others are the same except for the name of the register, which includes the appropriate number.
4.11.1. Pointers
Pointers are registers that are used by the system to point to the current data being used. During a screen display, the registers are incremented to point to the data being used as the screen display progresses. Therefore, pointer registers must be freshly written during the start of the vertical blanking period.
SPROPTH and SPROPTL This pair of registers contains the I8-bit word address of Sprite 0 DMA data. These registers contain the high 3 bits and low 15 bits of the address, respectively. Because these two register addresses are contiguous, 68000 programmers can write a long word into SPROPTH, as usual.
Pointer register names for the other sprites are:
SPRIPTH SPR2PTH SPR3PTH SPR4PTH SPR5PTH SPR6PTH SPR7PTH
4.11.2. Control Registers
SPROPOS Sprite 0 position register.
SPRIPTL SPR2PTL SPR3PTL SPR4PTL SPR5PTL SPR6PTL SPR7PTL
The word written into this register controls the position on the screen at which the upper left-hand corner of the sprite is to be placed. The most significant bit of the first data word will be placed in this position on the screen. Note that the sprites have a placement resolution on a full screen of 320 by 200. The sprite resolution is independent of the bit-plane resolution.
Bit positions:
4-29
![Page 126: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/126.jpg)
15-8 specify the vertical start position, bits V7 - VO.
7-0 specify the horizontal start position, bits H8 - Hl.
NOTE: This register is normally only written by the sprite DMA channel itself. See the details above regarding the organization of the sprite data. This register is usually updated directly by DMA.
SPROCTL This register is normally only used by the sprite DMA channel. It contains control information which is used to control the sprite data fetch process.
Bit positions:
Bits 15-8 specify vertical stop position for a sprite image, bits V7 - VO.
Bit 7 Attach bit.
Bits 6-3
Bit 2
Bit 1
Bit 0
This bit is only valid for odd-numbered sprites. It indicates that sprites 0, 1 (or 2,3 or 4,5 or 6,7) will, for color interpretation, be considered as paired, and as such be called .:l bits deep. The odd-numbered (higher number) iSprite cuntailliS bits with tht: higher binary significance.
During attach mode, the attached sprites are normally moved horizontally and vertically together under processor control.
This allows a greater selection of colors within the boundaries of the sprite itself. The sprites, although attached, remain capable of independent motion; however, and they will assume this larger color set only when their edges overlay one another.
Reserved for future use (make zero).
Bit V8 of vertical start.
Bit V8 of vertical stop.
Bit HO of horizon tal start.
Other sprite position and control registers:
4-30
SPRIPOS SPR2POS SPR3POS SPR4POS SPR5POS SPR6POS SPR7POS
SPR1CTL SPR2CTL SPR3CTL SPR4CTL SPR5CTL SPR6CTL SPR7CTL
![Page 127: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/127.jpg)
4.11.3. Data registers
The following registers, although defined in the address space of the main processor, are normally used only by the display processor. They are the holding registers for the data obtained by DMA cycles.
SPRODATA, SPRODATB SPRIDATA, SPRIDATB SPR2DATA, SPR2DATB SPR3DATA, SPR3DATB SPR4DATA, SPR4DATB SPR5DATA, SPR5DATB SPR6DATA, SPR6DATB SPR7DATA, SPR7DATB
data registers for Sprite 0 data registers for Sprite 1 data registers for Sprite 2 data registers for Sprite 3 data registers for Sprite 4 data registers for Sprite 5 data registers for Sprite 6 data registers for Sprite 7
4-31
![Page 128: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/128.jpg)
4.12. SUMMARY OF SPRITE COLOR REGISTERS
Sprite data words are used to select the color of the sprite pixels from the system color register set as indicated in the following tables.
If the bit-combinations from single sprites are the following, then the color will be taken from the registers shown.
SINGLE SPRITES COLOR Sprite Value REGISTER
o or 1 00 Not used * 01 17 10 18 11 19
2 or 3 00 Not used * 01 21 10 22 11 23
4 or 5 00 Not used * 01 25 10 26 11 27
6 or 7 00 Not used * 01 29 10 30 11 31
* Selects transparent mode.
If the bit-combinations from attached sprites are the following then the color will be taken from the register shown.
4-32
![Page 129: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/129.jpg)
ATTACHED SPRITES 0,1 or 2,3 or 4,5 or 6,7
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
COLOR REGISTER
Not used * 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
* Selects transparent mode.
4-33
![Page 130: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/130.jpg)
![Page 131: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/131.jpg)
Chapter 5
AUDIO HARDWARE
5.1. INTRODUCTION
This chapter shows you how to directly access the audio hardware to produce sounds. The major topics in this chapter are:
o A brief overview in this section of how a computer produces sound
o How to produce simple steady and changing sounds and more complex ones
o How to use the audio channels for special effects, wiring them for stereo sound if desired, or using one channel to modulate another
o How to produce quality sound within the system limitations
At the end of the chapter, you will find an appendix that gives you values to use for creating musical notes on the equal-tempered musical scale.
This chapter is not a tutorial on computer sound synthesis; to thoroughly describe how to create sound on a computer would require a far longer document. We can only point the way and show you how to use the Amiga's features. Computer sound production is fun, but complex, and usually requires a great deal of trial and error on the part of the user - you use the instructions to create some sound and play it back, readjust the parameters and play it again, and so on.
The following works are recommended for more information on creating music with computers.
o Introduction to Computer Music by Wayne A. Bateman (John Wiley and Sons, New York: 1980).
o Musical Applications of Microprocessors by Hal Chamberlain (Hayden: 1980).
Introducing Sound Generation
Sound travels through air to your ear drums as a repeated cycle of air pressure variations, or sound waves. Sounds can be represented as graphs that model how the air pressure varies
5-1
![Page 132: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/132.jpg)
over time. The attributes of a sound, as you hear it, is related to the shape of the graph. If the waveform is regular and repetitive, it will sound like a tone with steady pitch (highness or lowness), such as a single musical note. Each repetition of a waveform is called a cycle of the sound. If the waveform is irregular, the sound will have little or no pitch, like a loud clash or rushing water. How often the waveform repeats (its frequency), has an effect upon its pitch; sounds with higher frequencies are higher in pitch. Humans can hear sounds that have a frequency of between 20 and 20,000 cycles per second. The amplitude of the waveform (highest point on the graph), is related to the perceived loudness of the sound. Finally, the general shape of the waveform determines its tone quality, or timbre. Figure 5-1 shows a particular kind of waveform, called a sine wave, that represents one cycle of a simple tone.
w o ~
t I
AMPLITUDE
r 0 ~~---r--+--7---r--+-~r--+~ -l CL
:2 «
TIME (Msec)
Figure S-1: Sine Waveform
In electronic sound recording and output devices, the attributes of sounds are represented by the parameters of amplitude and frequency. Frequency is the number of cycles per second, and the most common unit of frequency is the Hertz (Hz), which is 1 cycle per second. Large values, or high frequencies, are measured in kilohertz (kHz) or megahertz (mHz).
Frequency is strongly related to the perceived pitch of a sound. When frequency increases, pitch increases and the sound gets higher. This relationship is exponential. An increase from 100 Hz to 200 Hz results in a large increase in pitch, but an increase from 1,000 Hz to 1,100 Hz is hardly noticeable. Musical pitch is represented in octaves. If a tone is one octave
5-2
![Page 133: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/133.jpg)
higher than another, then the higher tone has a frequency twice as high and the perceived pitch is twice as high.
The second parameter that defines a waveform is its amplitude. In an electronic circuit, amplitude relates to the voltage or current in the circuit. When a signal is going to a speaker, the amplitude is expressed in watts. Perceived sound intensity is measured in decibels (db). Human hearing has a range of about 120 db; 1 db is the faintest audible sound. Roughly every 10 db corresponds to a doubling of sound, and 1 db is the smallest change in amplitude that is noticeable in a moderately loud sound. Volume, which is the amplitude of the sound signal which is output, corresponds logarithmically to decibel level.
The frequency and amplitude parameters of a sine wave are completely independent. When sound is heard, however, there is interaction between loudness and pitch. Lower-frequency sounds decrease in loudness much faster than high-frequency sounds.
The third attribute of a sound, timbre, depends on the presence or absence of overtones, or harmonics. Any complex waveform is actually a mixture of sine waves of different amplitudes, frequencies, and phases (the starting point of the waveform on the time axis). These component sine waves are called harmonics. A square waveform, for example, has an infinite number of harmonics.
In summary, all steady sounds can be described by their frequency, overall amplitude, and relative harmonic amplitudes. The audible equivalents of these parameters are pitch, loudness, and timbre, respectively. Changing sound is a steady sound whose parameters change over time.
In electronic production of sound, an analog device, such as a tape recorder, records sound waveforms and their cycle frequencies as a continuously variable representation of air pressure. The tape recorder then plays back the sound by sending the waveforms to an amplifier where they are changed into analog voltage waveforms. The amplifier sends the voltage waveforms to a loudspeaker, which translates them into air pressure vibrations that the listener perceives as sound.
A computer cannot store analog waveform information. In computer production of sound, a waveform has to be represented as a finite string of numbers. To do this, the time axis of the graph of a single waveform is divided into equal segments, each of which represents a short enough time so the waveform does not change a great deal. Each of the resulting points is called a sample. These samples are stored in memory and you can play them back at a frequency you determine. The computer feeds the samples to a digital-to-analog converter (DAC), which changes them into an analog voltage waveform. To produce the sound, the analog waveforms are sent first to an amplifier, then to a loudspeaker.
Figure 5-2 shows an example of a sine wave, a sCJuare wave, and a triangle wave, along with a table of samples for each. Note that the illustrations are not to scale and there are fewer dots in the wave forms than there are samples in table. The amplitude axis values 127 and -128 represent the high and low limits on relative amplitude.
5-3
![Page 134: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/134.jpg)
127 Sine Waveform Triangle Waveform
127 Square Wave
127
-127 -127 -127
Samples taken over time -
TIME SINE SQUARE TRIANGLE
0 0 100 0 1 39 100 20 2 75 100 40 3 103 100 60 4 121 100 80 5 127 100 100 6 121 100 80 7 103 100 60 8 75 100 40 9 39 100 20
10 0 -100 a 11 -39 -100 -20 12 -75 -100 -40 13 -103 -100 -60 14 -121 -100 -80 15 -127 -100 -100 16 -121 -100 -80 17 -103 -100 -60 18 -75 -100 -40 19 -39 -100 -20
Figure 5-2: Digitized Amplitude Values
5-4
![Page 135: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/135.jpg)
The Amiga Sound Hardware
The Amiga has 4 hardware sound channels. You can independently program each of the channels to produce complex sound effects. You can also attach channels so that one channel modulates the sound of another, or combine two channels for stereo effects.
Each audio channel includes an 8-bit digital-to-analog converter driven by a direct memory access (DMA) channel. The audio DMA can retrieve two data samples during each horizontal video scan line. For simple, steady tones, the DMA can automatically playa waveform repeatedly, or you can program all kinds of complex sound effects.
There are two methods of basic sound production on the Amiga - automatic (DMA) sound generation and direct (non-DMA) sound generation. When you use automatic sound generation, the system retrieves data automatically by direct memory access.
.5-.5
![Page 136: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/136.jpg)
5.2. FORMING AND PLAYING A SOUND
This section shows you how to create a simple, steady sound and play it. Many basic concepts that apply to all sound generation in the Amiga are introduced in this section.
Following are the basic steps in producing a steady tone:
1. Decide which channel to use.
2. Define the waveform and create the sample table in memory.
3. Set registers telling the system where to find the data and the length of the data.
4. Select the volume at which the tone is to be played.
5. Select the sampling period, or output rate of the data.
6. Select an audio channel and start up the D11A.
5.2.1. Deciding Which Channel to Use
The Amiga has 4 audio channels. Channels 0 and 3 are connected to the left side stereo output jack. Channels 1 and 2 are connected to the right side output jack. Select a channel on the side from which the output is to appear.
5.2.2. Creating the Waveform Data
The waveform used as an example in this section is a simple sine wave, which produces a pure tone. To conserve memory, you normally define only one full cycle of a waveform in memory. For a steady, unchanging sound, the values at the waveform's beginning and ending points, and the trend or slope of the data at the beginning and end should be closely related. This ensures that a continuous repetition of the waveform sounds like a continuous stream of sound.
Sound data is organized as a set of 8-bit data items; each item is a sample from the waveform. Each data word retrieved for the audio channel consists of two samples. Sample values can range from -128 to + 127.
As an example, the data set shown below produces a close approximation to a sine wave. l\'ote that the data is stored in byte address order with the first digitized amplitude value at the lowest byte address, and second at the next byte address, and so on. Also, note that the first byte of data must start at a word-address boundary. This is because the audio D"tvlA retrieves one word (16 bits) at a time, and uses the sample it reads as two bytes of data.
To use audio channel 0, write the address of "audiodata" into AUDOLC, where the audio data is organized as shown below. For simplicity, "AUDxLC" in the table below stands for the combination of the two actual location registers (AUDxLCII and AUDxLCL). For the audio DMA channels to be able to retrieve the data, the data address to which AUDOLC points must be located in the low 512 Kbytes of RA1f.
5-6
![Page 137: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/137.jpg)
Table 5-1: Sample Audio Data Set for Channel 0
audiodata --- > AUDOLC 100 98 AUDOLC + 2 92 83 AUDOLC + 4 71 56 AUDOLC + 6 38 20 AUDOLC + 8 0 -20 AUDOLC + 10 -38 -56 AUDOLC + 12 -71 -83 AUDOLC + 14 -92 -83 AUDOLC + 16 -100 -98 AUDOLC + 18 -92 -83 AUDOLC + 20 -71 -56 AUDOLC + 22 -38 -20 AUDOLC + 24 0 20 AUDOLC + 26 38 56 AUDOLC + 28 71 83 AUDOLC + 30 92 98
NOTES:
1. Audio data is located on a word-address boundary.
2. AUDOLC stands for AUDOLCL and AUDOLCH.
5.2.3. Telling the System About the Data
In order to retrieve the sound data for the audio channel, the system needs the following information:
o Where is the data located?
o How long (in words) is the data?
The location registers AUDxLCH and AUDxLCL contain the high 3 bits and low 15 bits respectively of the starting address of the audio data. Since these two register addresses are contiguous, writing a long word into AUDxLCH moves the audio data address into both locations. The "x" in the register names stands for the number of the audio channel where the output will occur. The channels are numbered 0, I, 2, and 3.
These registers are location registers, as distinguished from vointer registers. You only need to specify the contents of these registers once; no resetting is necessary when you wish the audio channel to keep on repeating the same waveform. Each time the system retrieves the last audio word from the data area, it uses the contents of these location registers to again find the start of the data. Assuming the first word of data starts at location "audiodata" and you are using channel 0, here is how to set the location registers:
5-7
![Page 138: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/138.jpg)
AUDOLC equ AUDOLCH whereOdata: lea audiodata, aO
move.! aO, AUDOLC
;make AUDOLC stand for AUDOLCL
;put address (32 bits) ;into location register.
The length of the data is the number of samples in your waveform divided by 2, or the number of words in the data set. Using the sample data set above, the length of the data is 16 words. You write this length into the audio data length register for this channel. The length register is called AUDxLEN, where "x" refers to the channel number. You set the length register AUDOLEN to 16 as shown below.
setaudOlength: move.w #16, AUDOLEN
5.2.4. Selecting the Volume
The volume you set here is the overall volume of all the sound coming from the audio channel. The relative loudness of sounds, which will concern you when you combine notes, is determined by the amphtude of the wave form. '1'here IS a 6-bit volume register for each audio channel. To control the volume of sound that will be output through the selected audio channel, you write the desired value into the register AUDxVOL, where "x" is replaced by the channel number. You can specify values from 64 to O. These volume values correspond to decibel levels. The appendix to this chapter contains a table showing the decibel value for each of the 65 volume levels. For a typical output at volume 64, with maximum data values of -128 to 127, the voltage output is between +.4 volts and -.4 volts. Some volume levels and the corresponding decibel values are shown below.
Volume Decibel Value
64 48 32 16
o -2.5 -6.0
-12.0
Table 5-2: Volume Values
(maximum volume)
(12 db down from the volume at maximum level)
For any volume setting from 64 to 0, you write the value into bits 5-0 of AUDOVOL. For example:
set audOvolume: move.w #48, AUDOVOL
The decibels are shown as negative values from a maximum of 0 because this is the way a recording device, such as a tape recorder, shows the recording level. Usually, the recorder
5-8
![Page 139: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/139.jpg)
has a dial showing 0 as the optimum recording level. Anything less than the optimum value is shown as a minus quantity.
5.2.5. Selecting the Data Output Rate
The pitch of the sound produced by the waveform depends upon its frequency. To tell the system what frequency to use, you need to specify the sampling period. The sampling period specifies the number of system clock ticks, or timing intervals that should elapse between each sample (byte of audio data) fed to the digital-to-analog converter in the audio channel. There is a period register for each audio channel. The contents of the period register is used as a count-down value; each time the register counts down to 0, another sample is retrieved from the waveform data set for output. In units, the period value represents clock ticks per sample. The minimum period value you should use is 124 ticks per sample and the maximum is 65535. For quality sound, there are other constraints on the sampling period (see the section called "Producing Quality Sound"). Note that a low period value corresponds to a higher frequency sound and a high period value corresponds to a lower frequency sound.
Limitations on Selection of Sampling Period
The sampling period is limited by the number of DMA cycles allocated to an audio channel. Each audio channel is allocated one Dt-.1A slot per horizon tal scan line of the screen display. An audio channel can retrieve two data samples during each horizontal scan line. The following calculation gives the maximum sampling rate in samples per seco:ad.
2 samples/line X 262.5 lines/frame X 59.94 frames/second = 31,469 samples/second
The figure of 31,469 is a theoretical maximum. In order to save buffers, the hardware is designed to handle 28,867 samples/second. The system timing interval is 279.365 nanoseconds, or .279365 microseconds. The maximum sampling rate of 28,867 samples per second is 34.642 microseconds per sample (1/28,867 = .000034642). The formula for calculating the sampling period is:
Period value = sample interval/clock interval
so the minimum period value is derived by dividing 34.642 microseconds per sample by the number of microseconds per interval:
5-9
![Page 140: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/140.jpg)
34.642 microseconds/sample Minimum period
0.279365 microseconds/interval
124 timing intervals/sample
Therefore, a value of at least 124 must be written into the period register to assure that the audio system DMA will be able to retrieve the next data sample. If the period value is below 124, by the time the cycle count has reached 0, the audio D1tlA will not have had enough time to retrieve the next data sample and the previous sample will be reused.
Specifying the Period Value
If you have selected the desired interval between data samples, then you can calculate the value to place in the period register by using the period formula:
Period value = desired interval/clock interval
As an example, let's say you wanted to produce a 1 kHz sine wave, using a table of 8 data samples (4 data words):
5-10
![Page 141: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/141.jpg)
127
-127
Figure 5-3: Example Sine Wave
Sampled Values: 0 gO
127 gO o
-90 -127
-gO
To output the series of 8 samples at 1 kHz (1000 cycles per second), each full cycle is output in 1/1000th of a second. Therefore, each individual value must be retrieved in 1/8th of that time. This translates to 1,000 microseconds per waveform or 125 microseconds per sample. To correctly produce this waveform, the period value should be:
5-11
![Page 142: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/142.jpg)
125 microseconds/sample Period value =
0.279365 microseconds/interval
447 timing intervals/sample
To set the period register, you write the period value into the register AUDxPER, where "x" is the number of the channel you are using. For example, the following instruction shows how to write a period value of 447 into the period register for channel O.
setaudOperiod: move.w #447, AUDOPER
To produce quality sound, you should observe some limitations on period to avoid aliasing distortion. See the section below called "Producing Quality Sound".
For the relationship between period and musical pitch, see the appendix to this chapter, which con tains a listing of the equal-tempered musical scale.
5.2.6. Playing the Waveform
After you have defined the audio data location, length, volume and period, you can play the waveform by starting the DMA for that audio channel. This starts the output of sound. Once started, the DMA continues until you specifically stop it. Thus, the waveform gets played over and over again, producing the steady tone. The system uses the value in the location registers each time it replays the waveform.
To start the channel, you write a 1 into the AUDxEN bit of the DMA control register named DMACON. To start the DMA, you write a 1 into the DMAEN bit of DMACON. All these bits and their meanings are shown in the table below:
5-1 '2
![Page 143: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/143.jpg)
Table 5-3: DMA and Audio Channel Enable Bits
DMACON REGISTER
BIT NAME FUNCTION
15 SETCLR When this bit is written as a 1, it sets any bit in DMACONW for which the corresponding bit position is also a 1, leaving all other bits alone.
9 DMAEN Only while this bit is a 1 can any direct memory access occur.
3 AUD3EN Audio channel 3 enable 2 AUD2EN Audio channel 2 enable 1 AUDIEN Audio channell enable 0 AUDOEN Audio channel 0 enable
For example, if you are using channel 0, then you write a 1 into bit 9 to enable DMA and a 1 into bit 0 to enable the audio channel, as shown below.
SET equ AUDOEN equ DMAEN equ
$08000 $01 $0200
beginchanO: move.w #(SET + AUDOEN + DMAEN), DMACONW
5.2.7. Stopping the Audio DMA
You can stop the channel by writing a 0 into the AUDxEN bit at any time. However, you cannot resume the output at the same point in the waveform by just writing a 1 in the bit again. Enabling an audio channel almost always starts the data output again from the top of the list of data pointed to by the location registers for that channel. If the channel is disabled for a very short time (less than two sampling periods) it may stay on and thus continue from where it left off.
Here is how to stop audio DMA:
CLEAR equ 0 stopaudchanO: move.w #(CLEAR + AUDOEN), DMACONW ;Stop only this
;channel's DMA
5-13
![Page 144: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/144.jpg)
5.2.8. Summary
These are the steps necessary to produce a steady tone:
1 Define the waveform
2 Create the data set containing the pairs of data samples (data words). Normally, a data set contains the definition of one waveform.
3 Set the location registers:
AUDxLCH (high 3 bits)
AUDxLCL (low 15 bits)
4 Set the length register, AUDxLEN, to the number of data words to be retrieved before starting at the address currently in AUDxLC.
5 Set the volume register, AUDxVOL
6 Set the period register, AUDxPER
7 Start the audio DMA by writing 1 into bit 9, DMAEN, along with a 1 in the SETCLR bit and a 1 in the position of the AUDxEN bit of the channel or channels you want to start.
5.2.9. Example
This example gathers together all of the program segments from the preceding sections.
In this example, a sine wave is played through ch8nnel O.
5-14
![Page 145: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/145.jpg)
AUDOLC SET CLEAR AUDOEN DMAEN
equ equ equ equ equ
AUDOLCH $08000 0 $01 $0200
ds.w 0 ;be sure word-aligned
sinedata: dc.b 0, gO, 127, gO, 0, -gO, -127, -gO
mam: lea sinedata, aO
whereOdata: move.l aO, AUDOLC
setaudOlength: move.w #4, AUDOLEN
setaudOvolume: move.w #64, AUDOVOL
setaudOperiod: move.w #447, AUDOPER
beginchanO:
;address oj data ito audio location register 0
;note that the 68000 can ; write this as though it is ;a BE-bit register at the low-bits ;location (common to all locations ;and pointer registers in the system).
;set length in words
;let's use maximum volume
move.w #(SET + DMAEN + AUDOEN), DMACONW
end
5-15
![Page 146: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/146.jpg)
5.3. PRODUCING COMPLEX SOUNDS
You can create sounds that are more complex, for example, different musical notes joined into a one-voice melody, different notes played at the same time, or modulated sounds.
5.3.1. Joining Tones
You join tones by writing the location and length registers, starting the audio output, and rewriting the registers in preparation for the next audio waveform that you wish to connect to the first one. This is made easy by the timing of the audio interrupts and the existence of backup registers. The location and length registers are read by the DMA channel before audio output begins. The DMA channel then stores the values in backup registers. Once the original registers have been read by the DMA channel, you can change their values without disturbing the operation you started with the original register con ten ts. Thus you can write the contents of these registers, start an audio output, and then rewrite the registers in preparation for the next waveform you want to connect to this one.
Interrupts occur immediately after the audio DMA channel has read the location and length registers and stored their values in the backup registers. Once the interrupt has occurred, you can rewrite the registers with the location and length for the next waveform segment. This combination of backup registers and interrupt timing lets you always be one step ahead of the audio DMA channel, allowing your sound output to be continuous and smooth.
If you do not rewrite the registers, the current waveform will be repeated. Each time the length coun ter reaches zero, both the location and length registers are reloaded with the same values to continue the audio output.
Example
This example details the system audio DMA action in a step- by-step fashion.
Suppose you wanted to join together a sine and a triangle waveform, end-to-end, for a special audio effect, alternating between them. Here is a sequence which shows the action of your program as well as its interaction with the audio DMA system. The example assumes that the period, volume, and length of the data set remains the same for both the sine wave and the triangle wave.
5-16
![Page 147: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/147.jpg)
Your Interrupt Response
If (wave = triangle) write AUDOLCL with address of sine wave data
Else if (wave = sine) write AUDOLCL with address of triangle wave data
Main Program
1. Set up volume, period, and length.
2. Write AUDOLCL with address of sine wave data.
3. Start DMA.
4. Continue with something else.
System Response
As soon as DMA starts,
a. Copy to "backup" length register from AUDOLEN
b. Copy to "backup" location register from AUDOLCL (will be used as a pointer showing current data word to fetch)
c. Create an interrupt for the 68000 saying that it has completed retrieving working copies of length and location registers.
d. Start retrieving audio data each allocated DMA time slot.
5.3.2. Playing Multiple Tones at the Same Time
You can play multiple tones either by using several channels independently or by summing the samples in several data sets, playing the summed data sets through a single channel.
5-17
![Page 148: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/148.jpg)
Since all 4 audio channels are independently programmable, each channel has its own data set and can be playing a different tone or musical note on each channel.
5.3.3. Modulating Sound
To provide more complex audio effects, you can use one audio channel to modulate another. This increases the range and type of effects that can be produced. You can modulate a channel's frequency or amplitude, or do both types of modulation on a channel at the same time.
Amplitude modulation affects the volume of the waveform. It is often used to produce vibrato or tremolo effects. Frequency modulation affects the period of the waveform. Although the basic waveform itself remains the same, the pitch is increased or decreased by frequency mod ulation.
The system uses one channel to modulate another when you attach two channels. The attach bits in the ADKCON register control how the data from an audio channel is interpreted (see the table below). Normally, each channel produces sound when it is enabled. If the "attach" bit for an audio channel is set, that channel ceases to produce sound and its data is used to modulate the sound of the next higher-numbered channel. When a channel is used as a modulator, the words in its data set are no longer treated as two individual bytes. Instead, they are are treated as "modulator" words. The data words from the modulator channel are written into the corresponding registers of the modulated channel each time the period register of the modulator channel times out.
To modulate only the amplitude of the audio output, you attach a channel as a volume modulator. You define the modulator channel's data set as a series of words, each containing volume information in the following format:
BITS FUNCTION
15 - 7 Not used
6 - 0 Volume information, V6 - VO
To modulate only the frequency, you attach a channel as a period modulator. You define the modulator channel's data set as a series of words, each containing period information in the following format:
BITS FUNCTI00J
15 - 0 Period information, P15 - PO
If you want to modulate both period and volume on the same channel, you need to attach the channel as both a period and volume modulator. For instance, if channel 0 is used to modulate both the period and frequency of channel 1, you set two attach bits - bit 0 to modulate the volume and bit 4 to modulate the period. When period and volume are both modulated, words ill the modulator channel's data set are defined alternately as volume and
5-18
![Page 149: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/149.jpg)
period information.
The sample set of data below shows the differences in interpretation of data when a channel is used directly for audio, when it is attached as volume modulator, when it is attached as a period modulator, and when it is attached as a modulator of both volume and period.
Table 5-4: Data Interpretation in Attach Mode
Interpretation of Data Words
Data Independent Modulating Modulating Modulating Words (not Modulating) Both Period and Volume Only Period Only Volume
Word 1 I data I data I I volume for other channel I I period I I volume I
Word 2 I data I data I I period for other channel I I period I I volume I
Word 3 I data I data I I volume for other channel I I period I I volume I
Word 4 I data I data I I period for other channel I I period I I volume I
The lengths of the data sets of the modulator and the modulated channels are completely independent.
Channels are attached by the system in a pre-determined order, as shown in the table below. To attach a channel as a modulator, you set its attach bit to 1. If you set either the volume or period attach bits for a channel, that channel's audio output will be disabled and it will be attached to the next higher channel as shown in the table above. Since an attached channel always modulates the next higher numbered channel, you cannot attach channel 3. Writing a 1 into one of its modulate bits only disables its audio output.
5-19
![Page 150: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/150.jpg)
Table 5-5: Channel Attachment for Modulation
ADKCON REGISTER
BIT NAME FUNCTIO~
7 ATPER3 Use audio channel 3 to modulate nothing (disables audio output of channel 3)
6 ATPER2 Use audio channel 2 to modulate period of channel 3
5 ATPERI Use audio channel I to modulate period of channel 2
4 ATPERO Use audio channel 0 to modulate period of channel I
3 ATVOL3 Use audio channel 3 to modulate nothing (disables audio output of channel 3)
2 ATVOL2 Use audio channel 2 to modulate volume of channel 3
1 ATVOLI Use audio channell to modulate volume of channel 2
0 ATVOLO Use audio channel 0 to modulate volume of channel I
5-20
![Page 151: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/151.jpg)
5.4. PRODUCING QUALITY SOUND
When trying to create quality sound, you need to consider the following factors:
o waveform transitions
o sampling rate
o efficiency
o noise reduction
o avoidance of aliasing distortion
o limitations of the low pass filter
5.4.1. Making Waveform Transitions
To avoid unpleasant sounds when you change from one waveform to another, you need to make the transitions smooth.
You can avoid "clicks" by making sure the waveforms start and end at approximately the same value. You can avoid "pops" by only starting a waveform at a zero-crossing point.
You can avoid "thumps" by arranging the average amplitude of each wave to about the same value. The average amplitude is the sum of the bytes in the waveform divided by the number of bytes in the waveform.
5.4.2. Sampling Rate
If you need high preCISIon in your frequency output, you may find that the frequency you wish to produce is somewhere between two available sampling rates, but not close enough for your requirements. In those cases, you may have to adjust the length of the audio data table in addition to altering the sampling rate.
For higher frequencies, you may also need to use audio data tables that contain more than one full cycle of the audio waveform to reprod uce the desired frequency more accurately, as illustrated in the figure below.
5-21
![Page 152: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/152.jpg)
128
-127
Samples taken over time -
Always requires an even number of samples-
Shows a case where a high frequency waveform may need more than one full cycle to accurately reproduce the periodic waveform.
Figure 5-4: Waveform with Multiple Cycles
5.4.3. Efficiency
There is a certain amount of overhead involved in the handling of audio DMA. If you are trying to produce a smooth continuous audio synthesis, you should try to avoid as much of the system control overhead as possible. Basically, the larger the audio buffer you provide to the system, the less often it will need to interrupt to reset the pointers to the top of the next buffer and, coincidentally, the lower the amount of system interaction will be required. If there is only one waveform buffer, the hardware automatically resets the pointers and there is no software overhead for resetting the poin ters.
The "Joining Tones" section demonstrated how you could join "ends" of tones together by responding to interrupts and changing the values of the location registers to splice tones together. If your system is heavily loaded, it is possible that the response to the interrupt migh t not happen in time to assure a smooth audio transition. Therefore, it is advisable to utilize the longest possible audio table where a smooth output is required. This takes advantage of the audio DMA capability as well as minimizing the number of interrupts to which the 68000 must respond.
5-22
![Page 153: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/153.jpg)
5.4.4. Noise Reduction
To reduce noise levels and produce an accurate sound, try to use the full range of -128 to 127 when you represent a waveform. This reduces how much noise (quantization error) will be added to the signal by using more bits of precision. Quantization noise is caused by the introduction of round-off error. If you are trying to reproduce a signal, such as a sine wave, you can only represent the amplitude of each sample with so many digits of accuracy. The difference between the real number and your approximation is round-off error, or noise.
By doubling the amplitude, you have half as much noise because the size of the steps of the wave form stays the same and is therefore a smaller fraction of the amplitude. In other words, if you try to represent a waveform using, for example, a range of only +3 to -3, the size of the error in the output would be considerably larger than if you use a range of +127 to -128 to represent the same signal. Proportionally, the digital value used to represent the waveform amplitude will have a lower error. As you increase the number of possible sample levels, you decrease the relative size of each step and, therefore, decrease the size of the error.
To produce quiet sounds, continue to define the waveform using the full range, but adjust the volume. This maintains the same level of accuracy (signal-to-noise ratio) for quiet sounds as for loud sounds.
5.4.5. Aliasing Distortion
When you use sampling to produce a waveform, there is a side effect caused when the sampling rate "beats" or combines with the frequency you wish to produce. This produces two additional frequencies, one at the sampling rate plus the desired frequency and the other at the sampling rate minus the desired frequency. This is called aliasing distortion.
Aliasing distortion is eliminated when the sampling rate exceeds the output frequency by at least 7 kHz. This puts the beat frequency outside the range of the low pass filter, cutting off the undesirable frequencies. Figure 5-5 shows a frequency domain plot of the anti-aliasing low pass filter used in the system.
5-23
![Page 154: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/154.jpg)
Odb 1---.......
-30db I I T I I I 5kHz 10kHz 15kHz 20kHz 25kHz 30kHz
Filter passes all frequencies below about 5kHz.
Figure 5-5: Frequency Domain Plot of Low-Pass Filter
Figure 5-6 shows that is is permissible to use a 12 kHz sampling rate to produce a 4 kHz waveform. Both of the beat frequencies are outside the range of the filter, as shown in these calculations:
5-24
12 + 4 = 16 kHz 12 - 4 = 8 kHz
![Page 155: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/155.jpg)
Odb Filter Response
12kHz Sampling Frequency
I\D;ff Sum
4kHz -30db /1 I I I I I
5kHz 10kHz 15kHz 20kHz 25kHz 30kHz
Desired Output Frequency
Figure 5-6: Noise-Free Output (No Aliasing Distortion)
You can see in Figure 5-7 that is unacceptable to use a 10 kHz sampling rate to produce a 4 kHz waveform. One of the beat frequencies (10 - 4) is within the range of the filter, allowing some of that undesirable frequency to show up in the audio output.
5-25
![Page 156: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/156.jpg)
Filter Response Odb 1--_",""
~iff 10kHz Sampling Frequency
Sum
4kHz \
L' 5kHz 10kHz 15kHz
Desired Output Frequency
I , 20kHz
-30db I 25kHz
Figure 5-7: Some Aliasing Distortion
,
30kHz
All of this gives rise to the following equation, showing that the sampling frequency must exceed the output frequency by at least 7 kHz, so that the difference beat frequency will be above the cutoff range of the anti-aliasing filter:
Minimum sampling rate = Highest Frequency Component + 7 kHz
The frequency component of the equation is stated as "Highest Frequency Component" because you may be producing a complex waveform with multiple frequency elements, rather than a pure sine wave.
5.4.6. Low Pass Filter
The system includes a low pa.ss filter that eliminates aliasing distortion as described above. This filter becomes active around 4 kIIz and gradually begins to attenuate (cut off) the signal. Generally, you cannot clearly hear frequencies higher than 7 kHz. Therefore, you get the most complete frequency response in the frequency range of 0 - 7 kHz. If you are making frequencies from 0 to 7kHz, you should select a sampling rate no less than 14 kHz, which corresponds to a sampling period in the range 124 to 2,56.
At a sampling period around 320, you begin to lose the higher frequency values in the 0 to 7 kHz range, as shown in the foiiowing table.
5-26
![Page 157: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/157.jpg)
SAlvlPLING SAMPLING MAXIMUM OUTPUT PERIOD RATE (kHz) FREQUENCY (kHz)
Maximum sampling rate 124 29 7
Minimum sampling rate 256 14 7 for 7 kHz output
Sampling rate too low 320 11 4 for 7 kHz output
5-27
![Page 158: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/158.jpg)
5.5. USING DIRECT (NON-DMA) AUDIO OUTPUT
It is possible to create sound by writing the audio data one word at a time to the audio output addresses, instead of setting up a list of audio data in memory. This method of controlling the output is more processor intensive and is therefore not recommended.
To use direct audio output, you do not enable the DMA for the audio channel you wish to use. This changes the timing of the interrupts. The normal interrupt occurs after a data address has been read. In direct audio output, the interrupt occurs after one data word has been output.
Unlike the DMA-controlled automatic data output, if you do not write a new set of data to the output addresses before two sampling intervals have elapsed, the audio output will cease changing. The last value remains as an output of the digital-to-analog converter.
You set the volume and period registers as usual.
5-28
![Page 159: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/159.jpg)
5.6. THE EQUAL-TEMPERED MUSICAL SCALE
This section gives a close approximation of the equal tempered scale. The "Period" column gives the period count you enter into the period register.
See the explanatory notes following this t,able for determining AUDxLEN value.
Table 5-6: The Equal-Tempered Scale
PERIOD NOTE IDEAL ACTUAL FREQUENCY FREQUENCY
(with AUDxLEN=8) (with AUDxLEN=8)
508 A 440.0 440.4 480 A# 466.2 466.1 453 B 493.9 493.9 428 C 523.3 522.7 404 C# 554.4 553.8 381 D 587.3 587.2 360 D# 622.3 621.4 339 E 659.3 659.9 320 F 698.5 699.1 302 F# 740.0 740.8 285 G 784.0 785.0 269 G# 830.6 831.7
254 A 880.0 880.8 240 A# 932.3 932.2 226 B 987.8 989.9 214 C 1046.5 1045.4 202 C# 1108.7 1107.5 190 D 1174.7 1177.5 180 D# 1244.5 1242.9 170 E 1318.5 1316.0 160 F 1396.9 1398.3 151 F# 1480.0 1481.6 143 G 1568.0 1564.5 135 G# 1661.2 1657.2
NOTES:
1. In this scale, the frequency for the note A is 440.0 Hz and A# is the twelfth root of 2 (1.059463) times higher in frequency than A. The note B is the twelfth root of 2 higher than A#. This is followed by C, C#, D, D#, E, F, F#, G, G# and goes back to A at 880.0 Hz, an octave higher, and so on. Use this scale for waveforms where the fundamental is 2 to the n'th bytes long and where n is an integer. For example, for A at 440.0 Hz with a period of 508, the sample table contains 16 samples per cycle:
5-29
![Page 160: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/160.jpg)
3579545 clocks/second 16 samples/cycle
508 clocks/sample X 440 cycles/second
2 4
n = 4
It follows that for A at 440.0 Hz with a period of 254, the sample table has to contain 32 samples per cycle (AUDxLEN = 16).
2. The general rule is that doubling the sampling frequency (halving the sampling period) changes the octave of the note being played. Thus, if you playa C at a sampling period of 256, then playing the same note with a sampling period of 128 gives a C an octave higher.
3. Before using the lower octaves in this table, be sure to read the section called "Aliasing Distortion)) .
5-30
![Page 161: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/161.jpg)
5.7. DECIBEL VALUES FOR VOLUME RANGES
The following table provides the corresponding decibel values for the volume ranges of the Amiga system.
Table 5-7: Decibel Values and Volume Ranges
Volume Decibel Value Volume Decibel Value
64 0.0 32 -6.0 63 -0.1 31 -6.3 62 -0.3 30 -6.6 61 -0.4 29 -6.9 60 -0.6 28 -7.2 59 -0.7 27 -7.5 58 -0.9 26 -7.8 57 -1.0 25 -8.2 56 -1.2 24 -8.5 55 -1.3 23 -8.9 54 -1.5 22 -9.3 53 -1.6 21 -9.7 52 -1.8 20 -10.1 51 -2.0 19 -10.5 50 -2.1 18 -11.0 49 -2.3 17 -11.5 48 -2.5 16 -12.0 47 -2.7 15 -12.6 46 -2.9 14 -13.2 45 -3.1 13 -13.8 44 -3.3 12 -14.5 43 -3.5 11 -15.3 42 -3.7 10 -16.1 41 -3.9 9 -17.0 40 -4.1 8 -18.1 39 -4.3 7 -19.2 38 -4.5 6 -20.6 37 -4.8 5 -22.1 36 -5.0 4 -24.1 35 -5.2 3 -26.6 34 -5.5 2 -30.1 33 -5.8 1 -36.1
0 minus infinity
5-3]
![Page 162: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/162.jpg)
![Page 163: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/163.jpg)
Chapter 6
BLITTER HARDWARE
6.1. INTRODUCTION
The blitter is a high-performance graphics engine that uses up to four DMA channels. The operations it performs after a setup of its registers are considerably faster than those performed by the 68000. The blitter can be used for data copying and line drawing. The initial sections of this chapter concentrate on the data-copying features of the blitter. The final section of the chapter concentrates on the line-drawing capabilities.
Here is a quick summary of blitter features and the operations they perform:
o DATA COPYING - The blitter can copy bit-plane image data anywhere.
o MULTIPLE SOURCES - Instead of simply retrieving data from a single source, the blitter can retrieve data from up to three sources as it prepares the result for a possible destination area.
o LOGIC OPERATIONS - The blitter can perform up to 256 logic operations on the 3 data sources as they are being copied.
o MULTIPLE MODULOS - The blitter is provided with a separate modulo for each of the sources and for the destination. This allows the blitter to move data to and from identical rectangular windows within different sizes of larger playfield images.
o ASCENDING AND DESCENDING ADDRESSING - The blitter can change addresses in an ascending or descending manner. It can either start at the bottom address of both the source and the destination areas and move the data while incrementing addresses or start at the top address of the source and destination and decrement addresses during the move.
o SHIFTING - The blitter can shift one or two of its data sources up to 15 bits before applying it to the logic operation, allowing movement of images in memory across word boundaries.
o MASKING - The blitter can mask the leftmost and rightmost data word from each horizontal line. Mask registers are provided for the first and the last words on every line of blitter data. This allows logic operations on bit-boundaries from both the left and the right edge of a rectangular region.
o ZERO DETECTION - The blitter can store the result of the logic operations back into memory or simply sense whether there were any I-bits present as a result of the logic operation. This feature can be used for hardware-assisted software collision detection.
o AREA-FILLING - The olitter can perform a hardware-assisted area fill between predrawn lines.
6-1
![Page 164: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/164.jpg)
o LINE-DRAWING - The blitter can draw ordinary lines at any angle and can also apply a pattern to the lines it draws. It can also draw special lines with one pixel dot per horizontal line (a special mode needed during the blitter fill operation).
About this Chapter
This chapter introduces each available feature of the blitter individually. Then each section builds on the information presented in the preceding section to provide examples of the functions of the features. At the end of the chapter there is information about an alternate method of minterm selection, using Venn diagrams.
6.2. DATA COPYING
The primary purpose of the bhtter is to copy (transfer) data in large blocks from one memory location to another. This type of machine has been referred to, therefore, as a "blitter" (for block image transferrer). Because this machine has many more features than just transfer, it is also referred to as the "Bimer" (for bitmap image manipulator).
Images in memory are stored in a linear fashion, with each word of data on a line being located at an address that is one greater than the word on its left. This is illustrated below. Note that each line is a "plus one" continuation of the previous line.
+--------- ---------___________ u __ +
I 20 I 21 22 I 23 24 I 25 I 26 I +--------- --------- --------------+ I 27 I 28 29 I 30 31 I 32 I 33 I +--------- --------- --------------+ I 34 I 35 36 I 37 38 I 39 I 40 I +--------- --------- --------------+ I 41 I 42 43 I 44 45 I 46 I 47 I +--------- --------- --------------+ I 48 I 49 50 I 51 52 I 53 I 54 I +--------- --------- --------------+ I 55 I 56 57 I 58 59 I 60 I 61 I +--------- --------- --------------+
Figure 6-1: How Images are Stored in Memory
6-2
![Page 165: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/165.jpg)
This map represents a single bit-plane (one bit of color) of an image at word addresses 20 through 61. Each of these addresses accesses one word (16 pixels) of a single bit-plane. If this image required 16 colors, four bit-planes like this would be required in memory; and four copy (move) operations would be required to completely move the image.
The blitter is very efficient at copying such blocks because it only needs to be told the starting address (20), the destination address, and the size of the block (h = 6, w = 7). It will then automatically move the data, one word at a time, whenever the data bus is available. When the transfer is complete, it will signal the processor with a flag and an interrupt.
Note that this copy (move) operation is operating on memory and may, or may not, be changing the memory presently being used for display.
6.3. MULTIPLE SOURCES
The blitter uses up to four DMA channels. Three DMA channels are dedicated to retrieving data from memory that the blitter uses. These are designated as source A, source B, and source O. The one destination DMA channel is designated as destination D. As is shown in the following sections, it is not always necessary to use all the sources nor is it always appropriate to use the destination DMA channel.
Each channel may be independently enabled by bits 11, 10, g, and 8 of BLTOONO. These are called USEA, USEB, USEO, and USED. All three sources (if enabled) are fetched from memory in a pipelined fashion and held in registers for logic combination before being sent to the destination.
6.4. LOGIC OPERATIONS
Being able to logically combine data bits from separate image sources during a data move allows the blitter to be very efficient in performing graphics drawing and animation features. For example, you could design a rectangular object to combine on-screen with a pre-existing graphic image (perhaps a car that you want to move in front of some buildings).
Producing this effect requires predrawn images of both the car and the buildings. To animate the car (that is, to move it in front of the buildings), first save the background image where the car will be placed. Then copy the car in its first location. Then restore the old background image and save a new section of the background from the second location. Again, copy the car, this time to the second location. A continuous sequence of save, draw, restore creates the desired effect.
Assume source A is the car image outline (mask), source B is one of the car image's bit planes, and source 0 is building data or background. The following operation saves the background where the car is going to be placed (destination on the left, sources on the right):
T=AO
This equation states that the background (0) should be saved (copied) to a temporary destination (T) wherever the car outline mask (A) "and" the background (0) exist together.
6-3
![Page 166: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/166.jpg)
Now the car is placed in the background with the following operation:
C=AB + AC
This equation states that the destination is the same as the background source (C), and background (C) should be replaced with car data (B) wherever the car outline mask (A) is true, but (or) should stay background (C) wherever the mask is not true (A). Now the background must be restored (to prepare for car placement in a different location) using the following operation:
C=AT
This equation states that the background (C) should be replaced with the saved background (T) wherever the car outline mask exists (A "and" T).
By shifting both the car data (B) and the car outline mask (A) to a new location, and repeating the above 3 steps over and over, the car will appear to move across the background (the buildings).
6.4.1. Blitter Logic Operations - Combining Minterms
The blitter performs various logic operations like the one shown in the last section by combining minterms. A min term is one of eight possible logical combinations of data bits from three differen t data sources.
For example, the following equation uses 2 min terms, ABC and ABC:
D=Am+ABJ
This means that the logic value of D is a 1 if either ABC = 1 or ABC = 1.
Another way of reading this equation is that D is true if and only if both A and B are true. This is because the equation could be grouped as:
D=AB (C+C
However, since the term (C + 'C) is always true, this equation reduces to D = AB. Therefore, selecting the two min terms ABC and ABC will give the logic operation D = AB. These two min terms are selected with bits 7 and 6 of BL TCONO.
The minterms that can be selected by BLTCONO control bits are as follows:
6-4
![Page 167: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/167.jpg)
MINllHvB:
ENillLE BITS (BL1UNO LF7-LFO): 7 6 5 4 3 2 1 o
Since there are eight min terms, there are 256 possible equations that can be selected.
6.4.2. Table of Commonly Used Equations
For your convenience, the following table contains a set of commonly used equations. The last one in the table (D = AB + AC) is often referred to as the "cookie-cut" minterm selector.
6-5
![Page 168: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/168.jpg)
SELECIED BL1UNO SELEDlID BLTCXNO EQ.1ATICN LF ernE EXJJATICN LF a:DE
D=A FO D= AB co - -
D=A OF D= AB 30 -
D=B CD D= AB OC
-D=B 33 D= AB 03
D=C M D= 00 88
- -D=C 55 D= 00 44
-D=AC AO D= 00 22
-D=AC 50 D= AC 11
- -D=AC OA D= A+B F3
- -D=AC 05 D= A+B 3F
-D=A+B FC D= A+C F5
- - -D=A+B CF D= A+C 5F
-D=A+C FA D= B+C 00
- - -D=A+C AF D= B+C 77
-D=B+C EE D= AB +AC CA
-D=B+C BB
Table 6-1: Table of Common Minterm Values
6.4.3. Equation to Minterm Conversion
An example of how to convert an equation to min term format in order to derive the select code is given below:
6-6
![Page 169: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/169.jpg)
D=AB+AC (Starting equation)
-D=AB (C+C) +AC B+B) (Mu It i ply i ng by 1)
-D=AOO + AOO + AOO + AOO (Final minterms)
This final form contains only terms that contain all of the input sources. These are the minterms you use. These minterms are selected with the min term enable bits LF7-LFO as shown below:
AOOAOOAOOAOOAOOAOOAOOAOO (Available minterms)
1 1 o o 1 o 1 o (BL1UNO LF7-0 code = 0\)
6.5. MULTIPLE MODULOS
The blitter uses modulos to allow manipulation of smaller images within larger images. A modulo is the difference between the width of the larger image and the smaller image being manipulated. There are four modulos in the blitter. This allows all three sources and the destination to each have a different size larger bit-plane image.
Figure 6-2 below shows a possible bit-plane image that is larger than the source window being used by the blitter. The numbers represent the addresses (in memory) of the data words containing the image.
+----------------------------------+ I 20 21 22 23 24 25 26 I<------Larger source I I bit plane image I 27 28 29 30 31 32 33 I I +--------------+ I I 34 35 I 36 37 38 I 39 40 I I I I<----------------Smaller source window I 41 42 I 43 44 45 I 46 47 I for bl i tter operat ions I I I I I 48 49 I 50 51 52 I 53 54 I I +- ----- ------- -+ I I 55 56 57 58 59 60 61 I +----------------------------------+
Figure 6-2: Bit-plane Image Larger than the Blitter Source Window
6-7
![Page 170: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/170.jpg)
Note that in order to operate on the smaller window only, the address sequence must be as follows:
35, 37, 38" 43, 44, 45" 50, 51, 52
This requires a normal increment (+1) each time, and at the end of each window line the addition of a jump value of 4, to bring the address pointer to the start of the next window line. This jump value is called the modulo and is equal to the difference between the width of the large image and the width of the smaller window.
The blitter has a separate modulo register for each of the 3 possible source images, and for the destination image (4 in all). This allows the larger bit map image of each source and the destination to be a different size, even though the smaller window for each is identical.
Note that while the hardware deals in words for pointers and modulos, the values loaded into these hardware registers from the 68000 are treated as byte counts. For example, a jump value of 4 for a modulo would actually be an 8 when written from the 58000.
6.6. ASCENDING AND DESCENDING ADDRESSING
It is important to be able to control the direction of the address increment or decrement when the source and destination areas overlap. By specifying ascending or descending, you can prevent the blitter from destroying source data during overlapping data moves.
If you wish to move data towards a higher address in memory with an overlap between source and destination areas, you should use the descending (address decrement) mode for the data move. If you wish to move data towards a lower address in memory with an overlap between the source and destination areas, you should use the ascending (address increment) mode for the data move. The descending mode is selected with Bit 1 to BLTCONl.
6.7. SHIFTING
The Blitter contains a circuit known as a barrel shifter that can be used with both the A data source, and the B data source. This shifter allows movement of images on pixel boundaries, even though the pixels are addressed 16 at a time by each word address of the bit plane image.
As described previously under "Logic Operations", the movement of a car image (B) across a background (C) requires both the car image (B) and the car outline mask (A) to be shifted to a new position each time the background is saved (T = AC), the car placed (C = AB + AD), and the background restored (C = AT).
There are 2 shift controls. Bits 15 through 12 of BLTCONO select the shift value for source A. Bits 15 through 12 of BLTCONI select the shift value for source B. Both values are normally set the same.
5-8
![Page 171: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/171.jpg)
6.S. MASKING
If an object is not an even multiple of 16 bits in width, the blitter can mask off either the left or the right edge in order to work with only the actual bit-boundary rectangle enclosing the object. First and last word masking is particularly useful when you need to store the images of a text font in a packed edge-to-edge organization.
For example, assume a packed font that contains both an H and an I as shown below:
~---------------+ \1111 11111111 \ 11 11 11 I \ 11 11 11 \ \ 111111111 11 \ 1 111111111 11 \ \ 11 11 11 I \ 11 11 11 I \ 111 11111111 ~---------------+
To isolate the I-character, the first ll-bits along the left edge of the enclosing rectangle must be masked. The blitter includes this capability, called the first-word mask, and applies it to the leftmost word on each horizontal line. Only when there is a I-bit in the first-word mask, will that bit of source-A actually appear in the logic operation.
For example, if the first-word mask (BLTAFWM) is 0000000000001111, the data the blitter will see, using the input for source A shown above, is as follows:
+- - - - - - - - - - - - - - --+ 1 11111 \ 11 \ \ 11 1
\ 11 \ I 11 I I 11 1
1 11 1
1 11 I
\ 11111 +----------------+
Figure 6-3: I31itter Masking Example
In the same way that the blitter uses the first-word mask to mask the leftmost side of the
6-9
![Page 172: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/172.jpg)
source-A data, the blitter also includes a last-word mask (BLTALWM) to mask the rightmost word of the source-A data. So, it is possible to extract rectangular data from a source whose right and left edges are between word boundaries.
If the window is only one word wide (as illustrated above), the first and last word masks will overlap, and source-A bits will be passed only where both masks are true. This example assumed the last word mask was loaded with all ones (FFFF) as should all masks when they are not needed.
6.9. ZERO DETECTION
A Blitter zero flag is provided that can be tested to determine if the logic operation selected has resulted in a null (empty = all zeros) logic operation result. The zero flag (BZERO) in bit 13 of DMACONR will stay true if the result is all zeros.
This feature is usually used to assist collision detection by "anding" two images together to test for overlap. The operation D = AB is performed (D can actually be disabled), and if images A and B do not overlap, the zero flag will stay true.
B .10. .l\RE.A. FILLING
As well as copying data, the blitter can simultaneously perform a fill operation during the copy. The fill operation has only one restriction. The area to be filled must be defined by first drawing untextured lines that are only one bit wide. A special line draw mode is available for this (see the "Line Drawing" section).
6.10.1. Inclusive (Normal) Area Filling
The figure below shows a typical area fill. It demonstrates one of the bars from a bar chart.
BEFmE AFIER ------
001000100 001111100 001000100 001111100 001000100 001111100 001000100 001111100
Figure 6-4: Area-Fill Example - Bar Chart
6-10
![Page 173: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/173.jpg)
A blitter line-draw is first performed to provide the two vertical lines, each one bit wide. Then, to fill this area, you follow these steps:
NOTE: A fill operation can be performed during other blitter data copy operations; however, it is often done separately, as shown here.
1. Set the modulos equal to the width of the total image minus the width of the rectangle to be filled.
(BLTxMOD) (x = A,B,C,D)
2. Set the source and destination pointers to the same value. A case like this requires only one source and destination. This should point to the ~ (lower-right) word of the enclosing rectangle (see also item 3 below).
(BLTxPTH, BLTxPTL) (x = A,B,C,D)
3. Run the blitter in the descending direction. The fill operation operates correctly only in the descending mode (right to left).
(BLTCON1, Bit 1 = 1)
4. Use the control bit called "FC!" (for fill-carry-in) to define how the fill operation should be performed.
(BLTCON1, Bit 2 = 0) This defines the fill start state as a O.
5. Define the horizontal and vertical size of a rectangle of words that will enclose the lines around the area to be filled. This value must be written to the size control (BL TSrZE) register to start the fill.
The blitter uses the FCr (fill-carry-in) bit as the starting fill state, starting at the rightmost edge of each line. For each "1" bit in the source area, the blitter "flips" the fill state either filling or not filling the space with l's. This continues for each line until the left edge of the blit is reached. At that point, the filling stops. For another example, examine the figure below. Only the 1-bits are shown in the figure. The O-bits are blank and the figure is not drawn to scale.
6-11
![Page 174: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/174.jpg)
BEFrnE
+------------------+ +------------------+ I 1 1 1 1 I I 11111 11111 I I 1 1 1 1 I I 11111 11111 I I 1 1 1 1 I I 1111 1111 I I 1 1 1 1 I I 111 111 I I 11 11 I I 11 11 I I 1 1 1 1 I I 111 111 I I 1 1 1 1 I I 1111 1111 I 111 111 I 11111 11111 I +------------------+ +------------------+
Figure 6-5: Use of the FCI Bit - Before
With the fill-carry-in (FCI) bit as a 1 instead of a zero, the area outside of the lines is filled with 1 's and inside the lines is left with O's in between.
BEFrnE
+- -----------------+ 111 111 111 111 I 1 1 1 1 I I 1 1 1 1 I I 11 11 I I 1 1 1 1 I 111 111 111 111 +- -----------------+
+------------------+ 1111 111111 111 1111 1111111 111 11111 11111111 111 111111 111111111 111 11111111111111111111 111111 111111111 111 11111 11111111 111 1111 1111111 111 +------------------+
Figure 6-6: Use of the FCI Bit - After
6.10.2. Exclusive Area Filling
There are 2 fill enable bits within BL TCONI. They are called:
6-12
![Page 175: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/175.jpg)
IFE - Inclusive Fill Enable (used in the previous examples)
EFE - Exclusive Fill Enable (used in the example below)
Exclusive fill enable means:
Exclude (remove) the outline on the trailing ~ (left side) of the fill.
Since the blitter is running in descending mode during a fill, the trailing edge is formed from the leftmost of each pair of bits on a horizon tal line.
If you wish to produce very sharp, single point vertices, exclusive fill enable must be used. The illustration below shows how a single point vertex is produced using exclusive fill enable.
BEFrnE AFIER EXCLUS lVE FILL
+- - - ---- --- -- ----+ +- -- ---- -- - -- -- --+ I 1 1 1 11 I 1111 1111 I I 1 1 1 11 I 111 111 I I 1 1 1 11 I 11 11 I I 11 111 I 1 1 I I 1 1 1 11 I 11 11 I I 1 1 1 11 I 111 111 I I 1 1 1 11 I 1111 1111 I +----------------+ +----------------+
Figure 6-7: Single Point Vertex Example
6.11. LINE DRAWING
In addition to all the functions described above, the Blitter has a line drawing mode. The line draw mode is selected by placing a 1 in Bit 0 of BLTCON1, which causes redefinition of some of the other control bits in BLTCONO and BLTCONl. (See the description of the BLTCON registers in the appendix to this manual for the meanings of the other control bits.)
When in line draw mode, the blitter has the following features:
o Draws lines up to 1,024 pixels long (twice as big as the high resolution screen).
o Draws lines with regular or inverse video.
o Draws solid lines or textured lines.
6-13
![Page 176: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/176.jpg)
o Draws special lines with one dot on each scan line, for use with area fill.
Many of the blitter registers serve other purposes in line draw mode. These registers and their functions are itemized below for reference purposes. You should consult the appendix to this manual for more detailed descriptions of the use of these registers and control bits in the line draw mode.
REGISTER NAME
BLTCON1 BLTCON1 BLTCON1 BLTCONO
BLTCONO BLTADAT BLTBDAT I3LTSIZE I3LTSIZE BLTAMOD BLTBMOD BLTCMOD BLTDMOD BLTAPTL BLTCPT BLTDPT BLTCON1
BIT NUMBER
o 15,14,13,12
1 15,14,13,12
11,10, g, 8 All All 5-0
15-6 All All All All All All All
4,3,2
BIT NAME
LINE BSH SING START
USE
w h
STATE
1 o
0,1
1011 8000
o to FFFF 02
PURPOSE
Enables line draw mode Starts texture at Bit 0 Set for single bit wid th line Code for horizontal position of first pixel Required for line draw Index required for line draw Line texture register Required for line draw Line length up to 1024 2(2Y - 2X) * 2(2Y) * Wid th of total image Wid th of total image (2Y - X) * Starting address of line Starting address of line Octant select code (See the octant figure below.)
* Y and X are the height and width of the rectangle enclosing the line.
6-14
![Page 177: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/177.jpg)
Figure 6-8: Octants for Line Drawing
6-1.5
![Page 178: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/178.jpg)
6.12. VENN DIAGRAMS
The VENN diagram shows a set of three circles labeled A, Band C. In the diagram, the numbers 0 through 7 in various areas correspond to the minterm numbers shown above.
To select which min terms are necessary to produce a certain kind of equation result, you need only to examine the circles and their intersections, and copy down the numbers seen there.
Blitter
Figure 6-9: Blitter Minterm Venn Diagram
Examples of Venn Diagram Interpretation
1. If you wish to select a function D = A; that is, destination = A source only, you can select only the min terms that are totally enclosed by the A-circle in the figure above. This is the set of min terms 7, 6, 5, and 4. When written as a set of 1 's for the selected minterms and O's for those not selected, the value becames:
6-16
![Page 179: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/179.jpg)
7 6 5 4 3 2 1 0 - }VlINIERv1l'Uv13ERS
1 1 1 1 0 0 0 0 - SELfDlID Wl\TIRvt; F 0 equals hex FO.
2. If you wish to select a function that is a com bination of two sources, you then look for the min terms by both of the circles in their common area. For example, the combination AB (A AND B) is represented by the area common to both the A and B circles. This area encloses both min terms 7 and 6.
7 6 5 432 1 0
1 1 0 0 0 000 equals hex 0).
3. If you wish to use a function that is "not" one of the sources, such as A, you take all of the min terms not enclosed by the circle represen ted by A on the figure.
4. If you wish to combine minterms, you only need to "or" them together. For example, the equation AB + Be results in:
AB= 11001000 00= 10001000
Result of "or" 1 1 0 0 1 0 0 0 = hex C8.
6-17
![Page 180: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/180.jpg)
![Page 181: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/181.jpg)
Chapter 7
SYSTEM CONTROL HARDWARE
7.1. INTRODUCTION
This chapter covers the control hardware of the Amiga system. The following topics are discussed in this chapter:
o How playfield priorities may be specified relative to the sprites
o How collisions between objects are sensed
o How system direct memory access (DMA) is controlled
o How interrupts are controlled and sensed
7.2. VIDEO PRIORITIES
You can control the priorities of various objects on the screen to give the illusion of three dimensions. The section below shows how playfield priority may be changed relative to sprites.
7.2.1. Fixed Sprite Priorities
You cannot change the relative priorities of the sprites. They will always appear on the screen with the lower numbered sprites appearing in front of (having higher screen priority than) the higher numbered sprites. This is shown in the Figure 7-1 below. Each box represents the image of the sprite number shown in that box.
7-1
![Page 182: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/182.jpg)
7 6
5 -4 -3 -
2 f---' 1 ~
0 I--
I--
Figure 7-1: Inter-Sprite Fixed Priorities
7.2.2. How Sprites Are Grouped
Sprites are treated as four groups of two sprites each. These groupings are for playfield priority and collision purposes only. The groups of sprites are:
Sprite 0 and 1 Sprite 2 and 3 Sprite 4 and 5 Sprite 6 and 7
7.2.3. Understanding Video Priorities
The concept of video priorities is easy to understand if you imagine that four fingers of one of your hands represent the 4 pairs of sprites. Also imagine that two fingers of your other hand represent the two playfields.
7-2
![Page 183: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/183.jpg)
Just as you cannot change the sequence of the four fingers on the one hand, neither can you change the relative priority of the sprites. However, just as you can intertwine the two fingers of one hand in many different ways relative to the four fingers of the other hand, so can you position the playfields in front of or behind the sprites. This is illustrated in Figure 7-2.
In Front (Higher Priority)
Playfields r
Behind
Figure 7-2: Analogy for Video Priority
There are 5 possible positions which you can choose for each of the two "playfield fingers". For example, you can place playfield 1:
7-3
![Page 184: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/184.jpg)
on top of sprites 0 and 1,
between sprites 0 and 1 and sprites 2 and 3,
between sprites 2 and 3 and sprites 4 and 5,
between sprites 4 and 5 and sprites 5 and 7, or
beneath sprites 6 and 7
You have the same possibilities for playfield 2.
The numbers 0 through 4 shown for the priority positions above are the actual values you use to select the playfield priority positions. See "Setting the Priority Control Register" below.
You can also con trol the priority of playfield 2 relative to playfield 1. This gives you additional choices for the way you can design the screen priorities.
7.2.4. Setting the Priority Control Register
This register lets you define how objects will pass in front of each other or hide behind each other. Normally, playfield 1 appears in front of playfield 2. The PF2PRI bit reverses this relationship, making playfield 2 more important. You control the video priorities by using the bits in BPLCON2, Bit-Plane Control Register number 2, as follows.
BIT NU:\H3ER NAME FUNCTION
15-7 :Not used (keep at 0).
6 PF2PRI Playfield 2 Priority
5-3 PF2P2 - PF2PO Playfield 2 Placement with respect to the sprites
2-0 PFIP2 - PFIPO Playfield 1 Placement with respect to the sprites
For the bits named PFIP2-PFIPO, the binary values which you give them determine where play field 1 occurs in the priority chain as shown in the table below. This matches the description given in the previous section.
7-4
![Page 185: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/185.jpg)
VALUE PLACEj\1ENT (from most important to least important)
000 PF1 SP01 SP23 SP4.5 SP67
001 SP01 PF1 SP23 SP45 SP67
010 SPOl SP23 PF1 SP45 SP67
011 SP01 SP23 SP45 PF1 SP67
100 SP01 SP23 SP45 SP67 PF1
\Vhere:
PF1 stands for playfield 1,
SP01 stands for the group of sprites numbered 0 and 1,
SP23 are sprites 2 and 3 as a group,
SP45 are sprites 4 and 5 as a group, and
SP67 are sprites 6 and 7 as a group
Similarly, bits PF2P2-PF2PO let you position playfield 2 among the sprite priorities exactly the same way. However, it is the PF2PRI bit which determines which of the two playfields appears in front of the other on the screen. Here is a sample of the BPLCON2 register contents which would create something a little unusual:
BITS 15-7 PF2PRI PF2P2-0 PF1P2-0
VALUE O's 1 010 000
This will result in a sprite/play field priority placement of:
PF1 SP01 SP23 PF2 SP4.5 SP67
In other words, where objects pass across each other, playfield 1 is in front of Sprite 0 or 1; and sprites 0 through 3 are in front of playfield 2. However, playfield 2 is in front of playfield 1 in any area where they overlap and where playfield 2 is not blocked by sprites 0 through 3.
7-5
![Page 186: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/186.jpg)
7.3. COLLISION DETECTION
You can use the hardware to detect collisions between:
one sprite group and another sprite group
OR
any sprite group and either of the playfields
OR
the two playfields
or any combination of these items.
The first kind of collision is typically used in a game operation to determine if a missile has collided with a moving player.
The second kind of collision is typically used to keep a moving object within specified onscreen boundaries.
The third kind of collision detection allows you to define sections of playfield as individual objects, which you may move using the blitter. This is called playfield animation. If one playfield is defined as the backdrop or playing area and the other playfield is used to define objects (in addition to the sprites), you can sense collisions between the playfield-objects and the sprites or between the playfield-objects and the other playfield.
7.3.1. How Collisions Are Determined
The video output is formed when the input data from all of the bit-planes and the sprites is combined into a common data stream for the display. For each of the pixel positions on the screen, the color of the highest priority object is displayed. Collisions are detected when 2 or more objects attempt to overlap in the same pixel position. This will set a bit in the collision data register.
7.3.2. How to Interpret the Collision Data
The collision data register, CLXDAT, is read-only, and its contents are automatically cleared to 0 after it is read. Its bits are as shown in the table below.
7-6
![Page 187: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/187.jpg)
BIT NU~mER COLLISIONS REGISTERED
15 not used 14 Sprite 4 (or 5) to Sprite 6 (or 7) 13 Sprite 2 (or 3) to Sprite 6 (or 7) 12 Sprite 2 (or 3) to Sprite 4 (or 5) 11 Sprite 0 (or 1) to Sprite 6 (or 7) 10 Sprite 0 (or 1) to Sprite 4 (or 5) 9 Sprite 0 (or 1) to Sprite 2 (or 3) 8 Even bit-planes to Sprite 6 (or 7) 7 Even bit-planes to Sprite 4 (or 5) 6 Even bit-planes to Sprite 2 (or 3) 5 Even bit-planes to Sprite 0 (or 1) 4 Odd bit-planes to Sprite 6 (or 7) 3 Odd bit-planes to Sprite 4 (or 5) 2 Odd bit-planes to Sprite 2 (or 3) 1 Odd bit-planes to Sprite 0 (or 1) o Even bit-planes to Odd bit-planes
The notes in parentheses in the table above refer to collisions which will register only if you want them to show up. The collision control register, shown below, lets you either ignore or include the odd-numbered sprites in the collision detection.
Notice that in this table, collision detection does not change when you select either single or dual playfield mode. Collision detection depends only on the actual bits present in the oddnumbered or even-numbered bit-planes. The collision control register specifies how to handle the bit-planes during collision detect.
7.3.3. How Collision Detection is Controlled
The collision control register, CLXCON, contains the bits which define certain characteristics of collision detection. Its bits are shown in the table below.
7-7
![Page 188: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/188.jpg)
BIT NUMBER NAME FUNCTION
15 ENSP7 Enable Sprite 7 (OR with Sprite 6) 14 ENSP5 Enable Sprite 5 (OR with Sprite 4) 13 ENSP3 Enable Sprite 3 (OR with Sprite 2) 12 ENSP1 Enable Sprite 1 (OR with Sprite 0) 11 ENBP6 Enable Bit-Plane 6 (match required for collision) 10 ENBP5 Enable Bit-Plane 5 (match required for collision) 9 ENBP4 Enable Bit-Plane 4 (match required for collision) 8 ENBP3 Enable Bit-Plane 3 (match required for collision) 7 ENBP2 Enable Bit-Plane 2 (match required for collision) 6 ENBPI Enable Bit-Plane 1 (match required for collision) 5 MVBP6 Match value for Bit-Plane 6 collision 4 MVBP5 Match value for Bit-Plane 5 collision 3 MVBP4 Match value for Bit-Plane 4 collision 2 MVBP3 Match value for Bit-Plane 3 collision 1 MVBP2 Match value for Bit-Plane 2 collision 0 MVBP1 Match value for Bit-Plane 1 collision
Bits 15-12 let you specify that collisions with a sprite pair are to include the odd-numbered sprite of a pair of sprites. The even-numbered sprites always are included in the collision detection.
Bits 11-6 let you specify whether to include or exclude specific bit-planes from the collision detection.
Bits 5-0 let you specify the polarity (true-false condition) of bits which will cause a collision. For example, you may wish to register collisions only when the object collides with "something green" or "something blue". This feature, along with the collision enable bits, allows you to specify the exact bits, and their polarity, for the collision to be registered.
7-8
NOTES
This register is write-only.
If all bit-planes are excluded (disabled), then a bit-plane collision will alwavs be detected.
![Page 189: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/189.jpg)
7.4. BEAM POSITION DETECTION
Sometimes you might want to synchronize the 68000 processor to the video beam which is creating the screen display. In some cases, you may wish to update a part of the display memory after the system has already accessed the data from the memory for the display area.
This address is provided so that you can determine the value of the video beam counter and perform certain operations based on the beam position. Note, however, that the system coprocessor is already capable of watching display position for you and doing certain register- based operations automatically. Refer to "Copper In terru pts" below and Ch apter 2, "Coprocessor Hardware", for further information.
In addition, when you are using a light-pen with this system, this same address is used to read the light-pen position rather than the beam position. This is fully described in Chapter 8, "Interface Hardware".
7.4.1. Using the Beam Position Counter
There are four addresses that access the beam position counter. Their usage is described below.
VPOSR Read-only. Read the high bit of the vertical position (V8), and the frame-type bit.
Bit 15 LOF - Long Frame Bit Used to initialize interlace displays.
Bits 14-1 - Unused.
Bit 0 - Contains the high bit of the vertical position (V8). This ninth bit allows PAL line counts (313) to appear In PAL versions of this computer.
VHPOSR Read-only. Read vertical and horizontal position of the counter which is producing the beam on the screen. (Also reads the light pen.)
Bits 15-8 - Contain the low bits of the vertical position, bits V7-YO.
Bits 7-0 - Contain the horizontal position, bits H8-Hl. (Horizontal resolution is 1/160th of the screen width.)
VPOS\V Write only. Bits same as VPOSR above.
VHPOS\V Write only. Bits same as VHPOSR above. Used for counter synchronization with chip test patterns.
As usual, the address pairs VPOSR,VHPOSR and VPOSW,VHPOSW can be read from and written to as long words with the most significant addresses being VPOSR and VPOSW.
7-9
![Page 190: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/190.jpg)
7.5. INTERRUPTS
This system supports the full range of 68000 processor interrupts. The various kinds of interrupts generated by the hardware are brought into the peripherals chip and are translated into 6 of the 7 available interrupts of the 68000.
7.5.1. Non-Maskable Interrupt
Interrupt level 7 is the non-maskable interrupt and is not generated anywhere in the current system. The raw interrupt lines of the 68000, IPL2 through IPLO, are brought out to the expansion connector and can be used to generate this level 7 interrupt for debug purposes.
7.5.2. Maskable Interrupts
Interrupt levels 1 through 6 are generated. Control registers within the peripherals chip allow you to mask certain of these sources and prevent them from generating a 68000 interrupt.
7.5.3. User Interface to the Interrupt System
The system software has been designed to correctly handle all system hardware interrupts at levels 1 through 6. A separate set of input lines, designated INT2* and INT6* have been routed to the expansion connector for use by external hardware for interrupts. These are known as the external low and external high level interrupts.
These interrupt lines are connected to the peripherals chip and create interrupt levels 2 and 6, respectively. It is recommended that you take advantage of the interrupt handlers built into the operating system by using these external interrupt lines rather than generating interrupts directly on the processor interrupt lines.
7.5.4. Interrupt Control Registers
There are two interrupt registers, interrupt enable (mask) and interrupt request (status). Each register has both a read and a write address.
The following are the names of the interrupt addresses:
INTENA In terru pt enable (mask) - write only. Sets or clears specific bits of INTENA.
7-10
![Page 191: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/191.jpg)
INTENAR Interrupt enable (mask) read - read only. Read contents of INTENA.
INTREQ Interrupt request (status) - write only. Used by the processor to force a certain kind of interrupt to be processed (software interrupt). Also used to clear interrupt request flags once the interrupt process is completed.
INTREQR Interrupt request (status) read - read only. Contains the bits that define which items are requesting interrupt service.
The bit positions in the interrupt request register correspond directly to those same positions in the interrupt enable register. The only difference between the read-only and the write-only addresses shown above is that Bit 15 has no meaning in the read-only add resses.
7.5.5. Setting and Clearing Bits
Here are the meanings of the bits in the interrupt control registers and how you use them.
Set and Clear
The in terrupt registers, as well as the n:tvlA control register, use a special way of selecting which of the bits are to be set or cleared. Bit 15 of these registers is called the SETCLR bit.
When you wish to set a bit (make it a 1), you must place a 1 in the position you want to set, and a 1 into position 15.
When you wish to clear a bit (make it a 0), you must place a 1 in the position you wish to clear, and a 0 into position 15.
Positions 14-0 are bit-selectors. You write a 1 to anyone or more bits to select that bit. At the same time you write a 1 or 0 to bit 15 to either set or clear the bits which you have selected. Positions 14-0 that have 0 value will not be affected when you do the write. If you want to set some bits and clear others, you will have to write this register twice (once for setting some bits, once for clearing others).
7-11
![Page 192: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/192.jpg)
Master Interrupt Enable
Bit 14, TNTEN, of the interrupt registers is for interrupt enable.
This is the master interrupt enable bit. If this bit is a 0, it disables all other interrupts.
You may wish to clear this bit to temporarily disable all interrupts to do some critical processing task.
NOTE: This bit is used for enable/disable only. It creates no interrupt request.
External Interrupts
Bits 13 and 3 of the interrupt registers are reserved for external interrupts.
Bit 13, EXTER, becomes a 1 when the system line called INT5* becomes a logic 0. Bit 13 generates a level 5 interrupt.
Bit 3, PORTS, becomes a 1 when the system line called INT2* becomes a logic 0.
Bit 3 causes a level 2 interrupt.
Vertical Blanking Interrupt
Bit 5, VERTB, causes an interrupt at line 0 (start of vertical blank) of the video display frame.
The system is often required to perform many different tasks during the vertical blanking in terval. Among these tasks are the updating of various pointer registers, rewriting lists of Copper tasks when necessary, and other system-control operations.
The minimum time of vertical blanking is 20 horizontal scan lines (begins at line 0 and ends at line 20). You additionally have control over where (after line 20) the display actually starts by using the DIWSTRT (display window start) register (see Chapter 3, "Playfield Hardware"). This can extend the effective vertical blanking time.
If you find that you still require additional time during vertical blanking, you can use the Copper to create an interrupt. This Copper interrupt would be timed to occur just after the last line of display on the screen (after the display window stop which you have defined by using the DIWSTOP register).
7-12
![Page 193: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/193.jpg)
This causes a level 3 interrupt.
Copper Interrupt
Bit 4, COPER, is used by the Copper to issue an interrupt. The Copper can change the content of any of the bits of this register, as it can write any value into most of the machine registers. However, this bit has been reserved for specifically identifying the Copper as the interrupt source.
Generally, you use this bit when you want to sense that the display beam has reached a specific position on the screen, and you wish to change something in memory based on this occurrence.
This generates a level 3 in terru pt.
Audio Interrupts
Bits 10 - 7, AUD3 - 0, are assigned to the audio channels. They are called AUD3, AUD2, AUDl, and AUDO, and are assigned to channels 3, 2, 1, and 0, respectively.
This interrupt signals "audio block done". When the audio DMA is operating in automatic mode, this interrupt occurs when the last word in an audio data stream has been accessed. In manual mode, it occurs when the audio data register is ready to accept another word of data.
See Chapter 5, "Audio Hardware", for more information about interrupt generation and timIng.
This generates a level 4 interrupt.
Blitter Interrupt
Bit 6, BLIT, signals "blitter finished". If this bit is a 1, it indicates that the blitter has completed the requested data transfer. The blitter is now ready to accept another task.
This generates a level 3 interrupt.
7-13
![Page 194: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/194.jpg)
Disk Interrupt
Bits 12 and 1 of the interrupt registers are assigned to disk interrupts.
Bit 12, DSKSYN, indicates that the sync register matches disk data. This generates a level 5 interrupt.
Bit 1, DSKBLK, indicates "disk block finished". It is used to indicate that the specified disk Dj\;1A task which you have requested has been completed. This generates a level 1 interrupt.
More information about disk data transfer and interrupts may be found in Chapter 8, "Interface Hardware".
Serial Port Interrupts
The following serial interrupts are associated with the specified bits of the interrupt registers.
Bit 11, RBF (for receive buffer full), specifies that the input buffer of the UART has data th at is ready to read.
This generates a level 5 interrupt.
Bit 0, TBE (for transmit buffer empty), specifies that the output buffer of the UART needs more data and can now be written into.
This generates a level 1 interrupt.
7-14
![Page 195: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/195.jpg)
7.6. DMA CONTROL
Many different direct memory access (D1,1A.) functions occur during system operation. There is a read address as well as a write address to this register so you can tell which D:N1A channels are enabled.
Here are the address names for this register:
D:N1ACONR - Direct Memory Access Control- read-only.
D:MACON - Direct Memory Access Control- write-only.
The contents of this register are as follows (bit on if enabled):
BIT NUMBER NAME FUNCTION
15 SET/CLR The set/reset control bit. See the description of Bit 15 under "In terru pts" above.
14 BBUSY Blitter Busy Status - read-only
13 BZERO Blitter zero status - read-only. Remains a 1 if, during a blitter operation, the blitter output was always zero.
12, 11 Unassigned.
10 BLTPRI Blitter Priority. Also known as "blitter-nasty" . When this is a 1, the blitter has full (instead of partial) priority over the 68000.
9 DMAEN DMA Enable. This is a master D:N1A enable bit. It enables the D:N1A for all of the channels at bits 8 through O.
8 BPLEN Bit-Plane DMA enable
7 COPEN Coprocessor DMA enable
6 BLTEN Blitter DMA enable
5 SPREN Sprite DMA enable
4 DSKEN Disk DMA enable
3-0 AUDxEN where x = 3 through O. Audio D:N1A enable, channels 3-0.
7-15
![Page 196: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/196.jpg)
For more information on using the D:tvlA, see the following chapters:
7-16
sprites - Chapter 4, "Sprite Hardware"
bit-planes - Chapter 3, "Playfield Hardware"
blitter - Chapter 6, "Blitter Hardware"
disk - Chapter 8, "Interface Hardware"
audio - Chapter 5, "Audio Hardware"
Copper - Chapter 2, "Coprocessor Hardware"
![Page 197: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/197.jpg)
Chapter 8
INTERFACE HARDWARE
8.1. INTRODUCTION
This chapter covers the ways in which the Amiga talks to the outside world. This includes the following features:
o mouse/joystick/light pen ports
o disk con troller
o keyboard
o parallel I/O interface
o RS-232 compatible serial interface (for external modems or serial devices)
o RAM cartridge slot (for expansion to 512k)
o Expansion bus interface
o Audio output jacks
o Video output connectors (RGB, NTSC, RF modulator)
8.2. CONTROLLER PORT INTERFACE
At the side of the computer, there are two 9-pin connectors which can be used for many different kinds of controllers. Figure 8-1 below shows one of the two computer connectors, and the corresponding face-on view of the typical controller plug.
8-1
![Page 198: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/198.jpg)
Face ViewController Plug
.•.••••••••••••••••••••••••••••••••••• 1 ••••••• 1 •..... ·2·.·.·3····.~····.·.5 I... . •.•••••••••••••••••••
······~i
t 6 7 8 91 .
Face ViewComputer Connector
Figure 8-1: Controller Plug and Computer Connector
8.2.1. How to Read The Controller Port
This section shows how to read mouse controllers, joysticks, proportional controllers, and light pens. All of these controllers use the same connector, but sometimes have considerably different functions. Therefore, the pins are used differently depending on the the type of controller used.
Mouse/Trackball Controllers
The inputs for the mouse or trackball are shared with the input pIllS for the joystick switches as follows:
8-2
![Page 199: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/199.jpg)
o Joystick "right" switch and "back" switch are shared with the mouse or trackball horizon tal motion detection.
o Joystick "left" switch and "forward" switch are shared with the mouse or trackball vertical motion detection.
Pulses enter these inputs from the mouse or trackball, and are converted into an up-count or a down-count when motion occurs. In this section, only the mouse action is described. The trackball activity is identical.
Direction of Motion vs Count
Imagine that the mouse is being moved on the table over an exact image of the screen itself. The movement of the mouse to control an object corresponds exactly to the movements the user makes with the mouse itself (all directions of movement are exactly the same).
The counter counts up when the mouse is moved to the right or "down". The counter counts down when the mouse is moved to the left or "up". Up is away from you. Down is towards you.
This corresponds to the counting directions on the screen, where the coordinates X=O, Y=O are at the upper left corner of the screen and X=Xmax, Y=Ymax are at the lower right hand corner.
How to Read the Counters
The mouse/trackball counter contents can be accessed by reading register addresses named JOYODAT and JOYIDAT. These contain the counts for the left (0) and the right (1) controller ports.
The contents of each of these 16-bit registers is as follows:
Bits 15-8 Bits 7-0
Mouse/Trackball Vertical Count Mouse/Trackball Horizontal Count
8-3
![Page 200: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/200.jpg)
Counter Limitations
These counters will "wrap around" in either the positive or negative direction. If you wish to use the mouse to control something that is happening on the screen, you have to:
a. Read the counters once each vertical blanking period
b. Save the previous contents of the registers so that you can subtract to determine
1. direction of movement
ll. speed
The reason for reading counter contents once each vertical blanking time is to see if the user has moved the mouse in between the times you read the counters.
The mouse produces about 200 count pulses per inch of movement in either a horizontal or vertical direction. Vertical blan king happens once each 1/60th of a second. If you read the mouse once each vertical blanking period, you will most likely find a count d ifTerence (from the previous count) of less than 127. (Only if a user can move the mouse at a speed of more than 72 inches per second will it exceed this count ... an unlikely happening).
If you subtract the current count from the previous count, the absolute value of the difTerence will represent the speed. And the sign of the difference (if + or -), along with the sign of the previous and current values, lets you determine which direction the mouse is traveling.
The example shown here treats both counts as unsigned values, ranging from 0 to 255. A coun t of 100 pulses is measured in each case.
PREVIOUS COUNT CURRENT COUNT DIRECTION
200 100 200
45
100 200 45
200
UP (LEFT) DOWN (RIGHT) DOWN * UP **
* 200-45 = 155. Because this is more than 127, the true count must be
255 - ( 200-45) = 100.
Therefore the count is 100, and the direction is DOWN.
** 45-~OO = -155. Because the absolute value exceeds 100, the true count must be
8-4
![Page 201: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/201.jpg)
255 + (-155) = 100, and the direction is CPo
There are two buttons on the Amiga Mouse. However, the control circuitry supports mIce and trackballs with as many as three buttons if desired.
BUTTON 1 (Left button on Amiga mouse)
Button 1 is connected to pin 6 of the controller port.
Trigger-lines are read, for each of the controller ports, by reading PA7 (port 1 firebutton) or PA6 (port 0 fire-button) of the odd-addressed 8520 peripheral ports. A logic state of 1 means switch-open. A logic state of 0 means switch-closed.
BUTTON 2 (Right button on Amiga mouse)
Button 2 is connected to pin 9 of the controller ports. It is read as one of the potentiometer ports. See "Reading Proportional Controllers" for more information. High resistance indicates switch-open. Low resistance to ground indicates switch-closed.
BUTTON 3
Button 3, when used, would be connected as the other proportional controller input. This is pin 5 of the controller ports.
Joystick Controllers
The joystick controllers have 4 simple direction switches and one trigger button. The direction switches are connected to pins 1, 2, 3, and 4 as FORWARD, BACK, LEFT, and RIGHT. The trigger button is connect.ed to pin 6.
The normal state of each of the switches is open. This places a logic 1 on each of the input lines. When a switch is closed, it is connected to ground (pin 8), placing a logic 0 on the line.
Reading the joystick input data logic states is not so simple, however, because the data register for the joysticks is the same as the coun ters used for the mouse or track ball con trollers. These are named JOYODAT (port 0) and JOY1DAT (port 1).
The following table shows how to interpret the data once you have read it from these registers. The true logic state of the switch data in these registers is "1 = switch closed".
8-5
![Page 202: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/202.jpg)
DATA BIT INTERPRETATION
1 True logic state of "right" switch
9 True logic state of "left" switch
1 (XOR) 0 You must calculate the exclusive-or of bits 1 and 0 to obtain the logic state of the "back" switch
9 (XOR) 8 You must calculate the exclusive-or of bits 9 and 8 to obtain the logic state of the "forward" switch
Proportional Controllers
Each of the game controller ports can handle two variable-resistance input devices, also known as proportional input devices. This section describes how the positions of the proportional input devices can be determined.
Different Types of Proportional Controllers
There are two common types of proportional controllers: the "paddle" controller pair and the X-Y proportional joystick.
A paddle controller pair consists of two individual enclosures, each containing a single resistor and fire-button and each connected to a common controller port input connector. The typical connection is as shown in Figure 8-2.
8-6
![Page 203: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/203.jpg)
LEFT PADDLE RIGHT PADDLE
Resistive Element Resistive Element ______ JA~AV" ArvAA~ ____ __ r vv (Y t¥'
Pin 7 Pin 9 Pin 7 Pin 5
I---F;", Button----1 I---F;", Button----1 Pin 3 Pin 4
(All pin numbers refer to a common connection to a single controller input port.)
Figure 8-2: Typical Paddle Controller Connection
In an X-Y proportional joystick, the resistive elements are connected individually to the X and Y axes of a single controller enclosure, (instead of being in in separate enclosures). Typical connections are shown in the table below.
8-7
![Page 204: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/204.jpg)
Mouse, Trackball, Proportional X-Y Variable
Driving Controller Proportional Pin Joystick Controller (Pair) Joystick
1 Forward* V-pulse (unused) (unused)
2 Back* H-pulse (unused) (unused)
3 Left* VQ-pulse Left Button Button 1
4 Right* HQ-pulse Right Button Button 2
5 (unused) Button (3) Right POT POT X (if used)
6 Button(l) Button(l) (unused) (unused)
7 +5V +5V +5V +5V
8 GND GND GND GND
9 Button(2) Button(2) Left POT POTY (if used)
Reading Proportional Controller Buttons
For the two-control paddle controllers, the left and right joystick inputs serve as the fire buttons for the left and right controllers.
Interpreting Proportional Controller Position
To interpret the position of the controller requires some preliminary work by you. This is an activity normally done during the vertical blanking interval (and is part of the operating system function).
During vertical blanking, you write a value into an address called POTGO. For a standard X-Y joystick, this value is hex 0001. Writing to this register starts the operation of some special hardware which reads the potentiometer values. It also sets the values contained in the pot registers (described below) to zero.
The read-circuitry stays in a reset state for the first 7 or 8 horizontal video scan lines. Following the reset interval, the circuit allows a charge to begin building up on a timing capacitor whose charge-rate will be controlled by the position of the external controller resistance. Each horizontal scan line thereafter, the circuit compares the charge on the timing capacitor
8-8
![Page 205: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/205.jpg)
to a preset value. If the charge is below that value, one count is added to the counter for that "pot". If it is more, that coun ter value will be stopped. The coun ter will be held at the stopped value until the next POTGO is issued.
Effects of Different Resistance on Charging Rate
You normally issue POTGO at the beginning of a video screen, then read the values in the POT registers during the next vertical blanking period, just before issuing POTGO again. (Again note that this is an automatic feature of the operating system).
There is nothing in the system to prevent the counters from overflowing (wrapping past a count of 2.55). However, the system is designed to insure that the counter cannot overflow within the span of a single screen. This allows you to know for certain whether an overflow is indicated by the con troller.
There are 262 or 263 possible horizontal scan lines on a single NTSC video screen. But each of the POT counters is 8 bits wide. This allows a maximum of 255 in any counter. This is why the control circuitry is delayed 7 or 8 horizontal scan lines-to limit the maximum POT count value to 255.
Proportional Controller Registers
The following registers are used for the proportional con trollers:
POTODAT - Port 0 Data (vertical/horizontal) POTIDAT - Port 1 Data (vertical/horizontal)
Bit Positions:
15-8 POTOY value or POTlY value 7-0 POTOX value or POTIX value
All counts are reset to zero when POTGO is written. Counts are normally read one screen after the scan circuitry is enabled.
8-9
![Page 206: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/206.jpg)
Potentiometer Specifications
The resistance of the potentiometers should be a linear taper. Based on the design of the integrating analog to digital converter used, the maximum resistance should be no more than 528K (470K +/- 10% is suggested) for either the X or Y pots. This is based on a charge capacitor of 0.047uf, +/- 10%, and a maximum time of 16.6 milliseconds for charge to full value (one video frame time).
Light Pen
You only connect a light pen to the left controller port (port 0). Its connections are not shown on the drawing.
A light pen normally uses the following pins of the controller port:
PIN NUMBER USAGE
7 +5V 8 GND 5 Pen-Pressed-To-Screen 6 Capture Beam Position
The signal called pen-pressed is generally a single switch to ground, normally open, which is actuated by a switch in the nose of the light pen. Note that this is connected to one of the potentiometer inputs and must be treated as such.
The signal called "Capture Beam Position" is connected as the trigger switch of a normal joystick.
The principles of light pen operation are as follows (assuming the light pen has been enabled):
8-10
1. Just as the system exits vertical blank, the capture circuitry for the light pen is automatically enabled.
2. The video beam starts to create the picture, sweeping from left to right for each horizontalline as it paints the picture from the top of the screen to the bottom.
3. The light pen creates a trigger signal at the moment that the video beam passes the window in the nose of the pen.
4. This trigger signal tells the internal circuitry to capture and save the current contents of the BEAM register, VPOSR.
![Page 207: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/207.jpg)
This allows you to determine where the pen was placed by reading the exact horizontal and vertical value of the counter beam at the instant the beam passed the light pen.
How to Read the Light Pen Registers
The light pen register is at the same address as the beam counter, VPOSR and VHPOSR. The bits are:
VPOSR:
VHPOSR:
Bit 15 Bits 14-1 Bit 0
Bits 15-8 Bits 7-0
Long frame Unused V8 (most significant bit of vertical position)
V7 -VO (vertical position) H8-HI (horizon tal position)
The software can refer to this register set as a long word whose address is VPOSR.
The positional resolution of these registers is:
Vertical 1 scan line in non-interlace mode 2 scan lines in interlace mode
Horizontal 2 low-resolution pixels in either high- or low- resolu tion
To enable the light pen input, write a 1 into Bit 3 of bit-plane control register 0 (BPLCONO). Once the light pen input is enabled and the light pen issues a trigger signal, the value in VPOSR is frozen (The counters still count; just the read value is frozen.) This freeze is released at the end of internal vertical blanking (vertical position 20). There is no single bit in the system that can tell you that the light pen has been triggered, but fear not, here is the way:
1. Read (long) VPOSR twice.
2. If both values are not the same, the light pen has not triggered since the last top-ofscreen (V = 20).
3. If both values are the same, then mask off the upper 15 bits of the 32-bit word and compare it with the hex value of $10500 (V =261).
4. If the VPOSR value is greater than $10500, then the light pen did not trigger since the last top-of-screen. If the value is less, then the ligh t pen did trigger and the value read is the screen position of the light pen.
8-11
![Page 208: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/208.jpg)
There is a somewhat simplified method of determining the truth of the light pen value if you instruct the system software to read the register only during the internal vertical blanking period of 0 < V 20.
1. Read (long) VPOSR once, during the period of 0 < V20.
2. 1hsk off the upper 1.5 bits of the 32-bit word and compare it with the hex value of $10500 (V =261).
3. If the VPOSR value is greater than $10500, then the light pen did not trigger since the last top-of-screen. If the value is less, then the light pen did trigger and the value read is the screen position of the light pen.
Adapting to Special Controllers
The Amiga can read and interpret controllers other than the standard joystick or proportional controller by using the control lines built into the POTCO register (address DFF034) to redefine the functions of some of the controller port pins.
Here is a copy of part of the POTINP /POTCO register bit description paraphrased from Appendix A of this manual:
POTCO (DFF034) \Vrite-only address for the pot control register. POTINP (DFFOI6) Read-only address for the pot control register.
This register con trois a 4 bit bi-directional I/O port that shares the same 4 pins as the 4 pot inputs.
BIT NUMBER
1.5 14 1;3 12 11 10 09 08 07-01 00
NAME
OUTRY DATRY OUTRX DATRX OUTLY DATLY OUTLX DATLX X START
FUl\CTIO~
Output enable for Right Port Pin 9 I/O data Right Port, Pin 9 Output enable for Right Port Pin .5 I/O data Right Port Pin 5 Output enable for Left Port Pin 9 I/O data Left Port, Pin 9 Output enable for Left Port Pin 5 I/O data Left Port, Pin .5 Reserved for chip identification Start pots (dump capacitors, start counters)
Instead of using the pot pins as variable-resistive inputs, you can use these pins as a 4- bit input/output port. 'I'his provides you 'vvith the equivalent of tVlO additional pins on each of
8-12
![Page 209: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/209.jpg)
the two con troller ports for general purpose I/O as shown in the table above.
If you set any of the "OUT .. " bits high, it disconnects the potentiometer control circuitry from the port. Whatever is the current state, 1 or 0 of the "DAT .. " pins in this register will appear on the specified port pin. You set the state of the OUT .. and DAT .. pins by writing in to this register through the POTGO address. There are large capacitors on these lines, and it can take up to 300 microseconds for the line to change state.
To use this register as an input, sensing the current state of the pot pins, write all zeros to POTGO. Thereafter you can read the current state by using read-only address POTINP. Any bits set as inputs will be affected by the START bit of POTGO register. You can also use these signals for fire-buttons. To do this, drive the line high (set both OUT.. and DAT .. to J). When the button is pressed, the line will be shorted to ground and reading POTINP will get you a O. If the button isn't pressed, the reading will be 1.
8.3. DISK CONTROLLER
The disk controller in this system can handle four double-sided, 3 1/2 or 5 1/4 inch disk drives. A 3 1/2 inch drive is installed in the basic unit. The other drives are external to the main box.
Control of the disk operations is distributed among several registers in the system. Among the control types are:
o Selection, motor control, sensing
o Disk DMA channel control, D~1A enable
o Disk data read/write
o Disk format control
o Interrupts generated
8.3.1. Disk Selection, Control and Sensing
The disk subsystem uses two 8520 ports plus one FLAGS interrupt port. The specific bits used are detailed below.
CIA A ($BFE001), port A, has four input bits allocated to the disk subsystem. CIA B ($I3FDOOO), port B, is entirely dedicated to output bits for the disk.
PORT PIN
CIA A PAS
CIA A PA4
NAME
DSKRDY*
DSKTRACKO*
FUNCTION
Disk ready (active low)
Disk heads currently positioned over track zero ( active low).
8-13
![Page 210: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/210.jpg)
CIA A
CIA A
CIAB
CIAB
CIAB
CIAB
CIAB
CIAB
CIAB
CIA B
CIA B
8-14
PA3 DSKPROT* Disk is write protected (active low).
PA2 DSKCHANGE* Disk has been removed from the drive. The drives that support this signal latch it until the next time the heads are stepped (active low).
PB7 DSIGvlOTOR* Disk motor control (active low).
PD6 DSKSEL3*
PB5 DSKSEL2*
PB4 DSKSEL1 *
PD3 DSKSELO*
PB2 DSKSIDE*
PBI DSKDIREC
PBO DSKSTEP*
FLAG DSKINDEX*
This signal is non-standard on the Amiga system. Each drive will latch the motor signal at the time its SELn * signal turns on. The disk drive motor will stay in this state until the next time SELn* turns on, at which time it will latch the new value of DSIGvlOTOR*. All software that selects drives should set up the motor signal before selecting any drives. The drive will "remember" the state of its motor when it is not selected. All drive motors turn off after system reset.
Select drive 3 (active low).
Select drive 2 ( active low).
Select drive 1 (active low).
Select drive 0 (internal drive) (active low).
Specify a particular head of the disk. Zero implies the upper head.
Specify the direction to seek the heads. Zero implies seek towards the center spindle. Track zero is at the outside of the disk.
Step the heads of the disk. This signal should always be used as a pulse (first low, then high). Leaving this line low while changing the SEL lines confuses the change logic.
Disk index pulse (BFDDOO, Bit 4). Can be used to create level 6 in terru pt.
![Page 211: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/211.jpg)
Disk D:MA Channel Control
Data is normally transferred to the disk by direct memory access. The disk DMA is controlled by four items:
o Pointer to the area into which or from which the data is to be moved
o Length of data to be moved by DMA
o Direction of data transfer (read/write)
o DMA enable
Pointer to Data
You specify the 19-bit-wide byte-address from which or to which the data is to be transferred. The lowest bit (bit 0) of this address is treated as a zero. (You cannot start data on an odd byte-boundary).
This address must be written into registers named DSKPTH and DSK PTL. DSKPTH gets the high 3 bits of the pointer, DSKPTL gets the low 16 bits of the pointer.
These registers are positioned at two consecutive word addresses on a long word boundary within the register space. This allows you to initialize both by a single write of a long word to the address of DSKPTH.
Length, Direction, D:MA Enable
All of the control bits relating to this topic are contained in a single register, called DSKLEN. Its bits are as follows:
8-15
![Page 212: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/212.jpg)
BIT NUMBER
15 14 13-0
NAME
DMAEN WRITE LENGTH
USAGE
Disk DtvlA Enable Disk Write (Ram ---;. disk if 1) Number of WORDS to transfer
The bit called D:'\1AEN must be set in order to allow disk DMA to occur. The system DMA control bit for the disk must be set as well. See Chapter 7, "System Control Hardware", for more information about system DMA controls.
The hardware requires a special sequence in order to start DMA to the disk. This sequence prevents accidental writes to the disk. In short, the DMAEN bit in the DSKLEN register must be turned on twice in order to actually enable the disk DMA hardware. Here is the sequence you should follow:
1. Set this register to 4000 hex, thereby forcing the D~1A for the disk to be turned off.
2. Put the value you want into the DSKLEN register.
3. Write this value again into the DSKLEN register. This actually starts the DMA.
4. After the D~lA is complete, set the DSKLEN register back to 4000 hex, to prevent accidental writes to the disk.
As each data word is transferred, the LENGTH value is decremented. As each transfer occurs, the pointer DSKPTH, DSKPTL value is incremented. This points to the area where the next word of data will be written or read. When the LENGTH value counts down to zero, the transfer stops.
The recommended method of reading from the disk is to read an entire track into a buffer, and then search for the sector(s) that you want. This means that you only have to read from the disk once for the entire track. In addition, there are no time-critical sections in reading this way, so that other high priority subsystems are allowed to run (such as graphics or audio, both of which have stringent real time constraints).
If you don't have enough memory for track buffering (or for some other reason decide not to read a whole track at once), the disk hardware supports a limited set of sector searching facilities. There is a register that may be polled to examine the disk input stream.
There is a hardware bug that causes the last 3 bits of data sent to the disk to be lost. Also, the last word in a disk read DMA operation may not come in (that is, one less word may be read than you asked for).
8.3.2. Other Registers Involved with Disk Operations
The following registers are also associated with disk operations, as specified below.
8-16
![Page 213: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/213.jpg)
DSKBYTR Disk Data Byte and Status Read
This register is the disk-microprocessor data buffer. Data from the disk, when in read mode, is loaded into this register one byte at a time. As each byte is received into this register, the BYTEREADY bit is set true. BYTEREADY is cleared each time the DSKBYTR register is read.
DSKBYTR is the register normally used by system software to synchronize the processor to the disk rotation before issuing a read or write under DMA control. The bits are shown in the following table.
BIT NUMBER NAME FUNCTION
15 BYTEREADY Indicates that this register contains a valid byte of data. (Reset by reading this register)
14 D:tv1AON The DMA bit (in DSKLEN) is enabled and the DMACON bits are on, too. All DMA bits must be on for this to be true.
13 DISKWRITE This disk write bit (in DSKLEN) is enabled.
12 WORDEQUAL Indicates the DISKSYNC register equals the disk input stream. This bit is true only while the input stream matches the sync register (as little as two microseconds).
11-8 unused
7-0 DATA Disk byte data
ADKCON and ADKCONR Audio and Disk Control Register
ADKCO:"J is the write address and ADKCO:"JR is the read address.
The bottom 8 bits of this register are used for the audio circuitry. The other bits are shown in the folio-wing table.
8-17
![Page 214: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/214.jpg)
BIT NUMBER NAME FUNCTION
15 CLR/SET Same use as in the DlviA enable register.
Bit 15 must be a 1 if the register bits are to be set.
Bit 15 is a 0 if the bits are to be cleared.
14 PRECO:\1Pl MSB of Precomp Specifier 13 PRECOMPO LSB of Precomp Specifier
Value of 00 selects None. Value of 01 selects 140 ns. Value of 10 selects 280 ns. Value of 11 selects 560 ns.
12 MFMPREC Value of 0 selects GCR Precomp Value of 1 selects MFM Precomp
11 UARTBRK Value of 1 forces the output of Paula's serial port to a zero (an RS-232 break).
10 WORD SYNC Value of 1 enables synchronizing and starting of DMA on disk read of a word. The word to synchronize on must be written into the DSKSYNC address (DFF07E).
9 MSBSYNC Value of 1 enables sync on MSBit (GCR).
8 FAST Value of 1 selects two microseconds per bit cell (usually MFM), 0 selects four microseconds per bit (usually GCR).
7-4 ATPER3-0 Audio-attach period controls (not disk related).
3-0 ATVOL3-0 Audio-attach volume controls (not disk related).
One form of GCR format is that format used by the Apple[TM] computer. Data bytes on Apple-formatted disks always have the most significant bit set to a 1. When reading a GCR formatted disk, the software must use a translate table called a nibble-izer to assure that all data written to the disk conforms with this bit-setting. Bit 9, when a 1, tells the disk controller to look for this sync-bit on every disk byte.
8-18
![Page 215: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/215.jpg)
DSKSYNC Disk input synchronizer
The DSKSYNC register is used to synchronize the input stream. If WORDEQUAL is enabled in ADKCO:'-J, no data is transferred to memory until a word is found in the input stream that matches the word in the DSKSYl\C register. In addition, the DSKSYl\C bit in INTREQ is set when the input stream matcbes the DSKSY~C register. The DSKSYNC bit in INTREQ is independent of the WORDEQlJAL enable.
DSKDAT and DSKDATR Disk DMA Data Registers
[FOR TEST ONLY]
DSKDAT is write-only and DISKDATR is a read-only early-read dummy address.
This register is the disk D:\IA data buffer. It contains 2 bytes of data that are either sent to (write) or received from (read) the disk. The write mode is enabled by bit 14 of the DSKLEN register. The D:\IA controller automatically transfers data to or from this register an d RA.tvf.
8.3.3. Disk Interrupts
The disk controller can issue two kinds of interrupts. These interrupts are:
o DSKSYl\C (level 5, INTI{EQ bit 12)-the input stream matches the DSKSY)JC register
o DSKBLK (level 1, INTI{EQ bit I)-disk DMA has completed.
Each of these is explained further in the sections titled "Length, Direction, DMA Enable" and "Ot.her Registers Involved with Disk Operations" above. See Chapter 7, "System Control Hardware", for more information about interrupts.
8.4. THE KEYBOARD
The keyboard is interfaced to the system through one pair of lines connected t.o the oddaddressed 8520 CIA chip. These lines are·
8-19
![Page 216: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/216.jpg)
CNT - keyboard clock (input from keyboard) SP - keyboard data (input or output)
8.4.1. How the Keyboard Data is Received
The CNT line is used as a clock for the keyboard. On each transition of this line, one bit of data is clocked in from the keyboard. The keyboard sends this clock while each data bit which it wishes to send is stable on the SP line. The clock is an active low pulse. The rising edge of this pulse clocks in the data.
The 8520 is set up to use the CNT line as a clock and the SP line as a data input to an internal serial shift register. Appendix F contains most of the data-sheet for the 8520, and provides more information for interested parties.
After a data byte has been received from the keyboard, an interrupt (from the 8520) is issued to the processor. The keyboard waits for a handshake signal from the system before transmitting any more keystrokes. (The handshake is issued by the processor pulsing the SP line low for a minimum of 75 microseconds.)
If another keystroke is received before the previous one has been accepted by the processor, the keyboard-processor (internal to keyboard) holds a type-ahead buffer approximately 10 "keycodes" long. (Keycodes are explained in the next section).
8.4.2. Type of Data Received
The keyboard data is NOT received in the form of ASCIl characters. Instead, for maximum versatility, it is rcceived in the form of keycodes. These codes include not only the downtransition of the key, but also the up-transition. This allows your software to usc both sets of information to determine exactly what is happening on the keyboard.
Here is a list of the hexadecimal values which are assigned to the keyboard. A downstroke of the key transmits the value shown here. An upstroke of the key transmits this value + $80. The picture of the keyboard at the end of this section shows the positions which correspond to the description in the paragraphs below.
The 128 possible key codes are arranged in to the logical groups shown below.
00-3F (hex)
These are key codes assigned to specific posItIons on the mam body of the keyboard and numeric pad which contain graphic keys (that is, "A", not "Tab"). The key positions would
8-20
![Page 217: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/217.jpg)
generally be labeled with country dependent keys. These keycodes are best described POSI
tionally as shown in Figure 8-3 at the end of the keyboard section.
40-4F (hex)
These are key codes with specific meanings common to most keyboards:
40 Space 41 Backspace 42 Tab 43 Enter (numeric pad) 44 Return 45 Escape 46 Delete 4A Numeric Pad 4C Cursor Up 4D Cursor Down 4E Cursor Forward 4F Cursor Backward
50-5F (hex)
key codes for function keys:
50-59 Function keys FI-FIO 5F Help
8-21
![Page 218: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/218.jpg)
60-67 (hex)
key codes for qualifier keys:
60 Left Shift 61 Right Shift 62 Caps Lock 63 Control 64 Left Alt 65 Right Alt 66 Left Command 67 Right Command
68-77 (hex)
Unassigned.
FO-FF (hex)
These key codes are used for 6500/01-68000 communication, and are not associated with a keystroke. They have no key transition flag, and are therefore described completely by 8 bit codes.
F9 last key code bad, next key is same code retransmitted FA key board key buffer overflow FC keyboard self-test fail FD initiate power-up key stream (for stuck keys) FE terminate key stream (from FD)
These key codes may be filtered out by the drivers.
8-22
![Page 219: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/219.jpg)
8.4.3. Limitations of the Keyboard
The Amiga keyboard is a matrix of rows and columns, with a key switch at each intersection. Because of this, it is subject to a phenomenon called "ghosting".
Ghosting means that certain combinations of keys pressed simultaneously will cause extra ("ghost") key codes to be transmitted. For example, press "A" and "s" simultaneously and hold them down. Notice that "A" and "S" are transmitted. \Vhile still holding them down, press "Z" and observe that both "X" and "z" are transmitted. In this case, "X" is a ghost key.
The keyboard is designed so that this will never happen during normal typing, only during unusual key combinations like the one just described. Normally, the keyboard will appear to have "N-key rollover", which means that you will run out of fingers before generating a ghost character.
NOTE: There are seven keys that are not part of the matrix, and thus do not contribute to generating ghosts. These keys are: CTRL, the two SHIFT keys, the two AMIGA keys, and the two ALT keys.
8-23
![Page 220: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/220.jpg)
ESC F 1
45 46 7 8 9
00 30 3E 3F TAB HELP 4 5 6
20 2E 2F CTRL 1 2 3
63 10 lE 1 F SHIFT 0
30 31 OF 3C A A", ALT ENTER
64 66 40 67 4A 43
Figure 8-3: The Amiga Keyboard, Showing Keycodes in Hex
8-24
![Page 221: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/221.jpg)
8.5. PARALLEL INPUT/OUTPUT INTERFACE
The general-purpose parallel interface is a 2.5-pin male connector on the back panel of the computer. This connector is generally used for a parallel printer.
For pin connections, see Appendix E.
8.6. SERIAL INTERFACE
There is a 25-pin D-type female connector on the back panel of the computer which serves as the general purpose serial interface. This connector can drive a wide range of different peripherals, including an external modem or a serial printer.
For pin connections, see Appendix E.
8.6.1. Introduction to Serial Circuitry
The circuit that controls the serial link to the outside world is called a UART, which is short for Universal Asynchronous Receiver/Transmitter. The UART is able to communicate at baud rates (bit-rate of transmission of data) which you preset. It can receive or send data with a programmable length of 8 or 9 bits.
It is also capable of detecting overrun errors. These occur when some other system sends in data faster than you remove it from the data receive register. There are also status bits that you can read to find out when the receive buffer is full, or when the transmit buffer is empty. An additional status bit is also provided which indicates "all bits sent". All of these topics are discussed below.
8.6.2. Setting the Baud Rate
Baud rate (rate of transmission) is controlled by the contents of the register named SERPER. Bits 14-0 of SERPER are the baud-rate divider bits. If you consider the contents of these bits to be the number N, then N+l color clocks (each 279.4 ns) occur between each sample of the state of the input pin (for receive) or between transmissions of output bits (in the transmit mode).
8.6.3. Setting the Receive Mode
You have a choice of how many bits are to be received before the system tells you that the receive register is full. You may define either 8 or 9 bits for the receive register full signal. In either case, the receive circuitry expects to see:
8-2.5
![Page 222: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/222.jpg)
o one start bit
o 8 or 9 data bits
o at least one stop bit
Receive mode is set by bit 15 of SERPER. Bit 15 is a 1 if 9 data bits, and a 0 if 8 data bits The normal state of this bit for most receive applications is a O.
SERPER is a write-only register.
8.6.4. Contents of the Receive Data Register
The serial input data receive register is 16-bits wide. It contains not only the input data received, but also certain status bits which are explained below.
The data bit positions defined for read-data are taken from the "backup" register which is connected to the receive-data serial shift register.
The data is received, one bit at a time, into a serial-to-parallel shift register. When the proper number of bits has been received, the contents of this register are transferred to the serial data read register (SERDATR) shown below, and you are signaled that there is data ready for you.
It is called a backup register because immediately after the transfer of data takes place, the receive shift register again becomes ready to accept new data. You will therefore have up to one full character-receive time (8 to 10 bit times) after receiving the receiver-full interrupt to accept the data and clear the interrupt.
The following table shows the definitions of the various bit positions within SERDA TR.
BIT NUMBER NAME FUNCTION
15 OVRUN OVERRUN bit (Mirror-also appears in the interrupt request register). Indicates that another byte of data has been received before the previous byte has been picked up by the processor. To prevent this condition, it is necessary to reset the RBF (Bit 11) (Receive-Buffer-Full) bit in the interrupt request register (INTREQ).
14 RBF READ BUFFER FULL (Mirror-also appears in the interrupt request register). When it is a 1, it says that there is data ready to be picked up by the processor. After reading the contents of this data register, you must reset the RBF bit in INTREQ to prevent an overrun.
13 TBE TRANSMIT BUFFER EMPTY
8-26
![Page 223: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/223.jpg)
12
11
10
9
8
7-0
TSRE
RXD
STP
STP
(Not a mirror-interrupt occurs when the buffer becomes empty. When it is a 1, the data in the output data register (SERDAT) has been transferred to the serial output shift register, so SERDAT is ready to accept another output word. This is also true when the buffer is empty.
This bit is normally used for full duplex operations.
TRANSMIT SHIFT REGISTER EMPTY When this bit a 1, the output shift register has completed its task and all data has been transmitted and it is now idle. If you stop writing data into the output register (SERDAT), then this bit will become a 1 after both the word currently in the shift register AND the word placed into SERDAT have been transmitted.
This bit is normally used for half-duplex operation.
Direct read of RXD pin on Paula chip.
Not used at this time
Stop bit if 9 data bits are specified for receive.
Stop bit if 8 data bits are specified for receive,
OR DB8 9th data bit if 9 bits are specified for
receive.
DB7-DBO Low 8 data bits of received data. Data is TRUE (data you read is the same polarity as the data expected).
8.6.5. How Output Data is Transmitted
You send data out on the transmit lines by writing into the serial data output register (SERDAT). This register is write-only.
8-27
![Page 224: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/224.jpg)
Data will be sent out at the same rate as you have established for the read, and is contained in the serial data period register (SERPER) shown above. Immediately after you write the data into this register, the system will begin the transmission at the baud rate you selected.
At the start of the operation, this data is transferred from SERDAT into a serial shift register. When the transfer to the serial shift register has been completed, SERDAT can accept new data. The TBE interrupt signals this fact.
Data will be moved out of the shift register, one bit each time interval, starting with the least significant bit. The shifting continues until, following the last shift, the UART detects the condition shift-register-empty. This condition is all-zeros remaining in the register.
This is a 16-bit register which allows you to control the format (appearance) of the transmitted data. To form a typical data sequence, such as 1 start-bit, 8 data bits, and 2 stop bits, you write the following con ten ts in to SERDA T.
15 987 o
000 0 000 ~ 8 bits data -----.1
Data gets shifted out this way.
Figure 8-4: Starting appearance of SERDAT, and shift register
8-28
![Page 225: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/225.jpg)
15 987 o
o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ~I one bit
All zeros from last shift-
Figure 8-5: Ending appearance of shift register
The register stops shifting and signals "shift register empty" (TSRE) when there is a 1-bit present in the bit-shifted-out position AND the rest of the contents of the shift register are zeros. When new non-zero contents are transferred into this register, shifting begins again.
8.6.6. How to Specify the Register Contents
You should write the data you wish to transmit as the low 8 (or 9 if you wish) bits of this output register (SERDAT). Above the data bits (in bits 8 and above, or bit 9 and above) you write 1-bits for however many stop bits you transmit with the data. Normally, you send either 1 or 2 stop bits. (See the figure above, "Starting appearance of SERDAT").
The transmission of the start bit is independent of the contents of this register. One start bit is automatically generated before the first (bit 0) bit of the data is sent.
Writing this register starts the data transmission. If this register is written with all zeros, NO data transmission is initiated.
8.7. AUDIO OUTPUT CONNECTIONS
The Amiga has two different forms of audio output for the audio channels:
8-29
![Page 226: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/226.jpg)
a. Stereo Output Jacks
A pair of "RCA" jacks, designed to be connected to a stereo amplifier.
b. RF-Audio
The channel 3/4 RF modulator will provide sound through the speaker of your television set when the television is used to provide the computer's display. Both channels of audio are provided at this connector. However, the RF modulator on initial shipments of Amiga computers combines the signals and transmits monaural sound.
8.8. DISPLAY OUTPUT CONNECTIONS
There is a 23-pin connector on the back of the Amiga which contains signals for two different types of video output. A separate cable assembly will be made up for each different type of video. The types are:
o RGB Monitors ("Analog RGB")
Provides 4 outputs, specifically R, G, B, and Sync.
Can generate up to 4096 different colors on-screen simultaneously using the circuitry presently available on the Amiga.
o DIGITAL RGB Monitors
8-30
Provides 4 outputs, distinct from those shown above. Also named R, G, B, I, and Sync. All output levels are logic levels (0 or 1).
R is Red-ON; G is Green-ON; B is Blue-ON; I is half-intensity.
This allows up to 15 possible color combinations, where the values 0000 and 0001 map to the same output value. (Half intensity with no color present is the same as full in tensi ty, no color.)
![Page 227: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/227.jpg)
Aug
25
20
:41
198
5 A
ppen
dix.
.A P
age
1
APP
END
IX A
-A
mig
a H
ardw
are
Man
ual
Th
is a
pp
end
ix c
on
tain
s a
sho
rt s
unrn
ary,
in
alp
hab
eti
cal
ord
er,
of
the
reg
iste
r set
and
the u
sag
es o
f th
e i
nd
ivid
ual
bit
s.
The
ad
dre
sses
sho
wn
here
are
use
d b
y t
he s
pecia
l ch
ips
for
tran
sferr
ing
d
ata
bet
wee
m t
hem
selv
es.
Als
o,
the C
oppe
r u
ses
these
ad
dre
sses
fo
r w
riti
ng
to
th
e s
pecia
l ch
ip r
eg
iste
rs.
In o
rder
to
wri
te t
o t
hese
re
gis
ters
wth
th
e 6
8000
, calc
ula
te t
he 6
8000
ad
dre
ss u
sin
g t
his
fo
nn
ula
: 68
000
add
ress
= (c
hip
ad
dre
ss)
+
$DFF
OO
O
Fo
r ex
anp
le,
for
the 6
8000
to
wri
te t
o A
DKCO
N (a
dd
ress
= $0
9E),
th
e
68
00
0 w
ould
wri
te t
o $
DFF
09E
.
AG
NE
S/
REA
D/
DE
NIS
E/
REG
ISTE
R
AD
DR.
W
RITE
PA
ULA
FU
NCT
ION
ADKC
ON
ADKC
ONR
09E
W
P
Aud
io,
Dis
k,
Co
ntr
ol
wri
te
OlO
R
P
Aud
io,
dis
k,
Co
ntr
ol
read
BIT
# U
SE
15
SE
T/C
LR
Set
/Cle
ar c
on
tro
l b
it.
Det
erm
ines
if b
its
wri
tten
wit
h a
1
get
set
or
cle
are
d.
Bit
s w
ritt
en
wit
h a
ze
ro a
re a
lway
s u
nch
ang
ed.
14
-l3
PR
ECO
MP
1-0
CO
DE
PREC
OM
P VA
LUE
12 M
fMP
RE
C
11
UAR
TBRK
1
0 W
ORD
SYN
C
09
MSB
SYN
C
00
no
ne
01
140
ns
10
2
80
ns
11
5
60
ns
( 1 =
MFM
pre
con
p O
=CX
.:R p
reco
np
) F
orc
es a
UA
RT b
reak
(c
lears
TX
D)
if t
rue
En
able
s d
isk
rea
d s
yn
chro
niz
ing
on
a w
ord
equ
al t
o D
ISK
SY
NC
COD
E,
loca
ted
in
ad
dre
ss
(3F
)*2
En
able
s d
isk
read
sy
nch
ron
izin
g o
n th
e M
SB
(mos
t si
gn
if b
it)
. A
ppl
typ
e O
CR
08
FA
ST
Dis
k d
ata
clo
ck r
ate
co
ntr
ol
1=
fast
(2u
s)
O=
slow
(4us
) (f
ast
fo
r M
fM,
slo
w f
or
MfM
o
r O
CR)
07
USE
3PN
Use
au
dio
ch
ann
el 3
to
mo
du
late
no
thin
g
06
USE
2P3
Use
au
dio
ch
ann
el
2 to
mo
du
late
peri
od
of
chan
nel
3
05 U
SElP
2 U
se a
ud
io c
han
nel
1 t
o m
od
ula
te p
erio
d o
f ch
ann
el 2
0
4 U
SEO
PI
Use
au
dio
ch
ann
el 0
to
mo
du
late
peri
od
of
chan
nel
1
03 USE~VN
Use
au
dio
ch
ann
el 3
to
mo
du
late
no
thin
g
02 U
SE2V
3 U
se a
ud
io c
han
nel
2 t
o m
od
ula
te v
olum
e o
f ch
ann
el 3
01
USE
IV2
Use
au
dio
ch
ann
el 1
to
mo
du
late
vol
ume
of
chan
nel
2
00
USE
OV
I U
se a
ud
io c
han
nel
0 to
mo
du
late
vol
ume
of
chan
nel
1
NO
TE:
If b
oth
peri
od
and
vol
ume
are
mo
du
late
d o
n th
e
saro
o ch
ann
el,
the
peri
od
and
vol
ume
wil
l b
e alt
ern
ate
d.
Fir
st w
ord
xxxx
xxxx
V6-
VO
,
Sec
ond
wor
d P
IS-P
O
(etc
)
Aug
25
20
:41
198
5 A
ppen
dix.
...A
Pag
e 2
AU
DxL
CH
AU
DxL
CL
AU
DxL
EN
AU
DxP
ER
AU
DxV
OL
AU
DxD
AT
BLT
xPTH
B
LTxP
TL
OAO
W
A
Aud
io c
han
nel
x
locati
on
(H
igh
3 b
its)
0A
2 W
A
A
udio
ch
ann
el x
lo
cati
on
(L
ow 1
5 b
its)
T
his
pair
of
reg
iste
rs c
on
tain
s th
e 1
8 b
it s
tart
ing
ad
dre
ss
(lo
cati
on
) o
f A
udio
ch
ann
el x
(x
=O
,1,2
,3)
DMA
data
. T
his
is n
ot
a p
oin
ter
reg
iste
r an
d th
ere
fore
on
ly n
eed
s to
be
relo
aded
if a
d
iffe
ren
t m
emor
y lo
cati
on
is t
o
be
ou
tpu
tted
.
0A4
W
P A
udio
Cha
nnel
x l
eng
th
Th
is r
eg
iste
r co
nta
ins
the l
eng
th
(num
ber
of
wor
ds)
of
Aud
io C
hann
el x
DM
A d
ata
.
0A6
W
P A
udio
ch
ann
el x
Per
iod
T
his
reg
iste
r co
nta
ins
the P
erio
d
(rat
e)
of
Aud
io c
han
nel
x D
MA
data
tra
nsf
er.
T
he m
inim
um p
eri
od
is l
24
co
lor
clo
cks.
T
his
mea
ns t
hat
the
small
est
num
ber
that
sho
uld
be
pla
ced
in
th
is r
eg
iste
r is
l2
4 d
ecim
al.
Th
is c
orr
esp
on
ds
to a
ma
xim
um
sar
rple
fr
equ
ency
of
28
.86
kh
z.
OA
S W
P
Aud
io C
hann
el x
V
olum
e
OM
Th
is r
eg
iste
r co
nta
ins
the V
olum
e se
ttin
g f
or
Aud
io C
hann
el x
. B
its
6,5
,4,3
,2,l
,0 s
pecif
y 6
5 li
near
volu
me
lev
els
as
show
n b
elo
w.
BIT
S U
SE
15
-07
0
6
05
-00
Not
use
d
Fo
rces
vol
ume
to m
ax
(64
on
es,
no z
ero
s)
Sets
one
of
64
lev
els
(O
OO
OO
O=n
o o
utp
ut
(111
111=
63 O
nes,
on
e ze
ro)
W
P A
udio
ch
ann
el x
Dat
a T
his
reg
iste
r is
th
e A
udio
ch
ann
el x
(x
=O
,1,2
,3)
DMA
data
bu
ffer.
It
co
nta
ins
2 b
yte
s o
f d
ata
th
at
are
eac
h 2
's c
onpl
emen
t an
d are
ou
tpu
tted
se
qu
en
tiall
y
(wit
h d
igit
al
to a
nal
og
co
nv
ersi
on
) to
th
e a
ud
io o
utp
ut
pin
s.
(LSB
= 3
MV)
T
he D
MA
co
ntr
oll
er
auto
mat
ical
ly t
ran
sfers
data
to
th
is r
eg
iste
r fr
om R
AM
. T
he p
roce
sso
r ca
n als
o w
rite
dir
ectl
y t
o
this
reg
iste
r.
Whe
n th
e D
MA
data
is
fin
ish
ed
(wor
ds
ou
tpu
tted
=L
eng
th)
and
the d
ata
in t
his
reg
iste
r h
as
been
use
d,
an a
ud
io c
han
nel
in
terr
up
t re
qu
est
is s
et.
05
0
W
A
Bli
tter
Po
inte
r to
x
(Hig
h 3
bit
s)
052
W
A
Bli
tter
Po
inte
r to
x
(LoW
l5
bit
s)
Th
is p
air
of
reg
iste
rs c
on
tain
s th
e 1
8 b
it a
dd
ress
o
f B
litt
er
sou
rce
(x=A
,B,C
) o
r d
est
. (x
=D)
DMA
data
. T
his
po
inte
r m
ust
be p
relo
aded
wit
h t
he
sta
rtin
g a
dd
ress
o
f th
e d
ata
to
be
pro
cess
ed b
y t
he b
Utt
er.
Aft
er
the
Bli
tter
is
fin
ish
ed
it
wil
l co
nta
in t
he
last
data
ad
dre
ss
(Plu
s in
crem
ent
and
mod
ulo)
.
LIN
E DR
AW
BLTA
PTL
is u
sed
as
an a
=u
mu
lato
r re
gis
ter
LIN
E DR
AW
and
mus
t b
e p
re lo
aded
wit
h t
he s
tart
ing
val
ue
LIN
E DR
AW
of
(2Y
-X)
whe
re Y
/X i
s t
he l
ine s
lop
e.
![Page 228: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/228.jpg)
Aug
25
20:4
1 19
85
App
endi
x--.A
Pag
e 3
BLTx
MOD
BLTA
FWM
BL
TALW
M
BLTx
DA
T
BLTD
DAT
BLTC
ONO
BLTC
ON
1
LIN
E DR
AW
LIN
E DR
AW
BLTQ
>T a
nd B
LTD
PT
(bo
th H
and
L)
mus
t b
e
pre
load
ed w
ith
th
e s
tart
ing
ad
dre
ss o
f th
e li
ne.
064
W
A
Bli
tter
Mod
ulo
x T
his
reg
iste
r co
nta
ins
the M
odul
o fo
r B
litt
er
sour
ce(x
=A
,6,C
) o
r D
est
(x=D
).
A M
odul
o is
a n
umbe
r th
at
is a
uto
mat
ical
ly
adde
d to
th
e ad
dre
ss a
t th
e e
nd o
f ea
ch l
ine,
in o
rder
th
at
the a
dd
ress
th
en p
oin
ts t
o t
he
sta
rt o
f th
e n
ext
lin
e.
Eac
h so
urc
e o
r d
esti
nat
ion
has
its
ow
n M
odul
o,
allo
win
g e
ach
to
be
a d
iffe
ren
t si
ze,
wh
ile
an i
den
tical
area
of
each
is u
sed
in
th
e B
litt
er
op
erat
ion
. LI
NE
DRAW
BL
TAM
OD a
nd B
LTBM
OD a
re u
sed
as
slo
pe
sto
rag
e LI
NE
DRAW
re
gis
ters
and
mus
t b
e p
relo
aded
wit
h t
he v
alu
es
LIN
E DR
AW
(4Y
-4X
) an
d (4
Y)
resp
ecti
vly
. Y
jX=
lin
e s
lop
e LI
NE
DRAW
BL
TCM
OD a
nd B
LTDM
OD m
ust
bo
th b
e p
relo
aded
LI
NE
DRAW
w
ith
th
e w
idth
(i
n b
yte
s)
of
the i
mag
e in
to
LIN
E DR
AW
whi
ch t
he l
ine i
s b
ein
g d
raw
n. (
norm
ally
2 t
imes
LI
NE
DRAW
th
e s
cree
n w
idth
in
wor
ds)
044
W
A
Bli
tter
firs
t w
ord
mas
k fo
r so
urc
e A
04
6 W
A
B
litt
er
last
wor
d m
ask
for
sou
rce
A
074
The
patt
ern
s in
th
ese
two
reg
iste
rs a
re "
ande
d" w
ith
th
e
firs
t an
d la
st w
ords
of
each
lin
e o
f d
ata
from
Sou
rce
A i
nto
th
e B
litt
er.
A z
ero
in
any
bit
ov
erri
des
dat
a fr
om S
ourc
e A
. T
hese
reg
iste
rs s
ho
uld
be
set
to a
ll "
ones
" fo
r fi
ll m
ode
or
for
lin
e d
raw
ing
mod
e.
W
A
Bli
tter
sou
rce
x d
ata
reg
T
his
reg
iste
r h
old
s S
ourc
e x
(x=A
,B,C
) d
ata
fo
r u
se
by t
he B
litt
er.
It
is n
orm
ally
lo
aded
by
th
e B
litt
er
DM
A c
han
nel
, ho
wev
er i
t m
ay a
lso
be
pre
load
ed b
y
the m
icro
pro
cess
or.
LI
NE
DRAW
BL
TADA
T is
use
d a
s an
in
dex
reg
iste
r an
d m
ust
LIN
E DR
AW
be
pre
load
ed w
ith
800
0.
LIN
E DR
AW
BLTB
DAT
is u
sed
fo
r te
xtu
re,
It
mus
t b
e p
relo
aded
LI
NE
DRAW
w
ith
FF
if n
o te
xtu
re
(so
lid
lin
e)
is d
esir
ed.
Bli
tter
dest
inati
on
data
reg
iste
r T
his
reg
iste
r h
old
s th
e d
ata
resu
ltin
g f
rom
eac
h w
ord
of
Bli
tter
op
erat
ion
un
til
it i
s s
en
t to
a R
AM d
est
inati
on
. T
his
is a
du
mm
y ad
dre
ss a
nd c
ann
ot
be
rea
d b
y t
he m
icro
. T
he t
ran
sfer
is a
uto
mat
ic d
uri
ng
Bli
tter
op
erat
ion
.
040
W
A
Bli
tter
con
tro
l re
gis
ter
0 04
2 W
A
B
litt
er
con
tro
l re
gis
ter
1 T
hese
tw
o co
ntr
ol
reg
iste
rs a
re u
sed
to
get
her
to
co
ntr
ol
Bli
tter
op
erat
ion
s.
The
re a
re 2
basi
c m
odes
, ar
ea a
nd l
ine,
whi
ch a
re s
ele
cte
d b
y b
it 0
of
BLTC
ON
1,
as
show
n be
low
. Jl
ru!.A
MOD
E ("
norm
al")
BIT
# BL
TCON
O BL
TCO
N1
15
ASH
3 BS
H3
14
ASH
2 BS
H2
13
ASH
1 B
SH!
Aug
25
20:4
1 19
85
App
endi
x-.-A
Pag
e 4
12
MA
O
11
U
SEA
10
U
SEB
09
USE
C 08
US
ED
07
LF7
06
LF
6 0
5
LF5
04
LF
4 03
LF
3 02
LF
2 01
L
Fl
00
LF
O
BSH
O
X
X
X
X
X
X
X
EFE
IFE
FC
I D
ESC
LIN
E (=
0)
ASH
3-0
BSH
3-0
USE
A
USE
B U
SEC
USE
D
LF
7-0
EFE
IFE
FC
I D
ESC
LIN
E
Sh
ift
val
ue
of
A s
ou
rce
Sh
ift
val
ue
of
B s
ou
rce
Mod
e co
ntr
ol
bit
to
use
So
urc
e A
M
ode
con
tro
l b
it t
o u
se S
ou
rce
B
Mod
e co
ntr
ol
bit
to
use
So
urc
e C
M
ode
con
tro
l b
it t
o u
se D
esti
nat
ion
D
Log
ic f
un
ctio
n m
inte
rm s
ele
ct
lin
es
Ex
clu
siv
e fi
ll e
nab
le
Incl
usi
ve
fill
en
able
F
ill
carr
y i
np
ut
Des
cend
ing
(dec
reas
ing
ad
dre
ss)
con
tro
l b
it
Lin
e m
ode
con
tro
l b
it
(set
to 0
)
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E DR
AW
LIN
E M
ODE
(lin
e d
raw
)
BIT
# BL
TCON
O
15
STA
RT3
14
STA
RT2
13
STA
RT1
12
STA
RTO
11
1
10
0 09
1
08
1 0
7
LF7
06
LF
6 05
LF
5 0
4
LF4
03
LF3
02
LF2
01
LF1
00
LF
O
6LTC
ON
1
o o o o o o o o o SIG
N
OV
F SU
D
SU
L A
UL
SIN
G
LIN
E (=
1)
STA
RT3
-0
Sta
rtin
g p
oin
t o
f li
ne
(0 t
hru
15
hex)
L
F7-
0 L
og
ic f
un
ctio
n m
inte
rm s
ele
ct
lin
es
sho
uld
be
pre
load
ed w
ith
4A
in
ord
er
to s
ele
ct
the
eq
uat
ion
D=
(AC
+AB
C).
Sin
ce A
co
nta
ins
a si
ng
le b
it t
rue
(800
0),
mos
t b
its
wil
l p
ass
the C
fie
ld u
ncha
nged
(n
ot
A a
nd
C)
•
![Page 229: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/229.jpg)
Aug
25
20
:41
1
98
5
App
endi
X...
.A P
age
5
BL
TSI
ZE
BPL
xPT
H
BPL
xPT
L
BPL
xDA
T
LIN
E
DRAW
L
INE
DR
AW
LIN
E
DRAW
L
INE
DR
AW
LIN
E
DRAW
L
INE
DR
AW
LIN
E
DRAW
L
INE
DR
AW
LIN
E
DRAW
L
INE
DR
AW
LIN
E
DRAW
L
INE
DR
AW
LIN
E
DRAW
L
INE
DR
AW
LIN
E
DRAW
L
INE
DR
AW
LIN
E
DRAW
L
INE
DR
AW
LIN
E
DRAW
L
INE
DR
AW
LIN
E
DRAW
L
INE
DR
AW
LIN
E
DRAW
L
INE
DR
AW
LIN
E
DRAW
bu
t o
ne
bit
wil
l in
vert
th
e C
Fie
ld a
nd
co
mb
ine
it w
ith
tex
ture
(A
an
d B
an
d n
ot
C)
. T
he
A b
it i
s a
uto
mati
call
y m
oved
acro
ss t
he
wo
rd b
y t
he h
ard
war
e.
LIN
E
SIG
N
OVF
S
ING
Lin
e m
ode
co
ntr
ol
bit
(s
et
to 1
) S
ign
fl
ag
W
ord
ov
erf
low
fla
g
Sin
gle
bit
per
ho
riz.
lin
e
for
use
wit
h s
ub
seq
uen
t A
rea
Fil
l SU
D
So
met
imes
Up
or
Dow
n (=
AU
D*)
SU
L S
om
etim
es U
p o
r L
eft
A
UL
Alw
ays
Up
or
Left
T
he 3
bit
s a
bo
ve
sele
ct
the O
cta
nt
for
lin
e d
raw
: O
CT o 1 2 3 4 5 6 7
SUD
SU
L A
UL
1 o o 1 1 o o 1
1 o 1 1 o 1 o o
o 1 1 1 1 o o o
05
8
W
A
Bli
tter
sta
rt
and
siz
e
(win
dow
wid
th,
heig
ht)
T
his
reg
iste
r co
nta
ins
the w
idth
an
d h
eig
ht
of
the b
litt
er
op
era
tio
n
(in
li
ne m
ode
wid
th I
II\l
st
=2
, h
eig
ht
= li
ne l
en
gth
) W
riti
ng
to
th
is r
eg
iste
r w
ill
sta
rt
the B
litt
er,
an
d s
ho
uld
b
e d
on
e la
st,
aft
er
all
po
inte
rs a
nd
co
ntr
ol
reg
iste
rs h
ave
been
in
itia
lized
. B
IT#
15
,14
,13
,12
,11
,10
,09
,08
,07
,06
,05
,04
,03
,02
,01
,00
h
9 h
8 h
7 h
6 h
5 h
4 h
3 h
2 h
1 h
Q,w
5 w
4 w
3 w
2 w
I we
h
=H
eig
ht=
Vert
ical
lin
es
(10
bit
s=1
02
4 li
nes m
ax)
w=
Wid
th =
Ho
riz
pix
els
(6
bit
s=6
4 w
ord
s=1
02
4 p
ixels
max
) L
INE
DR
AW
BL
TSI
ZE
co
ntr
ols
th
e l
ine l
en
gth
an
d s
tart
s
LIN
E
DRAW
th
e l
ine d
raw
whe
n w
ritt
en
to
. T
he
h
field
L
INE
DR
AW
co
ntr
ols
th
e l
ine l
en
gth
(1
0 b
its g
ives
LIN
E
DRAW
li
nes u
p to
10
24
do
ts
lon
g).
T
he
w f
ield
L
INE
DR
AW
IIJ..
lSt
be s
et
to 0
2
for
all
li
ne d
raw
ing
.
OEO
W
A
B
it p
lan
e x
p
oin
ter
(Hig
h 3
bit
s)
OE
2 W
A
B
it p
lan
e x
p
oin
ter
(Low
1
5 b
its)
Th
is p
air
of
reg
iste
rs c
on
tain
s th
e 1
8 b
it p
oin
ter
to t
he
ad
dre
ss o
f B
it p
lan
e x
(x
=1
,2,3
,4,5
,6)
DMA
data
. T
his
po
inte
r II
I\lS
t b
e r
ein
itia
lized
by
th
e p
rocess
or
or
Co
pp
er
to p
oin
t to
th
e b
eg
inn
ing
of
Bit
Pla
ne d
ata
ev
ery
vert
ical
bla
nk
tim
e.
11
0
W
0 B
it p
lan
e x
d
ata
(p
ara
llel
to s
eri
al
co
nv
ert
) T
hes
e re
gis
ters
receiv
e t
he D
MA
data
fe
tch
ed
fr
om
RAM
b
y t
he B
it P
lan
e a
dd
ress
po
inte
rs d
esc
rib
ed
ab
ov
e.
Th
ey m
ay a
lso
be w
ritt
en
by
eit
her
mic
ro.
Th
ey a
ct
as
a 6
-wo
rd p
ara
llel-
to-s
eri
al
bu
ffer
for
up t
o 6
m
emor
y "B
it P
lan
es"
. (x
=I-
6)
Th
e p
ara
llel
to
Aug
25
20
:41
19
85
A
ppen
dix.
...A
Pag
e 6
BPL
lMO
D
BPL
2MO
D
BPL
CO
NO
B
PLC
ON
1 B
PLC
ON
2
seri
al
co
nv
ers
ion
is t
rig
gere
d w
hen
ever
bit
pla
ne #
1
is w
ritt
en
, in
dic
ati
ng
th
e c
on
ple
tio
n o
f all
bit
pla
nes
for
that
wo
rd
(16
pic
-cell
s).
T
he
MSB
is o
utp
ut
firs
t,
and
is
th
ere
fore
alw
ays
on
th
e le
ft.
10
8
W
A
Bit
pla
ne m
od
ulo
(o
dd
pla
nes)
lO
A
W
A
Bit
Pla
ne m
odul
o (e
ven
pla
nes)
T
hes
e re
gis
ters
co
nta
in t
he M
od
ulo
s fo
r th
e o
dd
an
d e
ven
b
it p
lan
es.
A
Mod
ulo
is a
nu
mbe
r th
at
is a
uto
mati
call
y a
dd
ed
to t
he a
dd
ress
at
the e
nd
of
each
lin
e,
in o
rder
that
the a
dd
ress
th
en
po
ints
to
th
e s
tart
of
the n
ex
t li
ne.
Sin
ce t
hey
hav
e se
para
te m
od
ulo
s,
the o
dd
an
d e
ven
b
it p
lan
es
may
hav
e s
izes t
hat
are
dif
fere
nt
fro
m e
ach
o
ther,
as w
ell
as
dif
fere
nt
fro
m t
he D
isp
lay
Win
dow
siz
e.
10
0
WA
D
Bit
pla
ne c
on
tro
l re
g.
(mis
c co
ntr
ol
bit
s)
10
2
W
D
Bit
pla
ne c
on
tro
l re
g.
(ho
riz.
scro
ll c
on
tro
l)
10
4
W
D
Bit
Pla
ne c
on
tro
l re
g.
(vid
eo p
rio
rity
co
ntr
ol)
T
hes
e re
gis
ters
co
ntr
ol
the o
pera
tio
n o
f th
e B
it P
lan
es
and
vari
ou
s asp
ects
of
the d
isp
lay
. B
IT#
BPLC
ON
O
BPL
CO
N1
BPL
CO
N2
15
H
IRE
S X
X
1
4
BPU
2 X
X
1
3
BPU
I X
X
1
2
BPU
O
X
X
11
HO
MOD
X
X
1
0
DB
LPF
X
X
09
CO
LOR
X
X
08
G
AU
D
X
X
07
X
PF
2H3
X
06
X
PF
2H2
PF
2PR
I 0
5
X
PF2H
1 P
F2P
2 0
4
X
PF2H
O
PF
2P1
03
LP
EN
PF
lH3
P
F 2P
O
02
LA
CE
PF1H
2 P
FlF
2
01
ER
SY
PF
lHl
PF
lFl
00
X
P
FlH
O
PF
lPO
H
IRE
S=
Hig
h re
solu
tio
n
(640
) m
ode
BPU
=
Bit
pla
ne u
se c
od
e 0
00
-11
0
(NO
NE
thro
ug
h 6
in
clu
siv
e)
HO
MO
D=H
old
and
Mo
dif
y m
ode
DB
LP
F=
Dou
ble
pla
yfi
eld
(p
F1=
odd
PF
2=
even
bit
pla
nes)
C
OL
OR
=C
onpo
site
vid
eo
CO
LOR
en
ab
le
GA
.UD
=Gen
lock
au
dio
en
ab
le
(mux
ed o
n B
KG
ND
pin
du
rin
g
vert
ical
bla
nk
ing
LP
EN
=L
igh
t p
en
en
ab
le
(rese
t o
n p
ow
er u
p)
LAC
E =
Inte
rlace e
nab
le
(rese
t o
n p
ow
er u
p)
ERSY
=E
xte
rnal
Res
yn
c (H
SYN
C,
VSY
NC
pad
s be
com
e in
pu
ts)
(rese
t o
n p
ower
-up
) P
F2
PR
I=P
lay
fiel
d 2
(e
ven
pla
nes)
h
as
pri
ori
ty o
ver
(ap
pears
in
fr
on
t o
f)
Pla
yfi
eld
1
(od
d p
lan
es)
.
PF
2P
=P
lay
field
2 p
rio
rity
co
de
(wit
h r
esp
ect
to s
pri
tes)
PF
lP=
Pla
yfi
eld
1 p
rio
rity
co
de
(wit
h r
esp
ect
to s
pri
tes)
PF
2H
=P
lay
fiel
d 2
ho
rizo
nta
l scro
ll c
od
e P
FlH
=P
lay
field
1 h
ori
zo
nta
l scro
ll c
od
e
![Page 230: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/230.jpg)
Aug
25
20
:41
1985
A
pp
end
bU
\ P
age
7
CLXC
ON
CLX
DA
T
CO
LOR
xx
098
W
D
Co
llis
ion
co
ntr
ol
Th
is r
eg
iste
r co
ntr
ols
whi
ch B
itp
lan
es a
re i
ncl
ud
ed
(ena
bled
) in
co
llis
ion
dete
cti
on
, an
d th
eir
req
uir
ed s
tate
if i
ncl
ud
ed.
It
als
o c
on
tro
ls t
he i
nd
ivid
ual
in
clu
sio
n o
f od
d nu
mbe
red
spri
tes
in t
he c
oll
isio
n d
ete
cti
on
, b
y l
og
icall
y O
R-i
ng t
hem
w
ith
th
eir
co
rres
po
nd
ing
ev
en n
umbe
red
spri
te.
BIT
# FU
NCT
ION
D
ESC
RIP
TIO
N
15
1
4
13
12
1
1
10
09
0
8
07
06
05
0
4
03
02
0
1
00
ENSP
7 EN
SP5
ENSP
3 EN
SP1
ENB
P6
ENB
P5
ENB
P4
ENBP
3 EN
BP2
ENBP
1 M
VB
P6
MVB
P5
MV
BP
4 M
VB
P3
MV
BP
2 M
VB
P1
En
able
Sp
rite
7
(OR
ed w
ith
Sp
rite
6)
En
able
Sp
rite
5
(OR
ed w
ith
Sp
rite
4)
En
able
Sp
rite
3
(OR
ed w
ith
Sp
rite
2)
En
able
Sp
rite
1
(OR
ed w
ith
Sp
rite
0)
En
able
Bit
Pla
ne
6 (M
atch
req
d.
for
co
llis
ion
) E
nab
le B
it P
lan
e 5
(Mat
ch r
eqd
. fo
r co
llis
ion
) E
nab
le B
it P
lan
e 4
(Mat
ch r
eqd
. fo
r co
llis
ion
) E
nab
le B
it P
lan
e 3
(Mat
ch r
eqd
. fo
r co
llis
ion
) E
nab
le B
it P
lan
e 2
(Mat
ch r
eqd
. fo
r co
llis
ion
) E
nab
le B
it P
lan
e 1
(Mat
ch r
eqd
. fo
r co
llis
ion
) M
atch
val
ue
for
Bit
Pla
ne
6 co
llis
ion
M
atch
val
ue
for
Bit
Pla
ne
5 co
llis
ion
M
atch
val
ue
for
Bit
Pla
ne
4 co
llis
ion
M
atch
val
ue
for
Bit
Pla
ne
3 co
llis
ion
M
atch
val
ue
for
Bit
Pla
ne
2 co
llis
ion
M
atch
val
ue
for
Bit
Pla
ne
1 co
llis
ion
NO
TE:
Dis
able
d B
it P
lan
es c
ann
ot
pre
ven
t co
llis
ion
s.
Th
eref
ore
if a
ll b
it p
lan
es a
re d
isab
led
, co
llis
ion
s w
ill
be
con
tin
uo
us,
re
gard
less
of
the m
atch
val
ues
.
OOE
R
D
Co
llis
ion
dat
a re
g.
(Rea
d an
d cle
ar)
'T
his
add
ress
rea
ds
(and
cle
ars
) th
e c
oll
isio
n
dete
cti
on
reg
iste
r.
The
bit
ass
ign
men
ts a
re b
elow
. N
OTE
: P
lay
field
1 is
all
odd
num
bere
d en
able
d b
it p
lan
es.
Pla
yfi
eld
2 i
s a
ll e
ven
num
bere
d en
able
d b
it p
lan
es
BIT
# C
OLL
ISIO
NS
REG
ISTE
RED
15
1
4
13
12
1
1
10
0
9
08
0
7
06
05
0
4
03
02
0
1
00
no
t u
sed
S
pri
te 4
(o
r 5)
to
Sp
rite
6
(or
7)
Sp
rite
2
(or
3)
to S
pri
te 6
(o
r 7)
S
pri
te 2
(o
r 3)
to
Sp
rite
4
(or
5)
Sp
rite
0
(or
1)
to S
pri
te 6
(o
r 7)
S
pri
te 0
(o
r 1)
to
Sp
rite
4
(or
5)
Sp
rite
0
(or
1)
to S
pri
te 2
(o
r 3)
P
lay
field
2 t
o S
pri
te 6
(o
r 7)
P
lay
field
2 t
o S
pri
te 4
(o
r 5)
P
lay
field
2 t
o S
pri
te 2
(o
r 3)
P
lay
field
2 t
o S
pri
te 0
(o
r 1)
P
lay
field
1 t
o S
pri
te 6
(o
r 7)
P
lay
field
1 t
o S
pri
te 4
(o
r 5)
P
lay
field
1 t
o S
pri
te 2
(o
r 3)
P
lay
field
1 t
o S
pri
te 0
(o
r 1)
P
lay
field
1 t
o P
lay
field
2
180
W
D
Co
lor
tab
le x
x
Th
ere
are
32
of
these
reg
iste
rs
(xx=
OO
-31)
an
d th
ey
are
som
etim
es c
oll
ecti
vely
call
ed
th
e "
Co
lor
Pale
tte".
Aug
25
20
:41
198
5 A
pp
end
bU
\ P
age
8
COPC
ON
CO
PJM
P1
COPJ
MP2
CO
P1LO
I C
OPl
LCL
CO
P2LO
I CO
P2LC
L
CO
PIN
S
The
y co
nta
in 1
2 b
it c
od
es r
ep
rese
nti
ng
R
ED,G
REE
N,B
LUE
colo
rs
for
"RG
B sy
stem
s.
One
of
these
reg
iste
rs a
t a
tim
e is
sele
cte
d
(by
the B
PLxD
AT
seri
ali
zed
vid
eo c
ode)
fo
r p
rese
nta
tio
n a
t th
e R
GB v
ideo
ou
tpu
t p
ins.
T
he t
ab
le b
elow
sho
ws
the c
olo
r re
gis
ter
bit
usa
ge.
B
IT#
15
,14
,13
,12
, 1
1,1
0,0
9,0
8,
07
,06
,05
,04
, 0
3,0
2,0
1,0
0
RG
B X
X
X
X
R
3 R
2 R
l RO
G
3 G
2 G
1 G
O
B3
B2
B1 B
O
B=
blue
, C
Fg
ree
n,
R=
red,
02E
W
A
C
oppe
r co
ntr
ol
reg
iste
r T
his
is a
1
bit
reg
iste
r th
at
whe
n set
tru
e,
allo
ws
the C
oppe
r to
acc
ess
the B
litt
er
har
dw
are.
T
his
b
it i
s c
leare
d b
y p
ower
on
rese
t,
so t
hat
the
Cop
per
can
no
t ac
cess
th
e B
litt
er
har
dw
are.
B
IT#
NA
ME
FUN
CTIO
N
01
CD
ANG
C
oppe
r d
ang
er m
ode.
A
llow
s C
oppe
r ac
cess
to
Bli
tter
if t
rue.
088
S A
C
oppe
r re
sta
rt a
t fi
rst
locati
on
0
8A
S
A
Cop
per
resta
rt a
t se
con
d l
ocati
on
T
hese
ad
dre
sses
are
str
ob
e a
dd
ress
es,
that
whe
n w
ritt
en
to
ca
use
th
e C
oppe
r to
ju
mp
in
dir
ect
usi
ng
th
e a
dd
ress
co
nta
ined
in
th
e F
irst
or
Sec
ond
Lo
cati
on
reg
iste
rs
des
crib
ed b
elow
. T
he C
oppe
r it
self
can
wri
te t
o t
hese
ad
dre
sses
, ca
usi
ng
its
ow
n ju
mp
in
dir
ect.
08
0
W
A
Cop
per
firs
t lo
cati
on
reg
(H
igh
3 b
its)
08
2 W
A
C
oppe
r fi
rst
locati
on
reg
. (L
oW 1
5 b
its)
08
4 W
A
C
oppe
r se
con
d l
ocati
on
reg
. (H
igh
3 b
its)
08
6 W
A
C
oppe
r se
con
d l
ocati
on
reg
(Low
15
bit
s)
oae
The
se r
eg
iste
rs c
on
tain
th
e j
ump
add
ress
es d
escr
ibed
ab
ov
e.
W
A
Cop
per
inst
. fe
tch
id
en
tify
'T
his
is a
du
nmy
add
ress
th
at
is g
ener
ated
by
th
e C
oppe
r w
hene
ver
it i
s l
oad
ing
in
stru
cti
on
s in
to i
ts o
wn
inst
ructi
on
re
gis
ter.
'T
his
actu
all
y o
ccu
rs e
ver
y C
oppe
r cy
cle
exce
pt
for
the s
eco
nd
(I
R2)
cy
cle
of
the M
OVE
inst
ructi
on
. 'T
he T
hre
e
typ
es
of
inst
ructi
on
s are
sho
wn
bel
ow
. M
OVE
Mov
e im
med
iate
to
dest
W
AIT
W
ait
un
til
beam
co
un
ter
is e
qu
al t
o,
or
gre
ate
r th
an
. (k
ee
ps
Cop
per
off
of
bu
s u
nti
l b
eam
po
siti
on
h
as
been
rea
ched
) SK
IP
Sk
ip if b
eam
co
un
ter
is e
qu
al t
o,
or
gre
ate
r th
an
. (s
kip
s fo
llo
win
g M
OVE
inst
. u
nle
ss b
eam
po
siti
on
h
as
been
rea
ched
)
BIT
#
15
14
13
MOV
E
IR1
IR2
X
X
X
RD
15
RD
14
RD
13
WA
IT U
NTI
L SK
IP I
F
IRI
VP7
V
P6
VP5
IR2
IR1
BED
0\
V
P7
VE6
V
P6
VE5
V
P5
IR2
BFD
0\
VE6
V
E5
![Page 231: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/231.jpg)
Aug
25
2
0:4
1 1
98
5
Jlpp
endi
X-.
.A P
age
9
12
X
RD
12
VP4
1
1
X
RD
ll
VP3
1
0
X
RD
lO
VP2
0
9
X
RD
09
VP
l 0
8
DAB
RD
08
VPO
0
7
DA
7 R
D07
H
P8
06
DA
G R
D06
H
P7
05
D
AS
RD
05
HPG
0
4
DM
R
D04
H
PS
03
D
A3
RD
03
HP4
0
2
DA
2 R
D02
H
P3
01
D
Al
RD
01
HP2
0
0
0 RD
OO
1
IRl=
Fir
st in
stru
cti
on
reg
iste
r IR
2=S
econ
d in
stru
cti
on
reg
iste
r
VE4
V
P4
VE
4 V
E3
VP3
V
E3
VE2
V
P2
VE2
V
El
VP
l V
El
VEO
V
PO
VEO
R
E8
HP8
H
E8
HE7
H
P7
HE7
RE
G
HPG
H
EG
HE5
H
P5
HE5
H
E4
HP4
H
E4
HE3
H
P3
HE3
H
E2
HP2
H
E2
0 1
1
DA
=D
est
inati
on
Ad
dre
ss
for
MOV
E in
stru
cti
on
. F
etch
ed d
uri
ng
IR
1 ti
me,
use
d d
uri
ng
IR
2 ti
me o
n R
CA
bu
s.
RD =
RA
M D
ata
mov
ed b
y M
OVE
inst
ructi
on
at
IR2
tim
e
dir
ectl
y
from
RAM
to
th
e a
dd
ress
giv
en
by
th
e D
A fi
eld
. V
P =
Vert
ical
Bea
m P
osi
tio
n c
om
par
iso
n b
it
HP
=H
ori
zo
nta
l B
eam
Po
siti
on
co
mp
aris
on
bit
V
E =
En
able
co
mp
aris
on
(mas
k b
it)
HE
=E
nab
le c
om
par
iso
n (m
ask
bit
) •
NO
TE
BF
D=
Bli
tter
fi
nis
hed
dis
ab
le.
Whe
n th
is b
it i
s t
rue,
the B
litt
er
Fin
ish
ed
fl
ag
wil
l h
ave
no
eff
ect
on
th
e C
op
per
. W
hen
this
bit
is z
ero
th
e B
litt
er
Fin
ish
ed
fl
ag
mu
st b
e t
rue
(in
ad
dit
ion
to
th
e r
est
of
the
bit
co
mp
aris
on
s)
befo
re t
he C
op
per
can
ex
it
from
its
wait
sta
te,
or
skip
ov
er
an in
stru
cti
on
. N
ote
th
at
the
V7
com
par
iso
n c
an
no
t b
e m
ask
ed.
The
Co
pp
er is
basic
all
y a
2
cy
cle
mac
hin
e th
at
req
uest
s th
e b
us
on
ly d
uri
ng
od
d !
OO
!l\O
ry c
ycle
s.
(4 m
=mor
y cy
cle
s p
er
in)
Th
is p
rev
en
ts c
oll
isio
ns w
ith
Dis
pla
y,
Au
dio
, D
isk
, R
efre
sh,
and
Sp
rite
s, all
o
f w
hic
h u
se o
nly
ev
en c
ycle
s. It
there
fore
n
eed
s (a
nd
ha
s) p
rio
rity
ov
er
on
ly t
he B
litt
er
and
Mic
ro.
Th
ere
are
on
ly t
hre
e t
yp
es
of
inst
ructi
on
s:
MOV
E im
ned
iate
, W
AIT
u
nti
l,
and
SK
IP if
. A
ll in
stru
cti
on
s (e
xce
pt
for
WA
IT)
req
uir
e 2
b
us
cy
cle
s (a
nd
tw
o i
nstr
ucti
on
wo
rds)
.
Sin
ce o
nly
th
e o
dd
bu
s cy
cle
s are
req
uest
ed
, 4
mem
ory
cy
cle
tim
es
are
req
uir
ed
per
inst
ructi
on
. (m
emor
y cy
cle
s are
28
0 n
s)
Th
ere
are
tw
o i
nd
irect
jum
p re
gis
ters
CO
PlL
C
and
CO
P2L
C.
Th
ese
are
18
bit
po
inte
r re
gis
ters
wh
ose
co
nte
nts
are
u
sed
to
mo
dif
y t
he p
rog
ram
co
un
ter
for
init
iali
zati
on
or
jum
ps.
T
hey
are
tra
nsf
err
ed
to
th
e p
rog
ram
co
un
ter
wh
enev
er s
tro
be
ad
dre
sses
CO
PJM
PI o
r C
OPJ
MP2
are
wri
tten
. In
ad
dit
ion
CO
PlL
C
is a
uto
mati
call
y u
sed
at
the b
eg
inn
ing
of
each
vert
ical
bla
nk
tim
e.
It
is i
mp
ort
an
t th
at
on
e o
f th
e
jum
p re
gis
ters
be i
nit
iali
zed
an
d i
ts j
ump
stro
be a
dd
ress
hit
, aft
er
po
wer
up
bu
t b
efo
re
Aug
25
20
:41
19
85
J\
ppen
d1x.
...}.
Pag
e 1
0
DIW
STR
T D
IWST
OP
DD
FSTR
T D
DFS
TOP
DMAC
ON
DMAC
ONR
Cop
per
DMA
is i
nit
iali
zed
. T
his
in
sure
s a
det
erm
ined
sta
rtu
p a
dd
ress
an
d s
tate
.
08E
W
A
D
isp
lay
Win
dow
Sta
rt
(up
per
le
ft v
ert
-ho
r p
os)
0
90
W
A
D
isp
lay
Win
dow
Sto
p
(lo
wer
rig
ht
vert
-ho
r p
os)
T
hese
reg
iste
rs c
on
tro
l th
e D
isp
lay
win
dow
siz
e a
nd
po
siti
on
, b
y l
ocati
ng
th
e u
pp
er l
eft
an
d
low
er r
igh
t co
rners
. B
IT#
15
,14
,13
,12
,11
,10
,09
,08
,07
,06
,05
,04
,03
,02
,01
,00
~ V7%~~~~~~m~EMIDmmOO
DIW
STR
T is
vert
icall
y r
estr
icte
d t
o t
he u
pp
er 2
/3
of
the d
isp
lay
(V
8=O
),
and
ho
rizo
nta
lly
restr
icte
d t
o t
he
le
ft 3
/4 o
f th
e d
isp
lay
(H8
=O
) .
DIW
STO
P is
vert
icall
y r
estr
icte
d t
o t
he
lo
wer
1/2
o
f th
e d
isp
lay
01
8=/=
V7)
, an
d h
ori
zo
nta
lly
restr
icte
d t
o t
he
ri
gh
t 1
/4 o
f th
e d
isp
lay
(H8=
1) .
09
2
W
A
Dis
pla
y d
ata
fe
tch
sta
rt (
Ho
riz
.Po
siti
on
) 0
94
W
A
D
isp
lay
data
fe
tch
sto
p(H
ori
z.P
osi
tio
n)
Th
ese
reg
iste
rs c
on
tro
l th
e h
ori
zo
nta
l ti
min
g o
f th
e
beg
inn
ing
an
d e
nd
of
the B
it P
lan
e D
MA
dis
pla
y d
ata
fe
tch
. T
he v
ert
ical
Bit
Pla
ne D
MA
tim
ing
is i
den
tical
to t
he D
isp
lay
w
indo
ws
desc
rib
ed
ab
ov
e.
The
Bit
Pla
ne M
odul
os a
re d
epen
den
t o
n t
he B
it P
lan
e
ho
rizo
nta
l siz
e,
and
on
th
is d
ata
fe
tch
win
dow
siz
e.
Reg
iste
r b
it a
ssig
nm
ent
BIT
# 1
5,1
4,1
3,1
2,1
1,1
0,0
9,0
8,0
7,0
6,0
5,0
4,0
3,0
2,0
1,0
0
~ XXXxxXXX~m~EMIDXX
(X b
its s
ho
uld
alw
ays
be d
riv
en
wit
h 0
to
main
tain
u
pw
ard
co
np
ati
hH
ity
)
Th
e ta
ble
s b
elo
w s
how
th
e s
tart
an
d s
top
tim
ing
fo
r d
iffe
ren
t re
gis
ter
co
nte
nts
. D
DFS
TRT
(Left
ed
ge
of
dis
pla
y d
ata
fe
tch
)
PUR
POSE
H
8,m
,HG
,E,H
4
Ex
tra w
ide
wid
e n
orm
al
nar
row
(max
) •
0 0
1 0
1 0
01
10
0
01
11
o
1 0
00
DD
FSTO
P (R
igh
t ed
ge
of
dis
pla
y d
ata
fetc
h)
PUR
POSE
nar
row
n
orm
al
wid
e (m
ax)
H8,
H7,
H6,
HS
,H4
1 1
00
1
11
01
0
11
01
1
09
6
WA
D P
D
MA
co
ntr
ol
wri
te(c
lear
or
se
t)
00
2 R
AP
DM
A co
ntr
ol
(and
bU
tter
statu
s)
read
T
his
reg
iste
r co
ntr
ols
all
of
the D
MA
ch
an
nels
, an
d c
on
tain
s B
litt
er
DMA
sta
tus b
its.
BIT
# FU
NC
TIO
N
DE
SCR
IPT
ION
![Page 232: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/232.jpg)
Aug
25
2
0:4
1 1
985
App
endi
x-A
Pag
e 11
DSK
PTII
DSK
PTL
DSK
LEN
DSK
DA
T D
SKD
ATR
DSK
BYTR
15
14
13
12
1
1
10
09
08
07
0
6
05
04
03
02
01
0
0
SET
/CL
R
BBU
SY
BZER
O
X
X
BLT
PRI
DMAE
N BP
LEN
CO
PEN
BL
TEN
SP
REN
D
SKEN
A
UD
3EN
A
UD
2EN
A
UD
1EN
AU
DOEN
Set/
Cle
ar
co
ntr
ol
bit
. D
eter
min
es i
f b
its
wri
tten
wit
h a
1
get
set
or
cle
are
d.
Bit
s w
ritt
en
wit
h a
ze
ro a
re u
ncha
nged
. B
litt
er
bu
sy s
tatu
s b
it
(rea
d o
nly
) B
litt
er
log
ic
zero
sta
tus
bit
. (r
ead
on
ly)
Bli
tter
DMA
pri
ori
ty(o
ver
CPU
mic
ro)
(als
o c
all
ed
"B
litt
er
Nas
ty")
(d
isab
les
/BL
S p
in,
pre
ven
tin
g m
icro
fr
om s
teali
ng
an
y b
us
cycl
es w
hil
e b
litt
er
DMA
is r
un
nin
g)
En
able
all
DM
A be
low
B
it P
lan
e DM
A en
able
C
oppe
r DM
A en
able
B
litt
er
DMA
enab
le
Sp
rite
DM
A en
able
D
isk
DM
A en
able
A
udio
ch
ann
el
3 DM
A en
able
A
udio
ch
ann
el
2 DM
A en
able
A
udio
ch
ann
el
1 DM
A en
able
A
udio
ch
ann
el 0
DM
A en
able
020
W
A
Dis
k p
oin
ter
(Hig
h 3
bit
s)
022
W
A
Dis
k p
oin
ter
(Low
15
bit
s)
Th
is p
air
of
reg
iste
rs c
on
tain
s th
e 1
8 b
it a
dd
ress
o
f D
isk
DM
A d
ata
. T
hese
ad
dre
ss r
eg
iste
rs m
ust
be
init
iali
zed
by
th
e p
roce
sso
r o
r C
oppe
r b
efo
re d
isk
DM
A is
en
able
d.
024
W
P D
isk
len
gth
T
his
reg
iste
r co
nta
ins
the
len
gth
(n
umbe
r o
f w
ords
) o
f D
isk
DM
A d
ata
. It
als
o c
on
tain
s 2
co
ntr
ol
bit
s.
The
se
are
a
DMA
enab
le b
it,
and
a DM
A d
irecti
on
(read
/wri
te)
bit
. B
IT#
15
DMAE
N 1
4
WRI
TE
13
-0
LEN
Gl'H
Dis
k D
MA
En
able
D
isk
Wri
te (R
AM to
Dis
k)
if 1
L
eng
th
(# o
f w
ords
) o
f D
MA
data
.
026
W
P D
isk
DM
A D
ata
wri
te
008
ER
P D
isk
DM
A D
ata
read
(e
arl
y r
ead
dum
my
add
ress
) T
his
reg
iste
r is
th
e D
isk-
DM
A d
ata
bu
ffer.
It
co
nta
ins
2 b
yte
s o
f d
ata
th
at
are
eit
her
sen
t to
(w
rite
) o
r re
ceiv
ed
from
(r
ead
) th
e d
isk
. T
he w
rite
mod
e is
en
able
d b
y b
it
14 o
f th
e L
ENG
l'H r
eg
iste
r.
The
DM
A co
ntr
oll
er
auto
mat
ical
ly
tran
sfers
data
to
or
from
th
is r
eg
iste
r an
d RA
M,
and
whe
n th
e D
MA
data
is
fin
ish
ed
(Len
gth=
O)
it c
ause
s a
Dis
k
Blo
ck I
nte
rru
pt.
S
ee i
nte
rru
pts
bel
ow
.
OlA
R
P
Dis
k D
ata
by
te a
nd s
tatu
s re
ad
T
his
reg
iste
r is
th
e D
isk
-Mic
rop
roce
sso
r d
ata
bu
ffer.
D
ata
from
th
e d
isk
(i
n r
ead
mod
e)
is l
oad
ed i
nto
th
is
reg
iste
r on
e b
yte
at
a ti
me,
an
d b
it 1
5 (D
SKBY
T)
is s
et
tru
e.
BIT
# 1
5
DSK
BYT
Dis
k b
yte
rea
dy
(r
ese
t o
n r
ead
)
Allg
25
2
0:4
1 1
985 Append~ P
age
12
DSK
SYN
C
INTR
EQ
INTR
EQR
INTE
NA
IN
TEN
AR
JOY
OD
AT
JOY
lDA
T
14
DM
AON
13
D
ISK
WR
ITE
12
~RDEQUAL
11
-08
X
0
7-0
0 D
ATA
Mir
ror
of
bit
15
(DM
AEN)
in
DSK
LEN
, an
d-e
d w
ith
Bit
09
(D
MAE
N)
in D
MAC
ON
Mir
ror
of
bit
14
(W
RIT
E)
in D
SKLE
N
Th
is b
it t
rue o
nly
wh
ile
DSK
SYN
C re
gis
ter
equ
als
the d
ata
fr
om d
isk
N
ot u
sed
D
isk
by
te d
ata
07
E
W
P D
isk
sy
nc
reg
iste
r,
ho
lds
the m
atch
co
de
for
dis
k r
ead
sy
nch
ron
izati
on
. S
ee A
DKCO
N b
it 1
0.
09C
W
P
Inte
rru
pt
Req
ues
t b
its
(Cle
ar o
r se
t)
OlE
R
P
Inte
rru
pt
req
uest
bit
s
(rea
d)
Th
is r
eg
iste
r co
nta
ins
inte
rru
pt
req
uest
bit
s(o
r fl
ag
s).
Th
ese
bit
s m
ay b
e p
oll
ed
by
th
e p
rocess
or,
an
d i
f e
nab
led
b
y t
he b
its l
iste
d i
n t
he n
ex
t re
gis
ter,
th
ey
may
cau
se
pro
cess
or
inte
rru
pts
. B
oth
a set
and
cle
ar
op
erat
ion
are
req
uir
ed
to
lo
ad a
rbit
rary
data
in
to t
his
reg
iste
r.
Th
ese
statu
s b
its a
re n
ot
au
tom
ati
call
y r
ese
t w
hen
the i
nte
rru
pt
is s
erv
iced
, an
d m
ust
be r
ese
t w
hen
desi
red
by
wri
tin
g t
o t
his
ad
dre
ss.
The
bit
ass
ign
men
ts
are
id
en
tical
to t
he E
nab
le r
eg
iste
r b
elo
w.
09A
W
P
Inte
rru
pt
En
able
bit
s
(cle
ar
or
set
bit
s)
OIC
R
P
Inte
rru
pt
En
able
bit
s R
ead
Th
is r
eg
iste
r co
nta
ins
inte
rru
pt
en
ab
le b
its.
The
bit
as
sig
nm
ent
for
bo
th t
he r
eq
uest
, an
d e
nab
le r
eg
iste
rs
is g
iven
bel
ow
. B
IT#
EUN
CT
LEV
EL
DES
CR
IPTI
ON
15
14
1
3
12
11
1
0
09
0
8
07
0
6
05
0
4
03
02
0
1
00
SET
/CL
R
INTE
N
EXTE
R 6
DSK
SYN
5
RBE
5 A
UD
3 4
AU
D2
4 A
UD
1 4
AUOO
4
BL
IT
3 V
ERTB
3
COPE
R 3
POR
TS
2 SO
FT
1 D
SKBL
K
1 TB
E 1
Set/
Cle
ar
co
ntr
ol
bit
. D
eter
min
es i
f b
its
wri
tten
wit
h a
1
get
set
or
cle
are
d.
Bit
s w
ritt
en
wit
h a
zero
are
alw
ays
un
chan
ged
. M
aste
r in
terr
up
t (e
nab
le o
nly
,
no r
eq
uest
) E
xte
rnal
in
terr
up
t D
isk
Syn
c re
gist
er(D
SK
SY
NC
)mat
ches
Dis
k d
ata
S
eri
al
po
rt R
ecei
ve
Bu
ffer
Fu
ll
Aud
io c
han
nel
3 b
lock
fin
ish
ed
A
udio
ch
ann
el 2
blo
ck f
inis
hed
A
lldi
o ch
ann
el 1
blo
ck f
inis
hed
A
udio
ch
ann
el 0
b
lock
fin
ish
ed
B
litt
er
fin
ish
ed
S
tart
of
Vert
ical
bla
nk
C
oppe
r I/
O P
ort
s an
d t
imers
R
eser
ved
fo
r so
ftw
are
init
iate
d i
nte
rru
pt.
D
isk
Blo
ck fi
nis
hed
S
eri
al
po
rt T
ran
smit
Bu
ffer
En
pty
OOA
R
D
Joy
stic
k-m
ou
se 0
d
ata
(l
eft
vert
, h
ori
z)
OOC
R
D
Joy
stic
k-m
ou
se 1
data
(r
igh
t v
ert
, h
ori
z)
Th
ese
add
ress
es e
ach
rea
d a
p
air
of
8 b
it m
ouse
co
un
ters
. O
=le
ft c
on
tro
ller
pair
, l=
rig
ht
co
ntr
oll
er
pair
. (4
co
un
ters
to
tal)
. T
he
bit
usa
ge
for
bo
th l
eft
an
d r
igh
t ad
dre
sses
is s
how
n b
elo
w.
Eac
h co
un
ter
is c
lock
ed b
y s
ign
als
![Page 233: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/233.jpg)
Aug
25
20:4
1 19
85
App
endi
x.J\
Pag
e 1
3
JOY
TEST
from
2 c
on
tro
ller
pin
s.
Bit
s 1
and
0 o
f ea
ch c
ou
nte
r m
ay b
e re
ad t
o d
eter
min
e th
e s
tate
of
these
2 c
lock
pin
s.
Th
is
allo
ws
these
pin
s to
do
ub
le a
s jo
yst
ick
sw
itch
in
pu
ts.
Mou
se c
ou
nte
r u
sag
e (p
ins
1,3
= Y
cloc
k, p
ins
2,4
= X
cloc
k)
BIT
# 1
5,1
4,1
3,1
2,1
1,1
0,0
9,0
8
07
,06
,05
,04
,03
,02
,01
,00
OD
AT
Y7
Y6
Y5
Y4
Y3
Y2
Y1
YO
X7
X6
XS
X4
X3
X2
Xl
XO
1DA
T Y
7 Y
6 Y
5 Y
4 Y
3 Y
2 Y
1 YO
X
7 X
6 X
S X
4 X
3 X
2 X
l XO
The
fo
llo
win
g t
ab
le s
how
s th
e M
ou
se/J
oy
stic
k
con
nec
tor
pin
usa
ge.
T
he p
ins
(and
th
eir
fu
nct
ion
s)
are
sam
pled
(m
ult
iple
xed
) in
to t
he D
ENIS
E ch
ip d
uri
ng
th
e c
lock
tim
es s
how
n in
th
e t
ab
le.
Th
is t
ab
le i
s
for
refe
ren
ce o
nly
, an
d sh
ou
ld
no
t b
e ne
eded
by
th
e p
rog
ram
rer.
(N
ote
that
the
joy
stic
k f
un
ctio
ns
are
all
"acti
ve l
ow"
at
the
conn
. p
ins.
)
Con
n Jo
yst
ick
M
ouse
S
ampl
ed b
y D
ENIS
E P
in
Fu
nct
ion
F
un
ctio
n
Pin
N
ama
Clo
ck
----
----
L1
FORW
* Y
38
M
OV a
t CC
K L3
LE
FT*
YQ
38
M
OV a
t CC
K*
L2
BACK
*
X
9 M
OH a
t CC
K L
4 R
IGH
* XQ
9
MOH
at
CCK
*
R1
FORW
* Y
39
M
1V a
t CC
K R
3 L
EFT
' YQ
39
M
1V a
t C
CK
' R
2 BA
CK *
X
8 M
lH a
t CC
K R
4 R
IGH
' XQ
8
MlH
at
CCK
*
Aft
er b
ein
g s
ampl
ed,
these
Co
nn
ecto
r P
in s
ign
als
are
use
d i
n q
uad
ratu
re t
o c
lock
th
e M
ouse
Co
un
ters
. T
he L
EFT
and
RIG
HT
joy
stic
k f
un
ctio
ns
(act
ive
hig
h)
are
dir
ectl
y a
vail
ab
le o
n th
e Y
1 an
d X
l b
its o
f ea
ch c
ou
nte
r.
In o
rder
to
recre
ate
th
e F
ORW
ARD
and
BACK
jo
yst
ick
fu
nct
ion
s;
how
ever
, it
is
nec
essa
ry t
o l
og
icall
y c
ombi
ne
(ex
clu
siv
e O
R)
the l
ower
tw
o b
its o
f ea
ch c
ou
nte
r.
Th
is i
s i
llu
stra
ted
in
th
e f
oll
ow
ing
tab
le.
To d
ete
ct
For
war
d L
eft
Bac
k R
igh
t
read
th
ese
co
un
ter
bit
s
Y1
xo
r YO
(B
IT#0
9 x
or
BIT
#08)
Y
1 X
l x
or
XO
(BIT
#Ol
xo
r B
IT#O
O)
Xl
036
W
D
Wri
te t
o a
ll 4
Jo
yst
ick
-mo
use
co
un
ters
at
on
ce.
Mou
se c
ou
nte
r w
rite
test
data
B
IT#
15
,14
,13
,12
,11
,10
,09
,08
0
7,0
6,0
5,0
4,0
3,0
2,0
1,0
0
ODAT
Y
7 Y
6 Y
5 Y
4 Y
3 Y
2 xx x
x
X7
X6
XS
X4
X3
X2
xx x
x
!DA
T Y
7 Y
6 Y
5 Y
4 Y
3 Y
2 xx x
x
X7
X6
X5
X4
X3
X2
xx x
x
Aug
25
20
:41
198
5 A
ppen
dix.
J\ P
age
14
POTO
OA
T PO
TlD
AT
POTG
O
POTI
NP
RE
FPTR
SERD
AT
SER
DAT
R
012
R
P P
ot
cou
nte
r d
ata
left
pair
(v
ert
,ho
riz)
014
R
P P
ot
cou
nte
r d
ata
rig
ht
pair
(v
ert
,ho
riz)
The
se a
dd
ress
es e
ach
rea
d a
pair
of
8 b
it p
ot
cou
nte
rs.
(4 c
ou
nte
rs t
ota
l).
The
bit
ass
igru
oont
fo
r b
oth
ad
dre
sses
is s
how
n be
low
. T
he
cou
nte
rs a
re s
top
ped
by
sig
nals
fr
om 2
co
ntr
ol1
er c
on
necto
rs(l
eft
-rig
ht)
w
ith
2 p
ins
each
. B
IT#
15
,14
,13
,12
,11
,10
,09
,08
0
7,0
6,0
5,0
4,0
3,0
2,0
1,0
0
RIG
HT
Y7
Y6
Y5
Y4
Y3
Y2
Y1
YO
X7
X6
XS
X4
X3
X2
Xl
XO
LEFT
Y
7 Y
6 Y
5 Y
4 Y
3 Y
2 Y
1 YO
X
7 X
6 X
S X
4 X
3 X
2 X
l XO
CO
NNEC
TORS
--
----
----
----
----
--PA
ULA
lo
co
dir
. sy
m
pin
p
in#
p
in n
ame
----
---
----
----
RIG
HT
Y
RY
9 3
6
(PO
TlY
) R
IGH
T X
RX
5
35
(PO
TlX
) LE
FT
Y
LY
9 33
(P
OTO
Y)
LEFT
X
LX
5
32
(PO
TOX
)
03
4
W
P P
ot
Po
rt
(4 b
it)
Dir
ecti
on
and
Dat
a,
and
Po
t C
ou
nte
r sta
rt.
01
6
R
P P
ot
pin
dat
a re
ad
028
Th
is r
eg
iste
r co
ntr
ols
a
4 h
it h
i-d
irecti
on
al
I/O
po
rt
that
shar
es t
he s
ame
4 p
ins
as t
he 4
po
t co
un
ters
abo
ve.
BIT
# FU
NCT
D
ESC
RIP
TIO
N
15
OUTR
Y 14
D
ATR
Y
13
OUTR
X 12
DA
TRX
11
OU
TLY
10
DA
TLY
09
O
UTL
X
08
DA
TLX
0
7-0
1
0 0
0
STA
RT
Ou
tpu
t en
able
fo
r P
aula
pin
36
I/O
data
Pau
la p
in 3
6 O
utp
ut
enab
le f
or
Pau
la p
in 3
5 I/
O d
ata
Pau
la p
in 3
5 O
utp
ut
enab
le f
or
Pau
la p
in 3
3 I/
O d
ata
Pau
la p
in 3
3 O
utp
ut
enab
le f
or
Pau
la p
in 3
2 I/
O d
ata
Pau
la p
in 3
2 R
eser
ved
for
chip
ID
co
de
(pre
sen
tly
0)
Sta
rt p
ots
(d
ump
cap
acit
ors
, sta
rt c
ou
nte
rs)
W
A
Ref
resh
po
inte
r T
his
reg
iste
r is
use
d a
s a
Dyn
amic
RAM
refr
esh
ad
dre
ss
gen
erat
or.
It
is w
rite
able
fo
r te
st
pu
rpo
ses
on
ly,
and
sho
uld
nev
er b
e w
ritt
en
by
th
e m
icro
pro
cess
or.
03
0
W
P
Seri
al
Po
rt D
ata
and
sto
p b
its w
rite
(T
rans
mit
data
bu
ffer
) T
his
ad
dre
ss w
rite
s d
ata
to
a
Tra
nsm
it d
ata
bu
ffer.
D
ata
from
th
is b
uff
er
is m
oved
in
to a
se
rial
sh
ift
reg
iste
r fo
r o
utp
ut
tran
smis
sio
n,
whe
neve
r it
is E
!!Ip
ty.
Th
is s
ets
th
e
Inte
rru
pt
Req
ues
t TB
E (t
ran
smit
bu
ffer
eu
pty
). A
sto
p b
it
mus
t b
e p
rov
ided
as
part
of
the d
ata
wor
d.
The
len
gth
o
f th
e d
ata
wor
d is
set
by
th
e p
osi
tio
n o
f th
e s
top
bit
. B
IT#
15
,14
,13
,12
,11
,10
,09
,08
,07
,06
,05
,04
,03
,02
,01
,00
U
SE
0 0
0 0
0 0
S D
B
D7
D6
05 D
4 D
3 D
2 01
00
n
ote
: S=
sto
p b
it =
1.
D= d
ata
bit
s
018
R
P S
eri
al
Po
rt D
ata
and
Sta
tus
read
![Page 234: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/234.jpg)
Aug
25
20
:41
198
5 A
ppen
dix.
...A
Pag
e 1
5
SER
PER
SPR
xPTH
SP
RxP
TL
SPR
xPO
S SP
RxC
TL
(Rec
eiv
e d
ata
bu
ffer)
T
his
ad
dre
ss r
ead
s d
ata
fr
om a
R
ecei
ve
data
bu
ffer.
D
ata
in t
his
bu
ffer
is
load
ed
from
a
receiv
ing
sh
ift
reg
iste
r w
hene
ver
it i
s fu
ll.
Sev
eral
in
terr
up
t re
qu
est
bit
s a
re a
lso
re
ad
at
this
ad
dre
ss,
alo
ng
wit
h t
he d
ata,
as
show
n b
elo
w.
BIT
# 1
5
14
13
12
11
10
0
9
08
0
7
06
05
04
03
02
0
1
00
OVRU
N
RBF
TBE
TSR
E
RXD
0 STP
STP-
DB
B
DB7
D
B6
DB5
D
M
DB3
D
B2
DB1
DB
O
Seri
al
po
rt r
eceiv
er
ov
erru
n
Res
et b
y r
ese
ttin
g B
it 1
1 o
f IN
TR
EQ
S
eri
al
po
rt R
ecei
ve
Bu
ffer
Fu
ll
(mir
ror)
S
eri
al
po
rt T
ran
smit
Bu
ffer
En
pty
(m
irro
r)
Seri
al
po
rt T
ran
smit
sh
ift
reg
. en
pty
R
eset
by
lo
adin
g i
nto
bu
ffer.
R
XD p
in r
eceiv
es
UART
seri
al
data
fo
r d
irect
bit
test
by
th
e m
icro
N
ot
use
d
Sto
p b
it
Sto
p b
it i
f L
ON
G,
Dat
a b
it i
f n
ot.
D
ata
bit
D
ata
bit
D
ata
bit
D
ata
bit
D
ata
bit
D
ata
bit
D
ata
bit
D
ata
bit
032
W
P S
eri
al
Po
rt P
erio
d a
nd c
on
tro
l T
his
reg
iste
r co
nta
ins
the c
on
tro
l b
it L
ONG
refe
rred
to
ab
ov
e,
and
a
15 b
it n
umbe
r d
efi
nin
g t
he s
eri
al
po
rt
Bau
d R
ate.
If
th
is n
umbe
r is
N,
then
th
e B
aud
Rat
e is
1
bit
ev
ery
(N
+l)
*.2
79
4
Mic
rose
con
ds.
B
IT#
15
LON
G
14
-00
RA
TE
Def
ines
Seri
al
Rec
eiv
e as
9 b
it w
ord.
D
efin
es B
aud
Rat
e=I/
«N
+l)
*.2
79
4 m
icro
sec.
)
120
W
A
Sp
rite
x p
oin
ter
(Hig
h 3
bit
s)
122
W
A
Sp
rite
x p
oin
ter
(Low
15
bit
s)
Th
is p
air
of
reg
iste
rs c
on
tain
s th
e 1
8 b
it a
dd
ress
o
f S
pri
te x
(x
=O
,1,2
,3,4
,5,6
,7)
DMA
data
. T
hes
e ad
dre
ss
reg
iste
rs m
ust
be
init
iali
zed
by
th
e p
roce
sso
r o
r C
oppe
r ev
ery
vert
ical
bla
nk
tim
e.
14
0
WA
D
Sp
rite
x
Ver
t-H
ori
z sta
rt p
osi
tio
n d
ata
14
2 W
AD
S
pri
te x
Ver
t st
op
po
siti
on
and
co
ntr
ol
data
T
hes
e 2
reg
iste
rs w
ork
tog
eth
er
as
po
siti
on
, si
ze a
nd
featu
re S
pri
te c
on
tro
l re
gis
ters
. T
hey
are
usu
all
y l
oad
ed
by
th
e S
pri
te D
MA
chan
nel
, d
uri
ng
ho
rizo
nta
l b
lan
k,
how
ever
th
ey
may
be l
oad
ed b
y e
ith
er
pro
cess
or
any
tim
e.
SPR
xPO
S re
gis
ter:
B
IT#
SYM
FU
NCT
ION
15
-08
SV
7-SV
O
Sta
rt v
ert
ical
valu
e.
Hig
h b
it (S
V8)
is
in
SPR
xCTL
re
g b
elo
w.
07
-00
SH
8-SH
1 S
tart
ho
rizo
nta
l v
alu
e.
Low
bit
(SH
O)
is
in S
PRxC
TL r
eg
. b
elo
w.
Aug
25
2
0:4
1 1
985
App
endi
x...A
Pag
e 16
SPR
xDA
TA
SPR
xDA
TB
STRE
QU
ST
RVBL
ST
RHO
R ST
RLO
NG
VPO
SR
VPO
SW
VH
POSR
VHPO
SW
SPR
xCTL
reg
iste
r (w
riti
ng
th
is a
dd
ress
dis
sab
les
sp
rite
h
ori
zo
nta
l co
np
arat
or
cir
cu
it)
: B
IT#
SYM
FU
NCT
ION
15
-08
07
0
6-0
4
02
01
00
EV
7-E
VO
A
TT
X
SV
8 EV
a SH
O
End
(s
top
) v
ert
. v
alu
e.
low
8 b
its
Sp
rite
att
ach
co
ntr
ol
bit
(odd
sp
rite
s)
Not
use
d
Sta
rt
vert
. v
alu
e h
igh
bit
E
nd
(sto
p)
vert
. v
alu
e h
igh
bit
S
tart
ho
riz.
val
ue
Low
bit
144
W
D
Sp
rite
x i
mag
e d
ata
reg
iste
r A
14
6 W
D
S
pri
te x
im
age
data
reg
iste
r B
T
hes
e re
gis
ters
bu
ffer
the S
pri
te i
mag
e d
ata
. T
hey
are
u
suall
y l
oad
ed b
y t
he S
pri
te D
MA
chan
nel
bu
t m
ay b
e lo
aded
by
eit
her
pro
cess
or
at
any
tim
e.
Whe
n a
ho
rizo
nta
l co
np
aris
on
occ
urs
th
e b
uff
ers
are
dun
ped
into
sh
ift
reg
iste
rs
and
seri
all
y o
utp
utt
ed t
o t
he d
isp
lay
, M
SB fi
rst
on t
he l
eft
. N
OTE
: W
riti
ng
to
th
e A
bu
ffer
enab
les
(arm
s)
the s
pri
te.
Wri
tin
g t
o t
he S
PRxC
TL re
gis
ter
dis
sab
les
the s
pri
te.
If e
nab
led
, d
ata
in
th
e A
an
d B
bu
ffers
wil
l b
e o
utp
utt
ed
w
hene
ver
the b
eam
co
un
ter
eq
uals
th
e s
pri
te h
ori
zo
nta
l p
osi
tio
n v
alu
e i
n t
he S
PRxP
OS
reg
iste
r.
038
S D
S
tro
be
for
ho
riz s
yn
c w
ith
VB
and
EQU
03A
S
D
Str
ob
e fo
r h
ori
z s
yn
c w
ith
VB
(Ver
t.
Bla
nk)
03C
S
D P
S
tro
be
for
ho
riz s
yn
c 03
E
S D
S
tro
be
for
iden
tifi
cati
on
of
lon
g h
ori
z.
lin
e.
One
of
the f
irst
3 st
rob
e a
dd
ress
es a
bo
ve
is p
laced
on
th
e
dest
.ad
dr.
bu
s d
uri
ng
th
e f
irst
refr
esh
tim
e slo
t.
The
4th
str
ob
e s
how
n ab
ove
is u
sed
du
rin
g t
he s
eco
nd
re
fresh
tim
e slo
t o
f ev
ery
oth
er
lin
e,
to i
den
tify
li
nes
wit
h l
on
g c
ou
nts
(2
28
).
Th
ere
are
4
refr
esh
tim
e slo
ts,
and
an
y n
ot
use
d fo
r st
rob
es
wil
l le
ave
a n
ull
(F
F)
add
ress
on
th
e d
est
.ad
dr.
bu
s.
00
4
R
A
Rea
d V
ert
mo
st s
ig.
bit
(a
nd
fram
e fl
op
) 02
A
W
A
Wri
te V
ert
mos
t si
g.
bit
(a
nd f
ram
e fl
op
) B
ITi
15
,14
,13
,12
,11
,10
,09
,08
,07
,06
,05
,04
,03
,02
,01
,00
U
SE
LO
F--
----
----
----
,--
----
----
----
va
LO
F=L
ong
fram
e (a
uto
to
gg
le c
on
tro
l b
it i
n B
PLCO
NO
)
00
6
R
A
Rea
d V
ert
and
Ho
riz
Po
siti
on
of
bea
m
or
lig
htp
en
02
C
W
A
Wri
te V
ert
and
Ho
riz
Po
siti
on
of
bea
m
or
lig
htp
en
B
ITi
15
,14
,13
,12
,11
,10
,09
,08
,07
,06
,05
,04
,03
,02
,01
,00
U
SE
V7
V6
V5
V4
V3
V2
V1
VO
,H8
H7
H6
H5
H4
H3
H2
H1
RE
SOL
UT
ION
=1/1
60 O
F SC
REEN
WID
TH
(280
NS)
![Page 235: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/235.jpg)
Aug
14
00
:51
198
5 A
ppen
di:>
e.-B
Pag
e 1
APP
END
IX B
-A
mig
a H
ard
yar
e M
anua
l
Th
is a
pp
end
ix c
on
tain
s in
form
atio
n a
bo
ut
the r
eg
iste
r se
t,
in a
dd
ress
ord
er.
o.=
Reg
iste
r u
sed
by
DMA
ch
ann
el o
nly
. %
=R
egis
ter
use
d b
y D
MA c
han
nel
usu
all
y,
pro
cess
ors
som
etim
es.
+=
Add
ress
reg
iste
r p
air
. L
oy y
ord
use
s D
B1-
DB
l5,H
igh
wor
d D
BO
-DB
2.
*=A
ddre
ss n
ot
wri
tab
le
by
th
e C
op
roce
sso
r.
~=Address n
ot
wri
tab
le b
y t
he C
op
roce
sso
r u
nle
ss C
OPC
ON
is s
et
tru
e.
A=A
gnus
ch
ip,
D=
Den
ise
ch
ip,
P=
Pau
la c
hip
W
=Wri
te,
R=
Rea
d,
ER
=E
arly
read
. T
his
is a
DM
A d
ata
tra
nsf
er
to R
AM,
from
eit
her
the D
isk
o
r fr
om t
he B
litt
er.
R
am t
imin
g r
eq
uir
es
data
to
be
on t
he b
us
earl
ier
than
mic
rop
roce
sso
r re
ad c
ycl
es.
The
se t
ran
sfers
are
th
ere
fore
in
itia
ted
by
Agn
us
tim
ing
, ra
ther
tha
n a
re
ad a
dd
ress
on
the d
est
.ad
r.b
us.
S
=S
tro
be
(wri
te a
dd
ress
wit
h n
o re
gis
ter
bit
s)
PTL
,PT
H=
l8 b
it P
oin
ter
that
add
ress
es D
MA
data
. M
ust
be
relo
aded
by
a p
roce
sso
r b
efo
re u
se
(Ver
tica
l b
lan
k f
or
Bit
Pla
ne
and
Sp
rite
po
inte
rs,
and
pri
or
to s
tart
ing
th
e B
litt
er
for
Bli
tter
pO
inte
rs)
. LC
L,LC
H=1
8 b
it L
oca
tio
n
(sta
rtin
g a
dd
ress
) o
f DM
A d
ata
. U
sed
to a
uto
mat
ical
ly
resta
rt p
oin
ters
, su
ch a
s th
e C
op
roce
sso
r p
rog
ram
co
un
ter
(du
rin
g
vert
ical
bla
nk
),
an
d th
e A
udio
sam
ple
cou
nte
r (w
hene
ver
the a
ud
io
len
gth
co
un
t is
fi
nis
hed
).
MO
D=1
5 b
it M
odul
o.
A n
umbe
r th
at
is a
uto
mat
ical
ly a
dded
to
th
e m
emor
y ad
dre
ss
at
the e
nd
of
each
lin
e t
o g
ener
ate
the a
dd
ress
fo
r th
e b
egin
nin
g o
f th
e n
ext
lin
e.
Th
is a
llo
ys
the B
litt
er
(or
the D
isp
lay
Win
doy)
to
o
pera
te o
n (o
r d
isp
lay
) a
yin
do
y o
f d
ata
th
at
is s
mal
ler
tha
n t
he
actu
al
pic
ture
in
mem
ory.
(m
emor
y m
ap)
Use
s 15
bit
s,
plu
s si
gn
ex
ten
d.
NAM
E AD
D R
jW C
HIP
FU
NCT
ION
--
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
BLTD
DAT
& *
000
ER
A
Bli
tter
dest
. earl
y r
ead
(d
umm
y ad
dre
ss)
DMAC
ONR
*002
R
A
P
DMA
co
ntr
ol
(and
bli
tter
statu
s)
read
V
PO
SR
*0
04
R
A
Rea
d V
ert
mos
t si
g.
bit
(a
nd
fram
e fl
op
) V
HPO
SR
*C06
R
A
R
ead
Ver
t an
d h
ori
z P
osi
tio
n o
f be
am
DSKD
ATR
& *
008
ER
P D
isk
data
earl
y r
ead
(d
umm
y ad
dre
ss)
JOY
OD
AT
*OOA
R
D
Jo
yst
ick
-mo
use
0 d
ata
(v
ert
,ho
riz)
JOY
1DA
T *O
OC
R
D
Joy
stic
k-m
ou
se 1
data
(v
ert
,ho
riz)
CLXD
AT
*OOE
R
D
C
oll
isio
n d
ata
reg
. (R
ead
and
cle
ar)
AD
KCON
R *0
10
R
P A
udio
, d
isk
co
ntr
ol
reg
iste
r re
ad
PO
TOD
AT
*012
R
P
Po
t co
un
ter
pair
0
data
(v
ert
,ho
riz)
POTl
DA
T *0
14
R
P P
ot
cou
nte
r p
air
1 d
ata
(v
ert
,ho
riz)
POTI
NP
*016
R
P
Po
t p
in d
ata
read
SE
RDA
TR
'01
8
R
P S
eri
al
Po
rt D
ata
and
Sta
tus
read
D
SKBY
TR
·OlA
R
P
Dis
k D
ata
by
te a
nd s
tatu
s re
ad
INTE
NA
R ·O
lC
R
P In
terr
up
t E
nab
le b
its R
ead
INTR
EQR
·OlE
R
P
Inte
rru
pt
Req
ues
t b
its r
ead
D
SKPT
H
+
·02
0
W
A
Dis
k p
oin
ter
(Hig
h 3
bit
s)
DSK
PTL
+ ·
02
2
W
A
Dis
k p
oin
ter
(LoW
15
bit
s)
DSK
LEN
·0
24
W
P
Dis
k l
eng
th
DSK
DA
T &
·0
26
W
P
Dis
k D
MA D
ata
wri
te
REF
PTR
&
'0
28
W
A
R
efre
sh p
oin
ter
VPO
SW
·02
A
W
A
Wri
te V
ert
mos
t si
g.
bit
(a
nd
fram
e fl
op
) VH
POSW
·0
2C
W
A
Wri
te V
ert
and
ho
riz P
osi
tio
n o
f b
ea
m
Aug
14
00
:51
198
5 A
ppen
dix.
..8 P
age
2
COPC
ON
SERD
AT
SER
PER
P
O'Im
JO
YTE
ST
STRE
QU
ST
RVBL
ST
RHO
R ST
RLO
NG
BL
TCON
O BL
TCO
N1
BLTA
FM1
BLTA
LM1
BLTC
PTH
BL
TCPT
L BL
TBPT
H
BLTB
PTL
BLTA
PTH
BL
TAPT
L BL
TDPT
H
BLTD
PTL
BLT
SIZE
BLTC
MOD
BL
TBM
OD
BLTA
MOD
BL
TDM
OD
BLTC
DA
T BL
TBD
AT
BLT
AD
AT
DSK
SYN
C C
OPl
LCH
C
OPl
LCL
COP2
LCH
C
OP2
LCL
CO
PJM
P1
CO
PJM
P2
CO
PIN
S D
IWST
RT
DIW
STO
P D
DFS
TRT
DD
FSTO
P DM
ACON
CL
XCON
IN
TEN
A
INTR
EQ
.02E
W
·0
30
W
·0
32
W
·0
34
W
·0
36
W
&
·03
8
S &
'0
3A
S
& '
03
C
S &
'0
3E
S ~040
W
~042
W
~044
W
~046
W
+ ~048
W
+ ~04A
W
+ ~04C
W
+ ~04E
W
+ ~050
W
+ ~052
W
+ ~054
W
+ ~056
W
~058
W
~05A
~05C
~05E
~060
W
~062
W
~064
W
~066
W
~068
~06A
~06C
~06E
& ~070
W
& ~072
W
&
*074
W
*0
76
~078
*07A
~07C
*01£
R
+
0
80
W
+
0
82
W
+
0
84
W
+
0
86
W
0
88
S
08
A
S
08
C
W
08
E
W
09
0
W
092
W
09
4
W
09
6
W
098
W
09A
W
0
9C
W
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
D
D p P P
D
DP
D
Co
pro
cess
or
co
ntr
ol
reg
iste
r (C
DA
NG
) S
eri
al
Po
rt D
ata
and
sto
p b
its w
rite
S
eri
al
Po
rt P
erio
d a
nd c
on
tro
l P
ot
cou
nt
sta
rt,p
ot
pin
dri
ve e
nab
le a
nd
data
W
rite
to
all
4 J
oy
stic
k-m
ou
se c
ou
nte
rs a
t o
nce
. S
tro
be
for
ho
riz s
yn
c y
ith
VB
an
d E
QU
Str
ob
e fo
r h
ori
z s
yn
c w
ith
VB
(V
ert.
B
lank
) S
tro
be
for
ho
riz s
yn
c S
tro
be
for
iden
tifi
cati
on
of
lon
g h
orz
. li
ne.
Bli
tter
co
ntr
ol
reg
iste
r 0
Bli
tter
co
ntr
ol
reg
iste
r 1
Bli
tter
firs
t y
ord
mas
k fo
r so
urc
e A
B
litt
er
last
yo
rd m
ask
for
sou
rce
A
Bli
tter
Po
inte
r to
so
urc
e C
(H
igh
3 b
its)
B
litt
er
Po
inte
r to
so
urc
e C
(L
oy 1
5 b
its)
B
litt
er
po
inte
r to
so
urc
e B
(H
igh
3 b
its)
B
litt
er
po
inte
r to
so
urc
e B
(L
oY 1
5 b
its)
B
litt
er
Po
inte
r to
so
urc
e A
(H
igh
3 b
its)
B
litt
er
Po
inte
r to
so
urc
e A
(L
oy 1
5 b
its)
B
litt
er
Po
inte
r to
des
tn.
D (
Hig
h 3
bit
s)
Bli
tter
Po
inte
r to
des
tn.
D (
Loy
15
bit
s)
Bli
tter
sta
rt a
nd
siz
e
(win
doy
wid
th,
hei
gh
t)
Bli
tter
Mod
ulo
for
sou
rce
C
Bli
tter
Mod
ulo
for
sou
rce
B
Bli
tter
Mod
ulo
for
sou
rce
A
Bli
tter
Mod
ulo
for
des
tn.
D
Bli
tter
sou
rce
C d
ata
reg
B
litt
er
sou
rce
B d
ata
reg
B
litt
er
sou
rce
A d
ata
reg
P D
isk
sy
nc
patt
ern
reg
iste
r fo
r d
isk
rea
d.
A
A
A
A
A
A
A
A
A
A
A
AD
P
D P
P
Co
pro
cess
or
firs
t lo
cati
on
reg
(H
igh
3 b
its)
C
op
roce
sso
r fi
rst
locati
on
reg
. (L
oW 1
5 b
its)
C
op
roce
sso
r se
con
d l
oca
tio
n r
eg
. (H
igh
3 b
its)
C
op
roce
sso
r se
con
d lo
cati
on
reg
(Low
15
bit
s)
Co
pro
cess
or
resta
rt a
t fi
rst
locati
on
C
op
roce
sso
r re
sta
rt a
t se
con
d l
ocati
on
C
op
roce
sso
r in
st.
fetc
h i
den
tify
D
isp
lay
Win
doy
Sta
rt
(upp
er le
ft v
ert
-ho
r p
os)
D
isp
lay
Win
doy
Sto
p
(low
er r
igh
t v
ert
-ho
r p
os)
D
isp
lay
bit
pla
ne d
ata
fe
tch
sta
rt (h
or p
os)
D
isp
lay
bit
pla
ne d
ata
fe
tch
sto
p (h
or p
os)
DM
A co
ntr
ol
wri
te (cle
ar
or
set)
C
oll
isio
n c
on
tro
l In
terr
up
t E
nab
le b
its
(cle
ar
or
set
bit
s)
Inte
rru
pt
Req
ues
t b
its
(cle
ar
or
set
bit
s)
![Page 236: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/236.jpg)
Aug
14
00:.5
1 19
85
App
endi
>L
B P
age
3 A
ug 1
4 0
0:5
1 1
985
App
endi
>L
B P
age
4
ADKC
ON
09E
W
P
Aud
io,
Dis
k,
UART
Co
ntr
ol
10E
A
UD
OLc
rI +
OA
O W
A
A
udio
ch
ann
el 0
lo
cati
on
(H
igh
3 b
its)
B
PLlD
AT
&.
110
W
D
Bit
pla
ne
1 d
ata
(p
ara
llel
to s
eri
al
con
ver
t)
AUDO
LCL
+
0A2
W
A
Aud
io c
han
nel
0
locati
on
(L
ow 1
5 b
its)
BP
L2D
AT
&.
112
W
D
Bit
pla
ne
2 d
ata
(Para
llel
to s
eri
al
con
ver
t)
AUDO
LEN
OM
W
P
Aud
io O
lan
nel
0
len
gth
BP
L3D
AT
&.
114
W
D
Bit
pla
ne 3
dat
a (P
ara
llel
to s
eri
al
con
ver
t)
AUDO
PER
OA
6 W
P
Aud
io c
han
nel
0 P
erio
d
BPL4
DA
T &.
11
6 W
D
B
it p
lan
e 4
data
(P
ara
llel
to s
eri
al
con
ver
t)
AUDO
VOL
0A8
W
P A
udio
Ola
nn
el 0
Vol
wne
BP
L5D
AT
&.
118
W
D
Bit
pla
ne
5 d
ata
(p
ara
llel
to s
eri
al
con
ver
t)
AUDO
DAT
6< O
M
W
P A
udio
ch
ann
el 0
Dat
a BP
L6D
AT
&.
1lA
W
D
B
it p
lan
e 6
data
(p
ara
llel
to s
eri
al
con
ver
t)
OAC
11C
OA
E 11
E
AU
D1L
CH
+
OBO
W
A
Aud
io c
han
nel
1
locati
on
(H
igh
3 b
its)
SP
ROPT
H
+
120
W
A
Sp
rite
0 p
oin
ter
(Hig
h 3
bit
s)
AU
D1L
CL
.. O
B2
W
A
Aud
io c
han
nel
1
locati
on
(L
ow 1
5 b
its)
SP
ROPT
L ..
122
W
A
Sp
rite
0 p
oin
ter
(Low
15
bit
s)
AU
D1L
EN
084
W
P A
udio
Ota
nn
el 1
le
ng
th
SPR
lPT
H
.. 12
4 W
A
S
pri
te 1
po
inte
r (H
igh
3 b
its)
A
UD
lPER
0B
6 W
P
Aud
io c
han
nel
1 P
erio
d
SPR
lPT
L
.. 12
6 W
A
L
Sp
rite
1 p
oin
ter
(LoW
15
bit
s)
AUD1
VOL
0B8
W
P A
udio
Ola
nn
el 1
Vol
ume
SPR
2PTH
..
128
W
A
Sp
rite
2 p
oin
ter
(Hig
h 3
bit
s)
AU
DlD
AT
.Ie
OBA
W
P A
udio
ch
ann
el 1
Dat
a SP
R2P
TL
.. 12
A
W
A
Sp
rite
2 p
oin
ter
(Low
15
bit
s)
OBC
SPR
3PTH
..
12C
W
A
S
pri
te 3
po
inte
r (H
igh
3 b
its)
OB
E SP
R3P
TL
.. 12
E W
A
S
pri
te 3
po
inte
r (L
ow
15 b
its)
A
UD
2LCH
..
OC
O
W
A
Aud
io c
han
nel
2 l
ocati
on
(H
igh
3 b
its)
SP
R4P
TH
.. 13
0 W
A
S
pri
te 4
po
inte
r (H
igh
3 b
its)
A
UD
2LCL
..
OC2
W
A
A
udio
ch
ann
el 2
lo
cati
on
(L
ow 1
5 b
its)
SP
R4P
TL
.. 13
2 W
A
S
pri
te 4
po
inte
r (L
oW 1
5 b
its)
A
UD
2LEN
O
C4
W
P A
udio
Ola
nn
el 2
len
gth
SP
R5P
TH
.. 13
4 W
A
S
pri
te 5
po
inte
r (H
igh
3 b
its)
A
UD
2PER
O
C6
W
P A
udio
ch
ann
el 2
Per
iod
SP
R5P
TL
.. 13
6 W
A
S
pri
te 5
po
inte
r (L
OW 1
5 b
its)
AU
D2VO
L O
CS
W
P A
udio
Ola
nn
el
2 V
olw
ne
SPR
6PTH
..
138
W
A
Sp
rite
6 p
oin
ter
(Hig
h 3
bit
s)
AUD2
DAT
,I. O
CA
W
P
Aud
io c
han
nel
2 D
ata
SPR
6PTL
..
13A
W
A
S
pri
te 6
po
inte
r (L
oW
15 b
its)
OC
C SP
R7P
TH
.. 13
C
W
A
Sp
rite
7 p
oin
ter
(Hig
h 3
bit
s)
OCE
SPR
7PTL
..
13E
W
A
Sp
rite
7 p
oin
ter
(LoW
15
bit
s)
AU
D3L
CH
.. 00
0 W
A
A
udio
ch
ann
el 3
lo
cati
on
(H
igh
3 b
its)
SP
ROPO
S %
14
0 W
A
D
Sp
rite
0 V
ert-
Ho
riz
sta
rt p
osi
tio
n d
ata
AU
D3L
CL
.. O
D2
W
A
Aud
io c
han
nel
3 lo
cati
on
(L
ow 1
5 b
its)
SP
ROCT
L %
14
2 W
A
D
Sp
rite
0 V
ert
sto
p p
osi
tio
n a
nd c
on
tro
l d
ata
A
UD
3LEN
00
4 W
P
Aud
io O
lan
nel
3
len
gth
SP
ROD
ATA
%
14
4 W
D
S
pri
te 0
im
age
data
reg
iste
r A
A
UD
3PER
0
D6
W
P
Aud
io c
han
nel
3 P
erio
d
SPRO
DA
TB
%
146
W
D
Sp
rite
0
imag
e d
ata
reg
iste
r B
AU
D3VO
L OD
S W
P
Aud
io O
lan
nel
3
Vol
wne
SP
RlP
OS
%
148
W
AD
S
pri
te 1
Ver
t-H
ori
z sta
rt p
osi
tio
n d
ata
AUD3
DAT
&.
ODA
W
P A
udio
ch
ann
el 3
Dat
a SP
R1C
TL
%
14A
W
A
D
Sp
rite
1 V
ert
sto
p p
osi
tio
n a
nd c
on
tro
l d
ata
ODC
SPR
lDA
TA
%
14C
W
D
S
pri
te 1
im
age
data
reg
iste
r A
OD
E SP
R1D
ATB
%
14E
W
D
S
pri
te 1
im
age
data
reg
iste
r B
B
PLlP
TH
.. OE
O W
A
B
it p
lan
e 1
po
inte
r (H
igh
3 b
its)
SP
R2P
OS
% 1
50
W
AD
S
pri
te 2
Ver
t-H
ori
z sta
rt p
osi
tio
n d
ata
B
PLlP
TL
.. O
E2
W
A
Bit
pla
ne
1 p
oin
ter
(LoW
15
bit
s)
SPR
2CTL
%
15
2 W
A
D
Sp
rite
2 V
ert
sto
p p
osi
tio
n a
nd c
on
tro
l d
ata
BPL
2PTH
..
OE4
W
A
B
it p
lan
e 2
po
inte
r (H
igh
3 b
its)
SP
R2D
ATA
%
15
4 W
D
S
pri
te 2
im
age
data
reg
iste
r A
B
PL2P
TL
.. O
E6
W
A
Bit
pla
ne
2 p
oin
ter
(Low
15
bit
s)
SPR2
DA
TB
%
156
W
D
Sp
rite
2 i
mag
e d
ata
reg
iste
r B
B
PL3P
TH
.. O
ES
W
A
Bit
pla
ne
3 p
oin
ter
(Hig
h 3
bit
s)
SPR
3PO
S %
15
8 W
A
D
Sp
rite
3 V
ert-
Ho
riz
sta
rt p
osi
tio
n d
ata
BPL
3PTL
..
OEA
W
A
Bit
pla
ne
3 p
oin
ter
(Low
15
bit
s)
SPR
3CTL
%
1S
A
W
AD
S
pri
te 3
Ver
t st
op
pO
Sit
ion
and
co
ntr
ol
dat
a B
PL4P
TH
.. OE
C W
A
B
it p
lan
e 4
po
inte
r (H
igh
3 b
its)
SP
R3D
ATA
%
lS
C
W
D
Sp
rite
3 i
mag
e d
ata
reg
iste
r A
B
PL4P
TL
.. O
EE
W
A
Bit
pla
ne
4 p
oin
ter
(Low
15
bit
s)
SPR3
DA
TB
%
15E
W
D
S
pri
te 3
im
age
data
reg
iste
r B
B
PL5P
TH
.. OF
O W
A
B
it p
lan
e 5
pO
inte
r (H
igh
3 b
its)
SP
R4P
OS
%
160
W
AD
S
pri
te 4
Ver
t-H
ori
z sta
rt p
osi
tio
n d
ata
B
PL5P
TL
.. O
F2
W
A
Bit
pla
ne
5 p
oin
ter
(Low
15
bit
s)
SPR
4CTL
%
16
2 W
A
D
Sp
rite
4 V
ert
sto
p p
osi
tio
n a
nd c
on
tro
l d
ata
B
PL6P
TH
.. O
F4
W
A
Bit
pla
ne
6 p
oin
ter
(Hig
h 3
bit
s)
SPR4
DA
TA
%
164
W
D
Sp
rite
4
imag
e d
ata
reg
iste
r A
B
PL6P
TL
.. O
F6
W
A
Bit
pla
ne
6 p
oin
ter
(Low
15
bit
s)
SPR4
DA
TB
%
166
W
D
Sp
rite
4
imag
e d
ata
reg
iste
r B
O
F8
SPR
5PO
S %
16
8 W
A
D
Sp
rite
5 V
ert-
Ho
riz
sta
rt p
osi
tio
n d
ata
O
FA
SPR
SCTL
%
16
A
W
AD
S
pri
te 5
Ver
t st
op
po
siti
on
and
co
ntr
ol
data
O
FC
SPR5
DA
TA
%
16C
W
D
S
pri
te 5
im
age
data
reg
iste
r A
O
FE
SPR5
DA
TB
%
16E
W
D
S
pri
te 5
im
age
data
reg
iste
r B
BP
LCON
O 10
0 W
A
D
Bit
pla
ne
co
ntr
ol
reg
iste
r(m
isc c
on
tro
l b
its)
SP
R6P
OS
% 1
70
W
AD
S
pri
te 6
Ver
t-H
ori
z sta
rt p
osi
tio
n d
ata
BP
LCO
N1
102
W
D
Bit
pla
ne
co
ntr
ol
reg
(s
cro
ll v
alu
e P
F1,
P
F2)
SP
R6C
TL
% 1
72
W
AD
S
pri
te 6
Ver
t st
op
po
siti
on
and
co
ntr
ol
dat
a BP
LCO
N2
104
W
D
Bit
pla
ne
co
ntr
ol
reg
(p
rio
rity
co
ntr
ol)
SP
R6D
ATA
%
174
W
D
S
pri
te 6
im
age
data
reg
iste
r A
10
6 SP
R6D
ATB
%
17
6 W
D
S
pri
te 6
im
age
data
reg
iste
r B
B
PLlM
OD
10
8 W
A
B
it p
lan
e m
odul
o (o
dd p
lan
es)
SPR
7PO
S %
17
8 W
A
D
Sp
rite
7 V
ert-
Ho
riz
sta
rt p
osi
tio
n d
ata
BPL2
MOD
lO
A
W
A
Bit
Pla
ne
mod
ulo
(eve
n p
lan
es)
SPR
7CTL
%
17A
W
A
D
Sp
rite
7 V
ert
sto
p p
osi
tio
n a
nd c
on
tro
l d
ata
lOC
SP
R7D
ATA
%
17
C
W
D
Sp
rite
7
imag
e d
ata
reg
iste
r A
![Page 237: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/237.jpg)
Au
g
14 0
0:5
1 1
985
Ap
pe
nd
ixJ3
Pa
ge
5
SPR7
DA
TB
%
CO
LOR
oo
CO
LOR
01
COLO
R02
CO
LOR
03
CO
LOR
04
CO
LOR
05
CO
LOR
06
CO
LOR
07
CO
LOR
08
CO
LOR
09
COLO
R 10
CO
LOR
11
COLO
R12
CO
LOR
13
CO
LOR
14
CO
LOR
15
COLO
R 16
CO
LOR
17
CO
LOR
l8
COLO
R 19
CO
LOR
20
COLO
R21
COLO
R22
COLO
R23
CO
LOR
24
CO
LOR
25
COLO
R 26
CO
LOR
27
CO
LOR
28
COLO
R 29
CO
LOR
30
COLO
R 31
RE
SERV
ED
RESE
RVED
N
O-O
P (N
ULL
)
17E
W
18
0 W
18
2 W
18
4 W
18
6 W
18
8 W
18
A
W
18C
W
18
E
W
19
0
W
192
W
19
4
W
19
6
W
198
W
19A
W
1
9C
W
19
E
W
lAO
W
lA
2
W
lA4
W
lA6
W
lA
B
W
1A
A
W
lAC
W
1A
E
W
10
0
W
1B2
W
18
4
W
1B6
W
1B8
W
1BA
W
1B
C
W
1BE
W
1110
X
l11
1X
1F
E
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
Sp
rite
7
ima
ge
data
reg
iste
r B
C
olo
r ta
ble
00
C
olo
r ta
ble
01
C
olo
r ta
ble
02
Co
lor
tab
le 0
3
Co
lor
tab
le 0
4
Co
lor
tab
le 0
5
Co
lor
tab
le 0
6
Co
lor
tab
le 0
7 C
olo
r ta
ble
08
C
olo
r ta
ble
09
Co
lor
tab
le 1
0
Co
lor
tab
le 1
1 C
olo
r ta
ble
12
Co
lor
tab
le 1
3
Co
lor
tab
le 1
4 C
olo
r ta
ble
15
Co
lor
tab
le 1
6 C
olo
r ta
ble
17
Co
lor
tab
le 1
8
Co
lor
tab
le 1
9 C
olo
r ta
ble
20
Co
lor
tab
le 2
1 C
olo
r ta
ble
22
Co
lor
tab
le 2
3 C
olo
r ta
ble
24
Co
lor
tab
le 2
5 C
olo
r ta
ble
26
Co
lor
tab
le 2
7 C
olo
r ta
ble
28
Co
lor
tab
le 2
9 C
olo
r ta
ble
30
Co
lor
tab
le 3
1
![Page 238: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/238.jpg)
Aug
25
20
:47
19
85
A
pp
end
iX-C
Pag
e 1
APP
EN
DIX
C
-A
mig
a H
ard
wa
re M
anu
al
CUST
OM
IC
:PI
N ~TION
LIS
T
NO
TE:
* M
eans
acti
ve l
ow
sig
nal.
AG
NU
S P
IN A
SSIG
NM
ENT
PIN
#
1 2 3 4 5 6 7 8 9 1
0
11
12
1
3
14
1
5
16
1
7
18
1
9
20
21
2
2
23
2
4
25
2
6
27
28
2
9
30
3
1
32
3
3
34
3
5
36
37
38
3
9
40
4
1
42
4
3
44
4
5
DE
SIG
NA
TIO
N
OS D7
D6
D5
D4
D3
D2 Dl
00
V
CC
R
ES*
IN
T3*
D
MAL
B
LS*
D
BR
* A
RW*
RG
AB
RG
A.7
RGA.
6 RG
A.5
RG
A.4
RGA.
3 RG
A.2
R
GA
.l C
CK
C
CK
Q
VSS
DR
AO
DR
Al
DRA
Z DR
A3
DRA4
D
RAS
DRAG
DR
A7
DRA
B LP*
VSY
* C
SY*
HSY
* V
SS
0
15
0
14
D
13
D12
FUN
CTI
ON
D
ATA
BU
S 8
DA
TA B
US
7 D
ATA
BU
S 6
DA
TA B
US
5 D
ATA
BU
S 4
DA
TA B
US
3 D
ATA
BU
S 2
DA
TA B
US
1 D
ATA
BU
S 0
+5
VO
LT
SYST
EM R
ESE
T
INTE
RR
UPT
LEV
EL
3 D
MA
REQ
UES
T L
INE
B
LIT
TE
R
SLOW
DOW
N D
ATA
BU
S R
EQU
EST
AG
NU
S R
AM W
RIT
E R
EG
IST
ER
AD
DR
ESS
8 R
EG
IST
ER
AD
DR
ESS
7 R
EG
IST
ER
AD
DR
ESS
6 R
EG
IST
ER
AD
DR
ESS
5 R
EG
IST
ER
AD
DR
ESS
4 R
EG
IST
ER
AD
DR
ESS
3 R
EG
IST
ER
AD
DR
ESS
2 R
EG
IST
ER
AD
DR
ESS
1 CO
LOR
CLO
CK
CO
LOR
CLO
CK
D
ELA
Y
GR
OU
ND
D
YN
AM
IC R
AM A
DD
RES
S 0
DY
NA
MIC
RAM
AD
DR
ESS
1 D
YN
AM
IC R
AM A
DD
RES
S 2
DY
NA
MIC
RAM
AD
DR
ESS
3 D
YN
AM
IC R
AM A
DD
RES
S 4
DY
NA
MIC
RAM
AD
DR
ESS
5 D
YN
AM
IC R
AM A
DD
RES
S 6
DY
NA
MIC
RAM
AD
DR
ESS
7 D
YN
AM
IC R
AM A
DD
RES
S 8
LIC
lIT
PEN
IN
PUT
V
ERTI
CA
L SY
NC
C
OM
POSI
TE
SYN
C
HO
RIZ
ON
TAL
SYN
C
GR
OU
ND
D
ATA
BU
S 1
5
DA
TA B
US
14
D
ATA
BU
S 1
3
DA
TA B
US
12
DE
FIN
ITIO
N
I/O
I/
O
I/O
I/
O
I/O
I/
O
I/O
I/
O
I/O
I I o I I o o I/
O
I/O
I/
O
I/O
I/
O
I/O
I/
O
I/O
I I I o o o o o o o o o I I/
O
o I/O
I I/
O
I/O
I/
O
I/O
Aug
25
20
:47
19
85
A
pp
end
iX-C
Pag
e 2
46
47
4
8
D11
D
10
D9
DA
TA B
US
11
D
ATA
BU
S 1
0
DA
TA B
US
9
I/O
I/
O
I/O
![Page 239: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/239.jpg)
Aug
25
20:4
7 19
85
App
endi
x....
C P
age
3
DEN
ISE
PIN
ASS
IGN
MEN
T --
----
---
PIN
11
D
ESIG
NA
TIO
N
FUN
CTIO
N
1 D
6 DA
TA B
US 6
2
D5
DATA
BUS
5
3 D
4
DATA
BUS
4
4 D
3 DA
TA B
US
3 5
D2
DATA
BUS
2
6 D
1 DA
TA B
US
1 7
DO
DA
TA B
US a
8
Mill
M
OUSE
1
HO
RIZO
NTA
L 9
MOH
M
OUSE
0 H
ORI
ZON
TAL
10
RGAB
R
EGIS
TER
AD
DRE
SS 8
1
1
RCA
7 R
EGIS
TER
ADD
RESS
7
12
RGA6
R
EGIS
TER
AD
DRE
SS 6
13
RG
AS
REG
ISTE
R A
DD
RESS
5
14
RGA
4 R
EGIS
TER
AD
DRE
SS 4
15
RG
A3
REG
ISTE
R A
DDRE
SS
3 16
RG
A2
REG
ISTE
R A
DD
RESS
2
17
RC
A!
REG
ISTE
R A
DD
RESS
1
18
BU
RST
' CO
LOR
BURS
T 19
VC
C +5
VOL
T 20
RO
V
IDEO
RED
BIT
a
21
R1
VID
EO R
ED B
IT 1
22
R2
V
IDEO
RED
BIT
2
23
R3
VID
EO R
ED B
IT 3
24
E
O
VID
EO B
LUE
BIT
0
25
B1
VID
EO B
LUE
BIT
1
26
B2
VID
EO B
LUE
BIT
2
27
B3
VID
EO B
LUE
BIT
3
28
m
VID
EO G
REEN
B
IT 0
29
G
1 V
IDEO
GRE
EN
BIT
1
30
G2
V
IDEO
GRE
EN B
IT
2 31
G
3 V
IDEO
GRE
EN
BIT
3
32
N/C
NO
T CO
NNEC
TED
DEF
INIT
ION
I/
O
I/O
I/
O
I/O
I/
O
I/O
I/
O
I I I I I I I I I I a I 0 a 0 0 0 0 0 a 0 a a a N/C
Aug
25
20:4
7 19
85
App
endi
JCC
Pag
e 4
33
3
4
35
36
37
38
39
40
41
42
43
4
4
45
46
47
48
ZD'
N/C
7M
CC
K
VS
S
WJV
M
1V
D15
D
14
D13
D
12
D11
D
10
D9
D8
D7
Bll.C
KGR
OU
ND
IN
DIC
ATO
R NO
T CO
NNEC
TED
7.15
909
MH
Z CO
LOR
CLO
CK
GR
OU
ND
M
OUSE
0 V
ERTI
CAL
MOU
SE
1 V
ERTI
CAL
DATA
BUS
15
DATA
BUS
14
DA
TA B
US
13
DATA
BUS
12
DA
TA B
US
11
DATA
BUS
10
DATA
BUS
9
DATA
BUS
8
DATA
BUS
7
o N/C
I I I I I I/
O
I/O
I/
O
I/O
I/
O
I/O
I/
O
I/O
I/
O
![Page 240: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/240.jpg)
Aug
25
20:4
7 19
85
App
endi
x-C
Pag
e 5
PAU
LA P
IN A
SSIG
NM
ENT
----
----
----
----
----
PIN
#
DES
IGN
ATI
ON
FU
NCT
ION
D
EFIN
ITIO
N
1 O
S DA
TA B
US
8 I/
O
2 D
7 DA
TA B
US
7 I/
O
3 D
6 DA
TA B
US
6 I/
O
4 D
5 DA
TA B
US
5 I/
O
5 D
4 DA
TA B
US
4 I/
O
6 D
3 DA
TA B
US
3 I/
O
7 D
2 DA
TA B
US
2 I/
O
8 V
SS
GROU
ND
I 9
D1
DATA
BUS
1
I/O
10
D
O
DATA
BUS
0
I/O
11
R
ES*
SYST
EM R
ESET
I
12
!)M
AL
DM
A RE
QU
EST
LIN
E 0
13
IPLO
* IN
TERR
UPT
LIN
E 0
0 14
IP
L1*
IN
TERR
UPT
LIN
E 1
0 15
IP
L2*
IN
TERR
UPT
LIN
E 2
0 16
IN
T2*
INTE
RRU
PT L
EVEL
2
I 17
IN
T3*
NTE
RRU
PT L
EVEL
3
I 18
IN
T6*
INTE
RRU
PT L
EVEL
6
I 19
RG
A8
REG
ISTE
R A
DD
RESS
8
I 20
R
CA
7
REG
ISTE
R A
DD
RESS
7
I 21
RG
A6
REG
ISTE
R A
DD
RESS
6
I 22
RG
AS
REG
ISTE
R A
DD
RESS
5
I 23
RC
'A4
REG
ISTE
R A
DD
RESS
4
I 24
RG
A3
REG
ISTE
R A
DD
RESS
3
I 25
RG
A2
REG
ISTE
R A
DD
RESS
2
I 26
RC
A!
REG
ISTE
R A
DD
RESS
1
I 27
VC
C +5
VO
LT
I 28
CC
K CO
LOR
CLOC
K I
29
CCKQ
CO
LOR
CLOC
K DE
LAY
I 3
0
AUDB
RI
GH
T A
UD
IO
0 31
AU
DA
LEFT
AU
DIO
0
32
POTO
X
POT
OX
I/O
33
PO
TOY
PO
T OY
I/
O
34
VSS
AN
A
ANAL
CG G
ROUN
D I
35
POTl
X
POT
lX
I/O
36
PO
T1Y
PO
T 1Y
I/
O
37
DKRD
* D
ISK
REA
D DA
TA
I 38
DK
WD*
D
ISK
WRI
TE
DATA
0
39
DKW
E D
ISK
WRI
TE
ENAB
LE
0 4
0
TXD
SE
RIA
L TR
AN
SMIT
DAT
A 0
41
RXD
SE
RIA
L RE
CEIV
E DA
TA
I 42
D
IS
DATA
BUS
15
I/
O
43
D14
DA
TA B
US 1
4 I/
O
44
D
13
DATA
BUS
13
I/
O
45
D12
DA
TA B
US
12
I/O
46
D
11
DATA
BUS
11
I/
O
47
D10
DA
TA B
US
10
I/O
48
D
9 DA
TA B
US
9 I/
O
![Page 241: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/241.jpg)
Aug
25
21
:34
198
5 A
ppen
diX
-P P
age
1
APP
END
IX D
-A
mig
a H
ardw
are
Man
ual
Th
is a
pp
end
ix c
on
tain
s th
e s
yst
em !O
OIIIO
ry m
ap.
SYST
EM M
EMOR
Y M
AP
AD
DRE
SS R
AN
GE
NO
TES
()(x
)()(
)()-
03FF
FF
256k
by
tes
of
RAM
0400
00-0
7FF
FF
25
6k b
yte
s o
f d
isp
lay
RAM
(o
pti
on
car
d)
0800
00-l
FF
FF
F
Do
no
t u
se.
2000
00-9
FFFF
F E
xte
rnal
ex
pan
sio
n s
pac
e
AO
OO
OO
-BEF
FFF
Do
no
t u
se.
BFD
OO
O-B
FDFO
O
8520
-B
(acc
ess
on
ly a
t EV
EN b
yte
ad
dre
sses
)
BFE
OO
1-B
FEF0
1 85
20-A
(a
cces
s o
nly
at
ODD
by
te a
dd
ress
es)
The
u
nd
erli
ned
dig
it c
ho
ose
s w
hich
of
the
16 i
nte
rnal
reg
iste
rs o
f th
e 8
520
is t
o b
e ac
cess
ed.
Reg
iste
r N
ames
are
giv
en b
elow
.
COO
OO
O-O
FEFF
F
OFF
OO
O-O
FFFF
F
EOO
OO
O-E
7FFF
F
E80
000-
EFF
FFF
FOO
OO
O-F
7FFF
F
F800
00-F
FFFF
F
Res
erve
d fo
r fu
ture
use
.
Sp
ecia
l p
urp
ose
ch
ips,
w
here
th
e l
ast
thre
e d
igit
s sp
ecif
y
the c
hip
reg
iste
r I'K
lRD
add
ress
.
The
ch
ip a
dd
ress
es a
re s
pecif
ied
in
sep
ara
te p
ages
im
med
iate
ly
foll
ow
ing
th
is o
vera
ll m
emor
y m
ap.
Res
erve
d fo
r fu
ture
use
-do
no
t u
se.
Exp
ansi
on s
lot
dec
od
ing
.
Res
erv
ed -
do n
ot
use
.
SYST
EM R
OM
DEVE
LOPM
ENT
SYST
EM R
OMs
loca
ted
at
sta
rt a
dd
ress
FEO
OO
O.
FIN
AL
SYST
EM R
OM
s w
ill
pro
bab
ly b
e lo
cate
d a
t FC
OO
OO
.
Aug
25
21: 3
4 19
85
App
endi
X-P
Pag
e 2
The
nam
es o
f th
e r
eg
iste
rs w
ith
in t
he 8
52
0's
are
as
foll
ow
s.
The
ad
dre
ss a
t w
hich
eac
h i
s t
o b
e ac
cess
ed i
s g
iven
here
in
th
is l
ist.
Ad
dre
ss
for:
8520
-A
8520
-B
I NA
ME
I EX
PLA
NA
TIO
N
BFEO
O1
BFE
l01
BFE
201
BFE
301
BFE
401
BFE
501
BFE
601
BFE
701
BFE
801
BFE
901
BFE
A01
B
FEoo
l B
FEC
Ol
BFEO
O1
BFE
Eal
B
FEF0
1
BFDO
OO
BFD
IOO
B
FD20
0 B
FD30
0 B
FD40
0 B
FD50
0 B
FD60
0 B
FD70
0 B
FD80
0 B
FD90
0 BF
DAOO
BF
DBOO
BF
DCOO
BF
DDOO
BF
DEOO
BF
DFO
O
PR
A
PRB
DDRB
D
OR
A TA
LO
TA
RI
TBLO
TB
HI
SDR
ICR
C
RA
C
RB
(wri
te)/
(read
mod
e)
Per
iph
eral
Dat
a R
egis
ter
A
Per
iph
eral
Dat
a R
egis
ter
B
Dat
a D
irec
tio
n R
egis
ter
"A"
Dat
a D
irec
tio
n R
egis
ter
"B"
TIM
ER A
Low
Reg
iste
r TI
MER
A H
igh
Reg
iste
r TI
MER
B L
ow R
egis
ter
TIM
ER B
Hig
h R
egis
ter
Eve
nt L
SB
Eve
nt 8
-
15
Eve
nt M
SB
No
con
nec
t S
eri
al
Dat
a R
egis
ter
Inte
rru
pt
Co
ntr
ol
Reg
iste
r C
on
tro
l R
egis
ter
A
Co
ntr
ol
Reg
iste
r B
![Page 242: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/242.jpg)
Aug
25
20
;54
198
5 A
pp
end
ixJ;
Pag
e 1
APP
END
IX E
A
mlg
a H
ardw
are
Man
ual
Th
is a
pp
end
ix c
on
sist
s o
f th
ree d
isti
nct
part
s, all
rela
ted
to
th
e w
ay
in w
hich
th
e A
mlg
a ta
lks
to t
he o
uts
ide w
orl
d.
The
fi
rst
part
of
this
ap
pen
dix
sp
ecif
ies
the p
ino
uts
of
the e
xte
rnall
y
access
ible
co
nn
ecto
rs a
nd
th
e p
ower
av
ail
ab
le a
t ea
ch c
on
nec
tor.
It
do
es n
ot,
ho
wev
er,
pro
vid
e ti
min
g o
r lo
adin
g i
nfo
rmat
ion
. T
imin
g an
d lo
adin
g i
nfo
rmat
ion
can
be
foun
d in
App
endi
x G
.
The
sec
on
d p
art
of
this
ap
pen
dix
co
nta
ins
a li
st
of
the
co
nn
ecti
on
s fo
r cert
ain
in
tern
al
con
nec
tors
, n
ote
ably
th
e d
isk
.
The
th
ird
part
of
this
ap
pen
dix
sp
ecif
ies
how
vari
ou
s si
gn
als
rela
te t
o
the a
vail
ab
le p
ort
s o
f th
e 8
520.
T
his
in
form
atio
n e
nab
les
the p
rogr
arnr
oor
to r
ela
te t
he p
ort
ad
dre
sses
to
th
e o
uts
ide-
wo
rld
ite
ms
(or
inte
rnal
co
ntr
ol
sig
nals
) w
hich
are
to
be
aff
ecte
d.
The
sec
on
d a
nd t
hir
d p
art
s o
f th
e a
pp
end
ix a
re p
rim
ari
ly f
or
the u
se o
f th
e s
yst
ems
prog
rarn
roor
an
d
sho
uld
gen
era
lly
no
t b
e u
tili
zed
by
ap
pli
cati
on
s p
rog
ram
mer
s.
Sys
tem
s so
ftw
are
no
rmal
ly i
s c
on
fig
ure
d t
o h
and
le t
he s
ett
ing
of
part
icu
lar
sig
nals
, no
mat
ter
how
th
e p
hy
sical
con
nec
tio
ns
may
ch
ang
e.
In o
ther
wor
ds,
if y
ou h
ave
a v
ers
ion
of
the s
yst
em s
oft
war
e w
hich
m
atch
es t
he r
ev
. le
vel
of
the m
achi
ne
(no
rmal
ly a
tr
ue c
on
dit
ion
),
whe
n yo
u as
k t
hat
a p
art
icu
lar
bit
be
set,
yo
u d
on
't c
are
whi
ch p
ort
th
at
bit
is c
on
nec
ted
to
. T
hus
ap
pli
cati
on
s pr
ogra
mm
ers
sho
uld
rely
on
sy
stem
do
cum
enta
tio
n r
ath
er
than
go
ing
dir
ectl
y t
o t
he p
ort
s.
Not
e als
o ·
that
in
th
is,
a m
ult
i-ta
skin
g o
pera
tin
g s
yst
em,
man
y d
iffe
ren
t ·t
ask
s m
ay b
e c
on
:pet
ing
fo
r th
e u
se o
f th
e s
yst
em r
eso
urc
es.
A
pp
lica
tio
ns
prog
ram
mer
s sh
ou
ld
foll
ow
th
e e
stab
lish
ed
ru
les
for
reso
urc
e a
cces
s in
ord
er
to a
ssu
re c
orr
pati
bli
ty o
f th
eir
so
ftw
are
wit
h t
he s
)I's
tem
.
**
-,--
-**
*-*
**
PA
RT
1 -
OU
TSID
E W
ORLD
CO
NN
ECTO
RS
****
****
****
****
****
*'**
****
*
Th
is i
s a
li
st
of
the C
on
nec
tio
ns
to t
he O
uts
ide
Wor
ld o
n t
he A
mlg
a.
SER
IAL
COM
..
. DB
25 F
EMA
LE
(J6)
(t
he
cen
ter
colu
mn
is t
he A
MIG
A. c
on
nec
tio
n,
the o
thers
are
sp
ecif
ied
in
th
is t
ab
le
mer
ely
to
sho
w h
ow t
he A
MIG
A. "
RS
232"
co
nn
ecti
on
cor
rpar
es t
o o
ther
def
ined
in
terc
on
nect
met
hods
) .
Aug
25
20
;54
198
5 A
pp
end
ixJ;
Pag
e 2
PIN
R
S232
AM
IGA.
H
AY
ES
DES
CR
IPTI
ON
--
----
----
----
----
----
----
----
----
----
--1
GN
D
GN
D
FRAM
E GR
OUND
2
TXD
TX
D TX
D TR
AN
SMI T
DAT
A 3
RX
D
RXD
R
XD
REC
EIV
E DA
TA
4 R
TS
RTS
RE
QU
EST
TO S
END
5
CTS
C
TS
CTS
CL
EAR
TO S
END
6
DSR
D
SR
DSR
D
ATA
SET
REA
DY
7
GN
D
GN
D
GN
D
SYST
EM G
ROUN
D 8
CD
CD
CD
C
AR
RIE
R D
ETEC
T 9 1
0
11
12
S
.SD
S
I 13
S.
CT
S 1
4
S.T
XD
-5
-
5 V
OLT
POW
ER
15
TXC
AUOO
A
UD
IO O
UT
OF
AMIG
A.
16
S.R
XD
A
UD
I A
UD
IO
IN
TO A
MIG
A.
17
RXC
EB
BUFF
ERED
PO
RT C
LOCK
716
kHz
18
INT
2*
INTE
RR
UPT
LIN
E TO
AM
IGA.
19
S
.RT
S
20
DTR
D
TR
DTR
D
ATA
TER
MIN
AL
REA
DY
21
SQ
D
+5
+ 5
VO
LT P
OWER
22
R
I R
I 23
SS
+1
2 +1
2 v
olt
pow
er
24
TXC
I C
2*
3.5
8 M
HZ C
LOCK
25
R
ESB
* BU
FFER
ED S
YST
EM R
ESET
PARA
LLEL
COM
..
. DB
25 M
ALE
(J8)
1 DR
DY*
14
G
ND
2
DO
15
G
ND
3
D1
16
GN
D
4 D
2 1
7
GN
D
5 D
3 1
8
GN
D
6 D
4 1
9
GN
D
7 D
5 20
G
ND
8
D6
21
GN
D
9 D
7 22
G
ND
1
0
ACK
* 23
+
5
11
BU
SY
(dat
a)
24
12
POU
T (c
lk)
25
RES
ET*
13
SEL
KEYB
OAR
D
" .R
J11
(J
9)
1 +5
2
CLO
CK
3 DA
TA
4 G
ND
![Page 243: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/243.jpg)
Au
g 2
5 2
0:5
4 1
98
5
App
endi
x...
.E P
ag
e 3
A
ug
25
2
0:5
4 1
98
5
App
endi
x...
.E P
ag
e 4
RG
B
••. D
B23
M
ALE
(3
3)
RA
ME
X
•••
60
PIN
ED
GE
(.1
56
) (P
1)
1 X
CLK
* 1
3
GN
DR
TN
(Ret
urn
for
XC
LKE
N*)
2
XC
LKE
N*
14
ZD
" 1
gn
d
A
gn
d
3 R
ED
1
5
e1
* 2
D1
5
B
D14
4 G
REE
N
16
G
ND
3
+5
e +5
5 B
LUE
1
7
GN
D
4 D
12
D
D13
6 D
I 1
8
GN
D
5 g
nd
E
g
nd
7 D
B
19
G
ND
6
D11
F
D
10
8 0
0
20
G
ND
7
+5
H
+5
9 D
R
21
-5 V
OLT
PO
WER
8
D8
.I
D9
10
C
SY
NC
* 22
+
12
V
OLT
PO
WER
9
gn
d
K
gn
d
11
H
SY
NC
* 2
3
+5
VO
LT P
OW
ER
10
D7
L D
6 1
2
VS
YN
C*
11
+5
M
+
5 1
2 D
4 N
D
5 1
3 g
nd
P
g
nd
T
V V
IDE
O ..
. 8
PIN
DIN
(J
2)
14
D3
R
D2
15
+5
S
+5
1 N
.C.
16
DO
T
D
1 2
GN
D
17
gn
d
U
gn
d
3 A
UD
IO L
EF
T
18
DR
A4
V
DR
A3
4 C
OM
P V
IDE
O
19
DR
AS
W
DR
AZ
5 G
ND
2
0 D
RA
6 X
D
RA
l 6
N.C
. 2
1 D
RA
7 Y
D
RAO
7
+1
2 V
OLT
PO
WER
22
g
nd
Z
g
nd
8
AU
DIO
RIG
HT
2
3 R
AS
" A
A R
RW
* 2
4 g
nd
B
B
gn
d
25
g
nd
e
e g
nd
D
ISK
EX
TER
NA
L ••
• D
B23
FE
MA
LE
(.]7
) 2
6 C
AS
UO
* D
D
CA
SU
1*
27
gn
d
EE
g
nd
1 R
DY
· 1
3
SID
EB
* 2
8 C
AS
LO*
FF
CA
SL
l*
2 D
KR
D*
14
W
PRO
* 2
9
+5
HH
+
5 3
GN
D
15
T
KO
* 3
0 +
5 JJ +
5
4 G
ND
1
6
DK
WE
B*
5 G
ND
1
7
DK
WD
B*
6 G
ND
1
8
ST
EP
B*
7 G
ND
1
9
DIR
B
8 M
TRX
D*
20
S
EL
3B
* 9
SE
L2B
* 2
1
SE
L1
B*
10
D
RE
SB
* 2
2
IND
EX
* 1
1
CH
NG
· 2
3
+1
2
12
+
5
![Page 244: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/244.jpg)
Aug
25
2
0:5
4 1
98
5
App
endi
x....
.E P
ag
e 5
EXPA
NSI
ON
..
. 86
PIN
ED
GE
(.1
) (P
2)
1 g
nd
2
gn
d
3 g
nd
4
gn
d
5 +5
6
+5
7 ex
p
8 -5
9
exp
1
0 +
12
11 e
xp
12
CO
NFI
C
13
gn
d
14
C3*
1
5 C
DA
C 1
6 C
1*
17
OV
R*
18
XRD
Y 1
9 I
NT
2*
20 P
AL
OPE
* 21
AS
22
INT
6*
23
A6
24
A4
25
gn
d
26
A3
27
A2
28 A
7 2
9 A
l 3
0 A
S
31 F
CO
32
A9
33
FC
1 3
4 A
lO
35
FC
2 3
6 A
ll
37
gn
d
38
Al2
3
9 A
l3
40
IP
LO
* 4
1 A
l4
42
IP
Ll*
4
3 A
l5
44
IP
L2
*
45
Al6
4
6
BER
R*
47
Al7
4
8 V
PA*
49
gn
d
SO
E
51
VM
A*
52
Al8
5
3 R
ES*
5
4 A
l9
55
HL
T*
56
A2
0
57
A2
2
58
A21
5
9 A
23
6
0 B
R*
61
g
nd
6
2
BGA
CK*
63
PD
15
64
B
G*
65
PD
14
66
D
TAC
K*
67
PD
13
68
PRW
* 6
9 P
D12
7
0 L
DS*
7
1 P
Dll
7
2
UD
S*
73
gn
d
74
AS*
7
5 P
DQ
7
6 P
D10
7
7 P
D1
78
PD
9 7
9 P
D2
80
PD
8 8
1 P
D3
82
PD
7 8
3 P
D4
84
PD
6 8
5 g
nd
8
6 P
D5
Aug
25
20
:54
19
85
A
ppen
dix.
....E
P
age
6
POO
ER
•••
7 P
IN S
TR
AIG
HT
(.
15
6)
(J1
4)
1 -5
2
+12
3
gn
d
4 g
nd
5
+5
6 +
5 7
tick
JOY
ST
ICK
S ..
. D
89 m
ale
(J
11
= rig
ht
J12
= le
ft)
1 FO
RWA
RD*
(MO
USE
V
) 2
BA
CK
* (M
OU
SE
H)
3 L
EFT
* (M
OU
SE
VQ
) 4
RIG
HT
* (M
OU
SE
HQ)
5 PO
T X
(o
r b
utt
on
3
if u
sed
)
6 F
IRE
* (o
r b
utt
on
1)
7 +
5 8
GN
D
9 PO
T Y
(o
r b
utt
on
2
)
Th
e fo
llo
win
g p
ort
po
wer
all
ocati
on
li
st
is b
ase
d o
n m
any
thin
gs,
inclu
din
g k
now
n p
eri
ph
era
l re
qu
irem
en
ts a
nd
ex
isti
ng
po
wer
su
pp
ly
cap
ab
ilit
ies.
Th
ese
nu
mb
ers
are
ma
xim
um
s fo
r each
po
rt w
hen
use
d
ind
ep
en
den
tly
, b
ut
the
nu
mb
ers
can
be a
ccu
mu
late
d
(ex
cep
t fo
r jo
yst
ick
s)
whe
n a
part
icu
lar
syst
em
co
nfi
gu
rati
on
wil
l g
uara
nte
e
that
it e
xcu
siv
ely
use
s m
ore
th
an
on
e p
ort
.
Th
e p
ow
er p
ins o
f b
oth
jo
ysti
ck
po
rts a
re t
ied
to
geth
er
and
to
a
cu
rren
t li
mit
ed
+5
sup
ply
. T
he
cu
rren
t li
mit
is
cu
rren
tly
set
at
70
0 r
na p
eak
wit
h a
4
00
ma
fold
back
at
stead
y s
tate
sh
ort
cir
cu
it c
on
dit
ion
s.
Th
e co
mb
ined
uti
lizati
on
of
bo
th p
ort
s is
li
mit
ed
to
2
50
rna
to
in
su
re a
m
lnin
rum
vo
ltag
e d
rop
at
the p
ins.
PORT
+
5 (rn
a)
+12
(rna
) -5
(rna
) --
----
----
----
RF
mo
du
lato
r 6
0
RC
B
30
0
17
5
SO
Seri
al
10
0
SO
SO
Ex
tern
al
dis
k
27
0
16
0
Para
llel
10
0
Ex
pan
sio
n
10
00
SO
SO
Jo
ysti
ck
0
12
5
Jo
ysti
ck
1
12
5
![Page 245: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/245.jpg)
Aua
25
2
0: 5
4 19
85
Ap
pen
dix
J; Pa~
7
****
****
****
**
PART
2 -
INTE
RNA
L CO
NN
ECTO
RS
****
****
****
****
****
****
*
DIS
K
INTE
RNA
L ..
. 34
PIN
RIB
BON
'J
10)
1 G
ND
18
D
IRB
2
OlN
G*
19
GN
D
3 G
ND
20
ST
EPB
* 4
MTR
OD*
(led
) 21
G
ND
5
G!'m
22
DK
WDB
* 6
N.C
. 23
G
ND
7
GN
D
24
DKW
EB*
8 IN
DEX
* 25
G
ND
9
GN
D
26
TKO
* 10
SE
LOB*
27
G
ND
1
1
GN
D
28
WPR
O*
12
N.C
. 29
G
ND
13
GN
D 30
DK
RD*
14
N.C
. 31
G
ND
15
GN
D 32
SI
DEB
* 16
M
TROD
* 33
G
ND
17
G
ND
34
RO
Y*
DIS
K
INTE
RNA
L PO
WER
..
. 4 P
IN S
TRA
IGH
T (J
13)
1 +1
2 2
GN
D
3 G
ND
4
+5
**
'**
"""*
'* P
ART
3
-PO
RT S
IGN
AL
ASS
IGN
MEN
TS
FOR
8520
"'*
'--*
*'*
**
'*'*
'
Add
ress
BFF
R01
d
ata
bit
s 7
-0
(Al2
*)
(in
t2)
PA7
.. ga
roo
po
rt 1
, p
in 6
(f
ire b
utt
on
')
PA6
.. ga
roo
po
rt 0
, p
in 6
(f
ire b
utt
on
')
PAS
.. R
OY
' d
isk
rea
dy*
PA4 ..
TKO*
d
isk
tra
ck
00*
PA
3 ..
WPR
O*
wri
te p
rote
ct*
PA
2 ..
000G
* d
isk
cha
nge*
PA
l .. L
ED*
led
lig
ht
(O=
brig
ht)
PAO
.. O
VL
mem
ory
ov
erla
y b
it
SP
...
KDA
T CN
T ..
KCL
K ke
yboa
rd d
ata
Aug
25
20:
54
1985
A
pp
end
ixJ:
Pag
e 8
PB7
.. P
7 PE
G .. P
6 PB
S ..
P5
PB4 ..
P4
PB3 ..
P3
PB2
.. P
2 P
Bl.
.P1
POO
•• P
O
dat
a 7
dat
a 6
dat
a 5
dat
a 4
dat
a 3
dat
a 2
dat
a 1
dat
a 0
Cen
tro
nic
s p
ara
llel
inte
rface
data
PC
•••
drd
y*
F ••
•. a
ck*
cen
tro
nic
s co
ntr
ol
Add
ress
BFD
RFE
dat
a b
its 1
5-8
PA7
.. co
m l
ine D
TR*,
d
riv
en o
utp
ut
PA6
.. co
m l
ine R
TS*
, d
riv
en o
utp
ut
PAS
.. G
om li
ne c
arr
ier
det
ect*
PA
4 ..
Gom
lin
e C
TS*
PA3
.. G
om l
ine D
SR*
(A13
*)
(in
t6)
PA2
.. SE
L ce
ntr
on
ics
con
tro
l PA
l .. P
OU
T p
aper
ou
t --
-+
PAO
.. B
USY
b
usy
--
-+
I I
I S
P .•. B
USY
co
mm
odor
e -+
I
CNT ..
POU
T co
mm
odor
e --
-+
PB7 ..
Mill*
PB
6 ..
SEL3
* PB
S ..
SEL2
* PB
4 ..
SEL1
* PB
3 ..
SELO
* PB
2 ..
SID
E*
PB
l. .D
IR
POO
•• S
TEP*
PC
.•. n
ot
use
d
mot
or
sele
ct
ex
tern
al
3rd
dri
ve
sele
ct
ex
tern
al
2nd
dri
ve
sele
ct
ex
tern
al
1st
dri
ve
sele
ct
inte
rnal
dri
ve
sid
e s
ele
ct*
d
irecti
on
st
ep
*
F ...
. IN
DEX
* d
isk
ind
ex*
![Page 246: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/246.jpg)
Au
g 2
1 1
2 :0
1 1
98
5 Appendi~
Pag
e 1
APP
EN
DIX
F
-A
mig
a H
ard
war
e M
anu
al
Th
is a
pp
end
ix c
on
tain
s in
form
ati
on
ab
ou
t th
e 8
52
0 p
eri
ph
era
l in
terf
ace
ad
ap
ters
.
.nf
INTE
RFA
CE
SIG
NA
LS
Clo
ck I
np
ut
Th
e 0
2 c
lock
is
a
TTL
co
mp
ati
ble
in
pu
t u
sed
fo
r in
tern
al
dev
ice o
pera
tio
n a
nd
as
a ti
min
g r
efe
ren
ce fo
r co
mm
un
icat
ing
w
ith
th
e s
yst
em
data
bu
s.
CS
-C
hip
Sele
ct
Inp
ut
Th
e C
S in
pu
t co
ntr
ols
th
e a
cti
vit
y o
f th
e 8
52
0.
A
low
lev
el
on
C
S w
hil
e 0
2 is
hig
h c
au
ses
the d
ev
ice t
o r
esp
on
d t
o s
ign
als
on
th
e R
/W
and
ad
dre
ss
(RS)
li
nes.
A h
igh
on
CS
pre
ven
ts t
hese l
ines
fro
m c
on
tro
llin
g t
he 8
52
0.
Th
e C
S li
ne i
s n
orm
all
y a
cti
vate
d
(low
) at
02
by
th
e a
pp
rop
riate
ad
dre
ss c
om
bin
ati
on
.
RjW
-
Rea
dfW
rite
In
pu
t
Th
e R
jW s
ign
al
is n
orm
all
y s
up
pli
ed
by
th
e m
icro
pro
cess
or
and
co
ntr
ols
th
e d
irecti
on
of
data
tra
nsfe
rs o
f th
e 8
52
0.
A h
igh
on
RjW
in
dic
ate
s
a re
ad
(d
ata
tra
nsfe
r o
ut
of
the 8
52
0),
w
hil
e a
lo
w i
nd
icate
s a
w
rite
(d
ata
tra
nsfe
r in
to t
he 8
52
0).
RS
3-R
SO
-
Ad
dre
ss In
pu
ts
Th
e ad
dre
ss in
pu
ts s
ele
ct
the i
nte
rnal
reg
iste
rs a
s d
esc
rib
ed
by
the R
eg
iste
r M
ap.
DB
7-D
BO
-
Data
Bu
s In
pu
ts/O
utp
uts
Th
e eig
ht
data
bu
s o
utp
ut
pin
s t
ran
sfe
r in
form
ati
on
bet
wee
n t
he 8
52
0
an
d t
he
sy
stem
data
bu
s.
']h
ese
pin
s a
re h
igh
in
ped
an
ce i
np
uts
un
less
C
S is
lo
w a
nd
RjW
an
d 0
2 a
re h
igh
, to
read
th
e d
ev
ice.
Du
rin
g t
his
re
ad
, th
e d
ata
bu
s o
utp
ut
bu
ffers
are
en
ab
led
, d
riv
ing
th
e d
ata
fr
om
th
e s
ele
cte
d r
eg
iste
r o
nto
th
e s
yst
em
data
bu
s.
IRQ
-
Inte
rru
pt
Req
uest
Ou
tpu
t
IRQ
is
an
ope
n d
rain
ou
tpu
t n
orm
all
y c
on
necte
d t
o t
he p
rocess
or
inte
rru
pt
inp
ut.
A
n ex
tern
al
pu
ll-u
p r
esis
tor
ho
lds
the s
ign
al
hig
h,
all
ow
ing
mu
ltip
le I
RQ
ou
tpu
ts t
o b
e c
on
necte
d t
og
eth
er.
T
he
IR
Q o
utp
ut
is n
orm
all
y o
ff
(hig
h i
np
edan
ce)
and
is a
cti
vate
d l
ow
as i
nd
icate
d i
n t
he fu
ncti
on
al
desc
rip
tio
n.
Au
g 2
1 1
2 :0
1 1
98
5
Ap
pen
dix
J P
age
2
RE
S -
Rese
t In
pu
t
A
low
on
th
e R
ES
pin
resets
all
in
tern
al
reg
iste
rs.
Th
e p
ort
pin
s are
set
as in
pu
ts a
nd
po
rt r
eg
iste
rs t
o z
ero
(a
lth
ou
gh
a
read
of
the p
ort
s w
ill
retu
rn a
ll h
igh
s b
ecau
se o
f p
ass
ive p
ull
-up
s) .
th
e t
iIo
or
co
ntr
ol
reg
iste
rs a
re s
et
to z
ero
an
d t
he t
imer
latc
hes
to a
ll o
nes.
A
ll o
ther
reg
iste
rs a
re r
eset
to z
ero
.
RE
GIS
TE
R M
AP
----
----
----
-E
ach
85
20
has
16
reg
iste
rs w
hic
h y
ou
may
read
or
wri
te.
Her
e is
th
e
list
of
reg
iste
rs a
nd
th
e a
ccess
ad
dre
ss o
f each
wit
hin
th
e m
emor
y sp
ace d
ed
icate
d t
o t
he 8
52
0:
RS
3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
Reg
iste
r R
S2
RS
I R
SO
# (h
ex)
NAM
E M
EAN
ING
0
0 0
0 PR
A
Peri
ph
era
l D
ata
Reg
iste
r A
0
0 1
1 PR
B
Peri
ph
era
l D
ata
Reg
iste
r B
0
1 0
2 D
DRA
D
ata
Dir
ecti
on
Reg
iste
r A
0
1 1
3 D
DRB
D
irecti
on
Reg
iste
r B
1
0 0
4 T
ALO
T
imer
A L
ow re
gis
ter
1 0
1 5
TA
RI
Tim
er A
Hig
h r
eg
iste
r 1
1 0
6 TB
LC
Tim
er
B L
ow re
gis
ter
1 1
1 7
TB
HI
Tim
er
B H
igh
reg
iste
r 0
0 0
8 E
ven
t L
SB
0 0
1 9
Ev
ent
8-1
5
0 1
0 A
E
ven
t M
SB
0 1
1 B
N
o C
on
nec
t 1
0 0
C
SDR
S
eri
al
Dat
a R
eg
iste
r 1
0 1
D
ICR
In
terr
up
t C
on
tro
l R
eg
iste
r 1
1 0
E
CR
A
Co
ntr
ol
Reg
iste
r A
1
1 1
F C
RB
Co
ntr
ol
Reg
iste
r B
SOFl
WA
RE
NO
TE:
Th
e o
pera
tin
g s
yst
em
kern
el
has
alr
ead
y a
llo
cate
d t
he
u
se o
f all
4 o
f th
e t
imers
TA
an
d T
B in
th
e 8
52
0's
. If y
ou
are
ru
nn
ing
un
der
co
ntr
ol
of
the
sy
stem
ex
ec,
be a
war
e o
f th
e fo
llo
win
g a
llo
cati
on
of
syst
em
reso
urc
es:
8520
A,
tim
er
A --
Col
llll
Odo
re s
eri
al
com
mu
nic
atio
ns
(if
no
seri
al
CO
llin
h
ap
pen
ing
, ti
mer
bec
om
es a
vail
ab
le)
. 85
20A
, ti
mer
B -
-V
ideo
bea
m f
oll
ow
er
(use
d w
hen
syn
ch
ron
izin
g t
he b
Utt
er
devic
e t
o t
he v
ideo
bea
m,
see t
he
d
escri
pti
on
of
QB
SB
Ut
in t
he s
yst
em
so
ftw
are
man
ual)
. If n
o b
eam
-sy
nc'e
d
bli
ts a
re i
n p
rocess
, th
is t
iIo
or
wil
l b
e a
vail
ab
le.
![Page 247: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/247.jpg)
Aug
21
1
2:0
1 1
985
Appendi~ P
age
3
8520
B,
tim
er A
8520
B,
tim
er B
Key
boar
d (u
sed
co
nti
nu
ou
sly
, w
hene
ver
syst
em E
XEC
is
in
co
ntr
ol)
.
Vir
tual
tim
er d
evic
e (u
sed
con
tin
uo
usl
y,
whe
neve
r sy
stem
EX
EC is
in
co
ntr
ol,
u
sed
fo
r ta
sk s
wit
ch
ing
/in
terr
up
ts)
.
REG
ISTE
R N
AMES
The
nam
es
of
the r
eg
iste
rs w
ith
in t
he 8
52
0's
are
as
foll
ow
s.
The
ad
dre
ss
at
whi
ch e
ach
is t
o b
e ac
cess
ed i
s g
iven
here
in
th
is l
ist.
Ad
dre
ss
for:
--
----
----
----
---
8520
-A
8520
-B
I NA
ME
I EX
PLA
NA
TIO
N
----------------------------~
(wri
te)/
(read
mod
e)
BFE
oo1
BFDO
OO
PRA
P
eri
ph
era
l D
ata
Reg
iste
r A
B
FElO
l B
fDlo
o PR
B P
eri
ph
era
l D
ata
Reg
iste
r B
B
FE20
l B
fD20
0 DD
RB
Dat
a D
irec
tio
n R
egis
ter
"Aft
BFE
301
BfD
300
DDRA
D
ata
Dir
ecti
on
Reg
iste
r "B
" B
FE40
l B
FD40
0 TA
LO
TIM
ER A
Low
Reg
iste
r B
FESO
l Bf
DSO
O
TAH
I TI
MER
A H
igh
Reg
iste
r B
FE60
l B
fD60
0 TB
LO
TIM
ER
B L
ow R
eg
iste
r B
FE70
1 B
fD70
0 TB
HI
TIM
ER
B H
igh
Reg
iste
r B
FE80
1 B
fD80
0 E
ven
t LS
B
BFE
901
BfD
900
Ev
ent
8 -
15
BFE
A01
Bf
DA
OO
E
ven
t M
SB
BFE
oo1
BfD
BOO
N
o co
nn
ect
BH
C01
BF
OCOO
SD
R S
eri
al
Dat
a R
eg
iste
r B
FED
01
BfD
DO
O
ICR
In
terr
up
t C
on
tro
l R
eg
iste
r B
FEE0
1 Bf
DEO
O
CR
A
Co
ntr
ol
Reg
iste
r A
B
FEF0
1 Bf
DFO
O
CRB
Co
ntr
ol
Reg
iste
Y
B
REG
ISTE
R F
UN
CTIO
NA
L D
ESC
RIP
TIO
N:
I/O
PO
RTS
(P
RA
, PR
B,
DD
RA,
DDRB
)
Po
rts
A a
nd B
eac
h c
on
sist
of
an 8
-bit
Peri
ph
era
l D
ata
Reg
iste
r (P
R)
and
an 8
-bit
data
dir
ecti
on
reg
iste
r (D
DR
). If
a b
it i
n t
he D
DR i
s
set
to a
1
, th
e c
orr
esp
on
din
g b
it p
osi
tio
n i
n t
he P
R b
ecom
es a
n
ou
tpu
t.
If a
DD
R b
it i
s s
et
to a
0
, th
e c
orr
esp
on
din
g P
R b
it i
s
def
ined
as
an i
np
ut.
Whe
n yo
u RE
AD
a P
R r
eg
iste
r,
you
read
th
e a
ctu
al
cu
rren
t sta
te o
f th
e I
/O p
ins
(PA
O-P
A7,
P
oo-P
B7,
re
gard
less
of
wh
eth
er y
ou
hav
e set
them
to
be
inp
uts
or
ou
tpu
ts.
Aug
21
12
:01
1985
A
pp
en
diU
Pag
e 4
Po
rts
A a
nd B
hav
e p
ass
ive p
ull
-up
dev
ices
as
wel
l as
acti
ve
pu
ll-u
ps,
p
rov
idin
g b
oth
CM
OS
and
TTL
co
rrp
ati
bil
ity
. B
oth
po
rts
hav
e tw
o TT
L lo
ad d
riv
e c
ap
ab
ilit
y.
In a
dd
itio
n t
o t
heir
nor
mal
I/O
op
era
tio
ns,
p
ort
s PB
6 an
d PB
7 als
o
pro
vid
e ti
mer
ou
tpu
t fu
nct
ion
s.
HA
ND
SHA
KIN
G
Han
dsha
king
occur~ o~ d
ata
tra
nsf
ey
s u
sin
g t
he P
C
ou
tpu
t p
in a
nd
th
e F
LAG
in
pu
t p
in
PC
wil
l go
low
on
the t
hir
d c
ycle
aft
er
a P
ort
B a
cces
s.
Th
is s
ign
al
ca
n b
e u
sed
to
in
dic
ate
"d
ata
read
y"
at
PORT
B
or
"dat
a ac
cep
ted
" fr
om P
ORT
B
Han
dsha
king
on
16
-bit
data
tra
nsf
ers
(u
sin
g b
oth
po
rts
A a
nd B
) is
po
ssib
le b
y
alw
ays
read
ing
or
wri
tin
g P
ORT
A f
irst
-FL
AG
is a
n
egat
ive
edg
e se
nsi
tiv
e i
np
ut
whi
ch c
an b
e u
sed
fo
r re
ceiv
ing
th
e P
C o
utp
ut
from
an
oth
er 8
520,
o
r as
a g
ener
al p
urp
ose
in
terr
up
t in
pu
t.
Any
neg
ativ
e tr
an
siti
on
on
FLA
G w
ill
set
the F
LAG
in
terr
up
t b
it.
REG
NA
ME
D7
D6
D5
D4
D3
D2
D1
DO
o 1 2 3
PRA
PR
B
DDRA
DD
RB
PA7
PA6
PAS
PM
PA
3 PA
2 PA
l PA
O
PB7
PB6
PB5
PB4
PB3
PB2
PB
l PO
O
DPA
7 D
PA6
DPA
S D
PA4
DPA
3 D
PA2
DPA
l DP
AO
DPB
7 D
PB6
DPB
5 D
PB4
DPB
3 D
PB2
DPB
1 D
Poo
INTE
RVA
L TI
MER
S (T
IMER
A,
TIM
ER B
)
Eac
h in
terv
al
tim
er c
on
sist
s o
f a
l6-b
it r
ead
-on
ly T
imer
Co
un
ter
and
a
16
-bit
wri
te-o
nly
Tim
er L
atch
. D
ata
wri
tten
to
th
e t
imer
is
lat
ched
in
to t
he T
imer
Lat
ch,
wh
ile
data
rea
d f
rom
th
e t
imer
is
th
e p
rese
nt
con
ten
ts o
f th
e T
imer
Co
un
ter.
The
latc
h i
s a
lso
call
ed
a p
resc
ala
r in
th
at
it r
ep
rese
nts
th
e
coun
tdow
n v
alu
e w
hich
mus
t b
e co
un
ted
bef
ore
th
e t
imer
rea
ches
an
un
der
flo
w
(no
mor
e co
un
ts)
con
dit
ion
. T
his
la
tch
(p
resc
alar
) v
alu
e is
a
div
ider
of
the i
np
ut
clo
ckin
g f
req
uen
cy.
The
tim
ers
ca
n b
e u
sed
in
dep
end
entl
y,
or
lin
ked
fo
r ex
ten
ded
o
pera
tio
ns.
V
ario
us
tim
er o
pera
tin
g m
odes
all
ow
gen
erat
ion
of
lon
g t
ime
del
ays,
v
ari
ab
le w
idth
pu
lses,
p
uls
e t
rain
s,
and
vari
ab
le
freq
uen
cy w
avef
orm
s.
Uti
lizin
g t
he C
NT
inp
ut,
th
e
tim
ers
can
co
un
t ex
tern
al
pu
lses
or
mea
sure
fr
equ
ency
, p
uls
e
wid
th,
and
del
ay t
imes
of
ex
tern
al
sig
nals
.
Eac
h ti
mer
ha
s a
n ass
ocia
ted
co
ntr
ol
reg
iste
r,
pro
vid
ing
in
dep
end
ent
co
ntr
ol
ov
er e
ach
of
the
foll
ow
ing
fu
nct
ion
s:
STA
RT/
STO
P
A c
on
tro
l b
it a
llo
ws
the t
imer
to
be
start
ed
or
sto
pp
ed
by
th
e m
icro
pro
cess
or
at
any
tim
e.
![Page 248: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/248.jpg)
Aug
21
12
:01
1985
A
pp
en
dix
J P
age
5
PB O
n/O
ff
A c
on
tro
l b
it a
llo
ws
the t
imer
ou
tpu
t to
ap
pea
r on
a
PORT
B
o
utp
ut
lin
e
(PB
6 fo
r ti
mer
A a
nd
P87
fo
r ti
mer
B).
T
his
fu
nct
ion
ov
er-
rid
es
the D
DRB
co
ntr
ol
bit
an
d
forc
es t
he
ap
pro
pri
ate
PB
li
ne t
o b
ecom
e an
ou
tpu
t.
To
gg
lejP
uls
e
A c
on
tro
l b
it s
ele
cts
th
e o
utp
ut
app
lied
to
PO
RT
B w
hil
e th
e P
B O
n/O
ff b
it i
s O
N.
On
ever
y t
imer
un
der
flo
w,
the o
utp
ut
can
eit
her
tog
gle
or
gen
erat
e a
sin
gle
po
siti
ve p
uls
e o
f o
ne
cy
cle
du
rati
on
. T
he T
oggl
e o
utp
ut
is s
et
hig
h w
hene
ver
the
tim
er
is s
tart
ed
, an
d s
et
low
by
RE
S.
On
e-S
ho
t/C
on
tin
uo
us
A c
on
tro
l b
it s
ele
cts
eit
her
tim
er m
ode.
In
on
e-sh
ot
mod
e,
the t
imer
wil
l co
un
t do
wn
from
th
e l
atc
hed
val
ue
to z
ero
, g
ener
ate
an i
nte
rru
pt,
re
load
th
e l
atch
ed v
alu
e,
then
sto
p.
In c
on
tin
uo
us
mod
e,
the t
imer
wil
l co
un
t do
wn
from
th
e l
atc
hed
v
alu
e to
zer
o,
gen
erat
e an
in
terr
up
t,
relo
ad
th
e l
atch
ed v
alu
e,
and
rep
eat
the p
roce
du
re c
on
tin
uo
usl
y.
In o
ne-
sho
t m
ode,
a
wri
te t
o T
imer
Hig
h (r
eg
iste
r 5
for
Tim
er A
, re
gis
ter
7 fo
r T
imer
B)
w
ill
tran
sfer
the t
imer
latc
h t
o t
he c
ou
nte
r an
d in
itia
te c
ou
nti
ng
reg
ard
less
of
the s
tart
bit
.
Fo
rce
Loa
d
INPU
T ID
DES
A s
tro
be b
it a
llo
ws
the t
imer
la
tch
to
be
load
ed i
nto
th
e
tim
er
cou
nte
r at
any
tim
e,
wh
eth
er t
he t
imer
is r
un
nin
g
or
no
t.
Co
ntr
ol
bit
s a
llo
w s
ele
cti
on
of
the c
lock
use
d t
o d
ecre
men
t th
e
tim
er.
TI
MER
A c
an c
ou
nt
02
clo
ck p
uls
es
or
ex
tern
al
pu
lses
ap
pli
ed
to
th
e C
NT
pin
. TI
MER
B
can
co
un
t 02
pu
lses,
ex
tern
al
CNT
pu
lses,
TI
MER
A u
nd
erfl
ow
pu
lses,
o
r TI
MER
A u
nd
erfl
ow
pu
lses
wh
ile
the C
NT
pin
is h
eld
hig
h.
The
tim
er
latc
h i
s l
oad
ed i
nto
th
e t
imer
on a
ny
tim
er
un
der
flo
w,
on a
fo
rce
load
, o
r fo
llo
win
g a
w
rite
to
th
e h
igh
by
te o
f th
e p
re
scala
r w
hil
e th
e t
imer
is s
top
ped
. If
th
e t
imer
is r
un
nin
g,
a w
rite
to
th
e h
igh
by
te w
ill
load
th
e t
imer
latc
h,
bu
t n
ot
relo
ad
th
e c
ou
nte
r.
Aug
21
12
:01
198
5 A
pp
end
ixJ
Pag
e 6
BIT
NAM
ES
on R
EA
D-r
egis
ter
REG
NA
ME
4 T
AW
5
TA
HI
6 T
B10
7
TBH
I
D7
D6
D5
D4
D3
D2
D1
DO
TAL 7
TA
L6
TAL5
TA
L4
TAL3
TA
L2
TA
Ll
TALO
TA
H7
TAH
6 TA
H5
TA
H4
TAH
3 TA
H2
TA
Hl
TAH
O
TBL7
TB
L6
TBL5
TB
L4
T8L
3 TB
L2
T8L
1 TB
LO
TBH
7 TB
H6
TBH
5 TB
H4
TBH
3 TB
H2
TOO
l TB
HO
BIT
NAM
ES
on W
RIT
E-r
egis
ter
REG
NA
ME
4 5 6 7
TALa
T
AH
I T
BW
TB
HI
TIM
E O
F DA
Y CL
OCK
D7
D6
D5
D4
D3
D2
Dl
DO
PA
L7P
AL
6PA
L5P
AL
4PA
L3P
AL
2PA
L1P
AL
O
PAH
7 PA
H6
PAH
S PA
H4
PAH
3 PA
H2
PAH
1 PA
HO
PB
L7 P
8L6
PBL5
PB
L4
PBL3
PB
L2
PBL1
PB
LO
PBH
7 PB
H6
PBH
5 PB
H4
P8H
3 PB
H2
PBH
1 PB
HO
TOD
co
nsi
sts
of
a 2
4-b
it b
inary
co
un
ter.
P
osi
tiv
e e
dg
e tr
an
siti
on
s on
th
is p
in c
ause
th
e b
inary
co
un
ter
to
incr
emen
t.
The
TOD
pin
has
a
pass
ive p
ull
-up
on
it.
A p
rogr
amm
able
ALA
RM is
pro
vid
ed
for
gen
era
tin
g a
n i
nte
rru
pt
at
a d
esi
red
tim
e.
The
ALA
RM r
eg
iste
rs a
re
locate
d a
t th
e s
ame
add
ress
es
as
the c
orr
esp
on
din
g T
OD r
eg
iste
rs.
Acc
ess
to t
he A
LARM
is
go
ver
ned
b
y a
C
on
tro
l R
eg
iste
r b
it.
The
ALA
RM is
wri
te-o
nly
; an
y r
ead
of
a TO
D ad
dre
ss w
ill
read
tim
e re
gard
less
of
the s
tate
of
the A
LARM
acc
ess
bit
.
A s
pecif
ic s
equ
ence
of
ev
en
ts m
ust
be
foll
ow
ed
for
pro
per
sett
ing
an
d
read
ing
of
TOD
. TO
D is
au
tom
ati
call
y s
top
ped
whe
neve
r a
wri
te t
o t
he
reg
iste
r o
ccu
rs.
The
clo
ck w
ill
no
t sta
rt a
gai
n u
nti
l aft
er
a w
rite
to
th
e L
SB
Ev
ent
Reg
iste
r.
Th
is a
ssu
res
that
TOD
wil
l al
way
s sta
rt a
t th
e d
esi
red
tim
e.
Sin
ce a
carr
y f
rom
on
e st
ag
e t
o t
he n
ext
can
occ
ur
at
any
tim
e w
ith
resp
ect
to a
re
ad o
pera
tio
n,
a la
tch
ing
fu
nct
ion
is i
ncl
ud
ed
to k
eep
all
Tim
e O
f D
ay i
nfo
rmat
ion
co
nst
an
t d
uri
ng
a
read
seq
uen
ce.
All
TOD
reg
iste
rs l
atc
h o
n a
read
of
MSB
Ev
ent
and
rem
ain
latc
hed
u
nti
l aft
er
a re
ad
of
LSB
Ev
ent.
T
he T
OD c
lock
co
nti
nu
es t
o c
ou
nt
whe
n th
e o
utp
ut
reg
iste
rs a
re l
atc
hed
. If
on
ly o
ne
reg
iste
r is
to
be
read
, th
ere
is n
o carr
y p
rob
lem
and
th
e re
gis
ter
can
be r
ead
"o
n t
he fl
y"
pro
vid
ed t
hat
any
rea
d o
f M
SB E
ven
t is
fo
llo
wed
by
a
read
of
LSB
Ev
ent
to d
isab
le t
he l
atc
hin
g.
![Page 249: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/249.jpg)
Aug
21
12
:01
198
5 A
ppen
dbL
F P
age
7
BIT
NAM
ES
for
WRI
TE
TIM
E/A
LARM
or
REA
D
TIM
E
REG
NA
ME
8 LS
B E
ven
t E
7 E
6 E
5 E
4 E
3 E2
E1
EO
9
Ev
ent
8-1
5
E15
E
14
E13
E
12
Ell
E
10
E9
E8
A
MSB
Ev
ent
E23
E
22
E21
E
20
E19
E
18
E17
E
16
WRI
TE
CRB7
=
0 CR
B7 =
1 AL
ARM
SER
IAL
PORT
(S
DR
)
The
seri
al
po
rt i
s a
bu
ffere
d,
8-b
it s
yn
chro
no
us
sh
ift
reg
iste
r.
A c
on
tro
l b
it s
ele
cts
in
pu
t o
r o
utp
ut
mod
e.
INPU
T M
ODE
In i
np
ut
mod
e,
data
on
the S
P p
in i
s s
hif
ted
in
to t
he s
hif
t re
gis
ter
on t
he r
isin
g e
dg
e o
f th
e s
ign
al
app
lied
to
th
e C
NT
pin
. A
fter
8
CNT
pu
lses,
th
e d
ata
in
th
e s
hif
t re
gis
ter
is d
umpe
d in
to t
he S
eri
al
Dat
a R
eg
iste
r an
d an
in
terr
up
t is
gen
erat
ed.
OU
TPU
T M
ODE
In t
he o
utp
ut
mod
e,
TIM
ER A
is u
sed
as
the b
aud
rate
gen
erat
or.
D
ata
is s
hif
ted
ou
t on
th
e S
P p
in a
t 1
/2 t
he u
nd
erfl
ow
rate
of
TIM
ER A
. T
he
max
imum
bau
d ra
te p
oss
ible
is 0
2 d
ivid
ed b
y 4
, b
ut
the m
axim
um
usa
ble
bau
d ra
te w
ill
be d
eter
min
ed b
y l
ine l
oad
ing
and
th
e s
pee
d a
t w
hich
th
e r
eceiv
er
resp
on
ds
to i
np
ut
data
.
To b
egin
tra
nsm
issi
on
, yo
u m
ust
firs
t set
up T
IMER
A i
n c
on
tin
uo
us
mod
e,
and
sta
rt t
he t
imer.
T
ran
smis
sio
n w
ill
sta
rt f
oll
ow
ing
a w
rite
to
th
e
Seri
al
Dat
a R
eg
iste
r.
The
clo
ck
sig
nal
der
ived
fr
om T
IMER
A a
pp
ears
as
an o
utp
ut
on t
he C
NT
pin
. T
he d
ata
in
th
e S
eri
al
Dat
a R
eg
iste
r w
ill
be
load
ed i
nto
th
e s
hif
t re
gis
ter,
th
en s
hif
ted
ou
t to
th
e S
P p
in w
hen
a CN
T p
uls
e o
ccu
rs.
Dat
a sh
ifte
d o
ut
beco
mes
vali
d o
n t
he n
ext
fall
ing
ed
ge
of
CNT
and
rem
ain
s v
ali
d u
nti
l th
e n
ext
fall
ing
ed
ge.
Aft
er
8 CN
T p
uls
es,
an
in
terr
up
t is
gen
erat
ed t
o i
nd
icate
th
at
mor
e d
ata
can
be s
en
t.
If t
he S
eri
al
Dat
a R
eg
iste
r w
as r
elo
aded
wit
h n
ew
info
rmat
ion
pri
or
to t
his
in
terr
up
t,
the n
ew d
ata
wil
l au
tom
atic
ally
b
e
load
ed i
nto
th
e s
hif
t re
gis
ter
and
tra
nsm
issi
on
wil
l co
nti
nu
e.
If n
o fu
rth
er
data
is t
o b
e t
ran
smit
ted
aft
er
the 8
th C
NT
pu
lse,
CNT
wil
l re
turn
hig
h a
nd S
P w
ill
rem
ain
at
the l
ev
el
of
the la
st
data
b
it t
ran
smit
ted
.
SDR
data
is s
hif
ted
ou
t M
SB fi
rst.
S
eri
al
inp
ut
data
sh
ou
ld a
pp
ear
in t
his
sam
e fo
rmat
.
Aug
21
12 :0
1 19
85
App
endb
LF
Pag
e 8
BID
IREC
TIO
NA
L FE
ATU
RE
The
bid
irecti
on
al
cap
ab
ilit
y o
f th
e S
eri
al
Po
rt a
nd C
NT
clo
ck a
llo
ws
man
y 8
52
0's
to
be c
on
nec
ted
to
a
com
mon
seri
al
com
mun
icat
ions
bu
s on
w
hich
one
852
0 acts
as
a m
aste
r,
sou
rcin
g d
ata
and
sh
ift
clo
ck,
wh
ile
all
oth
er 8
520
chip
s act
as
slav
es.
B
oth
CN
T an
d SP
o
utp
uts
are
ope
n d
rain
to
all
ow
su
ch a
co
mm
on b
us.
P
roto
col
for
mas
ter/
slav
e se
lecti
on
ca
n b
e t
ran
smit
ted
ov
er t
he s
eri
al
bu
s o
r v
ia d
edic
ated
han
dsh
ake
lin
es.
REG
N
AME
D7
D6
05
D
4 0
3
D2
D1
00
C
SDR
S7
S6
S5
S4
S3
S2
Sl
SO
INTE
RR
UPT
CON
TROL
REG
ISTE
R
(IC
R)
Th
ere
are
5 s
ou
rces
of
inte
rru
pts
on
the 8
520:
-un
der
flo
w f
rom
TIM
ER A
(t
imer
co
un
ts d
own
past
0)
-un
der
flo
w f
rom
TIM
ER
B
-TO
D A
LARM
-S
eri
al
Po
rt F
ull
jEm
pty
-F
LAG
A s
ing
le r
eg
iste
r p
rov
ides
mas
kin
g a
nd
in
terr
up
t in
form
atio
n.
The
In
terr
up
t C
on
tro
l R
eg
iste
r co
nsi
sts
of
a w
rite
-on
ly M
ASK
reg
iste
r an
d a
read
-on
ly D
ATA
reg
iste
r.
Any
in
terr
up
t w
ill
set
the c
orr
esp
on
din
g
bit
in
th
e D
ATA
reg
iste
r.
Any
in
terr
up
t th
at
is e
nab
led
by
a I-
bit
in
th
at
po
siti
on
in
th
e M
ASK
wil
l set
the I
R b
it
(MSB
) o
f th
e D
ATA
reg
iste
r,
and
bri
ng
th
e I
RQ
pin
low
. In
a m
ult
i-ch
ip s
yst
em,
the I
R b
it c
an b
e
po
lled
to
dete
ct
whi
ch c
hip
has
gen
erat
ed a
n i
nte
rru
pt
req
uest
.
Whe
n yo
u re
ad t
he D
ATA
reg
iste
r, it
s c
on
ten
ts a
re c
leare
d
(set
to 0
) an
d
the I
RQ
li
ne r
etu
rns
to a
h
igh
sta
te.
Sin
ce i
t is
cle
are
d o
n a
read
, yo
u m
ust
assu
re t
hat
yo
ur
inte
rru
pt
po
llin
g o
r in
terr
up
t se
rvic
e c
od
e ca
n p
rese
rve a
nd r
esp
on
d t
o a
ll b
its w
hich
may
hav
e be
en s
et
in t
he
DATA
reg
iste
r at
the t
ime
it w
as r
ead
. W
ith
pro
per
pre
serv
ati
on
and
re
spo
nse
, it
is e
asi
ly p
oss
ible
to
in
term
ix p
oll
ed
an
d d
irect
inte
rru
pt
serv
ice m
etho
ds.
You
can
set
or
cle
ar
on
e o
r m
ore
bit
s o
f th
e M
ASK
reg
iste
r w
ith
ou
t aff
ecti
ng
th
e c
urr
en
t sta
te o
f an
y o
f th
e o
ther
bit
s i
n t
he r
eg
iste
r.
Th
is is
don
e b
y s
ett
ing
th
e a
pp
rop
riate
sta
te o
f th
e M
SB
it,
whi
ch i
s c
all
ed
th
e S
ET/C
LEA
R
bit
. In
bit
s 6
-0,
you
yo
urs
elf
fo
rm a
m
ask
whi
ch s
pecif
ies
whi
ch o
f th
e
bit
s y
ou w
ish
to
aff
ect.
T
hen,
u
sin
g b
it 7
, y
ou
sp
ecif
y H
OW t
he b
its
in c
orr
esp
on
din
g p
osi
tio
ns
in t
he m
ask
are
to
be a
ffecte
d.
If b
it 7
is
a
1,
then
an
y b
it 6
-0 i
n y
ou
r ow
n m
ask
wor
d w
hich
is s
et
to a
1
SETS
th
e c
orr
esp
on
din
g b
it i
n t
he
MAS
K re
gis
ter.
A
ny b
it w
hich
you
hav
e set
to a
0
cau
ses
the M
ASK
reg
iste
r b
it t
o r
emai
n i
n i
ts c
urr
en
t st
ate
.
![Page 250: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/250.jpg)
A.u
g 21
12
:01
1985
A
ppen
diJe
J' P
age
9
If b
it 7
is
a 0
, th
en a
ny b
it 6
-0 i
n y
ou
r ow
n m
ask
wor
d w
hich
is s
et
to a
1
CLEA
RS t
he c
orr
esp
on
din
g b
it i
n t
he
MAS
K re
gis
ter.
A
gain
, an
y 0
bit
in
yo
ur
own
mas
k w
ord
cau
ses
no c
hang
e in
th
e c
on
ten
ts o
f th
e c
orr
esp
on
din
g
MAS
K re
gis
ter
bit
.
If a
n i
nte
rru
pt
is t
o o
ccu
r b
ased
on
a p
art
icu
lar
con
dit
ion
, th
en t
hat
corr
esp
on
din
g M
ASK
bit
mus
t b
e a
1
.
Exa
nple
: S
uppo
se y
ou w
ant
to S
ET t
he T
IMER
A i
nte
rru
pt
bit
(e
nab
le t
he T
IMER
A i
nte
rru
pt)
, b
ut
wan
t to
be
sure
th
at
all
oth
er
inte
rru
pts
are
CLE
ARE
D.
Her
e is
th
e s
equ
ence
you
can
use
:
mo
vi.
b
0111
1110
B,A
O
mov
.b
AO
,ICR
M
SB is
0,
mea
ns c
lear
any
bit
who
se v
alu
e is
1
in t
he r
est
of
the b
yte
m
ov
i.b
lC
XX
X:X
:;()lB
,AO
m
ov.b
A
O,IC
R
;MSB
is
1,
mea
ns s
et
;an
y b
it w
hose
val
ue
is
; 1 i
n t
he r
est
0 f
the b
yte
;
(do
no
t ch
ange
an
y v
alu
es
; w
her
ein
th
e w
ritt
en
val
ue
; b
it i
s a
ze
ro)
Rea
d Ip
terr
up
t C
on
tro
l R
eg
iste
r:
REG
NA
ME
D7
D6
D5
D4
D~
D2
D1
DO
D
ICR
IR
o
o FL
G
SP
ALR
M
TB
TA
Wri
te I
nte
rru
pt
Co
ntr
ol
MAS
K:
REG
NA
ME
D7
D6
D5
D4
D3
D2
D1
DO
D
ICR
SI
C
x x
FLG
SP
A
LRM
TB
TA
CONT
ROL
REG
ISTE
RS
The
re a
re t
wo
co
ntr
ol
reg
iste
rs i
n t
he 8
520,
C
RA
and
CR
B.
CR
A is
ass
ocia
ted
w
ith
TIM
ER A
and
CRB
is a
sso
cia
ted
wit
h T
IMER
B.
The
fo
rmat
of
the
reg
iste
rs
is a
s fo
llo
ws:
Aug
21
1
2:0
1 1
985
App
endi
JeJ'
Pag
e 1
0
CONT
ROL
REG
ISTE
R A
:
BIT
NA
ME
o ST
ART
1 PB
ON
FUN
CTIO
N
1 =
sta
rt T
IMER
A,
0 =
sto
p T
IMER
A.
Th
is b
it i
s a
uto
mat
ical
ly r
ese
t (=
0)
whe
n u
nd
erfl
ow
o
ccu
rs d
uri
ng
on
e-sh
ot
mod
e.
1 =
TIM
ER A
ou
tpu
t on
PB
6,
0 =
PB
6 is
nor
mal
op
erat
ion
.
2 OU
TMOD
E 1
= TO
GGLE
, 0
= PU
LSE.
3 RU
NMOD
E 1
= o
ne-
sho
t m
ode,
0
= c
on
tin
uo
us
mod
e.
4 LO
AD
1 =
FO
RCE
LOAD
(t
his
is a
ST
ROBE
in
pu
t,
there
is n
o d
ata
sto
rag
e;
bit
4 w
ill
alw
ays
read
bac
k a
ze
ro
and
wri
tin
g a
0 h
as n
o eff
ect.
)
5 IN
MOD
E 1
= T
IMER
A c
ou
nts
po
siti
ve C
NT
tran
siti
on
s,
o =
TIM
ER A
co
un
ts 0
2 p
uls
es.
6 SP
MOD
E 1
= S
ERIA
L PC
RT
--ou
tput
(C
NT
is t
he s
ou
rce
of
the s
hif
t cl
ock
) o
= S
ERIA
L P
CR
T=
inpu
t (e
xte
rnal
sh
ift
clo
ck i
s r
equ
ired
)
BIT
MA
P
OF
REG
ISTE
R C
RA
:
REG
#
NAM
E TO
D SP
MOD
E IN
MOD
E LO
AD
RUNM
ODE
OUlM
ODE
PBO
N
STA
RT
IN
E
CR
A
O=6
0Hz
O=
inpu
t 0=
02
l=FO
RC
E O
=co
nt.
O=
puls
e O
=PB
60FF
O
=st
op
l=50
Hz
1=
ou
tpu
t l=
CN
T LO
AD
1=
one-
l=to
gg
le 1
=PB
60N
l=
start
(S
TRO
BE)
sho
t
1<---
-----
TIM
ER A
Var
iab
les
----
----
----
----
----
>1
All
unu
sed
reg
iste
r b
its a
re u
naf
fect
ed b
y a
wri
te a
nd f
orc
ed t
o 0
o
n a
re
ad.
CONT
ROL
REG
ISTE
R B
:
BIT
NA
ME
o 1 2 3 4
STA
RT
PBO
N
OIJ
'lM)D
E RU
NMOD
E LO
AD
FUN
CTIO
N
1 =
sta
rt T
IMER
B
, 0
= s
top
TIM
ER B
. T
his
bit
is a
uto
mat
ical
ly r
ese
t (=
0)
whe
n u
nd
erfl
ow
o
ccu
rs d
uri
ng
on
e-sh
ot
mod
e.
1 =
TIM
ER
B o
utp
ut
on P
B7,
0
= P
B7
is n
orm
al o
per
atio
n.
1 =
TOG
GLE,
0
= P
ULS
E.
1 =
one-
sho
t m
ode,
0
= co
nti
nu
ou
s m
ode.
1
= F
ORC
E LO
AD
(th
is i
s a
ST
ROBE
in
pu
t,
there
is n
o d
ata
sto
rag
e;
bit
4 w
ill
alw
ays
read
bac
k a
ze
ro
and
wri
tin
g a
0
has
no e
ffect.
)
![Page 251: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/251.jpg)
Aug
21
12
:01
198
5 A
ppen
diJL
j' P
age
11
6,5
IN
MO
OE
Bit
s C
RB
6 an
d C
RB
5 se
lect
on
e o
f fo
ur
po
ssib
le i
np
ut
mod
es
for
TIM
ER B
, as
foll
ow
s:
7 AL
ARM
CR
B6
CR
B5
o 0
o 1
1 0
1 1
Mod
e S
ele
cte
d
TIM
ER
B c
ou
nts
02
pu
lses
TIM
ER
B c
ou
nts
po
siti
ve C
NT
tr
an
siti
on
s TI
MER
B
co
un
ts T
IMER
A u
nd
erfl
ow
pu
lses
TIM
ER
B c
ou
nts
TIM
ER A
un
der
flo
w p
uls
es
wh
ile
CN
T p
in i
s h
eld
hig
h.
1 =
wri
tin
g t
o T
OO r
eg
iste
rs s
ets
ALA
RM,
o =
wri
tin
g t
o T
OO r
eg
iste
rs s
ets
TOO
clo
ck.
Rea
din
g T
OD r
eg
iste
rs a
lway
s re
ad
s TO
D cl
ock
, re
gard
less
of
the s
tate
of
the A
LAR
M b
it.
BIT
MAP
OF
REG
ISTE
R C
RB
:
REG
#
NA1'1
E AL
ARM
IN
MO
DE
F CR
B O
=TO
D
00=
02
l=A
LARM
O
l=C
NT
10=T
lME
R A
ll=
CN
T+T
IME
R A
LOA
D
1=FO
RC
E LO
AD
(S
TRO
BE)
RUNM
ODE
OU'lM
ODE
PBO
N
O=
cont
. l=
on
esh
ot
O=
puls
e O
=PB
70FF
l=
tog
gle
1=P
B70
N
STA
RT
O=
stop
l=
sta
rt
I<--
----
----
----
--T
IME
R B
Vari
ab
les-
----
----
----
----
----
>I
All
un
use
d r
eg
iste
r b
its a
re u
naff
ecte
d b
y a
w
rite
an
d
forc
ed t
o 0
on
a
read
.
PORT
SIG
NA
L A
SSIG
NM
ENTS
Th
is p
art
sp
ecif
ies
how
vari
ou
s si
gn
als
rela
te t
o t
he a
vail
ab
le p
ort
s o
f th
e 8
S20
. T
his
in
form
atio
n e
nab
les
the p
rogr
a.rr
mer
to
rela
te t
he
po
rt a
dd
ress
es t
o t
he o
uts
ide-
wo
rld
ite
ms
(or
inte
rnal
co
ntr
ol
sig
nals
) w
hich
are
to
be
aff
ecte
d.
Th
is p
art
is p
rim
ari
ly f
or
the u
se o
f th
e
syst
ems
prog
ram
mer
an
d s
ho
uld
gen
era
lly
no
t b
e u
tili
zed
by
ap
pli
cati
on
s pr
ogra
.rrm
ers.
S
yste
ms
soft
war
e n
orm
ally
is c
on
fig
ure
d t
o h
and
le t
he
sett
ing
of
part
icu
lar
sig
nals
, no
matt
er
how
th
e p
hy
sical
con
nec
tio
ns
may
ch
ang
e.
In o
ther
wo
rds,
if
you
hav
e a
vers
ion
of
the s
yst
em s
oft
war
e th
at
mat
ches
th
e r
ev
. le
vel
of
the m
ach
ine
(no
nn
ally
a
tru
e c
on
dit
ion
) ,
whe
n yo
u as
k t
hat
a p
art
icu
lar
bit
be
set,
y
ou
do
n't
care
wh
ich
po
rt
that
bit
is c
on
nec
ted
to
. T
hus
ap
pli
cati
on
s pr
ogra
mm
ers
sho
uld
rely
o
n s
yst
em d
ocu
men
tati
on
rath
er
than
go
ing
dir
ectl
y t
o t
he p
ort
s.
Not
e als
o t
hat
in t
his
, a
mu
lti-
task
ing
op
era
tin
g s
yst
em,
man
y d
iffe
ren
t ta
sks
may
be
co~ting
for
the u
se o
f th
e s
yst
em r
eso
urc
es.
A
pp
lica
tio
ns
prog
ram
mer
s sh
ou
ld f
oll
ow
th
e e
stab
lish
ed
ru
les
for
reso
urc
e a
cces
s in
o
rder
to
ass
ure
co
rrp
ati
bil
ity
of
their
so
ftw
are
wit
h t
he s
yst
em.
Aug
21
12 :0
1 1
985
Ap
pen
dix
J P
age
12
Ad
dre
ss B
FER
FF
data
bit
s 7
-0
(Al2
*)
(in
t2)
PA7 ..
gam
e p
ort
1,
pin
6
(fir
e b
utt
on
')
PA6 ..
gam
e p
ort
0,
pin
6
(fir
e b
utt
on
')
PAS
.. R
DY
' d
isk
read
y'
PA4 ..
TK
O'
dis
k t
rack
00
' PA
3 ..
WPR
O'
wri
te p
rote
ct'
PA
2 ..
CJ1
NG*
dis
k c
han
ge'
P
Al .
. LE
O'
led
lig
ht
(O=
brig
ht)
PAO
.. O
VL
mem
ory
ov
erl
ay
bit
SP
...
KDA
T k
eyb
oar
d d
ata
C
NT
•• K
CLK
PB7 ..
P7
data
7
PB6
.. P
6 d
ata
6
PBS
.. PS
d
ata
S
Cen
tro
nic
s p
ara
llel
inte
rface
PB4
.. P
4 d
ata
4
data
PB
3 ..
P3
data
3
PB2
.. P
2 d
ata
2
PB
l. .
Pl
data
1
PBO
.. P
O
data
0
PC
•..
drd
y'
cen
tro
nic
s co
ntr
ol
F ..
.. a
ck
'
Ad
dre
ss B
FDRF
E d
ata
bit
s 1
5-8
PA7 ..
com
lin
e D
TR
', d
riv
en o
utp
ut
PA6 ..
com
li
ne R
TS*
, d
riv
en o
utp
ut
PAS
.. co
m li
ne c
arr
ier
dete
ct'
PA
4 ..
com
li
ne C
TS*
PA3 ..
com
lin
e D
SR*
(Al3
')
(in
t6)
PA2 ..
SEL
cen
tro
nic
s co
ntr
ol
PA
l .. P
OU
T p
aper
ou
t --
-+
PAO
.. B
USY
b
usy
--
-+
I I
I S
P ...
BU
SY
com
mod
ore
-+
I C
NT
•. PO
UT
com
mod
ore
---+
PB7
.. M
TR'
PB6
.. S
EL
3*
PBS
.. S
EL
2'
PB4 ..
SE
Ll*
PB
3 ..
SEL
O*
PB2
.. S
IDE
*
PB
l. .D
IR
PBO
.. S
TE
P'
PC
...
no
t u
sed
mo
tor
sele
ct
ex
tern
al
3rd
dri
ve
sele
ct
ex
tern
al
2nd
dri
ve
sele
ct
ex
tern
al
1st
dri
ve
sele
ct
inte
rnal
dri
ve
sid
e s
ele
ct*
d
irecti
on
ste
p'
F ..
.. IN
DE
X'
dis
k i
nd
ex*
.n
![Page 252: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/252.jpg)
Aug
14
00
:52
198
5 A
ppen
dbL
G P
age
1
APP
END
IX G
-A
mig
a H
ardw
are
Man
ual
Th
is a
pp
end
ix d
esc
rib
es
the u
se o
f th
e e
xp
ansi
on
co
nn
ecto
r.
BOXE
S A
ND
BO
ARD
S
In t
his
doc
umen
t b
oar
ds
and
bo
xes
are
lo
gic
al
en
titi
es,
that
is i
f y
ou
wan
t to
des
ign
a p
hy
sical
bo
ard
th
at
loo
ks
to t
he p
rocess
or
as
if i
t is
a b
ox
, o
r as
two
bo
xes
, o
r a
bo
x
of
bo
ard
s,
feel
free.
In g
ener
al,
we
thin
k p
eop
le w
ill
des
ign
bo
xes
as
bo
xes
, an
d b
oar
ds
as
bo
ard
s.
Box
es r
esi
de o
n t
he b
us,
an
d t
hey
may
or
may
no
t co
nta
in
bo
ard
s.
The
y al
way
s co
nta
in a
n A
uto
con
fig
Co
ntr
ol
Blo
ck
so t
hat
ou
r au
toco
nfi
g s
oft
war
e ca
n c
ome
ou
t an
d b
uil
d
a ta
ble
of
wh
o's
th
ere
, an
d w
here
to
pu
t th
em
in
Co
nfi
g
Sp
ace
or
Mem
ory
Sp
ace.
C
on fig
sp
ace
is a
s1
2K B
yte
sp
ace
start
ing
at
E80
000;
it
is b
rok
en u
p in
to 1
28 S
lot
Sp
aces
co
nsi
stin
g o
f 4K
B
yte
s ea
ch.
Ev
ery
au
toco
nfi
gu
red
box
an
d b
oar
d g
ets
it'
s o
wn
slo
t sp
ace.
T
his
is
ass
ign
ed b
y
the a
uto
con
fig
so
ftw
are
by
wri
tin
g i
nto
th
e S
lot
Ad
dre
ss
Reg
iste
r o
f ea
ch o
f th
e b
ox
es.
The
box
slo
t is
at
the
locati
on
sp
ecif
ied
in
th
e S
lot
Ad
dre
ss R
eg
(Fig
1),
an
d ea
ch
bo
ard
if t
here
is a
ny
, is
ass
ign
ed t
o t
he n
ext
adja
cen
t 4K
slo
t.
The
so
ftw
are
know
s (f
rom
th
e R
OM in
th
e b
ox A
uto
co
nfi
g C
on
tro
l B
lock
) ho
w b
ig e
ach
box
is,
so i
t kn
ows
whe
re i
n S
lot
Sp
ace
to l
ocate
th
e b
ox
es.
If a
bo
x o
r b
oar
d i
s s
mal
l en
ough
to
li
ve i
n 4
K o
r le
ss,
then
it
do
es n
ot
nee
d a
ny
Mem
ory
Sp
ace
and
th
ere
fore
wil
l n
ot
hav
e an
Op
tio
nal
Mem
ory
Ad
dre
ss R
eg
iste
r (F
ig 1
) .
Tho
se b
ox
es t
hat
req
uir
e m
ore
tha
n 4
K
By
tes
can
get
a la
rger
add
ress
sp
ace
from
Mem
ory
Sp
ace
by
pro
vid
ing
a
Mem
ory
Ad
dre
ss R
eg
iste
r at
the a
pp
rop
riate
lo
cati
on
in
C
on fig
Sp
ace.
The
resu
lt o
f all
th
is i
s t
hat
bo
xes
can
do
th
e a
dd
ress
re
co
gn
itio
n
for
smal
l (u
nd
er 4
K)
bo
ard
s,
wh
ile
big
bo
ard
s n
eed
an
8 b
it l
atc
h
(Man
Add
r R
eg)
to lo
cate
the
m i
n t
he 8
Meg
M
emor
y S
pac
e.
No
te t
hat
all
big
bo
ard
s,
wh
eth
er t
hey
are
mem
ory
bo
ard
s o
r n
ot,
g
et
locate
d i
n M
emor
y S
pac
e.
AU
TO-C
ON
FIG
UR
ATI
ON
Aut
o co
nfi
gu
rati
on
of
reso
urc
es o
n th
e e
xp
ansi
on
bu
s is
ac
con
pli
shed
by
an
in
terr
og
ati
on
of
the b
ox
es a
nd
b
oar
ds
that
the u
ser
has
inst
all
ed
on
the b
us.
A
ll b
ox
es
sho
uld
be
des
ign
ed t
o r
esp
on
d t
o C
on
fig
Sp
ace
(A23
-Al9
=11
101)
A
ND
ed w
ith
CO
NFI
G I
n
(Pin
12)
acti
ve a
nd C
on
fig
Out
in
acti
ve.
At
the b
egin
nin
g o
f th
is a
dd
ress
ran
ge
start
ing
at
EBOO
OO
wil
l b
e th
e A
uto
Co
nfi
gu
rati
on
Co
ntr
ol
Blo
ck
(see
F
igu
re 1
).
CO
NFI
G*
is p
asse
d f
rom
on
e re
sou
rce
(box
or
bo
ard
) to
th
e n
ex
t; it
is d
ais
y c
hai
ned
th
rou
gh
th
e b
ox
es,
wit
h e
ach
box
pass
ing
it
on t
o t
he n
ext
aft
er
the
form
er
has
been
co
nfi
gu
red
. E
ach
bo
x i
s d
esig
ned
to
ass
ert
SLO
TSEL
n*
Aug
14
00
:52
198
5 A
ppen
diJC
G P
age
2
(Pin
12
on
bo
ard
co
nn
ecto
rs)
to i
t's b
oar
ds
by
dec
od
ing
a
sub
set
of
Al8
-Al2
. F
or
inst
an
ce i
n t
he c
ase
of
a bo
x w
ith
sev
en b
oar
d s
lots
, th
e b
ox
wou
ld d
eco
de
Al4
-Al2
, an
d
fan
ou
t SL
OTS
EL1*
th
rou
gh
SLO
TSEL
7*
to i
t's b
oar
ds.
SL
OTS
ELO
* fr
om t
he t
he s
ame
3:1
dec
od
er w
ould
acti
vate
slo
t sp
ace
on
th
e b
ox
its
elf
. W
hen
the s
oft
war
e w
ants
to
co
nfi
gu
re t
he n
ex
t b
ox
, it
sets
th
e "
Pas
s C
ON
FIG
" b
it i
n
the c
urr
en
t b
ox
es c
on
tro
l re
gis
ter.
T
his
ass
ert
s C
ON
FIG
* to
th
e n
ex
t b
oar
d.
The
Co
nfi
gu
rati
on
Pro
cess
The
Slo
t A
dd
ress
Reg
iste
rs a
re c
leare
d t
o z
ero
by
Sys
tem
Res
et,
thu
s all
bo
xes
com
e up
rea
dy
to
res
po
nd
to
ad
dre
ss E
BO
rum
AN
De
d
wit
h C
ON
FIG
* b
ein
g a
ssert
ed
to
th
at
bo
x.
Bec
ause
CO
NFI
G*
is d
ais
y c
hai
ned
, o
nly
th
e c
urr
en
tly
sele
cte
d
bo
x w
ill
resp
on
d t
o C
on
fig
sp
ace
EB
Oru
m.
All
oth
ers
hav
e eit
her
bee
n c
on
fig
ure
d t
o r
esp
on
d t
o a
d
iffe
ren
t sp
ace
by
lo
adin
g
a n
on
-zer
o n
umbe
r in
to t
he S
lot
Ad
dre
ss R
eg
iste
r,
or
CO
NFI
G*
has
no
t g
ott
en
ou
t to
th
at
bo
x o
r b
oar
d y
et.
The
co
nfi
gu
rati
on
so
ftw
are
read
s th
e R
OM p
ort
ion
of
the
Co
nfi
gu
rati
on
Co
ntr
ol
Blo
ck i
n o
rder
to i
den
tify
th
e b
ox
. It
th
en p
laces
the b
ox
in
to s
ome
slo
t o
ther
than
slo
t zero
, an
d g
oes
on
to
fin
d t
he n
ext
bo
x.
Onc
e all
of
the b
ox
es a
nd
th
eir
siz
es
are
kno
wn,
th
e s
oft
war
e ca
n r
earr
an
ge t
hem
in
slo
t sp
ace
to s
uit
th
eir
vari
ou
s si
zes.
The
n th
e c
on
fig
so
ftw
are
go
es b
ack
an
d i
nte
rro
gate
s th
e b
oar
ds,
an
d m
aps
larg
e b
ox
es a
nd
bo
ard
s (e
g m
ore
than
4K
) in
to m
emor
y sp
ace.
D
uri
ng
th
e p
rocess
of
co
nfi
gu
rin
g t
he b
ox
es a
nd
bo
ard
s,
a ta
ble
of
box
and
bo
ard
id
en
tifi
ers
an
d l
ocati
on
s in
slo
t an
d
mem
ory
spac
e is
co
nst
ructe
d,
so t
hat
ap
pli
cati
on
so
ftw
are
can
la
ter
access
th
e a
pp
rop
riate
reso
urc
es.
![Page 253: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/253.jpg)
Aug
14
00
:52
19
85
A
pp
end
i)L
G P
age
3
D1S
D
8
1_:_
:_:_
:_:_
:_:_
1 0
0
ROM
B
ox
Typ
e an
d S
ize
II
11
11
1
I I
I I
1_1_
1 M
emor
y S
ize F
ield
I
I I
I (X
X)
= N
o M
emor
y S
pac
e R
equ
ired
I
I I
I 0
01
= 6
4K
By
tes
I I
I I
01
0 =
128
K B
yte
s I
I I
I 0
11
= 2
56K
B
yte
s I
I I
I 1
00
= S
12K
B
yte
s I
I I
I 1
01
= 1
M
eg
I I
I I
11
0 =
2 M
eg
I I
I I
11
1 =
4 M
eg
I I
I I
I I
I I
Box
Siz
e F
ield
I
I _1
_1
(XX
) lO
Oan
s 2
**
0 =
1 B
ox
+
0 B
oar
d s
lots
I
I 0
01
It
2*
*1 =
1 B
ox
+
1 B
oar
d s
lot
I I
01
0
It
2**2
= 1
Box
+
3
Bo
ard
slo
ts
I I
01
1
It
2**3
= 1
Box
+
7
Bo
ard
slo
ts
I I
10
0
It
2*
*4
= 1
B
ox
+
15
Bo
ard
s slo
ts
I I
etc
I
I I_
I 0
0 R
eser
ved
(b
oar
d)
1-:
-:-:
-:-:
-:-:
-1
02
RO
M
1-:
-:-:
-:-:
-:-:
-1
04
RO
M
1-:
-:-:
-:-:
-:-:
-1
06
RO
M
1-:
-:-:
-:-:
-:-:
-1
08
RO
M
1-:
-:-:
-:-:
-:-:
-1
OA
RO
M
1-:
-:-:
-:-:
-:-:
-1
OC
ROM
1
-:-:
-:-:
-:-:
-:-1
O
E RO
M
1-:
-:-:
-:-:
-:-:
-1
10
RO
M
1-:
-:-:
-:-:
-:-:
-1
12
ROM
1-:
-:-:
-:-:
-:-:
-1
14
RO
M
1-:
-:-:
-:-:
-:-:
-1
16
RO
M
1-:
-:-:
-:-:
-:-:
-1
18
01
Box
wit
ho
ut
Init
/Dia
gn
ost
ic C
ode
10
Box
w
ith
In
it/D
iag
no
stic
Cod
e 1
1 R
eser
ved
Pro
du
ct
Num
ber
Res
erv
ed:
Mus
t =
00
Res
erv
ed:
Mus
t =
00
Mfg
# H
i B
yte
M
fg#
Lo
By
te
Op
tio
nal
Seri
al#
By
te 0
O
pti
on
al
Seri
al#
By
te 1
O
pti
on
al
Seri
al#
By
te
2 O
pti
on
al
Seri
al#
By
te 3
Op
tio
nal
Init
/Dia
gn
ost
ic V
ecto
r H
i B
yte
Op
tio
nal
Init
/Dia
gn
ost
ic V
ecto
r L
o B
yte
Res
erv
ed
(No
thin
g r
eq
uir
ed
)
Aug
14
00
:52
19
85
.A
ppen
diJL
G P
age
4
1_:_
:_:_
:_:_
:_:_
1 2
0
R/W
1
11
11
1"
11
11
11
11
Co
ntr
ol/
Sta
tus R
eg
(Sys
Rese
t C
lears
) (L
oc R
ese
t d
oesn
't)
'''"
11
1
I II
1
II 1
1----1
I
" II
1
1-----1
1
II
I 1
1-----1
1
II 1
1-------1
I
I 1 1
------1
1
I 1
---------1
I 1
--------
wri
te
Rea
d
INT
E
nab
le
INT
En
able
I
Pass
Co
nfi
g
Pass
Co
nfi
g
I R
ese
t Z
ero
I
INT
2 P
end
ing
I
INT
6 P
end
ing
I
INT
I P
end
ing
I
En
able
Mem
ory
En
able
Mem
ory
I 1
----------
I Am
Pu
llin
g I
NT
I
1_:_
:_:_
:_:_
:_:_
1 22
W
(Rd
Op
tnl)
S
lot
Ad
dre
ss R
eg
(Res
et C
lears
) I
1 •
1 I
1 •
I A
l2
1 I
....
••..
....
... e
tc
1 I
Al8
1
Pro
tect
Ad
dre
ss
(Res
et C
lears
) T
his
cit
can
no
t b
e s
et
to 0
, o
nce
it h
as
bee
n s
et
to 1
, ex
cep
t b
y
RE
SET
1_:_
:_:_
:_:_
:_:_
1 2
4
W(O
ptnl
Rd)
O
pti
on
al
Mem
ory
Ad
dre
ss R
eg
I ...... I
I
. .
. •
. .
I A
l6 o
r D
on
't C
are
(Dep
ends
on
Mem
Siz
e)
I ..
....
....
....
....
....
... E
tc
I ~3
Fig
ure
1
Box
Au
to C
on
fig
ura
tio
n C
on
tro
l B
lock
Box
Au
to C
on
fig
ura
tio
n C
on
tro
l B
lock
Th
is s
ecti
on
dis
cu
sses
each
fie
ld in
th
e b
ox
au
to-c
on
fig
ura
tio
n c
on
tro
l b
lock
. T
he
blo
ck
is m
ade
up o
f a
com
bin
atio
n o
f re
qu
ired
an
d o
pti
on
al
ROM
by
tes,
an
d r
eq
uir
ed
an
d o
pti
on
al
co
ntr
ol
reg
iste
rs.
Ob
vio
usl
y,
ind
ivid
ual
bo
ard
desi
gn
s w
ill
hav
e o
ther
co
ntr
ol
reg
iste
rs a
s w
ell
, fo
r in
stan
ce D
MA
co
ntr
ol
reg
iste
rs.
Th
e au
toco
nfi
g b
lock
co
nta
ins
all
o
f th
e i
nfo
rmati
on
necess
ary
fo
r th
e C
Al
au
toco
nfi
g s
oft
ware
. T
her
e is
a sim
ilar
blo
ck
fo
r b
oard
s,
call
ed
th
e B
oar
d A
uto
Co
nfi
gu
rati
on
C
on
tro
l B
lock
.
Box
Typ
e an
d S
ize
Th
is R
OM b
yte
wil
l id
en
tify
th
e t
yp
e a
nd
siz
e o
f th
e b
ox
resp
on
din
g.
Fig
ure
1 ex
pla
ins
the fi
eld
s.
![Page 254: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/254.jpg)
Au
g 1
4 0
0:5
2 1
98
5 Append~G P
ag
e 5
Pro
du
ct
Nw
nber
Th
is n
wn
ber
is
dete
rmin
ed
by
th
e m
an
ufa
ctu
rer
and
wil
l b
e r
ep
ort
ed
in
th
e a
uto
co
nfi
gu
rati
on
sy
stem
tab
le.
Rese
rved
2
By
tes
Th
ese
by
tes
mu
st r
ead
zero
.
Mfg
Nw
nber
(2
B
yte
s)
Th
is n
wn
ber
is
ass
ign
ed
by
Con
mod
ore,
an
d w
ill
be r
ep
ort
ed
in
th
e
au
to c
on
fig
ura
tio
n s
yst
em
tab
le a
s w
ell
. E
ach
man
ufa
ctu
rer
is
ass
ign
ed
a
un
iqu
e n
wn
ber
by
Con
mod
ore.
Opt
.!..o
nal
Seri
al
Nw
nber
(4
By
tes)
Th
is n
wn
ber
may
be s
up
pli
ed
or
om
itte
d b
y t
he m
an
ufa
ctu
rer,
w
hate
ver
is
fou
nd
whe
n re
ad
ing
th
is fi
eld
wil
l b
e r
ep
ort
ed
in
th
e a
uto
co
n fi
g
syst
em
tab
le.
Op
tio
nal
Init
jDia
gn
osti
c V
ecto
r
Th
is
2 b
yte
vecto
r p
oin
ts t
o I
nit
jDia
gn
ost
ic C
od
e. If s
uch
co
de
is r
esid
en
t o
n t
he b
ox
, th
en t
he B
ox T
yp
e/S
ize fi
eld
wil
l te
ll
the p
rocess
or.
T
he p
rocess
or
wil
l u
se t
his
vecto
r to
do
a
JSR
to
th
e c
od
e.
Th
e co
de s
ho
uld
term
inate
wit
h a
n R
TS
.
Rese
rved
By
te
~o re
spo
nse
req
uir
ed
.
Co
ntr
ol/
Sta
tus
Reg
iste
r
Th
is R
/W r
eg
iste
r is
req
uir
ed
on
all
bo
xes.
S
ome
of
the fu
ncti
on
s in
th
is r
eg
iste
r m
ay n
ot
ap
ply
to
a p
art
icu
lar
desi
gn
. In
th
e c
ase
th
at
no
ne
of
these
fun
cti
on
s ap
ply
, th
e m
ost
sig
nif
ican
t b
it m
ust
sti
ll
be i
mp
lem
ente
d a
s a
R
/W b
it fo
r au
to c
on
fig
an
d d
iag
no
stic
reaso
ns.
If t
he b
ox
dri
ves o
ne o
r m
ore
in
terr
up
ts t
o t
he p
rocess
or,
th
en t
he
ap
pro
pri
ate
En
ab
le a
nd
Pen
din
g b
its m
ust
be i
mp
lem
ente
d.
Pass
CO
NFI
G s
en
ds
an
acti
ve C
ON
FIG
* sig
nal
to t
he n
ex
t b
ox
whe
n P
ass
Co
nfi
g i
s s
et
to a
1
.
Th
e L
ocal
Rese
t P
uls
e r
esets
mo
st c
on
tro
l sta
te o
n t
he b
ox
, ju
st
as
a re
set
fro
m t
he p
rocess
or
Rese
t li
ne d
oes.
N
ote
th
at
this
pu
lse
do
es
no
t re
set
the C
on
tro
l/S
tatu
s R
eg
iste
r.
Aug
14
00
:52
19
85
Append~G P
ag
e 6
Th
e E
nab
le M
emor
y b
it e
nab
les
the o
pti
on
al
IOO
IIlO
ry s
pace r
eco
gn
itio
n
cir
cu
itry
if t
he b
ox
use
s m
emor
y sp
ace.
Slo
t A
dd
ress
Reg
iste
r
Th
is r
eg
iste
r is
use
d b
y t
he a
uto
co
nfi
g c
od
e t
o p
lace t
he b
ox
in
S
lot
Sp
ace
(ak
a C
on
fig
Sp
ace).
T
his
ad
dre
ss a
lso
bec
om
es t
he b
ase
ad
dre
ss
fro
m w
hic
h a
ny
bo
ard
s in
th
e b
ox
are
off
set
(on
4K
bo
un
dari
es)
.
In o
ther
wo
rds
the b
ox
perf
orm
s th
e s
lot
ad
dre
ss r
eco
gn
itio
n fo
r it's
b
oard
s as w
ell
.
Th
is r
eg
iste
r is
req
uir
ed
, it i
s c
leare
d b
y S
ys
Rese
t o
nly
(n
ot
local)
.
Fo
r d
iag
no
stic
reaso
ns
and
ease
of
soft
ware
, y
ou
may
wan
t to
mak
e it R
/W,
on
ly W
rite
is r
eq
uir
ed
ho
wev
er.
No
te t
he h
igh
ord
er
bit
is
Pro
tect
Ad
dre
ss.
Th
is b
it p
rev
en
ts t
he
Slo
t A
dd
ress
Reg
an
d t
he M
emor
y A
dd
ress
Reg
fr
om
bein
g w
ritt
en
, o
nce t
his
bit
is
set.
T
his
bit
can
on
ly b
e c
leare
d b
y S
yst
em R
ese
t.
Op
tio
nal
Mem
ory
Ad
dre
ss R
eg
iste
r
Th
is r
eg
iste
r is
on
ly r
eq
uir
ed
if t
he r
eso
urc
es
on
th
e b
ox
its
elf
n
eed
mo
re t
han
4K
B
yte
s o
f ad
dre
ss s
pace.
If m
ore
sp
ace i
s r
eq
uir
ed
, p
ut
the a
pp
rop
riate
siz
e c
od
e in
th
e M
emor
y S
ize F
ield
(F
ig 1
) o
f th
e B
ox A
uto
Co
nfi
gu
rati
on
Co
ntr
ol
Blo
ck.
Th
is r
eg
iste
r w
ill
then
be
load
ed
wit
h a
b
ase
ad
dre
ss
for
the r
eq
uir
ed
Mem
ory
Ad
dre
ss S
pace.
Lo
adin
g t
his
reg
iste
r is
th
e lo
gic
al
eq
uiv
ale
nt
of
sett
ing
sw
itch
es
on
a
man
uall
y c
on
fig
ure
d b
oard
. I
use
d t
o h
av
e a
g
reat
jok
e i
n t
his
d
ocu
men
t ri
gh
t h
ere
, b
ut
Gle
nn
mad
e m
e ta
ke i
t o
ut.
On
ce t
he A
dd
ress
Pro
tect
Bit
has
be
en
set,
th
is r
eg
iste
r can
no
lo
ng
er
be w
ritt
en
.
Bo
ard
Au
to C
on
fig
ura
tio
n C
on
tro
l B
lock
Th
ere
is a
se
co
nd
vers
ion
of
the A
uto
co
nfi
g C
on
tro
l B
lock
fo
r b
oard
s.
It
use
s th
e s
ame
pri
ncip
les a
s t
he b
ox
le
vel
do
es,
b
ut it i
s a
su
bse
t b
ecau
se t
he b
oard
s n
eed
less i
nfo
rmati
on
.
![Page 255: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/255.jpg)
Aug
1
4 0
0:5
2
1985
A
pp
end
bcG
Pag
e 7
015
08
10
:0:0
:_:_
:_:_
:_1
0
0
ROM
B
oard
Typ
e an
d S
ize
I I
I I
I I
I 1_
1_1
Mem
ory
Siz
e F
ield
I
I 0
00
= N
o M
emor
y S
pac
e R
equ
ired
I
I 00
1 =
64K
By
tes
I I
010
= 12
8K B
yte
s I
I 01
1 =
256
K B
yte
s I
I 10
0 =
512
K
By
tes
I I
101
= 1
Meg
I
I 11
0 =
2 M
eg
I I
III =
4 M
eg
I I
I_I
00
Res
erv
ed
1-:
-:-:
-:-:
-:-:
-1
1-:
-:-:
-:-:
-:-:
-1
1-:
-:-:
-:-:
-:-:
-1
1-:
-:-:
-:-:
-:-:
-1
1-:
-:-:
-:-:
-:-:
-1
1-:
-:-:
-:-:
-:-:
-1
1-:
-:-:
-:-:
-:-:
-1
1-:
-:-:
-:-:
-:-:
-1
1-:
-:-:
-:-:
-:-:
-1
1-:
-:-:
-:-:
-:-:
-1
1-:
-:-:
-:-:
-:-:
-1
1-:
-:-:
-:-:
-:-:
-1
1-:
-:-:
-:-:
-:-:
-1
11
11
11
11
1
11
11
11
1
11
11
11
11
02
04
0
6
08
OA
ex:
OE
10
12
14
16
18
20
ROM
ROM
RO
M
ROM
RO
M
ROM
RO
M
ROM
RO
M
ROM
RO
M
R/W
I I
I I
I I
I 1
----
----
____
__
II II II 1
-----
I "
II 1
----
----
-___
_ _
" "
1--
----
----
----
----
-I
I I
1--
----
----
---_
___ _
I
I 1
----
----
----
----
----
-_
I 1
-----_
_ __
1
-----------
01 B
oard
wit
ho
ut
Init
/Dia
gn
ost
ic C
ode
10 B
oard
wit
h I
nit
/Dia
gn
ost
ic C
ode
11
R
eser
ved
Pro
du
ct N
umbe
r
Res
erv
ed:
Mus
t 0
0
Res
erv
ed:
Mus
t 0
0
Mfg
# H
i B
yte
Mfg
# Lo
B
yte
Op
tio
nal
Seri
al#
By
te 0
O
pti
on
al S
eri
al#
By
te 1
O
pti
on
al S
eri
al#
By
te 2
O
pti
on
al S
eri
al#
By
te 3
Op
tio
nal
In
it/D
iag
no
stic
Vec
tor
Hi
By
te
Op
tio
nal
In
it/D
iag
no
stic
Vec
tor
Lo
By
te
Res
erv
ed
(No
thin
g r
equ
ired
)
Co
ntr
ol/
Sta
tus R
eg
(Sys
Res
Clr
s)
Wri
te
INT
En
able
P
ass
Co
nfl
g
Loc
Bd
Res
et
En
able
Mem
ory
Rea
d
I IN
T E
nab
le
I P
ass
Co
nfl
g
I Z
ero
I
INT
2 P
end
ing
I
INT
6 P
end
ing
I
INT
I P
end
ing
I
En
able
Mem
ory
I I
I A
m P
ull
ing
IN
T I
I_IX
IXIX
IXIX
IXIX
I 22
~
I I
Mem
ory
Ad
dre
ss P
rote
ct
(I f
IIIE!
IOOr
y sp
ace
reg
iste
r is
ln
ple
men
ted
on
th
is b
oar
d)
I M
emor
y A
dd
ress
Pro
tect
Bit
Aug
14
00
:52
198
5 A
ppen
dbL
G P
age
8
1_
:_:_
:_:_
:_:_
:_1
24
W
(Rd
Op
tnl)
O
pti
on
al M
emor
y A
dd
ress
Reg
I ...... I
I ......
I A
16 o
r D
on
't C
are
(Dep
ends
on
Mem
Siz
e)
I ..
....
....
....
....
....
... E
tc
I A
23
Fig
ure
2
Boa
rd A
uto
Co
nfi
gu
rati
on
Co
ntr
ol
Blo
ck
Bad
Co
nfi
gu
rati
on
Pro
tecti
on
Bec
ause
bad
so
ftw
are
cou
ld c
ause
tw
o b
us
slav
es
to r
esp
on
d
to t
he s
ame
add
ress
(t
hu
s ca
usi
ng
3 s
tate
fig
hts
), it
is
nec
essa
ry t
o p
ut
a p
rote
cti
on
cir
cu
it o
n ea
ch b
ox
. T
his
cir
cu
it d
ete
cts
if t
wo
slav
es
are
res
po
nd
ing
on
the s
ame
bu
s cy
cle
, an
d i
f s
o it
ass
ert
s BE
RR*
so t
hat
the b
us
dri
vers
ca
nn
ot
bu
rn e
ach
oth
er
up
. T
he d
ata
bu
s d
riv
ers
on
all
sla
ve
bo
ard
s sh
ou
ld b
e d
esig
ned
to
go
tri-
sta
te i
f B
ERR*
is
acti
ve
(lo
w).
T
he t
ri-s
tate
fi
gh
t d
ete
cti
on
cir
cu
it s
ho
uld
ass
ert
BE
RR*
low
as
soo
n a
s tw
o si
mu
ltan
eou
s re
spo
nse
s are
dete
cte
d.
It
sho
uld
ho
ld B
ERR*
lo
w
for
gre
ate
r th
an
.25
sec
on
ds.
The
I-R
ESPO
ND
n*
lin
es
are
usu
all
y a
co
py o
f th
e t
ri-s
tate
en
able
si
gn
al
to t
he d
ata
dri
vers
. L
og
icall
y t
hey
mea
n t
hat
the b
oar
d
or
box
is r
esp
on
din
g t
o t
his
ad
dre
ss c
ycle
. B
e care
ful
that
if
you
are
des
ign
ing
a
bu
s m
aste
r,
that
you
do n
ot
ass
ert
I-R
ESPO
ND
* w
hil
e yo
u are
th
e a
cti
ve m
aste
r.
No
tice
th
at
a R
ESPO
NSE
· si
gn
al
casc
ades
dow
n fr
om u
pst
ream
bo
xes
. A
ny t
wo
resp
on
der
s o
n o
ne
bu
s cy
cle
is a
n e
rro
r an
d w
ill
ass
ert
th
e B
ERR*
o
ne
sho
t to
th
e s
yst
em.
![Page 256: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/256.jpg)
Aug
14
00
: 52
1985
A
ppen
di)L
G P
age
9
I I I B
oard
1
I I I BE
RR*
turn
s I
off
data
drv
rs I I
Boa
rd 2
B
oard
3
----,--1
--1
I
I I
I I
I CR
ESP
ON
Dl*
I I
-EE
SPO
ND
2*
I I-E
ESP
ON
D3*
I
I I
_V
V
V_
I B
ox
1 T
ri-S
tate
Fig
ht
Det
ecto
r I
I BE
RR*
= 2
or
mor
e acti
ve i
np
uts
I-
-->
BE
RR
* I
BERR
* fr
om t
his
cir
cu
it>
.2
5 s
ec
I lR
ES
PO
NS
Ein
*---
>I
lRE
SPO
NSE
out*
=
Ex
actl
y 1
acti
ve i
n
1---
>lR
ES
PO
NS
Eou
t*
(Fro
m
fart
her
I I
(Tow
ard
away
box
es)
Pro
cess
or)
Fig
. T
ri-S
tate
Fig
ht
Pro
tecti
on
Sch
eme
DES
IGN
ING
IN
BU
S FA
IRN
ESS
It
is i
nte
nd
ed t
hat
bu
s m
aste
rs
for
the A
mig
a w
ill
be d
esig
ned
in
su
ch
a m
anne
r th
at
the b
us
pro
toco
l is
"fa
ir".
In a
fa
ir p
roto
co
l, all
re
qu
est
ers
hav
e an
op
po
rtu
nit
y t
o u
tili
ze t
he b
us,
h
igh
pri
ori
ty
mas
ters
do
no
t st
arv
e l
ow p
rio
rity
mas
ters
.
Mo
nit
ori
ng
Com
mon
B
us R
equ
est
BR*
to t
he 6
8000
serv
es
as a
co
mm
on b
us
req
uest
. T
he A
mig
a sc
hem
e fo
r fa
irn
ess
use
s a
sta
te m
achi
ne
(fo
r ea
ch b
us
mas
ter)
th
at
e!l1
Jloy
s th
e
foll
ow
ing
ru
le.
Onc
e a
mas
ter
has
co
np
lete
d a
bu
rst
on
th
e b
us
(bu
rst
size s
ho
uld
be t
un
ab
le b
y s
oft
war
e)
he
reli
nq
uis
hes
the b
us
if C
Olll
llOn
Bus
Req
ues
t is
cu
rren
tly
bei
ng
ass
ert
ed
by
an
oth
er m
aste
r.
He
do
es
no
t ass
ert
BR*
ag
ain
un
til
he
sees
BR*
go
in
acti
ve.
The
resu
lt o
f th
is
is t
hat
if s
ev
era
l m
aste
rs a
re r
eq
uest
ing
th
e b
us,
th
ey
eac
h g
et
it,
befo
re a
ny
of
them
com
e b
ack
fo
r se
con
ds.
Not
e th
at
there
is o
ne
mas
ter
who
ca
n g
et
lock
ed o
ut
in t
his
sch
eme,
th
e 6
8000
bec
ause
it
do
es n
ot
ass
ert
BR
*.
We
hav
e b
een
th
ink
ing
of
des
ign
ing
a
sim
ple
ex
tern
al
cir
cu
it i
n a
n e
xp
ansi
on
box
wh
ich
wou
ld
get
the o
ther
mas
ters
off
th
e b
us,
b
ut
at
this
tim
e it
is s
till
sp
ecu
lati
on
. Y
ou a
re w
elco
me
to i
mpl
emen
t th
e i
dea i
f y
ou
wis
h,
it
cou
ld p
rob
ably
be
des
ign
ed t
o g
reatl
y i
mp
rov
e in
terr
up
t re
spo
nse
tim
e.
Bot
h o
f th
e a
bo
ve
ideas
can
be
impl
emen
ted
ver
y c
hea
ply
, an
d h
ave
big
Aug
14
00
:52
198
5 A
ppen
diJL
G P
age
10
pay
off
s in
ter
ms
of
syst
em p
erfo
rman
ce.
Th
ere
are
su
btl
eti
es
for
gett
ing
th
e b
est
resu
lts,
w
e w
ould
be
gla
d t
o c
riti
qu
e a
sp
ecif
ic
imp
lem
enta
tio
n a
s ti
me
perm
its.
If y
ou
r sc
hem
e d
oesn
't v
iola
te o
ur
pla
ns,
w
e w
ould
co
nsi
der
giv
ing
up
1 o
r 2
of
the r
eser
ved
pin
s on
th
e
86 p
in c
on
nec
tor.
Boa
rd F
orm
Fac
tor
At
this
tim
e w
e h
ave
no
t m
ade
a fi
nal
decis
ion
on
ex
tern
al
exp
ansi
on
bo
ard
for
m fa
cto
rs,
oth
er
tha
n t
he d
imen
sio
ns
rela
tin
g t
o t
he e
xp
ansi
on
co
nn
ecto
r it
self
. W
e are
lea
nin
g
tow
ard
a
syst
em o
f m
ult
iple
siz
es
of
bo
ard
s,
in o
rder
to
acco
mm
odat
e a
wid
e ra
ng
e o
f ap
pli
cati
on
s an
d m
ark
ets.
If
you
h
ave
stro
ng
pre
fere
nces
on
th
is i
ssu
e,
we
sho
uld
dis
cu
ss i
t so
on
. If
we
con
sid
er s
om
eth
ing
wit
h t
he a
rea o
f an
IBM
PC
big
gest
bo
ard
as
ou
r u
nit
bo
ard
, th
en p
oss
ibly
on
e ex
pan
sio
n b
ox s
ho
uld
be
des
ign
ed t
o h
ou
se u
nit
bo
ard
s an
d 1
/2 b
oar
ds;
an
d a
seco
nd
bo
x
des
ign
ed t
o h
ou
se 1
/2 b
oar
ds,
u
nit
bo
ard
s,
and
do
ub
le s
ize b
oar
ds.
T
he d
ou
ble
size
bo
ard
s w
ould
be
the s
ame
len
gth
as
IBM
la
rge s
ize,
and
tw
ice
as
hig
h.
We
are
co
nsi
deri
ng
rec
omm
endi
ng a
st
and
ard
fo
rm f
acto
r ex
pan
sio
n b
ox
so t
hat
smal
l d
evel
op
ers
nee
d n
ot
pro
vid
e th
eir
ow
n b
ox
. A
t th
is t
ime
we
are
no
t m
akin
g a
com
mit
men
t to
bu
ild
or
no
t b
uil
d s
uch
a
box
ou
rselv
es.
W
e are
op
en t
o s
ug
ges
tio
ns
from
th
ird
part
y d
evel
op
ers.
T
his
sta
nd
ard
fo
rm
facto
r w
ould
ho
use
th
e s
ize b
oar
ds
dis
cuss
ed i
n
the a
bo
ve
par
agra
ph
. T
he
bo
ard
s w
ould
in
clu
de
the 8
6 p
in c
on
nec
tor
alm
ost
id
en
tical
to t
he p
in o
ut
on t
he p
rocess
or,
th
e f
oll
ow
ing
pin
s are
wo
rth
no
tin
g:
Pin
#
7 9 11
12
20
Nam
e o
n B
oard
EX
PI
EXP2
ME*
BOA
RDSE
L*
EXP3
(Nam
e on
B
ox)
(EX
Pl)
(EX
P2)
Desc
rip
tio
n
Res
erv
ed
Res
erv
ed
(MEI
N*
,MEO
UT*
) T
his
sig
nal
ind
icate
s re
spo
nse
to
pre
sen
t B
us c
ycle
.
(CO
NFI
G*)
B
oard
sele
ct
is d
one
by
bo
x a
nd p
asse
d t
o
bo
ard
via
pin
12
. T
his
do
es n
ot
inclu
de
sele
ct
in M
emor
y S
pac
e,
wh
ich
mus
t b
e d
one
by
th
e b
oar
d i
tself
, if
M
emor
y S
pac
e is
use
d.
(EX
P3)
Res
erv
ed
(was
CA
RT*
)
![Page 257: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/257.jpg)
Aug
14
11
:31
198
5 A
ppen
dix-
ij P
age
1
APP
END
IX H
-A
mig
a H
ardw
are
Man
ual
Th
is a
pp
end
ix c
on
tain
s a
desc
rip
tio
n o
f th
e A
mig
a k
eyb
oar
d i
nte
rface
and
th
e h
ard
war
e o
f th
e A
mig
a k
eyb
oar
d.
KEY
BOA
RD
INTE
RFA
CE
The
key
bo
ard
plu
gs
into
th
e c
o!!
pu
ter
via
a
4-c
on
du
cto
r ca
ble
sim
ilar
to a
te
lep
ho
ne
han
dse
t co
ily
co
rd
(in
fa
ct,
a
tele
ph
on
e h
and
set
cab
le
may
be
sub
stit
ute
d i
n a
pin
ch
).
The
fo
ur
wir
es p
rov
ide
5 v
olt
pow
er,
gro
un
d,
and
two
sig
nals
call
ed
KCL
K (k
eybo
ard
clo
ck)
and
KDA
T (k
eybo
ard
data
).
KCLK
is
un
i-d
irecti
on
al
and
alw
ays
dri
ven
by
th
e k
eyb
oar
d;
KDAT
is
dri
ven
by
bo
th t
he k
eyb
oar
d a
nd t
he c
o!!
pu
ter.
B
oth
sig
nals
are
op
en
-co
llecto
r;
there
are
pu
llu
p r
esi
sto
rs i
n b
oth
th
e k
eyb
oar
d
(in
sid
e t
he k
eyb
oar
d m
icro
pro
cess
or)
an
d th
e c
o!!
pu
ter.
Key
boar
d co
mm
un
icat
ion
s:
The
key
bo
ard
tra
nsm
its
eig
ht
bit
dat
a w
ords
seri
all
y t
o t
he
mai
n u
nit
. B
efo
re t
he t
ran
smis
sio
n s
tart
s,
bo
th K
CLK
and
KDAT
are
hig
h.
The
key
bo
ard
sta
rts t
he t
ran
smis
sio
n b
y p
utt
ing
ou
t th
e f
irst
data
bit
(o
n KD
AT)
, fo
llo
wed
by
a p
uls
e o
n KC
LK
(low
th
en h
igh
);
then
it
pu
ts o
ut
the s
eco
nd
data
bit
and
pu
lses
KCL
K;
un
til
all
eig
ht
data
bit
s h
ave
bee
n s
en
t.
Aft
er t
he
end
of
the l
ast
KCLK
pu
lse,
the k
eyb
oar
d p
ull
s KD
AT h
igh
ag
ain
.
Whe
n th
e c
o!!
pu
ter
has
rec
eiv
ed t
he e
igh
th b
it,
it m
ust
pu
lse
KDAT
lo
w
for
at
least
75
mic
rose
con
ds,
as
a h
and
shak
e si
gn
al
to t
he k
eyb
oar
d.
All
co
des
tra
nsm
itte
d t
o t
he c
o!!
pu
ter
are
ro
tate
d o
ne
bit
bef
ore
tr
ansm
issi
on
. T
he t
ran
smit
ted
ord
er i
s t
here
fore
6-5
-4-3
-2-1
-0-7
. T
he r
easo
n
for
this
is t
o t
ran
smit
th
e u
p/do
wn
flag
last
, in
o
rder
to c
ause
a
key
-up
co
de
to b
e tr
an
smit
ted
in
cas
e th
e k
eyb
oar
d
is
forc
ed t
o r
est
ore
lo
st s
yn
c (e
xp
lain
ed i
n m
ore
deta
il b
elow
) .
The
KDA
T li
ne i
s a
cti
ve l
ow;
that
is,
a h
igh
lev
el
(+5V
) is
in
terp
rete
d a
s 0
, an
d a
low
lev
el
(OV)
is
in
terp
rete
d a
s 1
.
KCLK
KDAT
\...
.1\.
...1
\...
.1\.
...1
\...
.1\.
...1
\...
.1\.
...1
Fir
st
sen
t
(5)
(4)
(3)
(2)
(1)
(0)
(7)
Las
t se
nt
The
key
bo
ard
pro
cess
or
sets
th
e K
DAT
lin
e a
bo
ut
20 m
icro
seco
nd
s b
efo
re i
t p
ull
s KC
LK
low
. KC
LK s
tay
low
fo
r ab
ou
t 20
mic
rose
con
ds,
th
en g
oes
hig
h a
gai
n.
The
pro
cess
or
wait
s an
oth
er 2
0 m
icro
seco
nd
s b
efo
re c
han
gin
g K
DA
T.
Aug
14
11
:31
198
5 A
ppen
dix-
ij P
age
2
Th
eref
ore
, th
e b
it r
ate
du
rin
g t
ran
smis
sio
n i
s a
bo
ut
60
mic
rose
con
ds
per
bit
, o
r 17
kb
its/
sec.
Key
code
s: Eac
h k
ey h
as
a k
eyco
de
ass
ocia
ted
wit
h i
t (s
ee a
=o
!!p
any
ing
ta
ble
).
Key
code
s are
alw
ays
7 b
its
lon
g.
The
eig
hth
bit
is a
"k
ey-u
p"/
"key
-do
wn
" fl
ag
; a
0 (h
igh
lev
el)
mea
ns th
at
the k
ey
was
pu
shed
dow
n.
and
a 1
(low
lev
el)
mea
ns t
he k
ey w
as r
ele
ase
d
(th
e CA
PS
LOCK
key
is d
iffe
ren
t --
see b
elow
) .
Fo
r ex
anp
le,
here
is a
d
iag
ram
of
the "
B"
key
bei
ng
pu
shed
dow
n.
The
key
cod
e fo
r "B
" is
35H
= 00
1101
01;
due
to t
he r
ota
tio
n o
f th
e b
yte
, th
e b
its t
ran
smit
ted
are
011
0101
0.
KCL
K -
-\..
..1
-\..
..1
\..
..1-\
....1
\..
..I
\....I
\..
..I
0 KD
AT
, /--\--/--\--/
o 1
1 0
1 0
1 0
In t
he n
ext
exan
ple
, th
e "
B"
key
is r
ele
ase
d.
The
key
code
is
sti
ll 3
SH,
exce
pt
that
bit
7 i
s s
et
to i
nd
icate
"k
ey-u
p",
re
sult
ing
in
a c
od
e o
f BS
H =
1011
0101
. A
fter
rota
tin
g,
the
tran
smis
sio
n w
ill
be
0110
1011
:
KCLK
\..
..I
\....I
\..
..I
\....I
\..
..I
\....I
\..
..I
\....I
KD
AT
, /--\--/--,
/---
o 1
10
1
0 1
1
CAPS
LO
CK k
ey:
Th
is k
ey i
s d
iffe
ren
t fr
om a
ll t
he o
thers
in
th
at
it o
nly
g
ener
ates
a
key
-co
de
whe
n it
is p
ush
ed d
own,
n
ever
whe
n it
is
rele
ase
d.
How
ever
, th
e u
p/do
wn
bit
is s
till
use
d.
Whe
n p
ush
ing
th
e C
APS
LO
CK k
ey t
urn
s on
th
e C
APS
LO
CK L
ED,
the u
p/do
wn
bit
w
ill
be
0;
whe
n p
ush
ing
CA
PS L
OCK
shu
ts o
ff t
he L
ED,
the u
p/do
wn
bit
wil
l b
e 1
.
"Ou
t-o
f sy
nc"
co
nd
itio
n:
No
ise
or
oth
er
gli
tch
es
may
cau
se t
he k
eyb
oar
d t
o g
et
ou
t o
f sy
nc
wit
h t
he c
o!!
pu
ter.
T
his
mea
ns t
hat
the k
eyb
oar
d i
s
fin
ish
ed
tran
smit
tin
g a
co
de,
b
ut
the c
o!!
pu
ter
is s
omew
here
in
th
e m
idd
le o
f re
ceiv
ing
it.
If t
his
hap
pen
s,
the
n t
he k
eyb
oar
d w
ill
no
t re
ceiv
e i
ts h
and
shak
e p
uls
e a
t th
e e
nd
of
its t
ran
smis
sio
n.
If t
he h
ands
hake
pu
lse
do
es n
ot
arr
ive w
ith
in 1
43 I
llS
o
f th
e la
st
clo
ck o
f th
e t
ran
smis
sio
n,
then
th
e k
eyb
oar
d w
ill
assu
me
that
the c
o!!
pu
ter
is s
till
wai
tin
g
for
the r
est
of
the t
ran
smis
sio
n a
nd i
s t
here
fore
ou
t o
f sy
nc.
T
he k
eyb
oar
d w
ill
then
att
emp
t to
rest
ore
sy
nc
by
go
ing
in
to
"res
yn
c m
ode"
. In
th
is m
ode,
th
e k
eyb
oar
d c
lock
s o
ut
a 1
and
wait
s fo
r a
han
dsh
ake
pu
lse.
If n
one
arr
ives
wit
hin
143
ms,
it
clo
cks
ou
t an
oth
er 1
and
wai
ts a
gai
n.
Th
is p
roce
ss w
ill
con
tin
ue
un
til
a h
and
shak
e p
uls
e a
rriv
es.
![Page 258: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/258.jpg)
Aug
14
11
:31
1
98
5
Ap
pen
dix
JI P
age
3
Onc
e sy
nc i
s r
esto
red
, th
e k
eyb
oar
d w
ill
hav
e c
lock
ed
a
garb
ag
e
ch
ara
cte
r-in
to t
he c
on
pu
ter.
T
hat
is w
hy t
he k
ey-u
p/k
ey-d
ow
n
flag
is
alw
ays
tran
smit
ted
last.
S
ince t
he k
eyb
oar
d c
lock
s o
ut
l's
to
resto
re s
yn
c,
the g
arb
ag
e c
hara
cte
r th
us
tran
smit
ted
wil
l ap
pear
as
a k
ey
rele
ase,
wh
ich
is le
ss d
an
gero
us
than
a
key
hit
.
Wh
enev
er t
he k
ey
bo
ard
dete
cts
th
at
it h
as
lost
syn
c,
it w
ill
assu
me
that
the c
on
pu
ter
fail
ed
to
receiv
e t
he k
eyco
de
that
it h
ad
been
try
ing
to
tra
nsm
it.
Sin
ce t
he c
on
pu
ter
is u
nab
le
to d
ete
ct
lost
syn
c,
it i
s t
he k
ey
bo
ard
's r
esp
on
sib
ilit
y t
o
info
rm t
he c
on
pu
ter
of
the d
isaste
r.
It
do
es
this
by
tra
nsm
it
tin
g a
"lo
st
syn
c"
cod
e (v
alu
e F
9H =
11
11
10
01
) to
th
e c
on
pu
ter
Th
en it r
etr
an
smit
s th
e c
od
e th
at
had
been
garb
led
.
No
te:
the o
nly
reaso
n t
o t
ran
smit
th
e "
lost
syn
c"
cod
e to
th
e
co
np
ute
r is
to
ale
rt t
he s
oft
ware
th
at
som
eth
ing
may
be s
crew
ed
up
. T
he
"lo
st
syn
c"
cod
e d
oes
no
t h
elp
th
e r
eco
very
pro
cess
, sin
ce t
he g
arb
ag
e k
eyco
de
can
't b
e d
ele
ted
(w
ater
u
nd
er th
e
bri
dg
e),
an
d t
he c
orr
ect
key
co
de
co
uld
sim
ply
be r
etr
an
smit
ted
w
ith
ou
t te
llin
g t
he c
on
pu
ter
that
there
was
an
err
or
in t
he
pre
vio
us
on
e.
Po
wer
-up
seq
uen
ce:
Th
ere
are
tw
o p
ossib
le w
ays
for
the k
eyb
oar
d t
o b
e p
ow
ered
up
u
nd
er
no
rmal
cir
cu
mst
an
ces:
Cas
e i:
C
ase
ii:
Tu
rn o
n c
on
pu
ter
wit
h k
eyb
oar
d p
lug
ged
in
; P
lug
a
key
bo
ard
in
to a
n a
lread
y "
on
" co
np
ute
r.
Th
e k
eyb
oar
d a
nd
co
np
ute
r m
ust
han
dle
eit
her
case
wit
ho
ut
cau
sin
g a
ny
up
set,
p
art
icu
larl
y c
ase
ii.
Th
e fir
st
thin
g t
he k
eyb
oar
d d
oes
on
po
wer
-up
is t
o p
erf
orm
a
self
-test.
T
his
in
vo
lves
a RO
M c
hec
ksu
m t
est,
si
mp
le R
AM
te
st,
an
d w
atch
do
g t
imer
test.
Wh
enev
er t
he k
ey
bo
ard
is
po
wer
ed u
p
(or
resta
rted
--
see b
elo
w)
, it m
ust
no
t tr
an
smit
an
yth
ing
un
til
it h
as
ach
iev
ed
sy
nch
ron
izati
on
w
ith
th
e c
on
pu
ter.
T
he
way
it d
oes
th
is is
by
slo
wly
clo
ck
ing
ou
t 1
bit
s,
as d
esc
rib
ed
ab
ov
e,
un
til
it r
eceiv
es
a h
and
shak
e p
uls
e.
In C
ase
i,
the k
ey
bo
ard
may
co
nti
nu
e t
his
pro
cess
fo
r se
vera
l m
inu
tes
as
the c
on
pu
ter
stru
gg
les
to b
oo
t u
p a
nd
get
run
nin
g.
Th
e k
eyb
oar
d m
ust
stu
pid
ly c
on
tin
ue c
lock
ing
ou
t l's
fo
r h
ow
ever
lo
ng
is n
ecess
ary
, u
nti
l it r
eceiv
es
its h
an
dsh
ak
e.
Aug
14
11
: 31
19
85
A
pp
en
dix
Ji P
age
4
In C
ase
ii,
no
mo
re t
hat
eig
ht
clo
ck
s w
ill
be
nee
ded
to
ach
iev
e
syn
c.
In t
his
case
, h
ow
ever
, th
e c
on
pu
ter
may
be in
an
y s
tate
im
ag
inab
le,
bu
t m
ust
no
t b
e a
dv
ers
ely
aff
ecte
d b
y t
he g
arb
ag
e
ch
ara
cte
r it w
ill
receiv
e.
Ag
ain
, sin
ce w
hat
it r
eceiv
es
is a
k
ey
rele
ase,
the d
amag
e sh
ou
ld b
e m
inim
al.
T
he
key
bo
ard
dri
ver
mu
st a
nti
cip
ate
th
is h
ap
pen
ing
an
d h
an
dle
it,
as
sho
uld
an
y
ap
pli
cati
on
wh
ich
use
s ra
w k
eyco
des
.
No
te:
the k
eyb
oar
d m
ust
no
t tr
an
smit
a
"lo
st
syn
c"
co
de a
fter
resy
ncin
g d
ue
to a
p
ow
er-u
p o
r re
sta
rt;
on
ly a
fter
resy
ncin
g
du
e to
a
han
dsh
ake
tim
e-o
ut.
On
ce t
he k
eyb
oar
d a
nd
co
np
ute
r are
in
sy
nc,
the k
ey
bo
ard
mu
st
info
rm t
he c
on
pu
ter
of
the r
esu
lts o
f th
e s
elf
-test.
If t
he
self
-test
fail
ed
fo
r an
y r
easo
n,
a "self
test
fail
ed
"
cod
e (v
alu
e F
Ql =
111
11
1(0
) is
tra
nsm
itte
d
(th
e k
eyb
oar
d d
oes
no
t w
ait
fo
r a
han
dsh
ake
pu
lse a
fter
sen
din
g t
he "
self
test
fail
ed
"
co
de).
A
fter
this
, th
e k
eyb
oar
d p
rocess
or
go
es
into
a
loo
p w
her
e it b
lin
ks
the C
APS
LO
CK
LED
to
in
form
th
e u
ser
of
the fa
ilu
re.
The
bli
nk
s are
co
ded
as
bu
rsts
of
1,
2,
3,
or
4 b
lin
ks,
ap
pro
x.
on
e b
urs
t p
er
seco
nd
. 1
bli
nk
= RO
M
chec
ksu
m fa
ilu
re;
2 b
lin
ks
RAM
te
st
fail
ed
; 3
bli
nk
s =
wat
chd
og
tim
er
test
fail
ed
; 4
bli
nk
s
a sh
ort
ex
ists
bet
wee
n t
wo
ro
w li
nes o
r 1
of
the 7
sp
ecia
l k
ey
s (t
his
la
st
test
isn
't
inp
lem
ente
d y
et)
.
If t
he s
elf
-test
succeed
s,
then
th
e k
eyb
oar
d w
ill
pro
ceed
to
tr
an
smit
an
y k
eys
that
are
cu
rren
tly
dow
n.
Fir
st,
it s
en
ds
an "in
itia
te p
ow
eru
p k
ey
str
eam
" co
de
(valu
e F
DH
= 1
11
11
10
1),
fo
llo
wed
by
th
e k
ey
co
des
of
all
d
ep
ress
ed
key
s (w
ith
key
up
/do
wn
set
to
"dow
n"
for
each
key
).
Aft
er
all
key
s are
sen
t (u
suall
y
there
wo
n't
be an
y a
t all
),
a "t
erm
inate
key
str
eam
" co
de
(valu
e
FEH
= 1
11
11
11
0)
is s
en
t.
Fin
all
y,
the C
APS
LO
CK
LED
is
sh
ut
off
. T
his
mar
ks
the e
nd
of
the s
tart
up
seq
uen
ce,
and
no
rmal
pro
cess
ing
co
nm
ence
s.
No
te:
these s
pecia
l co
des,
i.
e.,
F
Ql
et
aI,
are
8-b
it n
um
ber
s;
there
is n
o u
p/d
ow
n
flag
ass
ocia
ted
wit
h t
hem
. H
ow
ever
, th
e
tran
smis
sio
n b
it o
rder
is t
he s
ame
as
pre
vio
usl
y d
esc
rib
ed
.
Th
e u
sual
seq
uen
ce o
f ev
en
ts w
ill
there
fore
be:
po
wer
up
; sy
nch
ron
ize;
tran
smit
"in
itia
te p
ow
eru
p k
ey
str
eam
" (F
DH
);
tran
smit
"te
rmin
ate
key
str
eam
" (F
EH
).
Har
d R
ese
t
Th
e k
eyb
oar
d h
as
the a
dd
itio
nal
task
of
resett
ing
th
e c
on
pu
ter
on
th
e c
omna
nd o
f th
e u
ser.
T
he
use
r in
itia
tes h
ard
reset
by
si
mu
ltan
eo
usl
y p
ress
ing
th
e C
TRL
key
an
d t
he t
wo
"A
MIC
A"
key
s.
Th
e k
eyb
oar
d r
esp
on
ds
to t
his
in
pu
t b
y p
ull
ing
KCL
K
low
an
d
sta
rtin
g a
5
00
ID
S ti
mer.
A
t th
e e
nd
of
the 5
00
ID
S,
the p
rocess
or
ch
eck
s th
e t
hre
e k
ey
s to
see i
f t
hey
are
sti
ll d
own,
an
d i
f s
o,
resta
rts t
he 5
00
ID
S ti
mer.
T
his
co
nti
nu
es
un
til
on
e o
r m
ore
of
the t
hre
e k
ey
s is
rele
ase
d.
![Page 259: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/259.jpg)
Aug
14
11
' 31
t9
85
A
pp
end
bU
i P
age
5
Whe
n o
ne
or
mo
re k
eys
is r
ele
ase
d,
then
th
e p
rocess
or
wli
l w
ait
u
nti
l th
e e
nd
of
the 5
00
ms.
T
hen
it
jllI
!ps
to i
ts s
tart
up
co
de,
w
hic
h r
ele
ases K
CLK
an
d r
esta
rts t
he k
eyb
oar
d.
Sp
ecia
l C
od
as
I'v
e m
enti
on
ed s
ome
specia
l co
des
th
at
the k
eyb
oar
d u
ses
to
con
mu
nic
ate
wit
h t
he m
ain
un
it.
I'l
l s
wn
mar
ize
them
here
:
Co
de
Nam
e M
ean
ing
F9
L
ast
key
co
de
bad
, n
ex
t co
de
is s
ame
cod
e re
tran
smit
ted
(u
sed
whe
n k
eyb
oar
d a
nd
mai
n u
nit
get
ou
t o
f sy
nc)
.
FA
Key
bo
ard
ou
tpu
t b
uff
er
ov
erf
low
FB
6
50
0/1
cata
stro
ph
e,
rep
ort
s p
oss
ibly
lo
st
(*)
FC
Key
bo
ard
self
test
fail
ed
FD
In
itia
te p
ow
eru
p k
ey s
tream
FE
T
erm
inat
e k
ey s
tream
FF
In
terr
rup
t m
ain
un
it
for
key
str
eam
(Z
80
00
pro
ject
on
ly)
(*)
(*)
My
alg
ori
thm
do
esn
't u
se a
ny
of
the a
ste
risk
'ed
key
cod
es.
KEY
BO
AR
D
HA
RD
WA
RE
Th
is i
s a
d
esc
rip
tio
n o
f th
e h
ard
war
e in
sid
es
of
the A
roig
a k
eyb
oar
d.
Th
is is
on
ly v
ali
d
for
the
2nd
rev
isio
n o
f th
e k
eyb
oar
d.
Th
is is
th
e
on
e w
ith
th
e w
atch
do
g t
imar.
PRO
CES
SOR
Th
e p
rocess
or
is a
R
ockw
ell/
NC
R/M
OS
Tec
hn
olo
gie
s 6
50
0/1
. It
co
nta
ins
2K
by
tes
of
ROM
, 6
4 b
yte
s o
f RA
M,
and
4
I/O
po
rts o
f 8
bit
s e
ach
. It
als
o
has
a 1
6 b
it t
imar
and
ed
ge
dete
ct
cap
ab
ilit
y o
n t
wo
of
the I
/O l
ines
(po
rt A
bit
s 0
an
d 1
).
It
has
a b
uil
t in
cry
sta
l o
scil
lato
r w
hic
h w
e are
ru
nn
ing
at
3.0
0 m
egah
ertz
, w
hic
h i
s d
ivid
ed
in
tern
all
y t
o a
1
.5 M
Hz
inte
rnal
clo
ck
.
RE
SET
CIR
CU
ITR
Y
Th
ere
is a
cir
cu
it
for
resett
ing
th
e p
rocess
or
on
po
wer
-on
. T
he
reset
pu
lse l
asts
ab
ou
t 1
seco
nd
aft
er
po
wer
is
ap
pli
ed
. T
he
cir
cu
it a
lso
p
erf
orm
s a
"wat
chd
og
" fu
ncti
on
: o
nce
th
e p
rocess
or
sta
rts s
can
nin
g t
he
key
matr
ix,
the w
atch
do
g t
imar
is a
rmed
an
d w
ill
reset
the p
rocess
or
if
the s
can
nin
g s
top
s fo
r m
ore
th
an
ab
ou
t 5
0 m
illi
seco
nd
s.
Th
e co
lUlJ
JIl
15
lin
e
is t
he
tri
gg
er
for
the w
atch
do
g t
imar.
Aug
14
11
: 31
19
85
A
pp
end
ixJi
Pag
e 6
KEY
MA
TRIX
Th
ere
are
91
key
s o
n t
he k
eyb
oar
d.
84
of
them
are
arr
an
ged
in
a
matr
ix
of
6 ro
ws
and
15
co
lum
ns
(leav
ing
6 h
ole
s in
th
e m
atr
ix).
E
ach
ro
w i
s
an i
np
ut
and
has
a p
ull
up
resis
tor
to v
ee o
n i
t
(R=
3. 3
K t
o 1
1K
).
Eac
h
colw
nn
is a
n o
pen
-co
llecto
r o
utp
ut
wit
h n
o p
ull
up
, i.
e.,
it c
an
on
ly
dri
ve a
co
lum
n li
ne l
ow
, n
ot
hig
h.
'The
pro
gra
m w
ill
dri
ve c
olw
nn
s o
ne
at
a ti
ma a
nd
read
ro
ws.
'The
oth
er
7 k
eys
are
sp
ecia
.L s
hif
t k
ey
s as
foll
ow
s:
CT
RL
, le
ft S
HIF
T,
rig
ht
SH
IFT
, le
ft A
LT
, ri
gh
t A
LT
, le
ft A
MIC
A,
rig
ht
AM
ICA
. E
ach
of
these
k
eys
has
a d
ed
icate
d i
np
ut
on
th
e m
icro
pro
cess
or.
T
he
actu
al
po
rt a
nd
bit
n
wn
ber
s o
f all
th
e k
eys
are
desc
rib
ed
bel
ow
.
POR
TS
As
men
tio
ned
, th
ere
are
4
I/O
po
rts o
f 8
O~1:S
each
. T
he
foll
ow
ing
tab
le
desc
rib
es
each
po
rt a
nd
th
e m
ean
ing
of
each
bit
:
POR
T A
P
A.O
P
A.l
P
A.2
P
A.3
P
AA
P
A.S
P
A.6
P
A.?
65
00
/1 a
dd
ress
08
0 h
ex
In/O
ut
KD
AT
ou
tpu
t/p
osi
tiv
e e
dg
e o
ete
ct
.Lnp
ut
(*)
Ou
t KC
LK
ou
tpu
t (*
) In
R
ow 0
in
pu
t (l
ow
= s
wit
ch
clo
ssd
) In
R
ow
1 in
pu
t In
R
ow
2 in
pu
t In
R
ow
3 in
pu
t In
R
ow 4
in
pu
t In
R
ow 5
in
pu
t
(*)
Th
ese
two
bit
s a
re s
wap
ped
fr
om
th
e p
rev.
Lou
s co
de,
to
tak
e a
dv
anta
ge
the p
osit
ive e
dg
e d
ete
ct
cap
ab
ilit
y o
f th
e P
A.O
pin
(e
asi
er
to d
ete
ct
a h
and
shak
e th
is w
ay)
.
POR
T B
P
B.O
P
B.1
P
B.2
P
B.3
P
B.4
P
B.S
P
B.6
P
B.?
POR
T C
PC
.O
PC
.l
PC
.2
PC
.3
PC
.4
PC
.5
PC
.6
PC
.?
--6
50
0/1
ad
dre
ss 0
81
hex
In
R
igh
t S
HIF
T k
ey i
np
ut
(lo
w =
sw
itch
clo
sed
) .
In
Rig
ht
ALT
key
in
pu
t In
R
igh
t A
MIC
A k
ey i
np
ut
In
CTR
L k
ey
in
pu
t In
L
eft
SH
IFT
key
in
pu
t In
L
eft
ALT
k
ey i
np
ut
In
Left
AM
lCA
key
in
pu
t O
ut
CA
PS L
OCK
LE
D c
on
tro
l (h
igh
= LE
D o
n)
•
--6
50
0/1
ad
dre
ss 0
82
hex
O
ut
Col
umn
0 o
utp
ut
(acti
ve l
ow)
Ou
t C
oIU
lJJI
l 1
ou
tpu
t O
ut
Col
umn
2 o
utp
ut
Ou
t C
olw
nn 3
o
utp
ut
Ou
t C
oIU
lJJI
l 4
ou
tpu
t O
ut
Col
umn
5 o
utp
ut
Ou
t C
olu
nn
6
ou
tpu
t O
ut
Col
umn
7 o
utp
ut
![Page 260: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/260.jpg)
Aug
14
11
:31
19
85
Appendi~ P
age
7
POR
T 0
--6
50
0/1
ad
dre
ss 0
83
hex
PD
.O
Ou
t C
olum
n 8
ou
tpu
t P
D.1
O
ut
Col
umn
9 o
utp
ut
PD
.2
Ou
t C
olum
n 1
0 o
utp
ut
PD
.3
Ou
t C
olum
n 1
1 o
utp
ut
PD
.4
Ou
t C
olum
n 1
2 o
utp
ut
PD
.5
Ou
t C
olum
n 1
3 o
utp
ut
PD
.6
Ou
t C
olum
n 1
4 o
utp
ut
PO
.7
Ou
t C
olum
n 1
5 o
utp
ut
(*)
(*)
Th
is k
eyb
oar
d h
as o
nly
15
co
lum
ns,
nu
mbe
red
0 to
14
. H
owev
er,
the
mic
rop
rocess
or
soft
ware
su
pp
ort
s 1
6 c
olu
mn
s,
so w
e ca
n u
se i
t i
n a
fu
ture
key
bo
ard
.
COU
NTE
R P
IN
(in
pu
t o
r o
utp
ut)
On
the w
atch
do
g t
imer
bo
ard
, th
e c
ou
nte
r p
in i
s c
on
nec
ted
to
th
e c
olum
n 1
5
ou
tpu
t.
On
the o
lder
no
n-w
atch
do
g v
ers
ion
, th
e c
ou
nte
r p
in i
s u
nco
nn
ecte
d.
Th
is p
rov
ides
the k
eyb
oar
d p
rocess
or
the a
bil
ity
to
det
erm
ine
wh
ich
ty
pe o
f b
oard
it i
t is
in
sta
lled
in
, so
th
e n
ew p
rocess
or
can
wor
k in
old
bo
ard
s (w
ith
min
or
chan
ges
to
th
e b
oar
d)
.
NM
I IN
PUT
Th
is i
s c
on
nec
ted
to
vec
an
d w
ill
there
fore
nev
er t
urn
on
.
MA
lRIX
TA
BLE
The
fo
llo
win
g t
ab
le s
ho
ws
wh
ich
key
s are
read
ab
le i
n p
ort
A f
or
each
co
lum
n
yo
u d
riv
e.
Th
e k
ey c
od
e fo
r each
key
is a
lso
in
clu
ded
(i
n h
ex)
.
Row
5
Row
4
Row
3
Row
2
Row
1
Row
0
Col
umn
(Bit
7)
(Bit
6)
(Bit
5)
(Bit
4)
(Bit
3)
(B
it 2
) +
----
---+
----
---+
----
---+
----
---+
----
---+
----
---+
1
5
I (sp
are)
I (
spar
e) I
(sp
are)
I (
spar
e) I
(sp
are)
I (
spare
)'
(p0
.7)
I I
I I
I I
I I
(OE)
I
(1e)
I
(2e)
I
(47)
I
(48)
I
(49)
I
+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+
14
I (
spar
e) I
(LE
FT
I C
APS
I
TAB
I
,ES
C
I (p
0.6
) I
I SH
IFT
) I
LOCK
I
, ,
I I
(50)
I
(30)
I
(62)
I
(42)
I
(00)
I
(45)
I
+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+
13
I (
spar
e) I
Z
I A
,
Q
I I (
spar
e) I
(p
O. 5
) I
I I
I I
1 I
I I
(5E
) I
(31)
I
(20)
I
(10)
I
(01)
I
(SA
) I
+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+
12
,9
I
X
, S
I W
I
@
I F
1 (p
D. 4
) I (
N.P
.)
, I
, I
2 I
I (3
F)
I (3
2)
I (2
1)
I (1
1)
I (0
2)
I (S
O)
+--
---_
.+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+
11
I 6
le
O
, E
I
# I
F2
(pD
. 3)
I (N
.P.)
,
I I
3 ,
I (2
F)
I (3
3)
I (2
2)
,(1
2)
I (0
3)
I (5
1)
+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+
10
,3
'V
F
IR
$
I F
3
Aug
14
11
: 31
19
85
A
pp
end
ixJI
Pag
e 8
(pO
. 2)
9 (p
D. 1
)
8 (p
0.0
)
7 (p
c.7
)
6 (p
C.6
)
5 (P
C. 5
)
4 (P
C.4
)
3 (p
c. 3
)
2 (p
c.2
)
1 (p
c. 1
)
I (N
.P.)
I
4 I
(IF
) I
(34)
(2
3)
(13)
(0
4)
I (5
2)
+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+
I.
I B
IG
I
T
I %
I
F4
I (N
.P.)
I
I I
I 5
I I
(3C
) I
(35)
I
(24)
I
(14)
I
(05)
I
(53)
+
----
---+
----
---+
----
---+
----
---+
----
---+
----
---+
I
8 I
NIH
I
Y
I I
F5
I (N
. P.)
I
I I
I 6
I I
(3E
) I
(36)
I
(25)
I
(15)
I
(06)
I
(54)
+
----
---+
----
---+
----
---+
----
---+
----
---+
----
---+
I
5 I
M
I J
I U
I
&
I (sp
are)
I
I (N
.P.)
I
I I
I 7
I I
I (2
E)
I (3
7)
I (2
6)
I (1
6)
I (0
7)
I (5
B)
I +
----
---+
----
---+
----
---+
----
---+
----
---+
----
---+
I
2 I
<
I K
I
I I
* I
F6
I I (
N.P
.)
I ,I
I I
8 I
I I
(lE
) I
(38)
I
(27)
I
(17)
I
(08)
I
(55)
I
+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+
I EN
TER
I
>
I L
I 0
(I (s
par
e) I
I (N
.P.)
I
. I
I I
9 I
I I
(43)
I
(39)
I
(28)
I
(18)
I
(09)
I
(SC
) I
+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+
I 7
I ?
I I
PI)
I F
7 I (
N.P
.)
I /
I ;
I I
0 I
I (3
D)
I (3
A)
I (2
9)
I (1
9)
I (O
A)
I (5
6)
+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+
I 4
I (sp
are)
I"
{I
I F
8 I (
N.P
.)
I I
I [I
I I
(20)
I
(3B
) I
(2A
) I
(lA
) I
(OB
) I
(57)
+
----
---+
----
---+
----
---+
----
---+
----
---+
----
---+
I
1 I
SPA
CE
I (R
ET)
I }
I +
I
F9
I (N
.P.)
I
BAR
I I]
I =
I
I (l
D)
I (4
0)
I (2
B)
I (l
B)
I (O
C)
I (5
8)
I +
----
---+
----
---+
----
---+
----
---+
----
---+
----
---+
1
0
IB
AC
KID
EL
IR
ET
I
I I
flO
,
I (N
.P.)
I
SPA
CE
I I
,\,
I I
(OF)
I
(41)
I
(46)
I
(44)
'(
00
) I
(59)
,
+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+
o I
-I
CU
RS
I C
UR
S I
CU
RS
I C
UR
S ,H
EL
P
, (p
c.O
) I (
N.P
.)
I OO
WN
I R
IGH
T I
LE
FT
I U
P,
I ,(
4A
) I
(40)
I
(4E
) I
(4F)
I
(4C
) I
(SF)
I
+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+
Th
e fo
llo
win
g t
ab
le s
ho
ws
wh
ich
key
s are
read
ab
le i
n p
ort
B
(sh
ift
key
s) •
(Bit
6)
(Bit
5)
(Bit
4)
(Bit
3)
(Bit
2)
(Bit
1)
(Bit
0)
+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+
I L
EFT
I
LE
FT
,LE
FT
I
CTR
L I
RIG
HT
I R
IGH
T ,
RIG
HT
I ,
AM
IGA
. I
ALT
,S
HIF
T,
I A
MlG
A.
I A
LT
,SH
IFT
, I
(66)
I
(64)
'(
60
) I
(63)
I
(67)
I
(65)
,(
61
) I
+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+--
----
-+
![Page 261: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/261.jpg)
aliasing distortion
ALT keys
Amiga keys
AmigaDOS
amplitude
amplitude modulation
attach mode
automatic mode
barrel shifter
baud rate
beam cou n ters
bit-map
GLOSSARY
A side effect of sound sampling, where two additional frequencies are produced, distorting the sound output.
Two keys on the keyboard to the left and right of the Amiga keys.
Two keys on the keyboard to the left and right of the space bar.
The Amiga operating system.
The voltage or current output expressed as volume from a sound speaker.
A means of increasing audio effects by using one audio channel to alter the amplitude of another.
In sprites, a mode in which a sprite uses two DMA channels for additional colors.
In sound production, combming two audio channels for frequency /amplitude modulation or for stereo sound.
The normal sprite mode in which the sprite DMA channel, once it starts up, automatically retrieves and displays all of the data for a sprite.
The normal audio mode in which the system retrieves sound data automatically through D:t-.1A.
Blitter circuit that allows movement of images on pixel boundaries
Rate of data transmission through a serial port.
Registers that keep track of the position of the video beam.
The complete definition of a display in memory, consisting of one or more bit-planes and information about how to organize the
Glossary-l
![Page 262: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/262.jpg)
bit-plane
bit-plane animation
blanking interval
blitter
clear
rectangular display.
A con tiguous series of display memory words, treated as if it were a rectangular shape.
A means of animating the display by moving around blocks of playfield data with the blitter.
Time period when the video beam is outside the display area.
D1,1A channel used for data copying and line drawing.
To give a bit the value of o.
CLI = Command Line Interpreter
clipping
collision
color descriptor words
color indirection
color palette = color table
color register
color table
When a portion of a sprite is ou tside the display window and thus is not visible.
A means of detecting when sprites, playfields, or playfield objects attempt to overlap in the same pixel position or attempt to cross some pre-defined boundary.
Pairs of words that define each line of a sprite.
The method used by Amiga for coloring individual pixels in which the binary number formed from all the bits that define a given pixel refers to one of the 32 color registers.
One of 32 hardware registers con taining colors that you can define.
The set of 32 color registers.
Command Line Interpreter The command line interface to system commands and utilities.
com posite video
controller
coordinates
Glossary-2
A video signal, transmitted over a single coaxial cable, which includes both picture and sync information.
Hardware device, such as mouse or light pen, used to move the pointer or furnish some other input to the system.
A pair of numbers shown in the form, (x,y), where x is an offset from the left side of the display or display window and y is an offset from the top.
![Page 263: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/263.jpg)
Copper
coprocessor
cursor keys
data fetch
delay
depth
Display synchronized coprocessor that resides on one of the Amiga custom chips and directs the graphics display.
Processor that adds its instruction set to that of the mam processor.
Keys for moving something on the screen.
The number of words fetched for each line of the display.
In playfield horizontal scrolling, specifies how many pixels the picture will shift for each display field. Delay controls the speed of scrolling.
Number of bit-planes in a display.
digital-to-analog converter A device that converts a binary quantity to an analog level.
direct memory access
display field
display mode
display window
An arrangement whereby intelligent devices can read or write memory directly, without having to interrupt the processor.
One complete scanning of the video beam from top to bottom of the video display screen.
One of the basic types of display; for example, high or low resolution, interlace or non-interlace, dual playfield.
The portion of the bit-map selected for display. Also, the actual size of the on-screen display.
DMA = direct memory access
dual playfield mode
equal tempered scale
Exec
font
display time
A display mode that allows you to manage two separate display memones, glVlng you two separately controllable displays at the same time.
A musical scale where each note IS the 12th root of 2 above the note below it.
Low level primitives that support the AmigaDOS operating system.
A set of letters, numbers, and symbols sharing the same size and design.
The amount of time to produce one display field, approximately 1/60th of a second.
Glossary-3
![Page 264: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/264.jpg)
frequency
frequency modulation
genlock
high resolution
hold-and-modify
horizontal blanking interval
in terlace
joystick
ligh t pen
poin ter register
low resolution
manual mode
minterm
modulo
Glossary-4
The number of times per second a waveform repeats.
A means of changing sound quality by using one audio channel to affect the period of the waveform produced by another channel. Frequency modulation increases or decreases the pitch of the sound.
An optional feature that allows you to bring in a graphics display from an external video source.
A horizontal display mode where there are 640 pixels displayed across a horizontal line in a normal-size display.
A display mode that gives you extended color selection - up to 4,096 colors on the screen at one time.
Interval after the video beam has finished displaying one line and has not begun displaying another line.
A vertical display mode where 400 lines are displayed from top to bottom of the video display in a normal-size display.
A controller device that freely rotates and swings from left to right, pivoting from the bottom of the shaft; used to position something on the screen.
A controller device consisting of a stylus and tablet used for drawing something on the screen.
Register that is continuously incremented to point to a sefles of memory locations.
A horizontal display mode where 320 pixels are displayed across a horizon tal line.
Non-DMA output. In sprite display, a mode in which each line of a sprite is written in a separate operation. In audio output, a mode in which audio data words are written one at a time to the output.
One of eight possible logical combinations of data bits from three different data sources.
A number defining which data in memory belongs on each horizontal line of the display. Refers to the number of bytes in memory between the last word on one horizontal line and the beginning of the first word on the next line.
![Page 265: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/265.jpg)
mouse
multi-tasking
non- in terlace
NTSC
overscan
paddle controller
PAL
parallel port
pitch
pixel
playfield
playfield object
A controller device that can be rolled around to move something on the screen; also has buttons to give other forms of input.
A system where many tasks can be operating at the same time, with no task forced to be aware of any other task.
A display mode where 200 lines are displayed from top to bottom of the video display in a normal-size display.
National Television Standards Committee specification for composite video.
Area scanned by the video beam but not visible on the video display screen.
A game controller which uses a potentiometer (variable resistor) to position objects on the screen.
A European television standard similar to (but incompatible with) NTSC. Stands for "Phase Alternate Line" .
A connector on the back of the Amiga used to attach parallel printers and other parallel add-ons.
The quality of a sound expressed as its highness or lowness.
One of the small elements that makes up the video display. The smallest addressable element in the video display.
One of the basic elements in Amiga graphics; the background for all the other display elements.
Sub-section of a playfield used in playfield animation.
playfield animation = bit-plane animation
polarity
poten tiometer
primitives
quantization nOIse
True or false state of a bit.
An electrical analog device used to adjust some variable value.
Amiga graphics, text, and animation library functions.
Audio noise introduced by round-off errors when you are trying to reproduce a signal by approximation.
Glossary-5
![Page 266: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/266.jpg)
RAM
raster
read-only
resolution
RO:\!l = read-only memory
sample
sampling rate
sampling period
scrolling
serial port
set
shared memory
sprite
strobe address
task
timbre
track ball
transparen t
Glossary-6
Random access (volatile) memory.
The area in memory which completely defines a bit-map display.
Describes a register or memory area that can be read, but not written.
On a video display, the number of pixels that can be displayed In
the horizontal and vertical directions.
One of the segments of the time axis of a waveform.
The number of samples played per second.
The value that determines how many clock cycles it takes to play one data sample.
Moving a playfield smoothly in a vertical or horizon tal direction.
A connector on the back of the Amiga used to attach modems and other serial add-ons.
To give a bit the value of 1.
The RA:tvl used in the Amiga for both display memory and executmg programs.
Easily movable graphics object that is produced by one of the 8 sprite DMA channels and independent of the playfield display.
An address you put out to the bus to in order to cause some other action to take place; the actual data written or read is ignored.
Operating system module or application program. Each task appears to have full control over its own virtual 68000 machine.
Tone quality of a sound.
A controller device that you spin with your hand to move something on the screen; may have buttons for other forms of input.
A special color register definition that allows a background color to show through. Used in dual playfield mode.
![Page 267: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/267.jpg)
UART
video priority
video display
write-only
The circuit that controls the serial link to peripheral devices; short for Universal Asynchronous Receiver/Transmitter.
Defines which objects (playfields and sprites) are shown in the foreground and which objects are in the background. Higher priority objects appear in front of lower priority objects.
Everything that appears on the screen of a video monitor or televiSIon.
Describes a register that can be written to but cannot be read.
Glossaly-7
![Page 268: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/268.jpg)
![Page 269: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/269.jpg)
Index
68000 interrupting, 2-16
aliasing audio, 5-23
animation, 6-3 area fill, 6-10 attachment
audio, 5-19 sprites, 4-23
audio channels, 5-6 data, 5-6 DMA,5-12 interrupt, 7-13 non-DMA output, 5-28 output jacks, 8-29 RF,8-30 sampling period, 5-9 volume, 5-8
background color, 3-8 barrel shifter, 6-8 basic playfield, 3-7 baud rate, 8-25 beam position, 7-9 beam position counter, 7-9 bit-plane pointers
setting, 3-14 bit-planes
in dual playfield mode, 3-29 setting the number of, 3-9
blitter animation, 6-3 area fill, 6-10 ascending and descending addressing, 6-8 copying, 6-2 interrupt, 7-13 line drawing, 6-13 masking, 6-9 min terms, 6-4
-1-
modulos, 6-7 multiple source, 6-3 shifting, 6-8 using the Copper, 2-16 zero detection, 6-10
blitter registers in line draw mode, 6-14
collision, 7-6 color
attached sprites, 4-23 enabling, 3-23 in dual playfield mode, 3-31 in hold-and-modify, 3-52 sample register contents, 3-56 sprites, 4-7
color registers contents, 3-9 loading, 3-9 sprites, 4-32
color selection in high-resolution mode, 3-59 in hold-and-modify, 3-59 in low-resolution, 3-57
color table, 3-8 comparator, 4-26 controller port
joystick, 8-2 mouse, 8-2 trackball, 8-2
controllers light pen, 8-10 proportional, 8-6
Copper bus cycles used, 2-3 horizontal beam position, 2-5 in interlace mode, 2-15 instruction lists, 2-9 instructions
summary, 2-17
![Page 270: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/270.jpg)
interrupt, 7-13 interrupting the 68000, 2-16 loops and branches, 2-13 MOVE instruction, 2-4 SKIP instruction, 2-13 starting, 2-11 stopping, 2-11 vertical beam position, 2-6 wait instruction, 2-5 with the blitter, 2-16
Copper Danger Bit, 2-8 Copper registers
control register, 2-8 jump strobe addresses, 2-8 location registers, 2-7
copying data, 6-2 data fetch
high-resolution, 3-22 in basic playfield, 3-19 in horizontal scrolling, 3-47
data fetch start normal, 3-19
d ata fetch stop normal, 3-19
decibel values, 5-31 delay, 3-50 destinations, 6-3 disk
interrupt, 7-14 interrupts, 8-19
disk controller, 8-13 disk DMA, 8-15 display field, 3-2 display modes, 3-3 display window
maximum size, 3-42 normal, 3-18 starting positions
horizon tal, 3-39 vertical, 3-40
stopping positions horizontal, 3-40 vertical, 3-42
DMA audio, 5-12 control, 7-15 Disk, 8-15
-11-
sprites, 4-28 dual playfields
bit-plane assignment, 3-29 color in, 3-31 enabling, 3-33 in high resolution mode, 3-31 priority, 3-32 scrolling, 3-32 , 3-27
exclusive area fill, 6-12 external interrupts, 7-12 field time, 3-2 genlock
effect on background color, 3-8 optional board, 3-53
high resolution with dual playfields, 3-31
hold-and-modify, 3-52 inclusive area fill, 6-10 in terlace
Copper in, 2-15 modulo, 3-22 setting interlace mode, 3-11
interrupt disk, 7-14
interrupts audio, 7-13 blitter, 7-13 control registers, 7-10 Copper, 7-13 disk,8-19 external, 7-12 maskable, 7-10 non-maskable, 7-10
joystick proportional, 8-7 reading, 8-5
keyboard ghosting, 8-23 keycodes, 8-20 reading, 8-20
line drawing, 6-13 manual mode
in sprites, 4-25 masking
in the blitter, 6-9 memory allocation
formula for, 3-38
![Page 271: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/271.jpg)
mmterms, 6-4 modulation
amplitude, 5-18 frequency, 5-18 ,5-18
modulo blitter, 6-7 in basic playfield, 3-20 in horizontal scrolling, 3-47 interlace, 3-22 when memory picture is larger, 3-34
mouse buttons, 8-5 reading, 8-4
musical scales, 5-29 nOIse
audio, 5-23 normal playfield, 3-3 overscan, 3-17 paddle controller, 8-6 parallel port, 8-25 playfield
displaying, 3-22 playfield DMA
enabling, 3-22 playfields
allocating memory, 3-12 bit-plane pointers, 3-14 collision, 7-6 coloring the bit-planes, 3-14 defining display window, 3-16 dual playfield mode, 3-27 memory required, 3-13 multiple-playfield display, 3-53
playfields, scrolling, 3-43 playfield-sprite priority, 7-3 port
parallel, 8-25 serial, 8-25
port~
disk, 8-13 priority
dual playfields, 3-32 play field-sprite, 7-3 sprites, 7-1
proportional controllers reading, 8-8
resolution
-lll
setting resolution mode, 3-10 sampling
period, 5-9 ratc, 5-21
scrolling horizon tal, 3-45 in dual field mode, 3-32 vertical, 3-43
serial port, 8-25 sprites
address poin ters, 4-15 attached, 4-23 clipped, 4-5 collision, 7-6 color, 4-7 comparator, 4-26 data structure, 4-9 DMA,4-14 manual, 4-25 moving, 4-15 overlapped, 4-20 priorities, 7-1 reuse, 4-18 screen position, 4-2 shapc, 4-5 size, 4-5
text packed, 6-9
Venn diagrams blitter minterms, 6-16
video beam position in Copper use, 2-5
video output, 8-30 volume, 5-8 waveforms
audio, 5-1 zero detection, 6-10
![Page 272: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/272.jpg)
![Page 273: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/273.jpg)
![Page 274: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/274.jpg)
![Page 275: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/275.jpg)
![Page 276: Amiga Hardware Manual - eBook-ENG](https://reader035.vdocuments.mx/reader035/viewer/2022081515/568bf3081a28ab893398cad1/html5/thumbnails/276.jpg)