Difference between revisions of "RetroComputers"

From Land Boards Wiki
Jump to navigation Jump to search
Line 40: Line 40:
  
 
It might be fun to reproduce that board!
 
It might be fun to reproduce that board!
 +
 +
=== Bare Metal 6802 ===
 +
 +
* [[SIMPLE-6802]]
  
 
=== 6800 SmithBug Builds ===
 
=== 6800 SmithBug Builds ===

Revision as of 11:59, 4 September 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

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

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

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

6809 Software Development Tools

6809 Assembler

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

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 two platforms
    • AMR - CPU with VGA frame buffer from SDRAM and other peripherals
    • TS2 - Basic 68K CPU with VGA character display

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