The Upgrades Device Code Section

The upgrade section (0x100 to 0x3fe) is broken up like this:

0100-0101 pointer to the list of device code numbers
0102-0103 pointer to the list of protocol id's

Section 1:
The next section is the device info. The first byte of each device is the identifier of the protocol used (which might be one of the new protocols or it could be pointing to a protocol stored in the ROM). The second byte is always zeroes. The next few bytes indicate which buttons are being used and in what order the codes are stored. (The key mapping bytes are explained here). The next few bytes after that store the true device code info (ie, the fixed portion of the IR signal). The number of bytes used here depends on the protocol being used. Then, all the remaining bytes are the command codes of the buttons that are being programmed. The number of devices stored in this section is indicated in the first two bytes at the address pointed to by the pointer at address 0x100.

Section 2:
The next section is the protocol info. If any of the added device codes use protocols not stored in the ROM, those protocols will be added here. The number of protocols stored is indicated by the forst two bytes at the address pointed to by the pointer at address 0x0102. I haven't figured out the format of the protocol info yet (this is what I want help with). The kind of info that I expect to be stored here included the IR frequency, the format of the signal including how many bytesof info need to be read from the device info section, the format of the ONE and ZERO structures, the lead-in and lead-out strings. If the protocol uses a checksum, that info would be here. If the protocol calls for the compliment of either the device or command codes, that would also be here.

It would appear that the protocol info is stored in some sort of machine code, as the code is different between different types of remotes. For example, an added protocol in tthe old 15-1925 remote would be different to a protocol added to the 15-1994. But the format is the same between the 15-1994 and other OEM remotes such as the remote that comes with ReplayTV, which is how we were able to get the code for Replay. If you have any UEIC OEM remotes, I would like to borrow them so I can dump the memory.

Section 3:
The section is the section pointed to by the pointer at 0x100. The first two bytes show the number of device codes that have been added. The next portion lists all the device code numbers (two bytes apiece). If the device code is listed as "22 66" for example, the leading 2 means that this is a VCR code (0=cable, 1=tv, 2=vcr, 3=cd, 4=audio) and the next 3 digits are the device code in hex format, '266' translates to '0614' so this code is VCR/0614 [Note: in the Cinema 7, 2 = DVD and 5=VCR] Following the device codes, are the addresses of the device code info in section 1.

Section 4:
This section is the section pointed to by the pointer at 0x102. The first two bytes show the number of protocols that have been added. The next portion lists all the protocol id's (two bytes apiece - the leading byte contains zeroes). Following this is are the addresses of the protocol info in section 2.


Home | 6 Pin Connector | Memory Map | Key Codes | Software | The Hardware | HW: Schematics | HW: Parts | HW: Circuit