Jump to content
CPUWIZ

VersaBoard PIC BIOS W.I.P.

Recommended Posts

Hello,

 

on weekends and late at night, I've been working on and off on a "BIOS" for the VersaBoard, which if anything else, will help a lot with debugging. Yes, you read that right, I created a command interface between the 7800 and the PIC. This involved PLD logic, PIC ASM and 7800 ASM. The 7800 uses an extra bit on the bankswitch latch, to latch in the data bit, the PLD monitors a magic address, tells the PIC about it and the PIC picks up the signal and grabs the latched data bit. It then issues a IRQ to the 7800 and does this in handshake for 8bits (size of the commands). Not sure about reading from the PIC yet, but if I get that to work, HEHE! :P

 

The "GeekPorts" sure are handy, I knew it. They are configured like a breadboard on one side and jumper headers on the other (I used wire wrap sockets). None of the wires in the board are soldered in, except the IRQ line, no way around that.

 

I gotta lay back down for a bit, my back is killing me, I'll be back in a bit for a couple more pics. ;)

 

I will let pictures speak for themselves...

VBPICBIOS.png

MPLABBefore.JPG

VersaBoardPICBIOS.JPG

  • Like 4

Share this post


Link to post
Share on other sites
The "GeekPorts" sure are handy, I knew it. They are configured like a breadboard on one side and jumper headers on the other (I used wire wrap sockets). None of the wires in the board are soldered in, except the IRQ line, no way around that.

 

For the IRQ line maybe you could solder in a short post and wire wrap it. :evil:

 

Great work again!

 

Mitch

Share this post


Link to post
Share on other sites

Final addition for now, I just had a few minutes to see if my EEPROM/RAM access control works now, looks like it does...

 

 

VBPICBIOS2.png

  • Like 3

Share this post


Link to post
Share on other sites

Wow, is this really too technical for you guys? I know a couple people got it, but the response has been more than underwhelming. :?

 

After a late night and a few hours today, I fracking did it! More later, I need to clean some stuff up in the code for all 3 processors. LOL

 

jump.gif

Share this post


Link to post
Share on other sites

Wow, is this really too technical for you guys?

 

Yes. When we read your first post, this is what we think it says:

 

"My weekends are full of logic and PCP. I have 7,800 pics of magic monitors. I like all of the geeky handshakes I get when I switch to a new bank."

  • Like 3

Share this post


Link to post
Share on other sites

Will I dream Dave?

I see 256k bankswitching and commands from ram being written to the eprom? I feel so stupid. There looked like some clock cycle manipulation?

 

Did you overclock the 7800 through software? :) Is this how the Terminators and Skynet take over?

 

It looks very cool... please explain it to me in small words... I'm a graphics guy.

  • Like 1

Share this post


Link to post
Share on other sites

Ok, I'll take this step a little slower.

 

This picture shows you the PIC development environment, right after assembling the code, the EEPROM contents are what are programmed onto the chip. This is optional and only for demo purposes. I then take the PIC and put it into the board.

 

Notice memory location 112 ($70) and remember it. ;)

VBPICBIOS3.png

Share this post


Link to post
Share on other sites

Next step, move over to the 7800 code, you can probably sort of figure out what that code is supposed to do, even if you are not a programmer. My comments should be enough, combined with the commands themselves. On the bottom you can see the ROM prepped and ready to roll, next the EEPROM (yes I am using flash for dev, shocking, right?), which is a AM28F020, is programmed. I insert the EEPROM into the board and turn on the power.

 

 

VBPICBIOS4.png

Share this post


Link to post
Share on other sites

First thing that happens is nothing exciting at all. Until!

 

I hit the right joystick button and EEPROM location 112 ($7F) is read and displayed on the screen. So what could that possibly mean?

 

Next, I fiddle with the joystick and select command $F0 (Set EEPROM location to 112/$70), I execute it (red flash), then I select command $0F (write one byte), I execute it (red flash), next I fiddle the byte I want to write into place and execute it (red flash), finally, I hit the right joystick button and read from 112 again, see what happened? Forget the rest, just more of the same.

 

 

Still confusing?

  • Like 1

Share this post


Link to post
Share on other sites

That's pretty cool! Would have been easier to say that you can now save data with the PIC though, probably still confusing :lol: How much EEPROM does that pic have? And I'm sure a different 8 pin PIC could be used if more memory is desired?

Share this post


Link to post
Share on other sites

TADA!

 

It has 128 bytes of EEPROM on board, I do not know of another 8pin PIC that has more.

 

Not only that, but I have a command interface, that can even access the internal RAM of the PIC. Which could be utilized to do some bat-shit stuff, like play melodies on an internal (YES, IN THE CART) piezo speaker (think melodies or sound effects coming out of a greeting card). Nevermind driving LED's or hacked up USB rocket launchers. LOL

 

Also, not all commands are used, custom ones can be created (Hmm, maybe at the beginning of the cart boot, query a serial number? :ponder: ). The PIC can be code-protected to foil most of the people, trying to make reproductions of homebrews, I would think. ;)

 

Hell, you could code up a receiver and use the programmable IO pins as a terminal output. Or maybe hook up a LCD screen to the cart, that can display memory contents, for instance. :cool:

  • Like 3

Share this post


Link to post
Share on other sites

 

 

Hell, you could code up a receiver and use the programmable IO pins as a terminal output. Or maybe hook up a LCD screen to the cart, that can display memory contents, for instance. :cool:

 

Or an LCD where the end label goes that displays the current high score for the game on the cart.

  • Like 2

Share this post


Link to post
Share on other sites

Amazing!! I sure hope these inventions get to be utilized by programmers someday to show their potential on upcoming games.

There is lots of possibilities...great work!!

  • Like 1

Share this post


Link to post
Share on other sites

An lcd that show the current inventory item or gives hints or a sort of spider sense/danger radar for in game baddie proximity... heck add a port and have it talk to an nes ROB or just run a light show! This really is so cool!

  • Like 1

Share this post


Link to post
Share on other sites

Sorry, been really busy, just got a few.

 

Found a Piezo last night. :D

 

Hmm. :ponder:

 

 

piezo.JPG

  • Like 1

Share this post


Link to post
Share on other sites

Very nice! :thumbsup:

 

You could also use PWM out from the PIC to the external audio pin, as a pokey alternative.

Share this post


Link to post
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...