1

Od dawna piszę moją grę pod Basicem. Już dosyć dużo jest zriobone, ale natknałem się na problem braku pamięci pod Basicem. Starzy wyjadacze wiedzą, że pod adresem 54017 można przełącząc sie pomiędzy dodatkowymi bankami pamieci. Otóż planowałem w tych dodatkowych bankach umieścić dane z programu (broń, siła itd. ) i w miąrę potrzyby przełączyć się na odpowiedni i wykorzystać dane z niego. Ale po sprawdzeniu adresów komórek okazało się, że ta dodatkowa pamięć znajduje się w obszarze basic'a. Jeżeli teraz bez rozszerzenia znajduje się tam mój program i przełączę się na dodatkowy bank, w którym będą zmienne bez programu(bo przecież część programu znajduje się już w obszarze, który można wymieniać) to wszystko się posypie. Chciałem przenieść obszar pamieci basica powyżej adresów, które można wymieniać, ale tam znajdują się restry odpowiedzialne za dżwięk, grafikę PM i inne bzdety. Co mam zrobić???

Motorynka rulez!!!

2

czyli jak rozumiem, chcesz wlaczyc dodatkowy bank pamieci i zeby Basic wykonal w nim program :)?

wiec na pewno nie bedzie to mozliwe bez ingerencji w interpreter Basica, czyli na poziomie assemblera, czyli najlepiej nauczyc sie assemblera ;), ktory jest tak prosty jak Basic, a moze nawet prostszy :D

to po co ja umieszczam kursy assemblera ? :rolleyes:

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

3

Widzimy zatem ze w praktyce nie mozna BASICowym POKE 54017,xxx przelaczac banku w nadziei, ze wykona się potencjalny kod, ktory jest w srodku. A gdyby wykorzystac RAMDYSK? Mozna miec jakas tekstowa tablice o z gory ustalonej wielkosci i przepisywac do niej i spowrotem do pliku zawartosc (jakies INPUTy PRINTy, czy GETy, PUTy do/z kanalu z otwartym plikiem na ramdysku z danymi).  Niewatpliwa wada jest powolnosc dzialania. Innym rozwiazaniem jest napisanie procki w asmie na 6-tej stronie, ktorej USRem przekazemy adres tablicy i rozmiar, a ona (dbajac oczywiscie o VBL, zeby sie nic nie zwiesilo) bedzie ona przepisywala odpowiednie wartosci. USR moze wygladac np:

i=USR(1536, kierunekkopiowania, tablica, rozmiar, numerbanku, adres)

mysle, ze to rowiazanie moze zadzialac, a asmowa procka jest bardzo latwa. :D

To wszystko to oczywiscie teoria, bo jak pisalem w BASICu, to nie mialem dodatkowego RAMu i nie robilem zadnych takich rzeczy. Powodzenia!

4

Ach... z tym VBLem to cos mi sie pochrzanilo, :) bo o VBLa trzeba dbac tylko przy wylaczaniu ROMu. Ale faktem jest, zeby uwazac, aby BASICowa tablica nie byla w obszarze dodatkowego RAMu. Trzeba gdzies to buforowac (np na pozostalej wolnej pamieci 6-tej strony, albo... pod ROMEM :) )