18

A library in Amiga programming is exactly as you describe - you obtain a pointer to the library base address, and then call a function by loading the library base address into A6, the required parameters into the documented registers, and then doing a jsr to an A6-relative address. It is unusual to refer to the function addresses by number. The Amiga ...


18

The Amiga Kickstart ROM is made up of numerous modules, libraries, and device drivers. One of the modules is Strap, as in Bootstrap. After I/O and expansion devices have been enumerated and initialized (including any expansion ROM they contain, which provide more libraries or device drivers), Strap takes over bootstrapping. Bootable disk devices have ...


12

TL;DR You will need to open up the machine to see exactly what kind of Kickstart ROM upgrade is installed. As you are probably aware, the disk-based Kickstart boot floppy was not part of the original Amiga A1000 design. Rather, it was a last minute response to the OS still being un-polished and buggy as Commodore management rushed the machine to market. ...


12

Kickstart 3.1 can detect some memory expansions automatically so that AddMem is not needed in your startup sequence, and it has a few other improvements that are required for Workbench (AmigaOS) 3.5 and 3.9.


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: Floating point hardware support via dynamically linked ...


9

No, you can and, more importantly, it is fully supported to run Workbench 1.3 on a Kickstart 1.2 machine. This was rather common back at that time, because Workbench 1.3 brought some nice new features (like the RAD: drive, better printer drivers), and at least in Europe the first batches of Amiga 500 and Amiga 2000 arrived still with Kickstart 1.2. On ...


9

With the information in pndc's answer to this question I've been able to examine the various ROMs and I think I have the definitive answer. Firstly it seems that CDTV and CD32 do things slightly differently so I'll examine them separately. Background The commented disassembly of Exec by Markus Wandel provides some very useful information. In particular, it ...


9

There are a number of ways that an extension ROM can add to or replace Kickstart functionality: Within the first few instructions, Kickstart checks for the magic value 0x1111 at 0xf00000, and will transfer control to any ROM there which passes muster. This is mainly useful for debug cards and other things that completely replace Kickstart. Kickstart is ...


8

I have disassembled the A1000 boot ROM to see how it works. The boot ROM is linked to address 0xf80000, and the WCS appears as RAM at 0xfc0000 through 0xffffff. When the boot ROM is satisfied that there is a Kickstart present, it writes to 0xf80000, which presumably engages a write-protect latch, and then jumps to the Kickstart ROM.


8

Your opening statement is only partly correct: As I understand, on the Commodore Amigas, the kickstart copies itself into a region of memory which is later made read-only. This is true for the Amiga 1000 computer. The A1000 contains a small boot ROM which contains code to self-test and then request a Kickstart disk. Kickstart is loaded from disk into a ...


7

@RichardDowner has already answered it, but who don't want pictures? 🤖 These are from the Amiga ROM Kernel Reference Manual: Libraries, 3rd edition, @1992 by Commodore Electronics, Ltd. What Every Amiga Programmer Should Know: The functions in the Amiga OS are accessed through shared run-time libraries. Libraries must be opened before their functions may ...


7

Here are some options for booting an Amiga 1000 without a physical Kickstart floppy disk: Kickstart eliminators: CMI Kickstart Eliminator DKB KwikStart and KwikStart II Kupke Kickstart Modul Rex Datentechnik Rex Kickstart Switcher Comspec Communications ARM-1000 Accelerators with ROM sockets or flash memory: CMI PAMC-1000 Some users report success with ...


7

Because the Amiga is so flexible in its use of system software, what you hope to accomplish here becomes really pertinent. Obviously, doing anything useful is going to require the creation of a Task (or Process) to provide some form of user & hardware interaction. A Task can be managed using exec.library, and a Process brings in the possibility of high-...


6

Apart from other version-related changes, there is a notable functional difference between the CDTV extended ROM and the A570 extended ROM: for some reason, perhaps related to the fact that the A570 was expected to run in an Amiga 500 (which unlike the CDTV has a builtin floppy drive by default), the A570 version expects DF0: to be present, whereas the CDTV ...


6

The Amiga Kickstart ROM is modular. As such, you can build custom ROM images containing whatever selection of libraries, devices, and handlers you would like to be ROM resident. And, as you indicated, the total ROM image can be up to 1MB in size, even though all original Amigas shipped with a maximum of 512KB of ROM. Once you build a custom ROM image, ...


5

The job is non-trivial, but I don't think it would be hard for someone 'experienced in the art'. 256k or even 512k is not a lot of code, and the ROMs are highly structured with a well-defined interface. I suspect it would be easier than cracking some of the more sophisticated copy-protection schemes used in Amiga games. In some respects ROM code is easier ...


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 (...


4

Original Amiga 1000 was loading the kickstart from the floppy disk. There were even games that doesn't require Kickstart. From there I understand, there is no need for kickstart modules to start the system except a boot rom smiliar to the A1000.


4

Kickstart 1.3 changed the file system to avoid extra disk space waste "due to the fact it could store only 488 bytes in any block of 512 bytes keeping 24 bytes for checksums."1 1.3 also added a new archive flag to the protect command, a PASSKEY parameter to the LOCK DRIVE command, and the Hidden (H), Script (S), Pure (P) parameters to the PROTECT FILE ...


4

OS-wise, Kickstart 3.1 should have more optimized graphics.library routines (rewritten to assembler), and some more tags for VideoControl() to speed up remaking the display in some cases (eg. do not reload the palette for a screen, but use the previous' screen one). They probably were meant to convince developers to use OS functionality for games and ...


4

You need the 3.1 ROM if you want to use OS3.9, and more importantly OS3.9's support for the use of larger than 4GB of HDD space by the Amiga OS. Without 3.1 ROM and OS3.9 you can still use larger HDDs but the Amiga OS can only access the first 4GB (so you could use the rest for linux partitions, for example.) Note that even with the 3.1 ROM and OS3.9 there ...


3

The autobooting feature that Kickstart 1.3 added allowed e.g. booting from the RAM drive RAD: after a reset (Wikipedia link). One could e.g. boot Workbench 1.3 on a Kickstart 1.2 Amiga and create RAD:, but it wouldn't boot from it after a reset (own experiment many years ago).


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....


Only top voted, non community-wiki answers of a minimum length are eligible