Floppy Disk Controller and Real Time Clock for RCBus systems
Flock is an RCBus floppy disk controller (FDC) and real time clock (RTC) module. It designed to work with RomWBW firmware, supporting CP/M, ZSDOS, and various applications under these OSes.
- Floppy Disk Controller: Western Digital* WD37C65 or compatible
- NEC uPD765 compatible with an integrated data separator, floppy interface drivers, and buffers
- Supported floppy disk formats:
- 3.5", 720 KB
- 3.5", 1.44 MB
- 5.25", 360 KB diskettes in 360 MB drive
- 5.25", 1.2 MB
- 5.25", 360 KB diskettes in 1.2 MB drive (not supported by RomWBW, requires Y3, C10, and C11 to be installed)
- Supports two floppy drives, using IBM PC-like cable with twisted Disk Select / Motor Enable wires between two drives
- Real Time Clock: Maxim Integrated DS1302
- Bus: RCBus, RC2014* compatible
Please refer to Assembly Instructions document
Flock uses the following I/O ports:
Write: Floppy disk controller control configuration register (CCR) Read: Floppy disk controller digital input register (DIR)
Read: Floppy disk controller master status register (MSR)
Read/Write: Data from/to floppy disk controller
Write: Floppy disk controller digital output register (DOR) Read: Toggle floppy disk controller transfer complete (TC) line
Read/Write: Access real time clock (RTC) The RTC address is configured using JP1 jumper
Position | Description |
---|---|
open (default) | RTC address: 0xC0 |
closed | RTC address: 0x0C |
- Use 0xC0 address for Z80-based systems and 0x0C address for Z180-based systems
Position | Description |
---|---|
1-2 (default) | RTC enabled |
2-3 | RTC disabled |
- JP2 is a solder jumper, located on the back of the board
- By default positions 1-2 are connected with a PCB trace
- If the system already has an RTC or the RTC functionality is not needed:
- Cut the PCB trace between positions 1-2
- Connect positions 2-3 with a solder bridge
Position | Description |
---|---|
1-2 (default) | 300 Kbps disabled |
2-3 | 300 Kbps enabled |
- JP3 is a solder jumper, located on the back of the board
- By default positions 1-2 are connected with a PCB trace
- If 300 Kbps is desired:
- Cut the PCB trace between positions 1-2
- Connect positions 2-3 with a solder bridge
- Install Y3, C10, and C11
Connect to floppy drive interface connector.
Pin | Signal Name | Description | Pin | Signal Name | Description |
---|---|---|---|---|---|
J1-1 | GND | Ground | J1-2 | /DENSEL | Density Select: 1 = Low density; 0 = High density |
J1-3 | N/C | Not connected | J1-4 | N/C | Not connected |
J1-5 | GND | Ground | J1-6 | N/C | Not connected |
J1-7 | GND | Ground | J1-8 | /INDEX | Index hole: 0 = At the index hole |
J1-9 | N/C | Not connected | J1-10 | /MEA | Motor Enable - Drive A |
J1-11 | GND | Ground | J1-12 | /DSB | Drive Select - Drive B |
J1-13 | GND | Ground | J1-14 | /DSA | Drive Select - Drive A |
J1-15 | GND | Ground | J1-16 | /MEB | Motor Enable - Drive B |
J1-17 | N/C | Not connected | J1-18 | /DIR | Direction Select |
J1-19 | GND | Ground | J1-20 | /STEP | Head Step |
J1-21 | GND | Ground | J1-22 | /WDATA | Write Data |
J1-23 | GND | Ground | J1-24 | /WE | Write Enable: 0 = Write Enabled |
J1-25 | GND | Ground | J1-26 | /TRK0 | Track 00: 0 = At the track 0 |
J1-27 | N/C | Not connected | J1-28 | /WP | Write Protect: 0 = Floppy disk is write protected |
J1-29 | GND | Ground | J1-30 | /RDATA | Read Data |
J1-31 | GND | Ground | J1-32 | /HDSEL | Head Select / Side Select: 1 = Side 0; 0 = Side 1 |
J1-33 | N/C | Not connected | J1-34 | /DC | Disk changed: 1 = Disk changed; 0 = Ready |
Connect to floppy 5V power supply connector.
Important: J2 is an unfused 5V power supply for a single 3.5" floppy disk drive. Avoid overloading and short-circuiting
Pin | Signal Name | Description |
---|---|---|
1 | 5V | Positive terminal - +5V |
2 | GND | Negative terminal - ground |
Pin | Signal Name | Description | Pin | Signal Name | Description |
---|---|---|---|---|---|
J3-1 | A15 | Address A15; Input; Not connected | J3-41 | p41 | Reserved; Not connected |
J3-2 | A14 | Address A14; Input; Not connected | J3-42 | /BAI | Bus Acknowledge In; Not connected |
J3-3 | A13 | Address A13; Input; Not connected | J3-43 | /BAO | Bus Acknowledge Out; Not connected |
J3-4 | A12 | Address A12; Input; Not connected | J3-44 | p44 | Reserved; Not connected |
J3-5 | A11 | Address A11; Input; Not connected | J3-45 | p45 | Reserved; Not connected |
J3-6 | A10 | Address A10; Input; Not connected | J3-46 | p46 | Reserved; Not connected |
J3-7 | A9 | Address A9; Input; Not connected | J3-47 | p47 | Reserved; Not connected |
J3-8 | A8 | Address A8; Input; Not connected | J3-48 | p48 | Reserved; Not connected |
J3-9 | A7 | Address A7; Input | J3-49 | A23 | Address A23; Input; Not connected |
J3-10 | A6 | Address A6; Input | J3-50 | A22 | Address A22; Input; Not connected |
J3-11 | A5 | Address A5; Input | J3-51 | A21 | Address A21; Input; Not connected |
J3-12 | A4 | Address A4; Input | J3-52 | A20 | Address A20; Input; Not connected |
J3-13 | A3 | Address A3; Input | J3-53 | A19 | Address A19; Input; Not connected |
J3-14 | A2 | Address A2; Input | J3-54 | A18 | Address A18; Input; Not connected |
J3-15 | A1 | Address A1; Input | J3-55 | A17 | Address A17; Input; Not connected |
J3-16 | A0 | Address A0; Input | J3-56 | A16 | Address A16; Input; Not connected |
J3-17 | GND | Ground | J3-57 | GND | Ground |
J3-18 | VCC | Power Supply - +5V | J3-58 | VCC | Power Supply - +5V |
J3-19 | /M1 | Machine Cycle One; Input | J3-59 | /RFSH | DRAM refresh; Input; Not connected |
J3-20 | /RESET | Reset; Input | J3-60 | PAGE | Page ROM/RAM input; Not connected |
J3-21 | CLK1 | CPU Clock; Input; Not connected | J3-61 | CLK2 | UART Clock (programmable); Input; Not connected |
J3-22 | /INT | Interrupt; Output; Not connected | J3-62 | /BUSACK | DMA Bus Acknowledge; Input; Not connected |
J3-23 | /MREQ | Memory Request; Input; Not connected | J3-63 | /HALT | Halt; Input; Not connected |
J3-24 | /WR | Write Request; Input | J3-64 | /BUSREQ | DMA Bus Request; Output; Not connected |
J3-25 | /RD | Read Request; Input | J3-65 | /WAIT | Wait; Output; Not connected |
J3-26 | /IORQ | Input/Output Request; Input | J3-66 | /NMI | Non-maskable Interrupt; Output; Not connected |
J3-27 | D0 | Data D0; Input/Output | J3-67 | D8 | Data D8; Input/Output; Not connected |
J3-28 | D1 | Data D1; Input/Output | J3-68 | D9 | Data D9; Input/Output; Not connected |
J3-29 | D2 | Data D2; Input/Output | J3-69 | D10 | Data D10; Input/Output; Not connected |
J3-30 | D3 | Data D3; Input/Output | J3-70 | D11 | Data D11; Input/Output; Not connected |
J3-31 | D4 | Data D4; Input/Output | J3-71 | D12 | Data D12; Input/Output; Not connected |
J3-32 | D5 | Data D5; Input/Output | J3-72 | D13 | Data D13; Input/Output; Not connected |
J3-33 | D6 | Data D6; Input/Output | J3-73 | D14 | Data D14; Input/Output; Not connected |
J3-34 | D7 | Data D7; Input/Output | J3-74 | D15 | Data D15; Input/Output; Not connected |
J3-35 | TX | Channel 1, Transmit Data; Not Connected | J3-75 | TX2 | Channel 2, Transmit Data; Not Connected |
J3-36 | RX | Channel 1, Receive Data; Not Connected | J3-76 | RX2 | Channel 2, Receive Data; Not Connected |
J3-37 | /IRQ1 | Interrupt Request 1; Not connected | J3-77 | /IRQ2 | Interrupt Request 2; Not connected |
J3-38 | IEI | Interrupt Enable In; Not connected | J3-78 | p78 | Reserved; Not connected |
J3-39 | IEO | Interrupt Enable Out; Not connected | J3-79 | p79 | Reserved; Not connected |
J3-40 | USER4 | User Pin 4; Not connected | J3-80 | USER8 | User Pin 8; Not connected |
Flock V2 project on Mouser.com - View and order all components except of the FDC and the PCB.
Flock project on OSH Park - View and order the PCB.
Flock project on Tindie: Complete kit; Flock PCB and FDC.
Component type | Reference | Description | Quantity | Possible sources and notes |
---|---|---|---|---|
PCB | Flock PCB - Version 2.0 | 1 | Buy from my Tindie store: Complete kit; Flock PCB and FDC, or order from a PCB manufacturer of your choice using provided Gerber or KiCad files | |
Integrated Circuit | U1 | WD37C65BJM - FDC, CMOS, 44 pin PLCC | 1 | eBay. Alternative: ST AIC37C65CL |
Integrated Circuit | U2 | DS1302+ - RTC, 8 pin DIP | 1 | Mouser 700-DS1302 |
Integrated Circuit | U3 | ATF16V8B-15PU - Simple Programmable Logic Device, 20 pin DIP | 1 | Mouser 556-AF16V8B15PU |
Integrated Circuit | U4 | 74AHCT174 - Hex D-type flip-flop with reset, 16 pin DIP | 1 | Mouser 595-SN74AHCT174N |
Integrated Circuit | U5 | 74HCT125 - Quadruple bus buffer gates with 3-state outputs, 14 pin DIP | 1 | Mouser 595-SN74HCT125NE4 |
Quartz Crystal | Y1 | 16 MHz, series | 1 | Mouser 774-ATS160-E |
Quartz Crystal | Y2 | 32768 Hz, 6 pF | 1 | Mouser 815-AB26T32768KHZ6B |
Quartz Crystal | Y3 | 9.6 MHz, series | 1 | Optional; Install for 300 Kbps transfer rate support |
Connector | J1 | 2x17 pin header, shrouded, 2.54 mm pitch, right angle | 1 | Mouser 517-30334-5002 |
Connector | J2 | 2 pin header with friction lock, right angle | 1 | Mouser 571-2-644488-2 |
Pin Header | J3 | 2x40 pin header, 2.54 mm pitch, right angle | 1 | Mouser 517-5121TG |
Pin Header | JP1 | 2 pin header, 2.54 mm pitch | 1 | Mouser 649-68002-102HLF |
Jumper | JP1 | Shunt, 2 pin 2.54 mm pitch | 1 | Mouser 806-SX1100-B |
Battery Holder | BT1 | CR2032 battery holder | 1 | Mouser 122-2620-GR or 122-2420-GR. Install either BT1 or C7 |
Battery | BT1 | CR2023 battery | 1 | Mouser 81-CR2032, 658-CR2032, or 614-CR2032-200. Install either BT1 or C7 |
Capacitor | C1 - C5 | 0.1 uF, 50V, MLCC, 5 mm pitch | 5 | Mouser 810-FG28X7R1H104KNT6 |
Capacitor | C6 | 10 uF, 47V, Organic Polymer, 6.3 mm diameter, 2.5 mm pitch | 1 | Mouser 80-A759EA106M1JAAE60. Note: PCB silkscreen specifies 47uF capacitor. 10uF - 47uF capacitor with voltage rating 10V or more can be used |
Capacitor | C7 | 0.22 F, 5.5V, Supercapacitor, 13.5 mm diameter, 5 mm pitch | 1 | Mouser 555-DBN-5R5D334T. Install either BT1 or C7 |
Capacitor | C8 | 47 pF, 50V, MLCC, 5 mm pitch | 1 | Mouser 810-FG28C0G2A470JNT0 |
Capacitor | C9 | 15 pF, 50V, MLCC, 5 mm pitch | 1 | Mouser 810-FG28C0G2A150JNT0 |
Capacitor | C10 | 68 pF, 50V, MLCC, 5 mm pitch | 1 | Optional; Install for 300 Kbps transfer rate support |
Capacitor | C11 | 56 pF, 50V, MLCC, 5 mm pitch | 1 | Optional; Install for 300 Kbps transfer rate support |
Resistor Array | RN1 | 1 kohm, bussed, 6 pin SIP | 1 | Mouser 652-4606X-1LF-1K |
Resistor | R1 - R3 | 10 kohm, 0.25 W, 1% tolerance, axial | 3 | Mouser 603-MFR-25FRF5210K |
IC Socket | U1 | 44 pin PLCC, through hole | 1 | Mouser 649-54020-44030LF, 517-8444-11B1-RK-TP |
IC Socket | U2 | 8 pin DIP | 1 | Mouser 649-DILB8P223TLF |
IC Socket | U3 | 20 pin DIP | 1 | Mouser 649-DILB20P-223TLF |
IC Socket | U4 | 16 pin DIP | 1 | Mouser 649-DILB16P-223TLF |
IC Socket | U5 | 14 pin DIP | 1 | Mouser 649-DILB14P-223TLF |
Connector | J2 | 2 pin connector | 1 | Mouser 571-3-643813-2 |
Connector | J2 | Floppy disk power connector housing | 1 | Mouser 571-1718224 |
Connector | J2 | Floppy disk power connector contacts | 2 | Mouser 571-170262-2-LP, 571-1702622-CT (strip of 100 contacts) |
- Version 2.0
- Update form factor from RC2014* compatible to RCBus
- Add an option to use CR2032 battery instead of a super capacitor for the RTC
- Use right angle connector for the floppy interface
- Use ATF16V8B SPLD for address decode
- Add JP1 jumper for selecting RTC I/O address. Either 0xC0 or 0x0C can be used
- Add JP2 jumper for disabling the RTC.
- Add an option to support 300 Kbps transfer speed
- Add a header for GPIO signals
- Version 1.0
- Initial version
- Version 1.0
- No known issues
- None so far
Flock is an open source hardware project certified by Open Source Hardware Association, certification UID is US002115. The hardware design itself, including schematic and PCB layout design files are licensed under the strongly-reciprocal variant of CERN Open Hardware Licence version 2. The CPLD VHDL code is licensed under GNU General Public License v3. Documentation, including this file, is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.
- "RC2014" is a registered trademark of RFC2795 Ltd.
- Other names and brands may be claimed as the property of others.