Difference between revisions of "RetroComputers"

From Land Boards Wiki
Jump to navigation Jump to search
Line 458: Line 458:
 
== 6502 Computer Projects ==
 
== 6502 Computer Projects ==
  
 +
=== Ohio Scientific SuperBoard II - My first commercial personal computer ===
 +
 +
[[File:Osi-600.jpg]]
 +
 +
[http://oldcomputers.net/osi-600.html 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
 +
* [https://en.wikipedia.org/wiki/Microsoft_BASIC Microsoft BASIC]
 +
* 2K Monitor ROM (CEGMON)
 +
* [https://en.wikipedia.org/wiki/Compukit_UK101 Compkit 101] - British clone of the SuperBoard II
 +
 +
==== Superboard II Documents ====
 +
 +
* [https://en.wikipedia.org/wiki/Compukit_UK101 Dave's OSI Repository] - Lots of scanned documents up there - large file sizes
 +
* [http://web.archive.org/web/20190526035522/http://uk101.sourceforge.net/docs/ Compukit UK101] Docs on Sourceforge]
 +
** [http://uk101.sourceforge.net/docs/pdf/cegmon.pdf CEGMON Users Guide]
 +
** [http://uk101.sourceforge.net/docs/samples.html Sample Programs and Tapes]
 +
* [http://weblog.tetradian.com/2014/03/16/cegmon-a-blast-from-the-past/ CEGMON – a blast from the past]
 +
* [https://github.com/jefftranter/6502 Code for the 6502 microprocessor, mostly for the Replica 1 computer]
 +
* [http://www.technology.niagarac.on.ca/people/mcsele/hobby/ohio-scientific-computers-series-600-challenger-1p-superboard/ Nice page on the C1P/Superboard II]
 +
* [https://www.masswerk.at/6502/6502_instruction_set.html 6502 Instruction Set]
 +
 +
==== Keyboard Layout ====
 +
 +
[[File:opkbd.jpg]]
 +
 +
==== CC65 - C Compiler for the 6502 and OSI C1P ====
 +
 +
* [https://cc65.github.io/doc/osi.html Ohio Scientific-specific information for cc65]
 +
* [https://cc65.github.io/doc/cl65.html cl65 Users Guide]
 +
* [http://cc65.github.io/cc65/ CC65 - C Compiler for the 6502]
 +
* [https://github.com/cc65/wiki/wiki CC65 Wiki]
 +
 +
==== SuperBoard II Emulator ====
 +
 +
* [https://www.pcjs.org/docs/c1pjs/ OSI Challenger 1P (8Kb) with Debugger - JAVA web based emulator]
 +
* [https://www.pcjs.org/devices/c1p/machine/32kb/ OSI Challenger 1P (32Kb) with Disk Support - JAVA web based emulator]
 +
* [https://satoshinm.github.io/blog/180113_stm32_6502_pill_6502_8_bit_6502_cpu_and_6850_acia_emulation_on_the_stm32_blue_pill_to_run_microsoft_basic_from_1977.html pill_6502: 8-bit 6502 CPU and 6850 ACIA emulation on the STM32 blue pill to run Microsoft BASIC from 1977]
 +
 +
==== BASIC Programs ====
 +
 +
<pre>
 +
10 I=1
 +
20 PRINT "HELLO DAVEY"
 +
30 I=I+1
 +
40 IF I < 5 GOTO 20
 +
</pre>
 +
 +
==== 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
 +
* [http://searle.x10host.com/uk101FPGA/index.html Grant Searle's CompuKit UK101]
 +
** Based on Cyclone II EP2C5 Mini Dev Board
 +
** Someone built one of the CompuKit clones as a CPM box
 +
* [https://www.youtube.com/watch?v=aD844aXw9z8  Compukit 101 video]
 +
* [https://archive.org/search.php?query=ohio+scientific Ohio Scientific publications]
 
* [http://www.6502.org/source/monitors/ehbasic/ehbasic.html Enhanced 6502 BASIC]
 
* [http://www.6502.org/source/monitors/ehbasic/ehbasic.html Enhanced 6502 BASIC]
 
** [https://coronax.wordpress.com/tag/basic/ Experience porting Enhanced Basic to a 6502 Computer]
 
** [https://coronax.wordpress.com/tag/basic/ Experience porting Enhanced Basic to a 6502 Computer]

Revision as of 14:16, 16 August 2020

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

[[File: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

  • Wiki page for [1]

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

Multicomp

Grant Searle's FPGA MultiComputer Project(s)

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)

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

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

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