Scheda FDC

Home Indietro Su Avanti

La Scheda Floppy Disk Controller consente di selezionare l’unità e il lato del floppy disk driver nella modalità: A (Drive1 Side1),  B (Drive1 Side2),  C (Drive2 Side1) e  D (Drive2 Side2), nonché attraverso il chip WD1791 (ha il bus dati INVERTITO!) è possibile gestire tutte le procedure per leggere/scrivere ESCLUSIVAMENTE i floppy disk driver sia nei formati da 5,25″ che in quelli da 8″.  Dal manuale acquisito si riporta:

La selezione delle unità avveniva inviando al WD1971 due comandi:

  • In scrittura all’indirizzo della porta di i/o 3FH per la selezione della Unità e del rispettivo Side:
    • Output 3FH
      Bit 0,1 e 2: selezione drive 001,010,100
      Bit 3 : Selezione Side 1 prima faccia e 0 seconda faccia) 
  • e il secondo per pilotare l’operazione I/O del WD1971 sulle porte:
    • Output BCH 1791 Registro Comandi/Status
    • Output BDH 1791 Registro Traccia 
    • Output BEH 1791 Registro Settore
    • Output BFH 1791 Registro Dati

Quando utilizzata in modalità lettura, la porta 3FH riporta le seguenti informazioni;

  • Input 3FH   
    Bit 0,1,3 rilettura dati da uscita
    Bit 4 Lettura Stato Drive Ready
    Bit 5 Lettura Linea HLT (Head Load Timing) da 1791
    Bit 6 Lettura INTRQ da 1791
    Bit 7 Lettura Data Req da 1791

II  16/10/2020 Antonio Porcino stava procedendo per scrivere uno specifico emulatore del General Processor modello T. Nel far questo stava disassemblando uno dei firmware in nostro possesso e scopre che ogni comando in uscita o uno stato in ingresso verso/da FDC viene sempre complementato prima di venire gestito dalla CPU. Confrontando con l’hardware si scopre che il chip utilizzzato era un WD1791 che presenta un bus dati invertente pertanto ogni bit dei dati scritto nei dischetti del GPmodT risulta sempre invertito.  Ad es la lettera A = 41H = 0100 0001B si trova scritta nel floppy disk come 1011 1110B = BEH. Non possiamo sapere se si tratta di una scelta per disporre di una protezione proprietaria. Certo è che la CPU deve effettuare sempre una operazione di complemento per ogni dato che legge o scrive sui dischi. Sarebbe stato piu semplice utilizzare un WD1793 senza dover effettuare alcuna operazione di complemento nel firmware. Quindi:
Tutti i dati nei dischi sono presenti in forma complementata.

Inoltre il CP/M viene collocato in RAM come segue:

Inizio CP/M in RAM a               A400H
Fine CP/M = A400 + 1A00h=  BDFFH

Abbiamo individuato almeno due tipi di FDC. Sono riconoscibili per la disposizione del WD1791:

Scheda FDC– Controller floppy, 3088 rev. B  date 7.11.79 (Solo FM)

La scheda interfaccia una coppia di Floppy Disk Drive 8” o 5,25” con lettura/scrittura operando SOLO in FM mode in quanto si è scoperto che la linea /DDEN chip WD1791 è connessa rigidamente a +5V. E’ presente un quarzo da 8 MHz ed un jumper “stampato” seleziona la corretta divisione della frequenza del clock per da configurare il funzionamento a 1MHz in caso di floppy drive da 5,25” e a 2MHz in caso di presenza floppy drive da 8”.

Con riferimento alla foto e con tutti i chip sono orientati verso sinistra o verso l’alto:

Id Tipo Funzione
U1 7404N Buffer segnali ingresso
U2 7404N Oscillatore e Buffer segnali uscita 
U3 WD1791 FDC chip
U4 74LS193N Divisore Freq. Clock in lettura
U5 74123N Lettura Raw Data da Drive
U6 74LS93N Divisore frequenza per drive 8” (2MHz) e 5,25” (1MHz)
U7 74LS374N Octal D-Type Edge Triggered Flip-Flops with 3-State Outputs
U8 74LS245N Selezione Side Select e Unità Drive
U9 74LS139N Selezione Side Select e Unità Drive

 

Scheda FDC– Controller floppy, 3088A rev. C  date 13.3.81 (FM/MFM)

La scheda interfaccia una coppia di Drive Floppy 8” o 5,25” con lettura/scrittura operando sia in FM che in MFM mode (linea /DDEN chip WD1791 connessa a uscita Q2 pin5 di U7 e gestita da D6). E’ in grado di gestire floppy disk drive sia in Doppia Faccia che in Doppia Densità.  Ha un quarzo da ___MHz.
Sono presenti alcuni Jumpers effettuati direttamente come piste di circuito stampato tanto da risultare quasi invisibili e sono presenti anche delle piste tagliate dovute a modifiche successive. Uno dei jumper “stampati”  serve certamente per effettuare la selezione fissa del clock per configurare il funzionamento a 1MHz in caso di drive da 5,25” e a 2MHz in caso di presenza drive da 8”.

