Rev 32 | Rev 35 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 32 | Rev 33 | ||
---|---|---|---|
Line 84... | Line 84... | ||
84 | draw_pointer dd __sys_draw_pointer |
84 | draw_pointer dd __sys_draw_pointer |
85 | drawbar dd __sys_drawbar |
85 | drawbar dd __sys_drawbar |
86 | putpixel dd __sys_putpixel |
86 | putpixel dd __sys_putpixel |
87 | ; } mike.dld |
87 | ; } mike.dld |
Line 88... | Line 88... | ||
88 | 88 | ||
89 | version db 'Kolibri OS version 0.5.2.1 ',13,10,13,10,0 |
89 | version db 'Kolibri OS version 0.5.2.9 ',13,10,13,10,0 |
Line 90... | Line 90... | ||
90 | ;dd endofcode-0x10000 |
90 | ;dd endofcode-0x10000 |
91 | 91 | ||
92 | ;db 'Boot02' |
92 | ;db 'Boot02' |
Line 580... | Line 580... | ||
580 | ; mov eax,cr4 |
580 | ; mov eax,cr4 |
581 | ; or eax,200h ; Enable fxsave/fxstor |
581 | ; or eax,200h ; Enable fxsave/fxstor |
582 | ; mov cr4,eax |
582 | ; mov cr4,eax |
583 | ; fail_fpu: |
583 | ; fail_fpu: |
Line -... | Line 584... | ||
- | 584 | ||
- | 585 | ;The CPU to this moment should be already in PM, |
|
- | 586 | ;and bit MP of the register cr0 should be installed in 1. |
|
- | 587 | finit ;reset of the FPU (finit, instead of fninit) |
|
- | 588 | fsetpm ;enable PM of the FPU |
|
- | 589 | finit ;reset the registers, contents which are still equal RM |
|
584 | 590 | ;Now FPU too in PM |
|
Line 585... | Line 591... | ||
585 | ; DETECT DEVICES |
591 | ; DETECT DEVICES |
586 | 592 | ||
587 | mov esi,boot_devices |
593 | mov esi,boot_devices |
Line 597... | Line 603... | ||
597 | mov al,0x9b ; lsb 1193180 / 1193 |
603 | mov al,0x9b ; lsb 1193180 / 1193 |
598 | out 0x40,al |
604 | out 0x40,al |
599 | mov al,0x2e ; msb |
605 | mov al,0x2e ; msb |
600 | out 0x40,al |
606 | out 0x40,al |
Line 601... | Line -... | ||
601 | - | ||
602 | ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
- | |
603 | ;include 'detect/commouse.inc' |
- | |
604 | ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
607 | |
Line 605... | Line 608... | ||
605 | ; SET MOUSE |
608 | ; SET MOUSE |
606 | 609 | ||
607 | mov esi,boot_setmouse |
610 | mov esi,boot_setmouse |
Line 708... | Line 711... | ||
708 | no_pal_ega: |
711 | no_pal_ega: |
Line 709... | Line 712... | ||
709 | 712 | ||
Line 710... | Line 713... | ||
710 | ; LOAD DEFAULT SKIN |
713 | ; LOAD DEFAULT SKIN |
- | 714 | ||
Line 711... | Line 715... | ||
711 | 715 | call load_default_skin |
|
Line 712... | Line 716... | ||
712 | call load_default_skin |
716 | call load_default_skin_1 |
Line 746... | Line 750... | ||
746 | ; SET KEYBOARD PARAMETERS |
750 | ; SET KEYBOARD PARAMETERS |
747 | mov al, 0xf6 ; reset keyboard, scan enabled |
751 | mov al, 0xf6 ; reset keyboard, scan enabled |
748 | call kb_write |
752 | call kb_write |
Line 749... | Line 753... | ||
749 | 753 | ||
750 | ; wait until 8042 is ready |
754 | ; wait until 8042 is ready |
751 | mov ecx,0 |
755 | ; xor ecx,ecx |
752 | @@: |
756 | ; @@: |
753 | in al,64h |
757 | ; in al,64h |
754 | and al,00000010b |
758 | ; and al,00000010b |
- | 759 | ; loopnz @b |
|
Line 755... | Line 760... | ||
755 | loopnz @b |
760 | call Wait8042BufferEmpty |
756 | 761 | ||
757 | ; mov al, 0xED ; svetodiody - only for testing! |
762 | ; mov al, 0xED ; svetodiody - only for testing! |
758 | ; call kb_write |
763 | ; call kb_write |
Line 805... | Line 810... | ||
805 | 810 | ||
Line 806... | Line 811... | ||
806 | ; Fly :) |
811 | ; Fly :) |
807 | 812 | ||
808 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
813 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
809 | ; ; |
814 | ; ; |
810 | ; MAIN OS LOOP ; |
815 | ; MAIN OS LOOP START ; |
811 | ; ; |
816 | ; ; |
812 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
817 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 813... | Line -... | ||
813 | align 32 |
- | |
814 | osloop: |
818 | align 32 |
815 | - | ||
816 | call check_mouse_data |
819 | osloop: |
817 | call [draw_pointer] |
820 | |
818 | 821 | call [draw_pointer] |
|
819 | call checkbuttons |
822 | call checkbuttons |
820 | call main_loop_sys_getkey |
- | |
821 | call checkwindows |
823 | call main_loop_sys_getkey |
822 | call check_window_move_request |
824 | call checkwindows |
823 | - | ||
824 | call checkmisc |
825 | call check_window_move_request |
825 | call checkEgaCga |
- | |
826 | 826 | call checkmisc |
|
827 | call stack_handler |
827 | call checkEgaCga |
828 | 828 | call stack_handler |
|
829 | call checkidle |
- | |
- | 829 | call checkidle |
|
- | 830 | call check_fdd_motor_status |
|
- | 831 | jmp osloop |
|
- | 832 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
- | 833 | ; ; |
|
Line 830... | Line 834... | ||
830 | call check_fdd_motor_status |
834 | ; MAIN OS LOOP END ; |
831 | jmp osloop |
835 | ; ; |
Line 832... | Line 836... | ||
832 | 836 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
Line 1037... | Line 1041... | ||
1037 | je cnvl |
1041 | je cnvl |
1038 | ret |
1042 | ret |
1039 | cnvl: |
1043 | cnvl: |
Line 1040... | Line 1044... | ||
1040 | 1044 | ||
1041 | pushad |
1045 | pushad |
1042 | mov ecx,[0xfb0a] |
1046 | ; mov ecx,[0xfb0a] |
1043 | cmp ecx,[novesachecksum] |
1047 | ; cmp ecx,[novesachecksum] |
1044 | jne novesal |
1048 | ; jne novesal |
1045 | popad |
1049 | ; popad |
Line 1046... | Line 1050... | ||
1046 | ret |
1050 | ; ret |
1047 | 1051 | ||
1048 | novesal: |
1052 | novesal: |
1049 | mov [novesachecksum],ecx |
1053 | ; mov [novesachecksum],ecx |
1050 | mov ecx,0 |
1054 | mov ecx,0 |
1051 | movzx eax,word [0xfb0c] |
1055 | movzx eax,word [0xfb0c] |
1052 | cmp eax,100 |
1056 | cmp eax,100 |
Line 2041... | Line 2045... | ||
2041 | 2045 | ||
2042 | 2046 | ||
2043 | detect_devices: |
2047 | detect_devices: |
- | 2048 | ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|
2044 | ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
2049 | include 'detect/commouse.inc' |
2045 | include 'detect/commouse.inc' |
2050 | include 'detect/ps2mouse.inc' |
2046 | ;include 'detect/dev_fd.inc' |
2051 | ;include 'detect/dev_fd.inc' |
2047 | ;include 'detect/dev_hdcd.inc' |
2052 | ;include 'detect/dev_hdcd.inc' |
2048 | ;include 'detect/sear_par.inc' |
2053 | ;include 'detect/sear_par.inc' |
Line 2118... | Line 2123... | ||
2118 | cmp esi, edx |
2123 | cmp esi, edx |
2119 | jz nowindowactivate ; continue if window_stack_value != number_of_processes |
2124 | jz nowindowactivate ; continue if window_stack_value != number_of_processes |
2120 | ; i.e. if window is not already active |
2125 | ; i.e. if window is not already active |
Line 2121... | Line 2126... | ||
2121 | 2126 | ||
- | 2127 | ;* start code - get active process (1) - Mario79 |
|
2122 | ;* start code - get active process (1) - Mario79 |
2128 | cli |
2123 | mov [window_minimize],2 |
2129 | mov [window_minimize],2 |
- | 2130 | ; mov [active_process],edi |
|
2124 | mov [active_process],edi |
2131 | sti |
Line 2125... | Line 2132... | ||
2125 | ;* end code - get active process (1) - Mario79 |
2132 | ;* end code - get active process (1) - Mario79 |
2126 | 2133 | ||
2127 | mov [0xff01],edi ; activate |
2134 | mov [0xff01],edi ; activate |
Line 2144... | Line 2151... | ||
2144 | 2151 | ||
2145 | ; SAVE ramdisk to /hd/1/menuet.img |
2152 | ; SAVE ramdisk to /hd/1/menuet.img |
2146 | ;!!!!!!!!!!!!!!!!!!!!!!!! |
2153 | ;!!!!!!!!!!!!!!!!!!!!!!!! |
2147 | include 'blkdev/rdsave.inc' |
2154 | include 'blkdev/rdsave.inc' |
2148 | ;!!!!!!!!!!!!!!!!!!!!!!!! |
- | |
2149 | ;* start code - get active process (2) - Mario79 |
2155 | ;!!!!!!!!!!!!!!!!!!!!!!!! |
2150 | cmp eax,7 |
2156 | cmp eax,7 |
2151 | jnz nogetactiveprocess |
2157 | jnz nogetactiveprocess |
2152 | mov eax,[active_process] |
2158 | mov eax,[active_process] |
2153 | ret |
2159 | ret |
Line 2242... | Line 2248... | ||
2242 | jnz no_mouse_centered |
2248 | jnz no_mouse_centered |
2243 | call mouse_centered |
2249 | call mouse_centered |
2244 | mov [esp+36],dword 0 |
2250 | mov [esp+36],dword 0 |
2245 | ret |
2251 | ret |
2246 | no_mouse_centered: |
2252 | no_mouse_centered: |
2247 | ;* end code - get active process (2) - Mario79 |
- | |
2248 | cmp eax,16 |
2253 | cmp eax,16 |
2249 | jnz no_get_free_space |
2254 | jnz no_get_free_space |
2250 | mov eax,[MEM_FreeSpace] |
2255 | mov eax,[MEM_FreeSpace] |
2251 | shl eax,2 |
2256 | shl eax,2 |
2252 | ret |
2257 | ret |
Line 2264... | Line 2269... | ||
2264 | last_key_press dd 0 |
2269 | last_key_press dd 0 |
2265 | keyboard_mode_sys db 0 |
2270 | keyboard_mode_sys db 0 |
Line 2266... | Line 2271... | ||
2266 | 2271 | ||
2267 | iglobal |
2272 | iglobal |
2268 | version_inf: |
2273 | version_inf: |
2269 | db 0,5,2,1 ; version 0.5.2.1 |
2274 | db 0,5,2,9 ; version 0.5.2.9 |
2270 | db UID_KOLIBRI |
2275 | db UID_KOLIBRI |
2271 | db 'Kolibri',0 |
2276 | db 'Kolibri',0 |
2272 | version_end: |
2277 | version_end: |
Line 2787... | Line 2792... | ||
2787 | shr edi,16+8 |
2792 | shr edi,16+8 |
2788 | and edi,15 |
2793 | and edi,15 |
Line 2789... | Line 2794... | ||
2789 | 2794 | ||
2790 | cmp edi,0 ; type I - original style |
2795 | cmp edi,0 ; type I - original style |
- | 2796 | jne nosyswI |
|
2791 | jne nosyswI |
2797 | inc [mouse_pause] |
2792 | call sys_set_window |
2798 | call sys_set_window |
- | 2799 | call drawwindow_I |
|
2793 | call drawwindow_I |
2800 | dec [mouse_pause] |
2794 | ret |
2801 | ret |
Line 2795... | Line 2802... | ||
2795 | nosyswI: |
2802 | nosyswI: |
2796 | 2803 | ||
- | 2804 | cmp edi,1 ; type II - only reserve area, no draw |
|
2797 | cmp edi,1 ; type II - only reserve area, no draw |
2805 | jne nosyswII |
2798 | jne nosyswII |
2806 | inc [mouse_pause] |
- | 2807 | call sys_set_window |
|
2799 | call sys_set_window |
2808 | call sys_window_mouse |
2800 | call sys_window_mouse |
2809 | dec [mouse_pause] |
Line 2801... | Line 2810... | ||
2801 | ret |
2810 | ret |
2802 | nosyswII: |
2811 | nosyswII: |
- | 2812 | ||
2803 | 2813 | cmp edi,2 ; type III - new style |
|
2804 | cmp edi,2 ; type III - new style |
2814 | jne nosyswIII |
- | 2815 | inc [mouse_pause] |
|
2805 | jne nosyswIII |
2816 | call sys_set_window |
2806 | call sys_set_window |
2817 | call drawwindow_III |
Line 2807... | Line 2818... | ||
2807 | call drawwindow_III |
2818 | dec [mouse_pause] |
2808 | ret |
2819 | ret |
- | 2820 | nosyswIII: |
|
- | 2821 | ||
- | 2822 | cmp edi,3 ; type IV - skinned window |
|
- | 2823 | jne nosyswIV |
|
- | 2824 | ||
- | 2825 | cli |
|
- | 2826 | mov edi,[0x3010] |
|
- | 2827 | sub edi,0x3000 |
|
- | 2828 | shr edi,5 |
|
- | 2829 | cmp edi,[active_process] |
|
- | 2830 | jne @f |
|
- | 2831 | mov [aw_yes],1 |
|
- | 2832 | jmp aw_yes_end |
|
- | 2833 | @@: |
|
- | 2834 | mov [aw_yes],0 |
|
2809 | nosyswIII: |
2835 | aw_yes_end: |
2810 | 2836 | sti |
|
- | 2837 | ||
- | 2838 | inc [mouse_pause] |
|
2811 | cmp edi,3 ; type IV - skinned window |
2839 | call sys_set_window |
2812 | jne nosyswIV |
2840 | call drawwindow_IV |
Line 2813... | Line 2841... | ||
2813 | call sys_set_window |
2841 | dec [mouse_pause] |
Line 3256... | Line 3284... | ||
3256 | pop eax |
3284 | pop eax |
3257 | popad |
3285 | popad |
Line 3258... | Line 3286... | ||
3258 | 3286 | ||
Line 3259... | Line -... | ||
3259 | ret |
- | |
3260 | - | ||
3261 | ; check mouse |
- | |
3262 | ; |
- | |
3263 | ; |
- | |
3264 | ; FB00 -> FB0F mouse memory 00 chunk count - FB0A-B x - FB0C-D y |
- | |
3265 | ; FB10 -> FB17 mouse color mem |
- | |
3266 | ; FB21 x move |
- | |
3267 | ; FB22 y move |
- | |
3268 | ; FB30 color temp |
- | |
3269 | ; FB28 high bits temp |
- | |
3270 | ; FB4A -> FB4D FB4A-B x-under - FB4C-D y-under |
- | |
3271 | ; FC00 -> FCFE com1/ps2 buffer |
- | |
3272 | ; FCFF com1/ps2 buffer count starting from FC00 |
- | |
3273 | - | ||
3274 | uglobal |
- | |
3275 | mousecount dd 0x0 |
- | |
3276 | mousedata dd 0x0 |
- | |
3277 | endg |
- | |
3278 | - | ||
3279 | - | ||
3280 | check_mouse_data: |
- | |
3281 | - | ||
3282 | pushad |
- | |
3283 | - | ||
3284 | cmp [0xF604],byte 1 |
- | |
3285 | jne no_ps2_mouse |
- | |
3286 | mov [mousecount],dword 0x2e0000+12*4096 |
- | |
3287 | mov [mousedata],dword 0x2e0000+12*4096+0x10 |
- | |
3288 | jmp uusicheckmouse |
- | |
3289 | no_ps2_mouse: |
- | |
3290 | cmp [0xF604],byte 2 |
- | |
3291 | jne no_com1_mouse |
- | |
3292 | mov [mousecount],dword 0x2e0000+4*4096 |
- | |
3293 | mov [mousedata],dword 0x2e0000+4*4096+0x10 |
- | |
3294 | jmp uusicheckmouse |
- | |
3295 | no_com1_mouse: |
- | |
3296 | mov [mousecount],dword 0x2e0000+3*4096 |
- | |
3297 | mov [mousedata],dword 0x2e0000+3*4096+0x10 |
- | |
3298 | - | ||
3299 | uusicheckmouse: |
- | |
3300 | - | ||
3301 | mov ebx,[mousecount] ; anything at buffer for mouse |
- | |
3302 | cmp dword [ebx], 0 ; !!! |
- | |
3303 | jz checkmouseret |
- | |
3304 | - | ||
3305 | ; first byte of comX or ps2 ? |
- | |
3306 | - | ||
3307 | cmp [0xF604],byte 1 |
- | |
3308 | je ps2mousefirst |
- | |
3309 | - | ||
3310 | ; ****************************************** |
- | |
3311 | ; *********** COMX mouse driver ************ |
- | |
3312 | ; ****************************************** |
- | |
3313 | - | ||
3314 | com1mousefirst: |
- | |
3315 | - | ||
3316 | mov edi,[mousedata] |
- | |
3317 | mov dl,byte [edi] ; first com1 ? |
- | |
3318 | test dl,64 |
- | |
3319 | jz @f |
- | |
3320 | mov [0xfb00],byte 0 ; zero mouse block count |
- | |
3321 | @@: |
- | |
3322 | xor ebx,ebx |
- | |
3323 | - | ||
3324 | mov bl,[0xfb00] |
- | |
3325 | inc bl |
- | |
3326 | mov [0xfb00],bl |
- | |
3327 | mov eax,0xfb00 |
- | |
3328 | add eax,ebx |
- | |
3329 | mov edi,[mousedata] |
- | |
3330 | mov dl,byte [edi] |
- | |
3331 | mov [eax],byte dl |
- | |
3332 | cmp bl,3 ; three ? |
- | |
3333 | jnz decm |
- | |
3334 | - | ||
3335 | ; buttons |
- | |
3336 | - | ||
3337 | ;* change right and left button by places - start code - Mario79 |
- | |
3338 | mov al,[0xfb01] |
- | |
3339 | mov ah,al |
- | |
3340 | shr al,3 |
- | |
3341 | and al,2 |
- | |
3342 | shr ah,5 |
- | |
3343 | and ah,1 |
- | |
3344 | add al,ah |
- | |
3345 | ;* change right and left button by places - end code - Mario79 |
- | |
3346 | - | ||
3347 | mov [0xfb40],al |
- | |
3348 | - | ||
3349 | ; com1 mouse |
- | |
3350 | ; x |
- | |
3351 | - | ||
3352 | mov dl,[0xfb01] ; x high bits |
- | |
3353 | movzx eax,dl |
- | |
3354 | and al,3 |
- | |
3355 | shl al,6 |
- | |
3356 | mov dl,byte[0xfb02] ; x low bits |
- | |
3357 | add al,dl |
- | |
3358 | mov [0xfb21],byte al |
- | |
3359 | movzx ebx,word[0xfb0a] |
- | |
3360 | - | ||
3361 | mov al,byte [0xfb01] ; + or - ? |
- | |
3362 | test al,2 |
- | |
3363 | jz x_add |
- | |
3364 | - | ||
3365 | x_sub: ; x- |
- | |
3366 | sub bx,255 |
- | |
3367 | sub bx,255 |
- | |
3368 | x_add: ; x+ |
- | |
3369 | movzx eax,byte [0xfb21] |
- | |
3370 | add bx,ax |
- | |
3371 | add bx,ax |
- | |
3372 | push ebx |
- | |
3373 | mov [0xfb00],byte 0 |
- | |
3374 | - | ||
3375 | ; y |
- | |
3376 | - | ||
3377 | - | ||
3378 | my_event: |
- | |
3379 | - | ||
3380 | mov dl,[0xfb01] ; y high bits |
- | |
3381 | movzx eax,dl |
- | |
3382 | and al,12 |
- | |
3383 | shl al,4 |
- | |
3384 | mov dl,byte[0xfb03] ; y low bits |
- | |
3385 | add al,dl |
- | |
3386 | mov [0xfb22],byte al |
- | |
3387 | movzx ebx,word[0xfb0c] |
- | |
3388 | - | ||
3389 | mov al,byte [0xfb01] ; + or - ? |
- | |
3390 | test al,8 |
- | |
3391 | je y_add |
- | |
3392 | - | ||
3393 | y_sub: ; y- |
- | |
3394 | sub bx,255 |
- | |
3395 | sub bx,255 |
- | |
3396 | y_add: ; y+ |
- | |
3397 | movzx eax,byte [0xfb22] |
- | |
3398 | add bx,ax |
- | |
3399 | add bx,ax |
- | |
3400 | push ebx |
- | |
3401 | mov [0xfb00],byte 0 |
- | |
3402 | jmp mdraw |
- | |
3403 | - | ||
3404 | ; end of com1 mouse |
- | |
3405 | - | ||
3406 | - | ||
3407 | ; ****************************************** |
- | |
3408 | ; ******** PS2 MOUSE DRIVER ************** |
- | |
3409 | ; ****************************************** |
- | |
3410 | - | ||
3411 | ps2mousefirst: |
- | |
3412 | - | ||
3413 | movzx edx,byte [0x2E0000+4096*12+0x10] ; first ps2 ? |
- | |
3414 | cmp edx,40 |
- | |
3415 | jne @f |
- | |
3416 | mov [0xfb00],byte 0 ; zero mouse block count |
- | |
3417 | @@: |
- | |
3418 | - | ||
3419 | movzx ebx,byte [0xfb00] |
- | |
3420 | add ebx,1 |
- | |
3421 | mov [0xfb00],bl |
- | |
3422 | mov eax,0xfb00 |
- | |
3423 | add eax,ebx |
- | |
3424 | mov dl,byte [0x2E0000+4096*12+0x10] |
- | |
3425 | mov [eax],byte dl |
- | |
3426 | - | ||
3427 | cmp bl,3 ; full packet of three bytes ? |
- | |
3428 | jnz decm |
- | |
3429 | - | ||
3430 | mov [0xfb00],byte 0 ; zero mouse block count |
- | |
3431 | - | ||
3432 | ; buttons |
- | |
3433 | - | ||
3434 | movzx eax,byte [0xfb01] |
- | |
3435 | and eax,3 |
- | |
3436 | mov [0xfb40],al |
- | |
3437 | - | ||
3438 | ; x |
- | |
3439 | - | ||
3440 | movzx eax,word [0xfb0a] |
- | |
3441 | movzx edx,byte [0xfb02] |
- | |
3442 | cmp edx,128 |
- | |
3443 | jb ps2xp |
- | |
3444 | shl edx,1 |
- | |
3445 | add eax,edx |
- | |
3446 | cmp eax,512 |
- | |
3447 | jge ps2xsok |
- | |
3448 | xor eax, eax |
- | |
3449 | jmp ps2xready |
- | |
3450 | ps2xsok: |
- | |
3451 | sub eax,512 |
- | |
3452 | jmp ps2xready |
- | |
3453 | ps2xp: |
- | |
3454 | shl edx,1 |
- | |
3455 | add eax,edx |
- | |
3456 | jmp ps2xready |
- | |
3457 | ps2xready: |
- | |
3458 | push eax |
- | |
3459 | - | ||
3460 | ; y |
- | |
3461 | - | ||
3462 | movzx eax,word [0xfb0c] |
- | |
3463 | movzx edx,byte [0xfb03] |
- | |
3464 | cmp edx,128 |
- | |
3465 | jb ps2yp |
- | |
3466 | add eax,512 |
- | |
3467 | shl edx,1 |
- | |
3468 | sub eax,edx |
- | |
3469 | jmp ps2yready |
- | |
3470 | ps2yp: |
- | |
3471 | shl edx,1 |
- | |
3472 | cmp edx,eax |
- | |
3473 | jb ps201 |
- | |
3474 | mov edx,eax |
- | |
3475 | ps201: |
- | |
3476 | sub eax,edx |
- | |
3477 | jmp ps2yready |
- | |
3478 | ps2yready: |
- | |
3479 | push eax |
- | |
3480 | - | ||
3481 | ;jmp mdraw |
- | |
3482 | - | ||
3483 | ; end of ps2 mouse |
- | |
3484 | - | ||
3485 | - | ||
3486 | ; **************************** |
- | |
3487 | ; ***** CHECK FOR LIMITS ***** |
- | |
3488 | ; **************************** |
- | |
3489 | - | ||
3490 | mdraw: |
- | |
3491 | - | ||
3492 | cmp [0xfb44],byte 0 |
- | |
3493 | jne mousedraw4 |
- | |
3494 | cmp [0xfb40],byte 0 |
- | |
3495 | je mousedraw4 |
- | |
3496 | mov [0xfff5],byte 1 |
- | |
3497 | - | ||
3498 | mousedraw4: |
- | |
3499 | - | ||
3500 | pop ebx |
- | |
3501 | pop eax |
- | |
3502 | - | ||
3503 | mov [mouse_active],1 |
- | |
3504 | - | ||
3505 | ; mov dx,0 ; smaller than zero |
- | |
3506 | xor dx,dx |
- | |
3507 | cmp bx,dx |
- | |
3508 | jge mnb11 |
- | |
3509 | ; mov bx,0 |
- | |
3510 | xor bx,bx |
- | |
3511 | mnb11: |
- | |
3512 | mov [0xfb0c],word bx |
- | |
3513 | - | ||
3514 | ; mov dx,0 |
- | |
3515 | xor dx,dx |
- | |
3516 | cmp ax,dx |
- | |
3517 | jge mnb22 |
- | |
3518 | ; mov ax,0 |
- | |
3519 | xor ax,ax |
- | |
3520 | mnb22: |
- | |
3521 | mov [0xfb0a],word ax |
- | |
3522 | - | ||
3523 | mov edx,[0xfe04] ; bigger than maximum |
- | |
3524 | cmp ebx,edx |
- | |
3525 | jb mnb1 |
- | |
3526 | mov bx,[0xfe04] |
- | |
3527 | mnb1: |
- | |
3528 | mov [0xfb0c],word bx |
- | |
3529 | - | ||
3530 | mov edx,[0xfe00] |
- | |
3531 | cmp eax,edx |
- | |
3532 | jb mnb2 |
- | |
3533 | mov ax,[0xfe00] |
- | |
3534 | mnb2: |
- | |
3535 | mov [0xfb0a],word ax |
- | |
3536 | - | ||
3537 | - | ||
3538 | ; **** NEXT DATA BYTE FROM MOUSE BUFFER **** |
- | |
3539 | - | ||
3540 | decm: |
- | |
3541 | - | ||
3542 | mov edi,[mousecount] ; decrease counter |
- | |
3543 | dec dword [edi] |
- | |
3544 | - | ||
3545 | mov esi,[mousedata] |
- | |
3546 | mov edi,esi |
- | |
3547 | inc esi |
- | |
3548 | ; mov ecx,250 |
- | |
3549 | mov ecx,[mousecount] |
- | |
3550 | mov ecx,[ecx] |
- | |
3551 | cld |
- | |
3552 | rep movsb |
- | |
3553 | - | ||
3554 | jmp uusicheckmouse |
- | |
3555 | - | ||
3556 | checkmouseret: |
- | |
3557 | - | ||
3558 | cmp [0xfb44],byte 0 |
- | |
3559 | jne cmret |
- | |
3560 | - | ||
3561 | cmp [0xfb40],byte 0 |
- | |
3562 | je cmret |
- | |
3563 | - | ||
3564 | mov [0xfff4],byte 0 |
- | |
3565 | mov [0xfff5],byte 0 |
- | |
3566 | - | ||
3567 | cmret: |
- | |
3568 | - | ||
3569 | popad |
- | |
3570 | - | ||
3571 | ret |
- | |
3572 | - | ||
3573 | - | ||
3574 | draw_mouse_under: |
- | |
3575 | - | ||
3576 | ; return old picture |
- | |
3577 | ; cli |
- | |
3578 | - | ||
3579 | pushad |
- | |
3580 | - | ||
3581 | xor ecx,ecx |
- | |
3582 | xor edx,edx |
- | |
3583 | - | ||
3584 | ;cli ; !!!**** |
- | |
3585 | align 4 |
- | |
3586 | mres: |
- | |
3587 | - | ||
3588 | movzx eax,word [0xfb4a] |
- | |
3589 | movzx ebx,word [0xfb4c] |
- | |
3590 | - | ||
3591 | add eax,ecx |
- | |
3592 | add ebx,edx |
- | |
3593 | - | ||
3594 | push ecx |
- | |
3595 | push edx |
- | |
3596 | push eax |
- | |
3597 | push ebx |
- | |
3598 | - | ||
3599 | mov eax,edx |
- | |
3600 | shl eax,6 |
- | |
3601 | shl ecx,2 |
- | |
3602 | add eax,ecx |
- | |
3603 | add eax,mouseunder |
- | |
3604 | mov ecx,[eax] |
- | |
3605 | - | ||
3606 | pop ebx |
- | |
3607 | pop eax |
- | |
3608 | - | ||
3609 | ;;;push edi |
- | |
3610 | mov edi,1 ;force |
- | |
3611 | call [putpixel] |
- | |
3612 | ;;;pop edi |
- | |
3613 | - | ||
3614 | pop edx |
- | |
3615 | pop ecx |
- | |
3616 | - | ||
3617 | inc ecx |
- | |
3618 | cmp ecx, 16 |
- | |
3619 | jnz mres |
- | |
3620 | xor ecx, ecx |
- | |
3621 | inc edx |
- | |
3622 | cmp edx, 24 |
- | |
3623 | jnz mres |
- | |
3624 | ;sti ; !!!**** |
- | |
3625 | - | ||
3626 | popad |
- | |
3627 | - | ||
3628 | ; sti |
- | |
3629 | - | ||
3630 | ret |
- | |
3631 | - | ||
3632 | - | ||
3633 | save_draw_mouse: |
- | |
3634 | - | ||
3635 | ; save & draw |
- | |
3636 | ; cli |
- | |
3637 | - | ||
3638 | mov [0xfb4a],ax |
- | |
3639 | mov [0xfb4c],bx |
- | |
3640 | push eax |
- | |
3641 | push ebx |
- | |
3642 | mov ecx,0 |
- | |
3643 | mov edx,0 |
- | |
3644 | - | ||
3645 | ;cli ; !!!**** |
- | |
3646 | - | ||
3647 | drm: |
- | |
3648 | - | ||
3649 | push eax |
- | |
3650 | push ebx |
- | |
3651 | push ecx |
- | |
3652 | push edx |
- | |
3653 | - | ||
3654 | ; helloworld |
- | |
3655 | push eax ebx ecx |
- | |
3656 | add eax,ecx ; save picture under mouse |
- | |
3657 | add ebx,edx |
- | |
3658 | push ecx |
- | |
3659 | call getpixel |
- | |
3660 | mov [0xfb30],ecx |
- | |
3661 | pop ecx |
- | |
3662 | mov eax,edx |
- | |
3663 | shl eax,6 |
- | |
3664 | shl ecx,2 |
- | |
3665 | add eax,ecx |
- | |
3666 | add eax,mouseunder |
- | |
3667 | mov ebx,[0xfb30] |
- | |
3668 | mov [eax],ebx |
- | |
3669 | pop ecx ebx eax |
- | |
3670 | - | ||
3671 | mov edi,edx ; y cycle |
- | |
3672 | shl edi,4 ; *16 bytes per row |
- | |
3673 | add edi,ecx ; x cycle |
- | |
3674 | mov esi, edi |
- | |
3675 | add edi, esi |
- | |
3676 | add edi, esi ; *3 |
- | |
3677 | add edi,[0xf200] ; we have our str address |
- | |
3678 | mov esi, edi |
- | |
3679 | add esi, 16*24*3 |
- | |
3680 | push ecx |
- | |
3681 | mov ecx, [0xfb30] |
- | |
3682 | call combine_colors |
- | |
3683 | mov [0xfb10], ecx |
- | |
3684 | pop ecx |
- | |
3685 | - | ||
3686 | - | ||
3687 | pop edx |
- | |
3688 | pop ecx |
- | |
3689 | pop ebx |
- | |
3690 | pop eax |
- | |
3691 | - | ||
3692 | add eax,ecx ; we have x coord+cycle |
- | |
3693 | add ebx,edx ; and y coord+cycle |
- | |
3694 | - | ||
3695 | push ecx edi |
- | |
3696 | mov ecx, [0xfb10] |
- | |
3697 | mov edi, 1 |
- | |
3698 | call [putpixel] |
- | |
3699 | pop edi ecx |
- | |
3700 | - | ||
3701 | mnext: |
- | |
3702 | - | ||
3703 | mov ebx,[esp+0] ; pure y coord again |
- | |
3704 | mov eax,[esp+4] ; and x |
- | |
3705 | - | ||
3706 | inc ecx ; +1 cycle |
- | |
3707 | cmp ecx,16 ; if more than 16 |
- | |
3708 | jnz drm |
- | |
3709 | xor ecx, ecx |
- | |
3710 | inc edx |
- | |
3711 | cmp edx,24 |
- | |
3712 | jnz drm |
- | |
3713 | - | ||
3714 | pop ebx |
- | |
3715 | pop eax |
- | |
3716 | - | ||
3717 | ; sti ; !!!**** |
- | |
3718 | - | ||
3719 | ret |
- | |
3720 | - | ||
3721 | - | ||
3722 | combine_colors: |
- | |
3723 | - | ||
3724 | ; in |
- | |
3725 | ; ecx - color ( 00 RR GG BB ) |
- | |
3726 | ; edi - ref to new color byte |
- | |
3727 | ; esi - ref to alpha byte |
- | |
3728 | ; |
- | |
3729 | ; out |
- | |
3730 | ; ecx - new color ( roughly (ecx*[esi]>>8)+([edi]*[esi]>>8) ) |
- | |
3731 | - | ||
3732 | push eax |
- | |
3733 | push ebx |
- | |
3734 | push edx |
- | |
3735 | push ecx |
- | |
3736 | xor ecx, ecx |
- | |
3737 | ; byte 2 |
- | |
3738 | mov eax, 0xff |
- | |
3739 | sub al, [esi+0] |
- | |
3740 | mov ebx, [esp] |
- | |
3741 | shr ebx, 16 |
- | |
3742 | and ebx, 0xff |
- | |
3743 | mul ebx |
- | |
3744 | shr eax, 8 |
- | |
3745 | add ecx, eax |
- | |
3746 | ; xor eax, eax |
- | |
3747 | ; xor ebx, ebx |
- | |
3748 | ; mov al, [edi+0] |
- | |
3749 | ; mov bl, [esi+0] |
- | |
3750 | movzx eax, byte [edi+0] |
- | |
3751 | movzx ebx, byte [esi+0] |
- | |
3752 | mul ebx |
- | |
3753 | shr eax, 8 |
- | |
3754 | add ecx, eax |
- | |
3755 | shl ecx, 8 |
- | |
3756 | ; byte 1 |
- | |
3757 | mov eax, 0xff |
- | |
3758 | sub al, [esi+1] |
- | |
3759 | mov ebx, [esp] |
- | |
3760 | shr ebx, 8 |
- | |
3761 | and ebx, 0xff |
- | |
3762 | mul ebx |
- | |
3763 | shr eax, 8 |
- | |
3764 | add ecx, eax |
- | |
3765 | ; xor eax, eax |
- | |
3766 | ; xor ebx, ebx |
- | |
3767 | ; mov al, [edi+1] |
- | |
3768 | ; mov bl, [esi+1] |
- | |
3769 | movzx eax, byte [edi+1] |
- | |
3770 | movzx ebx, byte [esi+1] |
- | |
3771 | mul ebx |
- | |
3772 | shr eax, 8 |
- | |
3773 | add ecx, eax |
- | |
3774 | shl ecx, 8 |
- | |
3775 | ; byte 2 |
- | |
3776 | mov eax, 0xff |
- | |
3777 | sub al, [esi+2] |
- | |
3778 | mov ebx, [esp] |
- | |
3779 | and ebx, 0xff |
- | |
3780 | mul ebx |
- | |
3781 | shr eax, 8 |
- | |
3782 | add ecx, eax |
- | |
3783 | ; xor eax, eax |
- | |
3784 | ; xor ebx, ebx |
- | |
3785 | ; mov al, [edi+2] |
- | |
3786 | ; mov bl, [esi+2] |
- | |
3787 | movzx eax, byte [edi+2] |
- | |
3788 | movzx ebx, byte [esi+2] |
- | |
3789 | mul ebx |
- | |
3790 | shr eax, 8 |
- | |
3791 | add ecx, eax |
- | |
3792 | - | ||
3793 | pop eax |
- | |
3794 | pop edx |
- | |
3795 | pop ebx |
- | |
3796 | pop eax |
- | |
3797 | ret |
- | |
3798 | - | ||
3799 | - | ||
3800 | __sys_disable_mouse: |
- | |
3801 | - | ||
3802 | pushad |
- | |
3803 | - | ||
3804 | cmp [0x3000],dword 1 |
- | |
3805 | je disable_m |
- | |
3806 | - | ||
3807 | mov edx,[0x3000] |
- | |
3808 | shl edx,5 |
- | |
3809 | add edx,window_data |
- | |
3810 | - | ||
3811 | movzx eax, word [0xfb0a] |
- | |
3812 | movzx ebx, word [0xfb0c] |
- | |
3813 | - | ||
3814 | mov ecx,[0xfe00] |
- | |
3815 | inc ecx |
- | |
3816 | imul ecx,ebx |
- | |
3817 | add ecx,eax |
- | |
3818 | add ecx, display_data |
- | |
3819 | - | ||
3820 | movzx eax, byte [edx+twdw+0xe] |
- | |
3821 | - | ||
3822 | movzx ebx, byte [ecx] |
- | |
3823 | cmp eax,ebx |
- | |
3824 | je yes_mouse_disable |
- | |
3825 | movzx ebx, byte [ecx+16] |
- | |
3826 | cmp eax,ebx |
- | |
3827 | je yes_mouse_disable |
- | |
3828 | - | ||
3829 | mov ebx,[0xfe00] |
- | |
3830 | inc ebx |
- | |
3831 | imul ebx,10 |
- | |
3832 | add ecx,ebx |
- | |
3833 | - | ||
3834 | movzx ebx, byte [ecx] |
- | |
3835 | cmp eax,ebx |
- | |
3836 | je yes_mouse_disable |
- | |
3837 | - | ||
3838 | mov ebx,[0xfe00] |
- | |
3839 | inc ebx |
- | |
3840 | imul ebx,10 |
- | |
3841 | add ecx,ebx |
- | |
3842 | - | ||
3843 | movzx ebx, byte [ecx] |
- | |
3844 | cmp eax,ebx |
- | |
3845 | je yes_mouse_disable |
- | |
3846 | movzx ebx, byte [ecx+16] |
- | |
3847 | cmp eax,ebx |
- | |
3848 | je yes_mouse_disable |
- | |
3849 | - | ||
3850 | jmp no_mouse_disable |
- | |
3851 | - | ||
3852 | yes_mouse_disable: |
- | |
3853 | - | ||
3854 | mov edx,[0x3000] |
- | |
3855 | shl edx,5 |
- | |
3856 | add edx,window_data |
- | |
3857 | - | ||
3858 | movzx eax, word [0xfb0a] |
- | |
3859 | movzx ebx, word [0xfb0c] |
- | |
3860 | - | ||
3861 | mov ecx,[edx+0] ; mouse inside the area ? |
- | |
3862 | add eax,14 |
- | |
3863 | cmp eax,ecx |
- | |
3864 | jb no_mouse_disable |
- | |
3865 | sub eax,14 |
- | |
3866 | - | ||
3867 | add ecx,[edx+8] |
- | |
3868 | cmp eax,ecx |
- | |
3869 | jg no_mouse_disable |
- | |
3870 | - | ||
3871 | mov ecx,[edx+4] |
- | |
3872 | add ebx,20 |
- | |
3873 | cmp ebx,ecx |
- | |
3874 | jb no_mouse_disable |
- | |
3875 | sub ebx,20 |
- | |
3876 | - | ||
3877 | add ecx,[edx+12] |
- | |
3878 | cmp ebx,ecx |
- | |
3879 | jg no_mouse_disable |
- | |
3880 | - | ||
3881 | disable_m: |
- | |
3882 | - | ||
3883 | cmp dword [0xf204],dword 0 |
- | |
3884 | jne @f |
- | |
3885 | call draw_mouse_under |
- | |
3886 | @@: |
- | |
3887 | - | ||
3888 | mov [0xf204],dword 1 |
- | |
3889 | - | ||
3890 | no_mouse_disable: |
- | |
3891 | - | ||
3892 | popad |
- | |
3893 | - | ||
3894 | ret |
- | |
3895 | - | ||
3896 | - | ||
3897 | - | ||
3898 | __sys_draw_pointer: |
- | |
3899 | cli |
- | |
3900 | - | ||
3901 | pushad |
- | |
3902 | - | ||
3903 | cmp dword [0xf204],dword 0 ; mouse visible ? |
- | |
3904 | je chms00 |
- | |
3905 | - | ||
3906 | dec dword [0xf204] |
- | |
3907 | - | ||
3908 | cmp [0xf204],dword 0 |
- | |
3909 | jnz nodmu2 |
- | |
3910 | - | ||
3911 | movzx ebx,word [0xfb0c] |
- | |
3912 | movzx eax,word [0xfb0a] |
- | |
3913 | call save_draw_mouse |
- | |
3914 | - | ||
3915 | popad |
- | |
3916 | sti |
- | |
3917 | ret |
- | |
3918 | - | ||
3919 | nodmu2: |
- | |
3920 | - | ||
3921 | popad |
- | |
3922 | sti |
- | |
3923 | ret |
- | |
3924 | - | ||
3925 | chms00: |
- | |
3926 | - | ||
3927 | ; popad |
- | |
3928 | - | ||
3929 | ; pushad |
- | |
3930 | - | ||
3931 | ; cmp [0xf204],dword 0 |
- | |
3932 | ; jne nodmp |
- | |
3933 | - | ||
3934 | movzx ecx,word [0xfb4a] |
- | |
3935 | movzx edx,word [0xfb4c] |
- | |
3936 | - | ||
3937 | movzx ebx,word [0xfb0c] |
- | |
3938 | movzx eax,word [0xfb0a] |
- | |
3939 | - | ||
3940 | cmp eax,ecx |
- | |
3941 | jne redrawmouse |
- | |
3942 | - | ||
3943 | cmp ebx,edx |
- | |
3944 | jne redrawmouse |
- | |
3945 | - | ||
3946 | jmp nodmp |
- | |
3947 | - | ||
3948 | redrawmouse: |
- | |
3949 | - | ||
3950 | - | ||
3951 | call draw_mouse_under |
- | |
3952 | redrawmouse_1: |
- | |
3953 | call save_draw_mouse |
- | |
3954 | - | ||
3955 | nodmp: |
- | |
3956 | - | ||
3957 | popad |
- | |
3958 | sti |
- | |
3959 | ret |
- | |
3960 | - | ||
3961 | 3287 | ret |
|
Line 3962... | Line 3288... | ||
3962 | 3288 | ||
Line 3963... | Line 3289... | ||
3963 | calculatebackground: ; background |
3289 | calculatebackground: ; background |
Line 4449... | Line 3775... | ||
4449 | ret |
3775 | ret |
Line 4450... | Line 3776... | ||
4450 | 3776 | ||
4451 | - | ||
- | 3777 | ||
4452 | 3778 | ||
4453 | drawbackground: |
3779 | drawbackground: |
4454 | 3780 | inc [mouse_pause] |
|
4455 | cmp [0xfe0c],word 0x12 |
3781 | cmp [0xfe0c],word 0x12 |
4456 | jne dbrv12 |
3782 | jne dbrv12 |
- | 3783 | cmp [display_data-12],dword 1 |
|
4457 | cmp [display_data-12],dword 1 |
3784 | jne bgrstr12 |
4458 | jne bgrstr12 |
3785 | call vga_drawbackground_tiled |
4459 | call vga_drawbackground_tiled |
3786 | dec [mouse_pause] |
- | 3787 | ret |
|
4460 | ret |
3788 | bgrstr12: |
4461 | bgrstr12: |
3789 | call vga_drawbackground_stretch |
Line 4462... | Line 3790... | ||
4462 | call vga_drawbackground_stretch |
3790 | dec [mouse_pause] |
4463 | ret |
3791 | ret |
4464 | dbrv12: |
3792 | dbrv12: |
4465 | 3793 | ||
4466 | cmp [0xfe0c],word 0100000000000000b |
3794 | cmp [0xfe0c],word 0100000000000000b |
- | 3795 | jge dbrv20 |
|
4467 | jge dbrv20 |
3796 | cmp [0xfe0c],word 0x13 |
4468 | cmp [0xfe0c],word 0x13 |
3797 | je dbrv20 |
4469 | je dbrv20 |
3798 | call vesa12_drawbackground |
4470 | call vesa12_drawbackground |
3799 | dec [mouse_pause] |
4471 | ret |
3800 | ret |
- | 3801 | dbrv20: |
|
4472 | dbrv20: |
3802 | cmp [display_data-12],dword 1 |
4473 | cmp [display_data-12],dword 1 |
3803 | jne bgrstr |
4474 | jne bgrstr |
3804 | call vesa20_drawbackground_tiled |
- | 3805 | dec [mouse_pause] |
|
4475 | call vesa20_drawbackground_tiled |
3806 | ret |
Line 4476... | Line -... | ||
4476 | ret |
- | |
Line -... | Line 3807... | ||
- | 3807 | bgrstr: |
|
4477 | bgrstr: |
3808 | call vesa20_drawbackground_stretch |
4478 | call vesa20_drawbackground_stretch |
3809 | dec [mouse_pause] |
4479 | ret |
3810 | ret |
4480 | 3811 | ||
4481 | 3812 | ||
4482 | sys_putimage: |
- | |
4483 | 3813 | ||
4484 | cmp [0xfe0c],word 0x12 |
3814 | sys_putimage: |
4485 | jne spiv20 |
3815 | cmp [0xfe0c],word 0x12 |
4486 | call vga_putimage |
3816 | jne spiv20 |
4487 | ret |
3817 | call vga_putimage |
Line 4504... | Line 3834... | ||
4504 | ; ecx x end |
3834 | ; ecx x end |
4505 | ; edx y end |
3835 | ; edx y end |
4506 | ; edi color |
3836 | ; edi color |
Line 4507... | Line 3837... | ||
4507 | 3837 | ||
4508 | __sys_drawbar: |
- | |
- | 3838 | __sys_drawbar: |
|
4509 | 3839 | inc [mouse_pause] |
|
4510 | cmp [0xfe0c],word 0x12 |
3840 | cmp [0xfe0c],word 0x12 |
4511 | jne sdbv20 |
3841 | jne sdbv20 |
- | 3842 | call vga_drawbar |
|
4512 | call vga_drawbar |
3843 | dec [mouse_pause] |
4513 | ret |
3844 | ret |
4514 | sdbv20: |
- | |
4515 | 3845 | sdbv20: |
|
4516 | cmp [0xfe0c],word 0100000000000000b |
3846 | cmp [0xfe0c],word 0100000000000000b |
4517 | jge dbv20 |
3847 | jge dbv20 |
4518 | cmp [0xfe0c],word 0x13 |
3848 | cmp [0xfe0c],word 0x13 |
4519 | je dbv20 |
3849 | je dbv20 |
- | 3850 | call vesa12_drawbar |
|
4520 | call vesa12_drawbar |
3851 | dec [mouse_pause] |
4521 | ret |
- | |
4522 | 3852 | ret |
|
4523 | dbv20: |
- | |
4524 | 3853 | dbv20: |
|
- | 3854 | call vesa20_drawbar |
|
4525 | call vesa20_drawbar |
3855 | dec [mouse_pause] |
Line 4526... | Line 3856... | ||
4526 | ret |
3856 | ret |
Line 4639... | Line 3969... | ||
4639 | ; ps2 mouse enable |
3969 | ; ps2 mouse enable |
Line 4640... | Line 3970... | ||
4640 | 3970 | ||
Line 4641... | Line 3971... | ||
4641 | mov [0xf200],dword mousepointer |
3971 | mov [0xf200],dword mousepointer |
4642 | 3972 | ||
4643 | cli |
3973 | cli |
4644 | mov bl,0xa8 ; enable mouse cmd |
3974 | ; mov bl,0xa8 ; enable mouse cmd |
4645 | call kb_cmd |
- | |
4646 | call kb_read ; read status |
3975 | ; call kb_cmd |
4647 | 3976 | ; call kb_read ; read status |
|
4648 | mov bl,0x20 ; get command byte |
3977 | ; mov bl,0x20 ; get command byte |
4649 | call kb_cmd |
3978 | ; call kb_cmd |
4650 | call kb_read |
3979 | ; call kb_read |
4651 | or al,3 ; enable interrupt |
3980 | ; or al,3 ; enable interrupt |
4652 | mov bl,0x60 ; write command |
3981 | ; mov bl,0x60 ; write command |
4653 | push eax |
3982 | ; push eax |
4654 | call kb_cmd |
3983 | ; call kb_cmd |
4655 | pop eax |
- | |
4656 | call kb_write |
3984 | ; pop eax |
4657 | 3985 | ; call kb_write |
|
4658 | mov bl,0xd4 ; for mouse |
3986 | ; mov bl,0xd4 ; for mouse |
4659 | call kb_cmd |
3987 | ; call kb_cmd |
4660 | mov al,0xf4 ; enable mouse device |
3988 | ; mov al,0xf4 ; enable mouse device |
Line 4661... | Line 3989... | ||
4661 | call kb_write |
3989 | ; call kb_write |
Line 4662... | Line 3990... | ||
4662 | call kb_read ; read status return |
3990 | ; call kb_read ; read status return |
Line 5119... | Line 4447... | ||
5119 | 4447 | ||
5120 | 4448 | ||
5121 | mov edx,[0x3010] |
4449 | mov edx,[0x3010] |
5122 | add eax,[edx-twdw] |
4450 | add eax,[edx-twdw] |
- | 4451 | add ebx,[edx-twdw+4] |
|
5123 | add ebx,[edx-twdw+4] |
4452 | ; xor edi,edi ; no force |
5124 | xor edi,edi ; no force |
4453 | mov edi,1 |
Line 5125... | Line 4454... | ||
5125 | call [disable_mouse] |
4454 | ; call [disable_mouse] |
Line 5126... | Line 4455... | ||
5126 | jmp [putpixel] |
4455 | jmp [putpixel] |
Line 5555... | Line 4884... | ||
5555 | 4884 | ||
Line 5556... | Line 4885... | ||
5556 | ;part2_ld dd 0x0 |
4885 | ;part2_ld dd 0x0 |
5557 | 4886 | ||
- | 4887 | ;* start code - get process (3) - Mario79 |
|
- | 4888 | active_process dd 0 |
|
- | 4889 | active_process_flag db 0 |
|
- | 4890 | aw_yes db 0 |
|
- | 4891 | deleted_process dd 0 |
|
- | 4892 | mouse_pause dd 0 |
|
- | 4893 | ps2_mouse_detected db 0 |
|
5558 | ;* start code - get process (3) - Mario79 |
4894 | com1_mouse_detected db 0 |
Line 5559... | Line 4895... | ||
5559 | active_process dd 0 |
4895 | com2_mouse_detected db 0 |
5560 | ;* end code - get active process (3) - Mario79 |
4896 | ;* end code - get active process (3) - Mario79 |
5561 | 4897 | ||
Line 5572... | Line 4908... | ||
5572 | 4908 | ||
5573 | iglobal |
4909 | iglobal |
5574 | keyboard dd 0x1 |
4910 | keyboard dd 0x1 |
5575 | sound_dma dd 0x1 |
4911 | sound_dma dd 0x1 |
- | 4912 | syslang dd 0x1 |
|
5576 | syslang dd 0x1 |
4913 | active_proc_stack_coun dd 0xa400-4 |
Line 5577... | Line 4914... | ||
5577 | endg |
4914 | endg |
5578 | 4915 | ||
5579 | IncludeIGlobals |
4916 | IncludeIGlobals |