Welcome, Guest. Please login or register.

Author Topic: TeamAROS Bounty #23 AROS Kickstart Replacement ROM  (Read 11669 times)

Description:

0 Members and 1 Guest are viewing this topic.

  • Guest
Re: TeamAROS Bounty #23 AROS Kickstart Replacement ROM
« Reply #14 on: January 01, 2005, 08:12:13 PM »
Quote

jdiffend wrote:
I'm looking through the AROS source now and I keep finding things that need to be written to build an Amiga version.

At this point I think it's safe to say that a fully 3.1 compatible ROM is NOT practical.

What is practical:
Bootstrap code
exec.library
Timer.device
keyboard
ide driver
Fixed mode graphics display not using hardware blitter/sprites
existing AROS file systems
And as many of the AROS libs as the ROM will hold.

This should allow any program that works when recompiled under AROS to work and even some games that directly bang the hardware... but 100% compatibility is something that would require way too much work.


Speaking for myself, I would be happy just to have a rom replacement that can boot UAE into a 68k compiled AROS.  As you say, 100% compatibility is impractical, and I don't think it's even neccessary.
 

Offline Dan

  • Hero Member
  • *****
  • Join Date: Apr 2002
  • Posts: 1766
    • Show only replies by Dan
Re: TeamAROS Bounty #23 AROS Kickstart Replacement ROM
« Reply #15 on: January 01, 2005, 11:00:28 PM »
Quote

mdma wrote:
Speaking for myself, I would be happy just to have a rom replacement that can boot UAE into a 68k compiled AROS.  As you say, 100% compatibility is impractical, and I don't think it's even neccessary.

Agreed!
AROS was supposed to be binary-compatible to WB3.1 on 68k but has anyone tried it, I mean AROS hosted on 68k-Linux will it run amiga-programs?
Apple did it right the first time, bring back the Newton!
 

Offline Dr_Righteous

  • Hero Member
  • *****
  • Join Date: Feb 2002
  • Posts: 1345
    • Show only replies by Dr_Righteous
Re: TeamAROS Bounty #23 AROS Kickstart Replacement ROM
« Reply #16 on: January 02, 2005, 05:10:09 AM »
It sounds pretty self explanitory to me. Since the ROM IS the OS, it must be written in order for AROS to run on Amigas. That's why so little work has been done to port AROS to Amiga... It's impossible without writing a ROM.

Writing it to work under UAE is the first step. When complete, we should be able to burn it to an EPROM, and have it run on an A1200 or A4000.

Practical or not, it MUST be 100% compatable.
- Doc

A4000D, A3640 OC-36.3MHz, custom tower, Mediator A4000D. Diamond Banshee 16M, Indivision AGA 4000, GVP HC+8.

Mac Mini 1.5GHz, that might run MorphOS someday, when the fools who own it come to the realization that 30 minutes just isn\'t enough time to play with it enough to decide whether or not you like it enough to cough up $200.

 - Someone please design SOME kind of DIY accelerator for the A4000. :D -
 

Offline jdiffend

  • Sr. Member
  • ****
  • Join Date: Apr 2002
  • Posts: 302
    • Show only replies by jdiffend
Re: TeamAROS Bounty #23 AROS Kickstart Replacement ROM
« Reply #17 on: January 02, 2005, 07:20:38 PM »
Quote

Dr_Righteous wrote:

Practical or not, it MUST be 100% compatable.


REALITY CHECK

Not only is it impractical... it's impossible.  100% compatability means that everything in the Amiga 3.1 ROM has to be in the AROS ROM.  The Amiga ROM was hand written assembly with many tricks to squeeze everything into the ROM which only has a few bytes of unused free space.  AROS is written in C and would take much more space.  There's no way everything would fit in the ROM.
 

Offline dammyTopic starter

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 2828
    • Show only replies by dammy
Re: TeamAROS Bounty #23 AROS Kickstart Replacement ROM
« Reply #18 on: January 02, 2005, 08:37:36 PM »
Quote
Not only is it impractical... it's impossible. 100% compatability means that everything in the Amiga 3.1 ROM has to be in the AROS ROM. The Amiga ROM was hand written assembly with many tricks to squeeze everything into the ROM which only has a few bytes of unused free space. AROS is written in C and would take much more space. There's no way everything would fit in the ROM.


Does the AROS ROM replacement have to be the same size as the orginal kickstart for the use of the kick.rom in E-UAE/UAE?  If it doesn't, it's not an issue that I can see for the bounty.  We're just wanting E-UAE/UAE to be happy and boot is all so it can run most apps. ;)


Dammy
TeamAROS
Dammy

https://www.facebook.com/pages/Arix-OS/414578091930728
Unless otherwise noted, I speak only for myself.
 

Offline Ilwrath

Re: TeamAROS Bounty #23 AROS Kickstart Replacement ROM
« Reply #19 on: January 02, 2005, 09:10:40 PM »
Quote

Does the AROS ROM replacement have to be the same size as the orginal kickstart for the use of the kick.rom in E-UAE/UAE? If it doesn't, it's not an issue that I can see for the bounty. We're just wanting E-UAE/UAE to be happy and boot is all so it can run most apps. ;)


And then integrate the now totally free Amiga IP free E-UAE/UAE into x86 AROS to get the much-fabled 680x0 compatability enhancer for old Amiga programs?  (Much like how OSX can launch programs in an OS9-type environment)  That would make this is a very interesting bounty.  :-)
 

Offline MskoDestny

  • Sr. Member
  • ****
  • Join Date: Oct 2004
  • Posts: 363
    • Show only replies by MskoDestny
    • http://www.retrodev.com
Re: TeamAROS Bounty #23 AROS Kickstart Replacement ROM
« Reply #20 on: January 02, 2005, 09:10:59 PM »
You could compress the ROM and prepend it with a small routine to decompress it to RAM.  Since the target is UAE and not necessarily a real Amiga, adding a little extra RAM to make up for what is lost by the ROM isn't that big of a deal.

In addition there are now Zorro cards like the Kickflash and E/Flash that allow for 1 and 2MB ROMs.  Not sure if this kind of thing is supported by UAE though.

EDIT: Typo
 

Offline Doobrey

  • Hero Member
  • *****
  • Join Date: Oct 2002
  • Posts: 1876
    • Show only replies by Doobrey
    • http://www.doobreynet.co.uk
