DISCLAIMER: I\'ve collected these information from different sources. The author may revise this documentation from time to time without notice. THIS DOCUMENTATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE AUTOR BE LIABLE FOR INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY KIND ARISING FROM ANY ERROR IN THIS DOCUMENTATION, INCLUDING WITHOUT LIMITATION ANY LOSS OR INTERRUPTION OF BUSINESS, PROFITS, USE, OR DATA. |
From: Chris Dodge
This page gives some information on a PC based IR remote control system I've developed for computer control of TV, video, satellite and hifi equipment etc.
I have used an IBM compatible, so the software here is for such a machine, however I guess that it is straightforward (perhaps easier) to implement this on another type of machine.
Here are descriptions of:
IR remote control signals are modulated with a 40KHz carrier frequency, so for transmission or reception of the signal, the appropriate demodulation/modulation must take place.
The demodulated signal itself has a basic frequency which varies from manufacturer to manufacturer, but must not necessarily be exclusive to one make. Therefore, there is also a signal address, identifying the target device before an instruction is sent.
In itself, this is quite simple, but there are a couple of other signal variations which I have identified in writing the capture software. One is what I've called 'hi/lo bias' , that is the difference in length between signal highs and lows, and the second is the 'repeat' factor, i.e. how many times the signal is repeated. Some controllers repeat every signal, others do not. Quite how important these factors are, I'm not sure, however, I have tried to allow for exact reproduction of the input signal, and a bit of experimenting has shown for example, that a repeating signal is in fact a bit more reliable on a device expecting that, but produces strange results on one not expecting them!
I have interfaced this to my IBM compatible PC on the printer port, using the two pins "Paper Tray Empty" and "Printer Busy" as input, and Data lines 0 and 1 as output.
I used a GP1U52X which I think is made by Sharp, but can be bought at Radio Shack (Tandy in the UK). This is a combined IR detector and demodulator, and in effect, this is all that is needed to capture the signals, which is then fed directly to the PC. (If you have problems getting hold of this, I can send you the postal address of Tandy UK, or maybe some kind person living near a Radio Shack shop could let me know if they are willing to pop round and pick up a few if I get any requests.)
One big problem with PC interfacing is getting a reasonable timer for sampling. To simplify this, I have used an external timer, running at 100KHz (i.e. a bit higher than the Nyquist limit for a 40KHz signal). This is probably overkill, as the demodulated signal is nowhere near 40KHz, but I found this gives good results.
The timer circuit on the playback board oscillates at 40kHz, and is switched by the data from 'data 0'. I have the transmitter board on the end of about 6m cable, so I've put a de-coupling capacitor in between the power rails in case the power supply was a problem. Also, the 100nF capacitor on the IR LED line was found to improve the output signal ie. I get a much more reliable respose from a troublesome amplifier now! A 100nF cap. just happened to be at hand, maybe a different value capacitor would improve things further. Unfortunately I don't have a 'scope to look at the signals.
I wrote this stuff using Boland C++ v2.0, and have no idea how portable this is to other compilers. The progam IR is at version 1.0, i.e. not very well developed. It works ok for me, but then I wrote it! Feedback is appreciated, and I'll try and fix bugs etc. etc.
pcir.zip (95.5 KB) - exe, sources, example data file and a bit of documentation.
Once you have used the program to analyse the signals, the data is written to a file IRTEMP.DAT , which can be examined with any text editor, and if ok (it should be) copied to IRINFO.DAT for the next set of signals or testing or whatever.
Device and signal parameters are given in red, and instructions in blue. The two signals (white and red) are the input signal from the detector and the calculated signal from the file data.
So how do you go about capturing your signals?
To do this, you have to adjust the frequency, hi/low bias etc., pressing 'e' occasionally to see how you're getting on. It may be necessary to adjust the calculated signal start offset to get the two signals in phase, otherwise estimation of signal won't work very well.
If you really can't get the signal sorted out, then you can manually edit the data string - moving the highlighted figure with the cursor keys.
A HINT: Using SHIFT and the control letter will give a x10 increment/decrement in a changable parameter.
There are two files you need: IRUTILS.H and IRDEFS.H
They are used in a program in the following way:
// Program using IRDEV class // Declare required classes... IRDEV SAT; IRDEV VIDEO; int main(void) { SAT.LoadData("Sat"); // Read the data from disk VIDEO.LoadData("Video"); SAT.PlaySignal("Standby"); // Play signal "Standby" - ie turn it on SAT.PlaySignal(0); // Send signal "0" // Rest of program .... exit(0); }The "PlaySignal" routine can take an "int" argument, or a "char *" argument. The "char *" should correspond to the name of a signal in the data, and the "int" argument is converted into a the appropriate string, eg. 0 -> "Zero", 1 -> "One".....
The format of the data file (IRINFO.DAT) is explained here, but maybe you'll find it easier to simply look at an example.
I recommend creating a data file with dummy values before starting the IR program. It is more relaible if the program has to edit the data rather than create it all from scratch. Maybe the next version will be better.....
# Info for IR Remote control # Chris Dodge - May 1994
Sat Clock 1726.000000
Sat Bias 10
Sat SignalNo 27
Sat SignalLen 150
Sat Repeat 1
Sat Pause 0
Sat Signal Standby 1111111111111111000000001........
// $Id: irutils.h_v 1.1 1994/06/09 20:57:37 chris Exp chris $ // Utilities for programs using the IR remote controller // This class automatically loads the data and allows // easy calling of the various signals. // Chris Dodge - May 1994 #include "irdefs.h" // -- ASM functions -- extern int PlayIR(char*, int); // ASM - Play signal back // Global vars char Signal[SIZE]; class IRDEV { private: DeviceData DeviceDat; SigDat SigData[SIGNO]; int ReadData(char*, DeviceData*, SigDat[]); // Reads data for this device void CalcSignal(int, int, int); // Calcs signal from data public: void LoadData(char*); // Loads data from file int SigCount(); // Returns signal count void PlaySignal(char*); // Plays a signal void PlaySignal(int); // Plays a signal (numeric) }; // Loads data from disk for this device void IRDEV::LoadData(char *DevName) { if (ReadData(DevName, &DeviceDat, SigData)) { fprintf(stderr, "ERROR: Can't initialize IRDEV class - data file not found!\n"); exit(1); } return; } // Returns the no. of signals for this device int IRDEV::SigCount() { return DeviceDat.SignalNo; } // Plays the signal with the name passed void IRDEV::PlaySignal(char *Name) { int i=0, j; // Search for this string in the signal names while (iSIZE) To = SIZE; if (From >= SIZE) return; for (j=From; j Name, Dev); SigCount = 0; ValidityCount = 0; // Read the data file..... do { // Read each line.... ch = fgetc(data); ChPos = 0; type = 0; while ((ch!='\n')&&(ChPos<(SIGLEN+18))&&(ch!=EOF)) { line[ChPos] = ch; ChPos++; ch = fgetc(data); } line[ChPos] = '\0'; // Null-terminate line. // Cancel previous values otherwise they stay on NULL lines // ie. they are not cleared by scanf sprintf(ThisDev, "\0"); sprintf(Signal, "\0"); // Extract the device type and info type NoFields = sscanf(line, "%s %s", ThisDev, Info); // If this device is of the wanted type, then read data // else ignore. if (!(strncmpi(ThisDev, Dev, strlen(Dev)))) { // Act on the word type option. if (!(strcmpi(Info, "Clock"))) { NoFields = sscanf(line, "%s %s %f", ThisDev, Info, &F); DeviceDat->Clock = F; ValidityCount++; } if (!(strcmpi(Info, "Bias"))) { NoFields = sscanf(line, "%s %s %d", ThisDev, Info, &DeviceDat->Bias); ValidityCount++; } if (!(strcmpi(Info, "SignalNo"))) { NoFields = sscanf(line, "%s %s %d", ThisDev, Info, &DeviceDat->SignalNo); ValidityCount++; } if (!(strcmpi(Info, "SignalLen"))) { NoFields = sscanf(line, "%s %s %d", ThisDev, Info, &DeviceDat->SignalLen); // Check length value if (DeviceDat->SignalLen > SIGLEN) { fprintf(stderr, "*** ERROR: Required signal length too long ***"); getch(); exit(1); } ValidityCount++; } if (!(strcmpi(Info, "Pause"))) { NoFields = sscanf(line, "%s %s %d", ThisDev, Info, &DeviceDat->Pause); ValidityCount++; } if (!(strcmpi(Info, "Repeat"))) { NoFields = sscanf(line, "%s %s %d", ThisDev, Info, &DeviceDat->Repeat); ValidityCount++; } if (!(strcmpi(Info, "Signal"))) { if (SigCount == SIGNO) { fprintf(stderr, "*** Error: Too many signals ***"); printf("%s\n", line); getch(); } else { NoFields = sscanf(line, "%s %s %s %s", ThisDev, Info, SD[SigCount].Name, SD[SigCount].data); // Check signal data length, if too short, fill with 0's if ((strlen(SD[SigCount].data) SignalLen)) { for (i=(strlen(SD[SigCount].data)-1); i<(DeviceDat->SignalLen-1); i++) SD[SigCount].data[i] = '0'; SD[SigCount].data[DeviceDat->SignalLen] = '\0'; } SigCount++; } } } } while (ch != EOF); if (SigCount == 0) { fprintf(stderr, "No signals for device!"); return 1; } if (ValidityCount!=6) { fprintf(stderr, "Not enough parameter data for device!"); return 1; } fclose(data); return 0; }
// Defs for IR class, for PC IR control // // Chris Dodge #define TRUE 1 #define FALSE 0 #define SIZE 30000 // Size of signal data array #define CLKTICK 0X1C // Clock tick interrupt #define SIGLEN 250 // Maximum signal length #define SIGNO 34 // Number of signals for a device that can be held #define SAMPLEFREQ 100000 // Frequency at which the signal is sampled // Structures for holding signal data struct DeviceData{ char Name[8]; // Device name float Clock; // Basic timing speed of signal int Bias; // Unevenness in hi/low signal lengths int SignalNo; // Number of signals int SignalLen; // Length of signal (bytes) int Repeat; // No of times the signal is played int Pause; // Pause in between signal repeats }; struct SigDat { char Name[9]; // Signal name char data[SIGLEN]; // Signal data };
# Info for IR Remote control # Chris Dodge - May 1994 Sat Clock 1726.000000 Sat Bias 10 Sat SignalNo 27 Sat SignalLen 150 Sat Repeat 1 Sat Pause 0 Sat Signal Standby 111111111111111100000000100010101000101010100010100010001010001000100010001010101010101010100010001000100010001000100010001000000000000000000000000000 Sat Signal One 111111111111111100000000100010101000101010100010100010001010001000100010001000100010101010101010101000100010001000100010001000000000000000000000000000 Sat Signal Two 111111111111111100000000100010101000101010100010100010001010001000100010001010001010101010101000101000100010001000100010001000000000000000000000000000 Sat Signal Three 111111111111111100000000100010101000101010100010100010001010001000100010001000101010101010101010001000100010001000100010001000000000000000000000000000 Sat Signal Four 111111111111111100000000100010101000101010100010100010001010001000100010001000100010001010101010101010100010001000100010001000000000000000000000000000 Sat Signal Five 111111111111111100000000100010101000101010100010100010001010001000100010001010001000101010101010001010100010001000100010001000000000000000000000000000 Sat Signal Six 111111111111111100000000100010101000101010100010100010001010001000100010001000101000101010101010100010100010001000100010001000000000000000000000000000 Sat Signal Seven 111111111111111100000000100010101000101010100010100010001010001000100010001000100010100010101010101010001010001000100010001000000000000000000000000000 Sat Signal Eight 111111111111111100000000100010101000101010100010100010001010001000100010001010001010001010101010001010001010001000100010001000000000000000000000000000 Sat Signal Nine 111111111111111100000000100010101000101010100010100010001010001000100010001000101010001010101010100010001010001000100010001000000000000000000000000000 Sat Signal Zero 111111111111111100000000100010101000101010100010100010001010001000100010001010001000100010101010100010101010001000100010001000000000000000000000000000 Sat Signal Mute 111111111111111100000000100010101000101010100010100010001010001000100010001000101010001000101010101000100010101000100010001000000000000000000000000000 Sat Signal Mode 111111111111111100000000100010101000101010100010100010001010001000100010001010001010100010101010001010001000101000100010001000000000000000000000000000 Sat Signal Mo/St 111111111111111100000000100010101000101010100010100010001010001000100010001010100010001010101010001000101010001000100010001000000000000000000000000000 Sat Signal A/B 111111111111111100000000100010101000101010100010100010001010001000100010001010101010001010101000100010001000101000100010001000000000000000000000000000 Sat Signal AudioUp 111111111111111100000000100010101000101010100010100010001010001000100010001000101000100010101010101000101010001000100010001000000000000000000000000000 Sat Signal AudioDn 111111111111111100000000100010101000101010100010100010001010001000100010001000101010100010101010100010001000101000100010001000000000000000000000000000 Sat Signal ChanUp 111111111111111100000000100010101000101010100010100010001010001000100010001010001010001000101010100010100010101000100010001000000000000000000000000000 Sat Signal ChanDn 111111111111111100000000100010101000101010100010100010001010001000100010001000100010100010001010101010100010101000100010001000000000000000000000000000 Sat Signal V/H 111111111111111100000000100010101000101010100010100010001010001000100010001000100010001000100010101010101010101000100010001000000000000000000000000000 Sat Signal FreqUp 111111111111111100000000100010101000101010100010100010001010001000100010001000100010001000101010101010101010001000100010001000000000000000000000000000 Sat Signal FreqDn 111111111111111100000000100010101000101010100010100010001010001000100010001000100010101000101010101010001000101000100010001000000000000000000000000000 Sat Signal Dev 111111111111111100000000100010101000101010100010100010001010001000100010001000101000100010001010101010001010101000100010001000000000000000000000000000 Sat Signal Dec 111111111111111100000000100010101000101010100010100010001010001000100010001010100010001000101010100010001010101000100010001000000000000000000000000000 Sat Signal Int/Ext 111111111111111100000000100010101000101010100010100010001010001000100010001010001000100010001010101000101010101000100010001000000000000000000000000000 Sat Signal Store 111111111111111100000000100010101000101010100010100010001010001000100010001010100010101010101000100010100010001000100010001000000000000000000000000000 Sat Signal Erase 111111111111111100000000100010101000101010100010100010001010001000100010001010101000101010101000100010001010001000100010001000000000000000000000000000 CD Clock 2240.000000 CD Bias 1 CD SignalNo 33 CD SignalLen 150 CD Repeat 2 CD Pause 56 CD Signal Open 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001010101010101010001000101000101000101000100000000000000000 CD Signal Stop 11111111000010100010101010101010101010101000101010101010101000101000101000101000101010101010101010101010101000101000101000101000100000000000000000000 CD Signal Pause 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010100010001010101010101010001000101000101000100000000000000000 CD Signal Play 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010100010100010101010101010101010001010001000000000000000000000 CD Signal SearchDn 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010100010101010101010101010001010001010001000000000000000000000 CD Signal SearchUp 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001000101010101010100010101000101000101000100000000000000000 CD Signal SkipDn 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001010100010101000101000100010101010001000100010000000000000 CD Signal SkipUp 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010100010100010101000101010101010100010001000100000000000000000 CD Signal One 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010101010100010101010100010100010001000101000100000000000000000 CD Signal Two 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001010101000101010100010001010001000100010100010000000000000 CD Signal Three 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010100010101000101010101010100010001000101000100000000000000000 CD Signal Four 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001000101010001010101000101010001000100010100010000000000000 CD Signal Five 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010101000101000101010101000100010001000100010100010000000000000 CD Signal Six 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001010001010001010101000100010001000100010001010001000000000 CD Signal Seven 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010100010001010001010101010100010001000100010100010000000000000 CD Signal Eight 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001000100010100010101010001010001000100010001010001000000000 CD Signal Nine 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010101010001000101010101000101010001000101000100000000000000000 CD Signal Ten 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001010001010101010001000100010001000101000101010000000000000 CD Signal GtTen 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010101000101010101000101000100010001010001010100000000000000000 CD Signal Zero 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001010100010001010101000100010101000100010100010000000000000 CD Signal Program 111111111000101000101010101010101010101010001010101010101010001010001010001010001010101010100010100010101010001010101010100010101000000000000000000000 CD Signal Clear 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010101010101010100010100010100010100010101000000000000000000000 CD Signal Recall 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001010101010101000100010001010001010001010100000000000000000 CD Signal TimeMode 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001010001010001010001010001000100010001000100010001000100000 CD Signal A-BRept 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010101010001010100010101000101010100010001000100000000000000000 CD Signal Repeat 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001000100010101010001010001010001000101000100010001000000000 CD Signal Random 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001010001000101010001010001000100010101000100010001000000000 CD Signal AutoCue 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001000101000101010100010001010101010001010100000000000000000 CD Signal LevelDn 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001010101010001010100010001010001010101000100000000000000000 CD Signal LevelUp 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010101010101000101010100010100010101010001000000000000000000000 CD Signal TapeLen 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001000101000101000101000100010101010101010100000000000000000 CD Signal SideA/B 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010101000100010100010100010100010001010101010100000000000000000 CD Signal PkSearch 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001000100010001010101000100010100010101000101010000000000000 Amp Clock 1741.000000 Amp Bias 9 Amp SignalNo 15 Amp SignalLen 230 Amp Repeat 1 Amp Pause 0 Amp Signal Power 1111111111111111100000000101000101010001010001000100010100010001010001000101010100010101010101000100010100010001000100010001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Amp Signal Speak_A 1111111111111111000000001010001010100010100010001000101000100010100010001010001010100010001010001010100010001010100010100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Amp Signal Speak_B 1111111111111111000000001010001010100010100010001000101000100010100010001010100010100010001010001010001010001010100010100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Amp Signal SourceD 1111111111111111000000001010001010100010100010001000101000100010100010001010101000101010100010100010001010001000100010100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Amp Signal Aux 1111111111111111000000001010001010100010100010001000101000100010100010001010100010001010101010100010101000100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Amp Signal Tuner 1111111111111111000000001010001010100010100010001000101000100010100010001010001000101000101010101010100010100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Amp Signal Phono 1111111111111111000000001010001010100010100010001000101000100010100010001010100010100010101010100010100010100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Amp Signal CD 1111111111111111000000001010001010100010100010001000101000100010100010001010001010100010101010101000100010100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Amp Signal Tape-1 1111111111111111000000001010001010100010100010001000101000100010100010001010101010001010101010001000100010100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Amp Signal Tape-2 1111111111111111000000001010001010100010100010001000101000100010100010001010001000100010101010101010101000100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Amp Signal Video-1 1111111111111111000000001010001010100010100010001000101000100010100010001010100010001000101010101000101010100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Amp Signal Video-2 1111111111111111000000001010001010100010100010001000101000100010100010001010001010001000101010101010001010100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Amp Signal Mute 11111111111111110000000010100010101000101000100010001010001000101000100010100010100010101010101010001010001000100010001000100000000000000000000000000000000000000000000000000000000000000000000011111111111111110000100000000000000000 Amp Signal Vol_Up 1111111111111111000000001010001010100010100010001000101000100010100010001010100010101010101010001010001000100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Amp Signal Vol_Dn 1111111111111111000000001010001010100010100010001000101000100010100010001010001000101010101010101010001000100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Video Clock 1119.000000 Video Bias 15 Video SignalNo 20 Video SignalLen 200 Video Repeat 1 Video Pause 0 Video Signal Standby 10101101001100110100101101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010110100110011010010110100000000000000000000000000000000000000000000 Video Signal Stop 10110101001100101011001011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011010100110010101100101100000000000000000000000000000000000000000000 Video Signal Play 10101101001100101011001100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010110100110010101100110010000000000000000000000000000000000000000000 Video Signal FFwd 10110101001100101100101011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011010100110010110010101100000000000000000000000000000000000000000000 Video Signal Rewind 10101101001100101100101101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010110100110010110010110100000000000000000000000000000000000000000000 Video Signal Eject 10110101001100101100101100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011010100110010110010110010000000000000000000000000000000000000000000 Video Signal Jog_On 10101101001100101100110100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010110100110010110011010010000000000000000000000000000000000000000000 Video Signal Slow_Fwd 10110101001100101100110101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011010100110010110011010100000000000000000000000000000000000000000000 Video Signal Slow_Bk 10101101001100101101010011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010110100110010110101001100000000000000000000000000000000000000000000 Video Signal Stil_Fwd 1011010011010010110011010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Video Signal Stil_Bk 10110100110100101100110100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Video Signal Prog+ 10101101001100101101010101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010110100110010110101010100000000000000000000000000000000000000000000 Video Signal Prog- 10101101001100101101010100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010110100110010110101010010000000000000000000000000000000000000000000 Video Signal Sp/Lp 10110101001100101010110011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011010100110010101011001100000000000000000000000000000000000000000000 Video Signal RecMode 10101101001100110010101011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010110100110011001010101100000000000000000000000000000000000000000000 Video Signal Tuner 11010101001100101010101100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101010100110010101010110010000000000000000000000000000000000000000000 Video Signal Audio 10101101001100101101010010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010110100110010110101001010000000000000000000000000000000000000000000 Video Signal Go_To 10110101001100101011010010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011010100110010101101001010000000000000000000000000000000000000000000 Video Signal Repeat 11010101001100101010110101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101010100110010101011010100000000000000000000000000000000000000000000 Video Signal Index 11010101001100101011010101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101010100110010101101010100000000000000000000000000000000000000000000