4 ms·
I just find the concept of programming at such a low level fascinating. Stripping away all the complexities, boilerplate, and niceties of modern programing and
by gimmemahlulz 6y ago
I just find the concept of programming at such a low level fascinating. Stripping away all the complexities, boilerplate, and niceties of modern programing and ending up with a system like this where you go from directly modifying the contents of memory, to playing a fully fledged game written in basic is amazing.
A good reminder that at the end of the day all this CS stuff is just ones and zeros in a chip.
- CliffStoll 6y agoSends me back to programing a PDP-11/40 around 1972. Managed to get a lunar lander program to work, although the console was a teletype (not a cool video screen)
- danielrpa 6y agoThis is the computing I fell in love with back in the 80s/90s, when I could realistically understand most, if not all about a given computer (that applies mostly to 80s computers). Nothing wrong with the stuff we do today, but I think some of the "magic" of fully mastering a computer and seeing all those raw commands executing at lightning speed (relatively speaking!) was lost.
- Polylactic_acid 6y agoIts not lost, Its now microcontroller/arduino programming. Its a lot of fun to write code for something so direct to the hardware. There is no OS, no security, no multi tasking. You just write a bit to a certain memory address linked to a pin and motor go brrr.
- WWLink 6y agoSometimes I think the higher end embedded chips are even more fun, because you have an FPGA with shared memory to the processor and tons of IO pins. You can do some truly ridiculous things, including emulating other processors in the fpga fabric hehe.
- Polylactic_acid 6y agoI haven't tried FPGAs yet, just doing basic AVR programming with GCC-AVR and avrdude. Do FPGAs have an open source/hobby community around them like AVR does? I have heard bad things about FPGA companies being old fashioned/secretive.
- opencl 6y agoIt's true that the FPGA vendors are very secretive, often to the point of requiring NDAs for access to datasheets and toolchains. There is open source tooling for some FPGAs and a fairly small but very helpful community around it. Yosys, IceStorm, SymbiFlow, and nmigen are the major projects in the space that I'm aware of.
- AnIdiotOnTheNet 6y ago> Nothing wrong with the stuff we do today, ... Nothing? There are quite a lot of things if you ask me. As much as things are more complicated out of necessity they are also more complicated for completely unnecessary reasons too.
- joefourier 6y agoYou can get an 8-bit MCU if you want to explore that aspect. Modern embedded programming is often on a similar low level, and even on 32-bit MCUs you’re still poking registers and directly accessing memory with no protection. You want to display something on a screen, you can just get yourself a TFT display, write the driver yourself and send a good old fashioned byte array via SPI or parallel. Meanwhile just sending pixels to the screen on a modern PC is not at all straightforward, unless you use a library abstracting everything from you.
- tlb 6y agoI recommend a 32-bit MCU like the Atmel AVR32 instead of 8 bit. The 32-bit ones aren't conceptually any more complicated. In fact, 8-bits adds a lot of complexity in doing arithmetic and updating registers with multiple single-byte writes. Typical AVR32s give you 32 bits, 33 MHz RISC for $12. That would have been a decent workstation in 1990.
- ChuckNorris89 6y agoDepends what you want to do. 8 bit microcontrollers have the advantage that most of them are 5V devices vs 3.3V on the 32 bit ones and can also sink and source more current on their pins allowing you more flexibility to hook them up directly to USB Power or LEDs or motor drivers without conversion and from my experience are less sensitive to being bricked or inconsistent behavior from non ideal voltages applied to their pins.
- anthk 6y agoYou can use Forth and switch between low and high level on demand. CollapseOS is being rewritten in Forth.
- ximeng 6y agohttps://news.ycombinator.com/item?id=20264848 https://news.ycombinator.com/item?id=20264848 stage0 is a bootstrapping project aimed to make the link from machine code to high level languages more understandable.
- tyingq 6y agoI had the experience you describe playing around with a z80 and asm. You can freeze the CPU with one pin, single step the whole CPU, etc. Or things like swapping memory banks, doing something, then swapping it back and returning to the original codepath. It's neat that it all fits in your head. You can, for any slice in time, walk through all the pin states, registers, memory locations, etc...and fully understand why they are all in the state they are.
- larrydag 6y agoWhat is neat about these demonstrations is how it illustrates that a computer is just a bunch of switches. Computers got better because they were able to jam more switches into a smaller area.
- techopoly 6y agoAgreed. As much as we talk about how programming is manipulation of ideas...at the end of the day it is a very physical process too. You are manipulating actual physical things in this world. This is a fascinating concept to think about. Programming is physics.