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 |