HFDC Step Rate issue Hi Tony - I'm sending our message thread to the Geneve group so there is a record of this "bug that isn't a bug but could be considered one if I fix it". See below for my reply, findings and a question or two. Again, thanks for the insight earlier! Tim ---------------------------- Thank you. Based on what you wrote, I looked at a few drives and noticed the step rate is set to >01. But why does sector editing MDOS change the step rate? I think I found the answer. Earlier I stated the head step could be the >x7 value if the drive was read the first time or the DSR was recovering from an error condition. On a whim I searched MDOS source for other instances of the label. I found it only in the EQUates area. Therefore, I suspect the value is never 0, thus bypassing the value found in sector 0 of the drive, allowing the hard-coded value to over-ride it. (Note: if during assembly the value would ever be set to zero, it would behave oppositely). This means the head step code in MDOS is flawed, but to our advantage. This also explains why the incorrect code (which should set the head step to 0 at all times) is not an issue, even though it should be. I'll do some more testing later. I'm not sure what to do with this one... maybe a head step value for each hard disk is in order? I fear restoring the code to its intended purpose would cause more harm than good at this point; without your email I may have done just that. If you have any other thoughts let me know. I appreciate it! WHEW! Tim tony Wrote: ----------------------- Hi, Tim. Wow, some interesting stuff. In regards to the head step value stored in sector 0, no. I've never experienced that value actually "used". So apparently it makes no difference what it is. I have seen the head step value stored in MDOS make a _HUGE_ difference, as well as the value stored in the HFDC eprom. I (and Jim, god rest his soul) had all sorts of problems when it was set to 0 (I think?), before we changed it back to 7. I seem to remember it being set to 7 for MDOS v2.21, but somehow got changed to 0 some time after that. The setting was too fast for the drives I was using (ST225s), and caused all sorts of corruption. The best embedded setting I found for them (and burnt them into my HFDC eprom) was 5. The setting does make a difference, and you can experience the difference by parking an MFM drive. Park the drive, the do a ctrl-alt-delete to get the heads to travel all the way back to sector 0. Do this with several different embedded head step settings for MDOS, rebooting after every change. The difference will be the most noticeable if you try it with 7 first (long time to travel back), and then 0 or 1 next (shortest travel time). You can actually hear the drive doing it's reset to sector 0. I'd try 1 the second time, as 0 may default to the drive's default setting - which may or may not work depending on the drive's ability to "default". Regards, Tony Insane Multitasker wrote: ----------------------- Got a question for you. All this talk about the DSR stuff reminded me of a problem I might have found in the HFDC DSR. Way back when we were playing with head steps for the hard drives, you mentioned that Mike's setting caused problems. In MDOS 6.50, the head step was restored to the default. Well, what I discovered in the file "HD.SECTORIOW" in the routine "STR789" is the following. If the hard drive has not been "read" the default headstep is used (>x7xx). Additionally, if the system is trying to recover from a hard drive error, the same default will be used. Here is where it seems to get "ugly". About 12 lines from the label STR789 is where MDOS moves the value for head step into R0. MOVB @2(R2),R0 ORI R0,>E0A5 The "0" is OR'd with the head step value to come up with the proper command for the HFDC. But alas, there is a problem. The value at offset 2 is actually sectors per track! So, if a 40MB drive has 2 sectors per track, the head step is set to that value. The head step parameter is supposed to be stored in the value MOVB @4(R2),R0 according to everything the rest of the DSR code I've reviewed. In your experience, have you noticed whether or not the value stored in sector 0 for the head step really made any difference? I don't see how the head step value we embed into MDOS (pristine or CYA or sector edited) has any effect on the normal operation of the drive. It seems to be based on the wrong value. Thoughts? Tim