Jump to content
IGNORED

BASIC ROM replacement EPROMS?


Urchlay

Recommended Posts

Does anyone have a source for 24-pin 8Kx8 EPROMs that are pin-compatible with the 8K BASIC ROM in the 800XL?

 

I have a couple of 2764 (8Kx8) EPROMs, but they're 28-pin, which seems to be the standard size for 2764s...

If needed I can help you out with the rewiring that would be necessary to put a 2764 in the BASIC socket. I'll have to look it up, though, as I don't have the specific info at hand right now. Back in 1986 I put rev. C in my second XL (sold this one in 1988), I remember using an extra socket to ease up soldering the rerouted wires to. I also made a homebuilt ASMED cart using a 2764 and a (emptied out) Star Raiders PCB. Still have the cart to this very day, it has worked flawlessly ever since.

 

re-atari

Link to comment
Share on other sites

If needed I can help you out with the rewiring that would be necessary to put a 2764 in the BASIC socket... I remember using an extra socket to ease up soldering the rerouted wires to.

 

I think I understand how to do it... Most of the pins on the 24-pin ROM match the positions on the 28-pin, so you only have to bend up a few pins in the new socket, and solder a couple of jumpers to those pins, then plug new socket in the old one, and new EPROM into the new socket... is this about right?

 

If I'm going to do this, I'll probably use a 27256 or 27512 with some DIP switches or something, so I can have BASIC plus 3 or 7 more 8K ROMs. ASM/ED is a good one, so is the patched Star Raiders that a8isa1 put in his 800XL in place of BASIC... too bad Montezuma's Revenge isn't an 8K ROM, would love to have that built in.

Link to comment
Share on other sites

If needed I can help you out with the rewiring that would be necessary to put a 2764 in the BASIC socket... I remember using an extra socket to ease up soldering the rerouted wires to.

 

I think I understand how to do it... Most of the pins on the 24-pin ROM match the positions on the 28-pin, so you only have to bend up a few pins in the new socket, and solder a couple of jumpers to those pins, then plug new socket in the old one, and new EPROM into the new socket... is this about right?

 

If I'm going to do this, I'll probably use a 27256 or 27512 with some DIP switches or something, so I can have BASIC plus 3 or 7 more 8K ROMs. ASM/ED is a good one, so is the patched Star Raiders that a8isa1 put in his 800XL in place of BASIC... too bad Montezuma's Revenge isn't an 8K ROM, would love to have that built in.

 

I really like the idea of having 7 more 8K roms built in to an 800XL. Please post all the specifics when this gets worked out. I've got a few 27C512's just looking for something to do.

Link to comment
Share on other sites

I really like the idea of having 7 more 8K roms built in to an 800XL. Please post all the specifics when this gets worked out. I've got a few 27C512's just looking for something to do.

 

It'll be a while before I get a chance to work on this... I've got a dead 130XE to fix first, and some non-Atari-related stuff.

 

Replacing BASIC and the OS with one 27512 each would give 8 cart ROMs (3 select bits) and 4 OS ROMs (2 bits), can you think of a good way to select 5 bits other than DIP switches?

Link to comment
Share on other sites

I think I understand how to do it... Most of the pins on the 24-pin ROM match the positions on the 28-pin, so you only have to bend up a few pins in the new socket, and solder a couple of jumpers to those pins, then plug new socket in the old one, and new EPROM into the new socket... is this about right?

 

Bingo. I think this is what you had in mind, right?

 

post-9683-1184778318_thumb.jpg

 

Do use a quality socket, preferably one with gold plated pins as these are more sturdy than the standard ones, and will survive repeated insertion and removal of IC's better. The top of the pins in which you insert the IC's pins actually look like small chalices.

 

 

If I'm going to do this, I'll probably use a 27256 or 27512 with some DIP switches or something, so I can have BASIC plus 3 or 7 more 8K ROMs. ASM/ED is a good one, so is the patched Star Raiders that a8isa1 put in his 800XL in place of BASIC... too bad Montezuma's Revenge isn't an 8K ROM, would love to have that built in.

