Problem: Calling "cdecl" callback functions with Delphi 1.0

I'm developing a 16-bit application in Delphi 1.0 that needs to
call a callback function (given a pointer to the function) that has a
calling convention of "cdecl".

In Delphi 2.0 I can define a callback function type like:
    CBKFUNC = function(
      param1 : integer; param2 : PChar
      ): Integer; cdecl;
And later on I can call the function like:
    RetCode := pfn(2, Buffer);
where pfn is passed as an argument and is declared as type CBKFUNC.

It all works fine in Delphi 2.0.  With Delphi 1.0, it stops compiling
when it hits the "cdecl", saying that a "=" is expected.  I haven't been
able to find a way around this problem, and was wondering if anyone out
there could help me.

I'm trying to use an assembler function right now to push and pop the
arguments correctly, but what I have (shown below) doesn't seem
to work right.  Is there anyone out there that knows what is wrong
with it?
function CFN(pfn : CBKFUNC; param1 : Integer; param2 : PChar)
  : Integer; assembler
  PUSH param2.Word[2]
  PUSH param2.Word[0]
  PUSH param1
  CALL pfn
  ADD SP, 6
{ Note that the function called with pfn stores its result in AX. }

 - Robin