Quellcode durchsuchen

Make it run in QEMU.

Looks like the problem was the weirdly-sized floppy image file.
I guess QEMU was inferring the floppy disk geometry from the image size.
Andreas Kling vor 6 Jahren
Ursprung
Commit
71a2942a0a
2 geänderte Dateien mit 7 neuen und 4 gelöschten Zeilen
  1. 4 1
      Kernel/Makefile
  2. 3 3
      Kernel/run

+ 4 - 1
Kernel/Makefile

@@ -80,7 +80,10 @@ $(KERNEL): $(OBJS)
 	@echo "LD $@"; $(LD) $(LDFLAGS) -o $@ -Ttext 0x10000 $(OBJS)
 
 $(IMAGE): $(KERNEL) $(BOOTLOADER)
-	@echo "CREATE $@"; cat $(BOOTLOADER) $(KERNEL) > $(IMAGE)
+	@echo "CREATE $@"; cat $(BOOTLOADER) $(KERNEL) > .tmp-floppy-image
+	@dd if=/dev/zero bs=2M count=1 >> .tmp-floppy-image 2> /dev/null
+	@dd if=.tmp-floppy-image of=.floppy-image bs=1440k count=1 2>/dev/null
+	@rm -f .tmp-floppy-image
 
 $(BOOTLOADER): Boot/boot.asm
 	@echo "NASM $<"; $(NASM) -f bin -o $@ $<

+ 3 - 3
Kernel/run

@@ -1,8 +1,8 @@
 #!/bin/sh
 
-if [ "$1" = "q" ]; then
-    qemu-system-i386 -drive format=raw,file=.floppy-image,if=floppy -drive format=raw,file=_fs_contents #$@
-else
+if [ "$1" = "b" ]; then
     bochs -q -f .bochsrc
+else
+    qemu-system-i386 -m 32 -drive format=raw,file=.floppy-image,if=floppy -drive format=raw,file=_fs_contents #$@
 fi