
The point of reading and capturing mouse data is to do something at the mouse’s location. Specifically, the goal is to have the terminal somehow react to a mouse click. Yes, even though C is stream oriented and rarely involves graphics or the mouse, this feat is made possible thanks to ANSI commands.
Continue reading
Category Archives: Lesson
Storing and Interpreting Mouse Input

Spewing data all over the screen might look impressive, as shown in last week’s Lesson, but the point of knowing where the mouse is and what it’s doing is to capture its data and make it available to your program for interpretation.
Continue reading
Where is the Mouse?

Monitoring the mouse in a terminal window happens thanks to various ANSI commands. Last week’s Lesson demonstrated how mouse clicks are detected. By issuing another ANSI command, the mouse’s location data is obtained, but doing so carelessly can create a horrid mess.
Continue reading
What is the Mouse Doing?

Continuing from last week’s Lesson, once activated and configured, the output that mouse activity generates in a terminal window looks something like this:
Continue reading
Reading the Mouse in a Terminal Window

After I bought a mouse for my first PC, I set out to write a mouse-based program — a game. (The Microsoft Mouse manual came with the full API.) It was fun and challenging, as all programming tasks should be. Surprisingly, reading the mouse is also possible in a Linux terminal window — providing that you know the secret.
Continue reading
Direct Terminal Input
While raw terminal input allows standard I/O functions to capture uncooked text, another approach for reading the terminal may also capture a few uncooked morsels. This process involves using low-level file I/O commands. These functions are read() and write(), which are part of the POSIX standard.
Continue reading
Reading Raw Input
Switching between cooked and raw modes requires access to the terminal’s configuration data. In Linux, these settings are manipulated at the command prompt by using the stty ccommand. In a C program, you use various functions available in the standard library and defined in the termios.h header file.
Continue reading
Cooked or Raw?
When the waitress asks how I like my eggs, I answer, “Cooked.”
O, how we all laugh . . .
The humor here is that it’s assumed you desire your eggs to be cooked and the waitress’s question relates to the fashion by which the eggs are to be cooked: fried, over-easy, sunny-side-up, scrambled, poached, and on and on. But the question of cooked or raw also applies to standard input for a computer terminal.
Continue reading
Getting and Setting the File Position Indicator
As data is read from a file, a file position indicator (which most C references call a “file pointer”) moves sequentially through the file’s data. As a review, three functions are available to adjust this offset:
Continue reading
A Colorful Hexdump
By combining the code page 437 data from last week’s Lesson into my colorful hexdump utility, I’m finally able to wrap up the code and produce a program that outputs a more interesting file dump.
Continue reading