customasm
bespokeasm
Our great sponsors
customasm | bespokeasm | |
---|---|---|
10 | 5 | |
680 | 19 | |
- | - | |
7.8 | 6.2 | |
3 months ago | 3 days ago | |
Rust | Python | |
Apache License 2.0 | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
customasm
-
Defining assembly instructions has killed my love of this game ultra fast.
I'm using customasm to write code in Turing Complete.
-
I was making adder circuits in games 8 years ago in an attempt to build a computer. I finally worked my way up and built a working computer!
also if you start writing programs for your own CPUs, use something like CustomASM so you don't have to write in machine code.
-
Vending Machine - FPGA
either way if you plan on doing more CPUs and similar in the future i highly recommend CustomASM.
-
My 8-bit cpu running at full speed
The source code was in Python. I was able to debug it using Arduino-based adapter and (by using some "magic") translate into machine code binary. Since then I've switched to CustomAsm for code compilation and have other means to debug (emulator and debugger tool).
- An assembler for custom, user-defined instruction sets
-
A really good assembler/compiler
Even though technically not an emulators-related post, I'd like to share a tool I've recently learned came across and found to be really useful. It's called customasm and is open source. It can compile assembly of any kind as long as you feed it with (what's called) rules-definition. You can even write a higher level language profile (such as C, sort of) through it, the possibilities are countless, so to say.
-
Programming a breadboard computer via customasm
I've got the documentation in the wiki! https://github.com/hlorenzi/customasm/wiki/User-Guide
-
CUSTOMASM, using customasm is cool (made by hlorenzi). You write some code in assembly in a text editor, assemble, download to the breadboard computer and run it. Changing modifying or extending code goes superfast. Best programming tool sofar. Description of the code in the comment section.
Thanks to hlorenzi, making an assembler is a bunch of work. https://github.com/hlorenzi/customasm
-
Today I finished the RAM module for my 16-bit breadboard computer!
anyways, it might be a good idea to throw the entire project on Github once it's done. stuff like schematics, BOM, details about the function of the CPU, maybe an Assembler (CustomASM is pretty good), also maybe a simulator version in something like Digital or Logisim so that people can look at it, write programs, or rebuild it with different parts and such
-
I was wanting an assembler I can use with my breadboard CPU, but the only one that allowed custom ISAs is Windows only. So, I created my own assembler with Python for custom ISAs, and included a configuration file for the original instruction set of Ben Easter's SAP-1. Still a bit rough, but usable.
I used https://github.com/hlorenzi/customasm along with info from https://www.reddit.com/r/beneater/comments/cori8t/custom_asm_compiler_definition/
bespokeasm
-
Custom 8-bit van Neumann CPU heavily influenced by Ben Eater's design
Cool. If you want to upgrade from your excel/python assembler, you should be able to create a custom ISA with my assembler, BespokeASM: https://github.com/michaelkamprath/bespokeasm
-
slu4's Minimal CPU Build
Of course, I did what I do and I added support for this computer in my BespokeASM customizable assembler. This allowed me to write some larger projects than slu4's "minimal assembler" easily enabled. And with that, I ported my 32-bit primes calculation code to the slu4 Minimal CPU. What I found fascinating is that this code ran about the same speed (the PUTEY-1 is a small bit slower) in terms of how long it takes to find a prime value as the code runs on my PUTEY-1 breadboard TTL running at about one fourth the clock speed (480 KHz vs 1.8432 MHz). I attribute that to the more sophisticated ALU I built in my TTL CPU that does bit shifting (left and right) and value comparisons directly in hardware. Of course, I understand that the Minimal CPU's whole goal is to be minimal, I just still found this comparison interesting.
- I updated my customizable assembler to generate syntax highlighting extension for Visual Studio Code base on your custom instruction set. It also now support syntax for 5 addressing modes and more. With all the advanced TTL CPUs people are making here, I thought some might find this useful.
-
My updated 16 bit memory + updated control logic + memory map controller + 8 bit instruction register is ready to be integrated into my breadboard CPU.
I took have worked on and developed a compiler that is actually read to encode stack operation including indirect value referencing with an address offset to get the mov a, [sp+2] type instructions. You can check it out here: BespokeASM. I have some more development to do with this assembler, notably around macros, includes, and other assembler directives, but the basics for the various addressing modes are in there and the ability to define your instruction set through configuration.
- I was wanting an assembler I can use with my breadboard CPU, but the only one that allowed custom ISAs is Windows only. So, I created my own assembler with Python for custom ISAs, and included a configuration file for the original instruction set of Ben Easter's SAP-1. Still a bit rough, but usable.
What are some alternatives?
logisim-evolution - Digital logic designer and simulator
bronzebeard - Minimal assembler and ecosystem for bare-metal RISC-V development
lam - :rocket: a lightweight, universal actor-model vm for writing scalable and reliable applications that run natively and on WebAssembly
eater-sap-1-improvements - Improvements and modifications made to the Ben Eater SAP-1 breadboard computer
Digital - A digital logic designer and circuit simulator.
PeachPy - x86-64 assembler embedded in Python
riscv-asm - risc-v assembly language
Minimal-UART-CPU-System - Legacy: TTL-only CPU featuring UART I/O, an expansion port, 512KB SSD at up to 10MHz clock speed
rustwasmc - Tool for building Rust functions for Node.js. Combine the performance of Rust, safety and portability of WebAssembly, and ease of use of JavaScript.
first_nes - Create your own games for the Nintendo Entertainment System! This "starter" game is easily extensible for your own projects. Includes references.
java-2-times-faster-than-c - An inquiry into nondogmatic software development. An experiment showing double performance of the code running on JVM comparing to equivalent native C code.
alek - Assembly Learning Environment for Kids