! Configuration file for EDWIN Version 5 on the APM ! Created by JGH 10-Aug-84 %const %integer NUM DEV = 11 %dynamic %routine %spec V %alias "EDWIN___V" (%integer COM, X, Y) %dynamic %routine %spec V REQ %alias "EDWIN___V_REQ" (%integer %name STATE, X, Y) %dynamic %routine %spec F %alias "EDWIN___F" (%integer COM, X, Y) %dynamic %routine %spec F REQ %alias "EDWIN___F_REQ" (%integer %name STATE, X, Y) %dynamic %routine %spec F SAM %alias "EDWIN___F_SAM" (%integer %name STATE, X, Y) %dynamic %routine %spec F BOX %alias "EDWIN___F_BOX" (%integer %name XL, YB, XR, YT) %dynamic %routine %spec I %alias "EDWIN___I" (%integer COM, X, Y) %dynamic %routine %spec I REQ %alias "EDWIN___I_REQ" (%integer %name STATE, X, Y) %dynamic %routine %spec I SAM %alias "EDWIN___I_SAM" (%integer %name STATE, X, Y) %dynamic %routine %spec I BOX %alias "EDWIN___I_BOX" (%integer %name XL, YB, XR, YT) %Dynamic %routine %spec HPPLOT %alias "EDWIN___H" (%integer COM, X, Y) %Dynamic %routine %spec H REQ %alias "EDWIN___H_REQ" (%integer %name STATE, X, Y) %external %routine DRIVE DEVICE %alias "EDWIN_DRIVE_DEV" (%integer COM, X, Y) %switch SW(0:NUM DEV) %if COM=0 %start DEV DATA = 0 DEV DATA_DEV NO = -1 X = X - 'a' + 'A' %if 'a'<=X<='z' %and X#100 %if X=0 %start { Null device } DEV DATA_DEV NO = 0 %else %if X=7221 %or X=72218 %or X=7475 %or X=7470 %or X=7580 %c %or X=7550 %or X=7220 %or X=72208 %or X=7585 %or X=7586 %or X=7500{HPs} DEV DATA_DEV NO = 3 %else %if X='F' { 70 ! 102 } { Fred's display } DEV DATA_DEV NO = 10 %else %if X='I' { 73 ! 105 } { Igor's display } DEV DATA_DEV NO = 11 %else %if X=200 %or X=550 %or X=52 %or X=100 %or X=55 { C. A. T.'s } - %or X='E' { 69 or 101 } %or X='V' { 86 or 118 } %or X='X' { 120&95 } DEV DATA_DEV NO = 6 %finish %else %signal 14, 0, X %finish %return %if VIEWING<0 %or DEV DATA_DEV NO<=0 %or COM < 0 %or COM > 15 ! Ignore calls to the null device driver, or if the parameter is out of range -> SW(DEV DATA_DEV NO) SW(10): F (COM, X, Y); %return; ! Fred's Level 1 graphics SW(11): I (COM, X, Y); %return; ! Igor's Level 2 graphics SW(6): V (COM, X, Y); %return; ! Video Terminal driver SW(3): HPPLOT (COM, X, Y); %return { HP plotter driver} SW(*): %signal 14, 0 %end %external %routine REQUEST DEVICE %alias "EDWIN_REQUEST_DEV" (%integer %name STATE, X, Y) %switch DC(0:NUM DEV) %signal 14,8,DEV DATA_DEV NO %unless 0 <= DEV DATA_DEV NO <= NUM DEV -> DC(DEV DATA_DEV NO) DC(10): F REQ (STATE, X, Y); %return DC(11): I REQ (STATE, X, Y); %return DC(6): V REQ (STATE, X, Y); %return DC(3): H REQ (STATE, X, Y); %return DC(*): %signal 14, 8, DEV DATA_DEV NO %end %external %routine SAMPLE DEVICE %alias "EDWIN_SAMPLE_DEV" (%integer %name STATE, X, Y) %switch DC(0:NUM DEV) %signal 14,8,DEV DATA_DEV NO %unless 0 <= DEV DATA_DEV NO <= NUM DEV -> DC(DEV DATA_DEV NO) DC(10): F SAM (STATE, X, Y); %return DC(11): I SAM (STATE, X, Y); %return DC(*): %signal 14, 8, DEV DATA_DEV NO %end %external %routine AREA OF DEVICE %alias "EDWIN_AREA_DEV" (%integer %name XL, YB, XR, YT) ! F BOX (XL, YB, XR, YT) {Surely this isn't correct} %switch DC(0:NUM DEV) %signal 14,8,DEV DATA_DEV NO %unless 0 <= DEV DATA_DEV NO <= NUM DEV -> DC(DEV DATA_DEV NO) DC(10): F BOX (XL, YB, XR, YT); %return DC(11): I BOX (XL, YB, XR, YT); %return DC(*): %signal 14, 8, DEV DATA_DEV NO %end %end %of %file