Hacker News new | past | comments | ask | show | jobs | submit login

All you need is memory mapping. You map an ALU/whatever to some memory locations. Move your register to the right input addresses, move out the output.



For a project in an undergrad (3rd year) computer architecture course we had to invent a netlist language, implement a netlist interpreter, and then write a processor in our own netlist language and write an assembly program for that processor that would output a timer (the idea was to produce something fast enough to update the output each second).

With a friend we "invented" exactly what you described. Our original idea started as a joke to make a processor with a single instruction,and when we thought of having registers that would systematically be updated with the results of different operations on two operand registers we understood we could actually do it. So we did. It was a bit tricky and quite slow but it was a lot of fun and we still managed to beat the second at the end =).


Early computers did it a lot more. C64 and the like still had typical instructions, but if you wanted to deal with the video chip, it had lots of sections of memory that you just altered to get the results on screen. Want a character up at the top left? put it's PETSCII code at $0400.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: