Z180 + Flock, Making the DS1302 addressable

523 views
Skip to first unread message

Leslie Marentette

unread,
Sep 9, 2023, 3:49:16 AM9/9/23
to RC2014-Z80
Hello group,

I've just finished assembling my first RCBus computer.
SC722 (Z180) + SC721 (1MB Mem) + SC715 (IDE) + SC701 (Backplane) + Flock (Floppy \ RTC)

I've been reading about an IO address conflict.
Flock wanting the RTC at 0xC0 and RomWBW having the Z180's internal peripherals in that range. 

I ran SURVEY.COM and sure enough
Active I/O ports:
10 11 12 13 14 15 16 17
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CC CD CF
D0 D2 D3 D8 DF
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF
F0 F1 F2 F3 F4 F6 F8 F9 FA FF
69 Ports active


I've looked at the Flock schematic, and I think it looks easy (one cut, one bridge) to move the DS1302 to address range 0x40:0x47 without messing with the FDC portion.

If I do that.. how do I get RomWBW to look for the RTC at 0x40 instead of 0x0C, where it's looking now ?
AY: MODE=RCZ180 IO=0x68 NOT PRESENT
ASCI0: IO=0xC0 ASCI MODE=115200,8,N,1
ASCI1: IO=0xC1 ASCI MODE=115200,8,N,1
DSRTC: MODE=STD IO=0x0C NOT PRESENT
INTRTC: Wed 2020-01-01 00:00:00
MD: UNITS=2 ROMDISK=384KB RAMDISK=256KB
FD: MODE=RCWDC IO=0x50 UNITS=2
IDE: IO=0x10 MODE=RC
IDE0: 8-BIT LBA BLOCKS=0x001E8BE0 SIZE=977MB
IDE1: NO MEDIA
PPIDE: IO=0x20 PPI NOT PRESENT
SD: MODE=SC OPR=0x0C CNTR=0xCA TRDR=0xCB DEVICES=1
SD0: NO MEDIA


Thank you

Steve Cousins

unread,
Sep 9, 2023, 5:43:20 AM9/9/23
to RC2014-Z80
Hi Leslie,

I've not checked the schematic for Flock for interactions with the floppy disk interface but I would expect the answer is to add this line to the relevant config file and rebuild RomWBW:
RTCIO .SET $40 ; RTC LATCH REGISTER ADR

Assuming you are using the RomWBW v3.2.1, platform SCZ180, configuration sc700, this would be the method.

Download RomWBW from 

Download the config file SCZ180_sc700.asm:

Put the config file SCZ180_sc700.asm in:
RomWBW-master\Source\HBIOS\Config

Add the above line to SCZ180_sc700.asm

Rebuild RomWBW as described in the RomWBW documentation then test it using the .COM file generated:
RomWBW-master\Binary\SCZ180_sc700.com

If all good flash the ROM with: 
RomWBW-master\Binary\SCZ180_sc700.rom.

Steve

Leslie Marentette

unread,
Sep 9, 2023, 10:50:24 AM9/9/23
to RC2014-Z80
Oh my..

Well, last time I stayed at a Holiday Inn Express, I performed open heart surgery on a random stranger.
How much harder can this be ? :)

I was kind of hoping that there was a config setting of some kind.. 
Oh well..  what's another rabbit hole I suppose.

I better order up some spare ROM chips :) 

Thank you.

Steve Cousins

unread,
Sep 9, 2023, 11:26:20 AM9/9/23
to RC2014-Z80
It is actually very easy to customise and rebuild RomWBW. Well worth a little time to get the hang of it. Flashing the new code in situ is also easy and reliable. However, an EPROM programmer is good to have for peace of mind.

If you are having problems I could build an image for you but I have no way to test it.

As an experienced heart surgeon you must be very clever so it shouldn't be much of a challenge LOL
Message has been deleted

Leslie Marentette

unread,
Sep 9, 2023, 4:54:13 PM9/9/23
to RC2014-Z80
"If you are having problems I could build an image for you but I have no way to test it."

Thank you for the offer, but there are a handful of us here in Toronto, you may have noticed a recent uptick in your Ontario Canada outbox :)
Surely, one of us is bound to be 'skilled' at rolling their own kernels and compiling from source.
Fingers crossed...  I've shared your instructions... Kind of hoping I'm not it :)

