1 Ostatnio edytowany przez willy (2013-09-27 21:05:52)

Przy okazji pisania softu do odzyskiwania dyskietek na pc, niemal nie wyrwałem sobie (resztek) włosów usiłując skomunikować się ze stacją Happy Warp w trybie turbo.
Po tym co udało mi się wywnioskować mogę stwierdzić że HappyWarp wcale nie jest dużo lepsza od Top Drive i podobnych. Tam przynajmniej komunikacja jest konsekwentna.

Otóż próbowałem odczytać status stacji (komenda $53) w turbo ... ni h... wkoncu w akcie desperacji podpiąłem oscyloskop ... i ... tego się nie spodziewałem.

Stacja (jak już się w końcu przełączy na szybką transmisję) odbiera rozkaz w turbo, nastepnie odpowiada (ACK 'A') w turbo, po czym po kilku ms przesyła informację o wykonaniu zadania ('C') orazd 4 bajty danych i sumę kontrolną ... ale normalnej prędkości ...

Przesłanie rozkazu $3F (Send Turbo Index) działa tak samo.

Natomiast już sam rozkaz  $52 (READ SECTOR) działa już przewidywalnie, cała transmisja przebiega w turbo.

Innych rozkazów nie przetestowałem jak na razie,  z powodu powyższego ;)

Moja stacja nie jest 100%  Happy Warp ale nie wydaje mi się że to jest źródłem tego dziwactwa.

;D

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

2 Ostatnio edytowany przez syscall (2013-09-28 23:04:20)

W Happy Warp nic nie ma prawa leciec w normalu, w granicach standardowego protokolu SIO. Byc moze specjalne komendy happy warpa (o ktorych malo wiadomo bo dokumentacji nie ma) leca w normalu, ale szczerze watpie. Chyba ze stacja zgubila predkosc turbo wtedy costam wysle w normalu az sie POKEY przestawi na normal. Generalnie trudno zgadnac. Sluze informacjami na temat 'zwyklego' US jakby co (zarowno od strony stacji jak i atari)


Edit: $3F leci w normalu, wg atariki

Pzdr

"Was powinny uzbrojone służby wyciągać z domów do punktów szczepień, a potem zamykać do pi* za rozpowszechnianie zagrożenia epidemicznego" - Epi 2021
"Powinno się pałować tylko tych co tego nie rozumieją. No i nie szmatki i nie chirurgiczne tylko min FFP3, to by miało jakiś sens. U mnie we firmie, to jak przychodzi bezmaskowiec, to stoi w deszczu przed firmą" - Pin 2021

3

a co robisz można wiedzieć?
programujesz stację w PC?

chętnie bym podejrzał kodzik ;) jest szansa?

może zrobiłbyś jakiś programik do zgrywania dyskietek Atari na stacji w PC?

4

Willy - poczytaj tu: http://www.atari.org.pl/forum/viewtopic … 19#p144219 - może to coś naświetli?

5

bezrobotny: http://www.atari.org.pl/forum/viewtopic.php?id=11511

lemiel: niewiele to pomogło ... idę popatrzeć na oscyloskop raz jeszcze.

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

6

Obserwacje live:
Stacja ni h... nie chce się przełączyć w turbo zanim nie dostanie $3f (zapytanie o HSINDEX), prawdopodobnie można to zrobić komendą konfiguracyjną HW. Po wysłaniu zapytania o HSindex, do czasu wyłączenia stacji jest już ok.
Faktyczna prędkość z którą stacja nadaje, obliczona na podstawie długości 9 bitów = 170us wynosi prawie 53kpbs (52940)
Stacja taktowana jest zegarem 4Mhz/4 = 1Mhz, czyli najbliższy dzielnik to 19 co odpowiada prędkości 52631,5 co jest faktyczną prędkością stacji (i czasowi 9 bitów 171us - tani oscyloskop więc nie można mu ufać bezgranicznie). Jest to niemal dokładnie tyle ile wynosi teoretyczna prędkość *pokeya* dla dzielnik a 10 w NTSC - 52640,4. Nie ma się co dziwić, w końcu HW pochodzi z NTSClandu.

Faktycznie zapytanie o status w turbo powoduje wysłanie odpowiedzi ack w turbo a następnie po 500us stacja odpowiada o wykonaniu komendy i przesyła dane w normalu.

Datagramy USB w tym trybie transmisji przesyłane są co 1ms, a przerwa między ACK, a wykoniem komendy 500us, więc nie zawsze da się zmienić prędkość  zanim nadejdzie ramka danych z potwierdzeniem.

Czyli zapytanie o status trzeba przesyłać w normalu żeby się wyrobić z transmisją (minus dla usb)

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

7 Ostatnio edytowany przez syscall (2013-09-30 19:46:26)

willy napisał/a:

Czyli zapytanie o status trzeba przesyłać w normalu żeby się wyrobić z transmisją (minus dla usb)

