FACTS BEHIND THE FLASHES
(The Amiga Startup Messages)

By Betty Clay

It is not unusual for a computer to try to communicate with its
owner during the start-up routines.  Remember the flashing of the
lights on the 4040 and 8050 disk drives?  On my 8050 drive, two
flashes of the green LEDs indicate that things are fine.  More
than two indicate a problem, and if there were such a thing as a
local Commodore repairman, he would be helped if he knew how many
times my drive was flashing the lights. 

Another way the earlier Commodores communicated with us was by
printing the number of bytes free on the screen at startup.  If
the number was wrong, we knew that some of the RAM had failed to
accept data during the startup routine, since the computer would
assume that the end of BASIC was at the last location in which it
could write and read back data.  If a memory chip became bad, the
number of bytes free would be the same as the number to which the
processor had successfully written and read back its startup
data.

The Amiga has a rather elaborate set of diagnostics, if we only
know how to interpret them.

THE AMIGA START-UP ROUTINE

When you turn on your Amiga, it has a rather long and complicated
set of routines through which it must go before it can allow you
to interrupt it.  As the startup process goes along, Amiga is
trying to let you know whether all is well.  There has been a
small problem with this, however - Commodore forgot to tell us
what the signals mean!

Here is a list of the startup-routine activities:

1.  Clear all of the chips of old data.
2.  Disable DMA and interrupts during the test.
3.  Clear the screen.
4.  Check the Hardware (make sure the 68000 is working)
5.  Change the screen color to show whether this test was passed
6.  Do a checksum test on all the ROMS
7.  Change screen color to show if ROMS passed the test
8.  Begin the system startup
9.  Check the Ram at $C0000, and move SYS_BASE there
10. Test all of the chip RAM
11. Change the screen color to show if the RAM passed the test
12. Check to see if software is coming in OK
13. Change the screen color to show if the software test is
passed.
14. Set up the chip ram to receive data.
15. Link the libraries.
16. Check for additional memory and link it in if found
17. Turn the DMA and Interrupts back on.
18. Start a default task.
19.  Check to see if the computer is using a 68010, 68020, and/or
68881.
20.  Check to see if there is an Exception (processor error)
21 If so, do a system reset.

AND THE MESSAGES ARE IN TECHNICOLOR!

As this routine is taking place, the Amiga is sending you
messages with the screen colors.  If all is well, we usually see
this sequence: 

Dark gray      The initial hardware tested OK.  The 68000 is     
                running and the registers are readable
Light gray     The software is coming in and seems OK
White          The initialization tests were all passed

But if something is wrong with your Amiga, you might see:

Red            If there is an error in ROM
Green          If there is an error in the Chip RAM
Blue           If an error was found in the custom chips
Yellow         If the 68000 found an error before the error      
               trapping software (the guru) was up and running

The most likely of these errors seems to be the error in Chip
RAM.  Only this week, I saw an AMIGA 500 flash a brilliant green
screen when an expansion RAM board was put in hastily, and did
not settle in correctly.  A repositioning of the board corrected
the problem in that case.  I have not yet seen a red, blue, or
yellow screen indicator.


KEYBOARD MESSAGES

The Amiga keyboard is not as dull an object as I had originally
thought, either.  It contains a processor of its own - a
Rockewell/NCR/MOS Technology 6500/1.  It also has 2K of ROM, 64
bytes of RAM, and four I/O ports of eight bits each.  There is a
built-in crystal oscillator running at 3Mh, also.  All but the
very earliest of keyboards also have a "watchdog timer" which
will reset the keyboard's processor if it stops scanning the
keyboard for more than 50 milliseconds. 

It is possible for the computer to be powered up before the
keyboard is plugged in, in which case the keyboard will have to
go through its self-test after it is connected to the computer. 
Most of us, however, will have the keyboard attached, and the
self-test will take place while we are watching the screen,
changing disks, etc.

The keyboard self-test consists of four steps.   First it does a
checksum on all of the ROMs.  Then it checks the 64 bytes of RAM, and
then
the timer is tested.  Then the keyboard must achieve
proper synchronization with the computer.  It does this by slowly
clocking out 1 bits until it receives a handshake pulse from the
computer.  Once this pulse is received, the keyboard must inform
the computer of the results of its self-test.  Should the self-
test fail, the code for failure can be sent to the computer
without waiting for the handshake pulse.  

IN CASE OF FAILURE

After informing the computer that the self-test has failed, the
keyboard will then try to notify the user that it is in trouble. 
This is done by blinking the CAPS-LOCK light.  Here is the code:

One blink		The keyboard ROM check failed
Two blinks	The keyboard RAM check failed
Three blinks	The watchdog timer test failed
Four blinks	A short exists between two row lines or one of the
               seven special control keys

The last check had not been implemented at the time my Rom Kernal
Manual was printed, but was in the plans.  It would be unusual
for the user to have typed anything during this self-check time,
but if any keys have been depressed, the codes for those keys
would then be sent to the computer, a "terminate key stream" code
would be sent, and then the CAPS LOCK LED shut off, indicating
the end of the keyboard startup sequence.  

Should you be so unfortunate as to have your Amiga get into
difficulties, perhaps these codes will help you and your repair
man to put it in good health again.

(The information on startup routines came from messages on Usenet, and
the keyboard information from the Amiga Hardware Manual.)