News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

ABBA switch, the other way

Started by gerald, 17:37, 06 August 12

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

gerald

Hi all

Since some SW do not work from B drive, and I am not keen on integrating a 3 1/2 drive into my 6128, I finally decided (15year later :o ) to do an ABBA switch.
However, the usual solution involve a bit too much cable and track cutting for my taste.

Looking at the 6128 schematics, I looks like there is an other way.

Drive selection is a bit non standard as DS1 is inverted DS0.
To swap internal and external drive, you just need to have a controlable inverter between the FDC and the DS0 open collector driver.
That is controlable inverter is available on board as a free XOR gate in IC209 (pin 4, 5, 6). IC209 is part of ROM7 address decoder.

What is needed :
  2 resistor 2.2k, 10k (I've used SMD) but regular 1/4W is OK
  1 switch
  few wires

How to proceed :
  1. cut track between FDC (IC201.29). Best place is close to IC209 pin 29
  2. connect IC201.29 to IC209.5
  3. connect IC209.6   to the via on track from IC209.29 to IC206.9
  4. connect the resistances from IC209.4 /  IC209.6 to 5V
  5. connect the switch between IC209.6 and GND

When the switch is closed, the internal drive is A
When the switch is open, the internal drive is B


end notes :
  1. This should apply to DDI1 as well (schematic is identical). EDIT : Gate is used by 4MHz to 8MHz clock generation for FDC data separator
  2. This does not apply to 6128+ as the XOR gate is now merged in ASIC
  3. This may not apply on cost down CPC for same resason as 2. I do not have any to check

IanS

Seems like a really nice solution, have you actually wired it up yet?

I'm slightly suprised the inputs to the unsed gate aren't tied to gnd on the pcb, floating inputs generally not a good idea.

gerald

It's up and running, but I closed the CPC before taking any picture  >:(
Floating input is not a big issue on TTL gate.

That spare gate seems to have been forgotten by the designer as it does not appear anywhere on the schematic.
There is also a spare inverter (IC117) but this one has its input tied to ground because it a CMOS gate.

gerald

Pictures !!!

Bottom side
[attach=2]
Sharp eyes will notice that I did not cut the track as described  :P But where I did the cut is more risky.

Top side
[attach=3]
Switch is on bottom left near the audio jack connector. Wires goes under the board and are connected to lyre socket pins on IC209. This allow removing the PCB from without messing with cable.

IanS

I'd put off adding a switch for same reasons, but I'll have to give this a try.

(What is the other board with the crystal on over the 8255?)

gerald

Quote from: IanS on 19:12, 06 August 12
(What is the other board with the crystal on over the 8255?)

That's a PS2 keyboard adapter.

Bryce

Why are you linking pin 4 to the output via the 10K Resistor? Shouldn't this be tied to the 5V rail instead? And is the 2.2K really necessary? You could probably link it directly. Nice solution though, I think I'll use it on my 6128 too :)

Bryce.

gerald

Quote from: Bryce on 20:28, 06 August 12
Why are you linking pin 4 to the output via the 10K Resistor? Shouldn't this be tied to the 5V rail instead?
Where ? in picture or diagram ?
Look tied to 5V on both.

Quote from: Bryce on 20:28, 06 August 12
And is the 2.2K really necessary? You could probably link it directly. Nice solution though, I think I'll use it on my 6128 too :)
2.2k is required for the XOR open collector output. Driven input may go high by itself but not in a controlled way.

Bryce

Doh, forget it, I was referring to the schematic, but I followed the track wrong, didn't realise that that IS the 5V rail. I should stop reading schematics after the 4th beer :D

Bryce.

Audronic

#9
@gerald

Do you have picture of where you mounted the Switch Please

Oops Found it

Thanks    Ray
Procrastinators Unite,
If it Ain't Broke PLEASE Don't Fix it.
I keep telling you I am Not Pedantic.

xesrjb

Quote from: gerald on 17:37, 06 August 12


When the switch is closed, the internal drive is A
When the switch is open, the internal drive is B



What does it mean exactly?


Switch is closed-> internal is A and external is B
Switch is open-> internal is B and external is A


xesrjb
,,The pellet with the poison's in the vessel with the pestle; the chalice from the palace has the brew that is true."

gerald

Quote from: xesrjb on 09:16, 23 May 21

What does it mean exactly?


Switch is closed-> internal is A and external is B
Switch is open-> internal is B and external is A


xesrjb
Yes !

xesrjb

Best solution ever seen, I will try...


xesrjb
,,The pellet with the poison's in the vessel with the pestle; the chalice from the palace has the brew that is true."

simulant

Hey guys, I thought you may be interested in this thread I started - the aim was just to try to get to the bottom of any ways around this using software, for those who prefer to not have to mod their machine. Maybe some of you guys can also help with ideas if anyone is well-versed in Z80 assembly.

https://www.cpcwiki.eu/forum/software-related/hex-editing-games-and-software-to-use-drive-b/
Amstrad Addict magazine and other classic computing print magazines - https://www.addict.media

Amstrad BBS - https://amstrad.simulant.uk

