Autor Thema: Blöde Frage zum CommOS  (Gelesen 23325 mal)

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #20 am: 14. April 2005, 15:26 »
Versuch mal coff statt aout also:

nasm -f coff -o kernel32.obj kernel32.asm

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #21 am: 14. April 2005, 15:46 »
und versuchs mit "main" bzw. "_main" statt "__main"

T-Head

  • Beiträge: 157
    • Profil anzeigen
    • http://www.t-head.de.vu/
Gespeichert
« Antwort #22 am: 14. April 2005, 15:51 »
Hi,

danke! Es geht! der Code von kernel32.asm muss so lauten:


bits 32
%include "macros.asm"
global start
start:
mov ax,0x10
mov ss,ax
mov ds,ax
mov fs,ax
mov gs,ax
mov es,ax
mov eax,0x9FFFF
mov esp,eax
mov ebp,eax

finit         ;prepare the FPU so it can be used without problems

activateA20:
.1:
in al, 0x64
test al, 00000010b
jnz .1
mov al, 0xD0
out 0x64, al
.2:
in al, 0x64
test al, 00000001b
jz .2
in al, 0x60
or al, 00000010b
push eax
.3:
in al, 0x64
test al, 00000010b
jnz .3
mov al, 0xD1
out 0x64, al
.4:
in al, 0x64
test al, 00000010b
jnz .4
pop eax
out 0x60, al

remappic:      ;IRQ's start with Int 0x20, directly after the exceptions
mov al,0x11  
out 0x20,al    
out 0xa0,al
mov al,0x20      
out 0x21,al
mov al,0x28    
out 0xa1,al
mov al,0x04
out 0x21,al
mov al,0x02  
out 0xa1,al
mov al,0x01
out 0x21,al
out 0xa1,al

extern main
call main

jmp $

stultus

  • Beiträge: 486
    • Profil anzeigen
Gespeichert
« Antwort #23 am: 15. April 2005, 19:04 »
jetz das ganze nochmal schritt für schritt-anleitung, ich bekomms nämlich auch nich hin -.-
MSN: planetconquestdm@hotmail.de
ICQ: 190-084-185

... Wayne?

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #24 am: 16. April 2005, 11:09 »
Am besten ins Wiki schreiben. Nasm kriegt bei mir nen Fehler wenn ich den Bootloader assemblieren will. 5x oder so hab ich Ivalid Operand Size.

T-Head

  • Beiträge: 157
    • Profil anzeigen
    • http://www.t-head.de.vu/
Gespeichert
« Antwort #25 am: 16. April 2005, 11:20 »
Hi,

warum hast du was am Bootloader verändert???
Der war doch gut so wie er  is!  :wink:

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #26 am: 16. April 2005, 11:38 »
Eigentlich nicht. Aber es interessiert mich trotzdem wie man den ändern könnte.

T-Head

  • Beiträge: 157
    • Profil anzeigen
    • http://www.t-head.de.vu/
Gespeichert
« Antwort #27 am: 16. April 2005, 18:58 »
Hi,

also bei mir gehts! Ich habe den von: http://nasm.sourceforge.net/wakka.php?wakka=HomePage

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #28 am: 16. April 2005, 19:03 »
Ich glaub ich hab meinen von osdever.net. Wie kompilierst du das? Ich mach das so: nasmw -f bin -o boot.bin boot.asm
Und dann sagt er mir:
D:\nasm\boot.asm:73: operation size not specified
D:\nasm\boot.asm:74: operation size not specified
D:\nasm\boot.asm:348: operation size not specified
D:\nasm\boot.asm:468: operation size not specified

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #29 am: 16. April 2005, 19:18 »
dann gib einfach die operand size an:

