BACK TO HIDENSITY PAGE
From: "Robert E. Brose II" <jriver!os9!boblist@UUNET.UU.NET>
Subject:      CoCo3 high-density controller mod
With Modifications by: Paul T. Barton.
Please read everything first, to make decisions on how you are going to proceed.

This is an update on the CoCo3 floppy controller high-density mod I posted to CIS a couple of years back.

It deals with the hardware mod to the original CoCo floppy controller to enable it to do 1.2/1.4 Meg high-density diskettes.

1) The mod used the old controller with the 1793 because, according to the Western Digital Storage Management Products Handbook, the 1773 used in the newer controller is not capable of the 500kbs data transfer rate.

In the "OLD" days, this data transfer rate was used with 8" drives which bear an electrical resemblance to the 1.2 Meg 5.25" drive, both have 360 rpm spindle speeds and 500 kbs data transfer rate.

2) There is a reliability problem with the old controllers on the CoCo3. From what I've seen so far, about 50% of the old controllers will work at 1.8 MHz. It seems to depend on the vintage of the 1793 used in the controller.

3) There IS A SOLUTION TO THE PROBLEM. It has 2 parts. The first involves the FDC. The problem is a bad design in the original controller regarding the select logic and the choice of the 1793 chip. The R*/W line is in advance of the CS signal because of delays involved in the decoding of the address lines for CS. HOWEVER, according to the WD manual, the RE and WE signals should trail the CS signal by at least 50ns. There is a mod in the Spectral Associates Disk Basic Unraveled book which fixes this by delaying the RE signal until AFTER the E clock returns high.

4) This however creates a demand for faster response to the RE/WE signals. The 1793 with it's required RE and WE pulse minimums of 400ns can't hack it at CoCo3 speeds.

5) The answer is to use a FDC with quicker logic. The Fujitsu MB8877A is a drop in replacement for the 1793 which, satisfies these requirements. They have been available locally here as surplus for $3.50.

6) As an alternative, the 1793, 1691, 2143 and 74ls629 can be replaced with a WD-2793A which incorporates all of the above logic and is much faster internally. This requires a fair amount of rewiring and a scope to adjust the controller.

To sum up, you need to get your old controller working reliably BEFORE doing the high density mod. Use a MB8877A and the spectral mod if necessary.

Good luck!

--
| Robert E. Brose II     N0QBJ  |
| uunet!jriver!os9!bob          |
| compuserve 72067,3021         |

From: Robert E. Brose II <jriver!os9!boblist@uunet.UU.NET>
Subject: floppy mod instructions

Instruction for modifying the ORIGINAL RADIO SHACK FLOPPY CONTROLLER
--------------------------------------------------------------------

The controller MUST be the one with the full sized board, a 1793 controller chip and three adjusting potentiometers. According to the Western Digital Manual, the 1773 (used in the newer controllers) CANNOT do high density.

This modification is NOT for the faint of heart or those inexperienced with hardware modifications. If you don't know what "piggyback" means when referring to chips, forget it! This modification requires 32 soldering connections, 18 jumper wires and a lot of patience. Do this on you old spare controller if you can. The old controller needs 12 volts therefore you MUST have a multipak or equivalent. This modification will allow the controller to use either 250 kbs or 500 kbs data transfer rate. This is the difference between the standard 5.25" 360k or 3.5" 720k drives and a 5.25" 1.2 Meg or 3.5" 1.4 Meg drive.

What you need
-------------
1 74LS74
1 74LS158 (or 74LS157)
1 3.9k 1/4 watt resistor
1 mini DPDT toggle switch (optional)
Wire for the jumpers. I recommend standard wire wrap wire as RS carries. This is very important, DO NOT use thick wire. Wire wrap wire is 30 gauge. Just right for these kinds of projects.

The mod will be done so if a mistake is made and you want to abandon it, you can just remove all of the jumpers plug in replacement chips for the ones piggybacked to and you'll be back to where you started. If you want this option, buy an extra 74LS74 and a 74LS221. There are NO trace cuts in this mod. IC pins are left out of the socket to get the equivalent of a trace cut.

If you need to reverse the mod, those pins MUST be reinserted into their respective sockets. There is ABSOLUTLY NO GUARANTEE OR WARANTEE EXPRESSED or IMPLIED FOR THIS MODIFICATION. Now, on to the fun part!!