Wątpię, 6502@1Mhz wyrabia sie do 70kbit/s z transmisja wszystkeigo w turbo. Tyle tez lecialo po ioboardzie w trybie 1050-2-pc. Chyba ze nie rozumiem pytania.

ps. $3f nie przelacza stacji w turbo. a nawet nie powinno. $3f daje wartosc dla pokeya ktora umiejacy turbo loader/dos mu zaserwuje. Czyli komputer mamy przelaczony w turbo, stacja nie. Teraz dzieje sie cos takiego ze stacja dostaje komende w turbo ale nie umie jej rozpoznac (chcksum error) bo predkosci sie nie zgadzaja. Wiec stacja przelacza sie w obslugiwany tryb turbo, a komputer ponawia ramke sio (chyba z 14 razy max) Tak mniej wiecej wyglada toto.

"Was powinny uzbrojone służby wyciągać z domów do punktów szczepień, a potem zamykać do pi* za rozpowszechnianie zagrożenia epidemicznego" - Epi 2021
"Powinno się pałować tylko tych co tego nie rozumieją. No i nie szmatki i nie chirurgiczne tylko min FFP3, to by miało jakiś sens. U mnie we firmie, to jak przychodzi bezmaskowiec, to stoi w deszczu przed firmą" - Pin 2021

8

Nie twierdzę że 6502@1MHz nie wyrobi się w szybszej transmisji. Mam stację TopDrive (defakto przedstawia się jako HappyWarp  ;)) i tyle mniej więcej wyciąga. Jak opanuję HW to topdrive będzie następne w kolejności.
To jest faktyczna zmierzona prędkość z jaką HW komunikuje się z Atari. 19cykli na bit to dość sporo, napewno dało by sie to to zoptymalizować.

W tej chwili mam zaimplementowane ponawianie wysłania komendy do stacji 16 razy. Moge wysyłać komendy w turbo przez godzinę i stacja nie załapuje nic. Ale wystarczy wysłać $3F ... i magicznie stacja po bodajze 4 próbach rozpoznaje turbo i dalej już w turbo działa. Do czasu wyłączenia zasilania działa już przewidywalnie.

Pozdr
Willy.

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

9 Ostatnio edytowany przez lemiel (2013-09-30 20:26:10)

A skąd wiesz w jakiej prędkości wysłać komendę w turbo jeśli nie odczytałeś jej wcześniej ze stacji przez $3F?
Może to jest jakoś powiązane? (Może tylko w Happy Warp, a w US Doublerze lub innych nie?)
Zakładasz, że zawsze to będzie $0A?

A nie masz np. SIO2SD, żeby na nim sprawdzić?

Bo do czego konkretnie jest wykorzystywany INDUS.SYS ze SpartaDOS X w celu obsługi HW (według instrukcji)? Ten piąty bit w niektórych rozkazach o którym wspominał Acid, czy tylko $48?
USD wystarczy chyba samo SIO.SYS?

10

Logicznym sposobem postępowania jest, tak jak napisałeś, najpierw zapytanie o turbo, potem dopiero transmisja w turbo.
Ale, dlaczego stacja nie miała by odrazu po włączeniu zakładać że otrzyma coś w turbo.
Komenda $3f działa jak trigger :) który wyzwala moce zaszyte w romie.
Pozatym tematem wątku jest: Dziwactwa systemów turbo :D

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

11

willy napisał/a:

Ale, dlaczego stacja nie miała by odrazu po włączeniu zakładać że otrzyma coś w turbo.

Otrzymac se moze :) Ale dopoki komputer (atari normalnie, w twoim przypadku twoj Kafar) nie bedzie wiedzial jak ma ustawic pokeya/transmisje to niby co mialo by to dac?

"Was powinny uzbrojone służby wyciągać z domów do punktów szczepień, a potem zamykać do pi* za rozpowszechnianie zagrożenia epidemicznego" - Epi 2021
"Powinno się pałować tylko tych co tego nie rozumieją. No i nie szmatki i nie chirurgiczne tylko min FFP3, to by miało jakiś sens. U mnie we firmie, to jak przychodzi bezmaskowiec, to stoi w deszczu przed firmą" - Pin 2021

12

Ale ja wiem jak mam ustawić pokeya :D
I np chcę sobie napisać program który zczytuje tylko sektor 1 z kolejnych 20 dyskietek. I chcę to zrobić w turbo.
A stacja nie przewiduje takiej sytuacji.

Proponuje zakończyć dyskusję na ten temat, bo to wykracza już poza zdrowy rozsądek powoli :D

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

13 Ostatnio edytowany przez syscall (2013-09-30 20:44:01)

Spoko, ja tylko niose pomoc :) Stacja nie przewiduje po prostu twoich pomyslow :) No ale to ani wina stacji ani twoja :)

ps. generalnie to ja juz rzygam stacjami dysków i cieszę się że ktoś sie znowu w tym babrze :)

"Was powinny uzbrojone służby wyciągać z domów do punktów szczepień, a potem zamykać do pi* za rozpowszechnianie zagrożenia epidemicznego" - Epi 2021
"Powinno się pałować tylko tych co tego nie rozumieją. No i nie szmatki i nie chirurgiczne tylko min FFP3, to by miało jakiś sens. U mnie we firmie, to jak przychodzi bezmaskowiec, to stoi w deszczu przed firmą" - Pin 2021

14

Jak zwykle programista zawinił.

Post's attachments

software-development-cycle.png 486.44 kb, nikt jeszcze nie pobierał tego pliku. 

Tylko zalogowani mogą pobierać załączniki.
"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

15

syscall, a może udostępnij willy'emu swój soft do sprawdzenia jego HW/porównania?

W sumie, w Atariki jest napisane jak wół, że zależnie od implementacji stacja przełącza się pomiędzy prędkościami normalną i turbo zależnie od Clock Out (patrz niżej) lub metodą prób i błędów. Może masz jeszcze inną implementację albo faktycznie Twoja stacja wymaga sygnału Clock Out z komputera na wejściu jak wspomniana niżej TTD.

Z dziwact, CA z Toms Turbo Drive wymaga sygnału Clock Out z komputera (chyba tylko jego, nie wiem, czy komputer odczytuje Clock In ze stacji), więc nie działa ze standardowym 1050-2-PC i z Atarimaxowym interfejsem (tym specjalnym na USB) we współpracy z ProSys-temem (w normalu, bo on nie zna 1050 Turbo). Z AtariSIO nie pamiętam, ale jego nie udało mi się zmusić do działania w Turbo, bo był jakiś bug w Ubuntu, a później pojechałem na porodówkę i już nie dotknąłem tematu, więc zapewne też nie. CA z Tygrys Turbo chodziła w US i nie miała tbyło z nią problemówej niedogodności. CA ze zwykłym ROMem też szła normalnie.
Nie wiem jak Toms Multi i 720/710. Te widziałem tylko na zdjęciach.
Czyli zachodzi pytanie, pomijając sens ze względu na pracochłonność, czy da się dołożyć symulację Clock Out na FTDI232?

16 Ostatnio edytowany przez syscall (2013-09-30 23:05:34)

lemiel napisał/a:

syscall, a może udostępnij willy'emu swój soft do sprawdzenia jego HW/porównania?

Moj soft sie nie nadaje bo jest pisany na kolanie w celu testow 1050e, i zeby go uzywac tak jak willy ma w planach to trzeba by duzo dorobic. Ale slużę jesli jest taka potrzeba, nie narzucam się jednakowoż - jakby co email/pw willy zna :)

ps. ogolnie gdyby wszystkie stacje uzywaly clockin/clockout to nie byloby zadnych problemow z rozpoznawaniem turbo, przelaczaniem i takie tam, transmisja by szla tak jak sobie zazyczy 'komputer'. Po to jest ta linia. Niestety duza czesc stacji (wieksza czesc) nie korzysta z tego sygnalu wiec mamy taka menazerie systemow turbo :)

"Was powinny uzbrojone służby wyciągać z domów do punktów szczepień, a potem zamykać do pi* za rozpowszechnianie zagrożenia epidemicznego" - Epi 2021
"Powinno się pałować tylko tych co tego nie rozumieją. No i nie szmatki i nie chirurgiczne tylko min FFP3, to by miało jakiś sens. U mnie we firmie, to jak przychodzi bezmaskowiec, to stoi w deszczu przed firmą" - Pin 2021

17

Dzisiejsza porcja 'nowości' ;)

Stacja 1050 nie ma podłączonych linii CLKin CLKout ... więc nie może nic rozpoznawać ani przełączać się na podstawie sygnału CLK.

Na FTDI232 nie ma możliwości wyprowadzenia sygnału zegara transmisji na zewnątrz.

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

18 Ostatnio edytowany przez lemiel (2013-10-09 19:39:49)

To może o 810 chodziło. Nic to, bo i tak nie ma jak.

Dla pamięci (09.10.2013), bo wkleiłem w wątek o Happy Warp zamiast tu: http://atariage.com/forums/topic/94188- … ternative/

19

lemiel napisał/a:

W sumie, w Atariki jest napisane jak wół, że zależnie od implementacji stacja przełącza się pomiędzy prędkościami normalną i turbo zależnie od Clock Out (patrz niżej) lub metodą prób i błędów.

Tryb Ultra Speed w XFD602 jest rozpoznawany jeszcze inaczej. Przy wykorzystaniu okoliczności, że stacja może obsługiwać tylko numery 1, 2 lub 3. Oznacza to, że w trybie US najpóżniej po ~25us (przy 80kbps) lub ~30us (przy 68kbps) od startu musi pojawić się stan wysoki i jeśli takowy sie pojawi, stacja prowadzi dalszą komunikację przez procedurę szybką. Jeśli go nie ma, idzie dalej w trybie standard. Nie ma straty czasu na próby i błędy i nie potrzeba sygnału zegarowego.

Ceterum censeo Germaniam esse delendam.