With Delphi5 with DOA 3.45 compos (for D5), I'm able to execute the next code:

procedure TForm1.Button1Click(Sender: TObject);
begin
if pkgTest.CallBooleanFunction
('TEST_DOA_INT_RET_BOOL', ['p_int', 0])
then
Edit1.Text := 'True'
else
Edit1.Text := 'False';
end;

But with Delphi6 with DOA 3.45 compos (for D6), I have the message:

Project Project1.exe raised exception class Exception with message
'Byte parameters can only be used for output parameter types'.
Process stopped. Use Step or Run to continue.

If I use the next code, it works:
procedure TForm1.Button1Click(Sender: TObject);
var
wkInt : Integer;
begin
wkInt := 0;
if pkgTest.CallBooleanFunction
('TEST_DOA_INT_RET_BOOL', ['p_int',
wkInt])
then
Edit1.Text := 'True'
else
Edit1.Text := 'False';
end;

Why???

---------------------------------------------
Here it's the code of my package:
CREATE OR REPLACE PACKAGE TEST IS
FUNCTION TEST_DOA_INT_RET_BOOL(p_Int IN PLS_INTEGER) RETURN BOOLEAN;
END TEST;
/

CREATE OR REPLACE PACKAGE BODY TEST AS

FUNCTION TEST_DOA_INT_RET_BOOL(p_Int IN PLS_INTEGER) RETURN BOOLEAN IS
BEGIN
IF p_Int = 0 THEN
RETURN False;
ELSE
RETURN True;
END IF;
END TEST_DOA_INT_RET_BOOL;

END TEST;
/
---------------------------------------------