saved between 424 and 478 bytes in the LoL Shield driver, replaced bit
shifting with conditional branches in the framebuffer conversion routine
This commit is contained in:
parent
057160a298
commit
f4d9d55626
|
@ -292,160 +292,158 @@ static void compose_cycle(uint8_t const cycle, uint8_t plane) {
|
|||
uint8_t pins_h = sink_h = pgm_read_byte(&sink_h_cycle[cycle]);
|
||||
|
||||
// convert framebuffer to LoL Shield cycles on Arduino Mega 1280/2560
|
||||
// (I could have done this with a lookup table, but that would be slower as
|
||||
// non-constant bit shifts are quite expensive on AVR)
|
||||
// NOTE: (0,0) is UPPER RIGHT in the Borgware realm
|
||||
if (plane < NUMPLANE) {
|
||||
switch(cycle) {
|
||||
case 0:
|
||||
pins_b |= (0x02u & p[ 0]) << 6; // x= 1, y= 0, mapped pin D13
|
||||
pins_b |= (0x02u & p[ 2]) << 5; // x= 1, y= 1, mapped pin D12
|
||||
pins_b |= (0x02u & p[ 4]) << 4; // x= 1, y= 2, mapped pin D11
|
||||
pins_b |= (0x02u & p[ 6]) << 3; // x= 1, y= 3, mapped pin D10
|
||||
pins_e |= (0x02u & p[16]) << 2; // x= 1, y= 8, mapped pin D5
|
||||
pins_h |= (0x02u & p[ 8]) << 5; // x= 1, y= 4, mapped pin D9
|
||||
pins_h |= (0x02u & p[10]) << 4; // x= 1, y= 5, mapped pin D8
|
||||
pins_h |= (0x02u & p[12]) << 3; // x= 1, y= 6, mapped pin D7
|
||||
pins_h |= (0x02u & p[14]) << 2; // x= 1, y= 7, mapped pin D6
|
||||
if (0x02u & p[ 0]) pins_b |= 0x80; // x= 1, y= 0, mapped pin D13
|
||||
if (0x02u & p[ 2]) pins_b |= 0x40; // x= 1, y= 1, mapped pin D12
|
||||
if (0x02u & p[ 4]) pins_b |= 0x20; // x= 1, y= 2, mapped pin D11
|
||||
if (0x02u & p[ 6]) pins_b |= 0x10; // x= 1, y= 3, mapped pin D10
|
||||
if (0x02u & p[ 8]) pins_h |= 0x40; // x= 1, y= 4, mapped pin D9
|
||||
if (0x02u & p[10]) pins_h |= 0x20; // x= 1, y= 5, mapped pin D8
|
||||
if (0x02u & p[12]) pins_h |= 0x10; // x= 1, y= 6, mapped pin D7
|
||||
if (0x02u & p[14]) pins_h |= 0x08; // x= 1, y= 7, mapped pin D6
|
||||
if (0x02u & p[16]) pins_e |= 0x08; // x= 1, y= 8, mapped pin D5
|
||||
break;
|
||||
case 1:
|
||||
pins_b |= (0x08u & p[ 0]) << 4; // x= 3, y= 0, mapped pin D13
|
||||
pins_b |= (0x08u & p[ 2]) << 3; // x= 3, y= 1, mapped pin D12
|
||||
pins_b |= (0x08u & p[ 4]) << 2; // x= 3, y= 2, mapped pin D11
|
||||
pins_b |= (0x08u & p[ 6]) << 1; // x= 3, y= 3, mapped pin D10
|
||||
pins_e |= (0x08u & p[16]); // x= 3, y= 8, mapped pin D5
|
||||
pins_h |= (0x08u & p[ 8]) << 3; // x= 3, y= 4, mapped pin D9
|
||||
pins_h |= (0x08u & p[10]) << 2; // x= 3, y= 5, mapped pin D8
|
||||
pins_h |= (0x08u & p[12]) << 1; // x= 3, y= 6, mapped pin D7
|
||||
pins_h |= (0x08u & p[14]); // x= 3, y= 7, mapped pin D6
|
||||
if (0x08u & p[ 0]) pins_b |= 0x80; // x= 3, y= 0, mapped pin D13
|
||||
if (0x08u & p[ 2]) pins_b |= 0x40; // x= 3, y= 1, mapped pin D12
|
||||
if (0x08u & p[ 4]) pins_b |= 0x20; // x= 3, y= 2, mapped pin D11
|
||||
if (0x08u & p[ 6]) pins_b |= 0x10; // x= 3, y= 3, mapped pin D10
|
||||
if (0x08u & p[ 8]) pins_h |= 0x40; // x= 3, y= 4, mapped pin D9
|
||||
if (0x08u & p[10]) pins_h |= 0x20; // x= 3, y= 5, mapped pin D8
|
||||
if (0x08u & p[12]) pins_h |= 0x10; // x= 3, y= 6, mapped pin D7
|
||||
pins_e |= (0x08u & p[16]); // x= 3, y= 8, mapped pin D5
|
||||
pins_h |= (0x08u & p[14]); // x= 3, y= 7, mapped pin D6
|
||||
break;
|
||||
case 2:
|
||||
pins_b |= (0x20u & p[ 0]) << 2; // x= 5, y= 0, mapped pin D13
|
||||
pins_b |= (0x20u & p[ 2]) << 1; // x= 5, y= 1, mapped pin D12
|
||||
pins_b |= (0x20u & p[ 4]); // x= 5, y= 2, mapped pin D11
|
||||
pins_b |= (0x20u & p[ 6]) >> 1; // x= 5, y= 3, mapped pin D10
|
||||
pins_e |= (0x20u & p[16]) >> 2; // x= 5, y= 8, mapped pin D5
|
||||
pins_h |= (0x20u & p[ 8]) << 1; // x= 5, y= 4, mapped pin D9
|
||||
pins_h |= (0x20u & p[10]); // x= 5, y= 5, mapped pin D8
|
||||
pins_h |= (0x20u & p[12]) >> 1; // x= 5, y= 6, mapped pin D7
|
||||
pins_h |= (0x20u & p[14]) >> 2; // x= 5, y= 7, mapped pin D6
|
||||
if (0x20u & p[ 0]) pins_b |= 0x80; // x= 5, y= 0, mapped pin D13
|
||||
if (0x20u & p[ 2]) pins_b |= 0x40; // x= 5, y= 1, mapped pin D12
|
||||
if (0x20u & p[ 6]) pins_b |= 0x10; // x= 5, y= 3, mapped pin D10
|
||||
if (0x20u & p[ 8]) pins_h |= 0x40; // x= 5, y= 4, mapped pin D9
|
||||
if (0x20u & p[12]) pins_h |= 0x10; // x= 5, y= 6, mapped pin D7
|
||||
if (0x20u & p[14]) pins_h |= 0x08; // x= 5, y= 7, mapped pin D6
|
||||
if (0x20u & p[16]) pins_e |= 0x08; // x= 5, y= 8, mapped pin D5
|
||||
pins_b |= (0x20u & p[ 4]); // x= 5, y= 2, mapped pin D11
|
||||
pins_h |= (0x20u & p[10]); // x= 5, y= 5, mapped pin D8
|
||||
break;
|
||||
case 3:
|
||||
pins_b |= (0x20u & p[ 1]) << 2; // x=13, y= 0, mapped pin D13
|
||||
pins_b |= (0x20u & p[ 3]) << 1; // x=13, y= 1, mapped pin D12
|
||||
pins_b |= (0x20u & p[ 5]); // x=13, y= 2, mapped pin D11
|
||||
pins_b |= (0x20u & p[ 7]) >> 1; // x=13, y= 3, mapped pin D10
|
||||
pins_e |= (0x01u & p[16]) << 4; // x= 0, y= 8, mapped pin D2
|
||||
pins_e |= (0x04u & p[16]) << 3; // x= 2, y= 8, mapped pin D3
|
||||
pins_g |= (0x10u & p[16]) << 1; // x= 4, y= 8, mapped pin D4
|
||||
pins_h |= (0x20u & p[ 9]) << 1; // x=13, y= 4, mapped pin D9
|
||||
pins_h |= (0x20u & p[11]); // x=13, y= 5, mapped pin D8
|
||||
pins_h |= (0x20u & p[13]) >> 1; // x=13, y= 6, mapped pin D7
|
||||
pins_h |= (0x20u & p[15]) >> 2; // x=13, y= 7, mapped pin D6
|
||||
if (0x01u & p[16]) pins_e |= 0x10; // x= 0, y= 8, mapped pin D2
|
||||
if (0x04u & p[16]) pins_e |= 0x20; // x= 2, y= 8, mapped pin D3
|
||||
if (0x10u & p[16]) pins_g |= 0x20; // x= 4, y= 8, mapped pin D4
|
||||
if (0x20u & p[ 1]) pins_b |= 0x80; // x=13, y= 0, mapped pin D13
|
||||
if (0x20u & p[ 3]) pins_b |= 0x40; // x=13, y= 1, mapped pin D12
|
||||
if (0x20u & p[ 7]) pins_b |= 0x10; // x=13, y= 3, mapped pin D10
|
||||
if (0x20u & p[ 9]) pins_h |= 0x40; // x=13, y= 4, mapped pin D9
|
||||
if (0x20u & p[13]) pins_h |= 0x10; // x=13, y= 6, mapped pin D7
|
||||
if (0x20u & p[15]) pins_h |= 0x08; // x=13, y= 7, mapped pin D6
|
||||
pins_b |= (0x20u & p[ 5]); // x=13, y= 2, mapped pin D11
|
||||
pins_h |= (0x20u & p[11]); // x=13, y= 5, mapped pin D8
|
||||
break;
|
||||
case 4:
|
||||
pins_b |= (0x10u & p[ 1]) << 3; // x=12, y= 0, mapped pin D13
|
||||
pins_b |= (0x10u & p[ 3]) << 2; // x=12, y= 1, mapped pin D12
|
||||
pins_b |= (0x10u & p[ 5]) << 1; // x=12, y= 2, mapped pin D11
|
||||
pins_b |= (0x10u & p[ 7]); // x=12, y= 3, mapped pin D10
|
||||
pins_e |= (0x01u & p[14]) << 4; // x= 0, y= 7, mapped pin D2
|
||||
pins_e |= (0x04u & p[14]) << 3; // x= 2, y= 7, mapped pin D3
|
||||
pins_e |= (0x20u & p[17]) >> 2; // x=13, y= 8, mapped pin D5
|
||||
pins_g |= (0x10u & p[14]) << 1; // x= 4, y= 7, mapped pin D4
|
||||
pins_h |= (0x10u & p[ 9]) << 2; // x=12, y= 4, mapped pin D9
|
||||
pins_h |= (0x10u & p[11]) << 1; // x=12, y= 5, mapped pin D8
|
||||
pins_h |= (0x10u & p[13]); // x=12, y= 6, mapped pin D7
|
||||
if (0x01u & p[14]) pins_e |= 0x10; // x= 0, y= 7, mapped pin D2
|
||||
if (0x04u & p[14]) pins_e |= 0x20; // x= 2, y= 7, mapped pin D3
|
||||
if (0x10u & p[ 1]) pins_b |= 0x80; // x=12, y= 0, mapped pin D13
|
||||
if (0x10u & p[ 3]) pins_b |= 0x40; // x=12, y= 1, mapped pin D12
|
||||
if (0x10u & p[ 5]) pins_b |= 0x20; // x=12, y= 2, mapped pin D11
|
||||
if (0x10u & p[ 9]) pins_h |= 0x40; // x=12, y= 4, mapped pin D9
|
||||
if (0x10u & p[11]) pins_h |= 0x20; // x=12, y= 5, mapped pin D8
|
||||
if (0x10u & p[14]) pins_g |= 0x20; // x= 4, y= 7, mapped pin D4
|
||||
if (0x20u & p[17]) pins_e |= 0x08; // x=13, y= 8, mapped pin D5
|
||||
pins_b |= (0x10u & p[ 7]); // x=12, y= 3, mapped pin D10
|
||||
pins_h |= (0x10u & p[13]); // x=12, y= 6, mapped pin D7
|
||||
break;
|
||||
case 5:
|
||||
pins_b |= (0x08u & p[ 1]) << 4; // x=11, y= 0, mapped pin D13
|
||||
pins_b |= (0x08u & p[ 3]) << 3; // x=11, y= 1, mapped pin D12
|
||||
pins_b |= (0x08u & p[ 5]) << 2; // x=11, y= 2, mapped pin D11
|
||||
pins_b |= (0x08u & p[ 7]) << 1; // x=11, y= 3, mapped pin D10
|
||||
pins_e |= (0x01u & p[12]) << 4; // x= 0, y= 6, mapped pin D2
|
||||
pins_e |= (0x04u & p[12]) << 3; // x= 2, y= 6, mapped pin D3
|
||||
pins_e |= (0x10u & p[17]) >> 1; // x=12, y= 8, mapped pin D5
|
||||
pins_g |= (0x10u & p[12]) << 1; // x= 4, y= 6, mapped pin D4
|
||||
pins_h |= (0x08u & p[ 9]) << 3; // x=11, y= 4, mapped pin D9
|
||||
pins_h |= (0x08u & p[11]) << 2; // x=11, y= 5, mapped pin D8
|
||||
pins_h |= (0x10u & p[15]) >> 1; // x=12, y= 7, mapped pin D6
|
||||
if (0x01u & p[12]) pins_e |= 0x10; // x= 0, y= 6, mapped pin D2
|
||||
if (0x04u & p[12]) pins_e |= 0x20; // x= 2, y= 6, mapped pin D3
|
||||
if (0x08u & p[ 1]) pins_b |= 0x80; // x=11, y= 0, mapped pin D13
|
||||
if (0x08u & p[ 3]) pins_b |= 0x40; // x=11, y= 1, mapped pin D12
|
||||
if (0x08u & p[ 5]) pins_b |= 0x20; // x=11, y= 2, mapped pin D11
|
||||
if (0x08u & p[ 7]) pins_b |= 0x10; // x=11, y= 3, mapped pin D10
|
||||
if (0x08u & p[ 9]) pins_h |= 0x40; // x=11, y= 4, mapped pin D9
|
||||
if (0x08u & p[11]) pins_h |= 0x20; // x=11, y= 5, mapped pin D8
|
||||
if (0x10u & p[12]) pins_g |= 0x20; // x= 4, y= 6, mapped pin D4
|
||||
if (0x10u & p[15]) pins_h |= 0x08; // x=12, y= 7, mapped pin D6
|
||||
if (0x10u & p[17]) pins_e |= 0x08; // x=12, y= 8, mapped pin D5
|
||||
break;
|
||||
case 6:
|
||||
pins_b |= (0x04u & p[ 1]) << 5; // x=10, y= 0, mapped pin D13
|
||||
pins_b |= (0x04u & p[ 3]) << 4; // x=10, y= 1, mapped pin D12
|
||||
pins_b |= (0x04u & p[ 5]) << 3; // x=10, y= 2, mapped pin D11
|
||||
pins_b |= (0x04u & p[ 7]) << 2; // x=10, y= 3, mapped pin D10
|
||||
pins_e |= (0x01u & p[10]) << 4; // x= 0, y= 5, mapped pin D2
|
||||
pins_e |= (0x04u & p[10]) << 3; // x= 2, y= 5, mapped pin D3
|
||||
pins_e |= (0x08u & p[17]); // x=11, y= 8, mapped pin D5
|
||||
pins_g |= (0x10u & p[10]) << 1; // x= 4, y= 5, mapped pin D4
|
||||
pins_h |= (0x04u & p[ 9]) << 4; // x=10, y= 4, mapped pin D9
|
||||
pins_h |= (0x08u & p[13]) << 1; // x=11, y= 6, mapped pin D7
|
||||
pins_h |= (0x08u & p[15]); // x=11, y= 7, mapped pin D6
|
||||
if (0x01u & p[10]) pins_e |= 0x10; // x= 0, y= 5, mapped pin D2
|
||||
if (0x04u & p[ 1]) pins_b |= 0x80; // x=10, y= 0, mapped pin D13
|
||||
if (0x04u & p[ 3]) pins_b |= 0x40; // x=10, y= 1, mapped pin D12
|
||||
if (0x04u & p[ 5]) pins_b |= 0x20; // x=10, y= 2, mapped pin D11
|
||||
if (0x04u & p[ 7]) pins_b |= 0x10; // x=10, y= 3, mapped pin D10
|
||||
if (0x04u & p[ 9]) pins_h |= 0x40; // x=10, y= 4, mapped pin D9
|
||||
if (0x04u & p[10]) pins_e |= 0x20; // x= 2, y= 5, mapped pin D3
|
||||
if (0x08u & p[13]) pins_h |= 0x10; // x=11, y= 6, mapped pin D7
|
||||
if (0x10u & p[10]) pins_g |= 0x20; // x= 4, y= 5, mapped pin D4
|
||||
pins_e |= (0x08u & p[17]); // x=11, y= 8, mapped pin D5
|
||||
pins_h |= (0x08u & p[15]); // x=11, y= 7, mapped pin D6
|
||||
break;
|
||||
case 7:
|
||||
pins_b |= (0x02u & p[ 1]) << 6; // x= 9, y= 0, mapped pin D13
|
||||
pins_b |= (0x02u & p[ 3]) << 5; // x= 9, y= 1, mapped pin D12
|
||||
pins_b |= (0x02u & p[ 5]) << 4; // x= 9, y= 2, mapped pin D11
|
||||
pins_b |= (0x02u & p[ 7]) << 3; // x= 9, y= 3, mapped pin D10
|
||||
pins_e |= (0x01u & p[ 8]) << 4; // x= 0, y= 4, mapped pin D2
|
||||
pins_e |= (0x04u & p[ 8]) << 3; // x= 2, y= 4, mapped pin D3
|
||||
pins_e |= (0x04u & p[17]) << 1; // x=10, y= 8, mapped pin D5
|
||||
pins_g |= (0x10u & p[ 8]) << 1; // x= 4, y= 4, mapped pin D4
|
||||
pins_h |= (0x04u & p[11]) << 3; // x=10, y= 5, mapped pin D8
|
||||
pins_h |= (0x04u & p[13]) << 2; // x=10, y= 6, mapped pin D7
|
||||
pins_h |= (0x04u & p[15]) << 1; // x=10, y= 7, mapped pin D6
|
||||
if (0x01u & p[ 8]) pins_e |= 0x10; // x= 0, y= 4, mapped pin D2
|
||||
if (0x02u & p[ 1]) pins_b |= 0x80; // x= 9, y= 0, mapped pin D13
|
||||
if (0x02u & p[ 3]) pins_b |= 0x40; // x= 9, y= 1, mapped pin D12
|
||||
if (0x02u & p[ 5]) pins_b |= 0x20; // x= 9, y= 2, mapped pin D11
|
||||
if (0x02u & p[ 7]) pins_b |= 0x10; // x= 9, y= 3, mapped pin D10
|
||||
if (0x04u & p[ 8]) pins_e |= 0x20; // x= 2, y= 4, mapped pin D3
|
||||
if (0x04u & p[11]) pins_h |= 0x20; // x=10, y= 5, mapped pin D8
|
||||
if (0x04u & p[13]) pins_h |= 0x10; // x=10, y= 6, mapped pin D7
|
||||
if (0x04u & p[15]) pins_h |= 0x08; // x=10, y= 7, mapped pin D6
|
||||
if (0x04u & p[17]) pins_e |= 0x08; // x=10, y= 8, mapped pin D5
|
||||
if (0x10u & p[ 8]) pins_g |= 0x20; // x= 4, y= 4, mapped pin D4
|
||||
break;
|
||||
case 8:
|
||||
pins_b |= (0x01u & p[ 1]) << 7; // x= 8, y= 0, mapped pin D13
|
||||
pins_b |= (0x01u & p[ 3]) << 6; // x= 8, y= 1, mapped pin D12
|
||||
pins_b |= (0x01u & p[ 5]) << 5; // x= 8, y= 2, mapped pin D11
|
||||
pins_e |= (0x01u & p[ 6]) << 4; // x= 0, y= 3, mapped pin D2
|
||||
pins_e |= (0x02u & p[17]) << 2; // x= 9, y= 8, mapped pin D5
|
||||
pins_e |= (0x04u & p[ 6]) << 3; // x= 2, y= 3, mapped pin D3
|
||||
pins_g |= (0x10u & p[ 6]) << 1; // x= 4, y= 3, mapped pin D4
|
||||
pins_h |= (0x02u & p[ 9]) << 5; // x= 9, y= 4, mapped pin D9
|
||||
pins_h |= (0x02u & p[11]) << 4; // x= 9, y= 5, mapped pin D8
|
||||
pins_h |= (0x02u & p[13]) << 3; // x= 9, y= 6, mapped pin D7
|
||||
pins_h |= (0x02u & p[15]) << 2; // x= 9, y= 7, mapped pin D6
|
||||
if (0x01u & p[ 1]) pins_b |= 0x80; // x= 8, y= 0, mapped pin D13
|
||||
if (0x01u & p[ 3]) pins_b |= 0x40; // x= 8, y= 1, mapped pin D12
|
||||
if (0x01u & p[ 5]) pins_b |= 0x20; // x= 8, y= 2, mapped pin D11
|
||||
if (0x01u & p[ 6]) pins_e |= 0x10; // x= 0, y= 3, mapped pin D2
|
||||
if (0x02u & p[ 9]) pins_h |= 0x40; // x= 9, y= 4, mapped pin D9
|
||||
if (0x02u & p[11]) pins_h |= 0x20; // x= 9, y= 5, mapped pin D8
|
||||
if (0x02u & p[13]) pins_h |= 0x10; // x= 9, y= 6, mapped pin D7
|
||||
if (0x02u & p[15]) pins_h |= 0x08; // x= 9, y= 7, mapped pin D6
|
||||
if (0x02u & p[17]) pins_e |= 0x08; // x= 9, y= 8, mapped pin D5
|
||||
if (0x04u & p[ 6]) pins_e |= 0x20; // x= 2, y= 3, mapped pin D3
|
||||
if (0x10u & p[ 6]) pins_g |= 0x20; // x= 4, y= 3, mapped pin D4
|
||||
break;
|
||||
case 9:
|
||||
pins_b |= (0x01u & p[ 7]) << 4; // x= 8, y= 3, mapped pin D10
|
||||
pins_b |= (0x80u & p[ 0]); // x= 7, y= 0, mapped pin D13
|
||||
pins_b |= (0x80u & p[ 2]) >> 1; // x= 7, y= 1, mapped pin D12
|
||||
pins_e |= (0x01u & p[ 4]) << 4; // x= 0, y= 2, mapped pin D2
|
||||
pins_e |= (0x01u & p[17]) << 3; // x= 8, y= 8, mapped pin D5
|
||||
pins_e |= (0x04u & p[ 4]) << 3; // x= 2, y= 2, mapped pin D3
|
||||
pins_g |= (0x10u & p[ 4]) << 1; // x= 4, y= 2, mapped pin D4
|
||||
pins_h |= (0x01u & p[ 9]) << 6; // x= 8, y= 4, mapped pin D9
|
||||
pins_h |= (0x01u & p[11]) << 5; // x= 8, y= 5, mapped pin D8
|
||||
pins_h |= (0x01u & p[13]) << 4; // x= 8, y= 6, mapped pin D7
|
||||
pins_h |= (0x01u & p[15]) << 3; // x= 8, y= 7, mapped pin D6
|
||||
if (0x01u & p[ 4]) pins_e |= 0x10; // x= 0, y= 2, mapped pin D2
|
||||
if (0x01u & p[ 7]) pins_b |= 0x10; // x= 8, y= 3, mapped pin D10
|
||||
if (0x01u & p[ 9]) pins_h |= 0x40; // x= 8, y= 4, mapped pin D9
|
||||
if (0x01u & p[11]) pins_h |= 0x20; // x= 8, y= 5, mapped pin D8
|
||||
if (0x01u & p[13]) pins_h |= 0x10; // x= 8, y= 6, mapped pin D7
|
||||
if (0x01u & p[15]) pins_h |= 0x08; // x= 8, y= 7, mapped pin D6
|
||||
if (0x01u & p[17]) pins_e |= 0x08; // x= 8, y= 8, mapped pin D5
|
||||
if (0x04u & p[ 4]) pins_e |= 0x20; // x= 2, y= 2, mapped pin D3
|
||||
if (0x10u & p[ 4]) pins_g |= 0x20; // x= 4, y= 2, mapped pin D4
|
||||
if (0x80u & p[ 2]) pins_b |= 0x40; // x= 7, y= 1, mapped pin D12
|
||||
pins_b |= (0x80u & p[ 0]); // x= 7, y= 0, mapped pin D13
|
||||
break;
|
||||
case 10:
|
||||
pins_b |= (0x40u & p[ 0]) << 1; // x= 6, y= 0, mapped pin D13
|
||||
pins_b |= (0x80u & p[ 4]) >> 2; // x= 7, y= 2, mapped pin D11
|
||||
pins_b |= (0x80u & p[ 6]) >> 3; // x= 7, y= 3, mapped pin D10
|
||||
pins_e |= (0x01u & p[ 2]) << 4; // x= 0, y= 1, mapped pin D2
|
||||
pins_e |= (0x04u & p[ 2]) << 3; // x= 2, y= 1, mapped pin D3
|
||||
pins_e |= (0x80u & p[16]) >> 4; // x= 7, y= 8, mapped pin D5
|
||||
pins_g |= (0x10u & p[ 2]) << 1; // x= 4, y= 1, mapped pin D4
|
||||
pins_h |= (0x80u & p[ 8]) >> 1; // x= 7, y= 4, mapped pin D9
|
||||
pins_h |= (0x80u & p[10]) >> 2; // x= 7, y= 5, mapped pin D8
|
||||
pins_h |= (0x80u & p[12]) >> 3; // x= 7, y= 6, mapped pin D7
|
||||
pins_h |= (0x80u & p[14]) >> 4; // x= 7, y= 7, mapped pin D6
|
||||
if (0x01u & p[ 2]) pins_e |= 0x10; // x= 0, y= 1, mapped pin D2
|
||||
if (0x04u & p[ 2]) pins_e |= 0x20; // x= 2, y= 1, mapped pin D3
|
||||
if (0x10u & p[ 2]) pins_g |= 0x20; // x= 4, y= 1, mapped pin D4
|
||||
if (0x40u & p[ 0]) pins_b |= 0x80; // x= 6, y= 0, mapped pin D13
|
||||
if (0x80u & p[ 4]) pins_b |= 0x20; // x= 7, y= 2, mapped pin D11
|
||||
if (0x80u & p[ 6]) pins_b |= 0x10; // x= 7, y= 3, mapped pin D10
|
||||
if (0x80u & p[ 8]) pins_h |= 0x40; // x= 7, y= 4, mapped pin D9
|
||||
if (0x80u & p[10]) pins_h |= 0x20; // x= 7, y= 5, mapped pin D8
|
||||
if (0x80u & p[12]) pins_h |= 0x10; // x= 7, y= 6, mapped pin D7
|
||||
if (0x80u & p[14]) pins_h |= 0x08; // x= 7, y= 7, mapped pin D6
|
||||
if (0x80u & p[16]) pins_e |= 0x08; // x= 7, y= 8, mapped pin D5
|
||||
break;
|
||||
case 11:
|
||||
pins_b |= (0x40u & p[ 2]); // x= 6, y= 1, mapped pin D12
|
||||
pins_b |= (0x40u & p[ 4]) >> 1; // x= 6, y= 2, mapped pin D11
|
||||
pins_b |= (0x40u & p[ 6]) >> 2; // x= 6, y= 3, mapped pin D10
|
||||
pins_e |= (0x01u & p[ 0]) << 4; // x= 0, y= 0, mapped pin D2
|
||||
pins_e |= (0x04u & p[ 0]) << 3; // x= 2, y= 0, mapped pin D3
|
||||
pins_e |= (0x40u & p[16]) >> 3; // x= 6, y= 8, mapped pin D5
|
||||
pins_g |= (0x10u & p[ 0]) << 1; // x= 4, y= 0, mapped pin D4
|
||||
pins_h |= (0x40u & p[ 8]); // x= 6, y= 4, mapped pin D9
|
||||
pins_h |= (0x40u & p[10]) >> 1; // x= 6, y= 5, mapped pin D8
|
||||
pins_h |= (0x40u & p[12]) >> 2; // x= 6, y= 6, mapped pin D7
|
||||
pins_h |= (0x40u & p[14]) >> 3; // x= 6, y= 7, mapped pin D6
|
||||
if (0x01u & p[ 0]) pins_e |= 0x10; // x= 0, y= 0, mapped pin D2
|
||||
if (0x04u & p[ 0]) pins_e |= 0x20; // x= 2, y= 0, mapped pin D3
|
||||
if (0x10u & p[ 0]) pins_g |= 0x20; // x= 4, y= 0, mapped pin D4
|
||||
if (0x40u & p[ 4]) pins_b |= 0x20; // x= 6, y= 2, mapped pin D11
|
||||
if (0x40u & p[ 6]) pins_b |= 0x10; // x= 6, y= 3, mapped pin D10
|
||||
if (0x40u & p[10]) pins_h |= 0x20; // x= 6, y= 5, mapped pin D8
|
||||
if (0x40u & p[12]) pins_h |= 0x10; // x= 6, y= 6, mapped pin D7
|
||||
if (0x40u & p[14]) pins_h |= 0x08; // x= 6, y= 7, mapped pin D6
|
||||
if (0x40u & p[16]) pins_e |= 0x08; // x= 6, y= 8, mapped pin D5
|
||||
pins_b |= (0x40u & p[ 2]); // x= 6, y= 1, mapped pin D12
|
||||
pins_h |= (0x40u & p[ 8]); // x= 6, y= 4, mapped pin D9
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -501,154 +499,154 @@ static void compose_cycle(uint8_t const cycle, uint8_t plane) {
|
|||
if (plane < NUMPLANE) {
|
||||
switch(cycle) {
|
||||
case 0:
|
||||
pins_b |= (0x02u & p[ 4]) << 6; // x= 1, y= 2, mapped pin D11
|
||||
pins_b |= (0x02u & p[ 6]) << 5; // x= 1, y= 3, mapped pin D10
|
||||
pins_b |= (0x02u & p[ 8]) << 4; // x= 1, y= 4, mapped pin D9
|
||||
pins_b |= (0x02u & p[10]) << 3; // x= 1, y= 5, mapped pin D8
|
||||
pins_c |= (0x02u & p[ 0]) << 6; // x= 1, y= 0, mapped pin D13
|
||||
pins_c |= (0x02u & p[16]) << 5; // x= 1, y= 8, mapped pin D5
|
||||
pins_d |= (0x02u & p[ 2]) << 5; // x= 1, y= 1, mapped pin D12
|
||||
pins_d |= (0x02u & p[14]) << 6; // x= 1, y= 7, mapped pin D6
|
||||
pins_e |= (0x02u & p[12]) << 5; // x= 1, y= 6, mapped pin D7
|
||||
if (0x02u & p[ 0]) pins_c |= 0x80; // x= 1, y= 0, mapped pin D13
|
||||
if (0x02u & p[ 2]) pins_d |= 0x40; // x= 1, y= 1, mapped pin D12
|
||||
if (0x02u & p[ 4]) pins_b |= 0x80; // x= 1, y= 2, mapped pin D11
|
||||
if (0x02u & p[ 6]) pins_b |= 0x40; // x= 1, y= 3, mapped pin D10
|
||||
if (0x02u & p[ 8]) pins_b |= 0x20; // x= 1, y= 4, mapped pin D9
|
||||
if (0x02u & p[10]) pins_b |= 0x10; // x= 1, y= 5, mapped pin D8
|
||||
if (0x02u & p[12]) pins_e |= 0x40; // x= 1, y= 6, mapped pin D7
|
||||
if (0x02u & p[14]) pins_d |= 0x80; // x= 1, y= 7, mapped pin D6
|
||||
if (0x02u & p[16]) pins_c |= 0x40; // x= 1, y= 8, mapped pin D5
|
||||
break;
|
||||
case 1:
|
||||
pins_b |= (0x08u & p[ 4]) << 4; // x= 3, y= 2, mapped pin D11
|
||||
pins_b |= (0x08u & p[ 6]) << 3; // x= 3, y= 3, mapped pin D10
|
||||
pins_b |= (0x08u & p[ 8]) << 2; // x= 3, y= 4, mapped pin D9
|
||||
pins_b |= (0x08u & p[10]) << 1; // x= 3, y= 5, mapped pin D8
|
||||
pins_c |= (0x08u & p[ 0]) << 4; // x= 3, y= 0, mapped pin D13
|
||||
pins_c |= (0x08u & p[16]) << 3; // x= 3, y= 8, mapped pin D5
|
||||
pins_d |= (0x08u & p[ 2]) << 3; // x= 3, y= 1, mapped pin D12
|
||||
pins_d |= (0x08u & p[14]) << 4; // x= 3, y= 7, mapped pin D6
|
||||
pins_e |= (0x08u & p[12]) << 3; // x= 3, y= 6, mapped pin D7
|
||||
if (0x08u & p[ 0]) pins_c |= 0x80; // x= 3, y= 0, mapped pin D13
|
||||
if (0x08u & p[ 2]) pins_d |= 0x40; // x= 3, y= 1, mapped pin D12
|
||||
if (0x08u & p[ 4]) pins_b |= 0x80; // x= 3, y= 2, mapped pin D11
|
||||
if (0x08u & p[ 6]) pins_b |= 0x40; // x= 3, y= 3, mapped pin D10
|
||||
if (0x08u & p[ 8]) pins_b |= 0x20; // x= 3, y= 4, mapped pin D9
|
||||
if (0x08u & p[10]) pins_b |= 0x10; // x= 3, y= 5, mapped pin D8
|
||||
if (0x08u & p[12]) pins_e |= 0x40; // x= 3, y= 6, mapped pin D7
|
||||
if (0x08u & p[14]) pins_d |= 0x80; // x= 3, y= 7, mapped pin D6
|
||||
if (0x08u & p[16]) pins_c |= 0x40; // x= 3, y= 8, mapped pin D5
|
||||
break;
|
||||
case 2:
|
||||
pins_b |= (0x20u & p[ 4]) << 2; // x= 5, y= 2, mapped pin D11
|
||||
pins_b |= (0x20u & p[ 6]) << 1; // x= 5, y= 3, mapped pin D10
|
||||
pins_b |= (0x20u & p[ 8]); // x= 5, y= 4, mapped pin D9
|
||||
pins_b |= (0x20u & p[10]) >> 1; // x= 5, y= 5, mapped pin D8
|
||||
pins_c |= (0x20u & p[ 0]) << 2; // x= 5, y= 0, mapped pin D13
|
||||
pins_c |= (0x20u & p[16]) << 1; // x= 5, y= 8, mapped pin D5
|
||||
pins_d |= (0x20u & p[ 2]) << 1; // x= 5, y= 1, mapped pin D12
|
||||
pins_d |= (0x20u & p[14]) << 2; // x= 5, y= 7, mapped pin D6
|
||||
pins_e |= (0x20u & p[12]) << 1; // x= 5, y= 6, mapped pin D7
|
||||
if (0x20u & p[ 0]) pins_c |= 0x80; // x= 5, y= 0, mapped pin D13
|
||||
if (0x20u & p[ 2]) pins_d |= 0x40; // x= 5, y= 1, mapped pin D12
|
||||
if (0x20u & p[ 4]) pins_b |= 0x80; // x= 5, y= 2, mapped pin D11
|
||||
if (0x20u & p[ 6]) pins_b |= 0x40; // x= 5, y= 3, mapped pin D10
|
||||
if (0x20u & p[10]) pins_b |= 0x10; // x= 5, y= 5, mapped pin D8
|
||||
if (0x20u & p[12]) pins_e |= 0x40; // x= 5, y= 6, mapped pin D7
|
||||
if (0x20u & p[14]) pins_d |= 0x80; // x= 5, y= 7, mapped pin D6
|
||||
if (0x20u & p[16]) pins_c |= 0x40; // x= 5, y= 8, mapped pin D5
|
||||
pins_b |= (0x20u & p[ 8]); // x= 5, y= 4, mapped pin D9
|
||||
break;
|
||||
case 3:
|
||||
pins_b |= (0x20u & p[ 5]) << 2; // x=13, y= 2, mapped pin D11
|
||||
pins_b |= (0x20u & p[ 7]) << 1; // x=13, y= 3, mapped pin D10
|
||||
pins_b |= (0x20u & p[ 9]); // x=13, y= 4, mapped pin D9
|
||||
pins_b |= (0x20u & p[11]) >> 1; // x=13, y= 5, mapped pin D8
|
||||
pins_c |= (0x20u & p[ 1]) << 2; // x=13, y= 0, mapped pin D13
|
||||
pins_d |= (0x01u & p[16]) << 1; // x= 0, y= 8, mapped pin D2
|
||||
pins_d |= (0x04u & p[16]) >> 2; // x= 2, y= 8, mapped pin D3
|
||||
pins_d |= (0x10u & p[16]); // x= 4, y= 8, mapped pin D4
|
||||
pins_d |= (0x20u & p[ 3]) << 1; // x=13, y= 1, mapped pin D12
|
||||
pins_d |= (0x20u & p[15]) << 2; // x=13, y= 7, mapped pin D6
|
||||
pins_e |= (0x20u & p[13]) << 1; // x=13, y= 6, mapped pin D7
|
||||
if (0x01u & p[16]) pins_d |= 0x02; // x= 0, y= 8, mapped pin D2
|
||||
if (0x04u & p[16]) pins_d |= 0x01; // x= 2, y= 8, mapped pin D3
|
||||
if (0x20u & p[ 1]) pins_c |= 0x80; // x=13, y= 0, mapped pin D13
|
||||
if (0x20u & p[ 3]) pins_d |= 0x40; // x=13, y= 1, mapped pin D12
|
||||
if (0x20u & p[ 5]) pins_b |= 0x80; // x=13, y= 2, mapped pin D11
|
||||
if (0x20u & p[ 7]) pins_b |= 0x40; // x=13, y= 3, mapped pin D10
|
||||
if (0x20u & p[11]) pins_b |= 0x10; // x=13, y= 5, mapped pin D8
|
||||
if (0x20u & p[13]) pins_e |= 0x40; // x=13, y= 6, mapped pin D7
|
||||
if (0x20u & p[15]) pins_d |= 0x80; // x=13, y= 7, mapped pin D6
|
||||
pins_b |= (0x20u & p[ 9]); // x=13, y= 4, mapped pin D9
|
||||
pins_d |= (0x10u & p[16]); // x= 4, y= 8, mapped pin D4
|
||||
break;
|
||||
case 4:
|
||||
pins_b |= (0x10u & p[ 5]) << 3; // x=12, y= 2, mapped pin D11
|
||||
pins_b |= (0x10u & p[ 7]) << 2; // x=12, y= 3, mapped pin D10
|
||||
pins_b |= (0x10u & p[ 9]) << 1; // x=12, y= 4, mapped pin D9
|
||||
pins_b |= (0x10u & p[11]); // x=12, y= 5, mapped pin D8
|
||||
pins_c |= (0x10u & p[ 1]) << 3; // x=12, y= 0, mapped pin D13
|
||||
pins_c |= (0x20u & p[17]) << 1; // x=13, y= 8, mapped pin D5
|
||||
pins_d |= (0x01u & p[14]) << 1; // x= 0, y= 7, mapped pin D2
|
||||
pins_d |= (0x04u & p[14]) >> 2; // x= 2, y= 7, mapped pin D3
|
||||
pins_d |= (0x10u & p[ 3]) << 2; // x=12, y= 1, mapped pin D12
|
||||
pins_d |= (0x10u & p[14]); // x= 4, y= 7, mapped pin D4
|
||||
pins_e |= (0x10u & p[13]) << 2; // x=12, y= 6, mapped pin D7
|
||||
if (0x01u & p[14]) pins_d |= 0x02; // x= 0, y= 7, mapped pin D2
|
||||
if (0x04u & p[14]) pins_d |= 0x01; // x= 2, y= 7, mapped pin D3
|
||||
if (0x10u & p[ 1]) pins_c |= 0x80; // x=12, y= 0, mapped pin D13
|
||||
if (0x10u & p[ 3]) pins_d |= 0x40; // x=12, y= 1, mapped pin D12
|
||||
if (0x10u & p[ 5]) pins_b |= 0x80; // x=12, y= 2, mapped pin D11
|
||||
if (0x10u & p[ 7]) pins_b |= 0x40; // x=12, y= 3, mapped pin D10
|
||||
if (0x10u & p[ 9]) pins_b |= 0x20; // x=12, y= 4, mapped pin D9
|
||||
if (0x10u & p[13]) pins_e |= 0x40; // x=12, y= 6, mapped pin D7
|
||||
if (0x20u & p[17]) pins_c |= 0x40; // x=13, y= 8, mapped pin D5
|
||||
pins_b |= (0x10u & p[11]); // x=12, y= 5, mapped pin D8
|
||||
pins_d |= (0x10u & p[14]); // x= 4, y= 7, mapped pin D4
|
||||
break;
|
||||
case 5:
|
||||
pins_b |= (0x08u & p[ 5]) << 4; // x=11, y= 2, mapped pin D11
|
||||
pins_b |= (0x08u & p[ 7]) << 3; // x=11, y= 3, mapped pin D10
|
||||
pins_b |= (0x08u & p[ 9]) << 2; // x=11, y= 4, mapped pin D9
|
||||
pins_b |= (0x08u & p[11]) << 1; // x=11, y= 5, mapped pin D8
|
||||
pins_c |= (0x08u & p[ 1]) << 4; // x=11, y= 0, mapped pin D13
|
||||
pins_c |= (0x10u & p[17]) << 2; // x=12, y= 8, mapped pin D5
|
||||
pins_d |= (0x01u & p[12]) << 1; // x= 0, y= 6, mapped pin D2
|
||||
pins_d |= (0x04u & p[12]) >> 2; // x= 2, y= 6, mapped pin D3
|
||||
pins_d |= (0x08u & p[ 3]) << 3; // x=11, y= 1, mapped pin D12
|
||||
pins_d |= (0x10u & p[12]); // x= 4, y= 6, mapped pin D4
|
||||
pins_d |= (0x10u & p[15]) << 3; // x=12, y= 7, mapped pin D6
|
||||
if (0x01u & p[12]) pins_d |= 0x02; // x= 0, y= 6, mapped pin D2
|
||||
if (0x04u & p[12]) pins_d |= 0x01; // x= 2, y= 6, mapped pin D3
|
||||
if (0x08u & p[ 1]) pins_c |= 0x80; // x=11, y= 0, mapped pin D13
|
||||
if (0x08u & p[ 3]) pins_d |= 0x40; // x=11, y= 1, mapped pin D12
|
||||
if (0x08u & p[ 5]) pins_b |= 0x80; // x=11, y= 2, mapped pin D11
|
||||
if (0x08u & p[ 7]) pins_b |= 0x40; // x=11, y= 3, mapped pin D10
|
||||
if (0x08u & p[ 9]) pins_b |= 0x20; // x=11, y= 4, mapped pin D9
|
||||
if (0x08u & p[11]) pins_b |= 0x10; // x=11, y= 5, mapped pin D8
|
||||
if (0x10u & p[15]) pins_d |= 0x80; // x=12, y= 7, mapped pin D6
|
||||
if (0x10u & p[17]) pins_c |= 0x40; // x=12, y= 8, mapped pin D5
|
||||
pins_d |= (0x10u & p[12]); // x= 4, y= 6, mapped pin D4
|
||||
break;
|
||||
case 6:
|
||||
pins_b |= (0x04u & p[ 5]) << 5; // x=10, y= 2, mapped pin D11
|
||||
pins_b |= (0x04u & p[ 7]) << 4; // x=10, y= 3, mapped pin D10
|
||||
pins_b |= (0x04u & p[ 9]) << 3; // x=10, y= 4, mapped pin D9
|
||||
pins_c |= (0x04u & p[ 1]) << 5; // x=10, y= 0, mapped pin D13
|
||||
pins_c |= (0x08u & p[17]) << 3; // x=11, y= 8, mapped pin D5
|
||||
pins_d |= (0x01u & p[10]) << 1; // x= 0, y= 5, mapped pin D2
|
||||
pins_d |= (0x04u & p[ 3]) << 4; // x=10, y= 1, mapped pin D12
|
||||
pins_d |= (0x04u & p[10]) >> 2; // x= 2, y= 5, mapped pin D3
|
||||
pins_d |= (0x08u & p[15]) << 4; // x=11, y= 7, mapped pin D6
|
||||
pins_d |= (0x10u & p[10]); // x= 4, y= 5, mapped pin D4
|
||||
pins_e |= (0x08u & p[13]) << 3; // x=11, y= 6, mapped pin D7
|
||||
if (0x01u & p[10]) pins_d |= 0x02; // x= 0, y= 5, mapped pin D2
|
||||
if (0x04u & p[ 1]) pins_c |= 0x80; // x=10, y= 0, mapped pin D13
|
||||
if (0x04u & p[ 3]) pins_d |= 0x40; // x=10, y= 1, mapped pin D12
|
||||
if (0x04u & p[ 5]) pins_b |= 0x80; // x=10, y= 2, mapped pin D11
|
||||
if (0x04u & p[ 7]) pins_b |= 0x40; // x=10, y= 3, mapped pin D10
|
||||
if (0x04u & p[ 9]) pins_b |= 0x20; // x=10, y= 4, mapped pin D9
|
||||
if (0x04u & p[10]) pins_d |= 0x01; // x= 2, y= 5, mapped pin D3
|
||||
if (0x08u & p[13]) pins_e |= 0x40; // x=11, y= 6, mapped pin D7
|
||||
if (0x08u & p[15]) pins_d |= 0x80; // x=11, y= 7, mapped pin D6
|
||||
if (0x08u & p[17]) pins_c |= 0x40; // x=11, y= 8, mapped pin D5
|
||||
pins_d |= (0x10u & p[10]); // x= 4, y= 5, mapped pin D4
|
||||
break;
|
||||
case 7:
|
||||
pins_b |= (0x02u & p[ 5]) << 6; // x= 9, y= 2, mapped pin D11
|
||||
pins_b |= (0x02u & p[ 7]) << 5; // x= 9, y= 3, mapped pin D10
|
||||
pins_b |= (0x04u & p[11]) << 2; // x=10, y= 5, mapped pin D8
|
||||
pins_c |= (0x02u & p[ 1]) << 6; // x= 9, y= 0, mapped pin D13
|
||||
pins_c |= (0x04u & p[17]) << 4; // x=10, y= 8, mapped pin D5
|
||||
pins_d |= (0x01u & p[ 8]) << 1; // x= 0, y= 4, mapped pin D2
|
||||
pins_d |= (0x02u & p[ 3]) << 5; // x= 9, y= 1, mapped pin D12
|
||||
pins_d |= (0x04u & p[ 8]) >> 2; // x= 2, y= 4, mapped pin D3
|
||||
pins_d |= (0x04u & p[15]) << 5; // x=10, y= 7, mapped pin D6
|
||||
pins_d |= (0x10u & p[ 8]); // x= 4, y= 4, mapped pin D4
|
||||
pins_e |= (0x04u & p[13]) << 4; // x=10, y= 6, mapped pin D7
|
||||
if (0x01u & p[ 8]) pins_d |= 0x02; // x= 0, y= 4, mapped pin D2
|
||||
if (0x02u & p[ 1]) pins_c |= 0x80; // x= 9, y= 0, mapped pin D13
|
||||
if (0x02u & p[ 3]) pins_d |= 0x40; // x= 9, y= 1, mapped pin D12
|
||||
if (0x02u & p[ 5]) pins_b |= 0x80; // x= 9, y= 2, mapped pin D11
|
||||
if (0x02u & p[ 7]) pins_b |= 0x40; // x= 9, y= 3, mapped pin D10
|
||||
if (0x04u & p[ 8]) pins_d |= 0x01; // x= 2, y= 4, mapped pin D3
|
||||
if (0x04u & p[11]) pins_b |= 0x10; // x=10, y= 5, mapped pin D8
|
||||
if (0x04u & p[13]) pins_e |= 0x40; // x=10, y= 6, mapped pin D7
|
||||
if (0x04u & p[15]) pins_d |= 0x80; // x=10, y= 7, mapped pin D6
|
||||
if (0x04u & p[17]) pins_c |= 0x40; // x=10, y= 8, mapped pin D5
|
||||
pins_d |= (0x10u & p[ 8]); // x= 4, y= 4, mapped pin D4
|
||||
break;
|
||||
case 8:
|
||||
pins_b |= (0x01u & p[ 5]) << 7; // x= 8, y= 2, mapped pin D11
|
||||
pins_b |= (0x02u & p[ 9]) << 4; // x= 9, y= 4, mapped pin D9
|
||||
pins_b |= (0x02u & p[11]) << 3; // x= 9, y= 5, mapped pin D8
|
||||
pins_c |= (0x01u & p[ 1]) << 7; // x= 8, y= 0, mapped pin D13
|
||||
pins_c |= (0x02u & p[17]) << 5; // x= 9, y= 8, mapped pin D5
|
||||
pins_d |= (0x01u & p[ 3]) << 6; // x= 8, y= 1, mapped pin D12
|
||||
pins_d |= (0x01u & p[ 6]) << 1; // x= 0, y= 3, mapped pin D2
|
||||
pins_d |= (0x02u & p[15]) << 6; // x= 9, y= 7, mapped pin D6
|
||||
pins_d |= (0x04u & p[ 6]) >> 2; // x= 2, y= 3, mapped pin D3
|
||||
pins_d |= (0x10u & p[ 6]); // x= 4, y= 3, mapped pin D4
|
||||
pins_e |= (0x02u & p[13]) << 5; // x= 9, y= 6, mapped pin D7
|
||||
if (0x01u & p[ 1]) pins_c |= 0x80; // x= 8, y= 0, mapped pin D13
|
||||
if (0x01u & p[ 3]) pins_d |= 0x40; // x= 8, y= 1, mapped pin D12
|
||||
if (0x01u & p[ 5]) pins_b |= 0x80; // x= 8, y= 2, mapped pin D11
|
||||
if (0x01u & p[ 6]) pins_d |= 0x02; // x= 0, y= 3, mapped pin D2
|
||||
if (0x02u & p[ 9]) pins_b |= 0x20; // x= 9, y= 4, mapped pin D9
|
||||
if (0x02u & p[11]) pins_b |= 0x10; // x= 9, y= 5, mapped pin D8
|
||||
if (0x02u & p[13]) pins_e |= 0x40; // x= 9, y= 6, mapped pin D7
|
||||
if (0x02u & p[15]) pins_d |= 0x80; // x= 9, y= 7, mapped pin D6
|
||||
if (0x02u & p[17]) pins_c |= 0x40; // x= 9, y= 8, mapped pin D5
|
||||
if (0x04u & p[ 6]) pins_d |= 0x01; // x= 2, y= 3, mapped pin D3
|
||||
pins_d |= (0x10u & p[ 6]); // x= 4, y= 3, mapped pin D4
|
||||
break;
|
||||
case 9:
|
||||
pins_b |= (0x01u & p[ 7]) << 6; // x= 8, y= 3, mapped pin D10
|
||||
pins_b |= (0x01u & p[ 9]) << 5; // x= 8, y= 4, mapped pin D9
|
||||
pins_b |= (0x01u & p[11]) << 4; // x= 8, y= 5, mapped pin D8
|
||||
pins_c |= (0x01u & p[17]) << 6; // x= 8, y= 8, mapped pin D5
|
||||
pins_c |= (0x80u & p[ 0]); // x= 7, y= 0, mapped pin D13
|
||||
pins_d |= (0x01u & p[ 4]) << 1; // x= 0, y= 2, mapped pin D2
|
||||
pins_d |= (0x01u & p[15]) << 7; // x= 8, y= 7, mapped pin D6
|
||||
pins_d |= (0x04u & p[ 4]) >> 2; // x= 2, y= 2, mapped pin D3
|
||||
pins_d |= (0x10u & p[ 4]); // x= 4, y= 2, mapped pin D4
|
||||
pins_d |= (0x80u & p[ 2]) >> 1; // x= 7, y= 1, mapped pin D12
|
||||
pins_e |= (0x01u & p[13]) << 6; // x= 8, y= 6, mapped pin D7
|
||||
if (0x01u & p[ 4]) pins_d |= 0x02; // x= 0, y= 2, mapped pin D2
|
||||
if (0x01u & p[ 7]) pins_b |= 0x40; // x= 8, y= 3, mapped pin D10
|
||||
if (0x01u & p[ 9]) pins_b |= 0x20; // x= 8, y= 4, mapped pin D9
|
||||
if (0x01u & p[11]) pins_b |= 0x10; // x= 8, y= 5, mapped pin D8
|
||||
if (0x01u & p[13]) pins_e |= 0x40; // x= 8, y= 6, mapped pin D7
|
||||
if (0x01u & p[15]) pins_d |= 0x80; // x= 8, y= 7, mapped pin D6
|
||||
if (0x01u & p[17]) pins_c |= 0x40; // x= 8, y= 8, mapped pin D5
|
||||
if (0x04u & p[ 4]) pins_d |= 0x01; // x= 2, y= 2, mapped pin D3
|
||||
if (0x80u & p[ 2]) pins_d |= 0x40; // x= 7, y= 1, mapped pin D12
|
||||
pins_c |= (0x80u & p[ 0]); // x= 7, y= 0, mapped pin D13
|
||||
pins_d |= (0x10u & p[ 4]); // x= 4, y= 2, mapped pin D4
|
||||
break;
|
||||
case 10:
|
||||
pins_b |= (0x80u & p[ 4]); // x= 7, y= 2, mapped pin D11
|
||||
pins_b |= (0x80u & p[ 6]) >> 1; // x= 7, y= 3, mapped pin D10
|
||||
pins_b |= (0x80u & p[ 8]) >> 2; // x= 7, y= 4, mapped pin D9
|
||||
pins_b |= (0x80u & p[10]) >> 3; // x= 7, y= 5, mapped pin D8
|
||||
pins_c |= (0x40u & p[ 0]) << 1; // x= 6, y= 0, mapped pin D13
|
||||
pins_c |= (0x80u & p[16]) >> 1; // x= 7, y= 8, mapped pin D5
|
||||
pins_d |= (0x01u & p[ 2]) << 1; // x= 0, y= 1, mapped pin D2
|
||||
pins_d |= (0x04u & p[ 2]) >> 2; // x= 2, y= 1, mapped pin D3
|
||||
pins_d |= (0x10u & p[ 2]); // x= 4, y= 1, mapped pin D4
|
||||
pins_d |= (0x80u & p[14]); // x= 7, y= 7, mapped pin D6
|
||||
pins_e |= (0x80u & p[12]) >> 1; // x= 7, y= 6, mapped pin D7
|
||||
if (0x01u & p[ 2]) pins_d |= 0x02; // x= 0, y= 1, mapped pin D2
|
||||
if (0x04u & p[ 2]) pins_d |= 0x01; // x= 2, y= 1, mapped pin D3
|
||||
if (0x40u & p[ 0]) pins_c |= 0x80; // x= 6, y= 0, mapped pin D13
|
||||
if (0x80u & p[ 6]) pins_b |= 0x40; // x= 7, y= 3, mapped pin D10
|
||||
if (0x80u & p[ 8]) pins_b |= 0x20; // x= 7, y= 4, mapped pin D9
|
||||
if (0x80u & p[10]) pins_b |= 0x10; // x= 7, y= 5, mapped pin D8
|
||||
if (0x80u & p[12]) pins_e |= 0x40; // x= 7, y= 6, mapped pin D7
|
||||
if (0x80u & p[16]) pins_c |= 0x40; // x= 7, y= 8, mapped pin D5
|
||||
pins_b |= (0x80u & p[ 4]); // x= 7, y= 2, mapped pin D11
|
||||
pins_d |= (0x10u & p[ 2]); // x= 4, y= 1, mapped pin D4
|
||||
pins_d |= (0x80u & p[14]); // x= 7, y= 7, mapped pin D6
|
||||
break;
|
||||
case 11:
|
||||
pins_b |= (0x40u & p[ 4]) << 1; // x= 6, y= 2, mapped pin D11
|
||||
pins_b |= (0x40u & p[ 6]); // x= 6, y= 3, mapped pin D10
|
||||
pins_b |= (0x40u & p[ 8]) >> 1; // x= 6, y= 4, mapped pin D9
|
||||
pins_b |= (0x40u & p[10]) >> 2; // x= 6, y= 5, mapped pin D8
|
||||
pins_c |= (0x40u & p[16]); // x= 6, y= 8, mapped pin D5
|
||||
pins_d |= (0x01u & p[ 0]) << 1; // x= 0, y= 0, mapped pin D2
|
||||
pins_d |= (0x04u & p[ 0]) >> 2; // x= 2, y= 0, mapped pin D3
|
||||
pins_d |= (0x10u & p[ 0]); // x= 4, y= 0, mapped pin D4
|
||||
pins_d |= (0x40u & p[ 2]); // x= 6, y= 1, mapped pin D12
|
||||
pins_d |= (0x40u & p[14]) << 1; // x= 6, y= 7, mapped pin D6
|
||||
pins_e |= (0x40u & p[12]); // x= 6, y= 6, mapped pin D7
|
||||
if (0x01u & p[ 0]) pins_d |= 0x02; // x= 0, y= 0, mapped pin D2
|
||||
if (0x04u & p[ 0]) pins_d |= 0x01; // x= 2, y= 0, mapped pin D3
|
||||
if (0x40u & p[ 4]) pins_b |= 0x80; // x= 6, y= 2, mapped pin D11
|
||||
if (0x40u & p[ 8]) pins_b |= 0x20; // x= 6, y= 4, mapped pin D9
|
||||
if (0x40u & p[10]) pins_b |= 0x10; // x= 6, y= 5, mapped pin D8
|
||||
if (0x40u & p[14]) pins_d |= 0x80; // x= 6, y= 7, mapped pin D6
|
||||
pins_b |= (0x40u & p[ 6]); // x= 6, y= 3, mapped pin D10
|
||||
pins_c |= (0x40u & p[16]); // x= 6, y= 8, mapped pin D5
|
||||
pins_d |= (0x10u & p[ 0]); // x= 4, y= 0, mapped pin D4
|
||||
pins_d |= (0x40u & p[ 2]); // x= 6, y= 1, mapped pin D12
|
||||
pins_e |= (0x40u & p[12]); // x= 6, y= 6, mapped pin D7
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -689,160 +687,158 @@ static void compose_cycle(uint8_t const cycle, uint8_t plane) {
|
|||
uint8_t pins_b = sink_b = pgm_read_byte(&sink_b_cycle[cycle]);
|
||||
|
||||
// convert Borgware-2D framebuffer to LoL Shield cycles on Diavolino
|
||||
// (I could have done this with a lookup table, but that would be slower as
|
||||
// non-constant bit shifts are quite expensive on AVR)
|
||||
// NOTE: (0,0) is UPPER RIGHT in the Borgware realm
|
||||
if (plane < NUMPLANE) {
|
||||
switch(cycle) {
|
||||
case 0:
|
||||
pins_b |= (0x02u & p[ 0]) << 4; // x= 1, y= 0, mapped pin D13
|
||||
pins_b |= (0x02u & p[ 2]) << 3; // x= 1, y= 1, mapped pin D12
|
||||
pins_b |= (0x02u & p[ 4]) << 2; // x= 1, y= 2, mapped pin D11
|
||||
pins_b |= (0x02u & p[ 6]) << 1; // x= 1, y= 3, mapped pin D10
|
||||
pins_b |= (0x02u & p[ 8]); // x= 1, y= 4, mapped pin D9
|
||||
pins_b |= (0x02u & p[10]) >> 1; // x= 1, y= 5, mapped pin D8
|
||||
pins_d |= (0x02u & p[12]) << 6; // x= 1, y= 6, mapped pin D7
|
||||
pins_d |= (0x02u & p[14]) << 5; // x= 1, y= 7, mapped pin D6
|
||||
pins_d |= (0x02u & p[16]) << 4; // x= 1, y= 8, mapped pin D5
|
||||
if (0x02u & p[ 0]) pins_b |= 0x20; // x= 1, y= 0, mapped pin D13
|
||||
if (0x02u & p[ 2]) pins_b |= 0x10; // x= 1, y= 1, mapped pin D12
|
||||
if (0x02u & p[ 4]) pins_b |= 0x08; // x= 1, y= 2, mapped pin D11
|
||||
if (0x02u & p[ 6]) pins_b |= 0x04; // x= 1, y= 3, mapped pin D10
|
||||
if (0x02u & p[10]) pins_b |= 0x01; // x= 1, y= 5, mapped pin D8
|
||||
if (0x02u & p[12]) pins_d |= 0x80; // x= 1, y= 6, mapped pin D7
|
||||
if (0x02u & p[14]) pins_d |= 0x40; // x= 1, y= 7, mapped pin D6
|
||||
if (0x02u & p[16]) pins_d |= 0x20; // x= 1, y= 8, mapped pin D5
|
||||
pins_b |= (0x02u & p[ 8]); // x= 1, y= 4, mapped pin D9
|
||||
break;
|
||||
case 1:
|
||||
pins_b |= (0x08u & p[ 0]) << 2; // x= 3, y= 0, mapped pin D13
|
||||
pins_b |= (0x08u & p[ 2]) << 1; // x= 3, y= 1, mapped pin D12
|
||||
pins_b |= (0x08u & p[ 4]); // x= 3, y= 2, mapped pin D11
|
||||
pins_b |= (0x08u & p[ 6]) >> 1; // x= 3, y= 3, mapped pin D10
|
||||
pins_b |= (0x08u & p[ 8]) >> 2; // x= 3, y= 4, mapped pin D9
|
||||
pins_b |= (0x08u & p[10]) >> 3; // x= 3, y= 5, mapped pin D8
|
||||
pins_d |= (0x08u & p[12]) << 4; // x= 3, y= 6, mapped pin D7
|
||||
pins_d |= (0x08u & p[14]) << 3; // x= 3, y= 7, mapped pin D6
|
||||
pins_d |= (0x08u & p[16]) << 2; // x= 3, y= 8, mapped pin D5
|
||||
if (0x08u & p[ 0]) pins_b |= 0x20; // x= 3, y= 0, mapped pin D13
|
||||
if (0x08u & p[ 2]) pins_b |= 0x10; // x= 3, y= 1, mapped pin D12
|
||||
if (0x08u & p[ 6]) pins_b |= 0x04; // x= 3, y= 3, mapped pin D10
|
||||
if (0x08u & p[ 8]) pins_b |= 0x02; // x= 3, y= 4, mapped pin D9
|
||||
if (0x08u & p[10]) pins_b |= 0x01; // x= 3, y= 5, mapped pin D8
|
||||
if (0x08u & p[12]) pins_d |= 0x80; // x= 3, y= 6, mapped pin D7
|
||||
if (0x08u & p[14]) pins_d |= 0x40; // x= 3, y= 7, mapped pin D6
|
||||
if (0x08u & p[16]) pins_d |= 0x20; // x= 3, y= 8, mapped pin D5
|
||||
pins_b |= (0x08u & p[ 4]); // x= 3, y= 2, mapped pin D11
|
||||
break;
|
||||
case 2:
|
||||
pins_b |= (0x20u & p[ 0]); // x= 5, y= 0, mapped pin D13
|
||||
pins_b |= (0x20u & p[ 2]) >> 1; // x= 5, y= 1, mapped pin D12
|
||||
pins_b |= (0x20u & p[ 4]) >> 2; // x= 5, y= 2, mapped pin D11
|
||||
pins_b |= (0x20u & p[ 6]) >> 3; // x= 5, y= 3, mapped pin D10
|
||||
pins_b |= (0x20u & p[ 8]) >> 4; // x= 5, y= 4, mapped pin D9
|
||||
pins_b |= (0x20u & p[10]) >> 5; // x= 5, y= 5, mapped pin D8
|
||||
pins_d |= (0x20u & p[12]) << 2; // x= 5, y= 6, mapped pin D7
|
||||
pins_d |= (0x20u & p[14]) << 1; // x= 5, y= 7, mapped pin D6
|
||||
pins_d |= (0x20u & p[16]); // x= 5, y= 8, mapped pin D5
|
||||
if (0x20u & p[ 2]) pins_b |= 0x10; // x= 5, y= 1, mapped pin D12
|
||||
if (0x20u & p[ 4]) pins_b |= 0x08; // x= 5, y= 2, mapped pin D11
|
||||
if (0x20u & p[ 6]) pins_b |= 0x04; // x= 5, y= 3, mapped pin D10
|
||||
if (0x20u & p[ 8]) pins_b |= 0x02; // x= 5, y= 4, mapped pin D9
|
||||
if (0x20u & p[10]) pins_b |= 0x01; // x= 5, y= 5, mapped pin D8
|
||||
if (0x20u & p[12]) pins_d |= 0x80; // x= 5, y= 6, mapped pin D7
|
||||
if (0x20u & p[14]) pins_d |= 0x40; // x= 5, y= 7, mapped pin D6
|
||||
pins_b |= (0x20u & p[ 0]); // x= 5, y= 0, mapped pin D13
|
||||
pins_d |= (0x20u & p[16]); // x= 5, y= 8, mapped pin D5
|
||||
break;
|
||||
case 3:
|
||||
pins_b |= (0x20u & p[ 1]); // x=13, y= 0, mapped pin D13
|
||||
pins_b |= (0x20u & p[ 3]) >> 1; // x=13, y= 1, mapped pin D12
|
||||
pins_b |= (0x20u & p[ 5]) >> 2; // x=13, y= 2, mapped pin D11
|
||||
pins_b |= (0x20u & p[ 7]) >> 3; // x=13, y= 3, mapped pin D10
|
||||
pins_b |= (0x20u & p[ 9]) >> 4; // x=13, y= 4, mapped pin D9
|
||||
pins_b |= (0x20u & p[11]) >> 5; // x=13, y= 5, mapped pin D8
|
||||
pins_d |= (0x01u & p[16]) << 2; // x= 0, y= 8, mapped pin D2
|
||||
pins_d |= (0x04u & p[16]) << 1; // x= 2, y= 8, mapped pin D3
|
||||
pins_d |= (0x10u & p[16]); // x= 4, y= 8, mapped pin D4
|
||||
pins_d |= (0x20u & p[13]) << 2; // x=13, y= 6, mapped pin D7
|
||||
pins_d |= (0x20u & p[15]) << 1; // x=13, y= 7, mapped pin D6
|
||||
if (0x01u & p[16]) pins_d |= 0x04; // x= 0, y= 8, mapped pin D2
|
||||
if (0x04u & p[16]) pins_d |= 0x08; // x= 2, y= 8, mapped pin D3
|
||||
if (0x20u & p[ 3]) pins_b |= 0x10; // x=13, y= 1, mapped pin D12
|
||||
if (0x20u & p[ 5]) pins_b |= 0x08; // x=13, y= 2, mapped pin D11
|
||||
if (0x20u & p[ 7]) pins_b |= 0x04; // x=13, y= 3, mapped pin D10
|
||||
if (0x20u & p[ 9]) pins_b |= 0x02; // x=13, y= 4, mapped pin D9
|
||||
if (0x20u & p[11]) pins_b |= 0x01; // x=13, y= 5, mapped pin D8
|
||||
if (0x20u & p[13]) pins_d |= 0x80; // x=13, y= 6, mapped pin D7
|
||||
if (0x20u & p[15]) pins_d |= 0x40; // x=13, y= 7, mapped pin D6
|
||||
pins_b |= (0x20u & p[ 1]); // x=13, y= 0, mapped pin D13
|
||||
pins_d |= (0x10u & p[16]); // x= 4, y= 8, mapped pin D4
|
||||
break;
|
||||
case 4:
|
||||
pins_b |= (0x10u & p[ 1]) << 1; // x=12, y= 0, mapped pin D13
|
||||
pins_b |= (0x10u & p[ 3]); // x=12, y= 1, mapped pin D12
|
||||
pins_b |= (0x10u & p[ 5]) >> 1; // x=12, y= 2, mapped pin D11
|
||||
pins_b |= (0x10u & p[ 7]) >> 2; // x=12, y= 3, mapped pin D10
|
||||
pins_b |= (0x10u & p[ 9]) >> 3; // x=12, y= 4, mapped pin D9
|
||||
pins_b |= (0x10u & p[11]) >> 4; // x=12, y= 5, mapped pin D8
|
||||
pins_d |= (0x01u & p[14]) << 2; // x= 0, y= 7, mapped pin D2
|
||||
pins_d |= (0x04u & p[14]) << 1; // x= 2, y= 7, mapped pin D3
|
||||
pins_d |= (0x10u & p[13]) << 3; // x=12, y= 6, mapped pin D7
|
||||
pins_d |= (0x10u & p[14]); // x= 4, y= 7, mapped pin D4
|
||||
pins_d |= (0x20u & p[17]); // x=13, y= 8, mapped pin D5
|
||||
if (0x01u & p[14]) pins_d |= 0x04; // x= 0, y= 7, mapped pin D2
|
||||
if (0x04u & p[14]) pins_d |= 0x08; // x= 2, y= 7, mapped pin D3
|
||||
if (0x10u & p[ 1]) pins_b |= 0x20; // x=12, y= 0, mapped pin D13
|
||||
if (0x10u & p[ 5]) pins_b |= 0x08; // x=12, y= 2, mapped pin D11
|
||||
if (0x10u & p[ 7]) pins_b |= 0x04; // x=12, y= 3, mapped pin D10
|
||||
if (0x10u & p[ 9]) pins_b |= 0x02; // x=12, y= 4, mapped pin D9
|
||||
if (0x10u & p[11]) pins_b |= 0x01; // x=12, y= 5, mapped pin D8
|
||||
if (0x10u & p[13]) pins_d |= 0x80; // x=12, y= 6, mapped pin D7
|
||||
pins_b |= (0x10u & p[ 3]); // x=12, y= 1, mapped pin D12
|
||||
pins_d |= (0x10u & p[14]); // x= 4, y= 7, mapped pin D4
|
||||
pins_d |= (0x20u & p[17]); // x=13, y= 8, mapped pin D5
|
||||
break;
|
||||
case 5:
|
||||
pins_b |= (0x08u & p[ 1]) << 2; // x=11, y= 0, mapped pin D13
|
||||
pins_b |= (0x08u & p[ 3]) << 1; // x=11, y= 1, mapped pin D12
|
||||
pins_b |= (0x08u & p[ 5]); // x=11, y= 2, mapped pin D11
|
||||
pins_b |= (0x08u & p[ 7]) >> 1; // x=11, y= 3, mapped pin D10
|
||||
pins_b |= (0x08u & p[ 9]) >> 2; // x=11, y= 4, mapped pin D9
|
||||
pins_b |= (0x08u & p[11]) >> 3; // x=11, y= 5, mapped pin D8
|
||||
pins_d |= (0x01u & p[12]) << 2; // x= 0, y= 6, mapped pin D2
|
||||
pins_d |= (0x04u & p[12]) << 1; // x= 2, y= 6, mapped pin D3
|
||||
pins_d |= (0x10u & p[12]); // x= 4, y= 6, mapped pin D4
|
||||
pins_d |= (0x10u & p[15]) << 2; // x=12, y= 7, mapped pin D6
|
||||
pins_d |= (0x10u & p[17]) << 1; // x=12, y= 8, mapped pin D5
|
||||
if (0x01u & p[12]) pins_d |= 0x04; // x= 0, y= 6, mapped pin D2
|
||||
if (0x04u & p[12]) pins_d |= 0x08; // x= 2, y= 6, mapped pin D3
|
||||
if (0x08u & p[ 1]) pins_b |= 0x20; // x=11, y= 0, mapped pin D13
|
||||
if (0x08u & p[ 3]) pins_b |= 0x10; // x=11, y= 1, mapped pin D12
|
||||
if (0x08u & p[ 7]) pins_b |= 0x04; // x=11, y= 3, mapped pin D10
|
||||
if (0x08u & p[ 9]) pins_b |= 0x02; // x=11, y= 4, mapped pin D9
|
||||
if (0x08u & p[11]) pins_b |= 0x01; // x=11, y= 5, mapped pin D8
|
||||
if (0x10u & p[15]) pins_d |= 0x40; // x=12, y= 7, mapped pin D6
|
||||
if (0x10u & p[17]) pins_d |= 0x20; // x=12, y= 8, mapped pin D5
|
||||
pins_b |= (0x08u & p[ 5]); // x=11, y= 2, mapped pin D11
|
||||
pins_d |= (0x10u & p[12]); // x= 4, y= 6, mapped pin D4
|
||||
break;
|
||||
case 6:
|
||||
pins_b |= (0x04u & p[ 1]) << 3; // x=10, y= 0, mapped pin D13
|
||||
pins_b |= (0x04u & p[ 3]) << 2; // x=10, y= 1, mapped pin D12
|
||||
pins_b |= (0x04u & p[ 5]) << 1; // x=10, y= 2, mapped pin D11
|
||||
pins_b |= (0x04u & p[ 7]); // x=10, y= 3, mapped pin D10
|
||||
pins_b |= (0x04u & p[ 9]) >> 1; // x=10, y= 4, mapped pin D9
|
||||
pins_d |= (0x01u & p[10]) << 2; // x= 0, y= 5, mapped pin D2
|
||||
pins_d |= (0x04u & p[10]) << 1; // x= 2, y= 5, mapped pin D3
|
||||
pins_d |= (0x08u & p[13]) << 4; // x=11, y= 6, mapped pin D7
|
||||
pins_d |= (0x08u & p[15]) << 3; // x=11, y= 7, mapped pin D6
|
||||
pins_d |= (0x08u & p[17]) << 2; // x=11, y= 8, mapped pin D5
|
||||
pins_d |= (0x10u & p[10]); // x= 4, y= 5, mapped pin D4
|
||||
if (0x01u & p[10]) pins_d |= 0x04; // x= 0, y= 5, mapped pin D2
|
||||
if (0x04u & p[ 1]) pins_b |= 0x20; // x=10, y= 0, mapped pin D13
|
||||
if (0x04u & p[ 3]) pins_b |= 0x10; // x=10, y= 1, mapped pin D12
|
||||
if (0x04u & p[ 5]) pins_b |= 0x08; // x=10, y= 2, mapped pin D11
|
||||
if (0x04u & p[ 9]) pins_b |= 0x02; // x=10, y= 4, mapped pin D9
|
||||
if (0x04u & p[10]) pins_d |= 0x08; // x= 2, y= 5, mapped pin D3
|
||||
if (0x08u & p[13]) pins_d |= 0x80; // x=11, y= 6, mapped pin D7
|
||||
if (0x08u & p[15]) pins_d |= 0x40; // x=11, y= 7, mapped pin D6
|
||||
if (0x08u & p[17]) pins_d |= 0x20; // x=11, y= 8, mapped pin D5
|
||||
pins_b |= (0x04u & p[ 7]); // x=10, y= 3, mapped pin D10
|
||||
pins_d |= (0x10u & p[10]); // x= 4, y= 5, mapped pin D4
|
||||
break;
|
||||
case 7:
|
||||
pins_b |= (0x02u & p[ 1]) << 4; // x= 9, y= 0, mapped pin D13
|
||||
pins_b |= (0x02u & p[ 3]) << 3; // x= 9, y= 1, mapped pin D12
|
||||
pins_b |= (0x02u & p[ 5]) << 2; // x= 9, y= 2, mapped pin D11
|
||||
pins_b |= (0x02u & p[ 7]) << 1; // x= 9, y= 3, mapped pin D10
|
||||
pins_b |= (0x04u & p[11]) >> 2; // x=10, y= 5, mapped pin D8
|
||||
pins_d |= (0x01u & p[ 8]) << 2; // x= 0, y= 4, mapped pin D2
|
||||
pins_d |= (0x04u & p[ 8]) << 1; // x= 2, y= 4, mapped pin D3
|
||||
pins_d |= (0x04u & p[13]) << 5; // x=10, y= 6, mapped pin D7
|
||||
pins_d |= (0x04u & p[15]) << 4; // x=10, y= 7, mapped pin D6
|
||||
pins_d |= (0x04u & p[17]) << 3; // x=10, y= 8, mapped pin D5
|
||||
pins_d |= (0x10u & p[ 8]); // x= 4, y= 4, mapped pin D4
|
||||
if (0x01u & p[ 8]) pins_d |= 0x04; // x= 0, y= 4, mapped pin D2
|
||||
if (0x02u & p[ 1]) pins_b |= 0x20; // x= 9, y= 0, mapped pin D13
|
||||
if (0x02u & p[ 3]) pins_b |= 0x10; // x= 9, y= 1, mapped pin D12
|
||||
if (0x02u & p[ 5]) pins_b |= 0x08; // x= 9, y= 2, mapped pin D11
|
||||
if (0x02u & p[ 7]) pins_b |= 0x04; // x= 9, y= 3, mapped pin D10
|
||||
if (0x04u & p[ 8]) pins_d |= 0x08; // x= 2, y= 4, mapped pin D3
|
||||
if (0x04u & p[11]) pins_b |= 0x01; // x=10, y= 5, mapped pin D8
|
||||
if (0x04u & p[13]) pins_d |= 0x80; // x=10, y= 6, mapped pin D7
|
||||
if (0x04u & p[15]) pins_d |= 0x40; // x=10, y= 7, mapped pin D6
|
||||
if (0x04u & p[17]) pins_d |= 0x20; // x=10, y= 8, mapped pin D5
|
||||
pins_d |= (0x10u & p[ 8]); // x= 4, y= 4, mapped pin D4
|
||||
break;
|
||||
case 8:
|
||||
pins_b |= (0x01u & p[ 1]) << 5; // x= 8, y= 0, mapped pin D13
|
||||
pins_b |= (0x01u & p[ 3]) << 4; // x= 8, y= 1, mapped pin D12
|
||||
pins_b |= (0x01u & p[ 5]) << 3; // x= 8, y= 2, mapped pin D11
|
||||
pins_b |= (0x02u & p[ 9]); // x= 9, y= 4, mapped pin D9
|
||||
pins_b |= (0x02u & p[11]) >> 1; // x= 9, y= 5, mapped pin D8
|
||||
pins_d |= (0x01u & p[ 6]) << 2; // x= 0, y= 3, mapped pin D2
|
||||
pins_d |= (0x02u & p[13]) << 6; // x= 9, y= 6, mapped pin D7
|
||||
pins_d |= (0x02u & p[15]) << 5; // x= 9, y= 7, mapped pin D6
|
||||
pins_d |= (0x02u & p[17]) << 4; // x= 9, y= 8, mapped pin D5
|
||||
pins_d |= (0x04u & p[ 6]) << 1; // x= 2, y= 3, mapped pin D3
|
||||
pins_d |= (0x10u & p[ 6]); // x= 4, y= 3, mapped pin D4
|
||||
if (0x01u & p[ 1]) pins_b |= 0x20; // x= 8, y= 0, mapped pin D13
|
||||
if (0x01u & p[ 3]) pins_b |= 0x10; // x= 8, y= 1, mapped pin D12
|
||||
if (0x01u & p[ 5]) pins_b |= 0x08; // x= 8, y= 2, mapped pin D11
|
||||
if (0x01u & p[ 6]) pins_d |= 0x04; // x= 0, y= 3, mapped pin D2
|
||||
if (0x02u & p[11]) pins_b |= 0x01; // x= 9, y= 5, mapped pin D8
|
||||
if (0x02u & p[13]) pins_d |= 0x80; // x= 9, y= 6, mapped pin D7
|
||||
if (0x02u & p[15]) pins_d |= 0x40; // x= 9, y= 7, mapped pin D6
|
||||
if (0x02u & p[17]) pins_d |= 0x20; // x= 9, y= 8, mapped pin D5
|
||||
if (0x04u & p[ 6]) pins_d |= 0x08; // x= 2, y= 3, mapped pin D3
|
||||
pins_b |= (0x02u & p[ 9]); // x= 9, y= 4, mapped pin D9
|
||||
pins_d |= (0x10u & p[ 6]); // x= 4, y= 3, mapped pin D4
|
||||
break;
|
||||
case 9:
|
||||
pins_b |= (0x01u & p[ 7]) << 2; // x= 8, y= 3, mapped pin D10
|
||||
pins_b |= (0x01u & p[ 9]) << 1; // x= 8, y= 4, mapped pin D9
|
||||
pins_b |= (0x01u & p[11]); // x= 8, y= 5, mapped pin D8
|
||||
pins_b |= (0x80u & p[ 0]) >> 2; // x= 7, y= 0, mapped pin D13
|
||||
pins_b |= (0x80u & p[ 2]) >> 3; // x= 7, y= 1, mapped pin D12
|
||||
pins_d |= (0x01u & p[ 4]) << 2; // x= 0, y= 2, mapped pin D2
|
||||
pins_d |= (0x01u & p[13]) << 7; // x= 8, y= 6, mapped pin D7
|
||||
pins_d |= (0x01u & p[15]) << 6; // x= 8, y= 7, mapped pin D6
|
||||
pins_d |= (0x01u & p[17]) << 5; // x= 8, y= 8, mapped pin D5
|
||||
pins_d |= (0x04u & p[ 4]) << 1; // x= 2, y= 2, mapped pin D3
|
||||
pins_d |= (0x10u & p[ 4]); // x= 4, y= 2, mapped pin D4
|
||||
if (0x01u & p[ 4]) pins_d |= 0x04; // x= 0, y= 2, mapped pin D2
|
||||
if (0x01u & p[ 7]) pins_b |= 0x04; // x= 8, y= 3, mapped pin D10
|
||||
if (0x01u & p[ 9]) pins_b |= 0x02; // x= 8, y= 4, mapped pin D9
|
||||
if (0x01u & p[13]) pins_d |= 0x80; // x= 8, y= 6, mapped pin D7
|
||||
if (0x01u & p[15]) pins_d |= 0x40; // x= 8, y= 7, mapped pin D6
|
||||
if (0x01u & p[17]) pins_d |= 0x20; // x= 8, y= 8, mapped pin D5
|
||||
if (0x04u & p[ 4]) pins_d |= 0x08; // x= 2, y= 2, mapped pin D3
|
||||
if (0x80u & p[ 0]) pins_b |= 0x20; // x= 7, y= 0, mapped pin D13
|
||||
if (0x80u & p[ 2]) pins_b |= 0x10; // x= 7, y= 1, mapped pin D12
|
||||
pins_b |= (0x01u & p[11]); // x= 8, y= 5, mapped pin D8
|
||||
pins_d |= (0x10u & p[ 4]); // x= 4, y= 2, mapped pin D4
|
||||
break;
|
||||
case 10:
|
||||
pins_b |= (0x40u & p[ 0]) >> 1; // x= 6, y= 0, mapped pin D13
|
||||
pins_b |= (0x80u & p[ 4]) >> 4; // x= 7, y= 2, mapped pin D11
|
||||
pins_b |= (0x80u & p[ 6]) >> 5; // x= 7, y= 3, mapped pin D10
|
||||
pins_b |= (0x80u & p[ 8]) >> 6; // x= 7, y= 4, mapped pin D9
|
||||
pins_b |= (0x80u & p[10]) >> 7; // x= 7, y= 5, mapped pin D8
|
||||
pins_d |= (0x01u & p[ 2]) << 2; // x= 0, y= 1, mapped pin D2
|
||||
pins_d |= (0x04u & p[ 2]) << 1; // x= 2, y= 1, mapped pin D3
|
||||
pins_d |= (0x10u & p[ 2]); // x= 4, y= 1, mapped pin D4
|
||||
pins_d |= (0x80u & p[12]); // x= 7, y= 6, mapped pin D7
|
||||
pins_d |= (0x80u & p[14]) >> 1; // x= 7, y= 7, mapped pin D6
|
||||
pins_d |= (0x80u & p[16]) >> 2; // x= 7, y= 8, mapped pin D5
|
||||
if (0x01u & p[ 2]) pins_d |= 0x04; // x= 0, y= 1, mapped pin D2
|
||||
if (0x04u & p[ 2]) pins_d |= 0x08; // x= 2, y= 1, mapped pin D3
|
||||
if (0x40u & p[ 0]) pins_b |= 0x20; // x= 6, y= 0, mapped pin D13
|
||||
if (0x80u & p[ 4]) pins_b |= 0x08; // x= 7, y= 2, mapped pin D11
|
||||
if (0x80u & p[ 6]) pins_b |= 0x04; // x= 7, y= 3, mapped pin D10
|
||||
if (0x80u & p[ 8]) pins_b |= 0x02; // x= 7, y= 4, mapped pin D9
|
||||
if (0x80u & p[10]) pins_b |= 0x01; // x= 7, y= 5, mapped pin D8
|
||||
if (0x80u & p[14]) pins_d |= 0x40; // x= 7, y= 7, mapped pin D6
|
||||
if (0x80u & p[16]) pins_d |= 0x20; // x= 7, y= 8, mapped pin D5
|
||||
pins_d |= (0x10u & p[ 2]); // x= 4, y= 1, mapped pin D4
|
||||
pins_d |= (0x80u & p[12]); // x= 7, y= 6, mapped pin D7
|
||||
break;
|
||||
case 11:
|
||||
pins_b |= (0x40u & p[ 2]) >> 2; // x= 6, y= 1, mapped pin D12
|
||||
pins_b |= (0x40u & p[ 4]) >> 3; // x= 6, y= 2, mapped pin D11
|
||||
pins_b |= (0x40u & p[ 6]) >> 4; // x= 6, y= 3, mapped pin D10
|
||||
pins_b |= (0x40u & p[ 8]) >> 5; // x= 6, y= 4, mapped pin D9
|
||||
pins_b |= (0x40u & p[10]) >> 6; // x= 6, y= 5, mapped pin D8
|
||||
pins_d |= (0x01u & p[ 0]) << 2; // x= 0, y= 0, mapped pin D2
|
||||
pins_d |= (0x04u & p[ 0]) << 1; // x= 2, y= 0, mapped pin D3
|
||||
pins_d |= (0x10u & p[ 0]); // x= 4, y= 0, mapped pin D4
|
||||
pins_d |= (0x40u & p[12]) << 1; // x= 6, y= 6, mapped pin D7
|
||||
pins_d |= (0x40u & p[14]); // x= 6, y= 7, mapped pin D6
|
||||
pins_d |= (0x40u & p[16]) >> 1; // x= 6, y= 8, mapped pin D5
|
||||
if (0x01u & p[ 0]) pins_d |= 0x04; // x= 0, y= 0, mapped pin D2
|
||||
if (0x04u & p[ 0]) pins_d |= 0x08; // x= 2, y= 0, mapped pin D3
|
||||
if (0x40u & p[ 2]) pins_b |= 0x10; // x= 6, y= 1, mapped pin D12
|
||||
if (0x40u & p[ 4]) pins_b |= 0x08; // x= 6, y= 2, mapped pin D11
|
||||
if (0x40u & p[ 6]) pins_b |= 0x04; // x= 6, y= 3, mapped pin D10
|
||||
if (0x40u & p[ 8]) pins_b |= 0x02; // x= 6, y= 4, mapped pin D9
|
||||
if (0x40u & p[10]) pins_b |= 0x01; // x= 6, y= 5, mapped pin D8
|
||||
if (0x40u & p[12]) pins_d |= 0x80; // x= 6, y= 6, mapped pin D7
|
||||
if (0x40u & p[16]) pins_d |= 0x20; // x= 6, y= 8, mapped pin D5
|
||||
pins_d |= (0x10u & p[ 0]); // x= 4, y= 0, mapped pin D4
|
||||
pins_d |= (0x40u & p[14]); // x= 6, y= 7, mapped pin D6
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue