Subversion Repositories Kolibri OS

Rev

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

Rev 851 Rev 854
Line 56... Line 56...
56
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
56
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
57
 
57
 
Line 58... Line 58...
58
include 'macros.inc'
58
include 'macros.inc'
Line 59... Line 59...
59
 
59
 
Line 60... Line 60...
60
$Revision: 851 $
60
$Revision: 854 $
Line 61... Line 61...
61
 
61
 
Line 112... Line 112...
112
public _sys_pdbr
112
public _sys_pdbr
113
public _gdts
113
public _gdts
114
public _high_code
114
public _high_code
115
 
115
 
Line -... Line 116...
-
 
116
public __hlt
-
 
117
public _panic_printf
-
 
118
public _printf
-
 
119
public _pg_balloc
-
 
120
public _mem_amount
-
 
121
public @balloc@4
-
 
122
 
116
public __setvars
123
public __setvars
Line 117... Line 124...
117
 
124
 
118
extrn _enter_bootscreen
125
extrn _enter_bootscreen
Line 119... Line 126...
119
extrn _leave_bootscreen
126
extrn _leave_bootscreen
120
 
-
 
121
extrn _bx_from_load
127
 
Line -... Line 128...
-
 
128
extrn _init
122
 
129
extrn _init_mm
-
 
130
 
-
 
131
public _rd_base
-
 
132
public _rd_fat
Line -... Line 133...
-
 
133
public _rd_fat_end
123
section '.flat' code readable align 16
134
public _rd_root
Line -... Line 135...
-
 
135
public _rd_root_end
Line 124... Line 136...
124
 
136
 
Line 125... Line 137...
125
use32
137
extrn _alloc_pages
Line -... Line 138...
-
 
138
extrn _alloc_page
Line 126... Line -...
126
 
-
 
127
org 0xE0102000
-
 
128
 
-
 
129
 
-
 
130
align 4
-
 
131
 
-
 
132
use32
-
 
133
 
139
 
134
 
-
 
135
; CLEAR 0x280000 - HEAP_BASE
-
 
136
 
-
 
137
       ;    xor   eax,eax
-
 
138
       ;    mov   edi,0x280000
-
 
139
       ;    mov   ecx,(0x800000-0x280000) / 4
-
 
140
       ;    cld
-
 
141
       ;    rep   stosd
-
 
142
 
-
 
Line 143... Line 140...
143
       ;    mov   edi,0x40000
140
extrn _bx_from_load
144
       ;    mov   ecx,(0x90000-0x40000)/4
141
 
Line 145... Line 142...
145
       ;    rep   stosd
142
section '.flat' code readable align 4096
Line 146... Line -...
146
 
-
 
147
; CLEAR KERNEL UNDEFINED GLOBALS
-
 
148
       ;    mov   edi, endofcode-OS_BASE
-
 
149
       ;    mov   ecx, (uglobals_size/4)+4
-
 
150
       ;    rep   stosd
-
 
151
 
-
 
152
 
-
 
153
        ;   call test_cpu
-
 
154
	   bts [cpu_caps-OS_BASE], CAPS_TSC	;force use rdtsc
-
 
155
 
-
 
156
        ;   call init_BIOS32
-
 
157
 
-
 
158
       ;    mov dword [sys_pgdir-OS_BASE], PG_LARGE+PG_SW
-
 
159
       ;    mov dword [sys_pgdir-OS_BASE+4], PG_LARGE+PG_SW+4*1024*1024
-
 
160
 
-
 
161
       ;    mov ecx, 32
-
 
162
       ;    lea edi, [sys_pgdir-OS_BASE+0xE00]
-
 
163
       ;    mov eax, PG_LARGE+PG_SW
-
 
164
;@@:
-
 
165
;           stosd
-
 
166
;           add eax, 4*1024*1024
-
 
167
;           loop @B
-
 
168
 
-
 
169
;           mov ebx, cr4
-
 
170
;           or ebx, CR4_PSE
-
 
171
;           and ebx, not CR4_PAE
143
 
Line 172... Line 144...
172
;           mov cr4, ebx
144
use32
173
 
145
 
174
 
146
align 4
Line 175... Line 147...
175
;           mov eax, sys_pgdir-OS_BASE
147
 
