Jump to content
IGNORED

Atari 1050 Roms.


tregare

Recommended Posts

11 hours ago, ijor said:

Load the ROM into an hex editor and change the byte at that location to the value you want. If you change it to the half, $50 (decimal 80), step time would be halved. Didn't try it and no idea if it would work.

1 hour ago, Jeffrey Worley said:

Update:  This mod works just fine. 

 

Sweet! And here I was assuming a checksum would have to be recalculated as well like the stock 1050 ROM . Hats off guys, simple - but this was definitely something on my 'wish list'. :D I'm excited to try this! "Minimal" changes compared to the original ROM is good.

 

Next up: Maybe I can handle this, optimize the standard-speed double density format interleave stored in ROM to that used by the PERCOM drives. :D

 

Link to comment
Share on other sites

1 minute ago, Nezgar said:

 

Sweet! And here I was assuming a checksum would have to be recalculated as well like the stock 1050 ROM . Hats off guys, simple - but this was definitely something on my 'wish list'. :D I'm excited to try this! "Minimal" changes compared to the original ROM is good.

 

Next up: Maybe I can handle this, optimize the standard-speed double density format interleave stored in ROM to that used by the PERCOM drives. :D

 

That is worth doing.  I really notice how much quicker the Percom is compared to other drives in standard skew.

 

Link to comment
Share on other sites

One last test is to put it through the 1050 diags...

 

also check full disk seeks and searches on the different densities...  something like track 5 to 720 or enh  1010 or some such... if there were a timing issue it would more than likely show as a fail or re-seek...

Link to comment
Share on other sites

1 hour ago, _The Doctor__ said:

One last test is to put it through the 1050 diags...

 

also check full disk seeks and searches on the different densities...  something like track 5 to 720 or enh  1010 or some such... if there were a timing issue it would more than likely show as a fail or re-seek...

I've never used the diags, I will since you imply it will work on a doubled drive.  Never knew that.  The tests I use are to copy a disk full of small to medium-sized files (a DD disk has about 60 files on it), and then copy those to ram and then from ram back to the disk, in a batch file in Spartados that calls itself endlessly.  If the resulting disk comps with the disk image I made of the disk before this process, then we are good.  So far so good and I have made maybe 80 passes thus far.  It tracks the drive like crazy.  Another good test for tracking is to run CLX /Y from a batch file on a disk with many little files on it.  I also scopy the whole disk back and forth a buncha times, all the while listening for any hiccough, pauses, etc.  Same with formatting; a pause or hesitation during format is indicative of some fault and often the need for tuning.  To align a drive, I run a batch file that runs RPM on the target drive, which has a known-good disk in it.  Sometimes a drive out-of-alignment will read track zero just fine and even produce a directory without fault, but RPM shoots the head out to track 20 (for single and double densities) and THAT will show if the drive can read or not.  RPM may fail, which then gets recalled by the batch file and re-executes.  While this is going on, I can twiddle the stepper until it starts to get RPM information, and dial it in nicely.  Once it is working right, I run the other tests above to validate my fix.  Another variation is to do the above batched copy from and to ram but with the destination disk being one that has been formatted not on the target test drive, but on one of my other known-good drives.  This tests whether the target drive can properly store and retrieve information from a disk not formatted by itself.  To validate this I also do the same on a known-good drive using a disk formatted on the drive I have questions about.

 

Best,

 

jeff

Edited by Jeffrey Worley
Link to comment
Share on other sites

sounds like a winner,

 

the rpm read is a method I've used, marking off increments on the stepper taking it till errors one direction then the other and then taking it to the mid point of the marks. usually it's perfect or within a 64th of an inch on a scope.

my other method is using 32nd of an inch scale taped near a stepper tab and adjusting when if it's in between the division marks that a 64th...

works pretty darn well, the tandon half stepping drive are sometimes harder to dial in. But they sure will be faster now... as you can post your modified rom after your testing is complete....  just don't test your drive to death :) we don't want you wearing those puppies out!

Link to comment
Share on other sites

I only just invented this method.  It was the first time I had to align a 1050.  The stepper came to me unmounted.  So I thought of how to do it and came up with this only to discover I reinvented the wheel.  Oh well.  I'm proud still.

 

I did the fine tuning for it by scopying from a disk written/formatted on another known-good drive.  If there was any hesitation on copying tracks, I adjusted a little until the hesitation went away.  I figure it is pretty much on.  I can't tell it from any of my other drives now.  I DO have a scope as of a week ago, but have no idea how to use it.  If there is a quick spin-up around you can point me to, please do.  I know I need a scope and need to know how to USE the scope.

 

 

Link to comment
Share on other sites

