1

Temat: SpartaDOS+hdd i pisanie programow

pytanie do znawcow Sparty i hdd

z jakich obszarow pamieci musi korzystac program aby nie skrzywdzic Sparty i dysku HDD ?

czy Sparta korzysta z pamieci pod ROM ?

czy mozna tak jak w przypadku zwyklego OS'a, wylaczyc ROM i wprowadzic tam swoj program ?

czy jest gdzies opisana mapa pamieci SpartyDOS ?

skad mam wiedziec jakie banki uzywa RAMDYSK SpartyDOS ?

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

2

Odp: SpartaDOS+hdd i pisanie programow

Odpowiem na to, co wiem;

* Najbezpieczniej od powiedzmy $2000 (choć i tak SDX memlo ma duużo niżej - tryb banked)

* 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.

* Pod rom można pakować cokolwiek - oczywiście Sparta X MUSI być w trybie >use banked<

* reszty nie pamiętam :mrgreen:

Kontakt: pin@usdk.pl

3

Odp: SpartaDOS+hdd i pisanie programow

z jakich obszarow pamieci musi korzystac program aby nie skrzywdzic Sparty i dysku HDD ?

Jesli chodzi o SIO2IDE to ograniczenia sa takie jak dla zwyklej stacji, nic wiecej. Natomiast sparte mozna umiescic w dowolnym banku pamieci za pomoca ssdxbnk.sys.

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

4

Odp: SpartaDOS+hdd i pisanie programow

czyli jak najbardziej przyjemny w uzytkowaniu, to sie bardzo dobrze sklada :) dzieki

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

5

Odp: SpartaDOS+hdd i pisanie programow

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. ;)

Kontakt: pin@usdk.pl

6

Odp: SpartaDOS+hdd i pisanie programow

mialbym jeszcze kilka pytan:

jakie sa ograniczenie w maksymalnej ilosci plikow w jednym katalogu ?

ile moze byc maksymalnie katalogow ?

czy nazwy plikow sa takie same jak w DOS, czyli 8.3 (8 znakow nazwa, 3 znaki rozszerzenie) ?

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

7

Odp: SpartaDOS+hdd i pisanie programow

jakie sa ograniczenie w maksymalnej ilosci plikow w jednym katalogu ?

1423 sztuki.

ile moze byc maksymalnie katalogow ?

Podkatalog jest uznawany jako plik w katalogu, wiec lacznie plikow i katalogow moze byc 1423.

czy nazwy plikow sa takie same jak w DOS, czyli 8.3 (8 znakow nazwa, 3 znaki rozszerzenie) ?

Tak.

8

Odp: SpartaDOS+hdd i pisanie programow

czyli musialbym miec zarezerwowany bufor 1423*11=15653 bajtow

to calkiem sporo, na szczescie miesci sie w rozmiarze 1 banku pamieci, da sie przezyc :)

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

9

Odp: SpartaDOS+hdd i pisanie programow

W sumie tak, ale moze ktos kompetentniejszy sie wypowie na temat zgrabnego operowania katalogami sparty.

10

Odp: SpartaDOS+hdd i pisanie programow

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!

Zawsze mam rację, tylko nikt mnie nie słucha.

11

Odp: SpartaDOS+hdd i pisanie programow

$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

Podane adresy dotyczą SDX 4.20 i starszych.
W 4.22 są one przesunięte o 2 bajty:
$908 = $FF
$90A = bank Sparty itd.
W programach najlepiej sprawdzić adres $701. Dla 4.22 będzie tam 0x42, dla 4.20 - 0x40. Z 4.21 jest większy problem.

Przy okazji:
Czy komuś się udało odpalić Basic pod Spartą z RAMem 512kB lub 1MB ? Bo mi nie  :(

12

Odp: SpartaDOS+hdd i pisanie programow

Nie używam 4.22, bo musiałbym odpalać emula. Wolę prawdziwą Atarkę, mimo że jest tam stare 4.20.  ;)

