forum speccy.pl

Komputery z Z80 => JUPITER ACE => Wątek zaczęty przez: Klaud w 2019.01.28, 09:32:28

Tytuł: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: Klaud w 2019.01.28, 09:32:28
Ptaszki ćwierkają, że powstaje replika interfejsu stacji dysków do Jupiter ACE’a o nazwie Deep Thought (https://www.jupiter-ace.co.uk/hardware_DeepThought.html) (bez skojarzeń proszę ;) )

https://mobile.twitter.com/JA_Archive/status/1089222855206817793

Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: Phonex w 2019.01.28, 10:25:37
Chodzi o to żeby nie kojarzyć tego z superkomputerem mającym odpowiedzieć na Wielkie Pytanie o Życie, Wszechświat i Całą Resztę? ;D
Jak po uruchomieniu napisze "42" to dam na tacę!
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: Maryjan w 2019.01.28, 11:38:03
Fajnie.
Nareszcie będzie można wczytywać i zapisywać nie tylko na magnetofonie.
Jestem za :)
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: Klaud w 2019.01.28, 12:39:44
Więcej o samym formacie obrazów DTI jest tu:

https://github.com/simonowen/deepthought/blob/master/dti.txt
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: pear w 2019.01.28, 13:41:15
Hardcorowe wykorzystanie UART do zapisu sektorów na dyskietce :)
Okazuje się, że MC6850 to bardzo uniwersalny układ od RS-232 przez MIDI do kontrolera zapisu na FDD.
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: Klaud w 2019.01.28, 16:04:13
Ciekawe czy tandem Z80 DART i PIO zamiast 6850 i 6821 tez dalby rade ;).
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: trojacek w 2019.01.28, 19:22:00
Z80 DART powinien dać radę. Kluczowa jest maksymalna prędkość - 6850 potrafi pracować do 1 Mbit/s, a Z80 DART (4 MHz) do 800 kbit/s. Jest to więcej, niż typowa transmisja MFM (250 kbit/s), co pozwala uzyskać w miarę przyzwoitą pojemność nośnika.
Będzie to trochę wyglądało jak obsługa flopa w Amidze, trzeba samemu zadbać o generowanie i sprawdzanie sum kontrolnych, znaczników stron/ścieżek/sektorów, przerw synchronizacyjnych itp. Niezły challenge :)
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: Klaud w 2019.01.28, 21:30:05
W sumie nie trzeba wynajdować koła na nowo, ponieważ ROM do tego interfejsu jest dostępny: http://www.jupiter-ace.co.uk/acedos-dt_rom.html

Dla zmyślnego programisty przejście z Motorolek na Ziloga raczej nie będzie zbyt kłopotliwe. ;)
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: Klaud w 2020.05.02, 08:05:09
Tak sobie czekam i czekam.  Projekt raczej umarł, więc po swojemu przymierzam się do tego interfejsu.
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: damik w 2020.05.02, 11:28:19
Trzymam kciuki, bo to bardzo ciekawy projekt i wart ukończenia.
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: Klaud w 2020.05.02, 11:30:32
Tylko schemat parchaty i nie do końca spójny z protoplastą do Juniora.

Zostało mi kilka ścieżek do rozrysowania, a wymiarowo płytka pasuje do obudowy Z19 firmy Kradex.
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: Maryjan w 2020.05.02, 13:24:29
Mam nadzieję, ze dojdzie do szczęśliwego finału i uruchomienia :)
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: Klaud w 2020.06.21, 10:23:19
Chyba porwałem się z motyką na słońce, ponieważ dobra znajomość Z80 ASM oraz kontrolerów stacji dysków byłaby wskazana, ale hobbyście wolno. Na razie odpaliłem generator 4MHz, wszystkie dzielniki częstotliwości (do 125kHz), dekoder adresów dodatkowego ROMu, zmusiłem stację 3.5" od PCta, aby kręciła się 360rpm, a index pokazuje się co 166ms. Jupiter ACE DOS ROM poddał się pod długiej walce i jego komendy wyświetlane są po wywołaniu VLIST.
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: Maryjan w 2020.06.21, 12:36:03
To znaczy się, że coś z tego będzie :)
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: tooloud w 2020.06.21, 23:43:37
znaczy otwierać szampana?
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: Klaud w 2020.06.21, 23:58:24
Żarty się Ciebie trzymają, szampana zachowaj na lepsze czasy ;)

