- bne m_write8_not_io\r
-\r
-m_write8_io:\r
- ldr r2, =PicoOpt\r
- and r0, r0, #0x1e\r
- ldr r2, [r2]\r
- ldr r3, =(Pico+0x22000) @ Pico.ioports\r
- tst r2, #POPT_6BTN_PAD\r
- beq m_write8_io_done\r
- cmp r0, #2\r
- cmpne r0, #4\r
- bne m_write8_io_done @ not likely to happen\r
- add r2, r3, #0x200 @ Pico+0x22200\r
- mov r12,#0\r
- cmp r0, #2\r
- streqb r12,[r2,#0x18]\r
- strneb r12,[r2,#0x19] @ Pico.m.padDelay[i] = 0\r
- tst r1, #0x40 @ TH\r
- beq m_write8_io_done\r
- ldrb r12,[r3, r0, lsr #1]\r
- tst r12,#0x40\r
- bne m_write8_io_done\r
- cmp r0, #2\r
- ldreqb r12,[r2,#0x0a]\r
- ldrneb r12,[r2,#0x0b] @ Pico.m.padTHPhase\r
- add r12,r12,#1\r
- streqb r12,[r2,#0x0a]\r
- strneb r12,[r2,#0x0b] @ Pico.m.padTHPhase\r
-m_write8_io_done:\r
- strb r1, [r3, r0, lsr #1]\r
- bx lr\r