Quantcast
Channel: Atari Systems Forums
Viewing all articles
Browse latest Browse all 22482

Bob's BIOS (for Bob)

$
0
0
I'm 'bout a week late on this, but I've been BUSY.

What follows here is extremely complex, so if you can't operate a solder iron or never opened your Atari 7800, DO NOT ATTEMPT any of the following operations.  This probably should be posted on the programmer's or hacker's corner, but there's not much action over there these days and figured the developers will find this anyways.  This is a 3-part series, so buckle-up your seat belts, cuz this just gets more complicated...

INTRO
Now I don't propose I know everything about the 7800 operating system, a.k.a. BIOS, but I'm ready to learn.  To my knowledge there are several flavors of the 7800 operating system, and there may be more:

(1)  1984 "OLD" BIOS, NTSC
Attached File  7800BIOSoldHIE972.bin   4K   7 downloads
(2)  1988+ BIOS, NTSC, a la DAVE STAUGUS, whoever that is.
Attached File  7800BIOS_09_15_88_HI1778.bin   16K   6 downloads
(3)  PAL BIOS, (compliments of Walter - years ago)
Attached File  Asteroids78onBoardPALBIOS_16K_187A.bin   16K   4 downloads

All three of these BIOS work on the 1984 NTSC machine.  I don't know why, but they do.  The question is, what works on the 1986+ NTSC machine?  Does anyone have a 1986+ machine open and tried these operating systems?  It's a simple play-n-play op.

Of course the 7800 OLD BIOS "1984" source list / disassembly have been posted for years, and I made my own disassembly based on the binary and released source list, and probably is the most comprehensive.  It was another nothing-matches-with-anything project, so beware it was an intense project of it's own.
Attached File  7800_NTSC_OLD_BIOS_DISASSY_E972.rtf   102.37K   4 downloads

PART ONE
With the information below, one could update/personalize their 7800 machine by touching-up their BIOS.  Now as I said, this is complex, although I've already done the coding for Bob's PACMAN+ graphics.  The background and procedure follows, but you can skip all that and download the goodies at the bottom if you already know what you're doing, and in less than 5 minutes you'll view the custom racing stripe start-up screen.

BACKGROUND AND PROCEDURE
Upon the 1984 BIOS version of the 7800 game machine start-up, (assuming you're not using a non-encryption EPROM or 74LS174 BIOS switch bypass) you will see a rainbow barber pole Fuji logo as well as "ATARI" in a racing stripe.  You can personalize this by putting your name or graphics of your choice.  That's right, you can modify the BIOS code to suit your own personalization.  Best part is you don't have to have the code "encryption-signed" to work.

The Racing Stripe graphics are organized 11 lines (rows) by 152 bits (nineteen 8-bit bytes) wide.  However, it's tricky that the Fuji logo is interleaved in the code so one has to be careful not to disrupt anything in the process.  This modification will not modify the normal operation of the 7800 in any way, all 2600 & 7800 modes will operate as before.  Only the start-up screen will be changed per your own personal requirements.  To decode the bits and bytes you will need to visualize the ones (1 = ON) and zeroes (0 = OFF) and convert the binary into hexadecimal.

What you will need to do your own personalization:
1) Extreme patience.  This bit-mapping exercise can test all of your patience.

2) The original 4K EPROM (CS=E972) BIOS ENCRYPTION CODE (attached above and available at the atariage.com archives).

3) Either a 24-pin (4K 2732 EPROM slot) or 28-pin (up to 32K EPROM slot) IC socket.  If you haven't socketed this BIOS location yet, it is highly recommended to go with a full 28-pin socket.  Equipped with a 50-watt soldering iron and solder sucker, the existing ROM should be relatively easy to remove.  Observe the integrated circuit orientation, always.  Try to save the original ROM in case this modification doesn't work for you.  You will need a 74LS00 to invert pin 20 (pin 22 on a 28-pin EPROM).  If any of this hardware stuff sounds scary to you, you might as well quit now.  It won't be worth the frustration if you can't figure any of this out.

