[comp.sys.amiga] MINIX port to A1000

JPARR@UREGINA1.BITNET (John Parr) (11/05/87)

     As part of the requirements for a graduate level computer science class,
I am seriously considering porting MINIX to the A1000.  Before I jump into
this with both feet, I am going to need some very specific information on
the internals of the A1000.
     Specifically, could anyone out there provide me with a memory map of
the Amiga internals?  A detailed map would be peachy keen, but I'd settle
for anything.
     Also, I am considering building the MINIX kernel into the WCS of the
1000.  If I have any thoughts of being so ambitious, I need to know just
what makes a kickstart disk tick.  Anybody out there in net land know the
kickstart format?
     Another possibility is running MINIX as a task under AmigaDOS.  This
would be really neat, but I forsee mega problems with MINIX bumping into
AmigaDOS.  (i.e. which memory manager really controls the memory, etc.)
     What it all boils down to is that I am relatively inexperienced with
AmigaDOS and I am looking for any information, hints, or suggestions that
you more experienced people can offer.
     Oh yeah, before someone says, "buy the Amiga Technical Reference
manual" or "wonder book X" allow me to say that I'd love to.  Thing is
there ain't nobody around who'll sell 'em to me and I don't just have
oodles of time to waste in a mail order situation.

Thanx in advance for any help you might offer,
John Parr
userid: JPARR@UREGINA1.BITNET

bryce@hoser.berkeley.edu (Bryce Nesbitt) (11/05/87)

In article <8711050534.AA25885@jade.berkeley.edu> JPARR@UREGINA1.BITNET (John Parr) writes:
>
>     As part of the requirements for a graduate level computer science class,
>I am seriously considering porting MINIX to the A1000... 
>     Also, I am considering building the MINIX kernel into the WCS of the
>1000.  If I have any thoughts of being so ambitious, I need to know just
>what makes a kickstart disk tick.  Anybody out there in net land know the
>kickstart format?

First sector on the disk contains "KICK" ($4b49434b), the rest is zero.
The next 256K worth of sectors contain the Kickstart data, 512 bytes
to a sector.

The "ROM" image must have a correct 32 bit additive checkum (with
extend) or the system will re-kick on reset.

The first word of the "ROM" must be $1111. Next word $4EF9 (A
JMP instruction in 68000).  Next long is the address to jump to.

Your "ROM" goes from $FC0000 to $FFFFFF.


>     Another possibility is running MINIX as a task under AmigaDOS.  This
>would be really neat, but I forsee mega problems with MINIX bumping into
>AmigaDOS.  (i.e. which memory manager really controls the memory, etc.)

You could also hijack the Amiga after Kickstart.  Exec (the executive)
even has a nice way to do this.  As long as MINIX obeys exec's
allocated memory there should be enough low level hardware
arbitration built in to the Amiga to deal with the rest.

Any comments from the world on two operating systems running as
equal partners on one machine?  (Shades of Janus or better yet
Symetrix)

The only problem here is that descriptions of resources (the hardware
arbitration mechanism) are almost totally absent from any of the
technical manuals.


>     Specifically, could anyone out there provide me with a memory map of
>the Amiga internals?  A detailed map would be peachy keen, but I'd settle
>for anything....
>  ...Oh yeah, before someone says, "buy the Amiga Technical Reference
>manual" or "wonder book X" allow me to say that I'd love to.  Thing is
>there ain't nobody around who'll sell 'em to me and I don't just have
>oodles of time to waste in a mail order situation.

If you are going the scratch route you want the "Amiga Hardware Reference
Manual".  Available from Addison Wesley Publishing, Reading MA 01867
617-944-3700.  $24.95.

Or, better yet, I'll post a complete memory map of all absolute
ram address used by the Amiga right here:

------- start -------

_AbsExecBase	EQU 4

-------- end --------

Exhausting, eh?  You just can't work with the Amiga without some
references, sorry!  

