Mój własny kartridż - 64 kb?
Mój własny kartridż - 64 kb?
Witam,
Mam stary kartridż X i znalazłem kogoś, kto jest w stanie przeprogramować znajdujący się na nim EPROM. Osoba ta mówi jednak, że ten układ ma 64 kilobajty. Pytanie więc - jak C64 widzi taki kartridż? Jest w nim przełączanie banków (jeśli tak - to jak), czy też po prostu część tej pamięci się marnuje/jest niedostępna?
Mam stary kartridż X i znalazłem kogoś, kto jest w stanie przeprogramować znajdujący się na nim EPROM. Osoba ta mówi jednak, że ten układ ma 64 kilobajty. Pytanie więc - jak C64 widzi taki kartridż? Jest w nim przełączanie banków (jeśli tak - to jak), czy też po prostu część tej pamięci się marnuje/jest niedostępna?
Najprawdopodobniej jest to układ Eprom 2764, co oznacza 64 ale kilobity (8 kB), a nie kilobajty.
Owszem bankowanie obszarów 8kB jest możliwe. W ten sposób zrealizowany jest cart Final 3, który ma właśnie 64kB (2x układy 27256 lub 1x 27512).
Co więcej istnieją również cartridge z grami 256kB (np. Shadow Of the Beast) lub 512kB (np. Terminator 2), wydawane przez firmę Ocean.
Zainteresuj się tym: http://c64.phorum.pl/viewtopic.php?t=46 ... 88c8cc3ed3
Owszem bankowanie obszarów 8kB jest możliwe. W ten sposób zrealizowany jest cart Final 3, który ma właśnie 64kB (2x układy 27256 lub 1x 27512).
Co więcej istnieją również cartridge z grami 256kB (np. Shadow Of the Beast) lub 512kB (np. Terminator 2), wydawane przez firmę Ocean.
Zainteresuj się tym: http://c64.phorum.pl/viewtopic.php?t=46 ... 88c8cc3ed3
A jednak pociągnę jeszcze temat. Chciałbym wrzucić na kartridż SJLOAD - software'owy JiffyDOS ( http://picobay.com/dtv_wiki/index.php?t ... SJLOAD.ASM ). SJLOAD korzysta normalnie z pamięci w CB00, ograniczając długość ładowanego pliku do 195 bloków. I tu pytanie - czy jeśli dałoby się relokować ten program na pamięć kartridża (a widzę, że nie będzie hop-siup, bo jest tam parę kawałków samomodyfikującego się kodu), to da się wczytać plik "za" ROM kartridża? Na chłopski rozum, spodziewam się, że kod który pisze do obszaru pamięci cartridge ROM, powoduje zapisanie w RAM, a nie dezintegrację C64. Ale co po załadowaniu pliku? Czy da się programowo odłączyć kart?
Przecież już dawno istnieją takie rozwiązania -> patrz action replay.
Da się wczytywać pod każdą komórkę pamięci, kwestia użycia odpowiednio komórki $0001, która odpowiada za "konfigurację" pamięci, np przed samym zapisywaniem dla pojedyńczej komórki powyżej adresu $d000. W zasadzie to tylko obszar $d000-$dfff jest punktem newralgicznym, bo już pod kernalem, zapis do ramu nie powoduje konfliktu.
Ale.. to musi mieć zaimplementowane sam loader - manipulacja komórką $01 jest niezbędna gdyż port odbierania/wysyłania danych do stacji to kom. $dd00- czyli raz pamieć musi być ustawiona na korzystanie z rejestrów ($d000-$dfff), a raz na ram komputera (w tym samym obszarze).
Da się wczytywać pod każdą komórkę pamięci, kwestia użycia odpowiednio komórki $0001, która odpowiada za "konfigurację" pamięci, np przed samym zapisywaniem dla pojedyńczej komórki powyżej adresu $d000. W zasadzie to tylko obszar $d000-$dfff jest punktem newralgicznym, bo już pod kernalem, zapis do ramu nie powoduje konfliktu.
Ale.. to musi mieć zaimplementowane sam loader - manipulacja komórką $01 jest niezbędna gdyż port odbierania/wysyłania danych do stacji to kom. $dd00- czyli raz pamieć musi być ustawiona na korzystanie z rejestrów ($d000-$dfff), a raz na ram komputera (w tym samym obszarze).
Bo pecet to zwykły banan...
Z tym F3 to się nie martw, on też nie umożlwia wgrywania pliku ponad $d000.
Szczerze mówiąc to jeszcze nie rozszyfrowałem o co Ci chodziło w tym zdaniach :
Patrząc pobieżnie na kod loadera, uważam że to nie najlepszy wybór na rom dla cartridge, jest tam sporo odwołań do kernala.
Szczerze mówiąc to jeszcze nie rozszyfrowałem o co Ci chodziło w tym zdaniach :
Jaką dezintegrację?qus pisze: Na chłopski rozum, spodziewam się, że kod który pisze do obszaru pamięci cartridge ROM, powoduje zapisanie w RAM, a nie dezintegrację C64.
Patrząc pobieżnie na kod loadera, uważam że to nie najlepszy wybór na rom dla cartridge, jest tam sporo odwołań do kernala.
Bo pecet to zwykły banan...
Ooooj, głupi dowcip, sorry. Wiesz co się dzieje w amerykańskich filmach z robotami, którym przedstawi się paradoks? DOES NOT COMPUTE! KABOOOM.skull pisze:Szczerze mówiąc to jeszcze nie rozszyfrowałem o co Ci chodziło w tym zdaniach :Jaką dezintegrację?qus pisze: Na chłopski rozum, spodziewam się, że kod który pisze do obszaru pamięci cartridge ROM, powoduje zapisanie w RAM, a nie dezintegrację C64.