The problem on how to protect code and data in devious ways was solved in a very good way. It is the way Unix file permissions work, and the way memory protection works in ix86 and Pentium etc chips: There are three bits for each page or unit, one allows read, one allows write, and one allows execution. Moreover, it can be shown that this scheme is the minimum and the maximum necessary to implement access control to one page of information, i.e. it is optimal. So, knowing this, may I ask why every time a new product appears it uses a *different* scheme that fails to implement this very basic and sane idea ? F.ex. you could have firmware code shipped in a PIC and marked execute only. The write bit would be cleared so the area would not be erased by flashing (the security bits would be a part of the page - perhaps a normal code location in it you'd have to jump around in your code - and clearing the w bit would render that page OTP except for device erase commands). The read bit would be cleared so no-one could read your code out. Obviously table reads inside the same page by the code itself pose a logical problem. This might be solved by allowing any read if the IP is within the same page. Questions ? Peter -- http://www.piclist.com hint: The list server can filter out subtopics (like ads or off topics) for you. See http://www.piclist.com/#topics