On 4/2/18, 6:04 AM, "Mark Cave-Ayland" mark.cave-ayland@ilande.co.uk wrote:
On 02/04/18 13:19, Joe van Tunen wrote:
> From: Jd Lyons lyons_dj@yahoo.com > Date: Monday, April 2, 2018 at 3:52 AM > > On Apr 2, 2018, at 6:43 AM, Jd Lyons via OpenBIOS mailto:openbios@openbios.org wrote: > > load hd:12,\ppc\Quadro900Mac.rom load-size=c400 adler32=5ff1641b > load-base 100 dump > > Result: > > 00800000 > DEFAULT CATCH!, code=300 at %SRR0: ff847470 %SRR1:0000b030 > > Not sure on that load-size, and I have no clue what the adler32 is? > > > What is the size of the Quadro900Mac.rom file? adler32 is a checksum algorithm (look it up on Wikipedia). It is called by boot|load. Try calling it yourself with > > load_base load-size adler32 > > Looking at (init-program) more carefully (which is called after boot|load), it appears that the “unrecognized Client Program format” error causes the loaded data to be released, so you can’t dump it or byte-load it or adler32 it. > Therefore, you must load only the fcode part of the rom or make your own load command.
From memory the IEEE-1275 specification states that a minimum of 8MB memory should be available at load-base for the bootloader, so OpenBIOS simply maps this region on startup.
Hence with OpenBIOS you can quite happily do a "load hd:,\path\to\file" and then dump it with "load-base 100 dump" as above even if the file format is unrecognised.
I suspect the problem is that your Quadro900Mac.rom is in a format which is recognised by init-program as executable which proceeds to try and run it. But as rightly pointed out earlier in the thread, load should only move the file into memory at load-base and run init-program - it should be up to the user to manually switch to the saved program state with "go".
ATB,
Mark.
So far, without trying the load ourselves, we only have evidence that the load is not accepting the format (which is a PCI option rom with fcode image - if it's just the fcode image than the file should be renamed to make it clear). We don't have evidence that load is running the fcode. You need to check "here" before and after load to see if anything is added to the dictionary (if the fcode makes at least one definition).