Przede mną długa droga, bo schemat do interfejsu z 1986 r. wygląda tak:

(https://www.jupiter-ace.co.uk/graphics/hardware/DeepThought/DeepThought_schematic.jpg)

Z tego co wiem, zachował się tylko jeden (chyba) działający egzemplarz tego interfejsu, do tego zbudowany na płytce prototypowej:

(https://www.jupiter-ace.co.uk/graphics/hardware/DeepThought/Deep-Thought-Board.jpg)
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: tooloud w 2020.06.22, 00:44:31
ojtam ojtam.

po prostu wierzę, że dasz radę.
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: damik w 2020.06.22, 00:57:50
Myślę sobie, że cała zabawa będzie polegała na poprawnym dostrojeniu uniwibratorów 74LS123 przy pomocy potencjometrów. :)
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: Klaud w 2020.06.22, 08:06:03
Procedura uruchomienia jest uniwibratorów jest stosunkowo prosta (w założeniach):
- zewrzeć RDA z WRA,
- na wyjściu prawego multiwibratora wyregulować, aby pojawił się sygnał o długości trwania 5.5us,
- na wyjściu drugiego elementu multiwibratora doregulować, aby sygnały miały czas trwania ok 1us.

Tyle mówi teoria, ale na razie do tego etapu nie dotarłem.

Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: damik w 2020.06.22, 08:47:52
To strojenie się robi podczas normalnej procedury zapisu, czy może jest do tego jakiś specjalny programik kalibracyjny ?
Przy podłączonym napędzie czy bez ?
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: Klaud w 2020.06.22, 10:12:15
Interfejs korzysta z transmisji szeregowej o prędkości 125kbps, do tego zapis na dysku realizowany jest w sposób podobny do modulacji FM. Na jednej ścieżce znajdują się 1 sektor, który składa się z 8 bloków po 256 bajtów, czyli 2048 bajtów, z 40 ścieżek dostępnych dla użytkownika jest 35, stąd pojemność jednej strony dyskietki 70KB. Istotną rolę w zapisie odgrywa 'index;, ponieważ informuje on kontroler o jednym pełnym obrocie nośnika.

Kalibrację wykonuje się bez podłączonego napędu, ale po inicjalizacji ACIA i PIA. Ich procedury startowe zaszyte są w dodatkowym ROMie, który usadowiony jest od 0xF000 do 0xFFFF przestrzeni adresowej Z80.
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: damik w 2020.06.22, 10:26:59
Tak, wszystko to jest dla mnie jasne, ale pytałem czysto praktycznie jak to zorganizować.

Według mnie można chyba to zrobić przy włączonym napędzie aby dostać z niego naturalny sygnał INDEX z obracającej się dyskietki następnie wydając polecenie do zapisu danych stroić przy pomocy oscyloskopu uniwibratory przy odpiętym od napędu sygnale RDA i zwartym z WRA kontrolera.
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: Klaud w 2020.06.22, 10:31:26
Według opisu procedury uruchomienia protoplasty tego interfejsu, napęd powinien być odłączony od kontrolera.
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: damik w 2020.06.22, 10:38:43
No tak, autor wspomina o małym programie o którym będzie mowa później, ale czy jest on dostępny w listingu lub zaszyty w ROM'ie i wiadomo jak go wywołać ?
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: Klaud w 2020.06.22, 10:48:11
ROM ma zaszytą procedurę startową ACIA i PIA i wykonywana jest ona przy starcie systemu, a wywołać zawsze ją można. Niestety nie jest różowo, ponieważ listing DT ROMu na stronie Jupiter ACE Archive jest niekompletny oraz zawiera błędy. Zdeasemlowałem całą dostępną binarkę ROMu i mam nadal wątpliwości, co do kilku spraw w niej. Aby odpalić DT ROM, zajeło mi to sporo czasu, bo "rzygał" śmieciami po ekranie: vlist_01 (https://www.dropbox.com/s/z661ere3sq4qd2x/J_ACE_DT_JAA_JAA_.mov?dl=0)

W końcu zaczął odzywać się poprawnie: vlist_02 (https://www.dropbox.com/s/y75opjtyagelyrk/J_ACE_DT_MOD_JAA_.mov?dl=0)

Nadal uważam, że są w nim błędy, które mogą wpływać na poprawność komend DT DOS.

Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: damik w 2020.06.22, 11:10:17
Nie do końca to rozumiem, jest w ROM'ie procedura inicjująca układy ACIA i PIA czyli wpisująca odpowiednie wartości do ich rejestrów po starcie systemu by kontroler przygotował napęd do pracy, ale czy to jest tożsame z jednoczesnym generowaniem przebiegu testowego na WRA w sposób ciągły lub chwilowy umożliwiający strojenie układu ? (nie jestem pewien i nie trzyma mi się to kupy)
Według mnie powinna chyba być jeszcze jakaś inna procedura to tego własnie zadania  ??? no chyba że ACIA cały czas generuje ten sygnał na wyjściu po inicjacji i to niczemu nie przeszkadza w normalnej pracy układu.
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: Klaud w 2020.06.22, 12:41:42
Moim zdaniem kluczowy do działania jest 74LS151, który taktowany jest zegarem 1MHz (wejście sterujące /E), dane do zapisu wchodzą na jego wejście D4, wejście D0 jest w stanie wysokim cały czas, a pozostałe wejścia są w stanie niskim. Linie S0 do S2 są podpięte do dzielnika częstotliwości (/2, /4 i /8). Zapis na dyskietce realizowany jest w sposób podobny do modulacji FM, czyli przy zapisie logicznego zera, miedzy dwoma taktami zegara pojawia się jeden impuls, a w przypadku zapisu logicznej jedynki, jego nie ma. Takty zegarowe generowane są bez względu na to czy ACIA wysyła dane czy nie, o ile 'LS151 dostaje wszystkie impulsy na wejścia sterujące (/E, S0, S1 i S2). Jeśli teraz zewrze się wyjście WRA z wejściem RDA, to na separatorze danych pojawią się impulsy zegarowe i one wystarczą do zestrojenia układu. Przy strojeniu ważne jest aby ACIA nie siała danymi, bo będzie ciężko rozpoznać kiedy są sygnały modulacji FM, a kiedy logiczne 0. Czyli do zestrojenia nawet nie trzeba podpinać kontrolera do Jupitera, można wyjąć ACIA z podstawki i na negator sterujący D4 'LS151 podać +5V.

Chyba nie wypisuję totalnych bzdur ;)
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: damik w 2020.06.22, 14:02:47
Ok, dzięki teraz to załapałem. :D
Nie łatwo to wywnioskować ze skanu w tej jakości jaki tu widziałem.  ???
Generalnie leci tam coś tak czy siak (układ LS151 pełni rolę modulatora), ale procedura inicjacyjna czy inicjalizacyjna (jak kto woli) zatrzymuje tylko układ 6850 i ustawia mu wstępnie rejestry by nie siał przypadkowymi danymi.
Natomiast układ PIA jest ustawiany tak by nie "męczyć" napędu.
Tytuł: Odp: Jupiter ACE - Interfejs dyskowy DeepThought
Wiadomość wysłana przez: Klaud w 2020.06.22, 14:21:02
Tylko taki skan jest dostępny ;). Prawie 2 lata się z nim obwąchiwałem, bazgrałem po nim z 10 razy, wyrzucałem do kubła, odkładałem do skoroszytu, wracałem. Zresztą na fotce widać moje bazgroły. Swoją drogą pisałem, że porwałem się z motyką na słońce.

PIA steruje stacją tzn. wysyła DS0 lub DS1, Motor On/Off, Step In/Out, czyta Index, WR_Protect itp.