Jump to content
IGNORED

Possible cartridge project


Island2Live

Recommended Posts

For a few weeks now I am thinking more and more about - please just theoretically at this point - what if I like to produce a real cartridge for an »Atari 800 XL« system? Say I have a game in either 16 Kbyte or 32 Kbyte - or maybe more - and I like to put this into a cartridge. I am not talking about programming but manufacturing this. The 16 Kbyte version would be straight forward with just some very simple glue logic on the board. 32 Kbyte - and possible more - would need some bank switching logic, prefereable the one for the XEGS (for not inventing the wheel again and again).

 

Does some PCBs for such circumstances already exist? What would you do if you like to put your game onto a real board? I am not talking about harvesting existing cartridges but making something on your own.

 

Any suggestions appreciated. :)

 

Kind regards,

Henrik (Island2Live)

Link to comment
Share on other sites

No, though I've thought about making one.

 

The big issue is making sure the ROM is there when the OS checks for a cartridge or it will just vanish. It would be nice to have it switch back when the last few bytes of each 8K is read. Is there an accepted scheme for this?

Link to comment
Share on other sites

I think the power-off/on returns the cartridge to its default state, but during operation you'd need to program a reset handler to enable the cartridge again and then reset again. My intention way back was to re-lay this to using a PLCC32 Am29F010 rather than a 27c series DIP.

post-1822-0-29762500-1395086157_thumb.jpg

Edited by Wrathchild
Link to comment
Share on other sites

Yup. My board handles from 16K up to 1MB. Atarimax flashcarts are also commonly used and are require no assembly.

 

 

Does your pcb fit into an old Atari 800 cart shell ?!? (It looks like it does.)

And/or does it fit into an XE/XEGS cart shell (made in Taiwan, the one without screws) ?!?

 

Last not least how much do you ask for 1, 10, 50 of these pcb`s ?!?

-Andreas Koch.

Link to comment
Share on other sites

Is that a switchable XEGS board, i.e. cart memory can be switched out to access main memory?

Are you sure the XEGS-cartridges are able to switch out their ROM from the address range revealing underlaying RAM? I always though the XEGSs have fixed ROM in the range from $A000 to $BFFF and switchable ROM-banks at $8000 to $9FFF. Switching is done by writing somewhere into the address range from $D500 to $D5FF (which triggers a special line on the cartridge btw.). But I haven't seen the ability to switch themselves out. At least that's what I've seen in the documentation about the ROM images in the »Atari800Win 3.0«. I think the »Altirra 2.40« emulates the same cartridge types.

 

It can be - not sure though, haven't looked into it - the ability to disable a cartridge is included in the model line of the XEGS but not the hardware of the cartridge.

 

Kind regards,

Henrik (Island2Live)

Link to comment
Share on other sites

Swap out + logic to automatically swap in based on address would be pretty cool although probably increase the expense more compared to simplistic banking.

 

You'd probably need to base it on write to the lowest address.

 

From memory, 400/800 does Ram test on 4K increments $1000, $2000, $3000 etc. and quits on first readback failure. XL does a byte at a time.

 

There's also the potential, although easily worked around, that unwanted coldstart can occur if the Rom checksum changes. But thanks to a bug in the XL OS, only the last 16 bytes of the cart are involved in generating it. And it's only relevant in cases where Rom overlay can change at the higher addresses.

Link to comment
Share on other sites

... But thanks to a bug in the XL OS, only the last 16 bytes of the cart are involved in generating it. And it's only relevant in cases where Rom overlay can change at the higher addresses.

So a neat feature would be to swap out the lower ROM area from $8000 to $9FFF? Should be not that complicate. By having a look at the circuit layout provided by Wrathchild - thank you for that btw. - there are lines names »RD4« and »RD5« on the cartridge port which tells the Atari if a bank of ROM is present or not (not sure out of the moment which line is for which ROM area). That's the way to technically let the cartridge switch itself away.

 

I am not particular sure if you need this features for games which are specifically new and from scratch programmed for a cartridge.

 

Kind regards,

Henrik (Island2Live)

Link to comment
Share on other sites

I am not particular sure if you need this features for games which are specifically new and from scratch programmed for a cartridge.

 

Going on your requirements, the XEGS model (without the ability to switch out the ROM) should be fine. The larger carts I've used in the past to put existing games upon that use all the RAM (e.g. Gauntlet, Eidolon, Koronis Rift) where the bank switching is used with a replacement 'disk get sector' routine.

 

I'd also recommend going with the earlier suggestion regarding a 1Mbit/128MByte AtariMax FlashCart though as it's switching model is flexible and you don't have to use all of the ROM and the flash chip prices aren't bad.

Link to comment
Share on other sites

I'd also recommend going with the earlier suggestion regarding a 1Mbit/128MByte AtariMax FlashCart though as it's switching model is flexible and you don't have to use all of the ROM and the flash chip prices aren't bad.

That's one very true word. Of course I've investigated some on that point. And I was stunned how cheap Flash-EPROM-chips currently are. For example a 4 Mbit Flash-Chip from Microchip (specifically »SST39LF040«) goes for $1,00. And you instantly have 512 Kbyte of switching memory in the cartridge. Regardless how much ROM your needs, even if it's only 8 Kbyte, this price beats everything. EPROMs and OTP-ROMs (EPROMs without a window) are much more expensive.

 

The downsides are: only 3,3 Volt (Atari supply is 5 Volt) and TSOP packaging (those are the ones with the small pins). Which means you need some sort of voltage convertors and soldering by hand is nearly forbidden. Programming the Flash-ROM is also an other story.

 

Well ... how did Flynn say? »There are no problems, only solutions!« :)

 

Kind regards,

Henrik (Island2Live)

Link to comment
Share on other sites

Is there an accepted scheme for this?

At power on there is a small tantalum cap that holds down the reset line for the address line/data line latch so it is positively reset to a known state, all zeros or all high depending on the particular latch used, well after the power bus is good to go and the machine is booting. IF that is what you meant. A high value bleed resistor to 5 volts then allows the reset line to become normalized in due time - some latches don't incorporate a reset line IIRC and can't be used like this. I don't have access to any example values for a time constant verification, sorry. And I don't recall off hand just how the XE supercart does this either, but I sure don't recall a tantalum being on the board at all - don't get old people. Perhaps the 374 latch used there has a built in power on reset function? Again, I don't recall that aspect. Ahh, now I'm thinking the XE supercart latch powers on in a guaranteed high impedence state and the pull up resistors are in charge of an all high situation.

 

Never mind, I should have gone to bed...

Edited by 1050
Link to comment
Share on other sites

 

Does your pcb fit into an old Atari 800 cart shell ?!? (It looks like it does.)

And/or does it fit into an XE/XEGS cart shell (made in Taiwan, the one without screws) ?!?

 

Last not least how much do you ask for 1, 10, 50 of these pcb`s ?!?

-Andreas Koch.

 

Yes, it fits the old brown shell.

 

1- $4

10 $3.50

50 $3.00

100 $2.75

200 $2.50

  • Like 1
Link to comment
Share on other sites

Yes, it fits the old brown shell.

 

1- $4

10 $3.50

50 $3.00

100 $2.75

200 $2.50

Bryan,

 

are you talking about one can order the empty PCBs from you, assemble them by themselves, use the »Maxflash Studio Software« to program the chip and distribute his own game?

 

Kind regards,

Henrik (Island2Live)

Link to comment
Share on other sites

Bryan,

 

are you talking about one can order the empty PCBs from you, assemble them by themselves, use the »Maxflash Studio Software« to program the chip and distribute his own game?

 

Kind regards,

Henrik (Island2Live)

If you use my boards, you'll need to program your own EPROMs and solder the parts in the boards. The other parts are common and inexpensive (except for the plastic/metal shells which are becoming more expensive unless you gut some existing cartridges).

 

If you buy MaxFlash cartridges from AtariMax, then you just need the MaxFlash programming device to make working cartridges.

Link to comment
Share on other sites

infos!

 

XE 1M Cart Instructions (Rev A)
by Bryan Edewaard

This board is designed to fit into the classic (brown) Atari shell and provide up to 1MB of ROM space via bank-switching. It can also be configured for a non bank-switched 16K ROM.

The switching scheme is based on the XE cartridges produced by Atari. Any access within 8000-9FFF will read from the selected 8K bank, and any access within A000-BFFF will read from a fixed bank (the topmost 8K in the ROM). A write to the D5 page (D500-D5FF) sets the current bank.

Theory of operation:

U2 is a 374 8-bit register that holds the selected bank. While accessing A000-BFFF this chip is disabled, and the installed resistors (R1,R2,R3 or RN1) pull all the bank-switching address lines high causing the last bank to be read. While accessing 8000-9FFF the 374 is enabled and the selected bank is read.

U3 is the 28-pin footprint for a 27128-27512. U4 is the 32-pin footprint for a 27010-27080. U1 is a 00 quad NAND gate (combinational logic), and C1 & C2 are .1uF decoupling caps (for noise suppression).

R1, R2, and R3 are the pull-ups for A13, A14, and A15 respectively. In their place RN1 (SIP resistor network) can be used to pull up lines A13-A19

I typically use 74HCT logic with this board, but just about any TTL logic (such as LS, ALS, F, etc.) should work.

Here are the specifics for using different size EPROMs:


-16K (27128):

Resistors: Omit R1, R2 & R3 = jumpers

The bankswitching is disabled for this size and U2 is omitted (install U1, however). In the space for U2, install a jumper between pins 1 & 2. Also install R2 & R3.


-32K (27256):

Resistors: R1 & R2 = 4.7K, R3 = 1K, omit RN1

Set bits 0 and 1 to the desired bank.

With this size EPROM we need to address the problem of the VPP pin (pin 1). This pin is used for A15 in larger EPROMs, so the cartridge is designed to be able to toggle it. But most 27256 EPROMs will stop functioning if this line goes low. Since the 374 is in an unknown state at power-up, we need a way to make sure the EPROM will always respond. There are a couple possible solutions to this problem:

1. The easy method: Bend up (or cut off) pin 6 of the 374 so R3 always keeps VPP pulled high. This method will work regardless of the ROM image (when using this method you can replace R3 with a jumper wire if you wish).

2. The software solution: Set the diagnostic flag in the cartridge. This way, the OS will only check one byte at the end of the cartridge before jumping in so the 374 is never engaged before you get a chance to set it. From then on, always keep bank-select bit 2 set to keep VPP high. Remember that a diagnostic cartridge must initialize the system itself, so you cannot use this option unless you specifically write for it. R3 is 1K to make sure it meets the current requirements for the VPP pin.


-64K (27512)

Resistors: R1, R2 & R3 = 4.7K, omit RN1

No surprizes here. Just set bits 0,1 and 2 to the desired bank.


-128K (27010)

Resistors: Omit R1,R2,R3 and install an 8-pin bussed 4.7K network in RN1.

Set bits 0,1,2 and 3 to the desired bank.


-256K-1MB (27020-27080)

Same as above, but add one more bank-select bit for each increase in EPROM size (bit 7 is never used).

 

Notes:

Always remember that the IC's face the back of an Atari 8-bit computer cartridge.
C1 & C2 can be any small, inexpensive .1uF (usually marked '104') ceramic or monolithic cap.
The board is designed for 1/4 watt resistors. However, 1/8 watt will work too.

post-3606-0-79583900-1395276611_thumb.gif

  • Like 2
Link to comment
Share on other sites

  • 9 years later...

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...