Take a look at the Commodore 64 developer manual and quickly realize that without much difficulty, one can learn the full assembly instruction set along with all BASIC commands.
https://www.commodore.ca/manuals/c64_programmers_reference/c...
The machine is completely open to experimentation. You can write to memory anywhere including the active display terminal. The chips are easy to mix, match, swap. Hardware and software is malleable, not a locked-down black box of complexity and TPIM modules!