Difference between pages "Multicomp in a Box" and "RetroComputers"

From Land Boards Wiki
(Difference between pages)
Jump to navigation Jump to search
 
 
Line 1: Line 1:
== Features ==
+
[[File:tindie-mediums.png|link=https://www.tindie.com/stores/land_boards/]]
  
* Multicomp - FPGA retrocomputers
+
== Grant Searle's FPGA MultiComp Project ==
** 6502
 
*** OSI BASIC
 
*** UK101 / OSI C1P
 
** 6800
 
*** MIKBUG
 
** 6809
 
*** BASIC
 
*** Beal Crook Multiple OS
 
** Z80
 
*** CP/M (various builds)
 
  
== Enclosure ==
+
FPGA Recreations of 6502, 6809, Z80, and Z80 Vintage Computers
  
* [https://www.amazon.com/gp/product/B07SW4RQBQ/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1 YaeCCC Rectangle Project Enclosure Case Electric Junction Box Blue 170mm x 130mm x 80mm / 6.4" x 4.3" x 2.7"]
+
* [[Multicomp_Hardware|Multicomp on Land Boards Cards]] - Hardware
 +
* [[Multicomp on Purchased Cards]]
 +
* [[FPGA Support Cards]]
 +
* [https://github.com/douggilliland/MultiComp/wiki MultiComp Wiki Page on GitHub]
 +
* [https://github.com/douggilliland/MultiComp Multicomp Github repo]
  
[[FILE:YaeCCC_CASE.PNG]]
+
=== Other Links ===
  
== Card Set ==
+
* [http://zx80.netai.net/grant/Multicomp/index.html Grant Searle's Multicomp page]
 +
* [https://github.com/nealcrook/multicomp6809 Neal Crook's 6809 Multicomp Github]
 +
* [https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:multicomp:start Retrobrewing Multicomp]
 +
* [https://www.retrobrewcomputers.org/doku.php?id=builderpages:rhkoolstar:mc-2g-1024 mc-2g-1024 multi-boot capability]
 +
* [http://www.pldworld.com/_hdl/2/_ip/jekent/system09/index.html System 09 - VHDL 6809 System On a Chip]
 +
* [http://www.smarthome.jigsy.com/fpga Multicomp build on Cyclone IV]
  
* [[RETRO-EP4CE15]] FPGA Baseboard
+
=== Our MultiComp Retro-Computer Video Series ===
* [[QM Tech Cyclone V FPGA Board]]
 
* [[SD CARD X49]]
 
* [[SWLEDX8|Slide switches card]] - Using 4 slide switches
 
* [[DB25-02]] - DB-25
 
* [[PD01|Power Distribution card]]
 
* Reset switch
 
** Mounted to front panel
 
** On FPGA Pin_N16 (J3-6)
 
* [https://www.ebay.com/sch/i.html?_odkw=usb+blaster&_sop=15&LH_BIN=1&LH_FS=1&_osacat=0&_from=R40&_trksid=p2045573.m570.l1311.R2.TR6.TRC1.A0.H1.TRS1&_nkw=usb+blaster+altera&_sacat=0 USB Blaster] - Remove from case - Opening in enclosure to access USB connector
 
  
=== QM Tech Cyclone V FPGA Board Features ===
+
==== Cyclone II Video Series ====
  
* [[QM Tech Cyclone V FPGA Board]]
+
<video type="youtube">7O0njivn-Po</video>
* [https://www.aliexpress.com/item/1000006622149.html?spm=a2g0s.9042311.0.0.3e1f4c4dZLO3HX QMTECH Altera Intel FPGA Core Board Cyclone V CycloneV 5CEFA2F23 SDRAM]
 
** [https://github.com/ChinaQMTECH/CYCLONE_IV_EP4CE15 QMTECH GitHub page]
 
** On-Board FPGA: [https://www.mouser.com/ProductDetail/Intel-Altera/5CEFA2F23I7N?qs=w%252BhYR4jzwbaH%2F206ysv4kw%3D%3D 5CEFA2F23I7N]
 
** On-Board FPGA external crystal frequency: 50MHz
 
** 5CEFA2F23 has rich RAM resource up to 1,760Kb
 
** 5CEFA2F23 has 25K logic cells
 
** On-Board Micron [https://www.mouser.com/ProductDetail/Micron/MT25QL128ABB8ESF-0AUT?qs=wUXugUrL1qwVHvCLqhzg7w%3D%3D MT25QL128A] SPI Flash, 16M bytes for user configuration code
 
** On-Board Winbond 32MB SDRAM, [https://www.mouser.com/ProductDetail/Winbond/W9825G6KH-6?qs=qSfuJ%252Bfl%2Fd4uj%2FIr3zKOng%3D%3D W9825G6KH-6]
 
** On-Board 3.3V power supply for FPGA by using MP2315 wide input range DC/DC
 
** 5CEFA2F23 core board has two 64p, 2.54mm pitch headers for extending 108 user IOs. All 108 user IOs are precisely designed with length matching
 
** 5CEFA2F23 core board has 3 user switches
 
** 5CEFA2F23 core board has 2 user LEDs
 
** 5CEFA2F23 core board has JTAG interface, by using 10p, 2.54mm pitch header
 
** 5CEFA2F23 core board PCB size is: 6.7cm x 8.4cm
 
** Default power source for board is: 1A@5V DC, the DC header type: DC-050, 5.5mmx2.1mm
 
  
== Power ==
+
[https://www.youtube.com/playlist?list=PLn__0BqzWEWMcUgzBroNNJYQP1keD--gu Video Series]
  
* 5V Power comes from the USB
+
==== Cyclone IV Video Series ====
* 3.3V regulator on the [[RETRO-EP4CE15]] Card
 
** H2 pins 2-3 shorted on the [[RETRO-EP4CE15]] card
 
** Set to route 3.3V to the I/O connector
 
  
== Cabling ==
+
[https://www.youtube.com/playlist?list=PLn__0BqzWEWPk0-VW3kEpMNA81sIbhj6n Video Series]
  
=== SD Card ===
+
== 6800 CPU ==
  
* [[SD_CARD_X49|SD Card]]
+
=== S120 Bus Computer ===
* Install J3 on SD Card
 
** Runs card off 3.3V
 
  
{| class="wikitable"
+
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.
! J1 PIN
+
 
! SIGNAL
+
* Ran on Elco? 120 pin edge connector wire wrapped cards
! COLOR
+
* 6800 Processor board running at 1 MHz
! SD PIN
+
* 2K of Static RAM board
! FPGA Pin
+
* 2716 EEPROM board (may have had 4 sockets total, don't recall for sure)
! DIR
+
* Front panel switches and LEDs to enter the address/data (Step/Insert) and blink lights
|-
+
 
| 2
+
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.
| 3.3V
+
 
| ORG
+
It might be fun to reproduce that board!
| 7
+
 
| VREG 3.3V
+
==== Pieces to Reproduce my original S120 Bus Computer ====
| OUT (PWR)
+
 
|-
+
* Michael Holley's SWTPC 6800/6809 documentation collection
| 45
+
* N8VEM RetroComputing Wikipedia page
| sdSCLK
+
* Retrobrew Computers
| GRY
+
* Kim-1 board - Similar concept
| 3
+
 
| L19
+
==== Hardware ====
| OUT
+
 
|-
+
* M6800 VHDL code from OpenCores
| 46
+
 
| sdMISO
+
==== Software ====
| BLU
+
 
| 2
+
* AS68 Cross Assembler
| L18
+
* ASM68C Cross Assembler
| IN
+
* Collection of Assembly Language tools for the M6800
|-
+
* 6800 Basics
| 47
+
* 6800 Assembly Language Programming (pdf) by Lance Leventhal
| sdMOSI
+
* 6800 Instruction Set Cheat Sheet
| WHT
+
 
| 4
+
=== M6800_MIKBUG - Tested/Works ===
| L22
+
 
| OUT
+
<video type="youtube">LxMTCq9kLoc</video>
|-
+
 
| 48
+
[https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6800_MIKBUG_ExtSRAM_MIKBUG_at_F000 This is an FPGA build of something similar to that machine]
| sdCS
+
 
| VIO
+
* Fills a hole in Grant Searle's Multicomp (he hadn't finished a 6800 version)
| 5
+
** Runs [http://www.ittybittycomputers.com/IttyBitty/TinyBasic/ Tom Pittman's Tiny BASIC]
| M22
+
* MC6800 CPU
| OUT
+
* Running MIKBUG from back in the day (SmithBug ACIA version)
|-
+
* 12.5 MHz
| 49
+
* 60K (external) RAM version
| GND
+
* MC6850 ACIA UART
| GRN
+
* Video Display Unit (VDU)
| 1
+
** Color attributes
| GND
+
** XGA 80x25 [https://web.archive.org/web/20180221064620/http://searle.hostei.com/grant/Multicomp/index.html#ANSICodes ANSI character display]
| OUT (PWR)
+
** Extended (256) character set
|-
+
* 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 ===
 +
 
 +
* [http://www.computercloset.org/MITSAltair680.htm MITS Altair 680]
 +
* [http://virtualaltair.com/virtualaltair.com/vac_altair_680b_mainframe.asp Altair 680b Mainframe]
 +
* [http://www.computercloset.org/SWTPC6800.htm SWTPC 6800]
 +
* [http://www.retrotechnology.com/aux/swtp6800.html SWTP 6800 system]
 +
* [https://history-computer.com/ModernComputer/Personal/Sphere1.html Sphere 1 computer History]
 +
* [https://www.mjbauer.biz/DREAM6800.htm DREAM 6800 Archive Site]
 +
* [http://m68k.info/#orgbf262a7 Planet m68k] - News around Motorola 68000 CPU computer systems
 +
 
 +
=== Software ===
 +
 
 +
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_RETRO-EP4/M6800_MIKBUG Muticomp M6800 MIKBUG]
 +
* [http://www.retrotechnology.com/restore/smithbug.html Smithbug, MIKBUG 6800 ROM monitor ]
 +
* [http://www.nj7p.info/Computers/Software/Mon.html Monitors for the 6800]
 +
* [http://www.retrotechnology.com/restore/a68.html A68 6800 cross-assembler]
 +
* [https://sites.google.com/site/gogleoops/mc6800-assembler MC6800 Assembler]
 +
* [http://www.vintagecomputer.net/browse_thread.cfm?id=416 TSC BASIC for SWTPc 6800]
 +
* [https://archive.org/search.php?query=6800%20assembly%20language 6800 Assembly language books]
 +
* [https://www.youtube.com/watch?v=KPAOsWGT_xA SWTPC 6800 Resident Assembler MP-E] - (YouTube)
 +
* [https://github.com/jhallen/exorsim?fbclid=IwAR23nphLBTPj53QJAMyqR6tWTPipiVp36xZdv178GqMVRrK_4vTeia6udsY EXORsim] - Motorola EXORciser Simulator
 +
 
 +
== Z80 CPU ==
 +
 
 +
<video type="youtube">OdtYN3vPu_E</video>
 +
 
 +
* Land Boards [[Z80 in 3 Chips]]
 +
* [https://hackaday.io/project/167711-3-chip-z80-design Hackaday Z80 in 3 Chips]
 +
** 512KB SRAM
 +
* [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]
 +
 
 +
[[File:Z80_P865-cropped-720px.jpg]]
 +
 
 +
=== Stackup (top to bottom) ===
 +
 
 +
* [[Front Panel For 8 Bit Computers]]
 +
* [[Z80 in 3 Chips]]
 +
* [[SD_CARD_X49]] mounted on [[CARRIER95TO49MM]]
 +
* [[JOYPAD]]
 +
 
 +
[[File:Z80_PSOC_P936-CROPPED-720PX.jpg]]
 +
 
 +
=== Z80-MBC2 Build ===
 +
 
 +
[[Z80-MBC2 Build Notes]]
 +
 
 +
=== 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
 +
 
 +
[[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>
 +
 
 +
=== 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]
 +
 
 +
=== 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]
 +
 
 +
=== Z80 Software Development ===
 +
 
 +
==== 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>
 +
 
 +
=== 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 ===
 +
 
 +
* [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
 +
 
 +
==== NASCOM BASIC ====
 +
 
 +
* OUT ADDR,DATA
 +
* INP(128) - Reads I/O address 128 (0x80)
 +
 
 +
== 6502 CPU ==
 +
 
 +
=== 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]
 +
** [https://coronax.wordpress.com/tag/basic/ Experience porting Enhanced Basic to a 6502 Computer]
 +
*** "EhBASIC is about 11 KB"
 +
* [http://6502.org/ 6502.org] - the place for retro 6502 projects
 +
* [https://opencores.org/project,system68 System68]
 +
* [https://hackaday.io/project/3620/logs L-Star: Software-Defined 6502 Computer] - Uses a Propeller chip
 +
* Pick-and-mix to create your own custom computer on a low-cost FPGA board
 +
* [http://sbc.rictor.org/ Daryl's Computer Page]
 +
** Daryl has designed multiple single board computers
 +
* [https://archive.org/search.php?query=6502%20assembly%20language 6502 Assembly Language books] - archive.org
 +
* [https://archive.org/details/6502-micro-journal Micro 6502 Journal]
 +
 
 +
== 6809 CPU ==
 +
 
 +
=== Our Build ===
 +
 
 +
<video type="youtube">hHBiFK0d3Y4</video>
 +
 
 +
* [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_RETRO-EP4CE15/MultiComp_6809_by_Neal_C-2019-04-08 Our FPGA Builds]
 +
* BASIC is a port of [https://handwiki.org/wiki/Color_BASIC Microsoft Extended BASIC] for the 6809-based Radio Shack Color Computer
 +
 
 +
=== 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.
 +
 
 +
* [https://github.com/nealcrook/multicomp6809/wiki Neal Crook's 6809 Wiki of Multicomp FPGA builds] - very helpful
 +
* [https://github.com/nealcrook/multicomp6809 Neal Crook's Multicomp GitHub (with docs)]
 +
* Neal did [https://github.com/nealcrook/multicomp6809/wiki/CPU-and-clocking-modifications work on the 6809 core] that Grant Searle was using
 +
** Changed reset to active-low, consistently asynchronous
 +
** Changed clock to rising-edge
 +
** Clocked the processor on the input (50MHz) clock rather than a divided clock
 +
*** Used the HOLD input to control the clock rate.
 +
** Added MMU to control extended RAM
 +
* Neal did some [https://github.com/nealcrook/multicomp6809/wiki/VDU-Modifications Video Display Unit (VDU) Modifications]
 +
* Neal's [https://github.com/nealcrook/multicomp6809/wiki/mk2-memory-mapping-unit Memory Mapper]
 +
* Neal got [https://github.com/nealcrook/multicomp6809/wiki/SD-Controller-modifications SDHC working] - the original was SD only
 +
 
 +
==== Programming ====
 +
 
 +
* [https://github.com/nealcrook/multicomp6809/wiki/camelforth CamelForth]
 +
 
 +
==== SD Card ====
 +
 
 +
* [https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:multicomp:cycloneii-c:start#downloads SD Card image multicomp09_sd.zip] - Program SD card using Balena Etcher
 +
** [https://github.com/douggilliland/MultiComp/blob/master/MultiComp_6809_by_Neal_C-2019-04-08/SD%20Card/README.mediawiki SD Card Image]
 +
* [https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:multicomp:cycloneii-c:start Using the SD Card]
 +
 
 +
=== Other Docs ===
 +
 
 +
* [https://www.forth.com/starting-forth/ Starting FORTH] - First book of learning FORTH
 +
* [https://github.com/EtchedPixels/FUZIX FUZIX]
 +
* [http://www.flexusergroup.com/flexusergroup/pdfs/swflexum.pdf Flex User's Guide]
 +
* [http://ccgi.dougrice.plus.com/cgi-bin/wiki.pl?My_Notes_On_6809 Upload ROMs without rebuilding]
 +
* [http://atjs.mbnet.fi/mc6809/index.html 6809 Emulation Page]
 +
* [https://obsolescence.wixsite.com/obsolescence/the-6x0x-boards N8VEM 6809 Board]
 +
* [https://www.6809.org.uk/asm6809/ asm6809 - Assembler]
 +
 
 +
== 68000 CPU ==
 +
 
 +
Various 68000 builds
 +
 
 +
=== TG68_AMR Design ===
 +
 
 +
<video type="youtube">D9y7V0j5GsQ</video>
 +
 
 +
[[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
 +
 
 +
* FPGA cards are
 +
** [[QMTECH EP4CE15 FPGA Card]]
 +
** [[QMTECH EP4CE55 FPGA Card]]
 +
** [[QM_Tech_Cyclone_V_FPGA_Board|QMTECH 5CEFA2F23 FPGA Card]]
 +
** [[QMTECH_EP4CE15_Standalone_Board|QMTECH EP4CE15 Standalone Board]]
 +
 
 +
==== TG68_AMR Links ====
 +
 
 +
* [http://retroramblings.net/?page_id=770 AMR's TG68 Experiments] - Original design
 +
* [https://github.com/douggilliland/Retro-Computers/tree/master/68000/TG68_AMR My GitHub page]
 +
* [https://hackaday.io/project/174679-68k-cpu-with-frame-buffer-on-fpga Hackaday page]
 +
 
 +
=== TS2 design with Multicomp parts ===
 +
 
 +
* [https://github.com/douggilliland/MultiComp/blob/master/MultiComp_On_RETRO-EP4CE15/TS2_68000/README.mediawiki 68000 CPU in VHDL running on FPGA card]
 +
** Running on [[RETRO-EP4CE15]] card
 +
** Runs [https://github.com/douggilliland/Retro-Computers/tree/master/68000/TS2/monitor/TSBUG2 TS2BUG monitor] or [https://github.com/douggilliland/Retro-Computers/tree/master/68000/TS2/tutor TUTOR] from ROM
 +
** Built-on Video Display Unit (VDU)
 +
*** Color attributes
 +
*** XGA 80x25 [https://web.archive.org/web/20180221064620/http://searle.hostei.com/grant/Multicomp/index.html#ANSICodes ANSI character display]
 +
*** Extended (256) character set
 +
** PS/2 keyboard
 +
** 32KB SRAM
 +
** 16KB ROM
 +
** Loads/run [https://github.com/douggilliland/Retro-Computers/tree/master/68000/MECB/tbi68k12 Tiny Basic]
 +
*** Type LOAD on VDU port
 +
*** Copy/paste S1/S9 records from [https://github.com/douggilliland/Retro-Computers/blob/master/68000/MECB/tbi68k12/TBI68K.HEX TBI68K.HEX] into ACIA port
 +
*** JUMP 0900 to run
 +
 
 +
==== TS2 Links ====
 +
 
 +
* [https://jefftranter.blogspot.com/2016/12/building-68000-single-board-computer.html Jeff Tranter's build] (BLOG) - TS2 build
 +
** [https://github.com/jefftranter/68000/tree/master/testprog Test Programs]
 +
** [https://github.com/jefftranter/68000/tree/master/monitor Monitor code]
 +
* [http://easy68k.com/paulrsm/mecb/mecbbyte.htm Educational Computer Board (MEX68KECB)]
 +
** [http://www.easy68k.com/paulrsm/mecb/mecb.htm Motorola MC68000 Software]
 +
** [http://www.easy68k.com/paulrsm/index.html Motorola 680x0 Resources]
 +
 
 +
=== 68000 Software ===
 +
 
 +
* [https://retrobrewcomputers.org/doku.php?id=boards:sbc:tiny68k Tiny68K]
 +
** [https://retrobrewcomputers.org/lib/exe/fetch.php?media=boards:sbc:tiny68k:t68kbug.zip t68kbug Debugger]
 +
** [https://code.google.com/archive/p/m68k/downloads Linux toolchain for the MC68000 CPU - gcc] (Linux - uClinux/MC68000)
 +
* [https://www.bigmessowires.com/2014/11/06/building-uclinux-for-a-68000-target/ Building uClinux for a 68000 Target]
 +
** [https://sourceforge.net/projects/uclinux/ uClinux Sourceforge]
 +
** [https://www.youtube.com/watch?v=hgWZDSXkC58&feature=emb_logo 68000 booting uClinux 2.4.x (with 4Gb sdhc card)] - YouTube video
 +
** [https://www.embeddedrelated.com/showthread/comp.arch.embedded/34824-1.php Minimal hardware requirement for uClinux]
 +
* [https://darkdust.net/writings/megadrive/crosscompiler Installing binutils and GCC as cross-compiler for the Motorolla 68000]
 +
* [https://sourceforge.net/projects/emutos/ EmuTOS] - Free operating system for Atari computers, and more
 +
* [https://github.com/llvm/llvm-project/tree/main/llvm/lib/Target/M68k The LLVM Compiler Infrastructure] - 68K backend
 +
** [https://github.com/llvm/llvm-project/tree/main/llvm/lib/Target LLVM Project]
 +
** [https://llvm.org/docs/GettingStarted.html#getting-started-with-llvm Getting Started with LLVM]
 +
 
 +
=== Other People's 68000 Builds ===
 +
 
 +
* [http://www.faqs.org/faqs/motorola/68k-chips-faq/ comp.sys.m68k Frequently Asked Questions (FAQ)] (1996)
 +
* [https://github.com/TobiFlex/minimig_tc64 MiniMig TC64]
 +
* [https://hackaday.io/search?term=68000 Hackaday 68000 pages]
 +
* [http://mc68k.blogspot.com 68000 brought to life!]
 +
* [https://www.ist-schlau.de/?fbclid=IwAR1xQPF5I2gyCa5wyHaQa5nvaLJUyHItMSXMrir3SDk0QjLkibl7ibNxssA Kiwi - a 68k Homebrew Computer]
 +
 
 +
== RISC V CPU ==
 +
 
 +
* [https://github.com/ultraembedded/riscv RISC-V Core]
 +
* [https://github.com/ultraembedded/biriscv biRISC-V] - 32-bit dual issue RISC-V CPU
 +
 
 +
== BASIC ==
 +
 
 +
* [http://www.nicholson.com/rhn/basic/basic.info.html#2 BASIC Programming Resources and Chipmunk Basic Archive]
 +
* [https://wiki2.org/en/Tiny_BASIC Tiny BASIC]
 +
* [http://www.ittybittycomputers.com/IttyBitty/TinyBasic/index.htm Itty Bitty Computers & TinyBasic]
 +
* [http://www.ittybittycomputers.com/IttyBitty/TinyBasic/TBuserMan.htm TINY BASIC User Manual]
 +
 
 +
== DEC (Digital Equipment Corp) Computers ==
 +
 
 +
* [http://simh.trailing-edge.com/ Computer Simulation and History (simh)]
 +
** [https://www.youtube.com/watch?v=Mn63gb1-NII Introduction to SimH -- basic usage] - YouTube - [https://www.youtube.com/channel/UC1mpDUINwet2IdDBQ3_sSSw Stephen's Machine Room]
 +
* [http://www.retrotechnology.com/herbs_stuff/dec.html Herb's DEC items]
 +
 
 +
=== PDP-4 ===
 +
 
 +
* [http://www.fpgaretrocomputing.org/pdp4x/ PDP-4 on FPGA]
 +
* [http://www.fpgaretrocomputing.org/pdp4x/ PDP-4/X System Reference Manual]
 +
 
 +
=== PDP-8 ===
 +
 
 +
* [https://github.com/douggilliland/Retro-Computers/tree/master/PDP-8 My PDP-8 Hardware GitHub repository]
 +
* [https://www.computerhistory.org/revolution/minicomputers/11/331 History of the PDP-8]
 +
* [http://highgate.comm.sfu.ca/pdp8/ Highgate's PDP-8 Page]
 +
 
 +
==== Build of Tom Almy's PDP-8 FPGA (Working 2021-May) ====
 +
 
 +
<video type="youtube">1-lU59broa4</video>
 +
 
 +
My build is based on [https://almy.us/ Tom Almy]'s book [https://www.amazon.com/PDP-8-Class-Project-Resoling-Machine/dp/1790487978/ref=sr_1_1?dchild=1&keywords=tom+almy+pdp-8&qid=1619874138&sr=8-1 The PDP-8 Class Project: Resoling An Old Machine].
 +
 
 +
* [https://hackaday.io/project/179357-pdp-8-fpga PDP-8 FPGA] - Hackaday page with progress logs
 +
* Hardware used
 +
** [[RETRO-EP4CE15]] - FPGA Hardware used
 +
*** [[QMTECH EP4CE15 FPGA Card]]
 +
** [[PDP-8 Front Panel|PDP-8 Front Panel]]
 +
* FPGA Code
 +
** [https://github.com/douggilliland/Retro-Computers/tree/master/PDP-8/PDP8_Book(Almy) PDP-8 Almy book on GitHub]
 +
* [https://github.com/douggilliland/Linux-68k/tree/master/pdp8 My PDP-8 Software GitHub repository]
 +
 
 +
==== OpenCores PDP-8 Build ====
 +
 
 +
* [http://opencores.org/project,pdp8 opencores PDP-8 Processor Core and System Overview]
 +
** [https://opencores.org/projects/pdp8/quick%20start Quickstart page]
 +
* [https://github.com/douggilliland/Retro-Computers/tree/master/PDP-8/PDP8_OpenCores My GitHub repository]
 +
* Hardware used
 +
** [[RETRO-EP4CE15]] - FPGA Hardware used
 +
*** [[QMTECH EP4CE15 FPGA Card]]
 +
** [[PDP-8 Front Panel|PDP-8 Front Panel]]
 +
* FPGA Code
 +
** [https://github.com/douggilliland/Retro-Computers/tree/master/PDP-8/PDP8_OpenCores/RETRO-EP4CE15_CYCLONE_IV FPGA files]
 +
==== Others PDP-8 FPGA ====
 +
 
 +
* [https://github.com/ucfjimg/pdp8fpga Another Almy based design] - In Verilog
 +
* [https://github.com/penguin359/pdp8 Yet another Almy based design]
 +
* [https://groups.google.com/forum/#!msg/alt.sys.pdp8/lqMCn6dlA-U/_3p9SJDTfaYJ PDP-8 in VHDL]
 +
* [http://www.jaywalk.co.uk/pdp8/ A FGPA Implementation of the PDP-8]
 +
* [https://brianwhite94.wixsite.com/electronics/pdp-8-on-an-fpga PDP-8/I on an FPGA]
 +
* [https://github.com/lisper/cpus-pdp8 PDP-8/i cpu with an RF08 disk emulator] Uses a IDE disk as a backing store. It boots TSS/8.
 +
* [https://github.com/msurendra29/ECE510 PDP-8 Instruction verification] - In System Verilog?
 +
* [https://github.com/trueserve/pdp8-badge/tree/master/firmware/cypress/PDP8_PSoC5 PDP8 in a Cypress PSoC5]
 +
* [https://github.com/scottlbaker/PDP8-SOC Scott Baker's PDP8-SOC] - Clean VHDL Design
 +
 
 +
==== PDP-8 Documents and Programming ====
 +
 
 +
* [http://dustyoldcomputers.com/pdp-common/reference/drawings/cpus/docs/DEC-8E-HR1C-D_8eMaint_Feb73.pdf Maintenance Manual] - excellent document (pdf)
 +
* [https://homepage.divms.uiowa.edu/~jones/pdp8/man/index.html PDP-8 - A Programmer's Reference Manual]
 +
** [http://homepage.divms.uiowa.edu/~jones/pdp8/man/mri.html The Digital Equipment Corporation PDP-8 - Memory Reference Instructions]
 +
* [https://drive.google.com/file/d/0B_jM3_1AFMbMaUZSZ1RRUjJmS0k/view PiPDP-8 Front Panel]
 +
* [http://www.fpgaretrocomputing.org/pdp8x/man.pdf PDP-8/X System Reference Manual] (pdf)
 +
* [http://www.fpgaretrocomputing.org/pdp8x/panel05.txt Front Panel software]
 +
* [http://www.pdp8online.com/index.shtml pdp8online.com]
 +
* [https://github.com/rrutt/PDP8 PDP-8 Assembly Language Studio]
 +
** [https://rickrutt.wordpress.com/2013/10/19/conways-life-implemented-in-pdp-8-assembly-language/ Conway’s Life Implemented in PDP-8 Assembly Language]
 +
 
 +
==== PiDP-8 ====
 +
 
 +
* [https://obsolescence.wixsite.com/obsolescencepidp-8-overview PiDP-8/I: RECREATING THE PDP-8/I] - Obsolescence Guaranteed
 +
* [https://tangentsoft.com/pidp8i/wiki?name=Home PiDP-8/I software development nexus]
 +
 
 +
=== PDP-10 ===
 +
 
 +
* [http://www.fpgaretrocomputing.org/pdp10x/ PDP-10 on FPGA]
 +
** [https://www.retrobrewcomputers.org/forum/index.php?t=msg&th=333 Archived on retrobrew site]
 +
 
 +
=== PDP-11 ===
 +
 
 +
==== My PDP-11 (pdp2011) FPGA builds ====
 +
 
 +
<video type="youtube">oBETQo2oqQA</video>
 +
 
 +
* [[PDP-11 ON RETRO-EP4CE15]] - Works
 +
* Based on [https://pdp2011.sytse.net/wordpress/ Sytse van Slooten's original design pdp2011]
 +
 
 +
==== Other PDP-11 FPGA builds ====
 +
 
 +
* [https://github.com/DavidJRichards/pdp2011 Dave Richards pdp2011]
 +
* [https://wfjm.github.io/home/w11/ PDP-11 in VHDL - W11 build]
 +
 
 +
==== PDP-11 Software ====
 +
 
 +
* [https://wfjm.github.io/home/w11/inst/systems.html#h_os_kits System Disk Images]
 +
* [https://www.pdp-11.org.ru/files.pl?lang=en Disk Images]
 +
* [http://www.bitsavers.org/pdf/dec/pdp11/handbooks/PDP-11_Processor_Handbook_1981.pdf PDP-11 Processor Handbook 1981] - on [http://www.bitsavers.org/ BitSavers]
 +
* [http://www.bitsavers.org/bits/DEC/pdp11/ PDP-11 on BitSavers]
 +
* [https://www.instructables.com/PiDP-11-Replica-of-the-1970s-PDP-1170/ PiDP-11: Replica of the 1970s PDP-11/70 emulated on Raspberry Pi]
 +
* [http://mdfs.net/Software/PDP11/Assembler/ PDP11 Assembler]
 +
 
 +
== 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
 +
 
 +
[[File:ATMega328Video%202.2.gif]]
 +
 
 +
* Older AtMEGA32 version of Monitor Keyboard Design
 +
 
 +
* [[Serial_Terminal|My implementation of Grant's small serial terminal design]]
 +
 
 +
[[File:SerialTerminal-P70002-cropped-720px.jpg]]
 +
 
 +
== External Sites ==
 +
 
 +
=== PiGFX ===
 +
 
 +
* [https://github.com/fbergama/pigfx PiGFX Raspberry Pi graphics card / ANSI terminal emulator]
 +
 
 +
* 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 ===
 +
 
 +
* [https://www.retrobrewcomputers.org/forum/index.php RetroBrew Computers Forum]
 +
* [https://www.pagetable.com/ pagetable - Probably the best C64 technical data out there]
 +
** [https://github.com/mist64 Github for all things C64]
 +
* [http://s100computers.com/My%20System%20Pages/FPGA%20Z80%20SBC/FPGA%20Z80%20SBC.htm#Installing%20Quartus S-100 Bus FPGA Z80 SBC Board]

Revision as of 08:21, 17 February 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 - 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)
  • 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

Z80 CPU

Z80 P865-cropped-720px.jpg

Stackup (top to bottom)

Z80 PSOC P936-CROPPED-720PX.jpg

Z80-MBC2 Build

Z80-MBC2 Build Notes

CP/M on FPGA - by Grant Searle

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

mc-2g-1024 Images

Retrobrew Computer Builds of the Multicomp Project(s)

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

Z80 Software Development

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

NASCOM BASIC

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

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

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

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