4,526

(123 odpowiedzi, napisanych Software, Gry - 8bit)

Oprócz wykrywania ROM Simulatora przydałaby się detekcja ROM Changera - szczegóły techniczne u Pasia...  :D

Ten program (SI) i tak się z trudem mieści w pamięci. Mogę dołożyc jeszcze niejedno, ale wtedy SI będzie działać tylko ze SpartaDOS X (MEMLO < $2000).

4,527

(123 odpowiedzi, napisanych Software, Gry - 8bit)

Ok, to dobrze. Chodziło mi o to, czy się jakieś banki nie powtarzają.

4,528

(123 odpowiedzi, napisanych Software, Gry - 8bit)

A w nieprzetaktowanym co tam jest? Nic, czyli tak jak na stronach $D6-$D7 pamięci podstawowej?

4,529

(123 odpowiedzi, napisanych Software, Gry - 8bit)

Dobrze. Błąd w Sysinfo przede wszystkim polega na tym, że test pamięci jest robiony przez testem CPU. Czyli flaga oznaczająca że mamy 65c816 jest w chwili testowania RAM-u zawsze wyzerowana. Czyli program w ogóle pomija testowanie RAM-u linearnego. Dawno nie widziałem takiego ładnego baga  8)

4,530

(123 odpowiedzi, napisanych Software, Gry - 8bit)

Rozumiem. Czyli razem 2 MB. Jeszcze jedno pytanie: jeśli masz 1 MB pamięci liniowej, to co jest potem? Tj. jakie efekty dają odczyty/zapisy w obszarze $100000-$FFFFFF?

4,531

(123 odpowiedzi, napisanych Software, Gry - 8bit)

Po sciagnieciu SI 2.07 z zapalem zabralem sie do testowanie i... u mnie zonk  :cry:

Spróbuj w opcjach włączyć "16-bit mode" i spróbuj jeszcze raz.

4,532

(123 odpowiedzi, napisanych Software, Gry - 8bit)

PS. Memory usage summary pokazuje wszystko dobrze: to są odczyty ze zmiennych systemowych, a odpowiednie zmienne są zdefiniowane tylko w tym moim niedokończonym ROM-ie.

4,533

(123 odpowiedzi, napisanych Software, Gry - 8bit)

No cóż, program do poprawki. W System summary jest napisane, że masz 1 MB pamięci w bankach. Masz tyle?

4,534

(123 odpowiedzi, napisanych Software, Gry - 8bit)

Problem kabelka - mam to na dysku na Atari, i nie mam jak przenieść do netu. Ale wersję 2.07 z całą pewnością ma Lizard ... ;-)

4,535

(75 odpowiedzi, napisanych Software, Gry - 8bit)

No tak, chyba masz rację.

4,536

(75 odpowiedzi, napisanych Software, Gry - 8bit)

CHS: fakt - właśnie sprawdziłem - to pcty miały ograniczenie do 16384 cylindrów - mój błąd - czytałem za dużo...

Jeszcze jeden drobiazg: sterownik KMK/JZ przelicza numer sektora na CHS tak, żeby - w dyskach w których geometria CHS odzwierciedla fizyczną  budowę napędu - zminimalizować ruch głowicą. Czyli gdy kończą się sektory na ścieżce, przełącza się na następną głowicę, a dopiero gdy kończą się głowice, przełącza się na następny cylinder.

Coś mi się zdaje, że LBA liczy to inaczej. Gdyby tak było, to dysku zapisanego w CHS nie dałoby się odczytać w trybie LBA i odwrotnie. Mógłbyś to sprawdzić? Ja nie mam żadnego napędu LBA.

4,537

(3 odpowiedzi, napisanych Software, Gry - 8bit)

Właśnie, jest to port znajdującej się wewnątrz Pokeya pamięci WOM (Write-Only Memory).

4,538

(75 odpowiedzi, napisanych Software, Gry - 8bit)

Zdaje się, że ograniczenie do 1423 wpisów katalogu w Sparcie wynika z tego, że katalog może mieć tylko jeden sektor na mapę. W sumie racja, że jeśli katalog ma być plikiem, to dlaczego mapa ma mieć tylko 1 sektor.

