-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbbc1-gem
More file actions
102 lines (102 loc) · 3.23 KB
/
Copy pathbbc1-gem
File metadata and controls
102 lines (102 loc) · 3.23 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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
MODE 1:VDU23;8202;0;0;0;28,0,8,12,0,19,0,4;0;19,1,2;0;
PROCdraw_clockface:PROCdraw_caption:VDU29,640;640;
:
ihr=36:hhr=170:mhr=242:shr=242:REM hand radii
hhw=12:mhw=9:shw=5:REM hand widths
:
H%=10:M%=59:S%=25:GCOL3,3:os=FNst:om=FNmt:oh=FNht:PROCs:PROCm:PROCh
REPEAT:REPEATUNTILTIME MOD100=0:S%=(S%+1)MOD60:PROCs:PROCs
IF(S% MOD60)=0:M%=(M%+1)MOD60
IF(M% MOD60)=0 AND (S% MOD60)=0 H%=(H%+1)MOD12
IF(S% MOD10)=0:PROCm:PROCm
IF(S% MOD60)=0:PROCh:PROCh
IF INKEY(-99)PROCcue ELSEIFINKEY(-97)PROCset
UNTIL FALSE
:
DEFPROCdraw_caption
VDU 29,440;152;:PROCb
VDU 29,556;152;:PROCb
VDU 29,662;152;:PROCc
VDU 29,821;152;:PROCone
VDU 29,0;0;
ENDPROC
:
DEF PROCb
GCOL0,3:MOVE 38,98:PLOT &9D,90,98:MOVE46,28:PLOT&9D,94,28
GCOL0,0:MOVE 38,98:PLOT &9D,78,98:MOVE46,28:PLOT&9D,82,28
MOVE38,98:MOVE80,128:PLOT&B5,40,50:MOVE46,28:MOVE-2,28:PLOT&B5,81,-5
GCOL0,3:MOVE 38,98:PLOT &9D,70,98:MOVE40,28:PLOT&9D,74,28
GCOL0,0:MOVE 38,98:PLOT &9D,58,98:MOVE40,28:PLOT&9D,62,28
:
GCOL0,0:MOVE-6,-200:PLOT &65,40,152:REM rectangular mask
:
GCOL0,3:MOVE40,124:PLOT &9D,44,124:MOVE40,72:PLOT &9D,44,72
MOVE76,124:PLOT&9D,82,124:MOVE40,0:PLOT &9D,44,0:MOVE40,56:PLOT &9D,44,56
GCOL0,3:
MOVE 0,0:PLOT &9D,4,6:PLOT&65,-2,124
MOVE 0,124:PLOT &9D,4,124
MOVE 19,0:PLOT &9D,22,6:PLOT&65,12,124
MOVE 19,124:PLOT&9D,22,124
ENDPROC
:
DEFPROCc
GCOL0,3:MOVE70,70:PLOT&9D,140,70:GCOL0,0:MOVE70,70:PLOT&9D,128,70
GCOL0,3:MOVE70,70:PLOT&9D,120,70:GCOL0,0:MOVE70,70:PLOT&9D,108,70
GCOL0,0:MOVE70,70:MOVE140,163:PLOT&55,140,-21
GCOL0,3:MOVE108,121:PLOT&9D,112,121:MOVE97,106:PLOT&9D,101,106:MOVE96,35:PLOT&9D,100,35:MOVE109,19:PLOT&9D,113,19
ENDPROC
:
DEFPROCone
GCOL0,3:MOVE 0,0:PLOT &9D,4,6:PLOT&65,-2,124:MOVE 0,124:PLOT &9D,4,124:MOVE 18,0:PLOT &9D,22,6:PLOT&65,12,124:MOVE 18,124:PLOT&9D,22,124
MOVE-41,127:MOVE-10,91:PLOT&B5,6,124:GCOL0,0:MOVE-41,127:MOVE-18,100:PLOT&B5,-6,125:PLOT&45,-30,112:GCOL0,3:MOVE -14,96:PLOT&9D,-10,96
ENDPROC
:
DEFFNst=S%*(PI/30)
DEFFNmt=(M%*(PI/30))+(S%*(PI/1800))
DEFFNht=(H%*(PI/6))+(M%*(PI/360))
:
DEFPROCcue:MOVE564,362:PLOT&65,574,334:MOVE596,362:PLOT&65,588,334:ENDPROC
:
DEFPROCset:PROCs:PROCm:PROCh:COLOUR129:COLOUR0:*FX15,0
REPEAT:CLS:INPUT"HOURS:"H%,"MINUTES:"M%,"SECONDS:"S%:UNTILH%>0ANDH%<13ANDS%>-1ANDS%<60ANDM%>-1ANDM%<60
COLOUR128:CLS:os=FNst:om=FNmt:oh=FNht:PROCs:PROCm:PROCh:ENDPROC
:
DEFPROCs
t=os:s=SIN(t):c=COS(t):is=SIN(-t):ic=COS(-t)
dx=ic*shw/2:dy=is*shw/2
PROCd(shr)
t=FNst:os=t
ENDPROC
:
DEFPROCm
t=om:s=SIN(t):c=COS(t):is=SIN(-t):ic=COS(-t)
dx=ic*mhw/2:dy=is*mhw/2
PROCd(mhr)
t=FNmt:om=t
ENDPROC
:
DEFPROCd(hr)
MOVE (s*hr)+dx,(c*hr)+dy:MOVE(s*hr)-dx,(c*hr)-dy:PLOT&75,(s*ihr)-dx,(c*ihr)-dy
ENDPROC
:
DEFPROCh
t=oh:s=SIN(t):c=COS(t):is=SIN(-t):ic=COS(-t)
dx=ic*hhw/2:dy=is*hhw/2
PROCd(hhr)
t=FNht:oh=t:ENDPROC
:
DEFPROCdraw_clockface
VDU29,640;640;
GCOL16,0:MOVE 0,0:PLOT&9D,19,19:m=14:r1=190:r2=242:d1=11:d2=27
FORi=0TO11:t=i*PI/6:s=SIN(t):c=COS(t):is=SIN(-t):ic=COS(-t)
IF (i MOD3)<>0 THENPROCplot_minor ELSEPROCplot_major
NEXT
ENDPROC
:
DEFPROCplot_major
dx1=ic*d1:dx2=ic*d2:dy1=is*d1:dy2=is*d2:MOVE(s*r1)+dx2,(c*r1)+dy2:MOVE(s*r2)+dx2,(c*r2)+dy2:PLOT&75,(s*r2)+dx1,(c*r2)+dy1:MOVE(s*r1)-dx2,(c*r1)-dy2:MOVE (s*r2)-dx2,(c*r2)-dy2:PLOT&75,(s*r2)-dx1,(c*r2)-dy1
ENDPROC
:
DEFPROCplot_minor
dx=ic*m/2:dy=is*m/2:MOVE (s*r2)+dx,(c*r2)+dy:MOVE(s*r2)-dx,(c*r2)-dy:PLOT&75,(s*r1)-dx,(c*r1)-dy
ENDPROC