Commodore Amiga
1985
L'ordinateur qui lisait son système sur une disquette
L'Amiga 1000 n'avait pas son système en ROM : il le chargeait depuis une disquette dans une mémoire qu'il verrouillait ensuite, la WOM, parce qu'en 1985 le logiciel n'était pas encore prêt.
Quand l'Amiga 1000 est arrivé dans les magasins, en 1985, AmigaOS comportait encore beaucoup de bogues. Au lieu de le graver d'emblée en ROM, Commodore a fait autre chose : elle a placé dans la machine une carte fille avec 256 Ko de RAM, la writable control store, et a chargé le noyau du système, le Kickstart, depuis une disquette [1].
À l'allumage, une petite ROM de démarrage, de seulement 8 Ko, affiche à l'écran une demande de la disquette Kickstart. Elle copie 256 Ko de la disquette dans les puces de RAM de la carte fille, protège cette mémoire en écriture et saute dedans [2]. En pratique, ce sont deux petites ROM, une pour les 8 bits de poids faible et une pour les 8 bits de poids fort du bus de données, et le Kickstart se trouve dans le même espace d'adressage que celui où les autres Amiga ont leur ROM, de $F80000 à $FFFFFF [4].
On l'écrit une fois, puis on ne fait plus que la lire : les Européens l'ont appelée WOM, un jeu de mots sur ROM.
En Europe, cette mémoire a été surnommée WOM, Write Once Memory, un jeu de mots sur ROM : on l'écrit une fois, puis on ne fait plus que la lire [1]. Comme elle est verrouillée, une réinitialisation n'oblige pas à recharger le Kickstart ; seule l'extinction de la machine l'efface [1]. C'est pourquoi l'A1000 demande deux disquettes à l'allumage : d'abord celle du Kickstart, puis celle du Workbench.
L'avantage était de pouvoir mettre à jour le système avec une nouvelle disquette. L'A1000 a ainsi fait tourner les Kickstart 1.0 et 1.1, de 1985 et 1986, puis le 1.2 et le 1.3 [3]. Certains programmes ont même tiré parti de cette architecture : sur l'A1000, Dragon's Lair avait une version du code qui utilisait ces 256 Ko pour des données [3]. Sur les Amiga suivants, comme l'A500 et l'A2000, le Kickstart est passé en ROM et le démarrage est devenu plus rapide [3].
L'idée n'est pas morte avec l'A1000. Les premiers Amiga 3000 chargeaient eux aussi le Kickstart depuis le disque et permettaient de choisir la version du système au démarrage, sans outil supplémentaire [3]. Et beaucoup de propriétaires d'A1000 ont fait le chemin inverse, avec des cartes qui mettent le Kickstart en ROM. La Kickstart Eliminator, recréée aujourd'hui en open source, utilise quatre EPROM 27C512 et une GAL programmée, et rend même les 256 Ko de la WOM comme mémoire libre pour les programmes ou pour un disque en RAM [2].
Sur l'établi, ces cartes ont leurs caprices. Un propriétaire qui a monté un adaptateur de ce type dans un A1000 a décrit des pistes d'adresse mal routées sur la carte et une ligne /BYTE qu'il a dû relier au 5 V par un fil pour que l'adaptateur fonctionne en mode 16 bits [4].
Sources
- [1]Amiga 1000 · Wikipédia (en)
- [2]Amiga 1000 Kickstart Eliminator · GitHub (schlae)
- [3]Kickstart (Amiga) · Wikipédia (en)
- [4]Installing a kickstart ROM adapter in my Amiga 1000 · Adrian Chadd's Ramblings, 2022