4,539

(75 odpowiedzi, napisanych Software, Gry - 8bit)

Zapomniałem o jednym: PERCOM ma oczywiście jeszcze liczbę ścieżek (bajt 0). Co prawda wtedy formatter SpartaDOS-u zgłupieje, ale dla dysków powyżej 16 MB i tak jest bezuzyteczny ...

4,540

(75 odpowiedzi, napisanych Software, Gry - 8bit)

Użycie DSTATS ($0303) na numer sektora to chyba nie najszczęśliwszy pomysł - o ile się nie mylę, powrót z SIO zamazuje wpisaną wartość kodem statusu, nieprawdaż? No a poza tym masz tylko 7 bitów, konieczność robienia ORA przy zapisie albo AND przy odczycie, i niebezpieczeństwo, że gdzieś jakiś handler robi jednak LDA $0303/CMP #$40 ...

Już chyba lepiej jest wykorzystać na ten cel DTIMLO ($306). Całe 8 bitów i święty spokój.

Co do PERCOM - rozszerzenie do 24-bitów było w miarę naturalne, bo najstarszym bajtem numeru sektora jest bajt, gdzie oryginalna dokumentacja opiewa liczbę głowic napędu, odjąć 1. Ale dalej nie ma za bardzo ruchu. Myślałem o tym, żeby zdefiniować nową komendę po prostu, która zwracałaby a) wielkość partycji w sektorach, b) wielkość sektora. Razem 6 bajtów. Jest drobny problem co ma dla takiej partycji (powyżej 8 GB) zwracać PERCOM i czy w ogóle coś.

Z wielkością katalogu to chyba lekko przesadziłeś: odszukanie pliku w takim czymś trwałoby chyba z dobę.

Co do CHS: dokumentacja ATA stanowi, że przez CHS można zaadresować 65536 cylindrów, 255 sektorów na ścieżkę i 16 głowic. 255*16*65536 = 267386880 sektorów po 512 bajtów = 130560 MB.

Sektorów na ścieżkę jest 255 bo numeracja zaczyna się od 1 (inaczej niż w LBA).

Bity nieużywane (5 i 7) w rejestrze SDH muszą mieć określoną wartość  ze względu na kompatybilność wsteczną. Dlatego master to $80 a slave to $90. We współczesnych dyskach nie ma to znaczenia, ale w starych dyskach może mieć: któreś bity miały w standardzie ATA-1 wybierać rozmiar sektora (stąd nazwa rejestru: Sector-Device-Head).

Z 64-bitowymi tablicami partycji na razie się wstrzymaj - 32 bity na razie wystarczą, potem się zobaczy.

4,541

(123 odpowiedzi, napisanych Software, Gry - 8bit)

Pewnie 2.03, bo zdaje sie, że nastepnych nie zdążyłes puścić.

No to może 2.07 by wykrył ...

4,542

(75 odpowiedzi, napisanych Software, Gry - 8bit)

To fakt. Tyle że intencje były takie, aby bez problemu podłączyć dyski które teraz (w 2004 i dalej) można nabyć. Czy za jest to mało? Jeśli będziemy na atarce odtwarzać DivX'y, to pewnie tak  :lol:  :lol:  :lol:

Zdaje się, że współczesne dyski mozna podłączać bez problemu - tyle że większość pojemności się zmarnuje.

wiem, tryb LBA używany jest jesli dysk to potrafi obsluzyc. Z reguly kazdy dysk >8GB potrafi - bo inaczej sie niezaadresuje calej jego przestrzeni :)

Przez CHS da się spokojnie zaadresować wszystkie sektory każdego dysku o pojemności do 128 GB (ściślej: do 130560 MB). Ograniczenie do 8 GB dotyczy nie dysków, tylko bieżącej wersji oprogramowania do interfejsu KMK/JZ - gdzie numer sektora początkowego partycji jest zapisany na 24 bitach. Jak mówię, rozszerzenie tego do 32 bitów nie stanowi większego problemu o ile się ma więcej miejsca w ROM-ie (procedury przeliczania numeru sektora logicznego na CHS będą nieco dłuższe).