Amstrad Hardware & Software: https://www.simulant.uk/shop/

patches

Just want to say fabulous work developing this mod. I've been working on implementing it, and have a question and a note:

Quote from: gerald on 17:37, 06 August 124. connect the resistances from IC209.4 /  IC209.6 to 5V
Is there a reason why pin4 gets a 10k resistor and not a 2.2k one?

Quote from: gerald on 17:37, 06 August 125. connect the switch between IC209.6 and GND
I spent far too much time trying to work out why the switch goes on the XOR output, and not an input, but I should have just looked at your diagram or photos.  :picard: You connected the switch to pin#4, which is one of the inputs, and not pin#6 which is the output. The text description needs editing  :-X

Once I finish my mod I'll post some photos

patches

Here we go! I didn't do it exactly the same way. Please forgive the graininess of the photos. I can take better pics when I do a full electrolytic cap replacement if you folks are interested.

Step 1: socket IC206 (14 pins). This is a 74LS38s quad NAND gate that handles logic for the FDC. No need to modify or risk damage to the FDC itself when compatible parts for IC206 are still available  ;D Be sure to maintain the bridged connections on the underside of the board




Step 2a: double stack sockets for IC206. In the upper socket, pull pins 9 and 10 away, to be soldered to later. This is the part that disconnects FDC Drive Select from the original pathway


Step 2b: Alternatively, pull out pins 9 and 10 of IC206 directly. It is a replaceable part after all! So pins 1-8 and 11-14 need to go into the socket, but 9 and 10 need to be isolated from the socket. However, this will make it more difficult to reverse the mod if you ever want to

Step 3: solder a 2.2k resistor between IC209.6 and 5V. Handy tip: pin 14 on these 74LS chips is 5V (pin 7 is ground). So I did IC206.14 to IC209.6. Messy work, but there's not much room to get the iron in on the underside


Step 5: solder a 10k resistor between IC209.4 and 5V. I chose IC211.14

Step 6: wire up IC209.5, XOR input 2, to IC201.29 Drive Select. No resistor is needed here as the FDC will drive the logic itself

Step 7: mount the switch. I bridged the top side and common pins to ground, soldering directly to a lug next to the external FDD connector. If you do the same, make sure you have enough clearance to still plug in your drive cable. Keep the other side isolated from ground (I used some electrical tape)

Step 8: wire up IC209.4, XOR input 1, to the non-ground side of the switch. When the switch is open, it will be pulled up to 5V by the 10k resistor (a logical 1). When closed, it will short to ground (a logical 0)

Step 9: wire up IC209.6, XOR output, to the isolated IC206.9 and IC206.10 on the socket. Logically, this will invert the output of the XOR, and feed it back into the Drive Select circuit on the floppy drive side. (If you want the ABBA switch to operate the opposite way, instead wire up IC209.6 to a via for IC206.8, or directly to the socket)



To disable this mod, all you need to do is unplug the top socket, and reinsert IC206 into the lower socket (step 2a) or restore the original IC206.9 and IC206.10 pins (step 2b)

You may also notice a 2nd switch in my photos. I added this to bypass the logic that turns 12V to the floppy drive on or off. This allows me to power up the drive without the FDC operating (CPC powered off), so I can plug a Greaseweazel into the external floppy connector. In theory, I shouldn't have to take the CPC apart to plug the drive into the Greaseweazel, but in practice that doesn't seem to work :( The FDC still being in-circuit might be confusing it


I used a 2-position DIL switch, bridged positions 1 and 2 on both sides, wired the under side to the red power lead that goes to the floppy, and the top side to 12V from the blank inductor next to the connector for 12V. It's isolated from ground with a bit of cardboard to help its positioning. The mess is mostly hot glue

I'm also using an external 5V to 12V step-up circuit. This was a USB-to-cigarette lighter adapter that I chopped up and soldered 2.1mm sockets to


It's been a journey for me, but it's all done  ;D I haven't cleaned up the board though, as I still need to swap out all the electrolytics, which appear to have all leaked

Bryce

Quote from: patches on 18:18, 13 March 25Is there a reason why pin4 gets a 10k resistor and not a 2.2k one?


The resistors are "pullups". There are two types, weak and strong. A strong pullup (2k2) is used where switching speed is important, but it uses more current. A weak pullup is preferable as far as current consumption is concerned, but when the CPC was being designed, the current consumption wasn't really a priority, so they have used strong pullups (almost?) everywhere.

Bryce.

patches

Quote from: Bryce on 14:13, 14 March 25
Quote from: patches on 18:18, 13 March 25Is there a reason why pin4 gets a 10k resistor and not a 2.2k one?


The resistors are "pullups". There are two types, weak and strong. A strong pullup (2k2) is used where switching speed is important, but it uses more current. A weak pullup is preferable as far as current consumption is concerned, but when the CPC was being designed, the current consumption wasn't really a priority, so they have used strong pullups (almost?) everywhere.

Bryce.
Thanks Bryce! Still learning all this fun stuff, so your explanation is greatly appreciated  ;D

Powered by SMFPacks Menu Editor Mod