Subversion Repositories EDIS_Ignition

Rev

Rev 20 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
23 mjames 1
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                    page 1
20 mjames 2
 
3
 
4
   1                            .cpu cortex-m3
5
   2                            .eabi_attribute 20, 1
6
   3                            .eabi_attribute 21, 1
7
   4                            .eabi_attribute 23, 3
8
   5                            .eabi_attribute 24, 1
9
   6                            .eabi_attribute 25, 1
10
   7                            .eabi_attribute 26, 1
11
   8                            .eabi_attribute 30, 4
12
   9                            .eabi_attribute 34, 1
13
  10                            .eabi_attribute 18, 4
14
  11                            .file   "displayclass.cpp"
15
  12                            .text
16
  13                    .Ltext0:
17
  14                            .cfi_sections   .debug_frame
18
  15                            .section        .text._ZdlPvj,"ax",%progbits
19
  16                            .align  1
20
  17                            .global _ZdlPvj
21
  18                            .arch armv7-m
22
  19                            .syntax unified
23
  20                            .thumb
24
  21                            .thumb_func
25
  22                            .fpu softvfp
26
  24                    _ZdlPvj:
27
  25                    .LVL0:
28
  26                    .LFB35:
29
  27                            .file 1 "../libOLED/src/displayclass.cpp"
30
   1:../libOLED/src/displayclass.cpp **** /*
31
   2:../libOLED/src/displayclass.cpp ****  * displayclass.cpp
32
   3:../libOLED/src/displayclass.cpp ****  *
33
   4:../libOLED/src/displayclass.cpp ****  *  Created on: 31 Oct 2020
34
   5:../libOLED/src/displayclass.cpp ****  *      Author: mike
35
   6:../libOLED/src/displayclass.cpp ****  */
36
   7:../libOLED/src/displayclass.cpp ****
37
   8:../libOLED/src/displayclass.cpp **** #include "libOLED/displayclass.H"
38
   9:../libOLED/src/displayclass.cpp ****
39
  10:../libOLED/src/displayclass.cpp **** #include <cstring>
40
  11:../libOLED/src/displayclass.cpp **** #include <cstdlib>
41
  12:../libOLED/src/displayclass.cpp **** namespace
42
  13:../libOLED/src/displayclass.cpp **** {
43
  14:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_SETCONTRAST = 0x81;
44
  15:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_DISPLAYALLON_RESUME = 0xA4;
45
  16:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_DISPLAYALLON = 0xA5;
46
  17:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_NORMALDISPLAY = 0xA6;
47
  18:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_INVERTDISPLAY = 0xA7;
48
  19:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_DISPLAYOFF = 0xAE;
49
  20:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_DISPLAYON = 0xAF;
50
  21:../libOLED/src/displayclass.cpp ****
51
  22:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_SETDISPLAYOFFSET = 0xD3;
52
  23:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_SETCOMPINS = 0xDA;
53
  24:../libOLED/src/displayclass.cpp ****
54
  25:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_SETVCOMDETECT = 0xDB;
55
  26:../libOLED/src/displayclass.cpp ****
56
  27:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_SETDISPLAYCLOCKDIV = 0xD5;
57
  28:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_SETPRECHARGE = 0xD9;
58
  29:../libOLED/src/displayclass.cpp ****
59
  30:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_SETMULTIPLEX = 0xA8;
60
  31:../libOLED/src/displayclass.cpp ****
23 mjames 61
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 2
20 mjames 62
 
63
 
64
  32:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_SETLOWCOLUMN = 0x00;
65
  33:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_SETHIGHCOLUMN = 0x10;
66
  34:../libOLED/src/displayclass.cpp ****
67
  35:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_SETSTARTLINE = 0x40;
68
  36:../libOLED/src/displayclass.cpp ****
69
  37:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_MEMORYMODE = 0x20;
70
  38:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_COLUMNADDR = 0x21;
71
  39:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_PAGEADDR = 0x22;
72
  40:../libOLED/src/displayclass.cpp ****
73
  41:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_COMSCANINC = 0xC0;
74
  42:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_COMSCANDEC = 0xC8;
75
  43:../libOLED/src/displayclass.cpp ****
76
  44:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_SEGREMAP = 0xA0;
77
  45:../libOLED/src/displayclass.cpp ****
78
  46:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_CHARGEPUMP = 0x8D;
79
  47:../libOLED/src/displayclass.cpp ****
80
  48:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_EXTERNALVCC = 0x1;
81
  49:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_SWITCHCAPVCC = 0x2;
82
  50:../libOLED/src/displayclass.cpp ****
83
  51:../libOLED/src/displayclass.cpp ****   // Scrolling #defines
84
  52:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_ACTIVATE_SCROLL = 0x2F;
85
  53:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_DEACTIVATE_SCROLL = 0x2E;
86
  54:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_SET_VERTICAL_SCROLL_AREA = 0xA3;
87
  55:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_RIGHT_HORIZONTAL_SCROLL = 0x26;
88
  56:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_LEFT_HORIZONTAL_SCROLL = 0x27;
89
  57:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_VERTICAL_AND_RIGHT_HORIZONTAL_SCROLL = 0x29;
90
  58:../libOLED/src/displayclass.cpp ****   uint8_t const SSD1306_VERTICAL_AND_LEFT_HORIZONTAL_SCROLL = 0x2A;
91
  59:../libOLED/src/displayclass.cpp ****
92
  60:../libOLED/src/displayclass.cpp ****   template <class T>
93
  61:../libOLED/src/displayclass.cpp ****   void
94
  62:../libOLED/src/displayclass.cpp ****   swap(T &x, T &y)
95
  63:../libOLED/src/displayclass.cpp ****   {
96
  64:../libOLED/src/displayclass.cpp ****     T temp = x;
97
  65:../libOLED/src/displayclass.cpp ****     x = y;
98
  66:../libOLED/src/displayclass.cpp ****     y = temp;
99
  67:../libOLED/src/displayclass.cpp ****   }
100
  68:../libOLED/src/displayclass.cpp ****
101
  69:../libOLED/src/displayclass.cpp ****   template <class T>
102
  70:../libOLED/src/displayclass.cpp ****   T abs(T x)
103
  71:../libOLED/src/displayclass.cpp ****   {
104
  72:../libOLED/src/displayclass.cpp ****     return x < 0 ? -x : x;
105
  73:../libOLED/src/displayclass.cpp ****   }
106
  74:../libOLED/src/displayclass.cpp ****
107
  75:../libOLED/src/displayclass.cpp **** }
108
  76:../libOLED/src/displayclass.cpp **** // provided to allow a destructor to destroy something not deleted
109
  77:../libOLED/src/displayclass.cpp **** // this is only OK because destructors shouldnt be needed
110
  78:../libOLED/src/displayclass.cpp **** void operator delete(void *data, unsigned int f)
111
  79:../libOLED/src/displayclass.cpp **** {
112
  28                            .loc 1 79 1 view -0
113
  29                            .cfi_startproc
114
  30                            @ args = 0, pretend = 0, frame = 0
115
  31                            @ frame_needed = 0, uses_anonymous_args = 0
116
  32                            @ link register save eliminated.
117
  80:../libOLED/src/displayclass.cpp ****   (void)data;
118
  33                            .loc 1 80 3 view .LVU1
119
  81:../libOLED/src/displayclass.cpp ****   (void)f;
120
  34                            .loc 1 81 3 view .LVU2
23 mjames 121
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 3
20 mjames 122
 
123
 
124
  82:../libOLED/src/displayclass.cpp **** }
125
  35                            .loc 1 82 1 is_stmt 0 view .LVU3
126
  36 0000 7047                  bx      lr
127
  37                            .cfi_endproc
128
  38                    .LFE35:
129
  40                            .section        .text.__cxa_pure_virtual,"ax",%progbits
130
  41                            .align  1
131
  42                            .global __cxa_pure_virtual
132
  43                            .syntax unified
133
  44                            .thumb
134
  45                            .thumb_func
135
  46                            .fpu softvfp
136
  48                    __cxa_pure_virtual:
137
  49                    .LFB36:
138
  83:../libOLED/src/displayclass.cpp ****
139
  84:../libOLED/src/displayclass.cpp **** // provided to implement an "error handler" on pure virtual
140
  85:../libOLED/src/displayclass.cpp **** extern "C" void
141
  86:../libOLED/src/displayclass.cpp **** __cxa_pure_virtual()
142
  87:../libOLED/src/displayclass.cpp **** {
143
  50                            .loc 1 87 1 is_stmt 1 view -0
144
  51                            .cfi_startproc
145
  52                            @ Volatile: function does not return.
146
  53                            @ args = 0, pretend = 0, frame = 0
147
  54                            @ frame_needed = 0, uses_anonymous_args = 0
148
  55                            @ link register save eliminated.
149
  56                    .L3:
150
  88:../libOLED/src/displayclass.cpp ****   while (1)
151
  57                            .loc 1 88 3 discriminator 1 view .LVU5
152
  58                            .loc 1 88 3 discriminator 1 view .LVU6
153
  59 0000 FEE7                  b       .L3
154
  60                            .cfi_endproc
155
  61                    .LFE36:
156
  63                            .section        .text._ZN9display_tC2EiiiPh,"ax",%progbits
157
  64                            .align  1
158
  65                            .global _ZN9display_tC2EiiiPh
159
  66                            .syntax unified
160
  67                            .thumb
161
  68                            .thumb_func
162
  69                            .fpu softvfp
163
  71                    _ZN9display_tC2EiiiPh:
164
  72                    .LVL1:
165
  73                    .LFB38:
166
  89:../libOLED/src/displayclass.cpp ****     ;
167
  90:../libOLED/src/displayclass.cpp **** }
168
  91:../libOLED/src/displayclass.cpp ****
169
  92:../libOLED/src/displayclass.cpp **** display_t::display_t(int const width, int const height, int const ramwidth,
170
  74                            .loc 1 92 1 view -0
171
  75                            .cfi_startproc
172
  76                            @ args = 4, pretend = 0, frame = 0
173
  77                            @ frame_needed = 0, uses_anonymous_args = 0
174
  78                    .LBB26:
175
  93:../libOLED/src/displayclass.cpp ****                      uint8_t *const data) : m_width(width), m_height(height), m_ramwidth(ramwidth),
176
  79                            .loc 1 93 174 is_stmt 0 view .LVU8
177
  80 0000 C0E90223              strd    r2, r3, [r0, #8]
178
  81 0004 0023                  movs    r3, #0
179
  82                    .LVL2:
180
  83                            .loc 1 93 174 view .LVU9
23 mjames 181
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 4
20 mjames 182
 
183
 
184
  84 0006 C0E90433              strd    r3, r3, [r0, #16]
185
  85 000a 8361                  str     r3, [r0, #24]
186
  86 000c 0123                  movs    r3, #1
187
  87                    .LBE26:
188
  92:../libOLED/src/displayclass.cpp ****                      uint8_t *const data) : m_width(width), m_height(height), m_ramwidth(ramwidth),
189
  88                            .loc 1 92 1 view .LVU10
190
  89 000e 30B5                  push    {r4, r5, lr}
191
  90                    .LCFI0:
192
  91                            .cfi_def_cfa_offset 12
193
  92                            .cfi_offset 4, -12
194
  93                            .cfi_offset 5, -8
195
  94                            .cfi_offset 14, -4
196
  95                    .LBB27:
197
  96                            .loc 1 93 174 view .LVU11
198
  97 0010 0377                  strb    r3, [r0, #28]
199
  98 0012 034D                  ldr     r5, .L5
200
  99 0014 039B                  ldr     r3, [sp, #12]
201
 100 0016 C0E90051              strd    r5, r1, [r0]
202
 101 001a 0362                  str     r3, [r0, #32]
203
 102                    .LBE27:
204
  94:../libOLED/src/displayclass.cpp **** {
205
  95:../libOLED/src/displayclass.cpp **** }
206
 103                            .loc 1 95 1 view .LVU12
207
 104 001c 30BD                  pop     {r4, r5, pc}
208
 105                    .LVL3:
209
 106                    .L6:
210
 107                            .loc 1 95 1 view .LVU13
211
 108 001e 00BF                  .align  2
212
 109                    .L5:
213
 110 0020 08000000              .word   .LANCHOR0+8
214
 111                            .cfi_endproc
215
 112                    .LFE38:
216
 114                            .global _ZN9display_tC1EiiiPh
217
 115                            .thumb_set _ZN9display_tC1EiiiPh,_ZN9display_tC2EiiiPh
218
 116                            .section        .text._ZN9display_tD0Ev,"ax",%progbits
219
 117                            .align  1
220
 118                            .global _ZN9display_tD0Ev
221
 119                            .syntax unified
222
 120                            .thumb
223
 121                            .thumb_func
224
 122                            .fpu softvfp
225
 124                    _ZN9display_tD0Ev:
226
 125                    .LVL4:
227
 126                    .LFB43:
228
  96:../libOLED/src/displayclass.cpp ****
229
  97:../libOLED/src/displayclass.cpp **** display_t::~display_t()
230
 127                            .loc 1 97 1 is_stmt 1 view -0
231
 128                            .cfi_startproc
232
 129                            @ args = 0, pretend = 0, frame = 0
233
 130                            @ frame_needed = 0, uses_anonymous_args = 0
234
 131                            @ link register save eliminated.
235
 132                    .LBB28:
236
 133                    .LBI28:
237
 134                            .loc 1 97 1 view .LVU15
238
 135                            .loc 1 97 1 is_stmt 0 view .LVU16
239
 136                    .LBE28:
240
  80:../libOLED/src/displayclass.cpp ****   (void)f;
23 mjames 241
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 5
20 mjames 242
 
243
 
244
 137                            .loc 1 80 3 is_stmt 1 view .LVU17
245
  81:../libOLED/src/displayclass.cpp **** }
246
 138                            .loc 1 81 3 view .LVU18
247
  98:../libOLED/src/displayclass.cpp **** {
248
  99:../libOLED/src/displayclass.cpp **** }
249
 139                            .loc 1 99 1 is_stmt 0 view .LVU19
250
 140 0000 7047                  bx      lr
251
 141                            .cfi_endproc
252
 142                    .LFE43:
253
 144                            .global _ZN9display_tD1Ev
254
 145                            .thumb_set _ZN9display_tD1Ev,_ZN9display_tD0Ev
255
 146                            .global _ZN9display_tD2Ev
256
 147                            .thumb_set _ZN9display_tD2Ev,_ZN9display_tD0Ev
257
 148                            .section        .text._ZN9display_t5resetEv,"ax",%progbits
258
 149                            .align  1
259
 150                            .global _ZN9display_t5resetEv
260
 151                            .syntax unified
261
 152                            .thumb
262
 153                            .thumb_func
263
 154                            .fpu softvfp
264
 156                    _ZN9display_t5resetEv:
265
 157                    .LVL5:
266
 158                    .LFB44:
267
 100:../libOLED/src/displayclass.cpp ****
268
 101:../libOLED/src/displayclass.cpp **** void display_t::reset()
269
 102:../libOLED/src/displayclass.cpp **** {
270
 159                            .loc 1 102 1 is_stmt 1 view -0
271
 160                            .cfi_startproc
272
 161                            @ args = 0, pretend = 0, frame = 0
273
 162                            @ frame_needed = 0, uses_anonymous_args = 0
274
 163                            @ link register save eliminated.
275
 103:../libOLED/src/displayclass.cpp ****   oledReset();
276
 164                            .loc 1 103 3 view .LVU21
277
 165                            .loc 1 103 13 is_stmt 0 view .LVU22
278
 166 0000 0368                  ldr     r3, [r0]
279
 167                            .loc 1 103 12 view .LVU23
280
 168 0002 1B69                  ldr     r3, [r3, #16]
281
 169 0004 1847                  bx      r3      @ indirect register sibling call
282
 170                    .LVL6:
283
 171                            .loc 1 103 12 view .LVU24
284
 172                            .cfi_endproc
285
 173                    .LFE44:
286
 175                            .section        .text._ZN9display_t11getRotationEv,"ax",%progbits
287
 176                            .align  1
288
 177                            .global _ZN9display_t11getRotationEv
289
 178                            .syntax unified
290
 179                            .thumb
291
 180                            .thumb_func
292
 181                            .fpu softvfp
293
 183                    _ZN9display_t11getRotationEv:
294
 184                    .LVL7:
295
 185                    .LFB46:
296
 104:../libOLED/src/displayclass.cpp **** }
297
 105:../libOLED/src/displayclass.cpp ****
298
 106:../libOLED/src/displayclass.cpp **** void display_t::init()
299
 107:../libOLED/src/displayclass.cpp **** {
300
 108:../libOLED/src/displayclass.cpp ****   uint8_t const vccstate = SSD1306_EXTERNALVCC;
23 mjames 301
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 6
20 mjames 302
 
303
 
304
 109:../libOLED/src/displayclass.cpp ****
305
 110:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
306
 111:../libOLED/src/displayclass.cpp ****
307
 112:../libOLED/src/displayclass.cpp ****   // Init sequence for 128x32 or 128x64  OLED module
308
 113:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_DISPLAYOFF);         // 0xAE
309
 114:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETDISPLAYCLOCKDIV); // 0xD5
310
 115:../libOLED/src/displayclass.cpp ****   oledWrite(0x80);                       // the suggested ratio 0x80
311
 116:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETMULTIPLEX);       // 0xA8
312
 117:../libOLED/src/displayclass.cpp ****   oledWrite(m_height - 1);
313
 118:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETDISPLAYOFFSET);   // 0xD3
314
 119:../libOLED/src/displayclass.cpp ****   oledWrite(0x0);                        // no offset
315
 120:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETSTARTLINE | 0x0); // line #0
316
 121:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_CHARGEPUMP);         // 0x8D
317
 122:../libOLED/src/displayclass.cpp ****   oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x10 : 0x14);
318
 123:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_MEMORYMODE); // 0x20
319
 124:../libOLED/src/displayclass.cpp ****   oledWrite(0x00);               // 0x0 act like ks0108
320
 125:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SEGREMAP | 0x1);
321
 126:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_COMSCANDEC);
322
 127:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCOMPINS); // 0xDA
323
 128:../libOLED/src/displayclass.cpp ****   oledWrite(m_height == 32 ? 0x02 : 0x12);
324
 129:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCONTRAST); // 0x81
325
 130:../libOLED/src/displayclass.cpp ****   oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x9F : 0xCF);
326
 131:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETPRECHARGE); // 0xd9
327
 132:../libOLED/src/displayclass.cpp ****   oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x22 : 0xF1);
328
 133:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETVCOMDETECT); // 0xDB
329
 134:../libOLED/src/displayclass.cpp ****   oledWrite(0x40);
330
 135:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_DISPLAYALLON_RESUME); // 0xA4
331
 136:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_NORMALDISPLAY);       // 0xA6
332
 137:../libOLED/src/displayclass.cpp ****
333
 138:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_DISPLAYON); //--turn on oled panel
334
 139:../libOLED/src/displayclass.cpp ****
335
 140:../libOLED/src/displayclass.cpp ****   clearDisplay();
336
 141:../libOLED/src/displayclass.cpp **** }
337
 142:../libOLED/src/displayclass.cpp ****
338
 143:../libOLED/src/displayclass.cpp **** uint8_t
339
 144:../libOLED/src/displayclass.cpp **** display_t::getRotation(void)
340
 145:../libOLED/src/displayclass.cpp **** {
341
 186                            .loc 1 145 1 is_stmt 1 view -0
342
 187                            .cfi_startproc
343
 188                            @ args = 0, pretend = 0, frame = 0
344
 189                            @ frame_needed = 0, uses_anonymous_args = 0
345
 190                            @ link register save eliminated.
346
 146:../libOLED/src/displayclass.cpp ****   return m_rotation;
347
 191                            .loc 1 146 3 view .LVU26
348
 147:../libOLED/src/displayclass.cpp **** }
349
 192                            .loc 1 147 1 is_stmt 0 view .LVU27