We've finished our first session. of 'tinkering by committee' on the Flock board..
- Added a jumper to select either 0x40 or 0xC0 address for the DS1302
- Added a jumper for off-board power
- Swapped the two pin power connector for a 'standard' Berg connector
- Added the 40th pin to the RCBus bus connector (39 pins feels so lopsided)

Now to see who wants to be the software compiler operator, so we can validate this mod :)
 

Screenshot 2023-09-09 at 4.08.22 PM.png

Flock.png
Based on the address decoder as designed, on the 74HCT138, I found:
Q7 = 1101 1xxx = 0xD8:0xDF -> Reserved in Z180
Q6 = 1101 0xxx = 0xD0:0xD7 -> Reserved in Z180
Q5 = 1100 1xxx = 0xC8:0xCF -> Reserved in Z180
Q4 = 1100 0xxx = 0xC0:0xC7 -> Reserved in Z180 \ Current RTC address
Q3 = 0101 1xxx = 0x58:0x5F -> FDC DOR / TC
Q2 = 0101 0xxx = 0x50:0x57 -> FDC MSR
Q1 = 0100 1xxx =  0x48:0x4F -> FDC CCR/DIR
Q0 = 0100 0xxx = 0x40:0x47 -> Proposed new RTC address option

Thank you for the help :)

Leslie Marentette

unread,
Sep 9, 2023, 9:48:03 PM9/9/23
to RC2014-Z80
It took the better part of the day ... but .. it seems the RTC seems to work now.

Screen Shot 2023-09-09 at 9.47.02 PM.png

Leslie Marentette

unread,
Sep 10, 2023, 4:41:10 PM9/10/23
to RC2014-Z80
I've plugged in a 5.25" DSDD floppy drive today to try the Flock floppy controller functions with SC722.
I had to pull a pin out of the flock 34pin header, since my cable is keyed..

It took a while to figure this out.. but..
After I boot RomWBW + CP/M, I use "FDU.COM
FDU offers a list of controllers it supports. 
My Flock board only responded to [G] RCBus SMC (SMB)
Choosing [G] offers a menu and I immediately tried [F]ormat... big fail...
And worried I needed to modify my ROM again...
Which got me looking at the RomWBW manual where I saw the [S]etup option in FDU.
Choosing [S] I was able to select: 
[03] 03: 5.25" 360KB - 9 SECTORS, 2 SIDES, 40 TRACKS, DOUBLE DENSITY
And now my floppy disk [F]ormatted, like magic.
Exited FDU
Wrote a file to the floppy and all is good...

Now .. after a power cycle .. I can still read the formatted floppy disk .. but when I go back into FDU it thinks I have a 3.5" 720KB drive.
Is there still something I should be doing in the ROM to let RomWBW know what drives are connected ?
Or.. does RomWBW just figure out what disk type is installed when it first access a formatted disk ?

Thank you.

Sergey Kiselev

unread,
Sep 11, 2023, 9:47:51 PM9/11/23
to RC2014-Z80
I should have noticed this thread earlier :)

Thanks for adding the RTC address selection jumper! I had something like that in mind, since people did note that the default address conflicts with Z180, but never got to do it.
I'd be more than happy to add the modification to the GitHub repo for others to enjoy, and give you a credit :)
Do you mind sending the modified KiCad files or, even better, submitting a pull request on GitHub?

Regarding FDU, If I recall correctly. it just defaults to 720 KB drives. You need to select the proper drive type before you do anything else.
Also, FDU does not use CP/M or RomWBW for disk I/O, and doesn't know anything about floppy drives configuration in RomWBW. I think that is a design decision, so that it would be possible to use it even if floppy support is missing from RomWBW. (Or, in my case, test new FDC controllers :)

Thanks,
Sergey

Wayne Warthen

unread,
Sep 11, 2023, 10:33:34 PM9/11/23
to RC2014-Z80
On Sunday, September 10, 2023 at 1:41:10 PM UTC-7 Leslie Marentette wrote:
It took a while to figure this out.. but..
After I boot RomWBW + CP/M, I use "FDU.COM
FDU offers a list of controllers it supports. 
My Flock board only responded to [G] RCBus SMC (SMB)

Hmmm... You should be using option 'H' (RCBus WDC) for Flock.
 
