Autor Wątek: Sprzętowy redir Portów I/O  (Przeczytany 2085 razy)

pawelb

  • ***
  • Wiadomości: 170
  • Miejsce pobytu:
    Wawa
Sprzętowy redir Portów I/O
« dnia: 2023.04.30, 15:54:02 »
Cześć,
Czy  da się zrobić redir portów i/o za pomocą elektroniki wpinanej do złącza rozszerzeń?
Pomysł powstał po tym jak zdałem sobie sprawę  że TIMMY ma AY na portach od TS2068.
Obecnie aby to osiągnąć wymagane jest grzebanie na płycie głównej:
- przecięcie / izolacja syngału  BC1 i BDIR który pochodzi z TS20268 i zrobienie dekodera adresu na 74HCT138 oraz 74LS00
Jeżeli jest alternatywa w postaci w/w opisanego pomysłu to wolałbym włożyć redirecta sprzętowego.

Pozdrawiam.

KWF

  • *****
  • Wiadomości: 6772
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: Sprzętowy redir Portów I/O
« Odpowiedź #1 dnia: 2023.04.30, 16:54:37 »
Nie do końca rozumiem, co chcesz osiągnąć. Linie sterujące wewnętrznym AY nie są dostępne na złączu krawędziowymi, wiec w jaki sposób chciałbyś przejąć sterowanie nimi.

Podłącz zewnetrznego AY z własnym dekoderem adresów i po kłopocie..
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

pawelb

  • ***
  • Wiadomości: 170
  • Miejsce pobytu:
    Wawa
Odp: Sprzętowy redir Portów I/O
« Odpowiedź #2 dnia: 2023.05.01, 01:08:15 »
Normalnie Dema grają na porcie DATA 0xfffd , Register 0xbffd 
Pomyślałem by zrobić re-dekoder adresów i w momencie adresacji na j/w przekierować sygnał na adres CPLD.
Czyli:

ZX128  DATA: 10.. .... .... ..0.  REG: 11.. .... .... ..0.
TS2068 DATA: .... .... 1111 0110  REG: .... .... 1111 0101

Z tego wychodzi że układ elektroniczny musi być aktywny gdy jest sygnał IORQ  i ustawiał A4-A7:H  oraz  dla A0-A3
w zależności od adresu ZX128 DATA: A15:H,A14:L,A1:l => A0:L,A1:H,A2:H,A3:L   ,REG A15:H,A14:H,A1:0 =>  A0:H,A1:L,A2:H,A3:L
Pytanie to:  Czy to wykonalne  czy dać sobie z tym spokój i uzyć np. KAY.




KWF

  • *****
  • Wiadomości: 6772
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: Sprzętowy redir Portów I/O
« Odpowiedź #3 dnia: 2023.05.01, 06:35:51 »
Mi chodziło, jak praktycznie chciałbyś sterować wewnętrznym PSG, skoro nie masz dostępu do jego linii sterujących. Zewnętrznie możesz zrobić dowolny dekoder adresów i sterować zewnętrznym PSG, tak jak zechcesz, pod warunkiem, że drugi PSG nie będzie kolidował z tym wewnętrznym np. przy odczycie z jego portów.
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

trojacek

  • *****
  • Wiadomości: 6793
  • Miejsce pobytu:
    Warszawa
Odp: Sprzętowy redir Portów I/O
« Odpowiedź #4 dnia: 2023.05.01, 11:44:31 »
Cześć,
Czy  da się zrobić redir portów i/o za pomocą elektroniki wpinanej do złącza rozszerzeń?

Czysto teoretycznie rozważając:
1. Wpinany interfejs musi mieć swój CPU.
2. Najprościej, jeśli interfejs na stałe zawłaszcza szynę procesora przez mechanizm /BUSREQ + /BUSACK. Zamiast na stałe, mogłoby też być po wykryciu określonych operacji I/O, ale to dodatkowo podniosłoby poziom komplikacji.
3. Interfejs musi zawierać logikę, która w momencie wykrycia dostępu do portów AY/128 (czyli aktywności /IORQ z liniami adresowymi #nFFD), odcina od CPU linie adresowe i  wymusza na liniach adresowych interfejsu określoną kombinację (AY/TMX).
4. Nie rób tego, bo to nie ma sensu.
5. Nie ma za co.

Innymi słowy:
Nie, nie ma sensu tego robić.

EDIT:
Wpadłem jeszcze na pomysł, że można to zrobić bez dodatkowego CPU, ale metodą sprzętowo-programową: w momencie wykrycia dostępu do któregoś portu AY/128 generujemy przerwanie niemaskowalne (NMI) i podkładamy inny ROM, którego oprogramowanie ustali wartości do wysłania na porty AY/TMX na podstawie wcześniej wykonanego kodu. No ale tu może być dużo dłubania w kodzie, bo jest możliwości wysyłania danych do portów jest co najmniej kilka. Najfajniej byłoby mieć zatrzaśnięty stan D0..D7, który był wysyłany do portu w momencie wygenerowania NMI.
« Ostatnia zmiana: 2023.05.01, 14:52:05 wysłana przez trojacek »

pawelb

  • ***
  • Wiadomości: 170
  • Miejsce pobytu:
    Wawa
Odp: Sprzętowy redir Portów I/O
« Odpowiedź #5 dnia: 2023.05.02, 12:07:23 »
Dziękuję czyli wracam do Cięcia ścieżek  na PCB i robienie dekodera adresu.
Taka refleksja - początkujący elektronik nie ma doświadczenia i wymyśla sposób który może zadziała.
Czasami ma farta i rzeczywiście coś zadziała mimo że eksperci mówią że nie zadziała.  W tym przypadku z pokorą przyjmuję
informację że 'nie da się' .  :)

trojacek

  • *****
  • Wiadomości: 6793
  • Miejsce pobytu:
    Warszawa
Odp: Sprzętowy redir Portów I/O
« Odpowiedź #6 dnia: 2023.05.02, 12:26:53 »
Gdybym mógł Ci coś doradzić, to nie tnij ścieżek, tylko tnij nóżki 74LS32 albo ewentualnie 74LS244. Scalaki są łatwe do zdobycia i tanie.
Ja bym przeciął pin 6 w LS32 i do obu kikutów doprowadził wyłącznik. Albo wylutował, dał podstawkę, wyprostował pin 6 i wsadził drut w pin 6 podstawki.
Jeszcze lepiej byłoby zaimplementować brakującą (a obecną w modelach ZX 48K) linię /IORQGE, ale podejrzewam, że nie rozwiązałoby to problemu z 2x Kempston, bo interfejsy zwykle nie zakładają, że należy używać tej linii do wyłączenia wewnętrznego Kempstona.

pawelb

  • ***
  • Wiadomości: 170
  • Miejsce pobytu:
    Wawa
Odp: Sprzętowy redir Portów I/O
« Odpowiedź #7 dnia: 2023.05.07, 20:29:38 »
YYY... ale piszesz o Timmy ?
Może napiszę założenie.
Jako user Timmy chcę by AY-8190 grał na portach ZX128.
Aby tego dokonać eksperymentalnie sprawdziłem że trzeba odizolować od TS2068 sygnały BC1 i  BDIR
i podłączyć do wyjśćie dekodera adresów składającego się z 74HCT139 i 74LS00 oraz do wejścia linie adresowe A1,A14,A15 i sygnały sterujące WR, RD, IOREQ . Na schemacie TIMMY nie widzę by podane przez ciebie układy uczestniczyły w obsłudze PSG.
Moje własne założenie projektowe to :
-  zrobić PCB które izoluje w/w BC1 i BDIR co daje możliwość bez cięcia ścieżek dołączenie dekodera adresu na liniach A1,A14,A15.
- PBC powinno być na tyle nie wysokie by móc zmieścić podstawkę DIP40 i DIP40 goldpin .
- Na PCB dobrze by było mieć 139 i 00 w wersji SMD co pozwoli na ukrycie ich pod PSG.
- Jeżeli  w/w założenia nie mogą zostać spełnione z powodu wysokości tej "kanapki"  to trzeba odgiąć poziono na PSG nóżki sygnałów  BC1 i BDIR i na odzielnej płytce osadzić 139 i 00 oraz podłączyć wspomniane sygnały.
Im mniej miesjca zajmuje PCB tym lepiej. 
Pozostaje kwestia automatycznego przełączenia synagłów BC1 i BDIR by nie stracić zgodności TC2068 ( np. jakieś programy na Polbrita ).
wychodzi na to że musiałbym za pomocą następnego dekodera adresów linii A0 do A3 wyłączać ten z liniami A1,A14-15 gdyby wystąpił stan wysoki. Trochę się gubię z tymi bramkami. "Prostota celem do sukcesu" - może pozostać przy portach A1,A14-15 i tak większość programów maca port PSG ZX128.

KWF

  • *****
  • Wiadomości: 6772
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: Sprzętowy redir Portów I/O
« Odpowiedź #8 dnia: 2023.05.07, 21:44:01 »
Skoro "kradniesz" sygnały BC1 i BDIR z podstawki pod PSG, to przecież możesz je połączyć z tymi "nowymi" przez bramki np. typu XOR (74LS86). Wyjścia bramek utworzą wejścia dla PSG a on zagra na tych portach, które będą wykorzystane w sofcie.

Dlaczego XOR, ponieważ BC1 I BDIR są aktywne w stanie wysokim, a chcesz aby jeden z dekoderów portów był tylko aktywny w danym czasie.

W 74LS139 (2-do-4) nie pchałbym się, potrzebujesz 74LS138 (3-do-8).
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76