Welcome, Guest. Please login or register.

Author Topic: Is the Coldfire project dead?  (Read 9301 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline jdiffend

  • Sr. Member
  • ****
  • Join Date: Apr 2002
  • Posts: 302
    • Show all replies
Re: Is the Coldfire project dead?
« on: November 19, 2004, 07:25:23 PM »
A Coldfire board for the Amiga is very possible.  Since the 4e core Coldfire chips are more compatible with the 68K series it's more feasable than ever.

However, there are some things that present a problem with the ColdFusion project.
1. Someone with no engineering background isn't likely to be successful their first time out.
2. You either have to emulate the 68K CPU entirely in software to use the existing ROMs or you have to rewrite at least a portion of the ROMs.

Full emulation of the 68K CPU isn't any better on a Coldfire than on a Pentium so why not just run an emulator on a PC?

Rewriting part of the ROM would let most instructions execute natively and instructions not supported by the Coldfire could be emulated by illegal instruction traps.  There are some instructions that CAN'T be emulated (see old threads if you want to know why).

This is NOT like the 68060.library!!!!  Yes, the 68060 library uses instruction traps... in that way they are the same.  But the current Amiga ROMs would fail within the first few instructions and you'd never get to load a 56xxx library.

The exec needs rewritten so that it is totally Coldfire safe and it needs to have the illegal instruction handler integrated into the exec.  Since the exec also uses timers, that should also be made coldfire safe.   After that the instruction traps would take care of MOST incompatibilities.  Some hardware drivers might need a rewrite as well.  

The best way I know how to do this and use the existing ROMs would be to have the accellerator start in it's own FLASH memory, copy the old Kickstart ROM to RAM (executes faster there anyway), patch it, remap the RAM to overlay the old ROMs (disable writes to the RAM while it's at it) and then reset to start the ROM image.  Like kickstart on an Amiga 1000 but with an additional step.
As time goes on more patches could be added or the entire ROM could be replaced.

The Coldfire CPUs handle non-floating point math the same as the 68K with minor exceptions which can be worked around with patches.  Replace the incompatible multiply & divide instructions with illegal ones that can be trapped and original behavior emulated.

The floating point math is WAY different and a new floating point library would need to be written.

And most importantly... if it won't run on a 68060... it probably won't run on a Coldfire.