/kernel/trunk/boot/bootcode.inc |
---|
667,7 → 667,7 |
jnz .show_remarks |
; e) preboot_device = from where to boot? |
if defined extended_primary_loader |
_ask_question bdev,'12',preboot_device ; range accepted for answer: 1-2 |
_ask_question bdev,'13',preboot_device ; range accepted for answer: 1-3 |
else |
_ask_question bdev,'14',preboot_device ; range accepted for answer: 1-4 |
end if |
970,9 → 970,25 |
; BOOT DEVICE |
mov al, [preboot_device] |
dec al |
if defined extended_primary_loader |
cmp al, RD_LOAD_FROM_MEMORY |
jnz @f |
mov al, RD_LOAD_FROM_NONE |
@@: |
end if |
mov [es:BOOT_LO.rd_load_from], al |
; /sys path |
mov eax, dword[preboot_syspath+0] |
mov dword[es:BOOT_LO.syspath+0], eax |
mov eax, dword[preboot_syspath+4] |
mov dword[es:BOOT_LO.syspath+4], eax |
mov eax, dword[preboot_syspath+8] |
mov dword[es:BOOT_LO.syspath+8], eax |
mov eax, dword[preboot_syspath+12] |
mov dword[es:BOOT_LO.syspath+12], eax |
; GET MEMORY MAP |
include '../detect/biosmem.inc' |
/kernel/trunk/boot/booten.inc |
---|
30,7 → 30,7 |
ask_bd db "Add disks visible by BIOS emulated in V86-mode? [1-yes, 2-no]: ",0 |
if defined extended_primary_loader |
bdev db "Load ramdisk from [1-floppy; 2-kolibri.img]: ",0 |
bdev db "Load ramdisk from [1-floppy; 2-kolibri.img; 3-don't load]: ",0 |
else |
bdev db "Load ramdisk from [1-floppy; 2-C:\kolibri.img (FAT32);" |
db 13,10,186," " |
75,9 → 75,10 |
preboot_device_msg db " [e] Floppy image: ",0 |
if defined extended_primary_loader |
preboot_device_msgs dw 0,pdm1,pdm2,0 |
preboot_device_msgs dw 0,pdm1,pdm2,pdm3,0 |
pdm1 db "real floppy",13,10,0 |
pdm2 db "C:\kolibri.img (FAT32)",13,10,0 |
pdm3 db "do not use floppy image",13,10,0 |
else |
preboot_device_msgs dw 0,pdm1,pdm2,pdm3,pdm4,0 |
pdm1 db "real floppy",13,10,0 |
/kernel/trunk/boot/bootru.inc |
---|
30,7 → 30,8 |
ask_bd cp866 "Добавить диски, видимые через BIOS в режиме V86? [1-да, 2-нет]: ",0 |
if defined extended_primary_loader |
bdev cp866 "Загрузить образ из [1-дискета; 2-kolibri.img из папки загрузки]: ",0 |
bdev cp866 "Загрузить образ из [1-дискета; 2-kolibri.img из папки загрузки;",13,10 |
cp866 "║ 3-не загружать]: ",0 |
else |
bdev cp866 "Загрузить образ из [1-дискета; 2-C:\kolibri.img (FAT32);",13,10 |
cp866 "║ 3-использовать уже загруженный образ;",13,10 |
73,9 → 74,10 |
preboot_device_msg cp866 " [e] Образ дискеты: ",0 |
if defined extended_primary_loader |
preboot_device_msgs dw 0,pdm1,pdm2,0 |
preboot_device_msgs dw 0,pdm1,pdm2,pdm3,0 |
pdm1 cp866 "настоящая дискета",13,10,0 |
pdm2 cp866 "kolibri.img из папки загрузки",13,10,0 |
pdm3 cp866 "не загружать образ рамдиска",13,10,0 |
else |
preboot_device_msgs dw 0,pdm1,pdm2,pdm3,pdm4,0 |
pdm1 cp866 "настоящая дискета",13,10,0 |
/kernel/trunk/boot/parsers.inc |
---|
74,12 → 74,25 |
jc .nothing |
cmp al, 1 |
jb .nothing |
cmp al, 2 |
cmp al, 3 |
ja .nothing |
mov [es:preboot_device], al |
.nothing: |
ret |
parse_syspath: |
; everything except spaces |
mov bx, preboot_syspath |
.next_char: |
call parse_char |
jc .done |
mov [es:bx], al |
inc bx |
jmp .next_char |
.done: |
mov byte[es:bx], 0 ; terminator |
ret |
parse_char: |
; skip spaces and return the next character or CF if EOF. |
cmp si, dx |
/kernel/trunk/boot/preboot.inc |
---|
27,9 → 27,12 |
preboot_launcher db 0 ; start launcher after kernel is loaded? (1-yes, 2-no) |
preboot_dma db 0 ; use DMA for access to HDD (1-always, 2-only for read, 3-never) |
preboot_device db 0 ; device to load ramdisk from |
; 0-floppy 1-harddisk 2-kernel restart |
; 3-format ram disk 4-don't use ramdisk |
; 1-floppy 2-harddisk 3-kernel restart |
; 4-format ram disk 5-don't use ramdisk |
; !!!! 0 - autodetect !!!! |
preboot_biosdisk db 0 ; use V86 to access disks through BIOS (1-yes, 2-no) |
preboot_syspath db '/RD/1',0 ; path to /sys dir |
rb 20-($-preboot_syspath) |
if defined extended_primary_loader |
; timeout in 1/18th of second for config settings screen |
preboot_timeout dw PREBOOT_TIMEOUT*18 |
/kernel/trunk/boot/rdload.inc |
---|
75,13 → 75,6 |
call register_ramdisk |
jmp yes_sys_on_hd |
;----------------------------------------------------------------------------- |
; Register ramdisk file system |
register_ramdisk: |
mov esi, boot_initramdisk |
call boot_log |
call ramdisk_init |
ret |
;----------------------------------------------------------------------------- |
iglobal |
align 4 |
read_image_fsinfo: |
/kernel/trunk/boot/uefi4kos.asm |
---|
204,14 → 204,14 |
cli |
mov rsi, kernel_bin_data_begin |
mov rsi, kernel_data_begin |
mov rdi, KERNEL_BASE |
mov rcx, (kernel_bin_data_end - kernel_bin_data_begin + 7) / 8 |
mov rcx, (kernel_data_end - kernel_data_begin + 7) / 8 |
rep movsq |
mov rsi, kolibri_img_data_begin |
mov rsi, ramdisk_data_begin |
mov rdi, RAMDISK_BASE |
mov rcx, (kolibri_img_data_end - kolibri_img_data_begin + 7 ) / 8 |
mov rcx, (ramdisk_data_end - ramdisk_data_begin + 7 ) / 8 |
rep movsq |
xor esi, esi |
232,9 → 232,11 |
mov word[esi + BOOT_LO.apm_code_16], 0 |
mov word[esi + BOOT_LO.apm_data_16], 0 |
mov byte[esi + BOOT_LO.bios_hd_cnt], 0 |
mov word[esi + BOOT_LO.sys_disk], 'r1' ; boot from /rd/1 |
mov rsi, syspath |
mov rdi, BOOT_LO.syspath |
mov ecx, 32 |
rep movsb |
lgdt [cs:GDTR] |
mov ax, DATA_32_SELECTOR |
428,17 → 430,19 |
msg_error du 'Error!',13,10,0 |
msg du 79 dup ' ',13,10,0 |
syspath db '/RD/1',0 |
memory_map rb MEMORY_MAP_SIZE |
gop_buffer rb GOP_BUFFER_SIZE |
kernel_bin_data_begin: |
file '../kernel.bin' |
kernel_bin_data_end: |
kernel_data_begin: |
file '../kernel.bin.ext_loader' |
kernel_data_end: |
kolibri_img_data_begin: |
ramdisk_data_begin: |
file '../../../data/kolibri.img' |
kolibri_img_data_end: |
ramdisk_data_end: |
align 16 |
data fixups |