CS 210 PROJECT #3 Due Date: Noon Thursday 03/17/05 The purpose of this project is to familiarize the student with the process of "program maintenance" in which an existing assembly language application is modified so as to incorporate one or more enhancements. PROBLEM STATEMENT Revise the 'password.s' program in the following three ways (so as to increase convenience, forgive mistakes, and improve security): (1) allow users to type in the required password using either uppercase or lowercase letters; (2) allow users to reenter their password, up to a maximum of four tries, before their login attempt is finally denied; (3) rewrite the keyboard-input procedure so that the password itself cannot be seen on the screen as it is being typed. Do NOT redesign the entire program -- instead, try to keep as much of it intact as possible, while still achieving the goal of incorporating each of the three desired improvements described above. Make the programming style of your new code and comments consistent with the practices of the previous programmer, so that old and new code are similar in appearance. And be sure to include comments which indicate which procedures are new. with the date when each was added, and a brief remark explaining why the change is being introduced. Be sure you maintain integrity of the 'user interface' as you introduce changes: for example, do not print a message saying that access if being refused if you will then be allowing another chance to type in the password correctly; instead, print a more accurate message, such as: Incorrect password -- please try again. But of course, if the user still gets it wrong after the fourth try, the message that gets printed then should inform the user appropriately: Incorrect password -- access refused. An easy way of implementing "case insensitivity" in the input typed by your user is to convert any lowercase letters to uppercase before you make a comparison with the correct secret password. correct pasvalid Eliminating automatic "echo" of input-characters onto the screen is probably the most challenging part of this project and will involve some details of the standard 'tty' interface to be discussed in the lectures. ________________________________________________________________________ (c) Allan B. Cruse University of San Francisco Spring 2005