28.06.2013 Views

ISO Pascal reference manual

ISO Pascal reference manual

ISO Pascal reference manual

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 6<br />

status := GetGlobalString<br />

IF status < 0 THEN<br />

ELSE<br />

(sys_ver, 128, sys_ver_len,<br />

'SYS$Version 11);<br />

WriteLn ('Couldn't get system version...');<br />

BEGIN<br />

Write ('System version: ');<br />

FOR j := 1 TO sys_ver_len DO Write (sys_ver[j]);<br />

END;<br />

WriteLn<br />

2. Calling a Fortran Function from <strong>Pascal</strong> (refer to the Acorn 32000<br />

Fortran 77 Reference Manual).<br />

An integer function FNC with two integer parameters written in Fortran<br />

might be <strong>reference</strong>d from Acorn 32000 (extended) <strong>Pascal</strong> as:<br />

TYPE<br />

IntRef =IInteger;<br />

FNCParams = RECORD p1, p2 : IntRef END;<br />

FNCParamsRef =IFNCParams;<br />

IMPORT FUNCTION FNC (p: FNCParamsRef): IntRef;<br />

and used as:<br />

PROCEDURE LocaIFNC (n1, n2: Integer): Integer;<br />

VAR<br />

rp: IntRef; (NB rp does not point into heap, )<br />

( so no NEW/DISPOSE<br />

param: FNCParamsRef;<br />

BEGIN<br />

NEW (param);<br />

WITH paramiDO BEGIN<br />

NEW (p1); NEW (p2);<br />

p11 := a; p21 := b;<br />

rp := FNC (param);<br />

DISPOSE (p1); DISPOSE (p2)<br />

END;<br />

DISPOSE (param);<br />

42 <strong>Pascal</strong> Issue I

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!