OpenLLM-France/wikimedia huggingface dataset:
# Leer jezelf ecologisch tuinieren/Ruwbladigenfamilie

De Ruwbladigenfamilie (Boraginaceae) is een plantenfamilie. Wat er al dan niet tot deze familie hoort verschilt sterk, afhankelijk van de taxonomische opvattingen. In de 23e druk van de Heukels wordt uitgegaan van een ruime omschrijving, waarbij onder andere de Bosliefjesfamilie (Hydrophyllaceae) is ingevoegd in deze familie. In de ruime opvatting omvat de familie bomen, struiken, kruidachtige planten en soms lianen. De familie komt wereldwijd voor van gematigde streken tot in de tropen, met een concentratie rond de Middellandse Zee.
Een opvallend kenmerk is de ruwe beharing op stelen, bladeren en knoppen.
De bloeiwijze is een schicht.
In het Cronquist-systeem (1981) werd de Ruwbladigenfamilie ondergebracht bij de orde Lamiales. In het APG II systeem (2003) zijn ze niet ingedeeld in een orde, maar de Heukels gaat over tot een plaatsing in de orde Boraginales. Dit wordt dan weer niet gevolgd in het APG III systeem (2009).

## Geslachten

In Nederland komen de volgende geslachten voor:
* Amsinckia
* Borago
* Bosliefje (Nemophila}
* Brunnera
* Echium
* Hondstong (Cynoglossum)
* Lappula
* Longkruid (Pulmonaria)
* Nonea
* Ossentong (Anchusa)
* Parelzaad (Lithospermum)
* Pentaglottis
* Phacelia
* Smeerwortel (Symphytum)

## Nog niet beschreven

* Asperugo
* Omphalodes

## Externe links

* Boraginaceae
* Ehretiaceae
* Hydrophyllaceae
# Nederlandse geschiedenis/De Vroege Middeleeuwen

Na de volksverhuizingen en de mede daardoor veroorzaakte val van het Romeinse rijk in West-Europa (het Oost-Romeinse Rijk bleef nog eeuwenlang bestaan), was het gebied in drie delen verdeeld. De Friezen woonden langs de kusten, de Saksen in het oosten en de Franken in het zuiden. Grensstad van de Franken was lang Nijmegen, alwaar zij een palts vestigden. De Franken breidden hun grondgebied naar het zuiden, noorden en oosten uit en versloegen de andere volken. Onder Karel de Grote beheerste het Frankische rijk rond 800 vanuit zijn kern in het huidige België en Noord-Frankrijk een groot deel van Europa waaronder het huidige Duitsland en Noord-Italië. In deze tijd werden na de Franken ook de Friezen en Saksen tot het christendom bekeerd, veelal door rondtrekkende predikers, dikwijls Ierse of Engelse monniken zoals Willibrordus, Bonifatius en Adelbert van Egmond. Door de grote omvang van het rijk was Karel de Grote genoodzaakt om het land te laten besturen door leenmannen die aan hem verantwoording schuldig waren. Geleidelijk aan werd de functie van leenman erfelijk en ontwikkelde het systeem zich tot het feodalisme dat tot aan de Nieuwe Tijd Europa zou beheersen.

## Verdrag van Verdun, 843

Bij het Verdrag van Verdun in 843 werd het Frankische rijk verdeeld tussen de drie kleinzonen van Karel de Grote. Nederland kwam aan het Midden-Frankische Keizerrijk, ook wel genoemd naar de eerste keizer, Lotharius, Lotharingen. Na het verdrag van Meerssen (870) werd het middenrijk verdeeld tussen het West-Frankische Rijk, het latere Frankrijk, en het Oost-Frankische Rijk, het latere Heilige Roomse Rijk. Het gebied van het huidige Nederland maakte deel uit van het voornoemde rijk (behalve Zeeuws-Vlaanderen: de Schelde was de grens). Een belangrijke handelsplaats was toen Dorestad (huidige Wijk bij Duurstede). Dorestad ging echter ten onder als gevolg van de invallen van Noormannen (Vikingen). In 866 en 882 vonden Vikingaanvallen plaats in de IJsselstreek waarbij handelsplaats en kerkelijk centrum Deventer en de hof en nederzetting van Zutphen werden geplunderd. In 882 bezetten Vikingen zelfs het Valkhof te Nijmegen om daar te overwinteren. Tegen het jaar 1000 verminderde de plaag uit het noorden, en hield ten slotte op toen de Vikingen overgingen tot het christendom.
# Nederlandse geschiedenis/De Late Middeleeuwen

Het Heilige Roomse Rijk bleef geen politieke eenheid. Lokale leenmannen, officieel de vertegenwoordigers van de keizer, vormden hun graafschappen en hertogdommen om tot kleine privé-vorstendommen, en waren nog slechts in naam afhankelijk van de keizer. De vele lokale leenmannen hielden zich tenslotte hoofdzakelijk bezig met het vergroten van hun persoonlijke macht ten koste van hun buren. Grote delen van de Lage Landen werden beheerst door elkaar onderling bestrijdende vorsten zoals de hertog van Gelre, de hertog van Brabant en de bisschop van Utrecht. En ook de bisschoppen van Luik en Keulen mengden zich dikwijls met hun legers in de politieke strijd. Geleidelijk kwam aan de kust het graafschap Holland op. Friesland en Groningen werden geregeerd door de lagere adel.

## 1000

Vanaf ongeveer het jaar 1000 begon West-Europa zich te herstellen van de chaotische 'donkere middeleeuwen'. De bevolking groeide weer, talloze nieuwe steden ontstonden en de handel breidde zich sterk uit. Ook de Lage Landen profiteerden hiervan. Het economische zwaartepunt lag tussen 1100 en 1500 duidelijk in Vlaanderen waar Brugge en Gent door de toenemende handel zeer welvarend werden. Belangrijk was de handel tussen het Rijnland (glas, aardewerk, metalen) en Engeland (wol) die hier samenkwam. In het oosten waren het de IJsselsteden die zeer grote welvaart bereikten door de handel binnen het Hanzeverbond (voornamelijk wol, graan, hout) (Doesburg, Zutphen, Deventer, Kampen, Elburg, Harderwijk om de belangrijkste te noemen). Het zuidelijke deel (nu België en een deel van Noord Frankrijk) was duidelijk het belangrijkste, maar vanaf de 14e eeuw begon ook het gewest Holland belangrijker te worden. De voornaamste stad van dat gewest was in die dagen Dordrecht. Met de Vrede van Kopenhagen uit 1441 is de Oostzee open voor Hollandse kooplieden en neemt de invloed van de Hanze af.Het Heilige Roomse Rijk bleef echter geen politieke eenheid. Lokale leenmannen vormden hun graafschappen en hertogdommen om tot kleine privé-vorstendommen, en waren nog slechts in naam afhankelijk van de keizer. Grote delen van Nederland werden beheerst door elkaar onderling bestrijdende vorsten zoals de hertog van Gelre, de hertog van Brabant en de bisschop van stad Utrecht. Geleidelijk kwam aan de kust het graafschap Holland op. Friesland en provincie Groningen waren een onderdeel van het Upstallboom verbond. Dit verbond bestond uit de 7 Friese landen, verspreid over de provincie Friesland, Groningen en Ost-Friesland in Duitsland. Dit verbond het een grote rol gespeeld in de Hollands-Friese oorlogen.

## Verder lezen

* J. Huizinga, Herfsttij der Middeleeuwen, Leiden, 1919.
# Nederlandse geschiedenis/De Habsburgers

De zoon van Maximiliaan en Maria, Filips de Schone, trouwde met een Spaanse prinses. Dit zou tot gevolg hebben dat Habsburgers een rijk opbouwden dat bestond uit drie delen: een Oostenrijks, een Spaans en een Nederlands deel.
De Oostenrijkse, Spaanse en Bourgondische gebieden kwamen via Maximiliaan bij overerving terecht bij zijn kleinzoon Karel V. Karel was in 1500 in Gent geboren en werd later ook nog keizer van het Heilige Roomse Rijk. Toch moest hij voor een klein deel van zijn Zeventien Provincieën (Vlaanderen bijvoorbeeld) nog steeds trouw zweren aan zijn rivaal de Franse koning. Beide vorsten waren het wel eens dat dat uit de tijd was en in de Pragmatieke Sanctie werd er besloten dat alle zeventien gewesten losgemaakt werden van zowel Frankrijk als het Duitse Rijk. Karel had zoals alle vorsten van zijn tijd zijn zinnen gezet op het versterken van zijn persoonlijke macht, maar vooral met de grote steden van het Zuiden had hij het niet makkelijk en de tegenzin tegen zijn politiek nam langzamerhand toe. Gelre blijft onder hertog Karel van Gelre lang buiten zijn rijk en pas in 1543 werd Karel ook Hertog van Gelre. In de zestiende eeuw nam een deel van bevolking van de Nederlanden deel aan de reformatie (hervorming) en werd dus protestant. Filips II, zoon van Karel V, was strikt katholiek, en hij had hier dus ernstige bezwaren tegen. Hij was ook meer Spaans- dan Nederlandsgezind (hij is alleen in het begin van zijn regering in de Lage Landen geweest), terwijl zijn vader was opgegroeid in Gent en heer der Nederlanden was geworden voordat hij koning van Spanje werd. Uiteindelijk liep dit uit op de Tachtigjarige Oorlog (1568-1648).
# Nederlandse geschiedenis/De twintigste eeuw

