Difference between revisions of "RetroComputers"

From Land Boards Wiki
Jump to navigation Jump to search
Line 636: Line 636:
 
* [http://simh.trailing-edge.com/ Computer Simulation and History]
 
* [http://simh.trailing-edge.com/ Computer Simulation and History]
 
* [http://www.retrotechnology.com/herbs_stuff/dec.html Herb's DEC items]
 
* [http://www.retrotechnology.com/herbs_stuff/dec.html Herb's DEC items]
 +
 +
== 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
  
 
== External Sites ==
 
== External Sites ==

Revision as of 14:40, 16 August 2020

Tindie-mediums.png

Contents

Our Retro-Computer Projects

MultiComp On EP2C5

P1743-720PX.jpg

MultiComp On RETRO-EP4

RETRO-EP4 TOP BOTTOM-720px.jpg

MultiComp On RETRO-EP4CE15

P981-720px.jpg

MultiComp On BASE-EP4CE6

BASE-EP4CE6-800pxV-197.jpg

Purchased FPGA Cards

MultiComp On A4-CE6 Card

P1715-CROPPED-720PX.jpg

Features for MultiComp Use

  • Enough Internal SRAM to make small (16KB) BASIC computers
  • Includes VGA, PS/2 and CH340 USB-Serial converter
  • A lot of I/O (26 pins) which can be easily accessed using EP4 FPGA BREAKOUT
  • LCD Display connector with additional I/O

Limitations on MultiComp compatibility

  • No native SD Card storage but could be built using EP4 FPGA BREAKOUT and SD CARD X49
  • 1:1:1 video does not support 2:2:2 (bold characters under ANSI terminal)
  • Serial Hardware handshake with a small rework to the card (2 wires)

Additional Features

  • 8 Digit 7 Segment Display
  • 8 position DIP switch
  • 3 User pushbuttons, 1 DEV-OE pushbutton, 1 nCONFIG pushbutton
  • 12 "Ring" LEDs - 2 removed and used for hardware handshake rework
  • 24C04 I2C EEPROM

MultiComp On A4-CE10 Card

P1715-CROPPED-720PX.jpg

Features for MultiComp Use

  • Enough Internal SRAM to make small (32KB) BASIC computers
  • Includes 5:6:5 VGA, PS/2 and CH340 USB-Serial converter
  • A lot of I/O (26 pins) which can be easily accessed using EP4 FPGA BREAKOUT
  • LCD Display connector with additional I/O

Limitations on MultiComp compatibility

  • No native SD Card storage but could be built using EP4 FPGA BREAKOUT and SD CARD X49
  • 1:1:1 video does not support 2:2:2 (bold characters under ANSI terminal)
  • Serial Hardware handshake with a small rework to the card (2 wires)

Additional Features

  • 8 Digit 7 Segment Display
  • 8 position DIP switch
  • 3 User pushbuttons, 1 DEV-OE pushbutton, 1 nCONFIG pushbutton
  • 12 "Ring" LEDs - 2 removed and used for hardware handshake rework
  • 24C04 I2C EEPROM

MultiComp On A_ESTF_V2_EP4CE22 Card

A-ESTF 001 720px.jpg

Features for MultiComp Use

  • Includes VGA, PS/2 and USB-Serial converter
  • A lot internal SRAM (up to 56KB)
  • MicroSD card socket with card detect LED

Limitations on MultiComp compatibility

  • No external SRAM but very large SDRAM
  • A lot of I/O options
  • Not widely available
  • Has no USB-Serial Interface (has RS-232)

Additional Features

  • A lot of I/O pins on the base board and on the FPGA board
  • Eight 7 Segment Displays
  • 3x3 matrix of pushbutton switches
  • 3 user pushbutton switches on baseboard
  • 3 user pushbutton switches on FPGA board
  • Buzzer
  • IR receiver
  • Power switch
  • 24C02 I2C EEPROM
  • 8 position DIP Switch

MultiComp On ZrTech Cyclone IV FPGA Card

C4 Dev 687-720px.jpg

Features for MultiComp Use

  • Includes VGA, PS/2 and USB-Serial converter
  • Enough Internal SRAM to make small (16KB) BASIC computers

Limitations on MultiComp compatibility

  • Very limited I/O
    • Most of the I/O pins are shared with the 16-bit Video
    • Would require removing R-packs to gain I/O
  • Driver for USB-Serial doesn't work under Windows 10 (painful workaround)
  • No SD Card storage
  • No external SRAM but very large SDRAM (not supported yet in our builds)
  • Would require a mod for serial hardware handshake (there's a pin or two free on the I/O which could at least do RTS)

Additional Features

  • On/Off switch - nicer than plugging/unplugging DC power cable
  • 4 pushbuttons
  • Four digit 7 Segment Display
  • IR LED
  • Buzzer
  • A/D with SMA connector

Additional FPGA Support Cards

These cards provide some of the missing functionality of the purchased FPGA card.

EP4 FPGA BREAKOUT

EPXX-GVS-720px.JPG

VGAX49

VGAX49 P901-cropped-720px.jpg

  • VGAX49 Wiki page
  • Digital VGA adapter
  • 16-bit digital video
    • 5:6:5 (R:G:B) mapping (maximum)
    • 2:2:2 (R:G:B) mapping (option)

SD CARD X49

SDCARDX49 P935 cropped-512px.jpg

  • SD CARD X49 Wiki page
  • SD or SDHC card adapter
  • 5V to 3.3V regulator
  • 3.3V to 5V TXS0104E level shifter
  • Activity LED

TinyPS2

TinyPS2 P899 cropped-720px.jpg

  • TinyPS2 Wiki page
  • PS/2 keyboard or mouse to TTL Level Serial converter
  • ATTiny85
  • 115,200 baud
  • 49x49mm ODAS form factor
  • 4-40 mounting holes

FTDI-49MM

FTDI-P1746-CROPPED-720PX.jpg

  • FTDI-49MM Wiki page
  • FTDI FT230X IC
  • USB B connector (not micro or mini, but the beefy USB B connector)
  • FTDI compatible pinout
  • 3.3V or 5V selection jumper
  • Header for 5V power distribution
  • Rx and Tx LEDs

Grant Searle's FPGA MultiComputer Project(s)

Multicomp Pages

Our Retro-Computer Video Series

EP2 Video Series

Video Series

EP4 Video Series

Video Series

Z80 CPU

Z80 P865-cropped-720px.jpg

CP/M on FPGA - by Grant Searle

CPM-2UARTs-NoVideo.PNG

Retrobrew Computer Builds of the Multicomp Project(s)

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

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

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.

NASCOM BASIC

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

6502 Computer Projects

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

Keyboard Layout

Opkbd.jpg

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.

6800

  • My first attempt to build a computer was around an MC6800 CPU so it has a soft spot in my heart

M6800_MIKBUG - Tested/Works

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)
    • Runs Tom Pittman's Tiny BASIC
  • 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

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

Software

6809 CPU

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

68000 CPU

Other People's 68000 Builds

BASIC

DEC (Digital Equipment Corp) Computers

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

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

SerialTerminal-P1010506-720px.jpg

RetroBrew Computers Site