Choosing [G] offers a menu and I immediately tried [F]ormat... big fail...

As Sergey already mentioned, FDU operates entirely independently from the ROM.  Don't bother trying to get CP/M to work until FDU is working.  FDU is specifically designed as a tool to help you make sure your FDC and drive hardware are working correctly without worrying about the RomWBW configuration.
 
And worried I needed to modify my ROM again...
Which got me looking at the RomWBW manual where I saw the [S]etup option in FDU.
Choosing [S] I was able to select: 
[03] 03: 5.25" 360KB - 9 SECTORS, 2 SIDES, 40 TRACKS, DOUBLE DENSITY
And now my floppy disk [F]ormatted, like magic.
Exited FDU
Wrote a file to the floppy and all is good...

Excellent.  Still wondering if you did this with option G or H at startup.  Should be using H.

Now .. after a power cycle .. I can still read the formatted floppy disk .. but when I go back into FDU it thinks I have a 3.5" 720KB drive.

FDU starts up with defaults each time.  It doesn't remember what you selected previously.  It is not a smart program.  Sorry.
 
Is there still something I should be doing in the ROM to let RomWBW know what drives are connected ?
Or.. does RomWBW just figure out what disk type is installed when it first access a formatted disk ?

RomWBW does need to be configured for your FDC type and your drive types.  The default configuration is for the RCBus WDC controller (which should be fine for you) and for a pair of 3.5" drives.  RomWBW will automatically detect HD or DD 3.5" disk media.  (FDU does not do this).  However, if one or both of your drives is 5", then you will need to adjust the RomWBW configuration and build a custom ROM.  Please let me know if you need any help with that.

Thanks,

Wayne

Leslie Marentette

unread,
Sep 12, 2023, 12:03:56 PM9/12/23
to RC2014-Z80
Hi Sergey,

I'm happy to paste up the modified files here, once I've tested them.

I did make a batch of boards with your art in RED.
They arrived in time for the FLOCK kit I bought on Tindie, so I was able to build in matching red :)
I've since modified my board with a snip and bodge to use address 0x40.
So-far my RTC is working great..

I figure out that the RTC app's *.asm file needed modification as well, in order to [I]nitialize, [S]et and [C]harge-on the DS1302

[RomWBW-3.2.1\Source\Apps\rtc.asm]

PORT_SCZ180    .EQU    $40        ; RTC port for SCZ180
...
PLT_SCZ180    .TEXT    ", SC Z180 RTC Module Latch Port 0x40\r\n$"

I have since learned that address 0x40 is used by my SC722 Z180 board for the SD cards UART I think...
I was going to chat with Steve Cousins about whether I should try to move the UART or add a chip to FLOCK in order to move the RTC to 0x0C

Will keep you in the loop

Thank you,

Leslie Marentette

unread,
Sep 12, 2023, 1:30:00 PM9/12/23
to RC2014-Z80
Hi Wayne,

Okay.. looks like I accidentally sent my response private, but this was supposed to be public, just in case another person comes along :)
Re-posting:

I confirm that at boot RomWBW indicates
    FD: MODE=RCWDC IO=0x50 UNITS=2

However, when I use FDU, I've been selecting 
    [G] RCBus SMC (SMB)
In order to access my floppy disks

I've spent 'even more' time tinkering and I think I can explain why I adopted this use.
If I select 
    [H] RCBus (WDC)
Then select [R]ead or [F]ormat FDU just spits out "RESET DRIVE..." errors and nothing more.
If I select
    [G] RCBus (SMC)
Then select [R]ead or [F]ormat the disk actually spins YAY! and I get an error, but .. see the disk is spinning, that's more better :)  

When you are flipping switches blindly in the dark, you use the feedback you get.

It wasn't until later that I figured out that I had to use the FDU [S]etup to configure the disk on each use.
But.. by then.. [G] was already preferred to [H], since it had spun the disk, making [H] the less good'er option.

I also figured out how and where to modify the RomWBW build, to indicate the type of disks I have attached.

[RomWBW-3.2.1\Source\HBIOS\cfg_scz180.scm]

FDENABLE    .EQU    FALSE        ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
FDMODE        .EQU    FDMODE_RCWDC    ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
FDCNT        .EQU    2        ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
FDTRACE        .EQU    1        ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
FDMEDIA        .EQU    FDM360        ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
FDMEDIAALT    .EQU    FDM360        ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
FDMAUTO        .EQU    TRUE        ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS

The RomWBW configuration seems completely separate from FDU, reinforcing your comment on it needing to be setup on each use.
Once I modified the ROM, reading and writing the formatted disks in RomWBW worked fine.

Thank you,


Wayne Warthen

unread,
Sep 12, 2023, 1:31:52 PM9/12/23
to RC2014-Z80
Yeah, probably good for other to benefit from this post.  Here is the reply I sent privately, but also possibly useful to others:

Good work!  You got everything exactly right.

Just a heads up.  When RomWBW v3.3 is released the configuration settings for the floppy driver was slightly improved and as a result the settings changed.  Specifically, the driver was enhanced to allow different drive types to be attached.  In v3.2, the FDMEDIA and FDMEDIAALT settings apply to all floppy drives, so you are not able to attach both a 3.5" and 5.25" drive.  In the upcoming v3.3, you now define the type of each drive.  FDMEDIA and FDMEDIAALT were deprecated and FD0TYPE and FD1TYPE were introduced.  The new default entries are:

FD0TYPE         .EQU    FDT_3HD         ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
FD1TYPE         .EQU    FDT_3HD         ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]

In your case, you would change FDT_3HD to FDT_5HD for one or both entries.

Thanks,

Wayne

Wayne Warthen

unread,
Sep 12, 2023, 1:37:24 PM9/12/23
to RC2014-Z80
On Tuesday, September 12, 2023 at 9:03:56 AM UTC-7 Leslie Marentette wrote:
I have since learned that address 0x40 is used by my SC722 Z180 board for the SD cards UART I think...
I was going to chat with Steve Cousins about whether I should try to move the UART or add a chip to FLOCK in order to move the RTC to 0x0C

Moving the RTC (on Flock) to 0x0C would be much more consistent with other Z180 RCBus configurations.  I know that is more work, but I think preferable to moving other components.

Thanks,

Wayne

Leslie Marentette

unread,
Sep 12, 2023, 2:26:16 PM9/12/23
to RC2014-Z80
Hi Steve,

So .. now that I've gotten familiar with the building of RomWBW and have all the 'bits' of my system working..
I'm looking more closely at the FLOCK board... 
I've moved the RTC to port 0x40, because without adding additional chips, this is what I could do.
And I've got art for a jumper selectable version of FLOCK.

I've now run into this:
Screen Shot 2023-09-12 at 1.36.07 PM.png

So... 0x40 is assigned to Serial ACIA #2 on my SC722 board.

Should I ?:
- Respin the FLOCK board, adding a separate IC to enable the RTC to be moved to 0x0C or
- Assign the Serial ACIA #2 to a different address location ?

I'm asking because I'm very new to this and I can't see all the possible implications of just 'moving the Serial ACIA #2'.

For me.. modifying the hardware would be .. easiest.
I can see that the FLOCK, as designed today, 'wastes' a lot of IO address space, by using 8 byte chunks, which seems extra painful when coupled with a Z180.
So .. maybe 'we' would be better off with the RTC being assigned to a single, jumper defined, address, while leaving the floppy addressing alone ?

Appreciate your thoughts.

Thank you,

On Saturday, September 9, 2023 at 5:43:20 AM UTC-4 Steve Cousins wrote:

Alan Cox

unread,
Sep 12, 2023, 3:05:28 PM9/12/23
to rc201...@googlegroups.com
Do the 0x0C ports actually clash. I thought they used different bits and the read side only drove the relevant bits to the bus for each card ?

Leslie Marentette

unread,
Sep 12, 2023, 3:52:34 PM9/12/23
to RC2014-Z80
FLOCK only offered 0xC0, perhaps you have your nibbles twisted ?

Or perhaps I don't understand the context of your question ?

Sergey Kiselev

unread,
Sep 12, 2023, 5:00:28 PM9/12/23
to RC2014-Z80
TL;DR: I'll keep it at 0x40

