ファミコンって、Memory-maped I/Oって言って、指定したアドレスに書き込んだり読み出したりすると、ハードウェアに指示ができたり、状態を取得したりできたのね。
https://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%9E%E3%83%83%E3%83%97%E3%83%89I/O
だから、メモリを、アドレスを指定してアクセスするっていうのを覚えるのは早かった。ベーシックの段階でそれを使っていた。
ベーシックでできることに限界を感じた頃、マシン語に手を出すんだけど、これも少ないCPUのレジスタをやりくりしながら、メモリから読み出して、計算したり判定して、メモリに書き込むっていうロジックを延々と書くモノだった。
ゼロページを駆使して、そこにインデックスでアクセスする。
そういうのをやってから、C言語を覚えたので、MASMをさらに高性能にした、簡単にマシン語が書ける凄い言語という認識で、構造体とか配列とかポインタというのも、シンタックスシュガーだという認識だった。
いまは、こういう順序でC言語に触れるのは無理だと思うので、自分達の世代の優位点だな、と思っている。