Cześć!
Kupiłem kiedyś kilka układów MX 291615PC-10 z myślą wykorzystania ich jako kickstarty.
Teraz mam wątpliwości czy będą odpowiednie... Są to układy o organizacji 16M-BIT [2M x8/1M x16] czyli mają 2 Megabajty, nie wiem jak ten rodzaj organizacji ma się do Amigi. W każdym razie mają taki sam rozkład pinów jak pamięci M27C800 o wielkości 1 Megabajt, i te pamięci podobno działają bez problemu jako kickstart a mają organizację (1Mb x8 or 512Kb x16). Oczywiście trzeba odpowiednio zwielokrotnić wsady aby wypełnić pamięć EPROM. W przypadku M27C800 trzeba zlepić 2 x kickstart1.3 i 1x kickstart 3.1 co daje 256K+256K+512K = 1024K. W przypadku mojego układu 29F1615 na początek aby nie kombinować jeszcze z przełącznikiem tylko poprostu wystartować z kickstartu 3.1 zlepiłem plik wsadu 4 x kickstart 3.1 czyli 4 x 512K = 2048K. Zaznaczę że podczas wczytywania plików kicksatartu pobranych z internetu, programator wykonuje mi automatycznie zamianę bajtów - swap bytes. Niestety po włożeniu do amigi są czasem tylko artefakty na ekranie i dźwięki różne.. wymuszanie stanu niskiego i wysokiego na pinie 1 układu eprom też nic nie zmienia, gdzie tu szukać problemu?
Nazwy plików kick'a które pobrałem z netu:
Kickstart v1.3 rev 34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV).rom
Kickstart 3.1 (40.068) (A600) (Commodore) (1993).rom
Ostatnia aktualizacja: 13.10.2024 18:57:02 przez HotIce
Ostatnia aktualizacja: 13.10.2024 18:58:34 przez HotIce
Nie istnieje Kickstart 3.1 (40.68) dla A600 jest tylko wersja 40.63. Obrazy mogą być nieprawidłowe - można je sprawdzić pod Windows programem AmiKick. Dużo zależy też od Amigi i wersji jej płyty głównej - są płyty, na których nawet oryginalny Kickstart o rozmiarze 512kB nie uruchomi się (więcej informacji: link).
Na początek wgraj jeden Kickstart do wszystkich 512kB banków pamięci - wtedy nie trzeba wymuszać stanów na jej najwyższych liniach adresowych. Jeśli wgrałeś dwa różne Kickstarty i linie te nie są podłączone ("wiszą w powietrzu"), to Amiga ładuje dane raz z jednego, raz z drugiego Kickstartu w losowych momentach - to nie może działać.
Ostatnia aktualizacja: 13.10.2024 22:11:46 przez RomanWorkshop
Sprawdziłem ten kick 3.1 i taki jest raport:
Kickstart 3.1 beta (40.68) for Amiga 600
Size: 512 kB
Year: 1993 (hack)
Checksum: OK (DB4247E0)
Resident modules: 43
i teraz kluczowe pytania o zamianę bajtów w słowie 16 bit, czy ją robić czy nie? nie wiadomo czy dane w oknie bufora programu do obsługi programatora są już odwrócone czy może wizualizacja jest odwrócona a rzeczywista zawartość w pliku wcale nie jest.. przy otwieraniu zlepionego pliku mam takie okno:
jest tu wybór w jaki sposób wczytać plik, tylko co wybrać? jako 2 bajtowa wartość i najpierw bardziej znaczący bajt?
Ten Kickstart 3.1 beta (40.68) nie miał prawa działać, bo był przeznaczony dla testerów i uruchamiany programowo z dyskietki (można to poznać po jego adresie bazowym $200000). W przypadku płyty A500 (rev. 6A) dwie pierwsze nóżki układu (1/42) muszą wystawać poza podstawkę DIP40 Kickstartu - zadziała, jeśli we wszystkich bankach pamięci będzie zaspisany ten sam Kickstart. W wynikowym pliku binarnym z 4 Kickstartami, należy odwrócić kolejność bajtów w każdym jego słowie (16-bit). Najprościej zrobić to programem Eprom Hexxer 1.31 (przycisk "ByteSwap 2"). Następnie można załadować ten plik do programu sterującego Xgpro, bez żadnych zmian. Bajty w pliku są odwrócone, jeśli po zaznaczeniu pola wyboru "8 Bits" w programie Xgpro, napisy na początku Kickstartu są nieczytelne (poszatkowane).
Ostatnia aktualizacja: 14.10.2024 17:00:04 przez RomanWorkshop
yes, yes, dziękuję, działa!;) wcześniej robiłem odwracanie bajtów ale w pliku kickstartu a dopiero potem zlepiałem 4w1, a to trzeba było najpierw zlepić a potem wykonać na pliku wynikowym swap bytes zapewne... teraz następny krok - jak zaprogramować ten eprom aby można przełącznikiem zmieniać kick 1.3 <> 3.1? 4 x kick1.3 + 2 x kick3.1? jaki jest algorytm wymuszenia adresacji stanami logicznymi na n.1 epromu?
Akurat czas kiedy odwróci się kolejność bajtów nie ma znaczenia - efekt będzie taki sam przed, jak i po "zlepianiu". Aby przełączać Kickstarty, trzeba wymuszać odpowiednie stany logiczne (0 = LOW, 1 = HIGH) na pinach nr 1 (A18) i 42 (A19) układu MX29F1615, który w sumie ma 4 banki po 512 kB: bank 0 (A18=0, A19=0), bank 1 (A18=1, A19=0), bank 2 (A18=0, A19=1) oraz bank 3 (A18=1, A19=1).
Bardzo dziękuję za precyzyjną odpowiedź, wgrałem 1 x kick31 + 2 x kick13 ( a może wystarczy jeden raz? czy trzeba wypełnić cały bank?) i po podaniu stanu wysokiego na n.1 epromu startuje też kickstart 1.3. Czyli na tym układzie można spokojnie zrobić przełącznik na 4 różne kickstarty?
Cały bank musi być wypełniony Kickstartem 1.3. Jeśli w takim układzie 2MB chce się mieć tylko 2 Kickstarty przełączane stanem jednej linii adresowej A18, to trzeba właściwie zaprogramować banki: Kickstart 1 w banku 0 i 2 (A18=0, A19=X bo wisi w powietrzu), Kickstart 2 w banku 1 i 3 (A18=1, A19=X). W przeciwnym razie dany Kickstart nie uruchomi się w ogóle lub wystąpią błędy, gdy na niepodłączonej linii A19 zmieni się stan logiczny.
Najprostszy przełącznik to mała płytka z dwoma zworkami: link.
Ostatnia aktualizacja: 15.10.2024 11:10:30 przez RomanWorkshop
Dograłem jeszcze w trzecim banku "diagrom". zlepiłem poprzedni plik z kikstartami 31 i 13 plus ten diagrom. Niestety wszystkie te romy czasami startują a czasami nie, nawet powrót do poprzedniej wersi z dwoma kickami nie daje poprawy, i tu się pojawia koledzy kluczowe pytanie - czy na pewno linie bez stanu wysokiego mogą wisieć w powietrzu bez podciągania przez rezystor do masy?
Jeśli linia A18/A19 nie jest podłączona (wisi), to panuje tam dowolny stan X - wysoki lub niski, który zmienia się w losowy sposób. Każda linia musi być podłączona do masy (GND) lub przez rezystor 4.7-10k do plusa zasilania +5V (VCC).
Ostatnia aktualizacja: 15.10.2024 12:46:29 przez RomanWorkshop
Trochę rzeźba ale wymyśliłem takie połączenie z jednym przełącznikiem (3 pozycje, na środku nic nie łączy) tak aby można było 3 różne romy odpalić:
działa poprawnie. Najlepiej by było zrobić na jakimś scalaku układ który po wciskaniu jednego microswitcha sekwencyjnie zmienia kombinację połączeń i jednocześnie zapala jedną z czterech ledów wskazującą na wybraną pozycję, ale to taki dodatkowy bajer.
Jeszcze mała ciekawostka na temat pamięci MX29F1615: ma dość małą (jak na pamięć FLASH) liczbę cykli kasowania/zapisu, która wynosi ok. 100. Kasowanie nowej pamięci zajmuje ok. 20s, ale im starsza i bardziej zużyta ona jest, tym dłużej to trwa (nota katalogowa podaje zakres 32-256s).
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies
(ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach.
Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy
niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki
internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.