Zawsze mam rację, tylko nikt mnie nie słucha.

13

Odp: SpartaDOS+hdd i pisanie programow

Czy komuś się udało odpalić Basic pod Spartą z RAMem 512kB lub 1MB ? Bo mi nie  :(

No wlasnie mi nie i sie zastanawialem czemu. Moze chodzi wlasnie o miachanie bitami $d301... Tzn. w jakis sposob bit od Basica jest zawsze ustawiony.

14

Odp: SpartaDOS+hdd i pisanie programow

a powiedzcie jak to jest z przerwaniami VBL, DLI podczas transmisji in/out HDD, starcza dla nich czasu ?

czy moze grac msx podczas transmisji z HDD, czy IRQ i POKEY jest uzywany tak jak ma to miejsce podczas transmisji z flopa ?

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

15

Odp: SpartaDOS+hdd i pisanie programow

ZTCW to w ogole nie sa uzywane i mozna bez problemu zrobic muze z samplami nawet...

16

Odp: SpartaDOS+hdd i pisanie programow

Moze chodzi wlasnie o miachanie bitami $d301... Tzn. w jakis sposob bit od Basica jest zawsze ustawiony.

Zdaje się że tak właśnie jest. Winę ponosi chyba CAR.COM (który odpala BASICa). Programik ten zdaje się miesza w PORTB swoimi sposobami, niezależnie (przynajmniej częściowo) od pozostałej części Sparty i nie zna rozszerzenia 1MB. A gdy włączę 512kB (CompyShop) rozpoznaje chyba 320kB i pojawia się kicha.

17

Odp: SpartaDOS+hdd i pisanie programow

- $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)

Podane adresy dotyczą SDX 4.20 i starszych.
W 4.22 są one przesunięte o 2 bajty:
$908 = $FF
$90A = bank Sparty itd.
W programach najlepiej sprawdzić adres $701. Dla 4.22 będzie tam 0x42, dla 4.20 - 0x40. Z 4.21 jest większy problem.

Tablica ta opisana jest symbolem T_ i jej adres może być dowolny. Każdy poprawnie napisany program dla SDX, tj. korzystający z nazw symboli a nie adresów bezpośrednich, nie będzie miał problemów ze "znalezieniem" tej tablicy.

A gdy włączę 512kB (CompyShop) rozpoznaje chyba 320kB i pojawia się kicha.

Polecam mój programik MEMPATCH.SYS, który tak miącha zawartością tabelki T_ (o której powyżej), by było widziane całe rozszerzenie.
Kłopot w tym, że nie pamiętam, czy umieszczałem go gdzieś na sieci. Tak czy owak, ma go paru ludzi, a jakby co to podsyłam na priva.

Zawsze mam rację, tylko nikt mnie nie słucha.

18

Odp: SpartaDOS+hdd i pisanie programow

* 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.

Jesli chce uzyc 65c816, to musze zapisac tam wektory przerwan. Dodatkowo nawet jakbym nie uzywal, to omijanie tego kawalka przy ladowaniu procedur pod ROM jest bardzo uciazliwe. Wiec co sie stanie, gdy cos tam zapisze? Niech ktos mi powie, czym to grozi. Jesli jakims zwisem, to bede omijal.

19

Odp: SpartaDOS+hdd i pisanie programow

W trybie banked pod adresami $FFC0-$FFF9 nic nie ma, a w każdym razie nic ważnego. O ile pamiętam, nadpisuje je Turbo BASIC XL, i wszystko dalej działa.

KMK
? HEX$(6670358)

20

Odp: SpartaDOS+hdd i pisanie programow

z jakich obszarow pamieci musi korzystac program aby nie skrzywdzic Sparty i dysku HDD ?

Przy transferach z dysku nie można uzywać rejestrów FP ulokowanych na stronie zerowej, bo korzysta z nich sterownik IDE do obliczeń CHS.

