Please visit a TA in the Urbauer 115 Laboratory
during Lab Hours and ask him or her
to complete and submit this form when you demonstrate your machine problem.
The TA should: check your solutions and complete all fields on this form.
Once this form is submitted, use your own machine to
upload code
for your machine problem
Preliminary Steps
Verify that your program is fully functional!
Run the program interactively
Verify function of backspace for Hex, Decimal, and ASCII input
Verify backspace stops at first and last characters
Verify bounds checking for key inputs
Observe LIBUSAGE upon exit.
Verify given test inputs
MP2 < test1.in == test1.out
..
MP2 < test4.in == test4.out
Observe LIBUSAGE upon exit.
Category
Points
Min
Max
PrintBuffer
Prints out the contents of the buffer to the screen in ASCII.
Prints out the contents of the buffer in HEX.
0
10
ReadBuffer
Read input from the keyboard.
Allows backspacing, but prevents underflow.
Properly handles carriage returns when reading ASCII, Decimal or HEX.
Ignores line feeds.
Rejects invalid input and beeps.
Prevents overflow of the buffer.
0
20
CodeBuffer
Calls ExpModN to encode or decode the buffer.
0
6
ExpModN
Calculates y^x%z
Return value is always less than z.
0
10
CheckPrime
Checks to see if a number is prime.
Sets ZF=0 if prime.
0
10
ReadPublicKeys
Sets Variables n and e.
Rejects n if n < 128.
Rejects e if e > n.
0
10
ReadKeys
Reads values for p, q, and e.
Displays proper ranges where appropriate, and rejects any input
is not within that range.
Sets n and d appropriatly.
Displays the new values of the keys.
Allows e to be a NON-prime number, as long as
it is RELATIVELY prime to (p-1)*(q-1).
Example: p=17, q=13, (17-1)*(13-1)=192.
Allows: e=25 and calculates d=169
0
20
GetD
Calculates the modular inverse of e.
If e has no inverse, returns 0.
0
14
Sub-Total
Points
Min
Max
Total (Sum of scores above, limited to a maximum of 50 points)
0
50
Penalities
Points
Min
Max
Comments(* percentage of code written)
Clear and precise line & procedure comments
(describes all major routines): -0
Sports Announcer comments (line-by-line): -1
Unclear comments: -1
Sparse comments: -3
-5
0
Technique & Style(* percentage of code written)
Compact and Efficient code: -0
Contains repeated code (lacks loops): -3
Makes poor use of registers and/or variables: -2
-5
0
I/O Specs & Modularity(* percentage of code written)
Violates specifications for given subroutines: -5
-5
0
Late or Early Bonus
Points
Min
Max
Before 5pm on deadline: +2 point/weekday After 5pm on deadline: -10 points/weekday