Ein kleines Demo-16Bit-OS
-
Es muss aber an dem myOS liegen, weil mit der selben Konfiguration konnte ich z.B. eben ein auf Floppyformat abgespecktes FreeBSD laden.
-
Vielelichtauf irgendwas implementation-dependent nicht beachtet. So wie dass nicht immer an 0:7c00 gesprungen wird, sondern manchmal auch 07c0:0 (genau das hat mich mit Bochs mal einige Zeit gekostet *G*)
-
So wie dass nicht immer an 0:7c00 gesprungen wird, sondern manchmal auch 07c0:0 (genau das hat mich mit Bochs mal einige Zeit gekostet *G*)
ist doch das gleiche... 0h:7c00h = 07c00h = 07c0h:0 = 07c00h ich sehe da kein Problem
Außerdem hat Bochs ja noch diese schöne Menueconfig!
MFG
LordHoto
-
CrazyLinux schrieb:
ist doch das gleiche... 0h:7c00h = 07c00h = 07c0h:0 = 07c00h ich sehe da kein Problem
Außerdem hat Bochs ja noch diese schöne Menueconfig!
Jein, wenn man Adressen im Bootsektor benutzt (für Strings z.B.) ists garnicht mehr so das gleiche, wenn man real bei 0:0x7c00 ist, aber davon ausgeht, dass der Bootsektor bei Offset 0 anfängt
-
Was würde das für den Code bedeuten? Wie müsste ich die Zeile ändern?
mov ax, 0x07C0 ; init stack
-
TriPhoenix schrieb:
CrazyLinux schrieb:
ist doch das gleiche... 0h:7c00h = 07c00h = 07c0h:0 = 07c00h ich sehe da kein Problem
Außerdem hat Bochs ja noch diese schöne Menueconfig!
Jein, wenn man Adressen im Bootsektor benutzt (für Strings z.B.) ists garnicht mehr so das gleiche, wenn man real bei 0:0x7c00 ist, aber davon ausgeht, dass der Bootsektor bei Offset 0 anfängt
jmp 0x7c00:init <-- so kann man das auch lösen
MFG
LordHoto
-
Auf die einfachste Loesung scheinen die OS-Bastler irgendwie immer als letztes zu kommen genauso wie sich krampfhaft dieses wiederliche cli/sti beim initialisieren des Stacks haelt.
Setzt doch die Segmentregister nicht nach cs, sondern schiebt einen fixen Wert rein.
-
Komisch,
hab den quellcode neu assmebbliert.kommen immer fehler.
warum?
-
Hat sich erledigt!
-
hi!
hast du schonmal probiert mit C weiterzucoden?kannst dann TurboC verwenden, is kostenlos, ich selber arbeite grad an meinem 32bit os.
-
Also von weiterarbeiten kann keine rede sein, da ich den kernel komplett neuschreiben dürfte, um ihn 32bit arbeitend zu bekommen.
Aber nur mal so ne frage: Wieso TurboC? Ich habe Version 3.1 und der compiliert zu 16bit. Ich habe zwar schon versucht mit dem weiterzumachen, aber irgendwie definiert der das COFF-Format anders als der Flatassembler: Ich kann nicht linken.