diff --git a/Makefile b/Makefile
index 115802c6ce9c746b1387e01e1e5249b5d58aad04..5ea7cf4e12f6074d0d7eda20d9e1b01e0f93df72 100644
--- a/Makefile
+++ b/Makefile
@@ -35,7 +35,7 @@ $(IMAGE): $(BINFILE)
 	grub-mkrescue --target=i386 -d /usr/lib/grub/i386-pc/ -o $(IMAGE) ./
 
 run:
-	qemu-system-x86_64 -boot d -m 2048 -cdrom mykernel.iso -serial stdio
+	qemu-system-x86_64 -boot d -m 2048 -cdrom mykernel.iso -curses
 
 $(BINFILE): $(AOBJ) $(COBJ)
 	$(LD) $(LDFLAGS) -Tlink.ld $^ -o $@
diff --git a/src/main.o b/src/main.o
deleted file mode 100644
index 853cb8086856466130a895444206532009318281..0000000000000000000000000000000000000000
Binary files a/src/main.o and /dev/null differ
diff --git a/sujet.md b/sujet.md
index 4e6441b432b37c4fab339e5ba0a44c0089c68f99..e031478a8b594aee0123a606004caf4a5c0e4e10 100644
--- a/sujet.md
+++ b/sujet.md
@@ -7,8 +7,8 @@ Cela fait maintenant quelques années que vous écrivez des logiciels, et pourta
 vous sont ceux qui n'ont encore jamais écrits un "premier logiciel", c'est-à-dire un logiciel qui
 s'exécute en premier, lorsque la machine démarre. C'est ce que nous allons faire maintenant. 
 
-Vous trouverez en suivant ce lien [https://gitlab.univ-lille.fr/gilles.grimaud/my-kernel] 
-un dépot `my-kernel` qui vous propose un logiciel minimal. Le Makefile proposé compile le programe 
+Vous trouverez en suivant ce lien vers le [depot `my-kernel`](https://gitlab.univ-lille.fr/gilles.grimaud/my-kernel) 
+qui vous propose un logiciel minimal. Le Makefile proposé compile le programe 
 présent dans `src/main.c` et produit l'image iso d'un disque amorcable sur architecture x86. 
 Pour exécuter ce "premier logiciel" il vous faudra soit :
 
@@ -23,7 +23,7 @@ pour démarrer une image iso en ligne de commande, nous vous recommandons l'util
 [qemu](https://www.qemu.org). 
 
 ```sh
-qemu-system-x86_64 -boot d -m 2048 -cdrom mykernel.iso
+qemu-system-x86_64 -boot d -m 2048 -cdrom mykernel.iso -curses
 ```
 
 Cette commande est directement disponible dans le `Makefile` proposé avec : 
@@ -107,7 +107,7 @@ que le clavier est accéssible via deux registres associés aux port `0x60` et `
 le premier est appelé _data port_, et qu'il peut être lu ou écrit, alors que le second est appelé
 _status register_ quand on le lit, et _command register_ quand on l'écrit. 
 
-Par ailleur, le processeur clavier génère une interruption de niveau 0 quand une touche est
+Par ailleur, le processeur clavier génère une interruption de niveau 1 quand une touche est
 pressée.    
 
 ### Question 1.1 : mon premier premier hello world.
@@ -141,7 +141,7 @@ implémentée dans `src/idt.c`). Nous de détaillons pas ici toutes les subtilit
 interruptions sur les architectures intel, mais tout peut être lu, dans `src/idt.c` et `src/idt0.s`.  
 Grace à `idt_setup_handler(i,fct)` qui est équivalent à `IRQ_VECTOR[i]=fct;` lorsque vous utilisiez
 la librairie hardware de simulation du matériel, vous pouvez programmer une interruption, et 
-notament une interruption timer (qui est donc ici, associé au niveau d'interruption 1).   
+notament une interruption timer (qui est donc ici, associé au niveau d'interruption 0).   
 
 Par ailleur, notez que la gestion du verrouillage et du dévérouillage des interruptions est plus 
 compliquée, sur nos PC, que ne le laissait espérer l'interface de la librairie `hardware` utilisée en 
@@ -160,21 +160,23 @@ tant que vous n'aurez pas effectué cette opération sur le controleur d'interru
 
 ### Question 2.1 : Un ordonnancement préemptif. 
 
-Nous Reutilisez la fonction de changement de contexte vue en cours d'ASE pour implémenter un 
+Reutilisez la fonction de changement de contexte vue en cours d'ASE pour implémenter un 
 ordonnanceur de contexte préemptif minimaliste. La principale difficultée ici est d'adapter votre 
 logiciel pour qu'il n'est plus recours aux fonctions `malloc` et `free`, ni aux `_mask` et 
-`IRQ_VECTOR` mais aux .  
+`IRQ_VECTOR`. De plus le code démarré est en mode protégé 32bit et non 64, il faut donc utiliser
+les registres `esp`,`ebp` et non `rsp` et `ebp`.   
 
-### Question 2.2 : Les fonctions `sem_up()` et `sem_down()`. 
+### Question 2.2 : Un premier démonstrateur.
+A l'aide de votre mécanisme de sémaphore, réalisez un premier démonstrateur qui lance deux contextes. 
+Le premier affiche en boucle les charactères saisi au clavier, alors que le second affiche, 
+un compteur qui s'incrémente, en haut à droite de l'écran.  
+
+### Question 2.3 : Les fonctions `sem_up()` et `sem_down()`. 
 Importez les fonctions de gestions des sémaphores vues en cours d'ASE dans votre système.
 Pensez (1) à proscrire toute utilisation du tas (pas de `malloc` ni de `free`) et (2) à utiliser
 les instructions intel `cli` et `sti` pour garder vos sections critiques de code plutot que les 
 `_mask` proposés par la librairie C.  
 
-### Question 2.3 : Un premier démonstrateur.
-A l'aide de votre mécanisme de sémaphore, réalisez un premier démonstrateur qui lance deux contextes. 
-Le premier affiche en boucle les charactères saisi au clavier, alors que le second affiche, 
-un compteur qui s'incrémente, en haut à droite de l'écran.  
 
  
 Partie 3. Implémenter getc() entre interruptions et sémaphores 
diff --git a/sujet.pdf b/sujet.pdf
index 5ff44027a7690e65e978502c1acc05f62c04a0fc..12b7d78c892f0418d287301268841be20626d473 100644
Binary files a/sujet.pdf and b/sujet.pdf differ