Sono stati individuati alcuni Jumper precollegati:

Id Connettore drive Funzione
A Pin 34  
B Pin 12 Sel2
C Pin 10 Sel1
D Pin 4 ??
E Pin 14 Sel3

Con riferimento alla foto e con tutti i chip sono orientati verso sinistra o verso l’alto:

Id Tipo Funzione
U1 ??  
U2 ??  
U3 74LS153  
U4 WD1791  FDC chip
U5 74LS139  
U6 74LS139N  
U7 74LS374N Octal D-Type Edge Triggered Flip-Flops with 3-State Outputs
U8 74LS245N  
U9 7406  
U10 74123N  
U11 74LS193N  

Sono inoltre presenti vari Test Point di cui non si conosce la funzionalità:

Id Tipo Funzione
TP1    
TP2    
TP3    
TP4    
TP5    
TP6    
TP7    
TP8    
TP9    
TP10    
TP11    

 

Cablaggio da FDC a Floppy disk Drive

Dal connettore a pettine a 34 poli presente nella parte superiore della scheda FDC partiva un cavo flat che veniva saldato sdoppiato su due connettori D cannon a vaschetta da 25 poli femmina fissati sul retro del videoterminale. Un apposito cavo flat a 50 pin attestato a entrambi i lati su due connettori D cannon a vaschetta a 25 pin maschi collegava quindi videoterminale e box drive tra loro.
Anche all’interno del box drive i connettori Shugart a 50 pin dei drives giungevano sdoppiati su due connettori D cannon a vaschetta da 25 poli femmina fissati sul retro del box drive.

Di seguito la identificazione dei pin del connettore a pettine a 34 pin della scheda FDC verso i drive da 8″ individuati a seguito battitura del cavo partendo dal connettore Shugart 8”
Nota: C1 = 1° Cannon25pin  e C2 = 2° Cannon 25pin

Card Edge Male 34pin Signal Name Dual CANNON Signal Name Card Edge Female 50pin Signal Description
Scheda FDC Cable Drive Unit
2 /HLD C1-17 /HLD 18 Head load
6 /READY C1-15 /READY 22 Ready
8 /INDEX C1-16 /INDEX 20 Index Pulse
10 /SEL1 C2-13 /SEL1 26 Select Drive 1
12 /SEL2 C2-12 /SEL2 28 Select Drive 2
14 /SEL3 C2-11 /SEL3 30 Select Drive 3
16 /REDWC C1-25 /REDWC 2 Reduced Write Current
18 /DIR C2-09 /DIR 34 Direction
20 /STEP C2-08 /STEP 36 Step
22 /WDAT C2-07 /WDAT 38 Write data
24 /WGAT C2-06 /WGAT 40 Write gate
26 /TR00 C2-05 /TR00 42 Track 00 (Zero)
28 /WPROT C2-04 /WPROT 44 Write protect
30 /RDATA C2-03 /RDATA 46 Read data
32 /SIDE C1-19 /SIDE 14 Side select
           
Dispari GND C1-13 All Odds 1 GND

A seguito della battitura e identificazione dei segnali sul connetore di uscita a 34 pin sulla scheda FDC, ho predisposto la seguente mappa per un possibile cavo floppy per utilizzare drive da 3,5”:

Card Edge Male 34pin Scheda Signal Name Signal Description   IDC  3,5″ Drive Unit Signal name Signal Description
2 /HLD Head load   14 /DRVSB Drive Select 0
        16 /MOTEB 0=Motor Enable Drive 1
             
6 /READY Ready   34 /DSKCHG 1=Disk Change/0=Ready
8 /INDEX Index Pulse   8 /Index 0=Index
10 /SEL1 Select Drive 1   12 /DRVSB Drive Select 1
12 /SEL2 Select Drive 2   10 /MOTEA 0=Motor Enable Drive 0
18 /DIR Direction   18 /DIR 0=Direction Select
20 /STEP Step   20 /Step 0=Head Step
22 /WDAT Write data   22 /WDATE Write Data
24 /WGAT Write gate   24 /WGATE Floppy Write Enable, 0=Write Gate
25 /TRK00 Track 00   26 /TRK00 Track 00
28 /WPROT Write protect   28 /WPT 0=Write Protect
30 /RDATA Read data   30 /RDATA Read Data
32 /SIDE Side select   32 /SIDE1 0=Head Select
             
1  All Odds Gnd   1 All Odds  Gnd

 

 

 

Translate »