Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - maumo

Seiten: 1 2 [3] 4 5 ... 9
41
Lowlevel-Coding / GUI: Fenster
« am: 10. May 2006, 21:07 »
also die irrlicht engine ist eine 3d engine. der guimanager ist die klasse, die die fensterverwaltet. theoretisch gesehen könntest du den in deinem system unterbringen, müsstest halt nur den videotreiber in der engine anpassen^^.
42
Lowlevel-Coding / GUI: Fenster
« am: 10. May 2006, 21:04 »
also ich hab im videotreiber eine funktion, die das sichtfeld einstellt, und dann nur die pixel, die gesehen werden können zeichnet. das fenster ist bei mir eine unterklasse von "gui_element" und enthält damit eine liste mit seinen unterobjekten (auch vom typ "gui_element"), die dann beim zeichnen des fensters abgerufen wird.

das ist aber alter code... ich schreibe grad an einer userlevel gui, die wird vermutlich ganz anders (?)

du könntest dir dazu doch einfach mal den guimanager in der irrlicht engine ansehen, oder andere bibliotheken, die sowas implementiert haben.

maumo
43
Das Wiki / Neuer Chefredakteur
« am: 03. May 2006, 15:35 »
ich würd das auch gerne machen, hab aber in den nächsten wochen (so etwa bis mitte juni) nich ganz sooo viel zeit; reichen sollte es aber trotzdem.

maumo
44
Lowlevel-Coding / VESA und die Probleme
« am: 29. April 2006, 12:35 »
bochs unterstützt vesa! musst halt das andere bios nehmen (nicht "elpin", sondern "lgpl-latest") bei bochs: 1024*768*32: 144h
solltest aber grub->vbeprobe machen und dann die nummern an deinem emu/pc aufschreiben; sind anscheinend nicht genormt

maumo
45
Lowlevel-Coding / farben und vesa
« am: 13. April 2006, 22:57 »
wie ist eigentllich die ordnung der farb bytes bei vesa? ist die in jedem modus gleich? RGB oder BGR? bin grad ziemlich verwirrt, bei mir funkelt der ganze bildschirm, weil ich die farben anscheinend falsch auslese -.-

maumo
46
Lowlevel-Coding / eine Datei - verschiedene Adressen
« am: 13. April 2006, 22:02 »
versuch mal:

section virtuelleaddresse : AT(physischeaddresse) { ... }

also z.B.:

.loader 0x100000 : AT (0x00100000)
{
  Loader: .;
  loader.o
  EndLoader: .;
}

.kernel 0xC0000000 : AT (0x00100000 + (Kernel - Loader))
{
  Kernel: .;
  kernel.o
  EndKernel: .;
}


oder so ähnlich. die labels sind dazu da, um die physische addresse vom kernel zu berechnen. das image beginnt hier bei 1mbyte.
habs jez ma so ausm kopf gemacht un nicht getestet, also bitte nicht köpfen, wenn was falsch sein sollte :D

maumo
47
tyndur / Eine kleine Liste des LOST Teams
« am: 09. April 2006, 16:01 »
ich bin auf jeden fall dabei, kann aber in den nächsten tagen mal etwas länger nix von mir geben... hab grad so einigen stress.
48
Lowlevel-Coding / Speicher Management
« am: 30. March 2006, 19:54 »
beim booten befindet sich der prozessor im sogenannten "real mode", der
kompatibel zu dem 8086 ist. darin ist die größe der register halt nur 16 bit und deshalb der maximal nutzbare speicher 1 MByte. ausserdem ist keine privileg prüfung vorhanden, sodass alle programme sich gegenseitig beeinflussen könnten. virtueller speicher ist auch nicht möglich (oder sagen wir paging ist nicht möglicht...)

der pmode ist mit 80286 eingeführt worden und wenn der prozessor sich in diesem modus befindet, rechnet er in 32 bit, kann maximal 4 gb arbeitspeicher ansprechen und hat viele (sehr viele) schutzmechanismen. ein einzelner befehl (opcode) hat dan auch die größe von 4byte.

wenn du von anfang an im pmode sein willst (der sprung hinein gelinkt NIEMANDEM auf anhieb) benutze doch GRUB, der kann verschiedene dateisysteme und dateiformate behandeln

maumo
49
tyndur / Ein letztes Mal noch...
« am: 30. March 2006, 14:41 »
Zitat
Der Chef bzw. Leiter von LOST ist doch jetzt T0ast3r, oder?


Ich würd sagen der chef ist mastermesh, solange er diesen titel nicht ausdrücklich an T0ast3r abgibt.

Ich find wir (wenn dann will ich auch mit machen!) können nicht einfach anfangen. Es MUSS erstmal das design FESTSTEHEN, d.h. einen Bootloader kann man erst schreiben, wenn die Dateisystemfrage, Kernelformat usw. geklärt sind.

