We made a new task by separate the command-line window.
To implement character input, simply send data to the Console_task (Command-line window Task) FIFO when the keyboard is pressed. But to send the data you must know the memory address of the struct FIFO.
Put the struct FIFO into the struct task. There are basically no tasks that are completely non-FIFO, so we bind them together.
struct TASK { int// sel is used to save the index of GDT int priority; struct FIFO32 fifo; struct TSS32 tss;};
When you switch to a command-line window, the system sends keyboard data to the command-line window task, supporting the general character input and backspace. Because timers are also used in command-line windows, in order not to conflict with keyboard data, we add 256 to the value of the keyboard data when writing to the FIFO.
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
The 17th day of the 30-day homemade Operating system command-line window