7 Conclusion

The ASCII animation in opener.c works well and makes use of the wide range of art that can be used using timers and the available characters. The main.asm program contained some pitfalls. Different machines use different ’shift’ key values, and some shift keys on the Qterm keyboards do not work at all. Because of this, a great deal of unnecessary grief came to the team. Integrating the bits of software proved challenging, because relevant variables had to be assigned and the list of who could modify what had to be made strict. An interesting challenge came from doing the loop in assembly. Memory concerns had to be taken very seriously, as only a limited number of registers were available and nothing could afford to be overwritten. The programmers became even more familiar with the restrictions of EABI and appreciated the large number of nonvolatile registers. In the main loop, the most interesting functionality was the coding of labels for the function. By simply modifying all the read and write reset functions, names could be assigned to the keyboard typing. This neat bit of programming really beautified the system.

The barcode function does exactly what is requested of it. Unfortunately, the programmer was unable to implement any software to check and make sure that the values entered in through the Dip Switches correspond to values in the table. This could cause some serious problems with the spray pattern if the user does not enter the correct value for the Dip Switches. In addition if the user terminates the program at the exact second that the program is checking to see if the barcode is ready to be read in or not, the program might possibly not return any value at all and the program may need to be re-run to get the value for the program. Fortunately the use of a real barcode scanner should avoid these problems. The new digital lock offers a lot more flexibility and security than the original, plus a user-friendly interface. This allows users to easily get familiar with it. The sprayer function usage of analog controls tested our knowledge of analog to digital conversions, yet eventually worked like a charm. Generating the precise algorithms needed to make the function work perfectly took time and refinement. The AddFluid function proved challenging with difficulties like making the counter for percentage full to go till 100 in case it was completely full. By remembering the different class types for variables this problem was conquered.

Overall this lab project was exciting. The material was interesting and debugging was fun. We had many problems, but in fixing them we deepened out knowledge of the system and strengthened team skills. Despite busy schedules, the effort put in by project members was amazing. Working in a team really helped as group partners always came up with new ideas to improve each person’s function. Working on this project was a truly memorable experience because it helped fix small yet but important details missed earlier in CprE 211, and allowed us to run with deeper, unexplored options on the PowerPC.