You could go the route of DIP-switches. I have built something similar, but instead using a 16-position BCD rotary switch. Haven't tested it yet, though. Intention is to put in 16 different OS-versions in a single 28F020, which I have laying about. You'd select 16Kb memoryblocks by making one of the top 4 addresslines low (= GND), while the other three remain high (5V) via a 4k7 pullup resistor. A simple hack on a piece of veroboard.

 

re-atari

Edited by re-atari
  • Like 1
Link to comment
Share on other sites

I really like the idea of having 7 more 8K roms built in to an 800XL. Please post all the specifics when this gets worked out. I've got a few 27C512's just looking for something to do.

 

It'll be a while before I get a chance to work on this... I've got a dead 130XE to fix first, and some non-Atari-related stuff.

 

Replacing BASIC and the OS with one 27512 each would give 8 cart ROMs (3 select bits) and 4 OS ROMs (2 bits), can you think of a good way to select 5 bits other than DIP switches?

 

I was thinking of using 2 BCD switches that I took off old SCSI devices. One for the OS and the other for the 8K roms. These have 4 leads that switch the common lead with the 1, 2, and 4 leads in a binary fashion. When 0 is selected there's no connections. When 3 is showing, the common is connected to the 1 and the 2 leads. Looks like this will work to me.

Link to comment
Share on other sites

Bingo. I think this is what you had in mind, right?

 

Yep, that's the stuff.

 

Do use a quality socket, preferably one with gold plated pins as these are more sturdy than the standard ones, and will survive repeated insertion and removal of IC's better. The top of the pins in which you insert the IC's pins actually look like small chalices.

 

I have a couple of nice 28-pin sockets like that. They look like the legs are too stiff to bend though... will try it. I actually have an old ISA board with 5 or 6 of the nice sockets on it, but so far no luck desoldering them (the pins get too hot, and melt the plastic carrier).

 

I was thinking of using 2 BCD switches that I took off old SCSI devices. One for the OS and the other for the 8K roms. These have 4 leads that switch the common lead with the 1, 2, and 4 leads in a binary fashion. When 0 is selected there's no connections. When 3 is showing, the common is connected to the 1 and the 2 leads. Looks like this will work to me.

 

That'd be a lot nicer than DIP switches... where were you thinking of mounting them? Looks like the side of the case, behind the joystick ports, might have room if the switches are small... otherwise I guess they have to go on the back, next to the SIO port. Means you can't see the numbers on the switches without moving the Atari to look at the back, but also means no visible holes in the case when looking at the front of the computer.

Link to comment
Share on other sites

I have a couple of nice 28-pin sockets like that. They look like the legs are too stiff to bend though... will try it. I actually have an old ISA board with 5 or 6 of the nice sockets on it, but so far no luck desoldering them (the pins get too hot, and melt the plastic carrier).

I think bending them out will not work, the pins are so rigid they will just snap off. On the 'adapter-socket' I'd just cut off the narrow lower section of the pins that are not supposed to make contact with the original socket. The wider section just below the plastic carrier then leaves a perfect place to solder the rerouted wires to. Remember to measure with a multimeter afterwards to be sure the snipped pins do not make unwanted contact, and you should be allright.

As you already observed, desoldering such a socket will give you a helluva job. I've never succeeded desoldering one intact. It looks to me, that the pins are such a tight fit into the PCB that, especially with through plated holes, the capillary of the solder will prevent them from loosening enough to get the socket out in one piece.

 

re-atari

Link to comment
Share on other sites

I have a couple of nice 28-pin sockets like that. They look like the legs are too stiff to bend though... will try it. I actually have an old ISA board with 5 or 6 of the nice sockets on it, but so far no luck desoldering them (the pins get too hot, and melt the plastic carrier).

