Jump to content
IGNORED

A8PicoCart - UnoCart on a Raspberry Pi Pico


Recommended Posts

4 hours ago, a8isa1 said:

Once again guilty of not RTFM (this thread). At least not fully. Too late. PCBWay is already fabricating my order.

Piece of sandpaper and a steady hand and you're fine.  Please bevel the edges and don't destroy an old cart connector.

  • Like 1
Link to comment
Share on other sites

9 hours ago, mytek said:

JLCPCB will do gold plated fingers and beveled edges.

 

https://jlcpcb.com/quote/pcbOrderFaq/Gold Fingers

 

Hmm, I didn't do this on my ATARI 7800 cartridge PCBs, but looks like I should. I already do all my boards in ENIG, so just ticking the Gold Fingers option is all you need to do? There is no markup in the gerbers you need to add? I do make a panel with v-scores on my PCBs, but I wonder if it is just one row and the fingers are only at the edge, if they will still be chamfered?

Link to comment
Share on other sites

2 hours ago, selgus said:

Hmm, I didn't do this on my ATARI 7800 cartridge PCBs, but looks like I should. I already do all my boards in ENIG, so just ticking the Gold Fingers option is all you need to do? There is no markup in the gerbers you need to add? I do make a panel with v-scores on my PCBs, but I wonder if it is just one row and the fingers are only at the edge, if they will still be chamfered?

I've never done it myself. Only came across the information that I linked to after seeing the discussion about beveling the edge in this thread and only gave it a cursory glance. Probably needs to be read in more detail and perhaps if not clear contact JLCPCB for more info.

Link to comment
Share on other sites

I've got a batch coming in with ENIG and beveled edges. I grabbed enough for 8 extra boards. Got my purple boards in yesterday.

 

I'm thinking $15 + shipping for anyone that wants them in the USA, but I'd recommend a donation to the creator also.

 

(I make and sell the Link232-Wifi line for the Commodore computers, so I like to do other boards like this one and offer them cheap. They will be assembled, cleaned in the ultrasonic, tested and include a 3d printed case).

 

 

  • Like 1
Link to comment
Share on other sites

I have a question about turn off the A8PicoCart. There were a cartridges (standard 8k) with cassette turbo systems, which works such way that they loads a program to the RAM, and then display message "turn off the cartridge". The simple construction of that cartridges just has the eprom and the switch which cut RD4/RD5.

 

In the main menu program of A8PicoCart there is an option "X" for turn off the cartridge. But we can use this option only when we are in the menu. I'm wondering if is it possible to add a second button similar to existing reset button. This new button could be attached to the not used pin on Pico, and add the function so when the button is pressed, then the cartridge is turned off the exact way as when we press the "X" in menu.

 

Alternatively if you don't want to do such modifications in official firmware for Pico, then I have another question. Can I just add the switch on the lines RD4/RD5 and turn it off physically? I'm wondering if it is enough to achieve what I want. If I just cut RD4/RD5 then the Pico still could be react for cctl and/or address and data busses and pico still will do its program? Could it couses any problems or conflicts on busses?

 

Initially I checked just to pull out the cartridge when the turbo system display "turn off the cartridge" and it works ok, but I don't want pull out and insert the cartridge each time:-) What is the best way in my case?

Link to comment
Share on other sites

So the model for the cartridge doesn't have control of the RD4/5 lines itself and so could then disabled then via a software command.

If not there are a couple of options I see:

1) move them to a cart model that permits s/w disable of the cart banking and patch the "turn off cartridge" s/w to do that instead of displaying.

2) assuming there are already versions of that s/w in other formats... use them.

Link to comment
Share on other sites

Yes, I know, of course I can use a different version of the software. However, my point is to use the original cartridge from my childhood. That's why I'm asking whether it can be done this way or not. Just running the program is not my main goal. The goal is to disconnect the cartridge without removing it whenever I want to do so.

Link to comment
Share on other sites

17 minutes ago, Mq. said:

my point is to use the original cartridge from my childhood.

I don't understand, what has that got to do with Pico, which would use an image of the cart's binary data... not the original? 

 

Or do you want to do away with the PicoCart firmware/menu and have it run your image?

Edited by Wrathchild
Link to comment
Share on other sites

No, it's misunderstand.
I'm running an image of the old cartridge on the A8Pico, and not the original cartridge. This image I'm running from A8Pico. And the image works ok, but the program from image want to disable cartridge and the program is waiting for it. I can just pull off the A8Pico from the Atari, and it works ok for me. But the old cartridge was designed so there were switch to just turn off RD4/RD5.
My qustion is, if I do the same, and I will just detach physically RD4/RD5 from A8Pico cartridge, then it will work correct?

Link to comment
Share on other sites

@Mq. Looking at the schematic, there are 2 GPIO left: 28 and 29. You could add a button to one of those with a pull up or down resistor. Then if the code is modified, when the button is pressed the code could enable/disable itself. Not sure how hard it would be to add that in the firmware.

 

