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 18:12 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 20:12 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 12:12
       
      Dzięki wielkie! :) To dla mnie bardzo przydatne informacje.
      • 4: CommentAuthormono
      • CommentTime21 Dec 2010 13:12
       
      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 15:12
       
      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 16:12
       
      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 23:12
       
      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 10:12
       
      Ilmenit - tak, czytam. Zmotywowales mnie, przez swieta znowu cos powstanie :)