Subversion Repositories Kolibri OS

Rev

Rev 8092 | Rev 8111 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 8092 Rev 8093
Line 69... Line 69...
69
format binary as "mnt"
69
format binary as "mnt"
Line 70... Line 70...
70
 
70
 
71
include 'macros.inc'
71
include 'macros.inc'
Line 72... Line 72...
72
include 'struct.inc'
72
include 'struct.inc'
Line 73... Line 73...
73
 
73
 
74
$Revision: 8092 $
74
$Revision: 8093 $
Line 597... Line 597...
597
        stosd
597
        stosd
598
        stosd
598
        stosd
Line 599... Line 599...
599
 
599
 
Line 600... Line 600...
600
        mov     [current_process], sys_proc
600
        mov     [current_process], sys_proc
601
 
601
 
602
        mov     edx, SLOT_BASE+256*1
602
        mov     edx, SLOT_BASE+sizeof.APPDATA*1
603
        mov     ebx, [os_stack_seg]
603
        mov     ebx, [os_stack_seg]
604
        add     ebx, RING0_STACK_SIZE
604
        add     ebx, RING0_STACK_SIZE
605
        add     ebx, [xsave_area_size]
605
        add     ebx, [xsave_area_size]
Line 609... Line 609...
609
        mov     eax, [edx+APPDATA.saved_esp]
609
        mov     eax, [edx+APPDATA.saved_esp]
610
        mov     dword [eax], idle_thread
610
        mov     dword [eax], idle_thread
611
        mov     ecx, IDLE_PRIORITY
611
        mov     ecx, IDLE_PRIORITY
612
        call    scheduler_add_thread
612
        call    scheduler_add_thread
Line 613... Line 613...
613
 
613
 
614
        mov     edx, SLOT_BASE+256*2
614
        mov     edx, SLOT_BASE+sizeof.APPDATA*2
615
        mov     ebx, [os_stack_seg]
615
        mov     ebx, [os_stack_seg]
616
        call    setup_os_slot
616
        call    setup_os_slot
617
        mov     dword [edx], 'OS'
617
        mov     dword [edx], 'OS'
618
        xor     ecx, ecx
618
        xor     ecx, ecx
Line 619... Line 619...
619
        call    scheduler_add_thread
619
        call    scheduler_add_thread
620
 
620
 
621
        mov     dword [CURRENT_TASK], 2
621
        mov     dword [CURRENT_TASK], 2
622
        mov     dword [TASK_COUNT], 2
622
        mov     dword [TASK_COUNT], 2
Line 623... Line 623...
623
        mov     dword [current_slot], SLOT_BASE + 256*2
623
        mov     dword [current_slot], SLOT_BASE + sizeof.APPDATA*2
624
        mov     dword [TASK_BASE], CURRENT_TASK + 32*2
624
        mov     dword [TASK_BASE], CURRENT_TASK + sizeof.TASKDATA*2
625
 
625
 
626
; Move other CPUs to deep sleep, if it is useful
626
; Move other CPUs to deep sleep, if it is useful
Line 878... Line 878...
878
        call    boot_log
878
        call    boot_log
879
        call    reserve_irqs_ports
879
        call    reserve_irqs_ports
Line 880... Line 880...
880
 
880
 
881
        call    init_display
881
        call    init_display
882
        mov     eax, [def_cursor]
882
        mov     eax, [def_cursor]
883
        mov     [SLOT_BASE+APPDATA.cursor+256], eax
883
        mov     [SLOT_BASE+APPDATA.cursor+sizeof.APPDATA], eax
Line 884... Line 884...
884
        mov     [SLOT_BASE+APPDATA.cursor+256*2], eax
884
        mov     [SLOT_BASE+APPDATA.cursor+sizeof.APPDATA*2], eax
Line 885... Line 885...
885
 
885
 
886
; PRINT CPU FREQUENCY
886
; PRINT CPU FREQUENCY
Line 975... Line 975...
975
        call    load_default_skin
975
        call    load_default_skin
Line 976... Line 976...
976
 
976
 
Line 977... Line 977...
977
; Protect I/O permission map
977
; Protect I/O permission map
978
 
978
 
979
        mov     esi, [default_io_map]
979
        mov     esi, [default_io_map]
980
        stdcall map_page, esi, [SLOT_BASE+256+APPDATA.io_map], PG_READ
980
        stdcall map_page, esi, [SLOT_BASE+sizeof.APPDATA+APPDATA.io_map], PG_READ
Line 981... Line 981...
981
        add     esi, 0x1000
981
        add     esi, 0x1000
982
        stdcall map_page, esi, [SLOT_BASE+256+APPDATA.io_map+4], PG_READ
982
        stdcall map_page, esi, [SLOT_BASE+sizeof.APPDATA+APPDATA.io_map+4], PG_READ
983
 
983
 
984
        stdcall map_page, tss._io_map_0, \
984
        stdcall map_page, tss._io_map_0, \
Line 985... Line 985...
985
                [SLOT_BASE+256+APPDATA.io_map], PG_READ
985
                [SLOT_BASE+sizeof.APPDATA+APPDATA.io_map], PG_READ
986
        stdcall map_page, tss._io_map_1, \
986
        stdcall map_page, tss._io_map_1, \
987
                [SLOT_BASE+256+APPDATA.io_map+4], PG_READ
987
                [SLOT_BASE+sizeof.APPDATA+APPDATA.io_map+4], PG_READ
988
 
988
 
Line 1120... Line 1120...
1120
 
1120
 
1121
; in: edx -> APPDATA for OS/IDLE slot
1121
; in: edx -> APPDATA for OS/IDLE slot
1122
; in: ebx = stack base
1122
; in: ebx = stack base
1123
proc setup_os_slot
1123
proc setup_os_slot
1124
        xor     eax, eax
1124
        xor     eax, eax
1125
        mov     ecx, 256/4
1125
        mov     ecx, sizeof.APPDATA/4
1126
        mov     edi, edx
1126
        mov     edi, edx
Line 1127... Line 1127...
1127
        rep stosd
1127
        rep stosd
1128
 
1128
 
Line 3504... Line 3504...
3504
        movzx   eax, word [MOUSE_X]
3504
        movzx   eax, word [MOUSE_X]
3505
        movzx   edx, word [MOUSE_Y]
3505
        movzx   edx, word [MOUSE_Y]
3506
;--------------------------------------
3506
;--------------------------------------
3507
align 4
3507
align 4
3508
.set_mouse_event:
3508
.set_mouse_event:
3509
        add     edi, 256
3509
        add     edi, sizeof.APPDATA
3510
        add     ebx, 32
3510
        add     ebx, sizeof.TASKDATA
3511
        test    [ebx+TASKDATA.event_mask], 0x80000000
3511
        test    [ebx+TASKDATA.event_mask], 0x80000000
3512
        jz      .pos_filter
3512
        jz      .pos_filter
Line 3513... Line 3513...
3513
 
3513
 
3514
        cmp     edi, [esp]                      ; skip if filtration active
3514
        cmp     edi, [esp]                      ; skip if filtration active
Line 3572... Line 3572...
3572
        xor     edi, edi
3572
        xor     edi, edi
3573
        mov     ecx, [TASK_COUNT]
3573
        mov     ecx, [TASK_COUNT]
3574
;--------------------------------------
3574
;--------------------------------------
3575
align 4
3575
align 4
3576
set_bgr_event:
3576
set_bgr_event:
3577
        add     edi, 256
3577
        add     edi, sizeof.APPDATA
3578
        mov     eax, [BG_Rect_X_left_right]
3578
        mov     eax, [BG_Rect_X_left_right]
3579
        mov     edx, [BG_Rect_Y_top_bottom]
3579
        mov     edx, [BG_Rect_Y_top_bottom]
3580
        cmp     [edi+SLOT_BASE+APPDATA.draw_bgr_x], 0
3580
        cmp     [edi+SLOT_BASE+APPDATA.draw_bgr_x], 0
3581
        jz      .set
3581
        jz      .set
3582
.join:
3582
.join: