S) 3.0 IO controllers/interfaces
Ok, first FM, MFM, and RLL refer to the data encoding. Almost all drives today are RLL. IDE, ESDI, and SCSI are types of interfaces and the drives that run on them. The descriptions below will contain a lot of techno-babble to most, but the purpose of this is to give an idea how they work and in that capacity the text below should suffice. UPGRADING AND REPAIRING PC'S by Scott Mueller describes this much better as that is the purpose of his book, not this FAQ.
FM, or Frequency Modulation, was the earliest scheme. Known as Single Density by many because of the floppies it was originally used on. This was popular in the 1970's, but with a limit of about 80k it quickly died out.
It is the simplest way to encode zeros and ones. Also to prevent sync errors in long streams of zeros or ones, two transition cells are used per bit. A data cell representing the zero or one and a clock cell representing what amounts to the position or record. In a data transition cell, either a one bit is recorded to indicate a flux reversal or a zero bit to indicate none. The clock cell is used for each bit also. So each time you change bits, the clock cell reverses flux. This works great except for the fact that you lose half your storage capability since each data bit requires two flux reversals, one for the data and one for the clock.
Example of FM Data to Flux Transitions
MFM, or Modified Frequency Modulation was created to reduce this overhead and compact more data into the same space. This was done by reducing clock transition cells. A clock transition cell is only recorded if a zero bit is preceded by a zero bit. This amounts to twice the efficiency and is why MFM became known as Double Density (as did the disks which were originally formatted this way). It is still used in almost all PC floppy drives today. MFM is also twice as fast as FM.
Example of MFM Data to Flux Transitions
RLL, or Run Length Limited, is today's method of choice. RLL stores 50% more data than MFM and three times the data of FM. In RLL, groups of bits are taken as a whole and combined to generate a pattern of flux reversals. By combining the clock and data cells into these patterns, the clock rate can be increase while keeping the same distance of transitions on the disk.
RLL was invented by IBM first for mainframes, but by the 80's this technology
flowed into the desktop PC's of the day and is still a viable encoded scheme.
RLL gets its name from the two main functions of the patterns stored.
One is the minimum number (the run length) and maximum number (the run
limit) of transition cells allowed between two actual flux transitions.
Using RLL 2,7 as the example, the numbering scheme is based on the fact that there can be as few as 2 and as many as 7 transition cells separating two flux transitions. Also, FM and MFM can be referred by RLL naming conventions as RLL 0,1 and RLL 1,3, respectively, however when they are discussed it is still by there original FM and MFM names.
Example of RLL 2,7 Data to Flux transitions
Example of the character "X" (01011000 in binary) showing the actual
way it is encoded on disk.
Also there is a new encoding scheme called PRML, Partial-Response, Maximum-Likelihood that compacts data a further 40%. This uses DSP technology to clean the signal of noise and allow data to be stored closer together, whereas the other three still have the same density of flux transitions.
Now on to interfaces. There are a few: ST-506/412, ESDI,
IDE, and SCSI as well as the variations of each (SCSI-2, ATA-2, etc).
The interface transmits and receives data to and from the drive.
Only the ST-506/412 and ESDI are true disk-controller to drive interfaces.
SCSI and IDE are system level interfaces usually containing ST-506/412
or ESDI internally. SCSI adds an
ST-506/412 - developed by Seagate back around the beginning of the 80's and is named after the 5MB ST-506 drive and 10MB ST-412 drive originally attached to this interface. This was the interface of choice for almost all drive manufacturers during this time period. Also interestingly enough all drives using this interface were plug-and-play as long as the BIOS on the system board supported the drive (when the IBM AT was introduced IBM removed the BIOS off the ST-506/412 interface and included it into the IBM AT system BIOS). This interface is obsolete by today's standards, though it endured a long time for an interface designed around a 5MB drive which at the end of its life was connected to drives as large as 233MB! Using two Drive Select (DS) channels you could have up to two drives attached to this controller, DS1 was the C drive and DS2 was D.
ESDI, Enhanced Small Device Interface - developed in the early 80's by Maxtor to succeed the ST-506/412 standard and provide more performance and later adopted by ANSI. Offered enhanced reliability by incorporating a ENDEC into the drive. Capable of 24 megabits/sec, though limited to 10-15 megabits/sec by almost all drives. ESDI drives were not always compatible with other ESDI drives due to implementation deviations between manufacturers and this opened the way for the IDE standard which though slower was much cheaper to produce.
ESDI also allowed for automatic drive configuration and defect mapping (sometimes). Also mostly compatible with the ST-506/412 interface in that if the system supported one, it usually would the other. Sometimes additional software would need to be run (for auto defect mapping as an example).
IDE, Integrated Drive Electronics - a generic term for any drive with built-in controller electronics. Though more often applied to ATA (AT Attachment) drives and is an ANSI standard. These were originally exclusively Hardcards where a small 3.5" ST-506/412 or ESDI drive was mounted directly to the controller card. More reliability due to the lack of ribbon cables and reduced noise.
Although the IDE cable ports are on the motherboards of today's computers, the actual controller is still in the drive. The port is only used to connect the controller to the bus and is actually a 40 pin subset of a 98 pin ISA slot. Having the controller built-in to each drive is why many times IDE drives don't work together. Both controllers compete to be the Master despite assigning it a Slave status sometimes. The usual workaround is to use IDE drives by the same manufacturer and also of the same specification.
PS/2 content: in 1987 IBM offered IDE drives for MCA machines called MCA IDE (a 16 bit device like ATA IDE). These were connected to the bus thorough an interposer card and needed only a few buffer chips and almost no circuitry which is why they are referred to as paddle boards by many (game paddle/joystick boards have very little circuitry also). An 8 bit variation made it into the non-Microchannel Model 30 similar to XT IDE.
IDE drives offer the highest performance at any cost for a single user, single tasking operating system.
ATA-1 was introduced in 1989 and ATA-2 (EIDE by Western Digital and Fast-ATA and Fast-ATA-2 by Seagate and Quantum) in 1995.
ATA-2 allows for drives larger than 504MB by translation (basically altering the perceived geometry of a drive to other programs which cannot handle more than 1024 cylinders. A 2000 cylinder drive with 16 heads would be translated as a 1000 cylinder drive with 32 heads). Translation methods rely on an enhanced BIOS and are known as Standard CHS (Cylinder Head Sector), Extended CHS or Large, LBA (Logical Block Addressing).
It also allows faster data transfers with PIO (programmed Input Output) modes. Mode 0 has a 600ns cycle time and limits transfers to 3.3MB/sec. At its best ATA-1 had a 240ns cycle time and transfer rate of 8.3MB/sec. With ATA-2 in PIO mode 3 with its 180ns cycle time, transfer rates go to 11.1 and with mode 4 and a 120ns cycle the rate is 16.6MB/sec. This implementation requires the port to be a local bus port (VLB or PCI). Also despite support for two drives usually only the primary can support up to mode 4, the secondary is actually connected through the ISA bus and is limited to mode 2.
DMA (direct memory access) can also be used to exclude the CPU from the drive to bus transfers using the system boards DMA controller to handle the transactions. Busmastering DMA controllers use their own DMA controller to handle this and because of the extra complexity it drives up the cost. DMA is never used efficiently with an ISA bus, but with today's PCI boards speeds of 33MB/sec are now common.
SCSI, Small Computer System Interface - not really a disk interface, but a system-level interface. SCSI is a bus that supports up to eight devices. One of these is the host adapter and the gateway between the SCSI and PC buses. The SCSI bus does not talk directly to the devices either, but to each devices controller built into it (Most SCSI drives are actually IDE drives with SCSI bus adapter circuits added. Each device is given a SCSI ID. Up to 4 host adapters can be supported by most systems and with each able to control 7 other peripherals that gives a total of 28 devices. Some newer SCSI implementations can support 15 devices per bus.
The SCSI standard like ESDI is a hardware standard. It does not specify how communication is to be handled and as a result some SCSI devices are not compatible with others. Scanners and some CD-ROMS fall into these category as they do not include the BIOS for self-booting hard drives.
There are several implementations of SCSI.
SCSI-1 included many features and commands, but listed them as optional so many were not used causing incompatibility galore. SCSI-1 was limited to 5MB/sec transfers. SCSI-1 devices were 8 bit.
SCSI-2 fixed this by requiring 18 commands to be coded, a Common Command Set (CCS). SCSI-2 also brought support for CD-ROMS, tape drives, and other devices. There was Fast SCSI-2 and a 16 bit version called Wide SCSI-2.
Fast synchronous SCSI and Wide SCSI were an optional specifications
and raised the transfer rate to 10MB/sec when each was used by itself.
However, fast and wide can be combined and raise transfer rates to 20MB/sec.
There was also a 32 bit specification defined, but was not implemented
as being too expensive.
Open the computer and check the model number of the drive and contact the manufacturer is the only way to be 100% certain in many cases.
That aside, the first thing to check is the number of pins on the drive's connector(s) and how many cables you have. The second thing to check is the CMOS setup, assuming, of course, that it is in a working system.
ST-506/412 = two or three cables (1 drive or 2 drives): two 20 pin, and one 34 pin if two drives are connected (do not attempt to connect an ESDI drive to these cables, although it will attach the signals are different).
17 (MFM) or 26 (RLL) sectors per track. One 34 pin cable is daisy-chained between up to two drives much like floppies, though due to different twist in the cable they are not interchangeable. Many of these interfaces include a provision for connecting floppies though.
A terminating resistor is used if only one drive is connected.
ESDI = 2 cables: 34 pin and a 20 pin (as stated in the ST-506/412 section both the 34 and 20 pin are identical in looks to the cables that are used with the ST-506/412 interface, but do not connect a MFM or RLL drive to this interface). usually set up as type #1 in the CMOS and auto-configured at boot time 32 sectors per track or more and almost always 1:1 interleave giving up to 1MB/sec transfer capability.
IDE = 1 cable: 40 pins with three pin-header style connectors on it. One plugs into the IDE interface connector and the other far end into the primary drive (usually...sometimes this is the secondary), followed by the secondary being connected in the middle (again it is possible the primary is in the middle).
Sectors, heads and tracks are variable.
SCSI-1 = 1 cable: 50 pins
Aftermarket controllers use the standard HPDB50 pin or the Apple SCSI connector for external drives. usually set up as "not installed" in the CMOS
IDE: (Assuming the user has determined that the Master/Slave arrangements are correct). IDE drives of different makes may just be incompatible, likewise occasionally different models of the same manufacturer are. Try two identical drives, swapping master and slave, or trying a combination of a third drive with any of the other two and the problem should usually cease.
SCSI: (Again assuming the user understands how to configure a
SCSI adapter). If using SCSI-1 spec drives, there just may be incompatibilities
between them, try another drive preferably of the same manufacturer or
better yet an identical drive. With later SCSI specifications, chances
are something is not terminated or ID'd properly. Try changing the
Simply pull it in and boot with the reference disk and viola. Of course it is never this easy. Occasionally some controllers are incompatible with one another and it is impossible to get them to work together. For this reason try to keep controllers identical (use the same manufacturer at the very least).
W9x does NOT support shared interrupts (WinNT can). IBM made ALL it's drive controllers so they used IRQ14 ONLY. Hardwired. So any multiple IBM ESDI or SCSI controller installation will cause an IRQ sharing situation. Thanks, M$!
Again like the MCA versus ISA/EISA/VLB/PCI debate. There is what
is better in theory and what is better in real life. ESDI is a dead
standard with much faster and larger capacity, cheaper IDE drives out there,
though it had the possibility of being the fastest. Unfortunately
in the PS/2 arena you usually can't chose IDE which with the newer versions
offers almost all of the speed
The PC is limited to two drive controllers total. SCSI, however,
is a "host adapter" and not a drive controller. To the rest of your
system, it appears more like an Ethernet card than a drive controller.
For this reason, SCSI will always be able to coexist with any type dive
controller. The main drawback here is that on most systems, you must
boot off a disk on the primary drive
MFM and RLL are the methods of writing the data to the disk and as such almost always exist together (MFM for the floppy drives and RLL for the fixed disks).
Er, usually, no. What happens on the IML systems (POST and BIOS
on hard drive) is that the IDE controller is seen first (IO address, cannot
be "fixed"). The system cannot find the IML information and chokes.
On flash based systems (Type 4 complex, all 9585, 76/77
Lacuna based) you can
The main difference between SCSI and SCSI-2 is the command set. All versions of SCSI are downwardly compatible. On power up, the SCSI host adapter and each device(separately) determine the best command set and the speed that each is capable of.
SCSI-2 controllers usually have a higher drive to controller transfer speed of 10MB/s (called Fast) and can also be 16-bits wide (called Wide) vs. the 8-bit of SCSI-1 controllers. Fast and Wide can be combined into a "Fast/Wide" which means 16 bit transfers at 10MB/s for a 20MB/s transfer rate.
Adaptec AHA-1640 5MB/s
For more information on this, refer to the comp.periphs.scsi FAQ.
[From: firstname.lastname@example.org <Helling Bernie>]
FORMATTING A NON_IBM ESDI DRIVE FOR A PS/2 80.
Well, it might have been impossible for me to put a simple MFM hard
drive into my model 80 PS/2, 4M, model 8580-111, but I did get a NON-IBM
ESDI drive installed, using a PS/2 ESDI
First: a rumor that the following PS/2 80's LIKE MFM and ESDI: 041,071,111,311
1) In dos, go to your ref disk, make a directory called SPARE, copy
LLFORMAT.COM to it (nice safe backup copy)
Now follow this, paying attention to my comments...
The reference-disk comes with a program to low-level-format a hard disk: LLFORMAT.COM; boot from the reference-disk and press CTRL-A in the main menu to get a menu for extended diagnose. To low-level-format a non-IBM-disk, you have to patch llformat.com with debug as described below.
LLFORMAT.COM doesn't format a non-IBM-hard disk, because there is a defect-map (info about defect blocks) on the cylinder before the last on IBM-disks. But llformat.com only calls a BIOS-routine via INT 13h, where one can set a flag to ignore the defect-map (set bits 0,1 in CL-register)
Here is the reference for the BIOS-low-level-formatting-routine:
AH=1Ah ; format ESDI
PATCH FOR LLFORMAT.COM:
> See that CX= number? I am a complete newbie at DEBUG, but it has something to do with file length and position on the floppy. Write yours down....
-s100 8295 b4 1a b0 00 8a ; search formatting-routine
> See how it appears, again, incremented a bit (8195 => 8295)? do this to your number in its place. Use HEX! so an E =>F etc.... Lord! I am debug clueless eh!
2B78:8272 ; the byte sequence is found twice
> You, of course got different numbers... write em down...
> do this with your first number, the second part, of course... Your XXXX:XXXX numbers will be different, but the rest will make sense, note that the screen will line up the numbers in nice columns, not exactly as shown below...
; now debug shows this:
>>>>>> Don't get antsy! just look, the -u means show next
2B78:8292 CD13 INT 13
>>>>>> Now the scary part: -e for edit... unless you -w
-e827B ; <---- insert address of the first
byte that must be changed
>>>>>> USE your first change address number. The screen is
-e828D ; <---- insert address of the second
byte that must be changed
>>>>>> One more time! Use -u to check both, then:
-w ; save the patched
>>>>> Your mileage may vary...
-q ; that's it
2) Install ESDI drive. Drive was previously set up to work with an ISA
card, a DTC, I think... Cabling is similar to an MFM drive, drive 0 gets
the middle, no twist wide cable plug, and
Run auto-configuration, restart, computer sez to test the drive...DON'T BOTHER.
3) Press CTRL-A instead, choose format the drive, DO IT.
4) CROW! Yehawwww!
Now, to try and get a second ESDI drive set up as D: Hope this can help some others, Just trying to get the info out where it can keep the old beasts going...
Uh, yes, but... AS/400 systems use 520 bytes per sector instead of the common 512 bytes per sector. You need a small program called "520to512.exe"
No, only for the controller. This question has come up a lot lately. If you are having problems getting a new drive to work with a existing working SCSI setup, call the drive manufacturer and try not to tell them it is a PS/2. Also refer to some of the earlier SCSI questions about problems that arise (switching drives around works many times). Most tech support people have heard rumors that PS/2's need reference disks for everything and that they are incompatible with everything. So they either tell you to get the reference disk (usually from IBM as if they support third parties ever) or that their drive is not compatible with PS/2 computers. I would also call the SCSI adapter manufacturer (assuming they are still around and supporting it) for clues. Remember setting up SCSI drives can have a lot of variables, keep checking for proper ID, proper termination, and the like.
When shopping for a SCSI controller card, I would recommend either the Adaptec 1640 or the Future Domain MCS-700 (or the MCS-600 which is the same except uses an Apple type DB-25 external SCSI connector instead of the standard 50 pin. Both use the 50 pin connector for the internal drives).
The 16550 is a UART with two 16 byte FIFOs. A UART is the part of a serial port that takes byte-wide (characters) data and converts it to bit-wide (serial) data, and visa versa. The FIFO is a buffer which can hold characters until the CPU is ready to remove it or until the serial line is ready to transmit it. The 'normal' UART in the PC (the 8250 or 16450) only has 1-byte FIFOs. The additional 15 bytes can be useful when the CPU is busy doing other things - if the CPU isn't able to remove data fast enough, it will be lost. The OS or program has to explicitly support 16550 to make full use of its advantages.
A very important thing to note is that under DOS, the CPU doesn't have
anything else to do, so the 16550 is wasted. Only under multitasking
operating systems does it really become useful. The 16550 will *not*
make your file transfers any faster, it will only prevent data from being
lost and relieve your CPU of some overhead. If you notice system
performance dropping like a rock when file transfers are occurring, a 16550
may be helpful. If you see re-transmissions (bad packets) or "FIFO
overrun's" during file transfers under a multitasking OS, try the same
thing under DOS - if the errors go away, then chances are a 16550 will
be useful. If they remain, then
PS/2s without the more modern 16550A UART are usually limited to lower data rates (not because of the 16550 UART but because the other UARTs are slow). Usually 14.4k max with no compression. The PS/2 models and type of UART are listed below.
From: Aron Eisenpress <AFECU@CUNYVM.CUNY.EDU>:
Four types of serial port controllers have been used on the system boards of PS/2's.
To programs, the Type 1 controller appears to be identical to the serial port on the IBM Personal Computer AT IBM Personal Computer Serial/Parallel Adapter.
The Type 2 controller incorporates all functions of the Type 1 and also provides support of the first-in-first-out (FIFO) mode.
The Type 3 controller incorporates all functions of the Type 2 controller and provides the Direct Memory Access (DMA) mode.
The Type 4 controller incorporates all the functions of the Type 3 controller and provides additional I/O addresses.
For type 1 and type 2 controllers data speed should not exceed 19.2kbaud. Type 3 and type 4 controllers support up to 345.6 Kbaud.
Below is a list of the type of serial controller used in each model in the Micro Channel PS/2 line: (Note, these are IBM's published times. I have been advised by Mark Seecof <email@example.com> that any PS/2 with the 16550A (including the 16550AF) is capable of over 19.2 Kbaud as long as the software supports it).
Type of Serial Port Max Speed
IBM uses a proprietary chip instead of the 16550 UART in PS/2's. The serial port controller in all of the above PS/2 models (except the PS/2 models 55 and 65) is compatible with the National Semiconductor NS16450 serial port. The serial port controller in the PS/2 models 55 and 65 is generally compatible with the NS16550A serial-communications controller.
PS/2's with Type 2, Type 3, or Type 4 serial port controllers support the first-in-first-out (FIFO) mode. The exception is the PS/2 model 50 with a Type 2 serial port controller. According to the PS/2 Hardware Interface Technical Reference - System Specific Information, model 60's and 80's with Type 2 serial port controllers do support FIFO mode.
[incomplete please help me obtain the UART data on the other PS/2s.
A good program is Snooper v3.30 by Vias and Associates for $39 available
as shareware on most BBSs and internet ftp sites, please register if you
decide to keep it]
In general, it is better to go with an external modem for two reasons. First MCA slots are valuable commodities in most systems (i.e. Model 50s with only 3 slots) and secondly, an MCA card modem will be a lot more money when a standard external modem will work fine. Also an external modem provides visual clues to tell you what is going on with the data.
Sometimes internal is the only way to go though. The Windsurfer Adapter with its 14.4k data modem, 9600 FAX and telephone answering/voice mail is only available internally, however, this is not such a waste of a MCA slot as you are getting several products on one card. I believe in its last incarnation (it has been discountinued) some versions were 33.6k capable which is still ok for many.
There are a few believe it or not. Though new they cost around
$150 which is a little steep these days for a sound card with SoundBlasters
selling for $30. Kahlon computers at www.kahlon.com and 800-317-9989 offers
one for $125 (though I am not sure who actually makes it). The original
was the SoundBlaster MCV which is an 8 bit card and probably should be
avoided due to the problems it has with compatibility. The SoundBlaster
Pro MCV is a 8 bit card which supposedly works better, yet both SoundBlasters
are no longer made.
Here is the specs to the Piper Card:
Piper Research, Inc.
16 bit stereo sound card. Records, compresses and plays back voice, sound and music with computer controlled mixer settings and Yamaha OPL-3 based FM synthesis. In addition, connections are provided for CD-audio, line-in, dual joystick, MIDI and speakers. Other key features include:
o Micro Channel Architecture compatible
o 4 Watt Stereo Amplifier
32 bit stereo sound card. Records, compresses and plays back voice, sound and music with computer controlled mixer settings and Yamaha OPL-3 based FM synthesis. In addition, connections are provided for CD-audio, line-in, dual joystick, MIDI and speakers. Other key features include:
o Micro Channel Architecture compatible
o 4 Watt Stereo Amplifier
3D Sound for SoundPiper 32. Adds Spatializer(TM) two speaker surround effect with three levels, independent bass and treble, MUST BE ORDERED WITH SoundPiper 32 as it cannot be bought separately.
The SoundBlaster and Piper Cards are industry standards and thus offer
the most compatibility in most games Piper uses the SoundBlaster Pro Chip
from ESS. Most these cards may cause problems in the Windows environment
as they were developed before Windows was around, however for DOS games
the SoundBlaster Pro is THE card to have. The Audiovation/A and the
others only emulate a SoundBlaster using Mwave technology which is THE
thing for WINDOWS.
A perfect example is OS/2 drivers. Although each sound card in this comparison has "16 bit" record/playback hardware, some cards use the "SoundBlaster Pro MCV" driver shipped with OS/2 Warp. This driver only supports "8 bit", not allowing "16 bit" files to be recorded or played.
AGENCY APPROVALS - YES means can sell and ship to those countries
Also see Appendix F for a full listing of PS/2 Sound Cards.
[Jacques@cpmc.ucl.ac.be (Alain Jacques)]
If you have difficulties, don't hesitate to email to me. BTW, there are new Audiovation Windows drivers on IBM PC Co BBS (i.e. version 2.1 = av211.dsk, av212.dsk, av213.dsk, av21util.dsk).
See Appendix C for Program listing.
Well unlike the standard IBMs and clones, PS/2s perform a keyboard test at boot. Some have the option of canceling the keyboard test through a setting in the reference disk. If you do not have this option you must leave the keyboard attached (or if you have the engineering experience doctor up a small board that sends the proper reponses to the test back and can plug into the keyboard port :)).
Or use this device below reported by Louis Ohland <firstname.lastname@example.org>
Guardian for PS/2 -- APKME
The Guardian plugs into the keyboard port and mouse port, and appears to the computer as its physical keyboard and mouse. Since Guardian behaves like a keyboard and mouse, the computer will boot and run flawlessly.
Guardian is powered by the computer and provides ports so you can "hot" connect a keyboard and mouse anytime to operate the system. Using Guardian with PCs connected to a mechanical A/B switch will eliminate PC booting and keyboard locking problems.
With Guardian in line, you can hot connect or disconnect MasterConsole
cable or a physical keyboard and mouse. For mission-critical servers connected
to Raritan's MasterConsole, Guardian provides a "fail-safe" service port.