Inzwischen gibt´s eine print() für Strings und eine printInt() für Ganzzahlen in dezimalform.

Gibt es da wieder Tricks die ich noch nicht kenne um die printInt() zu beschleunigen?
Eine Fehlertoleranz ist nicht vorgesehen, schade um die Rechenleistung.

Das große Problem wird die Division und der Modulo-Operator sein, denke ich. Auf jeden Fall wird ein riesieger ASM-Code erstellt.


Code:
     
    void printInt(unsigned char xPos, unsigned char yPos, unsigned char length, int num)//32767 -> +32767
    {
        unsigned char temp;
        unsigned int i=0;
        xPos+=length-1;
        
        if(num<0)
        {
            num--;                                //Zweierkompliment
            num=~num;
            do
            {
                num-=(temp=num%10);                //letzte Stelle extrahieren
                num/=10;                        //num>>1 dezimal            
                text[yPos][xPos-i++]=temp+0x30;    //um auf passenden char zu kommen
                if(i==length-1)break;            //damit Platz fürs Minus ist 
            }while(num);
            text[yPos][xPos-i++]=0x2D;            //Minuszeichen an erste stelle    
        }else
        {
            do
            {
                num-=(temp=num%10);    
                num/=10;            
                text[yPos][xPos-i++]=temp+0x30;                
                if(i==length)break;
            }while(num);            
        }
        
        while(i<length)        
            text[yPos][xPos-i++]=0x20;            //Rest mit Leerzeichen auffüllen
                        
    }