Rev 1289 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1289 | Rev 1291 | ||
|---|---|---|---|
| Line 419... | Line 419... | ||
| 419 | mov %cx,%ss; |
419 | mov %cx,%ss; |
| 420 | mov %ebp,%esp; |
420 | mov %ebp,%esp; |
| 421 | 421 | ||
| 422 | ljmpl $gdtselector(KTEXT32_DES),$(vesa_init_protect-vesa_init+VESA_INIT_SEGMENT<<4); |
422 | ljmpl $gdtselector(KTEXT32_DES),$(vesa_init_protect-vesa_init+VESA_INIT_SEGMENT<<4); |
| 423 | 423 | ||
| 424 | vesa_init_protect: |
- | |
| 425 | .code32 |
- | |
| 426 | ret; |
- | |
| 427 | - | ||
| 428 | 0: #Error no Prefered mode found |
- | |
| 429 | 424 | ||
| - | 425 | 0:#Error no Prefered mode found |
|
| 430 | mov $0x111,%cx; |
426 | mov $0x111,%cx; |
| 431 | push %di; |
427 | push %di; |
| 432 | push %cx; |
428 | push %cx; |
| 433 | mov $VESA_GET_MODE_INFO,%ax; |
429 | mov $VESA_GET_MODE_INFO,%ax; |
| 434 | int $0x10; |
430 | int $0x10; |
| 435 | pop %cx; |
431 | pop %cx; |
| 436 | pop %di; |
432 | pop %di; |
| 437 | cmp $VESA_OK,%al; |
433 | cmp $VESA_OK,%al; |
| 438 | jnz 1f; |
434 | jnz 1f; |
| 439 | jmp 2b; |
435 | jz 2b; /* Force relative jump */ |
| 440 | 436 | ||
| - | 437 | ||
| 441 | 1:mov $0x0003,%ax; |
438 | 1:mov $0x0003,%ax; |
| 442 | int $0x10; |
439 | int $0x10; |
| 443 | mov $0xffffffff,%edi; /* EGA text mode used, because of problems with VESA */ |
440 | mov $0xffffffff,%edi; /* EGA text mode used, because of problems with VESA */ |
| - | 441 | xor %ax,%ax |
|
| - | 442 | jz 8b; /* Force relative jump */ |
|
| - | 443 | ||
| - | 444 | ||
| - | 445 | vesa_init_protect: |
|
| - | 446 | .code32 |
|
| 444 | jmp 8; |
447 | ret; |
| 445 | 448 | ||
| 446 | 449 | ||
| 447 | vesa_idt: |
450 | vesa_idt: |
| 448 | .word 0x03ff |
451 | .word 0x03ff |
| 449 | .long 0 |
452 | .long 0 |