[#44]
Re: Amiga 500+ Kickstart 1.3
@SQra,
post #43
Na początku każdego kickstartu jest instrukcja skoku do ROMu, zakodowana na sztywno.
Po resecie kickstart pojawia się pod adresem 0 na chwilę, po to żeby procesor wykonał instrukcję skoku pod właściwy adres.
Kickstart jest zawsze wyrównywany przez Commoodre do końca fragmentu pamięci, czyli jeśli Amiga ma przeznaczone w mapie pamięci na to 512kB, to instrukcja skoku w przypadku KS 256kB, będzie wskazywała adres z drugiej połowy tych 512kB i jeśli w pierwszej połowie nie będzie na początku chociażby tej instrukcji skoku do drugiej połówki, to po resecie pod adres 0 trafi obszar, w którym nic nie ma, bo KS jest 256kB dalej, dlatego do kości 512kB wgrywa się KS 256kB podwójnie.
Efekt podwójnego występowania KS w mapie pamięci wynika z tego, że oryginalnie kostka 256KB jest włożona w podstawkę, która obsługuje 512kB i z powodu jednej linii adresowej mniej, KS występuje podwójnie w tych 512kB (gdybyś włożył kostkę 128KB, to jej zawartość odbijałaby się poczwórnie w tej przestrzeni).
Analogicznie w Amidze, która obsługuje KS o wielkości 1MB, jeśli użyjesz kostki 1MB, to KS 256KB trzeba wgrać poczwórnie, chyba, że odegniesz nadmiarowe nóżki adresowe i podłączysz je na stale do masy na przykład.