Autor Wątek: Naprawa FDD3000  (Przeczytany 26783 razy)

steev

  • *****
  • Wiadomości: 1366
  • Miejsce pobytu:
    inode 42
Odp: Naprawa FDD3000
« Odpowiedź #15 dnia: 2013.08.14, 09:15:05 »
Sygnał(y) dla DRIVE SELECT są wystawiane programowo (out na port 0xe0).
Czyli takie objawy będą też gdy nie działa proc, albo po resecie proc nie widzi programu w (EP)ROM.
(Plus oczywiście trywialne uszkodzenie EFGJ... ;))
Machines should work. People should think.

trojacek

  • *****
  • Wiadomości: 6846
  • Miejsce pobytu:
    Warszawa
Odp: Naprawa FDD3000
« Odpowiedź #16 dnia: 2013.08.20, 14:28:55 »
Skoro logika stacji nie wystawia sygnału DRIVE SELECT, wymusiłbym go na napędzie, by się zawsze zgłaszał i wtedy bym sprawdził, czy się wczytuje system.

steev

  • *****
  • Wiadomości: 1366
  • Miejsce pobytu:
    inode 42
Odp: Naprawa FDD3000
« Odpowiedź #17 dnia: 2013.08.20, 14:39:11 »
To trzeba by chyba też pomyśleć wtedy o wymuszeniu pozostałych sygnałów wystawianych na port 0xe0, czyli side, head i FM/MFM...
BTW, sprawdzałeś, czy przy restarcie stacji procesor w ogóle gada z kontrolerem dyskietki?
Machines should work. People should think.

robreg

  • *
  • Wiadomości: 29
  • Miejsce pobytu:
    Warszawa
  • Timex 2048 + FDD3000
Odp: Naprawa FDD3000
« Odpowiedź #18 dnia: 2013.08.20, 16:11:23 »
Skoro logika stacji nie wystawia sygnału DRIVE SELECT, wymusiłbym go na napędzie, by się zawsze zgłaszał i wtedy bym sprawdził, czy się wczytuje system.
Problem polega na tym, że jeśli nie działa poprawne pisanie do rejestru utworzonego we wnętrznościach EFGJ121, z którego wyjść dostajemy sygnały /DS0-/DS3, może także nie działać poprawnie komunikowanie się z kontrolerem WD1770 (sygnały sterujące WD1770 rodzą się we wnętrznościach układu CPLD).

To trzeba by chyba też pomyśleć wtedy o wymuszeniu pozostałych sygnałów wystawianych na port 0xe0, czyli side, head i FM/MFM...
BTW, sprawdzałeś, czy przy restarcie stacji procesor w ogóle gada z kontrolerem dyskietki?
Ciężko stwierdzić, co znaczy "gada". Nie mam analizatora stanów logicznych, by konkretnie stwierdzić, co procesor chce od WD1770.

Udało mi się ustalić, że sygnały /CS, /RD, /WR zmieniają się w czasie. Nie sprawdzalem, czy sygnał CLK do WD1770 dochodzi poprawnie. Sprawdziłem, że WD1770 nie zgłasza żadnego przerwania do CPU, z czego wnioskuję, że kontroler WD1770 nie dostaje żadnych rozumnych danych, z których mógłby poskładać jakikolwiek możliwy do wykonania rozkaz.

Mam coraz większą ochotę sklecić płytę od FDD3, wyposażoną w więcej niż orygianlnie było RAMu z nadzieją, że jedyne co w mojej płycie FDD3000 się zesrało, to nieszczęsne układy CPLD.

trojacek

  • *****
  • Wiadomości: 6846
  • Miejsce pobytu:
    Warszawa
Odp: Naprawa FDD3000
« Odpowiedź #19 dnia: 2013.08.20, 16:32:19 »
Moim zdaniem prościej jest dołożyć "łatę" zastępującą uszkodzoną logikę TTL-ami, w formie karty wtykanej w szynę systemową (trzeba wlutować złącze). Plus bypassy do WD1770 i złącza napędu. Chyba, że masz za dużo czasu i chce Ci się robić nowe płytki drukowane całej stacji :)
A te więcej pamięci to jak chcesz wykorzystać? Jest na Yarkowej stronce taka nieśmiała propozycja rozbudowy pamięci, ale w sumie żaden soft tego nie wykorzystuje. Chyba, że przeportujesz CP/M 3.0 :D

steev

  • *****
  • Wiadomości: 1366
  • Miejsce pobytu:
    inode 42
