Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Re: komputer MIK CA80 - reanimacja zabytkowego komputerka

damik 28 Jan 2021 12:41 103881 409
SterControl
  • #361
    Astroo
    Level 7  
    Mam gdzieś w pudełku na strychu takie zlutowane cudeńko CA80 ,chyba z pierwszych wer.+książki.
    Z tego co wiem zasilacz padł i jest do zrobienia.
    Czy ktoś byłby tym zainteresowany .

    Dosyłam fotki.
    [img]Re: komputer MIK CA80 - reanimacja zabytkowego komputerka

    Re: komputer MIK CA80 - reanimacja zabytkowego komputerka

    Re: komputer MIK CA80 - reanimacja zabytkowego komputerka

    Re: komputer MIK CA80 - reanimacja zabytkowego komputerka

    Re: komputer MIK CA80 - reanimacja zabytkowego komputerka[/img]

    Ps.
    Było paru chętnych,komputerek poszedł do pierwszej osoby która wyraziła chęć zakupu.
    Dziękuje i Pozdrawiam.
  • SterControl
  • #362
    Astroo
    Level 7  
    Witam.
    Komputerkiem było zainteresowanych kilka osób,poszedł do pierwszej osoby która wyraziła chęć zakupu.
    Myślę że jeszcze posłuży i sprawi radość.
    Dziękuje i Pozdrawiam.:)
  • #363
    andrzejlisek
    Level 28  
    Niedawno wszedłem w posiadanie CA80 starszej generacji, wersja z 3 płytkami, składa się z MIK89 (zawiera 8255 i Z80CTC), MIK191 i MIK90.

    Udało mi się zorganizować zasilanie 5V i regulowane 12-15V (tak naprawdę zasilam za pomocą zasilacza laboratoryjnego i wykorzystuję 7805 z radiatorem). Linia -5V nie jest podłączona, jak mniemam, nie jest ona potrzebna, bo służy tylko do obsługi magnetofonu.

    Komputer jest całkowicie martwy. Na PCB nie stwierdziłem widocznych uszkodzeń i zwarć, wyświetlacz VFD wydaje się być sprawny, bo w czasie działania nic nie świeci, ale w momencie wyłączania coś świeci.

    Procesor Z80 też jest sprawny, bo przełożyłem do innego posiadanego CA80 i działa.

    Nie mam możliwości sprawdzenia, czy otrzymana pamięć ROM ma prawidłową zawartość, natomiast mam pamięć ROM z monitorem CA80, który działa w komputerze nowej generacji.

    Wyświetlacz to 9-BT-02. Jak przykładałem sondę oscyloskopu do poszczególnych linii danych, to jest napięcie 0V, między liniami żarzenia jest ok. 1,7V.

    Na pinie 6 procesora jest sygnał sinus o częstotliwości ok. 4MHz, o amplitudzie od -1,7V do 7V. Na pinie 26 i 26 jest cały czas 5V, na pinie 27 jest 0V cały czas.

    Jak przykładam sondę oscyloskopu do linii adresowych, szczególnie A0 i A1, to jest stała wartość 5V zarówno przy procesorze Z80, jak w pamięci ROM osadzonej w U9. Jak wyjmę pamięć zupełnie, to jest tak samo, bo wtedy procesor wykonuje przypadkowe rozkazy, czyli na liniach A0 i A1 nie ma żadnych zmian.

    Co może być przyczyną takiej usterki? Co i jak sprawdzić?
  • #364
    Astroo
    Level 7  
    Witam.
    Andrzeju tu znalazłem ten schemat zasilacza,chodzi o to drugie napiecie pod wyświetlacz 25V.
    Re: komputer MIK CA80 - reanimacja zabytkowego komputerka
  • #365
    slawekjurek
    Level 13  
    Orologgio wrote:
    Opracowałem klawiaturę dla CA80.
    Re: komputer MIK CA80 - reanimacja zabytkowego komputerka
    Dokładny opis tutaj:Link.

    Pomysł bardzo fajny, choć jego realizacja, to nie jest pięć minut, nawet dla fachowców.
    Na szczęście dałeś bardzo szczegółowy opis projektu, tak więc jeśli pozwolisz, w miarę posiadanego czasu pozwolę sobie twórczo sklonować Twój projekt (oczywiście wyłącznie do własnych celów niekomercyjnych).
    Jest w tym wszystkim jeden tylko szkopuł - imponderabilia. Oryginalne klawiatury "z tamtych lat" dawały jednak niezapomniane przeżycia zeń korzystania, ale cóż - z braku tamtych, Twoja wydaje się być najlepsza :)
  • SterControl
  • #366
    Orologgio
    Level 11  
    Dobry wieczór.
    andrzejlisek wrote:
    Nie mam możliwości sprawdzenia, czy otrzymana pamięć ROM ma prawidłową zawartość,

    andrzejlisek wrote:
    Procesor Z80 też jest sprawny, bo przełożyłem do innego posiadanego CA80 i działa.

    Jeżeli masz działający CA80, możesz w nim odczytać zawartość EPROMU. Zawartość w dużej części jest identyczna w obu wersjach. Sprawdź dowolną procedurę systemową. Adresy procedur są identyczne (dodaj do sprawdzanego EPROMU 4000H lub 8000H zależnie od podstawki, do której włożysz pamięć).

    andrzejlisek wrote:
    Udało mi się zorganizować zasilanie 5V i regulowane 12-15V

    Napięcie VFD powinno być zbliżone do +25V.
    Jeżeli do sprawdzanego komputera włożysz ROM z innej wersji, to i tak powinien ruszyć. Główna różnica jest w obsłudze klawiatury, więc wszystko oprócz klawiatury powinno działać.

    andrzejlisek wrote:
    Na pinie 6 procesora jest sygnał sinus o częstotliwości ok. 4MHz, o amplitudzie od -1,7V do 7V.

    Tu raczej powinien być prostokąt 0V - 5V. Prawdopodobnie masz niewłaściwą sondę (oscyloskop ostatnio używałem 30 lat temu...)

    Jeżeli już masz oscyloskop, to sprawdź sygnał NMI (Z80 pin 17). Tutaj powinno być 500 Hz. Od tego bym zaczął sprawdzanie.

    Pozdrawiam. Zegar.

    Dodano po 13 [minuty]:

    slawekjurek wrote:
    Pomysł bardzo fajny, choć jego realizacja, to nie jest pięć minut, nawet dla fachowców.

    Dziękuję za uznanie. Wystarczy zamówić płytki (zamieściłem Gerbery) i trochę poczekać... Z Chin w "normalnym" czasie przychodzą w ciągu trzech tygodni. Teraz szykuje się nowy rok, więc pewnie tydzień dłużej...
    Właśnie miałem opublikować "bonus" do tej klawiatury. Kiedyś zrobiłem "wklepywacz" kodu dla starego CA. Teraz skleiłem stary z nowym i mam gotowy.
    slawekjurek wrote:
    Jest w tym wszystkim jeden tylko szkopuł - imponderabilia.

    Musiałem sprawdzić w słowniku... Kwestia przyzwyczajenia. Koniecznie trzeba podłączyć "brzęczyk". Użytkowanie lepsze niż kontaktronowej - nie zacina się. ;-)
  • #367
    slawekjurek
    Level 13  
    andrzejlisek wrote:
    Jak przykładam sondę oscyloskopu do linii adresowych, szczególnie A0 i A1, to jest stała wartość 5V zarówno przy procesorze Z80, jak w pamięci ROM osadzonej w U9. Jak wyjmę pamięć zupełnie, to jest tak samo, bo wtedy procesor wykonuje przypadkowe rozkazy, czyli na liniach A0 i A1 nie ma żadnych zmian.

    Prawdopodobnie masz procesor, który albo nie ma taktowania, albo stoi na resecie albo nie wykonuje programu z jeszcze innej przyczyny, np. ciągły WAIT, zgłoszenie przerwania NMI lub bardziej prawdopodobne zgłoszenie zajętości magistrali, ewentualnie crash na szynach danych w wyniku choćby niepoprawnej pracy dekodera adresów, zakładam że procek nie poszedł już elektrycznie do "zilogowej bozi" i posiada prawidłowe zasilanie.
    Masz kilka możliwość aby sprawdzić co jest przyczyną:
    0. Sprawdź czy są prawidłowe przebiegi zegarowe taktujące procesor (oscyloskop będzie niezbędny).
    1. Odłącz wszystko od szyny danych, zostawiając np. jedynie EPROM i patrz co się dzieje (oscyloskopem lub analizatorem, jeśli masz).
    2. Zaprogramuj sobie EPROM z samymi zerami, wtedy będziesz mógł oscyloskopem sprawdzić wszystkie szyny adresowe i dekoder adresów.
    3. Powyższy punkt najlepiej uzupełnić prostym układem do krokowej pracy procesorów Z80 opisanym w zeszycie MIK07 pt. "Uruchamianie CA80. Sprzętowa praca krokowa.". Tam też jest wiele przydatnych informacji, które na pewno Cię zainteresują.
    4. A na koniec, postaraj się o takie ustrojstwo Analog Discovery 2. Za pomocą tego narzędzia będziesz mógł sobie pooglądać przebiegi na wielu wyprowadzeniach procesora i zapisać je do późniejszej analizy. Potrafi to zresztą o wiele więcej, więc jeśli jeszcze nie masz na wyposażeniu, polecam (jeśli przeraża Cię cena poszukaj, swego czasu była duża zniżka dla studentów).
    Re: komputer MIK CA80 - reanimacja zabytkowego komputerka
    foto: Elserw.PL
  • #368
    andrzejlisek
    Level 28  
    Tu cały opis CA80, jakby ktoś szukał:
    https://www.elektroda.pl/rtvforum/viewtopic.php?p=14422965#14422965

    Przedtem podłączyłem krokodylek od innej sondy do masy zasilania a inną sondą wykonywałem pomiar (tak jest wygodniej), to okazało się, że to było powodem że przebieg bardziej przypominał sinus niż prostokąt (tak było w obu moich CA80).

    Przy podłączeniu do masy krokodylka tej samej sondy, którą robię pomiar, na pinie 6 Z80 w obu CA80 jest taki przebieg:
    Re: komputer MIK CA80 - reanimacja zabytkowego komputerka Re: komputer MIK CA80 - reanimacja zabytkowego komputerka

    Tan bardziej odkształcony jest w trybie 1:1, a ten mniej odkształcony jest w trybie 1:10 sondy, zakres pomiaru ustawiony odpowiednio na 2V/div i 0,2V/div.

    W przypadku procesora, po kilku minutach pracy, jak położę na nim palec, to po sekundzie czy dwóch muszę go zdjąć, bo parzy.

    Dodano po 30 [minuty]:

    Przeorganizowałem zasilanie, teraz samą elektronikę zasilam za pomocą zasilacza transformatorowego 12V i 7805 Tesli, który jest na MIK188, natomiast wyświetlacz z zasilacza laboratoryjnego osobno.

    Coś tam działa. Jak włączę, to albo nic nie świeci, albo świeci jedna cyfra, napięcie powoli podkręcałem i już przy 12-13V (posiadany zasilacz ma regulację od 0 do 30V) wyświetlacz świeci dostatecznie jasno. Jeżeli w ogóle coś się świeci, to świeci jeden element z napisu CA80, świecąca cyfra jest na właściwym miejscu. Na klawisze brak reakcji, chyba jest jakiś problem z wyzwalaniem przerwania niemaskowalnego, walczę dalej, a podpowiedzi mile widziane.

    Jak wstawię inną pamięć EPROM z CA80 nowej generacji, co do której mam pewność, że jest poprawnie zapisana (sprawdzone na drugim CA80), to dzieje się to samo, za wyjątkiem tego, że klawiatura nie działa, bo nie może działać. Po chwili przerwy, jak włączę najpierw VFD, a potem 5V, to przez ok. sekundę świeci się CA80 tak, jak powinien, jednakże słabo (z powodu za niskiego napięcia na VFD), z wyraźnym migotaniem, potem albo nic się nie świeci, albo zaświeca się jedna cyfra wyraźnie mocniej. Po odczekaniu chwili podniosłem napięcie VFD do 24V i to samo, czyli zasilanie VFD nie ma nic do tego.

    Dodano po 1 [godziny] 28 [minuty]:

    Postanowiłem prześledzić generator przerwań niemaskowalnych i okazało się, że była przerwa w ścieżce łączącej pin 11 elementu U5 i pin 2 elementu U6. Po naprawieniu połączenia jest już prawie dobrze.

    Komputer działa, pokazuje CA80, reaguje na klawisze, ale okazuje się, że jeszcze jest coś nie tak. Jak się naciśnie 0, to pokazujący się zegar chodzi 2 lub 3 razy szybciej niż powinien. Na pinie 17 procesora jest już przebieg prostokątny z wypełnieniem 50%, ale ma 5 okresów na 4 milisekundy, a powinien mieć częstotliwość 500Hz, czyli 1 okres na 2 milisekundy. To by tłumaczyło nieprawidłowość działania zegara.

    Dodano po 31 [minuty]:

    Sprawdziłem połączenia układu U6. Powinno być połączenie pinów 6 i 10, okazało się, że tego połącznia nie było, ale było dorobione połączenie pinów 5 i 10. Jak zrobiłem połączenie pinów 6 i 10, to CA80 w ogóle nie działał (to znaczy działał bez sygnału NMI). Na pinie 5 był przebieg prostokątny o częstotliwości 10kHz i wypełnieniu 40%, a na pinach 6 i 10 nic nie ma.

    Dodano po 2 [godziny] 12 [minuty]:

    Uznałem, że układ 74518 funkcjonujący jako U6 jest uszkodzony, bo przy stanie niskim na pinie 1 i przebiegu na pinie 2, piny od 3 do 6 powinny generować przebiegi, a generował tylko pin 5. Zamówiłem 74518 na znanym portalu, jak dotrze, to zamienię i będę mógł wrócić do działań.
  • #369
    Michal2002
    Level 23  
    Prawdopodobnie 74518 rozwiąże problem


    Pozdrawiam Michał
  • #370
    Orologgio
    Level 11  
    Moim zdaniem, któryś z poprzednich użytkowników obniżył częstotliwość taktowania procesora, ponieważ SGS Z8400B1 to Z80 w wersji 2,5 MHz. Następnie zmodyfikował dzielnik NMI, żeby uzyskać 500Hz. Kolejny właściciel chciał wrócić do 4 MHz, ale bez skutku, bo procesor odmówił współpracy. Objawy wskazują, że "pięćsetosiemnastka" jest sprawna. Wystarczy włożyć Z80A lub Z84C00xx i uporządkować połączenia dzielnika NMI. Proponuję odłożyć oscyloskop i obejrzeć płytkę. Zwykły omomierz wystarczy.
    Pozdrawiam. Zegar.
  • #371
    Michal2002
    Level 23  
    Mi się jednak wydaje,że procesor na 2.5 MHz powinien bez problemu uruchomić się na 4 MHz
  • #372
    andrzejlisek
    Level 28  
    Istniejący procesor działa prawidłowo, tyle, że się grzeje. W miejscu układu 74518 jest wstawiony nieoznaczony układ, na którym jest pisakiem napisane 518. Na wejściu jest przebieg o częstotliwości 50000Hz, na wyjściu powinien być przebieg 500Hz, który steruje linią ~NMI, a w rzeczywistości był przebieg o częstotliwości ponad 1000Hz. Dodatkowo, ścieżka łącząca 6 z 10 była przecięta i dolutowana zwora między 5 a 10. Możliwe, że z niewiadomych powodów jest tam zastosowany zupełnie inny układ lub wadliwy 74518.

    CA80 działa poprawnie, tyle, że zegar dostępny w zleceniu 0 chodzi 2-3 razy szybciej niż powinien i właśnie U6 jest tego powodem.

    Przywróciłem prawidłowe połączenie między 6 a 10, czekam na układ 74518 i sam CA80 powinien działać prawidłowo.
  • #373
    Orologgio
    Level 11  
    andrzejlisek wrote:
    na wyjściu powinien być przebieg 500Hz, który steruje linią ~NMI, a w rzeczywistości był przebieg o częstotliwości ponad 1000Hz. Dodatkowo, ścieżka łącząca 6 z 10 była przecięta i dolutowana zwora między 5 a 10.

    To jest potwierdzenie mojej tezy. 74518 to jest licznik dziesiętny (dwie dekady). Pin 6 to wyjście 1QD, a Pin 5 to wyjście 1QC, czyli jest na nim dwa razy większa częstotliwość. Pin 10 to wejście 2CE czyli początek drugiej dekady. :-)
    http://www.elenota.pl/datasheet-pdf/59969/CEMI/MCY74518

    Edit: Trochę za szybko napisałem... W 74520 (w liczniku binarnym) byłaby to prawda. W dziesiętnym częstotliwość będzie ta sama, tylko inna szerokość jedynki. Bardziej pasowałoby gdyby był to jednak Pin 4 czyli 1QB... Tam są dwie jedynki na dekadę. Przepraszam.

    Edit2: Może rzeczywiście 518 ma uszkodzone wyjście 1QD i zmiana z Pin 6 na Pin 5 to ominięcie usterki... Na zdjęciach nie widać wartości kwarcu... Może zamiast 8 MHz był wlutowany 4MHz i zmodyfikowany licznik 7493 (U3)? Można tam przełączyć sygnał z QD (pin 11) zamiast QA (pin 12) (licznik jest połączony odwrotnie zaczyna się od B, a QD jest połączone z A) na wejście A 7490 (pin 14 U5).
    Gdyby zgodnie z moją hipotezą wcześniej był kwarc 4 MHz to CLK byłoby 2 MHz a NMI 500 Hz. Po wymianie kwarcu na 8 MHz CLK = 4 MHz a NMI 1 kHz... Oczywiście nie widzę połączeń na płytce tylko gdybam.
  • #374
    andrzejlisek
    Level 28  
    Do swojego komputerka będę chciał wstawić dwie pamięci SRAM po 16kB lub ewentualnie jedna 32kB (tak mam zrobione w drugim CA80, który już taki kupiłem). Jakie pamięci SRAM się do tego nadają? Poszukam na znanym portalu, ale chciałbym wiedzieć, co nie sprawia problemu.

    Tak, jak jakiś czas temu, jak szukałem pamięci EEPROM (kasowane i programowane tylko elektrycznie), to jeden kolega twierdzi, że lepiej zastosować EPROM (takie, które trzeba naświetlać przed każdym programowaniem), nie pamiętam już z jakiego powodu.
  • #375
    darpajdp
    Level 22  
    Orologgio wrote:
    andrzejlisek wrote:
    na wyjściu powinien być przebieg 500Hz, który steruje linią ~NMI, a w rzeczywistości był przebieg o częstotliwości ponad 1000Hz. Dodatkowo, ścieżka łącząca 6 z 10 była przecięta i dolutowana zwora między 5 a 10.

    To jest potwierdzenie mojej tezy. 74518 to jest licznik dziesiętny (dwie dekady). Pin 6 to wyjście 1QD, a Pin 5 to wyjście 1QC, czyli jest na nim dwa razy większa częstotliwość. Pin 10 to wejście 2CE czyli początek drugiej dekady. :-)
    http://www.elenota.pl/datasheet-pdf/59969/CEMI/MCY74518

    Edit: Trochę za szybko napisałem... W 74520 (w liczniku binarnym) byłaby to prawda. W dziesiętnym częstotliwość będzie ta sama, tylko inna szerokość jedynki. Bardziej pasowałoby gdyby był to jednak Pin 4 czyli 1QB... Tam są dwie jedynki na dekadę. Przepraszam.

    Edit2: Może rzeczywiście 518 ma uszkodzone wyjście 1QD i zmiana z Pin 6 na Pin 5 to ominięcie usterki... Na zdjęciach nie widać wartości kwarcu... Może zamiast 8 MHz był wlutowany 4MHz i zmodyfikowany licznik 7493 (U3)? Można tam przełączyć sygnał z QD (pin 11) zamiast QA (pin 12) (licznik jest połączony odwrotnie zaczyna się od B, a QD jest połączone z A) na wejście A 7490 (pin 14 U5).
    Gdyby zgodnie z moją hipotezą wcześniej był kwarc 4 MHz to CLK byłoby 2 MHz a NMI 500 Hz. Po wymianie kwarcu na 8 MHz CLK = 4 MHz a NMI 1 kHz... Oczywiście nie widzę połączeń na płytce tylko gdybam.

    Miałem podobny problem z zegarem CA80. Zegar czasu rzeczywistego pracował 2 razy szybciej. Jak dobrze pamiętam winny był układ U5 7490 (Kwarc 8MHz).
    Najprościej kup i wymień układy 7490 i 4518 i CA80 powinno działać. Oczywiście należy przywrócić fabryczny układ połączeń między układami.
  • #376
    andrzejlisek
    Level 28  
    Dotarł do mnie układ 74518, wstawiłem go i CA80 teraz prawidłowo, zegar nabija co sekundę tak, jak powinien.

    Teraz chciałbym wylutować lampę VFD i w to miejsce wstawić wyświetlacze 7-segmentowe po to, żeby mieć większe cyfry i nie kombinować z dwoma napięciami (otwór w obudowie ma wymiary 16x102mm, więc wyświetlacze o wysokości znaku 14,2mm powinny idealnie pasować).

    Myślę o zakupie dwóch wyświetlaczy zawierających 4 cyfry. Czy do tego celu lepiej kupić wyświetlacz ze wspólną anodą czy wspólną katodą (aby było jak najmniej przeróbek)? Czy na coś jeszcze zwrócić uwagę?

    Czy jedyna różnica między starym i nowym CA80 to jest sterowanie klawiatury? W dalszej części tuningu (lub na jego zakończenie) najprościej byłoby użyć spreparowanego kompletu CA80+CA88+C800+C930, który jest zrobiony pod nowy CA80, a zmieniłbym tylko tablicę sterowania klawiszy.

    Jak z nowego CA80 włożyłem pamięć do starego, to pokazał się CA80 i nie działały klawisze. A jak ze starego włożyłem pamięć do nowego, to wyświetlały się dziwne znaki zamiast CA80, więc musi być jeszcze jakaś różnica.
  • #377
    darpajdp
    Level 22  
    Najprościej wstawić wyświetlacz wspólna Katod, mniej scalaków w sterowaniu wyświetlacza.

    Co do różnicy ROM stare CA80 i nowe, to różnica jest jeszcze w wyborze obecności Z80 CTC i jego braku w starej wersji CA80 i związane z tym zajęcie jednego bitu portu 8255.
    Osobiście polecam wymianę układów TTL na ich odpowiedniki w CMOS HCT i portów 8255 na 82C55. Znacznie spada pobór prądu przez CA80. Dalsze oszczędności prądu może dać usunięcie zbędnych układów U13, U14, U17, U18, U19 jeśli nie będziesz używał magnetofonu i masz w CA80 Z80 CTC.
  • #378
    Roman98
    Level 11  
    Ja też zmieniłem ostatnio wyświetlacz na nowszy /od Kolegi Orologgio, działa świetnie / i jak pisze Kolega darpajdp post 377, prościej dać ze wspólną katodą. Odnośnie pamięci EEPROM - EPROM: ja od kilku lat ma EEPROM 28C256 /32kB/, przedtem programowałem ją WILLEM-em ale po "konsultacjach" z dziechu - post 31 i Orolologgio, przerobiłem trochę program od Zegar /z microgeek.eu/ z pamięci masowej FLASH /link https://microgeek.eu/viewtopic.php?f=82&t=2435/ do odblokowywania przed zapisem i blokowanie po zapisie i świetnie się spisuje. Na korzyść EEPROM vel EPROM - odpada kasowanie promieniami UV tej drugiej /trwa kilkanaście minut/ a w przypadku jakichkolwiek zmian, wkładam ją do podstawki U10 CA80 /od 4000h/ zmieniony wsad umieszczam od C000h i bajt po bajcie zapisuję do EEPROM, bardzo to wygodne. Kilka lat temu kupiłem 4. sztuki i do tej pory wszystkie są sprawne! Polecam ze względu na możliwość szybkiej modyfikację wsadu, bez konieczności kasowania poprzedniego wsadu! EEPROM zachowuje się jak RAM. Dodam jeszcze, że w 28C256 mam zapisane "dwa Monitory" CA80 - jeden oryginalny p. Gardynika, od 0-3FFFh a drugi -4000h-7FFFh- mój po własnych przeróbkach, wykorzystujący też wyświetlacz LCD 20 x 4, pamięci 24C512 /I2C/. Przełączanie adresu od 0 albo 4000h - zworką /chodzi o adres A14/. Jeśli kogoś interesuje, proszę o kontakt na PW
  • #379
    andrzejlisek
    Level 28  
    Właśnie założyłem projekt CA80 ze źródłami. https://github.com/andrzejlisek/CA80
    Póki co, wrzuciłem tak, jak jest, źródła i binarkę na Windows.

    Jak ktoś chce modyfikować lub dołączyć do projektu, to nie ma problemu.
  • #380
    slawekjurek
    Level 13  
    andrzejlisek wrote:
    Właśnie założyłem projekt CA80

    Możesz napisać kilka słów dla niezorientowanych i przydałaby się jakaś dokumentacja do tego emulatora (proszę o jakiś link lub pdf lub cokolwiek)?
    Na razie mam czarny ekran i co dalej (mimo przyciśnięcia start) ?
  • #381
    andrzejlisek
    Level 28  
    slawekjurek wrote:
    andrzejlisek wrote:
    Właśnie założyłem projekt CA80

    Możesz napisać kilka słów dla niezorientowanych i przydałaby się jakaś dokumentacja do tego emulatora (proszę o jakiś link lub pdf lub cokolwiek)?
    Na razie mam czarny ekran i co dalej (mimo przyciśnięcia start) ?

    Właśnie umieściłem opis, który utworzyłem te kilka lat temu, ale wciąż jest aktualny. Powodem czarnego ekranu były przypadkowe pliki rom w pliku konfiguracyjnym.
    Oprócz tego, zmodyfikowałem domyślną konfigurację tak, żeby emulator od razu wczytał dołączone obrazy ROM, przy czym CA80 jest zmodyfikowany tak, żeby odczytał datę i godzinę z komputera.
  • #382
    andrzejlisek
    Level 28  
    Właśnie umieściłem nową wersję emulatora:
    1. Poprawione wczytywanie plików i konfiguracji, bo były problemy w przypadku, gdy program był w katalogu z "polskimi znakami" w nazwie.
    2. Nowy format pliku konfiguracji i jest tylko jeden plik.
    3. Możliwość generowania dźwięku magnetofonu - teoretycznie można użyć do wprowadzania do rzeczywistego CA80.
    4. Przy uruchamianiu emulatora, pamięć jest inicjowana losowymi wartościami, potem są wczytywane obrazy ROM.
    5. Poprawki interfejsu spowodowane nieprawidłowościami wyświetlania w Linux, w Linux jest inna czcionka domyślna i pewne elementy nie były prawidłowo wyświetlane.

    Przy okazji, z dużym trudem udało mi się namierzyć przełączniki kontaktronowe stosowane w CA80. https://www.podzespoly-elektroniczne.pl/produ...2%C4%85cznik-kont.-TYP--M-24-112-UNITRA-DOLAM
    Nie wiem, dlaczego w niektórych nie ma klawiszy X, Y, Z, W, pomimo, że w PCB jest przygotowane miejsce pod te klawisze. Faktem jest, że na ogół nie są używane, jednakże raczej powinny być, podobnie, jak nie spotyka się klawiatur komputerowych pozbawionych klawiszy "Scroll lock", "Pause/Break" i "Menu kontekstowe", pomimo, że tych klawiszy nie używa się poza bardzo specjalistycznymi przypadkami.
  • #383
    Orologgio
    Level 11  
    andrzejlisek wrote:
    Nie wiem, dlaczego w niektórych nie ma klawiszy X, Y, Z, W, pomimo, że w PCB jest przygotowane miejsce pod te klawisze.

    Wiem dlaczego nie ma ich w moim egzemplarzu (właściwie w dwóch, bo jeden czeka na uruchomienie). Po prostu Pan Gardynik sprzedawał zestawy z minimalną liczbą klawiszy. Osobiście kupowałem w Raszynie w 1989 roku trzy komplety, dla siebie i dwóch kolegów. Jeden sam zmontowałem, drugi odzyskałem od kolegi drogą zamiany - dałem mu ZX Spectrum własnej roboty... :-)
  • #384
    andrzejlisek
    Level 28  
    Ostatnio dostałem informację o pewnej nieprawidłowości. Pod adresy poczynając od C000 wpiszemy bajty C3, 00, C0, otrzymujemy program składający się z jednego rozkazu, będący nieskończoną pętlą. Jak się uruchomi program poprzez wywołanie klawiszy kolejno GC00=, to przy wyłączonym wyzwalaniu przerwania niemaskowalnego, działa prawidłowo, czyli wyświetlacz nic nie pokazuje i komputer nie reaguje na klawisze inne niż M. Tak, jak w prawdziwym CA80, w emulatorze co 8000 cykli jest wyzwalane przerwanie niemaskowalne, dzięki któremu CA80 reaguje na naciśnięcie klawisza M.

    W opcjach emulatora jest możliwość ustawienia wyzwalania przerwania niemaskowalnego, które jest między innymi potrzebne do odgrywania melodyjek przez pozytywkę i sterowania światłami. Wyzwolenie przerwania maskowalnego w czasie pracy programu użytkownika powoduje przerwanie działania i wyświetlenie "Err CA80". Jeżeli program użytkownika będzie poprzedzony rozkazem DI (0xF3), to wtedy przerwanie maskowalne nie powoduje żadnego problemu.

    W rzeczywistym CA80, generatorem przerwania maskowalnego jest pozytywka, gdzie w przypadku braku Z80CTC częstotliwość wyzwalania ustawia się potencjometrem.

    Reasumując, chcąc uruchomić jakiś swój program w emulatorze, należy wyłączyć wyzwalanie przerwania INT, co odpowiada sytuacji, w której do CA80 nic nie jest podłączone do wejścia INTU (linia 34 portu ZU80) lub ewentualnie rozpocząć program od rozkazu DI.

    Czy w prawdziwych CA80 też jest taki problem? Inżynieria odwrotna monitora nie jest łatwa, chcąc prześledzić wywoływanie procedur przerwań jest długi łańcuch skoków i wywołań. Czy jest jakiś niuans, na który trzeba zwrócić uwagę podczas obsługi przerwań i ma to istotne znaczenie w CA80? Implementując rozkazy posiłkowałem się https://eduinf.waw.pl/inf/retro/004_z80_inst/0019.php i nie stwierdziłem nieprawidłowości w "fabrycznych" funkcjach spowodowanych niepotrzebnym wyzwalaniem tego przerwania.
  • #385
    Orologgio
    Level 11  
    andrzejlisek wrote:
    Wyzwolenie przerwania maskowalnego w czasie pracy programu użytkownika powoduje przerwanie działania i wyświetlenie "Err CA80".

    Zgłaszanie przerwań ma sens tylko w sytuacji, gdy jest odpowiedni program obsługujący to przerwanie. Monitor CA80 wykorzystuje przerwanie maskowalne do pracy krokowej i w CA88. Poza tym pod adres 0FFCFH (przerwanie użytkownika) wpisywany jest skok pod adres obsługi błędu (MIK05 str. 45). W programie użytkownika przerwania należy świadomie odblokować po ustawieniu w w/w miejscu adresu obsługi tego przerwania. Żeby emulator był całkowicie zgodny z "prawdziwym" CA80, przerwania maskowalne powinny być włączane tylko w czasie pracy z CA88.
    Z powyższego wynika że komunikat "errCA80" pojawia się zgodnie z założeniem autora. :-)

    Dodano po 7 [godziny] 45 [minuty]:

    Orologgio wrote:
    drugi odzyskałem od kolegi drogą zamiany - dałem mu ZX Spectrum własnej roboty...

    Wspomniałem o ZX Spectrum... Co prawda od trzydziestu lat go nie mam, ale można sprawdzić, czy działa zlecenie *8E.
    Sprawdziłem - działa. Przesłanie pliku (0C000H - 0C150H) trwa około 7 sekund. Z magnetofonu wczytałyby się w tym czasie bajty synchronizacji. ;-)

    Wystarczy Arduino Nano i moduł SD. CA wyświetla tylko poziomą kreskę, kiedy czeka na dane i kwadrat w czasie transmisji, więc dołożyłem LED-y sygnalizujące błąd lub prawidłowe otwarcie pliku. Oczywiście obowiązkowo nazwa "CA80.HEX" :D

    Code:

    /****************************************************************************
        PROGRAM TRANSMISJI DANYCH Z PLIKU "CA80.HEX" PRZEZ ZLECENIE *8E
            Arduino zastępuje ZX Spectrum wraz z interfejsem.
     ****************************************************************************/
    /****************************************************************************
              Biblioteki do obsługi SD (SPI I SD)
     ****************************************************************************/
    #include <SPI.h>
    #include <SD.h>

    /******************************************************
              Definicje stalych i zmiennych interfejsu
     ******************************************************/

    const int SD_CS = 10;     //MOSI-11, MISO-12, SCK-13
    File myFile;
    const int errorLED = 6;   //czerwona
    const int fileOpenLED = 7;//zielona
    const int del = 1;        //1ms
    const byte dane = 9;      //wyjscie sygnalu do CA80 PA1 ZU50 PIN2
    const byte strob = 8;     //wyjscie sygnalu do CA80 PA0 ZU50 PIN1

    Re: komputer MIK CA80 - reanimacja zabytkowego komputerka Re: komputer MIK CA80 - reanimacja zabytkowego komputerka
    Opis MIK06 strona 227. Zlecenie *8E MIK06 strona 215.
    Dobrej zabawy!

    P.S. Transmisja jest synchroniczna, jednak żeby prawidłowo się rozpoczęła należy zachować kolejność czynności:
    1. Po włożeniu SD do modułu wciskamy RESET Arduino.
    2. W CA80 wprowadzamy *8E. Mamy na to 5 sekund (na początku kodu wstawiłem delay(5000);
    3. Po zapaleniu zielonej diody na wyświetlaczu "kreska" zmieni się w "kwadrat".
    4. Po zakończeniu transmisji zgaśnie dioda, a w CA zaświeci "kreska".
    5. Teraz program powinien już być w RAM i możemy go uruchomić.

    Program przesyłany jest blokami, tak jak jest zapisany w pliku. Można dołożyć delay(200); przed wywołaniem funkcji wysyłającej sektor. Wtedy "minus" będzie na chwilę zastępował "kwadrat".
  • #386
    andrzejlisek
    Level 28  
    Właśnie na nowo podszedłem do CTC, prawie, że udało mi się opracować. Zanim wypuszczę nową wersję, to mam parę wątpliwości:
    1. Czy to prawda, że CA80 tak naprawdę wykorzystuję tylko dwa kanały CTC? Czy dobrze rozumiem, że oba kazały są pobudzane tylko przez pozytywkę w wersji "z CTC", a konkretnie przez generatory o częstotliwości regulowanej potencjometrem?
    2. Celem emulatora jest sam CA80 z pozytywką. Czy to prawda, że w takiej konfiguracji nie ma możliwości wyzwalania innych przerwań niż na kanale 0 i 1 poprzez generatory regulowane potencjometrem?

    Na obecnym etapie, implementując CTC uzyskałem następujące korzyści:
    1. W zleceniu D z CA88 (odgrywanie melodii) działa zmiana tempa klawiszami 4 i 5.
    2. W zleceniu E z CA88 (sterowanie światłami) działa zmiana tempa klawiszami 4 i 5 (oprócz klawiszy 1 i 3).
    3. Bez zmiany czegokolwiek w trakcie pracy emulatora, można zarówno uruchomić własny program bez komplikacji (wtedy CTC nie wyzwala przerwań pomimo pobudzania go sygnałem zewnętrznym), jak i dwa wyżej wymienione zlecenia.

    Czy z CTC uzyskam jeszcze jakąś funkcjonalność niedostępną bez CTC i można ją uruchomić bez innych urządzeń niż pozytywka i magnetofon? Chodzi o to, jakie jeszcze zlecenia sprawdzić aby stwierdzić, ze CTC działa prawidłowo?
  • #387
    Orologgio
    Level 11  
    andrzejlisek wrote:
    1. Czy to prawda, że CA80 tak naprawdę wykorzystuję tylko dwa kanały CTC? Czy dobrze rozumiem, że oba kazały są pobudzane tylko przez pozytywkę w wersji "z CTC", a konkretnie przez generatory o częstotliwości regulowanej potencjometrem?

    Te same kanały wykorzystuje częstościomierz - czasomierz (MIK06 str. 55). Nie znam innych przystawek, ale nie wykluczam, że ktoś mógł takie zaprojektować.
    andrzejlisek wrote:
    Czy to prawda, że w takiej konfiguracji nie ma możliwości wyzwalania innych przerwań niż na kanale 0 i 1 poprzez generatory regulowane potencjometrem?

    Nieprawda. Można korzystać z wszystkich kanałów niezależnie. Wystarczy dopiąć procedurę obsługi przerwania. MIK05 strona 55.
    :-)
  • #389
    andrzejlisek
    Level 28  
    Orologgio wrote:
    Nie znam innych przystawek, ale nie wykluczam, że ktoś mógł takie zaprojektować.

    Miałem na myśli wyłącznie oficjalne przystawki, czyli wspomniana pozytywka i częstościomierz.

    CA80 jest z założenia tak wymyślony, żeby można było zbudować i podłączyć co się chce, począwszy od migających diod po bardziej zaawansowane urządzenia. Po to jest 50 pinów, aby udostępnić jednocześnie port równoległy, szynę danych, wyzwalanie przerwań i wiele więcej.

    Jak patrzyłem do MIK11, to tam jest monitor C800. Przy nim był komentarz w rodzaju "Program C800 będzie w przyszłości rozbudowywany przez MIK". Czy coś wiadomo o tym, żeby swego czasu były jakiekolwiek aktualizacje?
  • #390
    Michal2002
    Level 23  
    Raczej niestety nie. Jednym z najciekawszych dodatków jest SuperEmulator MikSiD