298 139_Double_Density_Disc_Controller_System_Manual_1979 139 Double Density Disc Controller System Manual 1979

298-139_Double_Density_Disc_Controller_System_Manual_1979 manual pdf -FilePursuit

298-139_Double_Density_Disc_Controller_System_Manual_1979 298-139_Double_Density_Disc_Controller_System_Manual_1979

User Manual: 298-139_Double_Density_Disc_Controller_System_Manual_1979

Open the PDF directly: View PDF PDF.
Page Count: 119

Download298-139_Double_Density_Disc_Controller_System_Manual_1979 298-139 Double Density Disc Controller System Manual 1979
Open PDF In BrowserView PDF
·. :r~~@i@lW

)

po box 6528 denver, colorado 80206 (303) 777-7133

DOUBL.E DENSITY
DISC CONTROLLER
SYSTEM MANUAL

298-139

THE DIGITAL GROUP
DOUBLE DENSITY DISC CONTROLLER SYSTEM MANUAL

(C) 1979 BY
THE DIGITAL GROUP

"Reproduction in any part or form of the contents of this
document or its accompanying cassette tape or disk, except
for the personal use of the original purchaser, is strictly
forbidden without the expressed written consent and
permission of The Digital Group, Inc."

TABLE OF CONTENTS
Section

Page

CHAPTER 1
CHAPTER
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9

INTRODUCTION ..•....•••••..•••••...•.........•..•..••.....•.•

2 ASSEMBLING THE CONTROLLER •••••.•.••••...•...••••..••...•••.•
INTRODUCTION... ..•...•... .•••..••.•.... .•. ••.•.•. •.•. .•.. .•••••
PRELIMINARY INSPECTION .••.•••••••...•....•.•..•.•••••...••••...
RESISTOR INSTALLATION ...••••••••..•..•••.•.•••••...•...•.•••.•.
INTEGRATED CIRCUIT SOCKET INSTALLATION •....•...•..•.......•...•
CAPACITOR INSTALLATION ....••.••.•...•...••••......•..•••..••...
REMAINING COMPONENT INSTALLATION ....•....•.•...•••.....•.••••.•
BOARD ADDRESS JUMPER INSTALLATION .••.••.•..•...•••...•........•
HEAD LOAD MOTOR-ON JUMPER ••••.•••....••.•••••...•..••.•...••.•.
FINAL INSPECTION AND CLEANING •••....•.•.•..•..•••••....•.••.•.•

CHAPTER 3

TESTING/TROUBLESHOOTING ••.•••....•.•.••••...•••••..••..•..••

2
2
2
3
4
6
7
8
8
9
10

3.1

INTRODUCTION

••..•.•••••••••••.•••.•...•.••.•.•.•••.....•..••••.

10

3.2
3.3
3.4
3.5
3.6
3.7
3.8

GENERAL- POWER SUPPLIES AND CAPACITORS .••••.....•••.•..•..•.••
THE POWER-ON RESET AND LOW VOLTAGE CIRCUIT .•••.••.••..••..•....
USING HMON/2 FOR TESTING •.•...•••••.•••••••••.••.•••..•.••..•..
BOARD SELECT AND GATING CIRCUITS •...••.•••.••••••••..•...••..•.
DEVICE ATTRIBUTE, VCO AND CLOCK CIRCUITS •••••.••.•••..•.•••••..
TIMING ELEMENT AND DISC I/O BUFFER CIRCUITS .•••.••••.•..•••..••
BRINGING UP THE 1791 IC ••••••••••••.••.••••••••••••..•.•••...•.

10
10
12
12
14
16
20

CHAPTER 4

THEORY OF OPERATION .•••••..•••••••••..•••.•••••••..•••••.•.•

26

4.1

INTRODUCTION...................................................

26

4.2
4.3
4.4

PORT LABEL DEFINITIONS .•••.••••••••.•••••••..••••••....••..•••.
POrIER-ON RESET AND LOW VOLTAGE CIRCUIT •.•••.•••.•.••••.••....••
ADDRESS DECODE AND CPU I/O BUFFERS ••••.••••.••.••••..•.•.•.•.•.

26
27
28

4.5

WAIT LOGIC • . . • . . . • • . • . . . • . • • . . • • • . . • • . . . • • . . . • . . . . . . . . . . . . . • . • .
SEL PORT LOGIC ••••••••••••••••••••••••••••••••••••••••••.••••••

30

4.7 WRITE PRECOMPENSATION CIRCUIT •••.•••....••••..••.•.••.•••..••••
4.8 DELAY AND READY LOGIC •••••••••••..•..••.••.•.•••••••••.•.••••••
4.9 CONTROLLER CLOCK CIRCUIT ••••.•••••••••.•••••.•••.••••••••••..•.
4.10 VCO PHASE LOCKED LOOP •••••.••••.•.•••••••••.••••••.••.•••••.•.
4. 11 DISC I/O BUFFERING •••.•••.•.•••••....•.•••.•.•.••••.••.••...••

35
36
38
39
42

4.6

4. 12

POWER SUPPLIES

4.13

INTERRUPTS

32

••••••••••••••••••••••••••••••••••••••••••••••••

44

.•••.•••••.•.••••••••••••••.•••••••••••••.••••••••••

45

CHAPTER 5 1791 PRODUCT SPECIFICATION ••••••••..••••••••.•••••..••••••••
5.1 INTRODUCTION TO WD1791 PRODUCT SPECIFICATION...................
5.2 1791 PRODUCT SPECIFICATION ••.••••••••••••••••••••••••.••.••••••

46
46
49

CHAPTER 6 SAMPLE DRIVER PROGRAM ••••.•••••••..•.•••..•....•.•••.••••••.
6. 1 INTRODUCTION. • . • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
6.2 SAMPLE DRIVER CODE ••••••••.••••••••.••••••.•••••.••••••.•••••••

50

CHAPTER 7

SAMPLE FORMAT PROGRAM ••••.••••••.•••••••.••••••••..••••.••••

60

INTRODUCTION ••••.••••••••••••••••••••••••••••••••••••••••••••••
F 0 BM ATe 0 DE. • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •

60

7.1
7•2

-

i

-

50

51
60

TABLE OF CONTENTS
Section

Page

APPENDIX A

PARTS LIST BY VALUE

APPENDIX B

PARTS LIST BY LABEL

· ...................................... .

69

APPENDIX C

DRIVE ATTRIBUTE SOCKET DEFINITION •••..••••••.•••.•••.•••••.

72

APPENDIX D

BOARD ADDRESSING

...........................................

73

APPENDIX E

ONE SHOT TIMINGS

74

APPENDIX F

WRITE PRECOMPENSATION TIMING DIAGRAM.......................

75

APPENDIX G

WAIT LOGIC TIMING DIAGRAM .••.•......•..•.•.•..•...•...•.••.

76

APPENDIX H

SCHEMATIC •....•..••...•..••••••••••....••••.••••••.••.••.••

77

APPENDIX I

PARTS PLACEMENT DIAGRAM ......•.......••.•••.•..••••......••

78

APPENDIX

SOFTWARE COMPATIBILITY (OLD VS NEW) ••...•••••.••••••••.•.••

79

APPENDIX K

APPLICATION NOTE #1

80

APPENDIX L

APPLICATION NOTE #2

81

J

APPENDIX M APPLICATION NOTE #3

6t

'5 /.-P1;/~/ ilJ }. fhyflt1:J/ IJn:1'J
· ......................................
.
/11411-i /IP!e f) /(,eifr;
· ......................................
.
e
!JYIV-G
· ......................................
.
,
us/ft.,
If
· ......................................
.
111.'2"7 '111hz..
·)...,
......................................
.
15

APPENDIX N

APPLICATION NOTE #4

APPENDIX 0

APPLICATION NOTE #5

APPENDIX P

APPLICATION NOTE #6

APPENDIX Q

APPLICATION NOTE #7

APPENDIX R

APPLICATION NOTE #8 • !'(.;~~i.L. ':;77.

APPENDIX S

APPLICATION NOTE #9

