6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Tue Mar 19, 2024 5:12 am

All times are UTC




Post new topic Reply to topic  [ 40 posts ]  Go to page 1, 2, 3  Next
Author Message
PostPosted: Thu Feb 06, 2014 8:07 pm 
Offline

Joined: Wed Jan 04, 2012 9:02 pm
Posts: 65
Following on from my "advanced notice" post, I now have pleasure in announcing the "Multicomp" design-your-own computer is now online.

*****UPDATE 6th NOV 2019 - NEW HOSTING AND DOMAIN - PLEASE GO TO http://searle.wales AND FOLLOW THE LINK FROM THAT PAGE*****

http://searle.hostei.com/grant/Multicomp/ (NOW DEAD)

[ TEMPORARY MIRROR : http://zx80.netai.net/grant/Multicomp/index.html ]

Image

You can build a 6502, 6809 or Z80 computer with internal or external RAM, connected to a TV (composite video or RGB) or VGA monitor or to a serial port, or both.
The entry can be either using a serial port or a standard PC PS2 keyboard.

External memory available to the built-in BASIC goes up to 56K using a single SRAM chip. Internal memory is 1K to 4K depending on what you choose and how many characters you have on the screen, if you are using one.
The video output is either monochrome on a standard composite video out or 16 colour RGB foreground/background (colours set using the standard ANSI code sequence) for each character or for the whole screen (lower memory).

Speeds of the internal CPUs run at up to 25MHz (internal RAM) (yes, really 25x the speed of a normal 6502!) or up to 10x or more with external SRAM (can achieve 25x with fast external SRAM).

Grab it and have a go - if you have already done my UK101 FPGA build then the same hardware and wiring is used - no changes needed.

If you try and get stuck, please contact me (see eMail link on bottom of web page) or feedback on this forum. All feedback welcome.

You can send me your VHDL and a summary of what you were trying and I'll get it working for you if needed.

Anyway, have fun - there's a lot of info on that page, but it is all step-by-step.

I have re-tested it today with the following computer builds, all working. These are just a FEW examples of the builds that you can do with the code that I have provided...

NO ADDITIONAL CHIPS (ALL INTERNAL TO THE FPGA)
6502 processor, 2K internal RAM, 40x25 full colour on a PAL monitor, PS2 keyboard
6809 processor, 2K internal RAM, 40x25 full colour on a PAL monitor, PS2 keyboard
6502 processor, 1K internal RAM, 40x25 full colour on a PAL monitor, PS2 keyboard
Z80 processor, 2K internal RAM, 40x25 full colour on a PAL monitor, PS2 keyboard
Z80 processor, 1K internal RAM, 40x25 full colour on a PAL monitor, PS2 keyboard
Z80 processor, 4K internal RAM, serial interface for I/O at 115200 baud
Z80 processor, 2K internal SRAM, 40x25 VGA monitor full colour display, PS2 keyboard

ONE ADDITIONAL SRAM CHIP
6502 processor, 8K external SRAM, 80x25 VGA monitor full colour display, PS2 keyboard
6502 processor, 32K external SRAM, 80x25 VGA monitor full colour display, PS2 keyboard
Z80 processor, 32K external SRAM, 80x25 VGA monitor full colour display, PS2 keyboard

The display does not have to be 40 or 80 chars, nor 25 lines - set it to whatever you need. On the page I have an example for 68x30 on a VGA screen (if you turn off the colour attribute option then again it can all fit within an FPGA with 2K program RAM internal - no additional chips needed).

Google ANSI colour (color) sequences to see how to set colours
As an example, to change the text colour in BASIC...

PRINT CHR$(27);"[92m"
Will set the foreground of characters that will be printed to bright green.

PRINT CHR$(27);"[44;93m"
Will set the foreground of characters that will be printed to bright yellow and the background to normal blue.


Have fun, as always.

Regards.

Grant
http://searle.wales

[ TEMPORARY MIRROR: http://zx80.netai.net/grant/index.html ]


Last edited by zx80nut on Wed Nov 06, 2019 4:37 pm, edited 4 times in total.

Top
 Profile  
Reply with quote  
PostPosted: Fri Feb 07, 2014 10:39 am 
Offline

Joined: Wed Jan 04, 2012 9:02 pm
Posts: 65
7th February: Page updated to show all ANSI display sequences supported (cursor positioning and colour setting) including examples.

Regards.

Grant


Top
 Profile  
Reply with quote  
PostPosted: Fri Feb 07, 2014 2:51 pm 
Offline
User avatar

Joined: Fri Oct 31, 2003 10:00 pm
Posts: 198
zx80nut wrote:
7th February: Page updated to show all ANSI display sequences supported (cursor positioning and colour setting) including examples.

Regards.

Grant

Impressive! That is an amazing system!

Thansk for sharing this!


Top
 Profile  
Reply with quote  
PostPosted: Fri Feb 07, 2014 3:20 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10753
Location: England
Just a thought: if a small bootstrap can be synthesised into the random logic, that'll free up 8k of RAM in an unexpanded machine. Actually, that RAM could be initialised as BASIC but be writeable, or could have a write-enable. The most valuable content at power-on time is a loader, because then you can install anything: xmodem would be even better than srecord which is (perhaps) a bit better then raw binary. Anyhow, I've placed my order for an FPGA board!
Cheers
Ed


Top
 Profile  
Reply with quote  
PostPosted: Fri Feb 07, 2014 3:41 pm 
Offline

Joined: Wed Jan 04, 2012 9:02 pm
Posts: 65
Thanks HansO - glad it's of interest :)

Hi Ed.
Regarding bootstrapping, using this same design and a LITTLE bit extra VHDL using the SD card I also have a full CP/M implementation to publish as well (yeah, that's Z80 so no interest to this forum ;) ). Basically, 8K BASIC and loader in ROM at startup (don't need BASIC, just a bootloader, but I find BASIC handy), switches out internal ROM once CP/M boot is chosen (bootstrap loads CP/M from SD to external RAM) then all address space turned over to external RAM. Same as my "hardware" design at http://searle.hostei.com/grant/cpm/index.html.

Will add some SD card code to the page soon. I've made it easy for you to use BASIC or your own boot loader (as I have done in Z80 asm) to read/write any sector. "BASIC"ally, POKE the sector number into the 3 sector addresses, POKE the "read" command into the command address and PEEK 512 bytes from the read address to read a sector (also PEEK commands to see if it is ready, as needed). Writing any sector is a similar process.

Have fun with the board, Ed!

Regards.

Grant


Top
 Profile  
Reply with quote  
PostPosted: Sun Feb 09, 2014 12:52 am 
Offline

Joined: Wed Jan 04, 2012 9:02 pm
Posts: 65
As mentioned in the previous reply, I am also able to run CP/M on it.
Basically it's the published build options: Z80 with external RAM, one serial port, one keyboard/monitor port and the SD card interface.
Only a very small amount of additional VHDL is needed to be able to turn off the boot ROM within the Z80 code (writing to a specific IO address).

Here's a pic (I'll upload the boot rom, bios and all other files when I get time)....

Image

Regards.

Grant


Top
 Profile  
Reply with quote  
PostPosted: Sun Feb 09, 2014 10:25 am 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10753
Location: England
Nice to see BBC BASIC - which has an embedded assembler!


Top
 Profile  
Reply with quote  
PostPosted: Sun Feb 09, 2014 2:29 pm 
Offline
User avatar

Joined: Fri Oct 31, 2003 10:00 pm
Posts: 198
zx80nut wrote:
As mentioned in the previous reply, I am also able to run CP/M on it.
Basically it's the published build options: Z80 with external RAM, one serial port, one keyboard/monitor port and the SD card interface.
Only a very small amount of additional VHDL is needed to be able to turn off the boot ROM within the Z80 code (writing to a specific IO address).



I have ordered an FPGA board to try this!


Top
 Profile  
Reply with quote  
PostPosted: Mon Feb 17, 2014 12:10 pm 
Offline

Joined: Wed Jan 04, 2012 9:02 pm
Posts: 65
CP/M files and full implementation details are now uploaded.
The CP/M implementation has it's own sub-project page linked from the main page.
Please ensure you refresh the page to see latest, and download the latest ZIP on the main page before attempting the change because the CP/M boot ROM is now included with the main multicomp distribution. I have re-built the computer using only the information and files that are on my pages and it works.

Linked from http://searle.wales

[ TEMPORARY MIRROR : http://zx80.netai.net/grant/Multicomp/index.html ]

Image

As always, any issues about any build option that you try, please feel free to contact me.

Regards.

Grant
Main page with other projects: http://searle.hostei.com/grant/index.html


Last edited by zx80nut on Wed Nov 06, 2019 4:37 pm, edited 2 times in total.

Top
 Profile  
Reply with quote  
PostPosted: Mon Feb 17, 2014 6:36 pm 
Offline
User avatar

Joined: Fri Oct 31, 2003 10:00 pm
Posts: 198
zx80nut wrote:
CP/M files and full implementation details are now uploaded.

Main page with other projects: http://searle.hostei.com/grant/index.html


Great achievement! I really admire this and plan to build one. Parts are on their way from Hongkong.

It looks like it is a hit it seems, the server is so popular that it has reached the limits of the hoster!


Top
 Profile  
Reply with quote  
PostPosted: Mon Feb 17, 2014 6:48 pm 
Offline

Joined: Wed Jan 04, 2012 9:02 pm
Posts: 65
Hi Hans.

Oh dear - that's supposed to be 100GB per month...

Right... jumped to action... I've got a temporary mirror opened here...

http://zx80.netai.net/grant/Multicomp/index.html

Please use the other one where possible, otherwise try this one.

Hope your board comes soon. Does take a few weeks normally. I see the prices have returned to normal on eBay, so there are several sellers at about the same price.

Grant


Top
 Profile  
Reply with quote  
PostPosted: Fri Feb 21, 2014 12:38 pm 
Offline

Joined: Wed Jan 04, 2012 9:02 pm
Posts: 65
Hi.

Firstly, congrats to Graeme who followed my instructions and got the CP/M version up and running with no issues a few days ago :)
...thanks for letting me know.

Secondly,

I've just had someone asking how to compile in Quartus II, so I thought I'd copy my reply here for other's benefit as well...

The web (free) edition (13.0 sp1, not 13.1) is perfect – that’s the only one I ever use. No need to purchase any software.

Open the project, make all the changes needed, save then click on the “run” ( |> ) button to compile. It will take about a minute.
Once ready, click on the “Programmer” button. It normally will auto-populate with the “SOF” file and “JTAG” as the mode.
If no file is shown already selected then open the “SOF” file under the “output_files” folder.

For temporary programming, the SOF file is used and JTAG is selected for the mode.

For more permanent programming (ie writing to the power-up config chip) you select “Active Serial” in the mode dropdown, then “Add File..” and pick the “POF” file instead.


Tick the “Program/Configure” box if not already ticked then click “Start”. SOF upload takes a couple of seconds. The POF programming takes about 10 seconds.

Occasionally (if you plug and unplug serial cables etc) the hardware is not shown. Click on the “Hardware Setup...” button and reselect the USB-Blaster from the list.

The HEX files are referenced by the VHDL components and will be auto-compiled into the programming file during compilation. Once compiled you only need to keep the SOF or POF if you want to program the device in future as everything needed is in there.

...when I get time I will add a Quartus II walkthrough to the bottom of my pages.

Have fun.

Grant


Top
 Profile  
Reply with quote  
PostPosted: Wed Mar 19, 2014 10:54 pm 
Offline

Joined: Wed Jan 04, 2012 9:02 pm
Posts: 65
Several people have now built this in various formats (thanks for the eMails that I have been sent :) ).

