banner
drsunrosa.bsky.social
@drsunrosa.bsky.social
🔞 onion bean worm bunny destroy explode

wife of mentha

........creatuer.........

pfp karasu-chan
I have once again massively compressed my decoder. this is so fucking epic.
October 31, 2025 at 6:59 AM
here's a register thing i (semi-originally) made, to attract attention to it. the latch design is definitely not mine though. but i like my compact routing of the write-enable.
October 30, 2025 at 1:17 PM
it's register time
October 29, 2025 at 2:09 PM
i realized that the ROM would grow rapidly as control lines and instructions were added, so i instead opted to have separate ROMs for domain-specific lines, like ALU logic. it resulted in massive EPS and space savings
October 29, 2025 at 12:43 PM
it's pretty smart tbh. i strongly considered just doing the CU ROM with a single demuxer, with a single predicate per control line. but i realized that would probably just take up more space and honestly be WAY harder to do anyway.
October 29, 2025 at 11:14 AM
im not a mad woman anymore.. jk, but i dont write csv by hand most of the time (anymore). i just use the vscode extension. but i was close to just doing it by hand TBH. still, VCBTool saves me a lot of time here with making the ROM.
October 29, 2025 at 11:12 AM
i will need SO MANY more lines than this. i anticipate writeback making me go to hell or something. but anyway. it's done for as much as i can conceive right now. i'm pretty drunk on prog though.
October 29, 2025 at 11:10 AM
time to control some control lines
October 29, 2025 at 10:36 AM
whoops my old code was terribly flawed because ret was looking at the A argument instead of the return address
October 28, 2025 at 4:46 PM
well im happy i discovered this
October 28, 2025 at 4:13 PM
im starting to wonder if im insane. i have the ret operation set the returning sp to the outer bp, so not popping is okay? i just don't have a way to do pointer arithmetic inline. it has to be done with so many instructions lol. in normal-people assembly i'm pretty sure it's like "mov [ebp-4], 3"
October 28, 2025 at 3:06 PM
as we can see, the first push, at 0x0C, pushes the return address of %111, which points to the jump at 0x1C since we use 4-byte addressing. also, the arguments are pushed in reverse order, as 3, 2, 1. at 0x1C, we have the jump instruction, to go to %1010, which is 0x2C here. ret is at 0x40.
October 28, 2025 at 2:00 PM
i've since made the calling convention macro pretty nice. it automatically reverses the argument order since they're popped LIFO
October 28, 2025 at 1:56 PM
i'm working on a calling convention. i think it's really cool that customasm lets me statically determine the return address (which MUST be pushed first) by checking the size of the instructions for pushing the arguments. the alternative would be using a dedicated register, which sucks.
October 28, 2025 at 1:35 PM
i actually have no idea how ptr[] and mem[] is used in normal-people assembly. but i made the syntax more explicit to make it easier to learn and remember my own ISA as i look at it
October 28, 2025 at 11:01 AM
Here's my adder as an SVG (left), and a whole CPU someone else made (right). I made the graph with graphviz and VCBTool. It's pretty cool.
October 28, 2025 at 10:21 AM
also (I DIDN'T MAKE THIS ONE) i just wanted to share how satisfying this other cpu someone else made is shaped. it's an inspiration. though its entity density is actually fairly low somehow, even though it looks so compact.
October 28, 2025 at 9:37 AM
the syntax is getting more interesting. i'm using pattern-matched "types" with subruledef for the shit like ptr[x] and mem[x]. i have no idea if this is what it's supposed to look like for nasm/gas/etc. this is fun though. on the bottom are "global variables" i guess you could say, but stack better.
October 28, 2025 at 9:33 AM
i still think my usage of buses in my adder is pretty clever. it might not be the craziest innovation but it was good for a person who had barely 30 hours in VCB (i made this adder many months ago)
October 27, 2025 at 1:42 PM
decided to use online blueprints, as reinventing the wheel is not my intention here. i want to push boundaries. (i did make the adder on the bottom-left). what you see here though is far from pushing anything at all. but i am learning.
October 27, 2025 at 1:37 PM
here was the unfinished 8-bit "cpu" i designed in the past. It only supported two instructions. load into register, and movl. but it runs the program just fine (unless the timing is too fast)
October 23, 2025 at 12:42 AM
i made some counters using (stateful) latch inks. my old 2-stride design was pretty ugly (2nd image)
October 23, 2025 at 12:35 AM
here we go again with designing CPUs
October 22, 2025 at 6:41 AM
It does things now! I made the ALU
June 9, 2025 at 10:47 PM
June 9, 2025 at 8:37 PM