It happened that I was sometimes reversing/editing/updating existing programs.
One reason was: the program had some copy protection, I was not having the money to get it (as a kid) and I had to give it back to a friend.
This was such a sport at that time ;(
This was bad, but I learned a lot doing so!
I was then finding where in the code such a thing was checked and was changing the bytes from a BEQ, BNE, Bxx (#$6x) to another BRA (#$60) or placing some NOPs (#$4E71) at the right place.
Another reason was that I always liked to check how things were working under the hood…
These experiments were also consisting of replacing a SUB with a NOP when the player was losing a life for instance (quite convenient to allow a weak player like me to still experiment all the levels of a game!).
One good method I was using (can’t believe I was 11 years old at that time) is the Ultimate Ripper cartridge I was plugging in my Atari ST. This was allowing me to freeze the computer at any time and have access to all the memory (kept in the state it was) and parse anything that could worth the case… pretty convenient!
I was also using this method to reverse some demo effect to get the glimpse out of it, or just going here and there in the memory (512 kilobytes could still be apprehended by a human), get the bitmaps and the sounds for instance…
And what mainly remains of it today is this #$4E71 opcode, stuck somewhere in my memory…
It sometimes allows me to find out some fellow companion who reacts to these numbers that make his eyes shine.