Astrocade BIOS Comparison FAQ ----------------------------- By Adam Trionfo Version 1.02 - September 21, 2012 The Astrocade "Arcadian" FAQ, created and maintained by Adam Trionfo (ballyalley@hotmail.com) Table of Contents ----------------- 1) About this "Astrocade BIOS Comparison FAQ" 2) Overview of the Differences Between the ROMs 3) Further Investigation into the Differences Between the ROMs 4) Pictures 5) Recent Fixes 6) Closing 1) About this "Astrocade BIOS Comparison FAQ" ------------------------------------------ This is a comparison of the two Astrocade BIOS that have been dumped so far. These two ROM BIOS have nicknames: 3159 ROM and White ROM. There are forty-one bytes that are different between the two. They are listed here with brief comments followed by excerpts from the 3159 ROM Listing to give greater detail. 2) Overview of the Differences Between the ROMs -------------------------------------------- Address 3159 White Comments ------- ---- ----- -------- $0014 $FA $FB Initial Color of Main Menu $0016 $62 $52 Initial Color of Main Menu $0033 $00 $6D Checksum Byte $0B0E $00 $18 Checksum Byte 2 $0E13 $38 $37 The '7' from '1977' of Menu (instead of '1978') $0E15 $FF $39 '9' - The next four bytes are '977', $0E16 $FF $37 '7' but they seem to just duplicate $0E17 $FF $37 '7' the previous three bytes... $0E18 $FF $00 End String byte $100D $62 $5B Initial Color of Scribbling $1011 $62 $5B Initial Color of Scribbling $131D $62 $5C Initial Color of Calculator $1325 $FF $85 Filler byte between Calculator and Scribbling? $1358 $67 $40 Horizontal Color BND (?) for Scribbling $1361 $7A $80 Checkmate Wreck $1363 $1E $20 Checkmate Wreck $1367 $57 $58 Checkmate Wreck $1369 $1D $20 Checkmate Wreck $136D $2B $28 Checkmate Wreck $136F $1D $20 Checkmate Wreck $1373 $04 $00 Checkmate Wreck $1375 $21 $20 Checkmate Wreck $1543 $04 $00 Use Color 0 Right, instead of Left $16DD $98 $9C "XMAX" $174B $0C $04 "PSPOS0" $1755 $7D $85 "PSPOS1" $1769 $59 $5D "PSPOS3" $1784 $87 $77 Explosion Color for Checkmate $17A9 $B3 $F8 Initial Color of Checkmate $17AA $62 $F8 Initial Color of Checkmate $17AC $87 $F8 Initial Color of Checkmate $17AD $F8 $B5 Initial Color of Checkmate $17AE $F8 $52 Initial Color of Checkmate $17B0 $F8 $77 Initial Color of Checkmate $19EC $84 $82 Get Max Score Parameter for Gunfight $1DC3 $A2 $9B Initial Color of Gunfight $1DC4 $7D $76 Initial Color of Gunfight $1DC5 $0B $FC Initial Color of Gunfight $1DC7 $A2 $9B Initial Color of Gunfight $1DC8 $7D $76 Initial Color of Gunfight $1F98 $00 $3D "FUDG4" 3) Further Investigation into the Differences Between the ROMs ----------------------------------------------------------- Here's what the differences actually are (with some surrounding code for context, if needed). This is the code from the 3159 ROM (excerpted from the assembly listing with a few changes for readability). The differences from the White BIOS are listed as comments like this, "; *** White BIOS = $nn", where nn is the actual byte that the White BIOS holds. --- Bytes $14 and $16 $0013 06 MENUCL DB 06H ; MENU COLORS $0014 FA DB 0FAH ; *** White BIOS = $FB $0015 07 DB 07H $0016 62 DB 62H ; *** White BIOS = $52 --- Byte $33 $0033 00 CKSUM DB 0 ; CHECKSUM ; *** White BIOS = $6D --- Byte $B0E $0B0E 00 CKSUM2 DB 0 ; *** CHECKSUM *** ; *** White BIOS = $18 --- Byte $E13, $E15, $E16, $E17, and $E18 0E0C 4D464720 DB 'MFG 1978' ; *** White BIOS $E13 = $37 31393738 ; *** White BIOS = '1977' not '1978' 0E14 00 DB 0 ; FOUR FILLER BYTES BETWEEN ROM AND SCRIBBLING ; TO MATCH 3159 ROM $0E15 FF DB 0FFH ; *** White BIOS = $39 $0E16 FF DB 0FFH ; *** White BIOS = $37 $0E17 FF DB 0FFH ; *** White BIOS = $37 $0E18 FF DB 0FFH ; *** White BIOS = $00 --- Bytes $100D and $1011 ; INITIAL COLORS [of Scribbling] $100C 08 INICOL: DB $8 $100D 62 DB $62 ; *** White BIOS = $5B $100E A5 DB $A5 $100F 07 DB $7 $1010 08 DB $8 $1011 62 DB $62 ; *** White BIOS = $5B --- Byte $131D ; COLORS FOR CALCULATOR $131C 76 CALCLR DB 76H ; GREY $131D 62 DB 62H ; RED ; *** White BIOS = $5C --- Byte $1325 ; END OF CALCULATOR PROGRAM ; ; FOUR FILLER BYTES BETWEEN SCRIBBLING AND ; CALCULATOR TO MATCH 3159 ROM $1324 FF DB 0FFH $1325 FF DB 0FFH ; *** White BIOS = $85 --- Byte $1358 $1358 67 DB 67H+0 ; HOR COL BND ; *** White BIOS = $40 --- Bytes $1361, $1363, $1367, $1369, $136D, $136F, $1373, AND $1375 Note: Below a comment says, "Changed to match ROM." When re-typing the source code changes were made at that time-- this is NOT a new comment. $1361 7A00 DW $007A ; *** White BIOS = $80 ; WRECK - CHANGED TO MATCH ROM $1363 1E09 DW $091E ; *** White BIOS = $20 $1365 00 DB 0000B $1366 DO RECTAN $1366 1D DB RECTAN+1 $1367 ENDM $1367 5700 DW $0057 ; *** White BIOS = $58 ; WRECK - CHANGED TO MATCH ROM $1369 1D09 DW $091D ; *** White BIOS = $0920 $136B 00 DB 0000B $136C DO RECTAN $136C 1D DB RECTAN+1 $136D ENDM $136D 2B00 DW $002B ; *** White BIOS = $0028 ; WRECK - CHANGED TO MATCH ROM $136F 1D09 DW $091D ; *** White BIOS = $0920 $1371 00 DB 0000B $1372 DO RECTAN $1372 1D DB RECTAN+1 $1373 ENDM $1373 0400 DW $0004 ; *** White BIOS = $0000 ; WRECK - CHANGED TO MATCH ROM $1375 2109 DW $0921 ; *** White BIOS = $0920 --- Byte $1543 $1542 D304 OUT (COL0L),A ; *** White BIOS = $D300 --- Byte $16DD $16DC FE98 CP XMAX ; *** White BIOS - XMAX = $9C --- Byte $174B $174B 0C PSPOS0: DB 12 ; *** White BIOS = $04 --- Byte $1755 $1755 7D PSPOS1: DB 125 ; *** White BIOS = $85 --- Byte $1769 $1769 5901 PSPOS3: DW $0159 ; *** White BIOS = $5D --- Byte $1784 ;EXPLOSION COLORS $1780 EXCOLS: $1780 07 DB 7 $1781 03 DB 3 $1782 07 DB 7 $1783 03 DB 3 $1784 87 DB $ ; *** White BIOS = $77 --- Bytes $17A9, $17AA, $17AC, $17AD, $17AE, $17B0 ;COLOR BLOCK [for Checkmate] $17A9 CBLOCK: $17A9 B3 DB $B3 ; *** White BIOS = $F8 $17AA 62 DB $62 ; *** White BIOS = $F8 $17AB F8 DB $F8 $17AC 87 DB $87 ; *** White BIOS = $F8 $17AD F8 DB $F8 ; *** White BIOS = $B5 $17AE F8 DB $F8 ; *** White BIOS = $52 $17AF F8 DB $F8 $17B0 F8 DB $F8 ; *** White BIOS = $77 --- Byte $19EC ; [Get Max score for Gunfight] $19EA 1E02 DW MXSCR $19EC 84 DB 84H ; *** White BIOS = $82 --- Bytes $1DC3, $1DC4, $1DC5, $1DC7 AND $1DC8 ; [Gunfight Color Block] $1DC3 A2 GFCOLS DB 0A2H ; *** White BIOS = $9B $1DC4 7D DB 7DH ; *** White BIOS = $76 $1DC5 0B DB 0BH ; *** White BIOS = $FC $1DC6 87 DB 87H $1DC7 A2 DB 0A2H ; *** White BIOS = $9B $1DC8 7D DB 7DH ; *** White BIOS = $76 --- Byte 1F98 $1F98 00 FUDG4 DB 0 ; *** White BIOS = $3D 4 Pictures -------- Six pictures can be used with this FAQ. They have slightly different colors depending on which ROM is run. They will help the reader "picture" some of the differences that are talked about in this article. 1 )Gunfight01-BIOS-3159.gif 2 )Gunfight01-BIOS-White.gif 3 )Gunfight02-BIOS-3159.gif 4 )Gunfight02-BIOS-White.gif 5 )Checkmate-BIOS-3159.gif 6 )Checkmate-BIOS-White.gif 5 Recent Fixes ------------ 1.02 (September 21, 2012) - Found an older version, from June 6, 2004. This version was also marked as version 1.01. It has been combined with version 1.01 from July 30, 2006 to come up with version 1.02. 1.01 (July 30, 2006) - Added "Recent Fixes" and "Closing" - Added section headers for: "Overview of the Differences Between the ROMs" and "Further Investigation into the Differences Between the ROMs" - Added to www.ballyalley.com (previously this had only been posted on the Bally Alley Discussion Group. 1.0 (February 28, 2004) - First Release 6 Closing ------- All of the information in this FAQ is as accurate as possible. If there are any errors, omissions or anything else of note that belongs here (or doesn't), then please let me know so I can expand, correct and enhance this FAQ.