We will be piggybacking a 74LS74 on to the existing 74LS74 at IC1. We will also be piggybacking a 74LS158 onto the 74LS221 at IC7. Some other chips will be soldered to and some pins will be removed from the sockets for some IC's. These instructions will be entirely verbal, no illustrations.

First, remove U1 (74LS74) from its socket. Position a new 74LS74 on top of it with the pins EXACTLY overlapping (this is called piggybacking). Be sure both pin 1's are lined up or it'll be poof time when you apply the power.

On the upper 74LS74, bend up pins 2,3,5,6,8,9,10,11,12 and 13 so they point directly away from the body of the IC. Pins 1,4,7 and 14 should still be overlapping the lower 74LS74.

Carefully solder these pairs of pins together being careful not to blob the solder onto the legs of the lower 74LS74 as you will be plugging the pair (stack) of chips back into the U1 socket when done.

On the lower 74LS74, bend pin 11 out away from the body of the chip as you did for some of the pins on the upper IC. Pin 11 will NOT be going back into the socket.

Prepare six 3" jumper wires (prepare means strip back the insulation on each end of the wire, no more than 1/16". Then tin the exposed wire on each end of the jumper).

Solder the wires to the stacked IC's as follows:

One end of each wire will be unconnected.
Solder,

1 jumper to pin 11 on the lower IC (the pin sticking out)
1 jumper to the lower IC pin 3 (must still be able to go into the socket)
1 jumper to the lower IC pin 6 (must also be able to go back into the socket)
2 jumpers the upper IC pin 3
1 jumper to the upper IC pin 6
Also, prepare a 1.5" wire and solder it from the upper IC pin 2 to the upper IC pin 6 taking care not to disconnect the wire already on the upper IC pin 6.

You may now carefully plug the IC stack back into the IC1 socket making sure all pins get seated into the socket with the exception of pin 11.

Second, we'll be doing a similar piggyback mod to the 74LS221 in the U7 socket.

Remove the 74LS221 from the socket. Position the 74LS158 on top of the 74LS221. Make sure that the two IC's are properly aligned and that the two pin 1's are aligned together. Bend up all of the pins on the upper IC EXCEPT pins 8 and 16.

Solder the two pin 16's together and also solder the two pin 8's together. As before, make sure not to blob solder on the legs, as the stack will be plugged back into the U7 socket.

Bend pin 13 on the lower IC away from the body of the IC so it cannot be reinserted into the socket. Prepare four 1.5" jumpers, one 2" jumper and one 3" jumper. Solder them in as follows:

1 2" jumper to the lower IC pin 2
1 1.5" jumper from the joined pin 8's to the upper IC pin 15
1 1.5" jumper from the upper IC pin 15 to the upper IC pin 10
(Pin 11 if -157)(taking care to not disconnect the wire already at pin 15)
1 1.5" jumper from the tied together pin 16's to the upper IC pin 11
(Pin 10 if -157)
1 1.5" jumper to the upper IC pin 7
1 3" jumper to the upper IC pin 1

Plug the stack back into the U7 socket, making sure all of the pins are seated firmly EXCEPT pin 13, which should be sticking out.

Solder a 3.9k resistor from the upper IC pin 9 to the side of R18 (3.9k) which, is the closest to the U7 socket.

Final Assembly
--------------
Remove U11 (the 74LS629). Solder one of the 3" jumper wires from U1, the upper
74LS74 pin 3 to the top of the 74LS629 pin 7 making sure not to blob solder.
Plug U11 back in making sure ALL of the legs seat firmly into the socket.

Choose:
-------

1. Unplug U3 (7406 or 7416). Connect the 2" wire from the lower IC pin 2 of the stack at U7 to the top of pin 1 of the IC that was in U3 (making sure not to blob solder on the leg). Plug U3 back into it's socket making sure all of the legs seat firmly into the socket.

2. Instead of soldering to U3 Pin 1, solder the wire to the via immediately in front of U3 Pin 1. Eases replacement of this chip, later.

Now,
Solder the open end of the jumper connected to U1 lower IC pin 11 to U7 upper
 IC pin 4
Solder the open end of the jumper connected to U1 lower IC pin 3 to U7 upper
 IC pin 3
Solder the open end of the jumper connected to U1 lower IC pin 6 to U7 upper
 IC pin 2
Solder the open end of the jumper connected to U1 upper IC pin 6 to U7 upper
 IC pin 5
Solder the open end of the jumper connected to U1 upper IC pin 3 to U7 upper
 IC pin 6

Choose 1 of the following select methods.

Select option 1 - using WRITE PRECOMP bit and a SWITCH
------------------------------------------------------
Mount the dpdt mini switch somewhere handy. I mounted mine in the hole near C1 and the piggybacked 74LS74's. Make sure that the switch DOESN'T SHORT OUT any traces! I'll refer to the switch pins as follows:

               1   2   3         pin 2 toggles between pins 1 & 3
               4   5   6         pin 5 toggles between pins 4 & 6

Carefully remove U12 (the 1691)from its socket. Bend up pins 9 and 16 away
from the body. Put the 1691 back into the U12 socket making sure that all pins
firmly seat with the exceptions of pins 9 & 16.

Prepare and solder a 4" jumper from U12 (1691) pin 9 to the DPDT switch pin 5
Solder the open end of the jumper connected to U7 upper IC pin 7 to U12 pin 16
Solder the open end of the jumper connected to U7 upper IC pin 1 to the DPDT
 switch pin 2
Prepare and solder a short jumper from the DPDT switch pin 3 to the DPDT
 switch pin 4
Prepare and solder a short jumper from the DPDT switch pin 4 (taking care to
 not disconnect the wire already there) to a convenient ground (for example,
 IC1 pin 7 on the SOLDER side of the board)
Prepare and solder a short jumper from the DPDT switch pin 1 to the DPDT
 switch pin 6
Remove U8 (the MC14174) and prepare a 3.5" jumper. Solder a wire to the top
 of pin 12 without blobing solder on the leg. Plug U8 back in making sure all
 of the pins seat firmly into the socket.
Solder the open end of the jumper connected to U8 pin 12 to the DPDT switch
 pin 1 taking care not to disconnect the wire already there.
Skip to check procedure below.

Select option 2 - using a DRIVE SELECT BIT
------------------------------------------
Carefully remove U12 (the 1691) from its socket. Bend up pin 16 away from the body. Put the 1691 back into the U12 socket making sure that all pins firmly seat with the exception of pin 16.

Solder the open end of the jumper connected to U7 upper IC pin 7 to U12 pin 16.

Now, there are two choices of attaching the next group of wires,

First choice: (original)
-------------

Remove U2 (7406) from the socket. Choose a drive select line to use, either DS1 or DS2 (DS0 should not be used or you will not be able to boot, DS3 is usually used to access the backside of double sided drives so that cannot be used either). Solder a 2" jumper to pin 3 (DS1) OR pin 5 (DS2) without blobing solder on the leg. Plug U2 back into its socket making sure all pins seat firmly.

Solder the open end of the jumper just attached at U2 to U7 Upper IC pin 1.

