TC2144 - przeróbka TC2048 na 144kB

Widok z góry na przerobiony komputer
Założenia:
 -przełączanie banków zgodne z przełączaniem w ZX128 (nie ZX+2);
 -16kB w sekcji C pozostaje nieruszone i nie odpowiada bankowi 2;
 -możliwość wykorzystania bitów 6 i 7 portu #7FFD;
 -ustawienie bitu 5 nie blokuje portu #7FFD;
 -odczyt z #7FFD nie powoduje zawieszenia komputera;
 -ma wyprowadzenia dla rozszerzenia do 528kB (odpuszczone);
 -mieści się w oryginalnej obudowie;
 -jest zdejmowalne;
 -likwiduje śnieżenia ekranu spowodowane rejestrem I;
 -ma wyprowadzenia do podłączenia AY (w TC2048 osobna płytka);

Definicje:
 MRAM - pamięć, do której ma dostęp tylko Z80
 VRAM - pamięć, z której generowany jest obraz
 A0..A15 - linie adresowe Z80
 M0..M7 - multipleksowane linie adresowe Z80 dla MRAM
 V0..V7 - multipleksowane linie adresowe ULA dla VRAM
 /DEN - sygnał ULA włączajający bufor LS245 między magistalami danych
 /MRAS - sygnał ULA dla MRAM
 /VRAS - sygnał ULA dla VRAM
 B0..B7 - wyjścia zatrzasku przełączania pamięci (port #7FFD)
 /RFSH - sygnał odświerzania Z80
 I0 i I7 - wejścia multiplekserów LS157 generujące M0 i M7


Ustalenia:
 -magistrala adresowa M0..M7 (za multiplekserami) jest oddzielona
rezystorami 470om od V0..V7;
 -magistrala danych VD0..VD7 (od strony ULA) jest oddzielona buforem
74LS245 (sterowanym liniami /DEN i DIR);
 -MRAM (standardowo 32kB) ma wspólne linie adresowe, danych i /RAS;
 -/MRAS jest połączone z /MREQ;
 -wejścia /OE i /CAS każdej kości pamięci są połączone;
 -linia M7 posiada odświerzanie generowane przez ULA (linią A7R);
 -podczas wyświetlania zawartości ekranu nie ma potrzeby odświerzać VRAM,
ponieważ zaadresowanie 256 kolejnych adresów VRAM dokonuje się poprzez
wyświetlenie 57 linii poziomych, czyli w czasie 3.65ms (standardowo 4ms);
 -jeśli podczas kreślenia ramki ULA odcina linie V0..V7, to odświeżanie
odbywa się liniami M0..M7, a zatem będzie właściwe (ośmiobitowe);
 -po wymianie VRAM na 4464, górna połowa każdej tercji ekranu pochodzi z
banku 0, a dolna z banku 3 tej pamięci (I0 i I7 wybierają bank);
 -ULA multipleksuje V0=A0|A7 i V7=A7|A7;
 -B0 określa typ pamięci w sekcji D: =0 MRAM, =1 VRAM;
 -B1 i B2 wybierają bank w sekcji D w danym typie pamięci;
 -B3 określa bank, z którego generowany jest obraz (normalnie 0);
 -B4 wybiera bank ZXROM: =0 "128", =1 "48";
 -B5 normalnie blokuje port #7FFD, jeśli ustawiony;
 -B6 i B7 nie używane, przeznaczone dla rozszerzenia do 528kB;
 -dekodowanie portu #7FFD musi uwzględniać istnienie portu #F4 oraz w TC2068
portów #F5 i #F6 - najlepiej użyć linii A3=1;
 -dekodowanie portu dla AY nie może względniać linii A8 z uwagi na błędne
procedury zapisu do portu (zapis do #FEFD i #BEFD przez OUTI)
 -zapis bajtu do portu #FD (pozostałych prawdopodobnie też) trwa tyle samo,
co zapis do portu #FE, czyli jest średnio około 11.5T (wydłużenie może nie
występować, jeśli ULA nie czyta VRAM);
 -linia /DEN jest w stanie niskim (bufor otwarty) na pewno w momencie, gdy
suma /IORQGE i /WR przyjmuje stan wysoki;
 -złącze klawiatury w wersjach 5C i 5D jest bliżej układu TS2068 niż w
wersji 4B;
 -zatrzask LS273 podłączony do linii danych ULA działa prawidłowo bez
dodatkowych obwodów (zapisywany narastającym zboczem sumy /IORQGE i /WR;
pozostałe wejścia LS138 podłączone do A1, A3, A14 i A15)
 -linia /ROMCS sterowana przez ULA nie uwzględnia /MREQ (po podłączeniu do
EPROM sygnałów /ROMCS oraz /RD, można jego zawartość odczytywać w portach).

 -podłączenie układów 74LS157 (widok z góry, wersja 5C):
     __  __             __  __
 MS |o \/  | +5V    MS |o \/  | +5V
A10 I      I GND    I7 I      I GND
 A3 I      I I0    A7R I      I A12
 M3 O      I A0     M7 O      I A5
 A8 I      O M0    A11 I      O M5
 A1 I      I A9     A4 I      I A13
 M1 O      I A2     M4 O      I A6
GND |______O M2    GND |______O M6
      U13                U14

3 : (tylko układy 4416) I0 zwarte z A0, I7 jest zwarte z A7R,
    /IORQGE nie podłączone do złącza, zworka zamiast R22
    przystowane do PROM, EPROM wymaga zmian zworek (noga 27)
4B: inny układ zworek koło EPROM
    podłączone /IORQGE, zworka zwiera z /IORQ
5C: przystosowane do użycia układów 4464, bramka diodowa
    /IORQGE zwarte na stałe z /IORQ
5D: przystosowane do użycia układów 4464, bramka diodowa
    /IORQGE zwarte na stałe z /IORQ
    do I7 dołączone jest A14


3 : TS 2068 PAL, 335-912015 PT, NCR-0380118, F818489, A8547
4B: TS 2068 PAL, 335-912015, NCR-0380118, F819585 PT, A8607
5C: TS 2068 PAL, 335-912015, NCR-0380118, F821513, A8627
5D: TS 2068 PAL, 335-912015, NCR-0380118, F820280 PT, A8614

Złącze (kolejność od strony Z80):
 -I7,
 -B4,
 -/RESET,
 -I0,
 -B5,
 -A14 (wejście),
 -A15 (wejście),
 -/7FFD.

Przeróbka:
 1. Wylutować R23 (obok gniazda klawiatury) i wlutować go od spodu płytki,
wystające końce obciąć.
 2. Odciąć linię A0 od I0, zmostkować A0 i podłączyć przewodem przylutowanym
do LS157 (od góry) I0 do złącza.
 3. Odciąć A7R (albo A14) od I7 i podłączyć przewodem przylutowanym do LS157
(od góry) I7 do złącza.
 4. Podłączyć A15 (przelotka obok Q5) i A14 (przelotka obok R23) do złącza.
Odciąć A14 i A15 od ULA (za diodami klawiatury).
 5. Połączyć V0 (rezystor U15) z V0 (ULA) i odciąć oba od VRAM.
 6. Połączyć V7 (rezystor U15) z V7 (ULA) i odciąć oba od VRAM.
 7. Podłączyć V0 (VRAM) i V7 (VRAM) do złącza.
 8. Włożyć układy 4464 jako U6, U7, U10, U11 i 4416 jako U8 i U9.
 9. Odciąć nogę 1 EPROM od +5V, wylutować zworkę nogi 27, dołączyć oba do
złącza.


                   Przeróbka TC2068 na 144kB - opcje ROM.

 1. ROM bez zmian. Zgodność z trybem TC2068, a do programów ZX i ZX128
potrzebny jest cartridge, przy czym ZX128 ma tylko jeden bank ROM (nie ma
BASIC 128 i kalkulatora).
 2. ROM jak w ZX128. 64kB ROM zawiera również ROM trybu TC2068. Tryb TC2068
wybierany przełącznikiem.
 3. 64kB ROM i 32kB RAM jak w ZXVGS. ZX128 ma tylko jeden bank ROM. Tryb
TC2068 wybierany przełącznikiem.
 4. 64kB ROM i 32kB RAM jak w ZXVGS. ZX128 ma dwa banki ROM, nie ma trybu
TC2068.
 5. 128kB ROM i 32kB RAM jak w ZXVGS. ZX128 ma dwa banki ROM. Tryb TC2068
wybierany przełącznikiem.



                              Montaż /IORQGE.

Linia ta nie funkcjonuje prawidłowo. Jest niezbędna, ponieważ rozszerzenie
do 144kB używa niepełnego dekodowania, co może powodować przełączenia
pamięci w przypadku używania innych portów. Usprawnienie jest zależne od
wersji płytki.

  3. Złączyć pin /IORQGE z przelotką, od spodu (około 7mm drutu, równolegle
do linii masy), dalej jak w wersji 4.
  4. Rozciąć scieżkę znajdującą się od spodu pod zworką R22 i wlutować od
spodu rezystor 1kom (jeśli rezystor nie jest SMD, to podnieść nieco zworkę,
by nie było zwarcia do /IORQ).
               __________            __________
    przed    .| .____.___|.  po    .| . __ .___|.
                                      `|__|'

  5. Znaleźć ścieżkę znajdującą się od spodu między układem U14 a złączem.
Rozciąć ją między przelotkami i wlutować rezystor SMD 1kom (lekko skosem).
Znaleźć ścieżkę /IORQ wychodzącą na lewą stronę od Z80 (noga 20). Rozciąć ją
i następnie połączyć odcięty odcinek: od przelotki pod D21 do przelotki
/IORQGE, znajdującej się w prawo ponad U16 (27mm).



                            Montaż Antyflickera.

(Nie jest potrzebne przy zastosowaniu płytki TC2144.)

Likwidacja śnieżenia ekranu wyspępującego po ustwawieniu rejestru I na
obszar pamięci uspółużytkowany przez ULA. Zlokalizować drugą diodę ponad
ULA, licząc w górę, a następnie ścieżkę (A14) wychodzącą na górze w prawą
stronę do przelotki. Przeciąć ścieżkę na lewo od przelotki, przed jej
zagięciem i wlutować rezystor SMD 1kom (102) w przeciętą ścieżkę. Do lewej
strony dolutować anodą diodę typu 1N4148. Katodę dolutować do oczyszczonego
fragmentu ścieżki (/RFSH) znajdującego się ponad przelotką znajdującą się w
górę od nóżki 14 układu U16.
  Uwaga! Powyższe rozwiązanie przy obecności rozszerzenia RAM może powodować
zniszczenie zawartości RAM w przypadku naciśnięcia kilku klawiszy
sterowanych linią A14. Konieczne jest użycie wzmacniacza linii klawiatury,
albo bramki AND, albo przesunięcie rezystora bezpośrednio pod TS2068.



Nie ustalone:
 -czy na linii V7 jest odświeżanie?
 -kiedy dokładnie /DEN ma stan wysoki?

2001-03-21 przetestowany EPROM bez podłączenia linii /MREQ
2000-12-30 dodatkowe piny /ROM, /ROS, /EXR, AYBD1, AYBDR
2000-10-31 projekt TC2144.004 - zamienione A0 na A3 (port #7FFD)
2000-10-17 płytki TC2144.003 - błąd VD4 i brak VD5
1999-10-24 opisany problem z antyflickerem, rezygnacja z opcji 528kB
1999-05-10 dodany opis wersji 3
1998-12-30 dodany opis wersji 5C i 5D
1998-12-02 dodany opis multiplekserów
1998-11-24 uruchomiony prototyp przeróbki
1998-11-20 pozytywny test zatrzaskiwania z magistrali danych ULA
1998-11-18 ustalenia dotyczące czasu wykonania OUT #7FFD,n
1998-11-07 ustalenia dotyczące linii V0 i V7 generowanych przez ULA
1998-11-04 (C) Jarek Adamski

Wszelkie uwagi proszę kierować na adres:
e-mail: [na http://8bit.yarek.pl/upgrade/zx.tc2144/]
Jarek Adamski, 99-200 Poddębice, ul.Sobieskiego 10A/5, Poland;

© 2002-01-02 Jarek Adamski http://8bit.yarek.pl