Difference between revisions of "RetroComputers"

From Land Boards Wiki
Jump to navigation Jump to search
Line 272: Line 272:
  
 
* [https://github.com/EtchedPixels/FUZIX FUZIX]
 
* [https://github.com/EtchedPixels/FUZIX FUZIX]
 +
 +
== 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 ===
 +
 +
<video type="youtube">OdtYN3vPu_E</video>
 +
 +
[[File:Z80_P865-cropped-720px.jpg]]
 +
 +
* [https://hackaday.io/project/167711-3-chip-z80-design Hackaday Z80 in 3 Chips]
 +
** 512KB SRAM
 +
* [[Front Panel For 8 Bit Computers]]
 +
* [[Z80 in 3 Chips]]
 +
* [[SD_CARD_X49]] mounted on [[CARRIER95TO49MM]]
 +
* [[JOYPAD]]
 +
* [https://www.retrobrewcomputers.org/doku.php?id=builderpages:rhkoolstar:sbc-2g-512 rhkoolstar sbc-2g-512] - SD card image
 +
** [https://github.com/douggilliland/Retro-Computers/tree/master/Z80/Reference_Designs/MC-2G-512%20(SBC2.0%20by%20koolstar) Archive of rhkoolstar sbc-2g-512]
 +
 +
=== Z80 NASCOM BASIC (in FPGA) ===
 +
 +
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_A_ESTF_V2_EP4CE22/Z80-BASIC-VGA-PS2-IntRAM(48K) Build on A-ESTF V2 EP4CE22 card]
 +
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_Cyclone%20IV%20VGA%20Card/Z80_VGA_PS2_UART_16K Build on zrTech v2 card]
 +
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP4CE10/Z80_VGA_PS2_UART_32K Build on EP4CE10 card]
 +
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP4CE6/Z80_VGA_PS2_UART_16K Build on EP4CE6 card]
 +
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_RETRO-EP4/Z80-CPM-VGA-PS2-128KRAM Build on EP4CE6 card] (RETRO-EP4)
 +
 +
==== NASCOM BASIC Notes ====
 +
 +
* OUT ADDR,DATA
 +
* INP(128) - Reads I/O address 128 (0x80)
 +
 +
=== Z80 CP/M (in FPGA) ===
 +
 +
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_RETRO-EP4CE15/Z80-CPM-VGA-PS2-64KRAM Build on EP4CE15 card]
 +
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/Z80-CPM-VGA-PS2-128KRAM Build on EP2C5 card]
 +
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/Z80-CPM-VGA-PS2-ExtRAM Build on EP2C5 card]
 +
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_RETRO-EP4/Z80-CPM-VGA-PS2-128KRAM Build on EP4CE6 card] (RETRO-EP4)
 +
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_RETRO-EP4CE15/Z80-CPM-VGA-PS2-64KRAM Build on EP4CE15 card]
 +
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_RETRO-EP4CE15_Cyclone_V/Multicomp-MPM Build on Cyclone V card] (MPM)
 +
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_RETRO-EP4CE15_Cyclone_V_InBox/Multicomp-MPM Build on Cyclone V card] (MPM) in a box
 +
 +
==== CP/M on FPGA - by Grant Searle ====
 +
 +
* [https://web.archive.org/web/20180221182529/searle.hostei.com/grant/ Archive.org copy of Grant's site from 2012]
 +
* [http://web.archive.org/web/20190526035522/https://web.archive.org/web/20180221064620/http://searle.hostei.com:80/grant/Multicomp/index.html Archive.org copy of Grant's Multicomp from 2012]
 +
* Fit results (EP2C5 FPGA)
 +
** Two UART Serial interface
 +
** No Video Display
 +
** External RAM
 +
 +
==== 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 ====
 +
 +
* [http://www.cpm.z80.de/manuals/cpm22-m.pdf CP/M Operating System Manual]
 +
* [http://www.digitalresearch.biz/CPM.HTM Digital Research CP/M Site]
 +
* [http://landley.net/history/mirror/cpm/history.html A Short History of CP/M]
 +
* [https://obsolescence.wixsite.com/obsolescence/cpm-internals CP/M Internals]
 +
* [http://primrosebank.net/computers/cpm/cpm_commands.htm CP/M Console Command Processor Instructions]
 +
* [http://oak.oakland.edu/oak/cpm/index-cpm-pre.html OAK Repository - CP/M Archive - On the Wayback machine]
 +
* [http://www.smbaker.com/intro-to-z80-retrocomputing Intro to Z80 Retrocomputing - Scott Baker's series on the RC2014]
 +
* [http://www.cpm.z80.de/source.html Digital Research Source Code]
 +
* [http://www.retroarchive.org/cpm/lang/lang.htm CP/M Programming Languages and Tools retroarchive page]
 +
** [http://www.classiccmp.org/cpmarchives/cpm/mirrors/www.retroarchive.org/cpm/lang/lang.htm retroarchive page - mirror]
 +
* [http://obsolescence.wixsite.com/obsolescence/multicomp-fpga-cpm-demo-disk Multicomp FPGA - CP/M Demo Disk]
 +
* [http://www.bbcbasic.co.uk/bbcbasic/z80basic.html BBC BASIC (Z80)]
 +
** [http://www.bbcbasic.co.uk/bbcbasic/mancpm/index.html BBC BASIC (Z80) Manual]
 +
<pre>
 +
*BYE- Return to CP/M
 +
</pre>
 +
* [https://altairclone.com/downloads/?fbclid=IwAR3BeIol8GOBKRSC6cB8lDMFSErRYjjmNtC4RQ3YpStdjeaSu-CLSTuLz5I Altair downloads]
 +
 +
[[File:CPM-2UARTs-NoVideo.PNG]]
 +
 +
* Grant noted about the SD card interface:
 +
<pre>
 +
... 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.
 +
</pre>
 +
 +
==== 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
 +
* [https://archive.org/details/bitsavers_manxAztecC_11703326 Aztec C Compiler Manual]
 +
** C Vers. 1.06D 8080  (C) 1982 1983 1984 by Manx Software Systems
 +
* Example Code - HELLO2.C
 +
<pre>
 +
int main()
 +
{
 +
  int i;
 +
  for (i=0; i< 10; i++)
 +
    printf("%d\n");
 +
}
 +
</pre>
 +
 +
* Compile code to assembly file
 +
** Creates a .ASM file
 +
<pre>
 +
CC HELLO2.C
 +
</pre>
 +
 +
* Assemble Code to object file
 +
** Creates a .O file
 +
<pre>
 +
AS HELLO2.ASM
 +
</pre>
 +
 +
* Link Code with C library to .COM executable file
 +
<pre>
 +
LN HELLO2.O C.LIB
 +
</pre>
 +
 +
<video type="youtube">wQY2VUV8MDQ</video>
 +
 +
==== ALGOL-M Compiler ====
 +
 +
* Fizzbuzz example
 +
 +
<pre>
 +
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
 +
</pre>
 +
* To run compiler:
 +
<pre>
 +
algolm fizzbuzz
 +
 +
</pre>
 +
* Result is:
 +
<pre>
 +
ALGOL-M COMPILER VERS 1.1
 +
  0 ERROR(S) DETECTED
 +
</pre>
 +
* To run ALGOL interpreter
 +
<pre>
 +
runalg fizzbuzz
 +
</pre>
 +
* Result is
 +
<pre>
 +
ALGOL-M INTERPRETER-VERS 1.0
 +
 +
 +
    1
 +
    2
 +
Fizz
 +
    4
 +
Buzz
 +
Fizz
 +
    7
 +
    8
 +
</pre>
 +
 +
=== Z80 Multi-OS (in FPGA) ===
 +
 +
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_RETRO-EP4CE15_Cyclone_V/Multicomp-MPM Build on Cyclone V card] (MPM)
 +
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_RETRO-EP4CE15_Cyclone_V_InBox/Multicomp-MPM Build on Cyclone V card] (MPM) in a box
 +
 +
==== Retrobrew Multi-boot Multicomp Computer Builds ====
 +
 +
* [https://www.retrobrewcomputers.org/doku.php?id=builderpages:rhkoolstar:mc-2g-1024 MultiComputerZ80 build] - Lots of extras - [https://github.com/douggilliland/Retro-Computers/tree/master/Z80/Reference_Designs/MC-2G-1024 mc-2g-1024 Help file]
 +
* [https://retrobrewcomputers.org/doku.php?id=builderpages:muellerk:start Multicomp Z80 with b/w Graphics - muellerk page]
 +
* [https://retrobrewcomputers.org/doku.php?id=builderpages:rhkoolstar:mc-2g-1024 mc-2g-1024 Image18 - Multiboot SD card]
 +
 +
==== mc-2g-1024 Images ====
 +
 +
* Copy image System18.img to your SD-card. Use direct imaging software (dd in Linux, Win32DiskImager in Windows). Copy to the start of the card
 +
** [https://github.com/douggilliland/Retro-Computers/tree/master/Z80/Reference_Designs/MC-2G-1024%20(Multicomp%20by%20koolstar) rhkoolstar mc-2g-1024 is backed up here]
 +
* [https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:rhkoolstar:mc-2g-1024.zip Included OSs] are
 +
** Type '''Snnn''' to select OS at multiboot
 +
** S001 - Dos+ 2.5  Copyright 1986 (c) by [http://web.archive.org/web/20080430103646/http://cbfalconer.home.att.net/download/index.htm C.B. Falconer], CCP+ Ver. 2.2  (CP/M 2.2 compatible)
 +
** S002 - [https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/CPM%202.2%20manual.pdf CP/M 2.2] (c) 1979 by Digital Research
 +
** S003 - [http://www.cpm.z80.de/manuals/cpm3-usr.pdf CP/M Version 3.0] BIOS (2016/9/13)
 +
*** [http://www.cpm.z80.de/manuals/cpm3-sys.pdf CP/M Version 3.0 Operating System System Guide]
 +
** S004 - [https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/MPM_II_2.1_Release_Notes_1982.pdf MP/M II V2.1]
 +
** S005 - [http://searle.wales/z80/SimpleZ80.html Z80 BASIC Ver 4.7b], Copyright (C) 1978 by Microsoft
 +
** S006 - [https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/zsdos.pdf ZSDOS v1.1] (c) 1986-8 Harold F. Bower & Cameron W. Cotrill, ZCPR2 (c) 1982 by Richard Conn (CP/M 2.2 compatible)
 +
** S007 - [https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/zcpr3_the_manual.pdf ZCPR compatible system] for CP/M+ (CP/M 3.0) by Simeon Cran
 +
 +
* Additional Volumes
 +
** Inspired by mc-2g-1024 original but modified
 +
** [https://obsolescence.wixsite.com/obsolescence/multicomp-fpga-cpm-demo-disk Sources from here]
 +
** Mount using mount d vol
 +
*** Ex: mount b: 9 will mount ZCPR3 Utilities A-O as drive b:
 +
** Volume.008 - ?
 +
** Volume.009 - [https://github.com/douggilliland/MultiComp/blob/master/MultiComp_On_RETRO-EP4CE15/Multicomp-MPM/ZCPR3_Utilities_A_O.txt ZCPR3 Utilities A-O]
 +
** Volume.010 - [https://github.com/douggilliland/MultiComp/blob/master/MultiComp_On_RETRO-EP4CE15/Multicomp-MPM/ZCPR3_Utilities_P_Z.txt ZCPR3 Utilities P-Z]
 +
** Volume.011 - [https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/Wordstar_3.3_Reference_Manual_1983.pdf Wordstar], [https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/dBASE_II_Users_Guide_Feb83.pdf DBase], SuperCal
 +
** Volume.012 - Games
 +
** Volume.013 - [https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/MuMath_and_MuSimp_1980_Soft_Warehouse_text.pdf MuMath]
 +
** Volume.014 - Documentation
 +
** Volume.015 - Languages ([https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/TURBO_Pascal_Reference_Manual_CPM_Version_3_Dec88.pdf TurboPascal], [https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/Microsoft_FORTRAN-80_Ver3.4_Users_Manual_Nov80.pdf Fortran], [https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/BBC%20Basic%20(Z80).pdf BBC  BASIC])
 +
** Volume.016 - Languages ([https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/Algol%20M%20Language%20Description.pdf Algol], [https://github.com/douggilliland/Retro-Computers/blob/master/Z80/Software/Manuals/Aztec_C_1.06_User_Manual_Mar84.pdf Aztec C], APL, PLI, FORTH)
 +
** Volume.017 - Languages (BDS Tiny C, Janis Ada15, MS COBOL, PILOT)
 +
** Volume.018-253 - User volumes
 +
 +
==== Retrobrew Computer Builds of the Multicomp Project(s) ====
 +
 +
* [https://retrobrewcomputers.org/doku.php?id=builderpages:muellerk:start Multi-boot Multicomp build by muellerk] builds on [https://retrobrewcomputers.org/doku.php?id=builderpages:rhkoolstar:mc-2g-1024 Multi-boot Multicomp build by rhkoolstar]
 +
* [https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:multicomp:cycloneii-c:start Some folks made a MultiComputer PCB, too] - Retrobrewing
 +
* [https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:multicomp:cycloneii-b:start Another board]
 +
* [https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:multicomp:papilio-duo:start Yet another board]
 +
* [http://jeelabs.org/book/1550b/ Jeelabs Building a MultiComp-based Z80]
 +
* [http://jefftranter.blogspot.com/2014/03/wordstar-30-on-briel-altair-8800.html?_sm_au_=iVV6N35rsLV27ts2 Patch WordStar 3.0 to use ANSI screen commands]
 +
* [https://www.youtube.com/watch?v=98uVpNQ9Gb8 Homebrew Z80]
 +
* [https://hackaday.io/project/163683-the-thing-fpga-stm32 "The Thing": FPGA + STM32]
 +
 +
==== Notes ====
 +
 +
* [https://stardot.org.uk/forums/viewtopic.php?f=3&t=15464&sid=5178dde921ab9b2a60aef4ebd9eec115 Z80 Protocol Decoder]
 +
* [[mc-2g-102|Z80 = mc-2g-1024]] - Best build
 +
* [https://archive.org/search.php?query=z80%20assembly%20language Z80 Assembly Language books] - archive.org
 +
 +
=== Z80-MBC2 Build ===
 +
 +
[[FILE:Z80-MBC2_P586-720PX.jpg]]
 +
 +
<video type="youtube">bMvzl_BG__Y</video>
 +
 +
[[Z80-MBC2 Build Notes]]
 +
 +
* On card
 +
** Z80 CPU CMOS (Z84C00) 8Mhz or greater - I used 20 MHz
 +
** Atmega32A
 +
** TC551001-70 (128kB RAM)
 +
** I used [https://www.mouser.com/ProductDetail/913-AS6C1008-55PIN AS6C1008-55PIN] since it is available on Mouser and Digikey
 +
** 74HC00
 +
* I added the optional MCP23017 for GPIO
 +
* External cards
 +
** External RTC
 +
** External [[SD_CARD_X49|SD card]]
 +
*** Runs [http://elm-chan.org/fsw/ff/00index_p.html Petit FAT File System] - Loads FAT32 SD cards loaded in Windows
 +
** External [[FTDI-49MM|USB-Serial adapter]]
 +
** [[SWLEDX8]] - LEDs card
 +
*** Custom wiring, no slide switches
 +
* Bare Board on [https://www.ebay.com/itm/283494335966 ebay] - $8 shipping included
 +
** Arrived in a couple of days
 +
* [https://shop.mcjohn.it/en/diy-kit/22-32-kit-z80-mbc2.html?fbclid=IwAR2mc4a3d5IGYbq0945f0hu_5yQvw1bfT2zyRsTPyjsPqANPG6FCdIBOr7c Kit for sale]
 +
* [https://www.amazon.com/gp/product/B07SW4RQBQ/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1 Enclosure]
  
 
== 68000 CPU ==
 
== 68000 CPU ==

Revision as of 14:03, 18 April 2022

Tindie-mediums.png

Contents

Grant Searle's FPGA MultiComp Project

FPGA Recreations of 6502, 6809, Z80, and Z80 Vintage Computers

Other Links

Our MultiComp Retro-Computer Video Series

Cyclone II Video Series

Video Series

Cyclone IV Video Series

Video Series

6800 CPU

S120 Bus Computer

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

  • 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

M6800_MIKBUG - Builds

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

6502 CPU

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.

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

Other Docs

FLEX Operating System
FUZIX Operating System

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

Various 68000 builds

TG68_AMR Design

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

TS2 design with Multicomp parts

TS2 Links

68000 Software

Other People's 68000 Builds

RISC V CPU

BASIC

DEC (Digital Equipment Corp) Computers

PDP-4

PDP-8

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

My 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

My PDP-11 (pdp2011) FPGA builds

Other PDP-11 FPGA builds

PDP-11 Software

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

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