-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IC3 6801V0B55P is dumped and more info #1
Comments
first, of all, I want to thank both Vogons users "Artex" and "cricket" for replaying to me. So, "cricket" sold the unit and that means 6801V0A88P and/or ROM version 1.7C road is dead end for further investigation and what exactly is the case. Unless another such unit surface, which I believe is highly unlikely. "Artex" even 10 years later found the unit and everything in my initial post is now confirmed, i.e. proven fact and no longer in the realms of hypothesis. So, "Artex" unit has regular/generic 6801 micro-controller (and not Roland custom 6801V0B55P part) + HD74LS04P + External EPROM with firmware "version 1.5", i.e. exactly like the unit I described in my initial post and we know that mine unit received those modifications/upgrades after it was sent back to Roland for a repair, because it has a single owner since new for the last 40 years. In fact that unit is made over 1 year before there was version 1.5. Most interesting finding is that only 1 byte is the difference in the ROM between "Artex" unit and mine unit (technically not really mine, but just calling it that in short, the unit owned by our family friend): and that byte is exactly the revision number - I ran both ROMs in MAME emulator with the fix I described here: https://www.vogons.org/viewtopic.php?p=1203347#p1203347 and indeed that different byte is the revision: I highly doubt that in my ROM that byte flipped from '00' to '39' due to aging, I do believe when Roland did the repair and upgrade of the unit they put that '39' to indicate either the repair or the port of firmware v1.5 to regular/generic 6801 micro-controller. However, probably on later stage they realized that causes issues with existing software - like Vogons user "cricket" reported the unit with ROM v1.7C was not recognized by the Win 3.1 drivers: https://www.vogons.org/viewtopic.php?p=681558#p681558 in any way, the important fact is that we now have confirmed good dump of that ROM used with regular/generic 6801 micro-controller, because both mine dump and "Artex" differ just in one byte and the meaning of that byte is known and demonstrated on the above 3 pictures. Bottom line:
So, because in that case we have regular/generic 6801 micro-controller + HD74LS04P + EPROM 2732A chip (for example "Fujitsu MBM2732A"), IMHO, it's good idea on MPU-IMC clone PCB space for those two components be added, i.e. exactly like it's in the MPU-401 box, when 6801V0B55P is used, HD74LS04P and EPROM 2732A are just left unpopulated. Last, but not least, now after we have those ROM dumps and the code gives idea how the 6801 micro-controller is supposed to communicate with the HG62E08R10FS that I believe can be re-implemented. the same applies for "HD61J221F" and other similar chips used in the case of ISA cards for that purpose, i.e. the bridge between the bus and the 6801 controller. |
wow, incredible research! it should be possible to reimplement the HG62E08R10FS using a CPLD, or perhaps a small FPGA. the next step would be to reverse engineer and comment the firmware to (as you mentioned) understand how the gate array is supposed to work. |
please, if I can further help with anything feel free to emails me: matura713@gmail.com. |
i won't be able to look into this for quite some time since i am busy with other projects. but feel free to try your hand at reverse engineering the firmware that you've dumped. |
actually, the MAME source code: https://github.com/mamedev/mame/blob/master/src/devices/machine/mpu401.cpp gives good idea how at least the gate array and the 6801 micro-controller are communicating. what I am not sure is if the speed in their code is correct, because MAME code says "/* 4 MHz as per schematics */", but the 6801 micro-controller in my repaired unit is 1MHz. maybe, there is some internal divider or something, i.e. externally it's 4MHz and internally 1MHz, not sure. anyway, just making a note, it's all subject to further in-depth analysis of the firmware code. |
hi Eric, you say:
and that's why I just want to let you know that 6801V0B55P was actually dumped 10 years ago, I posted details here:
https://www.vogons.org/viewtopic.php?p=1202055#p1202055
and here:
https://www.vogons.org/viewtopic.php?f=62&t=96744
that dump is the latest known ROM for 6801V0B55P, i.e. version 1.5A, but 6801V0B55P with ROM version 1.4B is confirmed to exist in the wild, at least based on one report:
https://forum.vcfed.org/index.php?threads/roland-mpu-401-eprom-upgrade-1-5a.1238114/
in short that means command 0xAC returns 15 or 14 (respectively version 1.5 or 1.4) and command 0xAD returns 1 or 2 (respectively revision 'A' or 'B' to designate 1.5A or 1.4B) :
https://www.vogons.org/viewtopic.php?p=1202056#p1202056
the retro-computing community believes that 1.5A is the latest Intelligent MIDI firmware version, because that is what is also documented in the "MPU-401 Technical Reference Manual", but now, based on few findings that I made very recently, I have very strong evidence that there are newer firmware versions (and most importantly those new versions are for Generic 6801 and not for the custom and unobtainable now Roland part 6801V0B55P). it seems those newer firmware versions were introduced to existing devices mainly when an MPU-401 unit was sent back to Roland for a repair, which as you will see makes a lot of sense and here is how I came to that conclusion in chronological order:
thanks to a family friend, now a very old gentleman, who owns that particular MPU-401 unit since like 40 years, I was able to find out that unit has firmware which returns:
0xAC --> 0x15
0xAD --> 0x39
at first I was shocked and confused by that, as there is no known revision 0x39 of firmware 1.5, the only known one is revision 1, i.e. 1.5A.
that's why initially, I was thinking that it has to be some fault like maybe some bits flipped due to aging process where value '01' is stored in the ROM and it became '39', but digging further and further, as it will become clear below, showed me that is not the case and the firmware is really "1.5 revision 39".
What was even more confusing is that based on the label sticker on the bottom of the unit, it shows the unit is from May 1984, i.e. very very early unit, actually one of the earliest possible units - that is over 1 year before Roland released firmware 1.5, which release date is documented in "MPU-401 Technical Reference Manual" to be May 31, 1985.
So, based on "May 1984" date, what it should have is firmware 1.2, but yet it has 1.5 with some strange 0x39 revision number.
OK, it will be long, but digging deeper - I told the owner what I found out and how confusing it is and he told me the unit was sent back to Roland (he cannot recall the exact date or year) for a repair. So, I opened the unit and it was full of surprises:
at first that picture added some doubts to me, because it has "7" marked on the EPROM sticker, i.e. if my hypothesis is correct then that should mean firmware version 1.7, which is another unheard thing, but it took me almost no time searching to find that Vogons user "cricket" reported 5 years ago unit with ROM version 1.7C, as the post says:
https://www.vogons.org/viewtopic.php?p=681558#p681558
even it seems back then no one really paid much attention that version 1.7C is something actually new and unheard.
It's also important that the unit from the picture above with "7" marked on the EPROM is not using 6801V0B55P, but another chip 6801V0A88P, which adds up - different chip, different ROM version, i.e. 1.7C that is not seen on units with 6801V0B55P that are 1.4B or 1.5A.
https://www.vogons.org/viewtopic.php?p=296139#p296139
that to me indicates "version 1.5 revision DB"
here are the 2 important parts of that post:
"Artex" meant by that the EPROM chip and HD74LS04P, which are missing on most MPU-401 units, i.e. those with 6801V0B55P, which has build-in ROM and thus no external EPROM chip:
and "Artex" added:
and between HD74LS04P and the EPROM chip, the bigger one is the EPROM, i.e. "Artex" no doubt is talking about the sticker on the EPROM chip and that it's "Roland 1.5 DB" or "version 1.5 revision DB" (I guess that is the moment when they switched to that new format/style of the sticker)
Summary and final words:
it seems there are 3 designs:
6801V0B55P (build-in ROM, latest known version 1.5A, dumped 10 years ago by the MAME project), in this case the EPROM and HD74LS04P are not populated on the board, but there is space left for them (I guess especially useful when repair is needed and 6801V0B55P is replaced with generic/regular 6801 MCU and not Custom Roland part).
6801V0A88P + HD74LS04P + EPROM : latest known ROM version is 1.7C, unfortunately, dump is not available and Vogons user "cricket" that seems to have such unit is not active for years, i.e. cannot be reached. in any case I don't believe that case is important, because still 6801V0A88P is Roland part and unobtainable now
the most important and very interesting case - the case that started my investigation. it's so interesting, because it doesn't use Roland part, but instead off-the-shelf or regular/generic 6801 micro-controller + HD74LS04P + EPROM, i.e. design that is replicate-able. it seems ROM in my case is "version 1.5 revision 39", but there is "version 1.5 revision DB", i.e. the latest known as per the post of user "Artex" on Vogons. Too bad, "Artex" seems is not active for years on Vogons and no dump of that "version 1.5 revision DB". ([EDIT] it seems "Last active" on Vogons is not correct, I saw very recent posts by user "Artex").
Another interesting thing is that disassembling 6801V0B55P ROM 1.5A and the dump I made of "version 1.5 revision 39" from that repaired unit with the regular/generic 6801 micro-controller shows different instructions are used on the same places between the 2 firmwares - few examples:
LDAB (1.5A) --> LDB (1.5 rev 39)
LDAA (1.5A) --> LDA (1.5 rev 39)
STAA (1.5A) --> STA (1.5 rev 39)
and so and so on. Now, I know nothing about 680x-assembler and it took me a lot of searching to find out this:
http://datapipe-blackbeltsystems.com/windows/flex/asm4.html
which states:
and
or it seems "1.5 rev 39" is compiled as 6809-code, which I don't really get, because the PCB with that ROM has off-the-shelf regular/generic 6801 micro-controller. In any case, it seems as part of repairs (and I guess lack of stock of those custom Roland 6801V0B55P or 6801V0A88P parts), they replaced the chip with regular/generic 6801 and built that "1.5 rev 39" firmware. Something almost like Roland hacked themselves. Again, it's too bad Vogons user "Artex" is unreachable and we cannot learn more about that "version 1.5 revision DB" unit and what chip it has inside. ([EDIT] it seems "Last active" on Vogons is not correct, I saw very recent posts by user "Artex")
Bottom line is that 6801V0B55P on MPU-IMC can be replaced with (regular/generic 6801 micro-controller + HD74LS04P + "1.5 rev 39" firmware) and maybe with "version 1.5 revision DB" if someone makes ROM dump of such unit. So, it's one possible road for hardware preservation.
I hope that information is useful and/or interesting to you...
--Matt
The text was updated successfully, but these errors were encountered: