Autor Wątek: U2086 i TC2068  (Przeczytany 9969 razy)

KWF

  • Moderator
  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: U2086 i TC2068
« Odpowiedź #30 dnia: 2021.10.21, 22:10:39 »
Tak jak opisałem /WR z Z80,  a nie /WE z SCLD.
« Ostatnia zmiana: 2021.10.21, 22:35:02 wysłana przez Klaud »
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

KWF

  • Moderator
  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: U2086 i TC2068
« Odpowiedź #31 dnia: 2021.10.22, 07:54:57 »
Wszystkie sygnały sterujące dla VRAM:
  • /MREQ, /WR i /RD, /RFSH i CPUCKL z Z80,
  • /WE, /RAS i /CAS z SCLD na VRAM,
  • /TS i /RDN z SCLD na buforze szyny danych (74LS745)

Na ekranie wyświetlany jest komunikat startowy TC2068, a komputer bez interfejsów zewnętrznych.
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

paroos

  • *****
  • Wiadomości: 508
  • Miejsce pobytu:
    BB
Odp: U2086 i TC2068
« Odpowiedź #32 dnia: 2021.10.22, 15:54:12 »
A dysponuje może ktoś podobnym screenem z analyzera zrobionym na ZX48?
Chętnie porównał bym je ze sobą :)
Z80 --> 48K, 48K+, 128K+2/+3, CPC 464/6128, C128D, Canon V-20, Panasonic FS-A1F, Sega SC-1000, NEC PC-6601/PC-8001/PC-8801mkII SR, Sharp MZ-700/MZ-2521, Sharp-X1C, Toshiba Pasopia 7, Sord M5 :)

KWF

  • Moderator
  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: U2086 i TC2068
« Odpowiedź #33 dnia: 2021.10.22, 17:04:08 »
A dysponuje może ktoś podobnym screenem z analyzera zrobionym na ZX48?
Chętnie porównał bym je ze sobą :)

Robi się OFFTOP. Nie do końca rozumiem co chciałbyś porównywać, ponieważ poza delikatną różnicą w zależnościach czasowych pomiędzy sygnałami i brakiem sygnałów /TS i /RDN (DIR), będzie tak samo. ULA'e z ZX Spectrum masz dobrze opisaną w książce Chrisa Smitha, a tam są wszystkie informacje i wykresy.
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

aqqman

  • ***
  • Wiadomości: 162
  • Miejsce pobytu:
    Milky Way
Odp: U2086 i TC2068
« Odpowiedź #34 dnia: 2021.10.22, 19:21:04 »
Widzę że /RDN aktywuje się tylko kiedy CPU czyta coś z VRAM.. próbuję zrozumieć ten zamysł, SCLD I/O Function Pin Definitions mówi że /RDN kontroluje kierunek danych na 74ls245. Zatem /TS aktywuje aktualne wyjścia na 74ls245 ? Domyślam się tylko bo na schemacie Timexa (tym niewyraźnym) nie ma wcale /RDN /TS ani 74ls245. U mnie zarówno U2086 jak i TC2068 mają układ 74ls245... Chociaż to też mi się kupy nie trzyma, bo co takiego się dzieje pomiędzy 489 a 495 mikrosekundy że /TS jest ciągle aktywny, tej części nie mogę zrozumieć. /CAS jest nieaktywny, odświeżanie /RAS-only....czyli VRAM nie jest czytany ani zapisywany w tym czasie. Interesuje mnie co dokładnie robi /TS?

Po przemyśleniach...
-  /TS jest "1" tylko kiedy SCLD czyta VRAM (dane do wyświetlenia obrazu)
- /RDN jest "0" tylko wtedy kiedy CPU czyta pamięć VRAM (Syglał pokrywa się wtedy z /RAS i /RD)
« Ostatnia zmiana: 2021.10.22, 19:50:33 wysłana przez aqqman »
2 x TC2068 na sterydach:
- TC2160 - 160kBRAM
- TC2176 - 176kB RAM - 2xscreen, 2xROM
FDD3000

aqqman

  • ***
  • Wiadomości: 162
  • Miejsce pobytu:
    Milky Way
Odp: U2086 i TC2068
« Odpowiedź #35 dnia: 2021.10.22, 22:46:45 »
Więc może tak:/TS --> NOT --> OR -------->
/RAS --------->                   AND ------>  /CAS
/WE ------------------------>
/RDN ----------------------->
   
To /CAS będzie ordynarnie długie i pojedyncze w przypadku czytania ekranu, zamiast dwóch krótkich. Nie jestem pewien czy pamięć zatrzaśnie zmianę adresów w tym samym cyklu /CAS (Page mode). Jeśli nie, musiałbym ten sygnał podzielić w połowie krótkim wskokiem na stan wysoki, a to już rzeźba w g....e.
W przypadku użycia pamięci statycznej problemu nie ma, po prostu zmienią się jej adresy przy aktywnym /OE i wystawi "niezwłocznie" nowe dane. Te które mam mają 15 ns czas dostępu więc dla nich to plaża i leżak a nie intensywna praca w tych warunkach.
2 x TC2068 na sterydach:
- TC2160 - 160kBRAM
- TC2176 - 176kB RAM - 2xscreen, 2xROM
FDD3000

KWF

  • Moderator
  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: U2086 i TC2068
« Odpowiedź #36 dnia: 2021.10.23, 07:22:28 »
Może schemat od TC2048 rozjaśni sprawę /TS i /RDN: https://www.speccy.pl/forum/index.php?topic=2472.msg91585#msg91585

/TS jest aktywny (stan niski) wtedy kiedy SCLD czyta VRAM. Wyjścia MA z SCLD są wtedy w stanie wysokiej impedancji. Swoją drogą brak tego sygnału na wyprowadzeniach ULA w ZX Spectrum 16/48K powodował pewne trudności w jego rozbudowie do 128K.

/RDN jest podany na wejście DIR bufora 74LS245. Kiedy /TS jest w stanie niskim, a /RDN (DIR) w stanie wysokim, SLCD nie korzysta z pamięci obrazu, więc procesor może sobie do niej zaglądać (odczyty i zapis w VRAM).

Przy odczycie z pamięci ekranu dwa stroby /CAS na jeden strob /RAS mają znaczenie. Pozwalają na odczyt dwóch alokacji w jednym cyklu /RAS. Przy pamięciach 4416 o czasie dostępu 150 ns /CAS musi być opóźniony w stosunku do /RAS o 20 ns i strob /CAS nie może być krótszy niż 80 ns. Dochodzi też opóźnienie pomiędzy strobami /CAS ok. 60 ns. Pamiętaj, że te stroby i ich czasy są generowane z częstotliwością zegara ekranu, czyli 7 MHz, do którego nie masz dostępu.
« Ostatnia zmiana: 2021.10.23, 09:10:51 wysłana przez Klaud »
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

aqqman

  • ***
  • Wiadomości: 162
  • Miejsce pobytu:
    Milky Way
Odp: U2086 i TC2068
« Odpowiedź #37 dnia: 2021.10.23, 11:50:32 »
Może schemat od TC2048 rozjaśni sprawę /TS i /RDN
No ba, to jest schemat  :D, więc dobrze zgadłem, /TS aktywuje bieżące wyjścia 74ls245. (pin /G)

Cytat: Klaud
/TS jest aktywny (stan niski) wtedy kiedy SCLD czyta VRAM.
Ależ na odwrót, jest nieaktywny (stan wysoki) kiedy SCLD czyta VRAM. Tak wynika z twojego obrazka przebiegu sygnałów.

Cytat: Klaud
Przy odczycie z pamięci ekranu dwa stroby /CAS na jeden strob /RAS mają znaczenie. Pozwalają na odczyt dwóch alokacji w jednym cyklu /RAS. Przy pamięciach 4416 o czasie dostępu 150 ns /CAS musi być opóźniony w stosunku do /RAS o 20 ns i strob /CAS nie może być krótszy niż 80 ns. Dochodzi też opóźnienie pomiędzy strobami /CAS ok. 60 ns.
/CAS jest 'strobowaniem' adresu, zatem zbocze opadające zatrzaskuje adres, więc muszą być dwa impulsy w czasie jednego /RAS przy Page mode, cóż, tego się obawiałem. Pozostaje Static RAM.
Cytat: Klaud
Pamiętaj, że te stroby i ich czasy są generowane z częstotliwością zegara ekranu, czyli 7 MHz, do którego nie masz dostępu.

Bezpośrednio - nie, pośrednio można podzielić XOUT z SCLD przez 2.

Kolega skutecznie mnie zniechęcił do zabawy z DRAM  :)
2 x TC2068 na sterydach:
- TC2160 - 160kBRAM
- TC2176 - 176kB RAM - 2xscreen, 2xROM
FDD3000

KWF

  • Moderator
  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: U2086 i TC2068
« Odpowiedź #38 dnia: 2021.10.23, 14:43:56 »
Cytat: Klaud
/TS jest aktywny (stan niski) wtedy kiedy SCLD czyta VRAM.
Ależ na odwrót, jest nieaktywny (stan wysoki) kiedy SCLD czyta VRAM. Tak wynika z twojego obrazka przebiegu sygnałów.
Tak, pomyłka przed poranna kawą ;) Zdecydowanie masz rację, że /TS jest aktywny kiedy SCLD ma wyjścia MA w stanie wysokiej impedancji, a stan wysoki kiedy czyta z VRAM.

Cytat: Klaud
Pamiętaj, że te stroby i ich czasy są generowane z częstotliwością zegara ekranu, czyli 7 MHz, do którego nie masz dostępu.

Bezpośrednio - nie, pośrednio można podzielić XOUT z SCLD przez 2.

XOUT nie jest bezpośrednim wyjściem zegara 14 MHz a tylko oscylacjami rezonatora kwarcowego (sinusoida).

Kolega skutecznie mnie zniechęcił do zabawy z DRAM  :)
Polecam się na przyszłość ;)
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

aqqman

  • ***
  • Wiadomości: 162
  • Miejsce pobytu:
    Milky Way
Odp: U2086 i TC2068
« Odpowiedź #39 dnia: 2021.10.25, 19:19:24 »
U2086 z uszkodzonym SCLD (brak /CAS dla VRAM) - Jest tak:
- podłączyłem płytkę mojego autorstwa z pamięcią statyczną W24257 i zatrzaskiem 74HCT574 (plus 74LS04 i 74LS08) do podstawek zamiast VRAM (tms4416)
- Pokazuje ekran "no ROM" z czarnymi pasami i czerwonym borderem.
Muszę "posprzątać" wokół podstawki ROM, być może coś nie styka bo nie "widzi" kości ROM.
Wnioskuję że jest szansa na reanimację pacjenta.  :D

Ok, miałem podany stan niski na /PGM EPROMa, noga 27 ROM w Timexie już tak ma, zapomniałem o tym  ;D. Mam to samo co w TC2068 - zwiecha przy starcie.
Zastanawiam się czy winny jest ROM - nagrał się dobrze, bo weryfikowałem, tylko że on pochodzi z emulatora (plik TC2048.rom). Czy ktoś się spotkał z przypadkiem żeby ROM z emu był inny niż na żywym sprzęcie?
Drugie pytanie:
- jaki jest mechanizm przełączania dodatkowego (8kB) ROMu w TC2068? tzn w jakich okolicznościach on to robi? wywołaniem OUT(F4)?
« Ostatnia zmiana: 2021.10.25, 20:05:59 wysłana przez aqqman »
2 x TC2068 na sterydach:
- TC2160 - 160kBRAM
- TC2176 - 176kB RAM - 2xscreen, 2xROM
FDD3000

trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: U2086 i TC2068
« Odpowiedź #40 dnia: 2021.10.25, 20:41:20 »
- jaki jest mechanizm przełączania dodatkowego (8kB) ROMu w TC2068? tzn w jakich okolicznościach on to robi? wywołaniem OUT(F4)?

Piszę z pamięci, a Klaud pewnie wkrótce sprostue ;)
Jak wykorzystujesz WEWNĘTRZNY (ten na płycie, nie na kartridżu) ROM TC2068 (oraz UK2086), to za przełączanie banku 16/8 KB odpowiada najstarszy bit portu #FF (255).
Z kolei port #F4 (244) odpowiada za całkowite ODŁĄCZANIE wewnętrznej pamieci ROM/RAM.

A tak przy okazji mógłbyś wrzucić schemat tej Twojej adaptacji do SRAM.
« Ostatnia zmiana: 2021.10.25, 22:51:20 wysłana przez trojacek »

aqqman

  • ***
  • Wiadomości: 162
  • Miejsce pobytu:
    Milky Way
Odp: U2086 i TC2068
« Odpowiedź #41 dnia: 2021.10.25, 23:39:42 »
Coś mi świta, out(255),128 powodował zawieszenie z tego co pamiętam, więc to pewnie to. Out(244) wyłącza w porcjach po 8 kB, każdy bit odpowiada za fragment, bodajże bit 0 za pierwsze 8kB, a bit 7 za ostatnie. Uznałem to kiedyś za kompletnie bezużyteczne z racji pracy w zgodności z ZXSpectrum (TC2048). Pamiętam że chcąc nawet to wykorzystać do rozszerzenia RAMu robił się jakiś gnój z tym kiedy był włożony Cartridge.

W zasadzie mógłbym zamieścić schemat, tyle że to jest w stanie .. ciężko czytelnym. Robiłem pod PCB więc schemat jest delikatnie mówiąc chaotyczny.
Nie jestem jeszcze pewien czy to działa jak należy... wciąż zwiecha przy starcie. Jak ruszy zrobię ładny schemat  :blank:
Załączam taki na szybko jak to wygląda od strony logicznej. Brakuje szyny danych ale ta jest poprostu podpięta bezpośrednio pod układ StaticRAM

Chciałbym jednak zaznaczyć że jest to łata na uszkodzony układ SCLD (brak sygnału /CAS dla VRAM).
Przy sprawnym SCLD byłoby... inaczej. Użyłbym wtedy /CAS dla /OE
« Ostatnia zmiana: 2021.10.26, 00:36:26 wysłana przez aqqman »
2 x TC2068 na sterydach:
- TC2160 - 160kBRAM
- TC2176 - 176kB RAM - 2xscreen, 2xROM
FDD3000

KWF

  • Moderator
  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: U2086 i TC2068
« Odpowiedź #42 dnia: 2021.10.26, 08:42:38 »
W zasadzie mógłbym zamieścić schemat, tyle że to jest w stanie .. ciężko czytelnym. Robiłem pod PCB więc schemat jest delikatnie mówiąc chaotyczny.
Nie jestem jeszcze pewien czy to działa jak należy... wciąż zwiecha przy starcie. ...

Dzięki za schemat i trzymam kciuki, o ile coś jeszcze nie padło w SCLD.

Można by pokusić się o zoptymalizowanie logiki do jednego układu NAND :P.

Piszę z pamięci, a Klaud pewnie wkrótce sprostue ;)

Ładnie to tak wzywać nieświadomych do tablicy? :P I w sumie nie ma co prostować.

