Added memory, cpu and disk configuration for bochs

This commit is contained in:
Maciej Krzyżanowski 2023-10-21 00:22:14 +02:00
parent f5ce641cbf
commit 8ea82bf3a7
2 changed files with 18 additions and 3 deletions

View File

@ -1,4 +1,8 @@
megs: 32
cpu: count=1, ips=9000000
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14 ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata0-master: type=cdrom, path="mkos.iso", status=inserted ata0-master: type=cdrom, path="mkos.iso", status=inserted
ata1: enabled=true, ioaddr1=0x170, ioaddr2=0x370, irq=15
ata1-master: type=disk, path="dysk.img", mode=flat
boot: cdrom boot: cdrom
display_library: x, options="gui_debug" display_library: x, options="gui_debug"

17
boot.s
View File

@ -16,8 +16,6 @@
* podać ich odwrotność. */ * podać ich odwrotność. */
.set CHECKSUM, -(MAGIC + FLAGS) .set CHECKSUM, -(MAGIC + FLAGS)
// TODO: Dopisać czas do dziennika
/* Faktyczny nagłówek multiboot z wykorzystaniem powyższych wartości */ /* Faktyczny nagłówek multiboot z wykorzystaniem powyższych wartości */
.section .multiboot .section .multiboot
.align 4 .align 4
@ -36,6 +34,11 @@ stack_bottom:
.skip 16834 .skip 16834
stack_top: stack_top:
.section .data
/* 23, bo będą 3 deskryptory po 8 bajtów, a przekazujemy wielkość - 1*/
gdtr: .word 23
.long 0
/* /*
Oznaczenie startu, tu zaczyna się kod kernela! Oznaczenie startu, tu zaczyna się kod kernela!
*/ */
@ -44,7 +47,15 @@ stack_top:
.type _start, @function .type _start, @function
_start: _start:
/* Tutaj podobno jest tryb chroniony już, jednak zastanawia czy faktycznie /* Tutaj podobno jest tryb chroniony już, jednak zastanawia czy faktycznie
bootloader ustawia za nas segmentacje pamięci? */ * bootloader ustawia za nas segmentacje pamięci?
* EDIT: Ustawia, ale pod własne potrzeby, więc i tak trzeba zmienić
* Ustawię zatem najprostszy model segmentacji */
// 1. Pusty (null) deskryptor
mov $0, %eax
movq $0, (%eax)
// 2. Deskryptor kodu jądra
/* Ustawienie ESP na wierzchołek stosu */ /* Ustawienie ESP na wierzchołek stosu */
mov $stack_top, %esp mov $stack_top, %esp