/***************************************************
  FIB.C using a WATCOM version 9.0 32-bit Compiler
  Sample 16-bit DLL for S-PLUS for Windows 3.2
***************************************************/
#include <windows.h>

void FAR PASCAL fib (long *n);

int PASCAL
WinMain (HANDLE hInstance, HANDLE hPrevInstance, LPSTR lpszCmdLine,
         int nCmdShow)
{
     if (DefineDLLEntry(1, void *)fib, DLL_DWORD, DLL_ENDLIST) != 0)
         return (0);
     return (1);
}

long
fibiter (long a, long b, long c)
{
     if (c <= 0L) return b;
     else return fibiter (a + b, a, c - 1);
}

void FAR PASCAL
fib (LPLONG n)
{
     long far *fpn;
     fpn = MK_FP32(n);
     *fpn = fibiter (1, 0, *fpn);
}
