Informacje dodatkowe     Programowanie pamięci Kickstart dla Amigi


Poniższy poradnik opisuje, jak programować (odczytywać/zapisywać) różne typy układów pamięci,
które mogą służyć do przechowywania Kickstartu, używając programatora TL866II Plus (program
sterujący "Xgpro 12.57") oraz adaptera pamięci 27C400/27C800/27C160/27C322.
Opis ogranicza się do programowania Kickstartu zawartego w jednym układzie pamięci, który był
montowany w Amidze 500/500+/600/2000/CDTV (modele A1500/A2500 są odmianą Amigi 2000).

1. Adapter pamięci
2. Odczyt pamięci
3. Zapis pamięci
4. Obsługiwane układy pamięci
5. Podstawki Kickstartu w Amigach
6. Dodatkowe informacje

1. Adapter pamięci

Adapter umożliwia odczyt/zapis 8/16-bitowej pamięci, o pojemności 256-4096kB w obudowie DIP40/42 z rozkładem
wyprowadzeń według standardu "ROM", przy pomocy dowolnego programatora uniwersalnego (np. TL866A/CS/II Plus),
obsługującego 16-bitową pamięć typu 27C2048 / 27C4096 (M27C4002) z rozkładem wyprowadzeń według standardu
"JEDEC". Pozwala korzystać z pamięci tylko do odczytu ROM (MASK), jednokrotnie programowalnej PROM (OTP)
oraz wielokrotnego zapisu EPROM (UV) z okienkiem do kasowania promieniami UV.



Projekt adaptera powstał pod koniec 2015 roku, a jego autorem jest niejaki Gaggi (https://github.com/gaggi/27c160-
tl866-adapter). W stosunku do oryginalnego schematu zmniejszyłem tylko wartość rezystora R5 z 10k na 2.2k, co zwię-
kszyło prąd bazy tranzystora Q1 (BC327), a tym samym jego wydajność prądową (ważne gdy użyty tranzystor ma niskie
wzmocnienie hFE). Zamiast 2-pozycyjnego podwójnego przełącznika SW1 (DPDT) służącego do wyboru rodzaju pam-
ięci, wlutowałem dwie zworki (kołki goldpin 3x2). Przełącznik SW2 DIP 3-sekcyjny (DIP-switch) uzyskałem, odcinając
pozostałe sekcje dłuższego przełącznika tego typu. Adapter zmontowałem na kupionej gotowej płytce dwustronnej
z metalizacją, która została wyprodukowana w chińskiej fabryce.

Płytka adaptera (góra)
Płytka adaptera (góra)
Płytka adaptera (dół)
Płytka adaptera (dół)
Zmontowany adapter
Zmontowany adapter
Schemat adaptera
Schemat adaptera
 
Zmontowany adapter
Zmontowany adapter
Zmontowany adapter
Zmontowany adapter
Zmontowany adapter
Zmontowany adapter


2. Odczyt pamięci

Aby odczytać układ pamięci z Kickstartem, należy podłączyć programator TL866II Plus i uruchomić program sterujący
"Xgpro 12.57". W głównym oknie programu w grupie "Select IC", naciskamy przycisk wyboru typu układu scalonego.
W nowym oknie "Select Device" w polu tekstowym wyszukiwania "Search Device", wpisujemy "AM27C2048" / "AM-
27C4096", na liście "Device" zaznaczamy układ "AM27C2048 @DIP40" / "AM27C4096 @DIP40" w zależności od
tego, czy chcemy odczytać pamięć o pojemności 256/512-4096kB, a następnie wybieramy zaznaczony układ pamięci
naciskając przycisk "Select". W głównym oknie programu w grupie "Options", odznaczamy pole wyboru "Check ID"
(sprawdzanie sygnatury pamięci). Przy odczycie pamięci M27C322 i zgodnych, należy również odznaczyć pole "Pin
Detect" (wykrywanie wyprowadzeń układu).
Wkładamy odczytywany układ pamięci do dolnych styków podstawki ZIF48 adaptera, pin pierwszy (wycięcie układu)
musi znajdować się w górnej części podstawki (przy dźwigni), a następnie zaciągamy jej dźwignię by zatrzasnąć wy-
prowadzenia układu. Adapter z prawidłowo umieszczonym układem i odpowiednio ustawionymi przełącznikami, wkła-
damy do podstawki ZIF40 programatora (dźwignia przy dźwigni) i zaciągamy jej dźwignię by zatrzasnąć wyprowadze-
nia (kołki goldpin) adaptera. Zarówno wyprowadzenia układu pamięci włożonego w podstawkę adaptera, jak i wypro-
wadzenia samego adaptera włożonego w podstawkę programatora mogą nie łączyć, co może powodować błędy
odczytu. W takim wypadku trzeba (czasem kilkukrotnie) wyjąć i ponownie włożyć (zatrzasnąć) układ/adapter w nieco
innym miejscu podstawki, aż do uzyskania prawidłowego odczytu.
Jeśli pamięć ma pojemność 256/512kB (wybrany układ "AM27C2048" / "AM27C4096"), to jej pełny odczyt następuje
1 raz (bez zmiany banków) - należy ustawić przełącznik SW1 w pozycji "other" i wszystkie sekcje przełącznika SW2
w pozycji "ON".
Jeśli pamięć ma pojemność 1/2/4MB (wybrany układ "AM27C4096"), to jej pełny odczyt następuje 2/4/8 razy po 512kB
(ze zmianą banków) - należy ustawiać sekcje przełącznika SW2 w kolejnych pozycjach, przedstawionych dla danej pa-
mięci w poniższej tabeli. Przełącznik SW1 musi być ustawiony w pozycji "27c322" tylko przy odczycie pamięci M27C-
322 i zgodnych, dla pozostałych typów pamięci musi być ustawiony w pozycji "other".
Aby rozpocząć proces odczytu pamięci do bufora, należy nacisnąć przycisk "Read" z paska narzędzi lub wybrać pozy-
cję "Read...(R)" z menu "Device(D)". Pojawi się nowe okno "Chip Read", w którym powinno być zaznaczone pole wy-
boru "FLASH" w grupie "Read Range". Odczyt pamięci nastąpi po naciśnięciu przycisku "Read". Okno odczytu można
zamknąć naciskając przycisk "BACK".
Odczytana zawartość układu pamięci znajduje się w buforze i jest wyświetlana w głównym oknie programu. Domyślnie
dane są wyświetlane w trybie słowa - zaznaczone jest pole wyboru "16 Bits", co powoduje że wyświetlane dane są od
razu odwrócone (w każdym 16-bitowym słowie, kolejność bajtów jest zmieniona - najpierw wyświetla się bajt starszy/nie-
parzysty, a później młodszy/parzysty). Jednak dane w buforze nie są odwracane, a ich rzeczywisty wygląd i kolejność
bajtów można zobaczyć, zaznaczając pole wyboru "8 Bits". Dane z bufora można zapisać do pliku, naciskając przycisk
"Save" z paska narzędzi lub wybierając pozycję "Save(S)" z menu "File(F)". W nowym oknie "Save to File" z rozwijalnej
listy "File Format:", wybiera się format pliku wyjściowego: "Binary (BIN)" - binarny lub "INTEL HEX" - szesnastkowy Intel.
Ścieżka dostępu do pliku wyjściowego, znajduje się w polu tekstowym "File Name:" - można ją zmienić wpisując nową
ręcznie lub wskazując w oknie wyboru plików, które otwiera się po naciśnięciu przycisku "Browse". Aby zapisać zawa-
rtość bufora do wybranego pliku, należy nacisnąć przycisk "Save As".

Sposób umieszczenia Kickstartu 2.05 (37.299)
Sposób umieszczenia
Kickstartu 2.05 (37.299)
Sposób umieszczenia układu pamięci 27C160
Sposób umieszczenia
układu pamięci 27C160
Odczytana zawartość Kickstartu 1.3 (34.5)
Odczytana zawartość
Kickstartu 1.3 (34.5)
Odczytana zawartość Kickstartu 2.05 (37.299)
Odczytana zawartość
Kickstartu 2.05 (37.299)