In de 20ste eeuw veranderde Nederland als nooit tevoren en werd van een voornamelijk handels- en agrarisch land een industrienatie. Het handelsverleden kreeg een nieuw vervolg in de vele belangrijke multinationals van Nederlandse oorsprong die ontstonden. Na 1945 verloor Nederland zijn grootste kolonie, Nederlands-Indië.
# Nederlandse geschiedenis/De achttiende eeuw

Toen het in de eerste helft van de 18e eeuw weer eens minder goed ging met de Republiek werd de Friese stadhouder onder de naam Willem IV stadhouder in de hele Republiek. Hij kreeg bijna koninklijke macht. Aan het eind van de 18e eeuw groeide de interne verdeeldheid in Nederland. De belangrijkste partijen in deze tijd waren de Orangisten, die stadhouder Willem V meer macht wilden geven, en de Patriotten die, onder invloed van de Franse ideeën van de Verlichting en de Amerikaanse Revolutie , een meer democratisch regeringssysteem wilden. Nederland was het eerste land dat de Verenigde Staten erkende, (dit wordt nog steeds op Sint Eustatius gevierd) en de Britten verklaarden het de oorlog om te voorkomen dat Nederland eerst met andere neutrale landen een alliantie zou aangaan en dan alsnog in de Amerikaanse onafhankelijkheidsoorlog betrokken zou raken. Zij maakten daarbij handig gebruik van uiterst trage besluitvorming in de Republiek. Deze 4e Engelse oorlog (1780-1784) betekende een ramp voor Nederland, vooral economisch. In 1787 was er een opstand van patriotten, maar het huis Oranje, geholpen door Pruisen, sloeg deze neer. Vele patriotten vluchtten naar Frankrijk.
# Ontwerp en bouw een besturingssysteem/Foutenopsporing/Interrupt Descriptor Table

De Interrupt Descriptor Table of IDT is een tabel met descriptors die beschrijven hoe het systeem moet reageren op allerhande gebeurtenissen, van mislukte acties en foutmeldingen tot een apparaat dat iets van het systeem wil. De verschillende soorten descriptors worden beschreven in Appendix B: IDT descriptors.
De IDT bevat maximaal 256 descriptors, en in tegenstelling tot de GDT wordt de eerste descriptor op index 0 ook gebruikt. Elke descriptor beschrijft een Interrupt Service Routine die moet worden aangeroepen wanneer die interrupt vuurt.
# Ontwerp en bouw een besturingssysteem/Foutenopsporing/Segmentatie

In real mode heeft elk programma de beschikking over maximaal 1 MiB (2$^{20}$ bytes). Om de laatste byte hiervan te adresseren, zou je 20 bits op 1 moeten zetten. Maar omdat in real mode de processor maar kan rekenen met 16 bits, moest er een manier worden gevonden om die laatste 4 bits te kunnen uitdrukken. Daarvoor is het geheugen opgedeeld in segmenten van 64 KiB (16-bits segmenten, 2$^{16}$ bytes). Elk segment begint op een veelvoud van 16 bytes, en ze kunnen elkaar dus overlappen. Dit gebruik van segmenten heet segmentatie.
De x86 processoren hebben een aantal registers gereserveerd voor deze segmenten. Deze registers zijn onafhankelijk van elkaar:
Veel instructies hebben al een 'favoriet' segment register dat ze gebruiken als je niet expliciet wat anders aangeeft.

