Page 1 of 1

What's involved in porting an extender?

Posted: Sun Feb 14, 2010 11:47 am
by flynwill
Question from a long-time JP1/IR user... What is involved in porting an extender to a new remote? I have a brand new URC-8820N for which I would love to have the same LKP and Macro capabilities that I use on my 8910 remotes. I see that there is an "non-N" version of the 8820, is porting just a matter of finding where the ROM entry points have moved to?

Re: Extender

Posted: Mon Feb 15, 2010 12:13 pm
by khonderd
You may want to contact vickyg2003 as she wrote the original extender and was planning on porting it herself. I was thinking of trying to port it also, but it's been a long time since I've written code so I'm not sure I'd be up to it. Let me know if you hear from her, and whether you are going to work on it. If nobody else is, I may give it a crack.

Posted: Mon Feb 15, 2010 8:13 pm
by vickyg2003
It typically takes me about 100 hours to get an extender up and running. I have a 10820N to work with, but I haven't had a spare minute, to work on this.

Posted: Mon Feb 15, 2010 11:00 pm
by unclemiltie
As one who has done it a few times I'll offer up my few cents.

First, you had better really understand how the underlying extender works. I'm not an expert in the HS08 assembler, so I have no idea how the extenders that Vicky has done behave, but I'd first get an idea of what they're doing and how they do it. This will involve some understanding of just what goes in on the unextended remote.

Second, you're going to need some help from the "experts" in here to give you an idea of how to find the entry points as well as the register usage inside of the remote. It helps if you're working from one that is similar since it'll be easier to find stuff and easier to understand what's going on inside.

Third, once you've gotten the code tweaked to "work" on your remote (i.e . you have all of the entry points and registers) you have to debug it. This is actually the harder part of the process. If you look at some of my extender sources (take a look at the 9960B01 for example) you will see a ton of conditional assembly that puts in "known" macros and then writes stuff to the E2 area at certain points so that I can see what is going on. These are very hard to debug since all you have is one LED to blink and a limited ability to write back to the E2 to see register values.

In the end, I would agree with Vicky that the process of getting one to beta testing is about 100 hours. most of it is in the debugging. UEI has a knack of making remotes just a little bit different inside so that what you thought would work right in the past doesn't work right anymore. (again, look at the assembly differences between the 6960 and 9960 in my source and you'll see what I mean)

I've done a lot in the past to try to use a single source file to build extenders for a number of remotes. This way when I find a bug in one, I can fix it in all without a lot of work. I'd recommend this as long as the HS08 assembler supports conditional assembly.

Oh, and once you're done, be prepared for lots of questions and really odd bug reports that you'll have to somehow find the time to understand and track. Although I must say that I haven't seen much action on the Atlas/Radio Shack Jp1.3 remotes lately.

(and yes, I am planning on porting the JP1.3 extender to the RCA remote, Just need to find a bit of time.

-bill

Thanks

Posted: Wed Feb 17, 2010 11:48 am
by khonderd
Thanks Bill and Vicky. Way out of my league then. I am extremely grateful for all those who take the time to write these things and then are gracious enough to share it with the rest of us.

Posted: Mon Feb 28, 2011 10:39 pm
by unclemiltie
As a data point for you who may be interested:

My change log on the source for the RCRP05b extender says this:

4/4/10 first port of the source from the Atlas extender
2/20/10 release of V1.0 of the extender


The Atlas says this (it has the most versions since it was the first port to a JP1.3 remote)

9/21/07 first port of the URC-9960B01 extender to Atlas
8/16/08 first release of the Atlas extender
12/20/08 version 2.0 of the Atlas extender
12/4/10 version 2.11 of the Atlas extender


I'm now just realizing that I have spent a ton of time on these damned things!