A useful analysis Vectrex console topic on the various BIOS versions was made by Prof. Dr. rer. nat. Peer Johannsen (Peer). Of Retro Programming - Vectrex Academy course fame offered at Pforzheim University.
Topic post thread found here:
https://vectorgaming.proboards.com/thread/2640/analysis-official-0xb796-0x7931-versions
Related web site post that is updated as needed with more information is found here:
https://itwww.hs-pforzheim.de/daten/mitarbeiter/johannsen/vectrex_lab/projects/bios_versions/bios_versions.htm
The first post of the thread in below. See subsequent posts for more information.
####
As far as I know, there are three "official" Vectrex BIOS versions which came in manufactured consoles. From what I read, those are commonly distinguished by their checksums and called:
0xb796: rev_a BIOS (GCE)
0x7931: rev_b BIOS (MB)
0x7adb: rev_c BIOS (MB)
The MB versions contain the same bugfixed version of Mine Storm which is different from the GCE BIOS Mine Storm.
Here is a detailed analysis of the differences between the three versions, listing the patches applied to the rev_a source code. Please not that my labelling of the patches (for a good) reason is slightly diffrent compared to the labelling in the rev_c source code (more on that later).
PATCH address comment
rev_a GCE base version
rev_b_0 0xff9f alternate version of Draw_Grid_VL
rev_b_1 0xffd3 zeros instead of KARSOFT...
rev_b_2 0xf01C abort intro on button press
0xefe7 subroutine for about on button press
rev_MB 0xf024 MB version patch, also lots of patches in Mine Storm code
rev_b1 0xf216 Joy_Digital patch
this is labelled as rev b1 change in the rev_c source
code, but does not appear in the official rev_b BIOS 0x7931,
but in the official rev_c BIOS 0x7adb!
rev_c 0xf4f6 change to height handling in Print_Str_d
0xffd3 minor pad bytes change
0xf024 minor pad bytes change
0xffee minor pad bytes change
0xedd8 minor pad bytes change
rev_d 0xf4b3 delay cycles change in Print_Str_d
this appears in the rev_c source code, but not
in the official rev_c BIOS 0x7adb!
The official BIOS images in the manufactured consoles contain the following patches:
0xb796 is GCE rev_a without any of the above listed patches
0x7931 is rev_a + rev_b_* + rev_MB patches (no rev_b1 patch!)
0x7adb is rev_a + rev_b* + rev_MB + rev_c (includes rev_b1 patch)
The rev_d patch is found in none of them, and according to the official Western Technologies patch labelling, 0x7931 is not a pure rev_b BIOS, and 0x7adb is not a pure rev_c BIOS!
As far as I could find out, there are three known BIOS source code disassemblies to be found on the internet:
https://www.playvectrex.com/designit/chrissalo/bios.htmdisassembly by Bruce Tomlin, Fred Taft, Malban
this is the official manufactured GCE 0xb796 BIOS
i.e. rev_a without any of the other rev_ patches
https://roadsidethoughts.com/vectrex/the-rum.htmJohn Hall
this is none of the official manufactured BIOS versions
this is rev_a + rev_b_0 + rev_b_1 patches
likely this is some intermediate version towards the MB changes
https://www.playvectrex.com/designit/joebritt/exec_rom_revc.pdfJoe Britt
labelled as rev c source code
this again is none of the official manufactured BIOS versions
this is rev_a + rev_b* + rev_c* + patches + the rev_d patch
This rev_d patch is found in neither of the three official BIOS (that is why I called is rev_d),
I do by now have a BIOS source code with compile time switches that can be configured to assemble exactly the three "official" BIOS versions 0xb796, 0x7931 and 0x7adb, and I have thus verified the above details.
Please contact me if you know of any other BIOS or source code versions.
Many Cheers,
Peer
PS: also to be found here (
https://itwww.hs-pforzheim.de/daten/mitarbeiter/johannsen/vectrex_lab/projects/bios_versions/bios_versions.htm )
####