C64Power Forum
Inne => Offtopic => Wątek zaczęty przez: kubas w 26 Marca 2007, 18:11
-
pytanie czy commodore 64 po starcie kleara(nie pamiętam jak to sie pisze chodi o \'bios\' w komodze)sprawdza czy nie ma chardża jeśli jest to sie z niego \'botuje\' a jak nie to z Basicka
-
Pewnie że sprawdza ja nie ma to uruchamia ci z podsystemu komody BASICA
-
Polska język, trudna język...
Po resecie procedurka z Kernala - tak się to nazywa, szuka pod adresem $8004 ciągu znaków CBM80 - jeśli jest (oznacza to że jest cartdridge - \'kardridż\') to wykonuje kod pod adresem $8000
-
... a dokładniej:
\'
32768 ($8000) - Autostart ROM cartridge
8K lun 16K cartridge przeznaczony do uzycia tej lokacji jako adresu startowego, może dołączony do złącza z tyłu obudowy komputera. Jeśli ten cartridge w lokacji 32772 - 32776 ($8004 - $8008) zawiera liczby: 195, 194, 205, 56, 48 ($C3, $C2, $CD, $38, $30 - co tak jak napisał zyga, oznacza: CBM80), gdy zostanie włączone napięcie , spowoduje on wystartowanie programu wskazanego przez wektor w lokacjach: 32768 - 32769 ($8000 - $8001) oraz użycie lokacji 32770 - 32771 ($8002 - $8003) jako wektora ciepłego startu po wciśnięciu klawisza RESTORE. Autostart cartridge może być adresowany na 40960 ($A000), gdzie zastąpi interpreter BASICa lub na 61440 ($F000) gdzie zastąpi Kernala. Można użyć 16K cartridge`a siedzącego pod 32768 ($8000), takiego jak BASIC Simons, który można włączać i wyłączać tak, że może być jednocześnie używany ROM interpretera BASICa. Można nawet użyć cartridge`ów, które przełączają banki pamięci w cartridge`u tak, że 32K program zmieści się w 16K przestrzeni adresowej.
Na podstawie: \'Mapping The Commodore 64\' Sheldon Leemon - tłumaczenie polskie (skrypt).
-
... od siebie dodam, że w \'zamierzchłych\' ;-) czasach robiło się carty, które na pokładzie miały pamięć z całą dowolną gierką (wrzucaną jednorazowo do pamięci kompcia) z EPROMem 27512 (64K) na pokładzie. Prosta procedurka przepisywania eeproma, uruchamiana po restarcie carta (z obszaru RAM, nieużywanego przez kompcia), zrzucała do pamięci RAM C64 całą poprawioną grę z EEPROMa 27512 i uruchamiała ją. Tak się przerabiało C64 na maszyny grające w salonach gier. Były takie czasy, aż łza się w oku kręci. Rozczuliłem się co nie co ;-)
Pozdrawiam:
suchy
-
... aby wypowiedź była kompletna w tym temacie muszę jeszcze dodać co nie co. Jest to procedura RESET zawarta w Kernalu:
\' 64738 ($FCE2) - RESET
Procedura inicjalizacyjna (włączenie zasilania lub reset)
Procedura ta jest wskazywana przez hardware`owy wektor mikroprocesora 6510, znajdujący się w lokacji 65532 ($FFFC).
Procedura ta jest wykonywana automatycznie po włączeniu komputera do napięcia. Najpierw zapala ona maskę przerwań (zakazuje przyjmowania przerwań), ustawia wslaźnik stosu i zeruje wskaźnik trybu dziesiętnego (wskaźnik D w rejestrze .P). Następnie sprawdza , czy nie jest dołączony samosterujący się cartridge. Jeśli jest, procedura ta skacze natychmiast przez wektor zomnego startu cartridge`a (lokacja 32768, $8000) oddając mu kontrolę nad systemem.. Jesli nie, wywoływane są procedury inicjalizacyjne Kernala: IOINIT, RAMTAS, RESTORE i CINT. Następnie kasuje maskę przerwań i przez wektor zimnego startu BASICa (lokacja 40960, $A000) oddaje mu sterowanie systemem\'
Na podstawie: j/w
Teraz juz chyba wszystko jasne ;-) jesli chodzi o bootowanie systemu C64