! 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