Odp: Naprawa FDD3000
« Odpowiedź #20 dnia: 2013.08.20, 16:42:32 »
Ciężko stwierdzić, co znaczy "gada". Nie mam analizatora stanów logicznych, by konkretnie stwierdzić, co procesor chce od WD1770.
Miałem raczej na myśli sprawdzenie choćby jakąś prostą sondą logiczną czy WD1770 otrzymuje jakiekolwiek sygnały i czy jakieś wysyła w kierunku napędu dyskietek...

Cytuj
Nie sprawdzalem, czy sygnał CLK do WD1770 dochodzi poprawnie.
To może sprawdź czy jakikolwiek zegar dostaje. W końcu bez niego ani rusz :)

Cytuj
Sprawdziłem, że WD1770 nie zgłasza żadnego przerwania do CPU, z czego wnioskuję, że kontroler WD1770 nie dostaje żadnych rozumnych danych, z których mógłby poskładać jakikolwiek możliwy do wykonania rozkaz.
Lub nie otrzymuje od napędu dysków potwierdzenia, że ten ustawił się na ścieżce zerowej.
To pierwsze (no ok, technicznie to drugie) polecenie jakie otrzymuje kontroler od procesora (kod 0x00, RESTORE)
Po jego wysłaniu, proc odczytuje w pętli bajt statusu WD i czeka do skutku na ustawiony bit 2...
Machines should work. People should think.

robreg

  • *
  • Wiadomości: 29
  • Miejsce pobytu:
    Warszawa
  • Timex 2048 + FDD3000
Odp: Naprawa FDD3000
« Odpowiedź #21 dnia: 2013.08.21, 12:22:38 »
juz mialem ochote napisac jakas malo rozsasna prosbe o wskazanie miejsca skad mozna pobrac wsady pala i romy stacji, kiedy jeszcze raz zasiadlem do googla i sie znalazlo ;-)

na razie studiuje sobie zdeasemblowany rom stacji (wiem, strasznie dużo tego kodu tam jest) i jednocześnie buduje sobie mapę przestrzeni adresowej stacji FDD. jak skończę te przygodę z diagnostyka trupa sukcesem, to może cos tu nasmaruje dla potomnych, a nóż widelec komuś to się jeszcze przyda.

dzięki steev za Twoje pytania - w sumie Twój wpis był motorem, bym wczoraj usiadł do tego tematu bardziej metodyczne, niż rozszalala małpa z brzytwa. na razie sukesem jest optymalizacja układu pal na bramkach nand


trojacek

  • *****
  • Wiadomości: 6846
  • Miejsce pobytu:
    Warszawa
Odp: Naprawa FDD3000
« Odpowiedź #22 dnia: 2013.08.21, 14:14:59 »
http://8bit.yarek.pl/computer/timex.fdd3000/fdd3000.html

Nie wiem co deasemblujesz, bo te 68 bajtów bootromu to pewnie każdy posiadacz stacji gdzieś tam ma. Ja mogę Ci to wysłać z domowego komputera.

Deasemblowanie TOS-u chyba w tej sytuacji nie ma wielkiego sensu ;)

robreg

  • *
  • Wiadomości: 29
  • Miejsce pobytu:
    Warszawa
  • Timex 2048 + FDD3000
Odp: Naprawa FDD3000
« Odpowiedź #23 dnia: 2013.08.21, 15:38:39 »
http://8bit.yarek.pl/computer/timex.fdd3000/fdd3000.html

Nie wiem co deasemblujesz, bo te 68 bajtów bootromu to pewnie każdy posiadacz stacji gdzieś tam ma. Ja mogę Ci to wysłać z domowego komputera.

Deasemblowanie TOS-u chyba w tej sytuacji nie ma wielkiego sensu ;)
Dzięki trojacek za linka. Nie śmiałem Was pytać o miejsca ulokowania materiałów (bo niby najłatwiej siąść i beczeć pokażcie, zróbcie, zepsułomisię, pomocy), ale widzę, że prosić Was o pomoc zanadto nie trzeba. Projekt naprawy stacji to w moim wykonaniu powoli jawi się jako nieustające pasmo wyważania dawno temu otwartych drzwi :)

Co ja tam deassemblowałem? Jako, że ROM stacji mam zaszyty w CPLDku i nie miałem jak doń zajrzeć innymi metodami, ze strony http://hardware.speccy.org/ pobrałem pliki ROM stacji w wersji TTL-owej i doprowadziłem je do stanu ASM-a. Na tej podstawie miałem nadzieję dowiedzieć się, co Z80 powinien zrobić, a czego nie robi, by stacja zaczęła działać należycie. Mając już przed sobą kod zapisany w pamięci ROM stacji, zebrałem adresy przestrzeni I/O, do których procesor się odwołuje i na podstawie schematu miałem zamiar ustalić, z czym konkretnie i w jakiej kolejności procesor próbuje się dogadać.

Jako, że opis ze strony http://8bit.yarek.pl/computer/timex.fdd3000/fdd3000.html śmignął mi przed oczami wieki temu (w czasach, kiedy już nie liczyłem na to, że jeszcze kiedykolwiek w życiu FDD3000 na oczy zobaczę), zapomniałem o tym, jak dokładny jest to opis i nie brałem strony Jarka pod uwagę siadając do rozwikłania łamigłówki tego, co stacja robi, by ruszyć z kopyta.

Chyba czas ruszyć do poskładania protezy obsługującej WD1770 na kościach TTL i potestować stację na żywo.

« Ostatnia zmiana: 2013.08.21, 16:31:33 wysłana przez robreg »

trojacek

  • *****
  • Wiadomości: 6846
  • Miejsce pobytu:
    Warszawa
Odp: Naprawa FDD3000
« Odpowiedź #24 dnia: 2013.08.21, 17:22:07 »
No to tak na wszelki wypadek załączam boot-rom oraz sektor zerowy TOS V A.2 (czyli ten ładowany przez boot-rom).

steev

  • *****
  • Wiadomości: 1366
  • Miejsce pobytu:
    inode 42
Odp: Naprawa FDD3000
« Odpowiedź #25 dnia: 2013.08.21, 22:50:44 »
Chyba czas ruszyć do poskładania protezy obsługującej WD1770 na kościach TTL i potestować stację na żywo.
W sensie - chcesz wysyłać polecenia do WD i patrzeć co się dzieje?
To mam dwie (wiem, niepotrzebne ;)) uwagi - pamiętaj o sygnałach które idą do napędu z portu konfiguracyjnego a nie z WD, i rozważ czy nie wygodniej Ci będzie zamiast rzeźbić w TTLach zastosować do tego jakieś maleństwo z mikrokontrolerem1, typu arduino czy któreś z serii stm8 discovery2.

1) tak, wiem że łatwo mówić gdy się ma pod ręką... :)
2) jestem świadomy że są jeszcze PICe. Ale z PICami się gniewamy.
Machines should work. People should think.

robreg

  • *
  • Wiadomości: 29
  • Miejsce pobytu:
    Warszawa
  • Timex 2048 + FDD3000
Odp: Naprawa FDD3000
« Odpowiedź #26 dnia: 2013.08.22, 01:26:31 »
Chyba czas ruszyć do poskładania protezy obsługującej WD1770 na kościach TTL i potestować stację na żywo.
W sensie - chcesz wysyłać polecenia do WD i patrzeć co się dzieje?
To mam dwie (wiem, niepotrzebne ;)) uwagi - pamiętaj o sygnałach które idą do napędu z portu konfiguracyjnego a nie z WD, i rozważ czy nie wygodniej Ci będzie zamiast rzeźbić w TTLach zastosować do tego jakieś maleństwo z mikrokontrolerem1, typu arduino czy któreś z serii stm8 discovery2.

1) tak, wiem że łatwo mówić gdy się ma pod ręką... :)
2) jestem świadomy że są jeszcze PICe. Ale z PICami się gniewamy.

Bardziej chciałem usiąść do fragmentu, który zastąpi mi EFGJ121FN w oryginalnej stacji i spróbować na skróty pójść, by w końcu FDD zaczęła pracować (w końcu, jeśli zakładam najgorsze, czyli śmierć tej kostki, to nie tylko pamięć ROM poszła się .... ale nawet bufory, przez które wchodzą do kontrolera stacji wszystkie sygnały wychodzące z napędów):


Muszę przyznać, że koncepcja połaskotania WD1770 czymś z zewnątrz jest o wiele bardziej ciekawa, bo na spokojnie, krok po kroku będę mógł sprawdzać, co zdechło.

AVR Dragon leży i się kurzy, ATMega88, idealne, by pogonić starego skostniałego WD1770 do roboty także. To jest myśl :)

Dzięki za kolejne właściwe pytanie :)

PS. Normalnie, jakbym wrócił na wykłady z układów cyfrowych w technikum - tak dawno się nie bawiłem uruchamianiem układów cyfrowych SSI/MSI, że wszystko trzeba mi łopatą przypominać :)
« Ostatnia zmiana: 2013.08.22, 01:35:03 wysłana przez robreg »