Semi-Virtual Diskette (SVD)
Apple ][ Dongle

 SVD Information 

Home & Intro

Update

Supported Hardware

Downloads

 How To Use
The SVD 


Overview &
Getting Started


Building an SVD

PC Software

Machine Specific
Instructions


 HELP! 

FAQ
(Frequently Asked
Questions)


Troubleshooting

 Ordering & Links 

Order the SVD

Guestbook &
Comments


Links

For Info:
eric@theSVD.com


Overview  -  Schematic   -  Theory of Operation   -  PCB Files   -  Parts Layout

Apple Dongle Overview


dongle "dong - gull" - noun
an extra piece of hardware that provides auxillary function to an existing device which usually hangs off of the existing device.
When created, the Apple ][ had a very innovative floppy interface mechanism that was cheap, robust, and worked quite well. However, it is also quite different from the floppy interface mechanisms employed by the majority of the other equipment makers of the day.

Since the SVD was designed to work with the majority of floppy interfaces of that time, it requires an extra piece of hardware, or dongle to match the Apple interface to that provided and expected by the SVD. Fortunately, this extra hardware is small and attaches directly to the SVD. With the dongle, the SVD will work well with your Apple ][.



Schematic

Click on the image below for a close-up.

Theory of Operation

Functions of the Dongle

There are three main functions that the dongle provides:

Head Stepping The Apple 2 uses low-level stepper motor phase pulses to manually advance the track head through the separate tracks of the floppy. The dongle converts these phase pulses into a direction signal and a step pulse based upon the direction of the progression of the pulses. In addition, the dongle ensures that the phase pulses coming from the Apple are the appropriate width since, when booting, the Apple actually holds the phase 0 pulse high for an extended period.
Signal Polarity The logic sense (polarity) of the Apple 2 signals are often the inverse of those for the "standard" floppy controllers. This includes inverting the read and write lines as well as creating a "motor_on" signal based upon the drive select signals.
Signal "Levels" Closely related to the signal polarity, it is also necessary for the dongle to provide for the open-collector signals used in standard floppy controller implementations. This includes adding pull-up resistors for OC signals as well as creating an appropriate tri-state level for the read signals going back to the Apple controller.

Circuit Description


Stepper Pulses

The head movement mechanism for the Apple is direct drive pulses targeted toward the stepper motor in the floppy hardware. These pulses are labeled phase 0 through phase 3. When the Apple wants to seek the floppy head to another track, it will pulse these phase lines causing the disk stepper motor to advance either "in" or "out" depending upon the previous phase.

For example, if the last pulse was on phase 1, a pulse on phase 2 will step the disk drive head out, whereas a pulse on phase 0 will step the disk drive head in.

Normal Apple "full-tracks" are positioned on phase 0 and phase 2. "Half-tracks" are positioned on phase 1 and phase 3. Normally, data is only written on full-tracks. Some copy-protected diskettes/images, however, use half-tracks. The Apple dongle circuit supports only full-track positioning.

The SVD floppy interface requires a head-step pulse to move the head. In addition, it uses another logic signal, step-direction, to indicate the direction of the head step. If step-direction is high when the head-step pulse is received, then the step in "in", otherwise it is "out".

The circuit converts the phase pulses into head-step and step-direction. A flip-flop (IC1) is used to remember the last half-track pulse (phase 1 and phase 3). When a full-track pulse is received, IC2 converts the pulse into a head-step pulse, while setting an appropriate step-direction. Note that there is a potential race condition here in that the head-step pulse and step-direction pulse change at the same time, such that a reader of the rising edge of head-step could potentially see the wrong direction. However, the circuitry in the SVD doesn't work on the rising edge of the step signal. Instead, it polls the step signal and will sample the direction after it is noticed. This eliminates the race condition.


Stepper Pulse Length

During "normal" operation, the Apple pulses the phase lines with a short signal (on the order of a few micro-seconds). However during boot, after seeking to track 0, it holds phase 0 high while attempting to read track data. This can't really be considered a "pulse" according to the specifications of the floppy signals emulated by the SVD. In fact, when this signal is held high, the SVD will not generate data which would potentially dead-lock the SVD upon boot.

To eliminate this problem, a one-shot 74121 (IC4) is used to ensure that the head-step pulse is a short one.


Drive Select

Fortunately, the drive select signals for the Apple two are of the same polarity as the other floppy interfaces. However, a motor-on signal is needed for the other interfaces and for the SVD. This signal is derived with an XOR on the two drive select lines.

Signal Conditioning

All of the other circuitry is used to condition the signals to match the Apple interface to the SVD interface.
Signal Source Conditioning
/Read SVD The read signal from the SVD is negative logic and must be inverted before sending to the Apple. In addition, it is an open-collector signal that must have a pull-up resistor. Finally, instead of using open-collector OR'ing, the Apple uses tri-state logic. So the /Read signal must be gated by the drive select signals.
/Write-protect SVD Much like with the /Read signal, the /Write-protect uses negative logic with an open-collector signal. It, too, uses a pull-up, is inverted, and gated by drive select signals.
/Write Apple The /Write data line necessary for the SVD is generated by inverting the Write from the Apple interface.
/Write-req Apple No conditioning is necessary for the /Write-req signal.
/Index SVD The /Index is ignored by the Apple.
/Track-0 SVD The /Track-0 is ignored by the Apple.

Other Notes

  • JP1 - should be shorted to take power for the dongle from the SVD.
  • JP2 - should be shorted to take power for the dongle from the Apple
  • There is only one LED driver resister because only one of the LEDs will be on at any time.
  • IC3 (74368) was used because it provided gated inverters...just what the doctor ordered for this design.

PCB Files

Click below to download the Zip file containing the Gerber and drill files for the Apple dongle.
A3.zip
  • A3.top - the Gerber for the top side
  • A3.bot - the Gerber for the bottom side
  • A3.dri - the drill file

Parts Layout

Click on each image for a close-up.
Color on Black Color on White Simple Parts Layout