Thank you to anyone who has already donated - your generous donations helped make three months of treatment possible.
My brother Nate continues to fight stage IV Hodgkin's lymphoma. He's just 31, with a wife and baby girl. They have no active income (since he's been unable to return to work), no insurance, and cannot afford the treatment he needs. Nate and his family need your help. Please consider a donation, every dollar helps. Thanks.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 |
.loop: ldrb r2, [r0], #1 -#ifdef IPOD_MINI2G - ldrb r3, [r0], #1 - orr r2, r3, r2, lsl #8 - orr r2, r2, #0x760000 -1: - ldr r3, [lr] - tst r3, #LCD1_BUSY_MASK - bne 1b - str r2, [lr, #0x08] -#else 1: ldr r3, [lr] tst r3, #LCD1_BUSY_MASK tst r3, #LCD1_BUSY_MASK bne 1b str r2, [lr, #0x10] -#endif subs r1, r1, #1 bne .loop ldr pc, [sp], #4 .size lcd_write_data,.-lcd_write_data - -#ifdef IPOD_MINI2G - - .global lcd_write_data_shifted - .type lcd_write_data_shifted,%function - -lcd_write_data_shifted: - stmfd sp!, {r4, r5, lr} - ldr lr, =LCD1_BASE - mov r5, #0x760000 - ldrb r2, [r0], #1 - -.sloop: - ldrb r3, [r0], #1 - orr r2, r3, r2, lsl #8 - ldrb r3, [r0], #1 - orr r2, r3, r2, lsl #8 - mov r4, r2, lsl #12 - orr r4, r5, r4, lsr #16 -1: - ldr r3, [lr] - tst r3, #LCD1_BUSY_MASK - bne 1b - str r4, [lr, #0x08] - - subs r1, r1, #1 - bne .sloop - - ldmfd sp!, {r4, r5, pc} - .size lcd_write_data_shifted,.-lcd_write_data_shifted - -#elif defined IPOD_MINI - - .global lcd_write_data_shifted - .type lcd_write_data_shifted,%function - -lcd_write_data_shifted: - stmfd sp!, {r4, lr} - ldr lr, =LCD1_BASE - ldrb r2, [r0], #1 - -.sloop: - ldrb r3, [r0], #1 - orr r2, r3, r2, lsl #8 - mov r4, r2, lsr #4 -1: - ldr r3, [lr] - tst r3, #LCD1_BUSY_MASK - bne 1b - str r4, [lr, #0x10] - - ldrb r3, [r0], #1 - orr r2, r3, r2, lsl #8 - mov r4, r2, lsr #4 -1: - ldr r3, [lr] - tst r3, #LCD1_BUSY_MASK - bne 1b - str r4, [lr, #0x10] - - subs r1, r1, #1 - bne .sloop - - ldmfd sp!, {r4, pc} - .size lcd_write_data_shifted,.-lcd_write_data_shifted - -#endif .global lcd_mono_data .type lcd_mono_data,%function - + lcd_mono_data: stmfd sp!, {r4, r5, lr} ldr lr, =LCD1_BASE mov r3, r2, lsr #4 ldrb r4, [r5, r3] -#ifdef IPOD_MINI2G - and r3, r2, #0x0f - ldrb r3, [r5, r3] - orr r4, r3, r4, lsl #8 - orr r4, r4, #0x760000 -1: - ldr r3, [lr] - tst r3, #LCD1_BUSY_MASK - bne 1b - str r4, [lr, #0x08] -#else 1: ldr r3, [lr] tst r3, #LCD1_BUSY_MASK tst r3, #LCD1_BUSY_MASK bne 1b str r4, [lr, #0x10] -#endif subs r1, r1, #1 bne .mloop * r8 - phase signs mask * lr - lcd bridge address */ - + lcd_grey_data: stmfd sp!, {r4-r8, lr} mov r8, #0x80 ldmia r1, {r3-r4} /* Fetch 8 pixel phases */ ldmia r0!, {r5-r6} /* Fetch 8 pixel values */ -#ifdef IPOD_MINI2G /* Serial bridge mode */ - mov r7, #0x760000 - tst r3, #0x80 - orreq r7, r7, #0xc000 - tst r3, #0x8000 - orreq r7, r7, #0x3000 - tst r3, #0x800000 - orreq r7, r7, #0x0c00 - tst r3, #0x80000000 - orreq r7, r7, #0x0300 - bic r3, r3, r8 - add r3, r3, r5 -#else /* Parallel bridge mode */ mov r7, #0 tst r3, #0x80 orreq r7, r7, #0xc0 str r7, [lr, #0x10] mov r7, #0 -#endif tst r4, #0x80 orreq r7, r7, #0xc0 ldr r5, [lr] tst r5, #LCD1_BUSY_MASK bne 1b -#ifdef IPOD_MINI2G - str r7, [lr, #0x08] -#else str r7, [lr, #0x10] -#endif subs r2, r2, #1 bne .greyloop ldmfd sp!, {r4-r8, pc} .size lcd_grey_data,.-lcd_grey_data - |