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.


Themen - Another Stupid Coder

Seiten: 1 [2]
21
Offtopic / Verständnisproblem mit einer GCC-Fehlermeldung
« am: 04. August 2004, 14:15 »
Hallo,
Ich bekomme jedesmal wenn ich die String-Libary compillieren will folgenden Fehler:
src/string.cpp:68: warning: suggest parentheses around assignment used as truth
(diesen Fehler erhalte ich bei mehreren fast identischen Zeilen).
Hier der Code aus der Datei "string.cpp":
char *String::Copy(char *String2)
{
    while(*ContentString++ = *String2++); // Das hier ist die Zeile 68
    return ContentString;
};
22
Lowlevel-Coding / multiple definition
« am: 30. July 2004, 09:28 »
Hallo, ihr.
Nachdem ich mich eine Zeit lang nur mit Theorie und Assembyl beschäftigt habe grub ich gestern einen "meiner" (das meiste ist "übernommen"...aber verstehen tue ich es schon) alten C-Kernel wieder aus plötzlich sagte er mir ld
kernel.o(.data+0x0): multiple definition of `VideoMem'
video.o(.data+0x0): first defined here
kernel.o(.bss+0x0): multiple definition of `VideoPos'
video.o(.bss+0x0): first defined here
Was doch darauf schließen lässt das er die Datei "video.h" (wo VideoMem und VideoPos definiert sind) 2 mal includiert oder? Tja, hier kommt der Sourcecode:
Zitat
video.h :
#ifndef HELIOS_VIDEO_H
#define HELIOS_VIDEO_H

// Format : COLOR_BACK_FORE
#define    COLOR_BLACK        0xF0
#define    COLOR_BLUE        0xF1
#define    COLOR_GREEN        0xF2
#define    COLOR_TUERKIS        0xF3
#define    COLOR_RED        0xF4
#define    COLOR_MAGENTA        0xF5
#define    COLOR_BROWN        0xF6
#define    COLOR_LIGHTGRAY        0xF7
#define    COLOR_DARKGRAY        0xF8
#define    COLOR_LIGHTBLUE        0xF9
#define    COLOR_LIGHTGREEN    0xFA
#define    COLOR_LIGHTTUERKIS    0xFB
#define    COLOR_LIGHTRED        0xFC
#define    COLOR_LIGHTMAGENTA    0xFD
#define    COLOR_YELLOW        0xFE
#define    COLOR_WHITE        0xFF

// Variables
char *VideoMem = (char *) 0xb8000;
unsigned int VideoPos = 0;

void ClearScreen(char Color);
unsigned int PrintMsg(char *Msg, char Color);

#endif
Zitat
video.c :
#include <video.h>

void ClearScreen(char Color)
{
    VideoPos = 0;

    while(VideoPos < (80 * 25 * 2))
    {
        VideoMem[VideoPos] = ' ';
        VideoPos++;
        VideoMem[VideoPos] = Color;
        VideoPos++;
    };
    VideoPos = 0;
};

unsigned int PrintMsg(char *Msg, char Color)
{
    while(*Msg)
    {
        if(*Msg == '\n')
        {
            VideoPos = (((VideoPos / 160) + 1) * 160) + (VideoPos % 160);
        }
        else
        {
            VideoMem[VideoPos] = *Msg;
            *Msg++;
            VideoPos++;
            VideoMem[VideoPos] = Color;
            VideoPos;
                };
        };

        return(1);
};
Zitat
kernel.c :
#include <video.h>

k_main()
{
    ClearScreen(COLOR_BLACK);
    PrintMsg("Hello, World!", COLOR_BLUE);

};
Zitat
das Makefile (es sind nur ein paar schnell reingetippte Befehle) :
all:
    gcc -ffreestanding video/video.c -c -I./video/
    gcc -ffreestanding kernel.c -c -I./video/
    nasm k_init.asm -f aout
    ld -T Link.ld k_init.o video.o kernel.o -o kernel
    nasm boot.asm -o boot.bin
    cat boot.bin kernel > kernel.img
    rm boot.bin
    rm kernel
    rm kernel.o
    rm k_init.o
Ich hoffe jemand kann mir helfen, Danke jedenfalls schon im vorraus.
23
Lowlevel-Coding / Vga/svga (vesa) im Pmode
« am: 23. June 2004, 18:20 »
Hallo,
Weiß jemand wie man mit VGA oder VESA im PMode arbeitet? Denn die Interrupts darf man doch im PMode nichtmehr benutzen oder?
24
Lowlevel-Coding / Assembler-Anfänger
« am: 14. June 2004, 20:24 »
Hallo,
mal wieder eine meiner stupiden Fragen: Ich habe gerade mit Assembler wirklich angefangen (Code habe ich schon vorher verstanden und so aber halt nie selber programmiert) und versuche nun in einen bestimmten Video-Modus zu schalten. Um nun zu sehen ob und wenn ja wie das klappt wäre es natürlich recht praktisch wenn das programm ein wenig warten würde. Wie kann ich es machen das dass Programm auf eine Taste wartet oder einfach nur eine Zeitlang verzögert wird? (Am besten wären 2 Lösungen eine für Windows zum testen und eine fürs Betriebsystems später). Ich benutze eine alte TASM version aber ich traue mir zu einfachere sachen vom NASM-Syntax zu übersetzen :)
25
Offtopic / EduOS - Website scheint nichtmehr zu existieren.
« am: 13. June 2004, 17:53 »
Hallo,
Falls jemand von euch EduOS von Frankt Corneli (oder so ähnlich) zufällig auf der Festplatte lagern hat, kann er/sie/ es mir bitte schicken oder irgendwo hochladen? meine mail lautet : paulhaerle at gmx dot at
Die website scheint es nämlich nichtmehr zu geben und der Server verweigert mir den zugriff...
26
Hallo,
Falls ich jetzt eine absolut stupide Frage stellen sollte verzeiht mir bitte, ich bin schon ein wenig müde.
Ich habe das problem mein Video-Treiber Problemlos schwarzweiß funktioniert aber wenn ich farbe ins spiel bringen will klappt das nicht....
Auszug aus Video.cpp:
[code]void Video::Write(char *Text)
{
    unsigned int i;
    while(*Text)
    {
        if(*Text == '\n')
        {
                NewLine();
        }
        else
        {
                i = (PosX * 80 * 2) + 2 * PosY;
                VideoMem = *Text;
                i++;
                VideoMem = Color;
                PosX++;
                if(PosX < 80) // ToDO: Dieses Mechanismus testen.
                {
                        NewLine();
                };
        };
        Text++;
    };
};
void Video::SetColor(char ColorToSet)
{
    Color = ColorToSet;
};
Color ist privat und eine Char-variable.
Auszug aus Kernel.cpp:
[code]SetColor(0x9);
    Screen.Write("KronOS V0.01");
[/code]
27
Lowlevel-Coding / Grub/pmode
« am: 09. June 2004, 21:33 »
Hallo mal wieder,
Mein Kernel benutzt jetzt GNU GRUB und daher wollte ich fragen was GRUB so alles für mich erledigt. Er schaltet ja zum Beispiel automatisch in den PMode. Ist da jetzt das A20 Gate und so dabei? Und eine Frage für die ich mich fast schäme:
Sind GDT und IDT eigentlich immer im PMode? (wenn nicht wird das von GRUB geregelt?)
28
Das Wiki / "Os-Dev-Wörterbuch" ?
« am: 09. June 2004, 15:24 »
Hallo,
Ich hatte da mal wieder eine meiner verrückten Ideen, welche ich wegen meinem begrenztem Wissen nicht wirklich realisieren kann:
Wie wäre es mit einer Art Wörterbuch wo alle Begriffe für Anfänger erklärt sind? Ich stelle mir da zu jedem Fachbegriff einen kleinen Absatz vor, wo jeder der gerade erst beginnt mal nachschauen kann was das überhaupt ist. Zum Beispiel ProtectedMode, Interrupts,...
29
Offtopic / Osdever.net wieder Online!
« am: 02. June 2004, 15:42 »
Hallo,
Ich wollte nur mal denen, die es nicht jeden Tag versuchen, melden das www.osdever.net wieder online ist und scheinbar sind auch alle Doks online :)
Also fröhliches weiter programmieren :)
30
Lowlevel-Coding / LD-Problem
« am: 24. May 2004, 18:59 »
Hallo!
Wenn ich versuche kernel32.o (das ASM-Teil; Siehe TeeJay's C-Tutorial) als aout mit zulinken sagt mir LD "File format not recognized" oder so...bei einer anderen asm datei im gleichen format (funktionen die in C gebraucht werden) geht es aber. Kann mir da jemand helfen? Noch einfacher (und fast besser weil es ja eh nur um diese eine Datei geht) wäre es wenn mir einer die datei an anotherstupidcoder at gmx dot net schicken könnte...
31
Offtopic / Welche Tools benutzt ihr?
« am: 16. May 2004, 19:57 »
Hier stelle ich die frage welche Programme ihr fürs OS-Development benutzt.
Ich benutze unter Linux gcc und nasm und dd (ums auf eine Diskette schreiben). Unter Windows frage ich mich gerade was ich benutzen soll deshalb diese Frage :)
32
OS-Design / C++ im Kernel (Linker-Error)
« am: 01. May 2004, 15:22 »
Hallo!
Ich habe ein Kleines Problem. Und zwar habe ich versucht einen kleinen Objektorentierten Kernel nach TeeJay's Tutorial zu basteln und bin drauf gekommen das es nur mit g++, nicht aber mit gcc funktioniert. (zumindest bei mir) Soweit funktioniert das ganze auch. Erst bei Linker (ld) scheitert das ganze mit folgender Fehlermeldung:

Kernel/temp/ckernel.obj(.text+0x3d): In function `__static_initialization_and_destruction_0(int, int)':
: undefined reference to `__dso_handle'
Kernel/temp/ckernel.obj(.text+0x49): In function `__static_initialization_and_destruction_0(int, int)':
: undefined reference to `__cxa_atexit'
make: *** [all] Fehler 1

Tja, sieht so aus als w?rde das an der standard-libary liegen oder? (wegen dem atexit) Meine Commands sehen folgenderma?en aus:

g++ -nostdlib -nostdinc -fno-builtin -fno-rtti -fno-exceptions -c -Os -o Kernel/temp/ckernel.obj Kernel/C/kernel.c
g++ -nostdlib -nostdinc -fno-builtin -fno-rtti -fno-exceptions -c -Os -o Kernel/temp/video.obj Kernel/C/video.cpp
ld -T Kernel/link.ld -o Kernel/temp/c32kernel.bin

Mein Linker-Script:

OUTPUT_FORMAT("binary")
INPUT(Kernel/temp/kernel32.obj Kernel/temp/ckernel.obj Kernel/temp/video.obj)
ENTRY(start)
SECTIONS
{
  .text  0x200 : {
    code = .; _code = .; __code = .;
    *(.text)
    . = ALIGN(1);
  }
  .data  : {
    data = .; _data = .; __data = .;
    *(.data)
    . = ALIGN(1);
  }
  .bss  :
  {
    bss = .; _bss = .; __bss = .;
    *(.bss)
    . = ALIGN(1);
  }
  end = .; _end = .; __end = .;
}

Ich denke Code ist un?tig oder? Wenn doch nicht kann ich ihn auch noch posten ich will nur nicht das ganze Forum zuspammen.

W?re nett wenn mir jemand helfen k?nnte.
33
OS-Design / Filesysteme
« am: 22. April 2004, 21:03 »
Da ich mich in letzter Zeit vorallem mit Dateisystemen Beschäftigt habe, ich will ja nicht ewig mit FAT12 arbeiten, habe ich mir gedacht man könnte hier schon mal einen Thread aufmachen wo man über die einzelnen FSs diskutiert:
Weis jemand wo man die Offizielle Dokumentation oder ein gutes Tutorial zu ReiserFS oder Ext2 findet? Die würden mich nämlich sehr interessieren. Was genau ist der unterschied zwischen fat12 und fat16 sowie FAT32? Weis jemand wie NTFS aufgebaut ist? Arbeitet Jemand von euch auch mit exotischeren FS wie z.B.: dem von Minix oder dem AmigaFS,...
34
Lowlevel-Coding / Sorry ich finds nimmer...
« am: 14. April 2004, 20:55 »
Tut mir echt leid ich weis das ich schon mal gefragt habe aber ich finde den Thread einfach nimmer. Wo finde ich memset und memcpy?
35
Das Wiki / Ein Paar Vorschläge...
« am: 29. March 2004, 16:09 »
Ich hoffe das ich nicht die Themen die ich NICHT gelesen habe wiederhohle aber ich habe ein paar Anregungen.

1. Eine Seite wo man seine eigenen Betriebsystem Projekte eintragen kann und dann jemand der eines zum mitarbeiten oder testen oder so sucht eine übersicht mit Lizenz, Features,... bekommt.

2. Auch wenn es zeitaufwändig ist wäre es schön wenn es durchgehende Tutorials im Lowlevel Magazin gäbe. Denn die meisten Tutorials erklären entweder nur die ganz frühen sachen oder die ganz späten... dazwischen gibts dann noch eine Kluft die nur vereinzelt aufgefüllt wird.
Seiten: 1 [2]

Einloggen