5 hours ago, Jeffrey Worley said:

Update:  This mod works just fine.  The step rate is doubled, just as advertised, and there are no untoward complications from doing this.  The mech I tried it on is a real beater, so if it works here it will work on your's too.

 

Not necessary at all. As everything out of the specs, it might work in some cases and in others it might not. Tandom might have used different step motors, it might depend on the manufacturing year, perhaps newer ones are fine, but older ones are not. Conceivable, Tandom/Atari didn't realize or even just didn't care and used an unnecessarily slow step rate. But then I would expect that, i.e., the Happy would have allowed a configurable faster step rate. It is very difficult to know for sure.

Link to comment
Share on other sites

5 minutes ago, ijor said:

 

Not necessary at all. As everything out of the specs, it might work in some cases and in others it might not. Tandom might have used different step motors, it might depend on the manufacturing year, perhaps newer ones are fine, but older ones are not. Conceivable, Tandom/Atari didn't realize or even just didn't care and used an unnecessarily slow step rate. But then I would expect that, i.e., the Happy would have allowed a configurable faster step rate. It is very difficult to know for sure.

That's my logic, that if Happy didn't do it, it wasn't possible, but my experience with three different drives, two early 1050's and one later one, all with different makes of steppers and drive motors, all work beautifully at high step rates.  The rate I'm testing, 10ms is not all that fast by the standards of the time.  a 3ms step would be 'fast' and a 6ms step would be tolerable.  The roms I was playing with before, have a faster step than 10ms, but by how much I don't know, I can just tell.  None of the three drives had the slightest trouble with that or the 10ms step.  I think there might well be drives that would not work, and since there might be a couple of percentage points of users who's drive upgrades failed, ICD and happy computers decided there was no loss in not speeding the step up, as the customers would not notice they lacked anything and would SURE notice the increased I/O speed the upgrade gave.

 

I am kinda shocked the modification is that easy, given it has not been done already.  I've wanted this for YEARS on YEARS.

 

Best,

 

Jeff

Link to comment
Share on other sites

I think it's simply that the Tandon TM-50 manual states to use 20ms, so Atari just stuck with the official specs, or the lowest common denominator that might come in the mechs.

 

https://archive.org/details/bitsavers_tandonTM50iceManual1983_3569631/page/n13/mode/2up

 

Interesting there's mention of an optional "Fast Step Motor" specced at 6ms:

 

210534 "Stepper Assembly"
211004 "Stepper Assembly (Fast Seek)

 

Just checked two 1050's I have handy & open here, and they both have mechs with stepper part no. 210323, not in that list. Probably produced after printing of the manual.

 

Like 'overclocking' - it's highly possible that things may 'work' faster, but you're not going to get any manufacturer sympathy from the manufacturer if it causes problems... Unless Atari was already 'pushing the limits' with 2x10ms "half" steps.

 

Might have to see through trial-and-error how fast each stepper motor part # is capable of. :D

  • Like 1
Link to comment
Share on other sites

10 minutes ago, Nezgar said:

I think it's simply that the Tandon TM-50 manual states to use 20ms, so Atari just stuck with the official specs, or the lowest common denominator that might come in the mechs.

 

https://archive.org/details/bitsavers_tandonTM50iceManual1983_3569631/page/n13/mode/2up

 

Interesting there's mention of an optional "Fast Step Motor" specced at 6ms:

 

210534 "Stepper Assembly"
211004 "Stepper Assembly (Fast Seek)

 

Just checked two 1050's I have handy & open here, and they both have steppers with part no. 210323, not in that list. Hmm!

 

Like 'overclocking' - it's highly possible that things may 'work' faster, but you're not going to get any manufacturer sympathy if it causes problems... Unless Atari was already 'pushing the limits' with 2x10ms "half" steps.

 

Might have to see through trial-and-error how fast each stepper motor part # is capable of. :D

Not sure how far that will get us.  I've seen steppers from at least a half-dozen makers in 1050's.  The one I'm testing on now is a completely new one to me, has a PAPER label over the bottom instead of the thin metal sticker that's usual.

 

Link to comment
Share on other sites

14 minutes ago, Nezgar said:

Inspecting Speedy-1050 source code, I see stepper delay of $17 is used:


STPTIM    = $17                    Verzoegerung fuer Steppermotor

Try that value in the USD ROM. :D

Just did the math sorta on that and it works out to something like 3ms, which is about as fast as any floppy can go.  And I WILL try it as soon as I get home.  LOL

 

Thank goodness I finally broke down and bought an eprom eraser.  For some months I was using sunlight and the tree-stump in my front yard.  It took a week or so to blank a rom.  The Treeprom eraser someone called it.  The real thing takes less than ten minutes.  NICE!

 

