|
|
Line 1: |
Line 1: |
− | [[File:tindie-mediums.png|link=https://www.tindie.com/stores/land_boards/]] | + | [[File:tindie-mediums.png|link=https://www.tindie.com/products/land_boards/z80-6502-6809-fpga-multicomp-pcb-ep2c5-db/]] |
| | | |
− | == Grant Searle's FPGA MultiComp Project == | + | <video type="youtube">7O0njivn-Po</video> |
− | | |
− | FPGA Recreations of 6502, 6809, Z80, and Z80 Vintage Computers
| |
− | | |
− | * [[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]
| + | == EP2C5-DB-TH FPGA card == |
− | * [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 ===
| + | [[File:P1743-720PX.jpg]] |
| | | |
− | ==== Cyclone II Video Series ====
| + | I love [http://searle.x10host.com/Multicomp/index.html Grant Searle's Multicomp project]. It lets you easily create 6502, Z80, 6809 Retrocomputers of the late 1970s era. This card provides all of the connections needed. |
| | | |
− | <video type="youtube">7O0njivn-Po</video>
| + | Grant's original design used an EP2 and that's exactly what this cards USES. Note that's not compatible with the latest version of Altera/Intel Quartus but you can download older Quartus II versions like 13.1 SP1. Just make sure it supports the Cyclone II family of FPGAs. |
| | | |
− | [https://www.youtube.com/playlist?list=PLn__0BqzWEWMcUgzBroNNJYQP1keD--gu Video Series]
| + | === Other (Newer, Bigger) Versions of this card === |
| | | |
− | ==== Cyclone IV Video Series ====
| + | We also have two EP4 versions of this card for sale on Tindie (bare boards, you populate). |
| | | |
− | [https://www.youtube.com/playlist?list=PLn__0BqzWEWPk0-VW3kEpMNA81sIbhj6n Video Series] | + | * [https://www.tindie.com/products/land_boards/z80-6502-6809-fpga-multicomp-pcb-retro-ep4/ EP4CE6 card, mounts WaveShare board] |
| + | * [https://www.tindie.com/products/land_boards/retrocomputer-fpga-card-pcb-only/ EP4CE15 card, mounts QMTECH boards] |
| | | |
− | == 6800 CPU == | + | == Features == |
| | | |
− | === S120 Bus Computer === | + | * [https://github.com/douggilliland/MultiComp/wiki Full MultiComp Support] of classic 8-bit Retrocomputers |
| + | ** [https://github.com/douggilliland/MultiComp/wiki/Land-Boards-MultiComp-Builds#Z80 Z80] |
| + | ** [https://github.com/douggilliland/MultiComp/wiki/Land-Boards-MultiComp-Builds#6502 6502] |
| + | ** [https://github.com/douggilliland/MultiComp/wiki/Land-Boards-MultiComp-Builds#6809 6809] |
| + | ** [https://github.com/douggilliland/MultiComp/wiki/Land-Boards-MultiComp-Builds#6800 6800] |
| + | * Mounts [[Cyclone II EP2C5 Mini Dev Board]] |
| + | ** [https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=EP2c5+fpga+board&_sacat=0&LH_TitleDesc=0&_osacat=0&_odkw=EP2+fpga EP2C5T144C8N FPGA Card] - Ebay listing |
| + | * 6 bit video on VGA (2:2:2 R:G:B) |
| + | * 128KB of SRAM for banked use in CP/M |
| + | * PS/2 Keyboard Mini-DIN connector |
| + | * Connector for serial ports |
| + | ** Can attach inexpensive FTDI USB to serial converter |
| + | *** Also, [http://land-boards.com/blwiki/index.php?title=FTDI-49MM Land Boards FTDI-49MM] |
| + | ** Supports hardware handshake (out) for high speed serial |
| + | * 2x 8-bit ports with Power/Ground |
| + | * SD Card (Full size, some builds support SDHC cards) |
| + | * DC power jack (on FPGA card) |
| | | |
− | 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.
| + | === EP2 Resources === |
| | | |
− | * Ran on Elco? 120 pin edge connector wire wrapped cards | + | * EP2C5 has 26 of 512x9 SRAM blocks |
− | * 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.
| + | [[File:EP2XX_Resources.PNG]] |
| | | |
− | It might be fun to reproduce that board!
| + | == Stackup with FTDI Card == |
| | | |
− | ==== Pieces to Reproduce my original S120 Bus Computer ====
| + | * Top to bottom of stackup |
| + | # EP2C5-DB (this card) |
| + | # [[Cyclone II EP2C5 Mini Dev Board]] |
| + | # [[FTDI-49MM]] |
| + | # [[CARRIER95TO49MM|CARRIER 95mm TO 49MM]] |
| | | |
− | * Michael Holley's SWTPC 6800/6809 documentation collection
| + | [[File:P1752-CROPPED-720PX.jpg]] |
− | * N8VEM RetroComputing Wikipedia page
| |
− | * Retrobrew Computers
| |
− | * Kim-1 board - Similar concept
| |
| | | |
− | ==== Hardware ====
| + | === Hardware === |
| | | |
− | * M6800 VHDL code from OpenCores | + | * 4-40 screws with nuts as spacers between [[CARRIER95TO49MM|CARRIER 95mm TO 49MM]] and [[FTDI-49MM]] |
| + | * (4) 1.25" tall, 6-32 M-F Standoffs [https://www.mouser.com/ProductDetail/Fascomp/FC4546-632-A?qs=T%2B5DAjFZ5JP20KmtIj3ECQ%3D%3D FC4546-632-A] connect [[CARRIER95TO49MM]] to EP2C5-DB |
| + | * (4) 1/4" tall, 6-32 M-F Standoffs [https://www.mouser.com/ProductDetail/728-FC4536-632-A FC4536-632-A] as spacer below [[CARRIER95TO49MM]] board |
| | | |
− | ==== Software ==== | + | == VGA - Ideal Drive 2:2:2 Case == |
| | | |
− | * AS68 Cross Assembler | + | * FPGA has a 3.3V driver which can drive 8 mA |
− | * ASM68C Cross Assembler | + | * Ideal case drive current |
− | * Collection of Assembly Language tools for the M6800 | + | ** 0.7V into 75 Ohms = 9.33 mA |
− | * 6800 Basics | + | * R-2R values |
− | * 6800 Assembly Language Programming (pdf) by Lance Leventhal | + | ** Ideal resistor values are 417.9 ohms and 835.7 ohms |
− | * 6800 Instruction Set Cheat Sheet | + | ** [http://www.brannonelectronics.com/images/STANDARD%20VALUE.pdf Standard value 1% resistors] |
| + | ** 1% standard values are [https://www.mouser.com/ProductDetail/652-CR0805FX-4220ELF 422 (Mouser)], [https://www.mouser.com/ProductDetail/603-RC0805FR-07845RL 845 (Mouser)] Ohms |
| + | *** Get closest values |
| + | *** 0V, 0.228V, 0.460V, 0.693V |
| + | * Voltage steps are: |
| | | |
− | === M6800_MIKBUG - Tested/Works ===
| + | [[File:VGA_Sim_2R_Voltage.PNG]] |
| | | |
− | <video type="youtube">LxMTCq9kLoc</video>
| + | * Current steps are: |
| | | |
− | [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] | + | [[File:VGA_Sim_2R_Current.PNG]] |
| | | |
− | * Fills a hole in Grant Searle's Multicomp (he hadn't finished a 6800 version)
| + | == LEDs == |
− | ** 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 ==== | + | === LEDs on EP2C5 Board === |
| | | |
− | * $0000-$EFFF - 60KB external sRAM | + | * D2 is on PIN_3 |
− | ** $0000-$EEFF - User RAM area | + | * D4 is on PIN_7 |
− | ** $EF00-$EFFF - scratchpad used by MIKBUG
| + | * D5 is on PIN_9 |
− | * 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 ===
| + | [[File:LEDs_on_EP2C5_PCB.jpg]] |
| | | |
− | * [http://www.computercloset.org/MITSAltair680.htm MITS Altair 680]
| + | [[File:LEDs_Schematic.PNG]] |
− | * [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 === | + | === LED on EP2C5-DB Cards === |
| | | |
− | * [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_RETRO-EP4/M6800_MIKBUG Muticomp M6800 MIKBUG] | + | * LED is on FPGA pin 53 |
− | * [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 == | + | == Connectors == |
| | | |
− | <video type="youtube">OdtYN3vPu_E</video>
| + | === J1 - VGA === |
| | | |
− | * Land Boards [[Z80 in 3 Chips]]
| + | === J4 - SD Card === |
− | * [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) === | + | === J5 - Serial Ports 1/2 === |
| | | |
− | * [[Front Panel For 8 Bit Computers]] | + | * Set jumper on FTDI module to 3.3V |
− | * [[Z80 in 3 Chips]]
| + | * Connects to FTDI Module |
− | * [[SD_CARD_X49]] mounted on [[CARRIER95TO49MM]]
| |
− | * [[JOYPAD]] | |
| | | |
− | [[File:Z80_PSOC_P936-CROPPED-720PX.jpg]]
| + | # RTS |
| + | # RXD |
| + | # TXD |
| + | # GND |
| | | |
− | === Z80-MBC2 Build ===
| + | [[File:EP2C5-DB_FTDI.PNG]] |
| | | |
− | [[Z80-MBC2 Build Notes]]
| + | ==== FTDI Module ==== |
| | | |
− | === CP/M on FPGA - by Grant Searle ===
| + | * Set jumper on FTDI module to 3.3V |
| | | |
− | * [https://web.archive.org/web/20180221182529/searle.hostei.com/grant/ Archive.org copy of Grant's site from 2012]
| + | [[File:FTDI_rot.jpg]] |
− | * [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]]
| + | ==== FTDI Wiring ==== |
| | | |
− | * Grant noted about the SD card interface: | + | * Set jumper on FTDI module to 3.3V |
− | <pre>
| + | * J5-1 (marked RTS on PCB) to FTDI CTS pin |
− | ... the SD controller is easy to control - in BASIC POKE the sector number, POKE the write command,
| + | * J5-3 (marked RX on PCB) to FTDI TX pin |
− | POKE 512 bytes to the same location to write a sector,
| + | * J5-5 (marked TX on PCB) to FTDI RX pin |
− | or POKE the sector number, POKE the read command, and PEEK 512 bytes to read a sector.
| + | * J5-7 (marked GND on PCB) to FTDI GND pin |
− | </pre>
| |
| | | |
− | === Retrobrew Multi-boot Multicomp Computer Builds ===
| + | [[File:EP2C5-DB_FTDI_Wiring.PNG]] |
| | | |
− | * [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]
| + | === J6 - 8-bit I/O connector === |
− | * [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 ====
| + | * FPGA Pins |
| | | |
− | * 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
| + | # 3.3V |
− | ** [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]
| + | # 3.3V |
− | * [https://retrobrewcomputers.org/lib/exe/fetch.php?media=builderpages:rhkoolstar:mc-2g-1024.zip Included OSs] are
| + | # 25 |
− | ** Type '''Snnn''' to select OS at multiboot
| + | # 31 |
− | ** 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)
| + | # 41 |
− | ** 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
| + | # 40 |
− | ** S003 - [http://www.cpm.z80.de/manuals/cpm3-usr.pdf CP/M Version 3.0] BIOS (2016/9/13)
| + | # 43 |
− | *** [http://www.cpm.z80.de/manuals/cpm3-sys.pdf CP/M Version 3.0 Operating System System Guide]
| + | # 42 |
− | ** 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]
| + | # 45 |
− | ** S005 - [http://searle.wales/z80/SimpleZ80.html Z80 BASIC Ver 4.7b], Copyright (C) 1978 by Microsoft
| + | # 44 |
− | ** 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)
| + | # GND |
− | ** 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
| + | # GND |
| | | |
− | * Additional Volumes
| + | === J8 - 8-bit I/O connector === |
− | ** 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) ===
| + | * FPGA Pins |
| | | |
− | * [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]
| + | # 3.3V |
− | * [https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:multicomp:cycloneii-c:start Some folks made a MultiComputer PCB, too] - Retrobrewing
| + | # 3.3V |
− | * [https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:multicomp:cycloneii-b:start Another board]
| + | # 48 |
− | * [https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:multicomp:papilio-duo:start Yet another board]
| + | # 47 |
− | * [http://jeelabs.org/book/1550b/ Jeelabs Building a MultiComp-based Z80]
| + | # 52 |
− | * [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]
| + | # 51 |
− | * [https://www.youtube.com/watch?v=98uVpNQ9Gb8 Homebrew Z80]
| + | # 58 |
− | * [https://hackaday.io/project/163683-the-thing-fpga-stm32 "The Thing": FPGA + STM32]
| + | # 55 |
| + | # 76 |
| + | # 69 |
| + | # GND |
| + | # GND |
| | | |
− | === CP/M Notes === | + | == Schematics == |
| | | |
− | * CP/M is not case sensitive
| + | === SMT Version === |
− | * 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://land-boards.com/EP2C5-DB/EP2C5-DB_Schematic_Rev_X5.pdf Rev X5 schematic] |
| + | * [http://land-boards.com/EP2C5-DB/EP2C5-DB_Schematic_Rev_X6.pdf Rev X6 schematic] |
| | | |
− | * [http://www.cpm.z80.de/manuals/cpm22-m.pdf CP/M Operating System Manual]
| + | === Through Hole Version === |
− | * [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 ===
| + | * [http://land-boards.com/EP2C5-DB-TH/EP2C5-DB-TH_Rev1.pdf Rev 1 schematic] |
| | | |
− | ==== AZTEC C Compiler ==== | + | == Retro-Computer Builds == |
| | | |
− | * Compile C code to CP/M executable | + | * [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5 Github repository for Multicomp builds] |
− | * [https://archive.org/details/bitsavers_manxAztecC_11703326 Aztec C Compiler Manual] | + | ** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6502_VGA_PS2_ExtRAM M6502 CPU, OSI BASIC-in-ROM, VGA, PS2, 56KB External RAM] |
− | ** C Vers. 1.06D 8080 (C) 1982 1983 1984 by Manx Software Systems | + | ** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/UK101-GS-Original UK101, Grant Searle's Original, CEGMON and BASIC-in-ROM] |
− | * Example Code - HELLO2.C | + | ** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/UK101_4KRAM UK101, 4K SRAM, CEGMON and BASIC-in-ROM] |
− | <pre>
| + | ** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/uk101_NTSC-PS2-ExtRAM UK101, NTSC, PS2, Ext SRAM, CEGMON and BASIC-in-ROM] |
− | int main()
| + | ** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/uk101_VGA-PS2-ExtRAM-115200Serial UK101, VGA, PS2, External SRAM, 115200 baud Serial, CEGMON and BASIC-in-ROM] |
− | {
| + | ** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6809_56KRAM_VGA M6809, 56K SRAM, VGA] |
− | int i;
| + | ** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/Z80-CPM-VGA-PS2-128KRAM Z80, CP/M 2, VGA, PS2, 128K SRAM] |
− | for (i=0; i< 10; i++)
| + | ** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/Z80-CPM-VGA-PS2-ExtRAM Z80, CP/M 2, VGA, PS2, 128K SRAM] |
− | printf("%d\n");
| + | * [https://github.com/douggilliland/Retro-Computers/tree/master/PDP-8/PDP8_Book(Almy)/PDP8_VDU_EP2CE5 PDP-8 4KW, Serial, VGA] |
− | }
| |
− | </pre>
| |
| | | |
− | * Compile code to assembly file
| + | === Multicomp Extensions === |
− | ** Creates a .ASM file
| |
− | <pre>
| |
− | CC HELLO2.C
| |
− | </pre>
| |
| | | |
− | * Assemble Code to object file | + | ** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6800_MIKBUG M6800, MIKBUG ROM] |
− | ** Creates a .O file | + | ** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6800_MIKBUG_ExtSRAM M6800, MIKBUG ROM, External RAM] |
− | <pre>
| + | ** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6800_MIKBUG_ExtSRAM_MIKBUG_at_F000 M6800, MIKBUG ROM at 0xF000 base, External RAM] |
− | AS HELLO2.ASM
| + | ** [https://github.com/douggilliland/MultiComp/tree/master/MultiComp_On_EP2C5/M6800_MIKBUG_Serial M6800, MIKBUG ROM, Serial port] |
− | </pre>
| |
| | | |
− | * Link Code with C library to .COM executable file
| + | == Programming the Flash EPROM Memory == |
− | <pre>
| |
− | LN HELLO2.O C.LIB
| |
− | </pre>
| |
| | | |
− | <video type="youtube">wQY2VUV8MDQ</video>
| + | [[FILE:EP2CE_P428-720PX.jpg]] |
| | | |
− | ==== ALGOL-M Compiler ==== | + | === Permanent (.pof file) === |
| | | |
− | * Fizzbuzz example | + | * AS - Upload ,pof file to EPROM over AS |
| + | ** Flash EPROM = EPCS4 |
| + | ** Remains after power cycling |
| | | |
− | <pre>
| + | [[File:Program-permanent-720px.png]] |
− | BEGIN
| |
| | | |
− | INTEGER FUNCTION DIVBY(N, D);
| + | === Temporary (.sof file) === |
− | INTEGER N;
| |
− | INTEGER D;
| |
− | BEGIN
| |
− | DIVBY := 1 - (N - D * (N / D));
| |
− | END;
| |
| | | |
− | INTEGER I;
| + | * JTAG - Upload temporary .sof program over JTAG |
− | FOR I := 1 STEP 1 UNTIL 100 DO
| + | ** Does not remain after power cycling |
− | 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
| + | [[File:Program-temporarily-720px.png]] |
− | </pre>
| |
− | * To run compiler:
| |
− | <pre>
| |
− | algolm fizzbuzz
| |
| | | |
− | </pre>
| + | == Pin List (Multicomp) == |
− | * 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> | | <pre> |
− | ALGOL-M INTERPRETER-VERS 1.0
| + | # Clocks and reset |
− | | + | set_location_assignment PIN_17 -to clk |
− | | + | set_location_assignment PIN_144 -to n_reset |
− | 1
| + | set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to n_reset |
− | 2
| + | # PS/2 |
− | Fizz
| + | set_location_assignment PIN_87 -to ps2Data |
− | 4
| + | set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to ps2Data |
− | Buzz
| + | set_location_assignment PIN_86 -to ps2Clk |
− | Fizz
| + | set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to ps2Clk |
− | 7
| + | # ACIA (Serial) |
− | 8
| + | set_location_assignment PIN_60 -to serSelect |
| + | set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to serSelect |
| + | # Serial |
| + | set_location_assignment PIN_104 -to o_rts1 |
| + | set_location_assignment PIN_101 -to i_rxd1 |
| + | set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to i_rxd1 |
| + | set_location_assignment PIN_103 -to o_txd1 |
| + | # External SRAM |
| + | set_location_assignment PIN_4 -to n_sRamWE |
| + | set_location_assignment PIN_126 -to n_sRamCS |
| + | set_location_assignment PIN_134 -to n_sRamOE |
| + | set_location_assignment PIN_32 -to sramAddress[16] |
| + | set_location_assignment PIN_8 -to sramAddress[15] |
| + | set_location_assignment PIN_30 -to sramAddress[14] |
| + | set_location_assignment PIN_24 -to sramAddress[13] |
| + | set_location_assignment PIN_28 -to sramAddress[12] |
| + | set_location_assignment PIN_136 -to sramAddress[11] |
| + | set_location_assignment PIN_132 -to sramAddress[10] |
| + | set_location_assignment PIN_139 -to sramAddress[9] |
| + | set_location_assignment PIN_142 -to sramAddress[8] |
| + | set_location_assignment PIN_143 -to sramAddress[7] |
| + | set_location_assignment PIN_141 -to sramAddress[6] |
| + | set_location_assignment PIN_137 -to sramAddress[5] |
| + | set_location_assignment PIN_135 -to sramAddress[4] |
| + | set_location_assignment PIN_133 -to sramAddress[3] |
| + | set_location_assignment PIN_129 -to sramAddress[2] |
| + | set_location_assignment PIN_125 -to sramAddress[1] |
| + | set_location_assignment PIN_121 -to sramAddress[0] |
| + | set_location_assignment PIN_122 -to sramData[7] |
| + | set_location_assignment PIN_120 -to sramData[6] |
| + | set_location_assignment PIN_118 -to sramData[5] |
| + | set_location_assignment PIN_114 -to sramData[4] |
| + | set_location_assignment PIN_112 -to sramData[3] |
| + | set_location_assignment PIN_113 -to sramData[2] |
| + | set_location_assignment PIN_115 -to sramData[1] |
| + | set_location_assignment PIN_119 -to sramData[0] |
| + | # Composite Video |
| + | set_location_assignment PIN_75 -to video |
| + | set_location_assignment PIN_74 -to videoSync |
| + | # VGA |
| + | set_location_assignment PIN_64 -to videoB0 |
| + | set_location_assignment PIN_63 -to videoB1 |
| + | set_location_assignment PIN_67 -to videoG0 |
| + | set_location_assignment PIN_65 -to videoG1 |
| + | set_location_assignment PIN_70 -to videoR0 |
| + | set_location_assignment PIN_69 -to videoR1 |
| + | set_location_assignment PIN_71 -to hSync |
| + | set_location_assignment PIN_72 -to vSync |
| + | # SD Card |
| + | set_location_assignment PIN_92 -to sdMISO |
| + | set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to sdMISO |
| + | set_location_assignment PIN_94 -to sdSCLK |
| + | set_location_assignment PIN_93 -to sdMOSI |
| + | set_location_assignment PIN_97 -to sdCS |
| + | set_location_assignment PIN_3 -to driveLED |
| + | # J6 IO |
| + | set_location_assignment PIN_25 -to J6IO8[0] |
| + | set_location_assignment PIN_31 -to J6IO8[1] |
| + | set_location_assignment PIN_41 -to J6IO8[2] |
| + | set_location_assignment PIN_40 -to J6IO8[3] |
| + | set_location_assignment PIN_43 -to J6IO8[4] |
| + | set_location_assignment PIN_42 -to J6IO8[5] |
| + | set_location_assignment PIN_45 -to J6IO8[6] |
| + | set_location_assignment PIN_44 -to J6IO8[7] |
| + | # J8 I/O |
| + | set_location_assignment PIN_48 -to J8IO8[0] |
| + | set_location_assignment PIN_47 -to J8IO8[1] |
| + | set_location_assignment PIN_52 -to J8IO8[2] |
| + | set_location_assignment PIN_51 -to J8IO8[3] |
| + | set_location_assignment PIN_58 -to J8IO8[4] |
| + | set_location_assignment PIN_55 -to J8IO8[5] |
| + | set_location_assignment PIN_76 -to J8IO8[6] |
| + | # set_location_assignment PIN_60 -to J8IO8[7] |
| </pre> | | </pre> |
| | | |
− | === Microsoft BASIC Notes === | + | == EP2C5-DB Assembly Sheet == |
− | | |
− | * 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] | + | * [[EP2C5-DB Rev X6 Assembly Sheet]] - SMT board version |
− | * [https://www.pagetable.com/ pagetable - Probably the best C64 technical data out there]
| + | * [[EP2C5-DB-TH Rev 1 Assembly Sheet]] - Through-hole board version |
− | ** [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]
| |