This was before the commercial Internet, before TCP/IP, and in a day when no one thought twice about having an open "guest" account on a system because computer security was not an issue. People who played around with computer code and modified system kernels, as opposed to those designing or writing them, were referred to as "hackers". We were professionals who did custom modifications to software and wrote tools to analyze them. At the time I had licensed access to the source code for a variety of systems of that day including AT&T Unix, RSX-11M, IAS, and VMS. Things like custom system calls, an un-delete command, code to allow a co-processor (FPS AP-120B) to directly access a computer's file system. These were what I was paid to do and I, like many I worked with.I called myself a hacker. I hacked code.
When the first transmittable worms, viruses, and trojans appeared, the people who wrote them were also "hackers", but those of us who hacked code legitimately didn't much care to be lumped in with the bad guys, so the term "cracker" was devised. It never really caught on. To most people, hackers are bad guys. It's unfortunate, but the horse has left the barn, and is now dead and continues to be beaten to a rotten pulp.
To this day, in the developer community the term "hacker" retains its original meaning, It's someone who hacks code, often to fix or work around limitations or bugs or to add new functionality. They still hold "hackathons" to work as a group on resolving very complex issues in open source projects and understand what "hacker" means in that context and just live with the fact that the general public has a slightly different idea of whet the word means.