help with floppy controller

289 views
Skip to first unread message

Stéphane Pitteloud

unread,
Aug 23, 2024, 5:18:34 PMAug 23
to Altair-Duino
Hello, I need a little help to get floppy images or real floppies to work with the floppy controller. No matter what I do, I only get O's on the screen when the boot starts. I think this means that the Altair simulator doesn't recognize the floppy disk format.

There's an exception which allows me to boot the (boot)dos.dsk file found on deramp.com in minidisk format. This is the one and only floppy disk I can boot.
I tried with a real 5 1/4“ floppy drive and with a gotek, in minidisk mode and in 8” mode.


to sum up :
what works :
controller with ROM MITS configured with only jumper 3 up, dip switch 1 and two up (to simulate a minidisk and use the floppy in drive 1, as I have a straight cable), I can pass the (boot)dos.dsk image onto a floppy and boot it.

What doesn't work: all other floppy images, put an image from deramp.com or directly from the SD card on the gotek (dip switch 1 on low to simulate an 8” drive). The gotek displays an error 37. I tried to create an HFE using the HxC software from the DISK01.dsk image on the SD card, without success.

The only thing I haven't tried yet is to use a high-density floppy disk for the 8-inch mode, as I don't have one to hand. My 5 1/4” floppy drive is a high-density one.
In short, I've exhausted my knowledge and I'm a bit lost.

da...@hansels.net

unread,
Aug 23, 2024, 9:57:24 PMAug 23
to Altair-Duino
I don't know much about the Gotek but the MITS disk format is a very unique format not used anywhere else
and very different from all the other more well-known disk formats.
The *.dsk files do not contain low-level (flux-transition) information, just the high-level data bytes stored in
each sector. So unless the Gotek itself knows how to emulate the very unusual MITS disk format I don't
think you'll have much luck with that.

Regarding the real disks: how are you transferring the .dsk images onto the disks? Are you using the monitor built
into the disk controller? Or Mike's PC2FLOP tool? Some other way? You say you are using an HD  5.25" floppy
drive (which is good) but are you also using HD floppy disks?

David

Stéphane Pitteloud

unread,
Aug 24, 2024, 4:39:04 AMAug 24
to Altair-Duino
Ha, didn't know that the MITS format was special! then it explain why the Gotek can't cope with it. As I could do it without flaw with my SOL-20, I assumed that it would be similar. Thanks for the info. I don't absolutely want to use the Gotek, it was more a way to test further, as I couldn't boot the real disk.

I'm using the built in monitor of the controller, yes. The transfert work well, I got the "success" message at the end. With this method, if the controller is emulating the Minidisc, I can boot the (boot)dos.disk, but all other disk in the same drawer on derma.com fail. Now I found a .pdf in there that state that only some floppy are bootable on the minidisk, maybe it's normal. I don't know.

When I with the controller to the 8" drive emulation (dip switch No1 down) ,then the transfert still go well, but nothing at all boot, I only have a pattern of "O" displaying on the terminal.

I'm using a chinon FZ-506 (it's a HD model), but as I don't have HD floppy on hand, I used regular DD floppy. Do you think that it can be the problem? Can it be that in minidisk emulation the controller write in DD mode and that in 8" emulation it write in HD mode? But why? A 8" floppy is only 338k, it doesn't need 1. MB capacity. 

Message has been deleted

Stéphane Pitteloud

unread,
Aug 24, 2024, 5:10:32 AMAug 24
to Altair-Duino
I will try to get some HD floppy today (a friend of mine have some). I have to elaborate a little more on my explanation:

I have a second floppy drive, a TEAC FB-504, it's not a HD drive. When I try to write the Minidisc 75k (boot)dos.dsk image on it with a low density floppy, this floppy can boot and the "V" command for verification report a success. When I do the exact same with the FZ-506 chinon, that is a HD drive, but still with a low density floppy, it fail to boot and the verification report an error. So, I begin slowly to think that we have to use HD floppy disk only on the HD floppy drive, even when writing a 75k image. is this the case? I will report when I get the HD floppy later today.

Thanks :-)

da...@hansels.net

unread,
Aug 24, 2024, 8:35:22 AMAug 24
to Altair-Duino
The MITS 8" disk format was used on double-density 8" floppy disks which have the same storage capacity
as 5.25" high-density disks, so yes, for the 8" emulation you need HD 5.25" disks. The two main reasons that
this format only stores 338k on a disk and not 1.2MB are
(a) the MITS format is single-sided (only uses one side of the disk) and
(b) it uses FM encoding as opposed to the more efficient and newer MFM encoding

