%%HP: T(3)A(D)F(.);
@ COMPASS
@ Version 1.2: June 21, 1992
@ by Junichi Steven Sato
\<<				       @ 
  -6.5 6.5 XRNG			       @ Initialize x and y ranges
  -3.1 3.2 YRNG			       @
  "POINT ARROW TO SUN AND PRESS ON"    @
  1 \->GROB PICT STO		       @ Place message in PICT
  PICT (-.1,.1)			       @
  GROB 3 3 707070		       @ Mark center
  GXOR TIME DUP FP		       @ Get the time and drop the hour
  100 * IP 2 / SWAP		       @ Get the minute and divide by 2
  IP 30 * + (0,0)		       @ Get the hour, multiply 30 and add
  OVER 2 /			       @
  "Input hemisphere(N/S):"	       @ Ask for hemisphere location
  { \Ga } INPUT			       @ Invoke alpha-lock
    IF "S" SAME			       @ For Southern Hemisphere
    THEN 180 - ROT		       @ Subtract 180, point arrow up
      DROP (0,1.5)		       @
    ELSE ROT DUP SIN		       @ For Northern Hemisphere
      1.5 * SWAP COS 1.5	       @ point arrow in the direction
      * R\->C			       @ of the hour hand
    END (0,0) SWAP		       @
  LINE LASTARG { }		       @
  PVIEW				       @ Display the arrow
  "LONGER ARROW POINTS NORTH"	       @ Place message in PICT
  1 \->GROB PICT STO		       @
  PICT (-.1,.1)			       @
  GROB 3 3 707070		       @
  GXOR LINE DUP SIN		       @ Find position of arrow pointing north
  2.5 * SWAP COS 2.5		       @
  * R\->C LINE { }		       @ Display the two arrows
  PVIEW				       @
\>>				       @