4) Graphing paper, 4 sheets wide taped together in wide landscape orientation...you can cram 3 sets of tries on one sheet of paper if you cram it properly.  The graphics are 8 x 19 = 152 bits wide.  If your personalized design has 7 characters with 4 bits of spacing between characters, that's (152 - (6 * 4)) / 7 = 18 and a couple of extra bits.  Hence the 7 characters would be 18 bits wide, each.  The letter "M" should be wider to make it legible, so 2 bits were added to the width of the "M".  Observing positive logic:  ON = 1, OFF = 0.  Every "X" that you put on the graphing paper box is a logic "1" (1 = ON) and a blank box is a logic "0" (0 = OFF).  Reading across the top row of the page from the upper left you will take the first 4 boxes and if they are zeroes (all blank), then your first nibble is a "0".  Two nibble make a byte and if your first 8 boxes are blank then you have "00" and you have your first byte.  When the first non-blank boxes show up, then you have to know how to convert binary to hexadecimal (hex).  As we just saw, 0000 binary is 0 hex.  Continuing, 0001 is 1 hex, 0010 is 2 hex, 0011 is 3 hex, 0100 is 4 hex, 0101 is 5 hex, 0110 is 6 hex, 0111 is 7 hex, 1000 is 8 hex, 1001 is 9 hex, 1010 is A hex, 1011 is B hex, 1100 is C hex, 1101 is D hex, 1110 is E hex, and finally 1111 is F hex.  Then you bridge two successive nibbles to form a byte.  If you have 11011000, this is D8 and that is what you'll be keying into your EPROM programmer for that specific location in your personalized mapping, if/when you have that capability.  Looking at the PACMAN+ example, reading across row 1 is 11111111=FF, 11111110=FE, etc.  Now you can see why we use hexadecimal instead of binary!

5) EPROM programmer and the skills to load a binary file and edit data.

The following is an example of the original BIOS modified from "ATARI" to "PACMAN+".  There's only 11 x 19 = 209 bytes to manually modify.  What could possibly go wrong?  EVERYTHING!  From start to finish, the graphics design and implementation can take 3,4,5 hours.  Probably more like 8 hours the first time.  That's why I created an example to spur you along.  The main thing is to start inputting at address $0CF1, and skipping where explicitly stated, and ending at address $0E17h.  If anything ever seems not-quite-right, it probably isn't.  That's been my experience.  GL2A.

