fell
Vector Runner
Posts: 11
|
Post by fell on Aug 23, 2016 15:31:35 GMT -5
Hi all, a newbie here I'm interested in detecting whether I'm running on a GCE or MB BIOS. I can't find an MB BIOS image online or I'd find the address of the MB string in the ROM and check for that at runtime. Any tips?
|
|
|
Post by Mayhem on Aug 23, 2016 18:37:54 GMT -5
BIOS checksum perhaps?
|
|
|
Post by binarystar on Aug 23, 2016 20:03:51 GMT -5
The boot copyright text is located somewhere on the rom ("MB" or GCE") just checking that ROM location should do it. Maybe someone can chime in with the address?
|
|
fell
Vector Runner
Posts: 11
|
Post by fell on Aug 24, 2016 5:11:29 GMT -5
With the widely available GCE BIOS, $F101 contains the "g GCE 1982" string; but printing from that location on my MB Vectrex shows the same "g GCE 1982" string with no MB replacement!
I don't see any other instances of GCE in the ROM to try. I may just have to write a little prog to run on the Vectrex that'll scan the ROM for the string.
|
|
fell
Vector Runner
Posts: 11
|
Post by fell on Aug 24, 2016 6:09:50 GMT -5
Have now tried that; my prog can find a couple of GCs when I test it on the emulator, but can't find an MB on the hardware! Hmmmm.....
|
|
|
Post by cNp on Aug 25, 2016 9:26:54 GMT -5
My guess would be that MB machines still have GCE in the BIOS and that's why you HAVE to put GCE in the opening lines of any Vec program for it to work... but it's just a guess
|
|
fell
Vector Runner
Posts: 11
|
Post by fell on Aug 25, 2016 11:24:21 GMT -5
Yes, but of course they must also get that MB string from somewhere, so it must be in the ROM too For some reason though I still haven't had any luck finding it with my native string searcher. Anyone has an MB ROM image? If not I guess I'll pull the cover off the ole gal and grab the ROM, assuming it's socketed.
|
|
|
Post by binarystar on Aug 26, 2016 18:18:37 GMT -5
Okay, I wrote a little program to search the built in ROM for string matches. If it's an MB Vectrex, you can find the string "g MB 1982" at $F125. On the GCE bios used by ParaJVE, you can find the string "GCE" at $F128. There may be a couple other MB (or Bandai?) bios versions with different string addresses though, not sure and I can only find the ROM for the GCE bios online.
The boot code on the MB version still compares the header bytes to a "g GCE 1982" string, presumably to allow US cartridges to be used worldwide.
Both my MB Vectrexes have the BIOS checksum $7931 but later 'no-hum' models may differ. The GCE BIOS used in ParaJVE has the checksum $B7B4. I believe the no-buzz vectrexes which have issues with some homebrew software and hardware have the checksum $7ADB.
|
|
fell
Vector Runner
Posts: 11
|
Post by fell on Aug 27, 2016 4:04:08 GMT -5
Hi binarystar, brilliant, thanks very much! Not sure why my own little string finder failed, but no need to pull my ROM now.
Indeed it looks like I can check $f128 for a B or a G to know what I'm running on.
|
|
|
Post by binarystar on Aug 27, 2016 6:14:26 GMT -5
I think checksum would be the most reliable way of checking version but that takes a little time to compute.
Does anyone have ROMs for all of the different BIOS versions?
|
|
fell
Vector Runner
Posts: 11
|
Post by fell on Aug 27, 2016 15:48:12 GMT -5
I'd also love a set of BIOS ROM images. Hmm, checksumming may be too expensive in the particular strange application I need this for (and sorry Mayhem, I had somehow missed your earlier suggestion of same). Although, with a romset I could maybe find a few hundred bytes that vary between versions and checksum just those. Completely unrelated but just discovered Vecdrum -- brilliant, love it
|
|
|
Post by thomas on Sept 20, 2016 15:44:40 GMT -5
I'd also like to see a set of all three bioses finally - I only have two here in my units: 7ADB and b796. I could probably easily dump them if necessary. I myself detect the no-buzz in the moment via it's different print_str routine - you can see the rev changes in the exec pdf documented, too. Since there are only three versions that I've read about and from what I checked at one point they seem to be well documented i think you don't really need to create the whole checksum - just check for a specific rev. change.
lda #$58 cmpa $f4f6 ; look for aslb in rev.b1 changes bne earlierVectrex
|
|
|
Post by Malban on Sept 20, 2016 16:45:52 GMT -5
Hi, wouldn't mind the 0x7adb BIOS if you can dump - the only one I ever found in the depth of the internet was the 0xb796.
Regards Malban
|
|