A couple of points...

All keyboards that I have tried, plus several that others have used, all work at 3.3V. If anyone has a problem with the keyboard (unresponsive), then change the keyboard power connection from 3.3V to the 5V input and put a 1K resistor in series between the keyboard clock/data connections on the board and the socket/pullup (to limit current to the 5V supply line just in case a mis-connection is made - not stricly needed as keyboards only have weak pull-ups due to the "open collector" interface, but I recommend it just as a precaution - NOT NEEDED IF POWERING THE KEYBOARD AT 3.3V).

Additionally, somebody spotted an issue with the CP/M formatter where not all directory entries were being wiped properly. A new version has been uploaded.

All the best.

Grant


Top
 Profile  
Reply with quote  
PostPosted: Thu Mar 20, 2014 7:48 am 
Offline
User avatar

Joined: Fri Oct 31, 2003 10:00 pm
Posts: 198
My FPGA and other parts have arrived, so I hope to have some fun too!

Are thereany free I/O ports available and accessible? Si that this can be used to control some devices?


Top
 Profile  
Reply with quote  
PostPosted: Thu Mar 20, 2014 8:54 am 
Offline

Joined: Wed Jan 04, 2012 9:02 pm
Posts: 65
Hi HansO.

Yes, input or output ports are easily implementable. I have done so, but not published, but can publish/give details as needed. With the current "full" implementation there are 16 spare pins along the bottom edge of the board, plus some others. If some of the interface pins that I use aren't needed then they can also be turned into I/O ports.
Bidirectional ports (ie where pin input/output is defined by another control register port) can also be done but that involves a bit more VHDL.

Only a small amount of VHDL is needed to implement an input or output port, then you can PEEK/POKE (or IN/OUT for the Z80) to access them within BASIC, or use 6502/6809/Z80 assembly language.

Output ports are fully TTL compatible, so can be connected to 5V or 3.3V inputs on other peripherals. Input ports can tolerate 5V external connections provided you use a resistor in series (eg 1K) to limit the incoming current when the external voltage is higher than 3.3V.

Good luck with the builds. Several have already built them, and feel free to contact me if there are any queries or issues.

Grant


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 40 posts ]  Go to page 1, 2, 3  Next

All times are UTC


Who is online

Users browsing this forum: Google [Bot] and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: