Difference between revisions of "RetroComputers"

From Land Boards Wiki
Jump to navigation Jump to search
(23 intermediate revisions by the same user not shown)
Line 24: Line 24:
  
 
[[File:EP2C5-DB_RevX6_720px-rot.png]]
 
[[File:EP2C5-DB_RevX6_720px-rot.png]]
 +
== Grant Searle's FPGA MultiComputer Project(s) ==
 +
 +
=== Retro-Computer Map EP2 to EP4 card ===
 +
 +
* Map EP2 to EP4 card
 +
 +
=== My Build of the Z80 Version ===
 +
 +
* CP/M on FPGA - by Grant Searle
 +
* [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
 +
** Two UART Serial interface
 +
** No Video Display
 +
** External RAM
 +
 +
[[File:CPM-2UARTs-NoVideo.PNG]]
 +
 +
=== Retrobrew Computer Builds of the Multicomp Project(s) ===
 +
 +
* [https://www.retrobrewcomputers.org/doku.php?id=builderpages:rhkoolstar:mc-2g-1024 MultiComputerZ80 build] - Lots of extras
 +
* [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]
 +
* [https://insom.github.io/project/fpga1/ Z80 BASIC on a Cyclone IV FPGA]
 +
 +
=== Neil Crook Builds of the Multicomp Project - 6809 Version ===
 +
 +
Neil started from Grant Searle's work and fixed a number of issue with the VHDL code.
 +
 +
* [https://github.com/nealcrook/multicomp6809/wiki Neil Crook's Wiki Page]
 +
* [https://github.com/nealcrook/multicomp6809 Neil Crook's Multicomp GitHub (with docs)]
 +
* Neil 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
 +
* Neil did some [https://github.com/nealcrook/multicomp6809/wiki/VDU-Modifications Video Display Unit (VDU) Modifications]
 +
* Neil's [https://github.com/nealcrook/multicomp6809/wiki/mk2-memory-mapping-unit Memory Mapper]
 +
* Neil got [https://github.com/nealcrook/multicomp6809/wiki/SD-Controller-modifications SDHC working] - the original was SD only
 +
* [https://github.com/nealcrook/multicomp6809 Neil Crook's 6809 Multicomp FPGA builds] - very helpful
 +
* [https://github.com/nealcrook/multicomp6809/wiki Neil Crook's 6809 Wiki of Multicomp FPGA builds] - very helpful
 +
* [https://www.forth.com/starting-forth/ Starting FORTH] - First book of learning FORTH
 +
 +
=== CP/M Resources on the Net ===
 +
 +
* [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]
 +
* [http://www.bbcbasic.co.uk/bbcbasic/z80basic.html BBC BASIC (Z80)]
 +
** [http://www.bbcbasic.co.uk/bbcbasic/mancpm/index.html BBC BASIC (Z80) Manual]
 +
* [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]
 +
* [ 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]
 +
 +
=== 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 - copy command
 +
* PIP NEWCOPY.EXT=COPYFROM.EXT - Copy from COPYFROM.EXT to NEWCOPY.EXT
 +
*  Drive references A:
 +
** Drives go from A-???
 +
* LS is a better direction program
 +
 +
=== 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 ===
 +
 +
* 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>
  
 
== Z80 ==
 
== Z80 ==
Line 32: Line 126:
 
[[File:Z80_P865-cropped-720px.jpg]]
 
[[File:Z80_P865-cropped-720px.jpg]]
  
=== Links ===
+
== Our Retro-Computer Projects ==
 +
 
 +
* Land Boards [[EP2C5-DB]] FPGA Retro-Computer card
 +
** Duplicates Grant Searle's design down to the pin maps
 +
* Land Boards [[BASE-EP4CE6]] card is a breakout board that connects via cables to the Land Boards EP2C5-DB card
 +
** The Land Boards [[EP2C5-DB]] card adds extra logic and RAM resources beyond the EP2C5 FPGA
 +
*** Provides 16K of Internal SRAM
 +
** Wiring is here
 +
* Purchased EP4 FPGA card
 +
** Includes VGA, PS/2 and USB-Serial converter
 +
** Other I/O is serious limitation but a 16K retro machine without SD Card storage can easily be built
 +
* Land Boards [[RETRO-EP4]]
 +
 
 +
== Our Retro-Computer Video Series ==
 +
 
 +
=== EP2 Video Series ===
 +
 
 +
[https://www.youtube.com/playlist?list=PLn__0BqzWEWMcUgzBroNNJYQP1keD--gu Video Series]
 +
 
 +
=== EP4 Video Series ===
 +
 
 +
== S120 Bus Computer ==
 +
 
 +
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 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
 +
 
 +
== 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]
 +
 
 +
=== 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.hostei.com/grant/uk101FPGA/index.html CompuKit UK101]
 +
** Based on Cyclone II EP2C5 Mini Dev Board
 +
** Someone built one of the CompuKit clones as a CPM box
 +
* Compukit 101 video
 +
 
 +
== 6502 Computer Projects ==
 +
 
 +
* [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
 +
 
 +
== DEC (Digital Equipment Corp) Computers ==
 +
 
 +
* [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]
 +
* [http://opencores.org/project,pdp8 PDP-8 Processor Core and System :: Overview]
 +
* [http://homepage.divms.uiowa.edu/~jones/pdp8/man/mri.html The Digital Equipment Corporation PDP-8 - Memory Reference Instructions]
 +
* [https://wfjm.github.io/home/w11/ PDP-11 in VHDL]
 +
* [http://simh.trailing-edge.com/ Computer Simulation and History]
 +
 
 +
== External Sites ==
 +
 
 +
=== 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
 +
My implementation of Grant's small serial terminal design.
 +
 
 +
[[File:SerialTerminal-P1010506-720px.jpg]]
 +
 
 +
=== RetroBrew Computers Site ===
  
 +
* [https://www.retrobrewcomputers.org/forum/index.php RetroBrew Computers Forum]
 +
* [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]
 
* [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 19:08, 19 January 2020

Multicomp FPGA Retrocomputer Builds

RETRO-EP4 FPGA

RETRO-EP4 TOP BOTTOM-720px.jpg

RETRO-EP4CE15 FPGA

RETRO-EP4CE15 3D.jpg

EP2C5-DB FPGA

EP2C5-DB RevX6 720px-rot.png

Grant Searle's FPGA MultiComputer Project(s)

Retro-Computer Map EP2 to EP4 card

  • Map EP2 to EP4 card

My Build of the Z80 Version

CPM-2UARTs-NoVideo.PNG

Retrobrew Computer Builds of the Multicomp Project(s)

Neil Crook Builds of the Multicomp Project - 6809 Version

Neil started from Grant Searle's work and fixed a number of issue with the VHDL code.

CP/M Resources on the Net

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 - copy command
  • PIP NEWCOPY.EXT=COPYFROM.EXT - Copy from COPYFROM.EXT to NEWCOPY.EXT
  • Drive references A:
    • Drives go from A-???
  • LS is a better direction program

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

  • 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.

Z80

Z80 P865-cropped-720px.jpg

Our Retro-Computer Projects

  • Land Boards EP2C5-DB FPGA Retro-Computer card
    • Duplicates Grant Searle's design down to the pin maps
  • Land Boards BASE-EP4CE6 card is a breakout board that connects via cables to the Land Boards EP2C5-DB card
    • The Land Boards EP2C5-DB card adds extra logic and RAM resources beyond the EP2C5 FPGA
      • Provides 16K of Internal SRAM
    • Wiring is here
  • Purchased EP4 FPGA card
    • Includes VGA, PS/2 and USB-Serial converter
    • Other I/O is serious limitation but a 16K retro machine without SD Card storage can easily be built
  • Land Boards RETRO-EP4

Our Retro-Computer Video Series

EP2 Video Series

Video Series

EP4 Video Series

S120 Bus Computer

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 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

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

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.

  • EP2C5-DB - Our creation of a daughtercard which implements Grant Searle's Multi-Computer
  • CompuKit UK101
    • Based on Cyclone II EP2C5 Mini Dev Board
    • Someone built one of the CompuKit clones as a CPM box
  • Compukit 101 video

6502 Computer Projects

DEC (Digital Equipment Corp) Computers

External Sites

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 My implementation of Grant's small serial terminal design.

SerialTerminal-P1010506-720px.jpg

RetroBrew Computers Site