(All addresses shown, e.g. - $0CF1, are EPROM addresses.  In-machine these are all $F000.

"ATARI" ORIGINAL…

-------------01-02-03-04-05-06-07-08-09-10-11-12-13-14-15-16-17-18-19   
-------------$0000-$0CF0 Remain as-was, do not disturb.
1--0CF1---00-00-0C-00-3F-FF-FF-FF-F0-00-C0-00-00-3F-FF-FF-00-03-FC
2--0D04---00-00-3F-00-3F-FF-FF-FF-F0-03-F0-00-00-3F-FF-FF-FC-03-FC
3--0D17---00-00-FF-C0-00-03-FF-00-00-0F-FC-00-00-3F-F0-03-FF-C3-FC
4--0D2A---00-03-FF-F0-00-03-FF-00-00-3F-FF-00-00-3F-F0-00-3F-C3-FC
-------------$0D3D-$0D67 Remain as-was, do not disturb.
5--0D68---00-0F-F3-FC-00-03-FF-00-00-FF-3F-C0-00-3F-F0-00-FF-C3-FC
6--0D7B---00-3F-C0-FF-00-03-FF-00-03-FC-0F-F0-00-3F-F0-3F-FC-03-FC
7--0D8E---00-FF-00-3F-C0-03-FF-00-0F-F0-03-FC-00-3F-F0-FF-C0-03-FC
8--0DA1---03-FF-FF-FF-F0-03-FF-00-3F-FF-FF-FF-00-3F-F0-3F-F0-03-FC
-------------$0DB3-$0DDE Remain as-was, do not disturb.
9--0DDF---0F-FF-FF-FF-FC-03-FF-00-FF-FF-FF-FF-C0-3F-F0-0F-FC-03-FC
10-0DF2---3F-F0-00-03-FF-03-FF-03-FF-00-00-3F-F0-3F-F0-03-FF-03-FC
11-0E05---FF-C0-00-00-FF-C3-FF-0F-FC-00-00-0F-FC-3F-F0-00-FF-C3-FC-----0E17
-------------$0E18-$0FFF Remain as-was, do not disturb.

"PACMAN+" EXAMPLE…

-------------01-02-03-04-05-06-07-08-09-10-11-12-13-14-15-16-17-18-19
-------------$0000-$0CF0 Remain as-was, do not disturb.
1--0CF1---FF-E0-00-1F-E0-00-3F-00-3F-00-FC-01-FE-00-FC-0F-C0-0F-C0
2--0D04---FF-F8-00-7F-F8-00-FF-C0-3F-81-FC-07-FF-80-FE-0F-C0-0F-C0
3--0D17---FC-7E-00-FF-FC-03-F0-F8-3F-C3-FC-0F-FF-C0-FF-0F-C0-0F-C0
4--0D2A---FC-0F-C1-F0-3E-0F-C0-7C-3F-E7-FC-1F-03-E0-FF-8F-C0-0F-C0
-------------$0D3D-$0D67 Remain as-was, do not disturb.
5--0D68---FC-0F-C3-F0-3F-0F-C0-00-3F-7E-FC-3F-03-F0-FC-CF-C0-0F-C0
6--0D7B---FC-7E-03-F0-3F-0F-C0-00-3F-3C-FC-3F-03-F0-FC-CF-C3-FF-FF
7--0D8E---FF-F8-03-FF-FF-0F-C0-00-3F-18-FC-3F-FF-F0-FC-CF-C3-FF-FF
8--0DA1---FF-E0-03-FF-FF-0F-C0-7C-3F-00-FC-3F-FF-F0-FC-7F-C0-0F-C0
-------------$0DB3-$0DDE Remain as-was, do not disturb.
9--0DDF---FC-00-03-F0-3F-03-F0-F8-3F-00-FC-3F-03-F0-FC-3F-C0-0F-C0
10-0DF2---FC-00-03-F0-3F-00-FF-C0-3F-00-FC-3F-03-F0-FC-1F-C0-0F-C0
11-0E05---FC-00-03-F0-3F-00-3F-00-3F-00-FC-3F-03-F0-FC-0F-C0-0F-C0----0E17
-------------$0E18-$0FFF Remain as-was, do not disturb.

Not knowing what size chips Bob (and fans) use, I made all versions for 2732, 27128, 27256.  This is my "gift" to Bob for all the amazing things he's done for the Atari 7800 community.  ENJOY!!!

PACMANPLUS BIOS
Attached File  7800BIOSPACMANPLUS_4K_C2F5.bin   4K   3 downloads
Attached File  7800BIOSPACMANPLUS_16K_CBD4.bin   16K   3 downloads
Attached File  7800BIOSPACMANPLUS_32K_97A8.bin   32K   5 downloads


PART TWO
IF and ONLY IF you have access to EPROMS, EPROM erasers, and EPROM programmers, and know how to read schematics should you attempt the following.  And of course you need solder and a 50W soldering iron and a small amount of solid-guage wire.  Using a 28-pin header/component carrier as a wiring platform to interface a 28-pin socket for your new BIOS EPROM code projects, wire-up the following circuit, per the atached schematic.  There are two versions, the first 2x27128 and the second is a 1x27256 design (simpler).  If you haven't done this before, I recommend wiring the 1x27256 which is smaller and easier to wire, and looks the neatest when installed in the 7800.  The wiring job simply stated, wire every header pin to EPROM socket pin, pins 1 through 28 to pins 1 through 28, EXCEPT pins 20 and 22 are reversed (designed to keep hackers from making this mod work), and invert the input to pin 20 using a 74LS00 chip.  In the 1x27256 version, both 27128 and 27256 will work.  You can now install Bob's "PACMAN+" BIOS in the U7 position of your 7800, of course observing the pin 1 orientation.
Attached File  InternalCartSchematic.pdf   1.94MB   12 downloads

Over the next few days I will compose the balance of PART TWO and the start of PART THREE, and post them here.  Like I said, this is complicated, and we're barely half way...

Viewing all articles
Browse latest Browse all 22482

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>