## Protected Mode

In protected mode gebruik je segmenten net als in real mode, maar ze werken anders. De 32-bits segment selector is een offset in de Global Descriptor Table, of GDT. De GDT bevat een aantal 'descriptors'. Elke descriptor beschrijft een deel van het geheugen, en de bijbehorende attributen.
# Ontwerp en bouw een besturingssysteem/Foutenopsporing/Interrupt Service Routines

De Interrupt Service Routines zijn functies die worden aangeroepen wanneer een interrupt vuurt. De processor doet dan het volgende:
* Als de processor in een lager privilege niveau (hoger PL nummer) draait dan de code die moet worden uitgevoerd:
** Er wordt gewisseld naar de stack van de uit te voeren code.
** De volgende waarden van de onderbroken code worden op de stack gepusht:
*** SS (stack segment selector)
*** ESP (stack pointer)
* De volgende waarden van de onderbroken code worden op de stack gepusht:
** EFLAGS
** CS (code segment selector)
** EIP (instruction pointer)
** Error code (in sommige gevallen)
Daarna is het de beurt aan de aangeroepen routine, die het volgende moet doen:
* Interrupts uitschakelen
* De algemene registers van de onderbroken code opslaan
* De segment selectors van de onderbroken code opslaan
* Kernel segmenten instellen
* De interrupt afhandelen
* End-of-interrupt signaal aan de slave interrupt controller doorgeven, indien van toepassing
* End-of-interrupt signaal aan de master interrupt controller doorgeven, indien van toepassing
* De algemene registers weer terugzetten op hun oorspronkelijke waarde
* De segment selectors weer terugzetten op hun oorspronkelijke waarde
* De stack opruimen
* Terugkeren naar de onderbroken code, en tegelijk de interrupts weer inschakelen.
# Ontwerp en bouw een besturingssysteem/Foutenopsporing/De console

De console is op dit moment onze belangrijkste bron van informatie. Voor alles wat er gebeurt zullen we een melding op de console moeten laten zien, en daarvoor is het belangrijk om, behalve vooraf gedefinieerde teksten, ook getallen in decimaal en hexadecimaal te kunnen afdrukken. In dit hoofdstuk behandelen we de console zoals deze na het opstarten van het systeem werkt.

## Het consolegeheugen

Het zichtbare deel van de console is 80 karakters (of kolommen) breed en 25 regels hoog, en het wordt aangestuurd door de VGA controller. De VGA controller heeft een deel van het geheugen gereserveerd (vanaf 0xB8000) voor de weer te geven tekst. Helaas is daarmee alles gezegd; we zullen zelf moeten zorgen dat als we aan het einde van het scherm zijn, de tekst naar boven springt.
Elk karakter in het consolegeheugen is twee bytes groot. Het consolegeheugen is dus 80 kolommen * 25 regels * 2 bytes = 4000 bytes groot. Elke volgende regel staat na de voorgaande regel in het consolegeheugen. Dus de tweede regel begint op consolegeheugenadres 0xB8000 + 1 regel * 80 kolommen * 2 bytes = 0xB80A0. Kortom, het karakter op een bepaalde regel en kolom staat op het volgende geheugenadres:
${\mbox{geheugenadres}}={\mbox{0xB8000}}+[2\cdot ]({\mbox{regel}}\cdot 80+{\mbox{kolom}})$
(de eerste regel is ${\mbox{regel}}=0$, de eerste kolom is ${\mbox{kolom}}=0$)

## De karakters

