Welcome, Guest. Please login or register.

Author Topic: How exactly does an amiga start up  (Read 3747 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline LawlessPPCTopic starter

  • Full Member
  • ***
  • Join Date: Dec 2005
  • Posts: 176
    • Show only replies by LawlessPPC
    • http://search.ebay.co.uk/_W0QQfgtpZ1QQfrppZ25QQsassZlawlessppc
How exactly does an amiga start up
« on: February 07, 2006, 09:31:37 PM »
i know the basics ie startup-sequence etc but i want to know what in the amiga roms tells it to run the startup-sequence. What I mean is if you have execute in C: you can type execute S:startup-sequence in amigados and it will boot. but if the system is completely blank how does it execute anything at all   what commands in the rom do this as execute isnt an internal command. The reason for this is I can mount a CD drive with no software intervention. I then want to execute startup-sequence from the cd but with execute not being an internal command I cant. So how exactly do amigas boot as trying to find info is extremely difficult surely I'm not the only person that ever wanted to know.
 

Offline amigagr

  • Hero Member
  • *****
  • Join Date: Feb 2002
  • Posts: 1454
    • Show only replies by amigagr
    • http://www.amigahellas.gr
Re: How exactly does an amiga start up
« Reply #1 on: February 07, 2006, 09:36:19 PM »
if you mean that you want to make a bootable cd, you can't. the only amigas that can boot with cdroms are the cdtv and the cd32. with makecd you can do bootable cds for cdtv but i don't know how can these cds been bootable to the other amigas



-edit-
if the startup-sequence or any other script has the s flag of his properties on, you don't need to type the command execute, just type the name of the script
A3040/25 AmigaOS 3.9
A1260BPPC AmigaOS 3.9/4.0
Sam440ep AmigaOS 4.1.2
PegasosII/G3 AmigaOS 4.1.2/MorphOS 2.7/Debian 5.0.7/SUSE 11.1
MacMini/G4 1.5 MorphOS 2.7/OSX 10.5.8
Long Live Amiga

If i am going to have bugs on my system,
at least let me keep the latest versions.
Neil Bothwick
 

Offline LawlessPPCTopic starter

  • Full Member
  • ***
  • Join Date: Dec 2005
  • Posts: 176
    • Show only replies by LawlessPPC
    • http://search.ebay.co.uk/_W0QQfgtpZ1QQfrppZ25QQsassZlawlessppc
Re: How exactly does an amiga start up
« Reply #2 on: February 07, 2006, 09:58:38 PM »
if the cddrive spun up in time I would be able to boot from it but the disk isnt recognised in time so system thinks nothing there and proceeds to hardrive. I just want to be able to run startup-sequnce from cd drive on a blank system but without the execute command available i need to know how the amiga would normally do this. Because execute isnt internal
 

Offline Aminux

  • Full Member
  • ***
  • Join Date: Nov 2005
  • Posts: 125
    • Show only replies by Aminux
Re: How exactly does an amiga start up
« Reply #3 on: February 07, 2006, 10:12:23 PM »


 
     I think that you can boot from the cd on a BlizzardPPC,at least there is the option for this in the FlashRom menu,mount CDFS,please correct me if wrong.
 

Offline LawlessPPCTopic starter

  • Full Member
  • ***
  • Join Date: Dec 2005
  • Posts: 176
    • Show only replies by LawlessPPC
    • http://search.ebay.co.uk/_W0QQfgtpZ1QQfrppZ25QQsassZlawlessppc
Re: How exactly does an amiga start up
« Reply #4 on: February 07, 2006, 10:26:56 PM »
this is correct but the disk doesnt spin up fast enough so I have to go in with no boot with no startup-sequence then I want to run the startup sequence from the cd but execute isnt available because other than the cd the system is blank.
I really hope to god I am explaining myself correctly. I just cant seem to get my point across
 

Offline Hyperspeed

  • Hero Member
  • *****
  • Join Date: Jun 2004
  • Posts: 1749
    • Show only replies by Hyperspeed
Re: How exactly does an amiga start up
« Reply #5 on: February 07, 2006, 11:32:01 PM »
I thought we'd solved this on the other thread?

I posted that picture of MakeCD's booting options... I think the key to triggering the kickstart to S:Startup-Sequence is in the bootblock/RDB.

Am I missing your point?
 

Offline Zac67

  • Hero Member
  • *****
  • Join Date: Nov 2004
  • Posts: 2890
    • Show only replies by Zac67
Re: How exactly does an amiga start up
« Reply #6 on: February 08, 2006, 07:25:40 AM »
Hyperspeed is right: for booting CDs you'd probably have an RDB layout on the CD. With proper CDFS installed in RDB it might even work to boot an ISO/Rockridge CDROM, probably depending on ROM version, compatibility of CDFS, luck, etc. Dunno if there are tools around to build such a disk though. For spinup timeout you'll have to look at your SCSI HBA options - e.g. the A3k internal one can be set to boot from slow spinup drives.

Whether Execute is internal or not does not matter one bit since the OS manages booting from HDs and FDs just fine... ('Execute' is just a stub calling an OS function that's resides in ROM, so any code is free to call that by itself.)
 

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: How exactly does an amiga start up
« Reply #7 on: February 08, 2006, 07:49:01 AM »
Booting off CD has nothing to do with RDB.

The CD requires the CD32/CDTV trademark file (.TM), this tells CDTV/CD32 how to boot off it. Once the CD is burnt with proper configuration (MakeCD can do it), it will boot and start executing the s/startup-sequence, just like floppy or HDD.

Non CD32/CDTV is completely different ballpark. Most systems don't support any sort of autoboot from CD.

For the interested, I'll later (today, time permitting) explain in detail how Amiga boots up.
 

Offline Hyperspeed

  • Hero Member
  • *****
  • Join Date: Jun 2004
  • Posts: 1749
    • Show only replies by Hyperspeed
Re: How exactly does an amiga start up
« Reply #8 on: February 08, 2006, 11:04:22 AM »
Well I meant the inner track, the bit that tickles the CD32's bits!

:-D

http://www.amiga.org/gallery/photo.php?lid=2482

An explanation of booting would be very welcome. I saw on a thread once a small 50MB 8cm CD that autobooted Linux. It'd be great to be able to autoboot an emergency CD with an OS install.

Someone mentioned the PPCs have a filesystem in their ROM and I seem to think the SCSI-IV kit might too...(?)
 

Offline Amigaz

  • Hero Member
  • *****
  • Join Date: Feb 2004
  • Posts: 1949
  • Country: se
  • Gender: Male
    • Show only replies by Amigaz
Re: How exactly does an amiga start up
« Reply #9 on: February 08, 2006, 11:22:56 AM »
Quote

Piru wrote:

For the interested, I'll later (today, time permitting) explain in detail how Amiga boots up.


Sounds interesting and I'm interested  :-)

Kiitos in advance  ;-)
-------------------------------------------------------------------
Amiga 4000T - A3640 '040
Amiga 4000 - CS MKIII
Amiga 1200 - Blizzard 1230 MKIV
Amiga 1200 - Stock
Amiga CD32 - TF360
A bunch of ol' A500's
 

Offline Hyperspeed

  • Hero Member
  • *****
  • Join Date: Jun 2004
  • Posts: 1749
    • Show only replies by Hyperspeed
Re: How exactly does an amiga start up
« Reply #10 on: February 08, 2006, 11:53:42 AM »
I'll make the sandwiches... AMIGAZ - you can make a pot of tea

:-D
 

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: How exactly does an amiga start up
« Reply #11 on: February 08, 2006, 01:20:14 PM »
1. Power on/reset, early setup

At power on the amiga hardware is in undefined state. Certain things do happen though, the ROM overlay bit in CIA-A is enabled, and thus the Amiga Kickstart ROM appears at address 0. The M68K reset/poweron cycle fetches two longwords from address 0. Since the ROM is mapped, these two longwords are read from the ROM beginning. For KS 3.1 they are:
0x11144EF9
0x00F800D2

The first longword is the initial SSP (supervisor stack pointer), and the 2nd longword is placed to PC (program counter). The cpu will then begin code execution at address of the PC.

The kickstart rom early startup will now set up proper temporary SSP pointer (0x400, it will be chipmem once overlay is turned off), checksum the kickstart. If ROM at 0x00f00000 contains valid ID, the execution is diverted there (BPPC uses this for example). The custom hardware is initialized to known state. The overlay is turned off and chipmem will now appears at address 0 (and thus the temp stack will work now). CPU vectors and other low level setup is done. ColdCapture is taken at this point, if available.
The CPU type is determined.

The system probes the amount of chip memory, and sets the initial memory header up, from which temporary execbase is allocated. exec.library is initialized, and ranger (slow) memory amount scanned. Exec will now know the chip, slow memory, and have all the functions available. Finally the ROM is scanned for resident tags (basically the individual ROM components initialize later). The residenttag array is priority ordered. The residents are now initialized by calling InitCode(RTF_SINGLETASK, 0);

2. Initializing RTF_SINGLETASK modules

One of the very first modules is expansion.library. It will probe the system for Zorro expansions and initialize them. All found expansions are added to expansion.library ConfigDev list.

exec.library is initialization will now commence, and allocate new execbase. Any info from the old exec is moved to new one. This tries to make sure the exec is moved to fastest possible memory available. At this point supervisor stack is also allocated and SSP is made to point to it. Next the system will prepare itself for multitasking. Various functions are patched depending on the CPU type. Initial task is prepared and fired up. From now on, the system is running with multitasking enabled. CoolCapture vector is run at this point, if available. Next stage of the initialization is entered with InitCode(RTF_COLDSTART, 0). The execution will never return here (if it does, the screen will be rendered all purple and system will hang).

3. Initializing RTF_COLDSTART modules

This is the real deal: Most resident modules are RTF_COLDSTART and will be initailized in sequence now, adding various libraries, devices and resources to system as they go.

trackdisk.device is available in most (if not all?) amigas. It will probe the system for floppy drives and add DFx entry to expansion.library MountList entries. DF0 has higher priority than other possible units.

Any other media devices (such as scsi.device) will also probe the hardware for existing bootable medium (for hard disk or other block medium it is RDB with bootable partitions) and add the mountable / bootable entries to MountList if found.

Eventually system runs into bootstap module. This is the final module in which either the user is presented with 'Please insert floppy to boot' -animation, or if any bootable MountList entry is found the system is booted off it. If there is a bootable entry found it is now initialized and booting will commence.

DFx/trackdisk is special and the floppy disk is probed only at this time. Also, A1200/A600 bootable PCMCIA card is special is handled here. These units are also probed for bootable media while the 'please insert floppy to boot' -animation is played.

trackdisk.device DFx is special since it will try to load a bootblock off any inserted disk and if proper one is found it will be executed. Normal system bootblock contains a code that will FindResident() dos.library resident and InitResident() it. The bootblock might choose to do something else aswell, such as to load a demo/game using custom loader routines and never return or try continue initializing system.

For most harddisk controllers the bootblock is just ignored and the bootable MountList entry will internally FindResident() dos.library and call InitResident() for it.

4. dos.library and RTF_AFTERDOS.

dos.library will set up itself like any other library. It will also set up system vectors so that initial shell will be able to bring up system components (shell, con, ram, ffs etc).

At this point "Initial CLI" process is started. It will be fed the highest priority bootable volume from MountList. This entry will become SYS: device. The data is passed to the Initial CLI by sending a startup packet to it using PutMsg(). The very first exec task will now commit suicide by calling RemTask(NULL), and the execution will continue wih the "Initial CLI".

5. Initial CLI and shell, startup-sequence

Initial CLI (shell) will parse the input data from the startup packet. This data will indicate that this is the "Initial CLI", and will instruct shell to call special private vector is dos.library to set up further data. This function will among other things set up some initial handlers (PAR, SER, ... CON, RAM), assigns, add some residents such as Shell, handle ks 1.x compatible :devs/system-configuration, set up CLI for the process. At this point any RTF_AFTERDOS residents are executed with InitCode(RTF_AFTERDOS, 0). Finally depending on the expansion.library flags (eb_Flags), force the shell console to open (no EBF_SILENTSTART, not set by KS 1.x bootblock, but set by 2.x+ one), and open :S/startup-sequence of the system disk (no startup file is used if EBF_DOSFLAG is set, this is used by bootmenu "boot with no startup-sequence"). The CLI now has stream to fetch command lines from (startup-sequence), or no stream in which case it will drop into shell prompt.

6. startup-sequence

:S/startup-sequence will execute whatever commands are there.

If EBF_DOSFLAG was set, the shell will wait for user to enter commands.



-----

Note: I ran out of time here. I will fix typos and revise any stupid mistakes later.
 

Offline chris

Re: How exactly does an amiga start up
« Reply #12 on: February 08, 2006, 01:35:29 PM »
Quote

amije wrote:
if you mean that you want to make a bootable cd, you can't. the only amigas that can boot with cdroms are the cdtv and the cd32. with makecd you can do bootable cds for cdtv but i don't know how can these cds been bootable to the other amigas


You have to set the system id to AMIGA BOOT

Theres a program on Aminet somewhere that can patch a device in to the kicktag and make booting from CD possible - you have to boot once from HD though to install the patch, of course.  ISTR it's called MountCD or something like that.

"Miracles we do at once, the impossible takes a little longer" - AJS on Hyperion
Avatar picture is Tabitha by Eric W Schwartz
 

Offline amigagr

  • Hero Member
  • *****
  • Join Date: Feb 2002
  • Posts: 1454
    • Show only replies by amigagr
    • http://www.amigahellas.gr
Re: How exactly does an amiga start up
« Reply #13 on: February 08, 2006, 02:06:39 PM »
i thing that classic amiga technology did not have any improvment in that sector the last years and i believe that if there where available any choise amiga os 3.5 or/and 3.9 cd would be bootable and there wouldn't be any need for the Emergency floppy disk
A3040/25 AmigaOS 3.9
A1260BPPC AmigaOS 3.9/4.0
Sam440ep AmigaOS 4.1.2
PegasosII/G3 AmigaOS 4.1.2/MorphOS 2.7/Debian 5.0.7/SUSE 11.1
MacMini/G4 1.5 MorphOS 2.7/OSX 10.5.8
Long Live Amiga

If i am going to have bugs on my system,
at least let me keep the latest versions.
Neil Bothwick
 

Offline LawlessPPCTopic starter

  • Full Member
  • ***
  • Join Date: Dec 2005
  • Posts: 176
    • Show only replies by LawlessPPC
    • http://search.ebay.co.uk/_W0QQfgtpZ1QQfrppZ25QQsassZlawlessppc
Re: How exactly does an amiga start up
« Reply #14 on: February 08, 2006, 04:15:25 PM »
thanks very much piru I should have thought if anyone nknew how a miggy booted you would :lol: