Subversion Repositories Kolibri OS

Rev

Rev 3586 | Rev 3889 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3586 Rev 3887
Line 1... Line 1...
1
; CALENDAR FOR MENUET v1.0
1
; Calendar for KolibriOS
2
; Written in pure assembler by Ivushkin Andrey aka Willow
-
 
3
;
2
;
-
 
3
; v1.2 - code update by Leency, small design fixes
-
 
4
; v1.1 - add change time support by DedOK 
-
 
5
; v1.0 - written in pure assembler by Ivushkin Andrey aka Willow
-
 
6
; also - diamond, spraid, fedesco
4
;
7
;
5
; Created:      November 1, 2004
8
; Created: November 1, 2004
6
; Last changed: January 13, 2005
-
 
7
;
-
 
8
; COMPILE WITH FASM
-
 
Line -... Line 9...
-
 
9
 
9
 
10
WIN_CW equ 266
10
WIN_X equ (150 shl 16+270)
11
WIN_X equ (5000 shl 16+WIN_CW+9)
Line 11... Line 12...
11
WIN_Y equ (100 shl 16+335)
12
WIN_Y equ (100 shl 16+335)
12
 
13
 
13
LINE1	  equ 27 shl 16+16
14
LINE1	  equ 27 shl 16+16
14
B_MONTH_X equ 10 shl 16+158
15
B_MONTH_X equ 5 shl 16+158+11
Line 15... Line 16...
15
B_Y	  equ LINE1
16
B_Y	  equ LINE1
16
B_MONTH   equ 63 shl 16+32
17
B_MONTH   equ 63 shl 16+32
17
 
18
 
18
B_WBAR_X  equ 10 shl 16+250
19
B_WBAR_X  equ 5 shl 16+WIN_CW
Line 19... Line 20...
19
B_WBAR_Y  equ 64 shl 16+20
20
B_WBAR_Y  equ 64 shl 16+20
Line 36... Line 37...
36
 
37
 
37
B_SPIN_WIDTH equ 13
38
B_SPIN_WIDTH equ 13
38
B_SPIN_X  equ 234 shl 16+B_SPIN_WIDTH
39
B_SPIN_X  equ 234 shl 16+B_SPIN_WIDTH
Line 39... Line -...
39
B_SPIN	  equ 238 shl 16+32
-
 
40
 
-
 
41
B_DATE_X  equ 26 shl 16+60
-
 
42
B_DATE_Y  equ 275 shl 16+16
-
 
43
B_DATE_BSHIFT equ 80 shl 16
-
 
44
B_DATE	  equ 32 shl 16+280
-
 
45
B_DATE_SHIFT equ 80 shl 16
40
B_SPIN	  equ 238 shl 16+32
46
 
41
 
47
B_NS_X	  equ 185 shl 16+75
42
B_NS_X	  equ 185 shl 16+75
Line 48... Line 43...
48
B_NS_Y	  equ 48 shl 16+10
43
B_NS_Y	  equ 48 shl 16+10
-
 
44
B_NS	  equ 190 shl 16+50
49
B_NS	  equ 190 shl 16+50
45
 
Line 50... Line 46...
50
 
46
FOCUSABLE equ 5
Line 51... Line 47...
51
FOCUSABLE equ 5
47
 
Line 63... Line 59...
63
  dd	 0x1000      ;  ¤à¥á ¢¥à設ë áâíª 
59
  dd	 0x1000      ;  ¤à¥á ¢¥à設ë áâíª 
64
  dd	 0x0	     ;  ¤à¥á ¡ãä¥à  ¤«ï áâப¨ ¯ à ¬¥â஢ (­¥ ¨á¯®«ì§ã¥âáï)
60
  dd	 0x0	     ;  ¤à¥á ¡ãä¥à  ¤«ï áâப¨ ¯ à ¬¥â஢ (­¥ ¨á¯®«ì§ã¥âáï)
65
  dd	 0x0	     ; § à¥§¥à¢¨à®¢ ­®
61
  dd	 0x0	     ; § à¥§¥à¢¨à®¢ ­®
66
include 'lang.inc'
62
include 'lang.inc'
67
include '..\..\..\macros.inc' ; 㬥­ìè ¥â à §¬¥à ¯à®£à ¬¬ë
63
include '..\..\..\macros.inc' ; 㬥­ìè ¥â à §¬¥à ¯à®£à ¬¬ë
-
 
64
include 'data.inc'
Line 68... Line 65...
68
 
65
 
69
 
66
 
Line 86... Line 83...
86
     mov  reg,0x10000000
83
     mov  reg,0x10000000
87
   end if
84
   end if
88
   .exit:
85
   .exit:
89
}
86
}
Line 90... Line -...
90
 
-
 
91
month_name:
-
 
92
if lang eq ru
-
 
93
     db   8
-
 
94
     db   'Ÿ­¢ àì  '
-
 
95
     db   '”¥¢à «ì '
-
 
96
     db   'Œ àâ    '
-
 
97
     db   '€¯à¥«ì  '
-
 
98
     db   'Œ ©     '
-
 
99
     db   'ˆî­ì    '
-
 
100
     db   'ˆî«ì    '
-
 
101
     db   '€¢£ãáâ  '
-
 
102
     db   '‘¥­âï¡àì'
-
 
103
     db   'Žªâï¡àì '
-
 
104
     db   '®ï¡àì  '
-
 
105
     db   '„¥ª ¡àì '
-
 
106
else if lang eq de
-
 
107
     db   9
-
 
108
     db   'Januar   '
-
 
109
     db   'Februar  '
-
 
110
     db   'MÁrz     '
-
 
111
     db   'April    '
-
 
112
     db   'Mai      '
-
 
113
     db   'Juni     '
-
 
114
     db   'Juli     '
-
 
115
     db   'August   '
-
 
116
     db   'September'
-
 
117
     db   'Oktober  '
-
 
118
     db   'November '
-
 
119
     db   'Dezember '
-
 
120
else if lang eq fr
-
 
121
     db   9
-
 
122
     db   'Janvier  '
-
 
123
     db   'Fevrier  '
-
 
124
     db   'Mars     '
-
 
125
     db   'Avril    '
-
 
126
     db   'Mai      '
-
 
127
     db   'Juin     '
-
 
128
     db   'Juliet   '
-
 
129
     db   'Aout     '
-
 
130
     db   'Septembre'
-
 
131
     db   'Octobre  '
-
 
132
     db   'Novembre '
-
 
133
     db   'Decembre '
-
 
134
else if lang eq fi
-
 
135
     db   9
-
 
136
     db   'Tammikuu '
-
 
137
     db   'Helmikuu '
-
 
138
     db   'Maaliskuu'
-
 
139
     db   'Huhtikuu '
-
 
140
     db   'Toukokuu '
-
 
141
     db   'KesÁkuu  '
-
 
142
     db   'HeinÁkuu '
-
 
143
     db   'Elokuu   '
-
 
144
     db   'Syyskuu  '
-
 
145
     db   'Lokakuu  '
-
 
146
     db   'Marraskuu'
-
 
147
     db   'Joulukuu '
-
 
148
else if lang eq et
-
 
149
     db   9
-
 
150
     db   'Jaanuar  '
-
 
151
     db   'Veebruar '
-
 
152
     db   'Märts    '
-
 
153
     db   'Aprill   '
-
 
154
     db   'Mai      '
-
 
155
     db   'Juuni    '
-
 
156
     db   'Juuli    '
-
 
157
     db   'August   '
-
 
158
     db   'September'
-
 
159
     db   'Oktoober '
-
 
160
     db   'November '
-
 
161
     db   'Detsember'
-
 
162
else if lang eq it
-
 
163
     db   9
-
 
164
     db   'Gennaio  '
-
 
165
     db   'Febbraio '
-
 
166
     db   'Marzo    '
-
 
167
     db   'Aprile   '
-
 
168
     db   'Maggio   '
-
 
169
     db   'Giugno   '
-
 
170
     db   'Luglio   '
-
 
171
     db   'Agosto   '
-
 
172
     db   'Settembre'
-
 
173
     db   'Ottobre  '
-
 
174
     db   'Novembre '
-
 
175
     db   'Dicembre '
-
 
176
else
-
 
177
     db   9
-
 
178
     db   'January  '
-
 
179
     db   'February '
-
 
180
     db   'March    '
-
 
181
     db   'April    '
-
 
182
     db   'May      '
-
 
183
     db   'June     '
-
 
184
     db   'July     '
-
 
185
     db   'August   '
-
 
186
     db   'September'
-
 
187
     db   'October  '
-
 
188
     db   'November '
-
 
189
     db   'December '
-
 
190
end if
-
 
191
spinner db '< >'
-
 
192
week_days:
-
 
193
if lang eq ru
-
 
194
     db   2
-
 
195
     db   1
-
 
196
     db   '­'
-
 
197
     db   '‚â'
-
 
198
     db   '‘à'
-
 
199
     db   '—â'
-
 
200
     db   'â'
-
 
201
     db   '‘¡'
-
 
202
     db   '‚á'
-
 
203
else if lang eq de
-
 
204
     db   2
-
 
205
     db   7
-
 
206
     db   'So'
-
 
207
     db   'Mo'
-
 
208
     db   'Di'
-
 
209
     db   'Mi'
-
 
210
     db   'Do'
-
 
211
     db   'Fr'
-
 
212
     db   'Sa'
-
 
213
else if lang eq fr
-
 
214
     db   3
-
 
215
     db   7
-
 
216
     db   'Dim'
-
 
217
     db   'Lun'
-
 
218
     db   'Mar'
-
 
219
     db   'Mer'
-
 
220
     db   'Jeu'
-
 
221
     db   'Ven'
-
 
222
     db   'Sam'
-
 
223
else if lang eq fi
-
 
224
     db   2
-
 
225
     db   7
-
 
226
     db   'Su'
-
 
227
     db   'Ma'
-
 
228
     db   'Ti'
-
 
229
     db   'Ke'
-
 
230
     db   'To'
-
 
231
     db   'Pe'
-
 
232
     db   'La'
-
 
233
else if lang eq et
-
 
234
     db   3
-
 
235
     db   7
-
 
236
     db   'Esm'
-
 
237
     db   'Tei'
-
 
238
     db   'Kol'
-
 
239
     db   'Nel'
-
 
240
     db   'Ree'
-
 
241
     db   'Lau'
-
 
242
     db   'Püh'
-
 
243
else if lang eq it
-
 
244
     db   3
-
 
245
     db   7
-
 
246
     db   'Dom'
-
 
247
     db   'Lun'
-
 
248
     db   'Mar'
-
 
249
     db   'Mer'
-
 
250
     db   'Gio'
-
 
251
     db   'Ven'
-
 
252
     db   'Sab'
87
 
253
else
-
 
254
     db   3
-
 
255
     db   7
-
 
256
     db   'Sun'
-
 
257
     db   'Mon'
-
 
258
     db   'Tue'
-
 
259
     db   'Wen'
-
 
260
     db   'Thi'
-
 
261
     db   'Fri'
-
 
262
     db   'Sat'
-
 
Line 263... Line 88...
263
end if
88
 
264
 
89
 
265
str2int:
90
str2int:
266
    xor  eax,eax
91
    xor  eax,eax
Line 289... Line 114...
289
    add  [Year],100
114
    add  [Year],100
290
  .no2000:
115
  .no2000:
291
    jmp  upd		; §¤¥áì ­ ç¨­ ¥âáï ¢ë¯®«­¥­¨¥ ¯à®£à ¬¬ë
116
    jmp  upd		; §¤¥áì ­ ç¨­ ¥âáï ¢ë¯®«­¥­¨¥ ¯à®£à ¬¬ë
292
red:			; ¯¥à¥à¨á®¢ âì ®ª­®
117
red:			; ¯¥à¥à¨á®¢ âì ®ª­®
Line 293... Line 118...
293
 
118
 
Line 294... Line 119...
294
    call draw_window	; ¢ë§ë¢ ¥¬ ¯à®æ¥¤ãàã ®âà¨á®¢ª¨ ®ª­ 
119
    call draw_window
Line 295... Line 120...
295
 
120
 
296
still:			; ƒ‹€‚›‰ –ˆŠ‹ Žƒ€ŒŒ›
121
still:			; ƒ‹€‚›‰ –ˆŠ‹ Žƒ€ŒŒ›
Line 594... Line 419...
594
 
