Welcome, Guest. Please login or register.

Author Topic: Detailed Amiga P.O.S.T. (or bootup sequence) info required  (Read 1884 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline da9000Topic starter

  • Hero Member
  • *****
  • Join Date: Mar 2005
  • Posts: 922
    • Show only replies by da9000
Detailed Amiga P.O.S.T. (or bootup sequence) info required
« on: January 14, 2007, 07:19:12 AM »
Can the guru meditators of these forums please share their intimate knowledge about the Amiga P.O.S.T.

More specifically, I'm following this sequence (http://www.amicue.org/TechStuff/amigaboot.html):

1. Clear all chips of old data
 2. Disable DMA and interrupts during the test.
 3. Clear the screen.
 4. Check the hardware ....checks to see if 68000 is functioning.
 5. Change screen color.
 6. Do a checksum test on all ROMS.
 7. Change screen color.
 8. Beginning of system startup.
 9. Check RAM at $C0000,and move SYSBASE there
10. Test All CHIP RAM.
11. Change screen color.
12. Check that software is coming in ok.
13. Change screen color.
14. Setup CHIP RAM to receive data.
15. Link the libraries
16. Check for additional memory and link it
17. Turn the DMA and interrupts back on.
18. Start a default task.
19. Check for 68010,68020, and or 68881.
20. Check to see if thee is an exception ...processor error
21. If so do a system reset.

But there are many questions:

A) Which part of the Amiga does the clearing/changing color of screen?

B) Which part of the Amiga does steps 1-4 (inclusive)? Because if it's checking the 68k CPU at step 4, is it some of the special circuitry inside the custom chips that does the checking, or is it a Kickstart routine that gets executed by the (unchecked before step 4) 68k CPU?

C) Which part of the Amiga does step 6?

D) What exactly does step 8 accomplish?

E) Which part of the Amiga does step 9?

F) Which part of the Amiga does step 10?

G) Is step 11 where the GREEN color gets set (depending on the results of step 10?) ?

H) What exactly does step 12 accomplish?

I) What exactly does step 14 accomplish?

Any other hints, insights, or in-depth explanations are highly welcomed :) Also any other sources: which books might delve into this subject, or any other publications? (I wish this book existed in English: http://www.vesalia.de/e_gurubuch.htm)


The reason I'm asking all this is to get a better understanding of what is causing my dead A3000 (http://www.amiga.org/forums/showthread.php?t=21940  and  http://www.amiga.org/forums/showthread.php?t=26702) to green screen and then reset within a second or so. It might help guide me better towards finding out what part of the system has been affected by the battery leak :/

Thanks in advance
 

Offline leofoe

  • Sr. Member
  • ****
  • Join Date: Jun 2005
  • Posts: 499
    • Show only replies by leofoe
Re: Detailed Amiga P.O.S.T. (or bootup sequence) info required
« Reply #1 on: January 14, 2007, 09:17:58 AM »
I'm abslotuely no guru, but I guess it's all in the ROM. This does not clarify your problem however.
 

Offline Thomas

Re: Detailed Amiga P.O.S.T. (or bootup sequence) info required
« Reply #2 on: January 14, 2007, 10:04:17 AM »

All of the above is done by the CPU of course. There is nobody else who can do it. After a reset IIRC the ROM is mapped to address 0 and the 68k reads address 0 in order to find the address where to continue. The address then points into ROM code.

The very first action of the code is to switch the power LED on (or bright on those models where the LED is always on). It does this by setting the respective bit in one of the CIA's I/O ports. It's the same bit which is responsible for the audio filter.

Screen colors are changed by writing a color code into $dff180. This register is part of the custom chips which are active all the time.

IMHO checking chip ram is one of the first actions of the ROM. I think the first few actions are: 1. switch power LED on, 2. change screen color to black (or white on 1.3 and below), 3. check ROM checksum, switch color to red if it failed, 4. check chip ram, switch color to green if it failed.

The failure then jumps to the guru meditation code which blinks with the power LED ten times and then resets the computer, so that everything starts from the beginning again in an endless loop.

If you see the power LED becomming brighter, then you can be sure that the CPU, the ROM and the CIA are ok. If the screen becomes green, then it's something memory related. Somehow the chip ram test failed before it found 128kb of it. This could mean no or defective RAM, but it can also be a problem with the memory interface.

At least in an A4000 the clock battery is quite near the RAM chips and a leaking battery often causes a green screen which is very difficult to repair.

You could try to contact Botfixer at the http://www.a1k.org/ forum. He is very successful in repairing battery leakage problems. But he is over-busy right now, so that he can probably not take new rapir orders.

Bye,
Thomas

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show only replies by Piru
    • http://www.iki.fi/sintonen/
Re: Detailed Amiga P.O.S.T. (or bootup sequence) info required
« Reply #3 on: January 14, 2007, 11:48:18 AM »
Re: How exactly does an amiga start up

Ok, this is a bit more broad explanation of the boot process, but may come handy.
 

Offline da9000Topic starter

  • Hero Member
  • *****
  • Join Date: Mar 2005
  • Posts: 922
    • Show only replies by da9000
Re: Detailed Amiga P.O.S.T. (or bootup sequence) info required
« Reply #4 on: January 15, 2007, 04:34:29 AM »
@Thomas:
I assumed it was the CPU, but I'm no expert so I wasn't sure if Amiga didn't have one more trick up its sleve: custom silicon to test the system during bootup. Either way, danke for the clear up and the nice historical tips (KS 1.3 uses white instead of black) and the registers/chips used to do the various tasks. It's what I was looking for (chip usage). One small issue: I think the green screen will appear if there's a problem in the low 256KB of Chip RAM, not just 128KB. I could be wrong, but I've read 256KB before (while trying to fix my A500's broken Chip RAM). Finally, thanks for suggesting Botfixer. When I'm ready to give up I might have to track him down :) Also, that a1k.org is a nice site; I saw some really cool posts, ex. from Jens Schoenfeld (sp?). I hope you guys can add English support (not just in the forum). Ah, also your homepage :) Seems like you have some very good info on there, just can't read it :(


