If bit0 of R29 is set, the signal will repeat, if it's not set it won't. If you plan on handling when to send the signal yourself if the protocol code, you should have this bit turned off. If it's turned on when you JP or CALL $0146 and the user is holding the button down, you won't come back from the call until they let the button go.
So, if you want to send the signal once, then return to the code to do something else, this bit should be turned off.
If your intent is to program the executor to send a signal after the button is released, you should have this bit turned on when you go to $0146 as that way control won't get returned to the executor until the button is released at which point you can program code to send whatever additional signals are required.
Just FYI, when you look at the raw data for an executor, here's a quick high-level of what the data represents:
bytes
1-2 = these tell you the frequency and the duty cycle (R0E,R0F)
3 = high-nibble tells you the number of fixed bytes (R10)
3 = low-nibble tells you the number of variable bytes (R11)
4-5 = this is a JP command that skips over the data block, which follows:
6-7 = Even though I've listed this as being 2 bytes, the number of bytes is actually variable, but 2 bytes is the most common. The MSB of each byte, if set, indicates that another byte follows. This data ends up in registers R28 thru R2C. There is alot of control built into these bytes, see below.
8 = number of bits to be used from the fixed bytes (R12)
9 = number of bits to be used from the variable bytes (R13)
10-11 = ON time for logical ONE burst pair (R14,R15)
12-13 = OFF time for logical ONE burst pair (R16,R17)
14-15 = ON time for logical ZERO burst pair (R18,R19)
16-17 = OFF time for logical ZERO burst pair (R1A,R1B)
18-19 = LEAD-OUT time (or sometimes TOTAL TIME, based on R29.6) (R1C,R1D)
20-21 = ON time for lead-in burst pair (R1E,R1F)
22-23 = OFF time for lead-in ONE burst pair (R20,R21)
24 = length in bits of 2nd fixed byte [only when R29.4 is set] (R22)
25 = minimum times to repeat the signal (R23)
26 = length in bits of 2nd variable byte (R24)
Now for the control bytes starting with R28:
Code: Select all
R28 bits:
0-1 words to send in device code portion of IR signal
0 = nothing
1 = single word of R12 bits
2 = word of R12 bits followed by word of R22 bits
3 = all protocol's fixed parameters starting from the R01-th (R12 bits each)
2-3 words to send in command code portion of IR signal
0 = nothing
1 = single word of R13 bits
2 = word of R13 bits followed by word of R24 bits
3 = all protocol's variable parameters (R13 bits each)
4-5 how to compose the signal (! = complement)
0 = device - command
1 = device - command - !device - !command
2 = device - !device - command - !command
3 = command - device
6 0/1 is Lead Out gap adjusted for total frame length (Off as Total)
7 is R29 present?
0 = no
1 = yes
R29 bits
0-1 does the signal repeat while button is held down?
0 = no
1 = yes
2 = Ch+/-, Vol+/-, FF, Rew
3 = No data bits in repeat
2-3 how to send lead-in burst pair???
0 = nothing
1 = always RR1E/RR20
2 = RR1E/RR20 the first time only, nothing afterwards
3 = RR1E/RR20 the first time, @D0 the following times
4 R23 is valid
5-6 Lead Out On style
0 = [-LO]
1 = [LI], [-LO]
2 = [One On, -LO]
3 = [LI], [One On, -LO]
7 is R2A present?
0 = no
1 = yes
R2A bits
0-1 how to send data for device code
0 = send data as-is
1 = send 0 after every bit
2 = send 1 after every bit
3 = send every bit twice
2-3 how to send data for command code
0 = send data as-is
1 = send 0 after every bit
2 = send 1 after every bit
3 = send every bit twice
4 Send zero backwards (bi-phase) ?
0 = no
1 = yes
5 send burst pair RR18/(RR14+RR16+RR1A) instead of RR18/RR1A
7 is R2B present?
0 = no
1 = yes
R2B bits
0-1 special stuff
1 = XOR the device code with #$78 and put it in R08
3 = use four bits to send two bits (1000 = 0, 0100 = 1, 0010 = 2, 0001 = 3)
5 use alt lead out?
7 is R2C present?
0 = no
1 = yes
R2C bits
6 prepend 1 to every word added to the IR signal, and append the following:
R2C.5 parity
R2C.4 inverted parity
R2C.3 two 0's
R2C.2 one 0