Rev 90 | Rev 97 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 90 | Rev 92 | ||
---|---|---|---|
Line 773... | Line 773... | ||
773 | ; call kb_read |
773 | ; call kb_read |
Line 774... | Line 774... | ||
774 | 774 | ||
775 | mov al, 0xF3 ; set repeat rate & delay |
775 | mov al, 0xF3 ; set repeat rate & delay |
776 | call kb_write |
776 | call kb_write |
777 | call kb_read |
777 | call kb_read |
778 | mov al, 00100010b ; 24 500 ;00100100b ; 20 500 |
778 | mov al, 0 ; 30 250 ;00100010b ; 24 500 ;00100100b ; 20 500 |
779 | call kb_write |
779 | call kb_write |
780 | call kb_read |
780 | call kb_read |
781 | ;// mike.dld [ |
781 | ;// mike.dld [ |
782 | call set_lights |
782 | call set_lights |
Line 824... | Line 824... | ||
824 | align 32 |
824 | align 32 |
825 | osloop: |
825 | osloop: |
Line 826... | Line 826... | ||
826 | 826 | ||
827 | call [draw_pointer] |
827 | call [draw_pointer] |
828 | call checkbuttons |
- | |
829 | call main_loop_sys_getkey |
828 | call checkbuttons |
830 | call checkwindows |
829 | call checkwindows |
831 | ; call check_window_move_request |
830 | ; call check_window_move_request |
832 | call checkmisc |
831 | call checkmisc |
833 | call checkEgaCga |
832 | call checkEgaCga |
Line 2269... | Line 2268... | ||
2269 | mov ecx,16384 |
2268 | mov ecx,16384 |
2270 | cld |
2269 | cld |
2271 | rep movsd |
2270 | rep movsd |
2272 | ret |
2271 | ret |
Line 2273... | Line 2272... | ||
2273 | 2272 | ||
2274 | sysfn_lastkey: ; 18.12 = get all key pressed with ALT |
- | |
2275 | mov eax,[last_key_press] |
- | |
2276 | mov al,[keyboard_mode_sys] |
2273 | sysfn_lastkey: ; 18.12 = return 0 (backward compatibility) |
2277 | mov [esp+36],eax |
- | |
2278 | mov [last_key_press],0 |
2274 | and dword [esp+36], 0 |
Line 2279... | Line 2275... | ||
2279 | ret |
2275 | ret |
2280 | 2276 | ||
2281 | sysfn_getversion: ; 18.13 = get kernel ID and version |
2277 | sysfn_getversion: ; 18.13 = get kernel ID and version |
Line 2322... | Line 2318... | ||
2322 | ;// mike.dld, 2006-29-01 [ |
2318 | ;// mike.dld, 2006-29-01 [ |
2323 | screen_workarea RECT |
2319 | screen_workarea RECT |
2324 | ;// mike.dld, 2006-29-01 ] |
2320 | ;// mike.dld, 2006-29-01 ] |
2325 | window_minimize db 0 |
2321 | window_minimize db 0 |
2326 | sound_flag db 0 |
2322 | sound_flag db 0 |
2327 | last_key_press dd 0 |
- | |
2328 | keyboard_mode_sys db 0 |
- | |
2329 | endg |
2323 | endg |
Line 2330... | Line 2324... | ||
2330 | 2324 | ||
2331 | iglobal |
2325 | iglobal |
2332 | version_inf: |
2326 | version_inf: |
Line 2338... | Line 2332... | ||
2338 | 2332 | ||
2339 | UID_NONE=0 |
2333 | UID_NONE=0 |
2340 | UID_MENUETOS=1 ;official |
2334 | UID_MENUETOS=1 ;official |
Line 2341... | Line -... | ||
2341 | UID_KOLIBRI=2 ;russian |
- | |
2342 | - | ||
2343 | main_loop_sys_getkey: |
- | |
2344 | cmp [0xf400],byte 0 |
- | |
2345 | je .finish |
- | |
2346 | movzx eax,byte [0xf401] |
- | |
2347 | shl eax,8 |
- | |
2348 | mov [last_key_press],eax |
- | |
2349 | .finish: |
- | |
2350 | ret |
2335 | UID_KOLIBRI=2 ;russian |
2351 | 2336 | ||
2352 | sys_cachetodiskette: |
2337 | sys_cachetodiskette: |
2353 | ; pushad |
2338 | ; pushad |
2354 | ; cmp eax,1 |
2339 | ; cmp eax,1 |
Line 2514... | Line 2499... | ||
2514 | 2499 | ||
Line 2515... | Line 2500... | ||
2515 | align 4 |
2500 | align 4 |
2516 | 2501 | ||
- | 2502 | sys_getkey: |
|
2517 | sys_getkey: |
2503 | mov [esp+36],dword 1 |
2518 | mov [esp+36],dword 1 |
2504 | ; test main buffer |
2519 | mov ebx, [0x3000] ; TOP OF WINDOW STACK |
2505 | mov ebx, [0x3000] ; TOP OF WINDOW STACK |
2520 | movzx ecx,word [0xC000 + ebx * 2] |
2506 | movzx ecx,word [0xC000 + ebx * 2] |
2521 | mov edx,[0x3004] |
2507 | mov edx,[0x3004] |
Line 2536... | Line 2522... | ||
2536 | ; rep movsb |
2522 | ; rep movsb |
2537 | mov eax, 0xF402 |
2523 | mov eax, 0xF402 |
2538 | mov ebx, 0xF401 |
2524 | mov ebx, 0xF401 |
2539 | call memmove |
2525 | call memmove |
2540 | pop eax |
2526 | pop eax |
2541 | mov [last_key_press],eax |
- | |
2542 | - | ||
2543 | mov eax,[kb_state] |
- | |
2544 | and al,110000b |
- | |
2545 | cmp al,100000b |
- | |
2546 | je .yes_win_key |
- | |
2547 | cmp al,10000b |
- | |
2548 | je .yes_win_key |
- | |
2549 | mov eax,[last_key_press] |
- | |
2550 | jmp .no_win_key |
- | |
2551 | ; cmp ah,232 |
- | |
2552 | ; je .yes_win_key |
- | |
2553 | ; cmp ah,233 |
- | |
2554 | ; jne .no_win_key |
- | |
2555 | .yes_win_key: |
2527 | .ret_eax: |
2556 | mov eax,1 |
- | |
2557 | .no_win_key: |
- | |
2558 | mov [esp+36],eax |
2528 | mov [esp+36],eax |
- | 2529 | ret |
|
2559 | .finish: |
2530 | .finish: |
- | 2531 | ; test hotkeys buffer |
|
- | 2532 | mov ecx, hotkey_buffer |
|
- | 2533 | @@: |
|
- | 2534 | cmp [ecx], ebx |
|
- | 2535 | jz .found |
|
- | 2536 | add ecx, 8 |
|
- | 2537 | cmp ecx, hotkey_buffer+120*8 |
|
- | 2538 | jb @b |
|
2560 | ret |
2539 | ret |
2561 | 2540 | .found: |
|
- | 2541 | mov ax, [ecx+6] |
|
- | 2542 | shl eax, 16 |
|
- | 2543 | mov ah, [ecx+4] |
|
- | 2544 | mov al, 2 |
|
- | 2545 | and dword [ecx+4], 0 |
|
- | 2546 | and dword [ecx], 0 |
|
- | 2547 | jmp .ret_eax |
|
Line 2562... | Line 2548... | ||
2562 | 2548 | ||
Line 2563... | Line 2549... | ||
2563 | align 4 |
2549 | align 4 |
Line 4393... | Line 4379... | ||
4393 | 4379 | ||
Line 4394... | Line 4380... | ||
4394 | ret |
4380 | ret |
- | 4381 | ||
Line 4395... | Line 4382... | ||
4395 | 4382 | ||
4396 | 4383 | sys_process_def: |
|
Line 4397... | Line -... | ||
4397 | sys_process_def: |
- | |
4398 | 4384 | mov edi, [0x3000] |
|
4399 | cmp eax,1 ; set keyboard mode |
- | |
4400 | jne no_set_keyboard_setup |
4385 | |
Line 4401... | Line 4386... | ||
4401 | 4386 | dec eax ; 1 = set keyboard mode |
|
Line 4402... | Line 4387... | ||
4402 | mov edi,[0x3000] |
4387 | jne no_set_keyboard_setup |
Line 4403... | Line 4388... | ||
4403 | shl edi,8 |
4388 | |
4404 | add edi,0x80000+0xB4 |
4389 | shl edi,8 |
Line 4405... | Line -... | ||
4405 | mov [edi],bl |
- | |
4406 | 4390 | mov [edi+0x800B4],bl |
|
4407 | ret |
- | |
4408 | 4391 | ||
Line 4409... | Line 4392... | ||
4409 | no_set_keyboard_setup: |
4392 | ret |
Line 4410... | Line 4393... | ||
4410 | 4393 | ||
Line 4411... | Line 4394... | ||
4411 | cmp eax,2 ; get keyboard mode |
4394 | no_set_keyboard_setup: |
Line 4412... | Line 4395... | ||
4412 | jne no_get_keyboard_setup |
4395 | |
4413 | 4396 | dec eax ; 2 = get keyboard mode |
|
Line 4414... | Line 4397... | ||
4414 | mov edi,[0x3000] |
4397 | jne no_get_keyboard_setup |
4415 | shl edi,8 |
4398 | |
4416 | add edi,0x80000+0xB4 |
4399 | shl edi,8 |
Line 4442... | Line 4425... | ||
4442 | 4425 | ||
Line 4443... | Line 4426... | ||
4443 | ret |
4426 | ret |
Line -... | Line 4427... | ||
- | 4427 | ||
- | 4428 | no_get_keyboard_cas: |
|
- | 4429 | ||
- | 4430 | dec eax |
|
- | 4431 | jnz no_add_keyboard_hotkey |
|
- | 4432 | ||
- | 4433 | mov eax, hotkey_list |
|
- | 4434 | @@: |
|
- | 4435 | cmp dword [eax+8], 0 |
|
- | 4436 | jz .found_free |
|
- | 4437 | add eax, 16 |
|
- | 4438 | cmp eax, hotkey_list+16*256 |
|
- | 4439 | jb @b |
|
- | 4440 | mov dword [esp+36], 1 |
|
- | 4441 | ret |
|
- | 4442 | .found_free: |
|
- | 4443 | mov [eax+8], edi |
|
- | 4444 | mov [eax+4], ecx |
|
- | 4445 | movzx ebx, bl |
|
- | 4446 | lea ebx, [hotkey_scancodes+ebx*4] |
|
- | 4447 | mov ecx, [ebx] |
|
- | 4448 | mov [eax], ecx |
|
- | 4449 | mov [ebx], eax |
|
- | 4450 | mov [eax+12], ebx |
|
- | 4451 | jecxz @f |
|
- | 4452 | mov [ecx+12], eax |
|
- | 4453 | @@: |
|
- | 4454 | and dword [esp+36], 0 |
|
- | 4455 | ret |
|
- | 4456 | ||
- | 4457 | no_add_keyboard_hotkey: |
|
- | 4458 | ||
- | 4459 | dec eax |
|
- | 4460 | jnz no_del_keyboard_hotkey |
|
- | 4461 | ||
- | 4462 | movzx ebx, bl |
|
- | 4463 | lea ebx, [hotkey_scancodes+ebx*4] |
|
- | 4464 | mov eax, [ebx] |
|
- | 4465 | .scan: |
|
- | 4466 | test eax, eax |
|
- | 4467 | jz .notfound |
|
- | 4468 | cmp [eax+8], edi |
|
- | 4469 | jnz .next |
|
- | 4470 | cmp [eax+4], ecx |
|
- | 4471 | jz .found |
|
- | 4472 | .next: |
|
- | 4473 | mov eax, [eax] |
|
- | 4474 | jmp .scan |
|
- | 4475 | .notfound: |
|
- | 4476 | mov dword [esp+36], 1 |
|
- | 4477 | ret |
|
- | 4478 | .found: |
|
- | 4479 | mov ecx, [eax] |
|
- | 4480 | jecxz @f |
|
- | 4481 | mov edx, [eax+12] |
|
- | 4482 | mov [ecx+12], edx |
|
- | 4483 | @@: |
|
- | 4484 | mov ecx, [eax+12] |
|
- | 4485 | mov edx, [eax] |
|
- | 4486 | mov [ecx], edx |
|
- | 4487 | xor edx, edx |
|
- | 4488 | mov [eax+4], edx |
|
- | 4489 | mov [eax+8], edx |
|
- | 4490 | mov [eax+12], edx |
|
Line -... | Line 4491... | ||
- | 4491 | mov [eax], edx |
|
4444 | 4492 | mov [esp+36], edx |
|
Line 4445... | Line 4493... | ||
4445 | no_get_keyboard_cas: |
4493 | ret |
4446 | 4494 |