home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PROGRAMS / UTILS / HARDWARE / BIOS32U.ZIP / BIOSSIG.DOC < prev    next >
Encoding:
Text File  |  1990-11-18  |  15.4 KB  |  293 lines

  1. BIOSSIG is a BIOS ROM Signature Identification Database/Program.  BIOSSIG
  2. is a "Work In Progress".  It is hoped that the program, written in Borland's
  3. Turbo Prolog 2.0, can someday be made to appear "artifically intelligent" in
  4. such a manner as to accurately determine the Signature of a BIOS ROM not in its
  5. current database.  In its current implementation BIOSSIG simply matches the
  6. contents of its database with the contents of your BIOS.  One option looks
  7. for an exact match and reports its results very quickly.  Another option
  8. only looks at BIOSs that have the same IBM Model Id Byte as your BIOS.  This
  9. option takes longer, but allows you to then scan the signatures of BIOS's with
  10. signatures similar to the one in your PC.  You may also print a formatted
  11. report describing the signatures of all of the BIOSs known to us today.
  12.  
  13. BIOSSIG starts in Color, without suppressing CGA "Snow".  It's Color scheme may
  14. be modified from the Optional Customization menu.  Some Monochrome adapters
  15. do not display the default BIOSSIG color scheme (others do).  If your monochrome
  16. screen blanks and all disk activity stops without any messages appearing, then
  17. monochrome may be selected on start up by including "mono" on the command line.
  18.  
  19. Some Color Graphics Adapters display "snow" on your color screen if they
  20. are accessed via direct writes to video memory.  If you do see "snow", try
  21. setting Snow Suppression Required.  Using this setting slows down the display
  22. slightly to prevent generating the snow.  No Snow Suppression will restore
  23. BIOSSIG to its fastest display speed.  CGA Snow suppression may be selected on
  24. start up by including "snow" on the command line or by exercizing the optional
  25. customization menu.
  26.  
  27. BIOSSIG prints 132 Columns of information per page.  If you select 6 Lines/Inch,
  28. BIOSSIG will print 5 Signatures/Page.  If you select 8 Lines/Inch, BIOSSIG
  29. will print 7 Signatures/Page.
  30.  
  31. To give some indication that the program is working while it scans its database
  32. (Now at 390+ entries and growing) BIOSSIG displays the file name of each BIOS
  33. Signature and a percentage of match between your BIOS and each database entry.
  34.  
  35. Sample BIOS Signature Screen(s)
  36.  
  37. ╔═══════════════════════════════════════════ BIOS Signature 3.2  ══════════════╗
  38. ║ Model Id Byte at FFFFE matches 100% ┌───────────────────────────────┐┌─────┐ ║
  39. ║ FC                                  │      Overall Match: 100%      ││ CRC │ ║
  40. ║                                     │Your BIOS Signature is in our  ││F0000│ ║
  41. ║ Date          at FFFF5 matches 100% │Database as shown below, but   ││FFFFF│ ║
  42. ║ 08/12/87                            │its CRC does not match.  Please││ C2F0│ ║
  43. ║                                     │submit this BIOS and its Info. ││ C2F1│ ║
  44. ║ Part Number   at FE000 matches 100% └───────────────────────────────┘└─────┘ ║
  45. ║ NCR'S VERSION IBM CORP. AT ROM                                               ║
  46. ║                                                                              ║
  47. ║ Compatibility at FE00E matches 100%                                          ║
  48. ║ IBM                                                                          ║
  49. ║                                                                              ║
  50. ║ Copyright     at FE01E matches 100%                                          ║
  51. ║ COPR. NCR CORP. 1985,1987COPR. COMPUTER DEVICES INC. 1982                    ║
  52. ║                                                                              ║
  53. ║ OEM Revision  at FFFEA matches 100%                                          ║
  54. ║ NCR4.5                                                                       ║
  55. ║                                                                              ║
  56. ║                                                                              ║
  57. ║     PC: Honeywell AP  | NCR P8 Test with Bad CR BIOS: NCR 4.5                ║
  58. ║ Source: Mike Focke                                                           ║
  59. ║   Date: 5 July 1988                        BIOS Signature File: NCR4-5x      ║
  60. ╚══════════════════════════════════════════════════════════════════════════════╝
  61. Esc to return to Main Menu, F10 to attempt another Exact match                  
  62.  
  63. ╔═══════════════════════════════════════════ BIOS Signature 3.2  ══════════════╗
  64. ║ Model Id Byte at FFFFE matches 100% ┌───────────────────────────────┐┌─────┐ ║
  65. ║ FC                                  │      Overall Match: 100%      ││ CRC │ ║
  66. ║                                     │                               ││F0000│ ║
  67. ║ Date          at FFFF5 matches 100% │Your BIOS Signature is in our  ││FFFFF│ ║
  68. ║ 08/12/87                            │Database as shown below. Please││ C2F0│ ║
  69. ║                                     │inform us if you disagree.     ││     │ ║
  70. ║ Part Number   at FE000 matches 100% └───────────────────────────────┘└─────┘ ║
  71. ║ NCR'S VERSION IBM CORP. AT ROM                                               ║
  72. ║                                                                              ║
  73. ║ Compatibility at FE00E matches 100%                                          ║
  74. ║ IBM                                                                          ║
  75. ║                                                                              ║
  76. ║ Copyright     at FE01E matches 100%                                          ║
  77. ║ COPR. NCR CORP. 1985,1987COPR. COMPUTER DEVICES INC. 1982                    ║
  78. ║                                                                              ║
  79. ║ OEM Revision  at FFFEA matches 100%                                          ║
  80. ║ NCR4.5                                                                       ║
  81. ║                                                                              ║
  82. ║                                                                              ║
  83. ║     PC: Honeywell AP  | NCR P8                  BIOS: NCR 4.5                ║
  84. ║ Source: Mike Focke                                                           ║
  85. ║   Date: 5 July 1988                        BIOS Signature File: NCR4-5       ║
  86. ╚══════════════════════════════════════════════════════════════════════════════╝
  87. Esc to return to Main Menu, F10 to attempt another Exact match                  
  88.  
  89. ╔═══════════════════════════════════════════ BIOS Signature 3.2  ══════════════╗
  90. ║ Model Id Byte at FFFFE matches 100% ┌───────────────────────────────┐┌─────┐ ║
  91. ║ FC                                  │      Overall Match:  98%      ││ CRC │ ║
  92. ║                                     │Your BIOS does not match the   ││F0000│ ║
  93. ║ Date          at FFFF5 matches  62% │currently displayed database   ││FFFFF│ ║
  94. ║ 08/12/87                            │entry.  The second line of any ││ C2F0│ ║
  95. ║ 05/02/88                            │pair comes from the database.  ││ A916│ ║
  96. ║ Part Number   at FE000 matches 100% └───────────────────────────────┘└─────┘ ║
  97. ║ NCR'S VERSION IBM CORP. AT ROM                                               ║
  98. ║                                                                              ║
  99. ║ Compatibility at FE00E matches 100%                                          ║
  100. ║ IBM                                                                          ║
  101. ║                                                                              ║
  102. ║ Copyright     at FE01E matches 100%                                          ║
  103. ║ COPR. NCR CORP. 1985,1987COPR. COMPUTER DEVICES INC. 1982                    ║
  104. ║                                                                              ║
  105. ║ OEM Revision  at FFFEA matches  83%                                          ║
  106. ║ NCR4.5                                                                       ║
  107. ║ NCR4.6                                                                       ║
  108. ║                                                                              ║
  109. ║     PC: Honeywell AP  | NCR P8                  BIOS: NCR 4.6                ║
  110. ║ Source: Cathy Cockrum Brower                                                 ║
  111. ║   Date: 3 November 1988                    BIOS Signature File: NCR4-6       ║
  112. ╚══════════════════════════════════════════════════════════════════════════════╝
  113. Press F10 for next worst match, Press Esc to Quit                               
  114.  
  115. For the purposes of the BIOS Signature Project a BIOS ROM Signature consists of
  116. the following six pieces of information:
  117.  
  118.  Model Id Byte
  119.  Date
  120.  Part Number
  121.  Compatibility
  122.  Copyright
  123.  OEM Revision
  124.  
  125.  
  126. Model Id Byte:
  127.  
  128.  IBM puts a coded byte in BIOS ROM memory location FFFFE.  PC Magazine
  129.  June 28, 1988 published a list of the IBM Model Id Bytes as follows:
  130.  
  131.     FF - IBM PC
  132.     FE - IBM PC-XT
  133.     FD - IBM PCjr
  134.     FC - IBM PC AT
  135.     FB - IBM PC-XT(rev 1)
  136.     FA - IBM PS/2 Model 30
  137.     F9 - IBM PC Convertible
  138.     F8 - IBM PS/2 Model 80
  139.  
  140. Date:
  141.  
  142.  IBM puts the Date the BIOS ROM was issued in BIOS ROM memory location FFFF5.
  143.  
  144. Part Number:
  145.  
  146.  IBM put the Part Number of the BIOS ROM in the early BIOS ROM chips in BIOS
  147.  ROM memory location FE000.  The BIOS Signature Database uses the Part Number
  148.  if appropriate or other identifying text if not an IBM BIOS ROM.
  149.  
  150. Compatibility:
  151.  
  152.  Nominally all of the BIOS ROMs of interest are IBM compatible.  The story is
  153.  that when the first IBM PC was introduced some programs looked for "IBM" in
  154.  the BIOS ROM.  If "IBM" was not there the programs (a) didn't run or 
  155.  (b) trashed something.  This is the theory behind looking for "IBM" in BIOS 
  156.  ROM memory.  Not all modern (nominally IBM compatible) ROMs contain the IBM
  157.  trademark.  Those BIOSs that do contain the "IBM" normally put it where IBM
  158.  puts its copyright notice. 
  159.  
  160. Copyright:
  161.  
  162.  IBM puts a Copyright notice for the BIOS ROM in BIOS ROM memory location FE008.
  163.  Most other manufacturers also put copyright notices in their own BIOS Roms.
  164.  There is some discussion as to what it takes to be a legal copyright notice.
  165.  Minimally there should be the Copyright symbol, a "C" within a circle.  Most
  166.  BIOS ROMs approximate this symbol with a (C) or (c) using matched parentheses
  167.  to enclose the "C". The word Copyright should be spelled out if the symbol is
  168.  not present.  The Year for which the copyright is claimed is required.  The
  169.  name of the entity claiming the copyright is the last required information.
  170.  
  171. OEM Revision:
  172.  
  173.  Some Original Equipment Manufacturers (OEMs) have added information to uniquely
  174.  identify a BIOS ROM.  This is an OEM Revision (Number).  When an OEM BIOS ROM
  175.  initializes the PC (boots), it normally displays its revision on the Console.
  176.  
  177. Address:
  178.  
  179.  This is the BIOS ROM memory address (shown in Hexadecimal Notation) where the
  180.  information may be found in matching BIOS ROMs.
  181.  
  182. Match:
  183.  
  184.  This is the Percentage Match between Your BIOS ROM and the BIOS ROM from
  185.  the BIOS Signature Database.  It is computed by recursively matching the
  186.  longest common substrings between the contents of the database and the
  187.  corresponding areas of your BIOS ROM memory.  An Exact Match yields 100%.
  188.  If 10 characters out of 20 are the same, even if they are not in the exact
  189.  order of the database, then the match is 50%.
  190.  
  191.  The Overall match is computed by arbitrarily assigning a length of one to the
  192.  Model Id Byte and the Date.  For each item in the signature the Match is
  193.  multiplied by the length in characters, the sum of these products is divided
  194.  by the total length giving the Overall Match as a percentage of the total
  195.  characters.
  196.  
  197. PC:
  198.  
  199.  The Brand Name of the Manufacturer mentioning any identifying characteristics.
  200.  
  201. BIOS:
  202.  
  203.  The Name of the BIOS Manufacturer (from the ASCII Copyright Statement if
  204.  available).
  205.  
  206. Source:
  207.  
  208.  The Name of the Person who first supplied the BIOS Signature Project with the
  209.  required information.
  210.  
  211. Date:
  212.  
  213.  The Date the information was acquired.
  214.  
  215. BIOS Signature File:
  216.  
  217.  The File containing the contents of that BIOS ROM on our computer.
  218.  Also used as a unique identifier.
  219.  
  220. CRC:
  221.  
  222.  To differentiate between multiple BIOSs with the same ASCII BIOS Signature as
  223.  defined above, version 3.1c implemented a Cyclic Redundancy Check of your BIOS
  224.  ROM.  A CRC is a mathematical calculation which is used in communications to
  225.  detect errors in a block of data.  The operation is performed on a data block,
  226.  the block and CRC are transmitted, the receiver independently computes the
  227.  CRC of the received block and compares it to the CRC computed by the sender.
  228.  If the two CRCs are the same it is assumed that the block has been transmitted
  229.  and received correctly.  According to W.  David Schwaderer's CRC Calculation
  230.  article in the April 1985 issue of PC Tech Journal, "Using these polynomials
  231.  allows detection of all errors involving 16 bits or less and about 99.95
  232.  percent of errors involving more than 16 bits."    
  233.  
  234.  The two 5 digit hex addresses are the address of the first and last bytes of
  235.  the block of information upon which the CRC computation is calculated.  The
  236.  next 4 digits = the 16-bit CRC of your BIOS.  If the database contains a 
  237.  different CRC it is displayed below yours.  If the ASCII BIOS Signature of
  238.  your BIOS ROM is an exact ( 100 percent) match, but the CRCs are different,
  239.  your BIOS Manufacturer has issued 2 ROMS with identical signatures but
  240.  different code.  There are, for example, 2 Zenith entries in the database
  241.  with the same signature but different CRCs.  There were only 5 bytes different
  242.  between the 2 BIOS.  One BIOS came from a Z-183 the other from a Z-184.
  243.  
  244. The Future:
  245.  
  246.  Even after examining 390+ BIOSs, we are still learning how to recognize those
  247.  of a particular brand.  We had intended that, once we feel we knew enough
  248.  about how Phoenix, Award, AMI, Compaq and IBM typically store the signature
  249.  information, then we hoped to be able to include logic to recognize the
  250.  signatures of BIOSs we hadn't yet seen.  We have largely abandoned that
  251.  notion as the number of BIOSs became clear and as other duties kept us busy. 
  252.  
  253. BIOSTREE
  254.  
  255.  BIOSTREE displays a family tree of BIOSs. 
  256.  
  257. Legal Concerns:
  258.  
  259.  Both Rick and I work for a computer manufacturer who will buy us any BIOS
  260.  we want. Our intent is to add to the litterature about BIOS signatures and
  261.  the only way to do this is to examine the code to find the signatures.
  262.  We don't use the BIOS you send us for any other purpose. Please don't ask
  263.  us to send you the latest BIOS.  We won't!
  264.  
  265. Sources:
  266.  
  267.  AMI BIOS can be bought from Herschell Fleming 1-800-828-9294 OR
  268.  Clyde Washburn 716-248-3627. I have seen a file AMIREL.ZIP which details
  269.  what is fixed in some versions of the AMI.
  270.  
  271.  Phoenix BIOS can be bought from Komputerwerk 1-800-666-6715 or
  272.  Virginia 804-320-8835 OR Wholesale Direct 800-628-8620
  273.  
  274.  AWARD BIOS can be bought at Komputerwerk Inc. 1-800-423-3400 or
  275.  Pennsylvania 412-782-0384 or from UNICOR 1-800-800-BIOS or
  276.  Massachusets 508-686-6468  
  277.  
  278.  IBM BIOS can be bought from Micro World Computers 800-825-6050
  279.  OR Global Computers 800-274-5622 OR your local IBM dealer.
  280.   
  281.  AMI, Phoenix and Patterson BIOS can be bought from Upgrades Etc
  282.  800-541-1943.
  283.  
  284.  AMI issues "BIOS" chips that contain BIOS, Startup and Diagnostics.
  285.  The diagnostics are called "AMIDIAG" and were up to revision 3.14 in 
  286.  October 1990. AMI can be reached at 800-U-BUY-AMI or 404-263-8181 in GA.
  287.  
  288.   
  289. Special thanks to Bob Falk for providing BIOSXLAT.EXE, a program which
  290. provides a formatted file with readable information from our data base. 
  291.  
  292.  Each of these dealers could be a source of information on what version
  293.  of the BIOS supports what drives and has what errors fixed.