i used a code like this to read pulse trains
if(port=0){
for pos=1to99{
while (port=1) {onbit(pos)++; delayms1}
while (port=0) {offbit(pos)++; delayms1}
}
}
that told me what exactly came out of my remote, that code is just example, it may need editing, it may be inverted on the port, an i forget exact delay time i used, maybe 100us, but from that i was able to compress the values into a few bytes and plot all my buttons,
thats before i knew what my remote type fell under