-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCLOCK.SRC
More file actions
76 lines (76 loc) · 3.47 KB
/
CLOCK.SRC
File metadata and controls
76 lines (76 loc) · 3.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
76 STRING LINEBUF 180 STRING SIDEBUF 84 STRING NBBUFSTR
32 STRING SEPBUFSTR 56 10 STRING-ARRAY NUMBCLO
" ########## #### #### #### #### ##########"
1 NUMBCLO S!
" ## ## ## ## ## ## ## "
2 NUMBCLO S!
" ######## ## ############ ## ########"
3 NUMBCLO S!
" ######## ## ## ####### ## ##########"
4 NUMBCLO S!
" ## ## ## ########## ## ## ##"
5 NUMBCLO S!
" ########## ## ######## ## ##########"
6 NUMBCLO S!
" ########## ## ########## #### ##########"
7 NUMBCLO S!
" ######## ## ## ## ## ## ##"
8 NUMBCLO S!
" ########## #### ############ #### ##########"
9 NUMBCLO S!
" ########## #### ########## ## ##########"
10 NUMBCLO S!
VARIABLE YY VARIABLE MM VARIABLE DD
: DATESET " DATE$" BASIC$ 2 LEFT$ VAL DROP YY ! PAD 1 CHARS +
COUNT DROP 8 4 5 SUB$ VAL DROP MM ! PAD 1 CHARS + COUNT DROP 8
2 RIGHT$ VAL DROP DD ! ;
VARIABLE TIMEHH VARIABLE TIMEMM VARIABLE TIMESS
VARIABLE TIMEHH-N VARIABLE TIMEMM-N VARIABLE TIMESS-N
: TIMEINIT -1 TIMEHH ! -1 TIMEMM ! -1 TIMESS ! ;
: TIMEUPDT TIME FTOI DUP 3600 / TIMEHH ! 3600 MOD DUP 60 /
TIMEMM ! 60 MOD TIMESS ! ;
: TIMEUPDT-N TIME FTOI DUP 3600 / TIMEHH-N ! 3600 MOD DUP 60 /
TIMEMM-N ! 60 MOD TIMESS-N ! ;
( CLEARSTR now in H71B1 )
( : CLEARSTR DROP DUP 1 CHARS - 0 SWAP C! 0 ; )
72 STRING LCLO
" +----------------------------------------------------------------------+"
LCLO S!
: DRAW-LINES LINEBUF CLEARSTR 1 1 AT-XY<BF LCLO S<& OUTPUT
LINEBUF CLEARSTR 1 11 AT-XY<BF LCLO S<& OUTPUT LINEBUF CLEARSTR
1 21 AT-XY<BF LCLO S<& OUTPUT ;
: DRAW-SIDES SIDEBUF CLEARSTR 11 2 DO 1 I AT-XY<BF " |" S<& 72
I AT-XY<BF " |" S<& LOOP 21 12 DO 1 I AT-XY<BF " |" S<& 72 I
AT-XY<BF " |" S<& LOOP OUTPUT ;
: DRAW-FRAMEC DRAW-LINES DRAW-SIDES ;
: DRAW-SEP SEPBUFSTR CLEARSTR 24 6 AT-XY<BF " ##" S<& 48 6
AT-XY<BF " ##" S<& 25 15 AT-XY<BF " #" S<& 49 15 AT-XY<BF " #"
S<& 25 17 AT-XY<BF " #" S<& 49 17 AT-XY<BF " #" S<& OUTPUT ;
: OUTNB NBBUFSTR CLEARSTR ROT 1 + NUMBCLO 2SWAP 8 1 DO 6 PICK
6 PICK I + 1 - AT-XY<BF 2OVER I 1 - 8 * 1 + I 8 * SUB$ S<& LOOP
2NIP 2NIP OUTPUT ;
: DRAW-DATE 4 3 YY @ 10 / OUTNB 14 3 YY @ 10 MOD OUTNB 28 3 MM
@ 10 / OUTNB 38 3 MM @ 10 MOD OUTNB 52 3 DD @ 10 / OUTNB 62 3
DD @ 10 MOD OUTNB ;
: UPDATE-SS TIMESS-N @ 10 / DUP TIMESS @ 10 / <> IF 52 13 ROT
OUTNB ELSE DROP THEN TIMESS-N @ 10 MOD DUP TIMESS @ 10 MOD <>
IF 62 13 ROT OUTNB ELSE DROP THEN ;
: UPDATE-MM TIMEMM-N @ 10 / DUP TIMEMM @ 10 / <> IF 28 13
ROT OUTNB ELSE DROP THEN TIMEMM-N @ 10 MOD DUP TIMEMM @ 10 MOD
<> IF 38 13 ROT OUTNB ELSE DROP THEN ;
: UPDATE-HH TIMEHH-N @ 10 / DUP TIMEHH @ 10 / <> IF 4 13 ROT
OUTNB ELSE DROP THEN TIMEHH-N @ 10 MOD DUP TIMEHH @ 10 MOD <>
IF 14 13 ROT OUTNB ELSE DROP THEN ;
: INITCLO DELAY00 PAGE DRAW-FRAMEC DRAW-SEP DATESET DRAW-DATE
TIMEINIT TIMEUPDT-N UPDATE-SS UPDATE-MM UPDATE-HH ;
: UPDATE-CLOCK TIMEUPDT-N TIMEHH @ TIMEHH-N @ <> IF UPDATE-HH
UPDATE-MM UPDATE-SS TIMEHH-N @ TIMEHH ! TIMEMM-N @ TIMEMM !
TIMESS-N @ TIMESS ! ELSE TIMEMM @ TIMEMM-N @ <> IF UPDATE-MM
UPDATE-SS TIMEMM-N @ TIMEMM ! TIMESS-N @ TIMESS ! ELSE TIMESS @
TIMESS-N @ <> IF UPDATE-SS TIMESS-N @ TIMESS ! ELSE THEN THEN
THEN ;
: RETIMELO BEGIN UPDATE-CLOCK ?TERMINAL IF KEY DUP 69 <> IF
101 <> IF FALSE ELSE TRUE THEN ELSE DROP TRUE THEN ELSE FALSE
THEN UNTIL ;
( : STARTCLO INITCLO RETIMELO ; )
: STARTCLO 0 PRIMARY ! D-D PAGE INITCLO RETIMELO ;