Jump to content
Nezgar

ICD MIO ROM variants? Dump yours!

Recommended Posts

So, until today I thought the old ICD MIO's only had one ROM version - 1.1. I dumped the ROM from the two 'original' MIO's I have, and found they were slightly different.

 

First up, my 1MB MIO:

  • Serial # 0953
  • 27128 EPROM labelled "MIO v1.1m" - date code = June 1986
  • CRC32 = 00694A74 - which matches "MIO11OS.BIN" on pigwa

 

Next, my friends 256K MIO:

  • Serial # 1569
  • cat27128ap (Catalyst EEPROM) - date code = July 1987
  • CRC32 = 7D68F07B

 

Comparing the two ROMs, the 1MB "v1.1m' appears to have 3 extra bytes in the first block of code ($2000-$2800), as a large chunk is just offset by 4 bytes or so. From $2800 onward it is aligned again. After that there's only a couple byte differences:

  • $3821: E9 in the 1.1m/1MB ROM, E6 in the 256K ROM
  • $398F: DA in the 1.1m/1MB ROM, D7 in the 256K ROM

 

Then I found a reference to a version "v1.1k" by @gozar in a post from 2016: https://atariage.com/forums/topic/247778-scsi2sd-and-the-mio/?do=findComment&comment=3413228

 

Would these changes potentially be to support 256K/1MB? I haven't yet swapped the ROMs to see if they both work with the 1MB configuration. Maybe this can be tested in Altirra?

 

This old thread confirms others found differences in ROM dumps between 1MB and 256K models, and 1 particular ROM working with both 256K and 1MB configuration, and Stephen Carden wrote he thought it was just differences in recompiling: https://atariage.com/forums/topic/88795-old-mio-256k-vs-1mb-roms/

 

Did anyone else see ICD use EEPROM's on their boards, or was this likely replaced in the field? It doesn't have an ICD label, making me think it's not originally from ICD.

 

It would be great if others can check, dump, and post their original ICD ROM's to see if there are more variants out there! Attached are pictures of my two MIO boards, as well as the two ROM dumps:

507788330_1MBMIO0953.thumb.jpg.d8250a96a0bc8be97e51c4bc0cc3fe5e.jpg  392674223_256KMIO1569.thumb.jpg.8128181e60bc454eb938af0dddb4746c.jpg

The 1MB unit "0953" was early enough to still have a 2nd DE9 connector for the 80 column board...

 

PS: Can anyone tell me the purpose of the blue jumper wire in the top left of the 256K unit connecting from VR2 to J7? It is missing in the 1MB unit, but looks like it was cut out.

MIO 1.1 7D68F07B.BIN MIO v 1.1m 1987 ICD,Inc 00694A74.BIN

  • Like 2

Share this post


Link to post
Share on other sites

I don't know the differences between original MIO ROMs, but do know that there is updated firmware available that supports more(and larger, up to at least 73GB Cheetah) SCSI HDDs. This was done by MEtalGuy66 and Almostrice to support reproduction MIO boards, it's supposed to be backwards compatible with original MIOs.

 

V1.41 MIO firmware is available on the rasterline.com website.

Share this post


Link to post
Share on other sites

the blue wire if memory serves is for for the power supply deletion... You will find having the complete power supply makes the MIO more stable and was also there just in case you had the add on board....

 

there were several revisions to the MIO ROM because of unification, re compiling, and slight touch ups...

 

Here's something I will share that no one talks about...

 

D9: parking in the MIO is bugged....

 

Take your MIO and set up some decent sized ram disks and throw some data in them...  'S' swap a bigger MIORamdisk to D9: (parking area) .... now go look at your print buffer and rs232 ports and see if they look strange or corrupted....

 

The other bug on some of the proms is the print buffer bug... which is well known... so I leave it to others to outline that... maybe the two are related...

what other bugs are you aware of and are they present across the MIO line, or where are they fixed?

It would be nice to have all the ROMS and check what bugs are in which... then list them

Have the bugs continued up to and including the @warerat version?

 

so it looks like early roms might have have the add on board in mind and there were two distinct versions for 256K and 1 Meg MIO..

some fix up and unification was on the way, and they dropped the add on board plans, so they changed prom type.

 

Edited by _The Doctor__

Share this post


Link to post
Share on other sites

@BillC I actually programmed the 1.41 MIO fimware to an EPROM a few years ago but never got around to trying it out. On my to-do list, though it involves hauling out the hard drive enclosure, and jerry rigging an ATX power supply to it since the original died... I heard it also added PBI I/O sounds. Even with the updated ROM available, I am interested to start preserving and identifying differences of the variants of the original ROM.

 

@_The Doctor__ D9: Parking? I don't think I ever thought to try that... Was it documented? If not, that must have been an 'accidental' feature. I could see that inadvertently trashing some memory if it was not intended as the config menu makes no visual reference to D9:. The 'bug' would probably be the menu letting you do the swap in the first place, not the actual corruption. :) I actual D9: support was added late to disk based sparta - not in 3.2d, but was added for SpartaDOS 3.3 for Pro, and 3.2g+.and SDX. I never experienced a print buffer bug, but maybe I wasn't printing enough. I liked to leave some of the MIO RAM "unalocated" to use the MIO-cache handler, which sped up random access tremendously for the BBS continuously accessing many directories.

 

The ROM is 16KB, but the first 8KB is blank. I believe I read that the first 8K was intended for the 80-column board code, so I don't think that is the reason for any of these differences seen so far. Both boards are 27128 ROMs, just ones EPROM, and the other is EEPROM. The EEPROM could be have been used earlier, to allow quicker re-programming.

 

So the wire is "better" to be installed? Maybe I'm lucky I never had an issue with my 1MB unit with the wire missing. It looks like the wire was snipped out though, as there's solder blobs with a small point of wire on each point. Maybe the 'fix' was to remove it...

  • Like 1

Share this post


Link to post
Share on other sites

It was a designed feature, since shutting off or changing the ramdisks in anyway blanks the ramdisks, you can park a ramdisk at d9: and have full access to other drives without losing everything... unfortunately the bug messes up rs232 and printer... so if you try to use them while parking some bad things can happen...

 

The proms changed when 80 column was dropped... It's certain you will find reference from others about this other than myself.

 

no the fix was to install the whole power supply... the wire was put in to provide power to the circuit the deleted half previously supplied ..

 

in any event @warerat is the only more recent person I'm aware of to take a deep dive into this firmware so It would be nice to get him in on this and also grab some insight on the particulars...

 

as for the cache handler... what is the sweet spot... I don't think anyone has discussed what's a waste in reserving and whats not... I only ever left one block free for it...

Edited by _The Doctor__

Share this post


Link to post
Share on other sites

I briefly considered upgrading it from 256KB to 1MB, but after reading this page on Fox-1's site, no way: :)

http://atari.fox-1.nl/atari-400-800-xl-xe/400-800-xl-xe-tools/mio-256kb-to-1mb-upgrade/

 

That, and that those DRAM SIP's are pretty rare. I see some on eBay, but it would be $100 USD for 25... It's great to see Richard Mier, who wrote the original upgrade article, actually commented on that page in May 2019.

 

Anyhow, the text also mentions that a ROM replacement is necessary to go from 256K-->1MB. "2. You MUST have the ROM from ICD for a 1 Meg MIO. It is marked as “v 1.1í MIO”, “1987 ICD,Inc”." (I onder what the "í" character was supposed to be).

 

52 minutes ago, _The Doctor__ said:

It was a designed feature, since shutting off or changing the ramdisks in anyway blanks the ramdisks, you can park a ramdisk at d9: and have full access to other drives without losing everything... unfortunately the bug messes up rs232 and printer... so if you try to use them while parking some bad things can happen... 

Well, at least there's no mention of D9: swap functionality in the 5/20/1987 manual...

http://www.atarimania.com/documents/ICD_Multi_IO_Board_Manual__Rev_5_20_1987_.pdf

Share this post


Link to post
Share on other sites

hey anybody have a copy of Craig Carters MIO cache driver? I'm still reserving a block and realized the driver isn't there!

Share this post


Link to post
Share on other sites
On 9/23/2019 at 9:54 AM, _The Doctor__ said:

hey anybody have a copy of Craig Carters MIO cache driver? I'm still reserving a block and realized the driver isn't there!

Attached is my copy, it identifies itself as:

Multi IO Disk Cache v2.6
Copyright 1991 by Craig Carter
All rights are reserved.

Was there ever a documentation text file to go along with this? Would love to obtain it... I always wondered if I reserved more than 32K for it if it was actually utilized...

 

Also attached are two commands that were useful with SpartaDos 3.3 to temporarily change the DOS signature/version number at $700/$701 to 3.2 and back to 3.3, otherwise MIOCACHE would refuse to run due to the DOS version check...

miocache.com setver32.com setver33.com

  • Like 2

Share this post


Link to post
Share on other sites

Thanks for posting it... if it weren't for this thread I might not have thought about it or noticed it was missing!

 

on SpartaDos X using PBI.SYS helps out also, more things run and it seems okay.

 

I wonder if setting it in 3.2 then switching to X would have any benefit...

 

There was a file describing what the cache did and how... not sure where to go and find such a thing..

 

Edited by _The Doctor__

Share this post


Link to post
Share on other sites
6 hours ago, Nezgar said:

My latest thought...

 

"1.1k" = 256KB

"1.1m" = 1MB

 

???

 

@_The Doctor__ Do you have the means to dump your MIO ROM?

That is correct.   I owned both versions of the MIO at one time and those were the differences. (I own no version now and always kick myself).  

  • Like 1

Share this post


Link to post
Share on other sites
On 9/23/2019 at 10:34 PM, JR> said:

I've got a 1.1K that I'll dump as soon as I can get around to it.  It's from a 256K MIO.

My 1.1K (27128 EPROM) is identical to to the 1.1 above dumped from the EEPROM.

  • Thanks 1

Share this post


Link to post
Share on other sites
3 hours ago, JR> said:

My 1.1K (27128 EPROM) is identical to to the 1.1 above dumped from the EEPROM.

Much appreciated JR>. Good to know my 256K MIO ROM matches your 1.1k.

 

So now that this thread has verified ICD ROMs for the 256KB (1.1k) and 1MB (1.1m) MIO, I wonder if there really are any other versions as rumored and implied to exist in previous forums and such.

 

In that light, it would still be good if anyone else has original ICD MIO ROMs to dump and check.

Share this post


Link to post
Share on other sites

there were more versions... you don't want the 1.0 versions though...buggy buggy buggy bad...

 

also, I might add the the 'blue jumper wire' should be on the other side (trace side, not component side) of the PCB on your 1 meg MIO... if it isn't the thing must have broken off or something but it should be there...

Edited by _The Doctor__

Share this post


Link to post
Share on other sites
15 hours ago, _The Doctor__ said:

there were more versions... you don't want the 1.0 versions though...buggy buggy buggy bad... 

I am interested to find those versions to compare and preserve.

 

15 hours ago, _The Doctor__ said:

also, I might add the the 'blue jumper wire' should be on the other side (trace side, not component side) of the PCB on your 1 meg MIO... if it isn't the thing must have broken off or something but it should be there... 

Ah thanks, looks like you are right!

1mb_mio_solderside.jpg

Share this post


Link to post
Share on other sites

I burned 1.1 over top of 1.0, just like almost everyone else did. We didn't want to rear it's ugly head again, and we didn't want to spend money either.

Don't worry though... there is always someone out there who just got frustrated with the thing and didn't upgrade or know how and simply boxed it up as is moving on to another device or platform entirely.

  • Like 2

Share this post


Link to post
Share on other sites

_The_Doctor__, wtf is the "almost rice" version?

 

You really should keep your mouth shut on topics you know nothing about. 

 

The "blue" wires on the back of the MIOs had several functions and it doesn't matter which side of the PCB they were on. I've seen ICD put them on either side.. top or bottom.  

 

One was the deletion of the 12v power circuit from the design which happened fairly early on in the production history of MIOs, so most of them were built this way. 

 

The second was a propagation delay for the highest order DRAM address line. It used a few spare gates in one of the ICs to add ~10-20ns of delay to that line so it would more closely line up with the others in the DRAM access timing. 

 

Almost Rice (Tuon Ho,) is a personal friend of mine..  I assure you he had nothing to do with MIO firmware development. WareRat is the man responsible.. You should get your shit straight before flapping your jaw. 

 

Somewhere, I've got 1.2 and 1.3 ICD MIO EPROM binaries and partial source code.  I might get persuaded to dig them up if someone's interested.. But not tonight. 

 

 

 

 

 

 

  • Like 1

Share this post


Link to post
Share on other sites

Whatever hot head,

I've identified the right person previously, so I mixed it up this time... blow your stack and go *pe SH*t...

thanks for the overly angry reactive blast though...

I believe I messed up with the forums @ whoever function while clicking about for the correct name and let the paste function fly. I more than likely was reading a post where (see how it was twice and doubled as different on the @ tag almost rice & almostrice) (whatever way it is in the forum was discussing something in this area, you act as if I bad mouthed the guy or something. What a way to go f'n nuts over nothing. so I pasted the wrong name and it happened that way in the post... go bonkers raging bull.

 

I must have known a little something about the power supply deletion and other details...

It's great to see anger never dies.

 

I know it's warerat as I'd asked some questions of him not long ago... in any event it can be fixed...

 

Hey @BillC it's possible you have the wrong name in your post right above mine.... it depends on what your referring to... but you are the second post in the thread...

Edited by _The Doctor__

Share this post


Link to post
Share on other sites

Just be clear on the new and improved @warerat version, if you swap to d9: it will screw up the serial and parallel port as well and sometimes corrupt the ramdisk if it's been swapped...

go ahead and try it, and if you don't have it, that's okay, go and install it in altira it might show the same there....

*edit * Okay I tried it in altira swap a d8 ram drive to d9 and then go look at parallel printer settings and rs232 settings.... if you change them well who knows what it does...

would be cool to have drive up to 16 using the lettered drive convention... anyway..

 

so parking doesn't work but you do have a couple choices if it were to be fixed, disallow the swap to d9 and get rid of parking....

or fix it... one could even make it so you could choose R1-R4 as the serial port if this were to be worked on further...

since that was also something considered in the design... remnants of that exist or the bug wouldn't be able to show the cycling of ports when the bug fires off. It might take a little decision making wile looking at the different roms to see if the partial functions would be fixed of finished and the dropped add on board code were to stay or go, would have been great to have the add on boards brought to fruition or even better ones...

 

took me two tries to get the @ tag to work... It would seem you can't just type and go and my fat fingers touch the mousepad... you have to tap the name and then it goes...

 

so hopefully with tag corrected it will get the attention of the powers that be this time (which was the hope the first time)

maybe get angry with the bug, not the folks who see them...

Edited by _The Doctor__

Share this post


Link to post
Share on other sites
2 hours ago, MEtalGuy66 said:

Somewhere, I've got 1.2 and 1.3 ICD MIO EPROM binaries and partial source code.  I might get persuaded to dig them up if someone's interested.. But not tonight

Never knew of 1.2 and 1.3 until now. I'm interested, but it's been 30+ years already, so no rush. :D Are 1.2/1.3 of ICD origin, or earlier improvements by @warerat on the journey to the current 1.41?

 

I would also hope it's been long enough now that the source code, at least for the ICD revisions, could be shared publicly. :thumbsup:

  • Like 1

Share this post


Link to post
Share on other sites
10 hours ago, Nezgar said:

Never knew of 1.2 and 1.3 until now. I'm interested, but it's been 30+ years already, so no rush. :D Are 1.2/1.3 of ICD origin, or earlier improvements by @warerat on the journey to the current 1.41?

 

I would also hope it's been long enough now that the source code, at least for the ICD revisions, could be shared publicly. :thumbsup:

 

As far as the differences between the 256K and 1MB versions of the MIO, the official ICD ROMs were created from the same assembly source, with a macro defining which version to build (their comments, not mine):

 

          if ameg
           jsr    comkey          ; waste 3 bytes... 1Meg and 256K versions
           lda    #$10            ;  are not same size
          else
           lda    #$04
          endif

 

This is why there is an offset between both ICD versions.  My guess is they did this to obfuscate the differences to discourage folks from upgrading themselves and having them do the memory upgrade for you.  The other variants you might find out there likely just have one-byte difference ($04 vs $10).  All this means is someone just patched the max bank byte on the 256K version to run on a 1MB, otherwise they are identical.

 

I know 1.2 is of ICD origin, but doesn't really have any major changes.  Use at your own risk.

 

 

 

MIO12M.128

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites
On 9/28/2019 at 9:22 PM, _The Doctor__ said:

Hey @BillC it's possible you have the wrong name in your post right above mine.... it depends on what your referring to... but you are the second post in the thread...

It's been a long time since I read through the reproduction MIO thread and you are correct, I meant to mention Warerat instead of Almostrice.

Share this post


Link to post
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...