[Info-vax] Bliss

Lawrence D'Oliveiro ldo at nz.invalid
Sat Jul 13 02:30:12 EDT 2024


Slightly more elaborate example, doing some environment enquiries:

    module e2 =
    begin

        global routine bmain =
        begin
            external routine putnums;
            putnums
              (
                uplit(%ascii'%%bpval = %d, %%bpunit = %d, %%bpaddr = %d, %%upval = %d', 10, 0),
                %bpval, %bpunit, %bpaddr, %upval
              );
        end;

    end eludom

C driver:

    #include <stdio.h>

    extern void BMAIN();

    void PUTNUMS
      (
        const char * fmt,
        int bpval,
        int bpunit,
        int bpaddr,
        int upval
      )
      {
        fprintf
          (
            stdout, fmt,
            bpval, bpunit, bpaddr, upval
          );
      } /*putnums*/

    int main(void)
      {
        BMAIN();
        return
            0;
      } /*main*/

Output:

    %bpval = 64, %bpunit = 8, %bpaddr = 64, %upval = 8

Slightly annoying that global names must be uppercased.

Also I wonder if I can get varargs to work ...



More information about the Info-vax mailing list