Zakładam, że w każdym odczytanym z pamięci i zapisanym do pliku wyjściowego banku o rozmiarze 512kB, znajduje
się jeden Kickstart 512kB lub dwa zdublowane Kickstarty 256kB. Aby odwrócić kolejność bajtów w każdym słowie pliku
wyjściowego, polecam darmowy program "Eprom Hexxer 1.30" (przycisk "ByteSwap 2") lub edytor "Hex Workshop
5.1.4" (menu Tools/Operations/Byte Flip... - w nowym oknie z rozwijalnej listy "Treat Data As:" wybrać "16 Bit Unsigned
Short"). Po odwróceniu kolejności bajtów, poprawność całego pliku-obrazu z odczytanym Kickstartem można sprawdzić
moim programem AmiKick (w przypadku sprawdzania Kickstartów 256kB zdublowanych w pliku 512kB - jeden z nich
należy usunąć).


3. Zapis pamięci

Aby zapisać układ pamięci z Kickstartem, należy podłączyć programator TL866II Plus i uruchomić program sterujący
"Xgpro 12.57". W głównym oknie programu w grupie "Select IC", naciskamy przycisk wyboru typu układu scalonego.
W nowym oknie "Select Device" w polu tekstowym wyszukiwania "Search Device", wpisujemy "AM27C2048" / "AM-
27C4096", na liście "Device" zaznaczamy układ "AM27C2048 @DIP40" / "AM27C4096 @DIP40" w zależności od
tego, czy chcemy zapisać pamięć o pojemności 256/512-4096kB, a następnie wybieramy zaznaczony układ pamięci
naciskając przycisk "Select". W głównym oknie programu w grupie "Options", odznaczamy pole wyboru "Check ID"
(sprawdzanie sygnatury pamięci). Przy zapisie pamięci M27C322 i zgodnych, należy również odznaczyć pole "Pin
Detect" (wykrywanie wyprowadzeń układu). Natomiast zaznaczamy pola wyboru "Verify after" (weryfikacja zgodności
danych po zapisie pamięci), "Skip Blank" (pomijanie pustych komórek podczas zapisu/weryfikacji pamięci) oraz
"Blank Check" (sprawdzanie wykasowania pamięci przed zapisem). Poza tym w grupie "IC Config Information", znaj-
dują się rozwijalne listy wyboru z parametrami zapisu: "VPP Voltage:" - napięcie programujące (9.00-18.00V, domy-
ślnie 13.00V), "VDD Write:" - napięcie zasilania podczas zapisu (3.30-6.50V, domyślnie 6.50V), "VCC Verify:" - nap-
ięcie zasilania podczas weryfikacji (3.30-6.50V, domyślnie 5.00V) oraz "Puls Delay:" - opóźnienie między sygnałami
programującymi kolejne słowa danych (25-1000us, domyślnie 100us). Domyślne wartości tych parametrów, są odpo-
wiednie przy zapisie większości typów układów pamięci. W niektórych przypadkach, gdy zapis nie udaje się trzeba
zwiększyć napięcie programujące VPP do 13.50V. Skrócenie opóźnienia sygnałów programujących do 50us, przy-
spieszy nieco proces zapisu. Dokładne wartości tych parametrów można znaleźć w nocie katalogowej danego układu
pamięci.
Wkładamy zapisywany układ pamięci do dolnych styków podstawki ZIF48 adaptera, pin pierwszy (wycięcie układu)
musi znajdować się w górnej części podstawki (przy dźwigni), a następnie zaciągamy jej dźwignię by zatrzasnąć wypro-
wadzenia układu. Adapter z prawidłowo umieszczonym układem i odpowiednio ustawionymi przełącznikami, wkładamy
do podstawki ZIF40 programatora (dźwignia przy dźwigni) i zaciągamy jej dźwignię by zatrzasnąć wyprowadzenia (kołki
goldpin) adaptera. Zarówno wyprowadzenia układu pamięci włożonego w podstawkę adaptera, jak i wyprowadzenia
samego adaptera włożonego w podstawkę programatora mogą nie łączyć, co może powodować błędy zapisu. W takim
wypadku trzeba (czasem kilkukrotnie) wyjąć i ponownie włożyć (zatrzasnąć) układ/adapter w nieco innym miejscu pod-
stawki, aż do uzyskania prawidłowego zapisu.
Jeśli pamięć ma pojemność 256/512kB (wybrany układ "AM27C2048" / "AM27C4096"), to jej pełny zapis następuje
1 raz (bez zmiany banków) - należy ustawić przełącznik SW1 w pozycji "other" i wszystkie sekcje przełącznika SW2
w pozycji "ON".
Jeśli pamięć ma pojemność 1/2/4MB (wybrany układ "AM27C4096"), to jej pełny zapis następuje 2/4/8 razy po 512kB
(ze zmianą banków) - należy ustawiać sekcje przełącznika SW2 w kolejnych pozycjach, przedstawionych dla danej pa-
mięci w poniższej tabeli. Przełącznik SW1 musi być ustawiony w pozycji "27c322" tylko przy zapisie pamięci M27C-
322 i zgodnych, dla pozostałych typów pamięci musi być ustawiony w pozycji "other".
Aby jeden Kickstart 256/512kB zapisać w pamięci o takiej samej pojemności, należy przed zapisem odwrócić kolej-
ność bajtów w każdym jego słowie i zapisać w niej 1 raz (bez zmiany banków). Aby jeden Kickstart 256kB zapisać
w pamięci o większej pojemności 512/1024/2048/4096kB, należy go zdublować w pliku 512kB, odwrócić kolejność
bajtów w każdym jego słowie i zapisać w niej 1/2/4/8 razy (w każdym jej banku). Analogicznie, aby jeden Kickstart
512kB zapisać w pamięci o większej pojemności 1/2/4MB, należy odwrócić kolejność bajtów w każdym jego słowie
i zapisać w niej 2/4/8 razy (w każdym jej banku). Wielokrotny zapis tego samego Kickstartu we wszystkich 512kB
bankach pamięci gwarantuje, że zostanie on prawidłowo odczytany przez Amigę niezależnie od stanów logicznych,
panujących na najwyższych liniach adresowych układu (A17/A18/A19). Jeśli w pamięci o pojemności 1/2/4MB mają
być zapisane 2/4/8 różne Kickstarty, to po odwróceniu kolejności bajtów w każdym ich słowie, zapisujemy je w osob-
nych 512kB bankach pamięci (w przypadku Kickstartu 256kB, najpierw należy go zdublować w pliku 512kB).
Binarny plik-obraz Kickstartu z odwróconą kolejnością bajtów w każdym słowie, należy załadować do bufora programu.
W tym celu naciskamy przycisk "Load" z paska narzędzi lub wybieramy pozycję "Load File(O)" z menu "File(F)". W no-
wym oknie "File load Options" w grupie "File Format", zaznaczamy pole wyboru "BINARY" - binarny format pliku wej-
ściowego. Ścieżka dostępu do pliku wejściowego, znajduje się w polu tekstowym "FileName:" - można ją zmienić wpi-
sując nową ręcznie lub wskazując w oknie wyboru plików, które otwiera się po naciśnięciu przycisku "Browse". W gru-
pie "Load mode" z rozwijalnej listy wybieramy pozycję "Normal". Aby załadować zawartość wybranego pliku do bufora,
należy nacisnąć przycisk "OK".
Odczytana zawartość pliku wejściowego znajduje się w buforze i jest wyświetlana w głównym oknie programu. Domyś-
lnie dane są wyświetlane w trybie słowa - zaznaczone jest pole wyboru "16 Bits", co powoduje że wyświetlane dane są
od razu odwrócone (w każdym 16-bitowym słowie, kolejność bajtów jest zmieniona - najpierw wyświetla się bajt star-
szy/nieparzysty, a później młodszy/parzysty). Jednak dane w buforze nie są odwracane, a ich rzeczywisty wygląd i kole-
jność bajtów można zobaczyć, zaznaczając pole wyboru "8 Bits".
Aby rozpocząć proces zapisu danych z bufora do pamięci, należy nacisnąć przycisk "Prog." z paska narzędzi lub wy-
brać pozycję "Program(P)" z menu "Device(D)". Pojawi się nowe okno "Chip Program", w którym powinno być zazna-
czone pole wyboru "FLASH" w grupie "Program Range". Zapis pamięci nastąpi po naciśnięciu przycisku "Program".
Okno zapisu można zamknąć naciskając przycisk "BACK".

Sposób umieszczenia Kickstartu 2.05 (37.299)
Sposób umieszczenia
Kickstartu 2.05 (37.299)
Sposób umieszczenia układu pamięci 27C160
Sposób umieszczenia
układu pamięci 27C160
Zapis zawartości Kickstartu 1.3 (34.5)
Zapis zawartości
Kickstartu 1.3 (34.5)
Zapis zawartości Kickstartu 2.05 (37.299)
Zapis zawartości
Kickstartu 2.05 (37.299)

Zakładam, że w każdym odczytanym z pliku wejściowego i zapisanym do pamięci banku o rozmiarze 512kB, znajduje
się jeden Kickstart 512kB lub dwa zdublowane Kickstarty 256kB. Aby odwrócić kolejność bajtów w każdym słowie pliku
wejściowego, polecam darmowy program "Eprom Hexxer 1.30" (przycisk "ByteSwap 2") lub edytor "Hex Workshop
5.1.4" (menu Tools/Operations/Byte Flip... - w nowym oknie z rozwijalnej listy "Treat Data As:" wybrać "16 Bit Unsigned
Short").


4. Obsługiwane układy pamięci

Poniższa tabela zawiera wszystkie obsługiwane typy układów pamięci do odczytu/zapisu, odpowiadające im
ustawienia przełącznika SW2, stany logiczne na liniach adresowych A18/A19/A20 oraz numery banków.

