The "instfield" line is halving the exponent. In Smalltalk-80 you could write it
guess := self timesTwoPower: self exponent // -2.
Also, "user notify:" would become "self error:". Modern Smalltalk actually has complete exception handling, so you could also define an exception class (for example ArgumentOutOfRange) and trap it.