(The Rom Kernel also uses $100-$3ff, but other than the first two
longs I'm not quite sure what for, and user programs never see it)
The supervisor stack is $1800 bytes from the top of local memory down.
(local chip top or local $C0000 top.  Again, this is transparanet to any
user program.)


>userid: JPARR@UREGINA1.BITNET

|\ /|  . Ack! (NAK, SOH, EOT)
{o O} . bryce@hoser.berkeley.EDU -or- ucbvax!hoser!bryce
 (")
  U	"[The Amiga 1000 can display] up to 50 overlapping windows
	simultaneously." -Amiga Advertising, Spring 1987
	(Yeah, thats it... *understate* the machine's capability :-( )

dillon@CORY.BERKELEY.EDU (Matt Dillon) (11/05/87)

>     Also, I am considering building the MINIX kernel into the WCS of the
>1000.  If I have any thoughts of being so ambitious, I need to know just
>what makes a kickstart disk tick.  Anybody out there in net land know the
>kickstart format?
>     Another possibility is running MINIX as a task under AmigaDOS.  This
>would be really neat, but I forsee mega problems with MINIX bumping into
>AmigaDOS.  (i.e. which memory manager really controls the memory, etc.)
>     What it all boils down to is that I am relatively inexperienced with

	AmigaDOS?  The best way to go is to run MINIX on top of the Amiga's
OS.  Specifically, EXEC tasks.  You do not have to bother with DOS or
memory allocation.  In fact, if you are porting the filesystem interface
you'd want to talk directly to the trackdisk.device (i.e. result=
incompatible floppy formats).  There are ways to get around all the 
"limitations" of the EXEC in a tightly controlled enviroment such as an
overlayed operating system.  Memory?  If you can't integrate allocation with
the Amiga's allocation, simply allocate a whole bunch and say that's the
memory MINIX has to play with.

	What you need to do this is the entire manual set, excluding the
hardware manual.... you really need to know how to program on an Amiga.
For instance, do you know how software interrupts (task exceptions, signal
generated exceptions, etc) work? 

					-Matt

klm@munsell.UUCP (Kevin (Being Weird Isn't Enough) McBride) (11/05/87)

In article <21608@ucbvax.BERKELEY.EDU> bryce@hoser.berkeley.edu.UUCP (Bryce Nesbitt) writes:
>
>[discussion on having MINIX co-exist with Amiga EXEC...]
>
>Any comments from the world on two operating systems running as
>equal partners on one machine?  (Shades of Janus or better yet
>Symetrix)

Works for Apollo!  They currently have three OS co-existing on the machine
under one common kernel.  A fourth one is on the way.  I haven't been around
Apollo equipment lately, but I understand that you can be doing stuff in Aegis
(Apollo's proprietary OS) in one window, 4.X BSD in another, and AT&T SYS V in
yet another.  Add Ultrix to that list RSN, although I don't know why anyone 
would want to.  Well, maybe some DEC people who have, too late, discovered the
errors of their ways and don't want to lose a considerable investment in
software when they dump their inferior hardware. :-) :-)

-- 
Kevin McBride, the guy in the brace //       | Your mind is totally controlled
Condition improved, but still      //        | It has been stuffed into my mold
no skiing in sight. (:^[)      \\ //  Amiga  | And you will do as you are told
{encore,adelie}!munsell!klm     \X/   Rules! | until the rights to you are sold

rminnich@udel.EDU (Ron Minnich) (11/05/87)

In article <8711050534.AA25885@jade.berkeley.edu> JPARR@UREGINA1.BITNET (John Parr) writes:
>
>     As part of the requirements for a graduate level computer science class,
>I am seriously considering porting MINIX to the A1000.  Before I jump into
>this with both feet, I am going to need some very specific information on
>the internals of the A1000.
 (and so on ... some neat ideas)
  before you get too far, why not think about building a 
minix-compatible shared-library that runs under ADOS?
In other words, use Matt's shared library example to build
a minix support library, then go from there to a complete 
Minix environment. Best of both worlds. If you wanted to do
us all a big favor you could somehow wedge in support for having
programs run in 68K user mode so that they do not trash the kernel.
(IS THIS even possible? How much smoke am i blowing now?)
   Another thought ... For a practical project, would your 
course accept doing an X-windows port? (hint, hint, hint)
ron
-- 
ron (rminnich@udel.edu)