WYBRANY
UKŁAD
OBSŁUGIWANE PAMIĘCISW2STAN LINIIBANK
A18A19A20
27C2048

  (2Mbit, 128k*16,  
UV/OTP, DIP40)
PROM/EPROM: 27C200, MX27C2100, uPD27C2000

(2Mbit, 256k*8/128k*16, UV/OTP, DIP40)

ROM: HN62402P, HN62412P, HN62422P,
KM23C2100, LH532000, LH5320H4, LH532600,
MN232000, MX23C2100, uPD23C2000

FLASH: 29F200 (*)
0000
27C4096

(M27C4002,
TC544096P)

(4Mbit, 256k*16,
UV/OTP, DIP40)
PROM/EPROM: 27C400, M27V400, M27W400,
MX27C4100, TC574200D, uPD27C4000

(4Mbit, 512k*8/256k*16, UV/OTP, DIP40)

ROM: EK23C4000, GM23C4100, HN62404P, HN62414P,
HN62415P, HN62424P, HN62434P, HN62435P, HN62444P,
  HN62454P, HY234100, KM23C4100, LH534000, LH53H4000,  
LH534500, LH534600, LH534P00, MB834200, MN234000,
MX23C4100, M5M23400, M5M23C400, MSM534002,
RP534040, TC534200P, uPD23C4000

FLASH: 29F400 (*)
0000
PROM/EPROM: 27C800, M27V800, M27W800,
MX27C8100, TC578200D, uPD27C8000

(8Mbit, 1M*8/512k*16, UV/OTP, DIP42)

ROM: GM23C8100, HN62408P, HN62418P, HN62428P,
HN62438P, HN62448P, HN66403P, KM23C8100, LH538000,
LH538500, LH538600, LH538P00, MB838200, MN238000,
MX23C8100, M5M23800, TC538200P, uPD23C8000

FLASH: 29F800 (*)
0000
1001
PROM/EPROM: 27C160, M27V160, M27W160,
MX27C1610, TC5716200D, uPD27C16000

(16Mbit, 2M*8/1M*16, UV/OTP, DIP42)

ROM: GM23C16000, HN624016P, HN624017P,
HN624116P, HN624316P, HN624416P, HY2316000,
KM23C1610, KM23C16000, LH5316500, LH5316501,
LH5316600, LH5316P00, MN231610, MX23C1610,
M5M23160, TC5316200P, uPD23C16000

