123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- ( Clock JCB 10:54 11/17/10)
- variable seconds
- variable minutes
- variable hours
- variable days
- variable months
- variable years
- variable weekday
- : show2 ( a -- ) @ s>d <# # # #> type ;
- : setdate ( ud -- )
- [ -8 3600 * ] literal s>d d+
- d# 1 d# 60 m*/mod seconds !
- d# 1 d# 60 m*/mod minutes !
- d# 1 d# 24 m*/mod hours !
- d# 59. d- \ Days since Mar 1 1900
- 2dup d# 1 d# 7 m*/mod weekday ! 2drop
- d# 365 um/mod ( days years )
- dup d# 1900 + years !
- d# 4 / 1- - \ subtract leaps ( daynum 0-365 )
- dup d# 5 * d# 308 + d# 153 / d# 2 - months !
- months @ d# 4 + d# 153 d# 5 */ - d# 122 + days !
- home
- 'emit @ >r
- ['] vga-bigemit 'emit !
- s" ThuFriSatSunMonTueWed" drop
- weekday @ d# 3 * + d# 3 type cr
- s" MarAprMayJunJulAugSepOctNovDecJanFeb" drop
- months @ d# 3 * + d# 3 type
- space days @ d# 0 .r cr
- years @ . cr
- true if
- hours show2
- minutes show2
- seconds show2
- home
- then
- r> 'emit !
- ;
- : setdelay ( ud -- )
- 'emit @ >r
- ['] vga-emit 'emit !
- d# 32 d# 0 vga-at-xy
- s" ntp " type <# # # # [char] . hold #s #> type
- s" ms " type
- r> 'emit !
- ;
- include ntp.fs
- 2variable ntp-alarm
- : clock-main
- vga-page
- d# 1000000. ntp-alarm setalarm
- begin
- begin
- mac-fullness
- while
- arp-handler
- OFFSET_ETH_TYPE packet@ h# 800 =
- if
- d# 2 OFFSET_IP_DSTIP mac-inoffset mac@n net-my-ip d=
- if
- icmp-handler
- then
- loader-handler
- ntp-handler
- then
- depth if .s cr then
- mac-consume
- repeat
- ntp-alarm isalarm if
- ntp-request
- d# 1000000. ntp-alarm setalarm
- then
- next?
- until
- ;
|