CA80 dual port RAM.
Monitor CA80 wykorzystuje część RAM jako przechowalnię zmiennych, na przykład RTC, bufor wyświetlacza, stan rejestrów użytkownika itp. To nie wszystko - są tam również rozkazy skoków do procedur CSTS, CI, do obsługi NMI użytkownika itd. Lista jest długa.
MikSid również wykorzystuje ten obszar. W oryginale dane były przesyłane szeregowo do komputera z CP/M (przez MIK1 lub MIK2), a w pierwszych wersjach równolegle przez dodatkowy 8255. A gdyby mieć bezpośredni dostęp do RAM? Opracowano specjalne układy scalone, które mają podwójne magistrale adresowe, danych i sterujące. Umożliwia to niezależny dostęp do pamięci z dwóch systemów w tym samym czasie. Przewidziano nawet generowanie sygnału WAIT, w sytuacji jednoczesnego odwołania do tego samego adresu.
Pierwsze próby współpracy.
Zaprojektowałem moduł, który umożliwia podłączenie drugiego komputera do CA80. Niestety jest to możliwe tylko w klonach RCbus, bo żaden oryginalny CA80 nie ma wystarczającej liczby sygnałów na złączu. Można się pokusić o konstrukcję wpinaną przez wtyk emulacyjny do U12, ale wybrałem inną drogę. Pamięci ze zdublowanymi magistralami są duże, ale mają małą pojemność. Obudowa z 48 nóżkami daje możliwość obsługi 2 kilobajtów. Dodałem więc 62256 z każdej strony, żeby nie ograniczać możliwości komputera.
Dwa komputery ze starymi terminalami.
Nowy moduł jest właściwie przedłużeniem płyty bazowej. Pamięci zajęły połowę powierzchni, więc zostało miejsce na dwa sloty pionowe i jeden poziomy, umożliwiający ewentualną rozbudowę. Nie przewidziałem wszystkich zagrożeń, więc na razie nie działa system z bootloaderem. Można go uruchomić, ale intensywne penetrowanie obszaru systemowego z zewnątrz, powoduje zakłócenia. Sygnał WAIT w module "boot" wymaga poprawki - trzeba wstawić diodę, która zabezpieczy wyjście mikrokontrolera i umożliwi wymuszenie stanu niskiego na wejściu Z80.
Nowsza wersja DUAL RAM.
Jako drugi system zastosowałem nowe moduły MCS51. Napisałem krótki program, który przepisuje bufor wyświetlacza CA80 do bufora wyświetlacza 8051. Zadziałał od razu, więc dodałem mu dodatkowe funkcje. Rozrósł się do 80 bajtów, więc zapisałem go w CAFL. Najpierw wczytałem go z karty SD do RAM CA80. Po wczytaniu muszę go przenieść do wspólnego obszaru, a potem w DSM51 z powrotem pod właściwy adres. Mogłem zaoszczędzić jedną operację przenosząc program przed zapisem w "magnetofonie", ale za późno o tym pomyślałem. Zmiana miejsca jest konieczna, bo do "dual RAM" nie doprowadziłem sygnału RDPSEN_. Kiedy projektowałem ten moduł, MCS51 nie był jeszcze w planach. Brak RDPSEN_ musiałem też poprawić w 62256. Jedno cięcie i jeden kawałek kynaru pod płytką (USER6 RCbus). Zmiany były też konieczne w CA80 - opracowałem nowy moduł CPU z RAM_CE_ wyprowadzonym na USER7 RCbus. Starszy model można dopasować kynarem.
Czasem potrzebna jest mobilizacja.
Program ma trzy stany zależne od ostatnio wciśniętego klawisza: [C] - wyświetla czas, [D] - wyświetla datę, inny klawisz (z wyjątkiem [M]) - powtarzanie wyświetlacza CA80. Oczywiście to jest tylko demo możliwości tego gadżetu. Możemy podglądać rejestry użytkownika albo nawet podmieniać obsługę klawiatury. Wszystko przed nami.




Komentarze
Prześlij komentarz