Autor Thema: Problem mit Boot  (Gelesen 3356 mal)

Kev5454

  • Beiträge: 3
    • Profil anzeigen
Gespeichert
« am: 17. April 2012, 02:23 »
Hey,

Ich arbeite grade an einem Kernel. Nun wollte ich mit Bochs anschauen ob alles funzt, aber er sagt mir dauernd das er nicht vom Floppy booten kann.

bochs_src:
# configuration file generated by Bochs
plugin_ctrl: unmapped=1, biosdev=1, speaker=1, extfpuirq=1, gameport=1
config_interface: win32config
display_library: win32
memory: host=32, guest=32
romimage: file="C:\Program Files (x86)\Bochs-2.5.1/BIOS-bochs-latest"
vgaromimage: file="C:\Program Files (x86)\Bochs-2.5.1/VGABIOS-lgpl-latest"
boot: floppy
floppy_bootsig_check: disabled=0
floppya: type=1_44, 1_44="C:\Users\Wehmeyer\Documents\KW-OS\kernel.bin", status=inserted, write_protected=0
# no floppyb
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
ata2: enabled=0
ata3: enabled=0
parport1: enabled=1, file="parport.out"
parport2: enabled=0
com1: enabled=1, mode=null, dev=""
com2: enabled=0
com3: enabled=0
com4: enabled=0
usb_uhci: enabled=0
usb_ohci: enabled=0
usb_xhci: enabled=0
pci: enabled=0
vga: extension=vbe, update_freq=3
cpu: count=1, ips=10000000, model=bx_generic, reset_on_triple_fault=1, cpuid_limit_winnt=0, ignore_bad_msrs=1
cpuid: family=6, model=0x03, stepping=3, mmx=1, apic=xapic, sse=sse2, sse4a=0, sep=1, aes=0, xsave=0, xsaveopt=0, movbe=0, smep=0, x86_64=1, 1g_pages=0, pcid=0, fsgsbase=0, mwait=1, mwait_is_nop=0
cpuid: vendor_string="GenuineIntel"
cpuid: brand_string="              Intel(R) Pentium(R) 4 CPU        "

print_timestamps: enabled=0
port_e9_hack: enabled=0
private_colormap: enabled=0
clock: sync=none, time0=local
# no cmosimage
ne2k: enabled=0
pnic: enabled=0
sb16: enabled=0
es1370: enabled=0
# no loader
log: bochsout.txt
logprefix: %t%e%d
panic: action=ask
error: action=report
info: action=report
debug: action=ignore
keyboard_type: mf
keyboard_serial_delay: 250
keyboard_paste_delay: 100000
keyboard_mapping: enabled=0, map=
user_shortcut: keys=none
mouse: enabled=0, type=ps2, toggle=ctrl+mbutton

kernel.asm:
  mov ax, 0x07C0
  mov ds, ax
  mov es, ax

  mov si, welcome
  call print_string

loop:
  mov si, prompt
  call print_string

  mov di, buffer
  call get_string

  mov si, buffer
  cmp byte [si], 0
  je loop

  mov si, buffer
  mov di, cmd_help
  call strcmp
  jc .help

  mov si,badcommand
  call print_string
  jmp loop

.help:
  mov si, msg_help
  call print_string

  jmp loop

welcome db 'Herzlich Willkommen bei KW - OS!', 0x0D, 0x0A, 0
badcommand db 'Bad command entered.', 0x0D, 0x0A, 0
prompt db '>', 0
cmd_help db 'help', 0
msg_help db 'Commands: help', 0x0D, 0x0A, 0
buffer times 64 db 0

print_string:
  lodsb       

  or al, al
  jz .done 

  mov ah, 0x0E
  int 0x10   

  jmp print_string

.done:
  ret

get_string:
  xor cl, cl

.loop:
  mov ah, 0
  int 0x16 

  cmp al, 0x08   
  je .backspace   

  cmp al, 0x0D 
  je .done     

  cmp cl, 0x3F 
  je .loop     

  mov ah, 0x0E
  int 0x10     

  stosb 
  inc cl
  jmp .loop

.backspace:
  cmp cl, 0
  je .loop

  dec di
  mov byte [di], 0
  dec cl

  mov ah, 0x0E
  mov al, 0x08
  int 10h

  mov al, ' '
  int 10h

  mov al, 0x08
  int 10h

  jmp .loop

.done:
  mov al, 0
  stosb

  mov ah, 0x0E
  mov al, 0x0D
  int 0x10
  mov al, 0x0A
  int 0x10

  ret

strcmp:
.loop:
  mov al, [si]   
  mov bl, [di] 
  cmp al, bl   
  jne .notequal 

  cmp al, 0
  je .done   

  inc di   
  inc si   
  jmp .loop 

.notequal:
  clc 
  ret

.done:
  stc
  ret

  times 510-($-$$) db 0
  db 0x55
  db 0xAA


Ich hoffe mal das ihr helfen könnt.

Mit freundlichen grüßen,
K. Wehmeyer

Relbmessa

  • Beiträge: 73
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 17. April 2012, 09:58 »
Hallo Kev5454,
deine asm lässt sich mit realer Hardware von Floppy und auch USB-Stick booten. :evil:

Ich vermute mal dass der Fehler durch Bochs selbst verursacht wird.
Ich kenne mich mit Bochs aber nicht aus, da ich lieber mit realer Hardware arbeite.
Du solltest also auch die Einstellungen und Version von Bochs noch mal prüfen.

Gruss
Relbmessa 

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 17. April 2012, 11:20 »
Bei mir funktioniert es auch in Bochs. Bist du dir sicher, dass du den korrekten Pfad zum Kernel angegeben hast?
Dieser Text wird unter jedem Beitrag angezeigt.

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 17. April 2012, 11:46 »
Bei mir tut es auch, sowohl in bochs als auch in qemu.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

Kev5454

  • Beiträge: 3
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 17. April 2012, 13:32 »
Ich glaube das es an mein 64 bit liegt. Hmmm einfach mal 32 bit drauf ziehen. Danke für eure hilfe.

PS: Mal eine kleine Frage mit was für IDE's arbeitet ihr eigentlich. Also ich arbeite mit Notepad++.

Mit freundlichen grüßen,
K. Wehmeyer
« Letzte Änderung: 17. April 2012, 13:34 von Kev5454 »

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 17. April 2012, 14:34 »
Das halte ich für extrem unwahrscheinlich. Ich habe auch ein 64-Bit-System und es tut problemlos. Falls du Windows benutzt, könnte das natürlich theoretisch nochmal anders sein, aber unwahrscheinlich. Und ich schätze, dass es Jidder auch unter Windows probiert hat. Tut es bei dir denn in anderen Emulatoren, z.B. qemu?

Als Editor benutze ich vim. (Was sonst? ;))
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

micha

  • Beiträge: 141
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 17. April 2012, 14:38 »
Als editor? KWrite (kate)

Eigentlich von KDE. läuft bei mir auch unter GNOME :lol:

edit:
Aber ein IDE ist es eigentlich nicht
« Letzte Änderung: 17. April 2012, 14:42 von micha »

Kev5454

  • Beiträge: 3
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 17. April 2012, 15:00 »
@taljeth:
Also ich habe jetzt 32bit(Win7) drauf und jetzt funzt es ^^

Mit freundlichen grüßen,
K. Wehmeyer

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 17. April 2012, 15:08 »
Ich hab es übrigens unter 64-Bit Windows ausprobiert. Das Problem wird also wohl irgendwas anderes gewesen sein.
Dieser Text wird unter jedem Beitrag angezeigt.

 

Einloggen