1

Witam,

W wątku Jaki język zamiast basica atari ? pojawiło się moje pytanie odnośnie wykorzystania banków pamięci w TBX, znalazł się w odpowiedzi link do artykułu z seriousa nr 12 XMS w Turbo BASIC XL (by Epi).

I zarzut Pacusia na moje stwierdzenie, że procedura w linkowanym artykule jest super:

Pecus napisał/a:

Programik sprawdzajacy pamiec nie jest super, bo niszczy jej zawartosc (pojedyncze bajty ale jednak). W dobie systemow operacyjnych trzymajacych kod procedur w pamieci rozszerzonej, taki sposob sprawdzania to blad.

Pytanie do wszystkich programujących: to co jest "super" ? W jaki sposób korzystając z dodatkowych banków pamięci, wykorzystywać je tak, aby "czegoś" nie naruszyć ?

I takie pomocnicze pytanie w temacie: to jak działa np. BombJack, wykorzystując 288kB pamięci, skoro "wszyscy oglądali" i nikt nie narzekał, że coś nadpisuje/blokuje/zawiesza ?

___
Press play on tape...

2 Ostatnio edytowany przez Pecus (2008-07-11 09:46:45)

No to ja na poczatek.... Najpierw warto sprawdzic, czy nie masz doczynienia ze SpartaDOS, bo jesli tak, to sam system poinformuje Cie ile jest wolnych bankow i ktore to sa banki (odsylam do dokumentacji Sparty). A jesli to nie Sparta to w zasadzie mozna i tak jak we wspomnianym tekscie, choc ja na poczatku zapamietalbym zawartosc nadpisywanych komorek, a na koncu wpisal tam zapamietane wartosci (od tylu - na wypadek, jakby malo bankow bylo ;) )

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

3

Tak ściślej, to SpartaDOS >= 4.0 (czyli SpartaDOS X). Generalnie, po wykryciu SpartaDOS X mozna zakładać, że przynajmniej część rozszerzenia jest zajęta (albo całe). Na stronie truba jest PDF, w którym jest omówione chyba szczegółowo, w jaki sposób sprawdzić pod SpartaDOS X, czy rozszerzenie istnieje, jakiego jest typu, ile jest wolnych banków i które to.

Sposób detekcji SDX to:

TBXL napisał/a:

IF PEEK($0700)=ASC("S") AND PEEK($0701)>=64
  ? "SpartaDOS X"
ENDIF

KMK
? HEX$(6670358)

4

jeszcze pytanie: czy qmeg także robi jakieś zmiany w pamięci/bankach ?

___
Press play on tape...