Cartridge dużej wielkości i przełączanie Banków.
Cartridge dużej wielkości i przełączanie Banków.
Witam.
Chciałbym poprawnie skonfigurować kod 64TASS pod jakiś większy niż 16KB rozmiar cartridge'a.
Interesuje mnie info jakie są popularne formy Cart'a do C64 większego rozmiaru jak 128 czy 256KB - No i jak oczywiście będzie działać przełączanie Banków w takim przypadku (domyślam się, że wtedy CART LO jest jako Fixed Bank i CART HI zostaje ustawiony jako przełączalny?
Zerkając na mapę pamięci C64 to mamy CART LO od $8000 do 9FFF i CART HI $A000-BFFF ale także CART HI $E000-FFFF - czy te dwa Banki HI to jest opcja do wyboru aby przykładowo nie wchodzić w ROM BASIC a dalej mieć 16KB Cart'a?
Jestem zielony w temacie.
Chciałbym poprawnie skonfigurować kod 64TASS pod jakiś większy niż 16KB rozmiar cartridge'a.
Interesuje mnie info jakie są popularne formy Cart'a do C64 większego rozmiaru jak 128 czy 256KB - No i jak oczywiście będzie działać przełączanie Banków w takim przypadku (domyślam się, że wtedy CART LO jest jako Fixed Bank i CART HI zostaje ustawiony jako przełączalny?
Zerkając na mapę pamięci C64 to mamy CART LO od $8000 do 9FFF i CART HI $A000-BFFF ale także CART HI $E000-FFFF - czy te dwa Banki HI to jest opcja do wyboru aby przykładowo nie wchodzić w ROM BASIC a dalej mieć 16KB Cart'a?
Jestem zielony w temacie.
Re: Cartridge dużej wielkości i przełączanie Banków.
Witaj,
nie mam dużej wiedzy w tym temacie, ale może coś pomoże link: https://codebase64.org/doku.php?id=base:crt_file_format (kartridże 5, 7, 15, 17, 19).
nie mam dużej wiedzy w tym temacie, ale może coś pomoże link: https://codebase64.org/doku.php?id=base:crt_file_format (kartridże 5, 7, 15, 17, 19).
Re: Cartridge dużej wielkości i przełączanie Banków.
Ciekawie wygląda "Ocean type 1" - ma aż do 512KB. Przełącza się zapisując numer BANK'u 0-63 do $DE00.
Pytanie jak zdefiniować wszystko w 64TASS aby było OK?
Pytanie jak zdefiniować wszystko w 64TASS aby było OK?
Re: Cartridge dużej wielkości i przełączanie Banków.
Tutaj jest chyba pełniejsza dokumentacja http://ist.uwaterloo.ca/~schepers/formats/CRT.TXT
Ale z TASem nie pomogę. Ja sobie generuję nagłówki ręcznie.
Edit: A tu przykładowy kod obsługi: https://codebase64.org/doku.php?id=base ... _rom_image
tu coś o nagłówku, boocie i NMI: https://www.c64-wiki.com/wiki/Cartridge ... ge_boot-up
Ale z TASem nie pomogę. Ja sobie generuję nagłówki ręcznie.
Edit: A tu przykładowy kod obsługi: https://codebase64.org/doku.php?id=base ... _rom_image
tu coś o nagłówku, boocie i NMI: https://www.c64-wiki.com/wiki/Cartridge ... ge_boot-up
Re: Cartridge dużej wielkości i przełączanie Banków.
Jeszcze jeden przykład: https://github.com/msolajic/c64-magic-desk-512k - ten rodzaj jest emulowany przez VICE.
Tutaj jest podłączony tylko /ROML, czyli 8K w obszarze $8000-$9FFF), a rejestrem $DE00 wybiera się bank albo wyłącza cart zupełnie (do następnego resetu).
Tutaj jest podłączony tylko /ROML, czyli 8K w obszarze $8000-$9FFF), a rejestrem $DE00 wybiera się bank albo wyłącza cart zupełnie (do następnego resetu).
Re: Cartridge dużej wielkości i przełączanie Banków.
Dodam swoje 3 grosze: możesz też użyć carta typu EasyFlash, daje 512kb, myślę że to można szybko testować sobie na real hardware.
Ja w pliku prg nie dodawałem żadnego dodatkowego nagłówka, ani wektorów startu, tylko standardowo tak jak w prg adres załadunku i od razu kod wykonywalny.
Obraz z prg można wygenerować tak:
cartconv.exe -t easy -i crtMain.prg -o MyEasyFlaskCart.crt -p
EasyFlash ma tego plusa daje dodatkowo możliwość zapisu danych. Więcej szczegółów o tym można znaleźć w dokumentacji:
http://skoe.de/easyflash/files/devdocs/ ... rogRef.pdf
Ja w pliku prg nie dodawałem żadnego dodatkowego nagłówka, ani wektorów startu, tylko standardowo tak jak w prg adres załadunku i od razu kod wykonywalny.
Obraz z prg można wygenerować tak:
cartconv.exe -t easy -i crtMain.prg -o MyEasyFlaskCart.crt -p
EasyFlash ma tego plusa daje dodatkowo możliwość zapisu danych. Więcej szczegółów o tym można znaleźć w dokumentacji:
http://skoe.de/easyflash/files/devdocs/ ... rogRef.pdf
Re: Cartridge dużej wielkości i przełączanie Banków.
Dla pewności spytam - tryb 16K Mode (8 KiB at $8000 8 KiB at $A000) przełącza w PARACH oba LO/HI Carta? Nie ma możliwości zostawić np. LO jako stały (fixed bank) i przełączać sobie jedynie HI ?
Re: Cartridge dużej wielkości i przełączanie Banków.
Nie, przynajmniej mi o tym nic nie wiadomo, jedynie tryb 8k daje możliwość przełączania banku odwrotnie niż piszesz czyli w obszarze $8000 a w $A000 jest zwykła pamięć. Ja carta po prostu używałem jak "pamięci masowej" - włączałem carta, wczytywałem to co potrzebowałem i wyłączałem, bo wiadomo że przy włączonym carcie mamy w tych obszarach pamięć ROM więc zostawianie na stałe carta ma sens w przypadku grafiki albo kodu który nie ma elementów samomodyfikacji.