Wie kann ich einen Bildschirm leeren in C++
-
GRRRR....
ICH SAGTE KEINE VORURTEILE!!!!! Es soll auch kein großes OS werden! Aber, geht die Anwendung clrscr() in C++ durch irgendeine spezielle Biblothek?
-
sebastianfox schrieb:
Nee, ich meine, dass(MACHE MIR BLOß KEINE VORURTEILE!!!!
) ich mein eigenes OS ja machen will, da aber es im Computer starten soll, die system befehle nicht funktionieren! Deshalb brauche ich eine andere Art!Dann musst du die Damen(?) und Herren in diesem Forum fragen, aber ich fürchte die Entwicklung eines eigenen OS übersteigt deinen Kenntnisstand um viele Jahre. Dies soll dich jetzt nicht runtermachen, das geht nun einmal ganz klar aus deinen Fragen hervor. Die ist anscheinend noch nicht einmal richtig bewusst, was ein OS eigentlich macht und wie deine Programme mit dem OS das du jetzt benutzt zusammenarbeiten. Solche Sachen wie das _mkdir aus deinem anderen Thread ist nämlich keine systemunabhängige Methode. DAS LÄUFT NUR UNTER WINDOWS! Wenn du ein eigenes System entwickeln willst, musst du an einer viel viel grundlegenderen Stelle ansetzen. Selbst viele der Dinge aus der C++-Standardbibliothek kannst du dann nicht benutzen, da du erstmal eine neue Standardbibliothek für dein System programmieren musst.
-
SeppJ schrieb:
sebastianfox schrieb:
Nee, ich meine, dass(MACHE MIR BLOß KEINE VORURTEILE!!!!
) ich mein eigenes OS ja machen will, da aber es im Computer starten soll, die system befehle nicht funktionieren! Deshalb brauche ich eine andere Art!Dann musst du die Damen(?) und Herren in diesem Forum fragen, aber ich fürchte die Entwicklung eines eigenen OS übersteigt deinen Kenntnisstand um viele Jahre. Dies soll dich jetzt nicht runtermachen, das geht nun einmal ganz klar aus deinen Fragen hervor. Die ist anscheinend noch nicht einmal richtig bewusst, was ein OS eigentlich macht und wie deine Programme mit dem OS das du jetzt benutzt zusammenarbeiten. Solche Sachen wie das _mkdir aus deinem anderen Thread ist nämlich keine systemunabhängige Methode. DAS LÄUFT NUR UNTER WINDOWS! Wenn du ein eigenes System entwickeln willst, musst du an einer viel viel grundlegenderen Stelle ansetzen. Selbst viele der Dinge aus der C++-Standardbibliothek kannst du dann nicht benutzen, da du erstmal eine neue Standardbibliothek für dein System programmieren musst.
Eine Standartbiblothek....Meinst du etwa so was, dass ich meine eigene Headerdatei programmiere und sie dann benutze? Aber wie geht das? Ich glaube, dass ich für die Biblothek mehr Zeit brauche als für mein OS...(P.S:: ES ist kein Graphisches OS!)
-
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.
-
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
-
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