ZX Spectrum > HARDWARE

Sprzętowy redir Portów I/O

(1/2) > >>

pawelb:
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:
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..

pawelb:
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:
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.

trojacek:

--- Cytat: pawelb w 2023.04.30, 15:54:02 ---Cześć,
Czy  da się zrobić redir portów i/o za pomocą elektroniki wpinanej do złącza rozszerzeń?

--- Koniec cytatu ---

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.

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

Idź do wersji pełnej