11

Back in the day with my A2500/30, I always wanted to get the 68030 versions of software if I could because presumably I'd be able to get a few percentage more performance in some cases. However, I get the sense that most non-AGA software was always compiled with the 68000 as a target.

However, it would have been nice if I could have soft-kicked a Kickstart for the '020+ if I was running on the '030, but I don't recall ever coming across one.

Was there ever a KickStart built for 68020+ instructions? If so, were they only usable on the AGA machines or was it possible to run on an ECS A2000 (albeit with an A2630)?

10

The AmigaOS had a pretty small and specific set of features to allow the system to easily adapt to upgraded CPU's, either shipped in upgraded systems from Commodore, or added to the system using hardware accelerators. These did not rely on special binary versions of Kickstart. The main features were:

  1. Floating point hardware support via dynamically linked math libraries. A major advantage of accelerated hardware was the FPU supported by or included with 020+ processors. This was used automatically by applications that used the system math libraries.
  2. Use of SetPatch at system boot. This command patches the system software, and includes support for loading a CPU specific library from LIBS:, such as 68040.library. Since this happens at early boot, it allows any changes needed by the system to support the specific CPU to happen before applications are loaded.
  3. Use of the CPU command. This can be run at boot, or any other time, to detect and exploit CPU specific features, including CACHE control, Burst memory access, and relocating Kickstart ROM to higher speed 32-bit RAM.

These features provide enough flexibility at boot time that it was never necessary to build Kickstart ROM images for specific CPUs. Essentially, Kickstart exists in 3 basic forms for: AGA Amigas, ECS/OCS Amigas, and the A4000T. The reason the A4000T is special is just the addition of a 2nd hardware interface for HDDs (IDE+SCSI).

As far as I know, the best thing to do for a 68030 Amiga with ECS is to include LIBS:68030.library on your boot disk, run SetPatch, and run the CPU command with parameters to enable both DATA and INST caches and the FASTROM option. This should give you the stability you need from the patches and the increased performance.

None of this is to imply that you couldn't create a custom Kickstart for a 68030 based Amiga that included some modules compiled (or optimized) for that CPU in the ROM. It is possible, though not trivial to assemble your own Kickstart image using whatever modules you like. But few, if any, standard Kickstart modules ever warranted this special attention. And custom Kickstarts like this usually just included CPU specific patches for added stability - essentially moving some of the SetPatch functionality into the ROM.

  • 3
    That "best thing for a 68030" is exactly what I did with my tricked out A500. Originally pre-ECS I added the ECS chips, KCS V30 PC board (which doubled as 512KB RAM expansion) and the A520 controller (with 2MB RAM). And later I found an upgrade board for the 68000 socket with a 50Mhz 68030+MMU, a 64 Mhz FPU and 8 MB 32-bit RAM. The CPU-board came from an industrial VME-bus computer running OS-9 and was never designed for an Amiga but it works. I'm fairly sure that for some period in the late 80's it was the fastest A500 in the world. – Tonny Apr 30 at 22:28
  • I think versions of Kickstart 3.1 compiled for A1200, A3000 and A4000 all are compiled in 68020+ mode. Or, at least, the leaked source code has flags to enable 68020+ compilation, IIRC. – user180940 May 1 at 10:32
  • While it is cool that there might have been 020+ versions that ran on the A1200/3000/4000, I suppose one of my underlying questions was whether or not they would work on an A2000? This somewhat begs the question of whether or not KickStarts were hardware specific (other than instruction set) or was the KS written mostly platform agnostic? – bjb May 1 at 17:05
  • 1
    At a minimum, the code for scsi.device is different because all the machines after A2000 had different, incompatible SCSI controllers (and in A1200/A4000 scsi.device actually talks IDE...). – user180940 May 2 at 14:16
  • 1
    The nature of the A2000 (no built-in storage interface) means that drivers in the ROM don't matter - they're simply not used. Instead, the autoboot ROM on the controller card, or the driver loaded from floppy in cases where the card lacks a boot ROM, is used. So while the Kickstarts for other machines are different when it comes to model-specific hardware like SCSI/IDE/PCMCIA drivers, they'll still work fine if the required device drivers are loaded from elsewhere. – Daedalus May 4 at 10:36
5

Cloanto maintain a list of known Amiga ROMs, a few of which require a 68020 or even a 68020 + MMU. The associated FAQ suggests that some A3000 ROMs use 68030-MMU-specific instructions.

The Amiga Forever description of differences between Amiga ROMs says that most ROMs can be used on other systems, as long as the required CPU is available, and the ROM fits (the document assumes that the ROM is loaded as a ROM, not soft-kicked). An AGA ROM should boot an ECS system, but won’t support all the ECS features (and obviously the system won’t support the AGA features).

The Amiga Forever license allows using its ROMs in real Amiga computers, so that would be a not-too-expensive way for you to try various ROMs. (I haven’t checked whether it actually includes 68020+ ROMs).

2

Essentially, none of the main Kickstart releases used anything other plain 68000 code. I'm unsure of the A3000's special "Super kickstart", but every other main Kickstart release will boot just fine on a 68000. This allows any Kickstart version to be used on any CPU, meaning 68000-based Amigas can be upgraded to Kickstart 3.1, and even the latest Kickstart 3.1.4.

Regarding hardware support, Kickstart 3 does support the ECS features - it had additional support for AGA features which would obviously not be used on an OCS or ECS machine, but the older chipsets are still fully supported.

Some newer versions of the OS (3.5 and 3.9) replace many of the Kickstart modules with updated versions that do use the features of higher CPUs, so they won't run on a plain 68000. But these are loaded into RAM, not present in the Kickstart chip itself. There have been various community-made Kickstarts based on 3.9 modules - these will require a 68020, but were never official Kickstart versions.

  • No, Kickstart 3.0 was never supported on non-AGA machines. Maybe it worked if soft-kicked (I don't believe 16-bit ROMs where ever created for 3.0), but merely by chance. It was not a supported configuration. Kickstart 3.1 is what can work on OCS , ECS and AGA machine irrespectively. – user180940 May 1 at 10:27
  • You're somewhat correct. I can confirm that 3.0 supports ECS features, does work fine on the 68000, and was regularly soft-kicked by many users back in the day. It was simply never released as a 16-bit ROM. – Daedalus May 2 at 20:23
  • Works != supported :-) – user180940 May 3 at 7:14
  • Indeed, in which case it's in a similar boat to the community-made 3.9 ROMs - works but not supported. I mentioned the 3.9 ROMs anyway since the OP didn't specify supported ;) – Daedalus May 4 at 10:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.