! EDREVIEW - The EDWIN PDF reviewing routine
!############################################################################
!# #
!# This is a module from the EDWIN Graphics Package, which was developed #
!# in the Department of Computer Science, at Edinburgh University, from #
!# 1978 to the present day, release 5 of EDWIN in October 1984. #
!# #
!# The principal author of the EDWIN Graphics Package was J Gordon Hughes, #
!# while working for the Edinburgh University Computer Sceince Department. #
!# Parts of EDWIN have been produced by many different people, too many #
!# too mention, working for different departments of Edinburgh and Leeds #
!# Universities. #
!# #
!# This module is regarded as being in the public domain, and the authors #
!# and accept no responsibility regarding the uses to which the software #
!# will be put. #
!# #
!############################################################################
from Edwin include iprocs
from Edwin include icodes
from Edwin include types
from Edwin include specs
from Edwin include shapes
external routine REVIEW alias "EDWIN_REVIEW"
integer WORD, CODE, R, X, Y, Z, P, XL, YB, XR, YT, ACTION, WX, WY
switch C (0:15)
Action = False
cycle
READ (WORD)
CODE = WORD&15
if CODE<=5 start; !Draw, Move, Point
READ(X)
if WORD&16=0 start; !Long form
READ(Y)
finishelse start
Y=X&255; X=X>>8&255
X=X!!(¬255) if X&128#0
Y=Y!!(¬255) if Y&128#0
finish
finish
->C(CODE)
C(0): LINE ABS (X, Y)
continue
C(1): MOVE ABS (X, Y)
continue
C(2): MARKER ABS (WORD>>12&15, X, Y)
Action = True
continue
C(3): LINE REL (X, Y)
Action = True
continue
C(4): MOVE REL (X, Y)
continue
C(5): MARKER REL (WORD>>12&15, X, Y)
Action = True
continue
C(6): ! Polygons
READ (X)
begin
record (POINTFM) array P (1:X)
integer I
for I = 1, 1, X cycle
READ (P(I)_X); READ (P(I)_Y)
repeat
Polygon (X, P)
end
continue
C(8): ! SET new WINDOW
READ(XL); READ(XR); READ(CODE); READ (YB); READ (YT)
WINDOW (XL, XR, YB, YT)
continue
C(9): ! Character
Character (Word >> 4)
Action = true
continue
C(11): ! Newframe
return if Action = true
continue
C(12): ! Terminate
return
C(13): ! Rectangle
READ (WX); READ (WY); READ (WORD); READ (X); READ (Y)
RECTANGLE (WX, WY, X, Y)
continue
C(14): !Circle
READ (X)
Circle (X)
continue
C(15): ! New attribute setting.
C(10): if CODE=10 then X=WORD>>4&255 else READ(X)
Y = WORD >> 12 & 15
if Y=15 start
ASPECT RATIOING (X)
else
if CODE = 10 start
PDF INSERT ((Y <<8 ! X) << 4 ! Pdf attribute, 0, 0)
else
PDF INSERT (Y << 12 ! Pdf gen attrib, X, 0)
finish
SET ATTRIBUTE (Y, X)
finish
repeat
C(*): signal 14, 5
end
end of file