atarionline.pl MADS - ładowanie xex 64k+ - 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: CommentAuthorcalypso2k
      • CommentTime7 Sep 2013 22:09
       
      elo,
      załóżmy, że mam 320kb pamięci i chciałbym załadować xex o nieomal tej wielkości. W źródle robię cobie INS "dupa.raw".
      W jaki sposób mogę najprościej zapisać taki xex, że co 8kb będzie blok przełączający banki i kolejny ładujący następne 8kb i tak w kółko, aż załaduję całe dane?
      • 2: CommentAuthortebe
      • CommentTime7 Sep 2013 22:09
       
      mads daje taki mechanizm, w przykładach znajdziesz plik xms_banks.asm

      ogólnie sprowadza się to do tego że piszesz kod przełączający bank, ładujesz ten kod do pamięci, potem wywołujesz go przed każdym nowym bankiem przez INI zmien_bank, po takim INI-cie występuje blok ładujący już dane od $4000 itd.
      • 3: CommentAuthorxxl
      • CommentTime7 Sep 2013 22:09
       
      > że co 8kb będzie blok przełączający banki i kolejny ładujący następne 8kb i tak w kółko

      te banki maja po 16kb
      • 4: CommentAuthorcalypso2k
      • CommentTime8 Sep 2013 00:09
       
      hmm... skomplikowane, myślałem, że jakoś łatwiej będzie :)

      ale o to chodziło, podziękował ślicznie.
      • 5: CommentAuthorxxl
      • CommentTime8 Sep 2013 00:09 zmieniony
       
      jesli poruszasz sie w standardzie a130 (4 dodatkowe banki) to mozesz to zrobic tak:

      org portb
      .byte bank0
      org $4000
      ins "16kb0.dat"

      org portb
      .byte bank1
      org $4000
      ins "16kb1.dat"

      itd.

      niestety powyzj 128k dodatkowej pamieci mamy na atari "psi" standard ;-) i musisz sprawdzac ktore banki sa dostepne a ktore nie jak radzil Tebe.
      • 6: CommentAuthorcalypso2k
      • CommentTime8 Sep 2013 11:09 zmieniony
       
      Zadałem pytanie ogólne o samą idee i akurat podałem przykład, że mam 320kb :)
      Tak naprawdę potrzebuję napchać grafiki do VBXE w celach developerskich - wygodnie mieć wszystko na raz w RAM/VRAM i się bawić, niż doczytywać.

      Przykład bardzo fajny - dziękuję.

      edit
      PS dla potomnych: powyższe wywody nie zmuszają nas do cięcia naszych danych w bloki 16kb - pseudo rozkaz INS pozwala na użycie offset'u i długości danych pakowanych do xex, odpowiednio manipulując tymi parametrami w danym miejscu xex'a możemy umieścić to co nam akurat potrzebne.