Re: TeamAROS Bounty #23 AROS Kickstart Replacement ROM
« Reply #21 on: January 02, 2005, 11:39:14 PM »
For UAE, you`re limited to a 1Mb rom image
 The first 512k @$f80000 , and the second @$E00000 (which UAE calls the extended rom space). Just remember to add a jump to the startup code from $E00004, since that block will be mapped to 0 on bootup.
On schedule, and suing
 

Offline jdiffend

  • Sr. Member
  • ****
  • Join Date: Apr 2002
  • Posts: 302
    • Show only replies by jdiffend
Re: TeamAROS Bounty #23 AROS Kickstart Replacement ROM
« Reply #22 on: January 03, 2005, 02:47:28 AM »
The Amiga memory map has a fixed amount of space reserved for ROMs, go over that and you'll hamper compatability.  The OS 3.1 ROM is 512K if I remember right.  Anything that doesn't fit the ROM can be loaded from disk, but that still means it's not 100% compatible.

The expansion ROM is for applications like the CDTV.  The CDTV interface sat in the expansion ROM area and I'm guessing that's how the video games based on the Amiga 500 worked as well.

Now, no matter what solution you come up with to the ROM space issue you're not going to change the amount of work this project requires.
 

Offline jdiffend

  • Sr. Member
  • ****
  • Join Date: Apr 2002
  • Posts: 302
    • Show only replies by jdiffend
Re: TeamAROS Bounty #23 AROS Kickstart Replacement ROM
« Reply #23 on: January 03, 2005, 03:08:14 AM »
Quote

dammy wrote:
Does the AROS ROM replacement have to be the same size as the orginal kickstart for the use of the kick.rom in E-UAE/UAE?  If it doesn't, it's not an issue that I can see for the bounty.  We're just wanting E-UAE/UAE to be happy and boot is all so it can run most apps. ;)

Dammy
TeamAROS


The AROS ROM only has to fit in the reserved area in the Amiga memory map.  If you go over 512K it won't work in a real Amiga.  With UAE you can take advantage of extra ROM space without problems.  For a real ROM you'd need an adapter that plugs into the ROM socket and adds the extra address line for the 2nd half of the ROM address space... if there is 1MB reserved for ROM that is.  I honestly don't remember.

If space were the only issue, the least used stuff could be placed in the upper 512K of the ROM space and the remaining code could be built for a 2nd ROM and disk versions.  It's not that big of deal to have the make files build both.  The main difference between the ROM and disk versions of an Amiga library or device and the ROM one is that the disk version has to add a little code at the start to return in the event someone tries to execute it.
 

Offline Dr_Righteous

  • Hero Member
  • *****
  • Join Date: Feb 2002
  • Posts: 1345
    • Show only replies by Dr_Righteous
Re: TeamAROS Bounty #23 AROS Kickstart Replacement ROM
« Reply #24 on: January 03, 2005, 04:07:45 AM »
I'm sorry, I thought there were classic Amiga, and indeed retrocomputing fans on this site. People who remember the 90's. Cramming everything needed to boot AROS on to 1MB of ROM space is impossible? Gee, can no one here write in assembler? Has everyone forgotten that back in then we did this kinda $#!% all the time?

The only things that need to be on the ROM are the AROS equivillant versions of what's on the Kickstart ROMs... Essentially the drivers necessary for the system to recognize its vital hardware and continue booting from the main boot device.

In the case of the bounty, only what is necessary for UAE to boot up... No matter what chipset it's for. Start small, think big. Yes, ultimately it should be the equivillant to a complete A1200 or A4000 ROM set... But this is just the first step.

Oh, and anyone who thinks writing the core OS features necessary to boot AROS within 1MB of space has completely forgotten about the QNX demo floppy. Impossible?? I think not. Cut out the GUI and I'm sure it'd be less than 512K.
- Doc

A4000D, A3640 OC-36.3MHz, custom tower, Mediator A4000D. Diamond Banshee 16M, Indivision AGA 4000, GVP HC+8.

Mac Mini 1.5GHz, that might run MorphOS someday, when the fools who own it come to the realization that 30 minutes just isn\'t enough time to play with it enough to decide whether or not you like it enough to cough up $200.

 - Someone please design SOME kind of DIY accelerator for the A4000. :D -
 

  • Guest
Re: TeamAROS Bounty #23 AROS Kickstart Replacement ROM
« Reply #25 on: January 03, 2005, 03:15:04 PM »
@Dr_Righteous

?!?!?!?

First you say

Quote
Practical or not, it MUST be 100% compatable.


then you say

Quote
The only things that need to be on the ROM are the AROS equivillant versions of what's on the Kickstart ROMs... Essentially the drivers necessary for the system to recognize its vital hardware and continue booting from the main boot device.


Make your mind up mate! ;-)
 

Offline jdiffend

  • Sr. Member
  • ****
  • Join Date: Apr 2002
  • Posts: 302
    • Show only replies by jdiffend
Re: TeamAROS Bounty #23 AROS Kickstart Replacement ROM
« Reply #26 on: January 03, 2005, 05:09:49 PM »
Quote

Dr_Righteous wrote:
Cramming everything needed to boot AROS on to 1MB of ROM space is impossible? Gee, can no one here write in assembler? Has everyone forgotten that back in then we did this kinda $#!% all the time?


The Amiga 3.1 ROM is 512K, not 1MB.  I know most if not all Amigas don't have an address line to the ROM for a 1MB ROM.  I know, I designed a commercial ROM switcher for the Amiga back in the day.  And adding that address line would AT LEAST require an adaptor board and possibly soldering to a surface mount part on some machines.  Something I doubt everyone here can do.  

Yes, I have written in assembler a lot, but AROS is written in C and I'm not writing an OS from scratch for less than what I earn from a day's work at consulting.  Hell, I could make more in a few days at McDonalds.  This isn't just about the bonus but it certainly needs a reasonable scope for the project to be worth taking on.

Quote
Oh, and anyone who thinks writing the core OS features necessary to boot AROS within 1MB of space has completely forgotten about the QNX demo floppy. Impossible?? I think not.


The current ROM in hand optimized assembly that Commodore spent years developing and it FILLS 512K.  We were talking about a replacement ROM... which would be 512K.  I wasn't talking about 1MB.  Take the limits on ROM size away and I could put the entire AROS project in there.  But that isn't what was originally stated.

Quote
Cut out the GUI and I'm sure it'd be less than 512K.

Ok genious... just how the heck do I cut out the GUI?  The Amiga hardware has no character generator, only graphics (didn't I already say this?).  The Amiga HAS to open the graphics library to even print text.

Do I really need to say that of all the things you could have suggested to leave out of the ROM you picked one of the last things you could possibly leave out?  If you are talking about Workbench, it has always loaded from disk... but it's not that big since the GUI is in ROM.

Quote
we did this kinda $#!% all the time?

We?  This from the guy that suggests the GUI should be left out of the ROM?  Oh please.

Look, I used to be a partner in a couple companies that developed Amiga software and hardware.  I spent years developing software and hardware for it.  I've also spent years developing for embedded systems and I even reverse engineered the Amiga 3.1 exec back to source code form including comments as to what everything does.  Even though it's been a long time since I worked with the Amiga, I still have a better idea of what's involved in this than you EVER will.
 

Offline bloodline

  • Master Sock Abuser
  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 12113
    • Show only replies by bloodline
    • http://www.troubled-mind.com
Re: TeamAROS Bounty #23 AROS Kickstart Replacement ROM
« Reply #27 on: January 03, 2005, 06:27:50 PM »
I think what is needed, first off, is simply a bootstrap ROM that POSTs the Hardware, gets the hardware to a known state and starts the AROS Exec.library up and running...

jdiffend, do you think you could get that far?

Once we get to that point, we should be able to use parts of the original OS to test how compatible the AROS exec and Bootstrap is with the original system.

Once that is done, an IDE driver will be needed to load the rest of the OS :-)

As for an Amiga hardware graphics.library, well that is going to be a headache, and one could probably ignore (send any debug info to the serial) it and use Cybergfx/picasso96 natively instead... at least until someone bothers to write a new graphics.library... though AROS is better suited to Amiga's with Gfxboards anyway. AROS intuition and layers libraries were written to work with a cybergfx interface anyway :-D

Offline jdiffend

  • Sr. Member
  • ****
  • Join Date: Apr 2002
  • Posts: 302
    • Show only replies by jdiffend
Re: TeamAROS Bounty #23 AROS Kickstart Replacement ROM
« Reply #28 on: January 03, 2005, 07:52:12 PM »
Quote

bloodline wrote:
I think what is needed, first off, is simply a bootstrap ROM that POSTs the Hardware, gets the hardware to a known state and starts the AROS Exec.library up and running...


That's pretty close to what I was thinking.  Initializing hardware, identifying/setting up the CPU and starting the exec are probably the most mysterious to programmers and has probably held people back from doing this before.  Initially I'd aim at supporting one CPU and go back and support others later.

Once that and a boot device driver is complete and the machine is capable of loading other libs/devices from disk, other people can work on whatever they want and it can be integrated into the ROM over time.

Quote

jdiffend, do you think you could get that far?


I have an old machine I'm setting up under Linux as a dev box for this.  Once it's going I can install the AROS development tools and sources and get a better idea of what's involved.

This isn't really so much difficult as it is time consuming and I'll only undertake it if I know I have the time for the job.  I'm worried about possible endian issues and all the OS routines I'd need to write for the AROS exec.

Quote

Once we get to that point, we should be able to use parts of the original OS to test how compatible the AROS exec and Bootstrap is with the original system.


Without a graphics.library clone your going to find that only DOS commands and RTG compatible programs are going to work.

I suppose I could write a utility to extract devices like the trackdisk.device from the current ROM and turn it into a disk based version until someone writes a replacement.  That way we could focus on other issues at first.  I can't promise that will work since the ROM code may skirt a few rules to save space.  The graphics.library is a prime candidate for this as well.


Quote

Once that is done, an IDE driver will be needed to load the rest of the OS :-)


I think I'll need that before I can say it actually boots.  If you mean starts the exec and prints the AROS logo on the screen then I agree.  (ok, there's still a graphics lib issue)  

If someone wants to work on a boot logo/screen for the Amiga version that would be one less job to undertake.  Think of a simple 4 color AROS logo bitmap rather than the kitty mascot.  Whatever ROM space it takes up leaves less for something else.  Look at the current boot screen that comes up on a 1200 to get an idea of what to do.  No animated or fancy stuff till we start filling up the ROM and see where were at.  There are more important things.

Quote

As for an Amiga hardware graphics.library, well that is going to be a headache, and one could probably ignore (send any debug info to the serial) it and use Cybergfx/picasso96 natively instead... at least until someone bothers to write a new graphics.library... though AROS is better suited to Amiga's with Gfxboards anyway. AROS intuition and layers libraries were written to work with a cybergfx interface anyway :-D


Yeah, I have no intentions of writing a 100% compatable graphics.library at this time.  What I thought of doing was setting the display to a fixed AGA mode and copying a logo to it for testing.

Tweaking AROS graphics.library to RUN RTG on it.  Ugh... chunky vs planar grapics.  I forgot about that.  Does AROS support planar graphics or is it chunky only?  That could be a major problem.  I suppose we are forced to use cybergfx to do anything or temporarily borrow the Amiga graphics lib for development.

I think at least some of us are on the same page as to what can/needs to be done.  At least what you are saying is reasonable and possible.
 

Offline jdiffend

  • Sr. Member
  • ****
  • Join Date: Apr 2002
  • Posts: 302
    • Show only replies by jdiffend
Re: TeamAROS Bounty #23 AROS Kickstart Replacement ROM
« Reply #29 from previous page: January 03, 2005, 08:05:50 PM »
While I'm asking for stuff like the logo there are a couple other things that would be nice to have.  If anyone knows where to find this stuff post a link here please.

I know there is sample source code for identifying different 68K cpus.  I need some public domain source to base this on.  I only need it to set the cpu flags and initialise registers and I don't want to be looking at any of Amiga's code when I write it.  I want to make absolutely sure there are no copywrite issues.  Reverse engineering is legal for compatibility... but the less I have to use it the safer we are.

I'm also looking for scsi.device and or ide.device source code, serial.device source code, etc... if they exist they would probably be on Aminet but the less time I have to look for them the better and the less I have to write myself.