1. A method of computer program protection comprising the steps of: encoding data placed in storage, varying said encodings between different storage areas, preventing storage areas written according to one usage from being used effectively for some other purpose; and storing said encodings with association to their respective storage areas, so that said encoded data may be decoded when required.