forked from KolibriOS/kolibrios
small optimization
git-svn-id: svn://kolibrios.org@1267 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
5a19368921
commit
18837956aa
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user