Difference between pages "RetroComputers" and "EP2C5-DB"

From Land Boards Wiki
(Difference between pages)
Jump to navigation Jump to search
 
 
Line 1: Line 1:
[[File:tindie-mediums.png|link=https://www.tindie.com/stores/land_boards/]]
+
[[File:tindie-mediums.png|link=https://www.tindie.com/products/land_boards/z80-6502-6809-fpga-multicomp-pcb-ep2c5-db/]]
  
== Grant Searle's FPGA MultiComp Project ==
+
<video type="youtube">7O0njivn-Po</video>
 
 
FPGA Recreations of 6502, 6809, Z80, and Z80 Vintage Computers
 
 
 
* [[Multicomp_Hardware|Multicomp on Land Boards Cards]] - Hardware
 
* [[Multicomp on Purchased Cards]]
 
* [[FPGA Support Cards]]
 
* [https://github.com/douggilliland/MultiComp/wiki MultiComp Wiki Page on GitHub]
 
* [https://github.com/douggilliland/MultiComp Multicomp Github repo]
 
 
 
=== Other Links ===
 
  
* [http://zx80.netai.net/grant/Multicomp/index.html Grant Searle's Multicomp page]
+
== EP2C5-DB-TH FPGA card ==
* [https://github.com/nealcrook/multicomp6809 Neal Crook's 6809 Multicomp Github]
 
* [https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:multicomp:start Retrobrewing Multicomp]
 
* [https://www.retrobrewcomputers.org/doku.php?id=builderpages:rhkoolstar:mc-2g-1024 mc-2g-1024 multi-boot capability]
 
* [http://www.pldworld.com/_hdl/2/_ip/jekent/system09/index.html System 09 - VHDL 6809 System On a Chip]
 
* [http://www.smarthome.jigsy.com/fpga Multicomp build on Cyclone IV]
 
  
=== Our MultiComp Retro-Computer Video Series ===
+
[[File:P1743-720PX.jpg]]
  
==== Cyclone II Video Series ====
+
I love [http://searle.x10host.com/Multicomp/index.html Grant Searle's Multicomp project]. It lets you easily create 6502, Z80, 6809 Retrocomputers of the late 1970s era. This card provides all of the connections needed.
  
<video type="youtube">7O0njivn-Po</video>
+
Grant's original design used an EP2 and that's exactly what this cards USES. Note that's not compatible with the latest version of Altera/Intel Quartus but you can download older Quartus II versions like 13.1 SP1. Just make sure it supports the Cyclone II family of FPGAs.
  
[https://www.youtube.com/playlist?list=PLn__0BqzWEWMcUgzBroNNJYQP1keD--gu Video Series]
+
=== Other (Newer, Bigger) Versions of this card ===
  
==== Cyclone IV Video Series ====
+
We also have two EP4 versions of this card for sale on Tindie (bare boards, you populate).
  
[https://www.youtube.com/playlist?list=PLn__0BqzWEWPk0-VW3kEpMNA81sIbhj6n Video Series]
+
* [https://www.tindie.com/products/land_boards/z80-6502-6809-fpga-multicomp-pcb-retro-ep4/ EP4CE6 card, mounts WaveShare board]
 +
* [https://www.tindie.com/products/land_boards/retrocomputer-fpga-card-pcb-only/ EP4CE15 card, mounts QMTECH boards]
  
== 6800 CPU ==
+
== Features ==
  
=== S120 Bus Computer ===
+
* [https://github.com/douggilliland/MultiComp/wiki Full MultiComp Support] of classic 8-bit Retrocomputers
 +
** [https://github.com/douggilliland/MultiComp/wiki/Land-Boards-MultiComp-Builds#Z80 Z80]
 +
** [https://github.com/douggilliland/MultiComp/wiki/Land-Boards-MultiComp-Builds#6502 6502]
 +
** [https://github.com/douggilliland/MultiComp/wiki/Land-Boards-MultiComp-Builds#6809 6809]
 +
** [https://github.com/douggilliland/MultiComp/wiki/Land-Boards-MultiComp-Builds#6800 6800]
 +
* Mounts [[Cyclone II EP2C5 Mini Dev Board]]
 +
** [https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=EP2c5+fpga+board&_sacat=0&LH_TitleDesc=0&_osacat=0&_odkw=EP2+fpga EP2C5T144C8N FPGA Card] - Ebay listing
 +
* 6 bit video on VGA (2:2:2 R:G:B)
 +
* 128KB of SRAM for banked use in CP/M
 +
* PS/2 Keyboard Mini-DIN connector
 +
* Connector for serial ports
 +
** Can attach inexpensive FTDI USB to serial converter
 +
*** Also, [http://land-boards.com/blwiki/index.php?title=FTDI-49MM Land Boards FTDI-49MM]
 +
** Supports hardware handshake (out) for high speed serial
 +
* 2x 8-bit ports with Power/Ground
 +
* SD Card (Full size, some builds support SDHC cards)
 +
* DC power jack (on FPGA card)
  
My first attempt to build a computer was around an MC6800 CPU so it has a soft spot in my heart, Back in 1977 (before my Ohio Scientific SuperBoard II I had my own homebrew computer. I never took any pictures of it and the hardware is long gone now. These are the pieces of it I remember.
+
=== EP2 Resources ===
  
* Ran on Elco? 120 pin edge connector wire wrapped cards
+
* EP2C5 has 26 of 512x9 SRAM blocks
* 6800 Processor board running at 1 MHz
 
* 2K of Static RAM board
 
* 2716 EEPROM board (may have had 4 sockets total, don't recall for sure)
 
* Front panel switches and LEDs to enter the address/data (Step/Insert) and blink lights
 
  
I remember getting it to run and I do remember blinking a light back and forth on it. Once I got the SuperBoard II, I stopped working on my own board.
+
[[File:EP2XX_Resources.PNG]]
  
It might be fun to reproduce that board!
+
== Stackup with FTDI Card ==
  
==== Pieces to Reproduce my original S120 Bus Computer ====
+
* Top to bottom of stackup
 +
# EP2C5-DB (this card)
 +
# [[Cyclone II EP2C5 Mini Dev Board]]
 +
# [[FTDI-49MM]]
 +
# [[CARRIER95TO49MM|CARRIER 95mm TO 49MM]]
  
* Michael Holley's SWTPC 6800/6809 documentation collection
+
[[File:P1752-CROPPED-720PX.jpg]]
* N8VEM RetroComputing Wikipedia page
 
* Retrobrew Computers
 
* Kim-1 board - Similar concept
 
  
==== Hardware ====
+
=== Hardware ===
  
* M6800 VHDL code from OpenCores
+
* 4-40 screws with nuts as spacers between [[CARRIER95TO49MM|CARRIER 95mm TO 49MM]] and [[FTDI-49MM]]
 +
* (4) 1.25" tall, 6-32 M-F Standoffs [https://www.mouser.com/ProductDetail/Fascomp/FC4546-632-A?qs=T%2B5DAjFZ5JP20KmtIj3ECQ%3D%3D FC4546-632-A] connect [[CARRIER95TO49MM]] to EP2C5-DB
 +
* (4) 1/4" tall, 6-32 M-F Standoffs [https://www.mouser.com/ProductDetail/728-FC4536-632-A FC4536-632-A] as spacer below [[CARRIER95TO49MM]] board
  
==== Software ====
+
== VGA - Ideal Drive 2:2:2 Case ==
  
* AS68 Cross Assembler
+
* FPGA has a 3.3V driver which can drive 8 mA
* ASM68C Cross Assembler
+
* Ideal case drive current
* Collection of Assembly Language tools for the M6800
+
** 0.7V into 75 Ohms = 9.33 mA
* 6800 Basics
+
* R-2R values
* 6800 Assembly Language Programming (pdf) by Lance Leventhal
+
** Ideal resistor values are 417.9 ohms and 835.7 ohms
* 6800 Instruction Set Cheat Sheet
+
** [http://www.brannonelectronics.com/images/STANDARD%20VALUE.pdf Standard value 1% resistors]
 +
** 1% standard values are [https://www.mouser.com/ProductDetail/652-CR0805FX-4220ELF 422 (Mouser)], [https://www.mouser.com/ProductDetail/603-RC0805FR-07845RL 845 (Mouser)] Ohms
 +
*** Get closest values
 +
*** 0V, 0.228V, 0.460V, 0.693V
 +
* Voltage steps are:
  
=== M6800_MIKBUG - Tested/Works ===
+
[[File:VGA_Sim_2R_Voltage.PNG]]
  
<video type="youtube">LxMTCq9kLoc</video>
+
* Current steps are:
  
[https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6800_MIKBUG_ExtSRAM_MIKBUG_at_F000 This is an FPGA build of something similar to that machine]
+
[[File:VGA_Sim_2R_Current.PNG]]
  
* Fills a hole in Grant Searle's Multicomp (he hadn't finished a 6800 version)
+
== LEDs ==
** Runs [http://www.ittybittycomputers.com/IttyBitty/TinyBasic/ Tom Pittman's Tiny BASIC]
 
* MC6800 CPU
 
* Running MIKBUG from back in the day (SmithBug ACIA version)
 
* 12.5 MHz
 
* 60K (external) RAM version
 
* MC6850 ACIA UART
 
* Video Display Unit (VDU)
 
** Color attributes
 
** XGA 80x25 [https://web.archive.org/web/20180221064620/http://searle.hostei.com/grant/Multicomp/index.html#ANSICodes ANSI character display]
 
** Extended (256) character set
 
* PS/2 keyboard
 
  
==== Memory Map ====
+
=== LEDs on EP2C5 Board ===
  
* $0000-$EFFF - 60KB external sRAM
+
* D2 is on PIN_3
** $0000-$EEFF - User RAM area
+
* D4 is on PIN_7
** $EF00-$EFFF - scratchpad used by MIKBUG
+
* D5 is on PIN_9
* I/O Map
 
** $FC18-$FC19 - VDU
 
** $FC28-$FC29 - ACIA
 
**** Pin_60 of the FPGA swaps addresses of VDU and ACIA port
 
**** Installed (Pin_60 to Ground) uses Serial port
 
**** Removed uses VDU
 
* $F000-$FFFF - MIKBUG ROM
 
** I/O "hole" opened up at 0xFC00-0xFCFF
 
  
=== Systems ===
+
[[File:LEDs_on_EP2C5_PCB.jpg]]
  
* [http://www.computercloset.org/MITSAltair680.htm MITS Altair 680]
+
[[File:LEDs_Schematic.PNG]]
* [http://virtualaltair.com/virtualaltair.com/vac_altair_680b_mainframe.asp Altair 680b Mainframe]
 
* [http://www.computercloset.org/SWTPC6800.htm SWTPC 6800]
 
* [http://www.retrotechnology.com/aux/swtp6800.html SWTP 6800 system]
 
* [https://history-computer.com/ModernComputer/Personal/Sphere1.html Sphere 1 computer History]
 
* [https://www.mjbauer.biz/DREAM6800.htm DREAM 6800 Archive Site]
 
* [http://m68k.info/#orgbf262a7 Planet m68k] - News around Motorola 68000 CPU computer systems
 
  
=== Software ===
+
=== LED on EP2C5-DB Cards ===
  
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_RETRO-EP4/M6800_MIKBUG Muticomp M6800 MIKBUG]
+
* LED is on FPGA pin 53
* [http://www.retrotechnology.com/restore/smithbug.html Smithbug, MIKBUG 6800 ROM monitor ]
 
* [http://www.nj7p.info/Computers/Software/Mon.html Monitors for the 6800]
 
* [http://www.retrotechnology.com/restore/a68.html A68 6800 cross-assembler]
 
* [https://sites.google.com/site/gogleoops/mc6800-assembler MC6800 Assembler]
 
* [http://www.vintagecomputer.net/browse_thread.cfm?id=416 TSC BASIC for SWTPc 6800]
 
* [https://archive.org/search.php?query=6800%20assembly%20language 6800 Assembly language books]
 
* [https://www.youtube.com/watch?v=KPAOsWGT_xA SWTPC 6800 Resident Assembler MP-E] - (YouTube)
 
* [https://github.com/jhallen/exorsim?fbclid=IwAR23nphLBTPj53QJAMyqR6tWTPipiVp36xZdv178GqMVRrK_4vTeia6udsY EXORsim] - Motorola EXORciser Simulator
 
  
== Z80 CPU ==
+
== Connectors ==
  
<video type="youtube">OdtYN3vPu_E</video>
+
=== J1 - VGA ===
  
* Land Boards [[Z80 in 3 Chips]]
+
=== J4 - SD Card ===
* [https://hackaday.io/project/167711-3-chip-z80-design Hackaday Z80 in 3 Chips]
 
** 512KB SRAM
 
* [https://www.retrobrewcomputers.org/doku.php?id=builderpages:rhkoolstar:sbc-2g-512 rhkoolstar sbc-2g-512] - SD card image
 
** [https://github.com/douggilliland/Retro-Computers/tree/master/Z80/Reference_Designs/MC-2G-512%20(SBC2.0%20by%20koolstar) Archive of rhkoolstar sbc-2g-512]
 
  
[[File:Z80_P865-cropped-720px.jpg]]
 
  
=== Stackup (top to bottom) ===
+
=== J5 - Serial Ports 1/2 ===
  
* [[Front Panel For 8 Bit Computers]]
+
* Set jumper on FTDI module to 3.3V
* [[Z80 in 3 Chips]]
+
* Connects to FTDI Module
* [[SD_CARD_X49]] mounted on [[CARRIER95TO49MM]]
 
* [[JOYPAD]]
 
  
[[File:Z80_PSOC_P936-CROPPED-720PX.jpg]]
+
# RTS
 +
# RXD
 +
# TXD
 +
# GND
  
=== Z80-MBC2 Build ===
+
[[File:EP2C5-DB_FTDI.PNG]]
  
[[Z80-MBC2 Build Notes]]
+
==== FTDI Module ====
  
=== CP/M on FPGA - by Grant Searle ===
+
* Set jumper on FTDI module to 3.3V
  
* [https://web.archive.org/web/20180221182529/searle.hostei.com/grant/ Archive.org copy of Grant's site from 2012]
+
[[File:FTDI_rot.jpg]]
* [http://web.archive.org/web/20190526035522/https://web.archive.org/web/20180221064620/http://searle.hostei.com:80/grant/Multicomp/index.html Archive.org copy of Grant's Multicomp from 2012]
 
* Fit results (EP2C5 FPGA)
 
** Two UART Serial interface
 
** No Video Display
 
** External RAM
 
  
[[File:CPM-2UARTs-NoVideo.PNG]]
+
==== FTDI Wiring ====
  
* Grant noted about the SD card interface:
+
* Set jumper on FTDI module to 3.3V
<pre>
+
* J5-1 (marked RTS on PCB) to FTDI CTS pin
... the SD controller is easy to control - in BASIC POKE the sector number, POKE the write command,
+
* J5-3 (marked RX on PCB) to FTDI TX pin
POKE 512 bytes to the same location to write a sector,
+
* J5-5 (marked TX on PCB) to FTDI RX pin
or POKE the sector number, POKE the read command, and PEEK 512 bytes to read a sector.
+
* J5-7 (marked GND on PCB) to FTDI GND pin
</pre>
 
  
=== Retrobrew Multi-boot Multicomp Computer Builds ===
+
[[File:EP2C5-DB_FTDI_Wiring.PNG]]
  
* [https://www.retrobrewcomputers.org/doku.php?id=builderpages:rhkoolstar:mc-2g-1024 MultiComputerZ80 build] - Lots of extras - [https://github.com/douggilliland/Retro-Computers/tree/master/Z80/Reference_Designs/MC-2G-1024 mc-2g-1024 Help file]
+
=== J6 - 8-bit I/O connector ===
* [https://retrobrewcomputers.org/doku.php?id=builderpages:muellerk:start Multicomp Z80 with b/w Graphics - muellerk page]
 
* [https://retrobrewcomputers.org/doku.php?id=builderpages:rhkoolstar:mc-2g-1024 mc-2g-1024 Image18 - Multiboot SD card]
 
  
==== mc-2g-1024 Images ====
+
* FPGA Pins
  
* Copy image System18.img to your SD-card. Use direct imaging software (dd in Linux, Win32DiskImager in Windows). Copy to the start of the card
+
# 3.3V
** [https://github.com/douggilliland/Retro-Computers/tree/master/Z80/Reference_Designs/MC-2G-1024%20(Multicomp%20by%20koolstar) rhkoolstar mc-2g-1024 is backed up here]
+
# 3.3V
* [https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:rhkoolstar:mc-2g-1024.zip Included OSs] are
+
# 25
** Type '''Snnn''' to select OS at multiboot
+
# 31
** S001 - Dos+ 2.5  Copyright 1986 (c) by [http://web.archive.org/web/20080430103646/http://cbfalconer.home.att.net/download/index.htm C.B. Falconer], CCP+ Ver. 2.2  (CP/M 2.2 compatible)
+
# 41
** S002 - [https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/CPM%202.2%20manual.pdf CP/M 2.2] (c) 1979 by Digital Research
+
# 40
** S003 - [http://www.cpm.z80.de/manuals/cpm3-usr.pdf CP/M Version 3.0] BIOS (2016/9/13)
+
# 43
*** [http://www.cpm.z80.de/manuals/cpm3-sys.pdf CP/M Version 3.0 Operating System System Guide]
+
# 42
** S004 - [https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/MPM_II_2.1_Release_Notes_1982.pdf MP/M II V2.1]
+
# 45
** S005 - [http://searle.wales/z80/SimpleZ80.html Z80 BASIC Ver 4.7b], Copyright (C) 1978 by Microsoft
+
# 44
** S006 - [https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/zsdos.pdf ZSDOS v1.1] (c) 1986-8 Harold F. Bower & Cameron W. Cotrill, ZCPR2 (c) 1982 by Richard Conn (CP/M 2.2 compatible)
+
# GND
** S007 - [https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/zcpr3_the_manual.pdf ZCPR compatible system] for CP/M+ (CP/M 3.0) by Simeon Cran
+
# GND
  
* Additional Volumes
+
=== J8 - 8-bit I/O connector ===
** Inspired by mc-2g-1024 original but modified
 
** [https://obsolescence.wixsite.com/obsolescence/multicomp-fpga-cpm-demo-disk Sources from here]
 
** Mount using mount d vol
 
*** Ex: mount b: 9 will mount ZCPR3 Utilities A-O as drive b:
 
** Volume.008 - ?
 
** Volume.009 - [https://github.com/douggilliland/MultiComp/blob/master/MultiComp_On_RETRO-EP4CE15/Multicomp-MPM/ZCPR3_Utilities_A_O.txt ZCPR3 Utilities A-O]
 
** Volume.010 - [https://github.com/douggilliland/MultiComp/blob/master/MultiComp_On_RETRO-EP4CE15/Multicomp-MPM/ZCPR3_Utilities_P_Z.txt ZCPR3 Utilities P-Z]
 
** Volume.011 - [https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/Wordstar_3.3_Reference_Manual_1983.pdf Wordstar], [https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/dBASE_II_Users_Guide_Feb83.pdf DBase], SuperCal
 
** Volume.012 - Games
 
** Volume.013 - [https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/MuMath_and_MuSimp_1980_Soft_Warehouse_text.pdf MuMath]
 
** Volume.014 - Documentation
 
** Volume.015 - Languages ([https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/TURBO_Pascal_Reference_Manual_CPM_Version_3_Dec88.pdf TurboPascal], [https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/Microsoft_FORTRAN-80_Ver3.4_Users_Manual_Nov80.pdf Fortran], [https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/BBC%20Basic%20(Z80).pdf BBC  BASIC])
 
** Volume.016 - Languages ([https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/Algol%20M%20Language%20Description.pdf Algol], [https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/Aztec_C_1.06_User_Manual_Mar84.pdf Aztec C], APL, PLI, FORTH)
 
** Volume.017 - Languages (BDS Tiny C, Janis Ada15, MS COBOL, PILOT)
 
** Volume.018-253 - User volumes
 
  
=== Retrobrew Computer Builds of the Multicomp Project(s) ===
+
* FPGA Pins
  
* [https://retrobrewcomputers.org/doku.php?id=builderpages:muellerk:start Multi-boot Multicomp build by muellerk] builds on [https://retrobrewcomputers.org/doku.php?id=builderpages:rhkoolstar:mc-2g-1024 Multi-boot Multicomp build by rhkoolstar]
+
# 3.3V
* [https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:multicomp:cycloneii-c:start Some folks made a MultiComputer PCB, too] - Retrobrewing
+
# 3.3V
* [https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:multicomp:cycloneii-b:start Another board]
+
# 48
* [https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:multicomp:papilio-duo:start Yet another board]
+
# 47
* [http://jeelabs.org/book/1550b/ Jeelabs Building a MultiComp-based Z80]
+
# 52
* [http://jefftranter.blogspot.com/2014/03/wordstar-30-on-briel-altair-8800.html?_sm_au_=iVV6N35rsLV27ts2 Patch WordStar 3.0 to use ANSI screen commands]
+
# 51
* [https://www.youtube.com/watch?v=98uVpNQ9Gb8 Homebrew Z80]
+
# 58
* [https://hackaday.io/project/163683-the-thing-fpga-stm32 "The Thing": FPGA + STM32]
+
# 55
 +
# 76
 +
# 69
 +
# GND
 +
# GND
  
=== CP/M Notes ===
+
== Schematics ==
  
* CP/M is not case sensitive
+
=== SMT Version ===
* REN NEWNAME.EXT=OLDNAME.EXT - Rename a file from the old to the new name
 
* ERA FILE2ERA.EXT - Erase a file
 
* Asterisk is wildcard
 
* .COM are command files
 
* PIP/PPIP - copy command (CP/M 2.2, CP/M 3)
 
** CP/M 2.2 uses PIP
 
** PIP NEWCOPY.EXT=COPYFROM.EXT - Copy from COPYFROM.EXT to NEWCOPY.EXT
 
** CP/M 3 uses PPIP
 
*  Drive references A:
 
** Drives go from A-???
 
* LS is a better directory program
 
  
==== CP/M Resources on the Net ====
+
* [http://land-boards.com/EP2C5-DB/EP2C5-DB_Schematic_Rev_X5.pdf Rev X5 schematic]
 +
* [http://land-boards.com/EP2C5-DB/EP2C5-DB_Schematic_Rev_X6.pdf Rev X6 schematic]
  
* [http://www.cpm.z80.de/manuals/cpm22-m.pdf CP/M Operating System Manual]
+
=== Through Hole Version ===
* [http://www.digitalresearch.biz/CPM.HTM Digital Research CP/M Site]
 
* [http://landley.net/history/mirror/cpm/history.html A Short History of CP/M]
 
* [https://obsolescence.wixsite.com/obsolescence/cpm-internals CP/M Internals]
 
* [http://primrosebank.net/computers/cpm/cpm_commands.htm CP/M Console Command Processor Instructions]
 
* [http://oak.oakland.edu/oak/cpm/index-cpm-pre.html OAK Repository - CP/M Archive - On the Wayback machine]
 
* [http://www.smbaker.com/intro-to-z80-retrocomputing Intro to Z80 Retrocomputing - Scott Baker's series on the RC2014]
 
* [http://www.cpm.z80.de/source.html Digital Research Source Code]
 
* [http://www.retroarchive.org/cpm/lang/lang.htm CP/M Programming Languages and Tools retroarchive page]
 
** [http://www.classiccmp.org/cpmarchives/cpm/mirrors/www.retroarchive.org/cpm/lang/lang.htm retroarchive page - mirror]
 
* [http://obsolescence.wixsite.com/obsolescence/multicomp-fpga-cpm-demo-disk Multicomp FPGA - CP/M Demo Disk]
 
* [http://www.bbcbasic.co.uk/bbcbasic/z80basic.html BBC BASIC (Z80)]
 
** [http://www.bbcbasic.co.uk/bbcbasic/mancpm/index.html BBC BASIC (Z80) Manual]
 
<pre>
 
*BYE- Return to CP/M
 
</pre>
 
* [https://altairclone.com/downloads/?fbclid=IwAR3BeIol8GOBKRSC6cB8lDMFSErRYjjmNtC4RQ3YpStdjeaSu-CLSTuLz5I Altair downloads]
 
  
=== Z80 Software Development ===
+
* [http://land-boards.com/EP2C5-DB-TH/EP2C5-DB-TH_Rev1.pdf Rev 1 schematic]
  
==== AZTEC C Compiler ====
+
== Retro-Computer Builds ==
  
* Compile C code to CP/M executable
+
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5 Github repository for Multicomp builds]
* [https://archive.org/details/bitsavers_manxAztecC_11703326 Aztec C Compiler Manual]
+
** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6502_VGA_PS2_ExtRAM M6502 CPU, OSI BASIC-in-ROM, VGA, PS2, 56KB External RAM]
** C Vers. 1.06D 8080  (C) 1982 1983 1984 by Manx Software Systems
+
** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/UK101-GS-Original UK101, Grant Searle's Original, CEGMON and BASIC-in-ROM]
* Example Code - HELLO2.C
+
** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/UK101_4KRAM UK101, 4K SRAM, CEGMON and BASIC-in-ROM]
<pre>
+
** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/uk101_NTSC-PS2-ExtRAM UK101, NTSC, PS2, Ext SRAM, CEGMON and BASIC-in-ROM]
int main()
+
** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/uk101_VGA-PS2-ExtRAM-115200Serial UK101, VGA, PS2, External SRAM, 115200 baud Serial, CEGMON and BASIC-in-ROM]
{
+
** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6809_56KRAM_VGA M6809, 56K SRAM, VGA]
  int i;
+
** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/Z80-CPM-VGA-PS2-128KRAM Z80, CP/M 2, VGA, PS2, 128K SRAM]
  for (i=0; i< 10; i++)
+
** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/Z80-CPM-VGA-PS2-ExtRAM Z80, CP/M 2, VGA, PS2, 128K SRAM]
    printf("%d\n");
+
* [https://github.com/douggilliland/Retro-Computers/tree/master/PDP-8/PDP8_Book(Almy)/PDP8_VDU_EP2CE5 PDP-8 4KW, Serial, VGA]
}
 
</pre>
 
  
* Compile code to assembly file
+
=== Multicomp Extensions ===
** Creates a .ASM file
 
<pre>
 
CC HELLO2.C
 
</pre>
 
  
* Assemble Code to object file
+
** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6800_MIKBUG M6800, MIKBUG ROM]
** Creates a .O file
+
** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6800_MIKBUG_ExtSRAM M6800, MIKBUG ROM, External RAM]
<pre>
+
** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6800_MIKBUG_ExtSRAM_MIKBUG_at_F000 M6800, MIKBUG ROM at 0xF000 base, External RAM]
AS HELLO2.ASM
+
** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6800_MIKBUG_Serial M6800, MIKBUG ROM, Serial port]
</pre>
 
  
* Link Code with C library to .COM executable file
+
== Programming the Flash EPROM Memory ==
<pre>
 
LN HELLO2.O C.LIB
 
</pre>
 
  
<video type="youtube">wQY2VUV8MDQ</video>
+
[[FILE:EP2CE_P428-720PX.jpg]]
  
==== ALGOL-M Compiler ====
+
=== Permanent (.pof file) ===
  
* Fizzbuzz example
+
* AS - Upload ,pof file to EPROM over AS
 +
** Flash EPROM = EPCS4
 +
** Remains after power cycling
  
<pre>
+
[[File:Program-permanent-720px.png]]
BEGIN
 
  
INTEGER FUNCTION DIVBY(N, D);
+
=== Temporary (.sof file) ===
INTEGER N;
 
INTEGER D;
 
BEGIN
 
  DIVBY := 1 - (N - D * (N / D));
 
END;
 
  
INTEGER I;
+
* JTAG - Upload temporary .sof program over JTAG
FOR I := 1 STEP 1 UNTIL 100 DO
+
** Does not remain after power cycling
BEGIN
 
  IF DIVBY(I, 15) = 1 THEN
 
    WRITE("FizzBuzz")
 
  ELSE IF DIVBY(I, 5) = 1 THEN
 
    WRITE("Buzz")
 
  ELSE IF DIVBY(I, 3) = 1 THEN
 
    WRITE("Fizz")
 
  ELSE
 
    WRITE(I);
 
END;
 
  
END
+
[[File:Program-temporarily-720px.png]]
</pre>
 
* To run compiler:
 
<pre>
 
algolm fizzbuzz
 
  
</pre>
+
== Pin List (Multicomp) ==
* Result is:
 
<pre>
 
ALGOL-M COMPILER VERS 1.1
 
  0 ERROR(S) DETECTED
 
</pre>
 
* To run ALGOL interpreter
 
<pre>
 
runalg fizzbuzz
 
</pre>
 
* Result is
 
 
<pre>
 
<pre>
ALGOL-M INTERPRETER-VERS 1.0
+
# Clocks and reset
 
+
set_location_assignment PIN_17 -to clk
 
+
set_location_assignment PIN_144 -to n_reset
    1
+
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to n_reset
    2
+
# PS/2
Fizz
+
set_location_assignment PIN_87 -to ps2Data
    4
+
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to ps2Data
Buzz
+
set_location_assignment PIN_86 -to ps2Clk
Fizz
+
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to ps2Clk
    7
+
# ACIA (Serial)
    8
+
set_location_assignment PIN_60 -to serSelect
 +
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to serSelect
 +
# Serial
 +
set_location_assignment PIN_104 -to o_rts1
 +
set_location_assignment PIN_101 -to i_rxd1
 +
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to i_rxd1
 +
set_location_assignment PIN_103 -to o_txd1
 +
# External SRAM
 +
set_location_assignment PIN_4 -to n_sRamWE
 +
set_location_assignment PIN_126 -to n_sRamCS
 +
set_location_assignment PIN_134 -to n_sRamOE
 +
set_location_assignment PIN_32 -to sramAddress[16]
 +
set_location_assignment PIN_8 -to sramAddress[15]
 +
set_location_assignment PIN_30 -to sramAddress[14]
 +
set_location_assignment PIN_24 -to sramAddress[13]
 +
set_location_assignment PIN_28 -to sramAddress[12]
 +
set_location_assignment PIN_136 -to sramAddress[11]
 +
set_location_assignment PIN_132 -to sramAddress[10]
 +
set_location_assignment PIN_139 -to sramAddress[9]
 +
set_location_assignment PIN_142 -to sramAddress[8]
 +
set_location_assignment PIN_143 -to sramAddress[7]
 +
set_location_assignment PIN_141 -to sramAddress[6]
 +
set_location_assignment PIN_137 -to sramAddress[5]
 +
set_location_assignment PIN_135 -to sramAddress[4]
 +
set_location_assignment PIN_133 -to sramAddress[3]
 +
set_location_assignment PIN_129 -to sramAddress[2]
 +
set_location_assignment PIN_125 -to sramAddress[1]
 +
set_location_assignment PIN_121 -to sramAddress[0]
 +
set_location_assignment PIN_122 -to sramData[7]
 +
set_location_assignment PIN_120 -to sramData[6]
 +
set_location_assignment PIN_118 -to sramData[5]
 +
set_location_assignment PIN_114 -to sramData[4]
 +
set_location_assignment PIN_112 -to sramData[3]
 +
set_location_assignment PIN_113 -to sramData[2]
 +
set_location_assignment PIN_115 -to sramData[1]
 +
set_location_assignment PIN_119 -to sramData[0]
 +
# Composite Video
 +
set_location_assignment PIN_75 -to video
 +
set_location_assignment PIN_74 -to videoSync
 +
# VGA
 +
set_location_assignment PIN_64 -to videoB0
 +
set_location_assignment PIN_63 -to videoB1
 +
set_location_assignment PIN_67 -to videoG0
 +
set_location_assignment PIN_65 -to videoG1
 +
set_location_assignment PIN_70 -to videoR0
 +
set_location_assignment PIN_69 -to videoR1
 +
set_location_assignment PIN_71 -to hSync
 +
set_location_assignment PIN_72 -to vSync
 +
# SD Card
 +
set_location_assignment PIN_92 -to sdMISO
 +
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to sdMISO
 +
set_location_assignment PIN_94 -to sdSCLK
 +
set_location_assignment PIN_93 -to sdMOSI
 +
set_location_assignment PIN_97 -to sdCS
 +
set_location_assignment PIN_3 -to driveLED
 +
# J6 IO
 +
set_location_assignment PIN_25 -to J6IO8[0]
 +
set_location_assignment PIN_31 -to J6IO8[1]
 +
set_location_assignment PIN_41 -to J6IO8[2]
 +
set_location_assignment PIN_40 -to J6IO8[3]
 +
set_location_assignment PIN_43 -to J6IO8[4]
 +
set_location_assignment PIN_42 -to J6IO8[5]
 +
set_location_assignment PIN_45 -to J6IO8[6]
 +
set_location_assignment PIN_44 -to J6IO8[7]
 +
# J8 I/O
 +
set_location_assignment PIN_48 -to J8IO8[0]
 +
set_location_assignment PIN_47 -to J8IO8[1]
 +
set_location_assignment PIN_52 -to J8IO8[2]
 +
set_location_assignment PIN_51 -to J8IO8[3]
 +
set_location_assignment PIN_58 -to J8IO8[4]
 +
set_location_assignment PIN_55 -to J8IO8[5]
 +
set_location_assignment PIN_76 -to J8IO8[6]
 +
# set_location_assignment PIN_60 -to J8IO8[7]
 
</pre>
 
</pre>
  
=== Microsoft BASIC Notes ===
+
== EP2C5-DB Assembly Sheet ==
 
 
* SAVE "MYPROG.BAS"
 
* LOAD "MYPROG.BAS"
 
* SYSTEM -- Return to CP/M
 
* NAME "OLDFILE.BAS" AS "NEWFILE.BAS"
 
* NEW - Delete program
 
* OUT 132,1 -- Output to I/O port 132
 
* PRINT MEM - Free memory (6809 Extended BASIC)
 
 
 
=== Notes ===
 
 
 
* [https://stardot.org.uk/forums/viewtopic.php?f=3&t=15464&sid=5178dde921ab9b2a60aef4ebd9eec115 Z80 Protocol Decoder]
 
* [[mc-2g-102|Z80 = mc-2g-1024]] - Best build
 
* [https://archive.org/search.php?query=z80%20assembly%20language Z80 Assembly Language books] - archive.org
 
 
 
==== NASCOM BASIC ====
 
 
 
* OUT ADDR,DATA
 
* INP(128) - Reads I/O address 128 (0x80)
 
 
 
== 6502 CPU ==
 
 
 
=== Ohio Scientific SuperBoard II - My first commercial personal computer ===
 
 
 
[[File:Osi-600.jpg]]
 
 
 
[http://oldcomputers.net/osi-600.html SuperBoard II]
 
 
 
* Manufacturer: Ohio Scientific
 
** Model 600 Rev B Board Manual
 
* Model: Superboard II ( Model 600 )
 
* Available: 1978
 
* Price: US $279 assembled
 
* CPU: 6502
 
* RAM: 4K static RAM, 8K max
 
* CEGMON - Monitor in 4K of EPROM
 
* Display: composite video, 30 X 30 text
 
* Built-in keyboard
 
* Single board design
 
** I eventually got a RAM expansion card with Floppy Disk Controller
 
* Ports: composite video, cassette
 
* Storage: cassette
 
* [https://en.wikipedia.org/wiki/Microsoft_BASIC Microsoft BASIC]
 
* 2K Monitor ROM (CEGMON)
 
* [https://en.wikipedia.org/wiki/Compukit_UK101 Compkit 101] - British clone of the SuperBoard II
 
 
 
==== Superboard II Documents ====
 
 
 
* [https://en.wikipedia.org/wiki/Compukit_UK101 Dave's OSI Repository] - Lots of scanned documents up there - large file sizes
 
* [http://web.archive.org/web/20190526035522/http://uk101.sourceforge.net/docs/ Compukit UK101] Docs on Sourceforge]
 
** [http://uk101.sourceforge.net/docs/pdf/cegmon.pdf CEGMON Users Guide]
 
** [http://uk101.sourceforge.net/docs/samples.html Sample Programs and Tapes]
 
* [http://weblog.tetradian.com/2014/03/16/cegmon-a-blast-from-the-past/ CEGMON – a blast from the past]
 
* [https://github.com/jefftranter/6502 Code for the 6502 microprocessor, mostly for the Replica 1 computer]
 
* [http://www.technology.niagarac.on.ca/people/mcsele/hobby/ohio-scientific-computers-series-600-challenger-1p-superboard/ Nice page on the C1P/Superboard II]
 
* [https://www.masswerk.at/6502/6502_instruction_set.html 6502 Instruction Set]
 
 
 
==== Keyboard Layout ====
 
 
 
[[File:opkbd.jpg]]
 
 
 
==== CC65 - C Compiler for the 6502 and OSI C1P ====
 
 
 
* [https://cc65.github.io/doc/osi.html Ohio Scientific-specific information for cc65]
 
* [https://cc65.github.io/doc/cl65.html cl65 Users Guide]
 
* [http://cc65.github.io/cc65/ CC65 - C Compiler for the 6502]
 
* [https://github.com/cc65/wiki/wiki CC65 Wiki]
 
 
 
==== SuperBoard II Emulator ====
 
 
 
* [https://www.pcjs.org/docs/c1pjs/ OSI Challenger 1P (8Kb) with Debugger - JAVA web based emulator]
 
* [https://www.pcjs.org/devices/c1p/machine/32kb/ OSI Challenger 1P (32Kb) with Disk Support - JAVA web based emulator]
 
* [https://satoshinm.github.io/blog/180113_stm32_6502_pill_6502_8_bit_6502_cpu_and_6850_acia_emulation_on_the_stm32_blue_pill_to_run_microsoft_basic_from_1977.html pill_6502: 8-bit 6502 CPU and 6850 ACIA emulation on the STM32 blue pill to run Microsoft BASIC from 1977]
 
 
 
==== BASIC Programs ====
 
 
 
<pre>
 
10 I=1
 
20 PRINT "HELLO DAVEY"
 
30 I=I+1
 
40 IF I < 5 GOTO 20
 
</pre>
 
 
 
==== SuperBoard II/ Retro-Tech Refresh ====
 
 
 
I was looking around for a way to recreate my OSI Superboard and found Grant Searle's design.
 
 
 
* [[EP2C5-DB]] - Our creation of a daughtercard which implements Grant Searle's Multi-Computer
 
* [http://searle.x10host.com/uk101FPGA/index.html Grant Searle's CompuKit UK101]
 
** Based on Cyclone II EP2C5 Mini Dev Board
 
** Someone built one of the CompuKit clones as a CPM box
 
* [https://www.youtube.com/watch?v=aD844aXw9z8  Compukit 101 video]
 
* [https://archive.org/search.php?query=ohio+scientific Ohio Scientific publications]
 
* [http://www.6502.org/source/monitors/ehbasic/ehbasic.html Enhanced 6502 BASIC]
 
** [https://coronax.wordpress.com/tag/basic/ Experience porting Enhanced Basic to a 6502 Computer]
 
*** "EhBASIC is about 11 KB"
 
* [http://6502.org/ 6502.org] - the place for retro 6502 projects
 
* [https://opencores.org/project,system68 System68]
 
* [https://hackaday.io/project/3620/logs L-Star: Software-Defined 6502 Computer] - Uses a Propeller chip
 
* Pick-and-mix to create your own custom computer on a low-cost FPGA board
 
* [http://sbc.rictor.org/ Daryl's Computer Page]
 
** Daryl has designed multiple single board computers
 
* [https://archive.org/search.php?query=6502%20assembly%20language 6502 Assembly Language books] - archive.org
 
* [https://archive.org/details/6502-micro-journal Micro 6502 Journal]
 
 
 
== 6809 CPU ==
 
 
 
=== Our Build ===
 
 
 
<video type="youtube">hHBiFK0d3Y4</video>
 
 
 
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_RETRO-EP4CE15/MultiComp_6809_by_Neal_C-2019-04-08 Our FPGA Builds]
 
* BASIC is a port of [https://handwiki.org/wiki/Color_BASIC Microsoft Extended BASIC] for the 6809-based Radio Shack Color Computer
 
 
 
=== Neal Crook's 6809 Multiple OS Build ===
 
 
 
Neal Crook started from Grant Searle's Multicomp and fixed a number of issues with the VHDL code.
 
 
 
* [https://github.com/nealcrook/multicomp6809/wiki Neal Crook's 6809 Wiki of Multicomp FPGA builds] - very helpful
 
* [https://github.com/nealcrook/multicomp6809 Neal Crook's Multicomp GitHub (with docs)]
 
* Neal did [https://github.com/nealcrook/multicomp6809/wiki/CPU-and-clocking-modifications work on the 6809 core] that Grant Searle was using
 
** Changed reset to active-low, consistently asynchronous
 
** Changed clock to rising-edge
 
** Clocked the processor on the input (50MHz) clock rather than a divided clock
 
*** Used the HOLD input to control the clock rate.
 
** Added MMU to control extended RAM
 
* Neal did some [https://github.com/nealcrook/multicomp6809/wiki/VDU-Modifications Video Display Unit (VDU) Modifications]
 
* Neal's [https://github.com/nealcrook/multicomp6809/wiki/mk2-memory-mapping-unit Memory Mapper]
 
* Neal got [https://github.com/nealcrook/multicomp6809/wiki/SD-Controller-modifications SDHC working] - the original was SD only
 
 
 
==== Programming ====
 
 
 
* [https://github.com/nealcrook/multicomp6809/wiki/camelforth CamelForth]
 
 
 
==== SD Card ====
 
 
 
* [https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:multicomp:cycloneii-c:start#downloads SD Card image multicomp09_sd.zip] - Program SD card using Balena Etcher
 
** [https://github.com/douggilliland/MultiComp/blob/master/MultiComp_6809_by_Neal_C-2019-04-08/SD%20Card/README.mediawiki SD Card Image]
 
* [https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:multicomp:cycloneii-c:start Using the SD Card]
 
 
 
=== Other Docs ===
 
 
 
* [https://www.forth.com/starting-forth/ Starting FORTH] - First book of learning FORTH
 
* [https://github.com/EtchedPixels/FUZIX FUZIX]
 
* [http://www.flexusergroup.com/flexusergroup/pdfs/swflexum.pdf Flex User's Guide]
 
* [http://ccgi.dougrice.plus.com/cgi-bin/wiki.pl?My_Notes_On_6809 Upload ROMs without rebuilding]
 
* [http://atjs.mbnet.fi/mc6809/index.html 6809 Emulation Page]
 
* [https://obsolescence.wixsite.com/obsolescence/the-6x0x-boards N8VEM 6809 Board]
 
* [https://www.6809.org.uk/asm6809/ asm6809 - Assembler]
 
 
 
== 68000 CPU ==
 
 
 
Various 68000 builds
 
 
 
=== TG68_AMR Design ===
 
 
 
<video type="youtube">D9y7V0j5GsQ</video>
 
 
 
[[TG68 AMR Build]]
 
 
 
* Features
 
** 68000 Core
 
** SDRAM support
 
** VGA Framebuffer
 
*** Pixel dithering maps 24-bit video to six bits
 
*** Various resolutions
 
*** Stored in SDRAM
 
** PS/2 Keyboard and Mouse support
 
** SD Card support
 
* Runs on [[RETRO-EP4CE15]] basecard
 
** VGA connector
 
*** 6 bit video (2:2:2)
 
** PS/2 connector
 
** FTDI USB to serial converter
 
*** Genuine FT230XS FTDI USC to Serial chip
 
*** USB B
 
*** Tx/Rx LEDs
 
** SD or SDHC Card
 
*** Can do micro SDHC card using SD card adapter
 
 
 
* FPGA cards are
 
** [[QMTECH EP4CE15 FPGA Card]]
 
** [[QMTECH EP4CE55 FPGA Card]]
 
** [[QM_Tech_Cyclone_V_FPGA_Board|QMTECH 5CEFA2F23 FPGA Card]]
 
** [[QMTECH_EP4CE15_Standalone_Board|QMTECH EP4CE15 Standalone Board]]
 
 
 
==== TG68_AMR Links ====
 
 
 
* [http://retroramblings.net/?page_id=770 AMR's TG68 Experiments] - Original design
 
* [https://github.com/douggilliland/Retro-Computers/tree/master/68000/TG68_AMR My GitHub page]
 
* [https://hackaday.io/project/174679-68k-cpu-with-frame-buffer-on-fpga Hackaday page]
 
 
 
=== TS2 design with Multicomp parts ===
 
 
 
* [https://github.com/douggilliland/MultiComp/blob/master/MultiComp_On_RETRO-EP4CE15/TS2_68000/README.mediawiki 68000 CPU in VHDL running on FPGA card]
 
** Running on [[RETRO-EP4CE15]] card
 
** Runs [https://github.com/douggilliland/Retro-Computers/tree/master/68000/TS2/monitor/TSBUG2 TS2BUG monitor] or [https://github.com/douggilliland/Retro-Computers/tree/master/68000/TS2/tutor TUTOR] from ROM
 
** Built-on Video Display Unit (VDU)
 
*** Color attributes
 
*** XGA 80x25 [https://web.archive.org/web/20180221064620/http://searle.hostei.com/grant/Multicomp/index.html#ANSICodes ANSI character display]
 
*** Extended (256) character set
 
** PS/2 keyboard
 
** 32KB SRAM
 
** 16KB ROM
 
** Loads/run [https://github.com/douggilliland/Retro-Computers/tree/master/68000/MECB/tbi68k12 Tiny Basic]
 
*** Type LOAD on VDU port
 
*** Copy/paste S1/S9 records from [https://github.com/douggilliland/Retro-Computers/blob/master/68000/MECB/tbi68k12/TBI68K.HEX TBI68K.HEX] into ACIA port
 
*** JUMP 0900 to run
 
 
 
==== TS2 Links ====
 
 
 
* [https://jefftranter.blogspot.com/2016/12/building-68000-single-board-computer.html Jeff Tranter's build] (BLOG) - TS2 build
 
** [https://github.com/jefftranter/68000/tree/master/testprog Test Programs]
 
** [https://github.com/jefftranter/68000/tree/master/monitor Monitor code]
 
* [http://easy68k.com/paulrsm/mecb/mecbbyte.htm Educational Computer Board (MEX68KECB)]
 
** [http://www.easy68k.com/paulrsm/mecb/mecb.htm Motorola MC68000 Software]
 
** [http://www.easy68k.com/paulrsm/index.html Motorola 680x0 Resources]
 
 
 
=== 68000 Software ===
 
 
 
* [https://retrobrewcomputers.org/doku.php?id=boards:sbc:tiny68k Tiny68K]
 
** [https://retrobrewcomputers.org/lib/exe/fetch.php?media=boards:sbc:tiny68k:t68kbug.zip t68kbug Debugger]
 
** [https://code.google.com/archive/p/m68k/downloads Linux toolchain for the MC68000 CPU - gcc] (Linux - uClinux/MC68000)
 
* [https://www.bigmessowires.com/2014/11/06/building-uclinux-for-a-68000-target/ Building uClinux for a 68000 Target]
 
** [https://sourceforge.net/projects/uclinux/ uClinux Sourceforge]
 
** [https://www.youtube.com/watch?v=hgWZDSXkC58&feature=emb_logo 68000 booting uClinux 2.4.x (with 4Gb sdhc card)] - YouTube video
 
** [https://www.embeddedrelated.com/showthread/comp.arch.embedded/34824-1.php Minimal hardware requirement for uClinux]
 
* [https://darkdust.net/writings/megadrive/crosscompiler Installing binutils and GCC as cross-compiler for the Motorolla 68000]
 
* [https://sourceforge.net/projects/emutos/ EmuTOS] - Free operating system for Atari computers, and more
 
* [https://github.com/llvm/llvm-project/tree/main/llvm/lib/Target/M68k The LLVM Compiler Infrastructure] - 68K backend
 
** [https://github.com/llvm/llvm-project/tree/main/llvm/lib/Target LLVM Project]
 
** [https://llvm.org/docs/GettingStarted.html#getting-started-with-llvm Getting Started with LLVM]
 
 
 
=== Other People's 68000 Builds ===
 
 
 
* [http://www.faqs.org/faqs/motorola/68k-chips-faq/ comp.sys.m68k Frequently Asked Questions (FAQ)] (1996)
 
* [https://github.com/TobiFlex/minimig_tc64 MiniMig TC64]
 
* [https://hackaday.io/search?term=68000 Hackaday 68000 pages]
 
* [http://mc68k.blogspot.com 68000 brought to life!]
 
* [https://www.ist-schlau.de/?fbclid=IwAR1xQPF5I2gyCa5wyHaQa5nvaLJUyHItMSXMrir3SDk0QjLkibl7ibNxssA Kiwi - a 68k Homebrew Computer]
 
 
 
== RISC V CPU ==
 
 
 
* [https://github.com/ultraembedded/riscv RISC-V Core]
 
* [https://github.com/ultraembedded/biriscv biRISC-V] - 32-bit dual issue RISC-V CPU
 
 
 
== BASIC ==
 
 
 
* [http://www.nicholson.com/rhn/basic/basic.info.html#2 BASIC Programming Resources and Chipmunk Basic Archive]
 
* [https://wiki2.org/en/Tiny_BASIC Tiny BASIC]
 
* [http://www.ittybittycomputers.com/IttyBitty/TinyBasic/index.htm Itty Bitty Computers & TinyBasic]
 
* [http://www.ittybittycomputers.com/IttyBitty/TinyBasic/TBuserMan.htm TINY BASIC User Manual]
 
 
 
== DEC (Digital Equipment Corp) Computers ==
 
 
 
* [http://simh.trailing-edge.com/ Computer Simulation and History (simh)]
 
** [https://www.youtube.com/watch?v=Mn63gb1-NII Introduction to SimH -- basic usage] - YouTube - [https://www.youtube.com/channel/UC1mpDUINwet2IdDBQ3_sSSw Stephen's Machine Room]
 
* [http://www.retrotechnology.com/herbs_stuff/dec.html Herb's DEC items]
 
 
 
=== PDP-4 ===
 
 
 
* [http://www.fpgaretrocomputing.org/pdp4x/ PDP-4 on FPGA]
 
* [http://www.fpgaretrocomputing.org/pdp4x/ PDP-4/X System Reference Manual]
 
 
 
=== PDP-8 ===
 
 
 
* [https://github.com/douggilliland/Retro-Computers/tree/master/PDP-8 My PDP-8 Hardware GitHub repository]
 
* [https://www.computerhistory.org/revolution/minicomputers/11/331 History of the PDP-8]
 
* [http://highgate.comm.sfu.ca/pdp8/ Highgate's PDP-8 Page]
 
 
 
==== Build of Tom Almy's PDP-8 FPGA (Working 2021-May) ====
 
 
 
<video type="youtube">1-lU59broa4</video>
 
 
 
My build is based on [https://almy.us/ Tom Almy]'s book [https://www.amazon.com/PDP-8-Class-Project-Resoling-Machine/dp/1790487978/ref=sr_1_1?dchild=1&keywords=tom+almy+pdp-8&qid=1619874138&sr=8-1 The PDP-8 Class Project: Resoling An Old Machine].
 
 
 
* [https://hackaday.io/project/179357-pdp-8-fpga PDP-8 FPGA] - Hackaday page with progress logs
 
* Hardware used
 
** [[RETRO-EP4CE15]] - FPGA Hardware used
 
*** [[QMTECH EP4CE15 FPGA Card]]
 
** [[PDP-8 Front Panel|PDP-8 Front Panel]]
 
* FPGA Code
 
** [https://github.com/douggilliland/Retro-Computers/tree/master/PDP-8/PDP8_Book(Almy) PDP-8 Almy book on GitHub]
 
* [https://github.com/douggilliland/Linux-68k/tree/master/pdp8 My PDP-8 Software GitHub repository]
 
 
 
==== OpenCores PDP-8 Build ====
 
 
 
* [http://opencores.org/project,pdp8 opencores PDP-8 Processor Core and System Overview]
 
** [https://opencores.org/projects/pdp8/quick%20start Quickstart page]
 
* [https://github.com/douggilliland/Retro-Computers/tree/master/PDP-8/PDP8_OpenCores My GitHub repository]
 
* Hardware used
 
** [[RETRO-EP4CE15]] - FPGA Hardware used
 
*** [[QMTECH EP4CE15 FPGA Card]]
 
** [[PDP-8 Front Panel|PDP-8 Front Panel]]
 
* FPGA Code
 
** [https://github.com/douggilliland/Retro-Computers/tree/master/PDP-8/PDP8_OpenCores/RETRO-EP4CE15_CYCLONE_IV FPGA files]
 
==== Others PDP-8 FPGA ====
 
 
 
* [https://github.com/ucfjimg/pdp8fpga Another Almy based design] - In Verilog
 
* [https://github.com/penguin359/pdp8 Yet another Almy based design]
 
* [https://groups.google.com/forum/#!msg/alt.sys.pdp8/lqMCn6dlA-U/_3p9SJDTfaYJ PDP-8 in VHDL]
 
* [http://www.jaywalk.co.uk/pdp8/ A FGPA Implementation of the PDP-8]
 
* [https://brianwhite94.wixsite.com/electronics/pdp-8-on-an-fpga PDP-8/I on an FPGA]
 
* [https://github.com/lisper/cpus-pdp8 PDP-8/i cpu with an RF08 disk emulator] Uses a IDE disk as a backing store. It boots TSS/8.
 
* [https://github.com/msurendra29/ECE510 PDP-8 Instruction verification] - In System Verilog?
 
* [https://github.com/trueserve/pdp8-badge/tree/master/firmware/cypress/PDP8_PSoC5 PDP8 in a Cypress PSoC5]
 
* [https://github.com/scottlbaker/PDP8-SOC Scott Baker's PDP8-SOC] - Clean VHDL Design
 
 
 
==== PDP-8 Documents and Programming ====
 
 
 
* [http://dustyoldcomputers.com/pdp-common/reference/drawings/cpus/docs/DEC-8E-HR1C-D_8eMaint_Feb73.pdf Maintenance Manual] - excellent document (pdf)
 
* [https://homepage.divms.uiowa.edu/~jones/pdp8/man/index.html PDP-8 - A Programmer's Reference Manual]
 
** [http://homepage.divms.uiowa.edu/~jones/pdp8/man/mri.html The Digital Equipment Corporation PDP-8 - Memory Reference Instructions]
 
* [https://drive.google.com/file/d/0B_jM3_1AFMbMaUZSZ1RRUjJmS0k/view PiPDP-8 Front Panel]
 
* [http://www.fpgaretrocomputing.org/pdp8x/man.pdf PDP-8/X System Reference Manual] (pdf)
 
* [http://www.fpgaretrocomputing.org/pdp8x/panel05.txt Front Panel software]
 
* [http://www.pdp8online.com/index.shtml pdp8online.com]
 
* [https://github.com/rrutt/PDP8 PDP-8 Assembly Language Studio]
 
** [https://rickrutt.wordpress.com/2013/10/19/conways-life-implemented-in-pdp-8-assembly-language/ Conway’s Life Implemented in PDP-8 Assembly Language]
 
 
 
==== PiDP-8 ====
 
 
 
* [https://obsolescence.wixsite.com/obsolescencepidp-8-overview PiDP-8/I: RECREATING THE PDP-8/I] - Obsolescence Guaranteed
 
* [https://tangentsoft.com/pidp8i/wiki?name=Home PiDP-8/I software development nexus]
 
 
 
=== PDP-10 ===
 
 
 
* [http://www.fpgaretrocomputing.org/pdp10x/ PDP-10 on FPGA]
 
** [https://www.retrobrewcomputers.org/forum/index.php?t=msg&th=333 Archived on retrobrew site]
 
 
 
=== PDP-11 ===
 
 
 
==== My PDP-11 (pdp2011) FPGA builds ====
 
 
 
<video type="youtube">oBETQo2oqQA</video>
 
 
 
* [[PDP-11 ON RETRO-EP4CE15]] - Works
 
* Based on [https://pdp2011.sytse.net/wordpress/ Sytse van Slooten's original design pdp2011]
 
 
 
==== Other PDP-11 FPGA builds ====
 
 
 
* [https://github.com/DavidJRichards/pdp2011 Dave Richards pdp2011]
 
* [https://wfjm.github.io/home/w11/ PDP-11 in VHDL - W11 build]
 
 
 
==== PDP-11 Software ====
 
 
 
* [https://wfjm.github.io/home/w11/inst/systems.html#h_os_kits System Disk Images]
 
* [https://www.pdp-11.org.ru/files.pl?lang=en Disk Images]
 
* [http://www.bitsavers.org/pdf/dec/pdp11/handbooks/PDP-11_Processor_Handbook_1981.pdf PDP-11 Processor Handbook 1981] - on [http://www.bitsavers.org/ BitSavers]
 
* [http://www.bitsavers.org/bits/DEC/pdp11/ PDP-11 on BitSavers]
 
* [https://www.instructables.com/PiDP-11-Replica-of-the-1970s-PDP-1170/ PiDP-11: Replica of the 1970s PDP-11/70 emulated on Raspberry Pi]
 
* [http://mdfs.net/Software/PDP11/Assembler/ PDP11 Assembler]
 
 
 
== Terminal ==
 
 
 
=== Grant Searle Terminal Design ===
 
 
 
* Uses two Arduino'ish processors to implement an entire terminal
 
** NTSC output
 
** PS/2 Keyboard input
 
* Grant Searle's Monitor Keyboard Design
 
 
 
[[File:ATMega328Video%202.2.gif]]
 
 
 
* Older AtMEGA32 version of Monitor Keyboard Design
 
 
 
* [[Serial_Terminal|My implementation of Grant's small serial terminal design]]
 
 
 
[[File:SerialTerminal-P70002-cropped-720px.jpg]]
 
 
 
== External Sites ==
 
 
 
=== PiGFX ===
 
 
 
* [https://github.com/fbergama/pigfx PiGFX Raspberry Pi graphics card / ANSI terminal emulator]
 
 
 
* PiGFX is a bare metal kernel for the Raspberry Pi that implements a basic ANSI terminal emulator with the additional support of some primitive graphics functions.
 
* It can be driven by pushing characters to the raspi UART.
 
 
 
https://raw.githubusercontent.com/fbergama/pigfx/master/doc/scr1.jpg
 
 
 
=== RetroBrew Computers Site ===
 
  
* [https://www.retrobrewcomputers.org/forum/index.php RetroBrew Computers Forum]
+
* [[EP2C5-DB Rev X6 Assembly Sheet]] - SMT board version
* [https://www.pagetable.com/ pagetable - Probably the best C64 technical data out there]
+
* [[EP2C5-DB-TH Rev 1 Assembly Sheet]] - Through-hole board version
** [https://github.com/mist64 Github for all things C64]
 
* [http://s100computers.com/My%20System%20Pages/FPGA%20Z80%20SBC/FPGA%20Z80%20SBC.htm#Installing%20Quartus S-100 Bus FPGA Z80 SBC Board]
 

Revision as of 09:56, 17 February 2022

Tindie-mediums.png

EP2C5-DB-TH FPGA card

P1743-720PX.jpg

I love Grant Searle's Multicomp project. It lets you easily create 6502, Z80, 6809 Retrocomputers of the late 1970s era. This card provides all of the connections needed.

Grant's original design used an EP2 and that's exactly what this cards USES. Note that's not compatible with the latest version of Altera/Intel Quartus but you can download older Quartus II versions like 13.1 SP1. Just make sure it supports the Cyclone II family of FPGAs.

Other (Newer, Bigger) Versions of this card

We also have two EP4 versions of this card for sale on Tindie (bare boards, you populate).

Features

EP2 Resources

  • EP2C5 has 26 of 512x9 SRAM blocks

EP2XX Resources.PNG

Stackup with FTDI Card

  • Top to bottom of stackup
  1. EP2C5-DB (this card)
  2. Cyclone II EP2C5 Mini Dev Board
  3. FTDI-49MM
  4. CARRIER 95mm TO 49MM

P1752-CROPPED-720PX.jpg

Hardware

VGA - Ideal Drive 2:2:2 Case

  • FPGA has a 3.3V driver which can drive 8 mA
  • Ideal case drive current
    • 0.7V into 75 Ohms = 9.33 mA
  • R-2R values
  • Voltage steps are:

VGA Sim 2R Voltage.PNG

  • Current steps are:

VGA Sim 2R Current.PNG

LEDs

LEDs on EP2C5 Board

  • D2 is on PIN_3
  • D4 is on PIN_7
  • D5 is on PIN_9

LEDs on EP2C5 PCB.jpg

LEDs Schematic.PNG

LED on EP2C5-DB Cards

  • LED is on FPGA pin 53

Connectors

J1 - VGA

J4 - SD Card

J5 - Serial Ports 1/2

  • Set jumper on FTDI module to 3.3V
  • Connects to FTDI Module
  1. RTS
  2. RXD
  3. TXD
  4. GND

EP2C5-DB FTDI.PNG

FTDI Module

  • Set jumper on FTDI module to 3.3V

FTDI rot.jpg

FTDI Wiring

  • Set jumper on FTDI module to 3.3V
  • J5-1 (marked RTS on PCB) to FTDI CTS pin
  • J5-3 (marked RX on PCB) to FTDI TX pin
  • J5-5 (marked TX on PCB) to FTDI RX pin
  • J5-7 (marked GND on PCB) to FTDI GND pin

EP2C5-DB FTDI Wiring.PNG

J6 - 8-bit I/O connector

  • FPGA Pins
  1. 3.3V
  2. 3.3V
  3. 25
  4. 31
  5. 41
  6. 40
  7. 43
  8. 42
  9. 45
  10. 44
  11. GND
  12. GND

J8 - 8-bit I/O connector

  • FPGA Pins
  1. 3.3V
  2. 3.3V
  3. 48
  4. 47
  5. 52
  6. 51
  7. 58
  8. 55
  9. 76
  10. 69
  11. GND
  12. GND

Schematics

SMT Version

Through Hole Version

Retro-Computer Builds

Multicomp Extensions

Programming the Flash EPROM Memory

EP2CE P428-720PX.jpg

Permanent (.pof file)

  • AS - Upload ,pof file to EPROM over AS
    • Flash EPROM = EPCS4
    • Remains after power cycling

Program-permanent-720px.png

Temporary (.sof file)

  • JTAG - Upload temporary .sof program over JTAG
    • Does not remain after power cycling

Program-temporarily-720px.png

Pin List (Multicomp)

# Clocks and reset
set_location_assignment PIN_17 -to clk
set_location_assignment PIN_144 -to n_reset
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to n_reset
# PS/2
set_location_assignment PIN_87 -to ps2Data
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to ps2Data
set_location_assignment PIN_86 -to ps2Clk
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to ps2Clk
# ACIA (Serial)
set_location_assignment PIN_60 -to serSelect
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to serSelect
# Serial
set_location_assignment PIN_104 -to o_rts1
set_location_assignment PIN_101 -to i_rxd1
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to i_rxd1
set_location_assignment PIN_103 -to o_txd1
# External SRAM
set_location_assignment PIN_4 -to n_sRamWE
set_location_assignment PIN_126 -to n_sRamCS
set_location_assignment PIN_134 -to n_sRamOE
set_location_assignment PIN_32 -to sramAddress[16]
set_location_assignment PIN_8 -to sramAddress[15]
set_location_assignment PIN_30 -to sramAddress[14]
set_location_assignment PIN_24 -to sramAddress[13]
set_location_assignment PIN_28 -to sramAddress[12]
set_location_assignment PIN_136 -to sramAddress[11]
set_location_assignment PIN_132 -to sramAddress[10]
set_location_assignment PIN_139 -to sramAddress[9]
set_location_assignment PIN_142 -to sramAddress[8]
set_location_assignment PIN_143 -to sramAddress[7]
set_location_assignment PIN_141 -to sramAddress[6]
set_location_assignment PIN_137 -to sramAddress[5]
set_location_assignment PIN_135 -to sramAddress[4]
set_location_assignment PIN_133 -to sramAddress[3]
set_location_assignment PIN_129 -to sramAddress[2]
set_location_assignment PIN_125 -to sramAddress[1]
set_location_assignment PIN_121 -to sramAddress[0]
set_location_assignment PIN_122 -to sramData[7]
set_location_assignment PIN_120 -to sramData[6]
set_location_assignment PIN_118 -to sramData[5]
set_location_assignment PIN_114 -to sramData[4]
set_location_assignment PIN_112 -to sramData[3]
set_location_assignment PIN_113 -to sramData[2]
set_location_assignment PIN_115 -to sramData[1]
set_location_assignment PIN_119 -to sramData[0]
# Composite Video
set_location_assignment PIN_75 -to video
set_location_assignment PIN_74 -to videoSync
# VGA
set_location_assignment PIN_64 -to videoB0
set_location_assignment PIN_63 -to videoB1
set_location_assignment PIN_67 -to videoG0
set_location_assignment PIN_65 -to videoG1
set_location_assignment PIN_70 -to videoR0
set_location_assignment PIN_69 -to videoR1
set_location_assignment PIN_71 -to hSync
set_location_assignment PIN_72 -to vSync
# SD Card
set_location_assignment PIN_92 -to sdMISO
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to sdMISO
set_location_assignment PIN_94 -to sdSCLK
set_location_assignment PIN_93 -to sdMOSI
set_location_assignment PIN_97 -to sdCS
set_location_assignment PIN_3 -to driveLED
# J6 IO
set_location_assignment PIN_25 -to J6IO8[0]
set_location_assignment PIN_31 -to J6IO8[1]
set_location_assignment PIN_41 -to J6IO8[2]
set_location_assignment PIN_40 -to J6IO8[3]
set_location_assignment PIN_43 -to J6IO8[4]
set_location_assignment PIN_42 -to J6IO8[5]
set_location_assignment PIN_45 -to J6IO8[6]
set_location_assignment PIN_44 -to J6IO8[7]
# J8 I/O
set_location_assignment PIN_48 -to J8IO8[0]
set_location_assignment PIN_47 -to J8IO8[1]
set_location_assignment PIN_52 -to J8IO8[2]
set_location_assignment PIN_51 -to J8IO8[3]
set_location_assignment PIN_58 -to J8IO8[4]
set_location_assignment PIN_55 -to J8IO8[5]
set_location_assignment PIN_76 -to J8IO8[6]
# set_location_assignment PIN_60 -to J8IO8[7]

EP2C5-DB Assembly Sheet