Kleine Frage und Bitte :)



  • Hi,

    ich hab mir aus Infos aus dem Netz einen Kernel gecodet (kann nur textausgeben) und würde gerne ein paar Profis dazu hören, aber erstmal den code:

    // D E F I N I T I O N E N /////////////////////////////////////////////////
    unsigned short *videomem; 	// Pointer zum Video-Speicher
    unsigned int pos; 		// position, wird benutzt wie X Position
    unsigned int off; 		// offset, wird benutzt wie Y Position
    
    // P R O T O T Y P E N /////////////////////////////////////////////////////
    void clear (void);
    void write (char*);
    void put (char);
    
    // F U N K T I O N E N /////////////////////////////////////////////////////
    void clear (void)
    {
    	for(unsigned int i = 0; i < (80*25); i++)
    	{
    		videomem[i] = (unsigned char) ' ' | 0x0700;
    	}
    	pos=0; 
    	off=0;
    }
    
    void write(char *cp)
    {
    	char *str = cp, *ch;
    
    	for (ch = str; *ch; ch++)
    	{
    		put(*ch);
    	}
    
    		// wird später ersetzt durch das hier
    //	while((*cp) != 0) put(*(cp++));
    }
    
    void put(char c)
    {
    	if (pos >= 80)
    	{
    		pos=0 ;
    		off += 80 ;
    	}
    
    	if (off >= (80*25))
    	{
    			// Später wird der Screen 1 runter gesetzt, doch
    			// jetzt reicht noch die clear funktion
    		clear();
    	}
    
    	videomem[off + pos] = (unsigned char) c | 0x0700;
    	pos++;
    }
    
    // K E R N E L /////////////////////////////////////////////////////////////
    int main (void)
    {
    		// Initialisiere den Videospeicher und setze Textpositionen
    	pos=0; off=0;
    	videomem = (unsigned short*) 0xb8000;
    
    	write ("Hallo! Ihr da!");
    	write ("Ich bin hier!");
    
    	return 0;
    }
    

    Ist nicht viel sollte aber reichen um einen Text auszugeben, ich konnte den code bis jetzt leider nicht compilieren, da ich keinen Compiler wie DJGPP momentan auf der HDD habe (frisch formatiert), drum hätte ich eine Bitte an jeden der einen guten C compiler hat:

    Bitte testet mal meinen Kernel 🙂

    Und nun zu meinen Fragen:
    1. Läuft der Code bei euch?
    2. Läuft der nur im RM oder auch im PM?
    3. Wenn euch eine verbesserung einfällt bitte bitte sagen was 🙂

    Schon mal ein mega dickes Danke im voraus an alle die Testen bzw. zeit/lust/laune dazu haben und alle die mir die 3 Fragen beantworten 🙂

    edit:
    Achja, noch eine Frage: gibt es in ASM einen gewaltigen unterschied zwischen ++i und i++? Wenn ja welchen? oder ist das egal?

    Gruß,
    Patrick 🙂


Anmelden zum Antworten