Zitat
Zudem habe ich nun eine Menge erfahrung in Betriebssystementwicklung, mein OS ist nun ziemlich weit was die API betrifft (GUI fehlt...), weswegen ich auch Code von ToasterOS übernehmen kann.


Ich behaupte mal auch erfahrung zu haben. Aber ich dachte ihr wolltet ALLES neu schreiben, code wird also nicht übernommen!

Zitat
Wegen der Programmiersprache, ich beherrsche Assembler aber auch C++. (und andere)
Ich bin dafür, dass wir mit mehreren Programmiersprachen arbeiten.


Jeder der sich PRORAMMIERER nennen will sollte in der lage sein eine programmiersprache innerhalb kürzester zeit  (wenns nicht gerade asm ist...) zu lernen. Der Kernel sollte aber trotzdem in einer sprache geschrieben sein. Die UserProgramme können dann ja immer noch in ner anderen sein.
50
Lowlevel-Coding / BOCHS bootet mein os der PC aber nicht :-(
« am: 29. March 2006, 14:17 »
ich meinte sowas:

...

start:
mov ax, cs  ; segment register für die nachrichten usw setzen
mov ds, ax
mov es, ax
mov fs, ax
mov gs, ax
mov ax, 0x9000 ; stack für den int einrichten
mov ss, ax
mov sp, 0xff

...


POP cs ;es <--- aenderung

 zurück ändern!!! du willst ja das der kernel
 dahin geladen wird, also ES;
 CS gibt an wo du dich gerade befindest!

maumo
51
Lowlevel-Coding / BOCHS bootet mein os der PC aber nicht :-(
« am: 28. March 2006, 16:04 »
also vielleicht solltest du die segment register beim start auf das von cs setzen. und dann kannste das Print succmsg weglassen. ausserdem fehlt die bootsignatur, oder?

maumo
52
Offtopic / Zeichenbegrenzung in der shell
« am: 20. March 2006, 15:53 »
ich dacht jetzt du willst ld mit allen objekten aufrufen (=> bei großer kernelstruktur viele dateien!) aber diese zeile kann ich bei mir ausführen (win 2k)...

maumo
53
Offtopic / Zeichenbegrenzung in der shell
« am: 17. March 2006, 09:30 »
das problem hatte ich auch.
ich ruf dan halt den compiler mehrmals auf
bzw nutze für ld ein script.

maumo
54
OS-Design / anfänger hat fragen über die OS programmation...
« am: 14. February 2006, 20:01 »
Zitat

hat hier jemand den quellcode vun einem mini OS das nur FAT12 lesen und schreiben kann?
so mir einem Dir befehl alle inhalte auflisten und etc...
So ein mini DOS... aber eben dass es keine programme ausführen kann...


www.fdos.de
hab ich zum einstieg genommen, bevor ich auf c/c++ mit grub umgestiegen bin
55
Das Wiki / Ausgabe 9
« am: 31. January 2006, 19:57 »
ich könnt einiges zum thema kerneltypen, sprachewahl (vor und nachteile) und architekturunabhängigkeit schreiben

mo
56
Lowlevel-Coding / ps2 mouse
« am: 29. January 2006, 20:45 »
ok...
hab den fehler gefunden...

hab vergessen irg2 auf dem master pic zu aktivieren, wodurch der slave pic deaktiviert war...
57
Lowlevel-Coding / ps2 mouse
« am: 29. January 2006, 19:09 »
nee nee alles andere läuft ja.
ich krieg auch interrupts vom kbd, timer und fdc.
58
Lowlevel-Coding / ps2 mouse
« am: 29. January 2006, 11:33 »
hi

hab n problem mit nem ps2-maustreiber.
ich bekomm einfach keinen irq.

zur initialisierung mach ich folgendes:

1. maus interface aktivieren
2. streammodus aktivieren
3. irq12 einschalten
4. daten stream aktivieren
5. interface ausschalten

laut bochs ist auch alles richtig passiert:
00065989339d[KBD  ] keyboard: 8-bit write to 0064 = a7
00065989339d[KBD  ] set_aux_clock_enable(0)
00065989339d[KBD  ] aux device disabled
00065989409d[KBD  ] keyboard: 8-bit write to 0064 = a8
00065989409d[KBD  ] set_aux_clock_enable(1)
00065989409d[KBD  ] aux device enabled
00065989486d[KBD  ] keyboard: 8-bit write to 0064 = d4
00065989486d[KBD  ] io write 0x64: command = 0xD4 (write to mouse)
00065989569d[KBD  ] keyboard: 8-bit write to 0060 = ea
00065989569d[KBD  ] MOUSE: kbd_ctrl_to_mouse(eah)
00065989569d[KBD  ]   enable = 0
00065989569d[KBD  ]   allow_irq12 = 0
00065989569d[KBD  ]   aux_clock_enabled = 1
00065989569d[KBD  ] controller_enQ(fa) source=01
00065989624d[KBD  ] [mouse] read from 0x60 returns 0xfa
00065989720d[KBD  ] keyboard: 8-bit write to 0064 = 20
00065989720d[KBD  ] get keyboard command byte
00065989720d[KBD  ] controller_enQ(41) source=00
00065989775d[KBD  ] READ(60) = 41
00065989800d[KBD  ] service_keyboard(): no keys waiting
00065989860d[KBD  ] keyboard: 8-bit write to 0064 = 60
00065989860d[KBD  ] write command byte
00065989961d[KBD  ] keyboard: 8-bit write to 0060 = 43
00065989961d[KBD  ] set_aux_clock_enable(1)
00065989961d[KBD  ]  allow_irq12 set to 1
00065990038d[KBD  ] keyboard: 8-bit write to 0064 = d4
00065990038d[KBD  ] io write 0x64: command = 0xD4 (write to mouse)
00065990121d[KBD  ] keyboard: 8-bit write to 0060 = f4
00065990121d[KBD  ] MOUSE: kbd_ctrl_to_mouse(f4h)
00065990121d[KBD  ]   enable = 0
00065990121d[KBD  ]   allow_irq12 = 1
00065990121d[KBD  ]   aux_clock_enabled = 1
00065990121d[KBD  ] controller_enQ(fa) source=01
00065990121d[KBD  ] [mouse] Mouse enabled (stream mode)
00065990176d[KBD  ] [mouse] read from 0x60 returns 0xfa
00065990200d[KBD  ] service_keyboard(): no keys waiting
00065990272d[KBD  ] keyboard: 8-bit write to 0064 = ae
00065990272d[KBD  ] keyboard enabled
00080200000d[KBD  ] PS/2 mouse enabled                            


wenn ich dann die maus bewege (in bochs)
kommt sowas:
00084995000d[KBD  ] [mouse] Dx=2 Dy=2 Dz=0
00084995000d[KBD  ] mouse_enQ(08)
00084995000d[KBD  ] mouse_enQ(02)
00084995000d[KBD  ] mouse_enQ(02)
00084995000d[KBD  ] service_keyboard: key(from mouse) in internal buffer waiting
00085188000d[KBD  ] [mouse] Dx=11 Dy=2 Dz=0
00105367000d[KBD  ] [mouse] Dx=-1 Dy=1 Dz=0
00105505000d[KBD  ] [mouse] Dx=-1 Dy=1 Dz=0
00105737000d[KBD  ] [mouse] Dx=-1 Dy=1 Dz=0
00105877000d[KBD  ] [mouse] Dx=0 Dy=1 Dz=0
00106102000d[KBD  ] [mouse] Dx=-1 Dy=1 Dz=0
00106269000d[KBD  ] [mouse] Dx=-1 Dy=1 Dz=0
[...]
00106284000d[KBD  ] gen_scancode(): BX_KEY_CTRL_L pressed
00106284000d[KBD  ] gen_scancode(): writing translated 1d
00106284000d[KBD  ] kbd_enQ(0x1d)
00106284000d[KBD  ] kbd_enQ: putting scancode 0x1d in internal buffer
00107499000d[KBD  ] [mouse] Dx=-1 Dy=0 Dz=0
00107882000d[KBD  ] mouse_enQ(09)
00107882000d[KBD  ] mouse_enQ(a4)
00107882000d[KBD  ] mouse_enQ(3f)
00108386000d[KBD  ] [mouse] Dx=1 Dy=0 Dz=0
00108585295d[KBD  ] mouse_enQ(09)
00108585295d[KBD  ] mouse_enQ(01)
00108585295d[KBD  ] mouse_enQ(00)
00108585295d[KBD  ] PS/2 mouse disabled
00109345532i[WGUI ] &&&missing mouse state change                        


gibts irgendwas was ich nicht beachtet hab?
muss ich noch irgendwelche dinge aktivieren/deaktivieren

thx maumo
59
Lowlevel-Coding / c kernel / richtige parameterübergabe?
« am: 19. January 2006, 17:49 »
Zitat
Also ich kenne mich mit C jetzt nicht so aus. Aber wenn du Werte auf den Stack schreibst z.B. so: push ax, dann wird der Wert von ax nach ss:sp geschrieben und sp um zwei bzw. vier subtrahiert.

also zeigt sp jetzt auf die addresse weiter unten, als die des wertes. um an diesen ran zu kommen musst du also addieren
60
Lowlevel-Coding / c kernel / richtige parameterübergabe?
« am: 19. January 2006, 17:43 »
adden ist doch richtig, die parameter sind ja weiter oben, oder?
Seiten: 1 2 [3] 4 5 ... 9

Einloggen