cpb@doc.ic.ac.uk (C P Brown) (03/18/91)
I'm using Dave Haynie's SetCPU V1.6 with an '030 board on an A500, and I see that there is an option to add ROMS from expansion devices into 32-bit memory. The documentation mentions the codes required for the 2090A disk controller. Does anyone know the equivalent codes for the A590 ROMs? Such things as manufacturer and product code, start and end address, length are needed. Also the documentation seems to be a little out of date as there are some options in SetCPU1.6 which are not mentioned in the docs. I'm particularly interested in the KickBoot option with KeepExec. I reckon by the sound of it that this will load Kickstart from the indicated disk/file and retain the Exec as currently colnfigured. Will this keep the memory structure nodes intact I wonder? Also, how does one get Kickstart into a file? Thanks for any help, email preferred. Phil
daveh@cbmvax.commodore.com (Dave Haynie) (03/20/91)
In article <3026@gould.doc.ic.ac.uk> cpb@doc.ic.ac.uk (C P Brown) writes: >I'm using Dave Haynie's SetCPU V1.6 with an '030 board on an A500, and >I see that there is an option to add ROMS from expansion devices into >32-bit memory. The documentation mentions the codes required for the 2090A >disk controller. I never found an A590/A2091 setting that works. It could be that the grain of the A590/A2091's ROM vs. I/O registers is too tight. Also, I'm not entirely sure the A590/A2091 runs the code out of ROM -- you have your choice as a device driver writer with autoboot ROMs of running from ROM or RAM if you have 16 bit ROMs, as I understand it anyway. In any case, that setting probably won't show much improvement with an A590/A2091 anyway; certainly nowhere as much as it did for the A2090a. >Also the documentation seems to be a little out of date as there are some >options in SetCPU1.6 which are not mentioned in the docs. I'm particularly >interested in the KickBoot option with KeepExec. There's no such option as KICKBOOT. That's probably KICKROM you're thinking of. The documentation (at least the documentation I supplied with the 1.6 distribution) does mention KEEPEXEC under the KICKROM section. Essentially, you can get into trouble booting with Exec still intact in many cases. When you normally do a warm reboot, Exec will wake up, find ExecBase still intact, and generally assume that a few of the things ExecBase knew about, like the amount of Chip RAM available, is correct. However, SetCPU temporarily hijacks a chunk of Chip RAM to effect its reboot. You get that back when you type SetCPU FASTROM or SETCPU KICKROM under the new OS (SetCPU maintains three kinds of FASTROMs -- the FASTROM, you get via the FASTROM option with no reboot, a SLOWKICK, which is KICKROM with ROM image in Chip RAM, and FASTKICK, which is KICKROM with the ROM moved into Fast RAM). Anyway, if Exec is left intact during the KICKROM operation, the Chip RAM that SetCPU gives back may already be in Exec's memory lists, depending on what your setup is. So KICKROM will normally clobber ExecBase. Just in case you don't want that clobbering to take place, you can specify KEEPEXEC. >I reckon by the sound of it that this will load Kickstart from the indicated >disk/file and retain the Exec as currently colnfigured. Will this keep the >memory structure nodes intact I wonder? Well, it may. You still have to reset, but you might possibly find things like recoverable RAMDisks still around. That depends more on the Exec versions than SetCPU, but somewhat on SetCPU, too, since it does in fact hijack this Chip RAM, it doesn't AllocMem() it or anything. SetCPU essentially becomes the operating system for a moment or two during the rebooting process, where it runs Exec in an ever-so-slightly virtual environment, hiding Chip RAM, tricking the system into rebooting out of SetCPU rather than ROM, etc. It took many nights of hacking, and lots of Guinness, to figure that part out. >Also, how does one get Kickstart into a file? You can do something like this in C, for 256K ROMs. void main() { FILE *file = fopen("SYS:KickStart","w"); char *buf = (char *)0x00fc0000; if (file) { fwrite(buf,1,0x00040000,file); fclose(file); } } If you have a KickStart disk instead, you can write a program, or use your favorite disk sector editor, to copy disk blocks 1 though 512 out to floppy. A good starting point for the code would be to close the code SetCPU itself uses to read in the floppy's ROM image, since the source code is provided (again, at least the way I sent it out). By the way, if you dump ROM, make small edits to the image, and load it something like: SetCPU FASTROM SYS:KickStart SetCPU will, in fact, load the ever-so-slightly modified ROM image without forcing you to reboot. This is basically to support the kind of patch hacks like SetCPU V1.5 did for you automatically, without me getting blamed for them. But don't tell the software guys, they would consider this evil too. >Phil -- Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests" {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: hazy BIX: hazy "What works for me might work for you" -Jimmy Buffett
jason@cbmami.UUCP (Jason Goldberg) (03/20/91)
In article <19989@cbmvax.commodore.com>, Dave Haynie writes: > You can do something like this in C, for 256K ROMs. > > void main() { > FILE *file = fopen("SYS:KickStart","w"); > char *buf = (char *)0x00fc0000; > > if (file) { > fwrite(buf,1,0x00040000,file); > fclose(file); > } > } > Can you imagine a MAC engineer giving code to dump Apple ROMs to disk? :-) P.S. Won't the software guys yell at you for going straight to that hardware address? -Jason- --------------------------------------------------------------------------- Jason Goldberg UUCP: ucsd!serene!cbmami!jason Del Mar, CA
David.Plummer@f70.n140.z1.FIDONET.ORG (David Plummer) (03/29/91)
JG> JG> > You can do something like this in C, for 256K ROMs. JG> > JG> > void main() { JG> > FILE *file = fopen("SYS:KickStart","w"); JG> > char *buf = (char *)0x00fc0000; JG> > JG> > if (file) { JG> > fwrite(buf,1,0x00040000,file); JG> > fclose(file); JG> > } JG> > } JG> > JG> Can you imagine a MAC engineer giving code to dump Apple ROMs to JG> disk? :-) JG> JG> P.S. Won't the software guys yell at you for going straight to that JG> hardware address? JG> JG> JG> -Jason- JG> What did you want, DumpRomDisk(FILE *image) calls in Kickstart!?!? -- David Plummer - via FidoNet node 1:140/22 UUCP: ...!herald!weyr!70!David.Plummer Domain: David.Plummer@f70.n140.z1.FIDONET.ORG Standard Disclaimers Apply...