A-tfvllt,~f.c. Ol(/~/

"""te)""19 dot+ T1'1!11.~ p1~

tJVlvt'f

~ ~~~!~ .................. .

82

83
84

85

86
87
88

I

APPENDIX T

J:.VlI#f.QVqc tJVtl/~J

APPLICATION NOTE '10 . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

-

ii -

90

CHAPTER 1:

DOUBLE DENSITY SYSTEM MANUAL

INTRODUCTION

CHAPTER 1
INTRODUCTION

The DIGITAL GROUP DOUBLE DENSITY CONTROLLER MANUAL is a comprehensive set
of documentation that
allows the user to Assemble,
Test, Troubleshoot, and
Install the
Board
in
his
system.
Each section of
the manual contains
ordered concise instructions for getting the user up fast and reliably.
An Installation Manual
assembled.
All
he
needs
getting the board up_

is included
for the
user who bought the board
to
do
is consult
the
Installation Manual for

For the
kit
builder, the
Assembly and
Testing
sections are provided.
Along with the Installation Manual, the kit builder will find the Controller
board easy to build.
Also included
in the
documentation is
the
Hardware Monitor Manual and
Cassette.
This Monitor is
very powerful
in aiding the user to
Test and
Diagnose problems that
might occur in assembly and
testing.
The Assembled
Board purchaser might wish
to perform some of the
Diagnostics provided in
HMON to
continue to monitor the reliability of the System.
You might think
of the Diagnostics in HMON as a "Memory Test" for the Controller.

-

1 -

DOUBLE DENSITY SYSTEM MANUAL

CHAPTER 2: ASSEMBLING THE CONTROLLER;
CHAPTER 2

ASSEMBLING THE CONTROLLER
2.1

INTRODUCTION
Estimated Construction Time: 4-8 Hours

To build the Digital Group
following tools and equipment:

Dual Density Floppy Card, you

will need the

Fine tipped low wattage soldering iron (25 watt is ideal)
Solder 60/40 RESIN core wire solder, 20-30 gauge
DO NOT USE ACID CORE SOLDER (SEE OUR WARRANTY POLICY)
Diagonal cutters, small ~icro-shear preferred
Long-nosed plier~
flux remover or Alcohol
small brush
Volt-Ohmmeter (20K Ohms per VOLT or better)
15 Mhz Dual Trace Triggered Sweep Oscilloscope
Before you start to assemble the board, take a little time to inspect the
P.C.
board.
Check to see if there are any shorts on the top side of the
board under where the Integrated Circuit sockets will be placed.
Once the
Sockets are in place, it will be very difficult to find shorts in this area.
Also,
read through the entire assembly procedure before starting to
familiarize yourself with the proceedure.
2.2

PRELIMINARY INSPECTION

) Remove all parts from their bags and plastic rails.
( ) Sort the components into individual values. (cupcake trays
are good for this)
( ) Verify that all parts are there by checking them off of
the PARTS LIST in APPENDIX A
( ) Remove the Parts Placement Diagram from APPENDIX I
and place it conveniently in front of you.

- 2 -

DOUBLE DENSITY SYSTEM MANUAL
2.3

CHAPTER 2: ASSEMBLING THE CONTROLLER

RESISTOR INSTALLATION

NOTE: All resistors are mounted on .4 inch centers.
(If you have a lead bender, by all means use it.)
(vr'Insert the following Resistors into the board:

(

)

R42

47 Ohm

(yel-vio-blk)

)

R30 , R3 1

1 20 Ohm

(brn-red-brn)

)

R12,R13,R14

150 Ohm

(brn-grn-brn)

(

)

R15,R17

150 Ohm

(

)

R22

270 Ohm

(red-vio-brn)

(

)

R25

330 Ohm

(org-org-brn)

)

Turn the board over at this time and solder in these
Resistors.

~nsert

the following Resistors into the board:

R33 , R3 7

470 Ohm

R49 , R5 0

470 Ohm

R28,R36

1k

Ohm

R38

1K

Ohm

R9,R18,R19

2.2K Ohm

) R20,R21
(

(yel-vio-brn)

(brn-blk-red)

(red-red-red)

2.2K Ohm

Turn the board over at this time and solder in these
Resistors.

(If'Insert the following Resistors into the board:
( ) R27, R3 4 , R3 9
) R7

2.2K Ohm

(red-red-red)

2.7K Ohm (red-vio-red)

( ) R44, R4 5

3.3K Ohm (org-org-red)

( ) R29

3.9K Ohm (org-whi-red)
- 3 -

DOUBLE-DENSITY SYSTEM MANUAL
(

(I,

CHAPTER 2: ASSEMBLING THE CONTROLLER

)

R43

4.7K Ohm (yel-vio-red)

)

R46

5.6K Ohm (grn-blu-red)

)

R6 ,R1 0

6.8K Ohm (blu-gry-red)

)

R4

7.5K Ohm (vio-grn-red)

)

R8

9. 1K Ohm (whi-brn-red)

)

Turn the board over at this time and solder in these
Resistors.

Insert the following Resistors into the board:

( ) R23, R2 4 , R3 2

10K Ohm

( ) R40, R41 , R4 7

10K Ohm

( ) R48

1 OK Ohm

(brn-blk-org)

(

R5

11 K Ohm (brn-brn-org)

(

R2

15K Ohm (brn-grn-org)

(

R11

27K Ohm (red-vio-org)

(

R1

33K Ohm (org-org-org)

(

R3

820K Ohm

(

Turn the board over at this time and solder in these
Resistors.

2.4

(gry-red-yel)

INTEGRATED CIRCUIT SOCKET INSTALLATION

If you received SAE sockets with your kit, DO NOT REMOVE the white strips
on the bottom of the socket.

locat~

(;) Install the following IC Sockets at this time by inserting the socket
and SLIGHTLY bending two diagonally opposing corner pins outwards to hold
the socket onto the board.
(

IC3,IC9,IC22

8 Pin Socket

( ) IC50,51,52

8 Pin Socket

( ) IC53

8 Pin Socket

- 4 -

DOUBLE DENSITY SYSTEM MANUAL

CHAPTER 2: ASSEMBLING THE CONTROLLER

(~rn

the board over at this time and solder in the
8 Pin Sockets.

( . / Install the following IC Socke ts at this time by inserting the socke t
and SLIGHTLY bending two diagonally opposing corner pins outwards to hold
the socket onto the board.
IC2,IC5,IC6,IC7 14 Pin Socket
(

(

)

IC14,IC15,IC16

14 Pin Socket

IC17,IC18,IC19

14 Pin Socket

IC20,IC21,IC23

14 Pin Soc ke t

(

)

IC24,IC27,IC30

14 Pin Soc ke t

(

)

IC31,IC32,IC34

14 Pin Socket

(

)

IC35,IC36,IC38

14 Pin Socket

(

)

IC39,IC40,IC46

14 Pin Socket

(

)

IC48,49

14 Pin Soc ke t

)

Turn the board over at this time and solder in the
14 Pin Sockets.

(~Install

the following IC Sockets at this time by inserting the socket
and SLIGHTLY bending two diagonally opposing qorner pins outwards to hold
the socket onto the board.

(
(

)

IC 1 , IC4 , IC8

16 Pin Sockets

IC10,IC11,IC12

16 Pin Sockets

IC13,IC25,IC26

16 Pin Sockets

IC28,IC33,IC37

16 Pin Sockets
16 Pin Sockets

(

)

IC41 , IC4 5

(

)

Turn the board over at this time and solder in the
16 Pin Sockets.

(~nstall

the following Ie Sockets at this time by inserting the socket
and SLIGHTLY bending two diagonally opposing corner pins outwards to hold
the socket onto the board.
-

5 -

DOUBLE DENSITY SYSTEM MANUAL

( ) IC42,IC43,IC44

CHAPTER 2: ASSEMBLING THE CONTROLLER

20 Pin Sockets

NOTE: No 20 Pin Socket will be installed in IC Position 47.
( ) IC29

40 Pin Socket

(~Turn

the board over at this time and solder in the
20 and 40 Pin Sockets.

2.5

CAPACITOR INSTALLATION

Insert the following Capacitors into the board and then bending the leads
slightly enough to hold the Capacitor in place.
( ) Insert the following Capacitors into the board:
) C10,C11,C12

50pf Silver Mica

( ) C13,C14,C34

50pf Silver Mica

(

t~"'"'-C 5 3

36pf Silver Mica

(

~66

180pf Silver Mica (could be marked 181)

(~2'C74

220pf Silver Mica (could be marked 221)

( .1J65

680pf Silver Mica (could be marked 681)

(4 C32,C54
(~rn the

10dopf Silver Mica (could be marked 102)

board over at this time and solder in these
Capacitors.

(~nsert

the following Capacitors into the board:

( ~ C7 0 , C7 3
."

. 0 1 Dis c Ce r am i c

( ...., C49,C50

.01 1 0% Mylar

(/J" C4 8

.022 10% Mylar

( / C15

.022 10% Disc Ceramic

(~Turn

the board over at this time and solder in these
Capacitors.

- 6 -

DOUBLE DENSITY SYSTEM MANUAL

CHAPTER 2: ASSEMBLING THE CONTROLLER

( ) Insert the following Capacitors into the board. Be sure
to check the Parts Placement Diagram and PC board
for the correct orientation of the + end of the capacitors.
/"

(t...%

C40,C42,C43

4.7uf Tantalum (Obse rv e Polarity)

'/c68

4.7uf Tantalum ( Observe Polarity)

(/c9,C61,C62

10uf Tantalum

(Observe Polarity)

(,/( C71

10uf Tantalum

(Observe Polarity)

22uf Tantalum

(Observe Polarity)

.

-

/

C16,C39

(v}"

~

( ..}-'''C72
./

100uf' Tantalum (Observe Polarity)

/'

«(( Turn

the board over at this time and solder in these
Capacitors.

Insert the following Capacitors into the board:
(/)' C1-C8

.1uf Disc Ceramic

( ;( C17-C31

.1uf Disc Ceramic

{.t1

(/'

Insert the following Capacitors into the board:

( 1 C33 ,C35-C38

• 1 uf Disc Ceramic

{ ,{ C41 ,C44-47

• 1 uf Disc Ceramic

{ / ' C51 ,C55-C60

• 1 uf Disc Ceramic

(/C63,C64,C67

• 1 uf Disc Ceram i c

( /C69,C75

• 1 uf Disc Ceramic

(/'f

2.6

Turn the board over at thi's time and solder in these
Capacitors.

Turn the board over at this time and solder in these
Capacitors.

REMAINING COMPONENT INSTALLATION

(~ert

the remaining components into the board:
- 7 -

CHAPTER 2: ASSEMBLING THE CONTROLLER

DOUBLE DENSITY SYSTEM MANUAL

(~D1,D3,D4
(~D2

(/t;'

1N4148 Diode (save the leads for later)
1N4731A Zener Diode (.5 in. Centers)
22uh Choke (red-red-blk) looks like 2W resistor
5K Ohm 10 Turn Trim-Pot
4.000 Mhz Crystal

L~Fr

(~Turn

the board over at this time and solder in the /;
last of the components. Be sure to solder the /1'"
crystal as quickly as possible to mini'mize heat'.

$:

buildup.
2.7

(I '-'
f'

li8 (") ~

-

\

"0cJ~l:::-T )

L..f

b- 5~'

ff\,\CA)

?L. ( C iO-/q c., '3~

BOARD ADDRESS JUMPER INSTALLATION

(~Using

To 1)0

v~..tL \ 22\A h C~\~)

the leads saved from the

1N4148 Diodes:

~'. (TIt>..

'PIN

3~ 't:~~~

(~Form five jumper wires bent on .3 in. spacing.
(

/) Install the Port Addres sing jumpers into the jumper pads at
IC Position 47 as follows:
.//"~

(

-) Pin 1 to Pin 20

(/r

Pin 4 to Pin 17

( - ) Pin 5 to Pin 16
(

2.8

,

f

Pin 8 to Pin 13

(~)

Pin 10 to Pin 11

(Y

Solder in these jumpers and trim the excess leads.

HEAD LOAD MOTOR-ON JUMPER

If you intend to use the Disc Controller on Mini
cabling installed OR you intend to run both Mini
the DSS-INT1 cabling, install the following:

Drives with the DSM-INT1
and Standard drives with

( ) Install a small jumper wire between the pads near
the 36 Pin edge connector pins 18 and 19.
- 8 -

II

DOUBLE DENSITY SYSTEM MANUAL

2.9

CHAPTER 2: ASSEMBLING THE CONTROLLER

FINAL INSPECTION AND CLEANING

All components that are to be soldered onto the board have been soldered
in.
The only parts that should be left over at this time should be the
Integrated Circuits and 7 1N4148 Diodes.
These parts will be installed
during testing.
You should now look over your work and check for obvious
shorts, solder splashes and unsoldered pins. After you are satisfied that
no glaring shorts or opens exist,
clean the board in commercial board
cleaner or alcohol.
( ) Inspect the board for obvious solder shorts, solder
splashes, and unsoldered pins.
( ) Clean the board in commercial board cleaner or alcohol.
( ) Re-inspect the board for shorts and unsoldered pins again.
( ) Be sure that all solder jOints are clean and SHINY.
( ) RE-SOLDER any jOints that appear dull in finish.
( ) Reclean the board if joints needed retouching.
You have completed the assembly phase of construction.
Go to the
Installation Manual now and perform any CPU modifications that are required.
If you presently have a single density Controller (DSS-INT1 or DS~-INT1) and
you have a spare slot on the I/O Bus, you should parallel the connections on
Pins 34 and 36 of the 36 Pin edge connector to this spare slot. Some of the
testing could be done with your old controller installed along with the new
Double Density Controller.
If this is the first Disc Controller to be
installed in your system,
perform all required cabling at this time. You
don't need to parallel a slot if this is your first disc system. After you
have installed all required modifications and cabling you should take a
break.
The next thing we will do is test the Double Density Controller.
Proceed to the next chapter.

- 9 -

CHAPTER 3: TESTING/TROUBLESHOOTING

DOUBLE DENSITY SYSTEM MANUAL

CHAPTER 3
TESTING/TROUBLESHOOTING
3.1

INTRODUCTION

The Double Density Disc Controller is not a difficult board to troubleshoot.
The board was designed to be modular. The following tests check out each
section to the degree that the section should work.
Each test will also
give the user the ability to check further into the circuitry should the
test results be negative.
In general, if there is
the theory of operation
the problem lies.
3.2

GENERAL-

a problem in one section,
the user should consult
for that section to get a better idea as to where

POWER SUPPLIES AND CAPACITORS

Before power is applied to the disc controller board all of the power supply
traces should be tested. This is to ensure that shorts or reversed Tantalum
capacitors will not destroy the computers power supplies.
NO integrated
circuits should be installed on the disc controller board for this test.
(1). With an Ohmmeter, check the +5, +12, and -5 volt power
supplies with respect to ground and the other supplies.
There should be no direct shorts ( resistance less than 25
Ohms ) to ground or any other supply. Be sure to check these
measurements by reversing the leads of the Ohmmeter.
(2). If the above test was successful, recheck the polarity of
all Tantalum and Electrolytic capacitors.
If there was a
short between any power supply and ground or between any
supply find the cause of this short before proceeding.

(3). Insert the disc controller (less Integrated Circuits) into
the computer and apply power. Check to see that there are no
power supply failures.
Now, just leave the disc controller
inserted and the power on for about five minutes. If a
capacitor was installed incorrectly it will probabily fail in
this time period (it's better for it to fail now rather than
when all the Integrated Circuits are installed).

3.3

THE POWER-ON RESET AND LOW VOLTAGE CIRCUIT

-

10 -

DOUBLE DENSITY SYSTEM MANUAL

CHAPTER 3: TESTING/TROUBLESHOOTING

The Power-on reset circuit will now be tested.
This circuit holds the 1791
IC and
the write gate inactive during power up and during a power loss.
If
this circuit fails to operate the controller board will not function at all.
The cont~oller board may be inserted into any I/O slot for this test.
(1). Install the following IC:
IC34 (LM3302).
Insert the disc
controller board in the computer and apply power.
Adjust the
Computer +5 Volt supply for +5 Volts at the top of the Disc
Controller card.
The tolerance is + or - 5%. Do NOT use the
extender cards for this setting.
(2). Now, place the disc controller up on extender boards if you
have them. Apply power again and see if the output of IC34
pins 1 and 2 are high.
If not, check the +12 volt power
supply and then recheck the +5 volt supply.
If the +12 volt
supply failed (crow-barred) check all components associated
with that supply.
If the +5 volt supply was low, readjust
that supply and start the test allover again.
Correct
polarity of diodes D1
through D4 are critical to the
operation of this circuit.
Check to see if these diodes are
installed correctly.
(3). Observe the
output of
IC34 pins 1 and 2
with an
oscilloscope. During powerup,
IC34 pin 2 will hold low for
approximately 50 milliseconds.
If this level is not present,
check for shorts or bad polarity of capacitor C62.
Also, the
LM3302 could be bad.
(4). Now with the oscilloscope in place reduce the computer +5
volt supply until IC34 pin 1 goes low.
Note that this
voltage should be arround 4.3 volts.
If this voltage is
above 4.3 volts replace Zener D2 or Diode D1.
If the voltage
is below 4.3 volts,
check or replace the Zener D2 , or the
LM3302.
Retest if necessary.
(above or below means 10%
either way)
(5). Readjust the computer +5 Volt power supply to +5 volts as in
Step 1.
NOw, attach one probe to the +5 Volt supply and the
other to IC34 Pins 1 or 2, then cycle the AC power on and
off.
AC trigger the scope to when the +5 Volt supply starts
to go low.
Observe that the output of IC34 Pins 1 and 2 go
low prior to the total loss of the +5 volt power supply.
(Note that IC34 Pins 1 and 2 output goes low when the +5 Volt
supply passes through 4.3 Volts.)
(6). Now,
place one scope probe on the +12 Volt power supply.
Place the other on the +12 Volt supply Pin 3 of IC34.
Cycle
the AC power again and note that the +12 Volt "storage"
circuit comprised of C61,
R42 and D4 remains charged after
the standard +12 Volt supply discharges.
then remove the
scope probe from the +12 Volt supply and place it on the +5
- 11 -

DOUBLE DENSITY SYSTEM MANUAL

CHAPTER 3: TESTING/TROUBLESHOOTING

Volt supply.
Note also that while cycling the
AC power the
+5 Vol t
supply discharges to 0 while the 'voltage on IC34 Pin
3 is still above +5 Volts.
The +5 Volt supply discharge rate
is a function of the load of your
particular system, but it
should discharge in less than one second.
If this is not the
case, check
the polarity of D4 and C61.
Also
be sure.that
the value of R42 is correct.
3.4

USING HMON/2 FOR TESTING

Most of
the following
tests will use
the HMON/2 Hardware monitor for
exercising the controller board.
The user should read the HMON/2 Manual and
familiarize
himself with
the operation of this monitor.
HMON/2 has
been
used to adjust all the sections of the Dual Density Controller board.
The
only secton that the
monitor can't diagnose is the
Phase locked loop.
It
should
be noted
that using
the
INP-:CON function, the
user can
generate a
single repetitive pulse train that any "good" scope can sync to.
These pulses occur at approximately a 10 millisecond rate.
Use of the DELay
function can extend
these pulses
to allow the user.to trigger all of the
timing elements on
the board.
In one of
the sections we will use this
technique to check all the controller to disc
buffers and timing elements.
When an example is given there will be no explanation of the command or how
to terminate it.
The user should read the rest
of the test procedure and
then go back to the HMON/2 Manual and reread the functions used exclusively
for testing.
Be sure that you know how to STOP any function that we will be
using.
We will be
reloading
the
HMON/2 cassette
three or four
times.
If you
presently have a
Single density disc system or a Phideck system, you may
want to load in HMON/2 at this time and
save it on disk or cassette.
The
Double Density Controller board may be
tested in
the slot next to the
intended slot for most of the tests.
This can be accomplished by installing
temporary motherboard
jumpers from
the intended slot to this
new slot for
both
the
Int and Wait lines.
Remember, you can load HMON/2 through any
operating system except for the last test, which requires you to connect the
Double Density Controller to the actual disc drives.
3.5

BOARD SELECT AND GATING CIRCUITS

In this section we will test
all of
the, address gating and port
select
logic.
We will also test the wait logic here.
The first test will check to
see if any shorts exist in the output data enable and the wait enable lines.
If there is a problem here, the computer will not function as the controller
board will either interfear with
the computers I/O bus or
the Wait line.
Should the user have dynamic memory, the holding of the Wait line will cause
memory loss.
We will next test the Input/Output gating logic to see if the
- 12 ...

DOUBLE DENSITY SYSTEM MANUAL

CHAPTER 3: TESTING/TROUBLESHOOTING

board can be accessed.
Then, the wait logic will
be tested to see if the
wait timeout timer and the entire wait circuit functions properly.
(1). Install all IC's EXCEPT the following:
IC37, and IC44.

ICB,

IC9, IC22, IC29,

Check to
see
(2). Insert the
disc controller and apply power.
that all of
the power supplies are operating and that no IC
is getting excessively hot to the touch.
(3). With either a scope or a voltmeter, check the following:
(a). Pins 1 and 19 of IC44 are at a constant high level.
(b). Pin 15 of IC37 is also at a constant high level.
If either of these signals is low, there is a problem in the address select
or wait logic.
At this point the user should start back tracking from these
pins to find the source of the problem.
(4). Now remove power from the system and install IC's 37 and 44.
(Be sure
that
the Wait
jumper and Int
jumper on
the
motherboard are in place)
(5). Read
in the disc diagnostic tape
execute the HMON/2 with option 6.

using

The following
tests will
establish whether
generation logic are functioning properly.

the

the "ZEn ROM and
address decoding and wait

Most of the tests will have visual outputs to
the screen.
You should stop
with the
testing and start scoping the board when your outputs do not agree
with the examples.
(6). First we will
see if the board responds to the
Execute the following program:

computer.

:OUT-54,0:INP-54:0UT-54,377:INP-54 (cr)
The computer should respond with:
INPUT PORT 054
INPUT PORT 054

= 304
= 307

received,
go on to
step 7.
If both inputs
If this
is the
result you
selected.
Check IC's 16, 31, 33, 45.
resulted in a 000, the board was not
the
strobe
pulse
labeled RE4
on the
This
test
should have generated
schematic.
To aid in testing this section, re-execute the above test but
This will cause the test to be repeated
place a "CON" statement at the end.
- 13 -

DOUBLE DENSITY SYSTEM MANUAL

CHAPTER 3: TESTING/TROUBLESHOOTING

at speeds a
scope will sync to.
If the result of the test was not 000 but
something else, check the problem bits in IC's 30, 41, 42, 43 and 44.
(7). Now we'll see if the wait logic is operable.
Temporarily
short pins 38 and 39 of the IC29 to ground.
(Jumper IC29-39
to
IC29-3 and
IC29-38 to
IC29-20.) (Use
the
hookup wire
supplied.) Then try the following:
:SET-.10000 (cr)
:OUT-57,0:NEX:MES-/DONE/ (cr)
Time the length of the second line above.(app 25 sec) Th
:SET-.10000 (cr)
:OUT-53,0:NEX:MES-/DONE/ (cr)
The second test should execute about 1.5 seconds faster.
If this was true
proceed to step 8.
If the tests ran at the same speed, there is a problem
with the wait
logic.
Check, to see if the CPU mods have been installed and
their associated jumpers on the motherboard are there.
If this is not the
problem then read
the theory of operation of
the wait logic and check IC's
2, 7, 15, 17, 25, 36.
(8). We
apparently have some
communication with the controller
board at this
time.
Remove
power and insert all the IC's
EXCEPT IC29, the 1791.
3.6

DEVICE ATTRIBUTE, veo AND CLOCK CIRCUITS

In this section we will check out the Attribute selection circuts, the Phase
locked loop
and the Basic 1791 clock circuit.
The attribute circuit will
also test
some of the input/output buffer lines.
Any shorts on these lines
could
cause problems for the
1791 IC.
We will also
set the free running
frequency of
the Phase locked loop.
This adjustment is
the most critical
adjustment to be made and should be done carefully.
Once the adjustment has
been made,
we will change
the
attributes
for
device
and
check the
switching of different sections of the loop.
If a
problem arises in this
circuit,
a
careful examination of the
rest of this circuit is in order.
Finally, we will check
the Basic clock frequency of
the 1791 and check to
see if it switches properly for each attribute.

°

(1). Install
the
controller board
and reload HMON/2.

on its extender boards again

(2). Get two of the 1N4148 diodes that were supplied and bend the
leads to fit the .3" spaced socket.

(3). Please

refer

to APPENDIX

C on
-

DEVICE
14 -

ATTRIBUTES for the

DOUBLE DENSITY SYSTEM MANUAL

CHAPTER 3: TESTING/TROUBLESHOOTING

following:
(a). Start HMON/2 with option 6.
(b). The following program will be run for all 4 drives.
This is done by replacing the word "DATA" in the
OUT-54,"DATA" with the following: 0, 1, 2, 3.
In each
case the user should place a diode in each of the 4
possible positions for that drive and observe the
results on the screen.
(c). Run the following program for each drive:
:OUT-54,DATA:INP-54:CON (cr)
The results obtained should conform to the following
table:
DATA

POSITION

POSITION

POSITION

POSITION

0

300

344

324

314

1

301

345

325

315

2

302

346

326

316

3

303

347

327

317

------------1---------2---------3---------4-----

If any of the above results were incorrect, study the data pattern for all
tests and check the associated bits on the controller board.
Now we will set and check out the VCO basic free running frequency.
(2). The VCO free running frequency is set as follows:
(a). Place a diode in the Single/Double density position for
device O.
(b). Select this
instruction.
(c). Observe the
oscilloscope.

~

device

clock

by

executing

period

at

IC29

a

OUT-54,0

Pin

26 with

(cr)

an

(d). Adjust Pot R35 for a square wave with a period
usec high and 2 usec low. Tolerance is: +5% -0%.

of 2

(e). With a

3 of

voltmeter, measure

the DC voltage at Pin

- 15 -

DOUBLE DENSITY SYSTEM MANUAL

CHAPTER 3: TESTING/TROUBLESHOOTING

ICB. Make a note of this voltage on
later reference.

the schematic for

(3). Now we will check the operation of the loop.
(a). Remove the diode installed in the Single/Double de~sity
position for device O. Observe that the clock period at
IC29 Pin 26 just halved.
(1 usee high and 1 usec low)
(b). Now install the diode in the Mini/Standard position for
device O. Observe that the period doubled to 2 usec
high and 2 usec low.
(c). Install the second diode. in the Single/Double density
position for device O.
Observe that the clock period
doubled again to 4 usec high and 4 usec low.
If any of the above observations didntt occur, back
to where the problem exists.

track from IC29 Pin 26

(3). We will now test the fixed clock frequency for the 1791 IC.
This is either a 1 Mhz or 2Mhz clock applied to Pin 24 of
IC29.
(a). With the 2 diodes still installed from the above test,
observe that the period of the clock on IC29 Pin 24 is
500 nsec high and 500 nsec low.
(b). Now remove the 2 diodes and observe that the period of
the clock on Pin 24 of IC29 just halved to 250 nsec high
and 250 nsec low.
If you didn't
and 49.
3.1

observe the

2 different periods as above,

check IC's 19, 20

TIMING ELEMENT AND DISC I/O BUFFER CIRCUITS

In the following section we will check to see that all the timing elements
are operating properly. For example, if the drive change one-shot fails to
function,
all disc copying may fail
due to improper settle time.
Other
timing element failures could cause: loss of input data, improper write
timing, no motor startup delay or excessive wait states.
We will use the
strobe feature mentioned above to "fire" the timing elements and also to see
if a clear path exists for other Disc I/O Buffers.
(1). For all the tests we will use the input strobe of IC29 Pin
4. Use the hookup wire supplied to form jumpers fOr these
- 16 -

DOUBLE DENSITY SYSTEM MANUAL

CHAPTER 3: TESTING/TROUBLESHOOTING

tests.
If any of these tests fail, trace
through the logic
from
IC29
Pin 4 to the source of the problem.
Now let's
generate the repeatable strobe by executing the following:
OUT-54,0 (cr)
INP-50:CON (cr)
(2). First let's test the lines to the disc:
(a). Jumper IC29 Pins 4 and 15.
(b). Observe that
IC29 Pin 15.

the signal

at IC40 Pin 5 Is

the same as

(c). Now jumper IC29 Pins 4 and 16.
(d). Observe that
IC29 Pin 16.

the signal

at IC40 Pin 2 is

the same as

(f). Observe that
the signal
at IC39 Pin 5 is
the signal on IC29 Pin 28.

the same as

(e). Jumper IC29 Pins 4 and 28.

(g). Observe that the
signal at IC38 Pin 13
the signal on IC29 Pin 28.

is the same as

(h). Jumper IC29 Pins 4 and 30.
(i). Observe that
the signal
at IC38 Pin 2 is
The signal on IC29 Pin 30.

the same as

(3). Next we will test the head load delay timer.
There are two
ways this timer may be fired, we will test both.
(a). Reinstall the jumper from IC29 Pins 4 and 28.
(b). stop
the
following:

program

presently

running

and

type

the

INP-50:DEL-.100:CON (cr)
(c). Observe that the
negative going pulse at IC4
between 35 and 45 milliseconds.
(d). Now Stop the
following:

program that

is

OUT-54,20:DEL-.100:CON (cr)
(e). Jumper IC29 Pins 28 and 39.

-

17 -

Pin 4 is

executing and type the

DOUBLE DENSITY SYSTEM MANUAL
(f). Observe that the

CHAPTER 3: TESTING/TROUBLESHOOTING
pulse on IC4 Pin 4

is the same as in

( c) •

(4). We will
now check the wait timeout timer.
This may be aQne
,u i tho u t t e eu &e-~-O"f-~:t'U'm-p-e-p...s..-. J wt fNI/1-t:-v Ie -J'f 1;'1 S J 
Now enter:
INP-51:CON (cr)
OUT-50,013:MAC-0 (cr)
The user should hear
the drive step to track
desending sequence of numbers from 377 to 000.

0 while the screen displays a

If you did not
get these results, first be
sure the device select light on
the drive
callie on.
If it did, again, manually spin the stepper motor shaft
to force
the head
to the center of the
disc.
Try the test again.
If the
numbers do appear desending on the screen but the drive does not step, check
all lines
corresponding to DIR STEP TKOO DSO and HLOAD.
If the numbers are
not decending on the screen, check the TKOO line first.
If this line is low
while the
device select light is on, we still don't have good communication
with the
1791 IC.
Check IC29 Pin 24 for a 2Mhz signal if Standard drive or
a 1Mhz signal for a Mini drive.
If the clock line is ok then the problem" is
'still in
the data
or port select logic.
Remove
the drive from the system
and
then remove
the 1791
IC and return to the
addressing section of this
manual.
(11). Assuming
diskette.

that

all is

well so

far,

its time to format

(a).

Place
an "expendable"
the door.

(b).

Carefully place a scope probe on Pin 2 of IC38.
Gate)

a

diskette in the drive and close

-

22 -

(Write

CHAPTER 3: TESTING/TROUBLESHOOTING

DOUBLE DENSITY SYSTEM MANUAL

(c). By now the drive select light should have gone out.
J) it hasn't, chec.k ~~e INDEX line for problems.
{f;r:J Sbv-t- H - rtr/AI B{i c!ft(v-? S- {fiJI( - v til ..,ctf vvvt ~ Cflf('p.., {, I)
(~). Here we GO!
Type the following:

If

FOR-O (cr)
The head should
have loaded and the drive should be stepping.
no responce, check the HLT logic and its associated IC's.

If there was

If the drive IS
stepping, check to see that
the signal on IC 38 Pih 2 Is a
square wave of 166/200 ms
up 166/200 ms down (std/mini).
If that is so,
we're probably formatting the disc.
To be sure:
(e). Wait for the format to finish and the head to unload.
(f). Carefully place
(Write Data)

the

scope probe

on Pin

5

of IC38.

(g). Retype the FOR-O (cr) instruction.
See that the signal on Pin 5 of IC38 is a series of 250ns pulses occuring at
a
2/4us rate
(std/mini).
If
these pulses are absent check
the Write
Precompensation circuit, IC's 12, 13, 14, 16 and 30.
(12). Seems we can format.

let's see if the controller can read.

(a). Type the following command:
RAT-3:RET (cr)
(b). You are now back in the Suding Operating System.
(c). Now enter HMON/2 at Option 5.
(d). You should hear the
drive restore to track 0
the introduction message.
(e). Let's see if it can read.
GED - 0 ,1

and see

Type:

(c r )

(f). The
system should
full of 345's.

respond with

a screen (128 bytes)

If the system went away, check the Interrupt lines you installed on the CPU
and ~otherboard
plus the wait logic.
If the system came back with an error
(CRC RNF IDF ), check the data separator in the following way:
Issue the following command:

- 23 -

DOUBLE DENSITY SYSTEM MANUAL

CHAPTER 3: TESTING/TROUBLESHOOTING

TRK-O (cr)
Place one scope lead
on IC25 Pin 12 and
the other on IC29 Pin 26.
Trigger
on
the
IC25 pin
first.
You
should see a series of
200ns pulses on IC25
separated
by
2/4us (std/mini).
The other
trace
should be a overlapping
square
wave
180 Degrees
out of
phase with the pulses.
There
is a 250ns
allowable
"jitter"
in
the Square
wave with
respect
to the pulses.
Now
switch
triggering and
see
that
the
square
wave stops
overlapping
and
measures 2/4us
up and
2/4us down (std/mini).
There is
an allowable error
here but
the timing
should be within 5%.
If -the square wave has a severe
"accordian" appearance to
it the loop is not
locking.
Remove the diskette
and
readjust
the VCO
Free
Running
Frequency,
(as
done before
in Sec
1.7-(2)), if incorrect.
Tole~ance is +5% and -0%.
Reinstall the diskette
and see
if the
problem clears itself.
If not,
there is a problem in some
part of the
loop_
Go read the theory
of operation of the VCO Phase locked
loop and check IC's 6, 7, 8, 9, 10, 11, 15, 17 21, 24, 35 and 25.
(13). If you
received a screen full of 345's, it looks as if the
controller reads.
But, let's be sure.
Type:
RES:VER (cr)
Allow the drive to step through all tracks and return with:
DONE
Now type:
DEC:ERA:STA (cr)
The screen
should
erase
and the
Disc Status
Table
should be displayed.
There should be 01001/00720 (std/mini) reads with no errors logged.
(14). The last test will be to see if the controller can read and
write successfully.
Type the following:
RES:ERA:RND (cr)
HMON/2 will now do 100 random read/writes.

Wait for:

DONE
Now letts look at the Disc Log Table again by typing:
ERA:STA (cr)
The table should now show 100 reads and 100 writes with no errors.
If the above tests were successfull, The Board 'is in operating condition and
you should read
the Theory of Operation and
the rest of the documentation.
You might
want
to test
the board
further
at this time.
Read
the tests
available
in the
HMON/2 Manual
and try some of them.
The Disc Log Table
-

24 -

CHAPTER 3: TESTING/TROUBLESHOOTING

DOUBLE DEN SITY ,SYSTEM MANUAL
will keep
track of
the
performance
examined as these tests execute.

of the

- 25 -

hardware

and signals can be

CHAPTER 4: THEORY OF OPERATION

DOUBLE DENSITY SYSTEM MANUAL
CHAPTER 4

THEORY OF OPERATION
4.1

INTRODUCTION

The Theory of Operation is broken into 13 sections,
each covering a
different portion of the circuitry.
There is a partial schematic next to
each section so that the user may view that section as he reads the theory.
As far as terminology is concerned, points on the schematic that are
labelled with a signal name, will be called by that name. For points on the
schematic that are not labelled, the IC and its associated pin number will
be used (IC29 Pin 4 will be written as IC29-4).
If an IC has more than one
function the IC will be broken into parts, ie, IC13a.
There are many inputs and outputs of gates that require pullups.
When a
pullup resistor in used to pull up gates in different areas on the
schematic, that pullup resistor appears in both areas. Don't be confused
when you see numerous resisitor numbers repeated.
Also, all resistors in
the RPACK labeled IC26 are called out on the schematic as R26-(Pin Number).

4.2

PORT LABEL DEFINITIONS

The controller occupies eight consecutive I/O addresses.
Of these, six
are used.
The base address must start on an address that is a multiple of
eight.
There are 32 such locations that the controller board can occupy.
For the Theory of Operation and for the Software Listings, we will fix this
base address as 050Q or 028H.
All references to these ports could be either
numeric or by their software label.
The following table should aid the user
in determining the ports.
PORT

INPUT DESCRIPTION

OUTPUT DESCRIPTION

050
051
052
053
054
055
056
057

STAT- 1791 STATUS
TRACK- CURRENT TRACK
SECTOR- DESIRED SECTOR
AVAIL BUT NOT USED
SEL- NUMEROUS FLAGS
NOT USED
NOT USED
WAIT- USER DATA PORT

CMND- 1791 COMMAND
TRACK- CURRENT TRACK
SECTOR- DESIRED SECTOR
DATA- SEEK DATA
SEL- DEVICE SELECT
NOT USED
NOT USED
WAIT- USER DATA PORT

------------------------------------------------------ -~-----

FIGURE 1.

- 26 -

CHAPTER 4: THEORY OF OPERATION

DOUBLE DENSITY SYSTEM MANUAL
4.3

POWER-ON RESET AND LOW VOLTAGE CIRCUIT

The Power-On Reset and Low Voltage Circuit monitors the computer's +5
Volt line.
It forces the 1791 into Master Reset on powerup and during any
other time that the +5 Volt line decays below +4.3 Volts.
This
This circuitry also inhibits Write Gate during these occasions.
prevents the controller from accidentally writing over portions of the
diskette.
This circuit consists of IC34,
a Quad
associated resistors, capacitors and diodes.

Comparator (2

used),

and its

During powerup the output IC34-2. has control of the circuit.
The
sequence of events are as follows: D%rhas allowed C62 to discharge rapidly,
insuring that
on the initial (or subsequent) powerup, C62 will be
discharged. When power is applied, C62 begins to charge through R37.
At
this time IC34-5 (the positive input) tracks the capacitor.
R28 and R29
form a voltage
divider that sets the negative
compare voltage at
approximately 4.0 Volts.
Until this voltage is exceeded on the positive
input IC34-5,
the output IC34-2 remains low.
The Capacitor, C62 takes
approximately 50 milliseconds to charge to a voltage above 4.0 Volts.
This
keeps the output IC34-2 low for this time which forces a Master Reset into
the 1791 IC.
It also keeps the Write gate IC38-3 inactive.
During a voltage fluctuation on the +5 Volt supply that falls below +4.3
Volts, comparator output IC34-1 becomes active. The sequence of events is
as follows: The positive input of the comparator IC34-7 tracks the +5 volt
supply through R38.
The negative comparator input,
IC3~-6, Has a fixed
reference voltage of +4.3 Volts set by the Zener diode rijP.
R37 provides
constant current through the Zener. When +12 Volts is lost, blocking diode
D;t, along with cap~citor C73, temporarily provide the current for the
reference Zener,
D;.r. When the +5 Volt supply drops below the reference
voltage on IC34-6, the comparator output IC34-1 goes low, again forcing the
1791 IC into Master Reset and inhibiting the Write Gate.
To insure that the outputs of the comparators remain active during a
normal system power down,
capacitor C61,
along with blocking diode, D~~
combine to supply the voltage and current for IC34.
Resistor R42 insures a
constant charging rate for C61.

- 27 -

+12

03
1N4148

+5

R37
470

+58

R28

+5

R43
4.7K

01
1N4148

R42
47

1K

R36
1K
6

4

I

1

f\)

-..:J

::.>
I

R29

3.9K

+

"+

5

C62
10

10

~------.---------

~
C73

02

.

T

7

.01

R38
1K

or

-to£""

POWER-ON RESET AND LOW VOLTAGE CIRCUIT
FIGURE 2

MR

DOUBLE DENSITY SYSTEM MANUAL
4.4

CHAPTER 4:

THEORY OF OPERATION

ADDRESS DECODE AND CPU I/O BUFFERS

The Address Decode
and I/O Buffer circuit enables the computer
information to and from the Double Density Disc Controller board.
In order for the
met:

board to be accessed,

the

to pass

following conditions must be

O~\D\it~

1. The upper five address lines must match the selected base address.
2. The three lower address lines must be in the range of 0 through 4 or7.
3. Either I/O READ or I/O WRITE must be active low.
When these conditions are met the board can be accessed for read or write.
ADDRESS GATING
The addressing operation happens as follows: The upper five address lines
are presented
to
IC46
where
the
user selects
which
section in the I/O
address space
he wishes
the board to occupy.
This
is done by selectively
inverting the
proper
lines in
IC46.
Once
this
has been done, when
the
computer sends
this address to the board, IC4B-B will go low.
This line is
the Conditional Board Select (CBS) signal and is gated to the following: 1.
To the
I/O Buffer Control Gate IC16-12.
2.
To
the enable input of IC33,
the
Port Select Decoder.
The
lower three addresses are presented
to the
port
decoder
through Latch IC45.
Also the
lower
two address lines are
buffered in
IC1Bc,d and
presented to the Controller IC29.
IC33 generates
all the
conditional port
select gating.
If the lower
three address lines
are between 0 and 3, IC33 gates on IC32-B which in turn is inverted in IC17.
This inverted
Controller Select(CS)
signal partially enables ICts 18a and
18b.
If the
lower three address lines were
decoded in IC33 to be equal to
4, The RW4 signal is generated which partially enables ICts 31a and 31b.
If
the
lower
three address
lines were
decoded to be 7, The
SEVEN signal is
generated.
This SEVEN signal is passed to the Wait logic.
We have at the
present selected one of three
things.
We have generated
the CS Signal or the RW4 signal or the SEVEN signal.
We have also partially
enabled the I/O buffer control gate.
I/O READ
Now, if
this is
a I/O
READ operation, the computer will
lower the I/O
READ line.
This
line is
presented to
four gates.
First it will
fully
enable the I/O buffer control gate IC16-13 which will cause the input buffer
IC43 to turn off and then 'the output
buffer IC44 to turn on.
Second it is
combined with RW4 in IC31a.
Third, ,it will combine with CS in IC18a.
If the RW4
signal was active, I/O READ combines with RW4 to generate the
RE4 signal
at the
output of IC31a.
This signal
enables octal buffer IC42
onto
the I/O bus allowing
the ,computer to read the
data in the D Latches
IC41,
the
drive attribute
bits,
and
the
two
status signals
from
the

- 2B -

20 ~IN
DIP SOCKET

7404

S

A3D

I ,~A3 ~
..

Y20

~

TA'~

~

UA5~47

~~~

A5

5

~

VA6~

f18

12

y16....L

&
1

..::; A1

p

~A2

R

( RW

3t-...

7430
C34
60pI
"'!"

~'4 ...i.
2

N

~________~2~~1________________~

~

~

~A'

11

R22
270

1

~0
~O

~ B

Q

46

Q~C

1--1---I1-----.J7"-1·0
Q
'----7475

33

~

~AE

Os

'WE

~

2
2j.::3:---I----.!:f--.....
4
3

3~--~--"'1
~ 7430
4L

..L..-E. .=....-0
7.L - )

/ SEVEN

( eve

12

~
~

[

4

~6

2

1
2 18A .3

3

-

~

~

7442

---

R39
2.2K

5

~8

A.

IC 29

.,.

18~1

6

Re

~~

7432

9

1.2_

WE

6 A1

9 OAL2

~

~I~____~____________________________~-+__________10
~i~

..-:
11 .<112
u4~~~·~3~~+-+-+-+-~~~~~1~------------~

L
K D1~L?~41·~~~~5-t--~-r-r~~+-+-~~.~----------~
L
J Dar::.

H D3r::.

.F

-

041':::

L

121::':i.-"

12~

~~W4

e~ 7

L
8~9
L

11...---

7432

~&jRE4
~------------------------~-----'-4

X 1I0WR

SEVEN

11

+5

~-+--------~-----+~R1N4
5

Pl3f>Uil-C> WAIT 34
15

 - - - - - - - - - '
DRa>--------'

R26-2

+5
2MHZ

-31-

+5

DOUBLE DENSITY SYSTEM MANUAL
4.6

CHAPTER 4:

THEORY OF OPERATION

SEL PORT LOGIC

The SEL
Port
logic
contains all
drive
select,
side
select,
board
interrupt
enable, and drive
change
logic.
The
drive select
bits
are
read/write.
The side select bit is read/write only if that particular drive
is jumpered as present.
The board interrupt enable bit and the drive change
bit are write only.
All bits except the drive
change bit are stored in D
type Latch IC41.
There are three drive attribute bits associated with the SEL Port.
These
bits
set
up the
drive's attributes
according to the diode matrix.
This
matrix allows each
drive to be of a
different size or density or number of
sides.

DRIVE SELECT CIRCUITRY
The lower two bits of the SEL port are the Drive Select bits.
These bits
are presented
to the
drive select decoder, IC28, where
a Two Line to Four
Line decode takes
place twice.
The first, in
IC28a, is used to select the
correct
drive when
the head
is loaded.
This decoder provides
the drives
with the Drive Select signal through inverter IC27 and Open Collector Driver
IC39.
The second
set of decoding,
IC28b,
is active
all
the time and
provides the
diode matrix with one crosspoint per drive.
These crosspoints
are labeled
1 through 4 on the schematic and correspond to drives 1 through
4 that
may be attached to the controller.
The crosspoints provide a ground
for the diodes that would be installed to select certain attributes.
SIDE SELECT CIRCUITRY
The Side
Select bit
is the
third bit.
This bit is
sent to the drives
through
Open Collector Driver IC40d.
The Side
Select
line, IC41-3, is
logically ORed in IC31d with the "A" column of the diode matrix before being
read back by the computer through Octal buffer IC42.
Placing a diode in the
"A" column for the selected drive causes resistor R18 to be pulled low by an
output
of IC28b.
This low
allows the output of IC31d
to track the input
IC31-13.
If
no
diode was
installed in
the
"A" column for the
selected
drive,
resistor
R18
presents
a
constant
one
to
the
output of
IC31d
regardless of the condition of the Side Select D Latch IC41.
The software selects the
bottom side of a particular drive by writing a
zero to
the side
select bit.
If upon reading
back this bit, the software
finds that
it
has changed
to a
one,
it can be assumed
that no drive is
present for this particular drive number.
DRIVE CHANGE CIRCUITRY
The Drive Change
signal is
generated by the combination of WE4 and the
fifth
bit
of the
SEL Port
in IC16-10.
This signal is
a one microsecond
positive
strobe and
is Write
only.
The drive change strobe
triggers the
-

32 -

DOUBLE DENSITY SYSTEM MANUAL
head load

~)

CHAPTER 4: THEORY OF OPERATION

delay one shot IC4-4 if the head was already loaded.

1

(See Figure

BOARD INTERRUPT CIRCUITRY

The top output
bit is the Board Interrupt Enable bit.
This bit is write
only.
When
set to a one,
this signal allows the interrupt generated by
INTRQ or DRQ in IC36b,c
to be gated through Open
Collector driver IC40c.
Specific causes for interrupts are discussed in the 1791 section.
ATTRIBUTE SELECT LOGIC
The Drive
Attribute Logic
performs all
logic
switching to convert the
controller board
from different
densities and
different size diskettes.
There
are four
attributes that
are selected by the diode matrix for each
drive.
These are:
A.
B.
C.
D.

Drive Present (explained in Side Circuitry).
Single or Double Density.
Mini or Standard Drive.
One or Two Sided.

Three of
these attributes
are presented
through five of the SEL Port through IC42.

to the computer on bits

three

The first of these attributes is the Single/Double Density attribute.
To
generate the Double attribute, no diode is placed in the "B" column for the
selected drive.
This causes resistor R19 to pull up the "B" crosspoint for
the selected drive.
In turn, IC30b inverts this high to generate a low SID
Signal.
The
SID
signal is gated with other
portions of the circuit
to
select Double
density.
This signal is also presented to Octal buffer IC42.
If a diode
is installed
in the "B" column in
the matrix for the selected
drive, the line
from IC28b pulls down resistor
R19, which is then inverted
through IC30b
to produce
a high SID signal.
This
high SID signal is then
gated to other portions of the circuit to select Single Density.
The second
of
these
attributes
is
the
Mini/Standard attribute.
To
generate the Standard attribute,
no diode is placed in
the tIC" column for
the selected drive.
This causes resistor R20 to pull up the "C" crosspoint
for the selected drive.
This in turn generates
a high STD signal attached
to R20.
IC30a invert this high level to generate a low MIN signal.
Both of
these signals are gated with other portions
of
the circuit to select a
Standard drive.
The output of IC30a is presented to Octal buffer IC42.
If
a diode is installed in the "C" column in the matrix for the selected drive,
the line
from
IC28b pulls down resistor
R20,
which generates a low STD
signal.
This
low is
inverted in IC30a to generate the high MIN signal.
Both these
signals are gated to other portions of
the circuit to select a
Mini drive.
The third

attribute

is the

Side attribute.

- 33 -

To

select a single Sided

DOUBLE DENSITY SYSTEM MANUAL

CHAPTER 4: THEORY OF OPERATION

drive, no diode is installed in the "D" column for the selected drive.
This
causes resistor R21 to pull up the input of inverter IC30e.
The low output
of IC30e is passed to Octal buffer IC42 to be read by the computer as single
sided. If a diode was placed in the "D" column of the selected drive, the
output of IC28b will pull down resistor R21. This low is inverted by IC30e
and passed to Octal buffer IC42 to be read by the computer as double sided.
OTHER SEL PORT SIGNALS
Two other read only signals are accessable by reading the SEL port.
These are status outputs of the controller IC29.
The INTRQ output IC29-39
is passed to the tOP.)it of Octal buffer IC42 while the DRQ output IC29-38
is presented to the '1si~th. bit(PVof Octal buffer IC42.
These two signals will
be explained in the 1791 section.
74175
r--

DAU5
'"
Wi4 ,'"

~O

OAL1 "

~>

',"

,
,
OAL2 "

+5
+5

41

_ 14
aD-

R26-8
R26-9

C

om ,

(

(

7404
27
11
10

~

;"

SELO

7438

~-

OS1 13

398

5
r--

12

41

'---

9

-

SEL1

~~

2.2K
(4)

SIDE

./

7 .. 04

L

SIDE ATTR 10

30E

IX)

ir

+5

'1r

1

..---

CD

0

...

L--

£~~ F:~

11

.~

~_ MIN ATTR

3
~ I--

~'3
11

./

"
~

MIN

...

1/2

14

A

'--

41

~

C

8

C

0

2iiB

Q

1~r-

6
13

12

O~

A

7"13~

2 10
9
8Elf

HLO

74LS14
INTEN

4

9

3 \
5

DIODE MATRIX

4

6
368

10

11

74LS27

"

...,....
INTR ;0"

5

"!'"

1

2

X

6
7

17C
6

3
I-

2
B-.3
EN
1

3

15

ORO "
STO

25

~A~~

112 74139

7f

310 l12

7432

-OS4

3

39A
2-

Q~

C

0

INTRa
~

SID

0

5,

9

~

1

27

~~4

308
4

24

13----

1

"
ORO

12

[4>12
41

OS2 23

~390
OS3

i4>8

r--

./

39C

7f

30A
21'\,0

"
SID ATTR

~-

6

27

4

9
~>

"
TO IC42

---

27

10

_ 11
OP-

C

./

"

5

0

~

~

36C

8

l~ iRci
40C

....

10-

SEL PORT LOGIC
FIGURE 5

- 34 -

8

>SIDE

34

CHAPTER 4: THEORY OF OPERATION

DOUBLE DENSITY SYSTEM MANUAL
4.7

WRITE PRECOMPENSATION CIRCUIT

The Write
Precompensation Circuit
generates the proper amount of
compensation to the Write Data pulse for reliable Double Density operation.
This is done by selecting one out of the three one-shots to be fired for the
correct length of time.
The original Write Data pulse is delayed a fixed
amount of time for Nominal Data timing.
For an Early Write data pulse, the
original Write Data pulse is generated 150 nanoseconds earlier than a
Nominal Data pulse. For a Late Write data pulse,
the original Write Data
pulse is delayed 150 nanoseconds after the Nominal Data pulse.
Three signals from the controller IC29 are required to operate the Write
Precompensation Circuit. These are Early, Late and Write Data. The Early
and Late signals are valid prior to the leading edge of each Write Data
pulse.
The Early signal IC29-17 is passed directly to the negative edge
enable input of the Early one shot IC13b.
The Late signal IC29-18 is passed
directly to the negative edge enable input of the Late one shot IC12a. Both
the Early and Late signals are NORed in IC16b to produce the negative edge
enable signal for
the Nominal one shot IC13a.
Note that under normal
operating conditions,
the combination of Early and Late being high at the
same time is not possible. The Write Data pulses are inverted by IC30c to
produce a negative pulse.
This negative pulse is presented to the negative
edge trigger input of Early, Nominal and Late one shots IC13b, IC13a, and
IC12a. Whichever oneshot has its negative edge enable input high will fire
at this time. This pulse in NANDed in IC14 to trigger the Write Data one
shot IC12b on the falling edge.
This one shot produces a positive going 250
nanosecond Write Data pulse that is presented to the drives through Open
Collector Inverting Driver IC38b.

30C

5

WD

S

WD
NOM

7404

EARLY

+5

+5

LATE
EARLY

+5

+5

5

--+--s"'-_./
74LS02

3
74LS221 (300NS)

11

3
~

+5

11

74LS221
R2S-1

WRITE PRECOMPENSATION CIRCUIT
FIGURE 6

- 35 -

DOUBLE DENSITY SYSTEM MANUAL
4.8

CHAPTER 4: THEORY OF OPERATION

DELAY AND READY LOGIC

The delay logic performs three delay functions.
included in this section.

The READY logic is also

MINI MOTOR DELAY TIMER
The first delay is the motor timeout timer for. Mini drives.
This timer
IC3 acts as a retriggerable one shot.
The timer is enabled by the MIN
signal on Pin 4.
The timer is triggered by one of the four port enable
strobes RE, WE, RE4, WE4 through IC14. Once triggered, capacitor C9 charges
through resistor R3. When further accesses are made to the board,
IC14
pulses high. These high pulses are used to partially discharge capacitor C9
through two Open collector Inverters IC21c,d.
This discharge pulse is one
micro second in duration and many of these pulses are required to maintain a
low voltage on capacitor C9.
It should be noted then,
that the motor on
timer requires HEAVY board usage to maintain the mini motors in the on
state.
MINI MOTOR STARTUP DELAY TIMER
The second timer is the mini motor startup timer IC4b.
This timer
inhibits the controller IC29 from reading or writing until the mini motors
are up to speed.
The only time this timer fires is when a rising edge is
generated by the mini motor timer starting.
If the selected drive is a Mini
drive, the STD signal is low. This signal is presented to the positive edge
trigger enable input IC4-9. The rising edge of IC3-3 generates a negative
going pulse out of IC4-12. This negative going pulse is ANDed with the Head
load delay timer in IC15a to produce a low on IC29-23 whenever a delay in
reading or writing to the disc is required.
HEAD LOAD DELAY TIMER
The third timer is the head load delay timer.
This timer inhibits
reading or writing to the disc whenever the head has been loaded and the
head settling time has not expired.
The head load delay timer can be
triggered in one of two ways.
The first way is when the controller IC29-28
(HLD) goes high signifing that the head is to be loaded.
On this occasion,
IC4-1
is low.
The rising edge HLD into 'IC4-2 causes the one shot to
trigger. This generates a low output pulse on IC4-4 which is ANDed with the
mini motor startup timer in IC15a. The output of IC15a generates a low on
IC29-23 causing reading or writing to the disc to be inhibited.
The second way the head load timer may be triggered is when the head is
loaded and a drive change pulse is issued. When the head is loaded, HLD
presents a high to IC4-2.
This high level is also equivalent to the
negative edge enable required by the negative edge trigger input to trigger.
When a drive change pulse is generated in IC16c (DR CHG), the negative edge
of this pulse triggers the Head load timer. The drive change pulse only
will trigger the head load timer when the HLD signal is active high.
- 36 -

CHAPTER 4: THEORY OF OPERATION

DOUBLE DENSITY SYSTEM MANUAL
READY LOGIC

The Ready logic performs three tasks.
It allows the Ready line from a
Standard drive to be inverted and gated to the controller IC29-32 whenever
the head is loaded.
It prevents the Ready line to the controller IC29-32
from going Not Ready whenever the head is not loaded.
It also presents a
constant Ready to the controller whenever the controller is using Mini
drives.
IC5 performs all the Ready logic functions.
IC5a,b,d combine to form an
AND OR circuit.
One input to the AND OR is through IC5c.
The two inputs to
IC5c are the high true head load (HLD)
signal and the low true Drive Ready
signal from 36 Pin edge connector Pin 8.
Resistor R17 terminates the Drive
Ready signal.
The only time a Not Ready signal is Presented to the IC5-4
input to the AND OR circuit is when the drive is Not Ready (IC5-9 high) and
the HLD signal to IC5-10 is high.
This causes the output of the AND OR gate
to go low if IC5-5 was high.
In order for IC5-5 to be high, IC5d must have
a low on its input, which is the MIN signal.
This case would be true if the
STD signal has .high (selecting Standard drives).
If the MIN signal was
high, its inversion through IC5d disables the Standard drive ready line and
produces a constant high on the output of the AND OR gate by placing a low
on IC5-2.
+15

+5

DELAY AND READY LOGIC
FIGURE 7
7438
MOTOR ON
19
DR OHG>-----O

) - - - i - - - + - - - - - - HLT

070

.~J...... +5

STD>--+------~

-----' illm>
7404

R3

820K
MOTOR ON
4
MIN>---t------.--------6--+--------t
555 1
210
RE4

IS

>---+-----+----,

6

. . . - - -.....41 ; . : ) - - - -..

7406
WE4r--+-----+-~--~

8

9

~--11

8

x)------'

210

WE

p.......3......,..-_ _ _ _ _~ READV

-37-

DOUBLE DENSITY SYSTEM MANUAL
4.9

CHAPTER 4: THEORY OF OPERATION

CONTROLLER CLOCK CIRCUIT

The controller clock circuit generates and switches the system clock
between the two frequencies required for Mini and Standard drives. The
clock frequency for Standard drives is 2 Mhz and the the clock frequency for
Mini drives is 1 Mhz.
A 4 Mhz clock signal is generated by the TTL oscillator IC49. D type
Flip Flop IC20a divides this 4Mhz clock by 2 before it is presented to D
Flip Flop IC20b where it is divided by 2 again. The Q output of IC20a is
presented to IC19b which is acting as a two to one line decoder. The Q
output of IC20a is presented to IC19d.
The 2 Mhz clock is passed to the
controller IC29-24 through IC19b,c when the STD signal is high. The 1 Mhz
clock is passed through IC19d,c when the MIN signal is high.
The 2 Mhz signal
clocking of IC2.

from IC20a is also presented

to the Wait logic for the

~----------------------------------2MHZ

+5

+5

X1

4MHZ

7400
1MHZ

7404

7404

8
D----CLK

C52
22°'T
R49

R50

470

470

L - -_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

+5

+5
2MHZ

' - - - - - - - - - - - - - - - - - - - - - - - - - MIN

CONTROLLER CLOCK CIRCUIT
FlGURE8

- 38 -

STD

DOUBLE DENSITY SYSTEM MANUAL
4.10

CHAPTER 4:

THEORY OF OPERATION

VCO PHASE LOCKED LOOP

The VCO Phase Locked Loop is comprised of six sections.
1.
2.
3.
4.
5.
6.

These are:

Phase Comparator
Loop Filter (switchable)
Amplifier
Low Pass Filter
Voltage Controlled Oscillator
Divider Chain

PHASE COMPARATOR
The Phase Comparator
determines the
phase error of the input
frequency
(Data) against
the present VCO frequency and generates a difference voltage
used to
change
the frequency
of the
VCO
towards the incoming Read
Data
frequency.
Read Data from
the disc
is buffered
by IC37d.
The Read Data line is
terminated by
resistor R15.
The buffered Read Data is
presented to IC25b
where
the
input pulse
is shortened
to 200 nanoseconds.
The Q output of
IC25b is sent
to the controller IC29-27 as
the RD pulses.
The Q output of
IC25b is presented
to the clock input of
IC35b.
IC35b, a D type Flip Flop
performs a divide
by two on the data.
This converts the input data from a
pulse to either
a rising edge or a
falling edge.
This divided by two data
is presented to
D type Flip Flop IC35a.
Here the Data is clocked with the
2X
VCO frequency.
A phase
comparison is made between the
2X VCO and the
input
data
in IC6b.
This
comparison is
inverted
in
IC17e and
then
reinverted in
IC21f to
produce the Pump Up signal.
The Pump Up signal is
also ANDed with the 1X VCO signal in IC15d and then presented to the D input
Of D type Flip Flop IC24b.
This Flip Flop is clocked by the 2X VCO signal.
The Q output of IC24b is inverted in IC21e to produce the Pump Down signal.
LOOP FILTER
The Loop Filter generates the
lock, range and steady state
Phase error
constants of the system.
It has two extra cap~citors that are switched into
operation to
change
the characteristics of the
loop
for different data
rates.

-

39 -

DOUBLE DENSITY SYSTEM MANUAL

CHAPTER 4: THEORY OF OPERATION

The Pump Up and
Pump Down signals are
combined at the
junction of
resistors R40, R32,' and R33.
The steady state bias point of this junction
is 2.5
Volts.
The
Pump Up and Pump Down signals vary this voltage in
proportion to
the frequency difference between the incoming data pulses and
the 1X VCO frequency.
Loop filtering is done in resistor R33 and Capacitors
C48,
C4g and
C50.
In Double Density Standard mode, both C48 and C50 are
gated off by
the two lows presented to
the inputs of IC's 15b and 6c.
The
two lows are
the MIN and SID signals
produced in the diode matrix.
In the
Single Density Standard and Double Density Mini mode, only capacitor C48 is
gated off.
In this case, one of the two signals MIN or SID is low.
One of
these lows inhibits one input of AND gate IC15b.
Capacitor C50 is gated on
by one
of these signals also
through IC6c.
The last case is the Single
Density Mini.
Here, capacitor
C48 is gated on and
capacitor C48 is gated
off.
In Single Density Mini,
both MIN and
SID are active high.
This
enables AND gate IC15b and disables XOR gate IC6c.
These capacitors modify
the natural
frequency of the loop to accomodate the different data rates of
the above types of drives.
LOOP AMPLIFIER
The Amplifier is used
have a high slew rate.

to adjust overall loop gain.

This Amplifier must

The Loop Amplifier is a noninverting high slew rate Operational Amplifier
with a gain of +2.1.
The input resistance is
the parallel combination of
R41 and R47.
The feedback resistor is R46.
The negative input is biased at
2.5 Volts
to adjust
for the steady state input bias from the Loop Filter.
This steady state bias is passed to the next stage.
LOW PASS FILTER
The Low pass filter is used to remove high frequencies introduced by the
digital
phase comparitor.
It is
also used to reduce the
response of the
loop to instantanious variations in the input data stream.
The Low Pass Filter is a 2 Pole Butterworth Active filter.
The cutoff
frequency
of
this filter
is approximately 150 Khz.
The Low Pass Filter
consists of ICg a LM741 , capacitors C65 and C66, plus resistors R44 and R45.
It is a noninverting type filter.
VCO
The VCO is ~he basic clock for the loop.
Mhz/Volt
constant
and a Frequency input
achieve lock.

It has a Range input to set the
to vary the output frequency
to

The VCO
is a Texas
Instruments 74S124 Dual VCO IC.
Its free
running
frequency is set by the Range input and capacitor C53.
The output frequency
is 8Mhz.
Capacitor C54
filters the Frequency control input
to remove any
high frequency
noise generated by the TTL circuits nearby.
The 8Mhz output
- 40 -

CHAPTER 4: THEORY bF OPERATION

DOUBLE DENSITY SYSTEM MANUAL
on ICB-7 is sent
required for the
disabled.

t~

the Divider Chain
Phase Comparitor.

to provide the 1X and 2X VCO signals
The second VCO section of ICB is

DIVIDER CHAIN
The Divider Chain provides different divide rates for the different data
rates used in the controller.
It also provides the controller IC29 with the
1BO degree out of phase bit rate clock required for data separation.
The Divider Chain receives its input from ICB-7 the VCO.
This BMhz
signal is first divided by two in D type Flip Flop IC7b.
The output of IC7b
is a 4 Mhz signal presented to the Binary divider IC10.
IC10 divides this 4
Mhz signal into the different 1X and 2X VCO signals required.
IC11 is a
Dual four line to one lin~ multiplexer.
The output of IC11b is the 1X VCO
signal. The output of ICl1b is the 2X VCO signal.
The multiplexer is
switched by the SID and MlN diode matrix signals.
The output periods of
IC11 for different SID and MIN signals are tabulated below.

SID

MIN

0
1
1

1
0
1

DRIVE TYPE

:tC11a

IC11b

D.D.
D.D. MIN
S.D. STD
S.D. MIN

1
2 us
2 us
4 us

.5
1 us
1 us
2 us

---------------------------------------------------------us
us
0
0
STD

The output of IC11b is first limited to a period of BOO ns low and BOO ns
high by IC1.
This prevents exceeding the limits imposed by the controller
IC29 on its RCLK input IC29-26 (see 1791
operating specs).
This signal is
then divided by two to generate the 1BO degree out of phase RCLK signal, in
IC24a.
The RCLK signal is pre~~ted to the controller IC29-26.

- 41 -

DOUBLE DENSITY SYSTEM MANUAL
4.11

CHAPTER 4:

THEORY OF OPERATION

DISC I/O BUFFERING

The Disc I/O signals and the IRQ signal buffering will be discussed here.
There are three
Status signals from the drive that are buffered by parts
of IC37.
These are:
The Write
Protect
Signal
enters the
controller board
on 36 Pin edge
lconnector Pin
9.
This
line
is
terminated by
resistor
R12.
The Write
Protect signal
is buffered
in IC37a and is presented
to the WP controller
input IC29-36.
The Index signal
enters the controller board on 36 Pin edge conector Pin
5.
This line
is terminated by resistor R13.
The Index signal is buffered
in IC37b and then presented to the IP controller input IC29-33.
The Track 0 signal
enters the controller board on 36 Pin edge connector
Pin 12.
This
line is
terminated by resistor R14.
The
Track 0 signal is
buffered in IC37c and then presented to the TROO controller input IC29-34.
There are four
controller outputs that are inverted and buffered by Open
Collector IC38.
These are:
The Write Gate
signal is conditioned by the Master Reset signal in IC38a
before being sent to the drives on 36 Pin edge connector Pin 7.
The Write Data signal
is sent to the drives
through IC38b.
leaves the board on 36 Pin edge connector Pin 10.

This signal

The Motor On signal from IC3-3 is conditioned by the MIN signal in IC38c
before being sent to the drives on 36 Pin edge connector Pin 19.
The Head
Load signal
is conditioned
by the STD signal in
being sent to the drives on 36 Pin edge connector Pin 18.

IC38d before

The Drive Select signals DS1, DS2, DS3, and DS4 are inverted and buffered
by IC39b,c,d,a before being sent to the drives in 36 Pin edge connector Pins
13, 23, 24, and 25 respectivly.
There are
are:

three drive

lines and

one CPU line buffered in

The Direction line is
buffered in IC40a before being
on 36 Pin edge connector Pin 15.
The step signal is
buffered in IC40b before being
36 Pin edge connector Pin 6.
-

42 -

IC40.

These

sent to the drives

sent to the drives on

+5

7486

I PHASE

17E

COMPARATOR

AMPLIFIER

~~~1~1~1~0--_ _ _ _ _ _ _ _ _ _ _--,

~~~

LOOP
FILTER

J

~~,-6_ _ _....,
- - - - s.....

J

74LS14

13

LOW PASS
FILTER

dbp

l~D ~1~1__________~

12 7408

~

R26-2

,.

~

7486

~~11
d~

'yyy

+5

13

(

~

R26

lXVCO

)

-6

lR28
-11

,......l~

+5

12
&...;..;;;.0

~DA

74161

-+___-,

~D8
~
DC
S 00

aAU1~4__________________________-t_____-,

12
a"i"J,...!~-------'~:-1-/~=-=7-:-4
:-:16::3:---;--'
10

2.2K

aorn-;..l...;...l----,
1
CL'" :>-!---"

,----,
...!.Q
y~
_ ,O - --11
l11A
15
13 3
S
A 8
14'

LD~

'- - - - - - ,.- -.

2
,I>
-

~
-~2

7
EPr-:-<

ET...!Q~

R~
.
••• IL
4- 5 ",Q--JN'IIN"2.2K

f DIVIDER

11
rr

R26-2

--.§.O

21E

+5

h

FREa

M

RCLK
LIMIT

~ R26-11

e 7408
Sl..J

218

()

5

a.

4

,..,

Ci~

~

3
RANGEr--==-

1

.i

~

21A

~50 22
I

a~
78

~r--03-vJ..

~

Q~

'"''1

6

f+s8''''0-~NNir----.,

~

R35 5K

R27

R26

l

-11

~L

3

5

7474

a~1--

D
24A

~

<5

t!-

~--------------------------------------------------------------------------------~-S/O

1-:;1r~ R26-11

!

+

~D

~

2

()

arc

t'

,..........!., 7474

4 74S124, ~
------,
C53£
8
5
38P 1'--_--"-1

L..-:

L---I----1~-_+.........r---i
I 158 ~6:-'--+--'--i1
3
_A1

2

7 4123 ~r-

R27

~

~

+5

14.L 15
V

2

~------------~~

L-~~8

9.1K

~

~t

1000l"

7406

220Pri ~

---...!.I)

y-

+69
.

C64..L·

I

Y 7

+5

R8

i-> 1

r

~ -11

7486

RDATA~

PUMP
DOWN

• R28

~&~-+"""""il

C74

10K

a~

4 1'118
' - - -~2 S 1
3
14

~R47

7406
9 P£)1.~~~D-0~I--R",~21W\111
0r-K
_
-

