Hallo,
es ist schon einige Zeit her, daß ich mehr mit ST Pascal+ gemacht hatte. Deshalb mußte ich mich erst mal wieder reindenken. Aber es ist ganz einfach verständlich:
gemdos() ist keine Funktion! Damit kannst man auch keinen Aufruf machen wie:
iKey:=gemdos($7);
Das würde tatsächlich einen unresolved external geben. gemdos ist ein Schlüsselwort für den Compiler wie begin, end, type, ... und sagt dem Compiler, daß die Funktion, die du vom Typ gemdos deklarierst, über den gemdos Trap mit den von dir angegebenen Parametern aufgerufen wird. Der Ausdruck
function conin:long_integer;
gemdos($7);
deklariert also eine Funktion mit dem Namen conin ohne Parameter mit einem Rückgabewert vom Type long_integer, die der Compiler über Trap 1 mit der Funktionsnummer 7 aufrufen soll, anstatt das man selbst den Code schreibt. Wäre gemdos() eine Funktion, wäre diese Deklaration nicht möglich.
Tschüß
Michael