CHIP-8 was a fun, approachable language. "Hacking" was hand-disassembling the CHIP-8 programs in the user manual.
It was easy to understand how computers were simply more complex TTL and CMOS projects like my father and I built each month from Popular Electronics and Radio Electronics. Dad worked at RCA, programmed in IBM 360 Assembler, FORTRAN, and at that time was helping write the ATLAS language (IEEE 416). Together we learned Tiny BASIC, and this launched my computer business for forty years.
Kudos to all the folks keeping CHIP-8 alive as a vital link from Boole and Shannon thru machine code to the "modern" world.
That made my day!
The C language looks like it simple but it's not, it's just a wonderful deception. C has quite an amount of invisible sharp edges and footguns and its standard library has even more footguns and sharp edges of its own design. And with the approach modern C compilers take to UB, the "It's the access and control that it gives me!" is simply not true; it's the compiler that has all the control which the programmer unwittingly gave to it: "unwittingly", because UB is invisible and since "no diagnostic is required", none is provided unless the programmer specifies -Wall -Wextra -Wpedantic; but of course, those options for some reason are unpopular between those former frontend programmers that recently discovered that they love C.
Normally I’d do something like a simple prefix lookup table with function pointers in C for this but chip8 opcodes require parsing the postfix to fully determine the operation (I.e. 8xy[0..e], where x and y are registers) which requires further parsing than a simple lookup table based on prefix.
However, I do not think that he needs to go so far to explain what a stack does. If you can understand the rest of the text you probably have enough context and knowledge to know that already.
I'm asking because the choice of stack to use is keeping me away from starting my own blog.
https://github.com/arpitbatra123/eleventy-blog-mnml
Choice of stack also kept me away so I decided to just keep it simple!
11ty is pretty close to html/css, but it has the niceties of being able to reuse html where you want.
I recommend to start without a theme, Just make a html file named layout and add {{ content }} And then an md file and put on the top matter layout: <name-of-your-layout>
It’s really all is needed and it’s good to understand how it works (as opposed to jekyll or hugo that I couldn’t figure out because they have a bunch of undocumented assumptions and requirements…)
> 6101 is simply telling the CPU "set V1 (1 comes from the 3rd nibble) to the value of 0c"
Shouldn't it set V1 to 0x01?