The final objective of this project was for the MCU to be able to communicate with a terminal program (such as Tera Term) running on a computer.
This project allowed me to push the MCU I was using to its limits — in terms of memory optimization as well as using an external clock. Admittedly, I was only able to appreciate the convenience of an MCU with more memory, for example, when I worked on the project that followed this one. But it was important that I completed this project with an MCU that came with all the limitations the ATtiny2313A does. Making the most of a simple MCU justifies asking for one that is more powerful as you will continue to milk the most of what you got.