home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of A1200
/
World_Of_A1200.iso
/
datafiles
/
text
/
c_manual
/
system
/
hardware
/
hardware.doc
< prev
next >
Wrap
Text File
|
1995-02-27
|
19KB
|
510 lines
1 AMIGA HARDWARE
1.1 INTRODUCTION
This chapter is intended to give you a brief introduction
of the Amiga and its hardware.
1.2 AMIGA MODELS
The first Amiga model was released in the middle of 1985 and
caused much publicity. It was the first "home" computer with
a so called "multi media architecture" (it can combine raw
data with astonishing graphics and stereo sound) and it was
using a new operating system with true multi-tasking (several
programs/tasks can run at the same time).
Although it was far superior to other available computers on
the marked, it did not sell as good as could be expected. The
main problem was, as with all new computers, that there did
not exist any software that used the special features which
the Amiga offered. The Amiga was expensive (although just a
fraction of a similar computer would cost), and most software
was simply "ported" from other computers and were therefore
extremely bad. (Who wants to work with an Amiga which feels
like an Atari or PC?)
However, slowly more and more programs were written specially
for the Amiga and people started to realize what the Amiga
really could do (and what other computers could not do). Two
new models (A2000 and A500) were released with even more
features and with a more attractive price tag.
Now everything started to accelerate. More people bought an
Amiga and therefore more programmers started to write software
for it, which encouraged even more people to buy it and so
on... During 1989 and 1990 the Amiga community grew so fast
that it became the best selling home computer.
The success has continued since then, despite what all so called
"professional" programmers have said. The Amiga has constantly
been looked down on by the rest of the computer world, accusing
it for being a game machine. The problem is that they do not
understand that a computer that can play stunning games with
stereo sound and fantastic graphics must have a computer power
far beyond other so called "professional" computers which hardly
could handle graphics not to mention sound.
The attitude towards sound and graphics have luckily slowly
changed, and now these so called "professional" people start
to dream about operating system which offers good graphics, and
maybe even some sound. I do not think we shall tell them that
this already existed 1985, with true multi-tasking, on a machine
which in their opinion "only" could play games...
1.2.1 AMIGA 1000
The Amiga 1000 was the first Amiga model, and was released
in the middle of 1985. The very first models were sold with
only 256 KB of memory, but this was soon changed to 512 KB.
At that time, this amount of memory was considered to be a
lot, but most people using the Amiga realized that more,
actually a lot more, could sometimes be needed.
The Amiga 1000 consists of a main box (a bit smaller that
the box of the A200) with a separate keyboard. It uses
a 7 MHz Motorola 68000 processor (see below for more
information), and came with DOS V1.0 and V1.1 (some are
even using V1.2 and V1.3). This model is still used by some
people, but more and more are switching over to newer models,
or changing the mother board so it becomes very similar to an
Amiga 2000. Most new programs does not support this model any
more.
1.2.2 AMIGA 2000
Two new models of the Amiga were released 1987/88 - Amiga 2000
and Amiga 500. The A2000 was intended for the more professional
part of the Amiga community. The main box contains five large
slots (100 pins) and two smaller ones (intended for IBM PC
cards), in total seven slots. To each slot you may connect
external devices like hard disks, extra memory, internal
modems, etc...
Both the A2000 and A500 were released together with DOS V1.2,
and was later upgraded to V1.3. It is now also possible to buy
the new chips for V2.0.
Both computers are sold with 512 KB of memory (so called "chip
memory"). When upgraded the next 512 KB of memory is called
"slow memory" and the rest (up to 8 MB) is called "fast".
The Amiga's special chips (see below) can only reach the "chip
memory", hence the name, while the main processor (the 68000)
can reach all 9 MB. The 512 KB above the "chip memory" is called
"slow memory" since the main processor may be interrupted by
the custom chips while working with this memory type, and this
memory is therefore not always as fast as the rest.
The later models of the Amiga 2000 are sometimes called
"2000C". This is because they have 1 MB of chip memory instead
of only 512 KB as previous models.
1.2.3 AMIGA 500
The smaller model is almost identical to its big brother A2000,
but does not have any internal expansion slots. The keyboard
and the computer are built together. It has only one (external)
expansion slot on the left side and a small internal expansion
slot for 512 KB of extra memory. This model is much cheaper than
the A2000 and was intended to become a home computer for the
family, which it one year later became.
Many people thinks that the A2000 is far superior to the small
A500, but this is actually not true. As said above, the only
difference between these two models are that it is easier to
expand (add on extra devices) an A2000, and that it has a
separate keyboard. The rest is identical.
1.2.4 AMIGA 3000
The Amiga 3000 is currently the most powerful model. It comes
with a Motorola 68030 processor which is boasted with a 16 or
25 MHz mathematical coprocessor. All Amiga 3000s are sold with
an internal hard disk of various sizes. This model comes with
the latest version of the operating system V2.0 (explained
below).
This model comes with the new "Enhanced Chip Set" (ECS) and
can address up to 2 MB of chip memory. On the mother board
can up to 16 MB be installed, and if using one of the slots
up to 1 Gigabyte can be used. This is a mean machine!
1.2.5 AMIGA 500+
This is a new version of the Amiga 500. It comes also with the
new "Enhanced Chip Set" (ECS) and can address up to 2 MB of
chip memory. This model is also sold with the new V2.0 operating
system.
It still uses the old and trusted 68000 processor, but is still
a nice update from the Amiga 500.
1.2.6 AMIGA 600
The latest model is the Amiga 600. This machine comes in a much
smaller box than the Amiga 500, and does not have any numeric
key pad. This will definitely cause some problems with programs
that are using these keys. However, this model is easier to
take to your friends, and will probably be cheaper in the end.
The Amiga 600 does not have the famous expansion slot on the
left side as the Amiga 500 and Amiga 500+ have. Instead there
is a new type of slot which is made for "electronic credit
cards". These small cards can contain programs, games, extra
memory up to 8 MB, and a lot of other useful stuff like sound
samplers and video digitizers.
Since there is no expansion bus on this model you can not
connect existing hardwares like hard disk, and memory
expansion slots to it. This is sad, but since the Amiga 600
can use an internal hard disk I do not think this cause any
problems.
This model will definitely be called a "game machine", and will
will undoubtedly appeal to many families who previously used
game consoles.
1.2.7 FUTURE MODELS
Everything is changing these days, and so is the Amiga. It is
impossible to say what is coming next, but I would not mind
an Amiga "4000" with 68040 processor, 1 Gigabyte hard disk, 16-
bit stereo sound channels and a 24-bit graphics cards with
built in genlock... One thing is sure at least, the Amiga will
continue to live, more than ever.
1.3 PROCESSORS AND SPECIAL CHIPS
The main processor on the Amiga is not specially strong or
powerful, but together with several coprocessors (extra
processors) which are specialized in doing certain things very
fast, the Amiga can do things other computers can not.
The main processor on the Amiga is a Motorola 680x0. The famous
coprocessors are called ("Fat") Agnus, Paula, and Denise. These
chips are close linked to each other and can only work with
"chip memory" (explained below). These coprocessors are often
referred as the "custom chips".
1.3.1 MOTOROLA MC680X0 PROCESSORS
The main processor on all Amiga models except the Amiga 3000,
is a simple Motorola 68000 with only 7 MHz. This is a very
good processor although it is not very fast. This processor can
physically address up to 16 MB, although the "maximum" on the
Amiga is 8 MB.
There exist newer models which are faster, and the nice thing
is that all these new versions can be used by the Amiga. The
first step up is the 68010, which is a bit faster than the
previous model. However, it costs more than it gives in speed,
and a faster 68000 in 14 MHz gives more value for money.
The 68020 is a fast processor which is fitted on many so called
turbo cards. If you give it 32 bit memory it can be very fast.
The Amiga 3000 comes with a 68030 which is very fast. It can
address up to 2 Gigabytes although the "maximum" on the Amiga is
1 Gigabyte. This processor is used together with either 16 MHz
or a 25 MHz mathematical coprocessor to speed up the floating
calculations.
The latest Motorola processor is the 68040, which is (surprise)
even faster.
If you intend to do a lot of calculations a fast processor is
essential. It should be noted that a faster processor does not
necessarily increase the overall speed that much. To take
advantage of the new versions you also need to use 32-bit
memory instead of the slower 16-bit memory. Most new turbo
cards comes both with a faster processor and 32-bit memory.
Mathematical coprocessors like the 68881 or 68882 are great
if you have to do a lot of floating calculations. Although all
programs does not make use of these extra coprocessors most
"serious" programs do.
1.3.2 BLITTER
The "Blitter" is a part of the Agnus chip. It is specialized
in moving data, and can even do logically calculations and bit-
shifting while the data is moved. It is the Blitter which is
used when BOBs are drawn, data from and to the disks are
transferred, when windows are moved etc... The Blitter can also
be used to draw lines with patterns and fill areas with a
colour or pattern.
1.3.3 COPPER
The Copper is a part of the coprocessors on the Amiga which
main task is to change colours and display modes while the
picture is "drawn" on the monitor/TV. It is because of the
Copper you can use several screens on the same display and drag
them up or down.
The Copper is also used to increase the number of colours on
the display by making colourful backgrounds with smoothly
coloured skies. Furthermore, the Copper can be used to
synchronize other parts of the Amiga like the Blitter, and
can be used as a timer.
1.3.4 AUDIO CHANNELS
There exist four audio channels on the which each can play
sounds independently of the other processes. They convert 8-bit
data into analog waveforms which are sent to the two audio
ports. Since two of the channels are dedicated for the left
port and the other two channels for the right port can stereo
sound be played.
You only have to give the audio channels some digital waveforms
or sampled data, tell them which rate and volume should be used,
and they can play the sound without using any other processing
time. No other home computer have yet matched the quality nor
the efficiency with which the Amiga plays sound.
1.3.5 HARDWARE SPRITES
The sprite hardware is a part of the custom chips. It can
handle eight hardware sprites which can independently of the
display below be moved around and animated. Each sprite can
only use four colours where one is transparent, but if they
are paired up to 16 colours can be used.
Since these sprites are handled by the hardware are they
extremely fast but also simple to use. With some clever
software routines can the eight hardware sprites be used
several times on the same display thus greatly increase the
number of available sprites.
The sprite hardware can also be used to detect collisions
between two sprites, something which can be very useful in
games.
1.3.6 COMPLEX INTERFACE ADAPTOR (CIA)
To tie all processors and other hardware parts there exist two
so called "Complex Interface Adaptors" (CIA - 8520) chips.
These two chips several timers, status bits etc... See header
file "hardware/cia.h" for a full list.
Normally should a C programmer not go this deep into the
system, but it is acceptable as long as you do it with help of
the macros and constants defined in the header files. A lot of
fun and useful stuff like flashing with the power led can be
done.
1.3.7 DMA
DMA stands for "Direct Memory Access" which means that the
hardware can directly get and store data in the memory without
going through the main processor. For example; each audio
channel has a DMA port and thus can each channel play waveforms
continuously without disturbing other processes.
Most parts of the Amiga (the blitter, sprite hardware, copper,
audio channels etc..) have separate DMA channels/ports. Each
process can then very efficiently execute their tasks without
interfering or disturbing other parts.
1.3.8 THE ENHANCED CHIP SET
The custom chips have several times been updated. The latest
version is called the "Enhanced Chip Set", and the chips can
address up to 2 MB of chip memory. These new chips also offers
new display modes and other nice things. I will cover this
subject in the next version of the manual. (Hopefully very
soon...)
1.4 AMIGA DOS V2.0
The new operating system V2.0 (2.05 and 2.05) has been out for
quite a while now. With this new version comes a new ROM chip
on 512 KB which replaces the old "Kick Start" of only 256 KB.
A lot of things have been added which will be covered in the
next version. I am sad that I could not manage to include it in
this edition, but do not worry, it is coming soon!
1.5 MEMORY
The Amiga is using different types of memory, and it can
sometimes be rather confusing. The problem is that some of
the coprocessors can only use one type of memory while the
main processor can use all types. It is best to give a short
explanation.
1.5.1 CHIP
The so called "chip" memory is the only type of memory that can
be used by the custom chips on the Amiga. Anything that should
be used by the Blitter, Copper, Sprite Hardware, Audio Channels
etc... must be in chip memory.
The first Amiga models had 512 KB of chip memory. Later the
Amiga 2000C was released with 1 MB of chip memory. The newest
versions, Amiga 3000, Amiga 500+, Amiga 600, can all access up
to 2 MB of chip memory.
The more chip memory you have the more graphics, sounds,
sprites etc can be used. If your program does not necessarily
have to use chip memory should you instead first try to use
other types of memory. This is explained in the first
introduction chapter of the manual.
1.5.2 SLOW
The so called "slow" memory exists only on old Amiga 500 and
Amiga 2000 models. These models can only access 512 KB of chip
memory. The following 512 KB can not be used by the custom
chips, but the memory can still be interrupted by the custom
chips. If the Amiga is using a lot of graphics or sound this
memory is often interrupted and therefore will all operations
with this type of memory be a bit slower.
1.5.3 FAST
The following 8 MB (or more if you have an Amiga 3000) are of
the type "fast memory". This memory can only be accessed by the
main processor, and will not be interrupted by the custom
chips.
1.6 HIT THE HARDWARE
Normally should all operations be made by the special functions
which are included in the libraries. You can then be sure that
your program will run without problems on even future models.
However, sometimes can it be necessary to directly modify the
hardware registers. If speed is essential or you want to write
a small and simple program you may use parts of the hardware.
The problem when you are using the hardware directly is that if
a new Amiga model is released it may happen that the resources
have been moved to a new location. The functions in the
libraries are always updated when the system is changed so any
program that is using these functions will continue to run as
before. However, programs that hit the hardware may crash on
the new system!
To use the hardware and still be relative safe you should use
two special global structures:
1. The Custom structure.
2. The CIA structure.
1.6.1 GET ACCESS TO THE CUSTOM CHIPS
The Custom structure is defined in header file "hardware/
custom.h". It is a very large structure that contains many of
the custom chips' hardware registers. This structure is
automatically linked to the custom chips, and any modifications
in the structure will directly affect the hardware registers.
To get access to the Custom structure you should write like
this: (The name must be "custom"!)
extern struct Custom far custom;
You can now start to modify the values in the custom structure,
but still be relative safe that your program will continue to
run on later Amiga models. See the header files and the
included examples for more information about how to use these
registers.
Note that some of these registers should be "reserved" and
"locked" before you may start to alter them. See chapter
"AudioiDevice" for more information. You can of course directly
modify the values, but you may end up modifying other programs'
values. This will normally not be any problems for the system,
but the other program will definitely not like it.
1.6.2 GET ACCESS TO THE CIA CHIPS
The CIA structure is automatically linked to the CIA chips.
There exist two CIA chips and therefore it also exist two
CIA structure (defined in the header file "hardware/cia.h"). To
get access to these structures you should write like this: (The
names must be "ciaa" and "ciab"!)
extern struct CIA far ciaa;
extern struct CIA far ciab;
You can now start to use the CIA registers. See header files
and included examples for more information about how eo use
these registers.
1.7 EXAMPLES
Example 1
This fantastic useful program does what all true hackers have
dreamt of. Enjoy your Amiga's fantastic ability to flash one
LED!
Example 2
This is a very bad program that plays a tune with the first
audio channel. The reason why it is bad is because the
program does not "lock" the channel before it uses the
hardware. It simply steals the sound channel without asking
nor notifying anyone.
If you lock the channel as described in the Audio Device
chapter you may use the hardware registers. However, this
program does not lock it nor tries to reserve the channels
as we should. The program is included here only as a
demonstration how the hardware registers are working, but
should not be used in your own programs!!!
See also programs in the chapter "DirtyInput".