| 15 | | | 12 | 11 | | | 8 |
| Achtergrond | Achtergrond | Achtergrond | Achtergrond | Voorgrond | Voorgrond | Voorgrond | Voorgrond |
| 7 | 0 |
| Karakter ||||||||
Elk karakter in het consolegeheugen is 16 bits. De laagste 8 bits bepalen het karakter. Standaard is de ASCII tekenset actief. De hoogste 4 bits bepalen de achtergrondkleur, de voorgaande 4 bits de voorgrondkleur. Hieronder staat het standaard 16 kleurenpalet:
| Waarde | Achtergrondkleur | Voorgrondkleur | Voorgrondkleur |
| 0x0 | Zwart | Zwart | 9ABC2 |
| 0x1 | Blauw | Blauw | 9ABC2 |
| 0x2 | Groen | Groen | 9ABC2 |
| 0x3 | Cyaan | Cyaan | 9ABC2 |
| 0x4 | Rood | Rood | 9ABC2 |
| 0x5 | Magenta | Magenta | 9ABC2 |
| 0x6 | Oker | Oker | 9ABC2 |
| 0x7 | Licht grijs | Licht grijs | 9ABC2 |
| Waarde | Achtergrondkleur | Achtergrondkleur | Voorgrondkleur | Voorgrondkleur |
| 0x8 | Zwart | Tekst | Donkergrijs | 9ABC2 |
| 0x9 | Blauw | Tekst | Lichtblauw | 9ABC2 |
| 0xA | Groen | Tekst | Lichtgroen | 9ABC2 |
| 0xB | Cyaan | Tekst | Licht cyaan | 9ABC2 |
| 0xC | Rood | Tekst | Lichtrood | 9ABC2 |
| 0xD | Magenta | Tekst | Licht magenta | 9ABC2 |
| 0xE | Oker | Tekst | Geel | 9ABC2 |
| 0xF | Licht grijs | Tekst | Wit | 9ABC2 |
Extra (appendix?): Hoe het kleurenpalet te veranderen? Hoe de letters aan te passen?
# Ontwerp en bouw een besturingssysteem/Foutenopsporing/Global Descriptor Table

De Global Descriptor Table, of GDT, bevat een aantal descriptors die elk een deel van het geheugen beschrijven. De GDT is een onderdeel van het concept van segmentatie, maar wordt tegenwoordig nauwelijks nog gebruikt. Paging heeft veel van de voordelen van segmentatie, en meer. En paging kan bovenop segmentatie gebruikt worden.

## Standaard descriptors

In Appendix B: GDT descriptors staan de verschillende descriptor types beschreven. Ook al gebruiken we geen segmentatie, de processor eist van ons dat we geldige descriptors in de GDT laden. Daarom gebruiken we een aantal standaard descriptors die het gehele 32-bit geheugenbereik van 4 GiB omvatten, het zogenaamde flat memory model. We moeten daarvoor de volgende descriptors definiëren:
* Null descriptor Het eerste item in de GDT. Deze is vereist, maar wordt niet gebruikt door de processor.
* Code segment descriptor Geeft het bereik aan waarin uitvoerbare code mag staan.
* Data segment descriptor Geeft het bereik aan waarin lees- en schrijfbare data mag staan.

## Null descriptor

De null descriptor wordt niet gebruikt door de processor, maar kan wel in een segment register geladen worden. Wordt dit adres gebruikt, dan ontstaat er een <<TODO: Link: General Protection Fault >>. De null descriptor was oorspronkelijk dan ook bedoeld om de segment registers op nul te kunnen zetten. Je mag alles wat je wilt in die 8 bytes van de null descriptor opslaan. Vaak slaat men er gewoon een nul-waarde in op, maar anderen gebruiken de null descriptor om een pointer naar de GDT zelf te bewaren .

## Code segment descriptor

De code segment descriptor beschrijft het gebied met uitvoerbare code. In een 'flat memory model' heeft deze descriptor de volgende eigenschappen:
* Basis: 0
* Limiet: 0xFFFFF * 4 KiB = 4 GiB
* DPL: 0
* Conforming: nee
* Leesbaar: ja
* Opgevraagd: nee

## Data segment descriptor

De data segment descriptor beschrijft het gebied met data. In een 'flat memory model' heeft deze descriptor de volgende eigenschappen:
* Basis: 0
* Limiet: 0xFFFFF * 4 KiB = 4 GiB
* DPL: 0
* Uitbreid richting: naar boven
* Leesbaar: ja
* Opgevraagd: nee
# Ontwerp en bouw een besturingssysteem/Geschiedenis van de X86 computer

De geschiedenis van de digitale computer begint pas echt net na de Tweede Wereldoorlog, wanneer computers zoals Colossus en de ENIAC in gebruik worden genomen. Deze eerste computers waren zo groot als een hal, maar met de uitvinding van de transistor werden de computers snel kleiner. Daarmee werd ook het gebruik van binaire numerieke systemen gewoner dan het gebruik van een decimaal numeriek systeem.

## Ponskaarten

