Questions using KM with 15-1995

This is the JP1 beginners forum. There's no such thing as a stupid question in here, so post away, but this forum is just for JP1 users and people considering JP1, non-JP1 users please use the appropriate forum above!

Moderator: Moderators

Post Reply
tbsmith
Posts: 54
Joined: Thu Apr 29, 2004 8:30 am

Questions using KM with 15-1995

Post by tbsmith »

I'm finally on my way getting this remote setup (thanks again for all the help on my earlier topic)!! A few more questions....

Question 1: On the Buttons tab of KM, there are some entries in the "Button" column that have a @ in front of the cell contents (e.g. @ enter). If it were a key move, wouldn't the @ show up in the "Function" column? Also, if I go to the Keymoves Tab, no keymoves show up. And yet, when I paste it into IR, they show up as keymoves. What does the @ mean in the Function column?

Question 2: This remote has very little memory and I need to keep it below 50 bytes. It appears that the numeral buttons (0 - 9) use up much more memory that the others. If I delete the function associated with those buttons I gain a little bit of memory, but if I later try to reassign the original function, it uses up 20 bytes (about 10 button assignments). Why is this?

Question 3: When I have more than 1 question, should I post each one separately?

Thanks!
Tom
johnsfine
Site Admin
Posts: 4766
Joined: Sun Aug 10, 2003 5:00 pm
Location: Bedford, MA
Contact:

Re: Questions using KM with 15-1995

Post by johnsfine »

tbsmith wrote: Question 1: On the Buttons tab of KM, there are some entries in the "Button" column that have a @ in front of the cell contents (e.g. @ enter). If it were a key move, wouldn't the @ show up in the "Function" column?
It's a button that would require a KeyMove if used in the current device mode. You are informed of that fact whether or no you actually supply a function. Of course, if you don't supply a function it won't create the KeyMove.
tbsmith wrote: Also, if I go to the Keymoves Tab, no keymoves show up.
Those are for KeyMoves that exist for a different reason (under your direct control).

tbsmith wrote: And yet, when I paste it into IR, they show up as keymoves.
That's all keymoves associated with the upgrade regardless of reason.
tbsmith wrote:What does the @ mean in the Function column?
I don't know.

tbsmith wrote: It appears that the numeral buttons (0 - 9) use up much more memory that the others. If I delete the function associated with those buttons I gain a little bit of memory, but if I later try to reassign the original function, it uses up 20 bytes (about 10 button assignments). Why is this?
Digits are all-or-nothing. If you define one digit you get all digits. If that doesn't match a built-in digit table then it is a big chunk in the upgrade.
Mark Pierson
Expert
Posts: 3018
Joined: Sun Aug 03, 2003 12:13 am
Location: Connecticut, USA
Contact:

Re: Questions using KM with 15-1995

Post by Mark Pierson »

tbsmith wrote:What does the @ mean in the Function column?
Did you mean to say the Buttons column?

The "@" is just used as an indicator the the particular button is not part of the default key map, and will create a key move if a function is assigned to it. These key moves are combined in with the device upgrade code when pasted into IR.

The Key Moves sheet is used to create searate key moves based on the current upgrade, which can be bound to devices other than the current upgrade. On the Setup sheet, there is a Key Move Code block where these get copied from. To paste them into IR, you use the [Import] button on the Key Moves tab.
Mark
tbsmith
Posts: 54
Joined: Thu Apr 29, 2004 8:30 am

Post by tbsmith »

bsmith wrote:
What does the @ mean in the Function column?

Did you mean to say the Buttons column?
Yes, I meant to say in the Buttons column. Doh.

That answers my questions...Thanks Mark and John!! But something tells me I'll be back for more. You guys are great. And PATIENT!

Tom
Mark Pierson
Expert
Posts: 3018
Joined: Sun Aug 03, 2003 12:13 am
Location: Connecticut, USA
Contact:

Post by Mark Pierson »

tbsmith wrote:That answers my questions...
FYI, this is documented in the keymap-master-readme.txt file.
Mark
Mark Pierson
Expert
Posts: 3018
Joined: Sun Aug 03, 2003 12:13 am
Location: Connecticut, USA
Contact:

Re: Questions using KM with 15-1995

Post by Mark Pierson »

tbsmith wrote:Question 2: This remote has very little memory and I need to keep it below 50 bytes. It appears that the numeral buttons (0 - 9) use up much more memory that the others. If I delete the function associated with those buttons I gain a little bit of memory, but if I later try to reassign the original function, it uses up 20 bytes (about 10 button assignments). Why is this?
The number keys are grouped together as one entity... think of them as a "set" (the same is true of <VOL+, VOL-, MUTE> and <CHAN+, CHAN->). If a code is assigned to just one of them, all 10 require a code, even if it's a dummy code (when this happens in KM, they're padded with $00's). From your description above, it sounds like you're using a 2-byte protocol, which would indeed consume 20 bytes for the number keys.

Many 1-bytes setup codes (including upgrades) can use what we call the "number table" or "digit map". This is a built-in list of codes for the 10 number keys. In KM, if you've ever seen the message "DigitMap Enabled" in cell C7, then the upgrade is using a built-in set of codes, thereby saving 10 bytes in the upgrade itself.

Unfotunately, with the 740 processor's 50-byte limitation, an upgrade using 2-byte commands consumes 40% of that just on the number keys. After you add that to the normal overhead (anywhere from 4 to 10 or more bytes), and you really don't have much left for other functions.

There are a few ways around the limitation, though they can lead to other memory space and/or ease-of-use problems. First, you can use key moves, which reside in another area of EEPROM. But at 5 or 6 bytes each, they add up quick, considering the typical JP1 remote can store approximately 35-40. Another option is multiple upgrades, but then you're using more than 1 device button, unless you use a device toggler or device multiplexor protocol.
Mark
Post Reply