Releases: LightslicerGP/Excpute
V2.4 Bad Apple
In the making of this, I realized that PTO was implemented wrong, and takes the port address to write to and THEN the register, which it should be flipped to be register then port, but oh well.
Check the YouTube video's description for more information!
All files for this version of the project are linked below, download the zip and run the Excpute.py file, and enjoy the 2 hour movie!
v2.4 The Final 8 Bit ALU CPU. Fantastic.
v2.4 is my final showcase for the 8 bit version of Excpute. v1 was meant for Minecraft, which as of recently (1.16.26) I've gone back to working on it a little bit to see if its possible to make work, and I've made a tiny bit of progress (see on the Redstone Army discord) but we will have to see what can even happen for that. v2 was meant to be the same thing, but in python, which then expanded to c++ and even an unfinished html/js version, since i was unable to get proper squared, non feathered/anti-aliased pixels. So,
- Now with mouse support, with the ability to get the X and Y positions.
- A WAY better rendering technique, only pushing to the display when necessary, and not every clock cycle.
- added an uncommentable clock cycle counter
Check v2.3.2 to see speed comparisons between that and this version.
Here are some mouse related stuff:
Mouse Pointer Test using the cursor to move around on screen
Mouse.Cursor.mp4
Mouse Drawing Test using lmb to draw white pixels, and rmb to draw black/erase pixels
Black.and.White.Drawing.mp4
Mouse Scrolling Grayscale Drawing Test using the same controls, but up and down arrows to scroll through all grayscale colors (should've put a delay, its hard to select a specific grayscale color lol)
Grayscale.Drawing.mp4
Mouse Scrolling Colored Drawing Test using the same idea, where q, w, e, all go up in red, green, and blue (respectively), and down with a, s, d, respectively
RGB.Scrollable.Drawing.mp4
Mouse Selectable Colored Drawing Test using q all the way to y from low to high value for red, same for a to h for green, and z to n for blue
RGB.Selectable.Drawing.mp4
Here is a list of things I want to improve with v3, the 16 bit version:
- add much better display related stuff
- add many more instructions
- remove the need for opcodes to specify things, just use a different instruction isntead
- ACTUALLY use a binary file, most likely as a memory snapshot
- have storage support
- have (probably bitmap only) font support
- add FULL SUPPORT for multiply and divide
- have an OS made possibly
- have text rendering support
- have compiler compile to v3
- more comparison instructions that ACTUALLY use flags, and not just one register holding flags (as a result of the old v1 cpu legacy flag handling artifacts)
...and probably more i cant think of right now.
Thank you, and Good Luck future me!
V2.3.2 minor update release
- Made a new way to update the cpu, no multithreading (HINT: v2.4 will be on PY, CPP, and JS 👀), follows a update-cpu, update-display, cycle
- Added keyboard input and some sample scripts, "full keyboard" (without numpad) support, with the Keyboard Oriented Character Set (KOCS) system, similar to the Text Editor I had made in MC, but with added control keys like Tab, Enter, Backspace, CTRL, ALT, FN, etc.
- Planning on adding mouse support in v2.4 (probably gonna be backwards compatible with v2.3.x)
- Optimizations (as always)
also, running at 1x scale will ALWAYS be faster than any scaled version, for some reason, idk 💀
v2.4 will modify the SPD system, to allow pushing a buffer (replacing the "remove" property in SPD) so you don't have flicker whenever a pixel moves or updates
v2.4 will ALSO be FASTER than v2.3.2, and (possibly) the multithreaded v2.3.0-v2.3.1 version, and MUCH MUCH faster than v2.2. This will happen by updating the display ONLY when SPD is ran, and ONLY when the buffer is pushed, resulting in unnecessary display updates to not happen
Preview of v2.3.2 compared to v2.4:
OldVSNew.Excpute.mp4
Playing at 4x vs 2x vs 1x:
2024-10-31.15-52-54.mp4
Testing Keyboard Input with Ball Movement
2024-10-31.15-34-42.mp4
V2.3.1 minor update release
Cleaned up some code, still as functional.
LSH now has an optional SetFlag option, if SetFlag is 1, on Carry out it will set the Carry flag.
original on Apr 14th 2024
here was v2.3: https://github.com/LightslicerGP/Excpute/releases/tag/2.3
(all scripts from that still run)
Final (semi-incomplete) v2.3 version
After some time I have been able to make v2.3 complete enough to start on v3, which will be a 32-bit system!
v3 won't include multiply, divide, square, or square root because it would be hard to keep track of decimals and exceed the binary limit or whatever (maybe if I have knowledge in the future I'll update it, but as for now, no.)
The aim for v2.3 was to improve speed, avoiding reading a file for ram, registers, and for the instructions and to do it all locally as variables (thanks to @Nano112 ).
In the Sample Script Sets folder, you can find a ball-bouncing algorithm that took me many hours over the course of 2 days to program, but it works!
Also, the Assembler is much better compared to last time, it's a bit repetitive but it makes sure that a certain set of instructions are followed to assemble the code properly (which I'll also use when making v3 since it's a very robust way of assembling.)
This will be the end of v2, which I'm so glad I actually worked on because it gave me insight into how hard some things already are, but also made me realize how hard things COULD have been.
Enjoy!
2024-04-14.10-53-22.mp4
Final (semi-incomplete) v2.2 version
In favor of having more optimal code (thanks to @Nano112 ) I'll be completing this as finished.
Bad news: I didn't do "multiply" through "square root", but all the other functions (should) work.
But, completed example instructions are in the "assembled scripts" folder and should run perfectly! just.... slow lmao (37 minutes to fill the whole screen with "green to blue gradient")
Enjoy!
Final (incomplete) v2.1 version
Full Changelog: https://github.com/LightslicerGP/Excpute/commits/2.1
working on 2.2 but i want to keep a backup of this version juuuust in case
1/25/24