@Piru:
PERKELE!!!! Now that was GOOD stuff!!! :-D Thanks so much! It's _exactly_ what I wanted to know. Not that I understand all parts of it, but I got the main ideas. I'll be re-reading it a bunch of times (and possibly asking you for some clarifications :)

Can you tell me more about YOUR exec ? Also, what do you do by profession?

EDIT: I found your exec. But of course feel free to give me more info (I read the latest Changelog, but that's about it). The second question stands :)


Thanks again to both of you Amiga gurus!
 

Offline Doobrey

  • Hero Member
  • *****
  • Join Date: Oct 2002
  • Posts: 1876
    • Show only replies by Doobrey
    • http://www.doobreynet.co.uk
Re: Detailed Amiga P.O.S.T. (or bootup sequence) info required
« Reply #5 on: January 15, 2007, 07:17:14 PM »
There's also a commented disassembly of exec V33 on Aminet that's pretty good at showing exactly what happens and when during the startup, fairly easy to follow even if you don't eat 68k asm for breakfast
On schedule, and suing
 

Offline da9000Topic starter

  • Hero Member
  • *****
  • Join Date: Mar 2005
  • Posts: 922
    • Show only replies by da9000
Re: Detailed Amiga P.O.S.T. (or bootup sequence) info required
« Reply #6 on: January 16, 2007, 01:16:16 AM »
Cool! Thanks Doobrey!

I'll check it out and try to recollect my 68k asm knowledge... Shouldn't be too shabby, me hopes :)
 

Offline da9000Topic starter

  • Hero Member
  • *****
  • Join Date: Mar 2005
  • Posts: 922
    • Show only replies by da9000
Re: Detailed Amiga P.O.S.T. (or bootup sequence) info required
« Reply #7 on: January 16, 2007, 01:23:08 AM »
Oh, I forgot: this goes out to EVERYONE (Piru!):

So since the KS dictates the rules of the game, if I could somehow swap out my A3000 KS 2.04 with some other (read: hacked KS) which avoids checking the Chip RAM, perhaps I could get the machine to boot farther (is there another way to get display from the machine without the on-board circuits but a Zorro card? Or will it need drivers installed first?), right?

Note: I'm asking this theoretically. Doesn't mean I'm going to do it, even though I have seen a KS 1.4 for sale (which allows for soft kicking off the wb_2.x or whatever partition, AND also I've seen that, Doobrey, you did a KS splitter/joiner program, Remus/Romsplit!! That's awesome dude! Hope I can use it one day, not out of desperation, I hope :-) )

Cheers and sorry if I'm pushing the envelope of "what if", but I have to, and I'm also certain you guys have thought about this stuff, but nobody was asking for it before :)
 

Offline da9000Topic starter

  • Hero Member
  • *****
  • Join Date: Mar 2005
  • Posts: 922
    • Show only replies by da9000
Re: Detailed Amiga P.O.S.T. (or bootup sequence) info required
« Reply #8 on: January 17, 2007, 06:14:20 AM »
@Doobrey:

I briefly read part of the exec V33 commented source and found the exception handler doing the actual screen color switches and the keyboard LED flashing etc. (as pointed out by Thomas and Piru)  Thanks for pointing me there, Doobrey!  I wonder if anyone has done a commentary on any newer Kickstarts.

I bet Piru would be an expert in doing something like that! I checked out his pages as well and his software, and he's once serious ass kicking Finn!! (and you're an ass kicking Brit for doing Remus/Romsplit and using his exec module :) )

So...
@Piru:
While checking your Changelogs on your exec, I was curious:
did you work from a disassembly of a certain exec version? Or going through a debugger just to the routines that you wanted to update/fix ? Could you describe a little bit your method? Brilliant work! Need to know more :)