FLASH: 29F160 (*)
0000
1001
0102
1103
PROM/EPROM:
M27C322, M27V322, M27W322

(32Mbit, 2M*16, UV/OTP, DIP42)

ROM:
GM23C32000, HN624032P, K3N6C4000,
KM23C32000, LH5332A00, LH5332C00,
LH5332H00, MX23C3210, uPD23C32000
0000
1001
0102
1103
0014
1015
0116
1117

(*) - możliwy jest odczyt pamięci FLASH typu 29F200/400/800/160, umieszczonej na adapterze DIP42.

Przełącznik SW1:
"27c322" - pozycja tylko dla pamięci M27C322 i zgodnych, "other" - pozycja dla pozostałych typów pamięci.

Oznaczenia rodzajów pamięci:
ROM (MASK) - pamięć tylko do odczytu.
PROM (OTP) - pamięć jednokrotnie programowana.
EPROM (UV) - pamięć wielokrotnie programowana i kasowana promieniami UV.

Oznaczenia producentów pamięci:
M - ST-Microelectronics (SGS-Thomson), EK - Eureka, GM - GoldStar/LG, HN - Hitachi, HY - Hyundai/Hynix,
K3/KM - Samsung, LH - Sharp, MB - Fujitsu, MN - Matsushita/Panasonic, MX - Macronix, M5M - Mitsubishi,
MSM - OKI, RP - Ricoh, TC - Toshiba, uPD - NEC.


5. Podstawki Kickstartu w Amigach

Poniżej pokazano rozmieszczenie sygnałów w podstawkach DIP40/42 dla układów pamięci Kickstart, które były mon-
towane w różnych modelach Amigi. Rysunek podstawki zawiera numer/oznaczenie układu na płycie głównej danego
modelu Amigi oraz maksymalny obsługiwany przez nią rozmiar Kickstartu.



W pierwszych wersjach płyt głównych Amigi 500 (rev. 3/5), 2000-A (rev. 3.x/4 - German design) oraz CDTV (rev. 2.1/
2.2/2.2B) popełniono błąd projektowy polegający na tym, że w podstawce DIP40 Kickstartu linia adresowa A17 zami-
ast do pinu nr 1, została podłączona do pinu nr 31 (BYTE), a pin nr 1 nie jest w ogóle podłączony (NC). Dlatego bez
wykonania odpowiednich przeróbek, w takich Amigach nie będzie działał Kickstart zapisany w pamięci 27C400/800/
160/322, ani nawet oryginalny Kickstart 2.x/3.x (MASK ROM) o rozmiarze 512kB, który linię A17 ma na pinie nr 1 swo-
jej obudowy DIP40. Błąd ten naprawiono w nowszych wersjach płyt głównych Amigi 500 (rev. 6A/7), 2000-B/CR (rev.
4.x/5/6.x - US design) oraz CDTV (rev. 2.2.1/2.3).

Podstawka DIP40 w Amidze 500/2000/CDTV ma wyprowadzone 18 linii adresowych (A0-A17 = 512kB), więc maksy-
malny rozmiar obsługiwanego przez nią Kickstartu wynosi 512kB. Amigi 500+/600 posiadają większą podstawkę DIP-
42 z 20 liniami adresowymi (A0-A19 = 2MB), ale obsługują Kickstart o rozmiarze tylko do 1MB. Dzieje się tak z powodu
odgórnie ograniczonego obszaru w mapie pamięci, który jest przeznaczony na Kickstart.

Pamięć 27C800/27C160 o pojemności 1/2MB w obudowie DIP42, po zapisaniu jednego Kickstartu w każdym jej ban-
ku, można włożyć bezpośrednio do podstawki DIP40 w Amidze 500/2000/CDTV tak, aby jej wyprowadzenia nr 1/42
(linie adresowe A18/A19) były poza podstawką. Tak włożona pamięć będzie widziana przez Amigę, jako standardowy
Kickstart o rozmiarze 512kB.

Pamięć M27C322 o pojemności 4MB, posiada dodatkową linię adresową A20 na pinie nr 32 (zamiast sygnału BYTE),
który w podstawce DIP42 Kickstartu w Amidze 500+/600 jest na stałe podłączony do plusa napięcia zasilania (co włą-
cza 16-bitowy tryb pracy pamięci). Dlatego po włożeniu takiej pamięci bezpośrednio do podstawki DIP42, będzie ona
miała tylko połowę swojej pojemności (2MB czyli 4 najstarsze banki nr 4-7), bo na jej linii adresowej A20 panuje ciągły
wysoki stan logiczny. Taki sam efekt wystąpi po włożeniu tej pamięci, bezpośrednio do podstawki DIP40 w Amidze
500/2000/CDTV tak, aby jej wyprowadzenia nr 1/42 (linie adresowe A18/A19) były poza podstawką. Amiga będzie wi-
działa tą pamięć, jako standardowy Kickstart o rozmiarze 512kB, po zapisaniu go w jej 4 najstarszych bankach (nr 4-7).


6. Dodatkowe informacje

W programie sterującym "Xgpro 12.57", są dostępne do wyboru różne typy układów pamięci wielu producentów.
27C2048: AM (AMD), AT (Atmel), MBM (Fujitsu), MX (Macronix); 27C4096: AM (AMD), AT (Atmel), MBM (Fujitsu),
HN (Hitachi), HT (Holtek), MX (Macronix), UPD (NEC); 27C4002: M (ST-Microelectronics/SGS-Thomson).
Algorytm odczytu/zapisu danego typu pamięci zapewne jest identyczny niezależnie od producenta, ale najlepiej
wybrać zgodnego z posiadanym układem.

Pamięć EPROM o największej pojemności M27C322 (4MB = 32Mb = 2Mb*16-bit), została wyprodukowana przez
firmę ST-Microelectronics (SGS-Thomson) w 1998 roku. Powstała też wersja M27V322 zapewniająca działanie
(odczyt) przy niższym napięciu zasilania 3.0-3.6V. Prawdopodobnie istnieje wersja M27W322 dziłająca przy napię-
ciu zasilania 2.7-3.6V. W planach firmy była również pamięć M27C642 (8MB = 64Mb = 4Mb*16-bit), ale nigdy nie
została wyprodukowana.

Poniższa tabela zawiera oznaczenia układów pamięci Kickstart produkowanych przez firmę
CSG (Commodore Semiconductor Group), które były montowane w różnych modelach Amigi.

OZNACZENIEKICKSTART  ROZMIAR  
[kB]
315093-011.2 (33.180) (A500/A2000)256
315093-021.3 (34.5) (A500/A2000/CDTV)
317951-011.4 alpha 15 (A3000/A3000T)
  319513-02 (HIGH)  
319514-02 (LOW)
3.0 (39.106) (A4000)512
363968-012.04 (37.175) (A500+/A2000)
380663-011.2 (A1000)256
380775-011.2 (A2000-A)
390629-01 (HIGH)
390630-01 (LOW)
1.4 beta (A3000/A3000T)512
390629-02 (HIGH)
390630-02 (LOW)
2.0 beta (A3000/A3000T)
390629-03 (HIGH)
390630-03 (LOW)
2.04 (37.175) (A3000/A3000T)
390976-012.04 (37.175) (???)
390979-01  2.04 (37.175) (A500+/A2000/CDTV)  
391008-01 (LOW)
391009-01 (HIGH)
Extended 1.0 (CDTV)256
391304-012.05 (37.300) (A600/A600HD)512
391304-022.05 (37.350) (A600/A600HD)
391388-012.05 (37.299) (A600)
391513-01 (HIGH)
391514-01 (LOW)
3.0 (39.106) (A1200)
391513-02 (HIGH)
391514-02 (LOW)
3.0 (39.106) (A4000)
391523-01 (HIGH)
391524-01 (LOW)
3.0 (39.106) (A1200)
391640-013.1 beta (CD32)1024
391640-023.1 (40.56) (CD32)
391640-033.1 (40.60) (CD32)
391657-01 (HIGH)
391658-01 (LOW)
3.1 (40.70) (A4000T)512
391773-01 (HIGH)
391774-01 (LOW)
3.1 (40.68) (A1200)