Wielkość partycji pozostanie pewnie 8 GB - w bloku PERCOM nie ma już miejsca na większą liczbę sektorów.

4,543

(123 odpowiedzi, napisanych Software, Gry - 8bit)

No wcale bym sie nie zdziwił. Sysinfo ma procedury testowania tej pamięci, ale nigdy nie było to sprawdzane na realnym sprzęcie. A tak w ogóle, to która wersja Sysinfo?

4,544

(75 odpowiedzi, napisanych Software, Gry - 8bit)

jesli masz biosa v1.2 i niemasz sparty, a chcesz uzywac sobie dysku slave - np. do skopiowania czegos od drugiego posiadacza hdd zide kmk, to polecam programik rezydenty zawierajacy hdbios14.bin, ktory sie relokuje na memlo. Programik realizuje to samo co hdbios13.sys pod sparte. potem uzywamy slave.com (by KMK) i kopiujemy co trzeba. Wada tego rozwiazania jest to ze po resecie musimy uruchomic ponownie slave.com - bios (kazdy) po resecie niszczy tablice z ramu - zmodyfikowana przez slave.com

Właśnie udało mi się całe slave.com (a ściślej nie program, tylko to co on robi) upchnąć w ROM-ie interfejsu. Z ta wersją ROM-u podpięcie - i odpięcie - dysku slave nie będzie wymagać żadnych wygibasów, wystarczy reset (albo media change).

... ja musiałem to wszystko rozpracować samemu, gdyż kilkakrotna próba kontaktu z kmk zakonczyla sie niepowodzeniem - probowalem przez p. Jacka Żuka i poprzez Lizarda - od tego drugiego wiem, ze KMK niebyl chetnie nastawiony do wspolpracy, wiec wszystko musialem rozpracowac samemu

Przyznam, że dość długo dumałem nad tym twoim zdaniem i im dłużej o tym myślę, tym bardziej jestem pewien, że ja nie tyle byłem niechętny do współpracy, co po prostu poprosiłem Lizarda, żeby udzielił ci wszelkich informacji. Ale może pamięć mnie zawodzi. Faktem jest natomiast, że przez kilka lat - jakieś sześć ostatnich - nic już nie robiłem na ośmiobitowym Atari i nie zanosiło się, bym do tego wrócił ...

4,545

(16 odpowiedzi, napisanych Software, Gry - 8bit)

niegy niespotkałem się z plikiem "CA2001.SYS"

A to (CA2001.SYS) jest moje dzieło, przyznaję. Kiedyś, bardzo dawno temu, miałem standardową CA 2001 i bardzo cierpiałem z powodu wolnej transmisji. CA2001.SYS to jest zmodyfikowany Synchromesh.

Ps. Czy to działa też pod dyskową wersją Sparty  :?:  :?:  :?:

Sądzę, że wątpię.

4,546

(75 odpowiedzi, napisanych Software, Gry - 8bit)

Sorry, dalem "Zmien" przy wlasnym poscie, ale nie przewidzialem, ze toto "zmieni" tresc wstawiajac po prostu nowy post. Idzie o to, ze w bloku PERCOM jest oczywiscie wykazana wielkosc sektora w bajtach, a nie zadna liczba cylindrow, jak mi sie - nie wiadomo dlaczego - napisalo poprzednio.

4,547

(75 odpowiedzi, napisanych Software, Gry - 8bit)

Gdzie znajde opis obslugiwanych komend kontrolera ?

Odpowiadam solidniej na pytanie pierwsze: kiedyś była jakas dokumentacja, ale zginęła. Ale, ponieważ właśnie dokonałem znaleziska najnowszych źródeł sterownika (v. 1.4, o których byłem przekonany, ze przedpadły), mogę ci powiedzieć co następuje:

Kontroler obsługuje normalnie komendy: read/put/write sector (przy czym write = put), read status, read percom. Przy tym trzeba pamiętać, że wielkość transferu jest z góry określona, to znaczy niezależna od tego, co zapiszemy w DBYT. *NIEMNIEJ* DBYT trzeba ustawiać, bo z powodu że najnowsza wersja sprzętu przeznacza aż 3 kilo na program sterownika, być może zrobię z DBYT jakiś użytek.

Blok PERCOM wygląda tak:

0 - wartość 1 (znaczy, że twardy dysk)
1 - numer wersji zczytany z ROM-u ($14 = 1.4)
2 - starszy bajt liczby sektorów partycji
3 - młodszy bajt liczby sektorów partycji
4 - najstarszy bajt liczby sektorów partycji
5 - flagi, nie pamiętam, zapisuje to FDISK
6 - liczba bajtow na sektor, starszy bajt
7 - liczba bajtow na sektor, mlodszy bajt
8 - $FF
9 - "I"
10 - "D"
11 - "E"

Ponieważ ktoś napisał, że PERCOM SIO2IDE wygląda podobnie, więc przypuszczałbym, że ktoś się tu zainspirował moimi wynalazkami.

Rozkaz read status zwraca 4 bajty, z czego:

bajt 0, bit 3 = 1 - write protection, bit 4 = 1 - podpięte są dwa dyski
bajt 1, rejestr ERROR kontrolera (bieżąca wartość), eor #$FF
bajt 2, bez znaczenia
bajt 3, bez znaczenia

Rozkazy dodatkowe:

$E6 - SLEEP - powinien zaparkować dysk i faktycznie to robi w przypadku większości napędów.

$E7 - RESET - resetuje oba napędy, co powinno je obudzić (jeśli zrobiono przedtem SLEEP)

$EC - INDENTIFY DRIVE - zwraca informacje o napędzie (p. dokumentacja dysków ATA)

$EE - MEDIA CHANGE - odczytuje na nowo bootsektor dysku (mam na myśli master boot sektor, z tablicą partycji i wszystkim) do wewnętrznej pamięci sterownika, oraz resetuje wewnętrzne zmienne.

Jedyny parametr, jakiego te rozkazy wymagają, to numer którejkolwiek partycji w DUNIT, no i $31 w DDEVIC. Jak będzie więcej miejsca, to się może zrobi, żeby DUNIT nie trzeba było ustawiać (bo i po co).

Jak rozpoznac obecnosc kontrolera SIO2IDE, KMK ?

Dodatkowa informacja: numer wersji sterownika jest zapisany pod adresem $d804 w postaci DCB, tj. $14 = 1.4

4,548

(75 odpowiedzi, napisanych Software, Gry - 8bit)

No gratuluje, przynajmniej nie bede musial pisac nowego FDISK-a.

Co do ograniczen, to jak juz powiedzialem Duddiemu, sterownik powstawal 10 lat temu, kiedy za duzy uchodzil dysk 420 MB. Mozliwosc zaadresowania 8 GB byla wiec przyjeta z 20-krotnym naddatkiem. No ale mamy roku 2004 i teraz to jest 20x za malo.

Poniewaz i tak zamierzam zmienic format tablicy partycji - tak zeby partycji mogla byc nieograniczona liczba - wiec pewnie przy okazji zrobi sie 32-bitowa adresacje z mozliwoscia rozszerzenia w przyszlosci do 64 bitow ;-)

Gdybys planowal jakies bety tego partition wizarda, to chetnie przetestuje. No i jeszcze jedna uwaga: nie wszystkie dyski, ktore ludzie maja do Atari, obsluguja LBA. Moj np. nie obsluguje. CHS jest upierdliwy, ale bezpieczniejszy.

Co do bledu w 1.2, to chyba wlasnie tak bylo, ale glowy nie dam.

4,549

(24 odpowiedzi, napisanych Software, Gry - 8bit)

O ile mi wiadomo, to sa przerwania IRQ.

4,550

(123 odpowiedzi, napisanych Software, Gry - 8bit)

Nie wiem dlaczego, ale ja też to jakoś wolę ...  :D