Navigointi
Etusivu
PhpSysInfo
~sami/
Blogi
vnstat
Ladattavaa
Virityksiä
Muuta
Linkkejä
Monsujen tappopeli
Vieraskirja
Chat
|
|
"Hello world" ilman kirjastoja
void main() { const char *str = "Hello world"; char __far *vgatxtbuff = (char __far*)0xB0008000L; while(*str&&(*vgatxtbuff++=*str++)&&(*vgatxtbuff++=0x07)); }
Yllä oleva koodi kirjoittaa suoraan VGA:n värillisen tekstitilan näyttöpuskuriin, jossa parittomat tavut merkitsevät näytöllä olevaa merkkiä ja
parilliset tavut merkin muotoilua. Pointteri vgatxtbuff alustetaan osoittamaan em. näyttöpuskuriin. Koodi kääntyy ainakin Open Watcomilla ja Borland C:llä
DOS-käyttöjärjestelmissä toimivaksi COM-binääriksi.
While-silmukka helppolukuisempana versiona:
while(*str) { *vgatxtbuff++=*str++; *vgatxtbuff++=0x07; }
Ja edelleen helppolukuisempana:
while(*str!=0) { *vgatxtbuff=*str; vgatxtbuff++; str++; *vgatxtbuff=0x07; vgatxtbuff++; }
Jatketaan siis niin pitkään, kunnes pointterin str osoittamassa osoitteessa tulee nollatavu vastaan (nollatavu palauttaa epätoden).
Kirjoitetaan pointterin vgatxtbuff osoittamaan osoitteeseen pointterin str osoittaman osoitteen arvo ja samalla laitetaan kumpikin pointteri osoittamaan
seuraavaan muistiosoitteeseen. Sen jälkeen vielä kirjoitetaan pointterin vgatxtbuff osoittamaan osoitteeseen tavu 0x07, joka ilmaisee kirjaimen värin,
taustavärin ja muotoilun.
|
|
|
04:45:27 up 38 days, 7:27, 2 users, load average: 0.18, 0.18, 0.18
total used free shared buff/cache available
Mem: 493 119 126 3 248 357
Swap: 486 126 360