Something like this:

image.thumb.png.eced53d76ecc70cae82b4030ad8e1e3f.png

  • Like 1
Link to comment
Share on other sites

Yes, that's exactly what I had in mind. And that's what I was asking, is it possible to do this easily in the Pico code, to press a button to stop the Pico code and set RD4/RD5 to low.

 

I thought about it because there is already a code to disable the cartridge under the "X" key. I was wondering if it would be possible to achieve the same thing at any time with an additional button.

Edited by Mq.
Link to comment
Share on other sites

12 minutes ago, Mq. said:

Yes, that's exactly what I had in mind. And that's what I was asking, is it possible to do this easily in the Pico code, to press a button to stop the Pico code and set RD4/RD5 to low.

 

I thought about it because there is already a code to disable the cartridge under the "X" key. I was wondering if it would be possible to achieve the same thing at any time with an additional button.

I peeked at the code and I see CART_CMD_NO_CART which just sets cartType value to 0 when it receives the command from user input. not sure where you would add the GPIO check or if it would need to be polled or using interrupt. 

Link to comment
Share on other sites

Each cartridge model sits in its own loop, so your particular model's code would have to detect and act on the button press. An interrupt on the pin could be employed but could quite easily throw other things out (e.g. if accidentally pressed) i.e. would need code to be running outside of the cart window 

Link to comment
Share on other sites

Ok, I understand more now. The particular cartridge I'm talking about is old version of Turbo 2000. I thought it is only example, and it is good idea to add functionality to A8PicoCart, so it would be possible to turn off any cartridge any time on demand. Like a detach cartridge function in Altirra emulator for example.

 

But maybe I'm thinking wrong. Later versions of such Turbo 2000 cartridges has a simple timer, which detach RD5 signal few seconds after program loads to RAM. Maybe there should be a separate cartridge type in the emulator, which would do this function, and then the same function could be added to A8PicoCart with separate cartridge model loop. I think it would be more correct way.

Link to comment
Share on other sites

4 hours ago, Mq. said:

But maybe I'm thinking wrong. Later versions of such Turbo 2000 cartridges has a simple timer, which detach RD5 signal few seconds after program loads to RAM. Maybe there should be a separate cartridge type in the emulator, which would do this function, and then the same function could be added to A8PicoCart with separate cartridge model loop. I think it would be more correct way.

share the cartridge and how to know if it turns off RD5. in the firmware the emulation of 2k, 4k and 8k once the cartridge is loaded leaves RD5 in RD5_HIGH. maybe adding a line at the end of the load RD5_LOW can work in theory.

Link to comment
Share on other sites

The point is I touched a topic about the emulators, which don't support many typical early turbo tape loaders cartridges.
They are mostly the simple standard 8k cartridges, but they have a possibility to turn off the cartridge on demand by the switch on RD5 line.

 

The oldest turbo tape loaders cartridges works such way, that on the cartridge there is a software (mostly loader for turbo tapes) which loads himself to the RAM. Then the cartridge software displays the message to the user so he should turn off the cartridge. When the user turns off the physical switch on the cartridge (which cut RD5), then the computer is restarted (by RD5 change) and starts the turbo loader from the RAM.

 

That was the first constructions. Later the designers added a simple timer to the cartridge schematic, which automaticaly change the RD5 state after a few seconds from turn on the computer. In this few seconds the program is loaded to the RAM, displays the message about turning off the cartridge, and after this the RD5 is changed, so the computer restarts and run turbo loader from the RAM. The software don't controls RD5 line, it's just the matter of this simple electronic timer device.

 

After the two early solutions I described above, the designers came up with a programatic RD5 line control. These are for example two known cartridges types in emulators: Phoenix and Blizzard. But now I'm not talking about them.

 

I attach a link to the schematic, on which the three described situations are shown:

http://seban.pigwa.net/atari/Turbo2001_v2.1/sch/Turbo2001_v2.1_bw.png

 

I attach example cartridge image with Turbo 2000.

This image works as standard 8k cartridge. Try it in Altirra as 8k. After start it will show the message (in Polish it means "turn off the cartridge") :

image.png.c966840d268c0c620ece9ab8bee8b347.png

 

Then detach cartridge (which is equivalent of switch on RD5 line) and the computer will restart with this (in Polish "whether to enable basic (Y/N)") :

image.png.7e4b44a612ae35649d0d682394d9842a.png

 

Then press "N" for turn off Basic, and you will see this (turbo 2000 tapes loader) :

image.png.c347f8681b6c6eff86efcf426b666b07.png

 

Anyway, I think everything will work as I want to, if I built in the switch on RD4/RD5 lines in my A8PicoCart. But all this topic is caused by my thinking, that more elegant solution would be adding a tactswitch on unused pin of Pico. If it is pressed then Pico stops the cartridge service program, and pull down RD4 and RD5 lines - exactly like the key "X" in main menu.
If you think it is good idea, then fine. If you don't think it is good idea, then no problem for me, I just will install the switch on RD4/RD5 lines in my particular A8PicoCart, and it is ok for me:-)

 

T.2000.BIN

Edited by Mq.
  • Thanks 1
Link to comment
Share on other sites

Thanks for the explanation, now I understand. I will do a test automatically once the cartridge is loaded, turn off the RD5 and we will test.

 

About the Phoenix and Blizzard cartridges I already made the emulation of some of them is in the latest firmware version on github.😎

 

I personally want picoa8cart to emulate all those strange cartridges in the world. 😁

  • Like 1
Link to comment
Share on other sites

10 hours ago, ascrnet said:

Thanks for the explanation, now I understand. I will do a test automatically once the cartridge is loaded, turn off the RD5 and we will test.

I think it is hard to say when there is the moment the cartridge already completely loads all the stuff to the RAM. So this is the cause it is good idea for on demand button or waiting few seconds. Second cause to do it this way is the ability to see for a while the original message "turn off the cartridge".

10 hours ago, ascrnet said:

About the Phoenix and Blizzard cartridges I already made the emulation of some of them is in the latest firmware version on github.😎

Yes, I know:-) This is why I mentioned them above:-)

The image of Turbo 2000 which I attached works ok as car image prepared as both of them. It just requires double the image for 4k or quadruple it for 8k.
Ofcourse the simplest way to just run the image of this Turbo 2000 is to replace the message "turn off the cartridge" by the code lda/sta $D500 and then it will work as Blizzard or Phoenix.

However, having fun with retro, I would like to run this turbo from the untouched original image from the 80s. This is the essence of the matter🙂

10 hours ago, ascrnet said:

I personally want picoa8cart to emulate all those strange cartridges in the world. 😁

Yes, I thought exactly the same as you. The project is wonderful for running standard xex files and games cartridges images. But there is wider possibility to run something else.

Thank you for your interesting in my case:-)

Link to comment
Share on other sites

Because the costs are so low to make these A8PicoCarts, it seems like these would be a perfect alternative to make homebrew cartridges of single games. I created many cartridges with the GAL-chip, but these are getting harder to find and are becoming more and more expensive these days.

 

It would be nice if there would be a way to skip the menu when, for example, only a single file is present on the cartridge 😉

 

 

 

 

Edited by Fred_M
  • Like 2
Link to comment
Share on other sites

11 hours ago, Fred_M said:

It would be nice if there would be a way to skip the menu when, for example, only a single file is present on the cartridge

I attempted (and gave up) to adjust the code so that files named autorun would be booted automatically if they had a know extension. That way simply renaming one of the files on the cart would result in a ready to use cartridge for others, until they change the filename again.

Link to comment
Share on other sites

On 11/26/2023 at 9:12 AM, Mq. said:

I think it is hard to say when there is the moment the cartridge already completely loads all the stuff to the RAM. So this is the cause it is good idea for on demand button or waiting few seconds. Second cause to do it this way is the ability to see for a while the original message "turn off the cartridge".

 

I performed several basic tests by turning off the RD5 after the cycles that the firmware has for the 8k cartridges but it returns me to basic. so you are right you have to find a way to determine when it was all loaded. 😅

 

On 11/26/2023 at 9:12 AM, Mq. said:

The image of Turbo 2000 which I attached works ok as car image prepared as both of them. It just requires double the image for 4k or quadruple it for 8k.

 

I find your image strange because it is set to 8k but it is really 2k. you say that the 2k is repeated to form 4k or 8k on the actual cartridge?

 

On 11/26/2023 at 9:12 AM, Mq. said:

Yes, I thought exactly the same as you. The project is wonderful for running standard xex files and games cartridges images. But there is wider possibility to run something else.

Thank you for your interesting in my case:-)

no problem, I always called my attention to the national cartridges of my country and international. I have another new supported cartridge when I have a little more time I will upload it to the github. 😎

 

20 hours ago, Matej said:

Are both Pico cores used? Is possible use second core as player??? Mod some player and use it in games?

I understand that only one core

  • Like 1
Link to comment
Share on other sites

For auto running, you would need to mount and jump to the model provider for a CAR image rather that using the menu handler.

 

XEX files would need to be XEX loader copied to memory and that is embedded in the MENU ROM code.

So to do this you then the menu start code could look for a specifically named file (e.g. AUTO_CAR.IMG or AUTO_XEX.IMG - so they don't show up when the menu is used) and then swap to the handler for that.

 

 

Link to comment
Share on other sites

30 minutes ago, SenorRossie said:

I attempted (and gave up) to adjust the code so that files named autorun would be booted automatically if they had a know extension. That way simply renaming one of the files on the cart would result in a ready to use cartridge for others, until they change the filename again.

Maybe another option should be to make the A8Pico Menu rom Not Hardcoded in the firmware and instead take it from the FAT partition. Not sure if possible. That way you would rename your favorite cart A8PicoMenu and it should run by default.

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