419
 
Line 595... Line 420...
595
    jmp  still
420
    jmp  still
Line 596... Line -...
596
 
-
 
597
plus_me:
421
 
598
 
422
plus_me:
599
    mov  eax,3
423
 
600
    mcall
-
 
601
    mov  ecx,eax
424
    mcall 3
602
    add  ecx,4096
-
 
603
    mov  eax,22
-
 
604
    mov  ebx,0x00000000
425
    mov  ecx,eax
Line 605... Line 426...
605
    mcall
426
    add  ecx,4096
Line 606... Line -...
606
 
-
 
607
    jmp  still
427
    mcall 22,0x00000000 
608
 
428
    jmp  still
609
minus_md:
429
 
610
 
-
 
611
    mov  eax,3
430
minus_md:
612
    mcall
-
 
613
    mov  ecx,eax
-
 
614
    sub  ecx,256
431
 
Line 615... Line 432...
615
    mov  eax,22
432
    mcall 3
Line 616... Line -...
616
    mov  ebx,0x00000000
-
 
617
    mcall
433
    mov  ecx,eax
618
 
434
    sub  ecx,256
619
    jmp  still
435
    mcall 22,0x00000000
620
 
-
 
621
minus_me:
436
    jmp  still
622
 
-
 
623
    mov  eax,3
-
 
624
    mcall
437
 
Line 625... Line 438...
625
    mov  ecx,eax
438
minus_me:
Line 626... Line 439...
626
    sub  ecx,4096
439
 
Line 664... Line 477...
664
;   *******  Ž…„…‹…ˆ… ˆ Ž’ˆ‘Ž‚Š€ ŽŠ€ *******
477
;   *******  Ž…„…‹…ˆ… ˆ Ž’ˆ‘Ž‚Š€ ŽŠ€ *******
665
;   *********************************************
478
;   *********************************************
Line 666... Line 479...
666
 
479
 
Line 667... Line -...
667
draw_clock:
-
 
668
 
480
draw_clock:
669
    mov  eax,3
481
 
670
    mcall
-
 
671
    mov  ecx,eax
-
 
672
    mov  eax,47
-
 
673
    mov esi,0x50000000
-
 
674
    mov  edi,0xaabbcc
482
    mcall 3
675
    mov  ebx,0x00020100
-
 
Line 676... Line 483...
676
    mov  edx,205*65536+280
483
    mov  ecx,eax
677
    mcall
484
    mcall 47,0x00020100, ,205*65536+280,0x50000000,COL_WINDOW_BG
678
 
485
 
Line 685... Line 492...
685
    mcall
492
    mcall
686
    ret
493
    ret
Line 687... Line 494...
687
 
494
 
Line 688... Line -...
688
draw_window:
-
 
689
 
495
draw_window:
690
 
-
 
691
    mov  eax,12 		   ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ®¡ ®âà¨á®¢ª¥ ®ª­ 
-
 
692
    mov  ebx,1			   ; 1 - ­ ç¨­ ¥¬ à¨á®¢ âì
-
 
693
    mcall
496
 
694
				   ; ‘Ž‡„€ðŒ ŽŠŽ
497
    mcall 12,1 ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ®¡ ®âà¨á®¢ª¥ ®ª­ 
695
    xor  eax,eax		   ; äã­ªæ¨ï 0 : ®¯à¥¤¥«¨âì ¨ ®âà¨á®¢ âì ®ª­®
-
 
696
    mov  ebx,WIN_X
-
 
697
  if SKIP eq 0
-
 
698
    mov  ecx,WIN_Y
498
    xor  eax,eax	; äã­ªæ¨ï 0 : ®¯à¥¤¥«¨âì ¨ ®âà¨á®¢ âì ®ª­®
699
  else
-
 
700
    mov  ecx,WIN_Y-15
499
    mov  ebx,WIN_X
701
  end if
500
    mov  ecx,WIN_Y-15
702
    mov  edx,0x14aabbcc 	   ; 梥â à ¡®ç¥© ®¡« á⨠ RRGGBB,8->color gl
501
    mov  edx,COL_WINDOW_BG 	   ; 梥â à ¡®ç¥© ®¡« á⨠ RRGGBB,8->color gl
703
    mov  edi,title		   ; § £®«®¢®ª
502
    mov  edi,title		   ; § £®«®¢®ª
Line 704... Line -...
704
    mcall
-
 
705
    call draw_week
-
 
706
 
503
    mcall
707
    mov  eax,8
-
 
708
    mov  ebx,205*65536+7
-
 
709
    mov  ecx,290*65536+10
-
 
Line 710... Line 504...
710
    mov  esi,0x005555dd
504
    call draw_week
711
    mov  edx,72
505
 
712
    mcall
506
    mcall 8,205*65536+7,290*65536+10,72,COL_TIME_BUTTONS
Line 742... Line 536...
742
    inc  edx
536
    inc  edx
743
    mcall
537
    mcall
Line 744... Line 538...
744
 
538
 
745
    mov  ebx,243*65536+14
539
    mov  ebx,243*65536+14
746
    mov  ecx,290*65536+20
-
 
747
    mov  esi,0x00dd7777
540
    mov  ecx,290*65536+20
748
    inc  edx
541
    inc  edx
Line 749... Line 542...
749
    mcall
542
    mcall
750
 
543
 
751
    mov  ebx,10*65536+100
544
    mov  ebx,14*65536+110
752
    mov  ecx,290*65536+20
545
    mov  ecx,285*65536+22
753
    mov  esi,0x00d5d5d5
546
    mov  esi,0x00d5d5d5
Line 754... Line -...
754
    inc  edx
-
 
755
    mcall
-
 
756
 
-
 
757
    mov  esi,0x05080d0
547
    inc  edx
758
  if SKIP eq 0
-
 
759
    mov  ebx,B_DATE_X
-
 
760
    mov  ecx,B_DATE_Y
-
 
761
    mov  edx,eax
-
 
762
    mcall
-
 
763
    inc  edx
-
 
764
    add  ebx,B_DATE_BSHIFT
-
 
765
    mcall
548
    mcall
766
    inc  edx
-
 
767
  else
549
 
768
    mov  edx,10
550
    mov  esi,COL_MONTH_YEAR_B
769
  end if
551
    mov  edx,10
770
    or	 edx,1 shl 29+1 shl 30
552
    or	 edx,1 shl 29+1 shl 30
771
    mov  ebx,B_NS_X
553
    mov  ebx,B_NS_X
Line 785... Line 567...
785
    add  ebx,B_SPIN_WIDTH shl 16
567
    add  ebx,B_SPIN_WIDTH shl 16
786
    inc  edx
568
    inc  edx
787
    mcall
569
    mcall
788
    call draw_days
570
    call draw_days
Line 789... Line 571...
789
 
571
 
790
    mov  eax,4			   ; äã­ªæ¨ï 4 : ­ ¯¨á âì ¢ ®ª­¥ ⥪áâ
572
	; äã­ªæ¨ï 4 : ­ ¯¨á âì ¢ ®ª­¥ ⥪áâ
791
    mov  ebx,110*65536+280
573
    mcall 4,162*65536+280,0x800000ff,sys_text
792
    mov  ecx,0x800000ff
-
 
793
    mov  edx,sys_text
-
 
794
    mcall
-
 
795
 
-
 
796
    mov  ebx,149*65536+302
-
 
797
    mov  edx,minus
-
 
798
    mcall
-
 
799
 
-
 
800
    mov  ebx,137*65536+292
574
    mcall  ,180*65536+302,0x800000ff,minus
801
    mov  ecx,0x80ff0000
-
 
802
    mov  edx,plus
-
 
803
    mcall
-
 
804
 
-
 
805
    mov  ebx,15*65536+298
575
    mcall  ,180*65536+292,0x80ff0000,plus
806
    mov  ecx,0x00000000
-
 
807
    mov  esi,15
-
 
808
    mov  edx,setd
-
 
Line 809... Line 576...
809
    mcall
576
    mcall  , 24*65536+292,0x00000000,set_date_t,15 ;set date text
Line 810... Line -...
810
 
-
 
