This LC3 Assembly program allows the user to create boxes on a screen which is 127 by 123 pixels. The user can decide the coordinates, size, and color of the box. Once the user has created 5 boxes they can then impose any of the 5 boxes they have created over the other ones. They can do this as many times as they want. The user is also given the option to clear the screen and start fresh.
There were a variety of difficulties in completing this project because it was in Assembly. One of the biggest challenges was inputting numbers, which was an absolute pain. Although it initially seems easy enough, especially if you have experience with other languages, getting the user to input 2- and 3-digit numbers in Assembly is unbearably tedious and complicated. The solution I found was to count the number of times the user inputs a number. If the user inputs 3 numbers, the first number is put through a loop that adds it to itself 100 times. The second number is added to itself 10 times, and the final number is simply added to the total.
Even though this project had me banging my head against the keyboard at times, I really enjoyed it and managed to internalize some important lessons. Firstly, I rediscovered the joy of engineering. The creativity I had to employ in order to get this project done in such a basic language gave me a rush. The second and I feel the most important, was to always have faith that there is a solution with enough planning and effort. As every engineer knows, there are times when it feels like there is an impassable roadblock but that is very rarely the case and when you finally push passed it there is an unimaginable feeling of exhilaration.