PROC DrawWindow(BYTE x,y,len) BYTE i Position(x,y) Put(17) FOR i=1 TO len DO Put(18) OD Put(5) Position(x,y+1) Put(124) Position(x+len+1,y+1) Put(124) Position(x,y+2) Put(26) FOR i=1 TO len DO Put(18) OD Put(3) RETURN PROC RotateLeft(CHAR ARRAY a) BYTE i,tmp IF a(0)<1 THEN RETURN FI i=1 tmp=a(i) WHILE i1 DO a(i)=a(i-1) i==-1 OD a(1)=tmp RETURN PROC Wait(BYTE frames) BYTE RTCLOK=$14 frames==+RTCLOK WHILE frames#RTCLOK DO OD RETURN PROC Main() BYTE CH=$02FC, ;Internal hardware value for last key pressed CRSINH=$02F0 ;Controls visibility of cursor BYTE k,dir=[0] CHAR ARRAY text="Hello World! " Graphics(0) CRSINH=1 ;hide cursor Position(4,1) PrintE("Press Space to reverse direction") Position(11,2) Print("Press Esc to exit") DrawWindow(12,4,text(0)) DO Position(13,5) Print(text) k=CH CH=$FF IF k=33 THEN dir==!$FF FI IF dir THEN RotateLeft(text) ELSE RotateRight(text) FI Wait(6) UNTIL k=28 OD CRSINH=0 ;show cursor RETURN