dwayne@rover.bsd.uchicago.edu (08/25/89)
Hey!!!!
Does any know the appropriate calling mechanism for an ast parameter.
I'm declaring the thing like this:
[ASYNCHRONOUS] PROCEDURE uis$set_pointer_ast (
VD_ID0 : UNSIGNED;
WD_ID0 : UNSIGNED;
%IMMED [UNBOUND, ASYNCHRONOUS] PROCEDURE ASTADR;
ASTPRM : UNSIGNED;
X1 : SINGLE;
Y1 : SINGLE;
X2 : SINGLE;
Y2 : SINGLE;
%IMMED [UNBOUND, ASYNCHRONOUS] PROCEDURE EXITASTADR;
EXITASTPRM : UNSIGNED); EXTERNAL;
I'm declaring my ast's like this:
[unbound,ASYNCHRONOUS] PROCEDURE ENT_MENU_AST(slot:integer);
BEGIN
uis$text (VD_ID,1,ITEMS[SLOT],LOCX[SLOT],LOCY[SLOT]);
END;
[unbound,ASYNCHRONOUS] PROCEDURE EXIT_MENU_AST(slot:integer);
BEGIN
uis$text (VD_ID,0,ITEMS[SLOT],LOCX[SLOT],LOCY[SLOT]);
END;
and i'm calling the thing like this:
FOR X:=1 TO NUMITEMS DO
BEGIN
LOCX[X]:=0.1;
LOCY[X]:=(NUMITEMS-X+0.8)/NUMITEMS;
uis$text (VD_ID,0,ITEMS[X],LOCX[X],LOCY[X]);
uis$set_pointer_ast (VD_ID,WD_ID,ENT_MENU_AST,X,
0.0,(NUMITEMS-X+1.0)/NUMITEMS,1.0,(NUMITEMS-X)*1.0/NUMITEMS,EXIT_MENU_AST,X);
END;
I want to pass the value of x back for whichever AST get's answered.
Does any one know what I'm doing wrong??
I get this at compile time, and the debugger verifies that the asts are not getting their parameters:
00157 1 2 uis$set_pointer_ast (VD_ID,WD_ID,ENT_MENU_AST,(X),0.0,(NUMITEMS-X+1.0)/NUMITEMS,1.0,(NUMITEMS-X)*1.0
/NUMITEMS,EXIT_MENU_AST,(X));
1
2
%PASCAL-I-NOFRMINDECL, (1) Declaration of PROCEDURE parameter ASTADR supplied no formal parameter list
%PASCAL-I-NOFRMINDECL, (2) Declaration of PROCEDURE parameter EXITASTADR supplied no formal parameter list
%PASCAL-S-ENDDIAGS, PASCAL completed with 2 diagnostics
Thanks for any help anyone has!!
Dwayne
dwayne@rover.bsd.uchicago.edu