A more small-lcd-on-crummy-cpu-with-tiny-keys way to do this would be: - Use a menu style entry - Each event would be selectable from a list - With each event the user can: 1) add a condition between two variables or a variable and a constant 1a) enter the variable (by choosing from a list) 1b) enter the condition (by choosing from another list) 1c) enter the 2nd variable (by choosing from a list with a constant as an extra option) 1c1) enter a constant if necessary repeat at 1) to add more conditions or 2) review conditions etc 3) delete ... All the conditions for an event would be and-ed together, if the result is a 1 then you do the action. You can use suitable logic for the conditions (!= == > >= < <= & | ^) to achieve whatever goal you wish (using Moore's laws etc). This of course requires that the user know how to program and understands logic. This may be a tall order. This should compress fairly well, assuming you have a few actions (say 16) and up to 16 condition pairs one byte could compress the action and the length of the condition vector and then assuming 16 variables, one byte for the condition and the variable and the second for a variable or a constant. This is fairly compact. Your example could be represented on 5 bytes of eeprom and the interpreter would be fairly compact and simple to write. You need to clarify who is going to use this. This looks like vcr timer programming. vcr timer programming does not look good to normal humans (or to me). Peter -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads