From b5bc8a7c097906d6c4cad0ce2d5d6ea901247adb Mon Sep 17 00:00:00 2001 From: "SPraid (simba)" Date: Sun, 17 Jun 2007 15:40:48 +0000 Subject: [PATCH] added variant for d (preload) - 4-format ram disk (need when ram disk not loading and not linked) for example - loading from cdorm git-svn-id: svn://kolibrios.org@545 a494cfbc-eb01-0410-851d-a64ba20cac60 --- kernel/trunk/boot/bootcode.inc | 4 ++-- kernel/trunk/boot/booteng.inc | 4 +++- kernel/trunk/boot/bootet.inc | 4 +++- kernel/trunk/boot/bootge.inc | 4 +++- kernel/trunk/boot/bootru.inc | 6 ++++-- kernel/trunk/boot/preboot.inc | 2 +- kernel/trunk/boot/rdload.inc | 21 +++++++++++++++++++++ 7 files changed, 37 insertions(+), 8 deletions(-) diff --git a/kernel/trunk/boot/bootcode.inc b/kernel/trunk/boot/bootcode.inc index 0e14e0203f..7dbeb86e66 100644 --- a/kernel/trunk/boot/bootcode.inc +++ b/kernel/trunk/boot/bootcode.inc @@ -456,7 +456,7 @@ cfgmanager: mov si, preboot_device_msg call print mov al, [preboot_device] - and eax, 3 + and eax, 7 mov si, [preboot_device_msgs+eax*2] call printplain .wait: @@ -499,7 +499,7 @@ cfgmanager: _setcursor 15,0 mov si, bdev call print - mov bx, '13' + mov bx, '14' call getkey mov [preboot_device], al _setcursor 13,0 diff --git a/kernel/trunk/boot/booteng.inc b/kernel/trunk/boot/booteng.inc index fc8786faac..3af3ea6683 100644 --- a/kernel/trunk/boot/booteng.inc +++ b/kernel/trunk/boot/booteng.inc @@ -42,7 +42,8 @@ ask_dma db "Use DMA for HDD access? [1-yes, 2-only for reading, 3-no]: ", ;bootlog db 13,10,186," After bootlog display [1-continue/2-pause] ? ",0 bdev db "Load ramdisk from [1-floppy; 2-C:\kolibri.img (FAT32);" db 13,10,186," " - db "3-use preloaded ram-image from kernel restart]: ",0 + db "3-use preloaded ram-image from kernel restart;" + db 13,10,186,"4-create blank image]: ",0 probetext db 13,10,13,10,186," Use standart graphics mode? [1-yes, " db "2-probe bios (Vesa 3.0)]: ",0 ;memokz256 db 13,10,186," RAM 256 Mb",0 @@ -90,6 +91,7 @@ preboot_device_msgs dw 0,pdm1,pdm2,pdm3 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 +pdm4 db "create blank image",13,10,0 loading_msg db "Loading KolibriOS...",0 save_quest db "Remember current settings? [y/n]: ",0 loader_block_error db "Bootloader data invalid, I cannot continue. Stopped.",0 diff --git a/kernel/trunk/boot/bootet.inc b/kernel/trunk/boot/bootet.inc index e5408860b8..06c0ca470f 100644 --- a/kernel/trunk/boot/bootet.inc +++ b/kernel/trunk/boot/bootet.inc @@ -42,7 +42,8 @@ ask_dma db "Use DMA for HDD access? [1-yes, 2-only for reading, 3-no]: ", ;bootlog db 13,10,186," After bootlog display [1-continue/2-pause] ? ",0 bdev db "Paigalda mфluketas [1-diskett; 2-C:\kolibri.img (FAT32);" db 13,10,186," " - db "3-kasuta eellaaditud mфluketast kerneli restardist]: ",0 + db "3-kasuta eellaaditud mфluketast kerneli restardist;" + db 13,10,186,"4-create blank image]: ",0 probetext db 13,10,13,10,186," Kasuta standartset graafika reziimi? [1-jah, " db "2-leia biosist (Vesa 3.0)]: ",0 ;memokz256 db 13,10,186," RAM 256 Mb",0 @@ -90,6 +91,7 @@ preboot_device_msgs dw 0,pdm1,pdm2,pdm3 pdm1 db "reaalne diskett",13,10,0 pdm2 db "C:\kolibri.img (FAT32)",13,10,0 pdm3 db "kasuta juba laaditud kujutist",13,10,0 +pdm4 db "create blank image",13,10,0 loading_msg db "Laadin KolibriOS...",0 save_quest db "Jфta meelde praegused seaded? [y/n]: ",0 loader_block_error db "Alglaaduri andmed vigased, ei saa jфtkata. Peatatud.",0 diff --git a/kernel/trunk/boot/bootge.inc b/kernel/trunk/boot/bootge.inc index 7c3d9798ec..386c8807e4 100644 --- a/kernel/trunk/boot/bootge.inc +++ b/kernel/trunk/boot/bootge.inc @@ -47,7 +47,8 @@ ask_dma db "Nutze DMA zum HDD Zugriff? [1-ja, 2-allein fur Lesen, 3-nein] ;bootlog db 13,10,186," After bootlog display [1-continue/2-pause] ? ",0 bdev db "Lade die Ramdisk von [1-Diskette; 2-C:\kolibri.img (FAT32);" db 13,10,186," " - db "3-benutze ein bereits geladenes Kernel image]: ",0 + db "3-benutze ein bereits geladenes Kernel image;" + db 13,10,186,"4-create blank image]: ",0 probetext db 13,10,13,10,186," Nutze Standardgrafikmodi? [1-ja, " db "2-BIOS Test (Vesa 3.0)]: ",0 ;memokz256 db 13,10,186," RAM 256 Mb",0 @@ -95,6 +96,7 @@ preboot_device_msgs dw 0,pdm1,pdm2,pdm3 pdm1 db "Echte Diskette",13,10,0 pdm2 db "C:\kolibri.img (FAT32)",13,10,0 pdm3 db "Nutze bereits geladenes Image",13,10,0 +pdm4 db "create blank image",13,10,0 loading_msg db "Lade KolibriOS...",0 save_quest db "Aktuelle Einstellungen speichern? [y/n]: ",0 loader_block_error db "Bootloader Daten ungueltig, Kann nicht fortfahren. Angehalten.",0 diff --git a/kernel/trunk/boot/bootru.inc b/kernel/trunk/boot/bootru.inc index 2edcf77db6..3aa6d6756f 100644 --- a/kernel/trunk/boot/bootru.inc +++ b/kernel/trunk/boot/bootru.inc @@ -42,7 +42,8 @@ ask_dma db " ;bootlog db 13,10,186," Просмотреть журнал загрузки? [1-нет/2-да]: ",0 bdev db "Загрузить образ из [1-дискета; 2-C:\kolibri.img (FAT32);" db 13,10,186," " - db "3-использовать уже загруженный образ]: ",0 + db "3-использовать уже загруженный образ;" + db 13,10,186,"4-создать чистый образ]: ",0 probetext db 13,10,13,10,186," Стандартный видеорежим? [1-да, " db "2-проверить другие (Vesa 3.0)]: ",0 ;memokz256 db 13,10,186," RAM 256 Mb",0 @@ -86,10 +87,11 @@ off_msg db " readonly_msg db " только чтение",13,10,0 vrrm_msg db " [c] Использование VRR:",0 preboot_device_msg db " [d] Образ дискеты: ",0 -preboot_device_msgs dw 0,pdm1,pdm2,pdm3 +preboot_device_msgs dw 0,pdm1,pdm2,pdm3,pdm4 pdm1 db "настоящая дискета",13,10,0 pdm2 db "C:\kolibri.img (FAT32)",13,10,0 pdm3 db "использовать уже загруженный образ",13,10,0 +pdm4 db "создать чистый образ",13,10,0 loading_msg db "Идёт загрузка KolibriOS...",0 save_quest db "Запомнить текущие настройки? [y/n]: ",0 loader_block_error db "Ошибка в данных начального загрузчика, продолжение невозможно.",0 diff --git a/kernel/trunk/boot/preboot.inc b/kernel/trunk/boot/preboot.inc index c65480b7c3..a8a853c0b6 100644 --- a/kernel/trunk/boot/preboot.inc +++ b/kernel/trunk/boot/preboot.inc @@ -20,7 +20,7 @@ preboot_gprobe db 0 ; probe vesa3 videomodes (1-no, 2-yes) preboot_vrrm db 0 ; use VRR_M (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 ; boot device - ; (1-floppy 2-harddisk 3-kernel restart) + ; (1-floppy 2-harddisk 3-kernel restart 4-format ram disk) ;!!!! 0 - autodetect !!!! preboot_blogesc db 1 ; start immediately after bootlog diff --git a/kernel/trunk/boot/rdload.inc b/kernel/trunk/boot/rdload.inc index 1e30cd5def..70b1fdadd6 100644 --- a/kernel/trunk/boot/rdload.inc +++ b/kernel/trunk/boot/rdload.inc @@ -99,4 +99,25 @@ read_image: image_retrieved db 0 counter_of_partitions db 0 no_sys_on_hd: + ; test_to_format_ram_disk (need if not using ram disk) + cmp [boot_dev+OS_BASE+0x10000],3 + jne not_format_ram_disk + ; format_ram_disk + mov edi, RAMDISK + mov ecx, 0x1080 + xor eax,eax +@@: + stosd + loop @b + + mov ecx, 0x58F7F + mov eax,0xF6F6F6F6 +@@: + stosd + loop @b + + mov [RAMDISK+0x200],dword 0xFFFFF0 ; fat table + mov [RAMDISK+0x4200],dword 0xFFFFF0 + +not_format_ram_disk: yes_sys_on_hd: