Difference between revisions of "RetroComputers"

From Land Boards Wiki
Jump to navigation Jump to search
 
(22 intermediate revisions by the same user not shown)
Line 46: Line 46:
  
 
[[FILE:SIMPLE-6802_P1090264-720pxV.jpg]]
 
[[FILE:SIMPLE-6802_P1090264-720pxV.jpg]]
 +
 +
=== LB-6802-01 Backplane CPU ===
 +
 +
* [[LB-6802-01]]
  
 
=== 6800 SmithBug Builds ===
 
=== 6800 SmithBug Builds ===
Line 156: Line 160:
 
** MultiComp build of Ohio Scientific SuperBoard II
 
** MultiComp build of Ohio Scientific SuperBoard II
 
** OSI 6502 Build
 
** OSI 6502 Build
 
=== 6502 Bare Metal 6502 CPU ===
 
 
[[file:SIMPLE-6802_P1090264-720pxV.jpg]]
 
  
 
=== Ohio Scientific SuperBoard II ===
 
=== Ohio Scientific SuperBoard II ===
Line 235: Line 235:
 
* [https://archive.org/details/6502-micro-journal Micro 6502 Journal]
 
* [https://archive.org/details/6502-micro-journal Micro 6502 Journal]
 
* [https://github.com/douggilliland/Retro-Computers/tree/master/6502/OSI/ROMs/DABUG DABUG Monitor ROM]
 
* [https://github.com/douggilliland/Retro-Computers/tree/master/6502/OSI/ROMs/DABUG DABUG Monitor ROM]
 +
 +
=== 6502 Bare Metal 6502 CPU ===
 +
 +
* [[SIMPLE-6502]]
 +
 +
[[file:SIMPLE-6802_P1090264-720pxV.jpg]]
 +
 +
=== LB-65CXX-01 Backplane CPU ===
 +
 +
* [[LB-65CXX-01]]
  
 
=== MultiComp 6502 Builds ===
 
=== MultiComp 6502 Builds ===
Line 282: Line 292:
 
== 6809 CPU ==
 
== 6809 CPU ==
  
=== Our Build ===
+
=== Bare Metal 6809 CPU ===
 +
 
 +
* [[SIMPLE-6809]]
 +
 
 +
[[file:SIMPLE-6809_P1090253-720pxV.jpg]]
 +
 
 +
=== LB-6809-01 Backplane CPU Card ===
 +
 
 +
* [[LB-6809-01]]
 +
 
 +
=== Our FPGA Build ===
  
 
<video type="youtube">hHBiFK0d3Y4</video>
 
<video type="youtube">hHBiFK0d3Y4</video>
Line 318: Line 338:
  
 
==== 6809 Assembler ====
 
==== 6809 Assembler ====
 +
 +
* [https://www.6809.org.uk/asm6809/ asm6809 Assembler]
 +
** Run as9 in DOSbox
 +
** Run srec_cat using windows cmd
 +
 +
===== Other Assemblers =====
  
 
* [https://github.com/douggilliland/Retro-Computers/tree/master/6809/M6809_Assembler Motorola 6809 Cross-Assembler]
 
* [https://github.com/douggilliland/Retro-Computers/tree/master/6809/M6809_Assembler Motorola 6809 Cross-Assembler]
* [https://www.6809.org.uk/asm6809/ asm6809 Assembler]
 
 
* [https://www.6809.org.uk/asm6809/doc/asm6809.shtml Assembler User's Manual]
 
* [https://www.6809.org.uk/asm6809/doc/asm6809.shtml Assembler User's Manual]
 
* [http://www.crossware.com/m6809 6809 Assembler for Windows]  - Crossware
 
* [http://www.crossware.com/m6809 6809 Assembler for Windows]  - Crossware
Line 344: Line 369:
 
==== 6809 FORTH ====
 
==== 6809 FORTH ====
  
* [https://github.com/douggilliland/Retro-Computers/tree/master/6809/M6809_Forth ciforth]
+
* [https://github.com/douggilliland/Retro-Computers/tree/master/6809/M6809_Forth M6809 ciforth]
** [https://home.hccnet.nl/a.w.m.van.der.horst/m6809forth.html ci6809 : a 6809 Forth docs]
+
** [https://home.hccnet.nl/a.w.m.van.der.horst/m6809forth.html ci6809: a 6809 Forth docs]
 +
* [https://www.forth.com/starting-forth/ Starting FORTH] - First book of learning FORTH
  
 
==== 6809 FLEX Operating System ====
 
==== 6809 FLEX Operating System ====
Line 363: Line 389:
  
 
* [https://github.com/douggilliland/Retro-Computers/tree/master/6809/assist09 assist09]
 
* [https://github.com/douggilliland/Retro-Computers/tree/master/6809/assist09 assist09]
* [https://github.com/douggilliland/Retro-Computers/tree/master/6809/mondeb https://github.com/douggilliland/Retro-Computers/tree/master/6809/exbasrom exbasrom]
+
* [https://github.com/douggilliland/Retro-Computers/tree/master/6809/mondeb h exbasrom]
* [https://github.com/douggilliland/Retro-Computers/tree/master/6809/wozmon WOZMON ported to 6809
+
* [https://github.com/douggilliland/Retro-Computers/tree/master/6809/wozmon WOZMON ported to 6809]
  
 
==== Other 6809 Docs ====
 
==== Other 6809 Docs ====
  
 
* [https://www.maddes.net/m6809pm/sections.htm MC6809-MC6809E 8-Bit Microprocessor Programming Manual (M6809PM/AD) © Motorola Inc., 1981]
 
* [https://www.maddes.net/m6809pm/sections.htm MC6809-MC6809E 8-Bit Microprocessor Programming Manual (M6809PM/AD) © Motorola Inc., 1981]
* [https://www.forth.com/starting-forth/ Starting FORTH] - First book of learning FORTH
 
 
* [https://archive.org/details/6809_Assembly_Language_Programming_by_Lance_Leventhal 6809 Assembly Language Programming by Lance Leventhal] archive.org
 
* [https://archive.org/details/6809_Assembly_Language_Programming_by_Lance_Leventhal 6809 Assembly Language Programming by Lance Leventhal] archive.org
 
* [http://ccgi.dougrice.plus.com/cgi-bin/wiki.pl?My_Notes_On_6809 Upload ROMs without rebuilding]
 
* [http://ccgi.dougrice.plus.com/cgi-bin/wiki.pl?My_Notes_On_6809 Upload ROMs without rebuilding]
Line 375: Line 400:
 
* [https://obsolescence.wixsite.com/obsolescence/the-6x0x-boards N8VEM 6809 Board]
 
* [https://obsolescence.wixsite.com/obsolescence/the-6x0x-boards N8VEM 6809 Board]
 
* [http://www.msarnoff.org/6809/ ultim809: homebrew 8-bit computer]
 
* [http://www.msarnoff.org/6809/ ultim809: homebrew 8-bit computer]
 +
* [http://6809.uk/ Motorola 6809 Emulator]
  
 
== Z80 CPU ==
 
== Z80 CPU ==
Line 399: Line 425:
 
* [https://www.retrobrewcomputers.org/doku.php?id=builderpages:rhkoolstar:sbc-2g-512 rhkoolstar sbc-2g-512] - SD card image
 
* [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]
 
** [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]
 +
 +
=== Bare Metal Z80 CPU ===
 +
 +
* [[SIMPLE-Z80]]
 +
 +
[[file:SIMPLE-Z80_P1090251-720pxV.jpg]]
 +
 +
=== LB-Z80-01 Backplane CPU Card ===
 +
 +
* [[LB-Z80-01]]
  
 
=== Z80 NASCOM BASIC (in FPGA) ===
 
=== Z80 NASCOM BASIC (in FPGA) ===
Line 668: Line 704:
 
== 68000 CPU ==
 
== 68000 CPU ==
  
* Builds of two platforms
+
* Builds of three platforms
 +
** [[SIMPLE-68008]]
 
** [https://github.com/douggilliland/Retro-Computers/tree/master/68000/TG68_AMR AMR] - CPU with VGA frame buffer from SDRAM and other peripherals
 
** [https://github.com/douggilliland/Retro-Computers/tree/master/68000/TG68_AMR AMR] - CPU with VGA frame buffer from SDRAM and other peripherals
 
** [https://github.com/douggilliland/Retro-Computers/tree/master/68000/TS2_FPGA TS2] - Basic 68K CPU with VGA character display
 
** [https://github.com/douggilliland/Retro-Computers/tree/master/68000/TS2_FPGA TS2] - Basic 68K CPU with VGA character display
 +
 +
=== Bare Metal 68008 CPU ===
 +
 +
* [[SIMPLE-68008]]
 +
 +
[[file:SIMPLE-68008_P475-720px.jpg]]
  
 
=== TG68_AMR Design ===
 
=== TG68_AMR Design ===

Latest revision as of 13:03, 11 October 2024

Tindie-mediums.png

Contents

Grant Searle's FPGA MultiComp Project

FPGA Recreations of 6502, 6809, and Z80 Vintage Computers

Our MultiComp Retro-Computer Video Series

Cyclone II Video Series

Video Series

Cyclone IV Video Series

Video Series

6800 CPU

My First Computer Build

My first attempt to build a computer was way back in 1977 (before my Ohio Scientific SuperBoard II). The homebrewed computer based on an MC6800 CPU so the CPU has a soft spot in my heart. I never took any pictures of it and the hardware is long gone now. These are the pieces of it I remember.

  • Elco? 120 pin edge connector wire wrapped cards with homebrew backplane
  • 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 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. I didn't have an assembler so I have assembled code to machine code.

It might be fun to reproduce that board!

Bare Metal 6802

SIMPLE-6802 P1090264-720pxV.jpg

LB-6802-01 Backplane CPU

6800 SmithBug Builds

This MultiComp build fills a hole in Grant Searle's Multicomp (he hadn't finished a 6800 version).

It also completes the project I started back in 1977 with a lot of built-in features I could never have imagined back in the day.

Memory Map (60KB SRAM version)

  • $0000-$EFFF - Up to 60KB external SRAM
    • $0000-$EEFF - User RAM area
      • $EF00-$EFFF - Scratchpad RAM used by MIKBUG
  • I/O Map
    • $FC18-$FC19 - VDU
    • $FC28-$FC29 - ACIA
      • J3 right side position - PIN_B22 (EP4CE15) of the FPGA swaps addresses of VDU and ACIA port
      • Installed (PIN_B22 to Ground) uses ACIA Serial port
      • Removed uses VDU
  • $F000-$FFFF - SmithBUG ROM
    • I/O "hole" opened up at 0xFC00-0xFCFF

6800 with Front Panel Running SmithBug

FrontPanel-01-Front-3D-controls.png

6800 FIG-Forth Builds

6800 FIG-Forth Reference

SWTPC

  • Memory map (Hexadecimal Addresses):
    • 0000-7FFF: RAM
    • 8004-8007: MC6850 ACIA (UART)
    • A000-DFFF: RAM
    • E000-FFFF: SWTBUG Monitor ROM (visible on every 1 k memory location)
  • Emulated components:
    • Motorola MC6800 CPU (SWTPC mp-a)
    • Motorola MC6850 UART (SWTPC mp-s)
    • 48k RAM

6800 Software Development Tools

6502 CPU

  • Several builds
    • My original Ohio Scientific SuperBoard II
    • MultiComp build of Ohio Scientific SuperBoard II
    • OSI 6502 Build

Ohio Scientific SuperBoard II

This was my first commercial personal computer.

Osi-600.jpg

  • 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 Model 610 24KB 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 Emulator

Keyboard Layout

OSI C1P cropped.jpg

Opkbd.jpg

UK101 KBD ARRAY.PNG

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
  • Grant Searle's CompuKit UK101
    • Based on Cyclone II EP2C5 Mini Dev Board
    • Someone built one of the CompuKit clones as a CPM box

Superboard II Documents

6502 Bare Metal 6502 CPU

SIMPLE-6802 P1090264-720pxV.jpg

LB-65CXX-01 Backplane CPU

MultiComp 6502 Builds

  • Two Builds
    • OSI C1P/SuperBoard II/UK10
    • OSI 6502

OSI C1P/SuperBoard II/UK101 Builds

OSI 6502 Builds

6502 Software Development Tools

6809 CPU

Bare Metal 6809 CPU

SIMPLE-6809 P1090253-720pxV.jpg

LB-6809-01 Backplane CPU Card

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

6809 Software Development Tools

6809 Assembler

Other Assemblers

6809 BASIC

6809 C Compiler

6809 FORTH

6809 FLEX Operating System

6809 FUZIX Operating System

6809 Monitors

Other 6809 Docs

Z80 CPU

  • Multiple Z80 Builds
    • Land Boards Z80 in 3 Chips card
    • Z80 NASCOM BASIC (in FPGA)
    • Z80 CP/M (in FPGA)
    • Z80 Multi-OS (in FPGA)
    • Z80-MBC2 Build card

Land Boards Z80 in 3 Chips

Z80 P865-cropped-720px.jpg

Bare Metal Z80 CPU

SIMPLE-Z80 P1090251-720pxV.jpg

LB-Z80-01 Backplane CPU Card

Z80 NASCOM BASIC (in FPGA)

NASCOM BASIC Notes

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

Z80 CP/M (in FPGA)

CP/M on FPGA - by Grant Searle

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

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.

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)

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

Z80 Multi-OS (in FPGA)

Retrobrew Multi-boot Multicomp Computer Builds

mc-2g-1024 Images

Retrobrew Computer Builds of the Multicomp Project(s)

Notes

Z80-MBC2 Build

Z80-MBC2 P586-720PX.jpg

Z80-MBC2 Build Notes

  • On card
    • Z80 CPU CMOS (Z84C00) 8Mhz or greater - I used 20 MHz
    • Atmega32A
    • TC551001-70 (128kB RAM)
    • I used AS6C1008-55PIN since it is available on Mouser and Digikey
    • 74HC00
  • I added the optional MCP23017 for GPIO
  • External cards
  • Bare Board on ebay - $8 shipping included
    • Arrived in a couple of days
  • Kit for sale
  • Enclosure

68000 CPU

  • Builds of three platforms
    • SIMPLE-68008
    • AMR - CPU with VGA frame buffer from SDRAM and other peripherals
    • TS2 - Basic 68K CPU with VGA character display

Bare Metal 68008 CPU

SIMPLE-68008 P475-720px.jpg

TG68_AMR Design

  • TG68 AMR Build
    • 68000 Core
    • SDRAM support
    • VGA Framebuffer
      • Various resolutions
      • Stored in SDRAM
    • PS/2 Keyboard and Mouse support
    • SD Card support
    • *Loads S Records file

TG68_AMR QMTECH Cyclone IV Starter Kit Build

TG68_AMR QMTECH Cyclone IV Build

  • Runs on RETRO-EP4CE15 base card
    • VGA connector
      • 6 bit video (2:2:2)
      • Pixel dithering maps 24-bit video to six bits
    • 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

TeeSide 2 design with Multicomp parts

TeeSide 2 Memory Map

  • 0x000000 - 0x000007 = ROM Vectors (16-bits)
  • 0x000008 - 0x007FFF = SRAM (16-bits)
  • 0x008000 - 0x00BFFF = ROM (16-bits)
  • 0x01004x - VDU base (A0 = 0) (8-bits)
  • 0x01004x - ACIA base (A0 = 1) (8-bits)

TeeSide 2 Monitor ROMs

TeeSide 2 Build on RETRO-EP4CE15 Running TS2 Monitor

TeeSide 2 Build on RETRO-EP4CE15 Running TUTOR Monitor

TeeSide 2 Build on Cyclone V Running TS2 Monitor

TeeSide 2 Build on Cyclone V in Box Running TS2 Monitor

TeeSide 2 Software

TeeSide 2 BASIC
TeeSide 2 C Compiler

TeeSide 2 Assembly
TeeSide 2 Operating Systems
TeeSide 2 FORTH

TeeSide 2 Links

68000 Software

C Compilers

Operating Systems

Other People's 68000 Builds

DEC (Digital Equipment Corp) Computers

PDP-4

PDP-8

PDP-8 FPGA Hardware used

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

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

OpenCores PDP-8 Build

PDP-8 P17546 cropped 720px.jpg

Others PDP-8 FPGA

PDP-8 Documents and Programming

PiDP-8

PDP-10

PDP-11

PDP-11 FrontPanel P512-cropped-720px.jpg

My PDP-11 (pdp2011) FPGA builds

Other PDP-11 FPGA builds

PDP-11 Software

RISC V CPU

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

BASIC

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