push word blabla
Dieser Text wird unter jedem Beitrag angezeigt.

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #30 am: 16. April 2005, 19:23 »
Jetzt gehts. Hät ich auch allein drauf kommen können  :lol: Egal. Ist es eigentlich sinnvoll einen 19kB Bootloader zu haben. Bei Fat scheints ja zu gehen. Aber hätte man bei ext2 ganauso viel Platz?

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #31 am: 16. April 2005, 19:49 »
ich denke schon. wenn ext2 das nicht so wie FAT direkt am anfang unterstützt könnte man z.b. die stage2 (also alles ab zeile 52) auch aus dem dateisystem nachladen. so macht das z.b. GRUB.

oder man verschiebt die ext2-partition mit ein wenig nach hinten und tut den bootloader in eine eigene partition ... (auf disketten geht das natürlich nicht so)

und wenn man das nach ext2 porten will, müsste man den dateisystem abhängigen teil von dem bootloader komplett neuschreiben. ich denke mal, wenn keiner da ordentlich druck macht, wird es eh nicht so schnell einen ext2-port geben ...
Dieser Text wird unter jedem Beitrag angezeigt.

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #32 am: 17. April 2005, 12:27 »
Macht vielleicht Sinn zwei Dateien zu laden, also den kernel und den stage2 Teil. Dann kann man das beliebig erweitern und verändern. Egal, der Loader ist so gut wie er ist  :wink: Aber noch eine Frage: Wird vom Loader auch Booten von Festplatte unterstützt oder nur Diskette?

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #33 am: 17. April 2005, 17:33 »
Der Loader ist FAT12. Also wenn du deine Festplatte mit FAT12 formatierst würde der sicherlich auch damit umgehen können. Wenn ich den FAT12/16/32 also für alle drei kompatibel machen müsste, würde das schon etwas komplizierter für mich werden. Dann noch ext dazu wird noch komplizierter.
Naja egal also wenn FAT12 dann auch Festplatte, aber gedacht eigentlich bisher nur für FAT12+Diskette.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

T-Head

  • Beiträge: 157
    • Profil anzeigen
    • http://www.t-head.de.vu/
Gespeichert
« Antwort #34 am: 17. April 2005, 18:11 »
Hi,

ich denke auch, dass es reicht, das OS für andere Dateisysteme kompatibel zu machen, wenn es etwas weiter fortgeschritten ist!  :wink:

DarkThing

  • Beiträge: 652
    • Profil anzeigen
Gespeichert
« Antwort #35 am: 17. April 2005, 18:57 »
Aber es ist immer gut wenn man sowas im Vorraus bedenkt. Aber Diskette sollte erstmal wirklich reichen. Also ich denke der Bootloader ist jetzt fertig. Die Frage ist jetzt wie es weitergeht.

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #36 am: 17. April 2005, 19:18 »
Um das nochmal klar zumachen. Der Bootloader ist nicht ursprünglich für des CommOS geschrieben. Ich habe ihne nur dafür bereitgestellt. Mein OS nutzt den auch und wer den gerne in seinem eigenen Verwenden will kann dies tun.
Also ist er deswegen lange nicht fertig. Nur da mein OS im Moment keine weiteren Features vom Bootloader braucht (ausser vielleicht Erkennung ob Pentium+ da mein OS mindestens nen Pentium braucht) werde ich nix dazubasteln. Ich orientiere den Loader an meinem OS nicht am CommOS, nicht, dass das jemand falsch verstanden hat.^^
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

T-Head

  • Beiträge: 157
    • Profil anzeigen
    • http://www.t-head.de.vu/
Gespeichert
« Antwort #37 am: 18. April 2005, 00:06 »
Hi,

das ist ja auch eigentlich egal, welcher Loader benutzt wird! Wir hätten genausogut auch irgend so ein anderes vertigteil nehmen können!  :twisted:

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #38 am: 18. April 2005, 16:43 »
machts doch^^ mir schnuppe^^
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

T-Head

  • Beiträge: 157
    • Profil anzeigen
    • http://www.t-head.de.vu/
Gespeichert
« Antwort #39 am: 18. April 2005, 22:02 »
Hi,

ich hab ja nich gesagt, dass deiner Schlecht ist!
Ich benutz ihn auf jeden Fall!  :P

 

Einloggen