Difference between pages "Multicomp in a Box" and "RetroComputers"
Blwikiadmin (talk | contribs) |
|||
Line 1: | Line 1: | ||
− | = | + | [[File:tindie-mediums.png|link=https://www.tindie.com/stores/land_boards/]] |
− | + | == Grant Searle's FPGA MultiComp Project == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | FPGA Recreations of 6502, 6809, Z80, and Z80 Vintage Computers | |
− | * [https:// | + | * [[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] | ||
− | + | === Other Links === | |
− | == | + | * [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] | ||
− | + | === Our MultiComp Retro-Computer Video Series === | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | === | + | ==== Cyclone II Video Series ==== |
− | + | <video type="youtube">7O0njivn-Po</video> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | = | + | [https://www.youtube.com/playlist?list=PLn__0BqzWEWMcUgzBroNNJYQP1keD--gu Video Series] |
− | + | ==== Cyclone IV Video Series ==== | |
− | |||
− | = | + | [https://www.youtube.com/playlist?list=PLn__0BqzWEWPk0-VW3kEpMNA81sIbhj6n 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 === |
− | | | + | |
− | | | + | <video type="youtube">LxMTCq9kLoc</video> |
− | |- | + | |
− | + | [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] | |
+ | |||
+ | * Fills a hole in Grant Searle's Multicomp (he hadn't finished a 6800 version) | ||
+ | ** Runs [http://www.ittybittycomputers.com/IttyBitty/TinyBasic/ 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) | ||
+ | ** 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 | ||
+ | |||
+ | ==== 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 started from Grant Searle's Multicomp and fixed a number of issues with the VHDL code. | ||
+ | |||
+ | * [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:20, 17 February 2022
Contents
- 1 Grant Searle's FPGA MultiComp Project
- 2 6800 CPU
- 3 Z80 CPU
- 4 6502 CPU
- 5 6809 CPU
- 6 68000 CPU
- 7 RISC V CPU
- 8 BASIC
- 9 DEC (Digital Equipment Corp) Computers
- 10 Terminal
- 11 External Sites
Grant Searle's FPGA MultiComp Project
FPGA Recreations of 6502, 6809, Z80, and Z80 Vintage Computers
- Multicomp on Land Boards Cards - Hardware
- Multicomp on Purchased Cards
- FPGA Support Cards
- MultiComp Wiki Page on GitHub
- Multicomp Github repo
Other Links
- Grant Searle's Multicomp page
- Neal Crook's 6809 Multicomp Github
- Retrobrewing Multicomp
- mc-2g-1024 multi-boot capability
- System 09 - VHDL 6809 System On a Chip
- Multicomp build on Cyclone IV
Our MultiComp Retro-Computer Video Series
Cyclone II Video Series
Cyclone IV 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)
- Color attributes
- XGA 80x25 ANSI character display
- 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
- MITS Altair 680
- Altair 680b Mainframe
- SWTPC 6800
- SWTP 6800 system
- Sphere 1 computer History
- DREAM 6800 Archive Site
- Planet m68k - News around Motorola 68000 CPU computer systems
Software
- Muticomp M6800 MIKBUG
- Smithbug, MIKBUG 6800 ROM monitor
- Monitors for the 6800
- A68 6800 cross-assembler
- MC6800 Assembler
- TSC BASIC for SWTPc 6800
- 6800 Assembly language books
- SWTPC 6800 Resident Assembler MP-E - (YouTube)
- EXORsim - Motorola EXORciser Simulator
Z80 CPU
- Land Boards Z80 in 3 Chips
- Hackaday Z80 in 3 Chips
- 512KB SRAM
- rhkoolstar sbc-2g-512 - SD card image
Stackup (top to bottom)
Z80-MBC2 Build
CP/M on FPGA - by Grant Searle
- Archive.org copy of Grant's site from 2012
- Archive.org copy of Grant's Multicomp from 2012
- Fit results (EP2C5 FPGA)
- Two UART Serial interface
- No Video Display
- External RAM
- 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
- MultiComputerZ80 build - Lots of extras - mc-2g-1024 Help file
- Multicomp Z80 with b/w Graphics - muellerk page
- 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
- Included OSs are
- Type Snnn to select OS at multiboot
- S001 - Dos+ 2.5 Copyright 1986 (c) by C.B. Falconer, CCP+ Ver. 2.2 (CP/M 2.2 compatible)
- S002 - CP/M 2.2 (c) 1979 by Digital Research
- S003 - CP/M Version 3.0 BIOS (2016/9/13)
- S004 - MP/M II V2.1
- S005 - Z80 BASIC Ver 4.7b, Copyright (C) 1978 by Microsoft
- S006 - ZSDOS v1.1 (c) 1986-8 Harold F. Bower & Cameron W. Cotrill, ZCPR2 (c) 1982 by Richard Conn (CP/M 2.2 compatible)
- S007 - ZCPR compatible system for CP/M+ (CP/M 3.0) by Simeon Cran
- Additional Volumes
- Inspired by mc-2g-1024 original but modified
- 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 - ZCPR3 Utilities A-O
- Volume.010 - ZCPR3 Utilities P-Z
- Volume.011 - Wordstar, DBase, SuperCal
- Volume.012 - Games
- Volume.013 - MuMath
- Volume.014 - Documentation
- Volume.015 - Languages (TurboPascal, Fortran, BBC BASIC)
- Volume.016 - Languages (Algol, 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)
- Multi-boot Multicomp build by muellerk builds on Multi-boot Multicomp build by rhkoolstar
- Some folks made a MultiComputer PCB, too - Retrobrewing
- Another board
- Yet another board
- Jeelabs Building a MultiComp-based Z80
- Patch WordStar 3.0 to use ANSI screen commands
- Homebrew Z80
- "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
- CP/M Operating System Manual
- Digital Research CP/M Site
- A Short History of CP/M
- CP/M Internals
- CP/M Console Command Processor Instructions
- OAK Repository - CP/M Archive - On the Wayback machine
- Intro to Z80 Retrocomputing - Scott Baker's series on the RC2014
- Digital Research Source Code
- CP/M Programming Languages and Tools retroarchive page
- Multicomp FPGA - CP/M Demo Disk
- BBC BASIC (Z80)
*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
- Z80 Protocol Decoder
- Z80 = mc-2g-1024 - Best build
- 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
- 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
- Dave's OSI Repository - Lots of scanned documents up there - large file sizes
- Compukit UK101 Docs on Sourceforge]
- CEGMON – a blast from the past
- Code for the 6502 microprocessor, mostly for the Replica 1 computer
- Nice page on the C1P/Superboard II
- 6502 Instruction Set
Keyboard Layout
CC65 - C Compiler for the 6502 and OSI C1P
- Ohio Scientific-specific information for cc65
- cl65 Users Guide
- CC65 - C Compiler for the 6502
- CC65 Wiki
SuperBoard II Emulator
- OSI Challenger 1P (8Kb) with Debugger - JAVA web based emulator
- OSI Challenger 1P (32Kb) with Disk Support - JAVA web based emulator
- pill_6502: 8-bit 6502 CPU and 6850 ACIA emulation on the STM32 blue pill to run Microsoft BASIC from 1977
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.
- EP2C5-DB - Our creation of a daughtercard which implements Grant Searle's Multi-Computer
- Grant Searle's CompuKit UK101
- Based on Cyclone II EP2C5 Mini Dev Board
- Someone built one of the CompuKit clones as a CPM box
- Compukit 101 video
- Ohio Scientific publications
- Enhanced 6502 BASIC
- Experience porting Enhanced Basic to a 6502 Computer
- "EhBASIC is about 11 KB"
- Experience porting Enhanced Basic to a 6502 Computer
- 6502.org - the place for retro 6502 projects
- System68
- 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
- Daryl's Computer Page
- Daryl has designed multiple single board computers
- 6502 Assembly Language books - archive.org
- Micro 6502 Journal
6809 CPU
Our Build
- Our FPGA Builds
- BASIC is a port of Microsoft Extended BASIC for the 6809-based Radio Shack Color Computer
Neal Crook's 6809 Multiple OS Build
Neal Crook started from Grant Searle's Multicomp and fixed a number of issues with the VHDL code.
- Neal Crook's 6809 Wiki of Multicomp FPGA builds - very helpful
- Neal Crook's Multicomp GitHub (with docs)
- Neal did 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 Video Display Unit (VDU) Modifications
- Neal's Memory Mapper
- Neal got SDHC working - the original was SD only
Programming
SD Card
- SD Card image multicomp09_sd.zip - Program SD card using Balena Etcher
- Using the SD Card
Other Docs
- Starting FORTH - First book of learning FORTH
- FUZIX
- Flex User's Guide
- Upload ROMs without rebuilding
- 6809 Emulation Page
- N8VEM 6809 Board
- asm6809 - Assembler
68000 CPU
Various 68000 builds
TG68_AMR Design
- 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
- VGA connector
- FPGA cards are
TG68_AMR Links
- AMR's TG68 Experiments - Original design
- My GitHub page
- Hackaday page
TS2 design with Multicomp parts
- 68000 CPU in VHDL running on FPGA card
- Running on RETRO-EP4CE15 card
- Runs TS2BUG monitor or TUTOR from ROM
- Built-on Video Display Unit (VDU)
- Color attributes
- XGA 80x25 ANSI character display
- Extended (256) character set
- PS/2 keyboard
- 32KB SRAM
- 16KB ROM
- Loads/run Tiny Basic
- Type LOAD on VDU port
- Copy/paste S1/S9 records from TBI68K.HEX into ACIA port
- JUMP 0900 to run
TS2 Links
- Jeff Tranter's build (BLOG) - TS2 build
- Educational Computer Board (MEX68KECB)
68000 Software
- Tiny68K
- t68kbug Debugger
- Linux toolchain for the MC68000 CPU - gcc (Linux - uClinux/MC68000)
- Building uClinux for a 68000 Target
- Installing binutils and GCC as cross-compiler for the Motorolla 68000
- EmuTOS - Free operating system for Atari computers, and more
- The LLVM Compiler Infrastructure - 68K backend
Other People's 68000 Builds
- comp.sys.m68k Frequently Asked Questions (FAQ) (1996)
- MiniMig TC64
- Hackaday 68000 pages
- 68000 brought to life!
- Kiwi - a 68k Homebrew Computer
RISC V CPU
- RISC-V Core
- biRISC-V - 32-bit dual issue RISC-V CPU
BASIC
- BASIC Programming Resources and Chipmunk Basic Archive
- Tiny BASIC
- Itty Bitty Computers & TinyBasic
- TINY BASIC User Manual
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.
- PDP-8 FPGA - Hackaday page with progress logs
- Hardware used
- RETRO-EP4CE15 - FPGA Hardware used
- PDP-8 Front Panel
- FPGA Code
- My PDP-8 Software GitHub repository
OpenCores PDP-8 Build
- opencores PDP-8 Processor Core and System Overview
- My GitHub repository
- Hardware used
- RETRO-EP4CE15 - FPGA Hardware used
- PDP-8 Front Panel
- FPGA Code
Others PDP-8 FPGA
- Another Almy based design - In Verilog
- Yet another Almy based design
- PDP-8 in VHDL
- A FGPA Implementation of the PDP-8
- PDP-8/I on an FPGA
- PDP-8/i cpu with an RF08 disk emulator Uses a IDE disk as a backing store. It boots TSS/8.
- PDP-8 Instruction verification - In System Verilog?
- PDP8 in a Cypress PSoC5
- Scott Baker's PDP8-SOC - Clean VHDL Design
PDP-8 Documents and Programming
- Maintenance Manual - excellent document (pdf)
- PDP-8 - A Programmer's Reference Manual
- PiPDP-8 Front Panel
- PDP-8/X System Reference Manual (pdf)
- Front Panel software
- pdp8online.com
- PDP-8 Assembly Language Studio
PiDP-8
- PiDP-8/I: RECREATING THE PDP-8/I - Obsolescence Guaranteed
- PiDP-8/I software development nexus
PDP-10
PDP-11
My PDP-11 (pdp2011) FPGA builds
- PDP-11 ON RETRO-EP4CE15 - Works
- Based on Sytse van Slooten's original design pdp2011
Other PDP-11 FPGA builds
PDP-11 Software
- System Disk Images
- Disk Images
- PDP-11 Processor Handbook 1981 - on BitSavers
- PDP-11 on BitSavers
- PiDP-11: Replica of the 1970s PDP-11/70 emulated on Raspberry Pi
- 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
- Older AtMEGA32 version of Monitor Keyboard Design
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