Chris Pine's "Deaf Grandma"
Perl, 85 91

Run with perl -nE '&lt;code goes there&gt;' (n counted in program size):

$==1930+rand 21;say/^BYE$/?last:uc eq$_?"
NO, NOT SINCE $=!":"HUH?! SPEAK UP, SONNY!"


That trailing exclamation mark is very expensive...

Edits suggested by IK:


Using a regexp instead of a string match spares the -l global option as well as two program characters: -3.
Using an actual variable to save a value and use it later for interpolation (Genius! Who'd have thought of using a variable for that?): 0.
Making that variable $=, constrained to be an integer: -4.


(and it still doesn't add up and I'm too sleepy to find out why.  Oh well, the final count is right at least)