RetroComputers

From Land Boards Wiki
Jump to navigation Jump to search

Tindie-mediums.png

Contents

Grant Searle's FPGA MultiComp Project[edit]

FPGA Recreations of 6502, 6809, and Z80 Vintage Computers

Our MultiComp Retro-Computer Video Series[edit]

Cyclone II Video Series[edit]

Video Series

Cyclone IV Video Series[edit]

Video Series

6800 CPU[edit]

My First Computer Build[edit]

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!

6800 SmithBug Builds[edit]

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)[edit]

  • $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[edit]

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

6800 FIG-Forth Builds[edit]

6800 FIG-Forth Reference[edit]

SWTPC[edit]

  • 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[edit]

6502 CPU[edit]

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

Ohio Scientific SuperBoard II[edit]

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[edit]

Keyboard Layout[edit]

OSI C1P cropped.jpg

Opkbd.jpg

UK101 KBD ARRAY.PNG

SuperBoard II/ Retro-Tech Refresh[edit]

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[edit]

MultiComp 6502 Builds[edit]

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

OSI C1P/SuperBoard II/UK101 Builds[edit]

OSI 6502 Builds[edit]

6502 Software Development Tools[edit]

6809 CPU[edit]

Our Build[edit]

Neal Crook's 6809 Multiple OS Build[edit]

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[edit]

SD Card[edit]

6809 Software Development Tools[edit]

6809 Assembler[edit]

6809 BASIC[edit]

6809 C Compiler[edit]

6809 FORTH[edit]

6809 FLEX Operating System[edit]

6809 FUZIX Operating System[edit]

6809 Monitors[edit]

Other 6809 Docs[edit]

Z80 CPU[edit]

  • 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[edit]

Z80 P865-cropped-720px.jpg

Z80 NASCOM BASIC (in FPGA)[edit]

NASCOM BASIC Notes[edit]

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

Z80 CP/M (in FPGA)[edit]

CP/M on FPGA - by Grant Searle[edit]

CP/M Notes[edit]

  • 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[edit]

*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[edit]

  • 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[edit]

  • 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[edit]

  • 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)[edit]

Retrobrew Multi-boot Multicomp Computer Builds[edit]

mc-2g-1024 Images[edit]

Retrobrew Computer Builds of the Multicomp Project(s)[edit]

Notes[edit]

Z80-MBC2 Build[edit]

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[edit]

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

TG68_AMR Design[edit]

  • 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[edit]

TG68_AMR QMTECH Cyclone IV Build[edit]

  • 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[edit]

TeeSide 2 design with Multicomp parts[edit]

TeeSide 2 Memory Map[edit]

  • 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[edit]

TeeSide 2 Build on RETRO-EP4CE15 Running TS2 Monitor[edit]

TeeSide 2 Build on RETRO-EP4CE15 Running TUTOR Monitor[edit]

TeeSide 2 Build on Cyclone V Running TS2 Monitor[edit]

TeeSide 2 Build on Cyclone V in Box Running TS2 Monitor[edit]

TeeSide 2 Software[edit]

TeeSide 2 BASIC[edit]
TeeSide 2 C Compiler[edit]

TeeSide 2 Assembly[edit]
TeeSide 2 Operating Systems[edit]
TeeSide 2 FORTH[edit]

TeeSide 2 Links[edit]

68000 Software[edit]

C Compilers[edit]

Operating Systems[edit]

Other People's 68000 Builds[edit]

DEC (Digital Equipment Corp) Computers[edit]

PDP-4[edit]

PDP-8[edit]

PDP-8 FPGA Hardware used[edit]

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

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

OpenCores PDP-8 Build[edit]

PDP-8 P17546 cropped 720px.jpg

Others PDP-8 FPGA[edit]

PDP-8 Documents and Programming[edit]

PiDP-8[edit]

PDP-10[edit]

PDP-11[edit]

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

My PDP-11 (pdp2011) FPGA builds[edit]

Other PDP-11 FPGA builds[edit]

PDP-11 Software[edit]

RISC V CPU[edit]

Terminal[edit]

Grant Searle Terminal Design[edit]

  • 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[edit]

BASIC[edit]

PiGFX[edit]

  • 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[edit]