This archive contains disk images of Don Worth’s Zap, Fixcat and Linker. Zap is a sector editor loaded with great features. FixCat is a tool designed to repair damaged disk CATALOGs. Both programs are part of “Bag of Tricks”. I included the Linker image with this archive because, as Don explains:
Zap and FixCat source files were set up to run through my Linker program. So there were a lot of little source files that hooked together on both sides of the source diskette.
Don also gives us a little background on Linker:
I was a systems programmer at UCLA and was used to doing development with an assembler and a linkage editor. We had source code in small pieces – each “module” was an independent subroutine with its source stored in a separate text file. When we wanted to change something, all we had to do was edit one little file and reassemble it, the run it through the linkage editor which would combine it with all the other previously assembled modules to create the final product. This is similar in concept to a “build” in more modern terms. Some of my programs on the Apple were pretty large, and I didn’t want to be always having to reassemble the whole thing just to make tiny changes. And, I wanted to be able to reuse subroutines (such as disk and file access) in more than one program. That’s why I wrote Linker.
You would set up a jump table in your code for all the subroutines you wanted linked to your program, and put a special binary code there so Linker could find it in your assembled binary file. Then you would store all the binary files on a diskette with their file names matching the names of the subroutines. You ran Linker and put in the top-most calling program (your main program) and Linker would find the jump table and start looking on the disk for the subroutine binaries. As it found them it assembled a bigger jump table, combining all their calls as well, and resolving the addresses in the resulting conglomerate of modules recursively. If you needed to, you could switch diskettes (or flip one over) to access more binary subroutine files until you had all of them included. It was an automated process. When you were done, you could bsave the memory locations where the resulting “build” had been created for a runnable binary.
I was always more proud of Linker than Zap or any of my other programs.