Thanks Noel, Clem for your always generous and highly informative answers. I'll digest that and enjoy using C routines in my assembly programs!

Paul

Paul Riley





On Tue, 29 Jun 2021 at 06:37, Noel Chiappa <jnc@mercury.lcs.mit.edu> wrote:
    > From: Paul Riley <paul@rileyriot.com>

    >> (I wrote a note, BITD, explaining how all this worked; I'll upload it
    >> to the CHWiki when I get a chance.)

Now here:

  https://gunkies.org/wiki/PDP-11_C_stack_operation

along with simple examples of args and auto variables, which are both
referenced via the FP.


    > As a non-C consumer of printf, should I point R5 at some space for a
    > stack and call printf in the same manner as the C example I cited?

Not necessary to do anything with R5 (you can leave it blank); the only things
a PDP-11 C routine needs are:

- a good stack
- the arguments, and return point, on the top of the stack

csv will set up the frame pointer, making no assumptions about the old
contents of R5 - see the source:

  http://ana-3.lcs.mit.edu/~jnc/tech/unix/lib/csv.s

although it does save the old R5 contents, and restore them on exit.

         Noel