Browse Source

Added some documentation for the interface between C and Pascal.
This was necessary because the format of Pascal and C procedure
pointers differ from now on.

keie 39 years ago
parent
commit
e75b8772ca
1 changed files with 30 additions and 0 deletions
  1. 30 0
      doc/pcref.doc

+ 30 - 0
doc/pcref.doc

@@ -413,6 +413,36 @@ for parameters. Some EM implementations check this:
 \*(ONnot checked.
 .I2
 not checked.
+.IE
+.PP
+For those who wish the use the interface between C and Pascal we
+give an incomplete list of corresponding formal parameters in C and Pascal.
+.sp 1
+.ta 8 37
+.nf
+	Pascal	C
+	a:integer	int a
+	a:char	int a
+	a:boolean	int a
+	a:real	double a
+	a:^type	type *a
+	var a:type	type *a
+	procedure a(pars)	struct {
+		     void (*a)() ;
+		     char *static_link ;
+		}
+	function a(pars):type	struct {
+		     type (*a)() ;
+		     char *static_link ;
+		}
+.fi
+The Pascal runtime system uses the following algorithm when calling
+function/procedures passed as parameters.
+.nf
+.ta 8 16
+	if ( static_link ) (*a)(static_link,pars) ;
+	else               (*a)(pars) ;
+.fi
 .IT 6.7.2.1
 The order of evaluation of the operands of a dyadic operator
 shall be implementation-dependent.