VOGONS


First post, by tjenjic386

User metadata
Rank Newbie
Rank
Newbie

I've bought two new old stock Siemens FDD100-5 floppy drives that both have seek/step errors when attempting to read or write files. With Imagedisk, I can set the tracks manually, and the
alignment is good. However, as soon as you access the drive through DOS, it may not give a directory listing if the head is not on track 0, and if it needs to
seek to a different track, it does an incomplete step. This incomplete step happens as soon as the head is no longer on the track 0 switch, it moves back immediately without completing
the step. The behavior is the same on my Athlon XP and IBM 5150 computers.

Also, an online manual is available on google.
The only difference with this drive is the serial number which is L22742-A1005-B003.

This is a 160-180KB drive.

Seeking from zero to track 20 with imagedisk

vlcsnap-2022-09-29-21h41m14s303.png
Filename
vlcsnap-2022-09-29-21h41m14s303.png
File size
911.23 KiB
Views
460 views
File license
Public domain

The bottom when it was on track 20

vlcsnap-2022-09-29-21h41m38s006.png
Filename
vlcsnap-2022-09-29-21h41m38s006.png
File size
1.82 MiB
Views
460 views
File license
Public domain

Head repositioned to track zero and attempting read autoexec.bat 'type autoexec.bat'

vlcsnap-2022-09-29-21h42m36s392.png
Filename
vlcsnap-2022-09-29-21h42m36s392.png
File size
1.53 MiB
Views
460 views
File license
Public domain

Repositioned back to track zero after failed seek

vlcsnap-2022-09-29-21h42m41s422.png
Filename
vlcsnap-2022-09-29-21h42m41s422.png
File size
1.56 MiB
Views
460 views
File license
Public domain

It makes slight movement, clicks, then it moves back and clicks again.

Has anyone had an issue with a track zero switch before?

Reply 1 of 10, by tjenjic386

User metadata
Rank Newbie
Rank
Newbie

Update:

I have tested the track zero switch with a multimeter and determined that it's working as it gives continuity and beeps every time when attempting to seek.
The behavior of the drive is the same with the switch disconnected with the bottom PCB. When I've reconnected the switch back, the floppy drive is out
of alignment. The cabling from the PCB has also been tested, and there is power coming to the switch, but there has been no difference with the middle
terminal when attempting to seek, as it's probably used to indicate the drive that the switch is active.

My diagnosis is that, when the operating system attempts to open a file, it cannot calibrate the drive.

Reply 2 of 10, by Nexxen

User metadata
Rank Oldbie
Rank
Oldbie
tjenjic386 wrote on 2022-09-30, 09:08:
Update: […]
Show full quote

Update:

I have tested the track zero switch with a multimeter and determined that it's working as it gives continuity and beeps every time when attempting to seek.
The behavior of the drive is the same with the switch disconnected with the bottom PCB. When I've reconnected the switch back, the floppy drive is out
of alignment. The cabling from the PCB has also been tested, and there is power coming to the switch, but there has been no difference with the middle
terminal when attempting to seek, as it's probably used to indicate the drive that the switch is active.

My diagnosis is that, when the operating system attempts to open a file, it cannot calibrate the drive.

If it is of any help, Adrian's digital basement user on YT saved a drive that had a similar issue.

PC#1 Pentium 233 MMX - 98SE
PC#2 PIII-1Ghz - 98SE/W2K

Reply 3 of 10, by tjenjic386

User metadata
Rank Newbie
Rank
Newbie

I've watched a few of Adrians Digital Basement video (one where he recovered the 800k apple, and a nice Okidata), but it didn't had the issue I'm having.

The switch and the bracket has been repositioned and alignment is back. With imd, you can seek to track zero easily. However, when you access the drive
and try to access the file, it simply would not seek back to track zero. When doing a format, it would seek at each track, but when it tries to return to track
zero, it does an incomplete step between tracks causing misalignment. Then I use imd to seek manually to track zero, and then alignment is back.

With the drive, only the directory listing can be done when you manually set the trive to track zero with imd.

Testfdc failes except with one test (which I think it doing wrong as it automatically seeks to the last tracks of the floppy) and it's Double Density 250k.

But I think I've found what the issue is. The drive is a single sided, single density drive according to the manual, which is incompatible with the P3 floppy controller,
and the IBM PC's controller card.

Reply 4 of 10, by Nexxen

User metadata
Rank Oldbie
Rank
Oldbie
tjenjic386 wrote on 2022-10-02, 14:42:
I've watched a few of Adrians Digital Basement video (one where he recovered the 800k apple, and a nice Okidata), but it didn't […]
Show full quote

I've watched a few of Adrians Digital Basement video (one where he recovered the 800k apple, and a nice Okidata), but it didn't had the issue I'm having.

The switch and the bracket has been repositioned and alignment is back. With imd, you can seek to track zero easily. However, when you access the drive
and try to access the file, it simply would not seek back to track zero. When doing a format, it would seek at each track, but when it tries to return to track
zero, it does an incomplete step between tracks causing misalignment. Then I use imd to seek manually to track zero, and then alignment is back.

With the drive, only the directory listing can be done when you manually set the trive to track zero with imd.

Testfdc failes except with one test (which I think it doing wrong as it automatically seeks to the last tracks of the floppy) and it's Double Density 250k.

But I think I've found what the issue is. The drive is a single sided, single density drive according to the manual, which is incompatible with the P3 floppy controller,
and the IBM PC's controller card.

Basically it's a wrong controller for this unit.
Tricky

PC#1 Pentium 233 MMX - 98SE
PC#2 PIII-1Ghz - 98SE/W2K

Reply 5 of 10, by tjenjic386

User metadata
Rank Newbie
Rank
Newbie

With a bit of research now, this equivalent drive is found on the Heathkit Z89 as the model and serial numbers match, which uses a 100k hard sector format
(serial L22742-A1005-B003), which might be nearly impossible to find a controller for it. I'll try to write a program to work around the issues accessing
files, and find a controller for hard sectors (if available).

Reply 6 of 10, by mkarcher

User metadata
Rank l33t
Rank
l33t
tjenjic386 wrote on 2022-10-02, 14:42:

The switch and the bracket has been repositioned and alignment is back. With imd, you can seek to track zero easily. However, when you access the drive
and try to access the file, it simply would not seek back to track zero. When doing a format, it would seek at each track, but when it tries to return to track
zero, it does an incomplete step between tracks causing misalignment. Then I use imd to seek manually to track zero, and then alignment is back.

This screams "inappropriate step rate". Very early drives couldn't step as fast as the IBM PC/XT/AT BIOS tells the floppy controller to do. This means the drives miss steps when you step multiple tracks at once, but do single steps just fine. IIRC the step rate is included in the Int 1D floppy parameter table, so you should be able to swap it with a table that contains a lower step rate. But be careful: BIOSes with support for multiple densities will overwrite that pointer when a new format is established.

Reply 7 of 10, by tjenjic386

User metadata
Rank Newbie
Rank
Newbie

I've found a good article of adjusting the step rate through asm code, which is exactly what I was looking for.
I'll freely customize it the way I want it to be, experiment and put it in autoexec.bat

https://retrocmp.de/fdd/general/floppy-steprate.htm

Reply 8 of 10, by Nexxen

User metadata
Rank Oldbie
Rank
Oldbie
tjenjic386 wrote on 2022-10-03, 10:06:

I've found a good article of adjusting the step rate through asm code, which is exactly what I was looking for.
I'll freely customize it the way I want it to be, experiment and put it in autoexec.bat

https://retrocmp.de/fdd/general/floppy-steprate.htm

Summing it up,

- you have the controller that goes with it
or
- you set the correct parameters via software

Correct?

PC#1 Pentium 233 MMX - 98SE
PC#2 PIII-1Ghz - 98SE/W2K

Reply 9 of 10, by tjenjic386

User metadata
Rank Newbie
Rank
Newbie

I have an IBM PC with it's original controller and a P3 with it's onboard controller. The original Siemens controller for the drive (FDC100-5) is probably for a Z80 machine. I'm going to
write a program in assembly to change the settings of the step rate to 25ms (track-to-track in manual specs). Not sure if I need to change the head load time, but if only adjusting the step works,
then I won't touch.

http://bitsavers.trailing-edge.com/pdf/siemen … nce_Mar1979.pdf

Reply 10 of 10, by tjenjic386

User metadata
Rank Newbie
Rank
Newbie

Success! Adjusting the stepper rate really does work on both machines (P3, IBM PC) with a slight difference. On the P3 machine, formatting fails on the last step when
it needs to write something to boot(on IBM-PC, format works). The only thing that fails on both machines is when attempting to make a system disk, but that's not important
anyway, as I'm using both drives as drive B. I have written steprate.com using the debugger. This program without arguments resets the FDC to default settings, if supplied with
a one number argument (range 1-15), it sets the step rate to the value specified. Copying, deleting, reading files work on both machines.

Syntax:

steprate
steprate num


; exclude comments when typing the program

debug
-a 100
push ds ; preserve the return address
xor ax, ax
push ax
mov bx, 80 ; skip spaces from command line arguments (if any)
mov cx, [bx] ; should of added a test and jump to avoid code falling if there is no argument, but forgot
xor ch, ch
mov di, bx
inc di
mov bx, cx
mov byte ptr [bx+di], 24
mov al, 20
cld
repz scasb
dec di ; this sets di to the first character of a non space character of the command line argument (if any)
xor dx, dx
mov si, di
mov ax, dx
mov cl, 2
lodsb ; from here numeric string converts to an integer in dx (if argument is supplied)
cmp al, 30
jb 0138
cmp al, 39
ja 0138
xor al, 30
add dx, dx
mov bx, dx
shl dx, cl
add dx, bx
add dx, ax
jmp 0121
test dx, dx ; if there is no argument, code falls and initialize FDC to default
jnz 014a
xor ax, ax
mov dx, ax
lds, bx, [0078]
mov byte ptr [bx], cf
int 13
retf
and dx, 0f ; following initializes the FDC with the user supplied argument
xor ax, ax
mov ds, ax
lds bx, [0078]
mov dh, [bx]
mov cl, 04
shl dl, cl
and dh, 0f
or dl, dh
mov [bx], dl
int 13
retf

-n steprate.com
-r cx
66
-w
Show last 3 lines
-q

For the Siemens drive steprate 4 works perfectly (steprate 5 also works). The IBM tandon works slower, and not ideally, but it still works.