%%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 @ \>> @