kernel: refine boot screen options, show message that <=8 MB memory is not enough

This commit is contained in:
2026-07-21 07:39:19 +00:00
committed by Burer
parent 4b4bd9bdde
commit 09af6357d4
6 changed files with 72 additions and 34 deletions
+32
View File
@@ -1037,6 +1037,38 @@ end if
; GET MEMORY MAP
include '../detect/biosmem.inc'
; SANITY-CHECK THE AMOUNT. The 32-bit kernel's physical layout is fixed:
; its heap starts at phys 8MB (HEAP_BASE) and the top usable pages are eaten
; by E820 reservations, so with less RAM the very first kernel allocation
; (the OS ring0 stack) comes from an empty heap and the boot dies in a
; silent triple-fault reboot loop long before anything is printed. Refuse
; HERE, while the text screen can still say why. Machines without E820
; (memmap_block_cnt = 0, pre-Pentium BIOSes) are not checked - they fall
; back to mem_test in the 32-bit init.
xor edx, edx ; edx = highest usable top
movzx ecx, byte [es:BOOT_LO.memmap_block_cnt]
jcxz mem_floor_ok
mov di, BOOT_LO.memmap_blocks
mem_floor_next:
cmp byte [es:di + e820entry.type], 1
jne mem_floor_skip
cmp dword [es:di + e820entry.addr.hi], 0
jne mem_floor_skip
mov eax, [es:di + e820entry.addr.lo]
add eax, [es:di + e820entry.size.lo]
jc mem_floor_skip
cmp edx, eax
jae mem_floor_skip
mov edx, eax
mem_floor_skip:
add di, sizeof.e820entry
loop mem_floor_next
cmp edx, 8*1024*1024
jae mem_floor_ok
mov si, low_memory_error
jmp sayerr
mem_floor_ok:
; READ DISKETTE TO MEMORY
cmp byte [es:BOOT_LO.rd_load_from], RD_LOAD_FROM_FLOPPY
+1
View File
@@ -89,6 +89,7 @@ loading_msg db "Lade KolibriOS...",0
if ~ defined extended_primary_loader
save_quest db "Aktuelle Einstellungen speichern? [y/n]: ",0
loader_block_error db "Bootloader Daten ungueltig, Kann nicht fortfahren. Angehalten.",0
low_memory_error db "Nicht genügend Arbeitsspeicher: KolibriOS benötigt mindestens 9 MB. Abgebrochen.",0
write_err_msg db "Schreiben fehlgeschlagen. Zum Booten eine beliebige Taste drucken...",0
end if
+16 -15
View File
@@ -15,7 +15,7 @@
d80x25_bottom:
db 186,' KolibriOS comes with ABSOLUTELY NO WARRANTY. See file COPYING for details ',186
db 186,' If you find any bugs, please report them at: https://board.kolibrios.org ',186
db 186,' If you find any bugs, please report them at: https://git.kolibrios.org ',186
line_full_bottom
d80x25_bottom_num = 3
@@ -29,12 +29,12 @@ gr_mode db "Select a videomode: ",13,10,0
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; 3-don't load]: ",0
bdev db "Load system 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," "
bdev db "Load system from [1-floppy; 2-C:\kolibri.img (FAT32);"
db 13,10,186," "
db "3-preloaded ram-image (flash-disk, dualboot, "
db 13,10,186," "
db 13,10,186," "
db "kernel restart, etc.)]: ",0
end if
@@ -55,23 +55,23 @@ start_msg db "Press [abcde] to change settings, press [Enter] to continue b
time_msg db " or wait "
time_str db " 5 seconds"
db " to continue automatically",13,10,0
current_cfg_msg db "Current settings:",13,10,0
curvideo_msg db " [a] Videomode: ",0
current_cfg_msg db "Boot options:",13,10,0
curvideo_msg db " [a] Video mode...............",0
usebd_msg db " [b] BIOS disks...............",0
debug_mode_msg db " [c] On-screen debug..........",0
launcher_msg db " [d] Start LAUNCHER...........",0
preboot_device_msg db " [e] Boot from................",0
mode0 db "320x200, EGA/CGA 256 colors",13,10,0
mode9 db "640x480, VGA 16 colors",13,10,0
usebd_msg db " [b] Add disks visible by BIOS:",0
on_msg db " on",13,10,0
off_msg db " off",13,10,0
on_msg db "on",13,10,0
off_msg db "off",13,10,0
debug_mode_msg db " [c] Duplicate debug output to the screen:",0
ask_debug db "Duplicate debug output to the screen? [1-yes, 2-no]: ",0
launcher_msg db " [d] Start LAUNCHER after kernel is loaded:",0
ask_launcher db "Start first application (LAUNCHER) after kernel is loaded? [1-yes, 2-no]: ",0
ask_launcher db "Autostart applications and services after kernel is loaded? [1-yes, 2-no]: ",0
preboot_device_msg db " [e] Floppy image: ",0
if defined extended_primary_loader
preboot_device_msgs dw 0,pdm1,pdm2,pdm3,0
@@ -82,7 +82,7 @@ else
preboot_device_msgs dw 0,pdm1,pdm2,pdm3,pdm4,0
pdm1 db "real floppy",13,10,0
pdm2 db "C:\kolibri.img (FAT32)",13,10,0
pdm3 db "use already loaded image",13,10,0
pdm3 db "preloaded ram-image",13,10,0
pdm4 db "create blank image",13,10,0
end if
@@ -93,6 +93,7 @@ save_quest db "New settings have been applied.",13,10,13,10,186
db " Do you want to save them for future boots?",13,10,186
db " Answer 'yes' only if your booting device is writable. [y/n]: ",0
loader_block_error db "Bootloader data invalid. Stopped.",0
low_memory_error db "Not enough RAM: KolibriOS needs at least 9 MB. Stopped.",0
write_err_msg db "Recording the configuration has failed. Press any key to resume booting...",0
end if
+8 -7
View File
@@ -14,7 +14,7 @@
d80x25_bottom:
cp850 '║ KolibriOS viene ABSOLUTAMENTE SIN GARANTíA. Lee el archivo COPYING por más ║'
cp850 '║ detalles. Por favor, informar de los errores en: http://board.kolibrios.org ║'
cp850 '║ detalles. Por favor, informar de los errores en: http://git.kolibrios.org ║'
line_full_bottom
d80x25_bottom_num = 3
@@ -54,23 +54,23 @@ start_msg cp850 "Presiona [abcde] para cambiar la configuración, [Enter] para
time_msg cp850 " o espera "
time_str cp850 " 5 segundos"
cp850 " para que inicie automáticamente",13,10,0
current_cfg_msg cp850 "Configuración actual:",13,10,0
curvideo_msg cp850 " [a] Modo de video: ",0
current_cfg_msg cp850 "Opciones de arranque:",13,10,0
curvideo_msg cp850 " [a] Modo de video.................",0
usebd_msg cp850 " [b] Discos BIOS..................",0
debug_mode_msg cp850 " [c] Depuracion en pantalla.......",0
launcher_msg cp850 " [d] Iniciar LAUNCHER.............",0
preboot_device_msg cp850 " [e] Arrancar desde...............",0
mode0 cp850 "320x200, EGA/CGA 256 colores",13,10,0
mode9 cp850 "640x480, VGA 16 colores",13,10,0
usebd_msg cp850 " [b] Agregar discos visibles por el BIOS:",0
on_msg cp850 " activado",13,10,0
off_msg cp850 " desactivado",13,10,0
debug_mode_msg cp850 " [c] Duplicar depurar salida a la pantalla:",0
ask_debug cp850 "¿Duplicar depurar la salida a la pantalla? [1-si, 2-no]: ",0
launcher_msg cp850 " [d] Iniciar LAUNCHER después de cargar kernel:",0
ask_launcher cp850 "¿Inicie la primera aplicación después de cargar el kernel? [1-si, 2-no]: ",0
preboot_device_msg cp850 " [e] Imagen de disquete: ",0
if defined extended_primary_loader
preboot_device_msgs dw 0,pdm1,pdm2,0
@@ -89,6 +89,7 @@ loading_msg cp850 "Cargando KolibriOS...",0
if ~ defined extended_primary_loader
save_quest cp850 "¿Recordar configuración actual? [s/n]: ",0
loader_block_error cp850 "Bootloader inválido, no puedo continuar. Detenido.",0
low_memory_error cp850 "Memoria RAM insuficiente: KolibriOS necesita al menos 9 MB. Proceso detenido.",0
write_err_msg cp850 "La grabación ha fallado. Presione cualquier tecla para continuar...",0
end if
+1
View File
@@ -89,6 +89,7 @@ loading_msg latin1 "Laadin KolibriOS...",0
if ~ defined extended_primary_loader
save_quest latin1 "Jäta meelde praegused seaded? [y/n]: ",0
loader_block_error latin1 "Alglaaduri andmed vigased, ei saa jätkata. Peatatud.",0
low_memory_error latin1 "Not enough RAM: KolibriOS needs at least 9 MB. Stopped.",0
write_err_msg latin1 "Salvestamine ebaõnnestus. Käivitamise jätkamiseks vajutage suvalist klahvi...",0
end if
+14 -12
View File
@@ -14,7 +14,7 @@
d80x25_bottom:
cp866 '║ KolibriOS НЕ ПРЕДОСТАВЛЯЕТ НИКАКИХ ГАРАНТИЙ. Подробнее смотрите в файле ║'
cp866 '║ COPYING.TXT. О найденных ошибках сообщайте на http://board.kolibrios.org ║'
cp866 '║ COPYING.TXT. О найденных ошибках сообщайте на http://git.kolibrios.org ║'
line_full_bottom
d80x25_bottom_num = 3
@@ -32,7 +32,8 @@ bdev cp866 "Загрузить образ из [1-дискета; 2-ko
cp866 "║ 3-не загружать]: ",0
else
bdev cp866 "Загрузить образ из [1-дискета; 2-C:\kolibri.img (FAT32);",13,10
cp866 "║ 3-использовать уже загруженный образ]:",0
cp866 " 3-предзагруженный образ (USB флэш, дуалбут,",13,10
cp866 "║ рестарт ядра и т.д.)]: ",0
end if
prnotfnd cp866 "Ошибка - Видеорежим не найден.",0
@@ -52,23 +53,23 @@ start_msg cp866 "Нажмите [abcde] для изменения наст
time_msg cp866 " или подождите "
time_str cp866 " 5 секунд "
cp866 " до автоматического продолжения",13,10,0
current_cfg_msg cp866 "Текущие настройки:",13,10,0
curvideo_msg cp866 " [a] Видеорежим: ",0
current_cfg_msg cp866 "Параметры загрузки:",13,10,0
curvideo_msg cp866 " [a] Видеорежим...........................",0
usebd_msg cp866 " [b] Диски, видимые через BIOS............",0
debug_mode_msg cp866 " [c] Вывод отладки на экран...............",0
launcher_msg cp866 " [d] Запустить LAUNCHER...................",0
preboot_device_msg cp866 " [e] Загрузить систему из.................",0
mode0 cp866 "320x200, EGA/CGA 256 цветов",13,10,0
mode9 cp866 "640x480, VGA 16 цветов",13,10,0
usebd_msg cp866 " [b] Добавить диски, видимые через BIOS:",0
on_msg cp866 " вкл",13,10,0
off_msg cp866 " выкл",13,10,0
on_msg cp866 "вкл",13,10,0
off_msg cp866 "выкл",13,10,0
debug_mode_msg cp866 " [c] Дублировать дебаг-вывод на экран монитора:",0
ask_debug cp866 "Дублировать дебаг-вывод на экран монитора? [1-да, 2-нет]: ",0
launcher_msg cp866 " [d] Запустить программу LAUNCHER после загрузки ядра:",0
ask_launcher cp866 "Запустить первую программу (LAUNCHER) после загрузки ядра? [1-да, 2-нет]: ",0
ask_launcher cp866 "Автозапуск программ и служб после загрузки ядра? [1-да, 2-нет]: ",0
preboot_device_msg cp866 " [e] Образ дискеты: ",0
if defined extended_primary_loader
preboot_device_msgs dw 0,pdm1,pdm2,pdm3,0
@@ -79,7 +80,7 @@ else
preboot_device_msgs dw 0,pdm1,pdm2,pdm3,pdm4,0
pdm1 cp866 "настоящая дискета",13,10,0
pdm2 cp866 "C:\kolibri.img (FAT32)",13,10,0
pdm3 cp866 "использовать уже загруженный образ",13,10,0
pdm3 cp866 "предзагруженный образ",13,10,0
pdm4 cp866 "создать чистый образ",13,10,0
end if
@@ -90,6 +91,7 @@ save_quest cp866 "Новые настройки были применены.
cp866 "║ Хотите записать их для будущих загрузок? Отвечайте да, только",13,10
cp866 "║ если ваше загрузочное устройство доступно для записи. [y/n]: ",0
loader_block_error cp866 "Ошибка в данных начального загрузчика, продолжение невозможно.",0
low_memory_error cp866 "Мало памяти: нужно минимум 9 Мб ОЗУ.",0
write_err_msg cp866 "Не удалось записать. Нажмите любую клавишу, для продолжения загрузки...",0
end if