! Program to view an EDWIN PDF on any device. %include "ECSLIB.EDWIN_INC" %include "ECSC17.IMP77SPECS" %external %integer %spec DEVICE %external %routine %spec SET DEFAULT (%string (5) S) %external %string (127) %fn %spec UINFS (%integer I) %external %routine VIEWPDF (%string (255) STR) %string(127) OUT %begin %string (63) IN1, IN2 %routine ERROR Print string ("Parameters are PDF/outfile") NEWLINE STR="" %end %on %event 9 %start Print string ("Cannot open input stream") STR="" NEWLINE %finish SET DEFAULT ("#PDF") SELECT INPUT (0) %if STR="" %start PROMPT("Parameters:") SKIP SYMBOL %while NEXT SYMBOL<=' ' STR=STR.TO STRING(NEXT SYMBOL) %and SKIP SYMBOL %while NEXT SYMBOL#NL %finish %if STR-> STR.("/").OUT %start; %finish %else OUT = "" %unless STR -> IN1.(",").IN2 %start OPEN INPUT (1,STR) OUT = STR %if OUT = "" %finish %else ERROR %end %integer TYPE, I, SIZE, UPCM %on %event 4,9,14 %start %if EVENT_EVENT=14 %start UPDATE NEWLINE Print string ("EDWIN error") WRITE (EVENT_SUB,1) Print string (" : ".EDWIN ERROR(EVENT_SUB)) NEWLINE %finish TERMINATE EDWIN %stop %finish SELECT INPUT (0) PROMPT ("Device type:") READ (TYPE) %if TYPE=300 %or TYPE=7220 %or 563<=TYPE<=963 %start %if TYPE=300 %then SET DEFAULT ("#LIS") %else SET DEFAULT ("#GP") %if UINFS(10)->("29") %start; ! An EMAS %if OUT -> OUT.("#") %start; %finish %if OUT -> (".").OUT %start; %finish %if OUT -> ("_").OUT %start; %finish %finish %else %start %if OUT -> (":").OUT %start; %finish %if OUT -> ("]").OUT %start; %finish %if OUT -> OUT.(".") %start; %finish %finish OPEN OUTPUT (2, OUT) VIEW ON (2) %finish INITIALISE FOR (TYPE) VIEWPORT (0,1023,0,767); ! Default %IF DEVICE = 3 %or DEVICE = 4 %or DEVICE = 12 %or DEVICE = 13 %start %if DEVICE=4 %then UPCM=100 %else UPCM=400 PROMPT ("Size (cms):") SKIP SYMBOL %while NEXT SYMBOL <=' ' %if NEXT SYMBOL & 95 = 'A' %start SKIP SYMBOL %if NEXT SYMBOL # '3' %and NEXT SYMBOL # '4' %start PRINT STRING ("Options are A4 or A3 only") NEWLINE %signal 9 %finish %if NEXT SYMBOL = '3' %then VIEWPORT (0, 40*UPCM, 0, 28*UPCM) %c %else VIEWPORT (0, 28*UPCM, 0, 20*UPCM) READ SYMBOL (SIZE) %until SIZE = NL %finish %else %start READ (SIZE) SKIP SYMBOL %while NEXT SYMBOL = ' ' %if '0'<= NEXT SYMBOL <= '9' %then READ (TYPE) %else TYPE=SIZE VIEWPORT (0, SIZE*UPCM, 0, TYPE*UPCM) %finish %finish %if DEVICE = 6 %start SELECT OUTPUT (0) PRINT STRING ("Is this for a Printronix with narrow or wide paper?") NEWLINE PROMPT ("Narrow or Wide? ") READ SYMBOL (SIZE) %and SIZE=SIZE&95 %until SIZE='N' %or SIZE='W' READ SYMBOL (TYPE) %until TYPE=NL VIEWPORT (0, 450, 0, 791) %if SIZE='N'; ! W = default. %finish %cycle NEWFRAME SELECT INPUT (1) REVIEW DRIVE DEV (4, 0, 22) %if TYPE=550 %or TYPE=200 DRIVE DEV (4, 0, 767) %if 4000 <= TYPE <= 4999 UPDATE SELECT INPUT (0) PROMPT (" Another?") READ SYMBOL (I) %and I=I&95 %until I='Y' %or I='N' SKIP SYMBOL %while NEXT SYMBOL # NL %exit %if I='N' %repeat TERMINATE EDWIN %end %endoffile