Rev 752 | Rev 755 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 752 | Rev 753 | ||
---|---|---|---|
Line 53... | Line 53... | ||
53 | ;; |
53 | ;; |
54 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
54 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 55... | Line 55... | ||
55 | 55 | ||
Line 56... | Line 56... | ||
56 | include 'macros.inc' |
56 | include 'macros.inc' |
Line 57... | Line 57... | ||
57 | 57 | ||
Line 58... | Line 58... | ||
58 | $Revision: 752 $ |
58 | $Revision: 753 $ |
Line 342... | Line 342... | ||
342 | ; mov [0xF604],byte 1 ;al |
342 | ; mov [0xF604],byte 1 ;al |
343 | mov al, [BOOT_VAR+0x901F] ; DMA access |
343 | mov al, [BOOT_VAR+0x901F] ; DMA access |
344 | mov [allow_dma_access], al |
344 | mov [allow_dma_access], al |
345 | mov al,[BOOT_VAR+0x9000] ; bpp |
345 | mov al,[BOOT_VAR+0x9000] ; bpp |
346 | mov [ScreenBPP],al |
346 | mov [ScreenBPP],al |
- | 347 | ||
- | 348 | xchg bx, bx |
|
- | 349 | ||
347 | movzx eax,word [BOOT_VAR+0x900A] ; X max |
350 | movzx eax,word [BOOT_VAR+0x900A] ; X max |
348 | dec eax |
351 | dec eax |
349 | mov [ScreenWidth],eax |
352 | mov [Screen_Max_X],eax |
350 | mov [screen_workarea.right],eax |
353 | mov [screen_workarea.right],eax |
351 | movzx eax,word [BOOT_VAR+0x900C] ; Y max |
354 | movzx eax,word [BOOT_VAR+0x900C] ; Y max |
352 | dec eax |
355 | dec eax |
353 | mov [ScreenHeight],eax |
356 | mov [Screen_Max_Y],eax |
354 | mov [screen_workarea.bottom],eax |
357 | mov [screen_workarea.bottom],eax |
355 | movzx eax,word [BOOT_VAR+0x9008] ; screen mode |
358 | movzx eax,word [BOOT_VAR+0x9008] ; screen mode |
356 | mov [SCR_MODE],eax |
359 | mov [SCR_MODE],eax |
357 | mov eax,[BOOT_VAR+0x9014] ; Vesa 1.2 bnk sw add |
360 | mov eax,[BOOT_VAR+0x9014] ; Vesa 1.2 bnk sw add |
358 | mov [BANK_SWITCH],eax |
361 | mov [BANK_SWITCH],eax |
Line 1124... | Line 1127... | ||
1124 | ret |
1127 | ret |
Line 1125... | Line 1128... | ||
1125 | 1128 | ||
1126 | ;* mouse centered - start code- Mario79 |
1129 | ;* mouse centered - start code- Mario79 |
1127 | mouse_centered: |
1130 | mouse_centered: |
1128 | push eax |
1131 | push eax |
1129 | mov eax,[ScreenWidth] |
1132 | mov eax,[Screen_Max_X] |
1130 | shr eax,1 |
1133 | shr eax,1 |
1131 | mov [MOUSE_X],ax |
1134 | mov [MOUSE_X],ax |
1132 | mov eax,[ScreenHeight] |
1135 | mov eax,[Screen_Max_Y] |
1133 | shr eax,1 |
1136 | shr eax,1 |
1134 | mov [MOUSE_Y],ax |
1137 | mov [MOUSE_Y],ax |
1135 | pop eax |
1138 | pop eax |
1136 | ret |
1139 | ret |
Line 2557... | Line 2560... | ||
2557 | 2560 | ||
2558 | force_redraw_background: |
2561 | force_redraw_background: |
2559 | mov [draw_data+32 + RECT.left],dword 0 |
2562 | mov [draw_data+32 + RECT.left],dword 0 |
2560 | mov [draw_data+32 + RECT.top],dword 0 |
2563 | mov [draw_data+32 + RECT.top],dword 0 |
2561 | push eax ebx |
2564 | push eax ebx |
2562 | mov eax,[ScreenWidth] |
2565 | mov eax,[Screen_Max_X] |
2563 | mov ebx,[ScreenHeight] |
2566 | mov ebx,[Screen_Max_Y] |
2564 | mov [draw_data+32 + RECT.right],eax |
2567 | mov [draw_data+32 + RECT.right],eax |
2565 | mov [draw_data+32 + RECT.bottom],ebx |
2568 | mov [draw_data+32 + RECT.bottom],ebx |
2566 | pop ebx eax |
2569 | pop ebx eax |
2567 | mov byte [REDRAW_BACKGROUND], 1 |
2570 | mov byte [REDRAW_BACKGROUND], 1 |
Line 2878... | Line 2881... | ||
2878 | 2881 | ||
2879 | mov edx, [TASK_BASE] ; return whole screen draw area for this app |
2882 | mov edx, [TASK_BASE] ; return whole screen draw area for this app |
2880 | add edx, draw_data - CURRENT_TASK |
2883 | add edx, draw_data - CURRENT_TASK |
2881 | mov [edx + RECT.left], 0 |
2884 | mov [edx + RECT.left], 0 |
2882 | mov [edx + RECT.top], 0 |
2885 | mov [edx + RECT.top], 0 |
2883 | mov eax, [ScreenWidth] |
2886 | mov eax, [Screen_Max_X] |
2884 | mov [edx + RECT.right], eax |
2887 | mov [edx + RECT.right], eax |
2885 | mov eax, [ScreenHeight] |
2888 | mov eax, [Screen_Max_Y] |
Line 2886... | Line 2889... | ||
2886 | mov [edx + RECT.bottom], eax |
2889 | mov [edx + RECT.bottom], eax |
2887 | 2890 | ||
2888 | mov edi, [TASK_BASE] |
2891 | mov edi, [TASK_BASE] |
Line 3481... | Line 3484... | ||
3481 | ; check if pixel is allowed to be drawn |
3484 | ; check if pixel is allowed to be drawn |
Line 3482... | Line 3485... | ||
3482 | 3485 | ||
3483 | checkpixel: |
3486 | checkpixel: |
Line 3484... | Line 3487... | ||
3484 | push eax edx |
3487 | push eax edx |
3485 | 3488 | ||
3486 | mov edx,[ScreenWidth] ; screen x size |
3489 | mov edx,[Screen_Max_X] ; screen x size |
3487 | inc edx |
3490 | inc edx |
Line 3488... | Line 3491... | ||
3488 | imul edx, ebx |
3491 | imul edx, ebx |
Line 3542... | Line 3545... | ||
3542 | or [edi+SLOT_BASE+APPDATA.event_mask], 16 |
3545 | or [edi+SLOT_BASE+APPDATA.event_mask], 16 |
3543 | loop set_bgr_event |
3546 | loop set_bgr_event |
3544 | no_set_bgr_event: |
3547 | no_set_bgr_event: |
3545 | ; mov [draw_data+32 + RECT.left],dword 0 |
3548 | ; mov [draw_data+32 + RECT.left],dword 0 |
3546 | ; mov [draw_data+32 + RECT.top],dword 0 |
3549 | ; mov [draw_data+32 + RECT.top],dword 0 |
3547 | ; mov eax,[ScreenWidth] |
3550 | ; mov eax,[Screen_Max_X] |
3548 | ; mov ebx,[ScreenHeight] |
3551 | ; mov ebx,[Screen_Max_Y] |
3549 | ; mov [draw_data+32 + RECT.right],eax |
3552 | ; mov [draw_data+32 + RECT.right],eax |
3550 | ; mov [draw_data+32 + RECT.bottom],ebx |
3553 | ; mov [draw_data+32 + RECT.bottom],ebx |
3551 | call drawbackground |
3554 | call drawbackground |
3552 | mov [REDRAW_BACKGROUND],byte 0 |
3555 | mov [REDRAW_BACKGROUND],byte 0 |
3553 | mov [MOUSE_BACKGROUND],byte 0 |
3556 | mov [MOUSE_BACKGROUND],byte 0 |
Line 4854... | Line 4857... | ||
4854 | 4857 | ||
Line 4855... | Line 4858... | ||
4855 | sys_gs: ; direct screen access |
4858 | sys_gs: ; direct screen access |
4856 | 4859 | ||
4857 | cmp eax,1 ; resolution |
4860 | cmp eax,1 ; resolution |
4858 | jne no_gs1 |
4861 | jne no_gs1 |
4859 | mov eax,[ScreenWidth] |
4862 | mov eax,[Screen_Max_X] |
4860 | shl eax,16 |
4863 | shl eax,16 |
4861 | mov ax,[ScreenHeight] |
4864 | mov ax,[Screen_Max_Y] |
4862 | add eax,0x00010001 |
4865 | add eax,0x00010001 |
4863 | mov [esp+36],eax |
4866 | mov [esp+36],eax |
Line 4968... | Line 4971... | ||
4968 | .drectr: |
4971 | .drectr: |
4969 | ret |
4972 | ret |
Line 4970... | Line 4973... | ||
4970 | 4973 | ||
4971 | align 4 |
4974 | align 4 |
4972 | syscall_getscreensize: ; GetScreenSize |
4975 | syscall_getscreensize: ; GetScreenSize |
4973 | mov ax, [ScreenWidth] |
4976 | mov ax, [Screen_Max_X] |
4974 | shl eax, 16 |
4977 | shl eax, 16 |
4975 | mov ax, [ScreenHeight] |
4978 | mov ax, [Screen_Max_Y] |
4976 | mov [esp + 32], eax |
4979 | mov [esp + 32], eax |
Line 4977... | Line 4980... | ||
4977 | ret |
4980 | ret |
Line 5058... | Line 5061... | ||
5058 | ret |
5061 | ret |
Line 5059... | Line 5062... | ||
5059 | 5062 | ||
Line 5060... | Line 5063... | ||
5060 | align 4 |
5063 | align 4 |
5061 | 5064 | ||
5062 | syscall_getpixel: ; GetPixel |
5065 | syscall_getpixel: ; GetPixel |
5063 | mov ecx, [ScreenWidth] |
5066 | mov ecx, [Screen_Max_X] |
5064 | inc ecx |
5067 | inc ecx |
5065 | xor edx, edx |
5068 | xor edx, edx |
5066 | mov eax, ebx |
5069 | mov eax, ebx |