Second choice: (Using via's)
--------------

Solder a wire from the via immediately in front of U7 Pin1 (DS1) or the via between C21 and C10 (DS2).

Solder the open end of the jumper just attached at U2's via selection, to U7 Upper IC pin 1.

This eases replacement of U2 without unsoldering/soldering.

OPTIONAL - Adding a HiDensity LED indicator:
--------------------------------------------

Obtain a low-power LED and a 1.8K resistor.

Solder a prepared 1" wire from the upper IC at stack U7 pin 15 to upper IC pin 14 (if -157 then pin 13). Solder a prepared 1" wire from upper IC at stack U7 pin 16 to upper IC pin 13 (if -157 then pin 14). Solder one end of a 1.8K resistor to upper IC pin 11. Solder the other end of this resistor to the Anode on the LED. Solder the Cathode of that LED to ground, the bar along connector P1 is a good place.

CHECK PROCEDURE
---------------
Now recheck the entire procedure to make sure no mistakes were made. Check all soldering joints for good connections. Check for shorts, especially by the DPDT switch. There should be NO unconnected jumper wires! If there are, go through the entire sequence to see what you missed. Now, we need to calibrate and test the controller.

Use a multipak which, will protect the CPU (you need +12 anyway) in case you made a fatal wiring mistake. Plug the controller into slot 4 as usual. Power on the multipak, then the computer. If the DISK BASIC message doesn't come up quickly then shut the computer off immediately and power everything off. Unplug the controller and check for shorts and recheck all connections against the modification procedure. If all else fails, you can always remove the piggybacked stacks at U1 and U7, carefully pull off all of the jumpers, insert a new 74LS74 into U1 and a new 74LS221 into U7, pull out U12, carefully bend pins 9 and 16 back down and reinsert it into it's socket, remove the switch and you'll be back to where you started. Presuming you made it past the smoke test, you will need to figure out your switch position and calibrate the controller.

Switch position determination (SKIP IF DRIVE SELECT METHOD WAS CHOSEN)
----------------------------------------------------------------------
When the switch is in the position such that pins 1 & 2 are connected together (also pins 4 & 5) the controller is in the HIGH-DENSITY enabled position (use a meter to test the connection between pins 1 & 2).
When the switch is the other way, the normal configuration is active, which means write precomp is available. Put the switch into normal position for calibration.

Calibration of the VCO
----------------------
The controller can be calibrated either with a scope or by trial and error.
Either way, mark the original position of R8 so you can reverse the modification if you can not get it to work right.

If using a scope, connect the scope to the VCO output of the 74LS629 (U11) pin 7 and adjust R8 for 4 MHz. If doing the adjustment by trial and error, put a formatted RSDOS disk into drive 0 and do a DIR from RSDOS. Turn R8 until you can get a directory. You may have to do lots of DIR commands. Try to find the extreme settings of R8 that will still produce a directory, then set R8 between the two extreme settings. The range in which the DIR will work will be quite small and your final setting for R8 should be as close as possible to the middle of the range.

THAT'S IT FOR THE HARDWARE.
 
 

Now, apply the patch to CC3DISK, pick your descriptor, make a new OS9 boot disk. After booting put the switch (if you have one) into the HIGH DENSITY ENABLED position and you're ready to go.

For use in RSDOS, the switch (if you have one) should be in the normal position. Note: The high-density drive is not usable in RSDOS.

                                ENJOY!

P.S. please send any comments or clarifications to me on the TC^3 UG board. 612-646-6593
 

Robert E. Brose II   12-1-90

| Robert E. Brose II     N0QBJ  |
| uunet!jriver!os9!bob          |
| compuserve 72067,3021         |
 

From: "Robert E. Brose II" <jriver!os9!boblist@UUNET.UU.NET>
Subject:      high-density mod, CC3disk patch

Software patch for CC3disk to enable the use of high-density floppies in OS9.

The formatting routine in CC3disk needs to be patched to allow for enough buffer space to hold the track data for the write track FDC command (there are more sectors now, right!).

This is a patch to the original CC3disk and can be used with the second option of the hardware mod which was "Using the drive select line going to the high density drive as the normal/high density select signal"

There are other patches, one is for using the write precomp line for density select and the other is a patch to the PCDOS version of CC3disk.
The one above however, is very easy and can be used for quick testing.

In the original CC3disk, at offset $35E there is the amount of system memory to request for formatting a track, it is currently set to $1A00. Change it to $3400. Also, at offset $3BB there is the same value for the memory to be returned to OS9 after format is finished. Change it also to $3400 from $1A00. Don't forget to update the CRC!

Finally, create a descriptor with the increased sectors per track values for the high-density drive. The amount of sectors you can get vary with the drive. The 1.2 Meg drives usually get around 30 spt, the 1.44 Megs 34 or so at 256 bytes/sector. The 1.2 Meg drives run at 360 rpm instead of 300 so there isn't enough time/room for 36 spt.

| Robert E. Brose II     N0QBJ  |
| uunet!jriver!os9!bob          |
| compuserve 72067,3021         |

From: Robert E. Brose II <jriver!os9!boblist@uunet.UU.NET>
Subject: cc3disk patch, have fun!

begin 644 cc3hdisk.ar
M*T%2,"XP*P!C8S-H:61S:RYI<&, (" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @("    ,/ @ +  !; @P,-@$
M  .W6P(,"[,"%0"G@! ""0: 0*" >"P5 HM!*6" P  &*+9= , !4 !.- D+
M  )2!#!8 BR0%D+ ,22 J@R0!20+"2J"0&.5/20%\ /""#B*10#-2*CT 48$
M*=D@!<4D +F"$^@ $G3T %R& (!M@"*""&&I,9?00U5( @*")2RUD **&"]#
M)$:!17TI;*94"-" 03 (0 \:A0OA\($8K!\ W2EE\<C5*(UO7 :! +@!&C4(
M"5I#081E4  %  (DM&DD2O17"C-A FC487<1H4@"<#A<"#?-B >Q5:T8  =5
MZI74J",^I!8?P1KU('#>,N*&"L!E\6%_6\$Q:C7A#A !5WH3@QV75B $3@48
MJF*E]3*!3H M"9\P1X5@!-(!C2,O<  ^- <:C2,O<  ^- <%@D*41 F.QE#K
M"4G6H F  0"0_P_@0Z@7 $.F8/\-7<*L @!"%6 !/< A2AP1H?B$4P! $2V]
M ,%S^.J'!05('P@AP5%2 L# # $60 1D! $(T4@%90AH<&2/H^(0)#F-L)#E
MAP:U2%@L([&\  (  .S=90>@E.IJ#<90P9?#0)FO=\%UP!<_Q[>( "V>0)P*
MAH,")14( $AIVPH>M[7O?$-0FAJ.Q[0P R-+";$# $DU2%6C"J  !*3&])0^
M)))1AAPOE2$ !(<,2,PRBE2E& ,YEXBDSF]! Q $>";YQ>4!'H16'#L;YO@V
M90P&4'(/64,=E!Y68!6] =KR% ()EF (6E2,,S%F,9O0)7AY!8MH6(P (YE2
M 4!E9!]4@=!X P#":DP  4(3,3P(CL(T_ N5D+U2/ [U9%Y4@:#161ZOV_P#
M(=4@H!Y62F5(/[U ,L52,<HE9+O E9M5%0!.TXU9-M4A"$%63J5(,PRN@[I)
M 2[SPO(^QF ,! HRC*LL"L @$47&#=-S+Q1DD51U)$862=PIS&!0;R%%H*C[
M.PJ E7<)P](-%%W"HIP#*<B 2#UDF'7<+ P(::*P 9@Q9$EAV#9<[0!(8!RG
M U=PD$B_]0$HJC@UD$'5) 53X)60(W;U*T%2,"XP*P!C8S-H:61S:RYD;V,
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @("    #Z @ +  !; @P- P$   $B6P(,"[,00" $,AC,D$DB%,EB
MXDE AP$SF\RG. &$V&\W&> '<TG0T0".F6!00B$DIBX@E* &8TFPRBZ B D@
MTTFXQF\Y'";F$Z&4R1\T2&!C.20F%PT03V.&F+B 1C$8B X3LQQZ:'0WB"."
M"KQ0V18[@V0" Y&4PF2:1DPFZ?'<Y4J," WF:8D(FB T&DSQXR&4W'..'D0&
M2W':)"X&BTA6ZU" ISP[F$Y&27XT\G,WG"XW,J&DRG(Y&$YVHZ&$0$@PFTW&
M4Z" A$(IB ;#$<BT:C88"T;C8:CG#D,G[\06J?$\IB\<B G3NEFZ*B C0<GT
MBJ&^)F/(VZ>X>BM!4C N,"L <F5A9&UE " @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @   !#@(
M"P  7 8;%CL!   !,EP&&PNS*AH,H@.!R-YG.1A-H@,9C&9H-)D.9K%QI.!C
M$!I.8@,(@))0()4(9($!F-)L@1T-\#,)T,9H$!T@(@(9#&9DC)K$!U.9E,DD
M-YR!LQ@10(9$)Y3@<%@\)F$J,IN,)BD\PF1R,IAFYN,\;-T^.YR-)T--;$!O
M,P@&(N&0OM0T&@@-IE,X--IS,AOC4WB1E.AT,IS%T=.@@*1%*)5).&I-#N)O
MGTIJL")Y2))')).(),PM)(Q,)Y0*!9F9/)Q4*1/)A,(I2!IB/.%-YB,IRPA"
M@L\P4 C..GV\-YNF9O-IPG>T.VT%@@(AE-APA]=GQ(VAML0N!H-*6RVF$(N"
0V]Y@1))(@&PM&0W%HY&0-'>T

end
--
| Robert E. Brose II     N0QBJ  |
| uunet!jriver!os9!bob          |
| compuserve 72067,3021         |

BACK TO HIDENSITY PAGE 1