! Fortran interface to EDWIN.
from Edwin include Specs
from Edwin include Types
from Edwin include Shapes
external routine INIT FOR (integer name DEVICE TYPE)
on 14 start
Terminate Edwin
Print string ("EDWIN error - ".Edwin error(event_sub))
newline
stop
finish
INITIALISE FOR (DEVICE TYPE)
end
external routine MOVE A (integer name X, Y)
MOVE ABS (X, Y)
end
external routine MOVE R (integer name DX, DY)
MOVE REL (DX, DY)
end
external routine LINE A (integer name X, Y)
LINE ABS (X, Y)
end
external routine LINE R (integer name DX, DY)
LINE REL (DX, DY)
end
external routine MARK A (integer name N, X, Y)
MARKER ABS (N, X, Y)
end
external routine MARK R (integer name N, DX, DY)
MARKER REL (N, DX, DY)
end
external routine CHAR (integer name SYM)
CHARACTER (SYM)
end
external routine STR ON (integer name STREAM)
STORE ON (STREAM)
end
external routine V ON (integer name STREAM)
VIEW ON (STREAM)
end
external routine ASPECT RAT (integer name MODE)
ASPECT RATIOING (MODE)
end
external routine F WINDOW (integer name XL, XR, YB, YT)
WINDOW (XL, XR, YB, YT)
end
external routine F VIEWPORT (integer name XL, XR, YB, YT)
VIEWPORT (XL, XR, YB, YT)
end
external routine S COLOUR (integer name COLOUR)
SET COLOUR (COLOUR)
end
external routine S COLOUR MODE (integer name MODE)
SET COLOUR MODE (MODE)
end
external routine S LINE STYLE (integer name STYLE)
SET LINE STYLE (STYLE)
end
external routine S CHAR SIZE (integer name SIZE)
SET CHAR SIZE (SIZE)
end
external routine S MARKER SIZE (integer name S)
SET MARKER SIZE (S)
end
external routine S CHAR ROT (integer name ROT)
SET CHAR ROT (ROT)
end
external routine S CHAR QUALITY (integer name WHICH)
SET CHAR QUALITY (WHICH)
end
external routine S CHAR FONT (integer name WHICH)
SET CHAR FONT (WHICH)
end
external routine S CHAR SLANT (integer name ANGLE)
SET CHAR SLANT (ANGLE)
end
external routine S CHORD STEP (integer TO)
SET CHORD STEP (TO)
end
external routine S SHADE MODE (integer TO)
SET SHADE MODE (TO)
end
external routine F DRIVE DEVICE (integer name COM, X, Y)
DRIVE DEVICE (COM, X, Y)
end
external routine S COLOUR MAP (integer name A, B, C, D)
SET COLOUR MAP (A, B, C, D)
end
external routine spec edwin text alias "EDWIN_TEXT" (string (255) STR)
!! A Fortan interface for the routine TEXT on EMAS
!
!%external %routine F TEXT %alias "TEXT" (%integer %name S, N)
! %integer L, M
! %string (255) ST
! L = N&255
! %if L=0 %then ST="" %else %start
! LENGTH(ST) = L
! %begin
! %byte %integer %array %name SBYTE
! %byte %integer %array %format F(1:L)
! SBYTE == ARRAY(ADDR(S),F)
! CHARNO(ST,M) = SBYTE(M) %FOR M=L,-1,1
! %end
! %finish
! EDWIN TEXT (ST)
!%end
! A Fortran interface for the routine TEXT on VMS
record format strgf (short len, thing, integer adr)
external routine ftext alias "TEXT" (record (strgf) name str)
string (255) ds
byte name b
integer I
b == byte integer (str_adr)
ds = ""
ds = ds.to string (b) and b == b[1] for I = 1, 1, str_len
edwin text (ds)
end
end of file