General Questions

Support forum for extenders. If you're having trouble getting one up and running, this is the place to come.

Moderator: Moderators

Post Reply
vickyg2003
Site Admin
Posts: 7104
Joined: Sat Mar 20, 2004 12:19 pm
Location: Florida
Contact:

General Questions

Post by vickyg2003 »

Well after being "paralized with fear" over using extenders, I must say that the experience has been VERY REWARDING! I'm using extenders on the 7800 and the 8811.

There are some features on the 8811 that are not on the 7800 and I'm wondering if there is anything in the 7800's that prevent the XShift capability, and the X_TV, X_VCR...X_CANCEL functions? These features are SO COOL!

Also are the JP1.2 remotes going to be extendable? Or should I go out and buy lots of JP1 remotes now?

Its been decades since I've worked with assembler and I thought nothing on earth could ever make me want to dive back in that world, but extenders have a lot of appeal.

This is so fascinating!
johnsfine
Site Admin
Posts: 4766
Joined: Sun Aug 10, 2003 5:00 pm
Location: Bedford, MA
Contact:

Re: General Questions

Post by johnsfine »

vickyg2003 wrote:There are some features on the 8811 that are not on the 7800 and I'm wondering if there is anything in the 7800's that prevent the XShift capability, and the X_TV, X_VCR...X_CANCEL functions? These features are SO COOL!
Those features would be a little harder on the 7800 than on the 8811. They might take several bytes more extender code in a 7800 than an 8811 (so several bytes less KeyMove or upgrade space left over).

The main difference is that I knew more about extender writing when I did the 8811 extender than when I did the 7800. I doubt I would ever have time to redo the 7800 extender better.
vickyg2003 wrote: Also are the JP1.2 remotes going to be extendable?
They would need a fundamentally different approach. But much more is possible and building extenders should be easier. There are some tricky support issues to be dealt with (an expert building an extender for his own use is always a lot easier than building it for general use. In JP1.2 that difference is MUCH bigger).
vickyg2003
Site Admin
Posts: 7104
Joined: Sat Mar 20, 2004 12:19 pm
Location: Florida
Contact:

Post by vickyg2003 »

an expert building an extender for his own use is always a lot easier than building it for general use. In JP1.2 that difference is MUCH bigger
I certainly understand that! I remember working with ASM was so painful. You have to have a pretty powerful motivation to delve into it.

I've been studying the ASM code that came with the 8811 trying to figure out what you are doing.

I can't find any ASM code for the 7800. I looked here and over at Yahoo. Did I miss it somewhere?
ElizabethD
Advanced Member
Posts: 2348
Joined: Mon Feb 09, 2004 12:07 pm

Post by ElizabethD »

vickyg2003 wrote:This is so fascinating!
Isn't it? It's amazing what can be and has been done.

7800 Xshift and nested macros are a dream of mine as well. Defining xshifts, x_device ... x_cancel isn't a big deal, the idea can be stolen from 1994, but the showstoppers are nested macros and no memory maps and in my case, no clue how the remotes really work.
Long ago someone was asking for source as well.It really doesn't exist, except for John.
I haven't pested John for it, because the probability of success for me is so low, that it would be a waste of his time to try to dig out a correct asm version for a handful of users.

It's a small extender. Non-data pieces can be unassembled in PB. But that still leaves so many unknowns :(
Liz
Tweeking 8910, HTPro/9811, C7-7800, 6131o, 6131n, AtlasOCAP-1056B01, RCA-RCRP05B and enjoying the ride :)
vickyg2003
Site Admin
Posts: 7104
Joined: Sat Mar 20, 2004 12:19 pm
Location: Florida
Contact:

Post by vickyg2003 »

I think it would be interesting to try even if we were not successful. It would be a good learning exercise. We at least know that extenders can be written and we have excellent examples to work from. All we can do is fail. I'd love to give this a shot.
Defining xshifts, x_device ... x_cancel isn't a big deal, the idea can be stolen from 1994, but the showstoppers are nested macros and no memory maps and in my case, no clue how the remotes really work.
I don't think this is quite correct. We could get more keys defined in IR and probably use them in macros, but it looks like the extender needs to have some flags and code to make them pressable.

I wish I could see some code snippets from the 7800 extenders to see how they emulated the V_TV, V_CBL .... stuff. The extenders I'm reading are looking at RAM from the home theater mode. Not that I'm understanding what I'm reading, but then I never understand any of this until I dig it apart. You should have seen me dig apart keymaster to get a grasp of what was going on with protocols.
unclemiltie
Expert
Posts: 1819
Joined: Wed Jan 21, 2004 12:50 pm
Location: Pittsburgh, PA

have at it!

Post by unclemiltie »

