%include "edwin:SPECS.INC"

%begin
   ! EDWIN test program 5
   ! A demonstration program for the EDWIN Cursor Addressable terminal driver

   %const %integer GOOD=1, LOW=0
   %integer SYM,TYPE

   %routine BOX (%integer XL,YL,XR,YR)
      MOVE ABS (XL,YL)
      LINE REL (0,YR-YL)
      LINE REL (XR-XL,0)
      LINE REL (0,-(YR-YL))
      LINE REL (-(XR-XL),0)
   %end

   %routine PAGE 1
      NEWFRAME
      MOVE ABS (12,21)
      TEXT ("This introduces a new version of")
      MOVE ABS (10,6)
      SET CHAR QUALITY (GOOD)
      TEXT ("EDWIN")
      MOVE ABS (41,4)
      SET CHAR QUALITY (LOW)
      TEXT ("for the ")
      TEXT ("Visual 200") %if TYPE=200
      TEXT ("Bantam 550") %if TYPE=550
      TEXT (" terminals")
      BOX (5,3,74,22)
      MOVE ABS (0,1)
      UPDATE
   %end

   %routine PAGE2
      %routine CROSS
         LINE REL (20,20)
         MOVE REL (-20,0)
         LINE REL (20,-20)
      %end

      NEW FRAME
      MOVE ABS (0,2)
      CROSS
      MOVE ABS (55,2)
      CROSS
      MOVE ABS (31,12)
      TEXT ("When things go wrong")
      MOVE ABS (32,10)
      TEXT ("Don't get cross!!")
      UPDATE
   %end

   Prompt ("Terminal type: ")
   Read (TYPE)
   Initialise for (TYPE)
   Aspect ratioing (0); ! Off
   Window (0, 79, 0, 23)

   Print string ("Enter line style required as a number between 0 and 4")
   Newline
   Prompt ("Number: ")
   Read (SYM) %until 0<=SYM<=7
   Set line style (SYM)
   Read symbol (SYM) %until SYM=NL

   Prompt ("Hit RETURN key")

   Page1
   Read symbol (SYM) %until SYM = NL
   Page2

   Terminate edwin
%end %of %program