~rr474

11~ ~
53

~

.011'"

120

248

11

a8U1~3~________~____________

4

R9

2XVCO

049-....

~1

)

+5

vCO PHASE LOCKED LOOP
FIGURE 11

CHAPTER 4: THEORY OF OPERATION

DOUBLE DENSITY SYSTEM MANUAL

The Side signal is buffered in IC40d before being
36 Pin edge connector Pin 21.

sent to the drives on

The IRQ signal is buffered in IC40c before being sent to
Interrupt Socket Pin 8 through 36 Pin edge connector Pin 34.

- 43 -

the

CPU

DOUBLE DENSITY SYSTEM MANUAL
4.12

CHAPTER 4: THEORY OF OPERATION

POWER SUPPLIES

The +12 Volt supply for the board enters on 22 Pin edge connector Pin 22.
It provides +12 Volts to the controller IC29, The Amplifier IC22, the Low
Pass Filter IC9 and to the Comparator IC34.
It is filtered by capacitors
C38, C59, C63, C68 and C69.
The -5 Volt supply for the board enters on 22 Pin edge connector Pin B.
It provides -5 Volts to the Amplifier IC22 and the Low Pass Filter le9.
It
is filtered by capacitors C41, C42, c60 and C64.
The +5 Volt supply for the board enters on 22 Pin edge connector Pins 1
and A.
This supply provides all +5 Volts to the TTL integrated circuits and
to the pullup resistors.
The +5 Volt supply is also filtered by inductor L1
and then provides the +5b Voltage for the VCO section.
The +5 volts is
filtered by numerous tantalum and disc ceramic capacitors.

- 44 -

DOUBLE DENSITY SYSTEM MANUAL
4.13

CHAPTER 4: THEORY OF OPERATION

INTERRUPTS

The Digital Group Double Density Controller board uses a scheme of
Interrupts that you probably have never seen before. This type of interrupt
uses Interrupt Mode Zero (aOaO) to jam an instruction into the zao. This
instruction is a LD A,A. This instruction is jammed onto the bus through
the CPU Vector Interrupt Socket Pin a (bit 7). When CPU Interrupts are
enabled, pulling down one of the Vector lines causes an Interrupt to occur.
When the zaO acknowledges the interrupt, a Vector of 177Q or 7FH is jammed
onto the bus.
In Interrupt Mode Zero,
this Vector is taken as an
instruction and is executed by the CPU as if this instruction was fetched
from memory.
After execution, the program counter is incremented as in any
instruction, and normal processing continues.
In the Digital Group Double Density Controller Software for reading or
writing a sector, this interrupt scheme is used. When the controller board
needs to read or write a sector:
1. Controller Board interrupts are enabled.
2. Read or Write command is issued.
3. CPU Mode Zero Interrupts are enabled.
4. Halt instruction executed. (Refresh working)
5. Controller Board issues an Interrupt.

6. The LD

A,A instruction executed instead of Halt.

7. Read or Write data is done using Wait logic.

a.

Controller Board interrupts disabled.

9. Software returns to calling program.

-

45 -

DOUBLE DENSITY SYSTEM MANUAL

CHAPTER 5: 1791 PRODUCT SPECIFICATION
CHAPTER 5

1791 PRODUCT SPECIFICATION

5.1

INTRODUCTION TO WD1791 PRODUCT SPECIFICATION

We should review some of the curcuitry of the controller board
reading the 1791 Product Specification.

before

The 1791 IC is equivalent in architecture to many of the microprocessors
in use today.
It has a fixed instruction set and executes instructions as
they are given to it. These instructions take longer to execute than a
normal microprocessor instruction, but these instructions are more powerfull
than most microprocessor instructions.
When an Instruction is given,
the
1791 resets the INTRQ flag (if set) and then sets its busy flag.
Upon
completion of the instruction, the 1791 resets its busy flag and then sets
the INTRQ flag.
This latter flag is available for testing as the top bit in
the SEL Port.
It is STRONGLY recommended that the software test the INTRQ
bit while waiting for instruction completion.
Each instruction has a
functions.
These are :

field in that instruction that