Long read:
SC722 uses 0x0C, bit 2 to generate SD card /CS signal.
Typical DS1302 RTC implementation (for historical records, borrowed from N8VEM SBC) uses bits 4-7 for writing control/data signals to RTC and bit 0 for reading the RTC data.
While the bits don't conflict, it is still likely that using 0x0C for both RTC and SC722 will result in some kind of conflict and unintended consequences.
This is because the RTC and SD driver in RomWBW doesn't preserve the bits it doesn't use. (The registers are "write only", so it is impossible to read/modify/write them.
It is possible to "shadow" the value in some place in memory, but that's just additional headache.

SC722 does not use port 0x40, at least not by default. The Z180 I/O range seems to be set to 0xC0-0xFF, which causes the conflict with the original RTC address in Flock.

SC722 doesn't have an integrated ACIA.
The Default RomWBW RC-Z180 configuration doesn't even enable ACIA, with that being said, it sets the default address for the second ACIA at 0x84
It is possible to install additional ACIA (e.g. SC705) modules. And, indeed, it looks that the recommended address for the secondary ACIA is 0x40. With that being said, I think the probability that a system will have a Z180 module (with two serial ports), and two more ACIA cards is pretty low. Also, it is possible to move ACIA to other locations pretty easily using the jumpers.

Given all this, I think it is reasonable to keep RTC at 0x40

Question to Steve: Where does the 0x40 recommendation come from? The ACIA takes only 2 I/O addresses, wouldn't it make sense to put the second one at 0x82 or 0x84 as RomWBW configuration suggests?


Steve Cousins

unread,
Sep 12, 2023, 5:02:53 PM9/12/23
to RC2014-Z80
Address 0x40 is indeed used for the second ACIA by the Small Computer Monitor. SCM looks for the ACIA at this address but if the ACIA is not correctly identified then SCM will not interfere with whatever device exists there.

The distribution RomWBW for SC722 does not enable ACIA support. The address is therefore free for other devices. The ACIA module address is fully configurable with jumpers so if you wish to enable ACIA support you could select a different address for it.

In short, I don't think you will have problems using address 0x40 for the RTC. I do agree with others that 0x0C would be a better choice for the RTC address. Several of my products use address 0x0C for the RTC.

Just to clarify the SD card address issue. Address 0x0C has some bits used for the SD card and some for the real time clock, such that both devices can share the address.

Steve

Wayne Warthen

unread,
Sep 12, 2023, 5:28:12 PM9/12/23
to rc201...@googlegroups.com
On Tue, Sep 12, 2023 at 2:02 PM Steve Cousins <steve...@gmail.com> wrote:
In short, I don't think you will have problems using address 0x40 for the RTC. I do agree with others that 0x0C would be a better choice for the RTC address. Several of my products use address 0x0C for the RTC.

Does this mean that 0x40 is the default port address for the RTC on SC7xx series?  Do I need to create a new default config for SC7xx?

Just to clarify the SD card address issue. Address 0x0C has some bits used for the SD card and some for the real time clock, such that both devices can share the address.

Yes, in fact, RomWBW does maintain a shadow copy of the RTC/SD Card port as needed.  😀

Thanks,

Wayne 

Steve Cousins

unread,
Sep 12, 2023, 6:00:25 PM9/12/23
to RC2014-Z80
Hi Sergey,

When I wrote SCM I wanted an address for ACIA #2. At the time I hadn't designed my own modules and in any case I wanted compatibility with the RC2014 ACIA module. The RC2014 ACIA module has very limited address decoding so the ACIA appears from 0x80 to 0xBF. I can't remember specifically why I chose 0x40, but it did have to be outside the range 0x80 to 0xBF. I've stuck with that address for my RC2014/RCBus designs.

Steve

Steve Cousins

unread,
Sep 12, 2023, 6:03:33 PM9/12/23
to RC2014-Z80
Hi Wayne,

I think this is what I want to go with as the standard Z180 SC700 series build.

Steve

Alan Cox

unread,
Sep 12, 2023, 6:28:53 PM9/12/23
to rc201...@googlegroups.com
> Typical DS1302 RTC implementation (for historical records, borrowed from N8VEM SBC) uses bits 4-7 for writing control/data signals to RTC and bit 0 for reading the RTC data.
> While the bits don't conflict, it is still likely that using 0x0C for both RTC and SC722 will result in some kind of conflict and unintended consequences.
> This is because the RTC and SD driver in RomWBW doesn't preserve the bits it doesn't use. (The registers are "write only", so it is impossible to read/modify/write them.
> It is possible to "shadow" the value in some place in memory, but that's just additional headache.

ROMWBW shadows it as does Fuzix. It's needed for the SC126 which uses
0x0C for all of it.

Alan

Wayne Warthen

unread,
Sep 12, 2023, 6:29:26 PM9/12/23
to RC2014-Z80
Thanks Steve.  I think it is worth including in the default builds.  I will integrate this.

-Wayne

Sergey Kiselev

unread,
Sep 12, 2023, 7:00:09 PM9/12/23
to RC2014-Z80
ROMWBW shadows it as does Fuzix. It's needed for the SC126 which uses
0x0C for all of it.

Alan

Yes, I stand corrected then :)
It does make sense for SC126 and pervious systems (N8 comes to mind) from hardware perspective to use a single latch to control the RTC, SD, and other things...

Moving 0x0C in Flock will require adding another IC (e.g. 74*688) to generate RTC chip select.
Another option is to use programmable logic, e.g. ATF16V8, which would theoretically allow saving an extra IC (it would replace 74HCT138 and 74HCT32) and a resistor. But I think people might have some mixed feelings when it comes to programmable logic.

-Sergey

 

Sergey Kiselev

unread,
Sep 12, 2023, 7:45:28 PM9/12/23
to RC2014-Z80
Here is the implementation using an ATF16V8 SPLD.
It also reduces the I/O ports use by adding A1 and A2 decode (so only two ports per range)

Of course the address decode / control signals generation logic is hidden in the SPLD. But the code is pretty simple (I haven't tested it so, there might be errors):

GAL16V8    ;  Works with GAL16V8B and ATF16V8B
FLOCK_V2   ;  Flock Version 2

A1      A2      A3      A4      A5      A6      A7      RD      WR      GND
M1      IORQ    CCRWR   FDCCS   DORWR   DACK    RTCADDR RTCRD   RTCWR   VCC

/CCRWR = /IORQ * M1 * /A7 * A6 * /A5 * /A4 * A3 * /A2 * /A1
/FDCCS = /IORQ * M1 * /A7 * A6 * /A5 * A4 * /A3 * /A2 * /A1
/DORWR = /IORQ * M1 * /A7 * A6 * /A5 * A4 * A3 * /A2 * /A1
/RTCWR = /WR * /IORQ * M1 * A7 * A6 * /A5 * /A4 * /A3 * /A2 * /A1 * /RTCADDR +
         /WR * /IORQ * M1 * /A7 * /A6 * /A5 * /A4 * A3 * A2 * /A1 * RTCADDR
/RTCRD = /RD * /IORQ * M1 * A7 * A6 * /A5 * /A4 * /A3 * /A2 * /A1 * /RTCADDR +
         /RD * /IORQ * M1 * /A7 * /A6 * /A5 * /A4 * A3 * A2 * /A1 * RTCADDR
/DACK = /RD * /IORQ * M1 * /A7 * A6 * /A5 * A4 * A3 * /A2 * /A1

DESCRIPTION

Address decode and control signals generation logic for Flock V2
Floppy Disk Controller (FDC) and Real Time Clock (RTC) module

Flock-V2.png

Leslie Marentette

unread,
Sep 13, 2023, 8:44:47 AM9/13/23
to RC2014-Z80
That looks great and I've got a drawer full of ATF16V8
Happy to be a guinea pig

Sergey Kiselev

unread,
Sep 13, 2023, 9:32:13 PM9/13/23
to RC2014-Z80
Leslie,

I am working on rerouting the PCB for the ATF16V8 version.
Looking at your board layout I've noticed that you've added a jumper, apparently to disconnect 5V going to the floppy drive. It is not clear to me why it would be needed though. I suppose if you want to disconnect the power from the floppy drive, you can simply pull the power connector?

I also noticed that you've changed the power connector to 4 pin Berg header.
The reason I use that specific connector, is that it comes with a shroud, which makes it less likely to short-circuit the 5V power supply while playing with the setup.
I think such shrouded connectors also exist in a 4 pin version. Any particular reasons you prefer 4 pin connector instead of 2 pin one? The only thing I can think of is a better ground connection. But almost every other pin on the FDC interface is a ground, so I don't think that extra ground is needed.

All:
Other things I am considering changing while I am at it. Feedback on these things will be appreciated:
- Make it an RCBus board (slight change in the form-factor, signal names, etc.)
- Add an option to use a CR2032 battery instead of a supercapacitor
- Option for the second crystal. I think it is only required when using 360 KB diskettes in a 1.2MB / 5.25" drive that use 300 Kbit/sec transfer rate (vs 250 or 500 Kbit/sec for other diskettes). But I guess there is no harm in having that option
- Perhaps route the FDC IRQ to the header. Not sure if that's very useful. The RomWBW FDC code works nicely without using interrupts, and if I recall correctly, interrupt driven implementation was slower than polled I/O.

Thanks,
Sergey

Leslie Marentette

unread,
Sep 13, 2023, 9:54:56 PM9/13/23
to RC2014-Z80

Sergey,

Yes, the jumper was to disable power when the connector was not in use, with all those evil pins sticking out :)
Also.. you could use the connector to supply a solid ground connection without allowing the drives isolated +5V source to flow back into the card.
Sure.. you can do that through the many pins of the ribbon cable, just not my first instinct.

The Berg connector was picked to allow the card to work with ready made commercial floppy power cables.

I received your kit with a nice pre-made cable, but then thought..  Hum.. there are five of us building this.. 
and this would mean making five such cables, but if this were a Berg connector.. well then... China Inc. could supply the cables without all the cutting, stripping, crimping, etc..
So ... the connector was altered for ~~laziness~~ convenience . :D

That was all the 'reasoning' .. 

- Yes, we changed the board to 40 pin long, because the very first thing that I did after I built the board was not notice it was 39 pins long and plugged it in aligned to the rear pin, boy did it get hot :)
So.. 40 pins long makes that harder to do..  and some or all double pin row would make the card more stable...

