! Pascal interface to EDWIN.
external string (63) fn spec ERROR alias "EDWIN_ERROR" (integer X)
external routine spec TERMINATE alias "EDWIN_TERM"
external routine TERMINATE EDWIN
TERMINATE
end
external routine spec INITIALISE alias "EDWIN_INIT" (integer DEVICE TYPE)
external routine INITIALISE FOR (integer DEVICE TYPE)
on 14 start
Terminate
Print string ("EDWIN error - ".error(event_sub))
newline
stop
finish
INITIALISE (DEVICE TYPE)
end
external routine spec MOVE A alias "EDWIN_MOVE_ABS" (integer X, Y)
external routine MOVE ABS (integer X, Y)
MOVE A (X, Y)
end
external routine spec MOVE R alias "EDWIN_MOVE_REL" (integer DX, DY)
external routine MOVE REL (integer DX, DY)
MOVE R (DX, DY)
end
external routine spec LINE A alias "EDWIN_LINE_ABS" (integer X, Y)
external routine LINE ABS (integer X, Y)
LINE A (X, Y)
end
external routine spec LINE R alias "EDWIN_LINE_REL" (integer DX, DY)
external routine LINE REL (integer DX, DY)
LINE R (DX, DY)
end
external routine spec MARKER A alias "EDWIN_MARK_ABS" (integer N, X, Y)
external routine MARKER ABS (integer N, X, Y)
MARKER A (N, X, Y)
end
external routine spec MARKER R alias "EDWIN_MARK_REL" (integer N, DX, DY)
external routine MARKER REL (integer N, DX, DY)
MARKER R (N, DX, DY)
end
external routine spec CHAR alias "EDWIN_CHAR" (integer SYM)
external routine CHARACTER (integer SYM)
on 14 start
Terminate
Print string ("EDWIN error - ".error(event_sub))
newline
stop
finish
CHAR (SYM&255)
end
external routine spec WIPE alias "EDWIN_NEW_FRAME"
external routine NEW FRAME
WIPE
end
external routine spec UPD alias "EDWIN_UPDATE"
external routine UPDATE
UPD
end
external routine spec C ON alias "EDWIN_CLIP_ON"
external routine CLIP ON
C ON
end
external routine spec C OFF alias "EDWIN_CLIP_OFF"
external routine CLIP OFF
C OFF
end
external routine spec S ON alias "EDWIN_STORE_ON" (integer STREAM)
external routine STORE ON (integer STREAM)
S ON (STREAM)
end
external routine spec S OFF alias "EDWIN_STORE_OFF"
external routine STORE OFF
S OFF
end
external routine spec V ON alias "EDWIN_VIEW_ON" (integer STREAM)
external routine VIEW ON (integer STREAM)
V ON (STREAM)
end
external routine spec V OFF alias "EDWIN_VIEW_OFF"
external routine VIEW OFF
V OFF
end
external routine spec ASR alias "EDWIN_ASPECT_RATIO" (integer MODE)
external routine ASPECT RATIOING (integer MODE)
ASR (MODE)
end
external routine spec WIN alias "EDWIN_WINDOW" (integer XL, XR, YB, YT)
external routine WINDOW (integer XL, XR, YB, YT)
on 14 start
Terminate
Print string ("EDWIN error - ".error(event_sub))
newline
stop
finish
WIN (XL, XR, YB, YT)
end
external routine spec VIEWP alias "EDWIN_VIEWPORT" (integer XL, XR, YB, YT)
external routine VIEWPORT (integer XL, XR, YB, YT)
on 14 start
Terminate
Print string ("EDWIN error - ".error(event_sub))
newline
stop
finish
VIEWP (XL, XR, YB, YT)
end
external routine spec S COLOUR alias "EDWIN_SET_COLOUR" (integer COLOUR)
external routine SET COLOUR (integer COLOUR)
S COLOUR (COLOUR)
end
external routine spec S COLOUR MODE alias "EDWIN_SET_COL_MODE" (integer MODE)
external routine SET COLOUR MODE (integer MODE)
S COLOUR MODE (MODE)
end
external routine spec S LINE STYLE alias "EDWIN_SET_STYLE" (integer STYLE)
external routine SET LINE STYLE (integer STYLE)
S LINE STYLE (STYLE)
end
external routine spec S CHAR SIZE alias "EDWIN_SET_CHAR_SIZE" (integer SIZE)
external routine SET CHAR SIZE (integer SIZE)
S CHAR SIZE (SIZE)
end
external routine spec S MARKER SIZE alias "EDWIN_SET_MARK_SIZE" (integer S)
external routine SET MARKER SIZE (integer S)
S MARKER SIZE (S)
end
external routine spec S CHAR ROT alias "EDWIN_SET_CHAR_ROT" (integer ROT)
external routine SET CHAR ROT (integer ROT)
S CHAR ROT (ROT)
end
external routine spec S CHAR QUALITY alias "EDWIN_SET_CHAR_QUAL" (integer WHICH)
external routine SET CHAR QUALITY (integer WHICH)
S CHAR QUALITY (WHICH)
end
external routine spec S CHAR FONT alias "EDWIN_SET_CHAR_FONT" (integer WHICH)
external routine SET CHAR FONT (integer WHICH)
S CHAR FONT (WHICH)
end
external routine spec S CHAR SLANT alias "EDWIN_SET_CHAR_SLANT"(integer ANGLE)
external routine SET CHAR SLANT (integer ANGLE)
S CHAR SLANT (ANGLE)
end
external routine spec S CHORD STEP alias "EDWIN_SET_CHORD_STEP" (integer TO)
external routine SET CHORD STEP (integer TO)
S CHORD STEP (TO)
end
external routine spec S SHADE MODE alias "EDWIN_SET_SHADE_MODE" (integer TO)
external routine SET SHADE MODE (integer TO)
S SHADE MODE (TO)
end
external routine spec REV alias "EDWIN_REVIEW"
external routine REVIEW
on 14 start
Terminate
Print string ("EDWIN error - ".error(event_sub))
newline
stop
finish
REV
end
external routine spec GET POSITION alias "EDWIN_INQ_POSITION" (integer name X, Y)
external routine INQUIRE POSITION (integer name X, Y)
GET POSITION (X, Y)
end
external routine spec GET WINDOW alias "EDWIN_INQ_WINDOW" (integer name XL, XR, YB, YT)
external routine INQUIRE WINDOW (integer name XL, XR, YB, YT)
GET WINDOW (XL, XR, YB, YT)
end
external routine spec GET VIEWPORT alias "EDWIN_INQ_VIEWPORT" (integer name XL, XR, YB, YT)
external routine INQUIRE VIEWPORT (integer name XL, XR, YB, YT)
GET VIEWPORT (XL, XR, YB, YT)
end
external routine spec MAP TO DEVICE C alias "EDWIN_MAP_TO_DCS" (integer name X, Y)
external routine MAP TO DEVICE COORDS (integer name X, Y)
MAP TO DEVICE C (X, Y)
end
external routine spec MAP TO VIRTUAL C alias "EDWIN_MAP_TO_VCS" (integer name X, Y)
external routine MAP TO VIRTUAL COORDS (integer name X, Y)
MAP TO VIRTUAL C (X, Y)
end
external routine spec REQUEST CUR alias "EDWIN_REQUEST" (integer name STATE, X, Y)
external routine REQUEST INPUT (integer name S, X, Y)
on 14 start
Terminate
Print string ("EDWIN error - ".error(event_sub))
newline
stop
finish
REQUEST CUR (S, X, Y)
end
external routine spec SAMPLE CUR alias "EDWIN_SAMPLE" (integer name STATE, X, Y)
external routine SAMPLE INPUT (integer name S, X, Y)
on 14 start
Terminate
Print string ("EDWIN error - ".error(event_sub))
newline
stop
finish
SAMPLE CUR (S, X, Y)
end
external routine spec AREA CUR alias "EDWIN_AREA" (integer name XL, YB, XR, YT)
external routine AREA INPUT (integer name XL, YB, XR, YT)
on 14 start
Terminate
Print string ("EDWIN error - ".error(event_sub))
newline
stop
finish
AREA CUR (XL, YB, XR, YT)
end
external routine spec REQUEST DEV alias "EDWIN_REQUEST_DEV" (integer name STATE, X, Y)
external routine REQUEST DEVICE (integer name S, X, Y)
on 14 start
Terminate
Print string ("EDWIN error - ".error(event_sub))
newline
stop
finish
REQUEST DEV (S, X, Y)
end
external routine spec SAMPLE DEV alias "EDWIN_SAMPLE_DEV" (integer name STATE, X, Y)
external routine SAMPLE DEVICE (integer name S, X, Y)
on 14 start
Terminate
Print string ("EDWIN error - ".error(event_sub))
newline
stop
finish
SAMPLE DEV (S, X, Y)
end
external routine spec AREA DEV alias "EDWIN_AREA_DEV" (integer name XL, YB, XR, YT)
external routine AREA DEVICE (integer name XL, YB, XR, YT)
on 14 start
Terminate
Print string ("EDWIN error - ".error(event_sub))
newline
stop
finish
AREA DEV (XL, YB, XR, YT)
end
external routine spec DRIVE DEV alias "EDWIN_DRIVE_DEV" (integer COM, X, Y)
external routine DRIVE DEVICE (integer COM, X, Y)
DRIVE DEV (COM, X, Y)
end
external integer fn spec DEFAULT DEV alias "EDWIN_DEFAULT_DEV"
external integer fn DEFAULT DEVICE
result = DEFAULT DEV
end
! PASCAL integerface to the EDWIN shape utility routines.
record format POINTFM (integer X, Y)
external routine spec Z SET WIRE MODE alias "EDWIN_SET_WIRE_MODE" (integer MODE)
external routine spec Z SET COLOUR MAP alias "EDWIN_SET_COLOUR_MAP" (integer ADR, RED, BLUE, GREEN)
external routine spec Z ARC alias "EDWIN_ARC" (integer OX, OY, RAD, START ANG, END AND)
external routine spec Z SECTOR alias "EDWIN_SECTOR" (integer OX, OY, RAD, START ANG, END AND)
external routine spec Z CIRCLE alias "EDWIN_CIRCLE" (integer RAD)
external routine spec Z RECTANGLE alias "EDWIN_RECTANGLE" (integer XL, YL, XU, YU)
external routine spec Z BOX alias "EDWIN_BOX" (integer L, W, record (POINTFM) name C, D)
external routine spec Z WIRE alias "EDWIN_WIRE" (integer W, NP, record (POINTFM) array name P)
external routine spec Z POLYGON alias "EDWIN_POLYGON" (integer NP, record (POINTFM) array name P)
external routine SET WIRE MODE (integer MODE)
Z SET WIRE MODE (MODE)
end
external routine ARC (integer OX, OY, RAD, SA, EA)
Z ARC (OX, OY, RAD, SA, EA)
end
external routine SECTOR (integer OX, OY, RAD, SA, EA)
Z SECTOR (OX, OY, RAD, SA, EA)
end
external routine CIRCLE (integer RAD)
Z CIRCLE (RAD)
end
external routine RECTANGLE (integer LX, HX, LY, HY)
Z RECTANGLE (LX, HX, LY, HY)
end
external routine BOX (integer L, W, record (POINTFM) name C, D)
Z BOX (L, W, C, D)
end
external routine WIRE (integer W, NE, record (POINTFM) name PN)
record (POINTFM) array P (1:NE)
integer I, PP
PP = ADDR (PN)
for I = 1, 1, NE cycle
P(I) = RECORD (PP)
PP = PP + 8
repeat
Z WIRE (W, NE, P)
end
external routine POLYGON (integer NE, record (POINTFM) name PN)
record (POINTFM) array P (1:NE)
integer I, PP
PP = ADDR (PN)
for I = 1, 1, NE cycle
P(I) = RECORD (PP)
PP = PP + 8
repeat
Z POLYGON (NE, P)
end
external routine SET COLOUR MAP (integer A, C1, C2, C3)
Z SET COLOUR MAP (A, C1, C2, C3)
end
external routine spec TEXT alias "EDWIN_TEXT" (string (255) S)
external routine Edwin Write (integer I, P)
Text (ItoS(I,P))
end
external routine Edwin Print (long real R, integer BP, AP)
Text (RtoS(R, BP, AP))
end
end of file