De eerste transistorcomputers werden gevoed met een programma op ponskaarten of ponsband. Hierin zijn met een ponsmachine gaten (bits) geponst waarbij een combinatie van gaten op een van de 80 kolommen voor een bepaalde waarde staat (de byte). Aangezien elke byte ook voor een letter kon staan, konden de latere schermen dan ook maximaal 80 karakters weergeven op een horizontale lijn. Ook verklaart het gebruik van ponskaarten de waarde van het 'karakter' DEL (binair 0b0111111) uit de ASCII karakter set: door de bits op 1 te zetten kon een fout getypte waarde in een kolom onleesbaar gemaakt worden. De computers sloegen dit karakter dan gewoonweg over.

## Eerste besturingssysteem

De ponskaartenlezer was dus een van de eerste invoerapparaten, en voor de uitvoer werd in het begin vaak gebruik gemaakt van een printer, zoals een matrixprinter. Later werden voor zowel de invoer als de uitvoer magnetische tapes gebruikt, die met een tape drive gelezen en geschreven werden.
Om een programma op een tape of ponskaarten te starten, moet de operator van de computer steeds nadat het ene programma is uitgevoerd het volgende programma laden. Hiertoe kreeg men een deel van de computertijd volgens een rooster ('schedule' in het Engels). Omdat de invoer- en uitvoerapparaten toentertijd erg sloom waren, ook in vergelijking met de computers van toen, schreef men al gauw een klein programma dat tussen verschillende ingevoerde programma's kon wisselen wanneer op een apparaat gewacht moest worden. Zo'n zogenaamde 'scheduler' was het eerste begin van een besturingssysteem.

## Mainframes

Omdat de computers erg duur waren, werd er gebruik gemaakt van het mainframe-terminal principe. De mainframe was de grote centrale computer, en de terminals waren in feite niet meer dan een scherm met een toetsenbord. Als er een commando werd ingetypt, werd dit naar de mainframe verstuurd. Het teruggestuurde antwoord werd op het scherm weergegeven. Het grote voordeel van dit principe was dat er meerdere mensen met terminals vanaf verschillende plekken aan dezelfde mainframe konden werken.
Dit principe van meerdere terminals is nog steeds terug te vinden in de unix familie (Linux, FreeBSD, etc) van besturingssystemen.

## Latere besturingssystemen

De eerste schedulers gebruikten 'cooperative scheduling': een programma gaf vrijwillig zijn computertijd op wanneer het lang moest wachten, waarna de scheduler de huidige staat van het programma bewaarde, de staat van het volgende programma herstelde en dat verder liet gaan. Ook de besturingsystemen DOS en Windows (tot versie 3.0) gebruikten deze manier van scheduling.
# Ontwerp en bouw een besturingssysteem/Hallo wereld

In het theorie hoofdstuk hebben we voldoende basis gelegd om te kunnen beginnen met het schrijven van de eerste code. In dit hoofdstuk gaan we een 'kernel' schrijven die kan opstarten vanaf een diskette, en de tekst Hallo wereld! op het scherm zet.
Het hoofdstuk bestaat uit de volgende onderdelen:
# Ontwerp en bouw een besturingssysteem/Foutenopsporing/Foutmeldingen

De processor meldt fouten door middel van een interrupt. Door te kijken naar het interruptnummer kan de fout worden bepaald. Sommige foutmeldingen pushen een foutcode op de stack.
| Nummer | Naam | Foutcode |
| 0 | Deling door nul | Nee |
| 1 | Debug foutmelding | Nee |
| 2 | Niet-maskeerbare interrupt | Nee |
| 3 | Breakpoint | Nee |
| 4 | Overflow | Nee |
| 5 | Grensoverschrijding | Nee |
| 6 | Ongeldige opcode | Nee |
| 7 | Geen co-processor | Nee |
| 8 | Double fault | Ja |
| 9 | Coprocessor Segment Overrun | Nee |
| 10 | Ongeldige TSS | Ja |
| 11 | Segment niet aanwezig | Ja |
| 12 | Stackfout | Ja |
| 13 | General Protection Fault (algemene beschermingsfout) | Ja |
| 14 | Page Fault (paginafout) | Ja |
| 15 | Onbekende interrupt | Ja |
| 16 | Coprocessorfout | Nee |
| 17 | Alignment controle fout | Nee/Ja? |
| 18 | Machine controle fout | Nee |
| 19 | SIMD Floating-Point fout | Nee |
| 20-31 | Gereserveerd |