176
;           mov ebx, cr0
148
use32
Line 195... Line 167...
195
MEM_WC     equ 1               ;write combined memory
167
MEM_WC     equ 1               ;write combined memory
196
MEM_UC     equ 0               ;uncached memory
168
MEM_UC     equ 0               ;uncached memory
197
 
169
 
Line -... Line 170...
-
 
170
 
-
 
171
__hlt:
-
 
172
           cli
198
 
173
@@:
199
include 'printf.inc'
174
           hlt
-
 
175
           jmp @B
-
 
176
 
-
 
177
align 4
Line -... Line 178...
-
 
178
_panic_printf:
-
 
179
 
-
 
180
           mov dword [esp], __hlt
-
 
181
           jmp _printf
200
include 'core/mm.asm'
182
 
Line 201... Line 183...
201
 
183
align 4
202
include 'core/init.asm'
184
include 'printf.inc'
203
 
185
 
204
align 4
186
align 4
Line 301... Line 283...
301
endp
283
endp
302
 
284
 
Line 303... Line 285...
303
align 4
285
align 4
304
_high_code:
286
_high_code:
-
 
287
 
305
	   mov ax,os_stack
288
	   mov ax,os_stack
306
           mov dx,app_data
289
           mov dx,app_data
307
	   mov ss,ax
290
	   mov ss,ax
308
           mov esp, __os_stack
291
           mov esp, __os_stack
Line 309... Line 292...
309
 
292
 
310
           mov ds, dx
293
           mov ds, dx
311
           mov es, dx
294
           mov es, dx
312
           mov fs, dx
295
           mov fs, dx
Line 313... Line -...
313
           mov gs, dx
-
 
314
 
-
 
315
;           push ecx
-
 
Line 316... Line 296...
316
;           push ebx
296
           mov gs, dx
317
 
297
 
Line 318... Line 298...
318
 
298
 
Line 547... Line 527...
547
	   mov ecx, MSR_AMD_STAR
527
	   mov ecx, MSR_AMD_STAR
548
	   wrmsr
528
	   wrmsr
549
.noSYSCALL:
529
.noSYSCALL:
550
; -----------------------------------------
530
; -----------------------------------------
551
 
531
; LOAD IDT
552
; LOAD IDT
-
 
553
 
532
 
Line 554... Line 533...
554
	   call build_interrupt_table
533
           call _init_idt
555
	   lidt [idtreg]
-
 
Line 556... Line 534...
556
 
534
 
557
           mov [LFBSize], 0x800000
535
           mov [LFBSize], 0x800000
558
	   call init_LFB
536
	   call init_LFB
559
           call init_fpu
537
           call init_fpu
Line 618... Line 596...
618
	mov    [mem_BACKGROUND],4095
596
	mov    [mem_BACKGROUND],4095
619
	stdcall kernel_alloc, [mem_BACKGROUND]
597
	stdcall kernel_alloc, [mem_BACKGROUND]
620
	mov [img_background], eax
598
	mov [img_background], eax
621
 
599
 
Line 622... Line 600...
622
        mov     [SLOT_BASE + 256 + APPDATA.dir_table], _sys_pdbr - OS_BASE
600
        mov     [SLOT_BASE + 256 + APPDATA.dir_table], _sys_pdbr + (0x100000000-OS_BASE)
Line 623... Line 601...
623
 
601
 
Line 624... Line 602...
624
; REDIRECT ALL IRQ'S TO INT'S 0x20-0x2f
602
; REDIRECT ALL IRQ'S TO INT'S 0x20-0x2f
Line 647... Line 625...
647
;!!!!!!!!!!!!!!!!!!!!!!!!!!
625
;!!!!!!!!!!!!!!!!!!!!!!!!!!
648
include 'detect/disks.inc'
626
include 'detect/disks.inc'
649
;!!!!!!!!!!!!!!!!!!!!!!!!!!
627
;!!!!!!!!!!!!!!!!!!!!!!!!!!
Line 650... Line -...
650
 
-
 
651
           xchg bx, bx
-
 
652
 
628
 
Line 653... Line 629...
653
  call Parser_params
629
  call Parser_params
Line 654... Line 630...
654
 
630