• Please review our updated Terms and Rules here

Format with write protect on...

It could be the software that does the format. The FDC controller sees it but the software could be ignoring it until it did the first data write. Also, do remember, the response is for software to do something about. If the software just continued to the the format track and ignore the write protect status, it would look the same as the controller not seeing the write protect. Do remember the controller doesn't treat the format of a track the same as a write. it is a separate special operation of the controller.
Dwight
 
But the format will abort and throw an error status that's hard to ignore.

Try starting a format and removing the floppy mid-way. If the format continues, that should tell you that the software (more likely the disk driver, as under DOS 3.3+ format is performed by the program calling an IOCTL function) is really stupid.
 
Dwight - I think the fact that it is treated differently (format vs. write) is maybe why it is happening. If I use the same format command on another system, it fails immediately when the write protect is set. My theory is that this particular FDC accepts a format command and doesn't respond with an error condition while other FDC's do.
 
I think I have a NEC D765 in my chip collection, I could swap it out and see if it behaves differently.

Once I get the drive running again (I've got to fix a 7417 IC), then I can try some of these tests and maybe we can figure it out for good.
 
Bad 7417 replaced with a socket and a new 7407. This fixed the motor drive, so the 360K drive works again. I connected up the GoTek as well, and they both work fine together again (before drive B: was staying light on at bootup). The motor runs irregardless of which drive I am accessing (360K or GoTek).

I tried to format a disk with write protect again and it still does not fail at the beginning, but goes through the motions of the format. Maybe a bit slower than a real format. I imaged the disk ahead of time, tried the write protected format, then imaged it again. Both images are the same proving it does not change any data on the disk. It still fails at the end of the format.

My controller IC is in a socket so i can easily try changing it, it says:
R6765P
15601-16
8445

I have these 3 IC's I could try - I don't know which might be compatible or not:

NEC D765AC-2 8733KV NEC USA
WD37C65C-PL 00-02 9122 E 2509824-3505
WD37C65-PL 00-02 8745 051119101
 
Okay; I'll try the NEC and see if it acts differently. I somewhat remembered the WD not being the same.
 
Same result with the NEC chip.

If write protect is confirmed to be working, is there any other signal that could cause this?

Could it be a BIOS issue? I know chris_nh tested it with a Tandy 1000 w/ 360k drives, but I'm not sure which Tandy 1000 that was.
 
Ah, okay, forget that one then. :(

Given that the BIOS must be unique in this area, perhaps it is a BIOS issue. I don't suppose the source for the BIOS is available...
 
That looks pretty good Eudimorphodon! They have the int 13_05 function even picked out. Now if I can just understand it and how the 765 works!
 
I'm not following the code very well, I don't know x86 and/or its peripherals enough.

int 13 - ah 05 is supposed to return an error code in AH, but what looks like the end of the function:

Code:
f000:D0CB                 pushf
f000:D0CC                 push    ax
f000:D0CD                 call    get_diskette_params
f000:D0D0                 mov     al, es:[si+2]
f000:D0D4                 cli
f000:D0D5                 mov     ds:40h, al
f000:D0D8                 sti
f000:D0D9                 pop     ax
f000:D0DA                 and     byte ptr ds:3Eh, 7Fh
f000:D0DF                 popf
f000:D0E0                 pop     es
f000:D0E1                 pop     ds
f000:D0E2                 pop     bp
f000:D0E3                 pop     di
f000:D0E4                 pop     si
f000:D0E5                 pop     dx
f000:D0E6                 pop     cx
f000:D0E7                 pop     bx
f000:D0E8                 retf    2
 
Back
Top