Wie kann ich einen Bildschirm leeren in C++



  • sebastianfox, was verstehst du genau unter OS? Ich fürchte, die Vorstellungen gehen hier ein wenig auseinander.



  • Ich habe dir die Antwort schon genannt.

    Da du dein eigenes OS schreibst, kannst du keine Bibliotheken nutzen. Nicht einmal die C++ oder C Standardbibliothken.

    Aber ich wiederhole die Lösung noch einmal für dich:
    Du musst den Videospeicher mit Leerzeichen überschreiben.

    Außerdem war das kein Vorurteil, sondern Fakt.



  • Natürlich, du musst deine eigenen Bibliotheken schreiben.

    Aber es ist doch echt nicht kompliziert, überschreibe einfach den gesamten Videopuffer mit Leerzeichen, Kinderkram.

    char* vPuffer = ADDRESSE_DEINES_VIDEOPUFFERS;
    for(int i = 0; i < 80 * 25; ++i)
        vPuffer[i] = ' ';
    


  • Janjan schrieb:

    Ich habe dir die Antwort schon genannt.

    Da du dein eigenes OS schreibst, kannst du keine Bibliotheken nutzen. Nicht einmal die C++ oder C Standardbibliothken.

    Aber ich wiederhole die Lösung noch einmal für dich:
    Du musst den Videospeicher mit Leerzeichen überschreiben.

    Außerdem war das kein Vorurteil, sondern Fakt.

    Yeah.........Aber auf welcher Sprache soll ich dann mein OS schreiben? QBASIC? 😃 😃 😃 😃 😃



  • Was heißt hier kein "großes" OS? Ein OS entwickelt man nicht einfach so. Auch ein vergleichsweise kleines OS zu entwickeln ist ein riesen Projekt. Hier gibt es Informationen zur OS-Entwicklung:

    http://henkessoft.de/OS_Dev/OS_Dev1.htm

    Schau dir mal an, wie dort Ausgaben, etc. gemacht werden. Nicht mit befehlen wie z.B. cout oder print, sondern durch direktes schreiben in den Videospeicher. Nicht für ungut, aber ich glaube, dass du erst einmal die Grundlagen von C++ und auch (ein wenig) Assembler, bevor du dich an die Entwicklung eines OS herantastest. Auch solltest du dir ansehen, wie der Computer überhaupt funktioniert. Hier gibt es noch in tolles Simulationsprogramm:

    http://gymnasium-kreuztal.dyndns.org/pub/bscw.cgi/108059

    MfG, Jochen



  • Wäre eine Möglichkeit, aber da musst du die Sprache auch zuerst können. Dort wirst du ebenfalls die Standardbefehle nicht nutzen können.



  • Jochen S. schrieb:

    Was heißt hier kein "großes" OS? Ein OS entwickelt man nicht einfach so. Auch ein vergleichsweise kleines OS zu entwickeln ist ein riesen Projekt. Hier gibt es Informationen zur OS-Entwicklung:

    http://henkessoft.de/OS_Dev/OS_Dev1.htm

    Schau dir mal an, wie dort Ausgaben, etc. gemacht werden. Nicht mit befehlen wie z.B. cout oder print, sondern durch direktes schreiben in den Videospeicher. Nicht für ungut, aber ich glaube, dass du erst einmal die Grundlagen von C++ und auch (ein wenig) Assembler, bevor du dich an die Entwicklung eines OS herantastest. Auch solltest du dir ansehen, wie der Computer überhaupt funktioniert. Hier gibt es noch in tolles Simulationsprogramm:

    http://gymnasium-kreuztal.dyndns.org/pub/bscw.cgi/108059

    MfG, Jochen

    Also, ich kann die Grundlagen von C++ aber ich verstehe von Assembler NUR Bahnhof!



  • Jede Sprache, die nativ kompiliert und zu der du Objectfiles linken kannst, ist möglich.



  • Icematix schrieb:

    Jede Sprache, die nativ kompiliert und zu der du Objectfiles linken kannst, ist möglich.

    Ja, da haste Recht! Bill Gates hat ja auch Biblotheken Benutzt und was kam raus:
    Ein OS! Und es lief noch! 😮 😮 😮 😮 😮 😮



  • sebastianfox schrieb:

    Jochen S. schrieb:

    Was heißt hier kein "großes" OS? Ein OS entwickelt man nicht einfach so. Auch ein vergleichsweise kleines OS zu entwickeln ist ein riesen Projekt. Hier gibt es Informationen zur OS-Entwicklung:

    http://henkessoft.de/OS_Dev/OS_Dev1.htm

    Schau dir mal an, wie dort Ausgaben, etc. gemacht werden. Nicht mit befehlen wie z.B. cout oder print, sondern durch direktes schreiben in den Videospeicher. Nicht für ungut, aber ich glaube, dass du erst einmal die Grundlagen von C++ und auch (ein wenig) Assembler, bevor du dich an die Entwicklung eines OS herantastest. Auch solltest du dir ansehen, wie der Computer überhaupt funktioniert. Hier gibt es noch in tolles Simulationsprogramm:

    http://gymnasium-kreuztal.dyndns.org/pub/bscw.cgi/108059

    MfG, Jochen

    Also, ich kann die Grundlagen von C++ aber ich verstehe von Assembler NUR Bahnhof!

    Dann hast du dir schlichtweg das falsche Projekt ausgesucht. Eigne dir erstmal das nötige Grundwissen an, welches du ganz offensichtlich nicht hast.

    Übrigens: Um den Bildschirm zu leeren brauchst du nicht einmal Assembler.



  • Ich glaube, dass wir unter dem Begriff "Grundkenntnisse" ganz verschiedene Dinge meinen. Mein Buch, dass die Sprache C++ lehrt, ist rund 1200 Seiten dick. Dass du keine ausreichenden Kenntnisse besitzt, zeigen die Fragen, welche du in diesem Forum stellst.



  • sebastianfox schrieb:

    Bill Gates hat ja auch Biblotheken Benutzt und was kam raus:
    Ein OS! Und es lief noch! 😮 😮 😮 😮 😮 😮

    Edit: Diese "Bibliotheken" machen aber nichts plattformspezifisches.

    Nicht ganz. Das erste Betriebssystem für den IBM-PC war nicht von ihm, er hast es nur gekauft. Der Quelltext von QDOS bestand aus rund 4000 Zeilen Assemblercode.



  • Jochen S. schrieb:

    sebastianfox schrieb:

    Bill Gates hat ja auch Biblotheken Benutzt und was kam raus:
    Ein OS! Und es lief noch! 😮 😮 😮 😮 😮 😮

    Nicht ganz. Das erste Betriebssystem für den IBM-PC war nicht von ihm, er hast es nur gekauft. Der Quelltext von QDOS bestand aus rund 4000 Zeilen Assemblercode.

    Ich meine Windows 1. Es ist auf C geshcrieben.



  • Ja, C an sich ist sozusagen plattformunabhängig, solange man keine Plattformspezifischen Dinge macht. Wie man den Videospeicher in C/C++ beschreibt/leert wurde hier ja schon beschrieben.


  • Mod

    Windows 1 war übrigens nur eine Oberfläche für DOS, also das was ich dir im Post hier drüber vorgeschlagen habe, nur grafisch etwas ausgefeilter. Windows 1 (und alles bis inklusive Windows 3*) konnte man nur benutzen, wenn im Hintergrund DOS als Betriebssytem lief.

    *: Spötter sagen, dass dies sogar bis Windows ME der Fall war


  • Mod

    Projektvorschlag: Entwickele kein eigenes Betriebssystem, sondern bloß eine Oberfläche für die Konsole, sprich: Deine eigene Konsole die in der Konsole läuft. Das ist immer noch schwer genug, aber für deinen Kenntnisstand nicht völlig unmöglich. Und du kannst guten Gewissens alles benutzen, das in deinem Buch steht.

    P.S.: Bill Gates hat in seinem ersten DOS garantiert keine Bibliotheken benutzt, sondern das so ähnlich wie in dem Link von Jochen S. alles selbst programmiert. Soweit ich weiß, in Assembler, aber die Wahl der Sprache ist für Betriebssysteme ziemlich egal, außer dass sie nativ compilierbar sein müssen. In der Praxis sind die gängigen Betriebssysteme in C geschrieben, aber es spricht nichts prinzipielles gegen C++ (obwohl das Betriebssystementwickler anders sehen 😉 )



  • SeppJ schrieb:

    Projektvorschlag: Entwickele kein eigenes Betriebssystem, sondern bloß eine Oberfläche für die Konsole, sprich: Deine eigene Konsole die in der Konsole läuft. Das ist immer noch schwer genug, aber für deinen Kenntnisstand nicht völlig unmöglich. Und du kannst guten Gewissens alles benutzen, das in deinem Buch steht.

    P.S.: Bill Gates hat in seinem ersten DOS garantiert keine Bibliotheken benutzt, sondern das so ähnlich wie in dem Link von Jochen S. alles selbst programmiert. Soweit ich weiß, in Assembler, aber die Wahl der Sprache ist für Betriebssysteme ziemlich egal, außer dass sie nativ compilierbar sein müssen. In der Praxis sind die gängigen Betriebssysteme in C geschrieben, aber es spricht nichts prinzipielles gegen C++ (obwohl das Betriebssystementwickler anders sehen 😉 )

    Ja, aber Windows CE ist auf C++ gschrieben!
    http://en.wikipedia.org/wiki/Windows_CE



  • SeppJ schrieb:

    Das ist immer noch schwer genug, aber für deinen Kenntnisstand nicht völlig unmöglich.

    So wie er sich hier verhält ist selbst ein fehlerfreies C++ "Hello World"-Programm für ihn unmöglich.



  • Janjan schrieb:

    SeppJ schrieb:

    Das ist immer noch schwer genug, aber für deinen Kenntnisstand nicht völlig unmöglich.

    So wie er sich hier verhält ist selbst ein fehlerfreies C++ "Hello World"-Programm für ihn unmöglich.

    DU KLEINER MIESER................... 😡 😡 😡 😡 😡 😡 😡 😡 100 Pro kann ich ein Hello World Programm fehlerfrei schreiben!



  • Ich habs!:

    Ich ändere einfach etwas in der Headerdatei cstdlib! So, dass irgendwie der Computer cls irgendwie akzeptiert(mit Computer meine ich nicht Windows)


Anmelden zum Antworten