From blwiki
Jump to: navigation, search

Our Retro-Computer Projects

Our Retro-Computer Video Series

EP2 Video Series

Please don't email asking us to sell you a board. We have tried to give Grant Searle some beer money for his hard work. We posted on Grant's Twitter feed with the hope of starting a conversation about this. No response so far. Others report the same from trying to get ahold of Grant. He did post this project publicly with permission for personal use with the only requirement be that he is attributed which we have retained in the source code as he requested. We are not charging for Grant's code in accordance with his licensing.

Video Series

EP4 Video Series

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




srec_cat loop.o -binary -o code.c -C-Array

Z88DK - Z80 Development Kit

zcc +z80 -m -g -s --max-allocs-per-node2000 -SO3 -startup=1 -clib=sdcc_iy z80_pio.c hp_dis_in_brd.c $1.c -o $1 -lm -create-app --c-code-in-asm
    • +z80 is the Generic target
    • -m Generate an output map of the final executable
    • -g Generate a global defc file of the final executable (-g, -gp, -gpf filename)
    • -s Generate a symbol map of the final executable
  • z88dc --help
zcc - Frontend for the z88dk Cross-C Compiler - v13913-9abd768-20190119

Usage: zcc +[target] {options} {files}


-z80-verb             Make the assembler more verbose
-cleanup              (default) Cleanup temporary files
-no-cleanup           Don't cleanup temporary files
-preserve             Don't remove zcc_opt.def at start of run
-create-app           Run appmake on the resulting binary to create emulator usable file
-specs                Print out compiler specs
-compiler             Set the compiler type from the command line (sccz80, sdcc)
-mz80-zxn             Target the zx next z80 cpu
-mz180                Target the z180 cpu
-mr2k                 Target the Rabbit 2000 cpu
-mr3k                 Target the Rabbit 3000 cpu
-crt0                 Override the crt0 assembler file to use
-startuplib           Override STARTUPLIB - compiler base support routines
--no-crt              Link without crt0 file
-pragma-redirect      Redirect a function
-pragma-define        Define the option in zcc_opt.def
-pragma-output        Define the option in zcc_opt.def (same as above)
-pragma-export        Define the option in zcc_opt.def and export as public
-pragma-need          NEED the option in zcc_opt.def
-pragma-bytes         Dump a string of bytes zcc_opt.def
-pragma-include       Process include file containing pragmas
-alias                Define a command line alias
-subtype              Set the target subtype
-clib                 Set the target clib type
-startupoffset        Startup offset value (internal)
-startup              Set the startup type
-zorg                 Set the origin (only certain targets)
-nostdlib             If set ignore INCPATH, STARTUPLIB
-Cm                   Add an option to m4
-Cp                   Add an option to the preprocessor
-Cc                   Add an option to sccz80
-Cg                   Add an option to clang
-Cs                   Add an option to sdcc
-Ca                   Add an option to the assembler
-Cl                   Add an option to the linker
-Co                   Add an option to llvm-opt
-Cv                   Add an option to llvm-cbe
-Cz                   Add an option to appmake
-m4                   Stop after processing m4 files
-clang                Stop after translating .c files to llvm ir
-llvm                 Stop after llvm-cbe generates new .cbe.c files
-E                    Stop after preprocessing files
-R                    Generate relocatable code (deprecated)
--reloc-info          Generate binary file relocation information
-D                    Define a preprocessor option
-U                    Undefine a preprocessor option
-I                    Add an include directory for the preprocessor
-iquote               Add a quoted include path for the preprocessor
-isystem              Add a system include path for the preprocessor
-L                    Add a library search path
-l                    Add a library
-O                    Set the peephole optimiser setting for copt
-SO                   Set the peephole optimiser setting for sdcc-peephole
-h                    Display this text
-v                    Output all commands that are run (-vn suppresses)
-bn                   Set the output file for the linker stage
-vn                   Run the compile stages silently
-c                    Stop after compiling .c .s .asm files to .o files
-a                    Stop after compiling .c .s files to .asm files
-S                    Stop after compiling .c .s files to .asm files
--lstcwd              Paths in .lst files are relative to the current working dir
-x                    Make a library out of source files
--c-code-in-asm       Add C code to .asm files
--opt-code-size       Optimize for code size (sdcc only)
--opt-code-speed      Optimize for code speed (sccz80 only)
-custom-copt-rules    Custom user copy rules
-zopt                 Enable llvm-optimizer (clang only)
-m                    Generate an output map of the final executable
-g                    Generate a global defc file of the final executable (-g, -gp, -gpf filename)
-s                    Generate a symbol map of the final executable
--list                Generate list files
-o                    Set the output files
-set-r2l-by-default   (sccz80) Use r2l calling convention by default

Argument Aliases:

--generic-console    -pragma-redirect:fputc_cons=fputc_cons_generic
--hardware-keyboard  -pragma-redirect:fgetc_cons=fgetc_cons_inkey

Ohio Scientific SuperBoard II - My first commercial personal computer


SuperBoard II

  • Manufacturer: Ohio Scientific
  • 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

CC65 - C Compiler for the 6502 and OSI C1P

SuperBoard II Emulator

BASIC Programs

10 I=1
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.

  • Compukit 101 video

6502 Computer Projects

Grant Searle's FPGA MultiComputer Project(s)

My Build of the Z80 Version


Retrobrew Computer Builds of the Multicomp Project(s)

Neil Crook Builds of the Multicomp Project - 6809 Version

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

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
      • Copies BBCBASIC to B: drive
  • Drive references A:
    • Drives go from A-???
  • LS is a better direction program


BBC BASIC (Z80) Version 3.00
(C) Copyright R.T.Russell 1987

Microsoft BASIC Notes

  • SYSTEM -- Return to CP/M
  • NEW - Delete program
  • OUT 132,1 -- Output to I/O port 132
  • PRINT INP(16)
  • PRINT MEM - Free memory (6809 Extended BASIC)


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.

Amiga Retorcomputing

DEC (Digital Equipment Corp) Computers

18-Bit Family Timeline
1960 PDP-1, Digital Equipment Corporation's first 18-bit computer
1963 PDP-4
1964 PDP-7, uses flip chip modules; used by Ritchie and Thompson to develop UNIX
1966 PDP-9, program compatible with PDP-7

1969 PDP-15 replaces PDP-9
1972 MUMPS-15 (Massachusetts General Hospital
         Utility Microprogramming System), PDP-15 -based timesharing system designed 
         to handle medical records, still in use
1979 PDP-1 with working Spacewar! game installed at
         The Computer Museum, Boston
1988 A PDP-1 system (serial no. 44) is saved from a barn in Wichita, Kansas, 
         and donated to the Digital Historical Collection


There are three known PDP-1 computers in existence. Fifty were originally produced.



External Sites

Grant Searle Terminal Design



RetroBrew Computers Sites