REM The Line Clock
 
set display mode 1024,768,32
 
`clock position
cx=screen width()/2 : cy=screen height()/2
 
`colours
DIM clr(5)
clr(0)=rgb(20,20,20)
clr(1)=20*65536
clr(2)=64*65536
clr(3)=128*65536
clr(4)=191*65536
clr(5)=255*65536
 
white = rgb(255,255,255)
 
`12 dots
dim dt(12,2) : `0=seconds 1=minutes 2=hours
 
hide mouse
sync on : sync rate 0
 
DO
   time$=get time$()
   s=val(right$(time$,2))
   m=val(right$(left$(time$,5),2))
   h=val(left$(time$,2))
 
remstart
   inc s,30
   if s=60 then s=0 : inc m,1
   if m=60 then m=0 : inc h,1
remend
 
   ink white,0
   print h;":";m;":";s
 
   `12 dot colours
   for d = 1 to 12
      `seconds
      if s>=d then dt(d)=clr(1) else dt(d)=clr(0)
      if s>=d+12 then dt(d)=clr(2)
      if s>=d+24 then dt(d)=clr(3)
      if s>=d+36 then dt(d)=clr(4)
      if s>=d+48 then dt(d)=clr(5)
      `minutes
      if m>=d then dt(d,1)=clr(1) else dt(d,1)=clr(0)
      if m>=d+12 then dt(d,1)=clr(2)
      if m>=d+24 then dt(d,1)=clr(3)
      if m>=d+36 then dt(d,1)=clr(4)
      if m>=d+48 then dt(d,1)=clr(5)
      `hours
      if h>=d then dt(d,2)=clr(2) else dt(d,2)=clr(0)
      if h>=d+12 then dt(d,2)=clr(5)
 
      `draw seconds dots
      ink dt(d),0
      for cir = 0 to 4
         circle 70+d*70,cy,cir
      next cir
      `draw minute dots
      ink dt(d,1),0
      for cir = 12 to 16
         circle 70+d*70,cy,cir
      next cir
      `draw hour dots
      ink dt(d,2),0
      for cir = 24 to 28
         circle 70+d*70,cy,cir
      next cir
   next d
 
   sync
   cls
LOOP