Lowlevel

OffZone => Offtopic => Thema gestartet von: Coffee am 08. March 2006, 17:50

Titel: C - printf geht net
Beitrag von: Coffee am 08. March 2006, 17:50
meine print funktion im c-kernel sieht ja so aus(auflösung: 80 * 20)


unsigned int print(char *message, unsigned int line)
{
char *vidmem = (char *) 0xb8000;
unsigned int i=0;

i=(line*80*2);

while(*message!=0) // 24h
{
if(*message==0x2F)
{
*message++;
if(*message==0x6e)
{
line++;
i=(line*80*2);
*message++;
if(*message==0)
{
return(1);
};
};
};
vidmem[i]=*message;
*message++;
i++;
vidmem[i]=0x7;
i++;
};

return(1);
};


aber sie gibt nix aus... why?? ich hab schon versch. probiert aber das geht alles nich!!
Titel: C - printf geht net
Beitrag von: GhostCoder am 08. March 2006, 23:19
Hi,

Komischer Code, sehe aber keinen Fehler irgendwie :)

Hier mal mein kprintf, vielleicht hilft das ja...

void kprintf(char *fmt,...)
{
ushort *vid_buf=(ushort*)0xB8000;
static int pos=1;
char str[256];
va_list ap;
int i;

va_start(ap,fmt);
vsprintf(str,fmt,ap);
va_end(ap);

fmt=str;

while(*fmt)
{
switch(*fmt)
{
case '\n':
pos+=80-(pos%80);
break;

default:
if(pos>=80*25)
{
for(i=1;i<24;i++)
memcpy(&vid_buf[(i-1)*80],&vid_buf[i*80],160);

memset(&vid_buf[80*24],0,160);

pos=-80;
}

vid_buf[pos++]=*fmt | 0x0700;
break;
}

fmt++;
}
}


Gruß GhostCoder
Titel: C - printf geht net
Beitrag von: JG am 09. March 2006, 14:02
@Coffe: Meine Funktion geht auch nicht  :roll:
Bist du im PM?
Titel: C - printf geht net
Beitrag von: Coffee am 09. March 2006, 16:17
also... ich hab zum ausprobieren teejay's c-kernel daten genommen aba hab den ckernel "komplett umgekrempelt" mit anderen worten bin ich im pm...... naja ich kann kaum c ich hab zwar c++ gelernt aba ich find das geht mit c viel einfacher und hab deswegen nur n paar tutorials durchgelesen(~250 seiten)... dann ist das dabei rausgekommen.....