atarionline.pl Pisanie dla rozszerzonej pamięci - 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
      • CommentTime28 Jan 2020 11:01 zmieniony
       
      Hej,

      Po uzyskaniu odpowiedzi na temat "jak wyłączyć poprawnie Basic", że najlepiej tego nie robić, bo nie ma idealnej metody ;) mam kolejne pytanie z cyklu "jak pisać, aby działało na wszystkim" :-)
      1. Gdzie wrzucić kod mojego programu (adresy od-do), aby działało z rozszerzeniami pamięci a gdzie zrobić okno do wglądu w pamięć rozszerzoną?
      2. Ponieważ rozszerzeń jest bardzo dużo i zwykle nie są kompatybilne ze sobą ->link<- czy są gdzieś dostępne statystyki sprzedaży (nie tylko dla PL)?
      3. Czy pisząc dla banków 130XE ograniczam znacząco liczbę użytkowników pamięci rozszerzonych?
      • 2: CommentAuthorpin
      • CommentTime28 Jan 2020 11:01 zmieniony
       
      Obstawiam, że 98% to Rambo i Compy, jest jeszcze, ale bonusowo Axlon w Simiusowym rozszerzeniu. Wydsje mi się, że reszta zagadnienia idealnie opisana jest tu:

      ->link<-
      • 3: CommentAuthormono
      • CommentTime28 Jan 2020 12:01
       
      Z oknem nie masz wielkiego wyboru, bo jest zawsze w $4000..$7FFF. Niezależnie do tego czy jest to rozszerzenie Axlon, czy PORTB czy VBXE z rdzeniem FX (MEMACB).
      Jeśli korzystasz z jakiegokolwiek rozwiązania opartego o cartridge (Weronika, RAMCART) to okno jest w obszarze administrowanym przez cartridge - czyli $8000..$9FFF i/lub $A000..$BFFF.
      VBXE z rdzeniem FX ma możliwość umieszczenia dodatkowego okna MEMACA o konfigurowalnym rozmiarze (4K, 8K, 16K, 32K) w dowolnym banku 4K Atari (czyli od $0000, $1000, $2000, itd.) - to okno nie zawija się dokoła 64K.
      Innych okien nie znam :)
      Więc:
      ad 1. Jeśli korzystasz z XRAM to poza $4000..$7FFF, jeśli z cartridgy to poza $8000..$BFFF). Jeśli masz swój program w obszarze banku, to musisz zagwarantować żeby w chwili kiedy go potrzebujesz mieć odpowiednio skonfigurowany bank pamięci w tym obszarze (np. ma przerwaniach - analogicznie, jak w przypadku wywołań procedur z ROM kiedy korzystasz z RAMu pod nim).
      ad 2. Nie wiem jak jest dla 400/800. Dla XL/XE chyba podstawowe są PORTB i Axlon (Dostępne w Antonii). Co do PORTB to możesz chcieć wiedzieć ile tego jest i czy masz oddzielny dostęp ANTIC-a (RAMBO nie ma, Compy Shop jest kompatybilne z 130XE i ma).
      ad 3. Masz na myśli stałe wartości w PORTB? Nie umiem powiedzieć, choć była kiedyś dyskusja z Koalą na ten temat na AtariArea ->link<- ale nie pamiętam czy doszedł do jakichś uniwersalnych wniosków. Można oczywiście przeprowadzić detekcję pamięci i użyć 4 pierwszych banków.
      • 4: CommentAuthortebe
      • CommentTime28 Jan 2020 12:01
       
      SDX
      jeśli mamy coś załadować do banku pamięci to przez dodatkowy bufor, SDX może się wykrzaczyć jeśli ustawimy PORTB i zaczniemy tam ładować bezpośrednio $4000..$7FFF

      czyli ładuj pod $8000.., ustaw PORTB, przepisz pod $4000, ustaw PORTB z powrotem, cena kompatybilności

      zależnie od konfiguracji, SDX potrafi trzymać coś w bankach dodatkowych i korzystać z nich
      • 5: CommentAuthorilmenit
      • CommentTime28 Jan 2020 12:01
       
      @Mono - dzięki za dokładne informacje. Czyli trzeba wybrać - albo $4000..$7FFF albo okno Carta i ktoś będzie niezadowolony ;) Są jakieś gry/programy/dema wymagające XRAMu i działające automatycznie i na tym i na tym?

      @Tebe - Można zakładać, że użytkownik SDX będzie wiedzieć, że tam trzyma rzeczy i jak się program wywali, to zmieni konfigurację?
      • 6: CommentAuthormono
      • CommentTime28 Jan 2020 12:01 zmieniony
       
      @tebe: Eeee? A możesz powiedzieć coś więcej na ten temat, bo nie zaobserwowałem takich rzeczy. Bankami można sobie machać do woli i żaden bufor nie był mi potrzebny (chyba że ze względów wydajnościowych podczas przepisywania danych między bankami).
      SDX poza programem ulokowanym w ROM cartridge'a określa tzw. obszar banku systemowego - zależnie od konfiguracji jest to pamięć pod ROM, lub jeden bank pamięci XRAM. I tylko w ostatnim przypadku malowanie po takim banku może zawiesić SDX. Do banku systemowego SDX ładowane są sterowniki.
      Do pozostałych banków można ładować programy (ale one same zarządzają swoimi zasobami więc tu nic się raczej nie zawiesi) lub użyć ich jako ramdysk.
      • 7: CommentAuthormono
      • CommentTime28 Jan 2020 13:01 zmieniony
       
      @ilmenit: Nie wiem nic o uniwersalnych. Chyba raczej generuje się różne wersje dla różnych konfiguracji.

      ilmenit:

      @Tebe - Można zakładać, że użytkownik SDX będzie wiedzieć, że tam trzyma rzeczy i jak się program wywali, to zmieni konfigurację?

      Myślę że można.
      • 8: CommentAuthorgorgh
      • CommentTime28 Jan 2020 13:01
       
      a nie jest tak, że bank SDX jest poza standardowymi 128 kb?
      • 9: CommentAuthormono
      • CommentTime28 Jan 2020 13:01
       
      Jeśli pamięci jest więcej niż 128K to tak. Pierwsze 4 banki są wtedy wolne. To jest ukłon w stronę użytkowników różnych BASICów XL, XE, itp.
      • 10:
         
        CommentAuthorbocianu
      • CommentTime28 Jan 2020 13:01
       
      a którego PORTB używacie? :D
      • 11: CommentAuthorpin
      • CommentTime28 Jan 2020 14:01
       
      Właściwego i poprawnego politycznie ;)
      • 12: CommentAuthortebe
      • CommentTime28 Jan 2020 15:01
       
      tutaj na temat SDX tryb banked i ładowania czegoś do banków
      ->link<-
      • 13: CommentAuthorbob_er
      • CommentTime28 Jan 2020 19:01
       
      Lao rzucił koncepcję, by zrobić wybieraczkę do PORTB. Może to jest jakiś sposób, by pogodzić XXLa i PINa :).
      Co do pytania 3go - nie słyszałem o żadnym rozszerzeniu, które by używało PORTB do przełączania banków, i jednocześnie nie miało banków 130XE. Ja w swoich produkcjach tylko takich używam i nikt mi nie marudził (przynajmniej narazie), że u niego nie chodzi.
      • 14: CommentAuthorpin
      • CommentTime28 Jan 2020 19:01
       
      @bob_er - też się nie spotkałem, ale spotkałem np. produkcję która operując na numerach banków 130XE nie sprawdzała, czy rozszerzenie istnieje. Brawo Koala ;)
      • 15: CommentAuthorbob_er
      • CommentTime28 Jan 2020 21:01
       
      Z pamięcią 130XE jest jeszcze ten bajer, że według regulaminów wybieracza do banków nie trzeba robić.
      A jak sprytnie do tematu podejdziesz, to możesz osobny dostęp Antica wykorzystać, i wtedy dwubuforowanie jednym kodem możesz mieć. Ale to nie działa na wszystkich większych rozszerzeniach pamięci.
      • 16:
         
        CommentAuthormaly_swd
      • CommentTime28 Jan 2020 21:01
       
      @bob_er: To ja zaproponowałem wybieraczkę aby pogodzić ludzików ;) A Laoo to ładnie opisał ;)

      To co chłopaki, może uznamy za "dobre praktyki" Obok wybieraczki banków, wybieraczkę $d3xx?
    1.  
      Proponuję Wybierak, i nie do $d3xx tylko do czegoś innego, czego dużo tutaj ostatnio na forumie :)
      • 18: CommentAuthorzbyti
      • CommentTime28 Jan 2020 21:01 zmieniony
       
      ->link<-
      Kiedyś ojciec mnie wkurwił to założyłem tam konto i go trolowałem pisząc w jego tematach jakieś losowe głupoty typu karasie jedzo guwno. Matka nie nadążała z gotowaniem bigosu na uspokojenie. Aha, ma już na forum rangę SUM, za najebanie 10k postów."

      @mgr_inz_rafal czy chodzi o to co jedzą karasie?
      • 19: CommentAuthorxxl
      • CommentTime28 Jan 2020 21:01
       
      • 20: CommentAuthorpin
      • CommentTime28 Jan 2020 22:01
       
      mgr. inż. Rafał - mimo wszystko wybierak brzmi sensownie, szczególnie w kontekście ;)

      To MUSI być wybierak :)))
      • 21: CommentAuthorfalcon030
      • CommentTime28 Jan 2020 22:01
       
      Kryptoreklama :-)