Ontwerp en bouw een besturingssysteem/Hallo wereld/Tekst weergeven: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Virtlink (overleg | bijdragen)
Pagina aangemaakt: "Vanaf nu gaan we het meeste programmeerwerk in C doen. Daarvoor moet op de een of andere manier de controle vanaf <tt>start.asm</tt> naar de nieuw te schrijven C code overgaan. ..."
 
Virtlink (overleg | bijdragen)
+ afbeelding
Regel 67:
 
== Tekst afdrukken ==
We gaan nu eindelijk de zin <tt>Hallo wereld!</tt> afdrukken. De computer beschikt over een stuk geheugen dat gereserveerd is voor de weer te geven tekst. Dit begint op adres 0xB8000. Elke positie in het tekstgeheugenconsolegeheugen is twee bytes lang, waarbij de minst significante byte (bits 0-7) de laatstewaarde byte)voor de af te drukken letter bevat. We gaan nu onze tekst op de eerste 15 posities van dit beeld afdrukken. De code spreekt als het goed is voor zichzelf. Pas de <tt>kernelmain()</tt> functie als volgt aan:
 
{{Code|Titel='''init.c''' (gedeelte)|Code=<source lang="c">
Regel 75:
// De tekst die we gaan afdrukken:
char* tekst = "Hallo wereld! ";
// Pointer naar de het video geheugenconsolegeheugen
// waar de weer te geven tekst wordt opgeslagen.
unsigned short* tekstgeheugenconsolegeheugen = (unsigned short*)0xB8000;
// Tijdelijke pointer naar de geheugenlocatie voor het volgende karakter.
unsigned short* locatie;
Regel 85:
for (i = 0; i < 15; i++)
{
// Locatie is het begin van het tekstgeheugenconsolegeheugen,
// plus het aantal geschreven karakters.
locatie = tekstgeheugenconsolegeheugen + i;
// Schrijf de i-de letter naar het geheugen,
// en geef het een witte letter op zwarte achtergrond (0x0F00).
Regel 99:
</source>}}
 
[[Bestand:Ontwerp en bouw een besturingssysteem - Tekst weergeven 1.png|frame|GRUB tekstresidu met <tt>Hallo wereld!</tt> er overheen.]]
Opnieuw <tt>init.c</tt> compileren, het geheel linken, en op een diskette (image) zetten. Ondanks dat de GRUB Legacy tekst nog zichbaarzichtbaar is, staat onze tekst <tt>Hallo wereld!</tt> bovenaan. Het werkt!
 
'''AFBEELDING'''
 
In het volgende deel gaan we ons verdiepen in foutopsporing. Maar we beginnen met routines die het scherm leeg kunnen maken en strings kunnen afdrukken.
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.