10 REM > SyncTime
   20 REM 02-Oct-1997 v1.02 JGH: Can force date
   30 REM 11-Aug-1998 v1.03 JGH: New command line
   40 REM 07-Mar-2006 v1.04 JGH: Command line found on ARM CoPro
   50 REM 23-Jan-2007 v1.05 JGH: Sets HADFS date if HADFS active
   60 MODE&87:VDU23;2,53;0;0;0:DIMctrl%31:A$=FNOS_GetEnv:X%=ctrl%:Y%=X%DIV256
   70 C$="":REPEATB$=INKEY$(0):IFB$<" " AND B$<>"":B$="|"+CHR$(ASCB$+64)
   80 C$=C$+B$:UNTILB$="":quit$=""
   90 I%=INSTR(A$,"-q"):IFI%:quit$=MID$(A$,INSTR(A$," ",I%)):A$=LEFT$(A$,I%-1)
  100 T$=FNtime:M%=INSTR("JanFebMarAprMayJunJulAugSepOctNovDec",MID$(T$,8,3))DIV3+1
  110 A%=FNbyte(90,6,255):IF (A% AND &C0)=&80:*FX90,6,1
  120 IF A%<128:OSCLI "HSETDATE "+MID$(T$,5,2)+"/"+STR$M%+"/"+MID$(T$,12,4)
  130 $X%=CHR$24+T$:A%=15:CALL&FFF1:IFC$<>"":OSCLI"Key0 "+C$:*FX138,0,192
  140 PROCos(quit$):END
  150 :
  160 REM ONERRORIF(ERR AND&F0)=160:PROCGetDate ELSE REPORT:PRINT:END
  170 :
  180 DEFFNOS_GetEnv:LOCALA$,A%,X%,Y%:X%=1:os%=((USR&FFF4)AND&FF00)DIV256
  190 IFos%>31:IFPAGE>&FFFFF:DIMX%LOCAL256:SYS"GetModuleFileName",0,X%,255:run$=$$X%:=@cmd$
  200 A%=&600-&7B00*(PAGE>&8000)-&3F00*(PAGE>&C000):IF!(PAGE-&108)=@%:A%=PAGE-&208
  210 IF?(TOP-3)=0:A%=&100:IFHIMEM<&FFFF:A%=PAGE-&300:IF!(HIMEM+512)=@%:A%=HIMEM
  220 A$=$A%:IFPAGE=&8F00:run$=A$:SYS16TOA$,,A%:SYS72,"",A%:A$=MID$(A$,1+INSTR(A$+" "," ",1+INSTR(A$," "))):IFLENA$=0:A$=run$
  230 FORY%=-1TO0:A$=" "+A$:REPEATA$=MID$(A$,2):UNTILASCA$<>32:IFASCA$=34:A%=INSTR(A$,"""",2)+1 ELSE A%=INSTR(A$+" "," ")
  240   IFY%:run$=MID$(A$,1-(ASCA$=34),A%-1+2*(ASCA$=34)):A$=MID$(A$,A%+1)
  250 NEXT:=A$
  260 DEFPROCos(A$):IFASCA$=42:OSCLIA$ ELSE IFLENA$:CHAINA$
  270 ENDPROC
  280 :
  290 REM Exit program, setting return value
  300 REM ----------------------------------
  310 DEFPROCexit(A%):OSCLI"FX1,"+STR$(A%AND255):quit$=quit$:A$=quit$:quit$="":PROCos(A$)
  320 IFPAGE>&FFFFF:QUIT A% ELSE END
  330 ENDPROC
  340 :
  350 REM > B/MOS1 0.10 00-000-0000
  360 DEFFNbyte(A%,X%,Y%)=((USR&FFF4)AND&FF00)DIV256
  370 DEFFNDay(A%)=MID$("000SunMonTueWedThuFriSat",A%*3+1,3)
  380 DEFFNMon(A%)=MID$("000JanFebMarAprMayJunJulAugSepOctNovDecDddEeeFff",A%*3+1,3)
  390 DEFFNtime:!X%=&10000700:X%!4=0:A%=20:CALL&FFF1:!X%=0:IFX%!4:?X%=81+(X%?5 DIV16)+((X%?4 AND&E0)DIV2):X%?1=X%?5 AND15:X%?2=X%?4 AND31:X%?4=X%?6:X%?5=X%?7:X%?6=X%?8
  400 IFX%?3=0:IFX%?2:X%?3=FNDayOfWeek(X%?2,X%?1,1900+X%?0)
  410 =FNDay(X%?3)+","+FNd0(X%?2,2)+" "+FNMon(X%?1)+" "+FNd0(1900+X%?0,4)+"."+FNd0(X%?4,2)+":"+FNd0(X%?5,2)+":"+FNd0(X%?6,2)
  420 DEFFNDayOfWeek(d%,m%,y%):y%=y%MOD400
  430 =(y%*365.25+m%*30+d%+VALMID$("120112234455",m%,1)+((y%MOD4)=0)-((y%-1)DIV100)-(m%>2AND((y%MOD4)=0AND(y%MOD100)<>0ORy%=0))+3)MOD7+1
  440 DEFFNd0(A%,N%)=RIGHT$("000000000"+STR$A%,N%)
65449 
  162  CLGOSCLIPOSPROCATNCIRCLELOADWHEN PAGEREPORTEVALTRUE?{ATNRECTANGLELOADWHEN PAGEREPEATEVALTRUECIRCLEATNINSTALLRECTANGLELOADWHEN PAGEREPEATATNINSTALLRECTANGLELEN"  X{L{LQ%=PA.:CH."* BASIC s{l{t{EVALORIGINTRUEPRIVATEELLIPSELNTRUER{ATNPRIVATEELLIPSETAB(ATNR{STEPEXITVDU`OPENUPRECTANGLEONm{`WHENOSCLIPLOTFILLLEN`LINEINTORLEN X{,zELLIPSE0EVALELLIPSEPOSINTERRORLNLOADPOSINTERRORLOGEVALTRUEqrTIMELNLOADPAGERETURNGCOLLOGONADVAL{EXITPRINTLENCIRCLE`LENPTR QUIT
37113             ELLIPSEeINTLNLENeLENINTLENCIRCLE QUITMOUSE CLGCLG{OPENUPqr12030STRING$({PAGEVDUONEOF{EXITLOCALLENPTR QUITMOUSELENCIRCLE