├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── .gitmodules ├── EhBASIC-manual.pdf ├── FT81X_Series_Programmer_Guide.pdf ├── LICENSE ├── Makefile ├── OPL3.docx ├── README.md ├── basic68k.asm ├── gameduino-3x-dazzler.pdf ├── gd2book_v0.pdf ├── merlin-1.0-Basic-bios.srec └── merlin-1.0-artya35t.bit /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | *.d 3 | 4 | # Object files 5 | *.o 6 | *.ko 7 | *.obj 8 | *.elf 9 | 10 | # Linker output 11 | *.ilk 12 | *.map 13 | *.exp 14 | 15 | # Precompiled Headers 16 | *.gch 17 | *.pch 18 | 19 | # Libraries 20 | *.lib 21 | *.a 22 | *.la 23 | *.lo 24 | 25 | # Shared objects (inc. Windows DLLs) 26 | *.dll 27 | *.so 28 | *.so.* 29 | *.dylib 30 | 31 | # Executables 32 | *.exe 33 | *.out 34 | *.app 35 | *.i*86 36 | *.x86_64 37 | *.hex 38 | 39 | # Debug files 40 | *.dSYM/ 41 | *.su 42 | *.idb 43 | *.pdb 44 | 45 | # Kernel Module Compile Results 46 | *.mod* 47 | *.cmd 48 | .tmp_versions/ 49 | modules.order 50 | Module.symvers 51 | Mkfile.old 52 | dkms.conf 53 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "merlin_toolchain"] 2 | path = merlin_toolchain 3 | url = https://github.com/mattuna15/merlin-68k-toolchain.git 4 | [submodule "merlin_software"] 5 | path = merlin_software 6 | url = https://github.com/mattuna15/merlin-software.git 7 | [submodule "merlin_hardware"] 8 | path = merlin_hardware 9 | url = https://github.com/mattuna15/zed-68k.git 10 | -------------------------------------------------------------------------------- /EhBASIC-manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattuna15/merlin/fc38c105274b5b78809ee343f15b055bda0535ec/EhBASIC-manual.pdf -------------------------------------------------------------------------------- /FT81X_Series_Programmer_Guide.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattuna15/merlin/fc38c105274b5b78809ee343f15b055bda0535ec/FT81X_Series_Programmer_Guide.pdf -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 2-Clause License 2 | 3 | Copyright (c) 2020, Turbocharged Homebrew 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 20 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 23 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | 2 | basic68k.run: basic68k.asm 3 | 4 | m68k-elf-as -m68000 -mri basic68k.asm -o basic.o 5 | 6 | m68k-elf-ld -o newbas.run basic.o -O3 -L/opt/m68k-elf/m68k-elf/lib/m68000 -L/opt/m68k-elf/lib/gcc/m68k-elf/10.3.1/m68000 -T /opt/m68k-elf/m68k-elf/lib/m68000/ts2.ld -Map=basic.map 7 | 8 | 9 | 10 | 11 | clean: 12 | $(RM) basic68k.run basic68k_even.run basic68k_odd.run basic68k.lst basic68k.hex -------------------------------------------------------------------------------- /OPL3.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattuna15/merlin/fc38c105274b5b78809ee343f15b055bda0535ec/OPL3.docx -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Merlin 2 | ## Learn how to create your own 32-bit system from scratch. 3 | 4 | https://hackaday.io/project/180536-merlin 5 | 6 | A flexible, open platform to learn or develop 32-bit hardware or software using either a physical or FPGA solution. 7 | 8 | The project uses a modular design to allow you to extend or move in different directions should you so wish. At it's heart is the core of a Multicomp system from Grant Searle. http://searle.x10host.com/Multicomp/index.html 9 | 10 |
11 | Screenshot 2021-06-13 at 15 45 34 12 | Screenshot 2021-06-25 at 12 44 19 13 |
14 | 15 | IDE: 16 | * New GCC version of EHBasic with FAT32 extensions. 17 | - Compiles using standard m68k toolchain. 18 | - Requires Merlin Newlib and Bios. 19 | * [Easy68K] (http://www.easy68k.com/moreinfo.htm) 20 | * GCC M68K (https://github.com/mattuna15/merlin-68k-toolchain) 21 | - Full working C/C++ environment (including Newlib) 22 | - Assembler support with Vasm 23 | 24 |
25 | 26 | Hardware: 27 | 28 | - FPGA: ARTY A7-35T https://store.digilentinc.com/arty-a7-artix-7-fpga-development-board/ (Required) 29 | - TCPIP/Telnet server hardware accelerated 30 | - GFX: Gameduino Dazzler Arduino shield https://excamera.com/sphinx/store.html#gameduino-3x-dazzler-for-arduino-39 (optional) 31 | - Sound: OPL3 Duo https://www.tindie.com/products/cheerful/opl3-duo/ (or any OPL2/3 boards) (optional) 32 | - RTC: https://store.digilentinc.com/pmod-rtcc-real-time-clock-calendar/ (or any mcp794xx RTC i2c) (optional) 33 | - SD Card: https://store.digilentinc.com/pmod-microsd-microsd-card-slot/ (or any SPI sd card) (optional) 34 | - Keyboard: https://store.digilentinc.com/pmod-ps2-keyboard-mouse-connector/ (or any PS2 interface card) (optional) 35 | 36 | - Console is via usb-uart. Software upload via monitor over ethernet for speed. 37 | 38 |
39 | 40 | VHDL: 41 | 42 | https://github.com/mattuna15/zed-68k/tree/arty-gd 43 | 44 |
45 | 46 | CPU: 47 | 48 | * Framework Multicomp amended to 24bit addresses 49 | 50 | * TG68 - 68010 CPU (heavily modified) 51 | 52 | * VGA/HDMI - Gameduino 3X Dazzler 53 | 54 | * Basic - EHBasic 68k (Now running within GCC) 55 | 56 | * Board - ARTY A7-35/100T 57 | 58 | * Sound - Twin OPL3 chips (FM) Gameduino PCM 59 | 60 | * Support for twin SPI Fram chips for external rom storahe 61 | 62 | * PS2 keyboard. 63 | 64 |
65 | 66 | Storage: 67 | 68 | * FAT32 SDHC Card support with C Fat Library 69 | * TELNET Server with support for S-Record upload via Monitor rom 70 | * FRAM SPI non-volatile memory 71 | 72 |
73 | 74 | Software Examples & drivers: 75 | * https://github.com/mattuna15/merlin-software 76 | 77 | [Turbocharged Homebrew](https://www.facebook.com/groups/1609879555846636/) 78 | 79 | [License](https://raw.githubusercontent.com/mattuna15/merlin/master/LICENSE) 80 | 81 |
82 | Project acknowledgments:
83 | https://github.com/kanpapa/mic68k
84 | https://github.com/ProfKelly/EASy68K
85 | https://github.com/TobiFlex/TG68K.C
86 | http://searle.x10host.com/Multicomp/index.html
87 | https://www.retrobrewcomputers.org/doku.php?id=boards:sbc:multicomp:papilio-duo:start
88 | https://github.com/MJoergen/dyoc
89 | https://github.com/jefftranter/68000
90 | 91 |
92 | License: 93 | 94 | “By downloading these files you must agree to the following: The original copyright owners of ROM contents are respectfully acknowledged. Use of the contents of any file within your own projects is permitted freely, but any publishing of material containing whole or part of any file distributed here, or derived from the work that I have done here will contain an acknowledgement back to myself, Grant Searle, and a link back to this page. Any file published or distributed that contains all or part of any file from this page must be made available free of charge.” - http://searle.x10host.com/Multicomp/index.html 95 | -------------------------------------------------------------------------------- /gameduino-3x-dazzler.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattuna15/merlin/fc38c105274b5b78809ee343f15b055bda0535ec/gameduino-3x-dazzler.pdf -------------------------------------------------------------------------------- /gd2book_v0.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattuna15/merlin/fc38c105274b5b78809ee343f15b055bda0535ec/gd2book_v0.pdf -------------------------------------------------------------------------------- /merlin-1.0-artya35t.bit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattuna15/merlin/fc38c105274b5b78809ee343f15b055bda0535ec/merlin-1.0-artya35t.bit --------------------------------------------------------------------------------