Page 2 of 2
Re: Anyone interested in an XT MFM controller
Posted: Mon Jan 24, 2011 5:13 pm
by jmetal88
Hmm, so would that BIOS work with one of these, do you think?
http://www.recycledgoods.com/products/W ... -card.html
That's the one I have. Got it free in a bunch of old parts from one of my dad's friends.
I might have to get cracking on trying to put together a PC-Bus adapter soon.
Re: Anyone interested in an XT MFM controller
Posted: Mon Jan 24, 2011 6:31 pm
by MattCarp
I'm afraid it doesn't work with that card. Only the IBM Fixed Disk Adapter.
So, on the controller card is the BIOS chip which of course is a ROM chip extends the built-in BIOS on the PCjr by adding standard hard disk functions accessible through software interrupt 0x13. The controller receives calls from the operating system and the software on the BIOS then carries out the operation with program code specific to that controller hardware.
The BIOS re-write that Joel Smith did was specific to the IBM XT Fixed Disk Adapter, which was actually manufactured by a company named Xebec (a controller company founded in 1974 which was bought by either Seagate, Maxtor, or Western Digital in ???). The card was also sold to the general market as the Xebec 1210 and at least one other PC manufacturer (Zenith!) but was never as commercially successful as the Western Digital or DTC controllers which could support many, many more drive types. The Xebec controller could only support 4 drive types which were set and preprogrammed at the factory. So, you could choose among the four types in the controller's ROM. In fact, on the IBM versions of the board, I don't think the jumpers/DIP switches were there that allowed a selection. The controller always used the fourth drive table entry, which, was the hard disk drive IBM sold with the XT.
A couple other comments about this controller: it was actually a single board computer that did the work on controller up to two hard disks! If you look at the actual controller, you'll quickly find a Z-80 CPU. That somewhat explains the size of the card - it used a general purpose microprocessor and then required support circuits and logic to both interface with the PC and the hard disks themselves. Finally, the controller itself is slow. For a PCjr that's okay, but as alluded to earlier in this thread, it can only support a 5:1 interleave.
[Interleave? The hard disk tracks at the time had 17 sectors per track (I think). The early controllers weren't fast enough to read the sectors as fast as they spun (3600 rpm?), so when the drive was "low-level formatted" the sectors were numbered such that the second sector actually skipped 5 sectors to provide a delay that would match the speed of the controller. Otherwise, the disk would have to spin completely around to get the next sector. At 5:1 interleave, the track could be read in 17/5, or just over 3 revolutions. 5:1 was slightly faster than the interleave the XT actually shipped with, which was 6:1. Ultimately these translated into data rates of about 85k (6:1) and 100k/sec (5:1)].
Finally, the 1210 controller itself appeared in at least two versions. The early version had the chips laid out horizontally, then a later version appeared with a few more application specific IC's (ASICs) that consolidated some of the functions of other chips on the card. The same seller has both versions for sale. I'm not sure about this, but the early version with all the chips may only have been sold by IBM. The modification works on both controllers.
Here are the two listings:
Old version:
http://cgi.ebay.com/ws/eBayISAPI.dll?Vi ... 0753678311
New version:
http://cgi.ebay.com/ws/eBayISAPI.dll?Vi ... 0753690389
Re: Anyone interested in an XT MFM controller
Posted: Mon Jan 24, 2011 6:43 pm
by MattCarp
Brutman wrote:However, the first line of his forum posting announcing his success was:
"Wheeeeeeeeeeeeeeeeeeeeeeeeeeeeeew! Look at that PCJR go!"
That was dated June 23rd, 1986. ... He first asked about the feasibility of the project on June 5th. (That's pretty short period to go from start to finish.)
And of course, it was well received and it generated a lot of interest.
Very interesting, Mike. I guess it was a bit of a skunk works project. With the XT Tech Ref that included the BIOS listings, he simply found the code that transferred the data to/from the PC and rewrote it.
Perhaps it only matters to a very few people, like me, who struggled to expand a platform which could have only been temporary from the beginning - but, could you imagine what would have happened if the modification was made public? Or, if a product were developed and sold based on it? Then again, I guess at the time, a fixed disk and a controller was at least $1000. A typical PCjr customer would never peel out that much to do that. Instead, I guess you'd just put a down payment on a $4000 XT!
Re: Anyone interested in an XT MFM controller
Posted: Tue Jan 25, 2011 7:24 am
by Tempest
Wow, and just yesterday I was wondering if there was a way to add a hard drive to the jr. How is that for timing? I'm very interested in seeing where this goes. Will it be possible to boot from the hard drive or will it only be possible to access it after loading a DOS from disk?
There's an old IBM XT with a hard drive here in the lab where I work (don't ask) that they're going to throw out soon. Would it have one of these BM XT Fixed Disk Adapters or is that only for external hard drives? I was going to save it anyway, but if there are parts I can scavenge for my PCjr all the better.
Tempest
Re: Anyone interested in an XT MFM controller
Posted: Tue Jan 25, 2011 11:19 am
by southernbob
Hi Matt,
The XT diskcard BIOS change was never an official IBM product in development. It was done by Joel
on his own time and was made available internally on the PcJr forum. He was an Engineer/Programer
that I think worked in the Diagnostic Program area. In those days hundreds of people were developing both
programs and hardware changes for the Jr on their own time and making it available internally to
any IBM'er who want the program or hardware description. The biggest problem I had was burning
the EPROM but found someone with access to a burner and they did it for me (of course it was done
during their lunchtime). My contribution to the Jr forum was a speech program which told the time
at selected intervals using the Jr Speech sidecar and the vocabulary build into the speech BIOS.
Some years later after I retired I did some mod's to sound the Westminister chimes at the 1/4 hour's
and bongs on the hour plus some other changes. Someday I will write more about that program
and the other speech programs I did.
While I was making the BIOS change, I had talked to Joel on the phone several times, and sent him some
comments on his documentation. I had one occasion to meet him in person. I had just transferred
to the PC area and was working on a system where my job was to interface (software) an OEM
co-processor(forget the name but it was a well known co-processor) to an IBM developed
processor. Anyway, all the people that had an interest in the system were gathered to do
a "system build" on a Friday night. There were testers making sure the code all worked
by running the new "build" on several system. One of the testers came in and told me my
code was causing an error on one system. By that time it was the middle of the night and
I am not a "night person" so I went to look at it. Luckily I had some really smart programmers
to help me out since I was new to "PC land" and not really a programmer and we found the problem.
I had added some code to test for a condition that never should have occurred and it
looked like the IBM processor was causing the problem not my code. The manager in
charge of the build said "take it out" so the build could be completed. While they were rerunning
the new build I met Joel Smith. We talked for awhile and then I jokingly told him that I
hadn't been this frustrated since I built his "harddisk mod for the JR". But then I told him
that I was just kidding and that I loved his project as did alot of other IBM'er. Several
days later I tried to re-create the problem on several systems including the one that had
the error, but could not make it happen. It only occurred on the one system in the middle
of a Friday/Saturday night. The Engineer in charge of the IBM processor said he would
have his guys look at the problem since I thought it was the processor causing the
problem and not my code. I asked him several weeks later if he had a chance to look at the
problem and he said they had and it was a timing problem in the processor.
Well, that is my "war story". I had alot of people mad at me for making them stay to 6AM
on a Saturday morning.
Re: Anyone interested in an XT MFM controller
Posted: Tue Jan 25, 2011 11:42 am
by southernbob
Here are some pictures of my 2 system with hardfiles
Re: Anyone interested in an XT MFM controller
Posted: Tue Jan 25, 2011 12:08 pm
by southernbob
Here are some cards and a short description of them that I made for the JR.
I have to just copy the description here as it won't let me upload a TXT file.
You wanted to know more about the cable I used to extend the I/O channel
and what the cards I made, did.
The cable is s 'stock' cable (56 pins vs 60 pins on the I/O Bus). I made
no modification to the cable except to trim off some of the excess plastic
on the connector sides so that I could plug it in. The cable started to come
apart with the trimming so had to epoxy the ends to keep it together. I don't
know what this cable was used for, I found it in my box of cables. There are no
termination resistors of any kind. From the picture you can see that it
goes into a twisted pair. These are just the signal wires being twisted
no ground/signal twist. However, there are alot of 'shield gnd' wires
on the expansion connector so some of the wires would be signal/ground.
I never thought it would work, but it did. If it
didn't work,I was prepared to go with a shorter cable to the prototype
card. Then plug the prototype card into the 3 connector block and use
the driver card/thick cable/receiver card combination as on my original
one I built many years ago. The driver card would plug into a slot on
3 connector block, then the cable would go from the driver card to the
receiver card which would be plugged into the 8 slot board.
I hope this answers your questions, if not ask again.
Here is a brief description of the cards I built. I left the enclosed
picture in the 'big' state (no reduction in size) so that the cards
would have more detailed.
1. A COMBO card, designed by several IBMer's. Purchased many years ago.
Has 4 - 5 functions included on the PC board. I just used the serial
port function. I had to add the modules to the PC board.It goes in
the modem slot. This gives a second serial port.
2. Voice recognition module/card, purchased card, external to system
powered by 9 volt battery for now. (see 3 below)
3. Card built by me. Goes into the modem slot has a 82C55 module on it.
The voice recognition module plugs into 1 port on the 82C55. 2
other ports avaiable for other 'stuff'. This needs a program to
read the 8255 port and determine if a 'recognition' has occurred
and then do the action for that 'recognition word/phrase'. I wrote
a short program to be able to do a couple of actions, needs alot
more work. I used generic terms like Action 1, action 2, etc when
I trained the module. This allows changes to be made to the
program to add different actions instead of re-training the module.
4. An extender card for the cartridge port. Card 6 and the larger card
in group 7 plug into the cable end. Has all the channel signals
available at pins on the top of the card for debug (scope points).
5. DTMF decoder card. The outputs of the 8870 module (DTMF decoder)
goes go to a 74LS154 module which converts the 4 signals coming out
of the 8870 to 16 outputs which go to a terminal block. A wire that
plugs into the terminal block goes to an LED. The wire can be moved
to each position on the TB to check all 16 DTMF tones (LED lights).
I wrote an assembly program to be able to generate all 16 DTMF tones
by pressing a key (1, 2 ,etc)on the keyboard. The input wires connect
to an audio amplifier to boost the signal from the JR.
6. This is a 128K flash memory or 128K static RAM test card. It was used
to be able to RD/WR to the entire 128K of cartridge space first with
a Flash module and then modified later to test the 128K static ram module.
It used jumpers and logic to generate the -CS, -OE, & WE and some address
signals since these were not available as cartridge signals.
7. These are my original 'start cards' to test whether I could use an
EEPROM (and later a Flash module)as a cartridge module and be able
to WRITE and READ to/from cartridge space. These had small 8K module,
then 32K moules and then 64K modules.
To be able to write to
cartridge space required a motherboard mod. You may be able to see
a white blob right behind the cartridge covers in the full system picture.
This is a 2 module mod to be able to write to cartridge space. I have since
come up with a 1 module mod which I haven't tested yet.
8. This is a record/playback audio board which was to plug into the cartridge
slot. When I had problems with the connector I had to rewire to use
the extender cable. I could never get this working but not because
of any JR problems. It was supposed to be able to work in stand-a-lone
mode (from the switches) but could not make it work. Will try again
some other time.
9. This is the RTC with 128k static RAM with battery backup (in the module).
This plugs into a cartridge slot and has 128K of R/W memory in the
cartridge space (D000 & E000 segments). To make it a true R/W card
I had to 'import' some signals from the I/O expansion BUS and make some
motherboard 'cuts'. By doing this I was able to get rid of the jumpers
and most logic seen on the early cards. To use the RTC I had to change
the clock program since this module uses a different format (to access
the clock internals) than the SmartWatch module. This memory can be used
to contain cartridge programs and/or as a RAM Disk.
10. This card plugs into the printer sidecar connector to be able to
connect signal wires and use the bi-directional printer mod as a binary
IN & OUT port
Re: Anyone interested in an XT MFM controller
Posted: Tue Jan 25, 2011 4:41 pm
by MattCarp
Bob- thanks for the war story!
That's quite a collection of mods (I like the DTMF decoder!), but please tell us - when are you going to give us USB?!
Tempest- The XT's standard hard disk and disk controller is what we're talking about. If it's stock, it'll likely have most of what you need (the controller and a drive). You'll need to build a cable yourself, similar to the one Bob describes, which, will test your patience and wiring skills! Finally, you'll need a specific EPROM chip and have it programmed, which this group can assist with.
Re: Anyone interested in an XT MFM controller
Posted: Wed Jan 26, 2011 10:49 am
by southernbob
Matt, that was a good refresher discussion on the why INTERLEAVE is inportant and how it works.
I thought YOU were working on USB for your "do-everything-card".
Mike B. should be able to help. If he can do all that "networking jazz", USB should
be a "walk-in-the-park" for him. I don't have the patience or the mindset
to get into all those compilcated things anymore, so it is up to you and Mike B. to do that. Also,
in your spare time why don't you come up with a scheme to put DOS in a ROM and be able
to boot DOS from that. I had a go at it but was never able to get it working. It is very hard to
debug something like that without an ICE (In-Circuit-Emulator). The only way is to try this
and then try that. The scheme I was trying probably would never have worked. Anyway, I
was looking at this site as a possible solution but never followed thru on getting their 'stuff''.
http://www.datalight.com/products/rom-d ... er-version
Mike, how do they troubleshoot hardware/software these day? I can't imagine
how they troubleshoot "Watson" (the IBM computer playing on the TV program Jeopardy).
Bob