Jump to content
IGNORED

In-place Ultimate 1MB / Incognito ROM editor and flash tool


flashjazzcat

Recommended Posts

Clearly Murphy has just raised his head. I think Hias is asking for an in-place recovery solution which doesn't require external equipment;

 

Where in his message he says ".....doesn't require external equipment", is there something written in white ink on white paper so that I don't see it?

 

 

(or "mess around" with them, as per your contrived attempt at negative advertising),

 

Negative ad!!, where did I say anything bad about uflash? flashing a chip always has its risks no matter what you use, messing/playing around with hardware/software is something we all do on a daily basis. I fail to understand the logic behind your interpretation of my words. Should I ask your permission before I reply to anyone if the subject matter is somehow related to one of your works?

 

If I wanted to make negative impressions or if i was as paranoid as you are, I would have come here and post a message and ask you how come the code you pasted in Sourceforge in AspeQt ticket system had so many errors in it when it was supposed to be a working cut and paste copy of your own implementation of Folder Images. I could have said, that, you in fact tried to sabotage me by posting wrong code there. I am not however a paranoiac, even though I still don't know how that code could have any errors if it was indeed a cut and paste copy of a supposedly working code, I never asked you that question. So relax.... and take it easy, there is no need to jump all over me on every occasion.

Edited by atari8warez
Link to comment
Share on other sites

Hias, if you have a programmer you already have a plan 'B'

I have a programmer, but no PLCC adapter. I also should have an Atarimax 8Mbit cart somewhere - but this still requires me to open my U1MB 800XL and swap the PLCC flash around.

 

Back then when candle designed the U1MB we talked about desaster recovery strategies and he told me that there would be none. We both had the idea that we could use the Turbo Freezer to do this. Since then this is sitting on my TODO list, I haven't found the time yet to write a desaster recovery flasher myself. So I thought it'd be better to ask if there's some software out there that could already be used to do this and I don't have to reinvent the wheel.

 

Just did a few tests with my U1MB 800XL:

 

On powerup BIOS mode is set and the second 8k block of the BIOS (bank $29) also seems to be mapped to $A000.

 

So, in the worst case the Atari might detect some "startable" cart code and crash. In this case we can use the freezer debugger to manually configure the U1MB:

 

It seems that writing $80 to $D380 is all we need to configure the U1MB. Then we can (temporarily) disable SDX by setting $D5E0 to $80 and we have a clean setup.

 

Now all that's left to do is initiate a cold start, for example by going back to the freezer menu and pressing reset: This will also put the U1MB into reset state, so we'll need to set $D380 again, but now nothing is mapped at $A000 (at least with the original CPLD logic) and we can do a clean oldrunner boot.

 

If pressing reset doesn't work with the new logic, we have to manually initiate a (software) coldstart by setting the return address to $E477 and then do a normal resume (space bar in freezer main menu). At this point Murphy showed up with a nice "hello my friend, I'm back again" and I ran into a bug in the turbo freezer code: setting the return address didn't correctly wrap around in the stack area and $E4 ended up in $0200 instead of $0100. Argh, thanks Mr. Murphy! OK, now I fixed the freezer code, an alternative is to manually set $0100 to $E4 in the debugger.

 

TL;DR: Setting $D380 to $80 seems to be all that's needed before a flasher can do it's job.

 

so long,

 

Hias

Link to comment
Share on other sites

I couldn't resist and quickly hacked together a proof-of-concept desaster recovery tool - use it at your own risk :)

http://www.horus.com/~hias/tmp/u1mb-desaster-recovery.zip

 

Boot the ATR with the freezer oldrunner enabled, load UFLASH.COM (sorry for the nameclash, couldn't think of a better name), then choose option 1, keep starting bank and number of banks at their default (0) and choose one of the 2 ROMs on the ATR: OLD.ROM is the one my U1MB shipped with, NEW.ROM is this one from candle's website.

 

The flasher supports the AMIC 29040B chip and also AMD 29F040, ST 29F040B and BM 29F040, but not the newer (ST? SST?) chip with the 4k sector blocks (sorry, don't have one to test and it would require some significant code changes, my current flasher implementation needs a minimum block size of 8k).

 

As a safety measure the flasher disables the OS ROM when it initializes the flasher code, so your Atari should crash if you run it without the freezer oldrunner enabled. Having the OS already in RAM works, too (do a "COLD /N" in SDX, boot the ATR, load HISIO.COM and then UFLASH.COM).

 

@Jon: sorry that I hijacked your thread!

 

so long,

 

Hias

  • Like 2
Link to comment
Share on other sites

I couldn't resist and quickly hacked together a proof-of-concept desaster recovery tool - use it at your own risk :)

 

 

Would have loved to test it had I owned a Turbofreezer, but I don't, so I guess I will have to rely on the programmer for disaster recovery myself. I do keep an extra AMIC chip at hand in case I screw up the original one, in the meantime I have an idea for programming the chip with the programmer but without removing it from its U1MB socket, I'll see if it will work and if it does I will make the procedure public.

Link to comment
Share on other sites

I couldn't resist and quickly hacked together a proof-of-concept desaster recovery tool - use it at your own risk :)

http://www.horus.com/~hias/tmp/u1mb-desaster-recovery.zip

Great stuff Hias. I'm only sorry I don't have the equipment needed to test this.

 

(sorry for the nameclash, couldn't think of a better name)

How about HiFlash. :)

 

The flasher supports the AMIC 29040B chip and also AMD 29F040, ST 29F040B and BM 29F040, but not the newer (ST? SST?) chip with the 4k sector blocks (sorry, don't have one to test and it would require some significant code changes, my current flasher implementation needs a minimum block size of 8k).

All the newer boards have chips with 4K sectors, but quite honestly I think the risk of bricking with these is greatly reduced anyway, the need for extensive read/erase/flash cache cycles being completely eliminated. So a recovery tool for 64KB sector chips is probably going to the most useful. Just flashing the PBI BIOS when using a chip with 64KB sectors requires the caching and reprogramming of the main BIOS and SIDE loader. The caching is completely unnecessary with the 4KB sector chips.

 

@Jon: sorry that I hijacked your thread!

Not at all! I'm grateful to those who can contribute something worth reading. :D

 

Thanks!

Link to comment
Share on other sites

Sorry - my prototype is uninstalled, and I don't have any of my programmer software installed on my new machine. Let me know if the ROM rdea6 provided is not adequate, and I can get my shit configured this weekend.

Link to comment
Share on other sites

Candle confirms, one can flash current version of bios into u1mb without paying any attention to cpld content

Thanks for the confirmation!

 

In the meanwhile I found out myself that this works - no risk, no fun :)

 

so long,

 

Hias

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...

Brave souls with external programmers at their disposal, please find below the first test build of uFlash v.1.2 with SIDE and SIDE2 support.

uflash_1.2_test1.zip

I've performed only limited testing here so far but wanted to share here for the purposes of diverse testing on different hardware set-ups.

  • SIDE/SIDE2 are not detected automatically, since it's quite common for SIDE to be present alongside Ultimate (which is auto-detected and gets priority). To update SIDE/SIDE2, you must select Device->Open, then pick SIDE2 or "SIDE (original)" from the list. Beyond that, the only check performed is that SpartaDOS X is present. I will look at making device selection as streamlined as possible once SIDE support has proved to be basically reliable.
  • When updating Rev. A SIDE carts (i.e. not SIDE 2), please ensure the machine doesn't have Ultimate 1MB present. SIDE1 uses the same location for the banking register, so serious problems are likely. SIDE2 doesn't suffer from this problem, so you may update SIDE2 on an Ultimate machine without issue.
  • Since it's possible to fool the utility into thinking that certain hardware is present when it is not, please employ some basic common sense when manually selecting hardware. Surprisingly, it's probably worth repeating that users should ensure they have a rough idea of what hardware is present in the machine before running this tool. :)

Since the base register is now dependent on device selection, I'd also be interested to hear of any disruption to Ultimate/Incognito functionality.

 

Because it's quite easy (although not completely trivial) to add support for different hardware, I might consider adding support for things like MyIDE (II), IDE Plus, etc. Naturally the tool is reliant on some kind of memory upgrade being present: this was a given when only Ultimate and Incognito were supported, but now we're branching out a bit, it's worth mentioning again.

 

Any suggestions for or information on additional devices to support would be welcomed. As I say: take care with this, and let me know of any problems so I can get them fixed.

Link to comment
Share on other sites

Brave souls with external programmers at their disposal, please find below the first test build of uFlash v.1.2 with SIDE and SIDE2 support.

Since the base register is now dependent on device selection, I'd also be interested to hear of any disruption to Ultimate/Incognito functionality.

 

Because it's quite easy (although not completely trivial) to add support for different hardware, I might consider adding support for things like MyIDE (II), IDE Plus, etc. Naturally the tool is reliant on some kind of memory upgrade being present: this was a given when only Ultimate and Incognito were supported, but now we're branching out a bit, it's worth mentioning again.

 

Any suggestions for or information on additional devices to support would be welcomed. As I say: take care with this, and let me know of any problems so I can get them fixed.

Thanks Jon.

The only thing I noticed is that reboot option did nothing, I have to power cycle the Atari(Umb1) to reboot. I did not notice any disruption to Umb1 functionality. More support for like MyIDE(II), and IDE Plus would be greatly appreciated. A 130XE with a 320k memory upgrade was not enough ram to do the flashing.

Edited by rdea6
Link to comment
Share on other sites

Reboot works here following a SIDE flash, so I'm unsure what the problem might have been there. The program checks for the presence of SDX, and if found does a "COLD". Otherwise, it simply calls the OS coldstart routine.

 

I'm Just thinking: ROM images frequently have a lot of 0xFF padding in them, so this could be collapsed on loading and the relevant sectors skipped. Doing so would enable a 256KB SDX ROM to fit quite comfortably into 16 banks. Unfortunately the upper 4K blocks of empty banks still have the cart header in them, but at least the lower 4KB chunks could be skipped over. Something to think about.

 

Anyway - I'll aim to support the following devices:

 

Sic!

AtariMax (1Mbit and 8Mbit)

MyIDE+Flash

MyIDE II

IDE Plus 2.0

Edited by flashjazzcat
Link to comment
Share on other sites

I think I may have found an issue, or maybe I am just doing something wrong?

 

Running Ultimate 1mb in an Atari 130xe, In Standard Memory Configuration, and Standard OS,SDX DISABLED, SIDE Disabled Basic cart selected. When I put a BOOTABLE DISK in the drive and power on with OPTION held and drive drive does nothing.

 

If I switch to High Speed OS, all other setting the same the drive boots and loads.

 

If I enable SDX I can access the drive

 

So, its just from Stock OS, that the Atari 1050 will not Boot.

 

Am I doing something wrong or might this be a bug?

 

Best Regards

Robert.

Link to comment
Share on other sites

I have no clue what could be wrong there. Anyone else experienced anything like this? Just tried the same set-up and disk booted, so I wonder if it's something to do with the drive? In any case, it doesn't appear to be a logic issue, and is certainly not connected to the APT drivers or software (since they're not used here). Unless the stock OS was corrupted in some way during flashing, it's not a uFlash issue either.

Link to comment
Share on other sites

Figured it out. I had installed the SIO mod FIFO and this was causing the problem. I had forgotten all about, since I installed it about a month or so ago. I was about to pull out the U1mb and drop in a MMU and OS chip to see if it was an OS problem. I spotted the FIFO and decided I would try pulling it first.

 

For some reason it made stock 1050's not work at all. My Happy 1050's would only boot in Hi-speed OS. But Indus, Rana and XF-551 would boot in Standard and Hi-speed but the loads were kinda buggy.

 

Now I have to go back and put the hyper-xf rom back in my xf drive and see if the FIFO mod was also the cause of the issues I was having with that drive too.

 

I will continue this over in the FIFO thread.

 

 

Best Regards

Robert

Edited by venom4728a
Link to comment
Share on other sites

Anyway - I'll aim to support the following devices:

 

Sic!

AtariMax (1Mbit and 8Mbit)

MyIDE+Flash

MyIDE II

IDE Plus 2.0

As we discussed on PM 2 months ago about the Universal Flasher that Candle and I would be working on, adding support for Sic!, SIDE/SIDE 2 and IDE+ 2.0 will be easy just by changing 2 variables. If AtariMax and MyIDE use a similar JTAG code, it should be rather easy to accommodate those as well :)

Edited by AtariGeezer
  • Like 1
Link to comment
Share on other sites

As we discussed on PM 2 months ago about the Universal Flasher that Candle and I would be working on, adding support for Sic!, SIDE/SIDE 2 and IDE+ 2.0 will be easy just by changing 2 variables. If AtariMax and MyIDE use a similar JTAG code, it should be rather easy to accommodate those as well :)

 

Not a discussion I recall being involved in, but to reiterate the obvious: the flashing methods required for devices which use the same family of chips are virtually identical. It's the banking methods which present a given bank of RAM at the required address which are different, not to mention Sic! using interleaved banks, IDE Plus 2.0 using separate ROMs for SDX and PBI and mapping them at different addresses using different banking registers... all this becomes apparent once something has actually been written.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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