As for the Minidisk format, that should work fine with DD floppies. I have used DD floppies here and of course
the original Minidisk drives used DD floppies as well. This may be a problem with the way your chinon HD drive
is configured. The disk controller pulls pin 2 on the disk connector (DENSITY SELECT) low when it wants to
work with a DD disk. The drive then should switch its motor to spin the disk at 300RPM as opposed to the
360RPM used for HD disks. You can verify that in the monitor with the 'M' command. Some HD drives can be
configured via jumpers for different configurations (e.g. ignoring the DENSITY SELECT signal or using
opposite polarity). You may be able to find a service manual for your drive online to figure that out.
Using DD disks for minidisk mode and HD disks for 8" disk mode works fine with my TEAC FD-55GFR here.

David

da...@hansels.net

unread,
Aug 24, 2024, 9:43:28 AMAug 24
to Altair-Duino
Just realized that the monitor gives rotation speed in ms/rotation, not RPM. So to clarify:
DD format: 300 RPM (rotations/minute) = 200 milliseconds/rotation
HD format: 360 RPM (rotations/minute) = 166 milliseconds/rotation

David

John Galt

unread,
Aug 24, 2024, 10:16:51 AMAug 24
to Altair-Duino

David is it possible to add the ability in the monitor to read a disk and send it Xmodem to a file. So you can archive disks as well?

da...@hansels.net

unread,
Aug 24, 2024, 10:21:17 AMAug 24
to Altair-Duino
That should be possible but you can already do this using Mike's FLOP2PC utility:

David

John Galt

unread,
Aug 24, 2024, 11:28:26 AMAug 24
to Altair-Duino
if i try to run flop2pc on my machine. it gives me the prompt for the disk, i have the disk inserted, i press the drive letter and it just hangs.
does nothing else, needs a warm boot. it never gets to the prompt asking which port to use.

drive works fine i can list and run contents off it.

John Galt

unread,
Aug 24, 2024, 11:35:24 AMAug 24
to Altair-Duino
tried recompiling from source, no errors, same results. what would i need to change in the source to make it work with the I/O bus drive controller?

Stéphane Pitteloud

unread,
Aug 24, 2024, 2:54:17 PMAug 24
to Altair-Duino

Thank you for your reply.

 I've collected HD diskettes, and that doesn't change anything. There are always 0's at boot and the comparison with the V function returns an error. Well.....

I then tried connecting a 3.5“ floppy, and nothing works either, in either mode (8” or 5.25"). In fact, the only time anything worked was with a 5.25 DD floppy drive in Minidisc mode.

I re-writted the files on the sd card from scratch, reseted the configuration of the Altair to 0,  still the same thing.

In my opinion, as the verification doesn't work, and because this happens while we're still only interacting with the controller and not with the Altair, I have the feeling that the problem comes from the controller card, the wiring or the floppy, not the Altair itself.

I'd like to have confirmation that I'm doing things correctly. Here's the exact procedure I'm following:

configuration of jumpers on controller board: all jumpers down except J3. MITS Firmware inserted. dip switch down except 2 (to switch to floppy 1). 

Straight cable connected to a working 3” floppy drive and half a standard PC (tested on a PC). 

Serial to USB dongle  connected to the serial port on the controller board. usb cable between the serial adapter and a pc running windows 10.

Then, I switch on the Altair to power up the bus. 

I aunch putty, set serial port to 115200 baud. 

I press monitor + reset on the floppy controller board, get the menu by typing H. 

I write  "D 1" to set the drive to 1 (as I have a straight cable). 

I write "W". The speed test begins, and the controller card asks me to send the file via xmodem. Using the xmodem menu, 

I send the file DISK01.dsk from the Altair's SD card. The transfer is successful, and the message “success” appears. 

I press "V" to start verification. I send the same DISK01.dsk file. The check stop at 0.3%. The comparison is displayed in the buffer, and we see that it's different. 

What else can I do? I'm totally lost and have no other idea.

John Galt

unread,
Aug 24, 2024, 4:25:49 PMAug 24
to Altair-Duino
in the configuration menu do you have both floppy drive mappings turned off? make sure nothing is mapped to the floppies

Stéphane Pitteloud

unread,
Aug 24, 2024, 7:17:44 PMAug 24
to Altair-Duino
yes, all virtual floppy are empty. Now I found a way to make the 3.5 inch floppy drive work!  I did a mistake: the floppy was write protected. But the controller don't care, he still act like everything is fine and do the copy job. But nothing is effective written. So, having a working 3.5 floppy drive confirm that the controller is good. But I still fail to do something with a 5.25 floppy, no idea why...

John Galt

unread,
Aug 24, 2024, 7:27:13 PMAug 24
to Altair-Duino
for the 5.25" you must use the floppy cable with the twist in it for the first drive.
you cannot use the jumper settings the twist is important.
the 3.5" drives do not care about the twist but the 5.25" drives do.

John Galt

unread,
Aug 24, 2024, 7:28:23 PMAug 24
to Altair-Duino
this cable super important when using 5.25" drives

da...@hansels.net

unread,
Aug 24, 2024, 8:25:10 PMAug 24
to Altair-Duino
John, regarding the FLOP2PC, I just tested that here and it works fine on my setup.
No changes required to make it work with the disk controller.

One possible issue I can see is if you are running FLOP2PC from within the hard
disk CP/M on which the floppy drives are mapped to C and D. PC2FLOP still refers
to the drives as A and B. If you use C or D then it will hang like you describe.

David

da...@hansels.net

unread,
Aug 24, 2024, 8:36:58 PMAug 24
to Altair-Duino
Stephane, regarding writing the HD floppy disks the steps you describe look fine to me.

You are correct, the "W" command on the monitor does not check the write protect status
of the disk. It will happily go through the motions of writing to the disk and say everything
is ok even if the disk is write protected and the drive didn't actually write anything. The way
to check whether a write was successful is via the "V" command.

Not sure why your 5.25" HD disks don't work. Can you post the output of the "I" command?
Obviously make sure the disks aren't write protected. The rotation speed reported by
the "I" command should be 360 RPM. Otherwise, for whatever reason, your drive is using DD mode.

David

John Galt

unread,
Aug 24, 2024, 9:18:50 PMAug 24
to Altair-Duino
ah very interesting thank you.

On Saturday, August 24, 2024 at 8:25:10 PM UTC-4 da...@hansels.net wrote:

John Galt

unread,
Aug 24, 2024, 9:20:19 PMAug 24
to Altair-Duino
something that may or may not help here.

I had issues with some HD 1.2mb disks, i had to put them into my old PC then i formatted them normally, then when i put them into the Altair drives they worked correctly in the monitor.

Stéphane Pitteloud

unread,
Aug 25, 2024, 5:35:30 AMAug 25
to Altair-Duino
Thanks for all you tips.
@ John Galt:
I tried with a twisted cable, appart the fact that I don't need to put the dip with No 2 up and don't have to type "d 1" before the "W" command, it doesn't change anything. I don't have any pc that is capable of formatting the disk unfortunately.

@ David
here is the output of the "I" commande


the speed is 360 RPM. I played a bit with the jumpers as I could find the explanation of them on the web:


I used the second line (IBM PC compatible)

Wit this configuration, I can write images, and the comparaison with "V" gave me at the first try a success! At this point, I was happy and confident that I solved the problem. But it's not the case. I wrote the image1 issued from the SD card. The exact one that I could write back with success and boot on the 3.5 floppy drive. 
When I boot it, the Altair give a Bdos error


I tried others disk from the SD card (disk5, disk6...), same résultat. Bdos error.

Then I tried the CPM22b56k disk image from deram.com, and this particular one is working, I can load it and launch ladder.


I tried it 10 times, to be sure that is it not simply bad luck with a random read error, but no, this image load every time.

At this point, I'm pretty lost, I don't know why the images that are on the SD don't work but the images from deram does... Bad drive ? Bad controller ? Bad luck? is this anyhow expected that the images on the SD don't work on 5.25 HD floppy?
Thanks all for your help :-)

Stéphane Pitteloud

unread,
Aug 25, 2024, 5:52:13 AMAug 25
to Altair-Duino
well, I tried another files from deramp.com (Zork), and it gave a bdos error too. Maybe my drive is defective. is there any settings on the drive that could explain that the images are written but give a bdos error when booting?

da...@hansels.net

unread,
Aug 25, 2024, 8:33:49 AMAug 25
to Altair-Duino
Here's some more background information that may (or may not) explain the
problems you are experiencing: The MITS disk format is a format for hard-sectored
disks, i.e. disks that have not just one index hole for the start of the track
but an index hole for every sector (plus an extra one for the start of the track).
So an 8" disk had 33 index holes. When looking for a specific sector, the MITS
controller counts the index holes from the start-of-track until it gets there.

Most more recent disk drives use soft-sectored formats, i.e. they only have one
index hole for the start-of-track and (during format) write patterns on the disk
that signify where each sector starts.

Since it is pretty hard to get your hand on 8" hard-sectored disks (and as far as
I know 5.25" hard-sectored disks with 32 sectors don't exist), the AD disk controller
emulates the hard sectors with timers. After measuring the disk rotation time it is
easy to know whether this is a hard-sectored or soft-sectored disk. If it is
hard-sectored then the controller just counts the sector holes. If it is soft-sectored
then the controller divides a track into sectors just by waiting 1/32 of the full rotation
time for each sector. Of course this requires the disk drive to spin at a very regular
rate. If the disk drive itself varies its speed too much between rotations then the
start of the sectors will be off.

Note that such drives would still work fine with soft-sectored formats since those
formats were specifically designed to be more tolerant of drive variations.
And the MITS format can deal with drive variations just fine as long as you use
hard-sectored 8" disks. The issue is that using soft-sectored disks with a format
that requires precise timing also requires a precise disk drive.

Now the TEAC drive I am using is a direct-drive system where the motor is directly
attached to the axle that spins the disk. If your drive uses a belt then belt slippage
may introduce variations in speed that are larger than the controller can tolerate.
The same can happen if the drive mechanics are "sticky".

So it could be an issue with your drive.

I have attempted to work around these problems in software with some experimental
code that is included in the controller. This is controlled by two flags, both
of which are disabled by default:
1) Sync after step. I have seen some drives that slow down their rotation slightly
   when stepping the head to a different track. If this flag is enabled then the
   controller waits for the "track start" hole to re-sync the sector timer after
   stepping the head.
2) "Relative" sector timing. If enabled then instead of just using a timer to find
   the start of a sector the controller will actually READ the previous sectors from
   the start of the track and do its timing based on where the previous sector
   actually ended. This works fairly well but only on disks that have already been
   written to (so there actually are sectors that can be read).

You could try experimenting with those flags for your drive and see if that helps.
To set the flags, use the "F [d] [f]" command in the controller where [d] is the
drive number and [f] is the flag setting:
0: both flags disabled
1: Sync after step enabled,  relative timing disabled
2: Sync after step disabled, relative timing enabled
3: Sync after step enabled,  relative timing enabled

I hope that helps!

John Galt

unread,
Aug 25, 2024, 12:40:32 PMAug 25
to Altair-Duino
Try using the disk images from:

https://adwaterandstir.com/wp-content/uploads/2017/05/disks.zip
these are 330kb.

DISK01.DSK: CP/M (63k)  is bootable

Try putting that on a disk and see if it boots.

i messed with the Sync after step on my controller. i think i left it enabled for both my drives.
i had issues with getting 2 drives to sync together so they could read disks between each one.



Stéphane Pitteloud

unread,
Aug 25, 2024, 3:48:44 PMAug 25
to Altair-Duino
@David
Thanks for all the precision!

I tried with the commands
"F 1 1", then F 1 2" and finally F 1 3", but nothing changed. I'm not sure that the syntax is correct, because when I do a "F", I got a summary that tell that the controller flag is always 1

I found a FD55GFR that was in an Amiga external drive case so the jumping was certainly messed. I can write an image to the disc with the monitor, but when I try to boot on it the head go to the center and make a continued clicking noise. 

As you have the same drive, maybe you can make a pic of pcb if it's possible without messing everything?
This is my PCB:


@ John Galt
thanks for the link. Unfortunately, same behaviour with those images. Was worth to try.

Thanks

John Galt

unread,
Aug 25, 2024, 4:01:51 PMAug 25
to Altair-Duino
I took a picture of mine look in the backplane thread. It’s a few posts down from the top

John Galt

unread,
Aug 25, 2024, 4:02:48 PMAug 25
to Altair-Duino

Stéphane Pitteloud

unread,
Aug 25, 2024, 4:18:31 PMAug 25
to Altair-Duino
Thanks!
Looks like I have the same jumper setup. That's weird. This is what happens when I try to boot the Altair with this floppy connected:

(click the loudspeaker icon on the video to ear the sound)

Looks like the Altair don't want to be nice with me :-)

Stéphane Pitteloud

unread,
Aug 25, 2024, 4:37:15 PMAug 25
to Altair-Duino
and now, in the monitor, the drive say "No track 0 signal. detected".

John Galt

unread,
Aug 25, 2024, 6:55:27 PMAug 25
to Altair-Duino

How sticky is the drive mechanicals. Does the head move smoothly by hand all the way back and forth with power unplugged.
spray compressed air in the sensor on that bottom pcb you can see a little plastic piece that moves with the head into the track position sensor make sure it’s clean. No dust bunnies.

I have a drive acted similar and it needed to be cleaned and lubed.

