Target loading address for cp/m programs
Posted: Sun Apr 05, 2020 8:19 pm
<not certain where to land this>
I am working on a driver that will stay resident after loading. This driver is being written in 'C' using the
zcc commands and tools.
In CP/M 2.2 and 3.0 there is the concept of loading an extension to CP/M and expecting it to stay in memory.
This is done by adjusting the base address of CP/M via altering the low address pointer etc....
Now for the problem. I need to build and link my driver with a load address of say 8000 hex, and have all
the linking work out for that address. Then a loader will be used to place the binary and call an initialization
routine. After that the code should remain in memory and preform its driver functions until CP/M is restarted,
via reboot.
I don't see how this is done with z88dk. I presume the crt0 will need to be tweeked, but how do I tell the compiler/linker
what my address should be ?
tnx
jc
I am working on a driver that will stay resident after loading. This driver is being written in 'C' using the
zcc commands and tools.
In CP/M 2.2 and 3.0 there is the concept of loading an extension to CP/M and expecting it to stay in memory.
This is done by adjusting the base address of CP/M via altering the low address pointer etc....
Now for the problem. I need to build and link my driver with a load address of say 8000 hex, and have all
the linking work out for that address. Then a loader will be used to place the binary and call an initialization
routine. After that the code should remain in memory and preform its driver functions until CP/M is restarted,
via reboot.
I don't see how this is done with z88dk. I presume the crt0 will need to be tweeked, but how do I tell the compiler/linker
what my address should be ?
tnx
jc