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 - vish

Seiten: [1] 2 3
1
Lowlevel-Coding / Image für bootfähige CD
« am: 24. November 2004, 18:09 »
Servus...
Da du das ganze schon auf Diskette hast, schiebst du diese einfach rein, startest Nero, erstellst dann eine neue Zusammenstellung als Bootbare CD. Nun machst du nur noch einen Haken bei Starbares Logisches Laufwerk und TADAAA, jetzt müsste es klappen.
(Auf OK klicken nicht vergessen :D )
2
Offtopic / U-OS *New Version*
« am: 03. November 2004, 17:09 »
Na, das sieht doch schon mal verdammt gut aus!
Aber wozu der Befehl "ver"? Würde doch eigentlich reichen dem Benutzer beim Laden des Systems die Version mitzuteilen.  :wink:
3
Lowlevel-Coding / Problem mit Cmos
« am: 13. October 2004, 14:04 »
Ahja, alles klar, danke schön!
4
Lowlevel-Coding / Problem mit Cmos
« am: 12. October 2004, 17:34 »
Ah, gut, also das was ich in Punkt 1 geschrieben habe ist völliger quatsch... Am besten gar nicht beachten! :)
5
Lowlevel-Coding / Problem mit Cmos
« am: 12. October 2004, 16:58 »
1. Wieviele Bits hat denn Port 70h? Ich vermute 32, bin mir da aber nicht sicher.
2. Was ist und wozu brauche ich den NMI?
3. Warum mit 0xE0 UND-Verknüpfen und dann die gewünschte Adresse ODER-verknüpfen?
6
Lowlevel-Coding / Problem mit Cmos
« am: 11. October 2004, 14:11 »
Einfach eine bestimmte Anzahl an Sektoren zu laden ist allerdings recht ineffizient, da ist es zwar schwieriger aber effizienter den Weg von hannibal zu gehen.
Aber wird das Problem mit den Sektoren nicht dadurch behoben, dass man als Dateisystem einfach FAT12 verwendet und sich so (fast) gar nicht mehr um die Sektoren kümmern muss?
7
Lowlevel-Coding / Problem mit Cmos
« am: 10. October 2004, 19:47 »
Das Problem hat sich erledigt, ich Döspaddel hab einfach nur vergessen dem Bootloader zu sagen, dass er ein paar mehr Sektoren der Diskette einlesen soll, da das System ja größer geworden ist...
Ein sehr, sehr dummer Fehler wie ich finde, aber jetzt ist ja alles gut! :)
8
Lowlevel-Coding / Problem mit Cmos
« am: 10. October 2004, 15:13 »
Also, folgendes Problem:
Ich habe eine Funktion (in C) geschrieben mit der ich das Fehlerregister des CMOS-Speichers testen kann und, falls einen Fehler gibt, eine Nachricht ausgibt, in der die Fehlerursace beschrieben wird. Wenn ich das ganze kompiliere und dann in Bochs testen möchte, macht er sobald der Computer das CMOS-Register überprüft hat einen, mir völlig unerklärlichen,  reboot.
Was mach ich da falsch? Hier mal der code:
cmos.c:

void check_cmos(void)
{
    unsigned char value;
    print("Checking CMOS for errors...");
    out(0x70, 0x0E);                        
    value = in(0x71);
    if (value == 0)    /* If 0 -> everything is all-right. */
    {
        print("CMOS [OK]");
    }
    else                /* If not -> there MUST be an error. */
    {
        print("CMOS ERROR:");
        switch(test_bit(value, 2))
        {
            case 0: break;
            case 1: print("Invalid time or data."); break;
        }
        switch(test_bit(value, 3))
        {
            case 0: break;  
            case 1: print("Disk or controller error."); break;
        }
        switch(test_bit(value, 4))
        {
            case 0: break;
            case 1: print("Memory size compare error."); break;
        }
        switch(test_bit(value, 5))
        {
            case 0: break;
            case 1: print("Invalid POST-configuration."); break;
        }
        switch(test_bit(value, 6))
        {
            case 0: break;
            case 1: print("CMOS - Bad checksum."); break;
        }
        switch(test_bit(value, 7))
        {
            case 0: break;
            case 1: print("Clock lost power."); break;
        }                  
    }
}

-------------

Die in / out (für die Ports) funktionieren, ebenso die print-Funktion. Bei der Funktion test_bit bin ich mir nicht sicher, vielleicht liegt der Fehler auch da. Deswegen hier noch der Code der test_bit-Funktion:


bitops.c:

int test_bit(char val, char bit)
{
   char test_val = 0x01;    
   /* push bit to position */
   test_val = (test_val << bit);
   /* 0 = Bit setted 1 = Bit not setted */
   if ((val & test_val) == 0)
      return 0;                  /* not setted */
   else
      return 1;                  /* setted */
}

-----------

