21. November 2024, 17:38
(Kann der thread bitte noch einwenig aufbleiben für den fall das nochimmer was nicht stimmt?)
Außerdem, welche Interrupt nummer brauche ich für die maus?
Wie kann ich den buffer leeren?
Achja und wie kann ich Daten vom ersten ring in den 3 übergeben?
Ok, also benutze ich den inline assembler und lege dann z.B auf eax den keycode?
struct cpu_state* syscall(struct cpu_state* cpu){ switch (cpu->eax) { case 0: /* putc */ kprintf("%c", cpu->ebx); break; case 879: /* NEU */ cpu->eax = ein wert aus dem puffer oder ein wert der anzeigt, dass der puffer leer ist; break; } return cpu;}
int key;asm("int $0x30" : "=a" (key) : "a" (879));// nun ist in key entweder die taste oder ein wert der anzeigt, dass keine taste gedrückt wurde.
Also brauche ich nur ein = für die rückgabe.