Autor Thema: Was macht eigentlich (m)ein kernel?  (Gelesen 22351 mal)

NoeTrimm

  • Beiträge: 36
    • Profil anzeigen
Gespeichert
« Antwort #20 am: 19. April 2008, 16:18 »
So ich muss jetzt mal was loswerden:

Ihr hattet recht. mit GRUB ist alles soviel schöner *freu*

also message kommt. Das heißt jetzt spiele ich erstmal ein wenig mit dem videospeicher um mich an die adressierung zu gewöhnen.

Auf jeden fall bootet mein möchtegern OS brav vonner cd...*freu*

GRUB is toll  :-D

thanks

@taljeth: hä? doch!

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #21 am: 19. April 2008, 16:24 »
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

NoeTrimm

  • Beiträge: 36
    • Profil anzeigen
Gespeichert
« Antwort #22 am: 19. April 2008, 16:26 »
Ey ihr seid so ...arrr

wer hats geändert? hä? sagt schon.

das is sowas von...arrr. egal. wenigstens weiß ich nun was mein kernel macht:

ne message ausgeben *lol*

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #23 am: 19. April 2008, 16:29 »
wer hats geändert? hä? sagt schon.
Steht doch da du blindes Huhn :-D taljeth
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

NoeTrimm

  • Beiträge: 36
    • Profil anzeigen
Gespeichert
« Antwort #24 am: 19. April 2008, 16:33 »
Arrrrrrrrr...

ach mensch hast ja recht. Aber des war auch eher ironisch gemeint, weil ich schon des lesens mächtig bin  :-P

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #25 am: 19. April 2008, 16:41 »
Es hört sich übrigens so an, als würdest du immer einen richtigen Rechner zum Testen nehmen. Dir ist schon bewußt, daß es Emulatoren (qemu, bochs) gibt, mit denen das viel bequemer geht?
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

NoeTrimm

  • Beiträge: 36
    • Profil anzeigen
Gespeichert
« Antwort #26 am: 19. April 2008, 16:59 »
ich weiß das es diese gibt. jedoch hab ich nen alten PC rumstehen und nen vga splitter. daher is diese testweise auch nciht viel anstrengender als mit bochs oder so on

Außerdem gefällt mir der gedanke besser es auf einem rechner laufen zu sehen auf dem nix ist außer ne leere hdd, 64 MB RAM und nen süßer 800 MHz Inter Celeron

bluecode

  • Beiträge: 1 391
    • Profil anzeigen
    • lightOS
Gespeichert
« Antwort #27 am: 19. April 2008, 17:02 »
Außerdem gefällt mir der gedanke besser es auf einem rechner laufen zu sehen auf dem nix ist außer ne leere hdd, 64 MB RAM und nen süßer 800 MHz Inter Celeron
Zum Debuggen (also wenn es mal nicht funktioniert) taugt ein Emulator weit besser.
lightOS
"Überlegen sie mal 'nen Augenblick, dann lösen sich die ganzen Widersprüche auf. Die Wut wird noch größer, aber die intellektuelle Verwirrung lässt nach.", Georg Schramm

NoeTrimm

  • Beiträge: 36
    • Profil anzeigen
Gespeichert
« Antwort #28 am: 19. April 2008, 18:06 »
ich weiß. werde mir die auch noch einrichten, aber erstmal mach ichs so...

NoeTrimm

  • Beiträge: 36
    • Profil anzeigen
Gespeichert
« Antwort #29 am: 21. April 2008, 08:29 »
Moinsen alles zusammen.

So ich hab nunmal ein wenig rumgespielt. Vorallem mit dem Videospeicher, da ich ja mehr auch noch nicht kann  :-D

Als nächstes kommt sicher das erstellen der gdt, idt, usw. ?!?

Aber eine kleine Anmerkung habe ich noch zu TeeJays Videospeicherfunktionen und da dazu kein Thread besteht in Tutorialdiskussionen, vermerke ich das mal hier:

Seine Funktion TextOut() hat keinen Fehler im eigentlichen Sinne, jedoch wird bei einem '\n' nicht an den Anfang der nächsten Zeile gesprungen, sondern an die nächste spalte der nächsten Reihe.
Und da mein Verständnis von einem Zeilenbruch, der Sprung an den Anfang in Neue ist, hab ich das einfach mal geändert:

else if(*pText == '\n')
{
CURSORPOS Posi;
Posi = GetCursorPos();
Posi.iColumn = 0;
Posi.iRow += 1;
SetCursorPos(Posi.iRow, Posi.iColumn);
// iVideo_ptr = (((iVideo_ptr / 160) + 1) * 160) + (iVideo_ptr % 160);
}

Das kann man sicher auch noch eleganter lösen indem man die Zeile von Teejay einfach anpasst, aber auf die schnelle gefiel mir das am besten.

greetz Kanasaru

Edit: Jupp. Na klar gehts einfacher.

else if(*pText == '\n')
{
// Alte Zeile
// iVideo_ptr = (((iVideo_ptr / 160) + 1) * 160) + (iVideo_ptr % 160);
// Neue Zeile
iVideo_ptr = (((iVideo_ptr / 160) + 1) * 160);
}

Man betrachte die Einfachheit. *lol*
« Letzte Änderung: 21. April 2008, 09:21 von Kanasaru »

jgraef

  • Beiträge: 67
    • Profil anzeigen
Gespeichert
« Antwort #30 am: 21. April 2008, 20:01 »
Wie \n interpretiert wird ist etwas unterschiedliche. Unter Windows wird damit nur in die nächste Zeile gegangen und man braucht noch ein \r um den Cursor am Anfang der Zeile zu haben. Unter Linux reicht ein \n.

NoeTrimm

  • Beiträge: 36
    • Profil anzeigen
Gespeichert
« Antwort #31 am: 21. April 2008, 21:28 »
*sing* I love Linux *lol*

stimmt. Hast schon recht. Ist sicher geschmackssache. Aber bei einem 80 zeichen breiten bildschirm will man sicher jedes zeichen nutzen und von daher dachte ich passe ich das mal an. Habe generell auch die fkt erweitert, damit sie darauf reagiert wenn das seitenende erreicht wird.
Und dabei hab ich, die von dir erwähnten 'geschmäcker' mit eingeplant. denn wenn man will das die fkt alle vorher geschriebenen zeichen nach oben schieben soll (sprich eine zeile scrollen) gibt man einfach 1 an und wenn nicht, dann 0 und die seite wird beim erreichen des letzten zeichens einfach per ClearScreen() gelöscht.

Aber '\n' nur als Umbruch, um das nochmal zu sagen, nutzen find ich Platzverschwendung. Und bei 2000 Zeichen will ich jedes optimal nutzen.


greetz

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #32 am: 22. April 2008, 09:16 »
Wenn du einen Wagenrücklauf willst, nimmst du halt noch ein \r dazu. Lang nichts mehr mit Win/DOS zu tun gehabt? ;)
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

NoeTrimm

  • Beiträge: 36
    • Profil anzeigen
Gespeichert
« Antwort #33 am: 22. April 2008, 10:00 »
Wenn du einen Wagenrücklauf willst, nimmst du halt noch ein \r dazu. Lang nichts mehr mit Win/DOS zu tun gehabt? ;)
*push [ernsthaftigkeit]*
Windows? was isn das? Hab schon mal davon gehört glaub ich. isn Programm, oder? Soll aber ziemlich fehleranfällig sein und nicht besonders Freundlich mit Kompatiblität...Naja...
*pop [ernsthaftigkeit]*

Sicher könnt ich einfach ein \r dazu nehmen, aber dann hab ich ja mehr tipparbeit. und dem Anwendungsschreiber (falls ich sowas irgendwann mal hab) kann man ja mitteilen wies geht  :wink:

jgraef

  • Beiträge: 67
    • Profil anzeigen
Gespeichert
« Antwort #34 am: 22. April 2008, 15:11 »
Wieso denkst du ein \r wäre Platzverschwendung? Steuerzeichen wie \r werden doch eh nicht auf den Bildschirm geschrieben. Von daher verbrauchen sie auch keinen Platz auf dem Bildschirm.

NoeTrimm

  • Beiträge: 36
    • Profil anzeigen
Gespeichert
« Antwort #35 am: 22. April 2008, 16:01 »
2000 Zeichen auf dem bildschirm.
bei windows '\r' wird in die nächste zeile gesprungen und in die näöchste spalte. die spalten davor gehen verloren

ergo

Platzverschwendung

jgraef

  • Beiträge: 67
    • Profil anzeigen
Gespeichert
« Antwort #36 am: 22. April 2008, 21:25 »
2000 Zeichen auf dem bildschirm.
bei windows '\r' wird in die nächste zeile gesprungen und in die näöchste spalte. die spalten davor gehen verloren

ergo

Platzverschwendung

Falsch...

Bei '\r' unter Windows wird _nur_ der Cursor auf die 1. Position in der Zeile gesetzt. Mit '\n' wird der Cursor in die nächste Zeile gesetzt.

NoeTrimm

  • Beiträge: 36
    • Profil anzeigen
Gespeichert
« Antwort #37 am: 22. April 2008, 23:30 »
ja mensch ich meinte auch '\n'. wenn du richtig gelesen hättest im obrigen post (nicht mein letzter, da steht es flasch) hättest du das gesehen. es ging um die definition von /n. \r war niemals thema...

 

Einloggen