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, Z80, and Z80 Vintage Computers

Other Links[edit]

Our MultiComp Retro-Computer Video Series[edit]

Cyclone II Video Series[edit]

Video Series

Cyclone IV Video Series[edit]

Video Series

6800 CPU[edit]

S120 Bus Computer[edit]

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

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

Hardware[edit]

  • M6800 VHDL code from OpenCores

Software[edit]

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

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

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

Software[edit]

Z80 CPU[edit]

Z80 P865-cropped-720px.jpg

Stackup (top to bottom)[edit]

Z80 PSOC P936-CROPPED-720PX.jpg

Z80-MBC2 Build[edit]

Z80-MBC2 Build Notes

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

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

mc-2g-1024 Images[edit]

Retrobrew Computer Builds of the Multicomp Project(s)[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

Z80 Software Development[edit]

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

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)

Notes[edit]

NASCOM BASIC[edit]

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

6502 CPU[edit]

Ohio Scientific SuperBoard II - My first commercial personal computer[edit]

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

Keyboard Layout[edit]

Opkbd.jpg

CC65 - C Compiler for the 6502 and OSI C1P[edit]

SuperBoard II Emulator[edit]

BASIC Programs[edit]

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

SuperBoard II/ Retro-Tech Refresh[edit]

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

6809 CPU[edit]

Our Build[edit]

Neal Crook's build[edit]

Neal started from Grant Searle's Multicomp and fixed a number of issues with the VHDL code.

Other Docs[edit]

68000 CPU[edit]

Various 68000 builds

TG68_AMR Design[edit]

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

TS2 design with Multicomp parts[edit]

TS2 Links[edit]

68000 Software[edit]

Other People's 68000 Builds[edit]

RISC V CPU[edit]

BASIC[edit]

DEC (Digital Equipment Corp) Computers[edit]

PDP-4[edit]

PDP-8[edit]

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

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

OpenCores PDP-8 Build[edit]

Others PDP-8 FPGA[edit]

PDP-8 Documents and Programming[edit]

PiDP-8[edit]

PDP-10[edit]

PDP-11[edit]

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

Other PDP-11 FPGA builds[edit]

PDP-11 Software[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]

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]