Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

How do I do that? I know about easy6502 but what other projects could I start with?


The type of advice given makes sense if one has either a huge amount of free time (both in the short and long term), or works professionally in that field (like the guest did in the past).

But in real world, that's not something that works. Programming for old platforms is fun and has historical value, but there are a lot of problems that don't make sense today. It's not particularly educative to write lots of lookup tables, or to know optimized (that is, fast enough) 16-bit additions, let alone divisions (and problems like these are typical once one writes something that it's not just a "hello world"). Heck, even programming (optimizing) for a 286 is significantly different from how one would program assembly today.

Having said that, I'm definitely not against learning the lower level, but just to focus on a relevant low level. There are different approaches, but a good starting point to understand modern computers from the bottom up is the series "Write great code" by R.Hyde, volumes 1 and 2.

If one wants to program on 6502 for the sake of programming on 6502, there are plenty of books on archive.org to learn from. It's not easy to find good ones, and they're somewhat hard to read because they're bad scans, but some are very valuable in terms of learning assembly by writing non-trivial, real-world routines.


http://6502.org also has a fine list of resources.


My personal interest would be in reading assembly for the sake of reverse engineering. So, maybe 6502 is not the best option for me. I'll take a look at those books, thanks.


I've programmed a bytecode virtual machine, and while not the same as bare metal assembly, it made it easier for me make sense of assembly (while also greatly benefiting from learning to code the virtual machine). Crafting Interpreters was the book I followed.


Becky recommends Assembly Lines, by Roger Wagner then writing a game for an apple ii emulator. Others have done similar projects with chip-8, which I think is even simpler.


If you want to get into assembly code in general, I can highly recommend getting into CTFs (capture the flag, "competetive" hacking.) It's a lot of fun and if you go for the reversing or pwning tasks, you'll be directed towards x86 assembly almost immediately. There's _loads_ of content (e.g. writeups) to get you started. I remember using the site pwnable.kr quite a bit :)


https://www.chibiakumas.com/ is an excellent ressource




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

Search: