Apple2fpga for DUO/Classic Computing Shield


vlait

Recommended Posts

Hello, while trying to find examples of SD card interface I came up with Stephen Edwards's Apple2fpga 

( http://www.cs.columbia.edu/~sedwards/apple2fpga/ )

 

 

Attached is first try of porting to Papilio DUO/computing shield.

Plug in a ps/2 keyboard (port1) and a VGA display and you're good to go... the system 

is built with the same rom as the original project so there's really not that much to see without attaching a disk.

 

An SD card can be used as a virtual disk drive (currently able to access just one raw image though)

 

!!PLEASE BE CAREFUL WHEN WRITING THE IMAGES TO THE SD CARD!!

 

The dos3 disk image (also in the archive) does seem to work ok so games might too... but no guarantees.

If anyone has any suggestions on how to make the image handling a little less hazardous and more userfriendly i'd be happy to hear them :D

 

 

-V

 

apple2fpga-papilioduo.zip

Link to comment
Share on other sites

Interesting, I've run this on my DE2. Will it work on the Papilio Pro? IIRC it needs 48K of RAM but I haven't added up the ROM requirements.

 

Making the SD cards is a pain as I recall, same with FPGA64. There really needs to be a tool to take the disk image files and write a selected collection of them to an SD card. Either that or implement a FAT filesystem in the microcontroller but that limits portability of the code.

Link to comment
Share on other sites

Papilio Pro might be a little harder, the code doesn't it entirely in BRAMs... not to mention the fact there is no SD card interface builtin like on the Classic Computing Shield.

There are no switches on the computing shield so disk image selection would be a little difficult... adding a separate MCU to handle the FAT (and UI) sounds like the best solution.

 

 

-V

Link to comment
Share on other sites

*EDIT* sources can be found at 

https://github.com/vlait/papilio-duo/tree/master/apple2fpga-papilioduo

 

The papilio specific ones are in the papilio-duo directory, no original sources were harmed (i hope:)

There aren't any gotchas afaik, the code is very much vendor agnostic.

 

I was thinking about connecting the joysticks... Apple II's joysticks were analog and reportedly faking with digital ones does not produce good results.

Would the hack described at 

http://lukazi.blogspot.fi/2009/04/game-controller-atari-joysticks.html

work and if so with how many games ?

 

Guess i'll try out both over the weekend if i manage to steal some time off.

 

 

-V

Link to comment
Share on other sites

Papilio Pro might be a little harder, the code doesn't it entirely in BRAMs... not to mention the fact there is no SD card interface builtin like on the Classic Computing Shield.

There are no switches on the computing shield so disk image selection would be a little difficult... adding a separate MCU to handle the FAT (and UI) sounds like the best solution.

 

 

-V

 

I thought that would likely be the case, it would probably work on a Pro though using external SRAM. SRAM is practically essential for classic computer recreation. At any rate it works fine on my DE2 so I don't really need it on the Papilio.

Link to comment
Share on other sites

I think Papilio Pro would be doable with SDRAM, it just requires a rewrite for RAM placement, most of it doesn't get accessed by anything except the cpu.

(i looked at the memory map, not the actual design so i could be wrong :) 

 

git updated with an on/off analog joystick (there's also a new bitfile in the build directory), i tested with only one game and it seemed to be working ok but ymmv.

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.

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.