- I've already heard a request on this end to go with a coin cell \ super cap combo footprint, which I would have done, on a rip-up-re-lay.

- The second crystal sounds interesting, but no opinion, as I tend not to cross DD & HD media on DD & HD drives.

- Routing the IRQ to the header with a jumper, such that it works a well as it does now, and you can later work on the interrupt driven implementation would seem 'fun'.

Thank you,
Les

Sergey Kiselev

unread,
Sep 14, 2023, 12:54:40 PM9/14/23
to RC2014-Z80
Les,

Can you please point me at the ready-made Berg to Berg cables? I looked at eBay, and I don't see anything other than fairly expensive offerings from UK: https://www.ebay.com/itm/155133425203
But then again, I don't feel comfortable with putting an unshrouded male connector with power supply and ground pins next to each other on the PCB.
I tried looking for a shrouded male PCB mounted Berg connector (I recall, some floppy drives had these), but I couldn't find one.
Perhaps a compromise might be using shrouded and polarized 2.54 mm / 100 mil connector, something like:
4 pin connector - this one is similar to audio connectors on the IDE CD-ROM drives: https://www.mouser.com/ProductDetail/571-5-103673-3 
The advantage, supposedly, is that it will be compatible with regular 2.54 mm jumper wires / rectangular connectors... Ideally people would use polarized ones.

Thanks,
Sergey

P.S. I am going to start a discussion about possible Flock improvements in the other - retro-comp group, as it seems to get beyond RC2014(tm) conversation.

Leslie Marentette

unread,
Sep 14, 2023, 4:15:33 PM9/14/23
to RC2014-Z80
https://www.aliexpress.com/item/1005002496348255.html
0.70 Pound sterling each

I added a bunch of these to my last Ali order
The power jumper made it safe, but it is of course your design to do with as you like.

Leslie Marentette

unread,
Sep 14, 2023, 6:10:51 PM9/14/23
to RC2014-Z80
They also have these for dual floppy setups..
Capture.JPG

And .. I like using this one, for when I provide the power from an isolated PSU


Capture2.JPG

Sergey Kiselev

unread,
Oct 16, 2023, 2:21:19 AM10/16/23
to RC2014-Z80
And a month later we have Flock V2... :)


Changes from V1.0:
  • Update form factor from RC2014* compatible to 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

Flock_V2.jpg

Steve Cousins

unread,
Oct 16, 2023, 4:41:27 AM10/16/23
to RC2014-Z80
Very nice, Sergey. Good to see another RCBus 80-pin module.
Steve

Reply all
Reply to author
Forward
0 new messages