this post was submitted on 18 Mar 2026
9 points (58.5% liked)

Programming

26163 readers
265 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS
 

To anyone reading, im leaving. The moderation on this place sucks.

I cant tell someone to add authentication to their app I cant tell anyone to self reflect

But people are allowed to bully others out of learning? yeah bye

you are viewing a single comment's thread
view the rest of the comments
[–] interrupt_tv@piefed.world 2 points 2 days ago (1 children)

Oh, that's cool. I hadn't heard of slimevr before.

My use case for the diode ROM board is to take 4 binary input bits (16 possible combinations) and translate them into what segments of a 7-segment LED display should be lit or unlit, in order to display the corresponding hexadecimal digit (0-9, A-F). Like so:

Diode ROM in use

It could be used for any other case where you need to convert a 4-bit input into 16 possible 8-bit outputs. In theory you could use them in multiples for more address space, but I forgot to include an enable pin on the board to allow for that. Something to add to the next version.

[–] comradelux@programming.dev 1 points 2 days ago (1 children)

Maybe I'm not very experienced. Why would someone need a device to translate a 4-bit input to an 8-bit output, is it not just 0110 -> 0000 0110?

[–] interrupt_tv@piefed.world 1 points 2 days ago

Ah, sorry, I could have been more clear there. It can do arbitrary mappings between input values and output values. So for each possible 4-bit value, you can pick a different 8-bit value to be output.

For my case, I'm working with a 7-segment LED display, like the display on a microwave. It's got 7 LEDs arranged to display a number, plus an 8th LED for a decimal point. Like this:


|   |

|   |

.

if the ROM is getting 0000 for its input, it should light up all segments of the 7-segment display except for the horizontal one in the center, to display a zero. Then for the 0001 input, it should light up the two vertical segments on the right, leaving the rest dark, to display a one. And so on. Each output bit goes to a particular segment of the display.

To relate it more directly to programming, it's like having a 16 byte array. The input gives the array index that you want to access, and the output gives whatever byte is at that index.