Changeset f1380b7 in mainline for kernel/arch/ia32/src/boot/vesa_prot.inc
- Timestamp:
- 2018-03-02T20:21:57Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 34e1206
- Parents:
- a35b458
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:51:04)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-03-02 20:21:57)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia32/src/boot/vesa_prot.inc
ra35b458 rf1380b7 5 5 6 6 /* Copy real mode VESA initialization code */ 7 7 8 8 pm_status $status_vesa_copy 9 9 10 10 mov $vesa_init, %esi 11 11 mov $VESA_INIT_SEGMENT << 4, %edi 12 12 mov $e_vesa_init - vesa_init, %ecx 13 13 rep movsb 14 14 15 15 /* Check for multiboot command line */ 16 16 17 17 pm_status $status_multiboot_cmdline 18 18 19 19 mov multiboot_eax, %eax 20 20 cmp $MULTIBOOT_LOADER_MAGIC, %eax 21 21 jne no_cmdline 22 22 23 23 mov multiboot_ebx, %ebx 24 24 mov (%ebx), %eax 25 25 bt $MBINFO_BIT_CMDLINE, %eax 26 26 jnc no_cmdline 27 27 28 28 /* Skip the kernel path in command line */ 29 29 30 30 mov MBINFO_OFFSET_CMDLINE(%ebx), %esi 31 31 32 32 skip_loop: 33 33 lodsb 34 34 35 35 cmp $0, %al 36 36 je no_cmdline 37 37 38 38 cmp $' ', %al 39 39 je skip_loop_done 40 40 41 41 jmp skip_loop 42 42 skip_loop_done: 43 43 44 44 space_loop: 45 45 mov (%esi), %al 46 46 47 47 cmp $0, %al 48 48 je no_cmdline 49 49 50 50 cmp $' ', %al 51 51 jne space_loop_done 52 52 53 53 inc %esi 54 54 jmp space_loop 55 55 space_loop_done: 56 56 57 57 /* Copy at most 23 characters from command line */ 58 58 59 59 mov $VESA_INIT_SEGMENT << 4, %edi 60 60 add $default_mode - vesa_init, %edi 61 61 mov $23, %ecx 62 62 63 63 cmd_loop: 64 64 lodsb 65 65 stosb 66 66 67 67 cmp $0, %al 68 68 je cmd_loop_done 69 69 70 70 loop cmd_loop 71 71 cmd_loop_done: 72 72 73 73 /* Zero termination */ 74 74 75 75 xor %eax, %eax 76 76 stosb 77 77 78 78 no_cmdline: 79 79 80 80 /* Jump to the real mode */ 81 81 82 82 pm_status $status_vesa_real 83 83 84 84 mov $VESA_INIT_SEGMENT << 4, %edi 85 85 jmpl *%edi 86 86 87 87 vesa_meeting_point: 88 88 /* Returned back to protected mode */ 89 89 90 90 /* 91 91 * Initialize Global Descriptor Table and … … 94 94 lgdtl bootstrap_gdtr 95 95 lidtl bootstrap_idtr 96 96 97 97 movzx %ax, %ecx 98 98 mov %ecx, KA2PA(bfb_scanline) 99 99 100 100 shr $16, %eax 101 101 mov %ax, KA2PA(bfb_bpp) 102 102 103 103 movzx %bx, %ecx 104 104 mov %ecx, KA2PA(bfb_height) 105 105 106 106 shr $16, %ebx 107 107 mov %ebx, KA2PA(bfb_width) 108 108 109 109 mov %dl, KA2PA(bfb_green_pos) 110 110 111 111 shr $8, %edx 112 112 mov %dl, KA2PA(bfb_green_size) 113 113 114 114 shr $8, %edx 115 115 mov %dl, KA2PA(bfb_red_pos) 116 116 117 117 shr $8, %edx 118 118 mov %dl, KA2PA(bfb_red_size) 119 119 120 120 mov %esi, %edx 121 121 mov %dl, KA2PA(bfb_blue_pos) 122 122 123 123 shr $8, %edx 124 124 mov %dl, KA2PA(bfb_blue_size) 125 125 126 126 mov %edi, KA2PA(bfb_addr) 127 127 #endif
Note:
See TracChangeset
for help on using the changeset viewer.