Edited by Jeffrey Worley
Link to comment
Share on other sites

1 hour ago, Jeffrey Worley said:

Just did the math sorta on that and it works out to something like 3ms, which is about as fast as any floppy can go.

Digging into a little more in the speedy source regarding DLYTM:

1 X-Wert ca. 100000 Taktzyklen (Translation: 1 X value approx. 100,000 clock cycles)

[EDIT] Thanks to @ijor's correction of my egregious interpretation error, I see the "delay" used by the Speedy-1050 is actually $2C.

E084 A92C              LDA #$2C
E086 8517              STA STPTIM               Step—Zeit fuer Steppermotor testen

If $2C, decimal 44 = 4400000 clock cycles. @1Mhz thats about 4.4ms

 

If $A0, or decimal 160 produces a ~10.24ms delay in the USD, then (160/10.24*4.4)=69 decimal, or $45 should produce the same 4.4ms half-step, or 8.8ms full-step delay to try patching into the USD ROM.

 

[EDIT2] Even easier, I found references to these delay values in the Speedy-1050 source:

#$2C    Short (Decimal 44)
#$64    Normal (Decimal 100)

 

So if the Speedy's "Fast" value is simply 44% of the "Normal" value (2.27x faster), all I had to do was take 44% of the USD's default value of 160: 160*.44=70. Pretty close to 69 I came up with in the above calculation. :dunce:

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

44 minutes ago, Nezgar said:

I think it's simply that the Tandon TM-50 manual states to use 20ms, so Atari just stuck with the official specs, or the lowest common denominator that might come in the mechs.

https://archive.org/details/bitsavers_tandonTM50iceManual1983_3569631/page/n13/mode/2up

 

May be just for the records, but that manual is pretty late (1983) and covers PC compatible drives that, at the very least, used a different stepper motor control interface.

 

Also, I believe the 1050 firmware was coded by Tandon itself ... and I said several times, it's a shame we still don't have the original commented 1050 ROM source. It's quite easy to produce a disassembler, but precisely for cases like this the original source might provide an invaluable information in the comments that you simply can't never reverse engineer.

 

34 minutes ago, Nezgar said:

Inspecting Speedy-1050 source code, I see stepper delay of $17 is used:


STPTIM    = $17                    Verzoegerung fuer Steppermotor

Try that value in the USD ROM. :D The delay routine may work differently though...

 

In first place, $17 is the location in RAM, not the value. In second place, yes, the timing is completely different because it is used for a software based delay.

Edited by ijor
  • Like 2
Link to comment
Share on other sites

12 minutes ago, ijor said:

In first place, $17 is the location in RAM, not the value.

Thankyou for that, I corrected my egregious error, found the actual value that gets stored at $17, and re-calculated my conversion to USD timing in the previous post. :D

Link to comment
Share on other sites

@Jeffrey Worley,

8.8ms sounds correct, allowing two half steps and time for the head to settle

more than enough time

3ms was the timing for most 3.5 inch drives btw as a generic number that mydos would accept on the software side.

 

thanks for looking in on it ijor :)

 

*edit *  by nezgor- $45 should produce the same 4.4ms half-step, or 8.8ms full-step delay to try patching into the USD ROM. according to some previous post.... but I did not do the math.

 

8.8 was fine afair.

Edited by _The Doctor__
Link to comment
Share on other sites

22 minutes ago, _The Doctor__ said:

8.8ms sounds correct, allowing two half steps and time for the head to settle

more than enough time

3ms was the timing for most 3.5 inch drives btw as a generic number that mydos would accept on the software side.

 

thanks for looking in on it ijor :)

Just tried $28 and the drive will power on and seek to zero, maybe, or maybe just buzz like hell.  Crapshoot.  I tested it a little further and it ain't gonna happen.  So I went up the scale to $40 and am testing.  So far, preliminary, is ok.  I will test thoroughly.  This drive has a Northland stepper.  Not a painted cap but a dun-brown fiber one instead of the white painted ones I've seen on other drives,  PN 1005-101

  • Confused 1
Link to comment
Share on other sites

5 minutes ago, Jeffrey Worley said:

So I went up the scale to $40 and am testing.  So far, preliminary, is ok.

My theory of using the value of $45 equivalent to the Speedy-1050 is that it had a wide install base and record of reliable operation in many drives since that enhancement was released BITD.

 

Would be interesting to see what the upper-limits are though. :cool: ?️

  • Like 1
Link to comment
Share on other sites