I think bending them out will not work, the pins are so rigid they will just snap off. On the 'adapter-socket' I'd just cut off the narrow lower section of the pins that are not supposed to make contact with the original socket. The wider section just below the plastic carrier then leaves a perfect place to solder the rerouted wires to. Remember to measure with a multimeter afterwards to be sure the snipped pins do not make unwanted contact, and you should be allright.

As you already observed, desoldering such a socket will give you a helluva job. I've never succeeded desoldering one intact. It looks to me, that the pins are such a tight fit into the PCB that, especially with through plated holes, the capillary of the solder will prevent them from loosening enough to get the socket out in one piece.

 

re-atari

 

Maybe something like this might work. I remember many years ago seeing a bunch of soldering iron attachments similar to this idea.

 

http://www.geocities.com/BourbonStreet/3220/PCB_remov.html

 

If I can find something that lines up with dip pins, I'm going to give this a try.

Link to comment
Share on other sites

Bingo. I think this is what you had in mind, right?

 

Yep, that's the stuff.

 

Do use a quality socket, preferably one with gold plated pins as these are more sturdy than the standard ones, and will survive repeated insertion and removal of IC's better. The top of the pins in which you insert the IC's pins actually look like small chalices.

 

I have a couple of nice 28-pin sockets like that. They look like the legs are too stiff to bend though... will try it. I actually have an old ISA board with 5 or 6 of the nice sockets on it, but so far no luck desoldering them (the pins get too hot, and melt the plastic carrier).

 

I was thinking of using 2 BCD switches that I took off old SCSI devices. One for the OS and the other for the 8K roms. These have 4 leads that switch the common lead with the 1, 2, and 4 leads in a binary fashion. When 0 is selected there's no connections. When 3 is showing, the common is connected to the 1 and the 2 leads. Looks like this will work to me.

 

That'd be a lot nicer than DIP switches... where were you thinking of mounting them? Looks like the side of the case, behind the joystick ports, might have room if the switches are small... otherwise I guess they have to go on the back, next to the SIO port. Means you can't see the numbers on the switches without moving the Atari to look at the back, but also means no visible holes in the case when looking at the front of the computer.

 

I haven't looked into parts placement yet. I want to make sure that this will work before I start drilling holes. I usually drill holes first and think later. I've screwed up a lot project cases that way. This time I'm going to slow down and try to make it look good. You're right about not seeing the switches on the back. That would make it very hard to use.

Link to comment
Share on other sites

Just out of interest, were the any further revision of Ataribasic after rev.C

 

If so, how many were there and what were the difference with later revisions and rev. C

Carmel,

 

To my knowledge rev. C was the final version. Some of the late XL's (the so-called Freddie's) as well as the entire XE series carried them. The difference between rev. B and rev. C were minute, only a dozen or so bytes differ. I remember Bill Wilkinson (of OSS fame) published a small Basic/assembler program in his column in 'Compute!' to prevent rev. B locking up. It copied the contents of the Basic rom in ram, wrote the corrected bytes at their specific places, and finally write-protected this 8Kb area. Somehow I recall he stored the assembly routine in page 6, so that it survived Reset, but I'm not sure of this. I might be mistaken.

 

I used to do a bit of programming in Atari Basic back in my early A8 years, and have had the questionable experience of the infamous 'lock-ups' more than once. Bill Wilkinson's routine was effective, but a bit of a hassle. So, when I got a chance to lend a (at the time) not yet released rev. C cartridge from a friend (he was well connected with staff at Atari Benelux and sometimes got stuff for testing and/or PR purposes) I dumped the cart and burned it onto an eprom. Carried out the rewiring described above and built the assembly in place of the rev. B rom socket inside my XL. It worked just great, no more lock-ups. Not quite the official route, I must admit.

 

