tcdev Posted December 4, 2010 Share Posted December 4, 2010 (edited) 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 December 4, 2010 by tcdev Quote Link to comment Share on other sites More sharing options...
Tursi Posted December 4, 2010 Share Posted December 4, 2010 So on the CV, how are you getting your code into the unit. Do you have a development cart or something? Just curious. I've done my development on the emulator, and burn EPROMs for hardware testing. I've only run into minor issues here and there. Quote Link to comment Share on other sites More sharing options...
Tursi Posted December 4, 2010 Share Posted December 4, 2010 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/ Quote Link to comment Share on other sites More sharing options...
Tursi Posted December 4, 2010 Share Posted December 4, 2010 Anyway, I'll do my best to make sure all 99/4A software runs. There you go! And I'm sure that you will do an excellent job. Quote Link to comment Share on other sites More sharing options...
marc.hull Posted December 4, 2010 Share Posted December 4, 2010 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 Quote Link to comment Share on other sites More sharing options...
matthew180 Posted December 5, 2010 Author Share Posted December 5, 2010 Try this..... Not really that tricky or complicated..... at least for us Okies... Have you ever heard of the CODE tags?? I'll try that. Does it over run on a real unmodified console? Matthew Quote Link to comment Share on other sites More sharing options...
marc.hull Posted December 5, 2010 Share Posted December 5, 2010 Try this..... Not really that tricky or complicated..... at least for us Okies... Have you ever heard of the CODE tags?? I'll try that. Does it over run on a real unmodified console? Matthew Nope.... Yep..... Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted December 17, 2010 Share Posted December 17, 2010 Any news on the F18A? I'd love to get one in 2011. Would allow me to spend some time on the real deal (and on my colecovision and my future msx1) Quote Link to comment Share on other sites More sharing options...
matthew180 Posted December 17, 2010 Author Share Posted December 17, 2010 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 Quote Link to comment Share on other sites More sharing options...
marc.hull Posted December 19, 2010 Share Posted December 19, 2010 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 ???? ....... Quote Link to comment Share on other sites More sharing options...
GroovyBee Posted December 19, 2010 Share Posted December 19, 2010 What is stopping you selecting an FPGA with 5v tolerant I/O? You wouldn't need the voltage level shifter(s) then. Quote Link to comment Share on other sites More sharing options...
matthew180 Posted December 19, 2010 Author Share Posted December 19, 2010 Ok so what... a week or two ???? ....... Haha. Smart ass. Maybe if I were to win the lottery and could quit the day job. So, if anyone out there is financially wealthy or wins the lottery, and if you want the F18A faster, just send me a cool million and I'll get it right out. Quote Link to comment Share on other sites More sharing options...
matthew180 Posted December 19, 2010 Author Share Posted December 19, 2010 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. Quote Link to comment Share on other sites More sharing options...
marc.hull Posted February 15, 2011 Share Posted February 15, 2011 Bumpity.... Any updates Mathew ? Quote Link to comment Share on other sites More sharing options...
matthew180 Posted February 15, 2011 Author Share Posted February 15, 2011 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. Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted February 16, 2011 Share Posted February 16, 2011 I don't know if this been up before, but would it be possible to have a switch to easily toggle between F18A and TMS9918A ? Quote Link to comment Share on other sites More sharing options...
matthew180 Posted February 16, 2011 Author Share Posted February 16, 2011 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. Quote Link to comment Share on other sites More sharing options...
matthew180 Posted February 16, 2011 Author Share Posted February 16, 2011 The F18A is getting a little press. It seems some electrical engineers out there still enjoy the retro stuff too. http://www.eetimes.com/design/programmable-logic/4213192/Creating-the-F18A---An-FPGA-based-TMS9918A-VDP Quote Link to comment Share on other sites More sharing options...
Opry99er Posted February 16, 2011 Share Posted February 16, 2011 Nice article, Matthew, congrats! =) Nice to see the /4a getting some press. =) Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted February 16, 2011 Share Posted February 16, 2011 Bravo, Matt. Very good, indeed. Quote Link to comment Share on other sites More sharing options...
+acadiel Posted February 17, 2011 Share Posted February 17, 2011 Awesome, Matthew! Great article! Makes me want to learn about FPGA's (at least after I get all these darn insurance exams out of my way.) Quote Link to comment Share on other sites More sharing options...
ti99iuc Posted February 17, 2011 Share Posted February 17, 2011 and matthew180's news is linked on my home page too !! but one thing i do not understand... will build kit to sell for this modification ? Quote Link to comment Share on other sites More sharing options...
matthew180 Posted February 17, 2011 Author Share Posted February 17, 2011 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? Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted February 17, 2011 Share Posted February 17, 2011 (edited) I was a little puzzled with the question too. I guess the F18A is the "modification". And I guess the answer is: Yes, the kit (package) sold, will explain how to modify (build) the TI-99/4A ?!?? Edited February 17, 2011 by sometimes99er Quote Link to comment Share on other sites More sharing options...
ti99iuc Posted February 17, 2011 Share Posted February 17, 2011 (edited) Thanks sometimes99er to helped me about understand my english... some joined the site, ask me if we will be able to buy a kit ready build a VGA port in ti99, so i am very happy for this news... Edited February 17, 2011 by ti99userclub Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.