Subversion Repositories Kolibri OS

Rev

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

Rev 233 Rev 237
Line 21... Line 21...
21
 
21
 
Line 22... Line 22...
22
max_processes      equ   255
22
max_processes      equ   255
23
 
23
 
24
;window_data        equ   0x0000
-
 
25
;tss_data           equ   0xD20000
24
;window_data        equ   0x0000
26
;tss_step           equ   (128+2048) ; tss & i/o - 16384 ports, * 256=557056
25
;tss_data           equ   0xD20000
27
tss_step           equ   (128+8192) ; tss & i/o - 65535 ports, * 256=557056*4
26
tss_step           equ   (128+8192) ; tss & i/o - 65535 ports, * 256=557056*4
Line 28... Line 27...
28
;draw_data          equ   0xC00000
27
;draw_data          equ   0xC00000
Line 617... Line 616...
617
        ; task list
616
        ; task list
618
        mov  [0x3020+TASKDATA.wnd_number], 1 ; on screen number
617
        mov  [0x3020+TASKDATA.wnd_number], 1 ; on screen number
619
        mov  [0x3020+TASKDATA.pid], 1        ; process id number
618
        mov  [0x3020+TASKDATA.pid], 1        ; process id number
620
        mov  [0x3020+TASKDATA.mem_start], 0  ; process base address
619
        mov  [0x3020+TASKDATA.mem_start], 0  ; process base address
Line 621... Line -...
621
 
-
 
622
        ; set default flags & stacks
-
 
623
        mov  [l.eflags],dword 0x11202 ; sti and resume
-
 
624
        mov  [l.ss0], os_data
-
 
625
        ; osloop - TSS
-
 
626
        mov  eax,cr3
-
 
627
        mov  [l.cr3],eax
-
 
628
        mov  [l.eip],osloop
-
 
629
        mov  [l.esp],sysint_stack_data + 4096*2 ; uses slot 1 stack
-
 
630
        mov  [l.cs],os_code
-
 
631
        mov  [l.ss],os_data
-
 
632
        mov  [l.ds],os_data
-
 
633
        mov  [l.es],os_data
-
 
634
        mov  [l.fs],os_data
-
 
635
        mov  [l.gs],os_data
-
 
636
        ; move tss to tss_data+tss_step
-
 
637
        mov  esi,tss_sceleton
620
 
-
 
621
        mov  edi,tss_data+tss_step
638
        mov  edi,tss_data+tss_step
622
        mov ecx, (tss_step)/4
639
        mov  ecx,120/4
623
        xor eax, eax
640
        cld
624
        cld
-
 
625
        rep stosd
-
 
626
 
-
 
627
        mov  edi,tss_data+tss_step
-
 
628
        mov  [edi+TSS._ss0], os_data
-
 
629
        mov  eax,cr3
-
 
630
        mov  [edi+TSS._cr3],eax
-
 
631
        mov  [edi+TSS._eip],osloop
-
 
632
        mov  [edi+TSS._eflags],dword 0x11202 ; sti and resume
-
 
633
        mov  [edi+TSS._esp],sysint_stack_data + 4096*2 ; uses slot 1 stack
-
 
634
        mov  [edi+TSS._cs],os_code
-
 
635
        mov  [edi+TSS._ss],os_data
-
 
636
        mov  [edi+TSS._ds],os_data
-
 
637
        mov  [edi+TSS._es],os_data
-
 
638
        mov  [edi+TSS._fs],os_data
Line 641... Line 639...
641
        rep  movsd
639
        mov  [edi+TSS._gs],os_data
642
 
640
 
Line 643... Line 641...
643
        mov  ax,tss0
641
        mov  ax,tss0
Line 697... Line 695...
697
        mov   [0x3000],dword 1
695
        mov   [0x3000],dword 1
698
        mov   [0x3004],dword 1
696
        mov   [0x3004],dword 1
699
        cli
697
        cli
700
        cmp   byte [0x2f0000+0x9030],1
698
        cmp   byte [0x2f0000+0x9030],1
701
        jne   no_load_vrr_m
699
        jne   no_load_vrr_m
702
        mov   ebp,vrr_m
-
 
-
 
700
 
703
        lea   esi,[ebp+6]       ; skip '/rd/1/'
701
        stdcall fs_exec_EX, vrr_m, dword 0, dword 0
704
        xor   ebx,ebx                   ; no parameters
-
 
705
        xor   edx,edx                   ; no flags
-
 
706
        call  fs_RamdiskExecute.flags
-
 
707
        cmp   eax,2                  ; if vrr_m app found (PID=2)
702
        cmp   eax,2                  ; if vrr_m app found (PID=2)
708
        je    first_app_found
703
        je    first_app_found
Line 709... Line 704...
709
 
704
 
710
    no_load_vrr_m:
-
 
711
        mov   ebp,firstapp
-
 
712
        lea   esi,[ebp+6]
-
 
713
        xor   ebx,ebx                   ; no parameters
705
no_load_vrr_m:
714
        xor   edx,edx                   ; no flags
-
 
715
        call  fs_RamdiskExecute.flags
-
 
716
 
706
        stdcall fs_exec_EX, firstapp, dword 0, dword 0
717
        cmp   eax,2                  ; continue if a process has been loaded
707
        cmp   eax,2                  ; continue if a process has been loaded
718
        je    first_app_found
708
        je    first_app_found
719
        mov   eax, 0xDEADBEEF        ; otherwise halt
709
        mov   eax, 0xDEADBEEF        ; otherwise halt
720
        hlt
710
        hlt
Line 797... Line 787...
797
;                    MAIN OS LOOP START                              ;
787
;                    MAIN OS LOOP START                              ;
798
;                                                                    ;
788
;                                                                    ;
799
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
789
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
800
align 32
790
align 32
801
osloop:
791
osloop:
802
 
-
 
803
        call   [draw_pointer]
792
        call   [draw_pointer]
804
        call   checkbuttons
793
        call   checkbuttons
805
        call   checkwindows
794
        call   checkwindows
806
;       call   check_window_move_request
795
;       call   check_window_move_request
807
        call   checkmisc
796
        call   checkmisc