Self Relocating Program

Bruce Ediger

Once upon a time, I wrote a reasonably-strict-C89 C language program that “relocates” a function in memory and then runs it. That relocated function can relocate itself again, and run that copy, and so on and so forth.

Github repo for this program

My First Z80 Program

Bruce Ediger

I wrote a Z80 assembly program for my RC2014 Zed computer. I wanted to get a complete CP/M experience, so I used the CP/M 2.2 ASM assembler, LOAD relocator, and the DDT debugger.

I did cheat a little. Although I used the vintage RED editor for some text input, I also wrote some on my Linux laptop, and transferred to the RC2014 Zed via XMODEM.

CP/M and VAX/VMS Memory Layout

Bruce Ediger

It’s often said that DEC operating systems influenced the design of the CP/M microcomputer OS. Let’s examine that assertion by looking at how a process was laid out in memory.