Opis komputera TIMEX FDD 3000 ("TF").
Komputer posiada (wersja z dużą płytką):
- procesor Z80 4MHz (możliwość zmiany częstotliwości zegara);
- 64kB DRAM - 2 × 4464;
- 128B ROM włączane po resecie i zawierające procedurę czytania 256B z
sektora 0 ze strony 0 cylindra 0 napędu 0 (MFM) pod adres #3F00 i skok pod
#3F00 (plik "TFBOOT.ROM");
- dwukierunkowe, równoległe łącze komunikacyjne (po 6 bitów w każdą stronę),
wyprowadzone na zewnątrz skręconym kablem;
- FDC WD1770 podłączony linią INTRQ do /INT Z80 (przez EFGJ121);
- UART WD2123 sterujący dwoma łączami RS 232C (RxD, TxD, RTS, CTS);
przerwania WD2123 nie podłączone do CPU;
- port konfiguracyjny wspomagający FDC (FM/MFM, opuszczanie głowic, strona i
wybór napędu) i odłączający ROM;
- mikrostyk generujący /RESET dla CPU i pozostałych układów;
- niezamontowane łącze Centronics 8bit; sygnały /STROBE i BUSY podłączone są
do drugiego portu WD2123, co uniemożliwia ich jednoczesne użytkowanie.
Złącza:
- PB1 krawędziwe męskie Centronics - korzystanie wymaga wycięcia otworu w
tyle obudowy lub jego przeróbki;
- PB2 krawędziwe męskie do zewnętrznych napędów dyskowych - korzystanie
wymaga wycięcia otworu w tyle obudowy;
- P1 punkty lutownicze dla uzwojenia wtórnego transformatora;
- P2 Sub-D DB9M dla pierwszego łącza RS 232C;
- P3 Sub-D DB9M dla drugiego łącza RS 232C;
- P4 punkty lutownicze dla LED, mikrostyku reset i łącza komunikacyjnego;
- P5 RF żeńskie do monitora;
- P6 punkty lutownicze - zasilanie do napędów;
- P8 igłowe męskie do napędów dyskowych;
- P9 punkty lutownicze (krawędziowe żeńskie) z sygnałami CPU (nie jest
zgodne z identycznie wyglądającym złączem krawędziowym ZX81); wykorzystane
przez rozszerzenie YABUS.TF;
brzeg środek
GND 1 GND
+5V 2 20VDC
=== 3 ===
/ROMCS 4 IROM
/INT 5 /WAIT
/NMI 6 /HALT
/RESET 7 /RFSH
CLK 8 A15
/BUSAK 9 A14
/BUSRQ 10 A13
/WR 11 A12
/RD 12 A11
/IORQ 13 A10
/MREQ 14 A9
/M1 15 A8
D7 16 A7
D6 17 A6
D5 18 A5
D4 19 A4
D3 20 A3
D2 21 A2
D1 22 A1
D0 23 A0
20VDC - bezpośrednie wyjście z transformatora zasilającego
IROM - stan wysoki odłącza wewnętrznego ROM i blokuje /ROMCS
/ROMCS - stan niski oznacza adresowanie ROMu do odczytu (uwzględnia /RD)
CLK - sygnał zegarowy - użycie zależnie od zworki J4
-pozostałe linie odpowiadają sygnałom Z80
Zworki:
J1 - ? (konfiguracja układu EFGJ161FN)
A - +5V (standardowo)
B - GND
J2 - ?
A - ?
B - ?
J3 - ?
A - ?
B - ?
J4 - zegar Z80
A - połączenie z wewnętrznym 4 MHz
B - połączenie z pinem złącza P9
J5 - zasilanie -12V (D, C2=470ľF, 7912, C30=100ľF)
J6 - zasilanie +12V
J7 - zasilanie +5V
J8 - połączenie masy płytki z obudową
Budowa:
Sterowanie pamięcią. Z układu EFGJ121FN (ten na środku) wychodzą cztery
linie, odpowiadające sekcjom pamięci. Są one podłączone do diodowej bramki OR.
Kolejno:
D1 - sekcja A
D2 - sekcja D
D3 - sekcja C
D4 - sekcja B
R5 - rezystor wyjściowy 1.5kom - wymusza stan niski.
Uład ten zawiera również 128B ROM.
Jeśli zostanie wybrany ROM portem #E0, odłączane jest pierwsze 8KB
pamięci RAM (#0000..#1FFF) i w to miejsce włączany jest ROM. ROM zgłasza
się tylko w trybie odczytu, a zapis nie powoduje zmiany zawartości
odłączonej części RAM.
Jeden z dwu kwadratowych układów SMD to EFGJ161FN, taki sam jak w TI. W TF
obsługuje on port komunikacyjny oraz multipleksuje linie adresowe dla pamięci
dynamicznych. W TF obwody wykrywające adresy dla przełączania ROM są
zablokowane przez podłączenie wejścia /M1 do +5V.
Zastanawia szybkie nagrzewanie się tego układu, gdy TF zostanie włączone
przy włączonym ZX z TI. Po kilku sekundach układ wręcz parzy. Wdzięczny byłbym
za sprawdzenie tego w innych egzemplarzach (układ ten znajduje się pod "DRIVE
B").
_____ _____
/ n Z / / / / / / + / A A A A D D D \
| c X M W R I M R 5 R 1 1 1 1 2 1 0 |
| D 1 R D O R A V O 2 3 4 5 |
ZXDIS I R E M M A0
nc S Q Q A1
Z80CLK _ A2
? (_) A3
? A4
nc A5
nc A6
M? A7
M? nc
M? EFGJ161FN nc
M? A8
SEL A9
Z2 D7
Z1 D6
GND D5
? D4
A11 D3
| A G |
| 1 I I I I I N O O O O O O I I |
\_____? ? 0 5 3 2 1 0 D 3 2 1 0 4 6 4 6_____/
? pin o nieznanym zastosowaniu
nc nie podłączone wewnątrz układu
ZXDIS odłączenie ZXROM (tu: nie podłączone)
/ROM linia wybierająca EPROM (tu: nie podłączona)
/RAM linia wybierająca SRAM (tu: nie podłączona)
I0..I3 wejścia portu skojarzone z D0..D3
I4 wejście portu skojarzone z D4
I5 wejście portu skojarzone z D5 i D7 (tu: dołączone do /DREQ 1770)
I6 wejście portu skojarzone z D6
O0..O3 wyjścia portu skojarzone z D0..D3
O4 wyjście portu skojarzone z D4
O6 wyjście portu skojarzone z D6
M? linie wyjściowe z multipleksera
Z1,Z2 wejścia o stanie ustalanym zworkami (zastosowanie nieznane)
SEL wejście wybierające multipleksera
A7 tu: podłączone A11
A11 tu: podłączone A7
Z80CLK tu: podłączone do +5V
/M1 tu: podłączone do +5V - blokada obwodów przełączających ZXROM
-pozostałe linie odpowiadają sygnałom Z80
Rozbudowa (propozycje):
- zamontowanie portu Centronics z rezygnacją z drugiego portu szeregowego
(usunięcie tej niedogodności wymaga znacznych przeróbek sprzętowych);
- wlutowanie w złącze P9 gniazda żeńskiego krawędziowego do płytki
YABUS.TF;
- rozdzielenie portu CH_B na wyjście dla drukarki (możliwe również jako
Centronics) i wejście dla myszy pecetowej;
- rozbudowa pamięci do 256 KB w celu uruchomienia CP/M Plus.
Porty:
Zajęte są następujące adresy:
#0F
#10 ,#11
#2F
#40, #41, #4F
#6F
#80, #81, #8F
#AF
#C0, #C1, #C2, #C3, #CF
#E0, #EF
#2F Îącze komunikacyjne (adres używany przez TOS A.2). Pojemność
poszczególnych linii nie jest taka sama i jedną z nich należy używać jako
"strobe". Port zgłasza się również pod adresami #0F (używane przez ROM
startowy), #4F, #6F, #8F, #AF, #CF i #EF. Odpowiedniki w porcie #EF, dodanym
do ZX przez TI są oznaczone "bit n".
bit odczyt zapis uwagi
7 DREQ FDC ?
6 bit 6 bit 6
5 DREQ FDC ? (dla FDD3 zawsze 1 przy odczycie)
4 bit 4 bit 4 (dla niektórych wersji TI jest to bit 7)
3 bit 3 bit 3
2 bit 2 bit 2
1 bit 1 bit 1
0 bit 0 bit 0
#10 WD2123 prędkość (zapis) CHA; dane dla Centronics
#11 WD2123 prędkość (zapis) CHB
#40 WD2123 dane CHB
#41 WD2123 status/komenda CHB
#80 WD2123 dane CHA
#81 WD2123 status/komenda CHA
#C0 Port sterujący/status FDC1770
#C1 Port ścieżki FDC1770
#C2 Port sektora FDC1770
#C3 Port danych FDC1770
#E0 Port konfiguracyjny. Przełączanie napędów z użyciem tego portu jest
trochę skomplikowane i należy wzorować się na oryginalnym oprogramowaniu.
bit zapis 0 1
7 głowica w dół w górę
6 #0000..#1FFF ROM RAM
5 gęstość MFM FM
4 strona dysku 1 0
3 napęd 3 tak nie
2 napęd 2 tak nie
1 napęd 1 tak nie
0 napęd 0 tak nie
Dla wersji z małą płytką (FDD3) jest niepełne dekodowanie portów (x - bez
znaczenia, n - bit wybierający port z grupy):
%000xxxxn - WD2123 prędkość (odczyt pp. powoduje zapisanie #FF)
%001xxxxx - łącze komunikacyjne
%01xxxxxn - WD2123 CHB
%10xxxxxn - WD2123 CHA
%110xxxnn - FDC1770
%111xxxxx - port konfiguracyjny (odczyt pp. powoduje zapisanie #FF)
ROM w wersji z małą płytką (FDD3) ma pojemność 2kB i jest aktywowany w
obszarach pamięci gdzie A13=0. Kod jest taki sam, jak dla FDD3000 (jedynie
zamiast 'BIT 5,A' jest 'RLA' przy odczycie DRQ FDC1770), przy czym od #0064
do końca jest wypełniony wartością #FF. Jako adres portu komunikacyjnego
używane jest #20 (zamiast #2F).
Opisy programowania UART WD2123 i FDC 1770 są w oddzielnych plikach.
Literatura:
"TIMEX Floppy Disk Drive System. User Manual For SPECTRUM Users.", TIMEX
PORTUGAL Ltd. 1984.
"Podłączamy modem do ZX Spectrum!", Robert Magdziak, Bajtek 1991/12 s. 24.
2003-11-04 ustawienie FM/MFM było podane odwrotnie
2003-09-18 konwersja na HTML, bez zmian
2001-03-16 dodane porty FDD3
1999-06-28 dodany opis zasilania
1998-04-22 dodany opis sterowania zewnętrznego EPROMu
1998-04-19 dodany opis wyprowadzeń EFGJ161FN
1998-04-18 dodane opisy: P9, J1, J8, układów EFGJ, bramki diodowej, literatury
1997-07-04 pierwsza wersja opisu oprarta na badaniach empirycznych
(C) 1997÷2001 Jarek Adamski