Around that very time Frank Ostrowski's Turbo Basic XL and Basic compiler were released in the German magazine 'Happy Computer' (mind you, as a type-in listing!). These rendered Atari Basic obsolete in just about every respect. IMHO it still is the most powerful A8 BASIC to this day. BTW, Frank wrote Turbo Basic XL at a time when he was unemployed, and this very magazine article got him a job as a programmer with the company 'GFA Datentechnik'. They later on released Frank's 'GFA Basic' for the ST and Amiga.

 

re-atari

Link to comment
Share on other sites

I got a 27C010 128x8K eprom working as a replacement for the BASIC rom on an 800XL. I used a s.p.s.t. switch to turn address line 16 on & off and this selects 2 blocks of 8 8K rom images. Lines 13, 14, & 15 are connected to the 1,2,4 terminals on a bcd switch removed from an 8bit SCSI device. The common switch connection is connected to GND. Rom selection works perfectly. The only problem that I have is that River Raid doesn't work. I got the cart image from 2 different sources and they match. I burned 2 different eproms with R.R. in a different spot on the eprom and the 15 other rom images work but not R.R. Has anyone ever burned R.R. on an eprom and had it work? I know that the real cart works with an 800XL so why doesn't it run from an eprom? This has been a great project and I'll be adding big eproms to all my Atari 8bits.

Link to comment
Share on other sites

I got a 27C010 128x8K eprom working as a replacement for the BASIC rom on an 800XL.

 

Congrats!

 

Has anyone ever burned R.R. on an eprom and had it work? I know that the real cart works with an 800XL so why doesn't it run from an eprom? This has been a great project and I'll be adding big eproms to all my Atari 8bits.

 

It disables itself... if you put that EPROM on a cartridge board, it'd work. The very first thing River Raid does when it gets control is that it writes zeroes to all the hardware registers... including PORTB, which controls the ROMs on an XL/XE (it's joystick ports 3/4 on an 800)... which isn't a problem when a cartridge does it (can't enable/disable a real cartridge, so the code keeps running). When you install the same code as internal BASIC replacement, it does the same write to PORTB, and the MMU obligingly disables the ROM... whoops!

 

In an emulator, the same thing happens if you tell the emulator to load the BASIC ROM image from "River Raid.rom"... the offending instruction is at $A01B, a STA $D300,Y where Y contains 1.

 

Since River Raid is a "diagnostic" cart, it normally gets control very early in the boot process, which it why it initializes the hardware itself... but when running as a BASIC replacement, the OS has already initialized the hardware, so there's no real need for the River Raid code to do it again... I patched the ROM image and replaced the writes to the PIA with NOPs. The patched image works correctly as "basic.rom" in the atari800 emulator, but I didn't burn to EPROM and test on real hardware (still haven't done the hardware mod to allow me to use 28-pin EPROMs for BASIC).

 

Try it:

river_raid_basic_replacement.zip

 

Let me know if it doesn't work, I'll take another crack at it...

 

P.S. I should mention that Star Raiders has the same problem. Someone posted a patched binary to this forum a while back and explained why it was needed, which is how I knew what to look for here.

Edited by Urchlay
Link to comment
Share on other sites

I got a 27C010 128x8K eprom working as a replacement for the BASIC rom on an 800XL.

 

Congrats!

 

Has anyone ever burned R.R. on an eprom and had it work? I know that the real cart works with an 800XL so why doesn't it run from an eprom? This has been a great project and I'll be adding big eproms to all my Atari 8bits.

 

It disables itself... if you put that EPROM on a cartridge board, it'd work. The very first thing River Raid does when it gets control is that it writes zeroes to all the hardware registers... including PORTB, which controls the ROMs on an XL/XE (it's joystick ports 3/4 on an 800)... which isn't a problem when a cartridge does it (can't enable/disable a real cartridge, so the code keeps running). When you install the same code as internal BASIC replacement, it does the same write to PORTB, and the MMU obligingly disables the ROM... whoops!

 