Here's the rom, with a step of $40, which seems pretty doggone stable.  The drive hasn't burped a whit.  This one's stepper was unmounted when I got it and the band had gotten tangled atop the capstan a bit.  I worked it back down onto the capstan and smoothed it with the edge of a flathead screwdriver.  Works nicely.

 

Where the copyright notice was, I put AtariageUSD, to distinguish it, the only change is at byte $198, changed to $45 from the default of $A0.  Else the rom is identical to the ICD Trusted one to be found here, Revision L.

 

I edited this message and changed the file.  The new file has a step set to $45.  After about 20 copy iterations back and forth I got an error 144, so I figure $40 was on the inside edge.

 

Best,

 

Jeff

Atariage 1050 USDoubler with SpeedStep.BIN

Edited by Jeffrey Worley
File swap.
Link to comment
Share on other sites

Just to give an idea why the number are what they are....as I couldn't locate my old 5.25 sheets in a quick look, I googled...

 

If you look up spec sheets for individual floppy drives, they usually show a worst-case "track to track seek time" = SRT, but not the other two.

  • SRT = "Step Rate Time" = time the controller should wait for the head assembly to move between successive cylinders or tracks. A reasonable amount of time to allow for this is 3ms for modern 3.5 inch floppy drives. A very safe amount would be 6 to 8ms. To calculate the value for the SRT setting from the given time, use "SRT_value = 16 - (milliseconds * data_rate / 500000)". For a 1.44 MB floppy and 8ms delay this gives "SRT_value = 16 - (8 * 500000 / 500000)" or a parameter value of 8.
  • HLT = "Head Load Time" = time the controller should wait between activating a head and actually performing a read/write. A reasonable value for this is around 10ms. A very safe amount would be 30ms. To calculate the value for the HLT setting from the given time, use "HLT_value = milliseconds * data_rate / 1000000". For a 1.44 MB floppy and a 10ms delay this gives "HLT_value = 10 * 500000 / 1000000" or 5.
  • HUT = "Head Unload Time" = time the controller should wait before deactivating the head. To calculate the value for the HUT setting from a given time, use "HUT_value = milliseconds * data_rate / 8000000". For a 1.44 MB floppy and a 240 mS delay this gives "HUT_value = 24 * 500000 / 8000000" or 15. However, it seems likely that the smartest thing to do is just to set the value to 0 (which is the maximum in any mode).

That's of course for 3.5 inch drives through the whole of software through the controller and drive...

 

depending on the order of operations within the firmware and that it's an Atari intelligent drive, all being handled right at the 5.25 inch drive... you can get an idea and see how they may have chose $45 with the speedy

Edited by _The Doctor__
Link to comment
Share on other sites

2 minutes ago, _The Doctor__ said:

Just to give an idea why the number are what they are....as I couldn't locate my old 5.25 sheets in a quick look, I googled...

 

If you look up spec sheets for individual floppy drives, they usually show a worst-case "track to track seek time" = SRT, but not the other two.

  • SRT = "Step Rate Time" = time the controller should wait for the head assembly to move between successive cylinders or tracks. A reasonable amount of time to allow for this is 3ms for modern 3.5 inch floppy drives. A very safe amount would be 6 to 8ms. To calculate the value for the SRT setting from the given time, use "SRT_value = 16 - (milliseconds * data_rate / 500000)". For a 1.44 MB floppy and 8ms delay this gives "SRT_value = 16 - (8 * 500000 / 500000)" or a parameter value of 8.
  • HLT = "Head Load Time" = time the controller should wait between activating a head and actually performing a read/write. A reasonable value for this is around 10ms. A very safe amount would be 30ms. To calculate the value for the HLT setting from the given time, use "HLT_value = milliseconds * data_rate / 1000000". For a 1.44 MB floppy and a 10ms delay this gives "HLT_value = 10 * 500000 / 1000000" or 5.
  • HUT = "Head Unload Time" = time the controller should wait before deactivating the head. To calculate the value for the HUT setting from a given time, use "HUT_value = milliseconds * data_rate / 8000000". For a 1.44 MB floppy and a 240 mS delay this gives "HUT_value = 24 * 500000 / 8000000" or 15. However, it seems likely that the smartest thing to do is just to set the value to 0 (which is the maximum in any mode).

That's of course for 3.5 inch drives through the whole of software through the controller and drive...

 

depending on the order of operations within the firmware and that it's an Atari intelligent drive, all being handled right at the 5.25 inch drive... you can get an idea and see how they may have chose $45 with the speedy

There is, I presume, a head settle delay somewhere in the firmware, as well as the track rate.  I would leave that alone.  ?  I suppose they might aggregate it into the step rate, but that would be strange?

 

best,

 

Jeff

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...