811
    mov  ecx,0x10ddeeff 	   ; èà¨äâ 1 ¨ 梥â ( 0xF0RRGGBB )
-
 
812
 
-
 
813
 if SKIP eq 0
-
 
814
    mov  ebx,B_DATE
-
 
815
    mov  edx,datebut
-
 
816
    mov  esi,9
-
 
817
    btc  ecx,28
-
 
818
    mcall
-
 
819
    add  ebx,B_DATE_SHIFT
-
 
820
    add  edx,esi
577
 
821
    mcall
578
    mov  ecx,0x10ddeeff 	   ; èà¨äâ 1 ¨ 梥â ( 0xF0RRGGBB )
822
 end if
579
 
823
    mov  edx,n_style
580
    mov  edx,n_style
824
    mov  esi,ns_end-n_style
581
    mov  esi,ns_end-n_style
825
    mov  ebx,B_NS
582
    mov  ebx,B_NS
826
    cmp  [new_style],1
583
    cmp  [new_style],1
827
    je	 .high
584
    je	 .high
828
    mov  ecx,0xa0a0a0
585
    mov  ecx,0xa0a0a0
829
    jmp  .int
586
    jmp  .int
830
  .high:
587
  .high:
Line 831... Line 588...
831
    mov  ecx,0xac0000;d048c8
588
    mov  ecx,COL_NEW_STYLE_T
832
  .int:
589
  .int:
833
    mcall
590
    mcall
834
 
591
 
835
    mov  ecx,0xd048c8
592
    mov  ecx,COL_GO_TODAY_T
Line 852... Line 609...
852
    ShowFocus 2
609
    ShowFocus 2
853
    mcall
610
    mcall
Line 854... Line 611...
854
 
611
 
855
    call draw_year
612
    call draw_year
856
    mov  [dropped],0
-
 
857
    mov  eax,12 		   ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ®¡ ®âà¨á®¢ª¥ ®ª­ 
-
 
858
    mov  ebx,2			   ; 2, § ª®­ç¨«¨ à¨á®¢ âì
613
    mov  [dropped],0
859
    mcall
614
    mcall 12,2
Line 860... Line 615...
860
    ret 			   ; ¢ë室¨¬ ¨§ ¯à®æ¥¤ãàë
615
    ret 			   ; ¢ë室¨¬ ¨§ ¯à®æ¥¤ãàë
861
 
616
 
862
draw_year:
617
draw_year:
863
    mcall 8,B_YEAR_X,B_Y,5,0x05080d0
618
    mcall 8,B_YEAR_X,B_Y,5,COL_MONTH_YEAR_B
864
    ShowFocus 3,esi
619
    ShowFocus 3,esi
Line 865... Line 620...
865
    mcall 47,0x40001,Year,B_YEAR
620
    mcall 47,0x40001,Year,B_YEAR
Line 901... Line 656...
901
 
656
 
902
draw_week:
657
draw_week:
903
    mov  eax,13
658
    mov  eax,13
904
    mov  ebx,B_WBAR_X
659
    mov  ebx,B_WBAR_X
905
    mov  ecx,B_WBAR_Y
660
    mov  ecx,B_WBAR_Y
906
    mov  edx,0x90a0b0
661
    mov  edx,COL_WEEKDAY_BG
907
    mcall
662
    mcall
908
    movzx esi,byte[week_days]
663
    movzx esi,byte[week_days]
909
    movzx edi,byte[week_days+1]
664
    movzx edi,byte[week_days+1]
910
    mov  ebx,B_WEEK
665
    mov  ebx,B_WEEK
Line 929... Line 684...
929
 
684
 
930
draw_days:
685
draw_days:
931
    mov  eax,13
686
    mov  eax,13
932
    mov  ebx,B_DBAR_X
687
    mov  ebx,B_DBAR_X
933
    mov  ecx,B_DBAR_Y
688
    mov  ecx,B_DBAR_Y
934
    mov  edx,0xe0e0e0
689
    mov  edx,COL_DATES_BG
935
    mcall
690
    mcall
936
    call count_days
691
    call count_days
937
    cmp  ecx,[day_sel]
692
    cmp  ecx,[day_sel]
938
    jae  .ok
693
    jae  .ok
Line 946... Line 701...
946
  .dayloop:
701
  .dayloop:
947
    push ecx
702
    push ecx
948
    movzx edx,dx
703
    movzx edx,dx
949
    mov  esi,edi
704
    mov  esi,edi
950
    shl  esi,21
705
    shl  esi,21
951
    lea  edx,[edx+esi+30 shl 16]
706
    lea  edx,[edx+esi+29 shl 16]
952
    mov  ecx,edi
707
    mov  ecx,edi
953
    add  cl,[week_days+1]
708
    add  cl,[week_days+1]
954
    cmp  ecx,7
709
    cmp  ecx,7
955
    je	 .holiday
710
    je	 .holiday
956
    mov  esi,0x10000000
711
    mov  esi,0x10000000
Line 960... Line 715...
960
  .noholiday:
715
  .noholiday:
961
    mov  ecx,number
716
    mov  ecx,number
962
    inc  dword[ecx]
717
    inc  dword[ecx]
963
    pusha
718
    pusha
964
    mov  ebx,edx
719
    mov  ebx,edx
965
    mov  bx,20
720
    mov  bx,31           ; width
966
    sub  ebx,3 shl 16
721
    sub  ebx,8 shl 16
967
    shrd ecx,edx,16
722
    shrd ecx,edx,16
968
    mov  cx,20
723
    mov  cx,29           ; height
969
    sub  ecx,7 shl 16
724
    sub  ecx,12 shl 16
970
    mov  edx,[number]
725
    mov  edx,[number]
971
    cmp  edx,[day_sel]
726
    cmp  edx,[day_sel]
972
    je	 .draw_sel
727
    je	 .draw_sel
973
    mov  esi,0xe0e0e0
728
    mov  esi,COL_DATE_BUTTONS
974
    jmp  .draw_but
729
    jmp  .draw_but
975
  .draw_sel:
730
  .draw_sel:
976
    mov  esi,0x5080d0
731
    mov  esi,COL_DATE_CURRENT
977
    cmp  [focus],5
732
    cmp  [focus],5
978
    jne  .draw_but
733
    jne  .draw_but
979
    mov  esi,0xef7840;0xe26830
734
    mov  esi,COL_DATE_CHANGED 
980
  .draw_but:
735
  .draw_but:
981
    add  edx,200+1 shl 29
736
    add  edx,200+1 shl 29
982
    mov  eax,8
737
    mov  eax,8
983
    mcall
738
    mcall
984
    popa
739
    popa
985
    mcall
740
    mcall
-
 
741
	add edx,1 shl 16
-
 
742
	mcall
-
 
743
	sub edx,1 shl 16
986
    pop  ecx
744
    pop  ecx
987
    inc  edi
745
    inc  edi
988
    cmp  edi,7
746
    cmp  edi,7
989
    jne  .nowrap
747
    jne  .nowrap
990
    xor  edi,edi
748
    xor  edi,edi
Line 1070... Line 828...
1070
    mov  ebx,7
828
    mov  ebx,7
1071
    div  bx
829
    div  bx
1072
    mov  [firstday],edx
830
    mov  [firstday],edx
1073
    ret
831
    ret
Line 1074... Line -...
1074
 
-
 
1075
; ‡¤¥áì ­ å®¤ïâáï ¤ ­­ë¥ ¯à®£à ¬¬ë:
-
 
1076
 
-
 
1077
; ¨­â¥àä¥©á ¯à®£à ¬¬ë ¬­®£®ï§ëç­ë© - § ¤ ©â¥ ï§ëª ¢ lang.inc
-
 
1078
day_count db 3,0,3,2,3,2,3,3,2,3,2,3
-
 
1079
Fkeys	  db 210,211,212,213,214,215,216,217,208,209,228,159
-
 
1080
 
-
 
1081
title: 	 ; áâப  § £®«®¢ª 
-
 
1082
if lang eq ru
-
 
1083
     db   'Š «¥­¤ àì',0
-
 
1084
else if lang eq ge
-
 
1085
     db   'Kalender',0
-
 
1086
else if lang eq fr
-
 
1087
     db   'Calendrier',0
-
 
1088
else if lang eq et
-
 
1089
     db   'Kalender',0
-
 
1090
else if lang eq it
-
 
1091
     db   'Calendario',0
-
 
1092
else
-
 
1093
     db   'Calendar',0
-
 
1094
end if
-
 
1095
 
-
 
1096
if SKIP eq 0
-
 
1097
datebut:
-
 
1098
if lang eq ru
-
 
1099
     db   '1-ï ¤ â  '
-
 
1100
     db   '2-ï ¤ â  '
-
 
1101
else if lang eq fr
-
 
1102
     db   '1ere date'
-
 
1103
     db   '2eme date'
-
 
1104
else if lang eq ge
-
 
1105
     db   ' Datum 1 '
-
 
1106
     db   ' Datum 2 '
-
 
1107
else if lang eq et
-
 
1108
     db   'Kuupäev 1'
-
 
1109
     db   'Kuupäev 2'
-
 
1110
else if lang eq it
-
 
1111
     db   '1a data  '
-
 
1112
     db   '2a data  '
-
 
1113
else
-
 
1114
     db   '1st date '
-
 
1115
     db   '2nd date '
-
 
1116
end if
-
 
1117
end if
-
 
1118
n_style:
-
 
1119
if lang eq ru
-
 
1120
     db   '®¢ë© á⨫ì'
-
 
1121
else if lang eq de
-
 
1122
     db   'Neuer Stil'
-
 
1123
else if lang eq fr
-
 
1124
     db   'Nouveau'
-
 
1125
else if lang eq et
-
 
1126
     db   'Uus stiil'
-
 
1127
else if lang eq it
-
 
1128
     db   'Nuovo stile'
-
 
1129
else
-
 
1130
     db   'New style'
-
 
1131
end if
-
 
1132
ns_end:
-
 
1133
today_msg:
-
 
1134
if lang eq ru
-
 
1135
     db   '‘¥£®¤­ï'
-
 
1136
else if lang eq ge
-
 
1137
     db   'Heute'
-
 
1138
else if lang eq fr
-
 
1139
     db   "Aujourd'hui"
-
 
1140
else if lang eq et
-
 
1141
     db   'Täna'
-
 
1142
else if lang eq it
-
 
1143
     db   'Oggi'
-
 
1144
else
-
 
1145
     db   'Today'
-
 
1146
end if
-
 
1147
today_end:
-
 
1148
focus dd  3
-
 
1149
new_style dd 1
-
 
1150
dropped db 0
-
 
1151
 
-
 
1152
sys_text:
-
 
1153
if lang eq ru
-
 
1154
		db  'á¨á⥬­®¥ ¢à¥¬ï',0
-
 
1155
else if lang eq it
-
 
1156
		db   'Ora di sistema',0
-
 
1157
else
-
 
1158
		db  'á¨á⥬­®¥ ¢à¥¬ï',0
-
 
1159
end if
-
 
1160
plus:
-
 
1161
if lang eq ru
-
 
1162
		db  '¤®¡ ¢¨âì(+)',0
-
 
1163
else if lang eq it
-
 
1164
		db   'Avanti',0
-
 
1165
else
-
 
1166
		db  '¤®¡ ¢¨âì(+)',0
-
 
1167
end if
-
 
1168
minus:
-
 
1169
if lang eq ru
-
 
1170
		db  'ã¡à âì(-)',0
-
 
1171
else if lang eq it
-
 
1172
		db   'Indietro',0
-
 
1173
else
-
 
1174
		db  'ã¡à âì(-)',0
-
 
1175
end if
-
 
1176
setd:
-
 
1177
if lang eq ru
-
 
1178
		db  '“áâ ­®¢¨âì ¤ âã',0
-
 
1179
else if lang eq it
-
 
1180
		db   'Impostazioni',0
-
 
1181
else
-
 
1182
		db  '“áâ ­®¢¨âì ¤ âã',0
-
 
1183
end if
-
 
1184
 
832
 
1185
I_END:	; ª®­¥æ ¯à®£à ¬¬ë
833
I_END:	; ª®­¥æ ¯à®£à ¬¬ë
1186
firstday  dd ?
834
firstday  dd ?
1187
Year dd   ?
835
Year dd   ?
1188
Month dd  ?
836
Month dd  ?