atarionline.pl Rozszerzona pamięć / carty / dyskietka - Forum Atarum

Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

  • :
  • :

Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • 1: CommentAuthorilmenit
    • CommentTime20 Dec 2010 zmieniony
     
    Czego najlepiej trzymać się pisząc program, który chciałbym bez problemu portować na więcej pamięci, carta lub doczyt z dyskietki/dysku?
    Czy uniwersalne będzie, gdy program będzie korzystał z okna mającego 8KB o modyfikowalnym adresie? Potrzebuję "doczytać" w trakcie trwania programu 16KB (lub 24KB, jeżeli 16KB nie wystarczy).
    • 2: CommentAuthormono
    • CommentTime20 Dec 2010 zmieniony
     
    Cart - ulokowany w $a000..$bfff najczęściej (choć podobno może też być w $8000..$9fff, albo zajmować obydwa obszary); jeśli program uruchamiany jest na carcie, to kod nie może sam się modyfikować (to pamięć ROM w końcu). Nic jednak nie stoi na przeszkodzie, żeby kart przepisał się do RAM i odpalił stamtąd uprzednio wyłączając ROM z obszaru $a000..$bfff (lub $8000..$9fff), ale UWAGA! elektronika carta musi takie rozwiązanie supportować (zazwyczaj przez odczyt/zapis do $d5xx).
    Odczyt - jeśli spod DOSa (za pośrednictwem "D:"), wtedy zakładaj, że MEMLO nie będzie niżej niż $2000 - obsługę transferu z ramdysków (okno pod $4000..$7fff), hdd czy innych urządzeń załatwia DOS więc nie ma się czym martwić. Warto odwołania do plików robić przez "D:file.ext", a nie "D1:file.ext", bo wtedy porządny DOS skorzysta z bieżącego napędu (a nie z D1). Fajnie, jak gra supportowałaby powrót do DOS.
    Jeśli zaś odczytujesz przez SIO (urządzenie $3x) wtedy sam określasz adres bufora danych no i sam musisz zorganizować dane na dyskietce.
    Ogólnym ograniczeniem dla obydwu metod jest odczyt pod ROM ($c000..$cfff,$d800..$ffff) i do XRAM ($4000..$7fff) - musisz czytać dane do bufora w zwykłym RAM poza tymi obszarami, po czym ręcznie je potem przepisywać.
    W obszar BASICa możesz spokojnie transmitować dane - wystarczy go "podnieść" w PORTB (bit 1=1).
    Obszaru na końcu pamięci $ffc0..$ffff warto nie dotykać ze względu na wykorzystanie ich przez 65c816 i/lub SDX. A no i ze względu na to, że ktoś może mieć w komputerze 816 nie warto używać nielegalnych rozkazów 6502. Używać wektorów przerwań na stronie 2 i ustawiać je przez SETVBLV ($e45c).

    Edit: Warto zrobić założenie, że ktoś może mieć bootowany komputer z BASICem i go podnieść (uprzednio przełączając dlist, albo po podniesieniu ustawiając RAMTOP na $c0 i reinicjalizując E: przez close/open). Pod DOS można przyjąć, że od $2000 do $bfff jest wolny RAM (pod SDX gra raczej będzie odpalana przez X więc odłączy moduł z $a000..$bfff).
    Ostrożnie z operacjami na $d5xx - jeśli jest przelotowa SDX albo wbudowana to zdarza się, że odczyty z $d5xx powodują odłączenie modułu i powrót do DOS się już nie uda.
    • 3: CommentAuthorilmenit
    • CommentTime21 Dec 2010
     
    Dzięki wielkie! :) To dla mnie bardzo przydatne informacje.
    • 4: CommentAuthormono
    • CommentTime21 Dec 2010
     
    Przepraszam - z rozpędu napisałem Ci bzdurę odnośnie ładowania danych do XRAM. Oczywiście możesz ładować bezpośrednio do XRAM ustawiając odpowiedni bank w PORTB. Odczyt pod ROM tylko musi być buforowany, bo w ROMie (zazwyczaj) są procedury odczytu :)
    Wyłączenie BASICa w PORTB powinno też iść w parze z ustawieniem 1 w BASICF ($3f8).
    • 5: CommentAuthornosty
    • CommentTime21 Dec 2010
     
    ilmenit - fajnie ze sie o to troszczysz :) Zwykle tworca gry nastawia sie na dyskietke lub na carta i potem cholernie trudno jest przeniesc gre na inny nosnik.

    Tak na marginesie, w tym roku Niemcy wynalezli carta, ktory stanowi olbrzymie ulatwienie w przenoszeniu gier dyskietkowych na carta. Nie mam go w reku, ale jesli dobrze zrozumialem opis, pozwala on przeniesc na cartridge prawie kazda gre, ktora korzysta ze stacji uzywajac dosa.
    Cart jest na tyle pojemny i ma takie mozliwosci, ze _bez koniecznosci zadnej zmiany programu_ powinno sie dac przeniesc na carta np HDM :)
    • 6: CommentAuthorilmenit
    • CommentTime21 Dec 2010
     
    Cóż, kolejna wersja HDM będzie, jak Kaz dokończy grafikę międzyrozdziałową... Kaz, wiem, że to czytasz :P
    • 7: CommentAuthorpin
    • CommentTime21 Dec 2010
     
    zrób to tak, bo można było na normalnych zasadach odpalić to z dos'a :)- jeśli potrzebujesz testera - zgłaszam się na ochotnika.
    • 8:
       
      CommentAuthorKaz
    • CommentTime22 Dec 2010
     
    Ilmenit - tak, czytam. Zmotywowales mnie, przez swieta znowu cos powstanie :)