Additionally some drives need the pcb adjusted fore or aft to get the sensor in the right spot.
These drive are old and have been banged around and have been sitting over 30 years in some cases.

Stéphane Pitteloud

unread,
Aug 26, 2024, 9:59:35 AMAug 26
to Altair-Duino
It’s not sticky. But I’m pretty sure that the drive is defective.
Now a stupid question: I have the opportunity to get a very cheap YE DATA 174 8 inch floppy drive, double side double density. Do you think that this drive can work with the floppy controller?

Thanks



Stéphane Pitteloud

unread,
Aug 26, 2024, 2:20:48 PMAug 26
to Altair-Duino
@ David: Small question: can a soft sectored 8" floppy drive like the YE-DATA 174 (double side double density) in theory work with your controller card? Can the controller do the hard sectoring emulation with the 8" drive like it does with the 5.25" drive? Thanks 

da...@hansels.net

unread,
Aug 26, 2024, 2:31:51 PMAug 26
to Altair-Duino
It's not the drive that's hard/soft-sectored, it's the disks themselves. If you use an 8" soft-sectored disk
then the controller will automatically do the hard sector emulation. But you have the same constraint
as with 5.25" drives: the drive rotation speed must be very stable, otherwise the hard sector emulation
does not work reliably.

Note that the only 8" drive I have tested with the controller is a Shugart SA800. I think most drives
are compatible with that so they should work but I can't make any guarantees. You should take a closer
look at the drive connector and compare the signals it carries to the SA800.

David

Stéphane Pitteloud

unread,
Aug 26, 2024, 3:12:12 PMAug 26
to Altair-Duino
@ David:
ok, I didn’t know that. I tought that the floppy drive has to be hard sectored compatible. Good to know. I looked at both schematic (SA 800 and YE-data 174), it’s look almost the same pinout except those 3 signals mentioned on the SA800 and that don^t exist on the YE-data 174:

- PIN 24 Sector
- PIN 48 SEP DATA
- PIN 50 SEP clock.

Is this a problem?

da...@hansels.net

unread,
Aug 26, 2024, 3:56:51 PMAug 26
to Altair-Duino
None of these signals are used by the controller so that should not be a problem.

David

Stéphane Pitteloud

unread,
Aug 26, 2024, 4:17:52 PMAug 26
to Altair-Duino
ok, thanks! I will get this drive (someone is selling it in my area, this is why I asked) and will report. It's not expensive and it comme with about 30 empty disk, worth to try :-)

John Galt

unread,
Aug 26, 2024, 8:11:13 PMAug 26
to Altair-Duino
what an amazing little disk controller :D

Tom Lake

unread,
Aug 31, 2024, 1:12:37 PMAug 31
to Altair-Duino
I use 5.25" drives with no twist in the cable and use the drive select jumpers to determine which drive is 0 and which is 1. It works fine.

On Saturday, August 24, 2024 at 7:27:13 PM UTC-4 John Galt wrote:

Stéphane Pitteloud

unread,
Sep 10, 2024, 7:01:57 AMSep 10
to Altair-Duino
so, I have some news. I could get my hands on 3 YE DATA 174 8" floppy drives. 

IMG_4130.jpeg
I ordered a Texelec 50 pin to 34 pin adapter
8-Inch-Floppy-Adapter-1.jpg
after some configuration on the floppy drive itself. and after understanding that the write protect label on the 8" floppy work the other way around than with a 5 1/4 floppy (write label applied =you can write), I could write an image directly from the controller on a real 8" floppy. The verification went well, and I could boot!
Watch it in action here:

So, I can confirm that the YE DATA 174 work with the controller too.
I still have to play with the "F" parameter, as I had some read errors that disappeared after a second try, I assume that the belt driven system here is the culprit, as pointed.

I still have a small thing that I don't understand: 
the 8” drive has a mechanism that locks the door as soon as the read head is lowered onto the disc, to avoid damaging the floppy disk. This is because the motor is rotating all the time, unlike a 5 1/4” drive, where the motor is only activated when the controller requests access to the diskette. 

On my setup, locking the door works well, but I haven't figured out how to tell the drive to unlock it. I have to do a reset to be able to change the floppy disk. With a reset, the door is unlocked. Is there a particular CP/M command to enter, or is it a question of configuration with the jumpers?

da...@hansels.net

unread,
Sep 10, 2024, 8:01:35 AMSep 10
to Altair-Duino

On Tuesday, September 10, 2024 at 7:01:57 AM UTC-4 guibrush...@gmail.com wrote:
so, I have some news. I could get my hands on 3 YE DATA 174 8" floppy drives. n adapter