Jump to content
IGNORED

F18A


matthew180

Recommended Posts

FPGAs are friggen cool. I am surprised that a project to standardize a MESS-in-an-FPGA type of setup does not exist. Imagine, a single FPGA-based device with standardized PS/2 input, VGA output and other interfaces with the ability to emulate ANY machine just by changing the core. With the massive similarities between the simple interfaces in the various 8-bit systems (even some others,) it should be fairly easy. Every computer had a joystick interface, a keyboard, and a monitor. The specific interfaces, like the Atari parallel, CBM IEC serial, etc., could be handled with an adapter module.

I've been working towards this, from a HDL perspective, for some time. Still in the experimental phase... but the idea was to build a MAME-like development framework for FPGA emulation by developing standard modules such as bitmap, tilemap and sprite engines, PS/2 input modules, plus other I/O that could be wrapped around platform-specific emulation cores. Managed to shoe-horn a few designs into it, but it's a lot more difficult than an equivalent software project.

 

Anyway... <PACEDEV>

Edited by tcdev
Link to comment
Share on other sites

I was poking around looking for information on the cartridge format of the ColecoVision and could not find anything useful. In particular, there is an FAQ which discusses the BIOS, which says it looks for a header and then transfers control to the cartridge. Ok, where?

 

The Coleco tech info online is kind of a pain to find (I still haven't found a list of BIOS calls, but I probably wouldn't use them anyway). But you can find the cart header here: http://www.atariage.com/forums/topic/168314-coleco-cartridge-header-from-official-documentation/

Link to comment
Share on other sites

Yeah, I was keeping up with the Y! list when Marc posted that. He had his computer at the Faire and I asked him to run that test with my F18A, but being from Oklahoma, he could not remember how to set it up... ;)

 

I'll definitely be looking for someone to try and over run the VDP. It will probably be a tricky test though, since you first have to prove you are over running the real 9918A, then swap to the F18A and have measurable results.

 

I think the MSX1 would be a good platform to test that on, but I don't know any MSX1 assembly programmers...

 

Matthew

 

 

Try this..... Not really that tricky or complicated..... at least for us Okies...;-)

 

DEF OVERUN

 

VDPRD EQU >8800

VDPWD EQU >8C00

VDPWA EQU >8C02

MYREG EQU >8300

 

R0LOW EQU >8301

R1LO EQU >8303

 

OVERUN LWPI MYREG

LI R0,>4000

LI R1,>2000 CLEAR THE

LI R2,768 SCREEN

MOVB R0,@VDPWA

MOVB R0,@VDPWA

CLEAR MOVB R1,@VDPWD

DEC R2

JNE CLEAR

 

LI R0,SPAD SET UP POINTERS TO LOAD

LI R1,>8310 THE BINARY INTO THE SCRATCHPAD

LI R2,30

 

LDSPAD MOV *R0+,*R1+ LOAD BINARY CODE INTO THE

DEC R2 SCRATCH PAD AREA

JNE LDSPAD

 

B @>8310 JUMP TO SCRATCHPAD

 

 

**************************************

* *

* THIS DATA IS BINARY CODE THAT GETS *

* LOADED INTO THE SCRATCH PAD *

* *

**************************************

 

SPAD DATA >04C0,>D820,>8301,>8C02

DATA >D800,>8C02,>D060,>8800

DATA >0221,>0100,>0260,>4000

DATA >D820,>8301,>8C02,>D800

DATA >8C02,>D801,>8C00,>0240

DATA >3FFF,>0580,>0280,>0300

DATA >16E8,>0300,>0002,>0300

DATA >0000,>10E2

 

END OVERUN

 

***************************************

* *

* THE FOLLOWING IS THE SOURCE FOR THE *

* BINARY CODE *

* *

***************************************

 

 

AORG >8310 START AT FIRST FREE IN SCRATCHPAD

LOOP1 CLR R0 START AT SCREEN LOC 0

 

LOOP2 MOVB @R0LOW,@VDPWA

MOVB R0,@VDPWA

MOVB @VDPWD,R1 GET BYTE FROM SCREEN TABLE

AI R1,>0100 ADD 1 TO IT

 

ORI R0,>4000 FINGER BANG R0 A LITTLE FOR THE VDP

MOVB @R0LOW,@VDPWA

MOVB R0,@VDPWA

MOVB R1,@VDPWD WRITE INCREMENTED BYTE BACK TO SCREEN

ANDI R0,>3FFF RESTORE R0 CONTENTS

 

INC R0 POINT TO NEXT LOCATION

CI R0,768 ARE WE DONE

JNE LOOP2 NO SO FINISH SCREEN

 

LIMI 2 CHECK FOR QUIT

LIMI 0

JMP LOOP1 START OVER

Link to comment
Share on other sites

  • 2 weeks later...

Well, the day job and holidays have been keeping me from any real progress, but the current status is something like this:

 

Complete (since the Faire):

 

* Choosing the final FPGA package

* Deciding on regulator specs and capacitor values and types

* Designed an initial layout and solution for the VGA header

* Deciding to keep parts minimal, ie. no external large VRAM in Rev. 1, just the original 16K

* Added a level shifter after realizing I read the FPGA datasheet wrong and the I/O's are NOT 5V compliant

* Removed the external color DAC from the design, Rev. 1 will use a 4-bit per color resistor DAC

* Almost decided on the interface to the host computer's motherboard socket (same problem the BankSwithMINI has)

* Sourcing cost efficient cables for the VGA header

* Determined power-on programming method

 

 

TODO:

 

* Figure out how to field program the device

* Design the board

* Order 2-sets of parts and prototype boards

* Assemble and test prototype

* Find a place to assemble the boards cost efficiently

* Write instructions for 99/4A, ColecoVision, MSX1

* Design and print materials

* Finalize kits (board, cables, headers, instructions, packaging, shipping, etc.)

* Front the cash to have an initial set of boards produced

 

 

I think that is about it. Really the hardest part of something like this is *not* doing the FPGA work, it is everything else that it takes to produce a finished product. Also, in this case the programming of the devices is something I'm having to learn and there are a lot of options. With a development board you don't have to worry about programming, it is all on the board, but when you need to deploy an FPGA in a product, the support of the development environment is gone. For an FPGA there are only about 6.7-billion ways to boot-program them, so picking and designing such a circuit is somewhat tedious and time consuming.

 

I definitely plan to have these out in 2011. Now that I know the FPGA I/O's are not 5V tolerant (and that I've only been lucky I have not blown up my devboard yet), I need my own board with the level shifter so I can continue working on the VHDL!

 

Matthew

Link to comment
Share on other sites

Well, the day job and holidays have been keeping me from any real progress, but the current status is something like this:

 

Complete (since the Faire):

 

* Choosing the final FPGA package

* Deciding on regulator specs and capacitor values and types

* Designed an initial layout and solution for the VGA header

* Deciding to keep parts minimal, ie. no external large VRAM in Rev. 1, just the original 16K

* Added a level shifter after realizing I read the FPGA datasheet wrong and the I/O's are NOT 5V compliant

* Removed the external color DAC from the design, Rev. 1 will use a 4-bit per color resistor DAC

* Almost decided on the interface to the host computer's motherboard socket (same problem the BankSwithMINI has)

* Sourcing cost efficient cables for the VGA header

* Determined power-on programming method

 

 

TODO:

 

* Figure out how to field program the device

* Design the board

* Order 2-sets of parts and prototype boards

* Assemble and test prototype

* Find a place to assemble the boards cost efficiently

* Write instructions for 99/4A, ColecoVision, MSX1

* Design and print materials

* Finalize kits (board, cables, headers, instructions, packaging, shipping, etc.)

* Front the cash to have an initial set of boards produced

 

 

I think that is about it. Really the hardest part of something like this is *not* doing the FPGA work, it is everything else that it takes to produce a finished product. Also, in this case the programming of the devices is something I'm having to learn and there are a lot of options. With a development board you don't have to worry about programming, it is all on the board, but when you need to deploy an FPGA in a product, the support of the development environment is gone. For an FPGA there are only about 6.7-billion ways to boot-program them, so picking and designing such a circuit is somewhat tedious and time consuming.

 

I definitely plan to have these out in 2011. Now that I know the FPGA I/O's are not 5V tolerant (and that I've only been lucky I have not blown up my devboard yet), I need my own board with the level shifter so I can continue working on the VHDL!

 

Matthew

 

 

 

Ok so what... a week or two ???? ;-).......

Link to comment
Share on other sites

What is stopping you selecting an FPGA with 5v tolerant I/O? You wouldn't need the voltage level shifter(s) then.

 

Mostly because I developed using the FPGA (xilinx) that is on my devboard, and I don't have the financial resources to buy a few more devboards to migrate the design. I also have not done an extensive comparison of the FPGA's to see which ones would meet the 5V IO's (if any), and there are a lot of other factors that are more important (internal block RAM being a big one.)

 

The level shifter is no big deal really, not terribly expensive (about a dollar), and not very big. It is just something I didn't know I would need until a few weeks ago.

Link to comment
Share on other sites

  • 1 month later...

I think about it every night. ;) Not a lot of progress, but it is coming along slowly. Still working out the board design details and trying to figure out how in the hell I'm going to program the serial flash. Most of the time is because I don't know what the hell I am doing and I have to read and learn first, then try to apply it to the board design.

Link to comment
Share on other sites

I don't think anyone has asked, but it was not really in my design. I also don't think there would be enough height in the console unless the 9918A was soldered onto the board I'm making for the F18A. It might also require a lot of extra components to isolate the 9918A from the bus when it was not selected. Don't know. I never thought about it. I *do* have plans, however, to offer composite and s-video output on a later, albeit more expensive, version. While not the original 9918A, it would at least offer the same original output in addition to the VGA. That feature requires additional external components though and won't be part of V1.

Link to comment
Share on other sites

Thank you everyone for the comments. I was very surprised when Clive Maxfield replied to my email and wanted to do a feature on the F18A. From a user standpoint (i.e. people wanting to use the device) there is a lot of interest. From a technical standpoint (the guts of the implementation), there is very little interest.

 

but one thing i do not understand... will build kit to sell for this modification ?

 

What modification are you referring to, exactly?

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