A TMX Portugal fez duas version do interface do FDD: uma para o TC2048 (pode ser usada no TC2068 com a cartridge emuladora) e outra para o TC2068 (o botão de reset é prateado, o resto é igual). Isto porque a ROM dos dois computadores é diferente e causa um crash se usar a versão errada.
O Interface do FDD
Autor deste texto: Jarek Adamski
O FDD 3000 comunica através do
Interface do FDD. A interface tem uma conecção para o conector de expansão e do outro
lado, tem o conector para o FDD. Por isso pode-se usar qualquer tipo de FDD3000 com a
interface. Para Spectrums que têm a interface FDD para 128K requer reprogramação da
EPROM (Conflito de ports). Só as interfaces feitas pela STAVI estão livres desse bug.
O FDD3000 está ligado à interface por um cabo em espiral, a transferencia é half duplex
6 bits (1 bit para STROBE, todos os bits podem ser normais) isto dá uma taxa de
transferencia baixa.
A interface não é uma unidade complexa, o port é acessivel por out/in em #EF.
Dentro do FDD é o port #0F e é "espelhado": #2F,#4F,#6F,#8F,#AF,#CF,#EF.
Os ports estão ligados da seguinte ordem: (TI BIT significa BIT na interface #ef)
BIT READ WRITE NOTE
7 DREQ FDC 1772 ?
6 TI BIT 6 TI BIT 6
5 DREQ FDC 1772 ?
4 TI BIT 4 ou 7 depende da versão da interfacee... standart é 4
3 TI BIT 3 TI BIT 3
2 TI BIT 2 TI BIT 2
1 TI BIT 1 TI BIT 1
0 TI BIT 0 TI BIT 0
A interface também tem um botão de reset e um amplificador do sinal video composto que
é acessivel no FDD3000 no jack RCA. Tem muitas interferencias (Sinais TTL no cabo em
espiral, não blindado e 1 metro de comprimento).
Mas o que está lá dentro?
Dentro do FDD - ports:
#10 WD2123 configuração (write) CHA
#11 WD2123 configuração (write) CHB
#40 WD2123 data CHB
#41 WD2123 estado/comando CHB
#80 WD2123 data CHA
#81 WD2123 estado/comando CHA
#C0 FDC1770 sterring port/estado
#C1 FDC1770 track port
#C2 FDC1770 sector port
#C3 FDC1770 data port
#E0 HELPING helping port(abaixo)
Como usar estes ports? Ainda estou à espera de informação, mas: port #E0
BIT WRITE 1 0
7 cabeça de cima/baixo
6 #0000-#1FFF ROM RAM
5 densidade FM MFM
4 lado 1 0
3 DRIVE 3 ON OFF
2 DRIVE 2 ON OFF
1 DRIVE 1 ON OFF
0 DRIVE 0 ON OFF
Estrutura da Interface.
A interface é assim:
No cimo está o conector para o FDD3000, por baixo está a RAM, mais abaixo a EPROM, e do
topo direito: 2 buffers e 2 GALs (dolny/gorny). Em baixo o conector para o computador.
A descrição do interface, que é usado para ligar a um computador compativel com ZX
Spectrum a um FDD3000 ou a um clone Polbrit.
Endereços de descodificação da interface
memória : #0000 e #0008 com _M1 activa - desliga a ROM do computador.
memória : #0604 com _M1 - religação da ROM do computador.
port #xxEF - input/output 8 bit.
Depois de desligar a ROM do computador a interface liga as suas memorias nas areas:
#0000..#1FFF TI (Timex Interface) ROM (4KB, 2 vezes)
#2000..#3FFF TI RAM (1KB 8 vezes ou 2KB 4 vezes)
(1) TI (Timex Interface) com placa dos 2 lados pintada no fundo, sem
numeros, e na parte de baixo as letras "SER" impressas.
Componentes : (IC1)TMM2016 (RAM), (IC2)D2732D (ROM), (IC5)SN74LS273N (output line driver),
(IC6)HD74LS244P (input line driver), (C1)473/50V, (C2)ASE4832ZIB, (D1)1N4148R, (R1)680ohm
5%, miscrointerruptor preto, conector para computador e conector DA15M.
Conecções religadas debaixo dos componentes PAL.
No conector DA15M os pino s 7 e 8 não estão ligados. Mascara do conector : %11001111,
Bits 4 e 5 não conectados a 244 e 273 - no estado de leitura é desconhecido.
(recomendado - conecta-los ao 244 outputs não usados e ligar os correspondentes 244
inputs à terra (GND).
(2) Interface com fibra de vidro laminhado, amarela, sem numeros, e os simbolos do
fabricante visiveis, os buracos dos lados não circulares.
Elementos : TMM2016, D2732D, SN74LS273N, SN74LS244N, (2x)+2.2/+25V(C), 22uF/25V,DA9C38(T),
microinterruptor brancoe, conector para o computador e conector DA15M.
Inputs 244 and 273 não usados estão ligados à terra (GND) através de fios.
No conector DA15M os pino s 7 e 8 cortados e não estão conectados. Mascara do conector:
%11001111.
Bits 4 e 5 conectados por fios a 244 - estado baixo quando lidos.
GAL (PAL,PALCE) chips 16V8 estão ligados assim:
__
__
__ __
-\ CLK Io \/ |
+5V A12 Io
\/ | +5V /-
| A14 I I
/L3 /IORQ
I O /IN |F
Z| A13 I O
CLK /RD
I I A0 |D
X| A10 I I
A15 A8
I I /WR |D
| A9 I IC3 O
/ROM A11 I
IC4 | nc (A1) |
B| A3 I O
/RAM A7
I O /L3 |3
u| A2 I I
/L2 A6
I O /L2 |0
s| /MREQ I O
/L1 A5
I I /L1 |0
| /M1 I O
ZXDIS A4
I O /OUT |0
-/ GND |______I
GND GND
|______I A1 \-
CPU inputs :
A0..A15, /IORQ, /M1, /MREQ, /RD, /WR
Power : GND, +5V
TI sterring : /IN - lê o port #EF (74244, pino 1
& 19)
/OUT
- escreve no port #EF (74273, pino 11)
/RAM
- activa a RAM da interface (2016, pino 18 & 20)
/ROM
- activa a ROM da interface (2732D, pino 18 & 20)
ZX sterring : ZXDIS - através 680om para +5V, através
diodo para /ROMCS
(ou na base do transistor para o mesmo proposito)
conecções locais : CLK, /L1, /L2, /L3
Outros : nc - não
conectado dentro do chip.
Direcção, propósito e polarisação dos sinais CLK,
/L1, /L2, /L3 são tirados livremente e pode variar entre versões particulares. Isto não
interessa, desde que as PAL sejam programas juntas (elas têm que cooperar).
IC3 sinais:
ZXDIS := /A9
(estado alto no D apenas para o endereço que desliga a ROM do computador: #0000 e #0008 -
na vida real (codigicação do sinal CLK) /A9 chega.)
L1 = A2 * A3
(output invertido - estado baixo no /L1 para os ports #xxEF)
RAM = ZXDIS * A13 * /A14 * /A15 * MREQ
(output invertido -estado baixo no /RAM, se a ROM do computador está desligada e memoria
#2000..#3FFF está endereçada)
ROM = ZXDIS * /A13 * /A14 * /A15 * MREQ * RD
(output invertido - estado baixo no /ROM se a ROM do computador está desligada e
memória #0000..#1FFF está endereçada para leitura)
CLK = L2 * /A3 * /A9 * /A10 * /A13 * /A14 * /A15 * MREQ * M1
+ L3 * /A2 * /A3 * A9 * A10 *
/A13 * /A14 * /A15 * MREQ * M1
(estado alto para a instrução tirada dos endereços alternado da ROM do computador)
IC4 sinais:
OUT = L1 * A0 * A1 * /A4 * A5 * A6 * A7 * IORQ * WR
(output invertido - estado baixo no /OUT para port #xxEF para escrita)
L2 = /A0 * /A1 * /A4 * /A5 * /A6 * /A7 * /A8 * /A11 * /A12
(output invertido - estado baixo em /L2 para #0000 e #0008)
L3 = /A0 * A1 * /A4 * /A5 * /A6 * /A7 * /A8 * /A11 *
/A12
(output invertido - estado baixo para /L3 para endereço #0604)
IN = L1 * A0 * A1 * /A4 * A5 * A6 * A7 * IORQ * RD
(output invertido - estado baixo no /IN para o port #EF para leitura)
"output invertido" na descrição significa falta da negação do sinal na
ponte XOR, feito pelos bits SL1n=0
Tipo da conecção devia ser revista com a descrição acima. Todas as moficicações
devem ser feitas na placa.
Timex FDD Interface nos ZX Spectrum 128K (Plus/Plus 2/Plus 3/Plus 2A/B)
O Timex FDD pode trabalhar com as
versões 128K do ZX Spectrum. Para usar o FDD em qualquer uma das versões, modificações
à ROM do interface têm de ser feitas por causa das diferentes ROMs dos 128K. Esta
modificação é necessaria porque uma parte da ROM1 é usada para fazer reset ao
Spectrum. No caso do codigo do 128K esse codigo é tirado da ROM0, que resulta num crash.
Para o 128K e 128K+2, o Interface tem de fazer um OUT #7FFD,#10 antes da inicialização.
esta alteração foi efectuada pela STAVI na Polónia.
Para o ZX Spectrum 128K +3, à excepção do sinal /ROMCS, um OUT #1FFD,#04 tem de ter
feito.
Esta página foi actualizada em 07-07-2001