performs specific

1. Load the head at the start of the operation.
~~'--IJ\d\t)....\lI.-J'-.~
"-~ VV''b'(

}6~

10 , ~

V ~\~}

2. Verify for the correct track when done.

~

~

1I"vfA' 4.

/l

~,

tt'" ~ \,} t~Y'

3. Update the internal track register when done.

,.,\~c;v~

- ~t:,r~\ ~
J
,} J IJ

S t epa t asp e c i f i c rat e •

'}i \~\ J~

Read or Write multiple sectors.

I

".}

. \t' \~o
I
&:-..{
J\

6. Write with Deleted or Regular Address Mark.
7. 15 millisecond delay or not.

'\

\I

I' .

(

'>

\~

J'
'\..'l

Ir ~\~

~

\

~

t::

..~

(i

\
'/~) G-\\
~

~JJ.f

I

~ ~'-~~\l''" /r(),:"
' ')

-.. , ,"---" "l

With the hardware configuration of the Digital Group Double Density.~
Controller Board one of these optional bits is NO LONGER OPTIONAL. The Head ~
load bit in all Step, Seek and Restore Instructions MUST be SET. One of the
conditions for drive select in the hardware is that the head must be loaded.
Also some of the bits have to be used correctly.
these bits and how they should be used.

Here is a summary of

The Verify bit should be used at the users option.
It verifys the
position of the head after a Seek, Step or Restore by reading the first ID
field it encounters on the Track.
UNDER NO CIRCUMSTANCES should the user
- 46 -

DOUBLE DENSITY SYSTEM MANUAL

CHAPTER 5: 1791 PRODUCT SPECIFICATION

have the verify bit ON during a DISK FORMAT operation. It should also be
noted here that on a Seek, Step or Restore Instruction that had the Verify
bit RESET,
no step settle time is added to the Instruction.
That is, the
user must now wait the drive manufacturers specified Step Settle Time BEFORE
issuing a Read Sector or Write Sector Instruction.
The Update bit is used to increment/decrement the Track register in the
1791. Presently no software provided by the Digital Group uses this bit.
All Stepping operations are done with the Seek Instruction and this
Instruction automaticlly updates the Track Register.
The Step Rate bits are used to set the step rate to one of four available
rates. These bits should be set closest (equal or above) to the drive
manufacturers specified step rates.
The Read or Write Multiple Sector bit allows the user to read or write
entire tracks of data to/from memory with only one Instruction. This bit is
not presently used in any of the Digital Group software. It is recommended
that the user NOT try this option until he has MASTERED the theory behind
the Interrupt/Halt data transfer scheme used in the software.
The Write with
bit is fine for
concerned.

Deleted Data Mark bit should always be set to zero.
This
IBM but it serves no usefull purpose as far as we are

Another bit that should always be set to zero is the 15 millisecond delay
bit.
This bit is left over from the 1771 IC and since then the Read and
Write Sector flowcharts have changed.
If this bit is set, only one sector
per revolution can be read if you are reading sectors sequentially.
(See
the 1791 flowcharts for a better explanation.)
Other bits that have not been implemented in the Digital Group software
are Interrupt Instruction bits 0 through 3. The user might find a use for
these bits after he becomes familiar with the system. We recommend that the
Interrupt Instruction be executed with all these bits off.
A brief explanation of the 1791 internal registers is also in order.
The first register is the Command/Status Register.
This is the register
that all Instructions are written to and all Status is read from.
Reading
this register resets the INTRQ bit in the SEL Port. Since this bit is used
to generate CPU Interrupts it is recommended that all software read the
status register after command completion to clear the INTRQ bit whether or
not the status is needed.
The second register is the Current Track Register.
This register should
only be written to when changing drives.
It can be read at any time to see
what Track the head is presently under.
The third register is the Requested Sector Register.
This register
should be loaded with the desired Sector prior to the issuance of a Read or
Write Sector Instruction.

- 47 -

DOUBLE DENSITY SYSTEM MANUAL

CHAPTER 5: 1791 PRODUCT SPECIFICATION

The fourth register is the Data Register.
This register is used to hold
the requested Track during a Seek Instruction. It could also be used for
read or write data bytes during Read or Write Sector Instructions.
The way
the hardware of the Digital Group Double Density Controller is setup, this
data transfer operation will be done through the Wait Port which is actually
this register but with wait states added.
Keep this
information
Specification Section.

in

mind

when

- 48 -

you

read

the

1791

Product

DOUBLE DENSITY SYSTEM MANUAL
5.2

CHAPTER 5: 1791 PRODUCT SPECIFICATION

1791 PRODUCT SPECIFICATION

- 49 -

DOUBLE DENSITY SYSTEM MANUAL

CHAPTER 6: SAMPLE DRIVER PROGRAM
CHAPTER 6
SAMPLE DRIVER PROGRAM

6.1

INTRODUCTION

The Digital Group Double Density Disc Controller Sample Driver has three
entry points used by the calling program.
The INITialization routine (INIT) fills the Drive Attribute Table and
restores all drives that are present to Track O.
This routine should be
called upon powerup and whenever a Drive Attribute change is made.
In DISKMON V3.00, INIT
through location 340 000.

is called

every time

the

system is restarted

In OASIS V5.3D,
a variation of this routine reinitializes only the drive
specified in a tMOUNTt or tATTACHt Command.
You can assume that the INIT Routine destroys all registers.
The Read Block(s) Routine (DSKRD) reads a specified number of blocks
starting at the START BLOCK into memory. On entry the registers should be:
A=
BC=
DE=
HL=

UNIT NUMBER
BLOCK COUNT (256 Bytes/Block)
START BLOCK (0 through Maximum-1)
START BUFFER ADDRESS

On a good read the registers are:
A=
BC=
DE=
HL=
On

a

0 (Zero Flag=1)
UNKNOvlN
LAST TRACK AND SECTOR READ
START BUFFER ADDRESS

bad read the registers are:
A=
BC=
DE=
HL=

ERROR CODE (Zero Flag=O)
UNKNOWN
TRACK AND SECTOR OF ERROR (For errors 3-6)
START BUFFER ADDRESS

The Write Block(s) routine (DSKWRT) uses the same parameters as the Read
Block(s) routine EXCEPT the direction of data is reversed.
The error codes returned to the calling program are as follows:
- 50 -

DOUBLE DENSITY SYSTEM MANUAL

CHAPTER 6: SAMPLE DRIVER PROGRAM

1. DRIVE NUMBER TOO LARGE
2. DRIVE NOT PRESENT

3.
4.
5.
6.

SEEK ERROR
BAD TRACK NUMBER
READ ERROR
WRITE ERROR

The user can get more information from the controller Status port on a
Read or Write Error.
If a Read or Write error occurs, the user should read
the controller status register if he needs more information.
The typical
errors read from the Status register are:
2XX
004
006
010
020
030

=
=
=
=
=
=

DRIVE NOT READY
DATA TRANSFER ERROR
DATA TRANSFER ERROR
DATA CRC ERROR
RECORD NOT FOUND
ID FIELD CRC ERROR

Any others signify
such.
6.2

controller hardware problems and should

be expressed as

SAMPLE DRIVER CODE
1;

2;
3;
4;
5;

6;
7;
8;

9;
10;
11;

Sample Driver for the Digital Group Double Dens
Controller using the LD A,A Interrupt Scheme.
(C) 1979 by The Digital Group
Written by Larry Williams
Last Revision 04/11/79

MAIN READ/WRITE LOOP

12;

13;
14;
15;
16;
17;
18;
19 ;
20;
21 ;
0000
0001
0003
0005
0006
0007

F5
F680
1802
F5
97
32F501

22 DSKWRT:

23
24
25 DSKRD:
26
27 RDvl RA:

output:

input:
AF=
BC=
DE=
HL=

PUSH
OR
JR
PUSH
SUB
LD

Unit Number
Block Count
Start Block
Buffer Start

AF
200Q
RDWRA
AF
A

(RDWR),A
- 51 -

error output:

AF=O Z=1
AF= ERR CODE
BC= Destroyed
DE= Last Tr/Se
HL= Buffer Start

Save the Unit Number
Set top bit for Write
Go around read entry Point
Save the Unit Number
get zero for read
Save the Read/Write Flag

Z=

DOUBLE DENSITY SYSTEM MANUAL
OOOA
OOOB
OOOD
OOOE
0010
0014
0015
0016
0017
0018
001B
001D
0020
0022
0023
0024
0027
0028
0029
002C
002E
002F
0032
0034
0035
0036
0037
0038
0039
003B
003E
0040
0041

F3
ED46
F1
DDE5
DD2AF301
E5
EB
50
59
CDBAOO
2028
CDOC01
2023
E3
D5
3AF501
07
F5
D46F01
2015
F1
DC9A01
2010
D1
E3
2B
7C
B5
280A
CD5A01
28DD
E3
1802

0043
0044
0045
0046
0048
0049
004B
004D
004F
0050

E1
D1
E1
DDE1
F5
DB2C
E66F
D32C
F1
C9

28
29
30
31
32
33
34
35
36
37
38
39 RDWRB:
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
6 1;
62;
63 ERROR3:
64· ERROR2:
65 ERROR1:
66
67
68
69
70
71
72
73;
74;
75;
76;
77;
78;
79;

CHAPTER 6: SAMPLE DRIVER PROGRAM
DI
IMO
POP AF
PUSH IX
LD I X, ( UNIT P. TR)
PUSH HL
EX
DE,HL
LD
D,B
LD
E,C
CALL SETUP
JR
NZ,ERROR1
CALL SEEK
JR
NZ,ERROR1
EX
(SP),HL
PUSH DE
LD
A,(RDWR)
RLCA
PUSH AF
CALL NC,READS
JR
NZ,ERROR3
POP AF
CALL C,WRITES
JR
NZ,ERROR2
POP DE
(SP),HL
EX
DEC HL
LD
A,H
OR
L
JR
Z,ERROR1
CALL INC SEC
JR
Z,RDWRB
(SP),HL
EX
JR
ERROR1

disable further interrupts
Set to 8080 type interrupt
Get the Unit Number back
Save IX in case used.
Get current unit pointer
Save Buffer address on stack
Get start Record Number to H
Upper half of Bolcks to D
Lower half of blocks to E
Select the unit convert Tr/S
Nonzero is a error
get to the right track
nonzero is error
get addr to HL blocks to (sp
Save Tracke and sectors
Get read/write flag
put bit 7 into carry
save flags
Read if no carry
error exit if nonzero
get flags back
it is write if carry
error exit if nonzero
get Track and sector back
trade blocks in HL for mem a
one less block
top half blocks to A
see if H=L=O
zero is OK no error exit
get the next sector number
no errors ,get another sector
get mem adr back to HL
error exit with nonzero

POP
POP
POP
POP
PUSH
IN
AND
OUT
POP
RET

get RDWR flag off stack
get Track and Sector back
get back real HL
and IX
save error code if any
get unit number
mask off interrupt en bit
disable board interrupts
get error code back if any
Go back to calling routine

HL
DE
HL
IX
AF
A,(SEL)
157 Q
(SEL),A
AF

INITIALIZE ROUTINE
- 52 -

DOUBLE DENSITY SYSTEM MANUAL

0051 0600
0053 DD21DA01
0051 DDE5
005·9 18
005A D32C
005C DB2C
005E CB51
0060 DD3605FF
0064 203D.
0066 CB6F
0068 2E80
006A 2002
006C 2EOO
006E DD1504
00111605
0013 211A4D
0016 CB61
0018 280B
001A 1604
001C 211228
001F CB5F
0081 2802
0083 2623
0085 DD1401
0088 CB5F
008A 2802
008C CB25
008E DD1500
0091 DD1102
0094 DD1203
0091 18
0098 F608
009A D32C
009C CDC501
009F DD360500
00A3 110600
00A6 DD19
00A8 04
00A9 CB50
OOAB 28AC
OOAD 91
OOAE 32F201
00B1 D32C
00B3 DDE1
00B5 DD22F301
00B9 C9

CHAPTER 6: SAMPLE DRIVER PROGRAM

80 ; This routine initializes all parameters in the Disc
81 ; Parameter table. It should be called upon powerup and any
82; time the user wishes to change Drive Attributes.
83;
84;
85 INIT:
start with drive 0
LD
B,O
first table entry
86
IX,DSO
LD
save it for later also
PUSH IX
81
get
drive number to A
88 INITA:
LD
A,B
SEL
)
,
A
(
OUT
select
that drive
89
get
Attributes
for that driv
A, ( S EL)
IN
90
see if Side came back zero
BIT 2,A
91
set no drive there to be sur
(IX+5),OFFH
92
LD
JR
NZ,INITX
of
came back one •.• no drive
93
Single Density? One=S.D.
BIT 5,A
94
L,128D
Single Density Sector length
LD
95
Brif
Single Density
96
NZ,INITB
JR
Double
Density Length (256)
L,O
LD
91
save
sector
length in table
(IX+4)
,
L
98 INITB:
LD
LD
D,STDSTEP
step rate for Standard Drive
99
100
Standard Tracks and Sectors
LD
HL,STDTRSE
101
BIT 4,A
See if Standard or Mini
zero
is Standard Drive
102
Z,INITC
JR
D, MIN STEP
step rate Mini Drive
LD
103
One Sided MINI Track and Sec
104
HL,MINI1SID
LD
see if 2 sided Mini
BIT 3,A
105
1 06
Brif only 1 Sided
JR
Z,INITC
LD
2 sided Mini is Different
H,MINI2SID
101
108 INITC:
Save Number of Tracks
(IX+1),H
LD
Check for 2 sided again
BIT 3,A
109
110
1 sided branches
JR
Z,INITD
SLA L
double sectors for 2 sided
111
save maximum Sectors
11 2 INI TD :
LD
(IX+O),L
LD
(IX+2),A
Save copy of Attribute Bits
113
114
Save step rate
LD
(IX+3),D
LD
115 INITR:
A,B
get Unit number back in A
or in the drive change bit
116
OR
DRICHG
select the drive again
OUT ( SEL) , A
111
Get this drive to Track Zero
118
CALL RESTORE
set current track to zero
LD
(IX+5) ,0
119
the table increment
120 INITX:
LD
DE,6
add in the increment
1 21
ADD IX,DE
get to next drive
122
INC B
got to four yet ?
BIT 2,B
1 23
no go test another
124
Z,INITA
JR
get a zero in A
SUB A
125
set current unit as zero
1 26
(UNIT),A
LD
make sure controller matches
OUT ( SEL) ,A
121
get DSO pointer back
1 28
POP IX
save current unit pointer
LD (UNITPTR) , IX
1 29
done initializing all avail
RET
130
131 ;
- 53 -

DOUBLE DENSITY SYSTEM MANUAL

CHAPTER 6: SAMPLE DRIVER PROGRAM,

132 ;
133 ;
134 ;
SETUP ROUTINE
135 ;
136 ; This routine checks drive validity first, then changes
137 ; drives if requir~d. Lastly, it converts block number and
138 ; start block to number of sectors and startng sector.
139 ;
140 ;
14 1 ;

OOBA
OOBC
OOBE
OOCO
00C1
00C2
00C3
00C6
00C7
00C9
OOCA
OOCB
OOCD
OOCF
00D1
00D5
00D8
00D9
OODB
OODC
OODE
OODF
00E3
00E6
00E8
00E9
OOEB
OOED
OOEE
OOEF
OOFO
00F1
00F5
00F7
00F8
00F9
OOFA
OOFB
OOFC
OOFD
0100
0102

FE04
3804
3E01
B7
C9
E5
21F201
BE
2816
D5
77
F608
D32C
E603
DD21D401
110600
3C
DD19
3D
20FB
D1
DD22F301
DD7E05
D329
3C
2005
3E02
B7
E1
C9
E1
DDCB026E
2804
29
EB
29
EB
97
47
DD4EOO
ED42
3C

142
1 43
144
145
146
147
148
149
150
1 51
152
1 53
154
155
156
1 57
158
159
160
16 1
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
1 80
1 81
182
1 83

SETUP:

SETUPA:

SETUPB:

SETUPC:

SETUPD:

SETUPE:
DIVIDE:

CP
4
JR
C,SETUPA
LD
A, 1
OR
A
RET
PUSH HL
LD
HL,UNIT
(HL)
CP
JR
Z,SETUPC
PUSH DE
( HL) , A
LD
OR
DRICHG
OUT ( SEL ) , A
AND 3
LD
IX,DSO-6
LD
DE,6
INC A
ADD IX,DE
DEC A
JR
NZ,SETUPB
POP DE
LD (UNITPTR),IX
LD
A,(IX+5)
OUT (TRACK),A
INC A
JR
NZ,SETUPD
LD
A,2
OR
A
POP HL
RET
POP HL
BIT 5,(IX+2)
JR
Z,SETUPE
ADD HL,HL
DE,HL
EX
ADD HL,HL
DE,HL
EX
SUB A
LD
B,A
LD
C,(IX+O)
SBC HL,BC
INC A
- 54 -

see if valid drive
carry is ok
INVALID DRIVE NUMBER
set nonzero
go back with error
save start record
see if same drive
zero is same drive
don't mess with unitptr
save blocks for a moment
save new unit number
or in the drive change bit
change the controller to new
get back fresh unit number
table base address less 6
table increment
for once thru the loop for s
add in the table increment
for each unit number
not done until unit is zero
get blocks back
current unit ptr
get current track for this u
update the controller
see if was OFFH
unit is there branch
NO DRIVE PRESENT
set nonzero
get start record back
go back with error
get starting block back
see if double density
if double no add needed
double start block for secto
swap around
double blocks for sectors
get back in order
get a zero
into B also
get number od sectors
divide start block by sector
new track

DOUBLE DENSITY SYSTEM MANUAL
0103
0105
0106
0107
0108
0109
010A

30FB
09
3D
2C
67
EB
1858

1 84
1 85
186
187
188
189

190
1 91 ;

CHAPTER 6: SAMPLE DRIVER PROGRAM
JR
ADD
DEC
INC
LD
EX
JR

NC,DIVIDE
HL,BC
A
L

H,A
DE,HL
SETUPX

not done until overfolw
get remainder back
for extra time thru loop
sectors start at one
track to H
put trlse in DE blocks in HL
setup exit code shared by ot

192;

193 ;
194 ;

SEEK ROUTINE

195 ;
196 ;
197 ; The seek routine gets the head of the selected drive to
198; the correct track. It then performs the logical to

199 ; physical sector mapping if 2 sided.
200;
201 ;

010C
010E
010F
0111
0115
0116
0118
011B
011D
011F
0121
0122
012!l

0126
0128
012A
012C
012E
012F
0130
0133
0135
0139
013A
013C
013E
01111
0142
0143
0145
0111-6
0147
0148

DB29
BA
2824
ED4BF501
7A
D32B
DD7E03
F618
D328
DB2C
87
30FB
DB28
E6 1 8
280B
3E03
1002
B7
C9
CDC501
18EO
DDCB025E
4B
0680
280D
DD7EOO
OF
BB
3006
4F
7B
91
4F

202;
203 SEEK:
204
205
206
207 SEEKA:
208
209

IN
CP
JR
LD
LD
OUT
LD

210

OR

211
212 SEEKB:

OUT
IN
ADD
JR
IN
AND
JR
LD
DJNZ
OR
RET
CALL
JR
BIT
LD
LD
JR
LD
RRCA
CP
JR
LD
LD
SUB
LD

213
214
215

216
217
218

219
220
221
222 SEEKC:
223
224 SEEKD:
225
226
227
228
229
230

231
232
233
234
235

A,(TRACK)
D

Z,SEEKD
BC,(RTRY-1)
A,D
(DATA),A
A,(IX+3)
SEEKCOM
(CMND),A
A,(SEL)
A

NC,SEEKB
A,(STAT)
SEEKMASK
Z,SEEKD
A,3
SEEKC
A

RESTORE
SEEKA
3,(IX+2)
C,E
B,BOTMASK
Z,NOTTOP
A,(IX+O)
E

NC,NOTTOP
C,A
A,E
C

C,A
- 55 -

Get current track
same as requested ?
Brif same
get retry count into B
get requested track to A
put to controller
get the step rate
or in the seek command
issue seek command
wait for completion (bit 7)
into carry
not done if no carry
get status of completed seek
mask only wanted bits
zero is good seek
SEEK ERROR
go to seekc if retrys left
set nonzero
nonzero error exit
get home for reference
try allover again
see if 2 sided
put sector in C
interrupt and side mask in B
Brif NOT 2 sided
get maximum sectors
divide them by 2
still on bottom?
if no carry still on bottom
save dividing line for toplb
get oversized sector in A
subtract dividing line secto
put new sector in C

DOUBLE DENSITY SYSTEM MANUAL
0149
014B
014D
014F
0150
0152
0153
0155
015,8
0159

0684
DB2C
E603
BO
D32C
79
D32A
DD7205
97
C9

015A DD7EOO
015D 1C
015E 93
015F 30F7
01611E01
0163 14
0164 DD7E01
0167 3D
0168 92
0169 30ED
016 B 3 EO 4
016D B7
016 E C9

016F ED5BF601

CHAPTER 6: SAMPLE DRIVER PROGRAM

B,TOPMASK
LD
interrupt and new side mask
236
A,(SEL)
IN
get unit number in A
237 NOTTOP:
AND 3
238
mask unwanted bits
OR
B
or in interrupt and side inf
239
OUT (SEL),A
enable interrupts and put si
240
get the sector number
LD
A,C
241
OUT (SECTOR),A
to controller
242
( IX+5) , D
save new current track numbe
LD
243
244 SEEKXA:
SUB A
get a zero
RET
shared return code
245
246 ;
247;
248;
INCREMENT SECTOR ROUTINE
249;
250;
251 ;
252; The increment sector routine bumps the sector by one and
253; checks for overflow. If overflow exists, track is
254; incremented and then checked for out of bounds.
255;
256 ;
257;
A,(IX+O)
get maximum sectors to A
258 INCSEC:
LD
for next sector
INC E
259
SUB E
(max sector-sector)
260
good number exit with a zero
NC,SEEKXA
JR
261
bumped past start this 1 aga
E,1
262
LD
INC D
next track
263 INCSED:
264 SETU PX:
A,(IX+1)
get max tracks
LD
DEC A
for 0 to max-1 not 1 to max
265
SUB D
see if overflow
266
NC,SEEKXA
good number exit with a zero
JR
267
268
LD
A,4
BAD TRACK NUMBER
set nonzero
OR
A
269
RET
return from INCSEC or SETUP
270
271 ;
272;
273;
READ SINGLE SECTOR ROUTINE
274;
275;
276; The read single sector routine reads a single sector and
277; then returns. Based on the following:
278;
output: error output:
input:
279;
AF=
don't
Care
AF=O
Z=1
AF=err Z=O
280;
BC:
"Destroyed
BC=
don't
Care
281 ;
DE= Tr/Se
DE= Tr/Se
282;
HL= buffer+lengh HL= buffer ad
HL=
buffer
addr
283;
284;
285;
286;
get retry count to E
DE,(RTRY)
LD
287 READS:
- 56 -

CHAPTER 6: SAMPLE DRIVER PROGRAM

DOUBLE DENSITY SYSTEM MANUAL
0173 E5
0174 3E88
0176 D328
0178 OE2F
017A DD4604
017D FB
017E 76
017F EDB2
0181 DB2C
0183 87
0184 3802
018610F9
0188 DB28
018A E69F
018C 2808
018E 1D
018F E1
019020E1
0192 3E05
0194 B7
0195 C9
0196
0197
0198
0199

E3
E1
97
C9

288 READA:
289
290
291
292
293 READB:
294
295
296 READC:
297
298
299
300 READD:
301
302
303
304
305
306
307
308
309;
310 RDWRX:
311
312
313
314 ;
31 5 ;
316;
317;

PUSH
LD
OUT
LD
LD
EI
HALT
INIR
IN
ADD
JR
DJNZ
IN
AND
JR
DEC
POP
JR
LD
OR
RET
EX
POP
SUB
RET

HL
A, READ COM
(CMND),A
C,vlAIT
B,(IX+4)

A,(SEL)
A

C,READD
READC
A,(STAT)
READMASK
Z, RDvlRX
E

HL
NZ,READA
A,5
A

(SP) ,HL
HL
A

save buffer start address
get the read sector command
issue to controller
wait port number to C
sector length to B
enable interrupts
refresh until first byte rea
get all the bytes to memory
get completion flag (bit 7)
into carry
when done carry is one
wait only 256 times for flag
get read sector status
mask only wanted bits
if no errors use common exit
retry again ?
get start buffer address
if nonzero retry
READ ERROR
get nonzero
go back with error
swap buffer+length for buffe
get incremented in HL
get a zero
return from READS or WRITES

WRITE SINGLE SECTOR ROUTINE

318 ;

019A
019E
019F
01A1
01A3
01A5
01A8
01A9
01AA
01AC
01AD
01AE
01BO
01B2
01B3
01B5
01B7

ED5BF601
E5
3EA8
D328
OE2F
DD4604
FB
76
EDA3
FB
76
EDB3
DB2C
87
3802
10F9
DB28

319; The Write single sector routine uses the same structure
320; as the read sector routine.
321 ;
322;
get retry count to E
DE,(RTRY)
LD
323 WRITES:
save start buffer address
PUSH HL
324 WRITEA:
get
the write sector command
A,WRITECOM
LD
325
issue
it to the controller
(CMND),A
OUT
326
get
the
wait port to C
LD
C,WAIT
327
get
the
sector length
B,(IX+4)
LD
328
enable
interrupts
EI
329 WRITEB:
•
refresh until first byte nee
HALT
330
put the first byte
OUTI
331
enable
interrupts again
EI
332
refresh
until rest needed
HALT
333
write
the
rest of the sector
OTIR
334
wait
for
crc
write
A,(SEL)
IN
335 WRITEC:
completion
flag
into carry
ADD
A
336
if
complete
Branch
C,WRITED
JR
337
only wait 256 for completion
DJNZ WRITEC
338
get write sector status
A,(STAT)
IN
339 WRITED:
- 57 -

DOUBLE DENSITY SYST!M MANUAL
01B9
01BB
01 BD
01BE
01BF
01C1
01C3
01C4

E69F
28D9
1D
E1
20DD
3E06
B7
C9

01C5
01c8
01CA
01CC
01CE
01DO
01D1
01D3
01D7
01D9

DD7E03
E603
F608
D328
DB2C
87
30FB
DD360500
DB28
C9

01DA
01DB
01DC
01DD
01DE
01DF
01EO
01E6
01EC

00
00
00
00
00
FF
00000000
00000000
00000000

01F2 00
01F3 DA01
01F5 00
01F6 0200

CHAPTER 6: SAMPLE DRIVER PROGRAM

AND WRITMASK
340
mask only wanted bits
JR
Z,RDWRX
341
if zero no errors use com ex
DEC E
342
retry again ?
POP HL
get start buffer address
343
JR
NZ,WRITEA
344
no try again
LD
A,6
WRITE ERROR
345
OR
A
se t nonzero
346
go back with error
RET
347
348;
349;
350;
RESTORE ROUTINE
351 ;
352;
353; This routine gets the selected drive back to track zero.
354; It also updates the current track pointer.
355;
356;
Get the step rate
357 RESTORE: LD
A,(IX+3)
AND 3
remove the verify bit if set
358
OR
RESTCOM
or in the restore command
359
OUT (CMND),A
360
issue the restore to control
361 RESTA:
A,(SEL)
IN
get completion bit
ADD A
into carry
362
JR
NC,RESTA
not done until carry
363
update the current track poi
LD
(IX+5),O
364
A,(STAT)
IN
read to clear the completion
365
RET
just return no error checkin
366
367;
368;
369;
DRIVE PARAMETER TABLES
370;
371 ;
372;
373;
DC
374 DSO:
MAXIMUM SECTOR
DRIVE
DC
375
MAXIMUM TRACK
DRIVE
DC
376
ATTRIBUTE FLAGS DRIVE
DC
377
STEP RATE
DRIVE
DC
378
SECTOR LENGTH
DRIVE
DC
OFFH
, CURRENT TRACK
379
DRIVE
DC
380 DS1:
O,O,O,O,O,OFFH ; DRIVE 1
DC
O,O,O,O,O,OFFH ; DRIVE 2
381 DS2:
DC
O,O,O,O,O,OFFH ; DRIVE 3
382 DS3:
383;
CURRENT UNIT NUMBER
384 UNIT:
DC
(D
SO)
CURRENT UNIT TABLE POINTER
385 UNITPTR: DC
386 ;
READ/WRITE COMMAND STORAGE
DC
387 RDWR:
( 2)
RETRY COUNT
DC
388 RTRY:
389;
390;

°°°
°
°

°°°
°°
°

°
°

391 ;

- 58 -

DOUBLE DENSITY SYSTEM MANUAL

0028
0028
0028
0029
002A
002B
002C
002F
4D1A
2812
0023
0018
0008
0088
OOA8
009F
009F
0018
0005
0004
0008
0080
0084
0000

392;
393;
394;
395;
396 PORT:
397 STAT:
398 CMND:
399 TRACK:
400 SECTOR:
401 DATA:
402 SEL:
403 WAIT:
404 STDTRSE:
405 MIN 11 SID:
406 MINI2SID:
407 SEEKCOM:
4 0 8 RES TC0 l1 :
409 READCOM:
410 WRITECOM:
411 READMASK:
412 WRITMASK:
413 SEEKMASK
414 STDSTEP:
415 MINSTEP:
416 DRICHG:
417 BOTMASK:
418 TOPMASK:
419

CHAPTER 6: SAMPLE DRIVER PROGRAM
SYSTEM EQUATES

EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
END

050Q
PORT
PORT
PORT+1
PORT+2
PORT+3
PORT+4
PORT+7
77*256+26
40*256+18
35
030Q
010Q
210Q
250Q
237Q
237Q
030Q
5
4
10 Q
200Q
204Q

BASE ADDRESS OF CONTROLLER
CONTROLLER STATUS PORT
CONTROLLER COMMAND PORT
CONTROLER CURRENT TRACK PORT
CONTROLLER REQUESTED SECTOR
CONTROLLER DATA PORT
SELECT AND STATUS PORT
CONTROLLER WAIT DATA PORT
STANDARD TRACKS AND SECTORS
MINI 1SIDED TRACK AND SECTOR
MINI 2SIDED TRACKS
CONTROLLER SEEK COMMAND
CONTROLLER RESTORE COMMAND
CONTROLLER READ SECTOR COMMA
CONTROLLER WRITE SECTOR COMM
CONTROLLER READ ERROR MASK
CONTROLLER WRITE ERROR MASK
CONTROLLER SEEK ERROR' MASK
STANDARD DRIVE STEP RATE
MINI DRIVE STEP RATE (MPI)
DRIVE CHANGE BIT
INTERRUPT ENABLE AND BOTTOM
INTERRUPT ENABLE AND TOP MAS
thats all folks

- 59 -

DOUBLE DENSITY SYSTEM MANUAL

CHAPTER 7: SAMPLE FORMAT PROGRAM
CHAPTER 7
SAMPLE FORMAT PROGRAM

7.1

INTRODUCTION

The Format Program is a callable Subroutine that formats a diskette.
On
entry the accumulator contains the drive number (0-3).
No prompt message is
given to avoid clobbering drive O. There is no error exit and the Format
routine assumes that the calling program has verified that the drive
actually exists.
A track is formatted by first arranging all the bytes for that track in
first.
~his
includes all Gap, ID, and Data Fields.
The track is
then written to the disc during a single revolution.

m~mory

For Double Density Standard drives, this track buffer is 11K bytes long.
Therefore,
to run the Format Program,
the user requires at least 11.25K
bytes of continuous memory PLUS whatever memory the calling program
requires.
The Format Program for DISKMON V3.00 is the same as the sample Format
Program except that there is a front end for swap messages for drive zero.
The Format Program for OASIS V5.3D uses the same table driven formatter,
but is more extensive (more Bells and Whistles)
than the sample Format
Program.
7.2

FORMAT CODE
1
2 ;

3 ;Sample Format Program for the Digital Group
4 ;Double Density Controller Board
5 ,

6 ; (C) 1979 by The Digital Group

7 ,
8 ;Written by:
9 ;Larry Williams
10
11
12

0000
0002
0003
0005
0007

FE04
DO
F610
D32C
DB2C

13 FORMAT:
14
15

16
17
18
19

CP
RET
OR
OUT
IN

4
NC
DRICHG
( SEL ) , A
A,(SEL)

be sure its a valid drive
go back if GE 4
flip drive change bit
select the desired drive
get back the attributes

Mini INIT routine to find max tracks and sectors

20
- 60 -

DOUBLE DENSITY SYSTEM MANUAL
0009
OOOC
OOOE
0010
0013
0015
0017
0019
001C
001D
0020
0023
0025
0027
0029
002B
002C
002D
002E
002F
0030
0031
0034
0035
0036
0037
0038
0039
003A
003D
003F
0042
0043
0046
0047
004A
004D
001~

E

004F
0052
0053
0055
0056
0058
005B
005D
005F
0061
0062
0064

211 A4 D
CB67
2809
211228
CB5F
2802
2623
32DB01
2C
22D701
21DC01
E630
CB2F
CB2F
0600
4F
09
5E
23
56
EB
22D301
EB
23
5E
23
56
EB
22D501
ED62
22D901
EB
CDEDOO
D5
CD8 800
CDC COO
01
14
3A0801
BA
2811
7A
032B
320A01
3E1B
D328
DB2C
87
30FB
18EO

21 INIT:
22
23
24
25
26
27
28 INITA:
29
30
31
32

33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

FORMC:
FORMD:

SEEK:

SEEKA:

CHAPTER 7: SAMPLE FORMAT PROGRAM
LD
BIT
JR
LO
BIT
JR
1.0

HL,STDTRSE
4,A
Z,INITA
HL,MINI1S1

3,A
Z,INITA
H,MINI2SI
(ATTR),A

LO
INC L
LD (NSECTS),HL
LO
HL,GAPTAB
AND 60Q
SRA A
SRA A
B,O
LD
C,A
LD
HL,BC
ADD
E , ( HL)
LD
INC HL
D , ( HL)
LD
EX
OE,HL
(TEMP2),HL
LD
DE,HL
EX
INC HL
E, ( HL)
LD
INC HL
LD
D,(HL)
OE,HL
EX
(TEMP1),HL
LD
SBC HL,HL
LD
(SIDE),HL
EX
DE,HL
CALL RESTORE
PUSH DE
CALL FORMIN
CALL WRITETR
POP DE
INC D
A,(NTRKS)
LD
CP
D
JR
Z,FORMX
A,D
LD
OUT (DATA),A
(TRACKS),A
LD
A,SEEKCOM
LD
OUT (CMND) , A
A,(SEL)
IN
ADD A
NC,SEEKA
JR
FORMD
JR

- 61 -

get standard track and sector
see if standard
Brif standard
get Mini 1sided track and sect
see if 2 sided
Brif 1 sided
tracks different for 2 sided
save the attributes
get one extra sector
save the tracks and sectors
get gaptable address's
mask only SID and MIS
divide by 2
divide by 2
get upper half to zero
get lower half from A
add in offset
get lower half of gaptab
for next
get upper half of gaptab
put gaptab in hI
save gaptab addr in temp2
get offset back in HL
for nex t
get lower half of sectab
for next
get upper half of sectab
sectab addr in HL
save sectab addr in temp1
get pair of zeros
zero side and track temps
get a zero to D
get this drive to track 0
save current track
format the buffer
write the buffer
get current track back
for next track
get maximum tracks
see if done
done with one side
get the new track
to controller
save it for formatting
slow seek with no verify
issue the command
wait for completion (bit 7)
into carry
no carry is not done
go for another track

DOUBLE DENSITY SYSTEM MANUAL
0066
0069
006A
006C
006F
0071
0073
0075
0077
0079
007B
007D
0080
0082

3AD901
B7
2018
3ADB01
CB5F
2811
DB2C
E603
F604
D32C
3E01
32D901
1600
18BF

0084 CDEDOO
0087 c9

CHAPTER 7: SAMPLE FORMAT PROGRAM

A,(SIDE)
see if just formatted top
LD
73 FORMX:
see if a one
OR
A
74
JR
NZ,FORMXX
if
one were all done
75
get
attributes again
LD
A,(ATTR)
76
BIT
see
if realy 2 sided
3,A
77
if
1
sided we have to be done
JR
Z,FORMXX
78
A,(SEL)
get
device
number
IN
79
mask
out
all
rest
AND
80
3
OR
81
or in top side
4
select top side
82
OUT (SEL),A
LD
new
side
A, 1
83
84
save it in the side temp
(SIDE),A
LD
start with track zero again
LD
D,O
85
FORMC
go restore and then format
86
JR
87
88
get the drive back to track 0
CALL RESTORE
89 FORHXX:
go back to calling program
RET
90
91
92
93 ,
94 ;Track data generation routine
95 ,
loop count
LD
C, 1
96 FORM IN:
get gaptab address
HL,(TENP2)
LD
97
the track format buffer
DE,BUFFER
LD
98
IY is the sectab pointer
IY,(TEMP1)
LD
99
put Gap4b into buffer
CALL PUT IT
100
save the start of sectors
PUSH HL
101 FORML:
put Gap3 into buffer
CALL PUTIT
102
103
Fill The ID field
104
105
get the current track number
A,(TRACKS)
106
LD
into buffer
(DE) , A
LD
1 07
for next
INC DE
108
get the current side number
A,(SIDE)
LD
1 09
into buffer
LD
(DE),A
11 0
for next
INC DE
111
get the mapped sector
A,(IY+O)
LD
11 2
(DE),A
into buffer
LD
113
for next sector
INC IY
114
for nex t
INC DE
115
put rest of ID and DATA field
CALL PUTIT
116
117
11 8
next sector
INC C
119
get max sectors+1
A,(NSECTS)
LD
120
same ?
CP
C
1 21
done with data field if zero
Z,FORMIX
JR
122
get pointer back to Gap3
POP HL
1 23
go for another sector
FORML
124
JR

.
.

0088
008A
008D
0090
0094
0097
0098

OE01
2AD301
11EC01
FD2AD501
CDBFOO
E5
CDBFOO

009B
009E
009F
00 AO
00A3
00 A4
00A5
00 A8
00A9
OOAB
OOAC

3ADA01
12
13
3 AD 901
12
13
FD7EOO

DOAF
OOBO
00B3
00B4
00 B6
00B7

OC
3AD701
B9
2803

12

FD23
13
CDBFOO

E1

18DE

- 62 -

CHAPTER 7: SAMPLE FORMAT PROGRAM

DOUBLE DENSITY SYSTEM MANUAL
00B9
OOBA
OOBB
OOBE

E3
E1
CDBFOO
C9

125 FORMIX:
1 26

127
1 28
1 29
130
1 31
132

EX
(SP),HL
POP HL
CALL PUTIT
RET

throwaway top entry on stack
like this
now format Gap4a to index hole
done with a track

Putit routine

133 ;Gets byte pairs from Gaptab. First byte is count
DOBF 46
23

00 co
OOC1
00C2
OOC3
OOC4
OOC5
00 C6
OOC7
OOC8
ooeA

aoee
ooeF
00D2
OOD5
OOD7
00D9
OODB
OODC
OODE
OOEO
OOE2
OOE3
OOE6
00E8
OOEg
OOEC

7E
23
80
C8
90
12

13
10FC
18F3

012FOO
21EC01
112BCO
3EF4
D328
DB2C
A2
28FB
EDA3
DB2C
A2
CAEOOO
EDB3
1D
C2E600
cg

134
135
136
137
138
139
140
1 41
142
1 43
144
145
146
147
148
149
150
1 51
152
1 53
154
155
1 56
157
158
159
160
161
162
163
164
165
166
167
168
169
170

;and second byte is value. If both are zero, stop.

PUTIT:

LD
INC
LD
INC
ADD
RET

B, ( HL)

HL
A,(HL)
HL
B
Z

get repeat count
for second byte
get value
for next
see if both zero
go back if both zero
restore value
start putting the value
for next
until B is zero
go for another byte pair

SUB

B

LOOPIT:

LD
INC
DJNZ
JR

(DE),A
DE
LOOPIT
PUTIT

,

Write Track routine

,

;Writes 11,00P bytes to drive whether or not the
;drive requires that many.

.,
WRITETR: LD
LD
LD
LD
OUT
WRITEA:
IN
AND
JR
OUTI
WRITEB:
IN
AND
JP
vlRI TEC:
OTIR
DEC
JP
RET

BC,WAIT
HL,BUFFER
DE,MASK
A,WTRKCOM
(CMND),A
A,(SEL)
D

Z,WRITEA
A,(SEL)
D

Z,WRITEB
E

NZ,WRITEC

wait port to C
where the data is
data ready mask and loop count
the write track command
issue to controller
wait for first byte
see if ready
wait until first is ready
put first byte
wait for the rest
fast check
faster that JR
put a bunch of bytes
256 times E
not done yet
put all bytes and then some

171

172
Restore routine
174
175
A,RESTCOM
176 RESTORE: LD
173

OOED 3EOB

- 63 -

restore command

DOUBLE DENSITY SYSTEM MANUAL
OOEF
OOF1
OOF3
OOF4
OOF6
OOF8

D328
DB2C
87
30FB
DB28
C9

OOF9
0103
010D
0117

OEFF0600
08FF0600
01F70BFF
01F70000

0121
012B
0135
013F
0149

1C4EOCOO
0000104E
00000101
03F501FB
004E004E

014F
0159
0163
016D

28FF0600
060001FE
OBFF0600
1BFFOOOO

0177
0181
018B
0195
019F

504EOCOO
OOOOOCOO
010101F7
01FB0040
004E004E

01A7 01020304
01B4 OEOF1011

01C1 010A020B
01CA OE060F07

01D3 0000

177
178
179
1 80
1 81
1 82
1 83
184
185
186
1 87
188
189
1 90
1 91
192
1 93
194
195
1 96
1 97
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228

RESTA:

CHAPTER 7: SAMPLE FORMAT PROGRAM
OU T
IN
ADD

JR
IN
RET

,

( CMND) , A
A,(SEL)
A
NC,RESTA
A,(STAT)

to controller
wait for completion
into carry
not done yet
clear completion flag
go back

The Gap and Sector Tables

;All data following MUST be in this order I!!

,
NINI:

DC
DC
DC
DC

014,255,006,000,001,252,014,255,000,000
008,255,006,000,001,254,000,000,001,000
001,247,011,255,006,000,001,251,128,229
001,247,000,000,000,255,128,255,000,000

DC
DC
DC
DC
DC

028 , 078, 01 2 ,
003 ,246 , 001 ,252 , 028 , 078
000,000,016,078,008,000,003,245,001,254
000,000,001,001,001,247,022,078,012,000
003,245,001,251,000,064,001,247,000,000
000,078,000,078,000,000

STD:

DC
DC
DC
DC

040 , 255 , 006 , 0 0 , 001 , 252 , 026 , 255 ,
000
006,000,001,254,000,000,001,000,001,247
011,255,006,000,001,251,128,229,001,247
027,255,000,000,128,255,000,255,000,000

STDD:

DC
DC
DC
DC
DC

080,078,012,000,003,246,001,252,050,078
000,000,012,000,003,245,001,254,000,000
001,001,001,247,022,078,012,000,003,245
001,251,000,064,001,247,054,078,000,000
000,078,000,078,128,078,000,000

SECA:

DC
DC

01,02,03,04,05,06,07,08,09,10,11,12,13
1 4 , 1 5 , 1 6 , 1 7 , 1 8 , 1 9 , 2 21 , 22 , 23 , 24 , 25 , 26

DC
DC

01,10,02,11,03,12,04,13,05
14,06,15,07,16,08,17,09,18

,
NINID:

°°°,

,.

°

°°°,

°,

,
SECB:

MUST BE IN THIS ORDER

;
TEMP2 :

DC

; Gaptable pOinter

( 0)

- 64 -

-DOUBLE DENSITY SYSTEM MANUAL
01D5
01D7
01D8
01D9
01DA
01DB

0000
00
00
00
00
00

01DC 7701A701
01 E4 4F01A701
01EC

0028
0028
0028
002B

002C
002F
0010
4D1A
2812
0023
001B
OOOE
00F4
C02B
0000

229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260

CHAPTER 7: SAMPLE FORMAT PROGRAM

TEMP 1 :
NSECTS:
NTRKS:
SIDE
TRACKS:
ATTR:

DC
DC
DC
DC
DC
DC

( 0)
0
0
0
0
0

GAPTAB:

DC
DC

(STDD),(SECA),(MINID),(SECB)
(STD),(SECA),(MINI),(SECB)

EQU

$

Sec table pointer
max sectors+1
max tracks
side
current track
attribute bits

;

BUFFER:

; write buffer starts here

System equates

.,
PORT:
STAT:
CMND:
DATA:
SEL:
WAIT:
DRICHG:
STDTRSE:
HINI1SI:
NINI2SI:
SEEKCOM:
RESTCOM:
WTRKCON:
t-IASK:

EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
END

050Q
PORT
PORT
PORT+3
PORT+4
PORT+7
20Q
77 *256 +26
40 * 256 +18
35
33Q
13Q
364Q
192*256 +43

- 65 -

controller base address
controller status port
controller command port
controller data port
select and side port
data wait port
drive change bit
standard track and sector
mini track and sector 1 sided
mini track 2 sided
seek slow no verify
restore slow no verify
write track command
wait mask and loop count

APPENDIX A
PARTS LIST BY VALUE

DIGITAL GROUP DOUBLE DENSITY DISK CONTROLLER PARTS LIST
LABEL

DESCRIPTION

QUANTITY

PART II

IC19
7400 quad 2-input NAND
74LSOO quad 2-input NAND
IC5
IC16
74LS02 quad 2-input NOR
IC27,30,46,49 7404 hex inverter
7406 hex inverter O.C.
IC21
IC15
74LS08 quad 2-input AND
IC23
7408 quad 2-input AND
IC17
74LS14 hex inverter S.T.
IC14
7420 dual 4-input NAND
IC36
74LS27 triple 3-input NOR
IC32,48
7430 eight input NAND
IC18,31
7432 quad 2-input OR
IC38,39,40
7438 quad 2-input NAND O.C.
IC33
7442 binary to decimal conv.
IC2,7,20,24,35 7474 dual D Flip Flop
IC45
7475 quad latch
IC6
7486 quad Exclusive OR
IC1,4,25
74123 Dual One Shot (TI)
74S124 Dual VCO (TI)
IC8
IC28
74139 dual 2 to 4 Demult.
IC11
74153 dual 4 to 1 Mult.
IC10
74161 Binary counter
IC41
74175 quad D Latch
IC12,13
74LS221 dual One Shot (TI)
IC44
81LS95/97 Octal Buffer
IC42,43
81LS96/98 Octal Buffer Inv.
IC37
74367
Hex buffer
IC34
LM3302 quad Comparitor
IC3
NE555 Timer
IC9
LM741 Op Amp
IC22
LM31B Op Amp
IC29
FD1791-1 Controller Ie

1
1
1
4
1
1
2
1
1
1
2
2
3
1
5
1
1
3
1
1
1
1
1
2
1
2
1
1
1
1
1

075-000
075-046
075-048
075-004
075-005
075-081
075-007
075-075
075-011
075-071
075-012
075-013
075-014
075-016
075-019
075-020
075-021
075-029
075-076
075-077
075-034
075-072
075-040
075-078
075-074
075-073
075-044
078-006
078-002
078-004
078-015
073-031

R42
R30,31
R12,13,14
R15,17
R22
R25
R33,37,49,50
R28,36,38
R9,18,19,20
R21,27,34,39

1
2

001-006
001-074
001-011

47 Ohm 1/4w Resistor
120 Ohm 1/4w Resistor
150 Ohm 1/4w Resistor

5

270 Ohm 1/4w Resistor
330 Ohm 1/4w Resistor
470 Ohm 1/4w Resistor
lK Ohm 1/4w Resistor
2.2K Ohm Resistor

1
1

4
3
8

-66-

001-015
001-016
001-018
001-025
001 -029

DOUBLE DENSITY SYSTEM MANUAL

LABEL
IC26
R7
R44,45
R29
R43
R46
R6 ,10
R4
R8
R23,24,32,40
R41 ,47,48
R5
R2
R11
R1
R3
R35

APPENDIX A: PARTS LIST BY VALUE

DESCRIPTION
2.2K
2.7K
3.3K
3.9K
4.7K
5.6K
6.8K
7.5K
9. 1 K
10K

Ohm
Ohm
Ohm
Ohm
Ohm
Ohm
Ohm
Ohm
Ohm
Ohm

QUANTITY

RPACK
1/4w Resistor
1/4w Resistor
1/4w Resistor
1/4w Resistor
1/4w Resistor
1/4w Resistor
1/4w Resistor
1/4w Resistor
1/4w Resistor

1

1
2
1
1
1
2

1
1
7

11K Ohm 1/4w Resistor
15K Ohm 1/4w Resistor
27K Ohm 1/4w Resistor
33K Ohm 1/4w Resistor
820K Ohm 1/4w Resistor
5K 10 Turn Trim-Pot

D1,3,4,5-20
D2

1

6

018-002

1
1
2
1
2
2
2
1
1
4
4
2
1
45

018-006
018-012
018-004
018-015
018-000
014-002
016-028
016-029
014-021
010-002
010-003
010-008
010-009
014-003

1

1N4148 Diode
1N4731A 4.3V Zener Diode

- 67 -

008-002
001-030
001-052
001-078
001-032
001-034
001-035
001-053
001-054
001-037
001-079
001-039
001-008
001-041
001-080
005-013

1
1
1
1

C10,11,12,13 50pf Silver Mica Capacitor
C14,34
C53
36pf Silver Mica Capacitor
C66
180pf Silver Mica Capacitor
C52,74
220pf Silver Mica Capacitor
C65
680pf Silver Mica Capacitor
C32,54
1000pf Silver Mica Capacitor
C70,73
.01uf Disc Capacitor
C49,50
.01uf 10% Mylar Capacitor
C48
.022uf 10% Mylar Capacitor
C15
.022uf 10% Disc Capacitor
C40,42,43,68 4.7uf Tantalum Capacitor
C9,61,62,71
10uf Tantalum Capacitor
C16,39
22uf Tantalum Capacitor
C72
100uf Tantalum Capacitor
C1-8,17-31,33
.1uf Disc Ceramic Capacitor
C35-38,41,44-47
C51 ,55-60,63,64
C67,69,75

PART II

10
1

040-006
040-025

DOUBLE DENSITY SYSTEM MANUAL

LABEL

APPENDIX A: PARTS LIST BY VALUE

DESCRIPTION

QUANTITY

PART II

X1

4.000 Mhz Crystal

030-011

L1

22uh Choke

055-004

8 Pin Socket

7

060-000

14 Pin Socket

27

060-001

16 Pin Socket

14

060-002

20 Pin Socket

3

060-013

40 Pin Socket

060-006

PC Board

090-078

1130 Wire
1124 Solid Wire

3'
1'

110-010
110-050

System Hanual
Installation Manual
Hmon/2 Users Manual
Hmon/2 Cassette

1
1
1
1

298-139
298-140
296-088
299-917

CPU MODIFICATION KIT

R7
D1,D2,D3

22K Ohm 1/4w Resistor
1N4148 Diode
1130 wire

1
3
2'

- 68 -

001-040
040-006
560-003

APPENDIX A
PARTS LIST BY LABEL
INTEGRATED CIRCUITS
LABEL
- -- ----IC1
IC2
IC3
IC4
IC5
IC6
IC7
IC8
IC9
IC10
IC 11
IC12
IC13
IC14
IC15
IC16
IC17

DESC
--- 74123
7474
NE555
74123
74LSOO
7486
7474
74S124
LM741
74161
74153
74LS221
74LS221
7420
74LS08
74LS02
74LS14

LABEL
...- --- -IC18
IC19
IC20
IC21
IC22
IC23
IC24
IC25
IC26
IC27
IC28
IC29
IC30
IC31
IC32
IC33
IC34

DESC

- - --

7432
7400
7474
7406
Ll1318
7408
7474
74123
2.2RP
7404
74139
1791-1
7404
7432
7430
7442
LM3302

LABEL

DESC

IC35
IC36
IC37
IC38
IC39
Ic40
IC41
IC42
IC43
IC44
IC45
IC46
IC47
IC48
IC49

7474
74LS27
74367
7438
7438
7438
74175
81LS96/98
81LS96/98
81LS95/97
7475
7404
NOT USED
7430
7404

---- - - ---

- - --

RESISTORS
LABEL

=====

R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13
R14
R15
R16
R17

DESC
- - -33K
15K
820K
7.5K
11 K
6.8K
2.7K
9. 1 K
2.2K
6.8K
27K
150
150
150
150
NOT USED
150

LABEL
- -- ----R18
R19
R20
R21
R22
R23
R24
R25
R26
R27
R28
R29
R30
R31
R32
R33
R34

DESC

- - --

2.2K
2.2K
2.2K
2.2K
270
10K
10K
330
2.2RP
2.2K
1K
3.9K
120
120
10K
470
2.2K

LABEL

----- --R35
R36
R37
R38
R39
R40
R41
R42
R43
R44
R45
R46
R47
R48
R49
R50

-69-

DESC

- - --

5K POT
1K
470
1K
2.2K
1 OK
10K
47
4.7K
3.3K
3.3K
5.6K
10K
1 OK
470
470

DOUBLE DENSITY SYSTEM MANUAL

APPENDIX B: PARTS LIST BY LABEL
CAPACITORS

LABEL
-- - ----C1
C2
C3
Cll
C5
C6
C7
C8
C9
C10
C11
C12
C13
C14
C15
C16
C17

C18
C19
C20
C21
C22
C23
C24
C25

DESC

- - --

•1
•1
•1
•1
•1
•1
•1
•1
10
50
50
50
50
50
.022
22
•1
•1
•1
•1
•1
•1

•1
•1
•1

uf
uf
uf
uf
uf
uf
uf
uf
uf
pf
pf
pf
pf
pf
uf
uf
uf
uf
uf
uf
uf
uf
uf
uf
uf

LABEL

- --

------

C26
C27
C28
C29
C30
C31
C32
C33
C34
C35
C36
C37
C38
C39
C40
C41
c42
C43
C44
C45
C46
C47
C48
C49
C50

DESC

---•1
•1
•1
•1
•1
•1
1000
•1
50
•1
•1
•1
•1
22
4.7
•1
4.7
4.7
•1
•1
•1
•1
.022
.01
.01

uf
uf
uf
uf
uf
uf
pf
uf
pf
uf
uf
uf
uf
uf
uf
uf
uf
uf
uf
uf
uf
uf
uf
uf
uf

LABEL
.. __ .... -

---- ..

C51
C52
C53
C54
C55
C56
C57
C58
C59
C60
C61
C62
C63
C64
C65
C66
C67
C68
C69
C70
C71
C72
C73
C74
C75

DESC

- _....

•1
220
36
1000
•1
•1
•1
•1
•1
•1
10
10
•1
•1
680
1 80
•1
4.7
•1
.01
10
100
.01
220
•1

uf
pf
pf
pf
uf
uf
uf
uf
uf
uf
uf
uf
uf
uf
pf
pf
uf
uf
uf
uf
uf
uf
uf
pf
uf

DIODES
LABEL

DESC

LABEL

DESC

LABEL

D1
D2
D3
D4

1N4148
1N4731A
1N4148
1N4148

D5
D6
D7
D8

1N4148
1N4148
1N4148
1N4148

D9
D10

- - - --

- - --

-- -- ---

- - --

------ ---

- 70 -

DESC

.. - _..

1N4148
1N4148

APPENDIX B: PARTS LIST BY LABEL

DOUBLE DENSITY SYSTEM MANUAL
IC SOCKETS
LABEL

-

----- ---

IC1
IC2
IC3
IC4
Ie5
IC6
IC7
IC8
IC9
IC10
IC11
IC12
IC13
IC14
IC15
IC16
IC17
IC18

DESC

- - --

16
14
8
16
14
14
14
16
8
16
16
16
16
14
14
14
14
14

Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin

LABEL

-----

IC19
IC20
IC21
IC22
IC23
IC24
IC25
IC26
IC27
IC28
IC29
IC30
IC31
IC32
IC33
IC34
IC35
IC36

DESC
----

14
14
14
8
14
14
16
16
14
16
40
14
14
14
16
14
14
14

Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin

LABEL
------ --IC37
IC38
IC39
IC40
IC41
IC42
IC43
IC44
IC45
IC46
IC47
IC48
IC49
,IC50
Ie51
IC52
IC53
MISC

LABEL
---------

DESC

----

X1

4.000 Mhz XTAL

L1

22 uh Choke

- 71 -

DESC
-

---

16
14
14
14
16
20
20
20
16
14
NOT
14
14
8
8
8
8

Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
Pin
USED
Pin
Pin
Pin
Pin
Pin
Pin

DOUBLE DENSITY SYSTEM

~ANUAL

APPENDIX C: DRIVE ATTRIBUTE SOCKET DEFINITION
APPENDIX C

DRIVE ATTRIBUTE SOCKE·T DEFIN I TION

There are four 8 Pin Sockets for selecting drive attributes for the four
possible drives. The Sockets are numbered IC50, 51, 52, 53 on the Component
Placement Diagram.
On the Printed Circuit board, they are labeled 1, 2, 3,
and 4. The socket numbers correspond to drives DS1 through DS4.

The following table shows which diodes are to be installed for each
particular attribute. Diodes should be bent on .3" centers and then
installed with the band to the right.
(As viewed from the component side.)
BOARD LABEL

-----------

SCHEMATIC LABEL

---------------

DIODE

-----

NO DIODE

---------------

EN

A

DRIVE PRESENT

NO DRIVE

SD

B

SINGLE DENSITY

DOUBLE DENSITY

MS

C

MINI DRIVE

2S

D

2 SIDED

- 72 -

STANDARD DRIVE
1 SIDED

APPENDIX D: BOARD ADDRESSING

UBLE DENSITY SYSTEM MANUAL
APPENDIX D
BOARD ADDRESSING

The board is
addressed
by
jumpering
the
true or
address line A3-A7 to IC48 through jumper pads at IC47.

complement

of each

To select the base
address, first, write down the
binary equivalent for
each address bit
A3-A7.
Then place a jumper
in the true position for each
address line where
the binary value is a
one.
Next, place a jumper in the
complement position for each address line where the binary value was a zero.
Example:

To Select the Base address of 050Q:
A7

A6

o

o

A5

A4

A3

o

1

Then jumper: A5 and A3

true

Then jumper A7 A6 and A4 complement
This should look like the following:
Ie POSITION
47

20
/~TRUE~

A3
"'-O---COMPLEMENT

~

/~TRUE~

A4/

""0----

COMPLEMENT

/~

A5/

""C>-

~

TRUE----O

COMPLEMENT----o

~TRUE~

A6/'
""O----COMPLEMENT - - - - - 0
/~ TRUE-----<>

A7

""0-10

COMPLEMENT - - - - - 0

11

All Digital Group Software expects the Base Address of the Double Density
Controller board to be 050Q or 28H.

-

73 -

DOUBLE DENSITY SYSTEM MANUAL

APPENDIX E: ONE SHOT TIMINGS
APPENDIX E
ONE SHOT TIMINGS

The following is a table of the One Shot timings and their tolerance:

--

IC

R VALUE
-------------

--------------

C VALUE

IC1

R8 g. 1K

C74 220 pf

IC3

R3 820K

IC4

OUTPUT PIN

----------

TIME

TOL

- - --

---

13

800 ns

+-10%

cg 10uf

3

10 sec

+-20%

R1 33K

C72 100uf

12

1 sec

+-20%

IC4

R2 15K

C71 10 uf

4

35 ms

+-10%

IC12

R5 11K

C11 50 pf

4

450 ns

+-10%

IC12

R6 6.8K

C12 50 pf

5

250 ns

+-10%

IC13

R4 7.5K

C10 50 pf

4

300 ns

+-10%

IC13

R7 2.7K

C13 50 pf

12

150 ns

+-10%

IC25

R10 6.8K

C14 50 pf

5 , 12

200 ns

+-10%

IC25

R11 27K

C15 50 pf

4

160 us

+-20%

- 74 -

DOUBLE DENSITY SYSTEM MANUALAPPENDIX F: WRITE PRECOMPENSATION TIMING DIAGRAM
APPENDIX F
WRITE PRECOMPENSATION TIMING DIAGRAM

The following timing
shots IC12 and IC13.

diagram shows the relationship between the four one

WRITE PRECOMPENSATION

I E r - - - TIME Dependent on Drive type

Scale 770 ns/in

---~~(

IC30-6 WD

1~?9-17

Early

iC29-18 Late
IC16-4 Nom
IC13-12
Early-delayed
IC12-4

--- - - -

Late-delayed
IC13-4
Nom-delayed

:

IC14-6
IC12-5
WD-delayed

38-6 Wo-delayed

LJ

f

LJ

I

ON Precompensated
heoretical Write Data

f

W

~

I

r-r

I

I

Late 450 ns
or 150 ns
shift from nominal

Early 150 ns
or -150ns sh ift
from nominal

- 75 -

Nominal 300 ns shift

DOUBLE DENSITY SYSTEM MANUAL

APPENDIX G: WAIT LOGIC TIMING DIAGRAM
APPENDIX G

WAIT LOGIC TIMING DIAGRAM

The following
timing diagram shows the
logic, controller select, and the wait line.

relation~hip

between the wait

WAIT LOGIC
Scale 770 ns/in
160,us MAX

IC33-9 Seven

~--~-~~.-----------{ 1 - - - - - - - - - ...

~-

Ie 17-4 Seven

r---------[

f----------;

IC19-3 RW
r----------{

5----------< \---l~--+--..,

IC7-9 WAIT EN
IC2-5 CYC
IC23-11
IC36-12
IC20-52MHZ
RE or WE

IC37-13 WAIT

* ORO CAUSED

- 76 -

DOUBLE DENSITY SYSTEM MANUAL APPENDIX J: SOFTWARE COMPATIBILITY (OLD VS NEW)
APPENDIX J
SOFTWARE COMPATIBILITY (OLD VS NEW)

- 79 -

DOUBLE DENSITY SYSTEM MANUAL

APPENDIX K: APPLICATION NOTE #1
APPENDIX K
APPLICATION NOTE #1

USING INTERRUPTS
Care should be exercised when using interrupts simultaniously with the
Digital Group Double Density Controller Board.
If you are using interrupts, be sure that the circuits that can generate
these interrupts are disabled before entering the Disc Driver.
The High on
IC40 Pin 10 can be used to disable other board interrupts.
Also remember that the Disc Driver returns with interrupts
Interrupt Mode Zero selected.

disabled and

If you call the Disc Driver from numerous locations, it might be wise to
modify the Disc Driver to perform the other interrupt disables.
This can be
done by disabling the other interrupts just after the Disc Driver enables
its board interrupt.
Your reenable code should be placed after
the Disc
Driver disables its board interrupts.

- 80 -

~DOUBLE

DENSITY SYSTEM MANUAL

APPENDIX L: APPLICATION NOTE #2
APPENDIX L
APPLICATION NOTE #2

OPTIMIZING TIMING VALUES
The Digital Group Double Density Controller Board has some timings that
are a tradeoff between Standard and Mini Drives. These are the wait timeout
and the head load delay.
The Write Precompensation circuit is not needed if
the user is not going to be running Standard Double Density.
If you are going to run Mini Drives exclusivly, the Write Precompensation
circuit should be disabled. To do this:
1. Lift IC12 Pin 5 from its socket.
2. Jumper IC29 Pin 31 to IC38 Pin 5.
Also, if you are to run Mini Drives only,
to the manufacturers specs.

set the head load delay timer

If you are going to run Standard drives only, you should reduce the Wait
timeout timer. This can be done by using the procedures outlined in the
Testing Section. Set the Wait Timeout Timer to 2.5 times the slowest Byte
rate to be used.

- 81 -

DOUBLE DENSITY SYSTEM MANUAL

APPENDIX M: APPLICATION NOTE #3
APPENDIX M
APPLICATION NOTE #3

3 LOGICAL TO 2 PHYSICAL DRIVES

If you have a
two drive system and want to run the second drive in both
single and double density, this procedure might help.
Select the second drive as both DS2 and DS3.
This is done by placing a
black shorting plug on both DS2 and DS3 at
the drive.
Now,
on the
controller board,
Select drive DS2 as present and single density.
Select
drive DS3 as present and double density.
For Diskmon, you can operate the system by just
changing the drive number you use.
Example:

changing media and then

1.Have the Single density media in drive 1.
2. Perform a D#1 command.
3. Now place the double density media on drive 1.
4. Perform a D#2 command.
For OASIS, the above type logic also works but, after
the media, 'MOUNT' the new media every time.

- 82 -

you have changed

APPENDIX N: APPLICATION NOTE #4

DOUBLE DENSITY SYSTEM MANUAL
APPENDIX N

APPLICATION NOTE #4

MULTI HOLE DISKETTES

The Digital Group Double Density
single and multi-hole diskettes.
This can be accomplished
accordingly.

Controller Borad will operate on

by changing

the BOOIB01

jumper on your

both
drive

Should you forget to change from 800 to B01
some unusual things happen.
If
the controller is requested
to read or write a
sector and this sector
appears before 10 sector holes go by,
it
will read or write
it without
error.
But
if the
requested read
or write sector is farther
around the
diskette than 10 sector holes a RECORD NOT FOUND error is generated.
Therefore, if the
reliability of your system just changed, and
you are
switching between single and multi-hole diskettes, CHECK THE BOOIB01 JUMPER.

- B3 -

APPENDIX 0: APPLICATION NOTE #5

DOUBLE DENSITY SYSTEM MANUAL
APPENDIX 0

APPLICATION NOTE #5
BRINGING OUT THE DRIVE ATTRIBUTE DIODES
The Drive Attribute diodes may be brought out to an external set of
switches and diodes.
This is done by cutting in half a 16 pin header
socket.
Ribbon cable should be used to bring out
the desired attributes.
Maximum length of this cable can vary but, try to keep
the cable short.
Study the following schematic for construction tips:

Ribbon cable
EXTERNAL BOX

8 pin header
1N4148 (4)

Present (closed)

1
Single (closed)
Mint (closed)
2 Sided (closed)

Bringing out the drive attribute diodes

-

84 -

~DOUBLE

APPENDIX P: APPLICATION NOTE 16

DENSITY SYSTEM MANUAL
APPENDIX P

APPLICATION NOTE 16
USING MORE THAN 4 DRIVES
The Digital Group Double Density Controller was designed for only 4
drives. This can be modified to 8 drives by external circuitry. Expanding
to 8 drives isn't without sacrifice though, the user will loose the side bit
to get to 8 Drives.
The following schematic shows a typical method for
getting to 8 drives:

- 85 -

APPENDIX Q: APPLICATION NOTE #7

DOUBLE DENSITY SYSTEM MANUAL
APPENDIX Q

APPLICATION NOTE #7
2.5 MHZ VS 4 MHZ

At this
writing (4/79)
the Digital
Group does NOT support a
4 Mhz Z8D
System.
The Digital
Group Double Density Controller
board
has
been
thoroughly tested
at 4 Mhz.
It was found during this testing that the wait
logic release was too fast for 4 Mhz operation.
To fix this problem, 1/2 of
IC2
was
used
to
delay the
release
of wait
to meet 4 Mhz
operating
conditions.
To
operate
the
controller
board
at
4 Mhz
requires
the
following:
(1).

Cut the default jumper trace to the right of
IC2.

(2). Install a jumper wire to the other pad near
IC2.

It might be noted here that the present Dynamic Memory board will NOT run
at 4 Mhz due to insufficient T(ras) Precharge time during M1.

- 86 -

DOUBLE DENSITY SYSTEM MANUAL

APPENDIX R: APPLICATION NOTE #8
APPENDIX R
APPLICATION NOTE #8

DYNAMIC MEMORY AND REFRESH

The following is a table of the different refresh
different types of drives, during a sector data transfer.
and OTIR instructions):
DRIVE TYPE

----------

STANDARD DOUBLE DENSITY

REFRESH PULSES

----------------------------

2 per 16 us

'REFRESH RATE (1 28)

-----------------0.5 ms

STANDARD SINGLE DENSITY

2 per 32 us

1 .0 ms

MINI DOUBLE DENSITY

2 per 32 us

1 .0 ms

MINI SINGLE DENSITY

2 per 64 us

2.0 ms

----------

-------------_ _----------...

rates, for the
(using the INIR

-----~-----------------------------

Note that the Mini single density requires a full 2.0 ms to refresh all
128 columns. Some of the Digital Group Dynamic boards shipped prior to 3/79
had Integrated Circuits that did not meet the 2.0 ms refresh rate at all
temperatures.
If the user has a Dynamic Memory board with Fairchild 4027-7 IC's, AND
intends tp run Mini Standard Density, a memory test is in order.
Perform alternate memory writes, followed by heavy disc accesses, then
followed by memory reads 7 to verify the data written in the memory is still
valid.
Try this test at high temperatures. That is, a temperature that is
slightly above the temperature you expect your system to operate at
normally.
Note: We don't expect
of the situation.

you to have problems but,

- 87 -

we want you to be aware

DOUBLE DENSITY SYSTEM MANUAL

APPENDIX S: APPLICATION NOTE

#9~

APPENDIX S
APPLICATION NOTE #9

SHUGART DRIVE SYMMETRY ADJUST

If you experience an abnormal amount of read errors during double density
operation and your free running VCO is set properly (tol: +5% and -0%), your
drive might need a symmetry adjustment.
To perform the adjustment, you will need the following:

(1). HMON/2 Monitor
(2). 15 Mhz Triggered Sweep Oscilloscope

(3). Shugart Maintainance Manual
What we will be doing is alternately writing a pattern of all ones and
then all zeros onto the media. We will then check for bit jitter between
alternating bits.
The purpose is not to remove the jitter completely (would
be nice though) but to distribute the jitter equally between the one and the
zero patterns.
If you have any problems during this adjustment,
PLEASE
Digital Group Repair Department before continuing.
(You could
symmetry so bad that no reading is possible at all.)
Proceedure:
(1). Load HMON/2 and execute option 5.
(2). Place an "expendable" diskette in the drive to be
adjusted.

(3). Select the desired drive with the following:
(a). Execute: OUT-54,(drive number 0-3)

(cr)

(4). Get the selected drive to Track 76 by the following:
(a). Execute: TRK-114 (cr)
(b). Wait for the stepping to finish.
(c). Execute: Control C
- 88 -

consult the
mess up the

APPENDIX S: APPLICATION NOTE #9

DOUBLE DENSITY SYSTEM MANUAL

(5). Trigger the scope on the r1s1ng edge of test point
16. Also, observe the pattern on test point 16 for
all of the following. (Vert Amplitude 1V per cm)
(6 ) • The ONE Pattern:
( a) • Execute: ONE:TRK-114 (cr)
( b ) • Set sweep to 1us per cm.
( c) • Observe the jitter on 2nd and 4th pulses.
( d ) • Adjust R57 to minimumize the jitter.
( e ) • Execute: Control C.
( 7) . The ZERO Pattern:
( a) • Execute: ZER:TRK-114 (cr)
( b ) • Set sweep to 2us per cm.
( c ) • Observe the jitter on 2nd and 4th pulses.

( d ) • Adjust R57 to minimumize the jitter.
( e ) • Execute: Control C

(8). Repeat steps 6 and 7 alternately until the jitter is
eliminated completely or is evenly distributed
between the One and Zero Pattern.
(9). If you can't get the jitter below 300 ns,
consult the Digital Group Repair Department.
(10). Reformat the diskette as Track 76 is blown.

- 89 ..,

DOUBLE DENSITY SYSTEM MANUAL

APPENDIX T: APPLICATION NOTE #10
APPENDIX T
APPLICATION NOTE #10
INNOVEX DRIVES

It is unknown
density.

at

this

time

if

the Innovex

drive

will handle double

For single density though, the. Digital Group Double Density Controller
will operate with one modification.
The Controller board lacks the Track Greater that 43 Signal. It should
be noted that the Innovex drives lack the Side signal. To provide the TG43
signal to the Innovex drives, we must disable the Side logic to the drive
and enable the TG43 signal. Somewhat by choice, the side signal is present
on the very line that the Innovex requires the TG43 signal.
To switch
these, perform the following:
(1). Cut the trace

leadi~g

to IC40 Pin 13.

(2). Jumper the TG43 signal from IC29-29 to IC40-13.
This Modification removes the Side signal from Controller 36 Pin ed8
connector Pin 21 and in its place substitutes the TG43 signal.

- 90 -

WESTERN DIGITAL
c

o

R

P

o

R

T

A

o

/

N

FD1791A/B Floppy Disk Formatter/Controller
FEATURES
• SOFT SECTOR FORMAT COMPATIBILITY
• AUTOMATIC TRACK SEEK WITH VERIFICATION
• ACCOMMODATES SINGLE AND DOUBLE
DENSITY FORMATS
IBM 3740 Single Density (FM)
IBM System 34 Double Density (MFM)
• READ MODE
Single/Multiple Record Read with Automatic
Search or Entire Track Read
Selectable 128 Byte or Variable Length Record
• WRITE MODE
Single/Multiple Record Write with Automatic
Sector Search
Entire Track Write for Diskette Initialization
• PROGRAMMABLE CONTROLS
Selectable Track to Track Stepping Time
Selectable Head Settling and Head Engage Times
• SYSTEM COMPATIBILITY
Double Buffering of Data 8 Bit Bi-Directional
Bus for Data, Control and Status
DMA or Programmed Data Transfers
All Inputs and Outputs are TTL Compatible
On-chip Track and Sector Registers Comprehensive Status Information
• WRITE PRECOMPENSATION (MFM AND FM)
• WINDOW EXTENSION (IN MFM)
• INCORPORATES ENCODING/DECODING
AND ADDRESS MARK CIRCUITRY

APPLICATIONS
FLOPPY DISK DRIVE INTERFACE
SINGLE OR MULTIPLE DRIVE CONTROLLER/
FORMATTER
NEW MINI-FLOPPY CONTROLLER

compatibility, the FD1771, FD1781, and FD1791
designs were made as close as possible with the
computer interface, instruction set, and I/O
registers being identical. Also, head load control is
identical. In each case, the actual pin assignments
vary by only a few pins from anyone to another.
The processor interface consists of an 8-bit bidirectional bus for data, status, and control word
transfers. The FD1791 is set up to operate on a
multiplexed bus with other bus-oriented devices.
The FD1791 is fabricated in N-channel Silicon Gate
MOS technology and is TTL compatible on all
inputs and outputs.

NC

INTRa

CS

ORa

RE

5'5'EN
Wi5RT

AO
Al

6

IP

DAL 0

TROO

5AL1

WF

DAL 2

READY

B

DAL 3

10

DAL 4

11

5AL'5

12

5AL6

13

DAL 7

14

RAW READ

STEP

15

RCLK

DIRC

16

EARLY

17

LATE

18

GENERAL DESCRIPTION
The FD1791 is a MOS LSI device which performs
the functions of a Floppy Disk Formatter/Controller
in a single chip implementation. The FD1791,
which can be considered the end result of both the
FD1771 and FD1781 designs, is IBM 3740 compatible in single density mode (FM) and System 34
compatible in Double Density Mode (MFM). The
FD1791 contains all the features of its predecessor
the FD1771, plus the added features necessary to
read/write and format a double density diskette.
These include address mark detection, FM and
MFM encode and decode logic, window extension,
and write precompensation. In order to maintain

V DO (+ 12V)

WE

(GND)

WD
WG
TG43
HLD

RG

24

CLK
HLT

MR

19

22

V SS

20

21

PIN CONNECTIONS

TEST
VCC

Command Register (CR)-This 8-bit register ho.lds
the co.mmand presently being executed. This register sho.uld no.t be Io.aded when the device is busy
unless the executio.n o.f the current co.mmand is to.
be o.verridden. This latter actio.n results in an interrupt. The co.mmand register can be Io.aded fro.m the
DAL, but no.t read o.nto. the DAL.
Status Register (STR)-This 8-bit register ho.lds
device Status info.rmatio.n. The meaning o.f the
Status bits is a functio.n o.f the contents o.f the
Co.mmand Register. This register can be read o.nto.
the DAL, but no.t Io.aded fro.m the DAL.
CRC Logic-This Io.gic is used to check or to
generate the 16-bit Cyclic Redundancy Check
(CRC). The polynomial is: G(x) =X 16 + X12 + x 5 + 1.
The CRC includes all information starting with the
address mark and up to the CRC characters. The
CRC register is preset to ones prio.r to data being
shifted through the circuit.
Arithmetic/Logic Unit (ALU)-The ALU is a serial
comparator, incrementer, and decrementer and is
used for register modification and comparisons
with the disk reco.rded ID field.

ORGANIZATION

Timing and Control-All computer and Floppy Disk
Interface controls are generated through this logic.
The internal device timing is generated fro.m an
external crystal clock.

The Flo.ppy Disk Fo.rmatter blo.ck.diagram is illustrated o.n page 3. The primary sectio.ns include the
parallel pro.cesso.r interface and the Flo.ppy
Disk interface.
Data Shift Register-This 8-bit register assembles
serial data fro.m the Read Data input (RAW READ)
during Read o.peratio.ns and transfers serial data to.
the Write Data o.utput during Write o.peratio.ns.

The FD1791 has two different modes of operation
according to the state of DDEN. When DDEN = 0
double density (MFM) is assumed. When DDEN = 1,
single density (FM) is assumed.

Data Register-This 8-bit register is used as a
ho.lding register during Disk Read and Write o.peratio.ns. In Disk Read o.peratio.ns the assembled data
byte is transferred in parallel to the Data Register
fro.m the Data Shift Register. In Disk Write o.peratio.ns info.rmatio.n is transferred in parallel fro.m the
Data Register to. the Data Shift Register.

AM Detector-The address mark detector detects
ID, data and index address marks during read and
write operations.

When executing the Seek co.mmand the Data Register ho.lds the address o.f the desired Track po.sitio.n.
This register can be Io.aded fro.m the DAL and gated
o.nto. the DAL under pro.cesso.r co.ntro.l.

k'

RAW READ

>

DATA 181

RCLK
RG

AO

-"'

LATE

A1

0

Track Register-This 8-bit register ho.lds the track
number o.f the current Read/Write head po.sitio.n. It
is incremented by o.ne every time the head is
stepped in (to.wards track 76) and decremented by
o.ne when the head is stepped out (to.wards track
00). The co.ntents o.f the register are co.mpared with
the reco.rded track number in the ID field during disk
Read, Write, and Verify o.peratio.ns. The Track Register can be Io.aded fro.m o.r transferred to. the DAL.
This Register sho.uld no.t be Io.aded when this device
is busy.

.

cs

C

EARLY

0

-

P
P
Y

WE

..

MR

I
N

WG

FLOPPY DISK
CONTROLLER
FORMATTER

WF

'5

?
<>

ORO

Sector Register (SR)-This 8-bit register ho.lds the
address o.f the desired secto.r po.sitio.n. The co.ntents
o.f the register are co.mpared with the reco.rded
secto.r number in the ID field during disk Read o.r·
Write o.peratio.ns. The Secto.r Register co.ntents can
be Io.aded fro.m o.r transferred to. the DAL. This
register sho.uld no.t be Io.aded when the device is
busy.

0
R
I

READY

E

?

STEP
ClIRC
FD1791

--'"

I~
-=

HLD

1J

HL:;""" + 5
V 5S

1

V DO

I
+ 12

V CC

I
+ 5V

1791 SYSTEM BLOCK DIAGRAM

2

v

TG43

INTRO
CLK

TROO

W

<> 10K
?

10K?

0
I
S
K

WPRT

T
E
R
F
A
C
E

F
L

wo

RE

M
P
U
T
E
.R

ONE SHOT
(IF USEDI

I

DATA OUT
BUFFERS

!
STATUS
REG

ALU

~-~

WRITE DATA
(TO DISK)

'---------------(

RCLK

WG
TG43

INTRa

WPRT

--:---

WP

iP

CS

TROO

AO

COMPUTER
INTERFACE
CONTROL

CONTROL

PLA
CONTROL
(230 X 16)

CONTROL

.

DISK
INTERFACT
CONTROL

Al

READY
STEP
DIRC
EARLY
LATE
RG

HLD
HLT

-

FD1791 BLOCK DIAGRAM

PROCESSOR INTERFACE

A1-AO

0 0
0 1
1 0

The interface to the processor is accomplished
through the eight Data Access Lines (DAL) and
associated control signals. The DAL are used to
transfer Data, Status, and Control words out of, or
into the FD1791. The DAL are three state buffers
that are enabled as output drivers when Chip Select
(CS) and Read Enable (RE) are acti~(low 10Qic
state) or act as input receivers when CS and Wnte
Enable (WE) are active.

1

1

READ (RE)
Status Register

WRITE (WE)

Track Register

Command Register
Track Register

Sector Register
Data Register

Sector Register
Data Register

During Direct Memory Access (DMA) types of data
transfers between the Data Register of the FD1791
and the processor, the Data Request (ORO) output
is used in Data Transfer control. This signal also
appears as status bit 1 during Read and Write
operations.

When transfer of data with the Floppy Disk Controller is required by the host processor, the device
address is decoded and CS is made low. The leastsignificant address bits A1 and AO, combined with
the signals RE during a Read operation or WE
during a Write operation are interpreted as selecting
the following registers:

On Disk Read operations the Data Request is activated (set high) when an assembled serial input
byte is transferred in parallel to the Data Register.
This bit is cleared when the Data Register is read by

3

after the head is loaded against the media. The track
number from th~ first encountered ID Field is
compared against the contents of the Track Register. If the track numbers compare and the ID Field
Cyclic Redundancy Check (CRC) is correct, the
verify operation is complete and an INTRa is
generated with no errors. The FD1791 must find an
ID field with correct track number and correct CRC
within 5 revolutions of the media; otherwise the seek
error is set and an INTRa is generated.

the processor. If the Data Register is read after one
or more characters are lost, by having new data
transferrd into the register prior to processor
readout, the lost Data bit is set in the Status
Register. The Read operation contin'ues until the
end of sector is reached.
On Disk Write operations the Data Request is
activated when the Data Register transfers its
contents to the .Data Shift Register, and requires a
new data byte. It is reset when the Data Register is
loaded with new data by the processor. If new data is
not loaded at the time the next serial byte is required
by the Floppy Disk, a byte of zeroes is written on the
diskette and the lost Data bit is set in the Status
Register.

Table 1. STEPPING RATES
ClK

2 MHz

5i5EN

0

R1 RO TEST=1

At the completion of every command an INTRa is
generated. INTRa is reset by either reading the
status register or by loading the command register
with a new command. In addition, INTRQ is generated if a Force Interrupt command condition is
met.

0

0

3 ms

2 MHz

1 MHz

TEST=1

TEST=1

1 MHz

2 MHz

1 MHz

TEST=1

0
TEST=O

TEST=O

3 ms

6 ms

6 ms

Approx.

Approx.

12 ms

12 ms

200 J.l.s

400 J.I.S

0

1

6 ms

6 ms

1

0

10 ms

10 ms

20 ms

20 ms

1

1

.15 ms

15 ms

30 ms

30 ms

FLOPPY DISK INTERFACE
The 1791 has two modes of operation according to
the state of DDEN (Pin 37). When DDEN =1, single
density is selected. In either case, the ClK input
(Pin 24) is at 2 MHz. However, when interfacing with
the mini-floppy, the ClK input is set at 1 MHz for
both single density and double density. When the
clock is at 2 MHz, the stepping rates of 3,6, 10, and
15 ms are obtainable. When ClK equals 1 MHz these
times are doubled.

The Head load (HlD) output controls the movement of the read/write head against the media. HlD
is activated at the beginning of a Type I command if
the h flag is set (h = 1), at the end of the Type I
command if the verify flag (V =1), or upon receipt of
any Type II or III command. Once HlD is active it
remains active until either a Type I command is
received with (h =0 and V =0); or if the FD1791 is in
an idle state (non-busy) and 15 index pulses have
occu rred, it is reset.

HEAD POSITIONING

Head load Timing (Hl T) is an input to the FD1791
which is used for the head engage time. When
Hl T = 1, the FD1791 assumes the head is completely
engaged. The head engage time is typically 30 to
100 ms depending on drive. The low to high transition on HlD is typically used to fire a one shot. The
output of the one shot is then used for HlT and
supplied as an input to the FD1791.

Four commands cause positioning of the ReadWrite head (see Command Section). The period of
each positioning step is specified by the r field in
bits 1 and 0 of the command word. After the last
directional step an additional 15 milliseconds of
head settling time takes place if the Verify flag is set
in Type I commands. Note that this time doubles to
30 ms for a 1 MHz clock. If TEST =0, there is zero
settling time. There is also a 15 ms head settling time
if the E flag is set in any Type 2 or 3 command.
The rates (shown in Table 1) can be applied to a
St~p-Direction Motor through the device interface.
Step-A 2 Ils (MFM) or 4 Ils (FM) pulse is provided
as an output to the drive. For every step pulse
issued, the drive moves one track location in a direction determined by the direction output.

HLY IFROMONE :,HOT,

HEAD lOAD TIMING

Direction (DIRC)-The Direction signal is active
high when stepping in and low when stepping out.
The Direction signal is valid 12 Ils before the first
stepping pulse is generated.

When both HlD and Hl T are true, the FD1791 will
then read from or write to the media. The "and" of
HlD and HlT appears as a status bit in Type I status.
In summary for the Type I commands: if h =0 and
V =0, HlD is reset. If h =1 and V =0, HlD is set at the
beginning of the command and HlT is not sampled
nor is there an internal 15 ms delay. If h =0 and V =1,
HlD is set near the end of the command, an internal
15 ms occurs, and the FD1791 waits for HlT to be

When a Seek, Step or Restore command is executed
an optional verification of Read-Write head position
can be performed by setting bit 2 (V =1) in the command word to a logic 1. The verification operation
begins at the end of the 15 millisecond settling time

4

true. If h = 1 and V = 1, HLD is set at the beginning of
the command. Near the end of the' command, after
all the steps have been issued, an internal 15 ms
delay occurs and the FD1791 then waits for HLT to
occur.

Writing is inhibited when the Write Protect input is a
logic low, in which case any Write command is
immediately terminated, an interrupt is generated
and the Write Protect status bit is set. The Write
Fault input, when activated, signifies a writing fault
condition detected in disk drive electronics such as
failure to detect write current flow when the Write
Gate is activated. On detection of this fault the
FD1791 terminates the current command, and sets
the Write Fault bit (bit 5) in the Status Word. The
Write Fault input should be made inactive when the
Write Gate output becomes inactive.

For Type II and III commands with E flag off, HLD is
made active and HLT is sampled until true, with E
flag on HLD is made active, an internal 15 ms delay
occurs and then HLT is sampled until true.

For write operation, the FD1791 provides Write Gate
(Pin 30) and Write Data (Pin 31) outputs. Write data
consists of a series of 500 ns pulses in FM (DDEN = 1)
and 250 ns pulses in MFM (DDEN = 0). Write Data
provides the unique address marks in both formats.

DISK READ OPERATIONS
Sector lengths of 128, 256, 512 or 1024 are obtainable in either FM or MFM formats. For FM, DDEN
should be placed to logical "1." For MFM formats,
DDEN should be placed to a logical "0." Sector
lengths are determined at format time by a special
byte in the "ID" field. If this Sector Length byte in the
ID field is zero, then the sector length is 128 bytes. If
01 then 256 bytes. If 02, then 512 bytes. If 03, then the
sector length is 1024 bytes. The number of sectors
per track as far as the FD1791 is concerned can be
from 1 to 255 sectors. The number of tracks as far as
the FD1791 is concerned is from 0 to 255 tracks. For
IBM 3740 compatibility, sector lengths are 128 bytes
with 26 sectors per track. For System 34 compatibility
(MFM), sector lengths are 256 bytes/sector with 26
sectors/track; or lengths of 1024 bytes/sector with 8
sectors/track.

Also during write, t~o additional signals are provided for write precompensation. These are EARLY
(Pin 17) and LATE (Pin 18). EARLY is active true
when the WD pulse appearing on (Pin 30) is to be
written early. EARLY is valid for the duration of the
pulse. LATE is active true when the WD pulse is to be
written late. If both are low when a WD pulse is
present, the WD pulse is to be written at nominal.
Since write precompensation values vary from disk
manufacturer to disk manufacturer, the actual value
is determined by several one shots or delay lines
which are located external to the FD1791. The write
precompensation signals EARLY and LATE are
valid in both FM and MFM formats.

For read operations, the FD1791 requires RAW
READ Data (Pin 27) signal which is a 250 ns pulse
per flux transition and a Read cloCk (RCLK) signal
to indicate flux transition spacings. The RCLK (Pin
26) signal is provided by some drives but if not it may
be derived externally by Phase lock loop, one shots,
or counter techniques. In addition, a Read Gate
Signal is provided as an output (Pin 25) which
informs some phase lock loops when to acquire
synchronization. When reading from the media in
FM, RG is made true when 2 bytes of zeroes are
detected. The FD1791 must find an address mark
within the next 10 bytes; otherwise RG is reset and
the search for 2 bytes of zeroes begins all over
again. If an address mark is found within 10 bytes,
RG remains true as long as the FD1791 is deriving
any useful information from the data stream. Similarly for MFM, RG is made active true when 4 bytes
of "00" or "FF" are detected. The FD1791 must find
an address mark within the next 16 bytes, otherwise
RG is reset and search resumes.

Whenever a Read or Write command (Type II or III)
is received the FD1791 samples the Ready input. If
this input is logic low the command is not executed
and an interrupt is generated. The Seek or Step
Type I commands are performed regardless of the
state of the Ready input. Also, whenever a Type II or
III command is received, the TG43 signal output is
updated.

COMMAND DESCRIPTION
The FD1791 will accept eleven commands. Command words should only be loaded in the Command
Register when the Busy status bit is off (Status bit 0).
The one exception is the Force Interrupt command.
Whenever a command is being executed, the Busy
status bit is set. When a command is completed, an
interrupt is generated and the Busy status bit is
reset. The Status Register indicates whether the
completed command encountered an error or was
fault free. For ease of discussion, commands are
divided into four types. Commands and types are
summarized in Table 2.

DISK WRITE OPERATION
When writing is to take place on the diskette the
Write Gate (WG) output is activated, allowing current to flow into the Read/Write head. As a precaution to erroneous writing the first data byte must be
loaded into the Data Register in response to a Data
Request from the FD1791 before the Write Gate
signal can be activated.

TYPE I COMMANDS
The Type I Commands include the Restore, Seek,
Step, Step-In, and Step-Out commands. Each of the
Type I Commands contains a rate field (rOrl), which
determines the stepping motor rate as defined in
Table 1.

5

Table 2. COMMAND SUMMARY

Table 5. FLAG SUMMARY

BITS

Seek

0 0 0 0 h V rl ro
0 0 0 1 h V rl ro

Step

0 0 1 u h V rl ro

Step In
Read Command

0 1 o u h V rl ro
0 1 1 u h V rl ro
1 0 0 m X--E 0 0

Write Command

1 0 1 mX E X ao

Read Address

Restore

Step Out

I

Read Track

1 1 0 0 0 1 o 0
1 1 1 0 0 1 0 X

I

Write Track

1 1 1 1 0 1 0 0

Force I nterrrupt

1 1 0 1 b b II 10

V

TYPE IV

765 4 3 2 1 0

TYPE COMMAND

Ii = Interrupt Condition flags (Bits 3-0)
10 = 1, Not-Ready to Ready Transition
11 = 1, Ready to Not-Ready Transition
12 = 1, Index Pulse
13 = 1, Immediate Interrupt
The Type 1 Commands contain a head load flag (h)
which determines if the head is to be loaded at the
beginning of the command. If h = 1, the head is
loaded at the beginning of the command (HLD
output is made active). If h = 0, HLD is deactivated.
Once the head is loaded, the head will remain
engaged until the FD1791 receives a command that
specifically disengages the head. If the FD1791 is
idle (busy = 0) for 15 revolutions of the disk, the head
will be automatically disengaged (HLD made
inactive).

X = Don't care
Note: Bits shown in TRUE form.

The Type I Commands also contain a verification
(V) flag which determines if a verification operation
is to take place on the destination track. If V = 1, a
verification is performed, if V = 0, no verification is
performed.

Table 3. FLAG SUMMARY
~

TYPE I
During verification, the head is loaded and after an
internal 15 ms delay, the HL T input is sampled.
When HL T is active (logic true), the first encountered 10 field is read off the disk. The track address
of the ID field is read off the disk. The track address
of the I D field is then compared to the Track
Register; if there is a match and a valid 10 CRC, the
verification is complete, an interrupt is generated
and the Busy status bit is reset. If there is not a
match but there is valid 10 CRC, an interrupt is
generated, and Seek Error Status bit (Status bit 4) is
set and the Busy status bit is reset. If there is a match
but not a valid CRC, the CRC error status bit is set
(Status bit 3), and the next encountered 10 field is
read from the disk for the verification operation. If
an 10 field with a valid CRC cannot be found after
four revolutions of the disk, the FD1791 terminates
the operation and sends an interrupt, (INTRQ).

h = Head Load Flag (Bit 3)
h = 1, Load head at beginning
h = 0, Unload head at beginning
V

= Verify

flag (Bit 2)

V = 1, Verify on last track
V = 0, No verify
rlro

= Stepping

m9tor rate (Bits 1-0)

Refer to Table 1 for rate summary
u = Update flag (Bit 4)
u = 1, Update Track register
u = 0, No update

The Step, Step-I n, and Step-Out commands contain
an Update flag (U). When U = 1, the track register is
updated by one for each step. When U = 0, the track
register is not updated.

Table 4. FLAG SUMMARY
TYPE II
m

= Multiple Record

flag (Bit 4)

RESTORE (SEEK TRACK 0)

m = 0, Single Record
m = 1, Multiple Records
ao

= Data Address

Upon receipt of this command the Track 00 (TROO)
input is sampled. If TROO is active low indicating
the Read-Write head is positioned over track 0, the
Track Register is loaded with zeroes and an interrupt is generated. If TROO is not active low, stepping pulses (pins 15 to 16) at a rate specified by the
rlro field are issued until the TROO input is activated. At this time the TR is loaded with zeroes and
an interrupt is generated. If the TROO input does not
go active low after 255 stepping pulses, the FD1791

Mark (Bit 0)

ao = 0, FB (Data Mark)
ao = 1, Fa (Deleted Data Mark)
E = 15 ms Delay
E = 1, 15 ms delay
E = 0, no 15 ms delay

6

terminates operation, interrupts, and sets the Seek
error status bit. Note that the Restore command is
executed when M R goes from an active to an
inactive state. A verification operation takes place if
the V flag is set. The h bit allows the head to be
loaded at the start of command.

STEP

Upon receipt of this command, the FD1791 issues
one stepping pulse to the disk drive. The stepping
motor directio'n is the same as in the previous step
command. After a delay determined by the rlrO field,
a verification takes place if the V flag is on. If the u
flag is on, the TR is updated. The h bit allows the
head to be loaded at the start of the com mand. An
interrupt is generated at the completion of the
command.
.

SEEK

This command assumes that the Track Register
contains the track number of the current position of
the Read-Write head and the Data Register contains
the desired track number. The FD1791 will update
the Track register and issue stepping pulses in the
appropriate direction until the contents of the Track
register are equal to the contents of the data register
(the desired track location). A verification operation
takes place if the V flag is on. The h bit allows the
head to be loaded at the start of the command. An
interrupt is generated at the completion of the
command.

STEP-IN
Upon receipt of this command,' the FD1791 issues
one stepping pulse in the direction towards track 76.
If the u flag is on, the Track Register is incremented
by one. After a delay determined by the rlrO field, a
verification takes place if the V flag is on. The h bit
allows the head to be loaded at the start of the
command. An interrupt is generated at the completion of the command.

TYPE I COMMAND FLOW

TYPE I COMMAND FLOW

7

STEP-OUT
Upon receipt of this command, the F01791 issues
one stepping pulse in the direction towards track O.
If the u flag is on, the TR is decremented by one.
After a delay determined by the rlro field, a verification takes place if the V flag is on. The h bit allows
thee start of the command. An interrupt is generated
at the completion of the command.

TYPE II COMMANDS
The type II Commands include the Read Sector (s)
and Wrii.e Sector (s) commands. Prior to loading the
Type II Command into the Command Register, the
computer must load the Sector Register with the
desired sector number. Upon receipt of the Type II
command, the busy status Bit is set. If the E flag = 1
(this is the normal case) HLD is made active and
HL T is sampled after a 15 msec delay. If the E flag is
0, the head is loaded and HL T sampled with no 15
msec delay. The 10 field and Data Field format are
-shown below.
When an 10 field is located on the disk, the F01791
compares the Track number of the 10 field with the
Track Register. If there is not a match, the next
encountered 10 field is read and a comparison is
again made. If there was a match, the Sector
Number of the 10 field is compared with the Sector
Register. If there is not a Sector match, the next
encountered 10 field is read off the disk and comparisons again made. If the 10 field CRC is correct,
the data field is then located and wi II be either
written into, or read from depending upon the
command. The FD1791 must find an I D field with a
Track number, Sector number, and CRG within four
revolutions of the disk; otherwise, the Record not
found status bit is set (Status bit 3) and the command is terminated with an interrupt.
Sector Length
Field (hex)

00
01
02
03

N umber of Bytes
in Sector (decimal)

128
256
512
1024

Each of the Type II Commands contains an (m) flag
which determines if multiple records (sectors) are to
be read or written, depending upon the command. If
m = 0, a single sector is read or written and an
interrupt is generated at the completion of the
command. If m = 1, multiple records are read or
written with the sector register internally updated so
that an address verification can occur on the next
record. The FD1791 will continue to read or write
multiple records and update the sector register until
the sector register exceeds the number of sectors
on the track or until the Force Interrupt command is
loaded into the Command Register, which terminates the command and generates an interrupt.

READ COMMAND
Upon receipt of the Read command, the head is
loaded, the Busy status bit set, and when an I D field
is encountered that has the correct track number,
correct sector number, and correct CRC, the data
field is presented to the computer. The Data Address Mark of the data field must be found within 30
bytes in single density and 43 bytes in double
density of the last ID field CRC byte; if not, the
Record Not Found status bit is set and the operation
is terminated.

NOTE IF TEST - 0 THERE IS NO 15MS DELAY
IF TEST = 1 AND eLK' 1 MHz THERE IS A 30MS DELAY

TYPE I COMMAND FLOW
8

GAP
III

DATA
AM

CRC
2

10 FIELD

In MFM only, lOAM and DATA AM are preceded by three bytes of A1 with clock transition between bits 4 and
5 missing.

TYPE II COMMAND

NOTE

i'f'T"ET,i

il'TfST

in'putted to the computer. If there is a CRC error at
the end of the data field, the CRC error status bit is
set, and the command is terminated (even if it is a
multiple record command).

rHERL IS NO 15MS DELAY
I AND eLK
I MHz THERE IS 30MS DELAY

'J

TYPE II COMMAND

At the end of the Read operation, the type of Data
Address Mark encountered in the data field is
recorded in the Status Register (Bit 5) as shown
below:

When the first character or byte of the data field has
been shifted through the DSR, it is transferred to the
DR, and ORO is generated. When the next byte is
accumulated in the DSR, it is transferred to the DR
and another ORO is generated. If the Computer has
not read the previous contents of the DR before a
new character is transferred that character is lost
and the Lost Data Status bit is set. This sequence
continues until the complete data field has been

STATUS
BIT 5
1

o

9

Deleted Data Mark
Data Mark

The FD1791 then writes the data field and generates
DRO's to the computer. If the DRO is not serviced in
time for continuous writing the Lost Data Status Bit
is set and a byte of zeros is written on the disk. The
command is not terminated. After the last data byte
has been written on the disk, the two-byte CRC is
computed internally and written on the disk followed by one byte of logic ones in FM or 4F in MFM.
The WG output is then deactivated.

WRITE COMMAND
Upon receipt of the Write command, the head is
loaded (HLD active) and the Busy status bit is set.
When an I D field ts encountered that has the correct
track number, correct sector number, and correct
CRC, a DRO is generated. The FD1791 counts off 11
bytes in single density and 22 bytes in double
density. from the C~C .field and the Write Gate (WG)
output IS made active If the DRO is serviced (Le., the
DR has been loaded by the computer). If DRO has
not been serviced, the command is terminated and
the Lost Data status bit is set. If the ORO has been
serviced, the WG is made active and six bytes of
zeros in single density and 12 bytes in double
density are then written on the disk. At this time the
Data Address Mark is then written on the disk as
determined by the ao field, of the command as shown
below:
Data Address Mark (Bit O)
1

o

Deleted Data Mark
Data Mark

INTRQ, RESET BUSY
SET RE,CORD-NOT FOUND

NO

TYPE II COMMAND
NO

TYPE III COMMANDS
READ ADDRESS
Upon receipt of the Read Address command the
head is loaded and the Busy Status Bit is set.' The
n~xt encoyntered I D field is then read in from the
diSk, and the six data bytes of the ID field are
assembled and transferred to the DR, and a DRO is
generated for each byte. The six bytes of the I D field
are shown below:

INTRQ, RESET BUSY
SET CRC ERROR

TYPE II COMMAND

10

TRACK
ADDR

SIDE
NUMBER

SECTOR
ADDRESS

SECTOR
LENGTH

CRC
2

CRC
2

1

2

3

4

5

6

starts with the leading edge of the first encountered
index pulse and continues until the next index
pulse, at which time the interrupt is activated. The
Data Request is activated immediately upon receiving the command, but writing will not start until after
the first byte has been loaded into the Data Register.
If the DR has not been loaded by the time the index
pulse is encountered the operation is terminated
making the device Not Busy, the Lost Data Status
Bit is set, and the Interrupt is activated. If a byte is
not present in the DR when needed, a byte of zefOS
is substituted. Address Marks and CRC characters
are written on the disk by detecting certain data byte
patterns in the outgoing data stream as shown in the
table below. The CRC generator is initialized when
any data byte from Fa to FE is about to be transferred from the DR to the DSR in FM or by receipt of
F5 in MFM.

Although the CRC characters are transferred to the
computer, the FD1791 checks for validity and the
CRC error status bit is set if there is a CRC error. The
Track Address of the 10 field is written into the
sector register. At the end of the operation an
interrupt is generated and the Busy Status is reset.

READ TRACK
Upon receipt of the Read Track command, the head
is loaded and the Busy Status bit is set. Reading
starts with the leading edge of the first encountered
index mark and continues until the next index pulse.
As each byte is assembled it is transferred to the
Data Register and the Data Request is generated for
each byte. No CRC checking is performed. Gaps are
included in the input data stream. The accu mulation
of bytes is synchronized to each Address Mark
encountered. Upon completion of the command,
the interrupt is activated.
WRITE TRACK
Upon receipt of the Write Track command, the head
is loaded and the Busy Status bit is set. Writing

YES

(MFM)

WRITE 2 CRC
CHARS elK" FF

WRITEFC
ClK" D7

WRITE FD. FE OR
F8-FB. ClK " C7
INITIALIZE CRC

TY~E

TYPE III COMMAND WRITE TRACK

11

III COMMAND WRITE TRACK

CONTROL BYTES FOR INITIALIZATION
FD1791 INTERPRETATION
IN MFM (DDEN = 0)

FD1791 INTERPRETATION
IN FM (DDEN = 1)

DATA PATTERN
IN DR (HEX)

Write 00 thru F4, in MFM
Write A1 * in MFM, Preset CRC
Write C2** in MFM
Generate 2 CRC bytes
Write Fa thru FB, in MFM
Write FC in MFM
Write FD in MFM
Write FE in MFM
Write FF in MFM

Write 00 thru F4 with Clk = FF
Not Allowed
Not Allowed
Generate 2 CRC bytes
Write Fa thru FB, Clk = C7, Preset CRC
Write FC with Clk = D7
Write FD with Clk = FF
Write FE, Clk = C7, Preset CRC
Write FF with Clk = FF

00 thru F4
F5
F6
F7
Fa thru FB
FC
FD
FE
FF

*Missing clock transition between bits 4 and 5
**Missing clock transition between bits 3 and 4

TYPE IV COMMAND

the rest of the status bits are updated or cleared for
the new command. If the Force Interrupt Command
is received when there is a current command under
execution, the Busy status bit ts reset, and the rest of
the status bits are unchanged. If the Force Interrupt
command is received when there is not a current
command under execution, the Busy Status bit is
reset and the rest of the status bits are updated or
cleared. I n this case, Status reflects the Type I
commands.

FORCE INTERRUPT
This command can be loaded into the command
register at any time. If there is a current command
under execution (Busy Status Bit set), the command
will be terminated and an interrupt will be generated
when the condition specified in the 10 through 13 field
is detected. The interrupt conditions are shown
below:

10= Not-Ready-To-Ready Transition
11 = Ready-To-Not-Ready Transition
b = Every Index Pulse
b = Immediate Interrupt

The format of the Status Register is shown below:

NOTE: If 10 - 13 = 0, there is no interrupt generated
but the current command is terminated and
busy is reset. This is the Qnly command that
will clear the immediate- -interrupt.

(BITS)
7
S7

6
S6

5
85

4
84

3

2

1

0

S3

S2

S1

SO

STATUS DESCRIPTION
k

Upon receipt of ~hy command, except the Force
Interrupt command, the Busy Status bit is set and

Status varies according to the type of command
executed as shown in Table 6.

Table 6. STATUS REGISTER SUMMARY

BIT
S7
S6

ALL TYPE I
COMMANDS
NOT READY

READ
ADDRESS
NOT READY

WRITE
-P~OTEQL_

S5

HEAD

1'1
83

stU- K

G- J( tlld f\

READ
WRITE
TRACK
NOT READY NOT READY

READ
NOT READY

0

0
~ ! CU7\ ()

WRITE

0

J't fJ ~ ~

-"--..,

'11:' €[:ff"rr

- - ER_QIEGI

WRITE
TRACK
NOT READY
WRITE
PROTr=rT

0
0
WRITE FAULT WRITE FAULT
.~ECORD NOT\ 111-----------0----~ 1${t1l\ ~ AJir~Ai~---' FOUND
0
0

82
81

CRC ERROR
TRACK 0
INDEX

CRC ERROR
LOST DATA

LOST DATA

DRO

SO

BUSY

BUSY

CRC ERROR

CRC ERROR
LOST DATA

0
LOST DATA

DRO

0
LOST DATA
DRO

DRO

DRO

BUSY

BUSY

BUSY

BUSY

12

STATUS FOR TYPE I COMMANDS

BIT NAME

MEANING

S7 NOT READY

This bit when set indicates the drive is not ready. When reset it indicates that the drive
is ready. This bit is an inverted copy of the Ready input and logically cored' with MR.
When set, indicates Write Protect is activated. This bit is an inverted copy of WRPT
input.
When set, it indicates the head is loaded 'and engaged. This bit is a logical "and" or
HLD and HLT signals.
When set, the desired track was not verified. This bit is reset to 0 when updated.
When set, indicates Read Write head is positioned to Track O. This bit is an inverted
copy of the TROO input.
When set, indicates index mark detected from drive. This bit is an inverted copyofthe
IPinput.
When set command is in progress. When reset no command is in progress.

S6 PROTECTED
S5 HEAD LOADED
S4 SeEK ERROR
S2 TRACK 00
S1 INDEX
SO BUSY

STATUS BITS FOR TYPE II AND III COMMANDS

BIT NAME

MEANING

87 NOT READY

This bit when set indicates the drive is not ready. When reset,itindicates that the drive
is ready. This bit is an ,inverted copy of the Ready input and ·oredt·withMR. The Type It
and III Commands will not execute unless the drive isreadv~
S6 WRITE PROTECT On Read Record: Not Used. On Read Track: Not Used. On any Write: It indicates a
Write Protect. This bit is reset when updated.
85 RECORD TYPE! On Read Record: It indicates the record-type code from dat~ field address mark. On
WRITE FAULT
Read Track: Not Used.iOn any Write: It indicates a Write Fault. This bit is reset when
updated.
" .
S4 RECORD NOT
FOUND
S3 CRe ERROR
S2 LOST OAT A
81 DATA REQVEST

80 BUSY

When set, it indicates that'the desired track and sector were inot found. This bit'is
reset when updated.
If S4 is set, an error is found in one or more.O fields; otherwise·it indicates error indata,
field. This bit is reset wherf updated.
When set, it indicates thecQm,puter did not respond to ORO in one byte time. This bi.t is
reset to zero when update"d..
"
< '
This bit is a copy of the D'RQ output. When set, it indicates ttle OR is fuU ona Read •
Operation or theOA isetn,plyon a Write operation. This bit is 'reset tozero;when
updated.
' ,
.
When set, commanQi~;U"~'r:,x~ution. When reset, no command is under execution.
be written on the disk, a data request is generated.
This sequence continues from one index mark to
the next index mark. Normally, whatever data pattern appears in the data register is written on the
disk with a normal clock pattern. However, if the
FD1791 detects a data pattern on F5 thru FE in the
data register, this is interpreted as data address
marks with miSSing clocks or CRC generation. For
instance, in FM an FE pattern will be interpreted as
an 10 address mark (DATA-FE, CLK-C7) and the
CRC will be initialized. An F7 pattern will generate
two CRC characters in FM or MFM. As a consequence, the patterns F5 thru FE must not appear in
the gaps, data fields, or 10 fields. Also, CRC's must
be generated by an F7 pattern.

FORMATTING THE DISK
(Refer to section on Type III commands for flow
diagrams.)
Formatting the disk is a relatively simple task when
operating programmed lID or when operating under
DMA control with a large amount of memory. When
operating under DMA with limited amount of memory, formatting is a more difficult task. This is
because gaps as well as data must be provided at the
computer interface.
Formatting the disk is accomplished by positioning
the RIW head over the desired track number and
issuing the Write Track command. Upon receipt of
the Write Track command, the FD1791 raises the
data request signal. At this point in time, the user
loads the data register with desired data to be
written on the disk. For every byte of information to

Disks may be formatted in IBM 3740 or System 34
formats with sector lengths of 128,256,512, or 1024
bytes.
1~

user must issue the Write Track command and load
the data register with the following values. For every
byte to be written, there is one data request.

IBM 3740 FORMAT-128 BYTES/SECTOR
Shown below is the IBM single-density fOrmat with
128 bytes/sector. In order to format a diskette, the
user must issue the Write Track command, and load
the data register with the following values. For every
byte to be written, there is one data request.

80
12

HEX VALUE OF
BYTE WRITTEN

NUMBER
OF BYTES

*

NUMBER
OF BYTES

4E
00
F6
FC
4E
00
F5
FE
Track Number (0 thru 4C)
Side Number (0 or 1)
Sector Number (0 thru 1A)
01
F7
4E
00
F5
FB
40
F7
4E

3

FF
00
FC (I ndex Mark)
FF
(,~1/
00
FE (10 Adress Mark)
Track Number
00
Sector Number (1 thru 1A)
00
F7 (2 CRC's written)
FF
] (,?~~
00
FB (Data Address Mark)
Data (IBM uses E5)
F7 (2 CRC's written)
FF
FF

40
6
1
26
6
1
1
1
1
1
1
11
6
1
128
1
27
247**

J

1
50
12

*

3
1
1
1
1
1
1
22
12

3
1
256
1
54
598**

1~~~

*Write bracketed field 26 times
**Continue writing until FD1791 interrupts out.
Approx. 247 bytes.

HEX VALUE OF
BYTE WRITTEN

*Write bracketed field 26 times.
**Continue writing until FD1791 interrupts out.
Approx. 598 bytes.

IBM SYSTEM 34 FORMAT256 BYTES/SECTOR
Shown below is the IBM dual-density format with
256 bytes/sector. In order to format a diskette, the
PHYSICAl INDf x

46 BYTES FM
92 BYTES MFM

H
~ INDEX ADDRESS MARl<

GAP -4
PHE INDEX
110 HYTf FM
14-4 BYTl', MfM

C2""

GAP '2
10 GAP

'\ BYTES

DATA
FIELD
RECORO

MFM

GAP 3
DATA GAP

10

33 BYTE FM

RECORD

66 ByTE MPM

NO 2

DATA
RECORD
NO ~)

GAP '2

DATA OR
DELETED
DATA
ADDRESS

USER DATA

CRC

CRe

BYTE 1

BYTe '2

MARK

'MISSING CLOCK TRANSITION
BETWEEN 8ITS -4 AND 5

,

I
I

GAP '2

I
I

I

··MISSING CLOCK TRANSITION
BETWEEN BITS 3 AND 4

I
FM
MFM

~llBYTES-+ 6 BYTES
22 BYTES

,

WRITE GATE TURN ON FDA UPDATE
OF NEXT DATA FIELD

--

12 BYTES

0
3

H

:
1 BYTE

!----32BYTES----j

0

1 BYTE

,

3

L

-.-I

IBM TRACK FORMAT

14

WRITE TUAN OFF FOR UPDATE
OF PREVIOUS DATA FIELD

NON-IBM FORMATS

REFERENCES:

Variations in the I BM format are possible to a limited
extent if the following requirements are met: sector
size must be a choice of 128, 256, 512 or 1024 bytes;
gap size must be according to the following table.
Note that the Index Mark is not required by the
FD1791.

1. IBM Diskette OEM Information GA21-9190-1
2. SA900 IBM Compatibility Reference ManualShugart Associates.
3. IBM Two-Sided Diskette OEM Information
GA21-9257-1

ELECTRICAL CHARACTERISTICS

MFM
16 bytes 4E

MAXIMUM RATINGS

Gap I

FM
16 bytes FF

Gap II
*

11 bytes FF
6 bytes 00

22 bytes 4E
12 bytes 00
3 bytes A1

Max. Voltage to Any Input With
Respect to Vss
Operating Temperature

O°C to 70°C

Gap III
**

10 bytes FF
4 bytes 00

16 bytes 4E
8 bytes 00
3 bytes A1

Storage Temperature

-55°C to +125°C

Gap IV

16 bytes FF

16 bytes 4E

VDD With Respect to Vss (Ground) +15 to -0.3V

OPERATING CHARACTERISTICS (DC)
T A = 0° C to 70° C, VDD = +12.0V ±.6V,
Vss = OV , Vee =+5V ±.25V
VDD = 10 ma Nominal, Vee = 35 ma Nominal

*Byte counts must be exact.
**Byte counts are minimum, except exactly 3 bytes
of A 1 must be written.

SYMBOL
ILl

CHARACTERISTIC
Input Leakage

ILo
V IH

Output Leakage
Input High Voltage

VIL

Input Low Voltage (all

VOH

Output High Voltage

VOL

Output Low Voltage

+15 to -0.3V

MIN.

TYPE.

MAX.
10

UNITS
p.A

10

p.A

2.6

CONDITIONS
V IN = VDD
VOUT = V DD

V
0.8

2.8

V
V

0.4

V

10 = 100 p.A
10 = 1.6 mA

NOTE: Pin l' is normally connected to substrate with internal back bias generator. Be sure not to connect anything to Pin 1.

TIMING CHARACTERISTICS
TA = O°C to 70°C, VDD = + 12V ± .6V, Vss =OV, Vee =+5V±.25V
NOTE:

Timings are given for 2 MHz Clock. For those timings noted, values will double when chip is operated
at 1 MHz.

READ OPERATIONS
SYMBOL

TYP.

MAX.

UNITS

CHARACTERISTIC

MIN.

TSET

Setup ADDR & CS to RE

100

nsec

THLD

Hold ADDR & CS from RE

10

nsec

TRE

RE Pulse Width

500

nsec

TORR

ORa Reset from RE

TIRR

INTRa Reset from RE

TDACC

Data Access from RE

TDOH

Data Hold From RE

~OO.

50

15

CONDITIONS

C L = 25 pf

500

nsec

3000

nsec

350

nsec

C L = 25 pf

nsec

C L = 25 pf

150

See Note

16' OR 32' u S - - -

1--------- ~

-I

16' OR 32' uS ----_~

ORU VOL
VOH

[lRO VOL
INTRU

f--:----+-------...

INTRQ

tSERVICE

VOL

AO A I CS
Af) A 1

(~S

Ii II

I

VII

WI

-

I

'SET

I

DAI

DATA VAilI'
~1E:.AD

DATAVAIID
WRITt DATA

1l'iATi

OOH~

OA TA

IIlUrHI1~

TRI

~TATEDI

NOTE

1

CS

NOTE
MAY BE PERMANENTLY TIED LOW IF DESIRED

'TIME DOUBLES WHEN CLOCK

lMHl
t SERVICE (WORST CASEI
'FM - 235 LIS
'MFM
11 SuS

t SERVICE (WORST CASEI

275 uS

"FM
'MFM

135 uS

READ ENABLE TIMING

Cs

1
MAY BE PERMANENTL Y TIED LOW IF DESIRED
2 WHENWRITINGDATAINTOSECTOR TRACK ORDATA
REGISTER USER CANNOT READ THIS REGISTER UNTIL
AT lEAST 4 "SEC IN MFM AFTER THE RISING EDGE OF WE
WHEN WRITING INTO THE COMMAND REGISTER STATUS
IS NOT VALID UNTIL SOME 12 "SEC IN FM 6 "SEC IN MFM
lATER THESE TIMES ARE DOUBLED WHEN ClK' 1 MHz
'TIME DOUBLES WHEN CLOCK
lMHz

WRITE ENABLE TIMING

WRITE OPERATIONS
SYMBOL
TSET

CHARACTERISTIC
Setup AD DR & CS to WE

THLD

Hold ADDR & CS from WE

TWE

WE Pulse Width

TORR

ORO Reset from WE

TIRR

INTRa Reset from WE

TDS

Data Setup to WE

TDH

Data Hold from WE

MIN.

TYP.

MAX.

UNITS

100

nsec

10

nsec

350

nsec
500

500

nsec

3000

nsec

250

nsec

20

nsec

CONDITIONS

See Note

MISCELLANEOUS TIMING:
SYMBOL

CHARACTERISTIC

MIN.

TYP.

MAX.

UNITS

TCD l

Clock Duty (low)

230

nsec

TCD 2

Clock Duty (high)

200

nsec

TSTP

Step Pulse Output

2 or 4

J,Lsec

TDIR

Dir Setup to Step

12

J,Lsec

TMR

Master Reset Pulse Width

50

J,Lsec

TIP

Index Pulse Width

10

J,Lsec

TWF

Write Fault Pulse Width

10

J,Lsec

16

CONDITIONS

See Note

IIpW - - - - {

RAW

READ

J---

250 ns • 50

'~I

j}-_ _ _.....,

U

Lf

I

WF

l

II----

RCLK

•I•

l-

It'

Id

Tb'

MR ~)-------'II --~5
/ - - TMR

-I

Tc'

-tTWj-~

NOMINAL

5"
5"

DDEN
0
1
0
1

VIH

---1

I-TCYC~

"USER NEED NOT CONCERN HIMSElF
WHETHER THESE PULSES ARE CLOCK
OR DATA, THE FDI791 WILL
ASCERTAIN THIS
OR IN OTHER
WORDS, RCLK MAY BE INVERTED

MODE
MFM
FM
MFM
FM

VIH

CLKLlL

HOO n~,
tc ' 40 ns

DISKETTE
8"
8"

VIH

--1

.-

I
----1

, NOMINAL

ABS(lIIJH VAL UES
HOD n,
18

r--I-~)

!--TWF

I

Ta'

r-------tJ

ns

-1 t==- c-1
IC'ltr )'1

SEC-

X N TE

£)

tn-tfl~r

/{o... 4 i

-----

/#/Uj

07

SC t- IlI7AJj j-

fi~

PIN

IJT5

3

C

iJ7

Jf{}A-{{. f}

/AlTEI1IU1I'T G#A-lJ?g

7Z

0

~t

~

fJ)

Ii.

/J~

P f{ I V(i clf-II--A' (.£

,v/;4--

~i%&t(

11

~~}*'511'£.

~

-

a

~ItWE-

,8[([e(

'itt

{,

F

tJtf

P5

7

H

JP5

tl-

r

J

III

(PT

7

Z><:

k

IJ/

b·----~

L

!

.~iIl
~:Jf

J(~#J1t-

h't:~~

!'1/AJ...E

~ ~/PJ-,IJ

rfl1 //?t~r

f'/G:At'4 C

It)

'",

,

f...::

lPtV 4- f> ~ !L

IX-A/Vi i?H'9JElfJ !JI{Jlti (J IN/tffCG
Off! fi A_ Lv' ()" Ii _ A cC#'5t ~T T

..-

-

"-

---~

~r/A

~

5IC-(i'i:::7/j:JI)

DI
if/(/u-£

!I//II-

N/A-

SIt' E-

)

..

.

[fo::::~

(il~~
f0 ;;.)

L

f}f'\IV(£' ..

SJiuct

..

0 I "' 100 :::.!

7CJ,P
if ~TTtfP'-J

TItA-Ct(
(i'~v~ 1(5 k

r

p;tR

'},(/l)

rr

r-5-L~ ~.L- fie _-_,-1 f!,!5J;_-.T.7~TLttJ

I

I'I"! I

iNf)Gfy _
c,1r(J!

'fbL

'~'iJf

f1lriAt

~f; L

F~

i('MIA)

r

~ - ¢P

10
.7

I
L

-

I-

14

i - (> ~(ro",: ; ! ,,,) .-.
c- ;),5' /
i - f E- (''-, GO(~~)(.

(Sf))

It; O/f)

~-C2{FkJ

/(;, - ift

50 - '1 ~

9)-lfG

'1!.f - 'IE

g-/~'

/2- -- ~f

11---'/



If

1'1

flt

~

If

/;-

If

"
6.

----

lf~fP-

//-Ff

Jt-ifli

)].'- ift£

:J;J- '-ttl

'-If

,- fJl

&--11

,-!~

i2-~'

iJ,.-PP'

n-'I'tf

(J.

)'-4f (~)

}-I+! (P's)

)-IJ / (r:s-)

j-P/$

I-FI3

/,-;:15

C?'" If) P-/ IJA-T/J-

//)-

pf

i- fJ)

/-ff)

J

t - CAL [F?)

l)~- C)' (;;'" (J'>OJ

It'l-IJC;(qv.fhD

2. -CAe (i:- ~)

J-? - f

)-C//I(

r-

21- FT-

)",1(" 5·... c,

~

'It.{ -FF

.....
L _ _ _ _~_~-.. ~~~ __~-_.~,-o--_---__ ~_

fJOC! hY~5; $TtJ

.,

A/(Fr;)

1- Ff6

j-fl!
.)

!~~

-roT;

(
/'

/I-PP-

(- f~

r

!---PC

3- 1f /(fty)

/"

A-

--.-..... -"-

3-c:1 (Ft)
j- PC

C-() 0, . .)

>

.-

J- &l. (FC)
1- PC:

1'111J

i - Pii

-

It -P'f/

l-}..- pF

j- f 1£

f1! All
(tJ.:>I!.s )

it - f1(/

f.f

(..-Vff

7'-()

:z,g,..l.f£

;-fC.

,- ();i

(h PI1) ---;

C(;().-'ffff.

C

.2, -

MIMI

-

, -¢(!

f~

r't

( 5Y5H'-'

--~-

"-pfJ

{- (Tf\,/t-C

(rtf;,/,)(,) ) 12-1 -,

~J : f1/~

11$1'-1 >yyh;V1 10/

/(661.

j ....

t.:>;1

~T&

P-fJ i '7'l!

(.-¢jI

2C. - fF

CG/{/5' i

(

CP() - tf I='
17- - @if

/,-

((})

rr

iJ-

I~

!6 t... tL

07,(

/i1 ... f-f

1- f C.

~

I

(tJ:lt5 (5 )

2 -CAL (F7)

Clrt [
Z;

fJ

r

J

11(} - f-f

5
4
t

;1{)p?"";>/

>y.:d-;!'V'~

ifl) - Ff

;.- FE

I

Y. II,

f1/~'.J.

H/NI
( J? C-{C) )

J?'1o

(,-~~

/- FE

1~~t6~

S'Tt?
1$11

-

6.4-~ [

tH.ClJ.J

POt( 01/1-T

\

(i7'i'/~fC..)$-!1-)-J

iJr-/if(rJvllo/l).) Lf"'ltJ~'f d;D

(f~ )-Cf'l.{f?)
t;,- PI:;

I C,

"I/~ 5-t:..C.

I

10

-. __ .~._~ __ ~_ _ -....J

JIJ"s by J.-r,{/1//V1

15

S"'5

12<~/f-~lrl

;it

2'-C/!\C(f~
~t-f -

{tOr-EI
'1~x L

~

.... t()'-fF

1(..-1.-/;;'

let'l'l n $ - i 32 7
3n)< nos I 115
)' ') ~)( i? )
If} 5

r

'i Il.

Jr{; -'ff/(wftJJk)

.

X 2 (, yC

'iE

-I'I'

J,5&>-if/1{ev #Jfr.>-)

Z.-CAC.(f'P)

~'1- t-f

1(' -

x

tl.

z.
Ie. 5"';'-

--1)2-'11Z.

'tS-~

'1£

1'5 t)
y (Q5e...G.

"-Z~2.-4€

- ____ ~ ___ -

1.--_.

Ib,tll' by.f,e,r l.rrlJ

0/£

)-c.Acl~?)

~?

j72

tff,- 'Ie. JI'-~E.
S--?q.-'ft. Ifs1{-1f "-' fJ1~-

,o"rI59(J··'i~J ?gtf-!

'\

Jrr,- 'f~{cv $;12)

).- CALeF?)

MIN

I

2-2--~

._._1

/I y/-ej' : 1'1 (wI

DOUBLE DENSITY DISK CONTROLLER BOARD

~=========2'~~~3~,,~0~~~~llR~~~~=~~+~'7~4~~~
~r~~==~~========lJ~=======t=I~2===~~;---t=====WA='T====~~~~~~~~~~~~~~~~~~~~~==============~~========i~~~W~AI~l=EN~
~O
I.
,~~
~~~

11 IJOREAD

r

2

-;:r."W

A'.

8

~
74LS14

Ci

11

RWEEWE:lE4

8

to

123
SEVEN
t---.,,--==------t-----=-o2
0
£r
4
11 3
3
74LS14
R'8-'
C34
R22

74LS27

4

R

'0 PIN
DIP SOCKET

,-____=
..

~

1
'--'-0

50P-:;f"

~ ~

S

A4'
3
~
4

4

~4'~"

~8,,,,~

A4 4

17

270

2
3

1

~r ~~

;L~
o~5a

r

tS
14

'-*

• 74
12

••

2

A2e.2

2MHZ

_

r.ill.__

~l:i
l____J______

0

'-

STD

v
w

7

CiS

r--

W

ITr=~~~!~j4~7~4E32
5

X IJOWRITEC>---------------------+----------t-r-+------t-t-r----~
10

81LS~7

2::>

•

,e-3

11

+5;

8

N/C

,.

I

I~-----t-7.~~;-\18
I

'We

~

s

1791 INTRO.9
j
DROf-'·:::..·-........+---I--....J

RE

DDEN

31

ViP

'8

~
to~
14
- "-'OA.;:;L7__t-t-t-____-Ht-t-__-rH-t-________________
-"-I
DAL7
74LS02
74175 +5
to SlEP
I ~_'O r ~~
__
~.
0
R28-8 ~ 010
~
~)-=-+"__-"W",E'-t-H,-------!.C EARLV
~'~
16
"
I ~
9 , Q"
~ LA1E
74LS02 ~
SELO
,.

,-+t____

41

07C1--~F'''-8---H+H-++-+

rrh.

L.!4rOTtt1111rrr--;=======~~__~A~E:£.__J
~
81LS98

~~

50~141~

:.~~

+0

~
~

22

13

421~

4

303

rf.J..

::,,';!," -~II
_~

~

~

~

~

c>-----4r----.T...----<>O
1 co. ...l± C8.
".J.1 J 4.7

'D ••:.
74
3

1

c>---r""--C4-2-r"---"--":
C

+5

2.2K

Q

12

+5

~5

161CwLA~

7404

7~

+6

~

.8p~~

.gJ:31~~

TEST E.~I

~~.

~'4""k'·
')2210 4

rt------,-+5:R5
~WI~ 11K

'"

R26-2

1~

+5

:a'
~ 12
n
7

221Ci

4

2:

L...::4 123 ~,~':
V,

~

-5

"l"

180r

4_5

LM741

A47

R28-11

7408

6 S 21 4 C48
SID --+Lb~
.01
7406
10 ~ ~
5

+..

~fl ~L

'~~PT_ 1~~157
1
FREO
2
8 t-t
C5"~__~.. S 112
t!
sap

7_4_~______'_'____·_~_2

+5
veo
4

+58

~ 1~4 ~

<>-~'!>----!

~:"*

2 a
S 740'
D 7

8MHZ

R;"NQE~Ai?-t ~~~'ift"~ -,§'.....

9

5

6

MR

1

.

R2T
+_5__f_J

_____________________________

I·' J:t.
1"4.7
044

C43

""'0

:3.£]'

1

•

,

,

0.

CLK

• 17!-'·'-"'HW"'--+--+____-'
74LS14
r;:::==:::.....

"'

~:':~!:;
, .,.

3;

~ rl~f-

+5

"4

R34

.

7404 2 D~OQ 6
74a
,..L" r:r:-~
.9
49
,'":,2,
'T
:7:9
:::
R34

9

7404

DIODE

BCD ,

+5

J

J

_
H

13 49

MATRIX

12

3 49

4

------------H--------------'

6

II

6

+6
L...-.,,--

'"

~

6

SiDE

21

::... ""

':~~ ~~~"

12 D20Q'-'.'----.!.~:"'-:Jr--'9·'
11 10
,,74..0 8
9
19
8
: '8
•
"
03.

R2:8

:;:

1K

4

,

~~414B

FI:;

,

:~~

_

3

34

2

_+ C6. +,.
+1Or L";;302

~2
11

037
470

- ~+"N';:8

C61+L.
'Orr

+

~:V~

'N4731\

1

='= ~J:

T

J

8

3

9

...,,8'--__+-"'3'1] 39

:lV7

~'O'

7

+5

'3. 12

~!6

:

~3'>"_-+_---+

...

+'2
R,": LM3302

6

,,36

74LS27 ""

1~.....
..

'0 40

11

+:5"

+6

G40

'----

INTE

SPARE Ie LIST

4.7
IC
1
6
16
17

23
26

1'YPE-FUNCTION
74123- one shot
7486-XOR
74LS02-NOR
74LS14-INV
7408-AND
2.2K Resistors

SECTIONS NOT USED
9,10,11
1,2,3
1,2,3
12,13
1,2,3,4,5,6
4,12,13

CONTRACT NO

THE DIGITAL GROUP
30
31
34
46
49

7404-INV
7432-0R
3302-COMP
7404-INV
7404-INV

12,13
8,9,10
12,13
1,2,8,9,10,11

LAST IC: 49
LAST RESISTOR: R50. R16
not used
LAST CAPACITOR: C75
LAST DIODE: D4

Diii

r __________+~"_1L.:.O"..)O
0 .~
. . . . STEP
~.~

+12

,~

LOAD ,.

A28-'O 7438

r------+~-"~_i1.0'

=

,N4,,0 0'

INTAO

J:.

11
38

+15

c_---..----'L.
__....-__.......2~...~-r----<>: + 58

1

7438

~~m
13
12

RCLK

+6

1~

3
21 38 ~
"WGATE
f!L-'

m.

6

5
'----

R20-11

ItI

-;:=========================~=====~=tt:ttI~~.
~a_\:"""'-MOTOFlON19

r _________

I

12

02+ 6-11

MIN

:

: .... r:. . .

~ °.40 •

I ~rQ1:3 3 7~

7
: '2 0 •
'0 221

A

~

LM318

_'OK

13

+5

_

~

r-k.

120

"

R26-11

~t~l~

,~12I~~e.8K

," '2 16
;
7420
4
• 221.1o~~
. 14

R26-11
10

_.-

+58

~~;

'2 0240 • ":; '~~ ~;:
74 PHAS: 406
COMPARITOR

"ux

+5

R8

+.
R8

"6-1'

YriJ

lbMIN

II

+.

~1 <1

0

~~~ til;-\~-t--------------,
•

-0

+$

2YK

0

MUX

II

EP 7
+5~
,-R.,-OK 10

:

470

f--<>+'. e'9
03t
.0'1"

+0

'''rr.~~LY

9

1

::"rrLT:R
8 r--

120

12~e6

0'8-2

::: s"
~r14
~2__-+____--I'1f--41____---,
,..-.'-f----I------L-------,
~
r+-t-____t---__-"2x"-"Vee"O____++_

DIVIDER
.•~: ~~
5 Db 10 0h~
+5
R9
e DO~
00~I-F"""--,1

R26-S

;4.7 I.'

A.1

"~"V

I ~~8'i------~~===+-_______

27

'\" • ________:..4

B

150

L __

C05

~l-'-'-------------,

,. -

41

"7::~'2 ~

+12

+12

~

1

~

C

''.?,'

~~:.
.~:'

13

~

L

J'

,:~

3

II

"

112 74153

PHASE

R'.-O COMPARIlOR

~

o

rb~

+,

R28-5

rL

• '8 4
ll~I ,t'+~·~~~~~~~L~~Y==dL=d+;:J[[~

120 D41_ 11

~

K

443

HO

7~14

7486

....

RC: f'~"'-:-O-++-H-t------t-t-----+1f-J
CLK ~
HLlf.!':!.j'--+++++-----HI----f-l
vee

4

R14
-f_-,-7~'7.
""TRKO 12
.
'1" ~
--------.J
~
r---f--"0q '0 I 160
'iIDA'TA"17
~ 017
1
Lt+----------------------HH-t--------------------------------+------+-------.......
1~
"..;.5050-fr-'::J READV 8
..
+

• ,-_______________

H~L:D~·~·==[t!11~~~~Jl--J1~~~~--------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
RD

'--_-+_.=...Q7
~

,

R46

+5

~

6

5
~
"
11 ~
t2
5

"'N

V-

T643

Di---------------------+-----------r--+------t-t-r-----+-t--tl-----~~~_L.;.,8/
3 JI-..! os

11

[-h"f"

+

e

t~ 7420

f--M- •
-~2'4

0'
33K

'OCO~~2
r

5 ~
2
3
8
R3
, 555 7
820K

7404

[;d..
rfr~ltt~[~~~~~~~~~~~~~~~~~~~~~~~~jMO~'~OR~O:Nj~~]~~~~~~~Jj~t~~t::::~J:i~[:l::J~:~j~il
~ ~T_.
'~.
;:~ 2".ti'::; ".~~:" ~'. ::
>:

~

~
",---~
____--",A6'--"-o' 1'"
• 0 a'O "0
r4-- 74LS14
~r,-:4-0-4-'0-=::'-1-"-o: E-L~_·____-++t--........-~~-~t=.=-=-=-=--"'R-W~.~--~ II
Ae

I

+5

.IT

r

11 74
0'
'3 r-;=============~
1~r.,.:' It ,OK
R2e.2
r---------------....J
14
+ 15
r-·D'"R"CH"'O.-----------....J
I
,-='-'-"'=-------------"'-{> 4
+.
~123

1

3
~
B33~~.:=+==4't::.2j
8
91 8

~ 47 .r;;-~ ~"·-'TT-71..:=;4'-7.::.~r·---'2.,r"-0
4-;'-'2-,-i~ _____ ~

':

+~

~r:;--t----';','-I7430

A

16
15

I

+s

____________________________________________________________-,

+.

h

ORAWN

APPROVALS

CHECKED

Err
;;f:':w-

DATE

DOUBLE DENSITY DISK CONTROLLER

5/3/79
5/23/79

SIZE I COOE 10ENT NO. IORAWING NO
D

SCALE

090-078-B
NONE

SHEET 1

OF'

7438
•

D53
Ds4

100



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37
Create Date                     : 2013:06:09 17:52:17-08:00
Modify Date                     : 2013:06:09 18:00:09-07:00
Metadata Date                   : 2013:06:09 18:00:09-07:00
Producer                        : Adobe Acrobat 9.55 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:524c80e8-1ca9-2e47-b43a-c522717635cf
Instance ID                     : uuid:bb4f222e-7895-1b47-8d5c-0a551778928b
Page Layout                     : SinglePage
Page Mode                       : UseOutlines
Page Count                      : 119
EXIF Metadata provided by EXIF.tools

Navigation menu