350
 193 0000 007E                  ldrb    r0, [r0, #24]   @ zero_extendqisi2
351
 194                    .LVL8:
352
 195                            .loc 1 147 1 view .LVU28
353
 196 0002 7047                  bx      lr
354
 197                            .cfi_endproc
355
 198                    .LFE46:
356
 200                            .section        .text._ZN9display_t5widthEv,"ax",%progbits
357
 201                            .align  1
358
 202                            .global _ZN9display_t5widthEv
359
 203                            .syntax unified
360
 204                            .thumb
23 mjames 361
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 7
20 mjames 362
 
363
 
364
 205                            .thumb_func
365
 206                            .fpu softvfp
366
 208                    _ZN9display_t5widthEv:
367
 209                    .LVL9:
368
 210                    .LFB47:
369
 148:../libOLED/src/displayclass.cpp ****
370
 149:../libOLED/src/displayclass.cpp **** int16_t
371
 150:../libOLED/src/displayclass.cpp **** display_t::width(void)
372
 151:../libOLED/src/displayclass.cpp **** {
373
 211                            .loc 1 151 1 is_stmt 1 view -0
374
 212                            .cfi_startproc
375
 213                            @ args = 0, pretend = 0, frame = 0
376
 214                            @ frame_needed = 0, uses_anonymous_args = 0
377
 215                            @ link register save eliminated.
378
 152:../libOLED/src/displayclass.cpp ****   switch (m_rotation)
379
 216                            .loc 1 152 3 view .LVU30
380
 217                            .loc 1 152 11 is_stmt 0 view .LVU31
381
 218 0000 8369                  ldr     r3, [r0, #24]
382
 219                            .loc 1 152 3 view .LVU32
383
 220 0002 022B                  cmp     r3, #2
384
 221 0004 0DD0                  beq     .L11
385
 222 0006 03DC                  bgt     .L12
386
 223 0008 012B                  cmp     r3, #1
387
 224 000a 07D9                  bls     .L17
388
 225                    .L16:
389
 226 000c 0020                  movs    r0, #0
390
 227                    .LVL10:
391
 153:../libOLED/src/displayclass.cpp ****   {
392
 154:../libOLED/src/displayclass.cpp ****   case 0:
393
 155:../libOLED/src/displayclass.cpp ****     return m_width;
394
 156:../libOLED/src/displayclass.cpp ****     break;
395
 157:../libOLED/src/displayclass.cpp ****   case 1:
396
 158:../libOLED/src/displayclass.cpp ****     return m_width;
397
 159:../libOLED/src/displayclass.cpp ****     break;
398
 160:../libOLED/src/displayclass.cpp ****   case 2:
399
 161:../libOLED/src/displayclass.cpp ****     return m_height;
400
 162:../libOLED/src/displayclass.cpp ****     break;
401
 163:../libOLED/src/displayclass.cpp ****   case 3:
402
 164:../libOLED/src/displayclass.cpp ****     return -m_width;
403
 165:../libOLED/src/displayclass.cpp ****     break;
404
 166:../libOLED/src/displayclass.cpp ****   }
405
 167:../libOLED/src/displayclass.cpp ****   return 0;
406
 168:../libOLED/src/displayclass.cpp **** }
407
 228                            .loc 1 168 1 view .LVU33
408
 229 000e 7047                  bx      lr
409
 230                    .LVL11:
410
 231                    .L12:
411
 152:../libOLED/src/displayclass.cpp ****   switch (m_rotation)
412
 232                            .loc 1 152 3 view .LVU34
413
 233 0010 032B                  cmp     r3, #3
414
 234 0012 FBD1                  bne     .L16
415
 162:../libOLED/src/displayclass.cpp ****   case 3:
416
 235                            .loc 1 162 5 is_stmt 1 view .LVU35
417
 163:../libOLED/src/displayclass.cpp ****     return -m_width;
418
 236                            .loc 1 163 3 view .LVU36
419
 164:../libOLED/src/displayclass.cpp ****     break;
420
 237                            .loc 1 164 5 view .LVU37
23 mjames 421
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 8
20 mjames 422
 
423
 
424
 164:../libOLED/src/displayclass.cpp ****     break;
425
 238                            .loc 1 164 13 is_stmt 0 view .LVU38
426
 239 0014 4068                  ldr     r0, [r0, #4]
427
 240                    .LVL12:
428
 164:../libOLED/src/displayclass.cpp ****     break;
429
 241                            .loc 1 164 13 view .LVU39
430
 242 0016 4042                  rsbs    r0, r0, #0
431
 243 0018 00B2                  sxth    r0, r0
432
 244 001a 7047                  bx      lr
433
 245                    .LVL13:
434
 246                    .L17:
435
 154:../libOLED/src/displayclass.cpp ****     return m_width;
436
 247                            .loc 1 154 3 is_stmt 1 view .LVU40
437
 155:../libOLED/src/displayclass.cpp ****     break;
438
 248                            .loc 1 155 5 view .LVU41
439
 155:../libOLED/src/displayclass.cpp ****     break;
440
 249                            .loc 1 155 12 is_stmt 0 view .LVU42
441
 250 001c B0F90400              ldrsh   r0, [r0, #4]
442
 251                    .LVL14:
443
 155:../libOLED/src/displayclass.cpp ****     break;
444
 252                            .loc 1 155 12 view .LVU43
445
 253 0020 7047                  bx      lr
446
 254                    .LVL15:
447
 255                    .L11:
448
 159:../libOLED/src/displayclass.cpp ****   case 2:
449
 256                            .loc 1 159 5 is_stmt 1 view .LVU44
450
 160:../libOLED/src/displayclass.cpp ****     return m_height;
451
 257                            .loc 1 160 3 view .LVU45
452
 161:../libOLED/src/displayclass.cpp ****     break;
453
 258                            .loc 1 161 5 view .LVU46
454
 161:../libOLED/src/displayclass.cpp ****     break;
455
 259                            .loc 1 161 12 is_stmt 0 view .LVU47
456
 260 0022 B0F90800              ldrsh   r0, [r0, #8]
457
 261                    .LVL16:
458
 161:../libOLED/src/displayclass.cpp ****     break;
459
 262                            .loc 1 161 12 view .LVU48
460
 263 0026 7047                  bx      lr
461
 264                            .cfi_endproc
462
 265                    .LFE47:
463
 267                            .section        .text._ZN9display_t6heightEv,"ax",%progbits
464
 268                            .align  1
465
 269                            .global _ZN9display_t6heightEv
466
 270                            .syntax unified
467
 271                            .thumb
468
 272                            .thumb_func
469
 273                            .fpu softvfp
470
 275                    _ZN9display_t6heightEv:
471
 276                    .LVL17:
472
 277                    .LFB48:
473
 169:../libOLED/src/displayclass.cpp ****
474
 170:../libOLED/src/displayclass.cpp **** int16_t
475
 171:../libOLED/src/displayclass.cpp **** display_t::height(void)
476
 172:../libOLED/src/displayclass.cpp **** {
477
 278                            .loc 1 172 1 is_stmt 1 view -0
478
 279                            .cfi_startproc
479
 280                            @ args = 0, pretend = 0, frame = 0
480
 281                            @ frame_needed = 0, uses_anonymous_args = 0
23 mjames 481
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 9
20 mjames 482
 
483
 
484
 282                            @ link register save eliminated.
485
 173:../libOLED/src/displayclass.cpp ****   switch (m_rotation)
486
 283                            .loc 1 173 3 view .LVU50
487
 284                            .loc 1 173 11 is_stmt 0 view .LVU51
488
 285 0000 8369                  ldr     r3, [r0, #24]
489
 286                            .loc 1 173 3 view .LVU52
490
 287 0002 022B                  cmp     r3, #2
491
 288 0004 0DD0                  beq     .L19
492
 289 0006 03DC                  bgt     .L20
493
 290 0008 012B                  cmp     r3, #1
494
 291 000a 07D9                  bls     .L25
495
 292                    .L24:
496
 293 000c 0020                  movs    r0, #0
497
 294                    .LVL18:
498
 174:../libOLED/src/displayclass.cpp ****   {
499
 175:../libOLED/src/displayclass.cpp ****   case 0:
500
 176:../libOLED/src/displayclass.cpp ****     return m_height;
501
 177:../libOLED/src/displayclass.cpp ****     break;
502
 178:../libOLED/src/displayclass.cpp ****   case 1:
503
 179:../libOLED/src/displayclass.cpp ****     return m_height;
504
 180:../libOLED/src/displayclass.cpp ****     break;
505
 181:../libOLED/src/displayclass.cpp ****   case 2:
506
 182:../libOLED/src/displayclass.cpp ****     return m_width;
507
 183:../libOLED/src/displayclass.cpp ****     break;
508
 184:../libOLED/src/displayclass.cpp ****   case 3:
509
 185:../libOLED/src/displayclass.cpp ****     return -m_height;
510
 186:../libOLED/src/displayclass.cpp ****     break;
511
 187:../libOLED/src/displayclass.cpp ****   }
512
 188:../libOLED/src/displayclass.cpp ****   return 0;
513
 189:../libOLED/src/displayclass.cpp **** }
514
 295                            .loc 1 189 1 view .LVU53
515
 296 000e 7047                  bx      lr
516
 297                    .LVL19:
517
 298                    .L20:
518
 173:../libOLED/src/displayclass.cpp ****   switch (m_rotation)
519
 299                            .loc 1 173 3 view .LVU54
520
 300 0010 032B                  cmp     r3, #3
521
 301 0012 FBD1                  bne     .L24
522
 183:../libOLED/src/displayclass.cpp ****   case 3:
523
 302                            .loc 1 183 5 is_stmt 1 view .LVU55
524
 184:../libOLED/src/displayclass.cpp ****     return -m_height;
525
 303                            .loc 1 184 3 view .LVU56
526
 185:../libOLED/src/displayclass.cpp ****     break;
527
 304                            .loc 1 185 5 view .LVU57
528
 185:../libOLED/src/displayclass.cpp ****     break;
529
 305                            .loc 1 185 13 is_stmt 0 view .LVU58
530
 306 0014 8068                  ldr     r0, [r0, #8]
531
 307                    .LVL20:
532
 185:../libOLED/src/displayclass.cpp ****     break;
533
 308                            .loc 1 185 13 view .LVU59
534
 309 0016 4042                  rsbs    r0, r0, #0
535
 310 0018 00B2                  sxth    r0, r0
536
 311 001a 7047                  bx      lr
537
 312                    .LVL21:
538
 313                    .L25:
539
 175:../libOLED/src/displayclass.cpp ****     return m_height;
540
 314                            .loc 1 175 3 is_stmt 1 view .LVU60
23 mjames 541
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 10
20 mjames 542
 
543
 
544
 176:../libOLED/src/displayclass.cpp ****     break;
545
 315                            .loc 1 176 5 view .LVU61
546
 176:../libOLED/src/displayclass.cpp ****     break;
547
 316                            .loc 1 176 12 is_stmt 0 view .LVU62
548
 317 001c B0F90800              ldrsh   r0, [r0, #8]
549
 318                    .LVL22:
550
 176:../libOLED/src/displayclass.cpp ****     break;
551
 319                            .loc 1 176 12 view .LVU63
552
 320 0020 7047                  bx      lr
553
 321                    .LVL23:
554
 322                    .L19:
555
 180:../libOLED/src/displayclass.cpp ****   case 2:
556
 323                            .loc 1 180 5 is_stmt 1 view .LVU64
557
 181:../libOLED/src/displayclass.cpp ****     return m_width;
558
 324                            .loc 1 181 3 view .LVU65
559
 182:../libOLED/src/displayclass.cpp ****     break;
560
 325                            .loc 1 182 5 view .LVU66
561
 182:../libOLED/src/displayclass.cpp ****     break;
562
 326                            .loc 1 182 12 is_stmt 0 view .LVU67
563
 327 0022 B0F90400              ldrsh   r0, [r0, #4]
564
 328                    .LVL24:
565
 182:../libOLED/src/displayclass.cpp ****     break;
566
 329                            .loc 1 182 12 view .LVU68
567
 330 0026 7047                  bx      lr
568
 331                            .cfi_endproc
569
 332                    .LFE48:
570
 334                            .section        .text._ZN9display_t9drawPixelEssb,"ax",%progbits
571
 335                            .align  1
572
 336                            .global _ZN9display_t9drawPixelEssb
573
 337                            .syntax unified
574
 338                            .thumb
575
 339                            .thumb_func
576
 340                            .fpu softvfp
577
 342                    _ZN9display_t9drawPixelEssb:
578
 343                    .LVL25:
579
 344                    .LFB49:
580
 190:../libOLED/src/displayclass.cpp ****
581
 191:../libOLED/src/displayclass.cpp **** // the most basic function, set a single pixel
582
 192:../libOLED/src/displayclass.cpp **** void display_t::drawPixel(int16_t x, int16_t y, bool pixel)
583
 193:../libOLED/src/displayclass.cpp **** {
584
 345                            .loc 1 193 1 is_stmt 1 view -0
585
 346                            .cfi_startproc
586
 347                            @ args = 0, pretend = 0, frame = 0
587
 348                            @ frame_needed = 0, uses_anonymous_args = 0
588
 194:../libOLED/src/displayclass.cpp ****   if ((x < 0) || (x >= m_width) || (y < 0) || (y >= m_height))
589
 349                            .loc 1 194 3 view .LVU70
590
 350 0000 0029                  cmp     r1, #0
591
 351                    .LVL26:
592
 193:../libOLED/src/displayclass.cpp ****   if ((x < 0) || (x >= m_width) || (y < 0) || (y >= m_height))
593
 352                            .loc 1 193 1 is_stmt 0 view .LVU71
594
 353 0002 F0B5                  push    {r4, r5, r6, r7, lr}
595
 354                    .LCFI1:
596
 355                            .cfi_def_cfa_offset 20
597
 356                            .cfi_offset 4, -20
598
 357                            .cfi_offset 5, -16
599
 358                            .cfi_offset 6, -12
600
 359                            .cfi_offset 7, -8
23 mjames 601
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 11
20 mjames 602
 
603
 
604
 360                            .cfi_offset 14, -4
605
 361                            .loc 1 194 3 view .LVU72
606
 362 0004 39DB                  blt     .L26
607
 363                            .loc 1 194 24 discriminator 1 view .LVU73
608
 364 0006 4468                  ldr     r4, [r0, #4]
609
 365                            .loc 1 194 15 discriminator 1 view .LVU74
610
 366 0008 A142                  cmp     r1, r4
611
 367 000a 36DA                  bge     .L26
612
 368                            .loc 1 194 33 discriminator 2 view .LVU75
613
 369 000c 002A                  cmp     r2, #0
614
 370 000e 34DB                  blt     .L26
615
 371                            .loc 1 194 53 discriminator 3 view .LVU76
616
 372 0010 8568                  ldr     r5, [r0, #8]
617
 373                            .loc 1 194 44 discriminator 3 view .LVU77
618
 374 0012 AA42                  cmp     r2, r5
619
 375 0014 31DA                  bge     .L26
620
 195:../libOLED/src/displayclass.cpp ****     return;
621
 196:../libOLED/src/displayclass.cpp ****
622
 197:../libOLED/src/displayclass.cpp ****   // check rotation, move pixel around if necessary
623
 198:../libOLED/src/displayclass.cpp ****   switch (m_rotation)
624
 376                            .loc 1 198 3 is_stmt 1 view .LVU78
625
 377                            .loc 1 198 11 is_stmt 0 view .LVU79
626
 378 0016 8669                  ldr     r6, [r0, #24]
627
 379                            .loc 1 198 3 view .LVU80
628
 380 0018 022E                  cmp     r6, #2
629
 381 001a 2FD0                  beq     .L28
630
 382 001c 032E                  cmp     r6, #3
631
 383 001e 34D0                  beq     .L29
632
 384 0020 012E                  cmp     r6, #1
633
 385 0022 03D1                  bne     .L30
634
 199:../libOLED/src/displayclass.cpp ****   {
635
 200:../libOLED/src/displayclass.cpp ****   case 1:
636
 386                            .loc 1 200 3 is_stmt 1 view .LVU81
637
 201:../libOLED/src/displayclass.cpp ****     swap(x, y);
638
 387                            .loc 1 201 5 view .LVU82
639
 388                    .LVL27:
640
 202:../libOLED/src/displayclass.cpp ****     x = m_width - x - 1;
641
 389                            .loc 1 202 5 view .LVU83
642
 390                            .loc 1 202 21 is_stmt 0 view .LVU84
643
 391 0024 D243                  mvns    r2, r2
644
 392                    .LVL28:
645
 393                            .loc 1 202 21 view .LVU85
646
 394 0026 1519                  adds    r5, r2, r4
647
 395                    .LVL29:
648
 203:../libOLED/src/displayclass.cpp ****     break;
649
 396                            .loc 1 203 5 is_stmt 1 view .LVU86
650
 397 0028 0A46                  mov     r2, r1
651
 202:../libOLED/src/displayclass.cpp ****     x = m_width - x - 1;
652
 398                            .loc 1 202 7 is_stmt 0 view .LVU87
653
 399 002a 29B2                  sxth    r1, r5
654
 400                    .LVL30:
655
 401                    .L30:
656
 204:../libOLED/src/displayclass.cpp ****   case 2:
657
 205:../libOLED/src/displayclass.cpp ****     x = m_width - x - 1;
658
 206:../libOLED/src/displayclass.cpp ****     y = m_height - y - 1;
659
 207:../libOLED/src/displayclass.cpp ****     break;
660
 208:../libOLED/src/displayclass.cpp ****   case 3:
23 mjames 661
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 12
20 mjames 662
 
663
 
664
 209:../libOLED/src/displayclass.cpp ****     swap(x, y);
665
 210:../libOLED/src/displayclass.cpp ****     y = m_height - y - 1;
666
 211:../libOLED/src/displayclass.cpp ****     break;
667
 212:../libOLED/src/displayclass.cpp ****   }
668
 213:../libOLED/src/displayclass.cpp ****
669
 214:../libOLED/src/displayclass.cpp ****   // x is which column
670
 215:../libOLED/src/displayclass.cpp ****   //  BLACK,  and 0,             invert 0
671
 216:../libOLED/src/displayclass.cpp ****   //  WHITE,   and 0,            invert 1
672
 217:../libOLED/src/displayclass.cpp ****   //  OVERLAY, and 1 (preserve) , invert 0/
673
 218:../libOLED/src/displayclass.cpp ****   // INVERT,  and 1, (preserve) , invert 1
674
 219:../libOLED/src/displayclass.cpp ****
675
 220:../libOLED/src/displayclass.cpp ****   switch (m_colour)
676
 402                            .loc 1 220 3 is_stmt 1 view .LVU88
677
 221:../libOLED/src/displayclass.cpp ****   {
678
 222:../libOLED/src/displayclass.cpp ****   case BLACK:
679
 223:../libOLED/src/displayclass.cpp ****   case WHITE:
680
 224:../libOLED/src/displayclass.cpp ****     m_data[x + (y / 8) * m_width] &= ~(1 << (y & 7));
681
 403                            .loc 1 224 19 is_stmt 0 view .LVU89
682
 404 002c 1746                  mov     r7, r2
683
 220:../libOLED/src/displayclass.cpp ****   {
684
 405                            .loc 1 220 3 view .LVU90
685
 406 002e 057F                  ldrb    r5, [r0, #28]   @ zero_extendqisi2
686
 407                            .loc 1 224 19 view .LVU91
687
 408 0030 002A                  cmp     r2, #0
688
 409 0032 B8BF                  it      lt
689
 410 0034 D71D                  addlt   r7, r2, #7
690
 220:../libOLED/src/displayclass.cpp ****   {
691
 411                            .loc 1 220 3 view .LVU92
692
 412 0036 012D                  cmp     r5, #1
693
 413                            .loc 1 224 35 view .LVU93
694
 414 0038 47F3CF07              sbfx    r7, r7, #3, #16
695
 415                            .loc 1 224 48 view .LVU94
696
 416 003c 02F00702              and     r2, r2, #7
697
 417                    .LVL31:
698
 220:../libOLED/src/displayclass.cpp ****   {
699
 418                            .loc 1 220 3 view .LVU95
700
 419 0040 0CD8                  bhi     .L32
701
 420                            .loc 1 224 42 view .LVU96
702
 421 0042 0125                  movs    r5, #1
703
 422                            .loc 1 224 35 view .LVU97
704
 423 0044 07FB0414              mla     r4, r7, r4, r1
705
 424 0048 D0F820C0              ldr     ip, [r0, #32]
706
 222:../libOLED/src/displayclass.cpp ****   case WHITE:
707
 425                            .loc 1 222 3 is_stmt 1 view .LVU98
708
 223:../libOLED/src/displayclass.cpp ****     m_data[x + (y / 8) * m_width] &= ~(1 << (y & 7));
709
 426                            .loc 1 223 3 view .LVU99
710
 427                            .loc 1 224 5 view .LVU100
711
 428                            .loc 1 224 42 is_stmt 0 view .LVU101
712
 429 004c 05FA02F6              lsl     r6, r5, r2
713
 430                            .loc 1 224 35 view .LVU102
714
 431 0050 1CF80450              ldrb    r5, [ip, r4]    @ zero_extendqisi2
715
 432 0054 25EA0605              bic     r5, r5, r6
716
 433 0058 0CF80450              strb    r5, [ip, r4]
717
 225:../libOLED/src/displayclass.cpp ****     break;
718
 434                            .loc 1 225 5 is_stmt 1 view .LVU103
719
 435                    .L32:
720
 226:../libOLED/src/displayclass.cpp ****   default:
23 mjames 721
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 13
20 mjames 722
 
723
 
724
 227:../libOLED/src/displayclass.cpp ****     break;
725
 228:../libOLED/src/displayclass.cpp ****   }
726
 229:../libOLED/src/displayclass.cpp ****   uint8_t pixData = 0;
727
 436                            .loc 1 229 3 view .LVU104
728
 437                    .LVL32:
729
 230:../libOLED/src/displayclass.cpp ****   switch (m_colour)
730
 438                            .loc 1 230 3 view .LVU105
731
 439                            .loc 1 230 11 is_stmt 0 view .LVU106
732
 440 005c 047F                  ldrb    r4, [r0, #28]   @ zero_extendqisi2
733
 441                            .loc 1 230 3 view .LVU107
734
 442 005e C4B1                  cbz     r4, .L33
735
 443 0060 013C                  subs    r4, r4, #1
736
 229:../libOLED/src/displayclass.cpp ****   switch (m_colour)
737
 444                            .loc 1 229 11 view .LVU108
738
 445 0062 022C                  cmp     r4, #2
739
 446 0064 88BF                  it      hi
740
 447 0066 0023                  movhi   r3, #0
741
 448                    .LVL33:
742
 449                    .L34:
743
 231:../libOLED/src/displayclass.cpp ****   {
744
 232:../libOLED/src/displayclass.cpp ****   case BLACK:
745
 233:../libOLED/src/displayclass.cpp ****     pixData = pixel ? 0 : 1;
746
 234:../libOLED/src/displayclass.cpp ****     break;
747
 235:../libOLED/src/displayclass.cpp ****   case WHITE:
748
 236:../libOLED/src/displayclass.cpp ****   case OVERLAY:
749
 237:../libOLED/src/displayclass.cpp ****   case INVERT:
750
 238:../libOLED/src/displayclass.cpp ****     pixData = pixel ? 1 : 0;
751
 239:../libOLED/src/displayclass.cpp ****     break;
752
 240:../libOLED/src/displayclass.cpp ****   }
753
 241:../libOLED/src/displayclass.cpp ****
754
 242:../libOLED/src/displayclass.cpp ****   m_data[x + (y / 8) * m_width] ^= (pixData << (y & 7));
755
 450                            .loc 1 242 3 is_stmt 1 view .LVU109
756
 451                            .loc 1 242 33 is_stmt 0 view .LVU110
757
 452 0068 4468                  ldr     r4, [r0, #4]
758
 453 006a 006A                  ldr     r0, [r0, #32]
759
 454                    .LVL34:
760
 455                            .loc 1 242 33 view .LVU111
761
 456 006c 04FB0711              mla     r1, r4, r7, r1
762
 457                    .LVL35:
763
 458                            .loc 1 242 45 view .LVU112
764
 459 0070 03FA02F2              lsl     r2, r3, r2
765
 460                            .loc 1 242 33 view .LVU113
766
 461 0074 435C                  ldrb    r3, [r0, r1]    @ zero_extendqisi2
767
 462                    .LVL36:
768
 463                            .loc 1 242 33 view .LVU114
769
 464 0076 5A40                  eors    r2, r2, r3
770
 465 0078 4254                  strb    r2, [r0, r1]
771
 466                    .L26:
772
 243:../libOLED/src/displayclass.cpp **** }
773
 467                            .loc 1 243 1 view .LVU115
774
 468 007a F0BD                  pop     {r4, r5, r6, r7, pc}
775
 469                    .LVL37:
776
 470                    .L28:
777
 204:../libOLED/src/displayclass.cpp ****     x = m_width - x - 1;
778
 471                            .loc 1 204 3 is_stmt 1 view .LVU116
779
 205:../libOLED/src/displayclass.cpp ****     y = m_height - y - 1;
780
 472                            .loc 1 205 5 view .LVU117
23 mjames 781
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 14
20 mjames 782
 
783
 
784
 205:../libOLED/src/displayclass.cpp ****     y = m_height - y - 1;
785
 473                            .loc 1 205 21 is_stmt 0 view .LVU118
786
 474 007c C943                  mvns    r1, r1
787
 206:../libOLED/src/displayclass.cpp ****     break;
788
 475                            .loc 1 206 22 view .LVU119
789
 476 007e D243                  mvns    r2, r2
790
 477                    .LVL38:
791
 205:../libOLED/src/displayclass.cpp ****     y = m_height - y - 1;
792
 478                            .loc 1 205 21 view .LVU120
793
 479 0080 2144                  add     r1, r1, r4
794
 480 0082 09B2                  sxth    r1, r1
795
 481                    .LVL39:
796
 206:../libOLED/src/displayclass.cpp ****     break;
797
 482                            .loc 1 206 5 is_stmt 1 view .LVU121
798
 206:../libOLED/src/displayclass.cpp ****     break;
799
 483                            .loc 1 206 22 is_stmt 0 view .LVU122
800
 484 0084 1544                  add     r5, r5, r2
801
 485                    .LVL40:
802
 486                    .L37:
803
 210:../libOLED/src/displayclass.cpp ****     break;
804
 487                            .loc 1 210 7 view .LVU123
805
 488 0086 2AB2                  sxth    r2, r5
806
 211:../libOLED/src/displayclass.cpp ****   }
807
 489                            .loc 1 211 5 view .LVU124
808
 490 0088 D0E7                  b       .L30
809
 491                    .LVL41:
810
 492                    .L29:
811
 208:../libOLED/src/displayclass.cpp ****     swap(x, y);
812
 493                            .loc 1 208 3 is_stmt 1 view .LVU125
813
 209:../libOLED/src/displayclass.cpp ****     y = m_height - y - 1;
814
 494                            .loc 1 209 5 view .LVU126
815
 210:../libOLED/src/displayclass.cpp ****     break;
816
 495                            .loc 1 210 5 view .LVU127
817
 210:../libOLED/src/displayclass.cpp ****     break;
818
 496                            .loc 1 210 22 is_stmt 0 view .LVU128
819
 497 008a C943                  mvns    r1, r1
820
 498                    .LVL42:
821
 210:../libOLED/src/displayclass.cpp ****     break;
822
 499                            .loc 1 210 22 view .LVU129
823
 500 008c 0D44                  add     r5, r5, r1
824
 501                    .LVL43:
825
 211:../libOLED/src/displayclass.cpp ****   }
826
 502                            .loc 1 211 5 is_stmt 1 view .LVU130
827
 503 008e 1146                  mov     r1, r2
828
 504 0090 F9E7                  b       .L37
829
 505                    .LVL44:
830
 506                    .L33:
831
 232:../libOLED/src/displayclass.cpp ****     pixData = pixel ? 0 : 1;
832
 507                            .loc 1 232 3 view .LVU131
833
 233:../libOLED/src/displayclass.cpp ****     break;
834
 508                            .loc 1 233 5 view .LVU132
835
 229:../libOLED/src/displayclass.cpp ****   switch (m_colour)
836
 509                            .loc 1 229 11 is_stmt 0 view .LVU133
837
 510 0092 83F00103              eor     r3, r3, #1
838
 511                    .LVL45:
839
 229:../libOLED/src/displayclass.cpp ****   switch (m_colour)
840
 512                            .loc 1 229 11 view .LVU134
23 mjames 841
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 15
20 mjames 842
 
843
 
844
 513 0096 E7E7                  b       .L34
845
 514                            .cfi_endproc
846
 515                    .LFE49:
847
 517                            .section        .text._ZN9display_t13invertDisplayEh,"ax",%progbits
848
 518                            .align  1
849
 519                            .global _ZN9display_t13invertDisplayEh
850
 520                            .syntax unified
851
 521                            .thumb
852
 522                            .thumb_func
853
 523                            .fpu softvfp
854
 525                    _ZN9display_t13invertDisplayEh:
855
 526                    .LVL46:
856
 527                    .LFB50:
857
 244:../libOLED/src/displayclass.cpp ****
858
 245:../libOLED/src/displayclass.cpp **** void display_t::invertDisplay(uint8_t i)
859
 246:../libOLED/src/displayclass.cpp **** {
860
 528                            .loc 1 246 1 is_stmt 1 view -0
861
 529                            .cfi_startproc
862
 530                            @ args = 0, pretend = 0, frame = 0
863
 531                            @ frame_needed = 0, uses_anonymous_args = 0
864
 247:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
865
 532                            .loc 1 247 3 view .LVU136
866
 246:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
867
 533                            .loc 1 246 1 is_stmt 0 view .LVU137
868
 534 0000 70B5                  push    {r4, r5, r6, lr}
869
 535                    .LCFI2:
870
 536                            .cfi_def_cfa_offset 16
871
 537                            .cfi_offset 4, -16
872
 538                            .cfi_offset 5, -12
873
 539                            .cfi_offset 6, -8
874
 540                            .cfi_offset 14, -4
875
 246:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
876
 541                            .loc 1 246 1 view .LVU138
877
 542 0002 0446                  mov     r4, r0
878
 543 0004 0D46                  mov     r5, r1
879
 544                            .loc 1 247 14 view .LVU139
880
 545 0006 0368                  ldr     r3, [r0]
881
 546                            .loc 1 247 12 view .LVU140
882
 547 0008 0021                  movs    r1, #0
883
 548                    .LVL47:
884
 549                            .loc 1 247 12 view .LVU141
885
 550 000a 9B68                  ldr     r3, [r3, #8]
886
 551 000c 9847                  blx     r3
887
 552                    .LVL48:
888
 248:../libOLED/src/displayclass.cpp ****   oledWrite(i ? SSD1306_INVERTDISPLAY : SSD1306_NORMALDISPLAY);
889
 553                            .loc 1 248 3 is_stmt 1 view .LVU142
890
 554                            .loc 1 248 62 is_stmt 0 view .LVU143
891
 555 000e 2368                  ldr     r3, [r4]
892
 556                            .loc 1 248 12 view .LVU144
893
 557 0010 002D                  cmp     r5, #0
894
 558 0012 2046                  mov     r0, r4
895
 249:../libOLED/src/displayclass.cpp **** }
896
 559                            .loc 1 249 1 view .LVU145
897
 560 0014 BDE87040              pop     {r4, r5, r6, lr}
898
 561                    .LCFI3:
899
 562                            .cfi_restore 14
900
 563                            .cfi_restore 6
23 mjames 901
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 16
20 mjames 902
 
903
 
904
 564                            .cfi_restore 5
905
 565                            .cfi_restore 4
906
 566                            .cfi_def_cfa_offset 0
907
 567                    .LVL49:
908
 248:../libOLED/src/displayclass.cpp ****   oledWrite(i ? SSD1306_INVERTDISPLAY : SSD1306_NORMALDISPLAY);
909
 568                            .loc 1 248 12 view .LVU146
910
 569 0018 14BF                  ite     ne
911
 570 001a A721                  movne   r1, #167
912
 571 001c A621                  moveq   r1, #166
913
 248:../libOLED/src/displayclass.cpp ****   oledWrite(i ? SSD1306_INVERTDISPLAY : SSD1306_NORMALDISPLAY);
914
 572                            .loc 1 248 62 view .LVU147
915
 573 001e DB68                  ldr     r3, [r3, #12]
916
 248:../libOLED/src/displayclass.cpp ****   oledWrite(i ? SSD1306_INVERTDISPLAY : SSD1306_NORMALDISPLAY);
917
 574                            .loc 1 248 12 view .LVU148
918
 575 0020 1847                  bx      r3      @ indirect register sibling call
919
 576                    .LVL50:
920
 248:../libOLED/src/displayclass.cpp ****   oledWrite(i ? SSD1306_INVERTDISPLAY : SSD1306_NORMALDISPLAY);
921
 577                            .loc 1 248 12 view .LVU149
922
 578                            .cfi_endproc
923
 579                    .LFE50:
924
 581                            .section        .text._ZN9display_t16startscrollrightEhh,"ax",%progbits
925
 582                            .align  1
926
 583                            .global _ZN9display_t16startscrollrightEhh
927
 584                            .syntax unified
928
 585                            .thumb
929
 586                            .thumb_func
930
 587                            .fpu softvfp
931
 589                    _ZN9display_t16startscrollrightEhh:
932
 590                    .LVL51:
933
 591                    .LFB51:
934
 250:../libOLED/src/displayclass.cpp ****
935
 251:../libOLED/src/displayclass.cpp **** // startscrollright
936
 252:../libOLED/src/displayclass.cpp **** // Activate a right handed scroll for rows start through stop
937
 253:../libOLED/src/displayclass.cpp **** // Hint, the display is 16 rows tall. To scroll the whole display, run:
938
 254:../libOLED/src/displayclass.cpp **** // display.scrollright(0x00, 0x0F)
939
 255:../libOLED/src/displayclass.cpp **** void display_t::startscrollright(uint8_t start, uint8_t stop)
940
 256:../libOLED/src/displayclass.cpp **** {
941
 592                            .loc 1 256 1 is_stmt 1 view -0
942
 593                            .cfi_startproc
943
 594                            @ args = 0, pretend = 0, frame = 0
944
 595                            @ frame_needed = 0, uses_anonymous_args = 0
945
 257:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
946
 596                            .loc 1 257 3 view .LVU151
947
 256:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
948
 597                            .loc 1 256 1 is_stmt 0 view .LVU152
949
 598 0000 70B5                  push    {r4, r5, r6, lr}
950
 599                    .LCFI4:
951
 600                            .cfi_def_cfa_offset 16
952
 601                            .cfi_offset 4, -16
953
 602                            .cfi_offset 5, -12
954
 603                            .cfi_offset 6, -8
955
 604                            .cfi_offset 14, -4
956
 256:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
957
 605                            .loc 1 256 1 view .LVU153
958
 606 0002 0446                  mov     r4, r0
959
 607 0004 0E46                  mov     r6, r1
960
 608 0006 1546                  mov     r5, r2
23 mjames 961
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 17
20 mjames 962
 
963
 
964
 609                            .loc 1 257 14 view .LVU154
965
 610 0008 0368                  ldr     r3, [r0]
966
 611                            .loc 1 257 12 view .LVU155
967
 612 000a 0021                  movs    r1, #0
968
 613                    .LVL52:
969
 614                            .loc 1 257 12 view .LVU156
970
 615 000c 9B68                  ldr     r3, [r3, #8]
971
 616 000e 9847                  blx     r3
972
 617                    .LVL53:
973
 258:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_RIGHT_HORIZONTAL_SCROLL);
974
 618                            .loc 1 258 3 is_stmt 1 view .LVU157
975
 619                            .loc 1 258 44 is_stmt 0 view .LVU158
976
 620 0010 2368                  ldr     r3, [r4]
977
 621                            .loc 1 258 12 view .LVU159
978
 622 0012 2046                  mov     r0, r4
979
 623 0014 2621                  movs    r1, #38
980
 624 0016 DB68                  ldr     r3, [r3, #12]
981
 625 0018 9847                  blx     r3
982
 626                    .LVL54:
983
 259:../libOLED/src/displayclass.cpp ****   oledWrite(0X00);
984
 627                            .loc 1 259 3 is_stmt 1 view .LVU160
985
 628                            .loc 1 259 17 is_stmt 0 view .LVU161
986
 629 001a 2368                  ldr     r3, [r4]
987
 630                            .loc 1 259 12 view .LVU162
988
 631 001c 2046                  mov     r0, r4
989
 632 001e 0021                  movs    r1, #0
990
 633 0020 DB68                  ldr     r3, [r3, #12]
991
 634 0022 9847                  blx     r3
992
 635                    .LVL55:
993
 260:../libOLED/src/displayclass.cpp ****   oledWrite(start);
994
 636                            .loc 1 260 3 is_stmt 1 view .LVU163
995
 637                            .loc 1 260 18 is_stmt 0 view .LVU164
996
 638 0024 2368                  ldr     r3, [r4]
997
 639                            .loc 1 260 12 view .LVU165
998
 640 0026 3146                  mov     r1, r6
999
 641 0028 2046                  mov     r0, r4
1000
 642 002a DB68                  ldr     r3, [r3, #12]
1001
 643 002c 9847                  blx     r3
1002
 644                    .LVL56:
1003
 261:../libOLED/src/displayclass.cpp ****   oledWrite(0X00);
1004
 645                            .loc 1 261 3 is_stmt 1 view .LVU166
1005
 646                            .loc 1 261 17 is_stmt 0 view .LVU167
1006
 647 002e 2368                  ldr     r3, [r4]
1007
 648                            .loc 1 261 12 view .LVU168
1008
 649 0030 2046                  mov     r0, r4
1009
 650 0032 0021                  movs    r1, #0
1010
 651 0034 DB68                  ldr     r3, [r3, #12]
1011
 652 0036 9847                  blx     r3
1012
 653                    .LVL57:
1013
 262:../libOLED/src/displayclass.cpp ****   oledWrite(stop);
1014
 654                            .loc 1 262 3 is_stmt 1 view .LVU169
1015
 655                            .loc 1 262 17 is_stmt 0 view .LVU170
1016
 656 0038 2368                  ldr     r3, [r4]
1017
 657                            .loc 1 262 12 view .LVU171
1018
 658 003a 2946                  mov     r1, r5
1019
 659 003c 2046                  mov     r0, r4
1020
 660 003e DB68                  ldr     r3, [r3, #12]
23 mjames 1021
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 18
20 mjames 1022
 
1023
 
1024
 661 0040 9847                  blx     r3
1025
 662                    .LVL58:
1026
 263:../libOLED/src/displayclass.cpp ****   oledWrite(0X00);
1027
 663                            .loc 1 263 3 is_stmt 1 view .LVU172
1028
 664                            .loc 1 263 17 is_stmt 0 view .LVU173
1029
 665 0042 2368                  ldr     r3, [r4]
1030
 666                            .loc 1 263 12 view .LVU174
1031
 667 0044 2046                  mov     r0, r4
1032
 668 0046 0021                  movs    r1, #0
1033
 669 0048 DB68                  ldr     r3, [r3, #12]
1034
 670 004a 9847                  blx     r3
1035
 671                    .LVL59:
1036
 264:../libOLED/src/displayclass.cpp ****   oledWrite(0XFF);
1037
 672                            .loc 1 264 3 is_stmt 1 view .LVU175
1038
 673                            .loc 1 264 17 is_stmt 0 view .LVU176
1039
 674 004c 2368                  ldr     r3, [r4]
1040
 675                            .loc 1 264 12 view .LVU177
1041
 676 004e 2046                  mov     r0, r4
1042
 677 0050 FF21                  movs    r1, #255
1043
 678 0052 DB68                  ldr     r3, [r3, #12]
1044
 679 0054 9847                  blx     r3
1045
 680                    .LVL60:
1046
 265:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_ACTIVATE_SCROLL);
1047
 681                            .loc 1 265 3 is_stmt 1 view .LVU178
1048
 682                            .loc 1 265 36 is_stmt 0 view .LVU179
1049
 683 0056 2368                  ldr     r3, [r4]
1050
 684                            .loc 1 265 12 view .LVU180
1051
 685 0058 2046                  mov     r0, r4
1052
 266:../libOLED/src/displayclass.cpp **** }
1053
 686                            .loc 1 266 1 view .LVU181
1054
 687 005a BDE87040              pop     {r4, r5, r6, lr}
1055
 688                    .LCFI5:
1056
 689                            .cfi_restore 14
1057
 690                            .cfi_restore 6
1058
 691                            .cfi_restore 5
1059
 692                            .cfi_restore 4
1060
 693                            .cfi_def_cfa_offset 0
1061
 694                    .LVL61:
1062
 265:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_ACTIVATE_SCROLL);
1063
 695                            .loc 1 265 12 view .LVU182
1064
 696 005e 2F21                  movs    r1, #47
1065
 697 0060 DB68                  ldr     r3, [r3, #12]
1066
 698 0062 1847                  bx      r3      @ indirect register sibling call
1067
 699                    .LVL62:
1068
 265:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_ACTIVATE_SCROLL);
1069
 700                            .loc 1 265 12 view .LVU183
1070
 701                            .cfi_endproc
1071
 702                    .LFE51:
1072
 704                            .section        .text._ZN9display_t15startscrollleftEhh,"ax",%progbits
1073
 705                            .align  1
1074
 706                            .global _ZN9display_t15startscrollleftEhh
1075
 707                            .syntax unified
1076
 708                            .thumb
1077
 709                            .thumb_func
1078
 710                            .fpu softvfp
1079
 712                    _ZN9display_t15startscrollleftEhh:
1080
 713                    .LVL63:
23 mjames 1081
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 19
20 mjames 1082
 
1083
 
1084
 714                    .LFB52:
1085
 267:../libOLED/src/displayclass.cpp ****
1086
 268:../libOLED/src/displayclass.cpp **** // startscrollleft
1087
 269:../libOLED/src/displayclass.cpp **** // Activate a right handed scroll for rows start through stop
1088
 270:../libOLED/src/displayclass.cpp **** // Hint, the display is 16 rows tall. To scroll the whole display, run:
1089
 271:../libOLED/src/displayclass.cpp **** // display.scrollright(0x00, 0x0F)
1090
 272:../libOLED/src/displayclass.cpp **** void display_t::startscrollleft(uint8_t start, uint8_t stop)
1091
 273:../libOLED/src/displayclass.cpp **** {
1092
 715                            .loc 1 273 1 is_stmt 1 view -0
1093
 716                            .cfi_startproc
1094
 717                            @ args = 0, pretend = 0, frame = 0
1095
 718                            @ frame_needed = 0, uses_anonymous_args = 0
1096
 274:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
1097
 719                            .loc 1 274 3 view .LVU185
1098
 273:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
1099
 720                            .loc 1 273 1 is_stmt 0 view .LVU186
1100
 721 0000 70B5                  push    {r4, r5, r6, lr}
1101
 722                    .LCFI6:
1102
 723                            .cfi_def_cfa_offset 16
1103
 724                            .cfi_offset 4, -16
1104
 725                            .cfi_offset 5, -12
1105
 726                            .cfi_offset 6, -8
1106
 727                            .cfi_offset 14, -4
1107
 273:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
1108
 728                            .loc 1 273 1 view .LVU187
1109
 729 0002 0446                  mov     r4, r0
1110
 730 0004 0E46                  mov     r6, r1
1111
 731 0006 1546                  mov     r5, r2
1112
 732                            .loc 1 274 14 view .LVU188
1113
 733 0008 0368                  ldr     r3, [r0]
1114
 734                            .loc 1 274 12 view .LVU189
1115
 735 000a 0021                  movs    r1, #0
1116
 736                    .LVL64:
1117
 737                            .loc 1 274 12 view .LVU190
1118
 738 000c 9B68                  ldr     r3, [r3, #8]
1119
 739 000e 9847                  blx     r3
1120
 740                    .LVL65:
1121
 275:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_LEFT_HORIZONTAL_SCROLL);
1122
 741                            .loc 1 275 3 is_stmt 1 view .LVU191
1123
 742                            .loc 1 275 43 is_stmt 0 view .LVU192
1124
 743 0010 2368                  ldr     r3, [r4]
1125
 744                            .loc 1 275 12 view .LVU193
1126
 745 0012 2046                  mov     r0, r4
1127
 746 0014 2721                  movs    r1, #39
1128
 747 0016 DB68                  ldr     r3, [r3, #12]
1129
 748 0018 9847                  blx     r3
1130
 749                    .LVL66:
1131
 276:../libOLED/src/displayclass.cpp ****   oledWrite(0X00);
1132
 750                            .loc 1 276 3 is_stmt 1 view .LVU194
1133
 751                            .loc 1 276 17 is_stmt 0 view .LVU195
1134
 752 001a 2368                  ldr     r3, [r4]
1135
 753                            .loc 1 276 12 view .LVU196
1136
 754 001c 2046                  mov     r0, r4
1137
 755 001e 0021                  movs    r1, #0
1138
 756 0020 DB68                  ldr     r3, [r3, #12]
1139
 757 0022 9847                  blx     r3
1140
 758                    .LVL67:
23 mjames 1141
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 20
20 mjames 1142
 
1143
 
1144
 277:../libOLED/src/displayclass.cpp ****   oledWrite(start);
1145
 759                            .loc 1 277 3 is_stmt 1 view .LVU197
1146
 760                            .loc 1 277 18 is_stmt 0 view .LVU198
1147
 761 0024 2368                  ldr     r3, [r4]
1148
 762                            .loc 1 277 12 view .LVU199
1149
 763 0026 3146                  mov     r1, r6
1150
 764 0028 2046                  mov     r0, r4
1151
 765 002a DB68                  ldr     r3, [r3, #12]
1152
 766 002c 9847                  blx     r3
1153
 767                    .LVL68:
1154
 278:../libOLED/src/displayclass.cpp ****   oledWrite(0X00);
1155
 768                            .loc 1 278 3 is_stmt 1 view .LVU200
1156
 769                            .loc 1 278 17 is_stmt 0 view .LVU201
1157
 770 002e 2368                  ldr     r3, [r4]
1158
 771                            .loc 1 278 12 view .LVU202
1159
 772 0030 2046                  mov     r0, r4
1160
 773 0032 0021                  movs    r1, #0
1161
 774 0034 DB68                  ldr     r3, [r3, #12]
1162
 775 0036 9847                  blx     r3
1163
 776                    .LVL69:
1164
 279:../libOLED/src/displayclass.cpp ****   oledWrite(stop);
1165
 777                            .loc 1 279 3 is_stmt 1 view .LVU203
1166
 778                            .loc 1 279 17 is_stmt 0 view .LVU204
1167
 779 0038 2368                  ldr     r3, [r4]
1168
 780                            .loc 1 279 12 view .LVU205
1169
 781 003a 2946                  mov     r1, r5
1170
 782 003c 2046                  mov     r0, r4
1171
 783 003e DB68                  ldr     r3, [r3, #12]
1172
 784 0040 9847                  blx     r3
1173
 785                    .LVL70:
1174
 280:../libOLED/src/displayclass.cpp ****   oledWrite(0X00);
1175
 786                            .loc 1 280 3 is_stmt 1 view .LVU206
1176
 787                            .loc 1 280 17 is_stmt 0 view .LVU207
1177
 788 0042 2368                  ldr     r3, [r4]
1178
 789                            .loc 1 280 12 view .LVU208
1179
 790 0044 2046                  mov     r0, r4
1180
 791 0046 0021                  movs    r1, #0
1181
 792 0048 DB68                  ldr     r3, [r3, #12]
1182
 793 004a 9847                  blx     r3
1183
 794                    .LVL71:
1184
 281:../libOLED/src/displayclass.cpp ****   oledWrite(0XFF);
1185
 795                            .loc 1 281 3 is_stmt 1 view .LVU209
1186
 796                            .loc 1 281 17 is_stmt 0 view .LVU210
1187
 797 004c 2368                  ldr     r3, [r4]
1188
 798                            .loc 1 281 12 view .LVU211
1189
 799 004e 2046                  mov     r0, r4
1190
 800 0050 FF21                  movs    r1, #255
1191
 801 0052 DB68                  ldr     r3, [r3, #12]
1192
 802 0054 9847                  blx     r3
1193
 803                    .LVL72:
1194
 282:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_ACTIVATE_SCROLL);
1195
 804                            .loc 1 282 3 is_stmt 1 view .LVU212
1196
 805                            .loc 1 282 36 is_stmt 0 view .LVU213
1197
 806 0056 2368                  ldr     r3, [r4]
1198
 807                            .loc 1 282 12 view .LVU214
1199
 808 0058 2046                  mov     r0, r4
1200
 283:../libOLED/src/displayclass.cpp **** }
23 mjames 1201
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 21
20 mjames 1202
 
1203
 
1204
 809                            .loc 1 283 1 view .LVU215
1205
 810 005a BDE87040              pop     {r4, r5, r6, lr}
1206
 811                    .LCFI7:
1207
 812                            .cfi_restore 14
1208
 813                            .cfi_restore 6
1209
 814                            .cfi_restore 5
1210
 815                            .cfi_restore 4
1211
 816                            .cfi_def_cfa_offset 0
1212
 817                    .LVL73:
1213
 282:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_ACTIVATE_SCROLL);
1214
 818                            .loc 1 282 12 view .LVU216
1215
 819 005e 2F21                  movs    r1, #47
1216
 820 0060 DB68                  ldr     r3, [r3, #12]
1217
 821 0062 1847                  bx      r3      @ indirect register sibling call
1218
 822                    .LVL74:
1219
 282:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_ACTIVATE_SCROLL);
1220
 823                            .loc 1 282 12 view .LVU217
1221
 824                            .cfi_endproc
1222
 825                    .LFE52:
1223
 827                            .section        .text._ZN9display_t20startscrolldiagrightEhh,"ax",%progbits
1224
 828                            .align  1
1225
 829                            .global _ZN9display_t20startscrolldiagrightEhh
1226
 830                            .syntax unified
1227
 831                            .thumb
1228
 832                            .thumb_func
1229
 833                            .fpu softvfp
1230
 835                    _ZN9display_t20startscrolldiagrightEhh:
1231
 836                    .LVL75:
1232
 837                    .LFB53:
1233
 284:../libOLED/src/displayclass.cpp ****
1234
 285:../libOLED/src/displayclass.cpp **** // startscrolldiagright
1235
 286:../libOLED/src/displayclass.cpp **** // Activate a diagonal scroll for rows start through stop
1236
 287:../libOLED/src/displayclass.cpp **** // Hint, the display is 16 rows tall. To scroll the whole display, run:
1237
 288:../libOLED/src/displayclass.cpp **** // display.scrollright(0x00, 0x0F)
1238
 289:../libOLED/src/displayclass.cpp **** void display_t::startscrolldiagright(uint8_t start, uint8_t stop)
1239
 290:../libOLED/src/displayclass.cpp **** {
1240
 838                            .loc 1 290 1 is_stmt 1 view -0
1241
 839                            .cfi_startproc
1242
 840                            @ args = 0, pretend = 0, frame = 0
1243
 841                            @ frame_needed = 0, uses_anonymous_args = 0
1244
 291:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
1245
 842                            .loc 1 291 3 view .LVU219
1246
 290:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
1247
 843                            .loc 1 290 1 is_stmt 0 view .LVU220
1248
 844 0000 70B5                  push    {r4, r5, r6, lr}
1249
 845                    .LCFI8:
1250
 846                            .cfi_def_cfa_offset 16
1251
 847                            .cfi_offset 4, -16
1252
 848                            .cfi_offset 5, -12
1253
 849                            .cfi_offset 6, -8
1254
 850                            .cfi_offset 14, -4
1255
 290:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
1256
 851                            .loc 1 290 1 view .LVU221
1257
 852 0002 0446                  mov     r4, r0
1258
 853 0004 0E46                  mov     r6, r1
1259
 854 0006 1546                  mov     r5, r2
1260
 855                            .loc 1 291 14 view .LVU222
23 mjames 1261
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 22
20 mjames 1262
 
1263
 
1264
 856 0008 0368                  ldr     r3, [r0]
1265
 857                            .loc 1 291 12 view .LVU223
1266
 858 000a 0021                  movs    r1, #0
1267
 859                    .LVL76:
1268
 860                            .loc 1 291 12 view .LVU224
1269
 861 000c 9B68                  ldr     r3, [r3, #8]
1270
 862 000e 9847                  blx     r3
1271
 863                    .LVL77:
1272
 292:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SET_VERTICAL_SCROLL_AREA);
1273
 864                            .loc 1 292 3 is_stmt 1 view .LVU225
1274
 865                            .loc 1 292 45 is_stmt 0 view .LVU226
1275
 866 0010 2368                  ldr     r3, [r4]
1276
 867                            .loc 1 292 12 view .LVU227
1277
 868 0012 2046                  mov     r0, r4
1278
 869 0014 A321                  movs    r1, #163
1279
 870 0016 DB68                  ldr     r3, [r3, #12]
1280
 871 0018 9847                  blx     r3
1281
 872                    .LVL78:
1282
 293:../libOLED/src/displayclass.cpp ****   oledWrite(0X00);
1283
 873                            .loc 1 293 3 is_stmt 1 view .LVU228
1284
 874                            .loc 1 293 17 is_stmt 0 view .LVU229
1285
 875 001a 2368                  ldr     r3, [r4]
1286
 876                            .loc 1 293 12 view .LVU230
1287
 877 001c 2046                  mov     r0, r4
1288
 878 001e 0021                  movs    r1, #0
1289
 879 0020 DB68                  ldr     r3, [r3, #12]
1290
 880 0022 9847                  blx     r3
1291
 881                    .LVL79:
1292
 294:../libOLED/src/displayclass.cpp ****   oledWrite(m_height);
1293
 882                            .loc 1 294 3 is_stmt 1 view .LVU231
1294
 883                            .loc 1 294 21 is_stmt 0 view .LVU232
1295
 884 0024 2368                  ldr     r3, [r4]
1296
 885                            .loc 1 294 12 view .LVU233
1297
 886 0026 2046                  mov     r0, r4
1298
 887 0028 217A                  ldrb    r1, [r4, #8]    @ zero_extendqisi2
1299
 888 002a DB68                  ldr     r3, [r3, #12]
1300
 889 002c 9847                  blx     r3
1301
 890                    .LVL80:
1302
 295:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_VERTICAL_AND_RIGHT_HORIZONTAL_SCROLL);
1303
 891                            .loc 1 295 3 is_stmt 1 view .LVU234
1304
 892                            .loc 1 295 57 is_stmt 0 view .LVU235
1305
 893 002e 2368                  ldr     r3, [r4]
1306
 894                            .loc 1 295 12 view .LVU236
1307
 895 0030 2046                  mov     r0, r4
1308
 896 0032 2921                  movs    r1, #41
1309
 897 0034 DB68                  ldr     r3, [r3, #12]
1310
 898 0036 9847                  blx     r3
1311
 899                    .LVL81:
1312
 296:../libOLED/src/displayclass.cpp ****   oledWrite(0X00);
1313
 900                            .loc 1 296 3 is_stmt 1 view .LVU237
1314
 901                            .loc 1 296 17 is_stmt 0 view .LVU238
1315
 902 0038 2368                  ldr     r3, [r4]
1316
 903                            .loc 1 296 12 view .LVU239
1317
 904 003a 2046                  mov     r0, r4
1318
 905 003c 0021                  movs    r1, #0
1319
 906 003e DB68                  ldr     r3, [r3, #12]
1320
 907 0040 9847                  blx     r3
23 mjames 1321
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 23
20 mjames 1322
 
1323
 
1324
 908                    .LVL82:
1325
 297:../libOLED/src/displayclass.cpp ****   oledWrite(start);
1326
 909                            .loc 1 297 3 is_stmt 1 view .LVU240
1327
 910                            .loc 1 297 18 is_stmt 0 view .LVU241
1328
 911 0042 2368                  ldr     r3, [r4]
1329
 912                            .loc 1 297 12 view .LVU242
1330
 913 0044 3146                  mov     r1, r6
1331
 914 0046 2046                  mov     r0, r4
1332
 915 0048 DB68                  ldr     r3, [r3, #12]
1333
 916 004a 9847                  blx     r3
1334
 917                    .LVL83:
1335
 298:../libOLED/src/displayclass.cpp ****   oledWrite(0X00);
1336
 918                            .loc 1 298 3 is_stmt 1 view .LVU243
1337
 919                            .loc 1 298 17 is_stmt 0 view .LVU244
1338
 920 004c 2368                  ldr     r3, [r4]
1339
 921                            .loc 1 298 12 view .LVU245
1340
 922 004e 2046                  mov     r0, r4
1341
 923 0050 0021                  movs    r1, #0
1342
 924 0052 DB68                  ldr     r3, [r3, #12]
1343
 925 0054 9847                  blx     r3
1344
 926                    .LVL84:
1345
 299:../libOLED/src/displayclass.cpp ****   oledWrite(stop);
1346
 927                            .loc 1 299 3 is_stmt 1 view .LVU246
1347
 928                            .loc 1 299 17 is_stmt 0 view .LVU247
1348
 929 0056 2368                  ldr     r3, [r4]
1349
 930                            .loc 1 299 12 view .LVU248
1350
 931 0058 2946                  mov     r1, r5
1351
 932 005a 2046                  mov     r0, r4
1352
 933 005c DB68                  ldr     r3, [r3, #12]
1353
 934 005e 9847                  blx     r3
1354
 935                    .LVL85:
1355
 300:../libOLED/src/displayclass.cpp ****   oledWrite(0X01);
1356
 936                            .loc 1 300 3 is_stmt 1 view .LVU249
1357
 937                            .loc 1 300 17 is_stmt 0 view .LVU250
1358
 938 0060 2368                  ldr     r3, [r4]
1359
 939                            .loc 1 300 12 view .LVU251
1360
 940 0062 2046                  mov     r0, r4
1361
 941 0064 0121                  movs    r1, #1
1362
 942 0066 DB68                  ldr     r3, [r3, #12]
1363
 943 0068 9847                  blx     r3
1364
 944                    .LVL86:
1365
 301:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_ACTIVATE_SCROLL);
1366
 945                            .loc 1 301 3 is_stmt 1 view .LVU252
1367
 946                            .loc 1 301 36 is_stmt 0 view .LVU253
1368
 947 006a 2368                  ldr     r3, [r4]
1369
 948                            .loc 1 301 12 view .LVU254
1370
 949 006c 2046                  mov     r0, r4
1371
 302:../libOLED/src/displayclass.cpp **** }
1372
 950                            .loc 1 302 1 view .LVU255
1373
 951 006e BDE87040              pop     {r4, r5, r6, lr}
1374
 952                    .LCFI9:
1375
 953                            .cfi_restore 14
1376
 954                            .cfi_restore 6
1377
 955                            .cfi_restore 5
1378
 956                            .cfi_restore 4
1379
 957                            .cfi_def_cfa_offset 0
1380
 958                    .LVL87:
23 mjames 1381
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 24
20 mjames 1382
 
1383
 
1384
 301:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_ACTIVATE_SCROLL);
1385
 959                            .loc 1 301 12 view .LVU256
1386
 960 0072 2F21                  movs    r1, #47
1387
 961 0074 DB68                  ldr     r3, [r3, #12]
1388
 962 0076 1847                  bx      r3      @ indirect register sibling call
1389
 963                    .LVL88:
1390
 301:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_ACTIVATE_SCROLL);
1391
 964                            .loc 1 301 12 view .LVU257
1392
 965                            .cfi_endproc
1393
 966                    .LFE53:
1394
 968                            .section        .text._ZN9display_t19startscrolldiagleftEhh,"ax",%progbits
1395
 969                            .align  1
1396
 970                            .global _ZN9display_t19startscrolldiagleftEhh
1397
 971                            .syntax unified
1398
 972                            .thumb
1399
 973                            .thumb_func
1400
 974                            .fpu softvfp
1401
 976                    _ZN9display_t19startscrolldiagleftEhh:
1402
 977                    .LVL89:
1403
 978                    .LFB54:
1404
 303:../libOLED/src/displayclass.cpp ****
1405
 304:../libOLED/src/displayclass.cpp **** // startscrolldiagleft
1406
 305:../libOLED/src/displayclass.cpp **** // Activate a diagonal scroll for rows start through stop
1407
 306:../libOLED/src/displayclass.cpp **** // Hint, the display is 16 rows tall. To scroll the whole display, run:
1408
 307:../libOLED/src/displayclass.cpp **** // display.scrollright(0x00, 0x0F)
1409
 308:../libOLED/src/displayclass.cpp **** void display_t::startscrolldiagleft(uint8_t start, uint8_t stop)
1410
 309:../libOLED/src/displayclass.cpp **** {
1411
 979                            .loc 1 309 1 is_stmt 1 view -0
1412
 980                            .cfi_startproc
1413
 981                            @ args = 0, pretend = 0, frame = 0
1414
 982                            @ frame_needed = 0, uses_anonymous_args = 0
1415
 310:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
1416
 983                            .loc 1 310 3 view .LVU259
1417
 309:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
1418
 984                            .loc 1 309 1 is_stmt 0 view .LVU260
1419
 985 0000 70B5                  push    {r4, r5, r6, lr}
1420
 986                    .LCFI10:
1421
 987                            .cfi_def_cfa_offset 16
1422
 988                            .cfi_offset 4, -16
1423
 989                            .cfi_offset 5, -12
1424
 990                            .cfi_offset 6, -8
1425
 991                            .cfi_offset 14, -4
1426
 309:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
1427
 992                            .loc 1 309 1 view .LVU261
1428
 993 0002 0446                  mov     r4, r0
1429
 994 0004 0E46                  mov     r6, r1
1430
 995 0006 1546                  mov     r5, r2
1431
 996                            .loc 1 310 14 view .LVU262
1432
 997 0008 0368                  ldr     r3, [r0]
1433
 998                            .loc 1 310 12 view .LVU263
1434
 999 000a 0021                  movs    r1, #0
1435
 1000                   .LVL90:
1436
 1001                           .loc 1 310 12 view .LVU264
1437
 1002 000c 9B68                 ldr     r3, [r3, #8]
1438
 1003 000e 9847                 blx     r3
1439
 1004                   .LVL91:
1440
 311:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SET_VERTICAL_SCROLL_AREA);
23 mjames 1441
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 25
20 mjames 1442
 
1443
 
1444
 1005                           .loc 1 311 3 is_stmt 1 view .LVU265
1445
 1006                           .loc 1 311 45 is_stmt 0 view .LVU266
1446
 1007 0010 2368                 ldr     r3, [r4]
1447
 1008                           .loc 1 311 12 view .LVU267
1448
 1009 0012 2046                 mov     r0, r4
1449
 1010 0014 A321                 movs    r1, #163
1450
 1011 0016 DB68                 ldr     r3, [r3, #12]
1451
 1012 0018 9847                 blx     r3
1452
 1013                   .LVL92:
1453
 312:../libOLED/src/displayclass.cpp ****   oledWrite(0X00);
1454
 1014                           .loc 1 312 3 is_stmt 1 view .LVU268
1455
 1015                           .loc 1 312 17 is_stmt 0 view .LVU269
1456
 1016 001a 2368                 ldr     r3, [r4]
1457
 1017                           .loc 1 312 12 view .LVU270
1458
 1018 001c 2046                 mov     r0, r4
1459
 1019 001e 0021                 movs    r1, #0
1460
 1020 0020 DB68                 ldr     r3, [r3, #12]
1461
 1021 0022 9847                 blx     r3
1462
 1022                   .LVL93:
1463
 313:../libOLED/src/displayclass.cpp ****   oledWrite(m_height);
1464
 1023                           .loc 1 313 3 is_stmt 1 view .LVU271
1465
 1024                           .loc 1 313 21 is_stmt 0 view .LVU272
1466
 1025 0024 2368                 ldr     r3, [r4]
1467
 1026                           .loc 1 313 12 view .LVU273
1468
 1027 0026 2046                 mov     r0, r4
1469
 1028 0028 217A                 ldrb    r1, [r4, #8]    @ zero_extendqisi2
1470
 1029 002a DB68                 ldr     r3, [r3, #12]
1471
 1030 002c 9847                 blx     r3
1472
 1031                   .LVL94:
1473
 314:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_VERTICAL_AND_LEFT_HORIZONTAL_SCROLL);
1474
 1032                           .loc 1 314 3 is_stmt 1 view .LVU274
1475
 1033                           .loc 1 314 56 is_stmt 0 view .LVU275
1476
 1034 002e 2368                 ldr     r3, [r4]
1477
 1035                           .loc 1 314 12 view .LVU276
1478
 1036 0030 2046                 mov     r0, r4
1479
 1037 0032 2A21                 movs    r1, #42
1480
 1038 0034 DB68                 ldr     r3, [r3, #12]
1481
 1039 0036 9847                 blx     r3
1482
 1040                   .LVL95:
1483
 315:../libOLED/src/displayclass.cpp ****   oledWrite(0X00);
1484
 1041                           .loc 1 315 3 is_stmt 1 view .LVU277
1485
 1042                           .loc 1 315 17 is_stmt 0 view .LVU278
1486
 1043 0038 2368                 ldr     r3, [r4]
1487
 1044                           .loc 1 315 12 view .LVU279
1488
 1045 003a 2046                 mov     r0, r4
1489
 1046 003c 0021                 movs    r1, #0
1490
 1047 003e DB68                 ldr     r3, [r3, #12]
1491
 1048 0040 9847                 blx     r3
1492
 1049                   .LVL96:
1493
 316:../libOLED/src/displayclass.cpp ****   oledWrite(start);
1494
 1050                           .loc 1 316 3 is_stmt 1 view .LVU280
1495
 1051                           .loc 1 316 18 is_stmt 0 view .LVU281
1496
 1052 0042 2368                 ldr     r3, [r4]
1497
 1053                           .loc 1 316 12 view .LVU282
1498
 1054 0044 3146                 mov     r1, r6
1499
 1055 0046 2046                 mov     r0, r4
1500
 1056 0048 DB68                 ldr     r3, [r3, #12]
23 mjames 1501
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 26
20 mjames 1502
 
1503
 
1504
 1057 004a 9847                 blx     r3
1505
 1058                   .LVL97:
1506
 317:../libOLED/src/displayclass.cpp ****   oledWrite(0X00);
1507
 1059                           .loc 1 317 3 is_stmt 1 view .LVU283
1508
 1060                           .loc 1 317 17 is_stmt 0 view .LVU284
1509
 1061 004c 2368                 ldr     r3, [r4]
1510
 1062                           .loc 1 317 12 view .LVU285
1511
 1063 004e 2046                 mov     r0, r4
1512
 1064 0050 0021                 movs    r1, #0
1513
 1065 0052 DB68                 ldr     r3, [r3, #12]
1514
 1066 0054 9847                 blx     r3
1515
 1067                   .LVL98:
1516
 318:../libOLED/src/displayclass.cpp ****   oledWrite(stop);
1517
 1068                           .loc 1 318 3 is_stmt 1 view .LVU286
1518
 1069                           .loc 1 318 17 is_stmt 0 view .LVU287
1519
 1070 0056 2368                 ldr     r3, [r4]
1520
 1071                           .loc 1 318 12 view .LVU288
1521
 1072 0058 2946                 mov     r1, r5
1522
 1073 005a 2046                 mov     r0, r4
1523
 1074 005c DB68                 ldr     r3, [r3, #12]
1524
 1075 005e 9847                 blx     r3
1525
 1076                   .LVL99:
1526
 319:../libOLED/src/displayclass.cpp ****   oledWrite(0X01);
1527
 1077                           .loc 1 319 3 is_stmt 1 view .LVU289
1528
 1078                           .loc 1 319 17 is_stmt 0 view .LVU290
1529
 1079 0060 2368                 ldr     r3, [r4]
1530
 1080                           .loc 1 319 12 view .LVU291
1531
 1081 0062 2046                 mov     r0, r4
1532
 1082 0064 0121                 movs    r1, #1
1533
 1083 0066 DB68                 ldr     r3, [r3, #12]
1534
 1084 0068 9847                 blx     r3
1535
 1085                   .LVL100:
1536
 320:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_ACTIVATE_SCROLL);
1537
 1086                           .loc 1 320 3 is_stmt 1 view .LVU292
1538
 1087                           .loc 1 320 36 is_stmt 0 view .LVU293
1539
 1088 006a 2368                 ldr     r3, [r4]
1540
 1089                           .loc 1 320 12 view .LVU294
1541
 1090 006c 2046                 mov     r0, r4
1542
 321:../libOLED/src/displayclass.cpp **** }
1543
 1091                           .loc 1 321 1 view .LVU295
1544
 1092 006e BDE87040             pop     {r4, r5, r6, lr}
1545
 1093                   .LCFI11:
1546
 1094                           .cfi_restore 14
1547
 1095                           .cfi_restore 6
1548
 1096                           .cfi_restore 5
1549
 1097                           .cfi_restore 4
1550
 1098                           .cfi_def_cfa_offset 0
1551
 1099                   .LVL101:
1552
 320:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_ACTIVATE_SCROLL);
1553
 1100                           .loc 1 320 12 view .LVU296
1554
 1101 0072 2F21                 movs    r1, #47
1555
 1102 0074 DB68                 ldr     r3, [r3, #12]
1556
 1103 0076 1847                 bx      r3      @ indirect register sibling call
1557
 1104                   .LVL102:
1558
 320:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_ACTIVATE_SCROLL);
1559
 1105                           .loc 1 320 12 view .LVU297
1560
 1106                           .cfi_endproc
23 mjames 1561
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 27
20 mjames 1562
 
1563
 
1564
 1107                   .LFE54:
1565
 1109                           .section        .text._ZN9display_t10stopscrollEv,"ax",%progbits
1566
 1110                           .align  1
1567
 1111                           .global _ZN9display_t10stopscrollEv
1568
 1112                           .syntax unified
1569
 1113                           .thumb
1570
 1114                           .thumb_func
1571
 1115                           .fpu softvfp
1572
 1117                   _ZN9display_t10stopscrollEv:
1573
 1118                   .LVL103:
1574
 1119                   .LFB55:
1575
 322:../libOLED/src/displayclass.cpp ****
1576
 323:../libOLED/src/displayclass.cpp **** void display_t::stopscroll(void)
1577
 324:../libOLED/src/displayclass.cpp **** {
1578
 1120                           .loc 1 324 1 is_stmt 1 view -0
1579
 1121                           .cfi_startproc
1580
 1122                           @ args = 0, pretend = 0, frame = 0
1581
 1123                           @ frame_needed = 0, uses_anonymous_args = 0
1582
 325:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
1583
 1124                           .loc 1 325 3 view .LVU299
1584
 324:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
1585
 1125                           .loc 1 324 1 is_stmt 0 view .LVU300
1586
 1126 0000 10B5                 push    {r4, lr}
1587
 1127                   .LCFI12:
1588
 1128                           .cfi_def_cfa_offset 8
1589
 1129                           .cfi_offset 4, -8
1590
 1130                           .cfi_offset 14, -4
1591
 324:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
1592
 1131                           .loc 1 324 1 view .LVU301
1593
 1132 0002 0446                 mov     r4, r0
1594
 1133                           .loc 1 325 14 view .LVU302
1595
 1134 0004 0368                 ldr     r3, [r0]
1596
 1135                           .loc 1 325 12 view .LVU303
1597
 1136 0006 0021                 movs    r1, #0
1598
 1137 0008 9B68                 ldr     r3, [r3, #8]
1599
 1138 000a 9847                 blx     r3
1600
 1139                   .LVL104:
1601
 326:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_DEACTIVATE_SCROLL);
1602
 1140                           .loc 1 326 3 is_stmt 1 view .LVU304
1603
 1141                           .loc 1 326 38 is_stmt 0 view .LVU305
1604
 1142 000c 2368                 ldr     r3, [r4]
1605
 1143                           .loc 1 326 12 view .LVU306
1606
 1144 000e 2046                 mov     r0, r4
1607
 327:../libOLED/src/displayclass.cpp **** }
1608
 1145                           .loc 1 327 1 view .LVU307
1609
 1146 0010 BDE81040             pop     {r4, lr}
1610
 1147                   .LCFI13:
1611
 1148                           .cfi_restore 14
1612
 1149                           .cfi_restore 4
1613
 1150                           .cfi_def_cfa_offset 0
1614
 1151                   .LVL105:
1615
 326:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_DEACTIVATE_SCROLL);
1616
 1152                           .loc 1 326 12 view .LVU308
1617
 1153 0014 2E21                 movs    r1, #46
1618
 1154 0016 DB68                 ldr     r3, [r3, #12]
1619
 1155 0018 1847                 bx      r3      @ indirect register sibling call
1620
 1156                   .LVL106:
23 mjames 1621
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 28
20 mjames 1622
 
1623
 
1624
 326:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_DEACTIVATE_SCROLL);
1625
 1157                           .loc 1 326 12 view .LVU309
1626
 1158                           .cfi_endproc
1627
 1159                   .LFE55:
1628
 1161                           .section        .text._ZN9display_t3dimEh,"ax",%progbits
1629
 1162                           .align  1
1630
 1163                           .global _ZN9display_t3dimEh
1631
 1164                           .syntax unified
1632
 1165                           .thumb
1633
 1166                           .thumb_func
1634
 1167                           .fpu softvfp
1635
 1169                   _ZN9display_t3dimEh:
1636
 1170                   .LVL107:
1637
 1171                   .LFB56:
1638
 328:../libOLED/src/displayclass.cpp ****
23 mjames 1639
 329:../libOLED/src/displayclass.cpp **** void display_t::dim(uint8_t contrast)
1640
 330:../libOLED/src/displayclass.cpp **** {
1641
 1172                           .loc 1 330 1 is_stmt 1 view -0
20 mjames 1642
 1173                           .cfi_startproc
1643
 1174                           @ args = 0, pretend = 0, frame = 0
1644
 1175                           @ frame_needed = 0, uses_anonymous_args = 0
1645
 331:../libOLED/src/displayclass.cpp ****
23 mjames 1646
 332:../libOLED/src/displayclass.cpp ****   // the range of contrast to too small to be really useful
1647
 333:../libOLED/src/displayclass.cpp ****   // it is useful to dim the display
1648
 334:../libOLED/src/displayclass.cpp ****
1649
 335:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
1650
 1176                           .loc 1 335 3 view .LVU311
1651
 330:../libOLED/src/displayclass.cpp ****
1652
 1177                           .loc 1 330 1 is_stmt 0 view .LVU312
20 mjames 1653
 1178 0000 70B5                 push    {r4, r5, r6, lr}
1654
 1179                   .LCFI14:
1655
 1180                           .cfi_def_cfa_offset 16
1656
 1181                           .cfi_offset 4, -16
1657
 1182                           .cfi_offset 5, -12
1658
 1183                           .cfi_offset 6, -8
1659
 1184                           .cfi_offset 14, -4
23 mjames 1660
 330:../libOLED/src/displayclass.cpp ****
1661
 1185                           .loc 1 330 1 view .LVU313
20 mjames 1662
 1186 0002 0446                 mov     r4, r0
1663
 1187 0004 0D46                 mov     r5, r1
23 mjames 1664
 1188                           .loc 1 335 14 view .LVU314
20 mjames 1665
 1189 0006 0368                 ldr     r3, [r0]
23 mjames 1666
 1190                           .loc 1 335 12 view .LVU315
20 mjames 1667
 1191 0008 0021                 movs    r1, #0
1668
 1192                   .LVL108:
23 mjames 1669
 1193                           .loc 1 335 12 view .LVU316
20 mjames 1670
 1194 000a 9B68                 ldr     r3, [r3, #8]
1671
 1195 000c 9847                 blx     r3
1672
 1196                   .LVL109:
23 mjames 1673
 336:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCONTRAST);
1674
 1197                           .loc 1 336 3 is_stmt 1 view .LVU317
1675
 1198                           .loc 1 336 32 is_stmt 0 view .LVU318
20 mjames 1676
 1199 000e 2368                 ldr     r3, [r4]
23 mjames 1677
 1200                           .loc 1 336 12 view .LVU319
20 mjames 1678
 1201 0010 2046                 mov     r0, r4
1679
 1202 0012 8121                 movs    r1, #129
23 mjames 1680
 1203 0014 DB68                 ldr     r3, [r3, #12]
1681
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 29
20 mjames 1682
 
1683
 
1684
 1204 0016 9847                 blx     r3
1685
 1205                   .LVL110:
23 mjames 1686
 337:../libOLED/src/displayclass.cpp ****   oledWrite(contrast);
1687
 1206                           .loc 1 337 3 is_stmt 1 view .LVU320
1688
 1207                           .loc 1 337 21 is_stmt 0 view .LVU321
20 mjames 1689
 1208 0018 2368                 ldr     r3, [r4]
23 mjames 1690
 1209                           .loc 1 337 12 view .LVU322
20 mjames 1691
 1210 001a 2946                 mov     r1, r5
1692
 1211 001c 2046                 mov     r0, r4
23 mjames 1693
 338:../libOLED/src/displayclass.cpp **** }
1694
 1212                           .loc 1 338 1 view .LVU323
20 mjames 1695
 1213 001e BDE87040             pop     {r4, r5, r6, lr}
1696
 1214                   .LCFI15:
1697
 1215                           .cfi_restore 14
1698
 1216                           .cfi_restore 6
1699
 1217                           .cfi_restore 5
1700
 1218                           .cfi_restore 4
1701
 1219                           .cfi_def_cfa_offset 0
1702
 1220                   .LVL111:
23 mjames 1703
 337:../libOLED/src/displayclass.cpp ****   oledWrite(contrast);
1704
 1221                           .loc 1 337 12 view .LVU324
20 mjames 1705
 1222 0022 DB68                 ldr     r3, [r3, #12]
1706
 1223 0024 1847                 bx      r3      @ indirect register sibling call
1707
 1224                   .LVL112:
23 mjames 1708
 337:../libOLED/src/displayclass.cpp ****   oledWrite(contrast);
1709
 1225                           .loc 1 337 12 view .LVU325
20 mjames 1710
 1226                           .cfi_endproc
1711
 1227                   .LFE56:
1712
 1229                           .section        .text._ZN9display_t7displayEv,"ax",%progbits
1713
 1230                           .align  1
1714
 1231                           .global _ZN9display_t7displayEv
1715
 1232                           .syntax unified
1716
 1233                           .thumb
1717
 1234                           .thumb_func
1718
 1235                           .fpu softvfp
1719
 1237                   _ZN9display_t7displayEv:
1720
 1238                   .LVL113:
1721
 1239                   .LFB57:
23 mjames 1722
 339:../libOLED/src/displayclass.cpp ****
1723
 340:../libOLED/src/displayclass.cpp **** void display_t::display(void)
1724
 341:../libOLED/src/displayclass.cpp **** {
1725
 1240                           .loc 1 341 1 is_stmt 1 view -0
20 mjames 1726
 1241                           .cfi_startproc
1727
 1242                           @ args = 0, pretend = 0, frame = 0
1728
 1243                           @ frame_needed = 0, uses_anonymous_args = 0
1729
 342:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
23 mjames 1730
 1244                           .loc 1 342 3 view .LVU327
1731
 341:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
1732
 1245                           .loc 1 341 1 is_stmt 0 view .LVU328
20 mjames 1733
 1246 0000 F8B5                 push    {r3, r4, r5, r6, r7, lr}
1734
 1247                   .LCFI16:
1735
 1248                           .cfi_def_cfa_offset 24
1736
 1249                           .cfi_offset 3, -24
1737
 1250                           .cfi_offset 4, -20
1738
 1251                           .cfi_offset 5, -16
1739
 1252                           .cfi_offset 6, -12
23 mjames 1740
 1253                           .cfi_offset 7, -8
1741
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 30
20 mjames 1742
 
1743
 
1744
 1254                           .cfi_offset 14, -4
23 mjames 1745
 341:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
1746
 1255                           .loc 1 341 1 view .LVU329
20 mjames 1747
 1256 0002 0446                 mov     r4, r0
23 mjames 1748
 343:../libOLED/src/displayclass.cpp ****   // select entire display as window to write into
1749
 344:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_COLUMNADDR);
1750
 345:../libOLED/src/displayclass.cpp ****   oledWrite(0);              // Column start address (0 = reset)
1751
 346:../libOLED/src/displayclass.cpp ****   oledWrite(m_ramwidth - 1); // Column end address (127 = reset)
1752
 347:../libOLED/src/displayclass.cpp ****
1753
 348:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_PAGEADDR);
1754
 349:../libOLED/src/displayclass.cpp ****   oledWrite(0);                        // Page start address (0 = reset)
1755
 350:../libOLED/src/displayclass.cpp ****   oledWrite((m_height == 64) ? 7 : 3); // Page end address
1756
 351:../libOLED/src/displayclass.cpp ****
1757
 352:../libOLED/src/displayclass.cpp ****   int row;
1758
 353:../libOLED/src/displayclass.cpp ****
1759
 354:../libOLED/src/displayclass.cpp ****   int col = m_ramwidth == 132 ? 2 : 0;
1760
 355:../libOLED/src/displayclass.cpp ****   for (row = 0; row < m_height / 8; row++)
1761
 1257                           .loc 1 355 12 view .LVU330
20 mjames 1762
 1258 0004 0025                 movs    r5, #0
23 mjames 1763
 342:../libOLED/src/displayclass.cpp ****   // select entire display as window to write into
1764
 1259                           .loc 1 342 14 view .LVU331
20 mjames 1765
 1260 0006 0368                 ldr     r3, [r0]
23 mjames 1766
 342:../libOLED/src/displayclass.cpp ****   // select entire display as window to write into
1767
 1261                           .loc 1 342 12 view .LVU332
20 mjames 1768
 1262 0008 0021                 movs    r1, #0
1769
 1263 000a 9B68                 ldr     r3, [r3, #8]
1770
 1264 000c 9847                 blx     r3
1771
 1265                   .LVL114:
23 mjames 1772
 344:../libOLED/src/displayclass.cpp ****   oledWrite(0);              // Column start address (0 = reset)
1773
 1266                           .loc 1 344 3 is_stmt 1 view .LVU333
1774
 344:../libOLED/src/displayclass.cpp ****   oledWrite(0);              // Column start address (0 = reset)
1775
 1267                           .loc 1 344 31 is_stmt 0 view .LVU334
20 mjames 1776
 1268 000e 2368                 ldr     r3, [r4]
23 mjames 1777
 344:../libOLED/src/displayclass.cpp ****   oledWrite(0);              // Column start address (0 = reset)
1778
 1269                           .loc 1 344 12 view .LVU335
20 mjames 1779
 1270 0010 2121                 movs    r1, #33
1780
 1271 0012 2046                 mov     r0, r4
1781
 1272 0014 DB68                 ldr     r3, [r3, #12]
1782
 1273 0016 9847                 blx     r3
1783
 1274                   .LVL115:
23 mjames 1784
 345:../libOLED/src/displayclass.cpp ****   oledWrite(m_ramwidth - 1); // Column end address (127 = reset)
1785
 1275                           .loc 1 345 3 is_stmt 1 view .LVU336
1786
 345:../libOLED/src/displayclass.cpp ****   oledWrite(m_ramwidth - 1); // Column end address (127 = reset)
1787
 1276                           .loc 1 345 14 is_stmt 0 view .LVU337
20 mjames 1788
 1277 0018 2368                 ldr     r3, [r4]
23 mjames 1789
 345:../libOLED/src/displayclass.cpp ****   oledWrite(m_ramwidth - 1); // Column end address (127 = reset)
1790
 1278                           .loc 1 345 12 view .LVU338
20 mjames 1791
 1279 001a 0021                 movs    r1, #0
1792
 1280 001c 2046                 mov     r0, r4
1793
 1281 001e DB68                 ldr     r3, [r3, #12]
1794
 1282 0020 9847                 blx     r3
1795
 1283                   .LVL116:
23 mjames 1796
 346:../libOLED/src/displayclass.cpp ****
1797
 1284                           .loc 1 346 3 is_stmt 1 view .LVU339
1798
 346:../libOLED/src/displayclass.cpp ****
1799
 1285                           .loc 1 346 12 is_stmt 0 view .LVU340
1800
 1286 0022 E168                 ldr     r1, [r4, #12]
1801
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 31
20 mjames 1802
 
1803
 
23 mjames 1804
 346:../libOLED/src/displayclass.cpp ****
1805
 1287                           .loc 1 346 27 view .LVU341
20 mjames 1806
 1288 0024 2368                 ldr     r3, [r4]
23 mjames 1807
 346:../libOLED/src/displayclass.cpp ****
1808
 1289                           .loc 1 346 12 view .LVU342
20 mjames 1809
 1290 0026 0139                 subs    r1, r1, #1
1810
 1291 0028 2046                 mov     r0, r4
1811
 1292 002a DB68                 ldr     r3, [r3, #12]
1812
 1293 002c C9B2                 uxtb    r1, r1
1813
 1294 002e 9847                 blx     r3
1814
 1295                   .LVL117:
23 mjames 1815
 348:../libOLED/src/displayclass.cpp ****   oledWrite(0);                        // Page start address (0 = reset)
1816
 1296                           .loc 1 348 3 is_stmt 1 view .LVU343
1817
 348:../libOLED/src/displayclass.cpp ****   oledWrite(0);                        // Page start address (0 = reset)
1818
 1297                           .loc 1 348 29 is_stmt 0 view .LVU344
20 mjames 1819
 1298 0030 2368                 ldr     r3, [r4]
23 mjames 1820
 348:../libOLED/src/displayclass.cpp ****   oledWrite(0);                        // Page start address (0 = reset)
1821
 1299                           .loc 1 348 12 view .LVU345
20 mjames 1822
 1300 0032 2221                 movs    r1, #34
1823
 1301 0034 2046                 mov     r0, r4
1824
 1302 0036 DB68                 ldr     r3, [r3, #12]
1825
 1303 0038 9847                 blx     r3
1826
 1304                   .LVL118:
23 mjames 1827
 349:../libOLED/src/displayclass.cpp ****   oledWrite((m_height == 64) ? 7 : 3); // Page end address
1828
 1305                           .loc 1 349 3 is_stmt 1 view .LVU346
1829
 349:../libOLED/src/displayclass.cpp ****   oledWrite((m_height == 64) ? 7 : 3); // Page end address
1830
 1306                           .loc 1 349 14 is_stmt 0 view .LVU347
20 mjames 1831
 1307 003a 2368                 ldr     r3, [r4]
23 mjames 1832
 349:../libOLED/src/displayclass.cpp ****   oledWrite((m_height == 64) ? 7 : 3); // Page end address
1833
 1308                           .loc 1 349 12 view .LVU348
20 mjames 1834
 1309 003c 0021                 movs    r1, #0
1835
 1310 003e 2046                 mov     r0, r4
1836
 1311 0040 DB68                 ldr     r3, [r3, #12]
1837
 1312 0042 9847                 blx     r3
1838
 1313                   .LVL119:
23 mjames 1839
 350:../libOLED/src/displayclass.cpp ****
1840
 1314                           .loc 1 350 3 is_stmt 1 view .LVU349
1841
 350:../libOLED/src/displayclass.cpp ****
1842
 1315                           .loc 1 350 12 is_stmt 0 view .LVU350
20 mjames 1843
 1316 0044 A268                 ldr     r2, [r4, #8]
23 mjames 1844
 350:../libOLED/src/displayclass.cpp ****
1845
 1317                           .loc 1 350 37 view .LVU351
20 mjames 1846
 1318 0046 2368                 ldr     r3, [r4]
23 mjames 1847
 350:../libOLED/src/displayclass.cpp ****
1848
 1319                           .loc 1 350 12 view .LVU352
20 mjames 1849
 1320 0048 402A                 cmp     r2, #64
1850
 1321 004a 0CBF                 ite     eq
1851
 1322 004c 0721                 moveq   r1, #7
1852
 1323 004e 0321                 movne   r1, #3
23 mjames 1853
 350:../libOLED/src/displayclass.cpp ****
1854
 1324                           .loc 1 350 37 view .LVU353
20 mjames 1855
 1325 0050 DB68                 ldr     r3, [r3, #12]
23 mjames 1856
 350:../libOLED/src/displayclass.cpp ****
1857
 1326                           .loc 1 350 12 view .LVU354
20 mjames 1858
 1327 0052 2046                 mov     r0, r4
1859
 1328 0054 9847                 blx     r3
23 mjames 1860
 1329                   .LVL120:
1861
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 32
20 mjames 1862
 
1863
 
23 mjames 1864
 352:../libOLED/src/displayclass.cpp ****
1865
 1330                           .loc 1 352 3 is_stmt 1 view .LVU355
1866
 354:../libOLED/src/displayclass.cpp ****   for (row = 0; row < m_height / 8; row++)
1867
 1331                           .loc 1 354 3 view .LVU356
1868
 354:../libOLED/src/displayclass.cpp ****   for (row = 0; row < m_height / 8; row++)
1869
 1332                           .loc 1 354 31 is_stmt 0 view .LVU357
20 mjames 1870
 1333 0056 E368                 ldr     r3, [r4, #12]
1871
 1334 0058 842B                 cmp     r3, #132
1872
 1335                   .LVL121:
23 mjames 1873
 1336                           .loc 1 355 3 is_stmt 1 view .LVU358
1874
 356:../libOLED/src/displayclass.cpp ****   {
1875
 357:../libOLED/src/displayclass.cpp ****     oledSetCD(0);
1876
 358:../libOLED/src/displayclass.cpp ****     // set the cursor to
1877
 359:../libOLED/src/displayclass.cpp ****     oledWrite(0xB0 + row);        // set page address
1878
 360:../libOLED/src/displayclass.cpp ****     oledWrite(col & 0xf);         // set lower column address
1879
 1337                           .loc 1 360 14 is_stmt 0 view .LVU359
20 mjames 1880
 1338 005a 0CBF                 ite     eq
1881
 1339 005c 0227                 moveq   r7, #2
1882
 1340 005e 2F46                 movne   r7, r5
1883
 1341                   .LVL122:
1884
 1342                   .L52:
23 mjames 1885
 355:../libOLED/src/displayclass.cpp ****   {
1886
 1343                           .loc 1 355 21 is_stmt 1 discriminator 3 view .LVU360
1887
 355:../libOLED/src/displayclass.cpp ****   {
1888
 1344                           .loc 1 355 32 is_stmt 0 discriminator 3 view .LVU361
20 mjames 1889
 1345 0060 A368                 ldr     r3, [r4, #8]
1890
 1346 0062 002B                 cmp     r3, #0
1891
 1347 0064 B8BF                 it      lt
1892
 1348 0066 0733                 addlt   r3, r3, #7
23 mjames 1893
 355:../libOLED/src/displayclass.cpp ****   {
1894
 1349                           .loc 1 355 21 discriminator 3 view .LVU362
20 mjames 1895
 1350 0068 B5EBE30F             cmp     r5, r3, asr #3
1896
 1351 006c 25DA                 bge     .L47
23 mjames 1897
 357:../libOLED/src/displayclass.cpp ****     // set the cursor to
1898
 1352                           .loc 1 357 5 is_stmt 1 discriminator 2 view .LVU363
1899
 357:../libOLED/src/displayclass.cpp ****     // set the cursor to
1900
 1353                           .loc 1 357 16 is_stmt 0 discriminator 2 view .LVU364
20 mjames 1901
 1354 006e 2368                 ldr     r3, [r4]
23 mjames 1902
 357:../libOLED/src/displayclass.cpp ****     // set the cursor to
1903
 1355                           .loc 1 357 14 discriminator 2 view .LVU365
20 mjames 1904
 1356 0070 0021                 movs    r1, #0
1905
 1357 0072 2046                 mov     r0, r4
1906
 1358 0074 9B68                 ldr     r3, [r3, #8]
1907
 1359 0076 9847                 blx     r3
1908
 1360                   .LVL123:
23 mjames 1909
 359:../libOLED/src/displayclass.cpp ****     oledWrite(col & 0xf);         // set lower column address
1910
 1361                           .loc 1 359 5 is_stmt 1 discriminator 2 view .LVU366
1911
 359:../libOLED/src/displayclass.cpp ****     oledWrite(col & 0xf);         // set lower column address
1912
 1362                           .loc 1 359 25 is_stmt 0 discriminator 2 view .LVU367
20 mjames 1913
 1363 0078 2368                 ldr     r3, [r4]
23 mjames 1914
 359:../libOLED/src/displayclass.cpp ****     oledWrite(col & 0xf);         // set lower column address
1915
 1364                           .loc 1 359 14 discriminator 2 view .LVU368
20 mjames 1916
 1365 007a A5F15001             sub     r1, r5, #80
1917
 1366 007e 2046                 mov     r0, r4
1918
 1367 0080 DB68                 ldr     r3, [r3, #12]
1919
 1368 0082 C9B2                 uxtb    r1, r1
23 mjames 1920
 1369 0084 9847                 blx     r3
1921
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 33
20 mjames 1922
 
1923
 
1924
 1370                   .LVL124:
23 mjames 1925
 1371                           .loc 1 360 5 is_stmt 1 discriminator 2 view .LVU369
1926
 1372                           .loc 1 360 24 is_stmt 0 discriminator 2 view .LVU370
20 mjames 1927
 1373 0086 2368                 ldr     r3, [r4]
23 mjames 1928
 1374                           .loc 1 360 14 discriminator 2 view .LVU371
20 mjames 1929
 1375 0088 3946                 mov     r1, r7
1930
 1376 008a 2046                 mov     r0, r4
1931
 1377 008c DB68                 ldr     r3, [r3, #12]
1932
 1378 008e 9847                 blx     r3
1933
 1379                   .LVL125:
23 mjames 1934
 361:../libOLED/src/displayclass.cpp ****     oledWrite(0x10 | (col >> 4)); // set higher column address
1935
 1380                           .loc 1 361 5 is_stmt 1 discriminator 2 view .LVU372
1936
 1381                           .loc 1 361 32 is_stmt 0 discriminator 2 view .LVU373
20 mjames 1937
 1382 0090 2368                 ldr     r3, [r4]
23 mjames 1938
 1383                           .loc 1 361 14 discriminator 2 view .LVU374
20 mjames 1939
 1384 0092 1021                 movs    r1, #16
1940
 1385 0094 2046                 mov     r0, r4
1941
 1386 0096 DB68                 ldr     r3, [r3, #12]
1942
 1387 0098 9847                 blx     r3
1943
 1388                   .LVL126:
23 mjames 1944
 362:../libOLED/src/displayclass.cpp ****
1945
 363:../libOLED/src/displayclass.cpp ****     oledSetCD(1);
1946
 1389                           .loc 1 363 5 is_stmt 1 discriminator 2 view .LVU375
1947
 1390                           .loc 1 363 16 is_stmt 0 discriminator 2 view .LVU376
20 mjames 1948
 1391 009a 2368                 ldr     r3, [r4]
23 mjames 1949
 1392                           .loc 1 363 14 discriminator 2 view .LVU377
20 mjames 1950
 1393 009c 0121                 movs    r1, #1
1951
 1394 009e 2046                 mov     r0, r4
1952
 1395 00a0 9B68                 ldr     r3, [r3, #8]
1953
 1396 00a2 9847                 blx     r3
1954
 1397                   .LVL127:
23 mjames 1955
 364:../libOLED/src/displayclass.cpp ****     oledWrite(m_data + row * m_width, m_width);
1956
 1398                           .loc 1 364 5 is_stmt 1 discriminator 2 view .LVU378
1957
 1399                           .loc 1 364 30 is_stmt 0 discriminator 2 view .LVU379
20 mjames 1958
 1400 00a4 6368                 ldr     r3, [r4, #4]
23 mjames 1959
 1401                           .loc 1 364 46 discriminator 2 view .LVU380
20 mjames 1960
 1402 00a6 2268                 ldr     r2, [r4]
23 mjames 1961
 1403                           .loc 1 364 14 discriminator 2 view .LVU381
20 mjames 1962
 1404 00a8 216A                 ldr     r1, [r4, #32]
1963
 1405 00aa 5669                 ldr     r6, [r2, #20]
1964
 1406 00ac 05FB0311             mla     r1, r5, r3, r1
1965
 1407 00b0 2046                 mov     r0, r4
1966
 1408 00b2 DAB2                 uxtb    r2, r3
1967
 1409 00b4 B047                 blx     r6
1968
 1410                   .LVL128:
23 mjames 1969
 355:../libOLED/src/displayclass.cpp ****   {
1970
 1411                           .loc 1 355 3 is_stmt 1 discriminator 2 view .LVU382
20 mjames 1971
 1412 00b6 0135                 adds    r5, r5, #1
1972
 1413                   .LVL129:
23 mjames 1973
 355:../libOLED/src/displayclass.cpp ****   {
1974
 1414                           .loc 1 355 3 is_stmt 0 discriminator 2 view .LVU383
20 mjames 1975
 1415 00b8 D2E7                 b       .L52
1976
 1416                   .L47:
23 mjames 1977
 365:../libOLED/src/displayclass.cpp ****   }
1978
 366:../libOLED/src/displayclass.cpp **** }
1979
 1417                           .loc 1 366 1 view .LVU384
1980
 1418 00ba F8BD                 pop     {r3, r4, r5, r6, r7, pc}
1981
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 34
20 mjames 1982
 
1983
 
23 mjames 1984
 1419                           .loc 1 366 1 view .LVU385
20 mjames 1985
 1420                           .cfi_endproc
1986
 1421                   .LFE57:
1987
 1423                           .section        .text._ZN9display_t12clearDisplayE8colour_t,"ax",%progbits
1988
 1424                           .align  1
1989
 1425                           .global _ZN9display_t12clearDisplayE8colour_t
1990
 1426                           .syntax unified
1991
 1427                           .thumb
1992
 1428                           .thumb_func
1993
 1429                           .fpu softvfp
1994
 1431                   _ZN9display_t12clearDisplayE8colour_t:
1995
 1432                   .LVL130:
1996
 1433                   .LFB58:
23 mjames 1997
 367:../libOLED/src/displayclass.cpp ****
1998
 368:../libOLED/src/displayclass.cpp **** // clear everything
1999
 369:../libOLED/src/displayclass.cpp **** void display_t::clearDisplay(colour_t colour)
2000
 370:../libOLED/src/displayclass.cpp **** {
2001
 1434                           .loc 1 370 1 is_stmt 1 view -0
20 mjames 2002
 1435                           .cfi_startproc
2003
 1436                           @ args = 0, pretend = 0, frame = 0
2004
 1437                           @ frame_needed = 0, uses_anonymous_args = 0
2005
 1438                           @ link register save eliminated.
23 mjames 2006
 371:../libOLED/src/displayclass.cpp ****   switch (colour)
2007
 1439                           .loc 1 371 3 view .LVU387
20 mjames 2008
 1440                   .LBB29:
2009
 1441 0000 0229                 cmp     r1, #2
2010
 1442 0002 0AD8                 bhi     .L56
2011
 1443 0004 D0E90132             ldrd    r3, r2, [r0, #4]
2012
 1444 0008 51B1                 cbz     r1, .L66
2013
 1445                   .LBB30:
23 mjames 2014
 372:../libOLED/src/displayclass.cpp ****   {
2015
 373:../libOLED/src/displayclass.cpp ****   case WHITE:
2016
 1446                           .loc 1 373 3 view .LVU388
2017
 374:../libOLED/src/displayclass.cpp ****   case OVERLAY:
2018
 1447                           .loc 1 374 3 view .LVU389
2019
 375:../libOLED/src/displayclass.cpp ****     memset(m_data, 255, dataSize(m_width, m_height));
2020
 1448                           .loc 1 375 5 view .LVU390
20 mjames 2021
 1449                   .LVL131:
2022
 1450                   .LBB31:
2023
 1451                   .LBI31:
2024
 1452                           .file 2 "../libOLED/inc/libOLED/displayclass.H"
2025
   1:../libOLED/inc/libOLED/displayclass.H **** /*
2026
   2:../libOLED/inc/libOLED/displayclass.H ****  * displayclass.H
2027
   3:../libOLED/inc/libOLED/displayclass.H ****  *
2028
   4:../libOLED/inc/libOLED/displayclass.H ****  *  Created on: 31 Oct 2020
2029
   5:../libOLED/inc/libOLED/displayclass.H ****  *      Author: mike
2030
   6:../libOLED/inc/libOLED/displayclass.H ****  */
2031
   7:../libOLED/inc/libOLED/displayclass.H ****
2032
   8:../libOLED/inc/libOLED/displayclass.H **** #pragma once
2033
   9:../libOLED/inc/libOLED/displayclass.H **** #include <cstdint>
2034
  10:../libOLED/inc/libOLED/displayclass.H **** #include "libOLED/fontclass.H"
2035
  11:../libOLED/inc/libOLED/displayclass.H ****
2036
  12:../libOLED/inc/libOLED/displayclass.H **** inline int constexpr dataSize(int const width, int const height)
2037
 1453                           .loc 2 12 22 view .LVU391
2038
 1454                   .LBB32:
2039
  13:../libOLED/inc/libOLED/displayclass.H **** {
23 mjames 2040
  14:../libOLED/inc/libOLED/displayclass.H ****   return (width * height / 8);
2041
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 35
20 mjames 2042
 
2043
 
2044
 1455                           .loc 2 14 3 view .LVU392
2045
 1456                           .loc 2 14 3 is_stmt 0 view .LVU393
2046
 1457                   .LBE32:
2047
 1458                   .LBE31:
23 mjames 2048
 1459                           .loc 1 375 11 view .LVU394
20 mjames 2049
 1460 000a FF21                 movs    r1, #255
2050
 1461                   .LVL132:
2051
 1462                   .LBB34:
2052
 1463                   .LBB33:
2053
 1464                           .loc 2 14 29 view .LVU395
2054
 1465 000c 5A43                 muls    r2, r3, r2
2055
 1466 000e 48BF                 it      mi
2056
 1467 0010 0732                 addmi   r2, r2, #7
2057
 1468                   .LBE33:
2058
 1469                   .LBE34:
23 mjames 2059
 1470                           .loc 1 375 11 view .LVU396
20 mjames 2060
 1471 0012 D210                 asrs    r2, r2, #3
2061
 1472                   .L67:
23 mjames 2062
 376:../libOLED/src/displayclass.cpp ****     break;
2063
 377:../libOLED/src/displayclass.cpp ****   case BLACK:
2064
 378:../libOLED/src/displayclass.cpp ****     memset(m_data, 0, dataSize(m_width, m_height));
2065
 1473                           .loc 1 378 11 view .LVU397
20 mjames 2066
 1474 0014 006A                 ldr     r0, [r0, #32]
2067
 1475                   .LVL133:
23 mjames 2068
 1476                           .loc 1 378 11 view .LVU398
20 mjames 2069
 1477 0016 FFF7FEBF             b       memset
2070
 1478                   .LVL134:
2071
 1479                   .L56:
23 mjames 2072
 1480                           .loc 1 378 11 view .LVU399
20 mjames 2073
 1481                   .LBE30:
23 mjames 2074
 371:../libOLED/src/displayclass.cpp ****   {
2075
 1482                           .loc 1 371 3 view .LVU400
20 mjames 2076
 1483 001a 0329                 cmp     r1, #3
2077
 1484 001c 06D0                 beq     .L65
2078
 1485 001e 7047                 bx      lr
2079
 1486                   .L66:
2080
 1487                   .LBB40:
23 mjames 2081
 377:../libOLED/src/displayclass.cpp ****     memset(m_data, 0, dataSize(m_width, m_height));
2082
 1488                           .loc 1 377 3 is_stmt 1 view .LVU401
2083
 1489                           .loc 1 378 5 view .LVU402
20 mjames 2084
 1490                   .LVL135:
2085
 1491                   .LBB35:
2086
 1492                   .LBI35:
2087
  12:../libOLED/inc/libOLED/displayclass.H **** {
2088
 1493                           .loc 2 12 22 view .LVU403
2089
 1494                   .LBB36:
2090
 1495                           .loc 2 14 3 view .LVU404
2091
 1496                           .loc 2 14 29 is_stmt 0 view .LVU405
2092
 1497 0020 5A43                 muls    r2, r3, r2
2093
 1498 0022 48BF                 it      mi
2094
 1499 0024 0732                 addmi   r2, r2, #7
2095
 1500                   .LBE36:
2096
 1501                   .LBE35:
23 mjames 2097
 1502                           .loc 1 378 11 view .LVU406
20 mjames 2098
 1503 0026 0021                 movs    r1, #0
2099
 1504                   .LVL136:
23 mjames 2100
 1505                           .loc 1 378 11 view .LVU407
2101
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 36
20 mjames 2102
 
2103
 
2104
 1506 0028 D210                 asrs    r2, r2, #3
2105
 1507 002a F3E7                 b       .L67
2106
 1508                   .LVL137:
2107
 1509                   .L65:
23 mjames 2108
 1510                           .loc 1 378 11 view .LVU408
20 mjames 2109
 1511                   .LBE40:
23 mjames 2110
 371:../libOLED/src/displayclass.cpp ****   {
2111
 1512                           .loc 1 371 3 view .LVU409
20 mjames 2112
 1513 002c 0022                 movs    r2, #0
2113
 1514                   .LVL138:
2114
 1515                   .L59:
2115
 1516                   .LBB41:
2116
 1517                   .LBB37:
23 mjames 2117
 379:../libOLED/src/displayclass.cpp ****     break;
2118
 380:../libOLED/src/displayclass.cpp ****   case INVERT:
2119
 381:../libOLED/src/displayclass.cpp ****     for (int i = 0; i < dataSize(m_width, m_height); i++)
2120
 1518                           .loc 1 381 23 is_stmt 1 discriminator 3 view .LVU410
20 mjames 2121
 1519                   .LBB38:
2122
 1520                   .LBI38:
2123
  12:../libOLED/inc/libOLED/displayclass.H **** {
2124
 1521                           .loc 2 12 22 discriminator 3 view .LVU411
2125
 1522                   .LBB39:
2126
 1523                           .loc 2 14 3 discriminator 3 view .LVU412
2127
 1524                           .loc 2 14 17 is_stmt 0 discriminator 3 view .LVU413
2128
 1525 002e D0E90113             ldrd    r1, r3, [r0, #4]
2129
 1526                           .loc 2 14 29 discriminator 3 view .LVU414
2130
 1527 0032 4B43                 muls    r3, r1, r3
2131
 1528 0034 48BF                 it      mi
2132
 1529 0036 0733                 addmi   r3, r3, #7
2133
 1530                   .LBE39:
2134
 1531                   .LBE38:
23 mjames 2135
 1532                           .loc 1 381 23 discriminator 3 view .LVU415
20 mjames 2136
 1533 0038 B2EBE30F             cmp     r2, r3, asr #3
2137
 1534 003c 05DA                 bge     .L55
23 mjames 2138
 382:../libOLED/src/displayclass.cpp ****       m_data[i] ^= 255;
2139
 1535                           .loc 1 382 7 is_stmt 1 discriminator 2 view .LVU416
2140
 1536                           .loc 1 382 17 is_stmt 0 discriminator 2 view .LVU417
20 mjames 2141
 1537 003e 016A                 ldr     r1, [r0, #32]
2142
 1538 0040 8B5C                 ldrb    r3, [r1, r2]    @ zero_extendqisi2
2143
 1539 0042 DB43                 mvns    r3, r3
2144
 1540 0044 8B54                 strb    r3, [r1, r2]
23 mjames 2145
 381:../libOLED/src/displayclass.cpp ****       m_data[i] ^= 255;
2146
 1541                           .loc 1 381 5 is_stmt 1 discriminator 2 view .LVU418
20 mjames 2147
 1542 0046 0132                 adds    r2, r2, #1
2148
 1543                   .LVL139:
23 mjames 2149
 381:../libOLED/src/displayclass.cpp ****       m_data[i] ^= 255;
2150
 1544                           .loc 1 381 5 is_stmt 0 discriminator 2 view .LVU419
20 mjames 2151
 1545 0048 F1E7                 b       .L59
2152
 1546                   .L55:
23 mjames 2153
 381:../libOLED/src/displayclass.cpp ****       m_data[i] ^= 255;
2154
 1547                           .loc 1 381 5 discriminator 2 view .LVU420
20 mjames 2155
 1548                   .LBE37:
2156
 1549                   .LBE41:
2157
 1550                   .LBE29:
23 mjames 2158
 383:../libOLED/src/displayclass.cpp ****     break;
2159
 384:../libOLED/src/displayclass.cpp ****   }
2160
 385:../libOLED/src/displayclass.cpp **** }
2161
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 37
20 mjames 2162
 
2163
 
23 mjames 2164
 1551                           .loc 1 385 1 view .LVU421
20 mjames 2165
 1552 004a 7047                 bx      lr
2166
 1553                           .cfi_endproc
2167
 1554                   .LFE58:
2168
 1556                           .section        .text._ZN9display_t4initEv,"ax",%progbits
2169
 1557                           .align  1
2170
 1558                           .global _ZN9display_t4initEv
2171
 1559                           .syntax unified
2172
 1560                           .thumb
2173
 1561                           .thumb_func
2174
 1562                           .fpu softvfp
2175
 1564                   _ZN9display_t4initEv:
2176
 1565                   .LVL140:
2177
 1566                   .LFB45:
2178
 107:../libOLED/src/displayclass.cpp ****   uint8_t const vccstate = SSD1306_EXTERNALVCC;
2179
 1567                           .loc 1 107 1 is_stmt 1 view -0
2180
 1568                           .cfi_startproc
2181
 1569                           @ args = 0, pretend = 0, frame = 0
2182
 1570                           @ frame_needed = 0, uses_anonymous_args = 0
2183
 108:../libOLED/src/displayclass.cpp ****
2184
 1571                           .loc 1 108 3 view .LVU423
2185
 110:../libOLED/src/displayclass.cpp ****
2186
 1572                           .loc 1 110 3 view .LVU424
2187
 107:../libOLED/src/displayclass.cpp ****   uint8_t const vccstate = SSD1306_EXTERNALVCC;
2188
 1573                           .loc 1 107 1 is_stmt 0 view .LVU425
2189
 1574 0000 10B5                 push    {r4, lr}
2190
 1575                   .LCFI17:
2191
 1576                           .cfi_def_cfa_offset 8
2192
 1577                           .cfi_offset 4, -8
2193
 1578                           .cfi_offset 14, -4
2194
 107:../libOLED/src/displayclass.cpp ****   uint8_t const vccstate = SSD1306_EXTERNALVCC;
2195
 1579                           .loc 1 107 1 view .LVU426
2196
 1580 0002 0446                 mov     r4, r0
2197
 110:../libOLED/src/displayclass.cpp ****
2198
 1581                           .loc 1 110 14 view .LVU427
2199
 1582 0004 0368                 ldr     r3, [r0]
2200
 110:../libOLED/src/displayclass.cpp ****
2201
 1583                           .loc 1 110 12 view .LVU428
2202
 1584 0006 0021                 movs    r1, #0
2203
 1585 0008 9B68                 ldr     r3, [r3, #8]
2204
 1586 000a 9847                 blx     r3
2205
 1587                   .LVL141:
2206
 113:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETDISPLAYCLOCKDIV); // 0xD5
2207
 1588                           .loc 1 113 3 is_stmt 1 view .LVU429
2208
 113:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETDISPLAYCLOCKDIV); // 0xD5
2209
 1589                           .loc 1 113 31 is_stmt 0 view .LVU430
2210
 1590 000c 2368                 ldr     r3, [r4]
2211
 113:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETDISPLAYCLOCKDIV); // 0xD5
2212
 1591                           .loc 1 113 12 view .LVU431
2213
 1592 000e 2046                 mov     r0, r4
2214
 1593 0010 AE21                 movs    r1, #174
2215
 1594 0012 DB68                 ldr     r3, [r3, #12]
2216
 1595 0014 9847                 blx     r3
2217
 1596                   .LVL142:
2218
 114:../libOLED/src/displayclass.cpp ****   oledWrite(0x80);                       // the suggested ratio 0x80
2219
 1597                           .loc 1 114 3 is_stmt 1 view .LVU432
23 mjames 2220
 114:../libOLED/src/displayclass.cpp ****   oledWrite(0x80);                       // the suggested ratio 0x80
2221
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 38
20 mjames 2222
 
2223
 
2224
 1598                           .loc 1 114 39 is_stmt 0 view .LVU433
2225
 1599 0016 2368                 ldr     r3, [r4]
2226
 114:../libOLED/src/displayclass.cpp ****   oledWrite(0x80);                       // the suggested ratio 0x80
2227
 1600                           .loc 1 114 12 view .LVU434
2228
 1601 0018 2046                 mov     r0, r4
2229
 1602 001a D521                 movs    r1, #213
2230
 1603 001c DB68                 ldr     r3, [r3, #12]
2231
 1604 001e 9847                 blx     r3
2232
 1605                   .LVL143:
2233
 115:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETMULTIPLEX);       // 0xA8
2234
 1606                           .loc 1 115 3 is_stmt 1 view .LVU435
2235
 115:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETMULTIPLEX);       // 0xA8
2236
 1607                           .loc 1 115 17 is_stmt 0 view .LVU436
2237
 1608 0020 2368                 ldr     r3, [r4]
2238
 115:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETMULTIPLEX);       // 0xA8
2239
 1609                           .loc 1 115 12 view .LVU437
2240
 1610 0022 2046                 mov     r0, r4
2241
 1611 0024 8021                 movs    r1, #128
2242
 1612 0026 DB68                 ldr     r3, [r3, #12]
2243
 1613 0028 9847                 blx     r3
2244
 1614                   .LVL144:
2245
 116:../libOLED/src/displayclass.cpp ****   oledWrite(m_height - 1);
2246
 1615                           .loc 1 116 3 is_stmt 1 view .LVU438
2247
 116:../libOLED/src/displayclass.cpp ****   oledWrite(m_height - 1);
2248
 1616                           .loc 1 116 33 is_stmt 0 view .LVU439
2249
 1617 002a 2368                 ldr     r3, [r4]
2250
 116:../libOLED/src/displayclass.cpp ****   oledWrite(m_height - 1);
2251
 1618                           .loc 1 116 12 view .LVU440
2252
 1619 002c 2046                 mov     r0, r4
2253
 1620 002e A821                 movs    r1, #168
2254
 1621 0030 DB68                 ldr     r3, [r3, #12]
2255
 1622 0032 9847                 blx     r3
2256
 1623                   .LVL145:
2257
 117:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETDISPLAYOFFSET);   // 0xD3
2258
 1624                           .loc 1 117 3 is_stmt 1 view .LVU441
2259
 117:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETDISPLAYOFFSET);   // 0xD3
2260
 1625                           .loc 1 117 12 is_stmt 0 view .LVU442
2261
 1626 0034 A168                 ldr     r1, [r4, #8]
2262
 117:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETDISPLAYOFFSET);   // 0xD3
2263
 1627                           .loc 1 117 25 view .LVU443
2264
 1628 0036 2368                 ldr     r3, [r4]
2265
 117:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETDISPLAYOFFSET);   // 0xD3
2266
 1629                           .loc 1 117 12 view .LVU444
2267
 1630 0038 0139                 subs    r1, r1, #1
2268
 1631 003a 2046                 mov     r0, r4
2269
 1632 003c DB68                 ldr     r3, [r3, #12]
2270
 1633 003e C9B2                 uxtb    r1, r1
2271
 1634 0040 9847                 blx     r3
2272
 1635                   .LVL146:
2273
 118:../libOLED/src/displayclass.cpp ****   oledWrite(0x0);                        // no offset
2274
 1636                           .loc 1 118 3 is_stmt 1 view .LVU445
2275
 118:../libOLED/src/displayclass.cpp ****   oledWrite(0x0);                        // no offset
2276
 1637                           .loc 1 118 37 is_stmt 0 view .LVU446
2277
 1638 0042 2368                 ldr     r3, [r4]
2278
 118:../libOLED/src/displayclass.cpp ****   oledWrite(0x0);                        // no offset
2279
 1639                           .loc 1 118 12 view .LVU447
23 mjames 2280
 1640 0044 2046                 mov     r0, r4
2281
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 39
20 mjames 2282
 
2283
 
2284
 1641 0046 D321                 movs    r1, #211
2285
 1642 0048 DB68                 ldr     r3, [r3, #12]
2286
 1643 004a 9847                 blx     r3
2287
 1644                   .LVL147:
2288
 119:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETSTARTLINE | 0x0); // line #0
2289
 1645                           .loc 1 119 3 is_stmt 1 view .LVU448
2290
 119:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETSTARTLINE | 0x0); // line #0
2291
 1646                           .loc 1 119 16 is_stmt 0 view .LVU449
2292
 1647 004c 2368                 ldr     r3, [r4]
2293
 119:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETSTARTLINE | 0x0); // line #0
2294
 1648                           .loc 1 119 12 view .LVU450
2295
 1649 004e 2046                 mov     r0, r4
2296
 1650 0050 0021                 movs    r1, #0
2297
 1651 0052 DB68                 ldr     r3, [r3, #12]
2298
 1652 0054 9847                 blx     r3
2299
 1653                   .LVL148:
2300
 120:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_CHARGEPUMP);         // 0x8D
2301
 1654                           .loc 1 120 3 is_stmt 1 view .LVU451
2302
 120:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_CHARGEPUMP);         // 0x8D
2303
 1655                           .loc 1 120 39 is_stmt 0 view .LVU452
2304
 1656 0056 2368                 ldr     r3, [r4]
2305
 120:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_CHARGEPUMP);         // 0x8D
2306
 1657                           .loc 1 120 12 view .LVU453
2307
 1658 0058 2046                 mov     r0, r4
2308
 1659 005a 4021                 movs    r1, #64
2309
 1660 005c DB68                 ldr     r3, [r3, #12]
2310
 1661 005e 9847                 blx     r3
2311
 1662                   .LVL149:
2312
 121:../libOLED/src/displayclass.cpp ****   oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x10 : 0x14);
2313
 1663                           .loc 1 121 3 is_stmt 1 view .LVU454
2314
 121:../libOLED/src/displayclass.cpp ****   oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x10 : 0x14);
2315
 1664                           .loc 1 121 31 is_stmt 0 view .LVU455
2316
 1665 0060 2368                 ldr     r3, [r4]
2317
 121:../libOLED/src/displayclass.cpp ****   oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x10 : 0x14);
2318
 1666                           .loc 1 121 12 view .LVU456
2319
 1667 0062 2046                 mov     r0, r4
2320
 1668 0064 8D21                 movs    r1, #141
2321
 1669 0066 DB68                 ldr     r3, [r3, #12]
2322
 1670 0068 9847                 blx     r3
2323
 1671                   .LVL150:
2324
 122:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_MEMORYMODE); // 0x20
2325
 1672                           .loc 1 122 3 is_stmt 1 view .LVU457
2326
 122:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_MEMORYMODE); // 0x20
2327
 1673                           .loc 1 122 58 is_stmt 0 view .LVU458
2328
 1674 006a 2368                 ldr     r3, [r4]
2329
 122:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_MEMORYMODE); // 0x20
2330
 1675                           .loc 1 122 12 view .LVU459
2331
 1676 006c 2046                 mov     r0, r4
2332
 1677 006e 1021                 movs    r1, #16
2333
 1678 0070 DB68                 ldr     r3, [r3, #12]
2334
 1679 0072 9847                 blx     r3
2335
 1680                   .LVL151:
2336
 123:../libOLED/src/displayclass.cpp ****   oledWrite(0x00);               // 0x0 act like ks0108
2337
 1681                           .loc 1 123 3 is_stmt 1 view .LVU460
2338
 123:../libOLED/src/displayclass.cpp ****   oledWrite(0x00);               // 0x0 act like ks0108
2339
 1682                           .loc 1 123 31 is_stmt 0 view .LVU461
23 mjames 2340
 1683 0074 2368                 ldr     r3, [r4]
2341
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 40
20 mjames 2342
 
2343
 
2344
 123:../libOLED/src/displayclass.cpp ****   oledWrite(0x00);               // 0x0 act like ks0108
2345
 1684                           .loc 1 123 12 view .LVU462
2346
 1685 0076 2046                 mov     r0, r4
2347
 1686 0078 2021                 movs    r1, #32
2348
 1687 007a DB68                 ldr     r3, [r3, #12]
2349
 1688 007c 9847                 blx     r3
2350
 1689                   .LVL152:
2351
 124:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SEGREMAP | 0x1);
2352
 1690                           .loc 1 124 3 is_stmt 1 view .LVU463
2353
 124:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SEGREMAP | 0x1);
2354
 1691                           .loc 1 124 17 is_stmt 0 view .LVU464
2355
 1692 007e 2368                 ldr     r3, [r4]
2356
 124:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SEGREMAP | 0x1);
2357
 1693                           .loc 1 124 12 view .LVU465
2358
 1694 0080 2046                 mov     r0, r4
2359
 1695 0082 0021                 movs    r1, #0
2360
 1696 0084 DB68                 ldr     r3, [r3, #12]
2361
 1697 0086 9847                 blx     r3
2362
 1698                   .LVL153:
2363
 125:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_COMSCANDEC);
2364
 1699                           .loc 1 125 3 is_stmt 1 view .LVU466
2365
 125:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_COMSCANDEC);
2366
 1700                           .loc 1 125 35 is_stmt 0 view .LVU467
2367
 1701 0088 2368                 ldr     r3, [r4]
2368
 125:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_COMSCANDEC);
2369
 1702                           .loc 1 125 12 view .LVU468
2370
 1703 008a 2046                 mov     r0, r4
2371
 1704 008c A121                 movs    r1, #161
2372
 1705 008e DB68                 ldr     r3, [r3, #12]
2373
 1706 0090 9847                 blx     r3
2374
 1707                   .LVL154:
2375
 126:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCOMPINS); // 0xDA
2376
 1708                           .loc 1 126 3 is_stmt 1 view .LVU469
2377
 126:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCOMPINS); // 0xDA
2378
 1709                           .loc 1 126 31 is_stmt 0 view .LVU470
2379
 1710 0092 2368                 ldr     r3, [r4]
2380
 126:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCOMPINS); // 0xDA
2381
 1711                           .loc 1 126 12 view .LVU471
2382
 1712 0094 2046                 mov     r0, r4
2383
 1713 0096 C821                 movs    r1, #200
2384
 1714 0098 DB68                 ldr     r3, [r3, #12]
2385
 1715 009a 9847                 blx     r3
2386
 1716                   .LVL155:
2387
 127:../libOLED/src/displayclass.cpp ****   oledWrite(m_height == 32 ? 0x02 : 0x12);
2388
 1717                           .loc 1 127 3 is_stmt 1 view .LVU472
2389
 127:../libOLED/src/displayclass.cpp ****   oledWrite(m_height == 32 ? 0x02 : 0x12);
2390
 1718                           .loc 1 127 31 is_stmt 0 view .LVU473
2391
 1719 009c 2368                 ldr     r3, [r4]
2392
 127:../libOLED/src/displayclass.cpp ****   oledWrite(m_height == 32 ? 0x02 : 0x12);
2393
 1720                           .loc 1 127 12 view .LVU474
2394
 1721 009e DA21                 movs    r1, #218
2395
 1722 00a0 2046                 mov     r0, r4
2396
 1723 00a2 DB68                 ldr     r3, [r3, #12]
2397
 1724 00a4 9847                 blx     r3
2398
 1725                   .LVL156:
2399
 128:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCONTRAST); // 0x81
23 mjames 2400
 1726                           .loc 1 128 3 is_stmt 1 view .LVU475
2401
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 41
20 mjames 2402
 
2403
 
2404
 128:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCONTRAST); // 0x81
2405
 1727                           .loc 1 128 12 is_stmt 0 view .LVU476
2406
 1728 00a6 A268                 ldr     r2, [r4, #8]
2407
 128:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCONTRAST); // 0x81
2408
 1729                           .loc 1 128 41 view .LVU477
2409
 1730 00a8 2368                 ldr     r3, [r4]
2410
 128:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCONTRAST); // 0x81
2411
 1731                           .loc 1 128 12 view .LVU478
2412
 1732 00aa 202A                 cmp     r2, #32
2413
 1733 00ac 0CBF                 ite     eq
2414
 1734 00ae 0221                 moveq   r1, #2
2415
 1735 00b0 1221                 movne   r1, #18
2416
 1736 00b2 2046                 mov     r0, r4
2417
 128:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCONTRAST); // 0x81
2418
 1737                           .loc 1 128 41 view .LVU479
2419
 1738 00b4 DB68                 ldr     r3, [r3, #12]
2420
 128:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCONTRAST); // 0x81
2421
 1739                           .loc 1 128 12 view .LVU480
2422
 1740 00b6 9847                 blx     r3
2423
 1741                   .LVL157:
2424
 129:../libOLED/src/displayclass.cpp ****   oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x9F : 0xCF);
2425
 1742                           .loc 1 129 3 is_stmt 1 view .LVU481
2426
 129:../libOLED/src/displayclass.cpp ****   oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x9F : 0xCF);
2427
 1743                           .loc 1 129 32 is_stmt 0 view .LVU482
2428
 1744 00b8 2368                 ldr     r3, [r4]
2429
 129:../libOLED/src/displayclass.cpp ****   oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x9F : 0xCF);
2430
 1745                           .loc 1 129 12 view .LVU483
2431
 1746 00ba 2046                 mov     r0, r4
2432
 1747 00bc 8121                 movs    r1, #129
2433
 1748 00be DB68                 ldr     r3, [r3, #12]
2434
 1749 00c0 9847                 blx     r3
2435
 1750                   .LVL158:
2436
 130:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETPRECHARGE); // 0xd9
2437
 1751                           .loc 1 130 3 is_stmt 1 view .LVU484
2438
 130:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETPRECHARGE); // 0xd9
2439
 1752                           .loc 1 130 58 is_stmt 0 view .LVU485
2440
 1753 00c2 2368                 ldr     r3, [r4]
2441
 130:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETPRECHARGE); // 0xd9
2442
 1754                           .loc 1 130 12 view .LVU486
2443
 1755 00c4 2046                 mov     r0, r4
2444
 1756 00c6 9F21                 movs    r1, #159
2445
 1757 00c8 DB68                 ldr     r3, [r3, #12]
2446
 1758 00ca 9847                 blx     r3
2447
 1759                   .LVL159:
2448
 131:../libOLED/src/displayclass.cpp ****   oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x22 : 0xF1);
2449
 1760                           .loc 1 131 3 is_stmt 1 view .LVU487
2450
 131:../libOLED/src/displayclass.cpp ****   oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x22 : 0xF1);
2451
 1761                           .loc 1 131 33 is_stmt 0 view .LVU488
2452
 1762 00cc 2368                 ldr     r3, [r4]
2453
 131:../libOLED/src/displayclass.cpp ****   oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x22 : 0xF1);
2454
 1763                           .loc 1 131 12 view .LVU489
2455
 1764 00ce 2046                 mov     r0, r4
2456
 1765 00d0 D921                 movs    r1, #217
2457
 1766 00d2 DB68                 ldr     r3, [r3, #12]
2458
 1767 00d4 9847                 blx     r3
2459
 1768                   .LVL160:
23 mjames 2460
 132:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETVCOMDETECT); // 0xDB
2461
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 42
20 mjames 2462
 
2463
 
2464
 1769                           .loc 1 132 3 is_stmt 1 view .LVU490
2465
 132:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETVCOMDETECT); // 0xDB
2466
 1770                           .loc 1 132 58 is_stmt 0 view .LVU491
2467
 1771 00d6 2368                 ldr     r3, [r4]
2468
 132:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETVCOMDETECT); // 0xDB
2469
 1772                           .loc 1 132 12 view .LVU492
2470
 1773 00d8 2046                 mov     r0, r4
2471
 1774 00da 2221                 movs    r1, #34
2472
 1775 00dc DB68                 ldr     r3, [r3, #12]
2473
 1776 00de 9847                 blx     r3
2474
 1777                   .LVL161:
2475
 133:../libOLED/src/displayclass.cpp ****   oledWrite(0x40);
2476
 1778                           .loc 1 133 3 is_stmt 1 view .LVU493
2477
 133:../libOLED/src/displayclass.cpp ****   oledWrite(0x40);
2478
 1779                           .loc 1 133 34 is_stmt 0 view .LVU494
2479
 1780 00e0 2368                 ldr     r3, [r4]
2480
 133:../libOLED/src/displayclass.cpp ****   oledWrite(0x40);
2481
 1781                           .loc 1 133 12 view .LVU495
2482
 1782 00e2 2046                 mov     r0, r4
2483
 1783 00e4 DB21                 movs    r1, #219
2484
 1784 00e6 DB68                 ldr     r3, [r3, #12]
2485
 1785 00e8 9847                 blx     r3
2486
 1786                   .LVL162:
2487
 134:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_DISPLAYALLON_RESUME); // 0xA4
2488
 1787                           .loc 1 134 3 is_stmt 1 view .LVU496
2489
 134:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_DISPLAYALLON_RESUME); // 0xA4
2490
 1788                           .loc 1 134 17 is_stmt 0 view .LVU497
2491
 1789 00ea 2368                 ldr     r3, [r4]
2492
 134:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_DISPLAYALLON_RESUME); // 0xA4
2493
 1790                           .loc 1 134 12 view .LVU498
2494
 1791 00ec 2046                 mov     r0, r4
2495
 1792 00ee 4021                 movs    r1, #64
2496
 1793 00f0 DB68                 ldr     r3, [r3, #12]
2497
 1794 00f2 9847                 blx     r3
2498
 1795                   .LVL163:
2499
 135:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_NORMALDISPLAY);       // 0xA6
2500
 1796                           .loc 1 135 3 is_stmt 1 view .LVU499
2501
 135:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_NORMALDISPLAY);       // 0xA6
2502
 1797                           .loc 1 135 40 is_stmt 0 view .LVU500
2503
 1798 00f4 2368                 ldr     r3, [r4]
2504
 135:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_NORMALDISPLAY);       // 0xA6
2505
 1799                           .loc 1 135 12 view .LVU501
2506
 1800 00f6 2046                 mov     r0, r4
2507
 1801 00f8 A421                 movs    r1, #164
2508
 1802 00fa DB68                 ldr     r3, [r3, #12]
2509
 1803 00fc 9847                 blx     r3
2510
 1804                   .LVL164:
2511
 136:../libOLED/src/displayclass.cpp ****
2512
 1805                           .loc 1 136 3 is_stmt 1 view .LVU502
2513
 136:../libOLED/src/displayclass.cpp ****
2514
 1806                           .loc 1 136 34 is_stmt 0 view .LVU503
2515
 1807 00fe 2368                 ldr     r3, [r4]
2516
 136:../libOLED/src/displayclass.cpp ****
2517
 1808                           .loc 1 136 12 view .LVU504
2518
 1809 0100 2046                 mov     r0, r4
2519
 1810 0102 A621                 movs    r1, #166
23 mjames 2520
 1811 0104 DB68                 ldr     r3, [r3, #12]
2521
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 43
20 mjames 2522
 
2523
 
2524
 1812 0106 9847                 blx     r3
2525
 1813                   .LVL165:
2526
 138:../libOLED/src/displayclass.cpp ****
2527
 1814                           .loc 1 138 3 is_stmt 1 view .LVU505
2528
 138:../libOLED/src/displayclass.cpp ****
2529
 1815                           .loc 1 138 30 is_stmt 0 view .LVU506
2530
 1816 0108 2368                 ldr     r3, [r4]
2531
 138:../libOLED/src/displayclass.cpp ****
2532
 1817                           .loc 1 138 12 view .LVU507
2533
 1818 010a 2046                 mov     r0, r4
2534
 1819 010c AF21                 movs    r1, #175
2535
 1820 010e DB68                 ldr     r3, [r3, #12]
2536
 1821 0110 9847                 blx     r3
2537
 1822                   .LVL166:
2538
 140:../libOLED/src/displayclass.cpp **** }
2539
 1823                           .loc 1 140 3 is_stmt 1 view .LVU508
2540
 140:../libOLED/src/displayclass.cpp **** }
2541
 1824                           .loc 1 140 15 is_stmt 0 view .LVU509
2542
 1825 0112 2046                 mov     r0, r4
2543
 141:../libOLED/src/displayclass.cpp ****
2544
 1826                           .loc 1 141 1 view .LVU510
2545
 1827 0114 BDE81040             pop     {r4, lr}
2546
 1828                   .LCFI18:
2547
 1829                           .cfi_restore 14
2548
 1830                           .cfi_restore 4
2549
 1831                           .cfi_def_cfa_offset 0
2550
 1832                   .LVL167:
2551
 140:../libOLED/src/displayclass.cpp **** }
2552
 1833                           .loc 1 140 15 view .LVU511
2553
 1834 0118 0021                 movs    r1, #0
2554
 1835 011a FFF7FEBF             b       _ZN9display_t12clearDisplayE8colour_t
2555
 1836                   .LVL168:
2556
 140:../libOLED/src/displayclass.cpp **** }
2557
 1837                           .loc 1 140 15 view .LVU512
2558
 1838                           .cfi_endproc
2559
 1839                   .LFE45:
2560
 1841                           .section        .text._ZN9display_t13drawRectangleEssss8colour_t,"ax",%progbits
2561
 1842                           .align  1
2562
 1843                           .global _ZN9display_t13drawRectangleEssss8colour_t
2563
 1844                           .syntax unified
2564
 1845                           .thumb
2565
 1846                           .thumb_func
2566
 1847                           .fpu softvfp
2567
 1849                   _ZN9display_t13drawRectangleEssss8colour_t:
2568
 1850                   .LVL169:
2569
 1851                   .LFB59:
23 mjames 2570
 386:../libOLED/src/displayclass.cpp ****
2571
 387:../libOLED/src/displayclass.cpp **** void display_t::drawRectangle(int16_t x1, int16_t y1, int16_t x2, int16_t y2,
2572
 388:../libOLED/src/displayclass.cpp ****                               colour_t color)
2573
 389:../libOLED/src/displayclass.cpp **** {
2574
 1852                           .loc 1 389 1 is_stmt 1 view -0
20 mjames 2575
 1853                           .cfi_startproc
2576
 1854                           @ args = 8, pretend = 0, frame = 0
2577
 1855                           @ frame_needed = 0, uses_anonymous_args = 0
23 mjames 2578
 390:../libOLED/src/displayclass.cpp ****   for (int16_t x = x1; x <= x2; x++)
2579
 1856                           .loc 1 390 3 view .LVU514
2580
 389:../libOLED/src/displayclass.cpp ****   for (int16_t x = x1; x <= x2; x++)
2581
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 44
20 mjames 2582
 
2583
 
23 mjames 2584
 1857                           .loc 1 389 1 is_stmt 0 view .LVU515
20 mjames 2585
 1858 0000 2DE9F043             push    {r4, r5, r6, r7, r8, r9, lr}
2586
 1859                   .LCFI19:
2587
 1860                           .cfi_def_cfa_offset 28
2588
 1861                           .cfi_offset 4, -28
2589
 1862                           .cfi_offset 5, -24
2590
 1863                           .cfi_offset 6, -20
2591
 1864                           .cfi_offset 7, -16
2592
 1865                           .cfi_offset 8, -12
2593
 1866                           .cfi_offset 9, -8
2594
 1867                           .cfi_offset 14, -4
2595
 1868                   .LBB42:
2596
 1869                   .LBB43:
23 mjames 2597
 391:../libOLED/src/displayclass.cpp ****     for (int16_t y = y1; y < y2; y++)
2598
 392:../libOLED/src/displayclass.cpp ****     {
2599
 393:../libOLED/src/displayclass.cpp ****       switch (color)
2600
 394:../libOLED/src/displayclass.cpp ****       {
2601
 395:../libOLED/src/displayclass.cpp ****       case BLACK:
2602
 396:../libOLED/src/displayclass.cpp ****         m_data[x + (y / 8) * m_width] &= ~(1 << (y & 7));
2603
 1870                           .loc 1 396 46 view .LVU516
20 mjames 2604
 1871 0004 4FF0010E             mov     lr, #1
2605
 1872                   .LBE43:
2606
 1873                   .LBE42:
23 mjames 2607
 389:../libOLED/src/displayclass.cpp ****   for (int16_t x = x1; x <= x2; x++)
2608
 1874                           .loc 1 389 1 view .LVU517
20 mjames 2609
 1875 0008 BDF91CC0             ldrsh   ip, [sp, #28]
2610
 1876 000c 9DF82070             ldrb    r7, [sp, #32]   @ zero_extendqisi2
2611
 1877                   .LVL170:
2612
 1878                   .L80:
2613
 1879                   .LBB45:
23 mjames 2614
 390:../libOLED/src/displayclass.cpp ****     for (int16_t y = y1; y < y2; y++)
2615
 1880                           .loc 1 390 26 is_stmt 1 discriminator 1 view .LVU518
20 mjames 2616
 1881 0010 9942                 cmp     r1, r3
2617
 1882 0012 28DC                 bgt     .L71
2618
 1883                   .LBB44:
23 mjames 2619
 391:../libOLED/src/displayclass.cpp ****     for (int16_t y = y1; y < y2; y++)
2620
 1884                           .loc 1 391 18 is_stmt 0 view .LVU519
20 mjames 2621
 1885 0014 1446                 mov     r4, r2
2622
 1886                   .L79:
2623
 1887                   .LVL171:
23 mjames 2624
 391:../libOLED/src/displayclass.cpp ****     for (int16_t y = y1; y < y2; y++)
2625
 1888                           .loc 1 391 28 is_stmt 1 discriminator 1 view .LVU520
20 mjames 2626
 1889 0016 6445                 cmp     r4, ip
2627
 1890 0018 22DA                 bge     .L73
23 mjames 2628
 393:../libOLED/src/displayclass.cpp ****       {
2629
 1891                           .loc 1 393 7 view .LVU521
2630
 1892                           .loc 1 396 23 is_stmt 0 view .LVU522
20 mjames 2631
 1893 001a 2546                 mov     r5, r4
2632
 1894 001c 002C                 cmp     r4, #0
2633
 1895 001e B8BF                 it      lt
2634
 1896 0020 E51D                 addlt   r5, r4, #7
23 mjames 2635
 1897                           .loc 1 396 39 view .LVU523
20 mjames 2636
 1898 0022 45F3CF06             sbfx    r6, r5, #3, #16
2637
 1899 0026 4568                 ldr     r5, [r0, #4]
2638
 1900 0028 1FFA84F8             uxth    r8, r4
2639
 1901 002c 05FB0615             mla     r5, r5, r6, r1
23 mjames 2640
 1902                           .loc 1 396 52 view .LVU524
2641
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 45
20 mjames 2642
 
2643
 
2644
 1903 0030 04F00704             and     r4, r4, #7
2645
 1904                   .LVL172:
23 mjames 2646
 1905                           .loc 1 396 39 view .LVU525
20 mjames 2647
 1906 0034 066A                 ldr     r6, [r0, #32]
23 mjames 2648
 1907                           .loc 1 396 46 view .LVU526
20 mjames 2649
 1908 0036 0EFA04F4             lsl     r4, lr, r4
23 mjames 2650
 1909                           .loc 1 396 39 view .LVU527
20 mjames 2651
 1910 003a 16F90590             ldrsb   r9, [r6, r5]
2652
 1911 003e 64B2                 sxtb    r4, r4
23 mjames 2653
 393:../libOLED/src/displayclass.cpp ****       {
2654
 1912                           .loc 1 393 7 view .LVU528
20 mjames 2655
 1913 0040 27B1                 cbz     r7, .L75
2656
 1914 0042 032F                 cmp     r7, #3
2657
 1915 0044 09D0                 beq     .L76
23 mjames 2658
 397:../libOLED/src/displayclass.cpp ****         break;
2659
 398:../libOLED/src/displayclass.cpp ****
2660
 399:../libOLED/src/displayclass.cpp ****       default:
2661
 1916                           .loc 1 399 7 is_stmt 1 view .LVU529
2662
 400:../libOLED/src/displayclass.cpp ****       case WHITE:
2663
 1917                           .loc 1 400 7 view .LVU530
2664
 401:../libOLED/src/displayclass.cpp ****       case OVERLAY:
2665
 1918                           .loc 1 401 7 view .LVU531
2666
 402:../libOLED/src/displayclass.cpp ****         m_data[x + (y / 8) * m_width] |= (1 << (y & 7));
2667
 1919                           .loc 1 402 9 view .LVU532
2668
 1920                           .loc 1 402 39 is_stmt 0 view .LVU533
20 mjames 2669
 1921 0046 49EA0404             orr     r4, r9, r4
2670
 1922 004a 01E0                 b       .L82
2671
 1923                   .L75:
23 mjames 2672
 395:../libOLED/src/displayclass.cpp ****         m_data[x + (y / 8) * m_width] &= ~(1 << (y & 7));
2673
 1924                           .loc 1 395 7 is_stmt 1 view .LVU534
2674
 396:../libOLED/src/displayclass.cpp ****         break;
2675
 1925                           .loc 1 396 9 view .LVU535
2676
 396:../libOLED/src/displayclass.cpp ****         break;
2677
 1926                           .loc 1 396 39 is_stmt 0 view .LVU536
20 mjames 2678
 1927 004c 29EA0404             bic     r4, r9, r4
2679
 1928                   .L82:
23 mjames 2680
 403:../libOLED/src/displayclass.cpp ****         break;
2681
 404:../libOLED/src/displayclass.cpp ****
2682
 405:../libOLED/src/displayclass.cpp ****       case INVERT:
2683
 406:../libOLED/src/displayclass.cpp ****         m_data[x + (y / 8) * m_width] ^= (1 << (y & 7));
2684
 1929                           .loc 1 406 39 view .LVU537
20 mjames 2685
 1930 0050 7455                 strb    r4, [r6, r5]
23 mjames 2686
 407:../libOLED/src/displayclass.cpp ****         break;
2687
 1931                           .loc 1 407 9 is_stmt 1 view .LVU538
2688
 391:../libOLED/src/displayclass.cpp ****     {
2689
 1932                           .loc 1 391 5 view .LVU539
20 mjames 2690
 1933 0052 08F10104             add     r4, r8, #1
2691
 1934 0056 24B2                 sxth    r4, r4
2692
 1935                   .LVL173:
23 mjames 2693
 391:../libOLED/src/displayclass.cpp ****     {
2694
 1936                           .loc 1 391 5 is_stmt 0 view .LVU540
20 mjames 2695
 1937 0058 DDE7                 b       .L79
2696
 1938                   .LVL174:
2697
 1939                   .L76:
23 mjames 2698
 405:../libOLED/src/displayclass.cpp ****         m_data[x + (y / 8) * m_width] ^= (1 << (y & 7));
2699
 1940                           .loc 1 405 7 is_stmt 1 view .LVU541
2700
 406:../libOLED/src/displayclass.cpp ****         break;
2701
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 46
20 mjames 2702
 
2703
 
23 mjames 2704
 1941                           .loc 1 406 9 view .LVU542
2705
 406:../libOLED/src/displayclass.cpp ****         break;
2706
 1942                           .loc 1 406 39 is_stmt 0 view .LVU543
20 mjames 2707
 1943 005a 89EA0404             eor     r4, r9, r4
2708
 1944 005e F7E7                 b       .L82
2709
 1945                   .LVL175:
2710
 1946                   .L73:
23 mjames 2711
 406:../libOLED/src/displayclass.cpp ****         break;
2712
 1947                           .loc 1 406 39 view .LVU544
20 mjames 2713
 1948                   .LBE44:
23 mjames 2714
 390:../libOLED/src/displayclass.cpp ****     for (int16_t y = y1; y < y2; y++)
2715
 1949                           .loc 1 390 3 is_stmt 1 discriminator 2 view .LVU545
20 mjames 2716
 1950 0060 0131                 adds    r1, r1, #1
2717
 1951                   .LVL176:
23 mjames 2718
 390:../libOLED/src/displayclass.cpp ****     for (int16_t y = y1; y < y2; y++)
2719
 1952                           .loc 1 390 3 is_stmt 0 discriminator 2 view .LVU546
20 mjames 2720
 1953 0062 09B2                 sxth    r1, r1
2721
 1954                   .LVL177:
23 mjames 2722
 390:../libOLED/src/displayclass.cpp ****     for (int16_t y = y1; y < y2; y++)
2723
 1955                           .loc 1 390 3 discriminator 2 view .LVU547
20 mjames 2724
 1956 0064 D4E7                 b       .L80
2725
 1957                   .LVL178:
2726
 1958                   .L71:
23 mjames 2727
 390:../libOLED/src/displayclass.cpp ****     for (int16_t y = y1; y < y2; y++)
2728
 1959                           .loc 1 390 3 discriminator 2 view .LVU548
20 mjames 2729
 1960                   .LBE45:
23 mjames 2730
 408:../libOLED/src/displayclass.cpp ****       }
2731
 409:../libOLED/src/displayclass.cpp ****     }
2732
 410:../libOLED/src/displayclass.cpp **** }
2733
 1961                           .loc 1 410 1 view .LVU549
20 mjames 2734
 1962 0066 BDE8F083             pop     {r4, r5, r6, r7, r8, r9, pc}
23 mjames 2735
 1963                           .loc 1 410 1 view .LVU550
20 mjames 2736
 1964                           .cfi_endproc
2737
 1965                   .LFE59:
2738
 1967                           .section        .text._ZN9display_t8drawLineEssss8colour_ta,"ax",%progbits
2739
 1968                           .align  1
2740
 1969                           .global _ZN9display_t8drawLineEssss8colour_ta
2741
 1970                           .syntax unified
2742
 1971                           .thumb
2743
 1972                           .thumb_func
2744
 1973                           .fpu softvfp
2745
 1975                   _ZN9display_t8drawLineEssss8colour_ta:
2746
 1976                   .LVL179:
2747
 1977                   .LFB60:
23 mjames 2748
 411:../libOLED/src/displayclass.cpp ****
2749
 412:../libOLED/src/displayclass.cpp **** /* using Bresenham draw algorithm */
2750
 413:../libOLED/src/displayclass.cpp **** void display_t::drawLine(int16_t x1, int16_t y1, int16_t x2, int16_t y2,
2751
 414:../libOLED/src/displayclass.cpp ****                          colour_t colour, int8_t pattern)
2752
 415:../libOLED/src/displayclass.cpp **** {
2753
 1978                           .loc 1 415 1 is_stmt 1 view -0
20 mjames 2754
 1979                           .cfi_startproc
2755
 1980                           @ args = 12, pretend = 0, frame = 16
2756
 1981                           @ frame_needed = 0, uses_anonymous_args = 0
23 mjames 2757
 416:../libOLED/src/displayclass.cpp ****   int16_t x, y, dx, dy,  // deltas
2758
 1982                           .loc 1 416 3 view .LVU552
2759
 417:../libOLED/src/displayclass.cpp ****       dx2, dy2,          // scaled deltas
2760
 418:../libOLED/src/displayclass.cpp ****       ix, iy,            // increase rate on the x and y axis
2761
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 47
20 mjames 2762
 
2763
 
23 mjames 2764
 419:../libOLED/src/displayclass.cpp ****       err;               // the error term
2765
 420:../libOLED/src/displayclass.cpp ****   int8_t patt = pattern; // drawing pattern bit mask 1= solid 10= dots , 111000 equal dot/dash
2766
 1983                           .loc 1 420 3 view .LVU553
2767
 415:../libOLED/src/displayclass.cpp ****   int16_t x, y, dx, dy,  // deltas
2768
 1984                           .loc 1 415 1 is_stmt 0 view .LVU554
20 mjames 2769
 1985 0000 2DE9F04F             push    {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2770
 1986                   .LCFI20:
2771
 1987                           .cfi_def_cfa_offset 36
2772
 1988                           .cfi_offset 4, -36
2773
 1989                           .cfi_offset 5, -32
2774
 1990                           .cfi_offset 6, -28
2775
 1991                           .cfi_offset 7, -24
2776
 1992                           .cfi_offset 8, -20
2777
 1993                           .cfi_offset 9, -16
2778
 1994                           .cfi_offset 10, -12
2779
 1995                           .cfi_offset 11, -8
2780
 1996                           .cfi_offset 14, -4
2781
 1997 0004 85B0                 sub     sp, sp, #20
2782
 1998                   .LCFI21:
2783
 1999                           .cfi_def_cfa_offset 56
23 mjames 2784
 421:../libOLED/src/displayclass.cpp ****
2785
 422:../libOLED/src/displayclass.cpp ****   uint16_t i; // looping variable
2786
 423:../libOLED/src/displayclass.cpp ****
2787
 424:../libOLED/src/displayclass.cpp ****   setPixelMode(colour);
2788
 425:../libOLED/src/displayclass.cpp ****
2789
 426:../libOLED/src/displayclass.cpp ****   // identify the first pixel
2790
 427:../libOLED/src/displayclass.cpp ****   x = x1;
2791
 428:../libOLED/src/displayclass.cpp ****   y = y1;
2792
 429:../libOLED/src/displayclass.cpp ****
2793
 430:../libOLED/src/displayclass.cpp ****   // difference between starting and ending points
2794
 431:../libOLED/src/displayclass.cpp ****   dx = x2 - x1;
2795
 432:../libOLED/src/displayclass.cpp ****   dy = y2 - y1;
2796
 2000                           .loc 1 432 11 view .LVU555
20 mjames 2797
 2001 0006 BDF93850             ldrsh   r5, [sp, #56]
23 mjames 2798
 431:../libOLED/src/displayclass.cpp ****   dy = y2 - y1;
2799
 2002                           .loc 1 431 11 view .LVU556
20 mjames 2800
 2003 000a 5E1A                 subs    r6, r3, r1
2801
 2004                   .LBB46:
2802
 2005                   .LBB47:
2803
  15:../libOLED/inc/libOLED/displayclass.H **** }
2804
  16:../libOLED/inc/libOLED/displayclass.H ****
2805
  17:../libOLED/inc/libOLED/displayclass.H **** enum colour_t
2806
  18:../libOLED/inc/libOLED/displayclass.H **** {
2807
  19:../libOLED/inc/libOLED/displayclass.H ****   BLACK,   /* and 0, invert 0 */
2808
  20:../libOLED/inc/libOLED/displayclass.H ****   WHITE,   /* and 0, invert 1 */
2809
  21:../libOLED/inc/libOLED/displayclass.H ****   OVERLAY, /* and 1, invert 0 */
2810
  22:../libOLED/inc/libOLED/displayclass.H ****   INVERT,  /* and 1, invert 1 */
2811
  23:../libOLED/inc/libOLED/displayclass.H **** };
2812
  24:../libOLED/inc/libOLED/displayclass.H ****
2813
  25:../libOLED/inc/libOLED/displayclass.H **** class display_t
2814
  26:../libOLED/inc/libOLED/displayclass.H **** {
2815
  27:../libOLED/inc/libOLED/displayclass.H **** public:
2816
  28:../libOLED/inc/libOLED/displayclass.H ****   display_t(int const width, int const height, int const ramwidth,
2817
  29:../libOLED/inc/libOLED/displayclass.H ****             uint8_t *const data);
2818
  30:../libOLED/inc/libOLED/displayclass.H ****
2819
  31:../libOLED/inc/libOLED/displayclass.H ****   virtual ~display_t();
23 mjames 2820
  32:../libOLED/inc/libOLED/displayclass.H ****
2821
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 48
20 mjames 2822
 
2823
 
2824
  33:../libOLED/inc/libOLED/displayclass.H ****   /// \brief get the current rotation of the display : doesnt work too well. 
2825
  34:../libOLED/inc/libOLED/displayclass.H ****   uint8_t
2826
  35:../libOLED/inc/libOLED/displayclass.H ****   getRotation();
2827
  36:../libOLED/inc/libOLED/displayclass.H ****
2828
  37:../libOLED/inc/libOLED/displayclass.H ****   /// @brief  Get pixel width
2829
  38:../libOLED/inc/libOLED/displayclass.H ****   /// @return width
2830
  39:../libOLED/inc/libOLED/displayclass.H ****   int16_t
2831
  40:../libOLED/inc/libOLED/displayclass.H ****   width();
2832
  41:../libOLED/inc/libOLED/displayclass.H ****   /// @brief Get pixel height
2833
  42:../libOLED/inc/libOLED/displayclass.H ****   /// @return height
2834
  43:../libOLED/inc/libOLED/displayclass.H ****   int16_t
2835
  44:../libOLED/inc/libOLED/displayclass.H ****   height();
2836
  45:../libOLED/inc/libOLED/displayclass.H ****
2837
  46:../libOLED/inc/libOLED/displayclass.H ****   /// @brief common hardware reset, resets ALL displays
2838
  47:../libOLED/inc/libOLED/displayclass.H ****   void
2839
  48:../libOLED/inc/libOLED/displayclass.H ****   reset();
2840
  49:../libOLED/inc/libOLED/displayclass.H ****
2841
  50:../libOLED/inc/libOLED/displayclass.H ****   void
2842
  51:../libOLED/inc/libOLED/displayclass.H ****   init();
2843
  52:../libOLED/inc/libOLED/displayclass.H ****
2844
  53:../libOLED/inc/libOLED/displayclass.H ****   /// \brief Clear display to colour
2845
  54:../libOLED/inc/libOLED/displayclass.H ****   void
2846
  55:../libOLED/inc/libOLED/displayclass.H ****   clearDisplay(colour_t colour = colour_t::BLACK);
2847
  56:../libOLED/inc/libOLED/displayclass.H ****
2848
  57:../libOLED/inc/libOLED/displayclass.H ****   /// @brief Invert display
2849
  58:../libOLED/inc/libOLED/displayclass.H ****   /// @param i true : invert display
2850
  59:../libOLED/inc/libOLED/displayclass.H ****   void
2851
  60:../libOLED/inc/libOLED/displayclass.H ****   invertDisplay(uint8_t i);
2852
  61:../libOLED/inc/libOLED/displayclass.H ****
2853
  62:../libOLED/inc/libOLED/displayclass.H ****   /// @brief Show the workspace on the screen
2854
  63:../libOLED/inc/libOLED/displayclass.H ****   void
2855
  64:../libOLED/inc/libOLED/displayclass.H ****   display();
2856
  65:../libOLED/inc/libOLED/displayclass.H ****
2857
  66:../libOLED/inc/libOLED/displayclass.H ****   void
2858
  67:../libOLED/inc/libOLED/displayclass.H ****   startscrollright(uint8_t start, uint8_t stop);
2859
  68:../libOLED/inc/libOLED/displayclass.H ****   void
2860
  69:../libOLED/inc/libOLED/displayclass.H ****   startscrollleft(uint8_t start, uint8_t stop);
2861
  70:../libOLED/inc/libOLED/displayclass.H ****
2862
  71:../libOLED/inc/libOLED/displayclass.H ****   void
2863
  72:../libOLED/inc/libOLED/displayclass.H ****   startscrolldiagright(uint8_t start, uint8_t stop);
2864
  73:../libOLED/inc/libOLED/displayclass.H ****   void
2865
  74:../libOLED/inc/libOLED/displayclass.H ****   startscrolldiagleft(uint8_t start, uint8_t stop);
2866
  75:../libOLED/inc/libOLED/displayclass.H ****   void
2867
  76:../libOLED/inc/libOLED/displayclass.H ****   stopscroll(void);
2868
  77:../libOLED/inc/libOLED/displayclass.H ****
2869
  78:../libOLED/inc/libOLED/displayclass.H ****   /// @brief Set display contrast
2870
  79:../libOLED/inc/libOLED/displayclass.H ****   /// @param contrast 0..255 but theres really only two values worth bothering with, 0 and 255
2871
  80:../libOLED/inc/libOLED/displayclass.H ****   void
2872
  81:../libOLED/inc/libOLED/displayclass.H ****   dim(uint8_t contrast);
2873
  82:../libOLED/inc/libOLED/displayclass.H ****
2874
  83:../libOLED/inc/libOLED/displayclass.H ****   // set drawing mode
2875
  84:../libOLED/inc/libOLED/displayclass.H ****   void
2876
  85:../libOLED/inc/libOLED/displayclass.H ****   setPixelMode(colour_t colour)
2877
  86:../libOLED/inc/libOLED/displayclass.H ****   {
2878
  87:../libOLED/inc/libOLED/displayclass.H ****     m_colour = colour;
2879
 2006                           .loc 2 87 14 view .LVU557
23 mjames 2880
 2007 000c 9DF83C40             ldrb    r4, [sp, #60]   @ zero_extendqisi2
2881
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 49
20 mjames 2882
 
2883
 
2884
 2008                   .LBE47:
2885
 2009                   .LBE46:
23 mjames 2886
 431:../libOLED/src/displayclass.cpp ****   dy = y2 - y1;
2887
 2010                           .loc 1 431 6 view .LVU558
20 mjames 2888
 2011 0010 36B2                 sxth    r6, r6
23 mjames 2889
 2012                           .loc 1 432 11 view .LVU559
20 mjames 2890
 2013 0012 AD1A                 subs    r5, r5, r2
23 mjames 2891
 433:../libOLED/src/displayclass.cpp ****
2892
 434:../libOLED/src/displayclass.cpp ****   // calculate direction of the vector and store in ix and iy
2893
 435:../libOLED/src/displayclass.cpp ****   if (dx >= 0)
2894
 436:../libOLED/src/displayclass.cpp ****     ix = 1;
2895
 437:../libOLED/src/displayclass.cpp ****
2896
 438:../libOLED/src/displayclass.cpp ****   if (dx < 0)
2897
 2014                           .loc 1 438 3 view .LVU560
20 mjames 2898
 2015 0014 002E                 cmp     r6, #0
23 mjames 2899
 415:../libOLED/src/displayclass.cpp ****   int16_t x, y, dx, dy,  // deltas
2900
 2016                           .loc 1 415 1 view .LVU561
20 mjames 2901
 2017 0016 9DF94090             ldrsb   r9, [sp, #64]
2902
 2018                   .LVL180:
23 mjames 2903
 422:../libOLED/src/displayclass.cpp ****
2904
 2019                           .loc 1 422 3 is_stmt 1 view .LVU562
2905
 424:../libOLED/src/displayclass.cpp ****
2906
 2020                           .loc 1 424 3 view .LVU563
20 mjames 2907
 2021                   .LBB49:
2908
 2022                   .LBI46:
2909
  85:../libOLED/inc/libOLED/displayclass.H ****   {
2910
 2023                           .loc 2 85 3 view .LVU564
2911
 2024                   .LBB48:
2912
 2025                           .loc 2 87 5 view .LVU565
2913
 2026                           .loc 2 87 14 is_stmt 0 view .LVU566
2914
 2027 001a 0477                 strb    r4, [r0, #28]
2915
 2028                   .LVL181:
2916
 2029                           .loc 2 87 14 view .LVU567
2917
 2030                   .LBE48:
2918
 2031                   .LBE49:
23 mjames 2919
 427:../libOLED/src/displayclass.cpp ****   y = y1;
2920
 2032                           .loc 1 427 3 is_stmt 1 view .LVU568
2921
 428:../libOLED/src/displayclass.cpp ****
2922
 2033                           .loc 1 428 3 view .LVU569
2923
 431:../libOLED/src/displayclass.cpp ****   dy = y2 - y1;
2924
 2034                           .loc 1 431 3 view .LVU570
2925
 432:../libOLED/src/displayclass.cpp ****
2926
 2035                           .loc 1 432 3 view .LVU571
2927
 432:../libOLED/src/displayclass.cpp ****
2928
 2036                           .loc 1 432 6 is_stmt 0 view .LVU572
20 mjames 2929
 2037 001c 2DB2                 sxth    r5, r5
2930
 2038                   .LVL182:
23 mjames 2931
 435:../libOLED/src/displayclass.cpp ****     ix = 1;
2932
 2039                           .loc 1 435 3 is_stmt 1 view .LVU573
2933
 2040                           .loc 1 438 3 view .LVU574
20 mjames 2934
 2041 001e 3FDA                 bge     .L96
23 mjames 2935
 439:../libOLED/src/displayclass.cpp ****   {
2936
 440:../libOLED/src/displayclass.cpp ****     ix = -1;
2937
 2042                           .loc 1 440 5 view .LVU575
20 mjames 2938
 2043                   .LVL183:
23 mjames 2939
 441:../libOLED/src/displayclass.cpp ****     dx = abs(dx);
2940
 2044                           .loc 1 441 5 view .LVU576
2941
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 50
20 mjames 2942
 
2943
 
2944
 2045                   .LBB50:
2945
 2046                   .LBI50:
2946
  70:../libOLED/src/displayclass.cpp ****   {
2947
 2047                           .loc 1 70 5 view .LVU577
2948
 2048                   .LBE50:
23 mjames 2949
 440:../libOLED/src/displayclass.cpp ****     dx = abs(dx);
2950
 2049                           .loc 1 440 8 is_stmt 0 view .LVU578
20 mjames 2951
 2050 0020 4FF0FF3A             mov     r10, #-1
2952
 2051                   .LBB52:
2953
 2052                   .LBB51:
2954
  72:../libOLED/src/displayclass.cpp ****   }
2955
 2053                           .loc 1 72 18 view .LVU579
2956
 2054 0024 002E                 cmp     r6, #0
2957
 2055 0026 B8BF                 it      lt
2958
 2056 0028 7642                 rsblt   r6, r6, #0
2959
 2057                   .LVL184:
2960
  72:../libOLED/src/displayclass.cpp ****   }
2961
 2058                           .loc 1 72 25 view .LVU580
2962
 2059 002a 36B2                 sxth    r6, r6
2963
 2060                   .LVL185:
2964
 2061                   .L84:
2965
  72:../libOLED/src/displayclass.cpp ****   }
2966
 2062                           .loc 1 72 25 view .LVU581
2967
 2063                   .LBE51:
2968
 2064                   .LBE52:
23 mjames 2969
 442:../libOLED/src/displayclass.cpp ****   }
2970
 443:../libOLED/src/displayclass.cpp ****
2971
 444:../libOLED/src/displayclass.cpp ****   if (dy >= 0)
2972
 2065                           .loc 1 444 3 is_stmt 1 view .LVU582
2973
 445:../libOLED/src/displayclass.cpp ****     iy = 1;
2974
 446:../libOLED/src/displayclass.cpp ****
2975
 447:../libOLED/src/displayclass.cpp ****   if (dy < 0)
2976
 2066                           .loc 1 447 3 view .LVU583
20 mjames 2977
 2067 002c 002D                 cmp     r5, #0
2978
 2068 002e 3ADA                 bge     .L97
23 mjames 2979
 448:../libOLED/src/displayclass.cpp ****   {
2980
 449:../libOLED/src/displayclass.cpp ****     iy = -1;
2981
 2069                           .loc 1 449 5 view .LVU584
20 mjames 2982
 2070                   .LVL186:
23 mjames 2983
 450:../libOLED/src/displayclass.cpp ****     dy = abs(dy);
2984
 2071                           .loc 1 450 5 view .LVU585
20 mjames 2985
 2072                   .LBB53:
2986
 2073                   .LBI53:
2987
  70:../libOLED/src/displayclass.cpp ****   {
2988
 2074                           .loc 1 70 5 view .LVU586
2989
 2075                   .LBE53:
23 mjames 2990
 449:../libOLED/src/displayclass.cpp ****     dy = abs(dy);
2991
 2076                           .loc 1 449 8 is_stmt 0 view .LVU587
20 mjames 2992
 2077 0030 4FF0FF33             mov     r3, #-1
2993
 2078                   .LVL187:
2994
 2079                   .LBB55:
2995
 2080                   .LBB54:
2996
  72:../libOLED/src/displayclass.cpp ****   }
2997
 2081                           .loc 1 72 18 view .LVU588
2998
 2082 0034 002D                 cmp     r5, #0
2999
 2083 0036 B8BF                 it      lt
23 mjames 3000
 2084 0038 6D42                 rsblt   r5, r5, #0
3001
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 51
20 mjames 3002
 
3003
 
3004
 2085                   .LVL188:
3005
  72:../libOLED/src/displayclass.cpp ****   }
3006
 2086                           .loc 1 72 25 view .LVU589
3007
 2087 003a 2DB2                 sxth    r5, r5
3008
 2088                   .LVL189:
3009
 2089                   .L106:
3010
  72:../libOLED/src/displayclass.cpp ****   }
3011
 2090                           .loc 1 72 25 view .LVU590
3012
 2091                   .LBE54:
3013
 2092                   .LBE55:
3014
 2093 003c 0093                 str     r3, [sp]
3015
 2094                   .LVL190:
23 mjames 3016
 451:../libOLED/src/displayclass.cpp ****   }
3017
 452:../libOLED/src/displayclass.cpp ****
3018
 453:../libOLED/src/displayclass.cpp ****   // scale deltas and store in dx2 and dy2
3019
 454:../libOLED/src/displayclass.cpp ****   dx2 = dx * 2;
3020
 2095                           .loc 1 454 3 is_stmt 1 view .LVU591
3021
 2096                           .loc 1 454 12 is_stmt 0 view .LVU592
20 mjames 3022
 2097 003e B4B2                 uxth    r4, r6
23 mjames 3023
 455:../libOLED/src/displayclass.cpp ****   dy2 = dy * 2;
3024
 2098                           .loc 1 455 12 view .LVU593
20 mjames 3025
 2099 0040 ABB2                 uxth    r3, r5
23 mjames 3026
 454:../libOLED/src/displayclass.cpp ****   dy2 = dy * 2;
3027
 2100                           .loc 1 454 12 view .LVU594
20 mjames 3028
 2101 0042 6700                 lsls    r7, r4, #1
23 mjames 3029
 2102                           .loc 1 455 12 view .LVU595
20 mjames 3030
 2103 0044 4FEA4308             lsl     r8, r3, #1
23 mjames 3031
 456:../libOLED/src/displayclass.cpp ****
3032
 457:../libOLED/src/displayclass.cpp ****   // all  variables are set and it's time to enter the main loop.
3033
 458:../libOLED/src/displayclass.cpp ****
3034
 459:../libOLED/src/displayclass.cpp ****   if (dx > dy) // dx is the major axis
3035
 2104                           .loc 1 459 3 view .LVU596
20 mjames 3036
 2105 0048 AE42                 cmp     r6, r5
23 mjames 3037
 454:../libOLED/src/displayclass.cpp ****   dy2 = dy * 2;
3038
 2106                           .loc 1 454 12 view .LVU597
20 mjames 3039
 2107 004a BFB2                 uxth    r7, r7
3040
 2108                   .LVL191:
23 mjames 3041
 455:../libOLED/src/displayclass.cpp ****
3042
 2109                           .loc 1 455 3 is_stmt 1 view .LVU598
3043
 455:../libOLED/src/displayclass.cpp ****
3044
 2110                           .loc 1 455 12 is_stmt 0 view .LVU599
20 mjames 3045
 2111 004c 1FFA88F8             uxth    r8, r8
3046
 2112                   .LVL192:
23 mjames 3047
 2113                           .loc 1 459 3 is_stmt 1 view .LVU600
20 mjames 3048
 2114 0050 2BDD                 ble     .L86
23 mjames 3049
 460:../libOLED/src/displayclass.cpp ****   {
3050
 461:../libOLED/src/displayclass.cpp ****     // initialize the error term
3051
 462:../libOLED/src/displayclass.cpp ****     err = dy2 - dx;
3052
 2115                           .loc 1 462 5 view .LVU601
3053
 420:../libOLED/src/displayclass.cpp ****
3054
 2116                           .loc 1 420 10 is_stmt 0 view .LVU602
20 mjames 3055
 2117 0052 4D46                 mov     r5, r9
3056
 2118                   .LVL193:
23 mjames 3057
 2119                           .loc 1 462 9 view .LVU603
20 mjames 3058
 2120 0054 4FF0000B             mov     fp, #0
23 mjames 3059
 2121                           .loc 1 462 15 view .LVU604
3060
 2122 0058 A8EB0404             sub     r4, r8, r4
3061
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 52
20 mjames 3062
 
3063
 
23 mjames 3064
 2123                           .loc 1 462 9 view .LVU605
20 mjames 3065
 2124 005c 24B2                 sxth    r4, r4
3066
 2125                   .LVL194:
23 mjames 3067
 463:../libOLED/src/displayclass.cpp ****
3068
 464:../libOLED/src/displayclass.cpp ****     for (i = 0; i <= dx; i++)
3069
 2126                           .loc 1 464 5 is_stmt 1 view .LVU606
20 mjames 3070
 2127                   .L91:
23 mjames 3071
 2128                           .loc 1 464 19 discriminator 1 view .LVU607
3072
 2129                           .loc 1 464 17 is_stmt 0 discriminator 1 view .LVU608
20 mjames 3073
 2130 005e 1FFA8BF3             uxth    r3, fp
23 mjames 3074
 2131                           .loc 1 464 19 discriminator 1 view .LVU609
20 mjames 3075
 2132 0062 B342                 cmp     r3, r6
3076
 2133 0064 4ADC                 bgt     .L83
23 mjames 3077
 465:../libOLED/src/displayclass.cpp ****     {
3078
 466:../libOLED/src/displayclass.cpp ****       // draw pattern based on using pattern as a sequential bit mask.
3079
 467:../libOLED/src/displayclass.cpp ****       if (patt & 1)
3080
 2134                           .loc 1 467 7 is_stmt 1 view .LVU610
20 mjames 3081
 2135 0066 EB07                 lsls    r3, r5, #31
3082
 2136 0068 08D5                 bpl     .L88
23 mjames 3083
 468:../libOLED/src/displayclass.cpp ****         drawPixel(x, y, 1);
3084
 2137                           .loc 1 468 9 view .LVU611
3085
 2138                           .loc 1 468 18 is_stmt 0 view .LVU612
20 mjames 3086
 2139 006a 0123                 movs    r3, #1
3087
 2140 006c CDE90212             strd    r1, r2, [sp, #8]
3088
 2141 0070 0190                 str     r0, [sp, #4]
3089
 2142 0072 FFF7FEFF             bl      _ZN9display_t9drawPixelEssb
3090
 2143                   .LVL195:
23 mjames 3091
 2144                           .loc 1 468 18 view .LVU613
20 mjames 3092
 2145 0076 DDE90212             ldrd    r1, r2, [sp, #8]
3093
 2146 007a 0198                 ldr     r0, [sp, #4]
3094
 2147                   .L88:
23 mjames 3095
 469:../libOLED/src/displayclass.cpp ****       patt = (patt <= 1) ? pattern : patt >> 1;
3096
 2148                           .loc 1 469 7 is_stmt 1 view .LVU614
3097
 2149                           .loc 1 469 12 is_stmt 0 view .LVU615
20 mjames 3098
 2150 007c 012D                 cmp     r5, #1
3099
 2151 007e D4BF                 ite     le
3100
 2152 0080 4D46                 movle   r5, r9
3101
 2153                   .LVL196:
23 mjames 3102
 2154                           .loc 1 469 12 view .LVU616
20 mjames 3103
 2155 0082 6D10                 asrgt   r5, r5, #1
3104
 2156                   .LVL197:
23 mjames 3105
 470:../libOLED/src/displayclass.cpp ****
3106
 471:../libOLED/src/displayclass.cpp ****       if (err >= 0)
3107
 2157                           .loc 1 471 7 is_stmt 1 view .LVU617
20 mjames 3108
 2158 0084 002C                 cmp     r4, #0
3109
 2159 0086 04DB                 blt     .L90
23 mjames 3110
 472:../libOLED/src/displayclass.cpp ****       {
3111
 473:../libOLED/src/displayclass.cpp ****         err -= dx2;
3112
 2160                           .loc 1 473 9 view .LVU618
3113
 474:../libOLED/src/displayclass.cpp ****         y += iy;
3114
 2161                           .loc 1 474 11 is_stmt 0 view .LVU619
20 mjames 3115
 2162 0088 009B                 ldr     r3, [sp]
23 mjames 3116
 473:../libOLED/src/displayclass.cpp ****         y += iy;
3117
 2163                           .loc 1 473 13 view .LVU620
20 mjames 3118
 2164 008a E41B                 subs    r4, r4, r7
3119
 2165                   .LVL198:
23 mjames 3120
 2166                           .loc 1 474 11 view .LVU621
3121
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 53
20 mjames 3122
 
3123
 
3124
 2167 008c 1A44                 add     r2, r2, r3
23 mjames 3125
 473:../libOLED/src/displayclass.cpp ****         y += iy;
3126
 2168                           .loc 1 473 13 view .LVU622
20 mjames 3127
 2169 008e 24B2                 sxth    r4, r4
3128
 2170                   .LVL199:
23 mjames 3129
 2171                           .loc 1 474 9 is_stmt 1 view .LVU623
3130
 2172                           .loc 1 474 11 is_stmt 0 view .LVU624
20 mjames 3131
 2173 0090 12B2                 sxth    r2, r2
3132
 2174                   .LVL200:
3133
 2175                   .L90:
23 mjames 3134
 475:../libOLED/src/displayclass.cpp ****       }
3135
 476:../libOLED/src/displayclass.cpp ****       err += dy2;
3136
 2176                           .loc 1 476 7 is_stmt 1 discriminator 2 view .LVU625
3137
 2177                           .loc 1 476 11 is_stmt 0 discriminator 2 view .LVU626
20 mjames 3138
 2178 0092 4444                 add     r4, r4, r8
3139
 2179                   .LVL201:
23 mjames 3140
 2180                           .loc 1 476 11 discriminator 2 view .LVU627
20 mjames 3141
 2181 0094 5144                 add     r1, r1, r10
3142
 2182 0096 24B2                 sxth    r4, r4
3143
 2183                   .LVL202:
23 mjames 3144
 477:../libOLED/src/displayclass.cpp ****       x += ix;
3145
 2184                           .loc 1 477 7 is_stmt 1 discriminator 2 view .LVU628
20 mjames 3146
 2185 0098 09B2                 sxth    r1, r1
3147
 2186                   .LVL203:
23 mjames 3148
 464:../libOLED/src/displayclass.cpp ****     {
3149
 2187                           .loc 1 464 5 discriminator 2 view .LVU629
3150
 464:../libOLED/src/displayclass.cpp ****     {
3151
 2188                           .loc 1 464 5 is_stmt 0 discriminator 2 view .LVU630
20 mjames 3152
 2189 009a 0BF1010B             add     fp, fp, #1
3153
 2190                   .LVL204:
23 mjames 3154
 464:../libOLED/src/displayclass.cpp ****     {
3155
 2191                           .loc 1 464 5 discriminator 2 view .LVU631
20 mjames 3156
 2192 009e DEE7                 b       .L91
3157
 2193                   .LVL205:
3158
 2194                   .L96:
23 mjames 3159
 464:../libOLED/src/displayclass.cpp ****     {
3160
 2195                           .loc 1 464 5 discriminator 2 view .LVU632
20 mjames 3161
 2196 00a0 4FF0010A             mov     r10, #1
3162
 2197 00a4 C2E7                 b       .L84
3163
 2198                   .LVL206:
3164
 2199                   .L97:
23 mjames 3165
 464:../libOLED/src/displayclass.cpp ****     {
3166
 2200                           .loc 1 464 5 discriminator 2 view .LVU633
20 mjames 3167
 2201 00a6 0123                 movs    r3, #1
3168
 2202                   .LVL207:
23 mjames 3169
 464:../libOLED/src/displayclass.cpp ****     {
3170
 2203                           .loc 1 464 5 discriminator 2 view .LVU634
20 mjames 3171
 2204 00a8 C8E7                 b       .L106
3172
 2205                   .LVL208:
3173
 2206                   .L86:
23 mjames 3174
 478:../libOLED/src/displayclass.cpp ****     }
3175
 479:../libOLED/src/displayclass.cpp ****   }
3176
 480:../libOLED/src/displayclass.cpp ****
3177
 481:../libOLED/src/displayclass.cpp ****   else // dy is the major axis
3178
 482:../libOLED/src/displayclass.cpp ****   {
3179
 483:../libOLED/src/displayclass.cpp ****     // initialize the error term
3180
 484:../libOLED/src/displayclass.cpp ****     err = dx2 - dy;
3181
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 54
20 mjames 3182
 
3183
 
23 mjames 3184
 2207                           .loc 1 484 5 is_stmt 1 view .LVU635
3185
 420:../libOLED/src/displayclass.cpp ****
3186
 2208                           .loc 1 420 10 is_stmt 0 view .LVU636
20 mjames 3187
 2209 00aa 4E46                 mov     r6, r9
3188
 2210                   .LVL209:
23 mjames 3189
 2211                           .loc 1 484 9 view .LVU637
20 mjames 3190
 2212 00ac 4FF0000B             mov     fp, #0
23 mjames 3191
 2213                           .loc 1 484 15 view .LVU638
20 mjames 3192
 2214 00b0 FC1A                 subs    r4, r7, r3
3193
 2215                   .LVL210:
23 mjames 3194
 2216                           .loc 1 484 9 view .LVU639
20 mjames 3195
 2217 00b2 24B2                 sxth    r4, r4
3196
 2218                   .LVL211:
23 mjames 3197
 485:../libOLED/src/displayclass.cpp ****
3198
 486:../libOLED/src/displayclass.cpp ****     for (i = 0; i <= dy; i++)
3199
 2219                           .loc 1 486 5 is_stmt 1 view .LVU640
20 mjames 3200
 2220                   .L95:
23 mjames 3201
 2221                           .loc 1 486 19 discriminator 1 view .LVU641
3202
 2222                           .loc 1 486 17 is_stmt 0 discriminator 1 view .LVU642
20 mjames 3203
 2223 00b4 1FFA8BF3             uxth    r3, fp
23 mjames 3204
 2224                           .loc 1 486 19 discriminator 1 view .LVU643
20 mjames 3205
 2225 00b8 AB42                 cmp     r3, r5
3206
 2226 00ba 1FDC                 bgt     .L83
23 mjames 3207
 487:../libOLED/src/displayclass.cpp ****     {
3208
 488:../libOLED/src/displayclass.cpp ****       // draw pattern based on using pattern as a sequential bit mask.
3209
 489:../libOLED/src/displayclass.cpp ****       if (patt & 1)
3210
 2227                           .loc 1 489 7 is_stmt 1 view .LVU644
20 mjames 3211
 2228 00bc F307                 lsls    r3, r6, #31
3212
 2229 00be 08D5                 bpl     .L92
23 mjames 3213
 490:../libOLED/src/displayclass.cpp ****         drawPixel(x, y, 1);
3214
 2230                           .loc 1 490 9 view .LVU645
3215
 2231                           .loc 1 490 18 is_stmt 0 view .LVU646
20 mjames 3216
 2232 00c0 0123                 movs    r3, #1
3217
 2233 00c2 CDE90212             strd    r1, r2, [sp, #8]
3218
 2234 00c6 0190                 str     r0, [sp, #4]
3219
 2235 00c8 FFF7FEFF             bl      _ZN9display_t9drawPixelEssb
3220
 2236                   .LVL212:
23 mjames 3221
 2237                           .loc 1 490 18 view .LVU647
20 mjames 3222
 2238 00cc DDE90212             ldrd    r1, r2, [sp, #8]
3223
 2239 00d0 0198                 ldr     r0, [sp, #4]
3224
 2240                   .L92:
23 mjames 3225
 491:../libOLED/src/displayclass.cpp ****       patt = (patt <= 1) ? pattern : patt >> 1;
3226
 2241                           .loc 1 491 7 is_stmt 1 view .LVU648
3227
 2242                           .loc 1 491 12 is_stmt 0 view .LVU649
20 mjames 3228
 2243 00d2 012E                 cmp     r6, #1
3229
 2244 00d4 D4BF                 ite     le
3230
 2245 00d6 4E46                 movle   r6, r9
3231
 2246                   .LVL213:
23 mjames 3232
 2247                           .loc 1 491 12 view .LVU650
20 mjames 3233
 2248 00d8 7610                 asrgt   r6, r6, #1
3234
 2249                   .LVL214:
23 mjames 3235
 492:../libOLED/src/displayclass.cpp ****       if (err >= 0)
3236
 2250                           .loc 1 492 7 is_stmt 1 view .LVU651
20 mjames 3237
 2251 00da 002C                 cmp     r4, #0
23 mjames 3238
 493:../libOLED/src/displayclass.cpp ****       {
3239
 494:../libOLED/src/displayclass.cpp ****         err -= dy2;
3240
 2252                           .loc 1 494 9 view .LVU652
3241
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 55
20 mjames 3242
 
3243
 
23 mjames 3244
 2253                           .loc 1 494 13 is_stmt 0 view .LVU653
20 mjames 3245
 2254 00dc A8BF                 it      ge
3246
 2255 00de A4EB0804             subge   r4, r4, r8
3247
 2256                   .LVL215:
23 mjames 3248
 2257                           .loc 1 494 13 view .LVU654
20 mjames 3249
 2258 00e2 009B                 ldr     r3, [sp]
3250
 2259 00e4 A4BF                 itt     ge
3251
 2260 00e6 24B2                 sxthge  r4, r4
3252
 2261                   .LVL216:
23 mjames 3253
 495:../libOLED/src/displayclass.cpp ****         x += ix;
3254
 2262                           .loc 1 495 9 is_stmt 1 view .LVU655
3255
 2263                           .loc 1 495 11 is_stmt 0 view .LVU656
20 mjames 3256
 2264 00e8 5144                 addge   r1, r1, r10
23 mjames 3257
 496:../libOLED/src/displayclass.cpp ****       }
3258
 497:../libOLED/src/displayclass.cpp ****       err += dx2;
3259
 2265                           .loc 1 497 11 view .LVU657
20 mjames 3260
 2266 00ea 3C44                 add     r4, r4, r7
3261
 2267                   .LVL217:
23 mjames 3262
 2268                           .loc 1 497 11 view .LVU658
20 mjames 3263
 2269 00ec 1A44                 add     r2, r2, r3
23 mjames 3264
 495:../libOLED/src/displayclass.cpp ****         x += ix;
3265
 2270                           .loc 1 495 11 view .LVU659
20 mjames 3266
 2271 00ee A8BF                 it      ge
3267
 2272 00f0 09B2                 sxthge  r1, r1
3268
 2273                   .LVL218:
23 mjames 3269
 2274                           .loc 1 497 7 is_stmt 1 view .LVU660
3270
 2275                           .loc 1 497 11 is_stmt 0 view .LVU661
20 mjames 3271
 2276 00f2 24B2                 sxth    r4, r4
3272
 2277                   .LVL219:
23 mjames 3273
 498:../libOLED/src/displayclass.cpp ****       y += iy;
3274
 2278                           .loc 1 498 7 is_stmt 1 view .LVU662
20 mjames 3275
 2279 00f4 12B2                 sxth    r2, r2
3276
 2280                   .LVL220:
23 mjames 3277
 486:../libOLED/src/displayclass.cpp ****     {
3278
 2281                           .loc 1 486 5 view .LVU663
3279
 486:../libOLED/src/displayclass.cpp ****     {
3280
 2282                           .loc 1 486 5 is_stmt 0 view .LVU664
20 mjames 3281
 2283 00f6 0BF1010B             add     fp, fp, #1
3282
 2284                   .LVL221:
23 mjames 3283
 486:../libOLED/src/displayclass.cpp ****     {
3284
 2285                           .loc 1 486 5 view .LVU665
20 mjames 3285
 2286 00fa DBE7                 b       .L95
3286
 2287                   .LVL222:
3287
 2288                   .L83:
23 mjames 3288
 499:../libOLED/src/displayclass.cpp ****     }
3289
 500:../libOLED/src/displayclass.cpp ****   }
3290
 501:../libOLED/src/displayclass.cpp **** }
3291
 2289                           .loc 1 501 1 view .LVU666
20 mjames 3292
 2290 00fc 05B0                 add     sp, sp, #20
3293
 2291                   .LCFI22:
3294
 2292                           .cfi_def_cfa_offset 36
3295
 2293                   .LVL223:
23 mjames 3296
 2294                           .loc 1 501 1 view .LVU667
20 mjames 3297
 2295                           @ sp needed
3298
 2296 00fe BDE8F08F             pop     {r4, r5, r6, r7, r8, r9, r10, fp, pc}
23 mjames 3299
 2297                           .loc 1 501 1 view .LVU668
3300
 2298                           .cfi_endproc
3301
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 56
20 mjames 3302
 
3303
 
3304
 2299                   .LFE60:
3305
 2301                           .global _ZTV9display_t
3306
 2302                           .section        .rodata._ZTV9display_t,"a"
3307
 2303                           .align  2
3308
 2304                           .set    .LANCHOR0,. + 0
3309
 2307                   _ZTV9display_t:
3310
 2308 0000 00000000             .word   0
3311
 2309 0004 00000000             .word   0
3312
 2310 0008 00000000             .word   0
3313
 2311 000c 00000000             .word   0
3314
 2312 0010 00000000             .word   __cxa_pure_virtual
3315
 2313 0014 00000000             .word   __cxa_pure_virtual
3316
 2314 0018 00000000             .word   __cxa_pure_virtual
3317
 2315 001c 00000000             .word   __cxa_pure_virtual
3318
 2316                           .text
3319
 2317                   .Letext0:
23 mjames 3320
 2318                           .file 3 "c:\\users\\mike\\.vscode\\extensions\\chipcode-nl.gcc-arm-windows-1.0.1\\arm-none-eabi\\i
3321
 2319                           .file 4 "c:\\users\\mike\\.vscode\\extensions\\chipcode-nl.gcc-arm-windows-1.0.1\\arm-none-eabi\\i
3322
 2320                           .file 5 "c:\\users\\mike\\.vscode\\extensions\\chipcode-nl.gcc-arm-windows-1.0.1\\arm-none-eabi\\i
3323
 2321                           .file 6 "c:\\users\\mike\\.vscode\\extensions\\chipcode-nl.gcc-arm-windows-1.0.1\\arm-none-eabi\\i
3324
 2322                           .file 7 "c:\\users\\mike\\.vscode\\extensions\\chipcode-nl.gcc-arm-windows-1.0.1\\arm-none-eabi\\i
3325
 2323                           .file 8 "c:\\users\\mike\\.vscode\\extensions\\chipcode-nl.gcc-arm-windows-1.0.1\\arm-none-eabi\\i
3326
 2324                           .file 9 "c:\\users\\mike\\.vscode\\extensions\\chipcode-nl.gcc-arm-windows-1.0.1\\arm-none-eabi\\i
3327
 2325                           .file 10 "c:\\users\\mike\\.vscode\\extensions\\chipcode-nl.gcc-arm-windows-1.0.1\\lib\\gcc\\arm-n
3328
 2326                           .file 11 "c:\\users\\mike\\.vscode\\extensions\\chipcode-nl.gcc-arm-windows-1.0.1\\arm-none-eabi\\
3329
 2327                           .file 12 "c:\\users\\mike\\.vscode\\extensions\\chipcode-nl.gcc-arm-windows-1.0.1\\arm-none-eabi\\
20 mjames 3330
 2328                           .file 13 "../libOLED/inc/libOLED/fontclass.H"
3331
 2329                           .file 14 "<built-in>"
23 mjames 3332
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccLRcSza.s                   page 57
20 mjames 3333
 
3334
 
3335
DEFINED SYMBOLS
3336
                            *ABS*:00000000 displayclass.cpp
23 mjames 3337
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:16     .text._ZdlPvj:00000000 $t
3338
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:24     .text._ZdlPvj:00000000 _ZdlPvj
3339
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:41     .text.__cxa_pure_virtual:00000000 $t
3340
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:48     .text.__cxa_pure_virtual:00000000 __cxa_pure_virtual
3341
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:64     .text._ZN9display_tC2EiiiPh:00000000 $t
3342
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:71     .text._ZN9display_tC2EiiiPh:00000000 _ZN9display_tC2EiiiPh
3343
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:110    .text._ZN9display_tC2EiiiPh:00000020 $d
3344
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:71     .text._ZN9display_tC2EiiiPh:00000000 _ZN9display_tC1EiiiPh
3345
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:117    .text._ZN9display_tD0Ev:00000000 $t
3346
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:124    .text._ZN9display_tD0Ev:00000000 _ZN9display_tD0Ev
3347
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:124    .text._ZN9display_tD0Ev:00000000 _ZN9display_tD1Ev
3348
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:124    .text._ZN9display_tD0Ev:00000000 _ZN9display_tD2Ev
3349
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:149    .text._ZN9display_t5resetEv:00000000 $t
3350
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:156    .text._ZN9display_t5resetEv:00000000 _ZN9display_t5resetEv
3351
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:176    .text._ZN9display_t11getRotationEv:00000000 $t
3352
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:183    .text._ZN9display_t11getRotationEv:00000000 _ZN9display_t11getRotationEv
3353
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:201    .text._ZN9display_t5widthEv:00000000 $t
3354
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:208    .text._ZN9display_t5widthEv:00000000 _ZN9display_t5widthEv
3355
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:268    .text._ZN9display_t6heightEv:00000000 $t
3356
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:275    .text._ZN9display_t6heightEv:00000000 _ZN9display_t6heightEv
3357
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:335    .text._ZN9display_t9drawPixelEssb:00000000 $t
3358
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:342    .text._ZN9display_t9drawPixelEssb:00000000 _ZN9display_t9drawPixelEssb
3359
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:518    .text._ZN9display_t13invertDisplayEh:00000000 $t
3360
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:525    .text._ZN9display_t13invertDisplayEh:00000000 _ZN9display_t13invertDisplayEh
3361
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:582    .text._ZN9display_t16startscrollrightEhh:00000000 $t
3362
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:589    .text._ZN9display_t16startscrollrightEhh:00000000 _ZN9display_t16startscrollrightEhh
3363
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:705    .text._ZN9display_t15startscrollleftEhh:00000000 $t
3364
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:712    .text._ZN9display_t15startscrollleftEhh:00000000 _ZN9display_t15startscrollleftEhh
3365
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:828    .text._ZN9display_t20startscrolldiagrightEhh:00000000 $t
3366
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:835    .text._ZN9display_t20startscrolldiagrightEhh:00000000 _ZN9display_t20startscrolldiagrightEhh
3367
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:969    .text._ZN9display_t19startscrolldiagleftEhh:00000000 $t
3368
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:976    .text._ZN9display_t19startscrolldiagleftEhh:00000000 _ZN9display_t19startscrolldiagleftEhh
3369
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1110   .text._ZN9display_t10stopscrollEv:00000000 $t
3370
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1117   .text._ZN9display_t10stopscrollEv:00000000 _ZN9display_t10stopscrollEv
3371
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1162   .text._ZN9display_t3dimEh:00000000 $t
3372
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1169   .text._ZN9display_t3dimEh:00000000 _ZN9display_t3dimEh
3373
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1230   .text._ZN9display_t7displayEv:00000000 $t
3374
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1237   .text._ZN9display_t7displayEv:00000000 _ZN9display_t7displayEv
3375
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1424   .text._ZN9display_t12clearDisplayE8colour_t:00000000 $t
3376
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1431   .text._ZN9display_t12clearDisplayE8colour_t:00000000 _ZN9display_t12clearDisplayE8colour_t
3377
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1557   .text._ZN9display_t4initEv:00000000 $t
3378
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1564   .text._ZN9display_t4initEv:00000000 _ZN9display_t4initEv
3379
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1842   .text._ZN9display_t13drawRectangleEssss8colour_t:00000000 $t
3380
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1849   .text._ZN9display_t13drawRectangleEssss8colour_t:00000000 _ZN9display_t13drawRectangleEssss8colour_t
3381
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1968   .text._ZN9display_t8drawLineEssss8colour_ta:00000000 $t
3382
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:1975   .text._ZN9display_t8drawLineEssss8colour_ta:00000000 _ZN9display_t8drawLineEssss8colour_ta
3383
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:2307   .rodata._ZTV9display_t:00000000 _ZTV9display_t
3384
C:\Users\mike\AppData\Local\Temp\ccLRcSza.s:2303   .rodata._ZTV9display_t:00000000 $d
20 mjames 3385
 
3386
UNDEFINED SYMBOLS
3387
memset