small optimization

git-svn-id: svn://kolibrios.org@1267 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Alexey Teplov ( 2009-11-11 18:46:26 +00:00
parent 5a19368921
commit 18837956aa

View File

@ -235,7 +235,7 @@ B32:
; SAVE & CLEAR 0-0xffff ; SAVE & CLEAR 0-0xffff
xor esi, esi xor esi, esi
mov edi,0x2F0000 mov edi,0x2F0000
mov ecx,0x10000 / 4 mov ecx,0x10000 / 4
rep movsd rep movsd
@ -540,14 +540,16 @@ high_code:
mov [graph_data_l+4],al mov [graph_data_l+4],al
mov [graph_data_l+7],ah mov [graph_data_l+7],ah
mov [CURRENT_TASK],dword 1 xor eax,eax
mov [TASK_COUNT],dword 1 inc eax
mov [CURRENT_TASK],eax ;dword 1
mov [TASK_COUNT],eax ;dword 1
mov [TASK_BASE],dword TASK_DATA mov [TASK_BASE],dword TASK_DATA
mov [current_slot], SLOT_BASE+256 mov [current_slot], SLOT_BASE+256
; set background ; set background
xor eax,eax ; xor eax,eax
inc eax ; inc eax
mov [BgrDrawMode],eax mov [BgrDrawMode],eax
mov [BgrDataWidth],eax mov [BgrDataWidth],eax
mov [BgrDataHeight],eax mov [BgrDataHeight],eax
@ -1072,45 +1074,59 @@ include "kernel32.inc"
reserve_irqs_ports: reserve_irqs_ports:
pushad push eax
xor eax,eax
mov [irq_owner+4*0], 1 ; timer inc eax
mov byte [irq_owner+4*0],al ;1 ; timer
;mov [irq_owner+4*1], 1 ; keyboard ;mov [irq_owner+4*1], 1 ; keyboard
mov [irq_owner+4*6], 1 ; floppy diskette mov byte [irq_owner+4*6],al ;1 ; floppy diskette
mov [irq_owner+4*13], 1 ; math co-pros mov byte [irq_owner+4*13],al ;1 ; math co-pros
mov [irq_owner+4*14], 1 ; ide I mov byte [irq_owner+4*14],al ;1 ; ide I
mov [irq_owner+4*15], 1 ; ide II mov byte [irq_owner+4*15],al ;1 ; ide II
pop eax
; RESERVE PORTS ; RESERVE PORTS
mov edi,1 ; 0x00-0x2d ; mov edi,1 ; 0x00-0x2d
mov [RESERVED_PORTS],edi push dword 4
shl edi,4 pop dword [RESERVED_PORTS] ;,edi
mov [RESERVED_PORTS+edi+0],dword 1 ; shl edi,4
mov [RESERVED_PORTS+edi+4],dword 0x0 push dword 1
mov [RESERVED_PORTS+edi+8],dword 0x2d pop dword [RESERVED_PORTS+16+0] ;,dword 1
push dword 0
pop dword [RESERVED_PORTS+16+4] ;,dword 0x0
push dword 0x2d
pop dword [RESERVED_PORTS+16+8] ;,dword 0x2d
inc dword [RESERVED_PORTS] ; 0x30-0x4d ; inc dword [RESERVED_PORTS] ; 0x30-0x4d
mov edi,[RESERVED_PORTS] ; mov edi,[RESERVED_PORTS]
shl edi,4 ; shl edi,4
mov [RESERVED_PORTS+edi+0],dword 1 push dword 1
mov [RESERVED_PORTS+edi+4],dword 0x30 pop dword [RESERVED_PORTS+32+0] ;,dword 1
mov [RESERVED_PORTS+edi+8],dword 0x4d push dword 0x30
pop dword [RESERVED_PORTS+32+4] ;,dword 0x30
push dword 0x4d
pop dword [RESERVED_PORTS+32+8] ;,dword 0x4d
inc dword [RESERVED_PORTS] ; 0x50-0xdf ; inc dword [RESERVED_PORTS] ; 0x50-0xdf
mov edi,[RESERVED_PORTS] ; mov edi,[RESERVED_PORTS]
shl edi,4 ; shl edi,4
mov [RESERVED_PORTS+edi+0],dword 1 push dword 1
mov [RESERVED_PORTS+edi+4],dword 0x50 pop dword [RESERVED_PORTS+48+0] ;,dword 1
mov [RESERVED_PORTS+edi+8],dword 0xdf push dword 0x50
pop dword [RESERVED_PORTS+48+4] ;,dword 0x50
push dword 0xdf
pop dword [RESERVED_PORTS+48+8] ;,dword 0xdf
inc dword [RESERVED_PORTS] ; 0xe5-0xff ; inc dword [RESERVED_PORTS] ; 0xe5-0xff
mov edi,[RESERVED_PORTS] ; mov edi,[RESERVED_PORTS]
shl edi,4 ; shl edi,4
mov [RESERVED_PORTS+edi+0],dword 1 push dword 1
mov [RESERVED_PORTS+edi+4],dword 0xe5 pop dword [RESERVED_PORTS+64+0] ;,dword 1
mov [RESERVED_PORTS+edi+8],dword 0xff push dword 0xe5
pop dword [RESERVED_PORTS+64+4] ;,dword 0xe5
push 0xff
pop dword [RESERVED_PORTS+64+8] ;,dword 0xff
popad ; popad
ret ret
setirqreadports: setirqreadports:
@ -1133,25 +1149,26 @@ set_variables:
mov ecx,0x100 ; flush port 0x60 mov ecx,0x100 ; flush port 0x60
.fl60: in al,0x60 .fl60: in al,0x60
loop .fl60 loop .fl60
mov [MOUSE_BUFF_COUNT],byte 0 ; mouse buffer
mov [KEY_COUNT],byte 0 ; keyboard buffer
mov [BTN_COUNT],byte 0 ; button buffer
; mov [MOUSE_X],dword 100*65536+100 ; mouse x/y
push eax push eax
mov ax,[BOOT_VAR+0x900c] mov ax,[BOOT_VAR+0x900c]
shr ax,1 shr ax,1
shl eax,16 shl eax,16
mov ax,[BOOT_VAR+0x900A] mov ax,[BOOT_VAR+0x900A]
shr ax,1 shr ax,1
mov [MOUSE_X],eax mov [MOUSE_X],eax
pop eax
xor eax,eax
mov [BTN_ADDR],dword BUTTON_INFO ; address of button list mov [BTN_ADDR],dword BUTTON_INFO ; address of button list
;!! IP 04.02.2005: mov byte [MOUSE_BUFF_COUNT],al ; mouse buffer
mov byte [DONT_SWITCH], 0 ; change task if possible mov byte [KEY_COUNT],al ; keyboard buffer
mov byte [BTN_COUNT],al ; button buffer
; mov [MOUSE_X],dword 100*65536+100 ; mouse x/y
;!! IP 04.02.2005:
mov byte [DONT_SWITCH],al ; change task if possible
pop eax
ret ret
align 4 align 4