it's not too, too hard to take the assembled code out of the EEPROM and disassemble it and then try to figure out how it works. I've done it a couple of times with some other stuff. (I don't have a 7800 so no motivation to do this)

Extender writing is a real art, as I'm finding out trying to write one for the URC-6960. Every time I think I'm getting close, something comes and bites me. You think you find an entry point that is useful only to find that it clobbers something that you needed. The Kameleon extenders are even more difficult since they have to mange the screen resources as well as the upgrades, protocols and other things all without a great deal of knowledge of what hits what registers when.

It's been a tremendous learning experience though, delving into the S3C8 assembly coding. (not the only micro used by UEI by the way)

BTW, I know nothing of the JP1.2 stuff since I don't have any of those remotes.
vickyg2003
Site Admin
Posts: 7104
Joined: Sat Mar 20, 2004 12:19 pm
Location: Florida
Contact:

Post by vickyg2003 »

I don't have any jp1.2 remotes. I guess I'll look at the EEPROM next. Its interesting, the 7800 (its an old s3c8) extender doesn't show up as a device/protocol upgrade in IR.

How do you disassemble the code from EEPROM? I haven't come across that in my reading yet.

I don't expect anybody else to be interested in this, but I have a bunch of the 7800's and it would be worth my while to at least look at these extenders, although I think I'm going to make my 8811's my main remote, unless I like the new one with the LCD.
unclemiltie
Expert
Posts: 1819
Joined: Wed Jan 21, 2004 12:50 pm
Location: Pittsburgh, PA

Post by unclemiltie »

The extender won't show up as a device/protocol. The only thing that is there is the protocol that is used to load the extender. You'll see that as a keymove in the "old" keymove area (IR won't see it) and as a protocol that sets a bunch of stuff, reads the extender (part 1) from the EEPROM and then starts to execute the extender.

To disassemble the extender....



First you need to know what's in the EEPROM, the RDF will help you there. For example, what places are used for the upgrades, device settings, VPT settings, keymoves, etc. That's not code so you don't want to see it. Then you need to look at the rest of the EEPROM to see where there is stuff other than zero's (or FF in the later remotes).

Then you get the trusty S3C8 instruction manual and start decoding the instructions. There aren't lots of them so it shouldn't take that much time.

The more recent extenders come in two parts, primarly because they have to fit in RAM to run, which is only $FF in length. One part is "generally" loaded just under the new keymove area, likely where the old keymove area was before the remote was extended and it starts just after the configuration information. The other part is at the top of the EEPROM.


It's likely that all of the CALLs are into the system ROM somewhere as well as some of the long Jumps (JP's not JR's), there are some tricks on how the extenders do things that until you scratch your head a few times you won't get.


my best advice would be to disassemble the EEPROM, write it as assembler source, assemble it and then compare the hex output. Repeat until it is the same. Then you have to start figuring out the english names for stuff, since you'll see stuff like CALL 2345 and you have to figure out what that function does.

you can use some of the other assembler source for another extender to see the structure (and what some of the entry points do) and the assembler directives. Send me a private email and I'll send you what I have now for the 6960 source (IT DOES NOT WORK! but is probably much better documented than most of the other extenders, I'm doing it both as a learning exercise and since I have a couple of 6960's)


good luck, this is not easy stuff even for an accomplished assembly writer since finding out what the remote is doing inside is very difficult.
unclemiltie
Expert
Posts: 1819
Joined: Wed Jan 21, 2004 12:50 pm
Location: Pittsburgh, PA

Post by unclemiltie »

Vicky


so I got ambitious and extracted the 7800 extender and made a source file out of it. It's rough, has some comments that should help you but lots of the entry points aren't figured out. With a few hours of thought you could probably understand it.

I've posted it here:


http://www.hifi-remote.com/forums/dload ... le_id=4056

enjoy
ElizabethD
Advanced Member
Posts: 2348
Joined: Mon Feb 09, 2004 12:07 pm

Post by ElizabethD »

I thought I'll join forces, so went digging through the mess of CDs :(
We're talking about 7800ext2, right, not ext1?
I dug out old attempt at disassembling (via PB) and assembling. The main part matches unclemiltie's file :) except for one tiny area in the middle. Could the pieces from this file be useful to you two? I haven't done any of the program counter calculations and have only partial attempt at data section decoding - all bytes are there but each individual device and keyset not yet declared.
http://www.hifi-remote.com/forums/dload ... le_id=4060

Could John or anyone, please tell about these 7800 External calls
12E8 keypad scan?
1427 something about shift key?
11B0
0717
054D key header? what exactly does it do
1360 something about non-macro key?
065E
072A
1683 reloads extender?
Liz
Tweeking 8910, HTPro/9811, C7-7800, 6131o, 6131n, AtlasOCAP-1056B01, RCA-RCRP05B and enjoying the ride :)
unclemiltie
Expert
Posts: 1819
Joined: Wed Jan 21, 2004 12:50 pm
Location: Pittsburgh, PA

More complete disassembled ex2

Post by unclemiltie »

I know that Liz and Vicky are going to try to add to this, but I've done a bit more work to make this assemble and install via extinstall so taht they can get going on their project. Lots more comments, etc to complete this effort.


This is a disassembly of the 7800ex2 extender written originally by John. It's from the ir file that is in the files area, as a source appears not to exist anywhere.


The file is here:

http://www.hifi-remote.com/forums/dload ... le_id=4065


There are still a couple of entry points that I couldn't figure out what they did, but in general the extender is reasonably well understood. Maybe John can fill in some of the blanks some time when he has a free minute.

Finally, to the moderators, I can't seem to delete stuff in the files area, the previous version of this is now obsolete so it should probably be removed
The Robman
Site Owner
Posts: 21886
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Re: More complete disassembled ex2

Post by The Robman »

unclemiltie wrote:Finally, to the moderators, I can't seem to delete stuff in the files area, the previous version of this is now obsolete so it should probably be removed
If you created the file in question, you should be able to delete it. You do so by clicking on the "X" icon in the upper right corner.

If you're still unable to delete the file, post a link to it and I'll delete it, but I don't want to go searching for the file and maybe accidentally delete the wrong one.
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
Post Reply