<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>C on Cesar Gimenes</title><link>https://crg.eti.br/en/tags/c/</link><description>Recent content in C on Cesar Gimenes</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>crg@crg.eti.br (Cesar Gimenes)</managingEditor><webMaster>crg@crg.eti.br (Cesar Gimenes)</webMaster><lastBuildDate>Sat, 21 Dec 2024 17:26:25 -0300</lastBuildDate><atom:link href="https://crg.eti.br/en/tags/c/index.xml" rel="self" type="application/rss+xml"/><item><title>Rewriting the Old TSR Using Bash</title><link>https://crg.eti.br/en/post/reescrevendo-velho-tsr-usando-bash/</link><pubDate>Sat, 21 Dec 2024 17:26:25 -0300</pubDate><author>crg@crg.eti.br (Cesar Gimenes)</author><guid>https://crg.eti.br/en/post/reescrevendo-velho-tsr-usando-bash/</guid><description>&lt;p>When I started programming, computing was different from today. The operating system was single-tasking; only one program could run at a time. There were no modern features like protected and mapped memory. Even so, it was possible to create concurrent behavior in programs, but you had to be careful to keep any part from blocking execution. For example, there could be no loops waiting for keyboard input or very long processes. Writing a non-blocking program was tricky in languages like Clipper.&lt;/p></description></item></channel></rss>