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

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/products/land_boards/z80-6502-6809-fpga-multicomp-pcb-ep2c5-db/]]
+
[[File:tindie-mediums.png|link=https://www.tindie.com/stores/land_boards/]]
 +
 
 +
== Grant Searle's FPGA MultiComp Project ==
 +
 
 +
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]
 +
* [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 ===
 +
 
 +
==== Cyclone II Video Series ====
  
 
<video type="youtube">7O0njivn-Po</video>
 
<video type="youtube">7O0njivn-Po</video>
  
== EP2C5-DB-TH FPGA card ==
+
[https://www.youtube.com/playlist?list=PLn__0BqzWEWMcUgzBroNNJYQP1keD--gu Video Series]
 +
 
 +
==== Cyclone IV Video Series ====
 +
 
 +
[https://www.youtube.com/playlist?list=PLn__0BqzWEWPk0-VW3kEpMNA81sIbhj6n Video Series]
 +
 
 +
== 6800 CPU ==
 +
 
 +
=== S120 Bus Computer ===
 +
 
 +
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.
 +
 
 +
* Ran on Elco? 120 pin edge connector wire wrapped cards
 +
* 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:P1743-720PX.jpg]]
+
It might be fun to reproduce that board!
  
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.
+
==== Pieces to Reproduce my original S120 Bus Computer ====
  
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.
+
* Michael Holley's SWTPC 6800/6809 documentation collection
 +
* N8VEM RetroComputing Wikipedia page
 +
* Retrobrew Computers
 +
* Kim-1 board - Similar concept
  
=== Other (Newer, Bigger) Versions of this card ===
+
==== Hardware ====
  
We also have two EP4 versions of this card for sale on Tindie (bare boards, you populate).
+
* M6800 VHDL code from OpenCores
  
* [https://www.tindie.com/products/land_boards/z80-6502-6809-fpga-multicomp-pcb-retro-ep4/ EP4CE6 card, mounts WaveShare board]
+
==== Software ====
* [https://www.tindie.com/products/land_boards/retrocomputer-fpga-card-pcb-only/ EP4CE15 card, mounts QMTECH boards]
 
  
== Features ==
+
* AS68 Cross Assembler
 +
* ASM68C Cross Assembler
 +
* Collection of Assembly Language tools for the M6800
 +
* 6800 Basics
 +
* 6800 Assembly Language Programming (pdf) by Lance Leventhal
 +
* 6800 Instruction Set Cheat Sheet
  
* [https://github.com/douggilliland/MultiComp/wiki Full MultiComp Support] of classic 8-bit Retrocomputers
+
=== M6800_MIKBUG - Tested/Works ===
** [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)
 
  
=== EP2 Resources ===
+
<video type="youtube">LxMTCq9kLoc</video>
  
* EP2C5 has 26 of 512x9 SRAM blocks
+
[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:EP2XX_Resources.PNG]]
+
* Fills a hole in Grant Searle's Multicomp (he hadn't finished a 6800 version)
 +
** 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
  
== Stackup with FTDI Card ==
+
==== Memory Map ====
  
* Top to bottom of stackup
+
* $0000-$EFFF - 60KB external sRAM
# EP2C5-DB (this card)
+
** $0000-$EEFF - User RAM area
# [[Cyclone II EP2C5 Mini Dev Board]]
+
** $EF00-$EFFF - scratchpad used by MIKBUG
# [[FTDI-49MM]]
+
* I/O Map
# [[CARRIER95TO49MM|CARRIER 95mm TO 49MM]]
+
** $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
  
[[File:P1752-CROPPED-720PX.jpg]]
+
=== Systems ===
  
=== Hardware ===
+
* [http://www.computercloset.org/MITSAltair680.htm MITS Altair 680]
 +
* [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
  
* 4-40 screws with nuts as spacers between [[CARRIER95TO49MM|CARRIER 95mm TO 49MM]] and [[FTDI-49MM]]
+
=== Software ===
* (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
 
  
== VGA - Ideal Drive 2:2:2 Case ==
+
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_RETRO-EP4/M6800_MIKBUG Muticomp M6800 MIKBUG]
 +
* [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
  
* FPGA has a 3.3V driver which can drive 8 mA
+
== Z80 CPU ==
* Ideal case drive current
 
** 0.7V into 75 Ohms = 9.33 mA
 
* R-2R values
 
** Ideal resistor values are 417.9 ohms and 835.7 ohms
 
** [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:
 
  
[[File:VGA_Sim_2R_Voltage.PNG]]
+
<video type="youtube">OdtYN3vPu_E</video>
  
* Current steps are:
+
* Land Boards [[Z80 in 3 Chips]]
 +
* [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:VGA_Sim_2R_Current.PNG]]
+
[[File:Z80_P865-cropped-720px.jpg]]
  
== LEDs ==
+
=== Stackup (top to bottom) ===
  
=== LEDs on EP2C5 Board ===
+
* [[Front Panel For 8 Bit Computers]]
 +
* [[Z80 in 3 Chips]]
 +
* [[SD_CARD_X49]] mounted on [[CARRIER95TO49MM]]
 +
* [[JOYPAD]]
  
* D2 is on PIN_3
+
[[File:Z80_PSOC_P936-CROPPED-720PX.jpg]]
* D4 is on PIN_7
 
* D5 is on PIN_9
 
  
[[File:LEDs_on_EP2C5_PCB.jpg]]
+
=== Z80-MBC2 Build ===
  
[[File:LEDs_Schematic.PNG]]
+
[[Z80-MBC2 Build Notes]]
  
=== LED on EP2C5-DB Cards ===
+
=== CP/M on FPGA - by Grant Searle ===
  
* LED is on FPGA pin 53
+
* [https://web.archive.org/web/20180221182529/searle.hostei.com/grant/ Archive.org copy of Grant's site from 2012]
 +
* [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
  
== Connectors ==
+
[[File:CPM-2UARTs-NoVideo.PNG]]
  
=== J1 - VGA ===
+
* Grant noted about the SD card interface:
 +
<pre>
 +
... the SD controller is easy to control - in BASIC POKE the sector number, POKE the write command,
 +
POKE 512 bytes to the same location to write a sector,
 +
or POKE the sector number, POKE the read command, and PEEK 512 bytes to read a sector.
 +
</pre>
  
=== J4 - SD Card ===
+
=== Retrobrew Multi-boot Multicomp Computer Builds ===
  
 +
* [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]
 +
* [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]
  
=== J5 - Serial Ports 1/2 ===
+
==== mc-2g-1024 Images ====
 +
 
 +
* 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
 +
** [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]
 +
* [https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:rhkoolstar:mc-2g-1024.zip Included OSs] are
 +
** Type '''Snnn''' to select OS at multiboot
 +
** 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)
 +
** 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
 +
** S003 - [http://www.cpm.z80.de/manuals/cpm3-usr.pdf CP/M Version 3.0] BIOS (2016/9/13)
 +
*** [http://www.cpm.z80.de/manuals/cpm3-sys.pdf CP/M Version 3.0 Operating System System Guide]
 +
** 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]
 +
** S005 - [http://searle.wales/z80/SimpleZ80.html Z80 BASIC Ver 4.7b], Copyright (C) 1978 by Microsoft
 +
** 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)
 +
** 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
 +
 
 +
* Additional Volumes
 +
** 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) ===
 +
 
 +
* [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]
 +
* [https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:multicomp:cycloneii-c:start Some folks made a MultiComputer PCB, too] - Retrobrewing
 +
* [https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:multicomp:cycloneii-b:start Another board]
 +
* [https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:multicomp:papilio-duo:start Yet another board]
 +
* [http://jeelabs.org/book/1550b/ Jeelabs Building a MultiComp-based Z80]
 +
* [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]
 +
* [https://www.youtube.com/watch?v=98uVpNQ9Gb8 Homebrew Z80]
 +
* [https://hackaday.io/project/163683-the-thing-fpga-stm32 "The Thing": FPGA + STM32]
 +
 
 +
=== CP/M Notes ===
 +
 
 +
* CP/M is not case sensitive
 +
* 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://www.cpm.z80.de/manuals/cpm22-m.pdf CP/M Operating System Manual]
 +
* [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 ===
 +
 
 +
==== AZTEC C Compiler ====
 +
 
 +
* Compile C code to CP/M executable
 +
* [https://archive.org/details/bitsavers_manxAztecC_11703326 Aztec C Compiler Manual]
 +
** C Vers. 1.06D 8080  (C) 1982 1983 1984 by Manx Software Systems
 +
* Example Code - HELLO2.C
 +
<pre>
 +
int main()
 +
{
 +
  int i;
 +
  for (i=0; i< 10; i++)
 +
    printf("%d\n");
 +
}
 +
</pre>
  
* Set jumper on FTDI module to 3.3V
+
* Compile code to assembly file
* Connects to FTDI Module
+
** Creates a .ASM file
 +
<pre>
 +
CC HELLO2.C
 +
</pre>
  
# RTS
+
* Assemble Code to object file
# RXD
+
** Creates a .O file
# TXD
+
<pre>
# GND
+
AS HELLO2.ASM
 +
</pre>
  
[[File:EP2C5-DB_FTDI.PNG]]
+
* Link Code with C library to .COM executable file
 +
<pre>
 +
LN HELLO2.O C.LIB
 +
</pre>
  
==== FTDI Module ====
+
<video type="youtube">wQY2VUV8MDQ</video>
  
* Set jumper on FTDI module to 3.3V
+
==== ALGOL-M Compiler ====
  
[[File:FTDI_rot.jpg]]
+
* Fizzbuzz example
  
==== FTDI Wiring ====
+
<pre>
 +
BEGIN
  
* Set jumper on FTDI module to 3.3V
+
INTEGER FUNCTION DIVBY(N, D);
* J5-1 (marked RTS on PCB) to FTDI CTS pin
+
INTEGER N;
* J5-3 (marked RX on PCB) to FTDI TX pin
+
INTEGER D;
* J5-5 (marked TX on PCB) to FTDI RX pin
+
BEGIN
* J5-7 (marked GND on PCB) to FTDI GND pin
+
  DIVBY := 1 - (N - D * (N / D));
 +
END;
  
[[File:EP2C5-DB_FTDI_Wiring.PNG]]
+
INTEGER I;
 +
FOR I := 1 STEP 1 UNTIL 100 DO
 +
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;
  
=== J6 - 8-bit I/O connector ===
+
END
 +
</pre>
 +
* To run compiler:
 +
<pre>
 +
algolm fizzbuzz
  
* FPGA Pins
+
</pre>
 +
* 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>
 +
ALGOL-M INTERPRETER-VERS 1.0
  
# 3.3V
 
# 3.3V
 
# 25
 
# 31
 
# 41
 
# 40
 
# 43
 
# 42
 
# 45
 
# 44
 
# GND
 
# GND
 
  
=== J8 - 8-bit I/O connector ===
+
    1
 +
    2
 +
Fizz
 +
    4
 +
Buzz
 +
Fizz
 +
    7
 +
    8
 +
</pre>
  
* FPGA Pins
+
=== Microsoft BASIC Notes ===
  
# 3.3V
+
* SAVE "MYPROG.BAS"
# 3.3V
+
* LOAD "MYPROG.BAS"
# 48
+
* SYSTEM -- Return to CP/M
# 47
+
* NAME "OLDFILE.BAS" AS "NEWFILE.BAS"
# 52
+
* NEW - Delete program
# 51
+
* OUT 132,1 -- Output to I/O port 132
# 58
+
* PRINT MEM - Free memory (6809 Extended BASIC)
# 55
 
# 76
 
# 69
 
# GND
 
# GND
 
  
== Schematics ==
+
=== Notes ===
  
=== SMT Version ===
+
* [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
  
* [http://land-boards.com/EP2C5-DB/EP2C5-DB_Schematic_Rev_X5.pdf Rev X5 schematic]
+
==== NASCOM BASIC ====
* [http://land-boards.com/EP2C5-DB/EP2C5-DB_Schematic_Rev_X6.pdf Rev X6 schematic]
 
  
=== Through Hole Version ===
+
* OUT ADDR,DATA
 +
* INP(128) - Reads I/O address 128 (0x80)
  
* [http://land-boards.com/EP2C5-DB-TH/EP2C5-DB-TH_Rev1.pdf Rev 1 schematic]
+
== 6502 CPU ==
  
== Retro-Computer Builds ==
+
=== Ohio Scientific SuperBoard II - My first commercial personal computer ===
  
[https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5 Github repository for Multicomp builds]
+
[[File:Osi-600.jpg]]
  
* [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]
+
[http://oldcomputers.net/osi-600.html SuperBoard II]
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/UK101-GS-Original UK101, Grant Searle's Original, CEGMON and BASIC-in-ROM]
 
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/UK101_4KRAM UK101, 4K SRAM, CEGMON and BASIC-in-ROM]
 
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/uk101_NTSC-PS2-ExtRAM UK101, NTSC, PS2, Ext SRAM, CEGMON and BASIC-in-ROM]
 
* [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]
 
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/Z80-CPM-VGA-PS2-128KRAM Z80, CP/M 2, VGA, PS2, 128K SRAM]
 
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/Z80-CPM-VGA-PS2-ExtRAM Z80, CP/M 2, VGA, PS2, 128K SRAM]
 
  
=== Multicomp Extensions ===
+
* 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
  
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6800_MIKBUG M6800, MIKBUG ROM]
+
==== Superboard II Documents ====
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6800_MIKBUG_ExtSRAM M6800, MIKBUG ROM, External RAM]
 
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6800_MIKBUG_ExtSRAM_MIKBUG_at_F000 M6800, MIKBUG ROM at 0xF000 base, External RAM]
 
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6800_MIKBUG_Serial M6800, MIKBUG ROM, Serial port]
 
* [https://github.com/douggilliland/Retro-Computers/tree/master/PDP-8/PDP8_Book(Almy)/PDP8_VDU_EP2CE5 PDP-8 4KW, Serial, VGA]
 
  
== Programming the Flash EPROM Memory ==
+
* [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]
  
[[FILE:EP2CE_P428-720PX.jpg]]
+
==== Keyboard Layout ====
  
=== Permanent (.pof file) ===
+
[[File:opkbd.jpg]]
  
* AS - Upload ,pof file to EPROM over AS
+
==== CC65 - C Compiler for the 6502 and OSI C1P ====
** Flash EPROM = EPCS4
 
** Remains after power cycling
 
  
[[File:Program-permanent-720px.png]]
+
* [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]
  
=== Temporary (.sof file) ===
+
==== SuperBoard II Emulator ====
  
* JTAG - Upload temporary .sof program over JTAG
+
* [https://www.pcjs.org/docs/c1pjs/ OSI Challenger 1P (8Kb) with Debugger - JAVA web based emulator]
** Does not remain after power cycling
+
* [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]
  
[[File:Program-temporarily-720px.png]]
+
==== BASIC Programs ====
  
== Pin List (Multicomp) ==
 
 
<pre>
 
<pre>
# Clocks and reset
+
10 I=1
set_location_assignment PIN_17 -to clk
+
20 PRINT "HELLO DAVEY"
set_location_assignment PIN_144 -to n_reset
+
30 I=I+1
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to n_reset
+
40 IF I < 5 GOTO 20
# PS/2
+
</pre>
set_location_assignment PIN_87 -to ps2Data
+
 
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to ps2Data
+
==== SuperBoard II/ Retro-Tech Refresh ====
set_location_assignment PIN_86 -to ps2Clk
+
 
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to ps2Clk
+
I was looking around for a way to recreate my OSI Superboard and found Grant Searle's design.
# ACIA (Serial)
+
 
set_location_assignment PIN_60 -to serSelect
+
* [[EP2C5-DB]] - Our creation of a daughtercard which implements Grant Searle's Multi-Computer
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to serSelect
+
* [http://searle.x10host.com/uk101FPGA/index.html Grant Searle's CompuKit UK101]
# Serial
+
** Based on Cyclone II EP2C5 Mini Dev Board
set_location_assignment PIN_104 -to o_rts1
+
** Someone built one of the CompuKit clones as a CPM box
set_location_assignment PIN_101 -to i_rxd1
+
* [https://www.youtube.com/watch?v=aD844aXw9z8  Compukit 101 video]
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to i_rxd1
+
* [https://archive.org/search.php?query=ohio+scientific Ohio Scientific publications]
set_location_assignment PIN_103 -to o_txd1
+
* [http://www.6502.org/source/monitors/ehbasic/ehbasic.html Enhanced 6502 BASIC]
# External SRAM
+
** [https://coronax.wordpress.com/tag/basic/ Experience porting Enhanced Basic to a 6502 Computer]
set_location_assignment PIN_4 -to n_sRamWE
+
*** "EhBASIC is about 11 KB"
set_location_assignment PIN_126 -to n_sRamCS
+
* [http://6502.org/ 6502.org] - the place for retro 6502 projects
set_location_assignment PIN_134 -to n_sRamOE
+
* [https://opencores.org/project,system68 System68]
set_location_assignment PIN_32 -to sramAddress[16]
+
* [https://hackaday.io/project/3620/logs L-Star: Software-Defined 6502 Computer] - Uses a Propeller chip
set_location_assignment PIN_8 -to sramAddress[15]
+
* Pick-and-mix to create your own custom computer on a low-cost FPGA board
set_location_assignment PIN_30 -to sramAddress[14]
+
* [http://sbc.rictor.org/ Daryl's Computer Page]
set_location_assignment PIN_24 -to sramAddress[13]
+
** Daryl has designed multiple single board computers
set_location_assignment PIN_28 -to sramAddress[12]
+
* [https://archive.org/search.php?query=6502%20assembly%20language 6502 Assembly Language books] - archive.org
set_location_assignment PIN_136 -to sramAddress[11]
+
* [https://archive.org/details/6502-micro-journal Micro 6502 Journal]
set_location_assignment PIN_132 -to sramAddress[10]
+
 
set_location_assignment PIN_139 -to sramAddress[9]
+
== 6809 CPU ==
set_location_assignment PIN_142 -to sramAddress[8]
+
 
set_location_assignment PIN_143 -to sramAddress[7]
+
=== Our Build ===
set_location_assignment PIN_141 -to sramAddress[6]
+
 
set_location_assignment PIN_137 -to sramAddress[5]
+
<video type="youtube">hHBiFK0d3Y4</video>
set_location_assignment PIN_135 -to sramAddress[4]
+
 
set_location_assignment PIN_133 -to sramAddress[3]
+
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_RETRO-EP4CE15/MultiComp_6809_by_Neal_C-2019-04-08 Our FPGA Builds]
set_location_assignment PIN_129 -to sramAddress[2]
+
* BASIC is a port of [https://handwiki.org/wiki/Color_BASIC Microsoft Extended BASIC] for the 6809-based Radio Shack Color Computer
set_location_assignment PIN_125 -to sramAddress[1]
+
 
set_location_assignment PIN_121 -to sramAddress[0]
+
=== Neal Crook's 6809 Multiple OS Build ===
set_location_assignment PIN_122 -to sramData[7]
+
 
set_location_assignment PIN_120 -to sramData[6]
+
Neal Crook's build started from Grant Searle's Multicomp and fixed a number of issues with the VHDL code. It also has an SD Card with multiple OS Support.
set_location_assignment PIN_118 -to sramData[5]
+
 
set_location_assignment PIN_114 -to sramData[4]
+
* [https://github.com/nealcrook/multicomp6809/wiki Neal Crook's 6809 Wiki of Multicomp FPGA builds] - very helpful
set_location_assignment PIN_112 -to sramData[3]
+
* [https://github.com/nealcrook/multicomp6809 Neal Crook's Multicomp GitHub (with docs)]
set_location_assignment PIN_113 -to sramData[2]
+
* Neal did [https://github.com/nealcrook/multicomp6809/wiki/CPU-and-clocking-modifications work on the 6809 core] that Grant Searle was using
set_location_assignment PIN_115 -to sramData[1]
+
** Changed reset to active-low, consistently asynchronous
set_location_assignment PIN_119 -to sramData[0]
+
** Changed clock to rising-edge
# Composite Video
+
** Clocked the processor on the input (50MHz) clock rather than a divided clock
set_location_assignment PIN_75 -to video
+
*** Used the HOLD input to control the clock rate.
set_location_assignment PIN_74 -to videoSync
+
** Added MMU to control extended RAM
# VGA
+
* Neal did some [https://github.com/nealcrook/multicomp6809/wiki/VDU-Modifications Video Display Unit (VDU) Modifications]
set_location_assignment PIN_64 -to videoB0
+
* Neal's [https://github.com/nealcrook/multicomp6809/wiki/mk2-memory-mapping-unit Memory Mapper]
set_location_assignment PIN_63 -to videoB1
+
* Neal got [https://github.com/nealcrook/multicomp6809/wiki/SD-Controller-modifications SDHC working] - the original was SD only
set_location_assignment PIN_67 -to videoG0
+
 
set_location_assignment PIN_65 -to videoG1
+
==== Programming ====
set_location_assignment PIN_70 -to videoR0
+
 
set_location_assignment PIN_69 -to videoR1
+
* [https://github.com/nealcrook/multicomp6809/wiki/camelforth CamelForth]
set_location_assignment PIN_71 -to hSync
+
 
set_location_assignment PIN_72 -to vSync
+
==== SD Card ====
# SD Card
+
 
set_location_assignment PIN_92 -to sdMISO
+
* [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
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to sdMISO
+
** [https://github.com/douggilliland/MultiComp/blob/master/MultiComp_6809_by_Neal_C-2019-04-08/SD%20Card/README.mediawiki SD Card Image]
set_location_assignment PIN_94 -to sdSCLK
+
* [https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:multicomp:cycloneii-c:start Using the SD Card]
set_location_assignment PIN_93 -to sdMOSI
+
 
set_location_assignment PIN_97 -to sdCS
+
==== Other Docs ====
set_location_assignment PIN_3 -to driveLED
+
 
# J6 IO
+
* [https://www.forth.com/starting-forth/ Starting FORTH] - First book of learning FORTH
set_location_assignment PIN_25 -to J6IO8[0]
+
* [https://github.com/EtchedPixels/FUZIX FUZIX]
set_location_assignment PIN_31 -to J6IO8[1]
+
* [http://www.flexusergroup.com/flexusergroup/pdfs/swflexum.pdf Flex User's Guide]
set_location_assignment PIN_41 -to J6IO8[2]
+
* [http://ccgi.dougrice.plus.com/cgi-bin/wiki.pl?My_Notes_On_6809 Upload ROMs without rebuilding]
set_location_assignment PIN_40 -to J6IO8[3]
+
* [http://atjs.mbnet.fi/mc6809/index.html 6809 Emulation Page]
set_location_assignment PIN_43 -to J6IO8[4]
+
* [https://obsolescence.wixsite.com/obsolescence/the-6x0x-boards N8VEM 6809 Board]
set_location_assignment PIN_42 -to J6IO8[5]
+
* [https://www.6809.org.uk/asm6809/ asm6809 - Assembler]
set_location_assignment PIN_45 -to J6IO8[6]
+
 
set_location_assignment PIN_44 -to J6IO8[7]
+
== 68000 CPU ==
# J8 I/O
+
 
set_location_assignment PIN_48 -to J8IO8[0]
+
Various 68000 builds
set_location_assignment PIN_47 -to J8IO8[1]
+
 
set_location_assignment PIN_52 -to J8IO8[2]
+
=== TG68_AMR Design ===
set_location_assignment PIN_51 -to J8IO8[3]
+
 
set_location_assignment PIN_58 -to J8IO8[4]
+
<video type="youtube">D9y7V0j5GsQ</video>
set_location_assignment PIN_55 -to J8IO8[5]
+
 
set_location_assignment PIN_76 -to J8IO8[6]
+
[[TG68 AMR Build]]
# set_location_assignment PIN_60 -to J8IO8[7]
+
 
</pre>
+
* 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
  
== EP2C5-DB Assembly Sheet ==
+
=== RetroBrew Computers Site ===
  
* [[EP2C5-DB Rev X6 Assembly Sheet]] - SMT board version
+
* [https://www.retrobrewcomputers.org/forum/index.php RetroBrew Computers Forum]
* [[EP2C5-DB-TH Rev 1 Assembly Sheet]] - Through-hole board version
+
* [https://www.pagetable.com/ pagetable - Probably the best C64 technical data out there]
 +
** [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 11:42, 17 February 2022

Tindie-mediums.png

Contents

Grant Searle's FPGA MultiComp Project

FPGA Recreations of 6502, 6809, Z80, and Z80 Vintage Computers

Other Links

Our MultiComp Retro-Computer Video Series

Cyclone II Video Series

Video Series

Cyclone IV Video Series

Video Series

6800 CPU

S120 Bus Computer

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.

  • Ran on Elco? 120 pin edge connector wire wrapped cards
  • 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.

It might be fun to reproduce that board!

Pieces to Reproduce my original S120 Bus Computer

  • Michael Holley's SWTPC 6800/6809 documentation collection
  • N8VEM RetroComputing Wikipedia page
  • Retrobrew Computers
  • Kim-1 board - Similar concept

Hardware

  • M6800 VHDL code from OpenCores

Software

  • AS68 Cross Assembler
  • ASM68C Cross Assembler
  • Collection of Assembly Language tools for the M6800
  • 6800 Basics
  • 6800 Assembly Language Programming (pdf) by Lance Leventhal
  • 6800 Instruction Set Cheat Sheet

M6800_MIKBUG - Tested/Works

This is an FPGA build of something similar to that machine

  • Fills a hole in Grant Searle's Multicomp (he hadn't finished a 6800 version)
  • 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)
  • PS/2 keyboard

Memory Map

  • $0000-$EFFF - 60KB external sRAM
    • $0000-$EEFF - User RAM area
    • $EF00-$EFFF - scratchpad used by MIKBUG
  • 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

Software

Z80 CPU

Z80 P865-cropped-720px.jpg

Stackup (top to bottom)

Z80 PSOC P936-CROPPED-720PX.jpg

Z80-MBC2 Build

Z80-MBC2 Build Notes

CP/M on FPGA - by Grant Searle

CPM-2UARTs-NoVideo.PNG

  • Grant noted about the SD card interface:
... the SD controller is easy to control - in BASIC POKE the sector number, POKE the write command, 
POKE 512 bytes to the same location to write a sector, 
or POKE the sector number, POKE the read command, and PEEK 512 bytes to read a sector.

Retrobrew Multi-boot Multicomp Computer Builds

mc-2g-1024 Images

Retrobrew Computer Builds of the Multicomp Project(s)

CP/M Notes

  • CP/M is not case sensitive
  • 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

*BYE- Return to CP/M

Z80 Software Development

AZTEC C Compiler

  • Compile C code to CP/M executable
  • Aztec C Compiler Manual
    • C Vers. 1.06D 8080 (C) 1982 1983 1984 by Manx Software Systems
  • Example Code - HELLO2.C
int main()
{
  int i;
  for (i=0; i< 10; i++)
    printf("%d\n");
}
  • Compile code to assembly file
    • Creates a .ASM file
CC HELLO2.C
  • Assemble Code to object file
    • Creates a .O file
AS HELLO2.ASM
  • Link Code with C library to .COM executable file
LN HELLO2.O C.LIB

ALGOL-M Compiler

  • Fizzbuzz example
BEGIN

INTEGER FUNCTION DIVBY(N, D);
INTEGER N;
INTEGER D;
BEGIN
  DIVBY := 1 - (N - D * (N / D));
END;

INTEGER I;
FOR I := 1 STEP 1 UNTIL 100 DO
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
  • To run compiler:
algolm fizzbuzz

  • Result is:
ALGOL-M COMPILER VERS 1.1
   0 ERROR(S) DETECTED
  • To run ALGOL interpreter
runalg fizzbuzz
  • Result is
ALGOL-M INTERPRETER-VERS 1.0


     1
     2
Fizz
     4
Buzz
Fizz
     7
     8

Microsoft BASIC Notes

  • 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

NASCOM BASIC

  • OUT ADDR,DATA
  • INP(128) - Reads I/O address 128 (0x80)

6502 CPU

Ohio Scientific SuperBoard II - My first commercial personal computer

Osi-600.jpg

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
  • Microsoft BASIC
  • 2K Monitor ROM (CEGMON)
  • Compkit 101 - British clone of the SuperBoard II

Superboard II Documents

Keyboard Layout

Opkbd.jpg

CC65 - C Compiler for the 6502 and OSI C1P

SuperBoard II Emulator

BASIC Programs

10 I=1
20 PRINT "HELLO DAVEY"
30 I=I+1
40 IF I < 5 GOTO 20

SuperBoard II/ Retro-Tech Refresh

I was looking around for a way to recreate my OSI Superboard and found Grant Searle's design.

6809 CPU

Our Build

Neal Crook's 6809 Multiple OS Build

Neal Crook's build started from Grant Searle's Multicomp and fixed a number of issues with the VHDL code. It also has an SD Card with multiple OS Support.

Programming

SD Card

Other Docs

68000 CPU

Various 68000 builds

TG68_AMR Design

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

TG68_AMR Links

TS2 design with Multicomp parts

TS2 Links

68000 Software

Other People's 68000 Builds

RISC V CPU

BASIC

DEC (Digital Equipment Corp) Computers

PDP-4

PDP-8

Build of Tom Almy's PDP-8 FPGA (Working 2021-May)

My build is based on Tom Almy's book The PDP-8 Class Project: Resoling An Old Machine.

OpenCores PDP-8 Build

Others PDP-8 FPGA

PDP-8 Documents and Programming

PiDP-8

PDP-10

PDP-11

My PDP-11 (pdp2011) FPGA builds

Other PDP-11 FPGA builds

PDP-11 Software

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

ATMega328Video 2.2.gif

  • Older AtMEGA32 version of Monitor Keyboard Design

SerialTerminal-P70002-cropped-720px.jpg

External Sites

PiGFX

  • 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