8,7 → 8,7 |
; COMPILE WITH FASM |
|
WIN_X equ (150 shl 16+270) |
WIN_Y equ (100 shl 16+300) |
WIN_Y equ (100 shl 16+335) |
|
LINE1 equ 27 shl 16+16 |
B_MONTH_X equ 10 shl 16+158 |
271,8 → 271,9 |
|
still: ; |
|
mov eax,10 ; äãªæ¨ï 10 - ¦¤ âì ᮡëâ¨ï |
int 0x40 ; ¢ë§ë¢ ¥¬ á¨á⥬ã |
mov eax,23 ; wait here for event |
mov ebx,50 |
mcall |
.evt: |
mov ebp,[focus] |
cmp eax,1 ; ¯¥à¥à¨á®¢ âì ®ª® ? |
282,11 → 283,13 |
cmp eax,3 ; ¦ â ª®¯ª ? |
je button ; ¥á«¨ ¤ - button |
|
call draw_clock |
|
jmp still ; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ç «® 横« |
|
key: ; ¦ â ª« ¢¨è ª« ¢¨ âãॠ|
mov eax,2 ; äãªæ¨ï 2 - áç¨â âì ª®¤ ᨬ¢®« |
int 0x40 ; ¢ë§®¢ á¨á⥬ë |
mcall ; ¢ë§®¢ á¨á⥬ë |
cmp ah,9 |
jne no_tab |
.tab: |
355,7 → 358,7 |
|
button: ; ¦ â ª®¯ª ¢ ®ª¥ ¯à®£à ¬¬ë |
mov eax,17 ; 17 - ¯®«ãç¨âì ¨¤¥â¨ä¨ª â®à ¦ ⮩ ª®¯ª¨ |
int 0x40 ; ¢ë§®¢ á¨á⥬ë |
mcall ; ¢ë§®¢ á¨á⥬ë |
movzx ebx,ah |
cmp ah,200 |
jbe nodayselect |
380,9 → 383,41 |
jne noclose ; ¥á«¨ ¥â - ¨¤¨ ¢¯¥àñ¤ noclose |
close: |
or eax,-1 ; ¢ë室 ¨§ ¯à®£à ¬¬ë |
int 0x40 ; ¢ë§®¢ á¨á⥬ë |
mcall ; ¢ë§®¢ á¨á⥬ë |
|
noclose: |
|
cmp ah,72 |
je plus_he |
|
cmp ah,73 |
je plus_hd |
|
cmp ah,74 |
je minus_he |
|
cmp ah,75 |
je minus_hd |
|
cmp ah,76 |
je plus_me |
|
cmp ah,77 |
je plus_md |
|
cmp ah,78 |
je minus_me |
|
cmp ah,79 |
je minus_md |
|
cmp ah,80 |
je reset |
|
;jmp still |
|
|
|
cmp ah,2 ; drop down list |
jne no_dropdn |
.drop: |
394,7 → 429,7 |
mov ecx,31 |
mov eax,8 |
.bremove: |
int 0x40 |
mcall |
dec edx |
loop .bremove |
call draw_dropdown |
463,15 → 498,148 |
jmp upd |
|
|
reset: |
|
mov eax,3 |
mcall |
mov ecx,eax |
shl ecx,16 |
shr ecx,16 |
mov eax,22 |
mov ebx,0x00000000 |
mcall |
|
jmp still |
|
plus_hd: |
|
mov eax,3 |
mcall |
mov ecx,eax |
add ecx,1 |
mov eax,22 |
mov ebx,0x00000000 |
mcall |
|
jmp still |
|
plus_he: |
|
mov eax,3 |
mcall |
mov ecx,eax |
add ecx,16 |
mov eax,22 |
mov ebx,0x00000000 |
mcall |
|
jmp still |
|
minus_hd: |
|
mov eax,3 |
mcall |
mov ecx,eax |
sub ecx,1 |
mov eax,22 |
mov ebx,0x00000000 |
mcall |
|
jmp still |
|
minus_he: |
|
mov eax,3 |
mcall |
mov ecx,eax |
sub ecx,16 |
mov eax,22 |
mov ebx,0x00000000 |
mcall |
|
jmp still |
|
plus_md: |
|
mov eax,3 |
mcall |
mov ecx,eax |
add ecx,256 |
mov eax,22 |
mov ebx,0x00000000 |
mcall |
|
jmp still |
|
plus_me: |
|
mov eax,3 |
mcall |
mov ecx,eax |
add ecx,4096 |
mov eax,22 |
mov ebx,0x00000000 |
mcall |
|
jmp still |
|
minus_md: |
|
mov eax,3 |
mcall |
mov ecx,eax |
sub ecx,256 |
mov eax,22 |
mov ebx,0x00000000 |
mcall |
|
jmp still |
|
minus_me: |
|
mov eax,3 |
mcall |
mov ecx,eax |
sub ecx,4096 |
mov eax,22 |
mov ebx,0x00000000 |
mcall |
|
jmp still |
|
; ********************************************* |
; *******
******* |
; ********************************************* |
|
draw_clock: |
|
mov eax,3 |
mcall |
mov ecx,eax |
mov eax,47 |
mov esi,0x50000000 |
mov edi,0xaabbcc |
mov ebx,0x00020100 |
mov edx,205*65536+280 |
mcall |
|
shr ecx,8 |
add edx,20*65536 |
;mov eax,47 |
mcall |
|
shr ecx,8 |
add edx,20*65536 |
;mov eax,47 |
mcall |
ret |
|
draw_window: |
|
|
mov eax,12 ; äãªæ¨ï 12: á®®¡é¨âì ®¡ ®âà¨á®¢ª¥ ®ª |
mov ebx,1 ; 1 - ç¨ ¥¬ à¨á®¢ âì |
int 0x40 |
mcall |
; ð |
xor eax,eax ; äãªæ¨ï 0 : ®¯à¥¤¥«¨âì ¨ ®âà¨á®¢ âì ®ª® |
mov ebx,WIN_X |
482,19 → 650,82 |
end if |
mov edx,0x13aabbcc ; 梥â à ¡®ç¥© ®¡« á⨠RRGGBB,8->color gl |
mov edi,header ; § £®«®¢®ª |
int 0x40 |
mcall |
call draw_week |
|
mov eax,8 |
mov ebx,205*65536+7 |
mov ecx,290*65536+10 |
mov esi,0x005555dd |
mov edx,72 |
mcall |
|
;mov eax,8 |
mov ebx,212*65536+7 |
;mov ecx,290*65536+10 |
;mov esi,0x005555dd |
inc edx |
mcall |
|
;mov eax,8 |
mov ebx,205*65536+7 |
mov ecx,300*65536+10 |
;mov esi,0x005555dd |
inc edx |
mcall |
|
;mov eax,8 |
mov ebx,212*65536+7 |
;mov ecx,300*65536+10 |
;mov esi,0x005555dd |
inc edx |
mcall |
|
;mov eax,8 |
mov ebx,224*65536+7 |
mov ecx,290*65536+10 |
;mov esi,0x005555dd |
inc edx |
mcall |
|
;mov eax,8 |
mov ebx,231*65536+7 |
;mov ecx,290*65536+10 |
;mov esi,0x005555dd |
inc edx |
mcall |
|
;mov eax,8 |
mov ebx,224*65536+7 |
mov ecx,300*65536+10 |
;mov esi,0x005555dd |
inc edx |
mcall |
|
;mov eax,8 |
mov ebx,231*65536+7 |
;mov ecx,300*65536+10 |
;mov esi,0x005555dd |
inc edx |
mcall |
|
;mov eax,8 |
mov ebx,243*65536+14 |
mov ecx,290*65536+20 |
mov esi,0x00dd7777 |
inc edx |
mcall |
|
mov eax,8 |
mov esi,0x05080d0 |
if SKIP eq 0 |
mov ebx,B_DATE_X |
mov ecx,B_DATE_Y |
mov edx,eax |
int 0x40 |
mcall |
inc edx |
add ebx,B_DATE_BSHIFT |
int 0x40 |
mcall |
inc edx |
else |
mov edx,10 |
502,24 → 733,43 |
or edx,1 shl 29+1 shl 30 |
mov ebx,B_NS_X |
mov ecx,B_NS_Y |
int 0x40 |
mcall |
add edx,1-1 shl 29 |
mov ebx,B_TODAY_X+8*(today_end-today_msg) |
mov ecx,B_TODAY_Y |
int 0x40 |
mcall |
mov ecx,B_Y |
mov ebx,B_MONTH_X |
mov edx,2 |
int 0x40 |
mcall |
mov ebx,B_SPIN_X |
inc edx |
int 0x40 |
mcall |
add ebx,B_SPIN_WIDTH shl 16 |
inc edx |
int 0x40 |
mcall |
call draw_days |
|
mov eax,4 ; äãªæ¨ï 4 : ¯¨á âì ¢ ®ª¥ ⥪áâ |
mov ebx,110*65536+280 |
mov ecx,0x800000ff |
mov edx,sys_text |
mcall |
|
;mov eax,4 |
mov ebx,149*65536+302 |
;mov ecx,0x800000ff |
mov edx,minus |
mcall |
|
;mov eax,4 |
mov ebx,137*65536+292 |
mov ecx,0x80ff0000 |
mov edx,plus |
mcall |
|
|
;mov eax,4 |
mov ecx,0x10ddeeff ; èà¨äâ 1 ¨ 梥â ( 0xF0RRGGBB ) |
|
if SKIP eq 0 |
527,10 → 777,10 |
mov edx,datebut |
mov esi,9 |
btc ecx,28 |
int 0x40 |
mcall |
add ebx,B_DATE_SHIFT |
add edx,esi |
int 0x40 |
mcall |
end if |
mov edx,n_style |
mov esi,ns_end-n_style |
542,19 → 792,19 |
.high: |
mov ecx,0xac0000;d048c8 |
.int: |
int 0x40 |
mcall |
|
mov ecx,0xd048c8 |
mov edx,today_msg |
mov ebx,B_TODAY |
mov esi,today_end-today_msg |
int 0x40 |
mcall |
|
mov ebx,B_SPIN |
mov edx,spinner |
mov esi,3 |
ShowFocus 4 |
int 0x40 |
mcall |
|
mov edx,[Month] |
movzx esi,byte[month_name] |
562,13 → 812,13 |
add edx,month_name+1 |
mov ebx,B_MONTH |
ShowFocus 2 |
int 0x40 |
mcall |
|
call draw_year |
mov [dropped],0 |
mov eax,12 ; äãªæ¨ï 12: á®®¡é¨âì ®¡ ®âà¨á®¢ª¥ ®ª |
mov ebx,2 ; 2, § ª®ç¨«¨ à¨á®¢ âì |
int 0x40 |
mcall |
ret ; ¢ë室¨¬ ¨§ ¯à®æ¥¤ãàë |
|
draw_year: |
594,13 → 844,13 |
mov ecx,[esp+4] |
mov esi,0x6f9fef |
mov eax,8 |
int 0x40 |
mcall |
shr eax,1 |
mov ebx,[esp+8] |
xchg edx,[esp+12] |
movzx esi,byte[month_name] |
ShowFocus edi |
int 0x40 |
mcall |
add edx,esi |
xchg edx,[esp+12] |
add dword[esp+8],16 |
616,7 → 866,7 |
mov ebx,B_WBAR_X |
mov ecx,B_WBAR_Y |
mov edx,0x90a0b0 |
int 0x40 |
mcall |
movzx esi,byte[week_days] |
movzx edi,byte[week_days+1] |
mov ebx,B_WEEK |
632,7 → 882,7 |
.holiday: |
mov ecx,0x10cc1010 |
.noholiday: |
int 0x40 |
mcall |
add edx,esi |
add ebx,B_WX_SHIFT |
pop ecx |
644,7 → 894,7 |
mov ebx,B_DBAR_X |
mov ecx,B_DBAR_Y |
mov edx,0xe0e0e0 |
int 0x40 |
mcall |
call count_days |
cmp ecx,[day_sel] |
jae .ok |
692,9 → 942,9 |
.draw_but: |
add edx,200+1 shl 29 |
mov eax,8 |
int 0x40 |
mcall |
popa |
int 0x40 |
mcall |
pop ecx |
inc edi |
cmp edi,7 |
786,7 → 1036,7 |
|
; ¤¥áì 室ïâáï ¤ ë¥ ¯à®£à ¬¬ë: |
|
; ¨â¥àä¥©á ¯à®£à ¬¬ë ¤¢ãï§ëçë© - § ¤ ©â¥ ï§ëª ¢ macros.inc |
; ¨â¥àä¥©á ¯à®£à ¬¬ë ¬®£®ï§ëçë© - § ¤ ©â¥ ï§ëª ¢ lang.inc |
day_count db 3,0,3,2,3,2,3,3,2,3,2,3 |
Fkeys db 210,211,212,213,214,215,216,217,208,209,228,159 |
|
852,6 → 1102,11 |
new_style dd 1 |
dropped db 0 |
|
co_text: db '¢à¥¬ï á¥áᨨ',0 |
sys_text: db 'á¨á⥬®¥ ¢à¥¬ï',0 |
plus: db '¤®¡ ¢¨âì(+)',0 |
minus: db 'ã¡à âì(-)',0 |
|
I_END: ; ª®¥æ ¯à®£à ¬¬ë |
firstday dd ? |
Year dd ? |