In an emulator, the same thing happens if you tell the emulator to load the BASIC ROM image from "River Raid.rom"... the offending instruction is at $A01B, a STA $D300,Y where Y contains 1.

 

Since River Raid is a "diagnostic" cart, it normally gets control very early in the boot process, which it why it initializes the hardware itself... but when running as a BASIC replacement, the OS has already initialized the hardware, so there's no real need for the River Raid code to do it again... I patched the ROM image and replaced the writes to the PIA with NOPs. The patched image works correctly as "basic.rom" in the atari800 emulator, but I didn't burn to EPROM and test on real hardware (still haven't done the hardware mod to allow me to use 28-pin EPROMs for BASIC).

 

Try it:

river_raid_basic_replacement.zip

 

Let me know if it doesn't work, I'll take another crack at it...

 

P.S. I should mention that Star Raiders has the same problem. Someone posted a patched binary to this forum a while back and explained why it was needed, which is how I knew what to look for here.

 

That's funny because the first 27C010 that I burned had Star Raiders and it didn't work either so I took it out because it's not one of my favorite games. Now this makes sense. I'll try your patched version ASAP. Thanks a lot.

Link to comment
Share on other sites

I got a 27C010 128x8K eprom working as a replacement for the BASIC rom on an 800XL.

 

Congrats!

 

Has anyone ever burned R.R. on an eprom and had it work? I know that the real cart works with an 800XL so why doesn't it run from an eprom? This has been a great project and I'll be adding big eproms to all my Atari 8bits.

 

It disables itself... if you put that EPROM on a cartridge board, it'd work. The very first thing River Raid does when it gets control is that it writes zeroes to all the hardware registers... including PORTB, which controls the ROMs on an XL/XE (it's joystick ports 3/4 on an 800)... which isn't a problem when a cartridge does it (can't enable/disable a real cartridge, so the code keeps running). When you install the same code as internal BASIC replacement, it does the same write to PORTB, and the MMU obligingly disables the ROM... whoops!

 

In an emulator, the same thing happens if you tell the emulator to load the BASIC ROM image from "River Raid.rom"... the offending instruction is at $A01B, a STA $D300,Y where Y contains 1.

 

Since River Raid is a "diagnostic" cart, it normally gets control very early in the boot process, which it why it initializes the hardware itself... but when running as a BASIC replacement, the OS has already initialized the hardware, so there's no real need for the River Raid code to do it again... I patched the ROM image and replaced the writes to the PIA with NOPs. The patched image works correctly as "basic.rom" in the atari800 emulator, but I didn't burn to EPROM and test on real hardware (still haven't done the hardware mod to allow me to use 28-pin EPROMs for BASIC).

 

Try it:

river_raid_basic_replacement.zip

 

Let me know if it doesn't work, I'll take another crack at it...

 

P.S. I should mention that Star Raiders has the same problem. Someone posted a patched binary to this forum a while back and explained why it was needed, which is how I knew what to look for here.

 

 

Works perfectly. I didn't go all the way down the river but it looks good. Thanks again. I really like this game and wanted to have it in the 16 rom image eprom.

Link to comment
Share on other sites

Works perfectly. I didn't go all the way down the river but it looks good. Thanks again. I really like this game and wanted to have it in the 16 rom image eprom.

 

Glad to hear it... maybe there should be a section at Atarimania or a thread here, a repository for ROMs patched to work as BASIC replacements. I'm sure River Raid and Star Raiders can't be the only ones.

 

If a ROM already works on the XL/XE OS, but not as internal BASIC, the trouble is almost certainly a write to PORTB... bet it would be pretty easy to automate the testing/scanning to look for PORTB writes and patch them, especially since the ROMs have the same problem in emulators. Unfortunately I don't have a large collection of ROM dumps to try it with... plenty available at Atarimania, but they take 3 or 4 mouse-clicks apiece to download, and I don't think they'd much appreciate me writing a download script to suck them all down.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...