On the Subject of Copy paste into TFC

The timer is only 1/4th done are you sure this is the correct answer??

The module displays three screens, thirteen timer LEDs, sixteen hexadecimally labeled buttons, two buttons to cycle through the three stages, and three LEDs for checking the answer.

The top display shows a starting hex code. The second display shows the calculation for that stage. Calculate the answer to this and use it for the next stage. Once you finish the third calculation, enter the calculated hex code. The module submits after inputting 6 hexadecimal characters.

However there is a timer. Whenever the timer runs out, the first stage will automatically be calculated and the top display will show this calculation. All stages cycle to the left, removing the first stage and a new stage will be appended.

Upon submitting the answer, the LEDs will turn on one by one. If they are bright, that means a channel was correct. If they are not bright, a channel was incorrect. The module first shows how many were correct, so which channels were correct cannot be determined by examining the LEDs. Upon a strike, the status light changes colour to the hex code expected and resets the entire module.

For an explanation of the calculations used, see the descriptions below. AA is initially the value on the top display, and in later stages the previously calculated hex code. BB is the value given on the middle screen for the calculation

This optimized version of the manual will show a formula for each Logic gate/calculation. To make sure this is correct it is advised to use the Text Field Calculator. You can also find the text field calculator by going to KTaNE.timwi.de -> Tools -> Text field calculator (The 0x Means interpret this as hexadecimal)

NOTE: If your result is just 1 letter/number prepend a 0 to make it 2 bits

Additive average (+)

" hex(floor((0xAA+0xBB)/2)) "

Split the hexadecimal codes of AA and BB into 3 pairs, and add the first of three values of AA to the first of three values of BB. Divide this by two and round down. Repeat for the other numbers. Concatenate these pairs together again in order to get your new hex code.

Multiplicative average (×)

" hex(floor(sqrt(0xAA*0xBB))) "

Split the hexadecimal codes of AA and BB into 3 pairs, and multiply the first of three values of AA by the first of three values of BB. Take the square root of this and round down. Repeat for the other numbers. Concatenate these pairs together again in order to get your new hex code.

Inverse average (÷)

" hex(floor(2*(1/(1/0xAA+1/0xBB)))) "

Split the hexadecimal codes of AA and BB into 3 pairs, and add the inverses of the first items of AA and BB together. Take the inverse of this total, double it and round down. Repeat for the other numbers. Concatenate these pairs together again in order to get your new hex code.

Bitwise OR (∨)

" hex(0xAA|0xBB) "

Convert X and Y both to binary. Compare each bit of both AA and BB and return 1 if either or both of them is 1, otherwise return 0. Convert this back to hexadecimal to get your new hex code.

Bitwise AND (∧)

" hex(0xAA&0xBB) "

Convert X and Y both to binary. Compare each bit of both AA and BB and return 1 only if both of them are 1, otherwise return 0. Convert this back to hexadecimal to get your new hex code.

Bitwise XOR (⊻)

" hex(0xAA^|0xBB) "

Convert X and Y both to binary. Compare each bit of both AA and BB and return 1 if only one of them is 1, otherwise return 0. Convert this back to hexadecimal to get your new hex code.

Hex to binary conversion lookup table

HexBinaryHexBinaryHexBinaryHexBinary
000004010081000C1100
100015010191001D1101
2001060110A1010E1110
3001170111B1011F1111