Danke schon mal im vorraus! :)
9
Offtopic / Ist Windows wirklich so schlecht ?
« am: 10. October 2004, 15:05 »
Achso, und das ist dann die natürliche Auslese? :D
10
Offtopic / Ist Windows wirklich so schlecht ?
« am: 10. October 2004, 13:52 »
Genau das meinte ich...
Ich rate jedem der hier ein OS codet auch so ein Manual zu schreiben! :D
11
Offtopic / Ist Windows wirklich so schlecht ?
« am: 10. October 2004, 12:32 »
Jo, ich glaube ein kluges Köpfchen bei MS hat doch tatsächlich ein Tutorial darüber geschrieben, wie man Linux von der Platte kriegt. :D
Kann man auf der offiziellen Homepage von MS irgendwo finden...
12
Offtopic / Bluetooth
« am: 04. October 2004, 18:58 »
Naja, es gibt Leute die tauschen Viren... Möchte jetzt niemandem etwas unterstellen, aber ich schätze zu einem solchen Sammler gehört auch SPTH. :D
13
Offtopic / Hilfe Diese Begriffe kenne ich nicht
« am: 02. October 2004, 20:44 »
Tja, er ist eben ein gewiefter ( schreibt man das so? ) Tutorialschreiber! :D
14
Lowlevel-Coding / PC-Speaker
« am: 02. October 2004, 10:09 »
Ein C-Kernel Tutorial von Gregor Brunmar, in dem eine Möglichkeit für inp() und outp() Funktionen erklärt und geschrieben wird. (Englisch)
http://hem.passagen.se/gregge/muos/tutorial_03/tutorial_03.html
15
Lowlevel-Coding / wie funktioniert "segment"?
« am: 02. October 2004, 10:02 »
Von dem Mnemonic "SEGMENT" hab ich noch nichts gehört, von "mov" und "db" da schon viel mehr! :)

Also, ein Byte mit mov zu schreiben ist ganz einfach:
mov ah,11111111b
Hier kopieren wir 1 Byte (in diesem Fall die Zahl 255 (FF Hexadezimal) ) in das Prozessorregister ah.
Also gibt der erste Operand an wohin kopiert werden soll und der zweite spezifiziert die Quelle.
Man könnte also auch schreiben:
mov ah,bh
Hier würden wir dann den Inhalt aus bh ( 8 Bits, foglich ein Byte ) nach ah kopieren.

Jetzt zu "db":

"db" ist die Abkürzung für "define byte". Wenn wir nun einen String erstellen wollen, schreiben wir: name db "Ein String!"
Der Assembler erstellt so eine Variable (man kann den String auch im Programmverlauf noch ändern) mit 11 Bytes. Warum?
Ganz einfach: Ein ASCII Zeichen benötigt genau 1 Byte. Wir haben hier 11 Zeichen (das Leerzeichen ist auch ein Zeichen) und so kommen 11 Bytes zustande.
16
Lowlevel-Coding / PC-Speaker
« am: 01. October 2004, 20:00 »
Zum DAU: Dümmster Anzunehmender User

Zu den inp() und outp() Funktionen: Vielleicht verweist du (also linkst) du da einfach auf ein anderes Tutorial (von dir oder einem anderen geschrieben), das eben diese beschreibt.
17
Offtopic / Hilfe Diese Begriffe kenne ich nicht
« am: 01. October 2004, 19:58 »
Jep, so in etwa meinte ich das auch!
Meinst du mit "Daten" den Stack? Wenn ja, dann ist das nicht ganz richtig, weil jeder Thread seinen eigenen Stack hat und folglich die Daten nicht alle dieselben sind.
18
Offtopic / Hilfe Diese Begriffe kenne ich nicht
« am: 01. October 2004, 17:57 »
Also, ich versuch das mal zu erklären:

Multitasking = Multiprogrammierung = Mehrere Prozesse (quasi) gleichzeitig ausführen

Zum Prozess:
Stellen wir uns mal vor, eine Haushälterin möchte einen Kuchen backen. Dazu bräuchten wir die Zutaten (Ressourcen), ein Rezept (das Programm) und den Prozess (Die Haushälterin). Jetzt guckt die Haushälterin zuerst auf  das Rezept (praktisch den Quellcode) und führt die nächste Anweisung aus. Dabei werden Ressourcen verbraucht und irgendwann ist die Haushälterin fertig, weil der Kuchen fertig ist. Folglich ist der Prozess fertig.
Ein Prozess unterliegt dem Sheduler des OS, also wenn das OS sagt, dass jetzt ein anderer Prozess die CPU belegen darf, dann wird der 1. Prozess angehalten und der 2. Prozess fängt an zu laufen.

Zum Thread:
Normalerweise hat ein Prozess einen Ausführungsfaden (unser Rezept), manchmal ist es jedoch besser, wenn man mehrere Ausführungsfäden in einem Adressraum (also dem des startenden Prozesses) quasi parallel ablaufen zu lassen, die, bis auf den gemeinsamen Adressraum, einzelne Prozesse wären.
Multithreading bezeichnet dann die Möglichkeit mehrere Threads in einem Prozess laufen zu lassen.


Falls dies hier nicht korrekt ist, bitte sagen! :)
19
Lowlevel-Coding / PC-Speaker
« am: 01. October 2004, 17:39 »
Mh, sehr gut!
Aber wäre vielleicht nicht schlecht, wenn du die Rechtsschreibung befolgen würdest! :) ("net" und "nix" sind eher "chatter-sprache", "nicht" und "nichts" hören sich da wesentlich besser an :) )
20
Offtopic / Bluetooth
« am: 30. September 2004, 14:13 »
Also, wenn du mich fragst riecht das stark nach Blaster, aber der hat mehr was mit dem Internet zu tun, oder irre ich mich da?
Also, Normal ist das nicht! :D
Seiten: [1] 2 3

Einloggen