PlusToo (Macintosh Plus clone) running on Papilio Pro


mkarlsson

Recommended Posts

This is based on the MiST port of Big Mess o' Wires PlusToo project.  MiST uses the same SDRAM as Papilio Pro so that made it quite easy.

 

To use this you need to flash the bitfile plustoo.bit since it contains the ROM code and the 800KB system disk data in addition to the FPGA configuration data.  The floppy is read-only.  BTW, this uses about 98% of the slices in the LX9 so it's quite full :)

 

The setup uses the LogicStart megawing for VGA.  PS/2 keyboard and mouse needs to be hooked up to A3 - A6 (normally used for 7 seg display). 

 

# PS/2 mouse
NET mouseClk       LOC = "P58" | IOSTANDARD = LVCMOS33 | PULLUP;                    # A3
NET mouseData      LOC = "P61" | IOSTANDARD = LVCMOS33 | PULLUP;                    # A4

# PS/2 keyboard
NET keyClk         LOC = "P66" | IOSTANDARD = LVCMOS33 | PULLUP;                    # A5
NET keyData        LOC = "P67" | IOSTANDARD = LVCMOS33 | PULLUP;                    # A6

 

On my setup the video is quite noisy but that could be due to my monitor.

 

You can grab the whole ISE project (including bit file) here: http://www.saanlima.com/download/Papilio_Pro/PlusToo_Papilo_Pro.zip

 

Links:

Big Mess o' Wires: http://www.bigmessowires.com/

MiST PlusToo forum: http://atari-forum.com/viewtopic.php?f=101&t=28648

PlusToo on Pipistrello: http://forum.gadgetfactory.net/index.php?/topic/2483-macintosh-plus-clone-on-pipistrello/#entry17269

 

Enjoy!

 

Magnus

Link to comment
Share on other sites

The MiST guys made a lot of changes to the code, like using a different version of the 68K CPU and the VIA chip, added support for keyboard and sound, SDRAM support, and changed memory access timing quite a bit.  They are also working on adding SCSI HD support via SD card. 

 

One major difference between the MiST version and the Papilio Pro/Pipistrello version is how the ROM and System disk data is loaded to RAM, they have a separate ARM processor that loads it via SPI, while I wrote a module that reads the ROM and floppy data from the serial flash chip at power up

 

Magnus

Link to comment
Share on other sites

The tools directory contains the scripts and roms - 

 

bitmerge is used to append data to the bitfile.

Looking at the makefile:

 

plustoo.bit: rom.bit Disk605.dsk./bitmerge rom.bit 1A0000:Disk605.dsk plustoo.bitrom.bit: ../ISE/plustoo_top.bit plusrom.bin./bitmerge ../ISE/plustoo_top.bit 180000:plusrom.bin rom.bit
 
ie you first append the from to the original bitfile with 
bitmerge ../ISE/plustoo_top.bit 180000:plusrom.bin rom.bit
then add the disk image 
bitmerge rom.bit 1A0000:Disk605.dsk plustoo.bit
 
...and burn the resulting plustoo.bit to the flash.
The 'promgen' tool included with ISE can be used to the same effect but promgen is a little more userfriendly as the result is a bitfile that can be used 
with fpga/papilioprog.
Link to comment
Share on other sites

Another option is to first flash the plustoo.bit file that's in the zip archive, it will store the rom and system disk data in flash, then load or flash your new bit file like you normally do.  The rom and disk data will remain in flash since only the configuration area will be erased when you flash your bitfile.

 

The 'promgen' tool included with ISE can be used to the same effect but promgen is a little more userfriendly as the result is a bitfile that can be used 

with fpga/papilioprog.
 
The bitfile created by Mike Field's bitmerge program can be written to flash with fpga/papilioprog just like any other bitfile.

 

Magnus

Link to comment
Share on other sites

I was able to get this working over the weekend, the arcade megawing is nice for it because all the ports are already there. I ran into problems at first because I forgot about the need to first erase the ROM prior to programming it. A custom wing could free up even more pins since the video only really needs one bit. It would be cool to wire up an external floppy drive or emulator, stuffing the disk image into the ROM is a bit of a hassle.

 

There is definitely noise in the video, oddly part of the screen is rock solid but I'm seeing a vertical band of noise about 2/3 the way across the screen. I have not looked on a scope to see what's going on. Anybody know if this happens on the Mist or other platforms?

 

I experienced some weirdness with the mouse movement too, if I moved the mouse quickly the pointer would start moving erratically. Overall it feels a lot like my old Plus though.

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.