Contributor: JANOS SZAMOSFALVI { |³-> You can allocate some memory and put all your parameters there, then |³-> pass a pointer which points to this memory block. You have to |³-> setup some convention if you want to pass different types, or |³-> parameters with different length. |³ |³Well how do I do that in Pascal- I really think that I might be better |³off making the function in C and then compiling it out to an object file |³and then linking it into pascal Mixed language programming is tricky and difficult unless the compilers explicitely support it. |³but I am not sure that that will even |³work I might just abandon Pascal and learn C Good luck!|³(even though the SYNTAX rules for C are based on Pascal anyhow) ^^^^^^^^^^^^^^^ Hmmmm..... Anyway, here's a quick and dirty example (untested) about passing pointers and variable # of parameters. } PROGRAM Pass_Pointer; {Compiled with TP _3.01A_} TYPE Short_String = STRING[15]; CONST max_count = 13; terminator : Short_String = #0#0#0#0#0#0#0#0#0#0#0#0#0#0#0; TYPE String_Array = ARRAY [0..max_count] OF Short_String; Pointer = ^String_Array; VAR star : Pointer; sstr : Short_String; count, i : INTEGER; PROCEDURE Receiver (P : pointer); BEGIN i := 0; WHILE (P^[i] <> terminator) AND (i < max_count) DO BEGIN writeln(P^[i]); i := i + 1; END; END; BEGIN count := 0; New (star); REPEAT write('Enter a short string: '); readln(sstr); star^[count] := sstr; count := count + 1; UNTIL (sstr = '') OR (count >= max_count); IF count < max_count THEN star^[count - 1] := terminator; Receiver(star); END.