Pamięć w Timexie ma 3 strony po 64KB każda: HOME BANK, EXROM i CARTRIDGE (DOCK). Każda z nich jest podzielona na 8 kawałków po 8 KB każdy. Przełączanie pomiędzy stronami obsługują dwa porty 0xF4 (244) i 0xFF (255). Pierwszy odpowiada, za przełączanie pomiędzy porcjami 8K w EXROM i DOCK oraz włączenie HOME. Kiedy aktywny jest EXROM lub DOCK, HOME jest wyłączony. Za każdy kawałek 8K odpowiada jeden bit, od 0 do 7. Drugi z portów MMU, a dokładnie jego 7 bit służy do przełączania pomiędzy EXROM a DOCK.

Strony są przypisane następująco:
1. HOME - odpowiada za to co znamy z ZX Spectrum czyli 16K ROM, 16K RAM i 32K RAM.
2. EXROM - dodatkowy ROM w TS/TC2068 i UK2086. Domyślnie umieszczony jest on w dolnym 8K od 0x0000, ale nic nie stoi na przeszkodzie, aby umieścić go w jednym z dowolnych kawałków 8K przestrzeni adresowej 64K.
3. CARTRIDGE (DOCK) - 8 x 8 KB do dowolnego wykorzystania przez użytkownika i domyślnie przypisany do złącza kartridży.

Wszystkie trzy strony można wyłączyć przez podanie stanu niskiego na linię /BE. Służy ona do blokowania całej pamięci wewnętrznej Timexa. Na złączu krawędziowym i kartridża dostępne są sygnały: /ROMCS (HOME), /EXROM, /ROSCS (DOCK), /BE i MEMDIS.  Złącza kartridzy różnią się pomiędzy TS2068 a TC2068 obecnością kilku sygnałów: /BE i  /RFSH (TS2068) oraz MEMDIS i /ROMCS (TC2068).

ROM dużego Timexa to dwa układy, jeden na stronie HOME (0x0000-0x4000), a drugi na EXROM (0x0000-0x2000). W nich jest zaszyta sekwencja startowa, obsługa MMU i przełączanie między nimi. Jeśli w HOME wsadzisz ROM z Timexa TC2048 (w sumie to samo co ROM ZX Spectrum + zerowanie portu 255) to komputer powinien wystartować jako TC2048. Linie /ROSCS i /EXROM wychodzące z SCLD powinny być w stanie wysokim.
« Ostatnia zmiana: 2021.10.26, 09:05:56 wysłana przez Klaud »
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76

aqqman

  • ***
  • Wiadomości: 162
  • Miejsce pobytu:
    Milky Way
Odp: U2086 i TC2068
« Odpowiedź #43 dnia: 2021.10.26, 10:43:22 »

Można by pokusić się o zoptymalizowanie logiki do jednego układu NAND :P.

Fakt, jeden układ zamiast dwóch, mniejszy bałagan, tyle że akurat skończyły mi się 74ls00  :D
a NOT-y miałem akurat ALS więc troszkę szybciej. Jak zadziała to chyba to zrobię porządniej i dorzuce HighRAM też na static, a co tam... od razu na kości 128kB. W zasadzie drugi screen już jest w VRAM, W24257 ma 32kB.  :D
2 x TC2068 na sterydach:
- TC2160 - 160kBRAM
- TC2176 - 176kB RAM - 2xscreen, 2xROM
FDD3000

KWF

  • Moderator
  • *****
  • Wiadomości: 6823
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • "I co ja robię tu, u-u, co Ty tutaj robisz ..."
    • Insta do lasownia
Odp: U2086 i TC2068
« Odpowiedź #44 dnia: 2021.10.26, 10:59:32 »
VRAM możesz mieć nawet 128K ale i tak nie zrobi z Timexa 128K. Drugi obraz Timexa sobie siedzi w podstawowych 16K VRAM (HOME), tylko od adresu 0x6000, a nie od 0x4000.

A do rozbudowy do 128K potrzebujesz, aby dolny RAM był 64K.
« Ostatnia zmiana: 2021.10.26, 11:09:00 wysłana przez Klaud »
KWF
-----
R Tape loading error 0:1
Moje zabawki: https://github.com/McKlaud76