Poza tym nie za dobrym pomysłem jest takie ustawienie DCB, żeby sektory odczytane z dysku lądowały w obszarze $D800-$DFFF, bo albo nic się nie odczyta albo dysk przestanie działać (podczas transmisji tam jest wewnętrzna pamięć sterownika, i to niezależnie od tego, czy ROM systemowy jest włączony, czy nie). Na to ostatnie - "przestanie działać" - pomaga ciepły reset.

KMK
? HEX$(6670358)

21

Odp: SpartaDOS+hdd i pisanie programow

W trybie banked pod adresami $FFC0-$FFF9 nic nie ma, a w każdym razie nic ważnego. O ile pamiętam, nadpisuje je Turbo BASIC XL, i wszystko dalej działa.

Może adresy kilku procedur Sparty nie są ważne, w każdym bądź razie pod w/w adresami takie są. Jest to ukłon w stronę programów pisanych pod wersje 3.x. Skoro TurboBasic je zamazuje, a mimo to wszystko nadal działa, to znak, że SDX przywraca je do stanu z przed wywołania TB.

Zawsze mam rację, tylko nikt mnie nie słucha.

22

Odp: SpartaDOS+hdd i pisanie programow

Możliwe, że tak jest, aczkolwiek mam wrażenie, że kiedyś próbowałem skorzystac z tych wektorów i odkryłem, że istnieją tylko w trybie za przeproszeniem osram.

Sprawdziłbym teraz, ale nie mam warunków (może jutro).

KMK
? HEX$(6670358)

23

Odp: SpartaDOS+hdd i pisanie programow

Prosty test: zerowanie strony $FF w RAM-ie pod ROM-em (tryb BANKED), zimny reset i sprawdzenie co się zmieiło w wymienionym obszarze: cała strona w zerach oprócz $FFC0-FFDC.  W tym przedziale są trzy skoki: procdury pobrania i zapisu czasu (skok do I_GETTD i I_SETTD) oraz włączenia ROM-u. Oprócz tego walają się tam sekwencje: BRK, SEC, RTS (w tej kolejności).

Przez resetem sprawdziłem, czy na pewno cała strona jest wyzerowana - była.

Wobec tego SpartaDOS X ustawia to i owo w RAM-ie pod ROM-em niezależnie od trybu pracy.

Stanęło na moim. 8)

Laoo: nie pękaj, możesz tam zapisywać co chesz, bo niewiele programów korzysta z tego obszaru. Zaryzykję nawet stwierdzenie, że żaden. Nawet jeśli, to wystarczy reset i po (ka)bólu.

Zawsze mam rację, tylko nikt mnie nie słucha.

24

Odp: SpartaDOS+hdd i pisanie programow

Test jest prosty pod warunkiem, że ci kobieta nie śpi blisko miejsca, gdzie stoi Atari, i pewnie zaczęłaby marudzić, gdybym zaczął w środku nocy to sprawdzać. Powiedzmy, że stanęło na twoim.

Jednak z drugiej strony jest to trochę zależne od trybu pracy, bo w trybie NONE Sparta z pewnością niczego pod ROM-em nie ustawia (jak jesteś przy kompie, to sprawdź).

KMK
? HEX$(6670358)

25

Odp: SpartaDOS+hdd i pisanie programow

Bez sprawdzania mogę stwierdzić, że tak jest w rzeczywistości, gdyż tryb NONE jest przeznaczony dla Atari 800, które z definicji nie posiadają pamięci RAM pod ROM-em. Poza tym, jak już wspomniałem, pod $FFC0 wpisywana jest tablica skoków dla zachowania zgodności, etc. W przypadku NONE zgodność nie jest wymagana, gdyż żadan z dyskowych wersji Sparty nie ruszy na Atari 800.

Zawsze mam rację, tylko nikt mnie nie słucha.