Rev 130 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 130 | Rev 133 | ||
---|---|---|---|
Line 136... | Line 136... | ||
136 | jnz .cleanfailed |
136 | jnz .cleanfailed |
137 | cmp [0x90004],word 'ET' |
137 | cmp [0x90004],word 'ET' |
138 | jnz .cleanfailed |
138 | jnz .cleanfailed |
Line 139... | Line 139... | ||
139 | 139 | ||
140 | call get_app_params ;parse header fields |
- | |
141 | test esi, esi |
140 | call get_app_params ;parse header fields |
Line 142... | Line 141... | ||
142 | jz .cleanfailed |
141 | jc .cleanfailed |
143 | 142 | ||
144 | mov eax,[new_process_place] |
143 | mov eax,[new_process_place] |
145 | inc ecx ; -0x1E = no memory |
144 | inc ecx ; -0x1E = no memory |
Line 318... | Line 317... | ||
318 | jnz .cleanfailed |
317 | jnz .cleanfailed |
319 | cmp [0x90004],word 'ET' |
318 | cmp [0x90004],word 'ET' |
320 | jnz .cleanfailed |
319 | jnz .cleanfailed |
Line 321... | Line 320... | ||
321 | 320 | ||
322 | call get_app_params ;parse header fields |
- | |
323 | test esi,esi |
321 | call get_app_params ;parse header fields |
Line 324... | Line 322... | ||
324 | jz .cleanfailed |
322 | jc .cleanfailed |
325 | 323 | ||
326 | mov eax,[new_process_place] |
324 | mov eax,[new_process_place] |
327 | inc ecx ; -0x1E = no memory |
325 | inc ecx ; -0x1E = no memory |
Line 1299... | Line 1297... | ||
1299 | mov ecx,512/4 |
1297 | mov ecx,512/4 |
1300 | cld |
1298 | cld |
1301 | rep movsd ;copy first block to 0x90000 address for get_app_params function |
1299 | rep movsd ;copy first block to 0x90000 address for get_app_params function |
1302 | call get_app_params |
1300 | call get_app_params |
1303 | mov ecx, -0x1F ; not Menuet/Kolibri executable |
1301 | mov ecx, -0x1F ; not Menuet/Kolibri executable |
1304 | test esi,esi |
- | |
1305 | jz .cleanfailed |
1302 | jc .cleanfailed |
Line 1306... | Line 1303... | ||
1306 | 1303 | ||
1307 | mov eax,[new_process_place] |
1304 | mov eax,[new_process_place] |
1308 | inc ecx ; -0x1E = no memory |
1305 | inc ecx ; -0x1E = no memory |
1309 | call create_app_cr3_table ;create page directory |
1306 | call create_app_cr3_table ;create page directory |
Line 1534... | Line 1531... | ||
1534 | jnz .cleanfailed |
1531 | jnz .cleanfailed |
1535 | cmp word [0x90004], 'ET' |
1532 | cmp word [0x90004], 'ET' |
1536 | jnz .cleanfailed |
1533 | jnz .cleanfailed |
1537 | call get_app_params |
1534 | call get_app_params |
1538 | mov ecx, -0x1F |
1535 | mov ecx, -0x1F |
- | 1536 | jc .cleanfailed |
|
- | 1537 | ; sanity check - because we will load all file, |
|
- | 1538 | ; file size must be not greater than memory size |
|
1539 | test esi, esi |
1539 | mov eax, [esp+8+36] |
- | 1540 | cmp [app_mem], eax |
|
1540 | jz .cleanfailed |
1541 | jb .cleanfailed |
Line 1541... | Line 1542... | ||
1541 | 1542 | ||
1542 | mov eax, [new_process_place] |
1543 | mov eax, [new_process_place] |
1543 | inc ecx ; -0x1E = no memory |
1544 | inc ecx ; -0x1E = no memory |
1544 | call create_app_cr3_table |
1545 | call create_app_cr3_table |