z jakich obszarow pamieci musi korzystac program aby nie skrzywdzic Sparty i dysku HDD ?
[...]Natomiast sparte mozna umiescic w dowolnym banku pamieci za pomoca ssdxbnk.sys.
Dely;- wcale nie do dowolnego. Odsyłam do lektury doca (no chyba, że ci go nie podesłałem...kiedyś tam ze stuffem);- któreś tam bity są na sztywno, lecz przy dopałce 1MB i tak nie ma problemu.
Pin ma rację. Sparta musi siedzieć w banku, którego bity 2 i 3 są ustawione (=1). Do tego musi to być bank, który należy do ostatniej grupy banków (SDX dzieli banki na grupy po cztery w każdej). Jeśli pracujesz na rozszerzeniu 320kB (CompyShop) lub 256kB (Newell Industries), to polecam mojego mempatcha, który sprawia, że Sparta widzi całą pamięć i przenosi jej jego kod w odpowiednie miejsce. Program wie lepiej, gdzie umieścić bank Sparty. 8O
czyli musialbym miec zarezerwowany bufor 1423*11=15653 bajtow
to calkiem sporo, na szczescie miesci sie w rozmiarze 1 banku pamieci, da sie przezyc
Powiedzmy, bo może się okazać, że będziesz potrzebował atrybutów pliku (1 bajt), lub co gorsze, czasu modyfikacji pliku (3 bajty na godzinę i tyleż samo na datę). Powiedzmy, że czas można olać. Jednak musisz wiedzieć, czy dana nazwa dotyczy pliku czy katalogu, a wtedy może się okazać, że 16kB to za mało (choć wcale tak być nie musi).
* HDD - w przypadku KMK - nie używać nic z FP w CZASIE I/O z HDD; w czasie I/O jest tam ROM interface'u od twardzierla. SIO2IDE? Nie mam tegoż, więc niech ktoś coś tu napisze.
No i oczywiście nie starać się ładowac tam czegokolwiek w czasie transmisji (chodzi mi o dane, a nie korzystanie z procedur zmiennoprzecinkowych).
* Pod rom można pakować cokolwiek - oczywiście Sparta X MUSI być w trybie >use banked<
Z wyjątkiem adresów $FFC0-$FFF9, które są zarezerwowane przez SDX dla zachowania kompatybilności ze starszymi wersjami.
czy mozna tak jak w przypadku zwyklego OS'a, wylaczyc ROM i wprowadzic tam swoj program?
Można, tylko trzeba pamiętać, że Sparta też korzysta z ROM-u. Nie jestem pewien, czy sama go włącza, czy trzeba jej w tym pomóc. :(
czy jest gdzies opisana mapa pamieci SpartyDOS?
Zajrzyj do Syzygy (chyba #6). Były tam kiedys umieszczone źródła, całego SDX.
skad mam wiedziec jakie banki uzywa RAMDYSK SpartyDOS ? :(
Pod adresem $0902:
- $0902-$0905 - dotyczy Atari 800,
$0906 - zawiera $FF
- $0908 - bank, w którym siedzi Sparta
- $090A-$0919 - maski dla 16 grup po 4 banki (16*4*16kB=1MB - stąd ograniczenie pamięci widzianej przez SDX). Maski na ogół wygłądaja tak jak wartości przełączające banki ze skasowanymi bitami: 2 i 3. Na ogół NIE znaczy zawsze!