I'm not having any luck writing a switch stub for passing a real number from cm pascal/v to nm c/ix. The c code doesn't get the number or change the number (via the parameter list). It looked easy enough in the manuals, although, I'm not that experienced in either pascal or c. Thanks - Jim 1. source for pascal/v (version hp32106 a.01.32): $segment 'TESTLIB', subprogram$ PROGRAM x; TYPE smlint = -32768..32767; FUNCTION HPSWTONMNAME : INTEGER; INTRINSIC; PROCEDURE testfunc (VAR X1 : real); VAR returnstat: INTEGER; procname: PACKED ARRAY [1..8] OF CHAR; procnamelen: smlint; libname: PACKED ARRAY [1..8] OF CHAR; libnamelen: smlint; numparms: smlint; arglistarray: ARRAY [1..1] OF smlint; argdescary: ARRAY [1..1] OF smlint; functype: smlint; BEGIN X1 := 2.2; procname := 'testfunc'; procnamelen := 8; libname := 'SWXLR'; libnamelen := 5; numparms := 1; functype := 0; arglistarray[1] := BADDRESS (X1); argdescary[1] := 5; returnstat := HPSWTONMNAME (procname, procnamelen, libname, libnamelen, numparms, arglistarray, argdescary, functype); END; BEGIN END. 2. source for c/ix (version hp31506 a.05.10, compiled with ;info="-Aa"): /* all header files included, just not listed */ #pragma intrinsic HPFPCONVERT void testfunc(float *x1) { float x2; short sformat,dformat; sformat=1; dformat=3; HPFPCONVERT(&x1,&x2,sformat,dformat); printf("parm rec'd = %f\n",x2); x2=3.3; sformat=3; dformat=1; HPFPCONVERT(&x2,&x1,sformat,dformat); return; }