Autor Thema: Allgemeine Frage  (Gelesen 6456 mal)

Stephan

  • Beiträge: 15
    • Profil anzeigen
Gespeichert
« am: 29. January 2005, 22:18 »
Hallo,

Eine Allgemeine Frage, wenn ich die LowLevel Magazine 1-6 durcharbeite,
ist es dann möglich das man schon eine einfache Oberfläsche mit einem kleinen Fenster bekommt?


Dann ne andere Frage, ich versuche nicht alles zu übernehmen um nachher etwas zu haben, deshalb meine Frage, da ich jetzt nur habe:

"Willkommen bei StupidOS"
"Press any Key"

wie kann hingehen, das man z.B.

exit eingeben kann?

oder dir

usw.

also wenn man
"exit" eingibt soll dies passieren
wenn mal reboot eingibt soll das passieren usw.
Wie mach eich das?


Danke

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #1 am: 29. January 2005, 22:23 »
tja. zuerst mal zu deiner ersten frage: bis man eine GUI hat (fensterchen zum rumklicken) dauert es EWIG! soweit kommste natürlich mit ausgabe 6 noch lange net. jetzt zu deiner 2. frage: überlege dir, wie diese "befehle" aufgebaut sind. es sind ketten von zeichen. du brauchst also code, mit dem du die tastendrücke auswerten kannst, und zu zeichenketten zusammenbaust. das kann das BIOS mit int 0x16 übernehmen. dann brauchst du eine routine, um solche Strings genannte zeichenketten auszugeben (die is schon dabei). und eine, um zeichen auszugeben (die is auchschon dabei). zuguterletzt musst du dir eine methode bauen, mit der du 2 solcher ketten vergleichst. und dann isses einfach. einfach das einlesen, vergleichen, welcher kommand es ist, und dann die auswertung machen.
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

Stephan

  • Beiträge: 15
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 29. January 2005, 22:34 »
Hallo,

Erstmal danke für deine Antwort.

Könntest du mir soein Beispiel zeigen?
Ich möchte gerne genau verstehen, was ich mache und kann mir den ganzen code noch nicht richtig vorstellen.


Noch eine Frage darauf, wie kann ich den Bildschirm leeren?
Also bevor ne Meldung kommt "Hallo" soll aller text weg sein..


Danke dir!

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 29. January 2005, 22:57 »
Den Bildschirm leeren kannst du, indem du den Grafikspeicher komplett mit Nullen ueberschreibst.

Ich kann so eine Shell mal in Pseudocode (mit n bissl Basic) formulieren:


;Taste gedrueckt
DO
  IF TastenCode <> ENTER THEN
    Zeichenkette = Zeichenkette + Zeichen(TastenCode)
  ELSE
    Befehlsauswerter
    Zeichenkette = ""
  END IF
LOOP

;Zeichenauswerter
IF Zeichenkette = "EXIT" THEN
  ;System herunterfahren
ELSEIF Zeichenkette = "CLS" THEN
  ;Ueberschreibe Bildschirmspeicher
ELSEIF .......
  ;........
END IF
RETURN TastenAuswertung


Soweit ganz billig der grundlegende Aufbau. Du muesstest nur noch von deinem Tastaturtreiber die Umwandlung Tastencode => Zeichen erledigen lassen (bei mir die Funktion Zeichen(TastenCode) ).

Will dir ja die Arbeit nicht komplett klauen :)

Aber ich habe irgendwo mal gelesen, dass man u.U. mit Basic-Code gut vorankommt, den man danach von Hand in Asm umwandelt, Zeile fuer Zeile. Dann hat man nämlich (wenn der grundlegende Kernel steht) schon getesteten Code...

Viel Spass und Gruesse

Svenska

Stephan

  • Beiträge: 15
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 29. January 2005, 23:00 »
wie kann ich denn IF benutzen? ich habe ma gelesen das Assembler zudumm ist if anweisungen zu erledigen...


Wie kann ich das dann machen?
Danke

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #5 am: 29. January 2005, 23:14 »
das war ein pseudocode => kein echter ASM-Code, sondern nur eine gedankliche anleitung, wie man vorgehen muss. hast du ICQ?
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

Stephan

  • Beiträge: 15
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 29. January 2005, 23:20 »
ja, habe mich schon bei dir gemeldet ;)

Aber ich steh noch als "Auf erlaubnis warten" drinne

ICQ: 276-665-472

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #7 am: 30. January 2005, 12:41 »
Also bis man ansatzweise ne GUI hat dauert es ziemlich lange. Ich hab bisher 1143 Zeilen asm code und 2730 C++ Code, und da ist nur in sehr geringen Grundzügen sowas wie ne GUI, damit kann man rein garnix anfangen, ausser ein paar leere fenster mit ner Hintergrundfarbe und nem Rand erzeugen, da ist keine Funktion bei, auch keine Titel oder so, kein Text nix^^ Abgesehen davon das das relativ wenig Code ist^^
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #8 am: 30. January 2005, 18:10 »
Ich würde dir erstmal empfehlen Assembler zu lernen.
So wie es scheint hast du davon noch nicht richtig die Ahnung.
Und daher wäre es Käse sich schon Gedanken über ein OS zu machen.

Schau dir erstmal die Tuts im Forum und die Magazine an. Da werden die meisten deiner Fragen beantwortet.

Wenn du DANN noch Fragen hast, kannst du diese hier stellen.

Versteh mich nicht falsch, aber ist einfach blöd immer wieder die selben Anfängerfragen zu beantowrten, wo das meiste doch in den Magazinen nachzulesen ist.
----------------------
Redakteur bei LowLevel

 

Einloggen