124,6 → 124,7 |
start_menu: |
mcall 18,12 |
mov [button_presssed_alt],eax |
mov [draw_window_1],1 |
; mov ecx,eax |
; mcall 47,0x40100, ,10 shl 16+5,0 |
; mov eax,ecx |
159,8 → 160,29 |
je start_menu_application |
cmp ah,83 ;62 |
je kill_active_application |
cmp ah,71 ;179 |
jne no_test_179 |
cmp [page_list],15 |
je @f |
inc [page_list] |
mov [draw_window_1],1 |
@@: |
jmp begin |
|
no_test_179: |
cmp ah,72 ;180 |
jne no_test_180 |
cmp [page_list],0 |
je @f |
dec [page_list] |
mov [draw_window_1],1 |
@@: |
jmp begin |
|
no_test_180: |
|
jmp begin |
|
button_presssed_alt dd 0 |
|
active_process dd 0 |
239,6 → 261,9 |
cmp [esi],byte 'x' |
jne new_number |
|
mcall 14 |
mov [screen_size],eax |
|
mcall 48,5 |
mov ecx,eax |
lea edx,[ebx-PANEL_HEIGHT-1] |
280,6 → 305,22 |
jmp still |
|
red: ; redraw window |
|
mcall 14 |
movzx ecx,ax |
mov edx,eax |
shr edx,16 |
cmp [screen_size.height],ax |
jne @f |
rol eax,16 |
cmp [screen_size.width],ax |
je .lp1 |
rol eax,16 |
@@: mov [screen_size],eax |
sub ecx,PANEL_HEIGHT |
mcall 67,0,,,PANEL_HEIGHT |
|
.lp1: |
call draw_window |
call draw_info |
jmp still |
419,11 → 460,31 |
call setup_music |
|
noid20: |
cmp ah,21 |
jnz noid21 |
cmp [page_list],15 |
je @f |
inc [page_list] |
jmp red |
@@: |
jmp still |
|
noid21: |
cmp ah,22 |
jnz noid22 |
cmp [page_list],0 |
je @f |
dec [page_list] |
jmp red |
@@: |
jmp still |
|
noid22: |
|
jmp still |
|
|
|
draw_running_applications: |
|
pusha |
449,7 → 510,17 |
mov edi,0 |
mov ecx,2 |
mov [contrast],0 |
mov eax,[max_applications] |
mov ebx,[page_list] |
xor edx,edx |
mul ebx |
cmp eax,0 |
je @f |
inc eax |
@@: |
mov [draw_start_position],eax |
|
|
newpr: |
|
mov eax,9 |
464,8 → 535,13 |
|
cmp byte [0x8000+10], '@' |
je norpl |
cmp [0x8000+11],dword 'CON ' |
cmp [0x8000+10],dword 'ICON' |
jne .noicon |
cmp dword[0x8000+42],51 |
jne .noicon |
cmp dword[0x8000+46],51 |
je norpl |
.noicon: |
cmp [0x8000+11],dword 'ENU ' |
je norpl |
; cmp [0x8000+12],dword 'NEL ' |
472,7 → 548,9 |
; je norpl |
cmp [0x8000+10],dword ' ' |
je norpl |
|
dec [draw_start_position] |
cmp [draw_start_position],0 |
jg norpl |
mov eax,13 |
mov ebx,edi |
inc ebx |
562,6 → 640,16 |
|
calculate_applications: |
|
mov eax,[max_applications] |
mov ebx,[page_list] |
xor edx,edx |
mul ebx |
cmp eax,0 |
je @f |
inc eax |
@@: |
mov [draw_start_position],eax |
|
mov edi,app_list |
mov ecx,20 |
mov eax,0xff |
579,6 → 667,13 |
|
cmp byte [0x8000+10], '@' |
je cnorpl |
cmp [0x8000+10],dword 'ICON' |
jne .noicon |
cmp dword[0x8000+42],51 |
jne .noicon |
cmp dword[0x8000+46],51 |
je cnorpl |
.noicon: |
cmp [0x8000+11],dword 'CON ' |
je cnorpl |
cmp [0x8000+11],dword 'ENU ' |
587,6 → 682,9 |
; je cnorpl |
cmp [0x8000+10],dword ' ' |
je cnorpl |
dec [draw_start_position] |
cmp [draw_start_position],0 |
jg cnorpl |
|
mov [app_list+edi*4],ecx |
|
619,15 → 717,15 |
now1: |
cmp eax,799 |
jne now2 |
mov [max_applications],10 ;8 |
mov [max_applications],9 ;10 ;8 |
now2: |
cmp eax,1023 |
jne now3 |
mov [max_applications],13 ;8 |
mov [max_applications],12 ;13 ;8 |
now3: |
cmp eax,1279 |
jne now4 |
mov [max_applications],18 ;8 |
mov [max_applications],17 ;18 ;8 |
now4: |
mov edi,1 |
|
1041,6 → 1139,7 |
mov eax,38 |
cmp [soften_up],1 |
jne no_su |
and edx,0x00FFFFFF |
int 0x40 |
no_su: |
|
1053,6 → 1152,7 |
add edi,[b_size_y] |
add ecx,edi |
sub ecx,3*65536+3 |
and edx,0x00FFFFFF |
int 0x40 |
no_sd: |
popa |
1073,6 → 1173,7 |
add esi,4 |
|
mov eax,38 |
and edx,0x00FFFFFF |
int 0x40 |
add ecx,1*65536+1 |
cmp cx,15 |
1551,6 → 1652,15 |
sub ebx,14 shl 16 |
inc edx ;button 20 |
int 0x40 |
sub ebx,12 shl 16 |
mov bx,8 |
mov ecx,6 shl 16+10 |
inc edx ;button 21 |
int 0x40 |
sub ebx,18 shl 16 |
inc edx ;button 22 |
int 0x40 |
|
; flags |
|
mov eax,26 |
1655,6 → 1765,45 |
add ebx,1 shl 16 |
int 0x40 |
|
mov edx,0 |
mov eax,13 |
mov ebx,[maxx] |
sub ebx,134 |
shl ebx,16 |
mov bx,9 |
mov ecx,6 shl 16+11 |
int 0x40 |
sub ebx,18 shl 16 |
int 0x40 |
add ebx,19 shl 16 |
sub bx,2 |
mov ecx,7 shl 16+9 |
mov edx,0xffffff |
int 0x40 |
sub ebx,18 shl 16 |
int 0x40 |
|
mov eax,4 |
mov edx,page_a1 |
mov ebx,[maxx] |
sub ebx,150 |
shl ebx,16 |
mov bx,8 |
mov esi,4 |
int 0x40 |
add ebx,1 shl 16 |
int 0x40 |
|
mov eax,47 |
mov ebx,0x10100 |
mov ecx,[page_list] |
mov edx,[maxx] |
sub edx,141 |
shl edx,16 |
mov dx,7 |
mov esi,0xffffff |
int 0x40 |
|
; sub ebx,14 shl 16 |
; mov bx,7 |
; mov edx,turn_text |
1857,9 → 2006,6 |
|
ret |
|
|
|
|
; DATA |
|
stripe: |
1923,6 → 2069,10 |
running_applications dd 0x100 |
max_applications dd 11 |
|
page_list dd 0 |
draw_start_position dd 0 |
draw_window_1 db 0 |
|
b_size_y: dd 0x0 |
ysi dd 0 |
small_draw dd 0x0 |
1930,6 → 2080,7 |
ptime dd 0x0 |
maxx dd 0x0 |
text db '0123456789' |
page_a1 db '< >' |
bte dd 0xccddee |
|
wcolor dd 0x506070 |
1942,6 → 2093,11 |
stcount dd 0x0 |
|
I_END: |
|
screen_size: |
.height dw ? |
.width dw ? |
|
area9 rb 100 |
system_colours rd 10 |
app_list rd 50 |