Subversion Repositories EDIS_Ignition

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
20 mjames 1
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                    page 1
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 ****
61
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 2
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
121
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 3
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
181
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 4
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;
241
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 5
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;
301
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 6
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
361
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 7
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
421
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 8
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
481
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 9
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
541
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 10
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
601
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 11
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:
661
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 12
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:
721
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 13
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
781
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 14
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
841
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 15
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
901
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 16
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
961
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 17
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]
1021
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 18
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:
1081
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 19
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:
1141
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 20
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 **** }
1201
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 21
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
1261
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 22
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
1321
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 23
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:
1381
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 24
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);
1441
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 25
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]
1501
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 26
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
1561
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 27
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:
1621
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 28
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 ****
1639
 329:../libOLED/src/displayclass.cpp ****
1640
 330:../libOLED/src/displayclass.cpp **** void display_t::dim(uint8_t contrast)
1641
 331:../libOLED/src/displayclass.cpp **** {
1642
 1172                           .loc 1 331 1 is_stmt 1 view -0
1643
 1173                           .cfi_startproc
1644
 1174                           @ args = 0, pretend = 0, frame = 0
1645
 1175                           @ frame_needed = 0, uses_anonymous_args = 0
1646
 332:../libOLED/src/displayclass.cpp ****
1647
 333:../libOLED/src/displayclass.cpp ****   // the range of contrast to too small to be really useful
1648
 334:../libOLED/src/displayclass.cpp ****   // it is useful to dim the display
1649
 335:../libOLED/src/displayclass.cpp ****
1650
 336:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
1651
 1176                           .loc 1 336 3 view .LVU311
1652
 331:../libOLED/src/displayclass.cpp ****
1653
 1177                           .loc 1 331 1 is_stmt 0 view .LVU312
1654
 1178 0000 70B5                 push    {r4, r5, r6, lr}
1655
 1179                   .LCFI14:
1656
 1180                           .cfi_def_cfa_offset 16
1657
 1181                           .cfi_offset 4, -16
1658
 1182                           .cfi_offset 5, -12
1659
 1183                           .cfi_offset 6, -8
1660
 1184                           .cfi_offset 14, -4
1661
 331:../libOLED/src/displayclass.cpp ****
1662
 1185                           .loc 1 331 1 view .LVU313
1663
 1186 0002 0446                 mov     r4, r0
1664
 1187 0004 0D46                 mov     r5, r1
1665
 1188                           .loc 1 336 14 view .LVU314
1666
 1189 0006 0368                 ldr     r3, [r0]
1667
 1190                           .loc 1 336 12 view .LVU315
1668
 1191 0008 0021                 movs    r1, #0
1669
 1192                   .LVL108:
1670
 1193                           .loc 1 336 12 view .LVU316
1671
 1194 000a 9B68                 ldr     r3, [r3, #8]
1672
 1195 000c 9847                 blx     r3
1673
 1196                   .LVL109:
1674
 337:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCONTRAST);
1675
 1197                           .loc 1 337 3 is_stmt 1 view .LVU317
1676
 1198                           .loc 1 337 32 is_stmt 0 view .LVU318
1677
 1199 000e 2368                 ldr     r3, [r4]
1678
 1200                           .loc 1 337 12 view .LVU319
1679
 1201 0010 2046                 mov     r0, r4
1680
 1202 0012 8121                 movs    r1, #129
1681
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 29
1682
 
1683
 
1684
 1203 0014 DB68                 ldr     r3, [r3, #12]
1685
 1204 0016 9847                 blx     r3
1686
 1205                   .LVL110:
1687
 338:../libOLED/src/displayclass.cpp ****   oledWrite(contrast);
1688
 1206                           .loc 1 338 3 is_stmt 1 view .LVU320
1689
 1207                           .loc 1 338 21 is_stmt 0 view .LVU321
1690
 1208 0018 2368                 ldr     r3, [r4]
1691
 1209                           .loc 1 338 12 view .LVU322
1692
 1210 001a 2946                 mov     r1, r5
1693
 1211 001c 2046                 mov     r0, r4
1694
 339:../libOLED/src/displayclass.cpp **** }
1695
 1212                           .loc 1 339 1 view .LVU323
1696
 1213 001e BDE87040             pop     {r4, r5, r6, lr}
1697
 1214                   .LCFI15:
1698
 1215                           .cfi_restore 14
1699
 1216                           .cfi_restore 6
1700
 1217                           .cfi_restore 5
1701
 1218                           .cfi_restore 4
1702
 1219                           .cfi_def_cfa_offset 0
1703
 1220                   .LVL111:
1704
 338:../libOLED/src/displayclass.cpp ****   oledWrite(contrast);
1705
 1221                           .loc 1 338 12 view .LVU324
1706
 1222 0022 DB68                 ldr     r3, [r3, #12]
1707
 1223 0024 1847                 bx      r3      @ indirect register sibling call
1708
 1224                   .LVL112:
1709
 338:../libOLED/src/displayclass.cpp ****   oledWrite(contrast);
1710
 1225                           .loc 1 338 12 view .LVU325
1711
 1226                           .cfi_endproc
1712
 1227                   .LFE56:
1713
 1229                           .section        .text._ZN9display_t7displayEv,"ax",%progbits
1714
 1230                           .align  1
1715
 1231                           .global _ZN9display_t7displayEv
1716
 1232                           .syntax unified
1717
 1233                           .thumb
1718
 1234                           .thumb_func
1719
 1235                           .fpu softvfp
1720
 1237                   _ZN9display_t7displayEv:
1721
 1238                   .LVL113:
1722
 1239                   .LFB57:
1723
 340:../libOLED/src/displayclass.cpp ****
1724
 341:../libOLED/src/displayclass.cpp **** void display_t::display(void)
1725
 342:../libOLED/src/displayclass.cpp **** {
1726
 1240                           .loc 1 342 1 is_stmt 1 view -0
1727
 1241                           .cfi_startproc
1728
 1242                           @ args = 0, pretend = 0, frame = 0
1729
 1243                           @ frame_needed = 0, uses_anonymous_args = 0
1730
 343:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
1731
 1244                           .loc 1 343 3 view .LVU327
1732
 342:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
1733
 1245                           .loc 1 342 1 is_stmt 0 view .LVU328
1734
 1246 0000 F8B5                 push    {r3, r4, r5, r6, r7, lr}
1735
 1247                   .LCFI16:
1736
 1248                           .cfi_def_cfa_offset 24
1737
 1249                           .cfi_offset 3, -24
1738
 1250                           .cfi_offset 4, -20
1739
 1251                           .cfi_offset 5, -16
1740
 1252                           .cfi_offset 6, -12
1741
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 30
1742
 
1743
 
1744
 1253                           .cfi_offset 7, -8
1745
 1254                           .cfi_offset 14, -4
1746
 342:../libOLED/src/displayclass.cpp ****   oledSetCD(0);
1747
 1255                           .loc 1 342 1 view .LVU329
1748
 1256 0002 0446                 mov     r4, r0
1749
 344:../libOLED/src/displayclass.cpp ****   // select entire display as window to write into
1750
 345:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_COLUMNADDR);
1751
 346:../libOLED/src/displayclass.cpp ****   oledWrite(0);              // Column start address (0 = reset)
1752
 347:../libOLED/src/displayclass.cpp ****   oledWrite(m_ramwidth - 1); // Column end address (127 = reset)
1753
 348:../libOLED/src/displayclass.cpp ****
1754
 349:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_PAGEADDR);
1755
 350:../libOLED/src/displayclass.cpp ****   oledWrite(0);                        // Page start address (0 = reset)
1756
 351:../libOLED/src/displayclass.cpp ****   oledWrite((m_height == 64) ? 7 : 3); // Page end address
1757
 352:../libOLED/src/displayclass.cpp ****
1758
 353:../libOLED/src/displayclass.cpp ****   int row;
1759
 354:../libOLED/src/displayclass.cpp ****
1760
 355:../libOLED/src/displayclass.cpp ****   int col = m_ramwidth == 132 ? 2 : 0;
1761
 356:../libOLED/src/displayclass.cpp ****   for (row = 0; row < m_height / 8; row++)
1762
 1257                           .loc 1 356 12 view .LVU330
1763
 1258 0004 0025                 movs    r5, #0
1764
 343:../libOLED/src/displayclass.cpp ****   // select entire display as window to write into
1765
 1259                           .loc 1 343 14 view .LVU331
1766
 1260 0006 0368                 ldr     r3, [r0]
1767
 343:../libOLED/src/displayclass.cpp ****   // select entire display as window to write into
1768
 1261                           .loc 1 343 12 view .LVU332
1769
 1262 0008 0021                 movs    r1, #0
1770
 1263 000a 9B68                 ldr     r3, [r3, #8]
1771
 1264 000c 9847                 blx     r3
1772
 1265                   .LVL114:
1773
 345:../libOLED/src/displayclass.cpp ****   oledWrite(0);              // Column start address (0 = reset)
1774
 1266                           .loc 1 345 3 is_stmt 1 view .LVU333
1775
 345:../libOLED/src/displayclass.cpp ****   oledWrite(0);              // Column start address (0 = reset)
1776
 1267                           .loc 1 345 31 is_stmt 0 view .LVU334
1777
 1268 000e 2368                 ldr     r3, [r4]
1778
 345:../libOLED/src/displayclass.cpp ****   oledWrite(0);              // Column start address (0 = reset)
1779
 1269                           .loc 1 345 12 view .LVU335
1780
 1270 0010 2121                 movs    r1, #33
1781
 1271 0012 2046                 mov     r0, r4
1782
 1272 0014 DB68                 ldr     r3, [r3, #12]
1783
 1273 0016 9847                 blx     r3
1784
 1274                   .LVL115:
1785
 346:../libOLED/src/displayclass.cpp ****   oledWrite(m_ramwidth - 1); // Column end address (127 = reset)
1786
 1275                           .loc 1 346 3 is_stmt 1 view .LVU336
1787
 346:../libOLED/src/displayclass.cpp ****   oledWrite(m_ramwidth - 1); // Column end address (127 = reset)
1788
 1276                           .loc 1 346 14 is_stmt 0 view .LVU337
1789
 1277 0018 2368                 ldr     r3, [r4]
1790
 346:../libOLED/src/displayclass.cpp ****   oledWrite(m_ramwidth - 1); // Column end address (127 = reset)
1791
 1278                           .loc 1 346 12 view .LVU338
1792
 1279 001a 0021                 movs    r1, #0
1793
 1280 001c 2046                 mov     r0, r4
1794
 1281 001e DB68                 ldr     r3, [r3, #12]
1795
 1282 0020 9847                 blx     r3
1796
 1283                   .LVL116:
1797
 347:../libOLED/src/displayclass.cpp ****
1798
 1284                           .loc 1 347 3 is_stmt 1 view .LVU339
1799
 347:../libOLED/src/displayclass.cpp ****
1800
 1285                           .loc 1 347 12 is_stmt 0 view .LVU340
1801
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 31
1802
 
1803
 
1804
 1286 0022 E168                 ldr     r1, [r4, #12]
1805
 347:../libOLED/src/displayclass.cpp ****
1806
 1287                           .loc 1 347 27 view .LVU341
1807
 1288 0024 2368                 ldr     r3, [r4]
1808
 347:../libOLED/src/displayclass.cpp ****
1809
 1289                           .loc 1 347 12 view .LVU342
1810
 1290 0026 0139                 subs    r1, r1, #1
1811
 1291 0028 2046                 mov     r0, r4
1812
 1292 002a DB68                 ldr     r3, [r3, #12]
1813
 1293 002c C9B2                 uxtb    r1, r1
1814
 1294 002e 9847                 blx     r3
1815
 1295                   .LVL117:
1816
 349:../libOLED/src/displayclass.cpp ****   oledWrite(0);                        // Page start address (0 = reset)
1817
 1296                           .loc 1 349 3 is_stmt 1 view .LVU343
1818
 349:../libOLED/src/displayclass.cpp ****   oledWrite(0);                        // Page start address (0 = reset)
1819
 1297                           .loc 1 349 29 is_stmt 0 view .LVU344
1820
 1298 0030 2368                 ldr     r3, [r4]
1821
 349:../libOLED/src/displayclass.cpp ****   oledWrite(0);                        // Page start address (0 = reset)
1822
 1299                           .loc 1 349 12 view .LVU345
1823
 1300 0032 2221                 movs    r1, #34
1824
 1301 0034 2046                 mov     r0, r4
1825
 1302 0036 DB68                 ldr     r3, [r3, #12]
1826
 1303 0038 9847                 blx     r3
1827
 1304                   .LVL118:
1828
 350:../libOLED/src/displayclass.cpp ****   oledWrite((m_height == 64) ? 7 : 3); // Page end address
1829
 1305                           .loc 1 350 3 is_stmt 1 view .LVU346
1830
 350:../libOLED/src/displayclass.cpp ****   oledWrite((m_height == 64) ? 7 : 3); // Page end address
1831
 1306                           .loc 1 350 14 is_stmt 0 view .LVU347
1832
 1307 003a 2368                 ldr     r3, [r4]
1833
 350:../libOLED/src/displayclass.cpp ****   oledWrite((m_height == 64) ? 7 : 3); // Page end address
1834
 1308                           .loc 1 350 12 view .LVU348
1835
 1309 003c 0021                 movs    r1, #0
1836
 1310 003e 2046                 mov     r0, r4
1837
 1311 0040 DB68                 ldr     r3, [r3, #12]
1838
 1312 0042 9847                 blx     r3
1839
 1313                   .LVL119:
1840
 351:../libOLED/src/displayclass.cpp ****
1841
 1314                           .loc 1 351 3 is_stmt 1 view .LVU349
1842
 351:../libOLED/src/displayclass.cpp ****
1843
 1315                           .loc 1 351 12 is_stmt 0 view .LVU350
1844
 1316 0044 A268                 ldr     r2, [r4, #8]
1845
 351:../libOLED/src/displayclass.cpp ****
1846
 1317                           .loc 1 351 37 view .LVU351
1847
 1318 0046 2368                 ldr     r3, [r4]
1848
 351:../libOLED/src/displayclass.cpp ****
1849
 1319                           .loc 1 351 12 view .LVU352
1850
 1320 0048 402A                 cmp     r2, #64
1851
 1321 004a 0CBF                 ite     eq
1852
 1322 004c 0721                 moveq   r1, #7
1853
 1323 004e 0321                 movne   r1, #3
1854
 351:../libOLED/src/displayclass.cpp ****
1855
 1324                           .loc 1 351 37 view .LVU353
1856
 1325 0050 DB68                 ldr     r3, [r3, #12]
1857
 351:../libOLED/src/displayclass.cpp ****
1858
 1326                           .loc 1 351 12 view .LVU354
1859
 1327 0052 2046                 mov     r0, r4
1860
 1328 0054 9847                 blx     r3
1861
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 32
1862
 
1863
 
1864
 1329                   .LVL120:
1865
 353:../libOLED/src/displayclass.cpp ****
1866
 1330                           .loc 1 353 3 is_stmt 1 view .LVU355
1867
 355:../libOLED/src/displayclass.cpp ****   for (row = 0; row < m_height / 8; row++)
1868
 1331                           .loc 1 355 3 view .LVU356
1869
 355:../libOLED/src/displayclass.cpp ****   for (row = 0; row < m_height / 8; row++)
1870
 1332                           .loc 1 355 31 is_stmt 0 view .LVU357
1871
 1333 0056 E368                 ldr     r3, [r4, #12]
1872
 1334 0058 842B                 cmp     r3, #132
1873
 1335                   .LVL121:
1874
 1336                           .loc 1 356 3 is_stmt 1 view .LVU358
1875
 357:../libOLED/src/displayclass.cpp ****   {
1876
 358:../libOLED/src/displayclass.cpp ****     oledSetCD(0);
1877
 359:../libOLED/src/displayclass.cpp ****     // set the cursor to
1878
 360:../libOLED/src/displayclass.cpp ****     oledWrite(0xB0 + row);        // set page address
1879
 361:../libOLED/src/displayclass.cpp ****     oledWrite(col & 0xf);         // set lower column address
1880
 1337                           .loc 1 361 14 is_stmt 0 view .LVU359
1881
 1338 005a 0CBF                 ite     eq
1882
 1339 005c 0227                 moveq   r7, #2
1883
 1340 005e 2F46                 movne   r7, r5
1884
 1341                   .LVL122:
1885
 1342                   .L52:
1886
 356:../libOLED/src/displayclass.cpp ****   {
1887
 1343                           .loc 1 356 21 is_stmt 1 discriminator 3 view .LVU360
1888
 356:../libOLED/src/displayclass.cpp ****   {
1889
 1344                           .loc 1 356 32 is_stmt 0 discriminator 3 view .LVU361
1890
 1345 0060 A368                 ldr     r3, [r4, #8]
1891
 1346 0062 002B                 cmp     r3, #0
1892
 1347 0064 B8BF                 it      lt
1893
 1348 0066 0733                 addlt   r3, r3, #7
1894
 356:../libOLED/src/displayclass.cpp ****   {
1895
 1349                           .loc 1 356 21 discriminator 3 view .LVU362
1896
 1350 0068 B5EBE30F             cmp     r5, r3, asr #3
1897
 1351 006c 25DA                 bge     .L47
1898
 358:../libOLED/src/displayclass.cpp ****     // set the cursor to
1899
 1352                           .loc 1 358 5 is_stmt 1 discriminator 2 view .LVU363
1900
 358:../libOLED/src/displayclass.cpp ****     // set the cursor to
1901
 1353                           .loc 1 358 16 is_stmt 0 discriminator 2 view .LVU364
1902
 1354 006e 2368                 ldr     r3, [r4]
1903
 358:../libOLED/src/displayclass.cpp ****     // set the cursor to
1904
 1355                           .loc 1 358 14 discriminator 2 view .LVU365
1905
 1356 0070 0021                 movs    r1, #0
1906
 1357 0072 2046                 mov     r0, r4
1907
 1358 0074 9B68                 ldr     r3, [r3, #8]
1908
 1359 0076 9847                 blx     r3
1909
 1360                   .LVL123:
1910
 360:../libOLED/src/displayclass.cpp ****     oledWrite(col & 0xf);         // set lower column address
1911
 1361                           .loc 1 360 5 is_stmt 1 discriminator 2 view .LVU366
1912
 360:../libOLED/src/displayclass.cpp ****     oledWrite(col & 0xf);         // set lower column address
1913
 1362                           .loc 1 360 25 is_stmt 0 discriminator 2 view .LVU367
1914
 1363 0078 2368                 ldr     r3, [r4]
1915
 360:../libOLED/src/displayclass.cpp ****     oledWrite(col & 0xf);         // set lower column address
1916
 1364                           .loc 1 360 14 discriminator 2 view .LVU368
1917
 1365 007a A5F15001             sub     r1, r5, #80
1918
 1366 007e 2046                 mov     r0, r4
1919
 1367 0080 DB68                 ldr     r3, [r3, #12]
1920
 1368 0082 C9B2                 uxtb    r1, r1
1921
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 33
1922
 
1923
 
1924
 1369 0084 9847                 blx     r3
1925
 1370                   .LVL124:
1926
 1371                           .loc 1 361 5 is_stmt 1 discriminator 2 view .LVU369
1927
 1372                           .loc 1 361 24 is_stmt 0 discriminator 2 view .LVU370
1928
 1373 0086 2368                 ldr     r3, [r4]
1929
 1374                           .loc 1 361 14 discriminator 2 view .LVU371
1930
 1375 0088 3946                 mov     r1, r7
1931
 1376 008a 2046                 mov     r0, r4
1932
 1377 008c DB68                 ldr     r3, [r3, #12]
1933
 1378 008e 9847                 blx     r3
1934
 1379                   .LVL125:
1935
 362:../libOLED/src/displayclass.cpp ****     oledWrite(0x10 | (col >> 4)); // set higher column address
1936
 1380                           .loc 1 362 5 is_stmt 1 discriminator 2 view .LVU372
1937
 1381                           .loc 1 362 32 is_stmt 0 discriminator 2 view .LVU373
1938
 1382 0090 2368                 ldr     r3, [r4]
1939
 1383                           .loc 1 362 14 discriminator 2 view .LVU374
1940
 1384 0092 1021                 movs    r1, #16
1941
 1385 0094 2046                 mov     r0, r4
1942
 1386 0096 DB68                 ldr     r3, [r3, #12]
1943
 1387 0098 9847                 blx     r3
1944
 1388                   .LVL126:
1945
 363:../libOLED/src/displayclass.cpp ****
1946
 364:../libOLED/src/displayclass.cpp ****     oledSetCD(1);
1947
 1389                           .loc 1 364 5 is_stmt 1 discriminator 2 view .LVU375
1948
 1390                           .loc 1 364 16 is_stmt 0 discriminator 2 view .LVU376
1949
 1391 009a 2368                 ldr     r3, [r4]
1950
 1392                           .loc 1 364 14 discriminator 2 view .LVU377
1951
 1393 009c 0121                 movs    r1, #1
1952
 1394 009e 2046                 mov     r0, r4
1953
 1395 00a0 9B68                 ldr     r3, [r3, #8]
1954
 1396 00a2 9847                 blx     r3
1955
 1397                   .LVL127:
1956
 365:../libOLED/src/displayclass.cpp ****     oledWrite(m_data + row * m_width, m_width);
1957
 1398                           .loc 1 365 5 is_stmt 1 discriminator 2 view .LVU378
1958
 1399                           .loc 1 365 30 is_stmt 0 discriminator 2 view .LVU379
1959
 1400 00a4 6368                 ldr     r3, [r4, #4]
1960
 1401                           .loc 1 365 46 discriminator 2 view .LVU380
1961
 1402 00a6 2268                 ldr     r2, [r4]
1962
 1403                           .loc 1 365 14 discriminator 2 view .LVU381
1963
 1404 00a8 216A                 ldr     r1, [r4, #32]
1964
 1405 00aa 5669                 ldr     r6, [r2, #20]
1965
 1406 00ac 05FB0311             mla     r1, r5, r3, r1
1966
 1407 00b0 2046                 mov     r0, r4
1967
 1408 00b2 DAB2                 uxtb    r2, r3
1968
 1409 00b4 B047                 blx     r6
1969
 1410                   .LVL128:
1970
 356:../libOLED/src/displayclass.cpp ****   {
1971
 1411                           .loc 1 356 3 is_stmt 1 discriminator 2 view .LVU382
1972
 1412 00b6 0135                 adds    r5, r5, #1
1973
 1413                   .LVL129:
1974
 356:../libOLED/src/displayclass.cpp ****   {
1975
 1414                           .loc 1 356 3 is_stmt 0 discriminator 2 view .LVU383
1976
 1415 00b8 D2E7                 b       .L52
1977
 1416                   .L47:
1978
 366:../libOLED/src/displayclass.cpp ****   }
1979
 367:../libOLED/src/displayclass.cpp **** }
1980
 1417                           .loc 1 367 1 view .LVU384
1981
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 34
1982
 
1983
 
1984
 1418 00ba F8BD                 pop     {r3, r4, r5, r6, r7, pc}
1985
 1419                           .loc 1 367 1 view .LVU385
1986
 1420                           .cfi_endproc
1987
 1421                   .LFE57:
1988
 1423                           .section        .text._ZN9display_t12clearDisplayE8colour_t,"ax",%progbits
1989
 1424                           .align  1
1990
 1425                           .global _ZN9display_t12clearDisplayE8colour_t
1991
 1426                           .syntax unified
1992
 1427                           .thumb
1993
 1428                           .thumb_func
1994
 1429                           .fpu softvfp
1995
 1431                   _ZN9display_t12clearDisplayE8colour_t:
1996
 1432                   .LVL130:
1997
 1433                   .LFB58:
1998
 368:../libOLED/src/displayclass.cpp ****
1999
 369:../libOLED/src/displayclass.cpp **** // clear everything
2000
 370:../libOLED/src/displayclass.cpp **** void display_t::clearDisplay(colour_t colour)
2001
 371:../libOLED/src/displayclass.cpp **** {
2002
 1434                           .loc 1 371 1 is_stmt 1 view -0
2003
 1435                           .cfi_startproc
2004
 1436                           @ args = 0, pretend = 0, frame = 0
2005
 1437                           @ frame_needed = 0, uses_anonymous_args = 0
2006
 1438                           @ link register save eliminated.
2007
 372:../libOLED/src/displayclass.cpp ****   switch (colour)
2008
 1439                           .loc 1 372 3 view .LVU387
2009
 1440                   .LBB29:
2010
 1441 0000 0229                 cmp     r1, #2
2011
 1442 0002 0AD8                 bhi     .L56
2012
 1443 0004 D0E90132             ldrd    r3, r2, [r0, #4]
2013
 1444 0008 51B1                 cbz     r1, .L66
2014
 1445                   .LBB30:
2015
 373:../libOLED/src/displayclass.cpp ****   {
2016
 374:../libOLED/src/displayclass.cpp ****   case WHITE:
2017
 1446                           .loc 1 374 3 view .LVU388
2018
 375:../libOLED/src/displayclass.cpp ****   case OVERLAY:
2019
 1447                           .loc 1 375 3 view .LVU389
2020
 376:../libOLED/src/displayclass.cpp ****     memset(m_data, 255, dataSize(m_width, m_height));
2021
 1448                           .loc 1 376 5 view .LVU390
2022
 1449                   .LVL131:
2023
 1450                   .LBB31:
2024
 1451                   .LBI31:
2025
 1452                           .file 2 "../libOLED/inc/libOLED/displayclass.H"
2026
   1:../libOLED/inc/libOLED/displayclass.H **** /*
2027
   2:../libOLED/inc/libOLED/displayclass.H ****  * displayclass.H
2028
   3:../libOLED/inc/libOLED/displayclass.H ****  *
2029
   4:../libOLED/inc/libOLED/displayclass.H ****  *  Created on: 31 Oct 2020
2030
   5:../libOLED/inc/libOLED/displayclass.H ****  *      Author: mike
2031
   6:../libOLED/inc/libOLED/displayclass.H ****  */
2032
   7:../libOLED/inc/libOLED/displayclass.H ****
2033
   8:../libOLED/inc/libOLED/displayclass.H **** #pragma once
2034
   9:../libOLED/inc/libOLED/displayclass.H **** #include <cstdint>
2035
  10:../libOLED/inc/libOLED/displayclass.H **** #include "libOLED/fontclass.H"
2036
  11:../libOLED/inc/libOLED/displayclass.H ****
2037
  12:../libOLED/inc/libOLED/displayclass.H **** inline int constexpr dataSize(int const width, int const height)
2038
 1453                           .loc 2 12 22 view .LVU391
2039
 1454                   .LBB32:
2040
  13:../libOLED/inc/libOLED/displayclass.H **** {
2041
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 35
2042
 
2043
 
2044
  14:../libOLED/inc/libOLED/displayclass.H ****   return (width * height / 8);
2045
 1455                           .loc 2 14 3 view .LVU392
2046
 1456                           .loc 2 14 3 is_stmt 0 view .LVU393
2047
 1457                   .LBE32:
2048
 1458                   .LBE31:
2049
 1459                           .loc 1 376 11 view .LVU394
2050
 1460 000a FF21                 movs    r1, #255
2051
 1461                   .LVL132:
2052
 1462                   .LBB34:
2053
 1463                   .LBB33:
2054
 1464                           .loc 2 14 29 view .LVU395
2055
 1465 000c 5A43                 muls    r2, r3, r2
2056
 1466 000e 48BF                 it      mi
2057
 1467 0010 0732                 addmi   r2, r2, #7
2058
 1468                   .LBE33:
2059
 1469                   .LBE34:
2060
 1470                           .loc 1 376 11 view .LVU396
2061
 1471 0012 D210                 asrs    r2, r2, #3
2062
 1472                   .L67:
2063
 377:../libOLED/src/displayclass.cpp ****     break;
2064
 378:../libOLED/src/displayclass.cpp ****   case BLACK:
2065
 379:../libOLED/src/displayclass.cpp ****     memset(m_data, 0, dataSize(m_width, m_height));
2066
 1473                           .loc 1 379 11 view .LVU397
2067
 1474 0014 006A                 ldr     r0, [r0, #32]
2068
 1475                   .LVL133:
2069
 1476                           .loc 1 379 11 view .LVU398
2070
 1477 0016 FFF7FEBF             b       memset
2071
 1478                   .LVL134:
2072
 1479                   .L56:
2073
 1480                           .loc 1 379 11 view .LVU399
2074
 1481                   .LBE30:
2075
 372:../libOLED/src/displayclass.cpp ****   {
2076
 1482                           .loc 1 372 3 view .LVU400
2077
 1483 001a 0329                 cmp     r1, #3
2078
 1484 001c 06D0                 beq     .L65
2079
 1485 001e 7047                 bx      lr
2080
 1486                   .L66:
2081
 1487                   .LBB40:
2082
 378:../libOLED/src/displayclass.cpp ****     memset(m_data, 0, dataSize(m_width, m_height));
2083
 1488                           .loc 1 378 3 is_stmt 1 view .LVU401
2084
 1489                           .loc 1 379 5 view .LVU402
2085
 1490                   .LVL135:
2086
 1491                   .LBB35:
2087
 1492                   .LBI35:
2088
  12:../libOLED/inc/libOLED/displayclass.H **** {
2089
 1493                           .loc 2 12 22 view .LVU403
2090
 1494                   .LBB36:
2091
 1495                           .loc 2 14 3 view .LVU404
2092
 1496                           .loc 2 14 29 is_stmt 0 view .LVU405
2093
 1497 0020 5A43                 muls    r2, r3, r2
2094
 1498 0022 48BF                 it      mi
2095
 1499 0024 0732                 addmi   r2, r2, #7
2096
 1500                   .LBE36:
2097
 1501                   .LBE35:
2098
 1502                           .loc 1 379 11 view .LVU406
2099
 1503 0026 0021                 movs    r1, #0
2100
 1504                   .LVL136:
2101
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 36
2102
 
2103
 
2104
 1505                           .loc 1 379 11 view .LVU407
2105
 1506 0028 D210                 asrs    r2, r2, #3
2106
 1507 002a F3E7                 b       .L67
2107
 1508                   .LVL137:
2108
 1509                   .L65:
2109
 1510                           .loc 1 379 11 view .LVU408
2110
 1511                   .LBE40:
2111
 372:../libOLED/src/displayclass.cpp ****   {
2112
 1512                           .loc 1 372 3 view .LVU409
2113
 1513 002c 0022                 movs    r2, #0
2114
 1514                   .LVL138:
2115
 1515                   .L59:
2116
 1516                   .LBB41:
2117
 1517                   .LBB37:
2118
 380:../libOLED/src/displayclass.cpp ****     break;
2119
 381:../libOLED/src/displayclass.cpp ****   case INVERT:
2120
 382:../libOLED/src/displayclass.cpp ****     for (int i = 0; i < dataSize(m_width, m_height); i++)
2121
 1518                           .loc 1 382 23 is_stmt 1 discriminator 3 view .LVU410
2122
 1519                   .LBB38:
2123
 1520                   .LBI38:
2124
  12:../libOLED/inc/libOLED/displayclass.H **** {
2125
 1521                           .loc 2 12 22 discriminator 3 view .LVU411
2126
 1522                   .LBB39:
2127
 1523                           .loc 2 14 3 discriminator 3 view .LVU412
2128
 1524                           .loc 2 14 17 is_stmt 0 discriminator 3 view .LVU413
2129
 1525 002e D0E90113             ldrd    r1, r3, [r0, #4]
2130
 1526                           .loc 2 14 29 discriminator 3 view .LVU414
2131
 1527 0032 4B43                 muls    r3, r1, r3
2132
 1528 0034 48BF                 it      mi
2133
 1529 0036 0733                 addmi   r3, r3, #7
2134
 1530                   .LBE39:
2135
 1531                   .LBE38:
2136
 1532                           .loc 1 382 23 discriminator 3 view .LVU415
2137
 1533 0038 B2EBE30F             cmp     r2, r3, asr #3
2138
 1534 003c 05DA                 bge     .L55
2139
 383:../libOLED/src/displayclass.cpp ****       m_data[i] ^= 255;
2140
 1535                           .loc 1 383 7 is_stmt 1 discriminator 2 view .LVU416
2141
 1536                           .loc 1 383 17 is_stmt 0 discriminator 2 view .LVU417
2142
 1537 003e 016A                 ldr     r1, [r0, #32]
2143
 1538 0040 8B5C                 ldrb    r3, [r1, r2]    @ zero_extendqisi2
2144
 1539 0042 DB43                 mvns    r3, r3
2145
 1540 0044 8B54                 strb    r3, [r1, r2]
2146
 382:../libOLED/src/displayclass.cpp ****       m_data[i] ^= 255;
2147
 1541                           .loc 1 382 5 is_stmt 1 discriminator 2 view .LVU418
2148
 1542 0046 0132                 adds    r2, r2, #1
2149
 1543                   .LVL139:
2150
 382:../libOLED/src/displayclass.cpp ****       m_data[i] ^= 255;
2151
 1544                           .loc 1 382 5 is_stmt 0 discriminator 2 view .LVU419
2152
 1545 0048 F1E7                 b       .L59
2153
 1546                   .L55:
2154
 382:../libOLED/src/displayclass.cpp ****       m_data[i] ^= 255;
2155
 1547                           .loc 1 382 5 discriminator 2 view .LVU420
2156
 1548                   .LBE37:
2157
 1549                   .LBE41:
2158
 1550                   .LBE29:
2159
 384:../libOLED/src/displayclass.cpp ****     break;
2160
 385:../libOLED/src/displayclass.cpp ****   }
2161
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 37
2162
 
2163
 
2164
 386:../libOLED/src/displayclass.cpp **** }
2165
 1551                           .loc 1 386 1 view .LVU421
2166
 1552 004a 7047                 bx      lr
2167
 1553                           .cfi_endproc
2168
 1554                   .LFE58:
2169
 1556                           .section        .text._ZN9display_t4initEv,"ax",%progbits
2170
 1557                           .align  1
2171
 1558                           .global _ZN9display_t4initEv
2172
 1559                           .syntax unified
2173
 1560                           .thumb
2174
 1561                           .thumb_func
2175
 1562                           .fpu softvfp
2176
 1564                   _ZN9display_t4initEv:
2177
 1565                   .LVL140:
2178
 1566                   .LFB45:
2179
 107:../libOLED/src/displayclass.cpp ****   uint8_t const vccstate = SSD1306_EXTERNALVCC;
2180
 1567                           .loc 1 107 1 is_stmt 1 view -0
2181
 1568                           .cfi_startproc
2182
 1569                           @ args = 0, pretend = 0, frame = 0
2183
 1570                           @ frame_needed = 0, uses_anonymous_args = 0
2184
 108:../libOLED/src/displayclass.cpp ****
2185
 1571                           .loc 1 108 3 view .LVU423
2186
 110:../libOLED/src/displayclass.cpp ****
2187
 1572                           .loc 1 110 3 view .LVU424
2188
 107:../libOLED/src/displayclass.cpp ****   uint8_t const vccstate = SSD1306_EXTERNALVCC;
2189
 1573                           .loc 1 107 1 is_stmt 0 view .LVU425
2190
 1574 0000 10B5                 push    {r4, lr}
2191
 1575                   .LCFI17:
2192
 1576                           .cfi_def_cfa_offset 8
2193
 1577                           .cfi_offset 4, -8
2194
 1578                           .cfi_offset 14, -4
2195
 107:../libOLED/src/displayclass.cpp ****   uint8_t const vccstate = SSD1306_EXTERNALVCC;
2196
 1579                           .loc 1 107 1 view .LVU426
2197
 1580 0002 0446                 mov     r4, r0
2198
 110:../libOLED/src/displayclass.cpp ****
2199
 1581                           .loc 1 110 14 view .LVU427
2200
 1582 0004 0368                 ldr     r3, [r0]
2201
 110:../libOLED/src/displayclass.cpp ****
2202
 1583                           .loc 1 110 12 view .LVU428
2203
 1584 0006 0021                 movs    r1, #0
2204
 1585 0008 9B68                 ldr     r3, [r3, #8]
2205
 1586 000a 9847                 blx     r3
2206
 1587                   .LVL141:
2207
 113:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETDISPLAYCLOCKDIV); // 0xD5
2208
 1588                           .loc 1 113 3 is_stmt 1 view .LVU429
2209
 113:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETDISPLAYCLOCKDIV); // 0xD5
2210
 1589                           .loc 1 113 31 is_stmt 0 view .LVU430
2211
 1590 000c 2368                 ldr     r3, [r4]
2212
 113:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETDISPLAYCLOCKDIV); // 0xD5
2213
 1591                           .loc 1 113 12 view .LVU431
2214
 1592 000e 2046                 mov     r0, r4
2215
 1593 0010 AE21                 movs    r1, #174
2216
 1594 0012 DB68                 ldr     r3, [r3, #12]
2217
 1595 0014 9847                 blx     r3
2218
 1596                   .LVL142:
2219
 114:../libOLED/src/displayclass.cpp ****   oledWrite(0x80);                       // the suggested ratio 0x80
2220
 1597                           .loc 1 114 3 is_stmt 1 view .LVU432
2221
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 38
2222
 
2223
 
2224
 114:../libOLED/src/displayclass.cpp ****   oledWrite(0x80);                       // the suggested ratio 0x80
2225
 1598                           .loc 1 114 39 is_stmt 0 view .LVU433
2226
 1599 0016 2368                 ldr     r3, [r4]
2227
 114:../libOLED/src/displayclass.cpp ****   oledWrite(0x80);                       // the suggested ratio 0x80
2228
 1600                           .loc 1 114 12 view .LVU434
2229
 1601 0018 2046                 mov     r0, r4
2230
 1602 001a D521                 movs    r1, #213
2231
 1603 001c DB68                 ldr     r3, [r3, #12]
2232
 1604 001e 9847                 blx     r3
2233
 1605                   .LVL143:
2234
 115:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETMULTIPLEX);       // 0xA8
2235
 1606                           .loc 1 115 3 is_stmt 1 view .LVU435
2236
 115:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETMULTIPLEX);       // 0xA8
2237
 1607                           .loc 1 115 17 is_stmt 0 view .LVU436
2238
 1608 0020 2368                 ldr     r3, [r4]
2239
 115:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETMULTIPLEX);       // 0xA8
2240
 1609                           .loc 1 115 12 view .LVU437
2241
 1610 0022 2046                 mov     r0, r4
2242
 1611 0024 8021                 movs    r1, #128
2243
 1612 0026 DB68                 ldr     r3, [r3, #12]
2244
 1613 0028 9847                 blx     r3
2245
 1614                   .LVL144:
2246
 116:../libOLED/src/displayclass.cpp ****   oledWrite(m_height - 1);
2247
 1615                           .loc 1 116 3 is_stmt 1 view .LVU438
2248
 116:../libOLED/src/displayclass.cpp ****   oledWrite(m_height - 1);
2249
 1616                           .loc 1 116 33 is_stmt 0 view .LVU439
2250
 1617 002a 2368                 ldr     r3, [r4]
2251
 116:../libOLED/src/displayclass.cpp ****   oledWrite(m_height - 1);
2252
 1618                           .loc 1 116 12 view .LVU440
2253
 1619 002c 2046                 mov     r0, r4
2254
 1620 002e A821                 movs    r1, #168
2255
 1621 0030 DB68                 ldr     r3, [r3, #12]
2256
 1622 0032 9847                 blx     r3
2257
 1623                   .LVL145:
2258
 117:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETDISPLAYOFFSET);   // 0xD3
2259
 1624                           .loc 1 117 3 is_stmt 1 view .LVU441
2260
 117:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETDISPLAYOFFSET);   // 0xD3
2261
 1625                           .loc 1 117 12 is_stmt 0 view .LVU442
2262
 1626 0034 A168                 ldr     r1, [r4, #8]
2263
 117:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETDISPLAYOFFSET);   // 0xD3
2264
 1627                           .loc 1 117 25 view .LVU443
2265
 1628 0036 2368                 ldr     r3, [r4]
2266
 117:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETDISPLAYOFFSET);   // 0xD3
2267
 1629                           .loc 1 117 12 view .LVU444
2268
 1630 0038 0139                 subs    r1, r1, #1
2269
 1631 003a 2046                 mov     r0, r4
2270
 1632 003c DB68                 ldr     r3, [r3, #12]
2271
 1633 003e C9B2                 uxtb    r1, r1
2272
 1634 0040 9847                 blx     r3
2273
 1635                   .LVL146:
2274
 118:../libOLED/src/displayclass.cpp ****   oledWrite(0x0);                        // no offset
2275
 1636                           .loc 1 118 3 is_stmt 1 view .LVU445
2276
 118:../libOLED/src/displayclass.cpp ****   oledWrite(0x0);                        // no offset
2277
 1637                           .loc 1 118 37 is_stmt 0 view .LVU446
2278
 1638 0042 2368                 ldr     r3, [r4]
2279
 118:../libOLED/src/displayclass.cpp ****   oledWrite(0x0);                        // no offset
2280
 1639                           .loc 1 118 12 view .LVU447
2281
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 39
2282
 
2283
 
2284
 1640 0044 2046                 mov     r0, r4
2285
 1641 0046 D321                 movs    r1, #211
2286
 1642 0048 DB68                 ldr     r3, [r3, #12]
2287
 1643 004a 9847                 blx     r3
2288
 1644                   .LVL147:
2289
 119:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETSTARTLINE | 0x0); // line #0
2290
 1645                           .loc 1 119 3 is_stmt 1 view .LVU448
2291
 119:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETSTARTLINE | 0x0); // line #0
2292
 1646                           .loc 1 119 16 is_stmt 0 view .LVU449
2293
 1647 004c 2368                 ldr     r3, [r4]
2294
 119:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETSTARTLINE | 0x0); // line #0
2295
 1648                           .loc 1 119 12 view .LVU450
2296
 1649 004e 2046                 mov     r0, r4
2297
 1650 0050 0021                 movs    r1, #0
2298
 1651 0052 DB68                 ldr     r3, [r3, #12]
2299
 1652 0054 9847                 blx     r3
2300
 1653                   .LVL148:
2301
 120:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_CHARGEPUMP);         // 0x8D
2302
 1654                           .loc 1 120 3 is_stmt 1 view .LVU451
2303
 120:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_CHARGEPUMP);         // 0x8D
2304
 1655                           .loc 1 120 39 is_stmt 0 view .LVU452
2305
 1656 0056 2368                 ldr     r3, [r4]
2306
 120:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_CHARGEPUMP);         // 0x8D
2307
 1657                           .loc 1 120 12 view .LVU453
2308
 1658 0058 2046                 mov     r0, r4
2309
 1659 005a 4021                 movs    r1, #64
2310
 1660 005c DB68                 ldr     r3, [r3, #12]
2311
 1661 005e 9847                 blx     r3
2312
 1662                   .LVL149:
2313
 121:../libOLED/src/displayclass.cpp ****   oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x10 : 0x14);
2314
 1663                           .loc 1 121 3 is_stmt 1 view .LVU454
2315
 121:../libOLED/src/displayclass.cpp ****   oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x10 : 0x14);
2316
 1664                           .loc 1 121 31 is_stmt 0 view .LVU455
2317
 1665 0060 2368                 ldr     r3, [r4]
2318
 121:../libOLED/src/displayclass.cpp ****   oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x10 : 0x14);
2319
 1666                           .loc 1 121 12 view .LVU456
2320
 1667 0062 2046                 mov     r0, r4
2321
 1668 0064 8D21                 movs    r1, #141
2322
 1669 0066 DB68                 ldr     r3, [r3, #12]
2323
 1670 0068 9847                 blx     r3
2324
 1671                   .LVL150:
2325
 122:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_MEMORYMODE); // 0x20
2326
 1672                           .loc 1 122 3 is_stmt 1 view .LVU457
2327
 122:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_MEMORYMODE); // 0x20
2328
 1673                           .loc 1 122 58 is_stmt 0 view .LVU458
2329
 1674 006a 2368                 ldr     r3, [r4]
2330
 122:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_MEMORYMODE); // 0x20
2331
 1675                           .loc 1 122 12 view .LVU459
2332
 1676 006c 2046                 mov     r0, r4
2333
 1677 006e 1021                 movs    r1, #16
2334
 1678 0070 DB68                 ldr     r3, [r3, #12]
2335
 1679 0072 9847                 blx     r3
2336
 1680                   .LVL151:
2337
 123:../libOLED/src/displayclass.cpp ****   oledWrite(0x00);               // 0x0 act like ks0108
2338
 1681                           .loc 1 123 3 is_stmt 1 view .LVU460
2339
 123:../libOLED/src/displayclass.cpp ****   oledWrite(0x00);               // 0x0 act like ks0108
2340
 1682                           .loc 1 123 31 is_stmt 0 view .LVU461
2341
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 40
2342
 
2343
 
2344
 1683 0074 2368                 ldr     r3, [r4]
2345
 123:../libOLED/src/displayclass.cpp ****   oledWrite(0x00);               // 0x0 act like ks0108
2346
 1684                           .loc 1 123 12 view .LVU462
2347
 1685 0076 2046                 mov     r0, r4
2348
 1686 0078 2021                 movs    r1, #32
2349
 1687 007a DB68                 ldr     r3, [r3, #12]
2350
 1688 007c 9847                 blx     r3
2351
 1689                   .LVL152:
2352
 124:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SEGREMAP | 0x1);
2353
 1690                           .loc 1 124 3 is_stmt 1 view .LVU463
2354
 124:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SEGREMAP | 0x1);
2355
 1691                           .loc 1 124 17 is_stmt 0 view .LVU464
2356
 1692 007e 2368                 ldr     r3, [r4]
2357
 124:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SEGREMAP | 0x1);
2358
 1693                           .loc 1 124 12 view .LVU465
2359
 1694 0080 2046                 mov     r0, r4
2360
 1695 0082 0021                 movs    r1, #0
2361
 1696 0084 DB68                 ldr     r3, [r3, #12]
2362
 1697 0086 9847                 blx     r3
2363
 1698                   .LVL153:
2364
 125:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_COMSCANDEC);
2365
 1699                           .loc 1 125 3 is_stmt 1 view .LVU466
2366
 125:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_COMSCANDEC);
2367
 1700                           .loc 1 125 35 is_stmt 0 view .LVU467
2368
 1701 0088 2368                 ldr     r3, [r4]
2369
 125:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_COMSCANDEC);
2370
 1702                           .loc 1 125 12 view .LVU468
2371
 1703 008a 2046                 mov     r0, r4
2372
 1704 008c A121                 movs    r1, #161
2373
 1705 008e DB68                 ldr     r3, [r3, #12]
2374
 1706 0090 9847                 blx     r3
2375
 1707                   .LVL154:
2376
 126:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCOMPINS); // 0xDA
2377
 1708                           .loc 1 126 3 is_stmt 1 view .LVU469
2378
 126:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCOMPINS); // 0xDA
2379
 1709                           .loc 1 126 31 is_stmt 0 view .LVU470
2380
 1710 0092 2368                 ldr     r3, [r4]
2381
 126:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCOMPINS); // 0xDA
2382
 1711                           .loc 1 126 12 view .LVU471
2383
 1712 0094 2046                 mov     r0, r4
2384
 1713 0096 C821                 movs    r1, #200
2385
 1714 0098 DB68                 ldr     r3, [r3, #12]
2386
 1715 009a 9847                 blx     r3
2387
 1716                   .LVL155:
2388
 127:../libOLED/src/displayclass.cpp ****   oledWrite(m_height == 32 ? 0x02 : 0x12);
2389
 1717                           .loc 1 127 3 is_stmt 1 view .LVU472
2390
 127:../libOLED/src/displayclass.cpp ****   oledWrite(m_height == 32 ? 0x02 : 0x12);
2391
 1718                           .loc 1 127 31 is_stmt 0 view .LVU473
2392
 1719 009c 2368                 ldr     r3, [r4]
2393
 127:../libOLED/src/displayclass.cpp ****   oledWrite(m_height == 32 ? 0x02 : 0x12);
2394
 1720                           .loc 1 127 12 view .LVU474
2395
 1721 009e DA21                 movs    r1, #218
2396
 1722 00a0 2046                 mov     r0, r4
2397
 1723 00a2 DB68                 ldr     r3, [r3, #12]
2398
 1724 00a4 9847                 blx     r3
2399
 1725                   .LVL156:
2400
 128:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCONTRAST); // 0x81
2401
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 41
2402
 
2403
 
2404
 1726                           .loc 1 128 3 is_stmt 1 view .LVU475
2405
 128:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCONTRAST); // 0x81
2406
 1727                           .loc 1 128 12 is_stmt 0 view .LVU476
2407
 1728 00a6 A268                 ldr     r2, [r4, #8]
2408
 128:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCONTRAST); // 0x81
2409
 1729                           .loc 1 128 41 view .LVU477
2410
 1730 00a8 2368                 ldr     r3, [r4]
2411
 128:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCONTRAST); // 0x81
2412
 1731                           .loc 1 128 12 view .LVU478
2413
 1732 00aa 202A                 cmp     r2, #32
2414
 1733 00ac 0CBF                 ite     eq
2415
 1734 00ae 0221                 moveq   r1, #2
2416
 1735 00b0 1221                 movne   r1, #18
2417
 1736 00b2 2046                 mov     r0, r4
2418
 128:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCONTRAST); // 0x81
2419
 1737                           .loc 1 128 41 view .LVU479
2420
 1738 00b4 DB68                 ldr     r3, [r3, #12]
2421
 128:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETCONTRAST); // 0x81
2422
 1739                           .loc 1 128 12 view .LVU480
2423
 1740 00b6 9847                 blx     r3
2424
 1741                   .LVL157:
2425
 129:../libOLED/src/displayclass.cpp ****   oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x9F : 0xCF);
2426
 1742                           .loc 1 129 3 is_stmt 1 view .LVU481
2427
 129:../libOLED/src/displayclass.cpp ****   oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x9F : 0xCF);
2428
 1743                           .loc 1 129 32 is_stmt 0 view .LVU482
2429
 1744 00b8 2368                 ldr     r3, [r4]
2430
 129:../libOLED/src/displayclass.cpp ****   oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x9F : 0xCF);
2431
 1745                           .loc 1 129 12 view .LVU483
2432
 1746 00ba 2046                 mov     r0, r4
2433
 1747 00bc 8121                 movs    r1, #129
2434
 1748 00be DB68                 ldr     r3, [r3, #12]
2435
 1749 00c0 9847                 blx     r3
2436
 1750                   .LVL158:
2437
 130:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETPRECHARGE); // 0xd9
2438
 1751                           .loc 1 130 3 is_stmt 1 view .LVU484
2439
 130:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETPRECHARGE); // 0xd9
2440
 1752                           .loc 1 130 58 is_stmt 0 view .LVU485
2441
 1753 00c2 2368                 ldr     r3, [r4]
2442
 130:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETPRECHARGE); // 0xd9
2443
 1754                           .loc 1 130 12 view .LVU486
2444
 1755 00c4 2046                 mov     r0, r4
2445
 1756 00c6 9F21                 movs    r1, #159
2446
 1757 00c8 DB68                 ldr     r3, [r3, #12]
2447
 1758 00ca 9847                 blx     r3
2448
 1759                   .LVL159:
2449
 131:../libOLED/src/displayclass.cpp ****   oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x22 : 0xF1);
2450
 1760                           .loc 1 131 3 is_stmt 1 view .LVU487
2451
 131:../libOLED/src/displayclass.cpp ****   oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x22 : 0xF1);
2452
 1761                           .loc 1 131 33 is_stmt 0 view .LVU488
2453
 1762 00cc 2368                 ldr     r3, [r4]
2454
 131:../libOLED/src/displayclass.cpp ****   oledWrite(vccstate == SSD1306_EXTERNALVCC ? 0x22 : 0xF1);
2455
 1763                           .loc 1 131 12 view .LVU489
2456
 1764 00ce 2046                 mov     r0, r4
2457
 1765 00d0 D921                 movs    r1, #217
2458
 1766 00d2 DB68                 ldr     r3, [r3, #12]
2459
 1767 00d4 9847                 blx     r3
2460
 1768                   .LVL160:
2461
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 42
2462
 
2463
 
2464
 132:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETVCOMDETECT); // 0xDB
2465
 1769                           .loc 1 132 3 is_stmt 1 view .LVU490
2466
 132:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETVCOMDETECT); // 0xDB
2467
 1770                           .loc 1 132 58 is_stmt 0 view .LVU491
2468
 1771 00d6 2368                 ldr     r3, [r4]
2469
 132:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_SETVCOMDETECT); // 0xDB
2470
 1772                           .loc 1 132 12 view .LVU492
2471
 1773 00d8 2046                 mov     r0, r4
2472
 1774 00da 2221                 movs    r1, #34
2473
 1775 00dc DB68                 ldr     r3, [r3, #12]
2474
 1776 00de 9847                 blx     r3
2475
 1777                   .LVL161:
2476
 133:../libOLED/src/displayclass.cpp ****   oledWrite(0x40);
2477
 1778                           .loc 1 133 3 is_stmt 1 view .LVU493
2478
 133:../libOLED/src/displayclass.cpp ****   oledWrite(0x40);
2479
 1779                           .loc 1 133 34 is_stmt 0 view .LVU494
2480
 1780 00e0 2368                 ldr     r3, [r4]
2481
 133:../libOLED/src/displayclass.cpp ****   oledWrite(0x40);
2482
 1781                           .loc 1 133 12 view .LVU495
2483
 1782 00e2 2046                 mov     r0, r4
2484
 1783 00e4 DB21                 movs    r1, #219
2485
 1784 00e6 DB68                 ldr     r3, [r3, #12]
2486
 1785 00e8 9847                 blx     r3
2487
 1786                   .LVL162:
2488
 134:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_DISPLAYALLON_RESUME); // 0xA4
2489
 1787                           .loc 1 134 3 is_stmt 1 view .LVU496
2490
 134:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_DISPLAYALLON_RESUME); // 0xA4
2491
 1788                           .loc 1 134 17 is_stmt 0 view .LVU497
2492
 1789 00ea 2368                 ldr     r3, [r4]
2493
 134:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_DISPLAYALLON_RESUME); // 0xA4
2494
 1790                           .loc 1 134 12 view .LVU498
2495
 1791 00ec 2046                 mov     r0, r4
2496
 1792 00ee 4021                 movs    r1, #64
2497
 1793 00f0 DB68                 ldr     r3, [r3, #12]
2498
 1794 00f2 9847                 blx     r3
2499
 1795                   .LVL163:
2500
 135:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_NORMALDISPLAY);       // 0xA6
2501
 1796                           .loc 1 135 3 is_stmt 1 view .LVU499
2502
 135:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_NORMALDISPLAY);       // 0xA6
2503
 1797                           .loc 1 135 40 is_stmt 0 view .LVU500
2504
 1798 00f4 2368                 ldr     r3, [r4]
2505
 135:../libOLED/src/displayclass.cpp ****   oledWrite(SSD1306_NORMALDISPLAY);       // 0xA6
2506
 1799                           .loc 1 135 12 view .LVU501
2507
 1800 00f6 2046                 mov     r0, r4
2508
 1801 00f8 A421                 movs    r1, #164
2509
 1802 00fa DB68                 ldr     r3, [r3, #12]
2510
 1803 00fc 9847                 blx     r3
2511
 1804                   .LVL164:
2512
 136:../libOLED/src/displayclass.cpp ****
2513
 1805                           .loc 1 136 3 is_stmt 1 view .LVU502
2514
 136:../libOLED/src/displayclass.cpp ****
2515
 1806                           .loc 1 136 34 is_stmt 0 view .LVU503
2516
 1807 00fe 2368                 ldr     r3, [r4]
2517
 136:../libOLED/src/displayclass.cpp ****
2518
 1808                           .loc 1 136 12 view .LVU504
2519
 1809 0100 2046                 mov     r0, r4
2520
 1810 0102 A621                 movs    r1, #166
2521
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 43
2522
 
2523
 
2524
 1811 0104 DB68                 ldr     r3, [r3, #12]
2525
 1812 0106 9847                 blx     r3
2526
 1813                   .LVL165:
2527
 138:../libOLED/src/displayclass.cpp ****
2528
 1814                           .loc 1 138 3 is_stmt 1 view .LVU505
2529
 138:../libOLED/src/displayclass.cpp ****
2530
 1815                           .loc 1 138 30 is_stmt 0 view .LVU506
2531
 1816 0108 2368                 ldr     r3, [r4]
2532
 138:../libOLED/src/displayclass.cpp ****
2533
 1817                           .loc 1 138 12 view .LVU507
2534
 1818 010a 2046                 mov     r0, r4
2535
 1819 010c AF21                 movs    r1, #175
2536
 1820 010e DB68                 ldr     r3, [r3, #12]
2537
 1821 0110 9847                 blx     r3
2538
 1822                   .LVL166:
2539
 140:../libOLED/src/displayclass.cpp **** }
2540
 1823                           .loc 1 140 3 is_stmt 1 view .LVU508
2541
 140:../libOLED/src/displayclass.cpp **** }
2542
 1824                           .loc 1 140 15 is_stmt 0 view .LVU509
2543
 1825 0112 2046                 mov     r0, r4
2544
 141:../libOLED/src/displayclass.cpp ****
2545
 1826                           .loc 1 141 1 view .LVU510
2546
 1827 0114 BDE81040             pop     {r4, lr}
2547
 1828                   .LCFI18:
2548
 1829                           .cfi_restore 14
2549
 1830                           .cfi_restore 4
2550
 1831                           .cfi_def_cfa_offset 0
2551
 1832                   .LVL167:
2552
 140:../libOLED/src/displayclass.cpp **** }
2553
 1833                           .loc 1 140 15 view .LVU511
2554
 1834 0118 0021                 movs    r1, #0
2555
 1835 011a FFF7FEBF             b       _ZN9display_t12clearDisplayE8colour_t
2556
 1836                   .LVL168:
2557
 140:../libOLED/src/displayclass.cpp **** }
2558
 1837                           .loc 1 140 15 view .LVU512
2559
 1838                           .cfi_endproc
2560
 1839                   .LFE45:
2561
 1841                           .section        .text._ZN9display_t13drawRectangleEssss8colour_t,"ax",%progbits
2562
 1842                           .align  1
2563
 1843                           .global _ZN9display_t13drawRectangleEssss8colour_t
2564
 1844                           .syntax unified
2565
 1845                           .thumb
2566
 1846                           .thumb_func
2567
 1847                           .fpu softvfp
2568
 1849                   _ZN9display_t13drawRectangleEssss8colour_t:
2569
 1850                   .LVL169:
2570
 1851                   .LFB59:
2571
 387:../libOLED/src/displayclass.cpp ****
2572
 388:../libOLED/src/displayclass.cpp **** void display_t::drawRectangle(int16_t x1, int16_t y1, int16_t x2, int16_t y2,
2573
 389:../libOLED/src/displayclass.cpp ****                               colour_t color)
2574
 390:../libOLED/src/displayclass.cpp **** {
2575
 1852                           .loc 1 390 1 is_stmt 1 view -0
2576
 1853                           .cfi_startproc
2577
 1854                           @ args = 8, pretend = 0, frame = 0
2578
 1855                           @ frame_needed = 0, uses_anonymous_args = 0
2579
 391:../libOLED/src/displayclass.cpp ****   for (int16_t x = x1; x <= x2; x++)
2580
 1856                           .loc 1 391 3 view .LVU514
2581
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 44
2582
 
2583
 
2584
 390:../libOLED/src/displayclass.cpp ****   for (int16_t x = x1; x <= x2; x++)
2585
 1857                           .loc 1 390 1 is_stmt 0 view .LVU515
2586
 1858 0000 2DE9F043             push    {r4, r5, r6, r7, r8, r9, lr}
2587
 1859                   .LCFI19:
2588
 1860                           .cfi_def_cfa_offset 28
2589
 1861                           .cfi_offset 4, -28
2590
 1862                           .cfi_offset 5, -24
2591
 1863                           .cfi_offset 6, -20
2592
 1864                           .cfi_offset 7, -16
2593
 1865                           .cfi_offset 8, -12
2594
 1866                           .cfi_offset 9, -8
2595
 1867                           .cfi_offset 14, -4
2596
 1868                   .LBB42:
2597
 1869                   .LBB43:
2598
 392:../libOLED/src/displayclass.cpp ****     for (int16_t y = y1; y < y2; y++)
2599
 393:../libOLED/src/displayclass.cpp ****     {
2600
 394:../libOLED/src/displayclass.cpp ****       switch (color)
2601
 395:../libOLED/src/displayclass.cpp ****       {
2602
 396:../libOLED/src/displayclass.cpp ****       case BLACK:
2603
 397:../libOLED/src/displayclass.cpp ****         m_data[x + (y / 8) * m_width] &= ~(1 << (y & 7));
2604
 1870                           .loc 1 397 46 view .LVU516
2605
 1871 0004 4FF0010E             mov     lr, #1
2606
 1872                   .LBE43:
2607
 1873                   .LBE42:
2608
 390:../libOLED/src/displayclass.cpp ****   for (int16_t x = x1; x <= x2; x++)
2609
 1874                           .loc 1 390 1 view .LVU517
2610
 1875 0008 BDF91CC0             ldrsh   ip, [sp, #28]
2611
 1876 000c 9DF82070             ldrb    r7, [sp, #32]   @ zero_extendqisi2
2612
 1877                   .LVL170:
2613
 1878                   .L80:
2614
 1879                   .LBB45:
2615
 391:../libOLED/src/displayclass.cpp ****     for (int16_t y = y1; y < y2; y++)
2616
 1880                           .loc 1 391 26 is_stmt 1 discriminator 1 view .LVU518
2617
 1881 0010 9942                 cmp     r1, r3
2618
 1882 0012 28DC                 bgt     .L71
2619
 1883                   .LBB44:
2620
 392:../libOLED/src/displayclass.cpp ****     for (int16_t y = y1; y < y2; y++)
2621
 1884                           .loc 1 392 18 is_stmt 0 view .LVU519
2622
 1885 0014 1446                 mov     r4, r2
2623
 1886                   .L79:
2624
 1887                   .LVL171:
2625
 392:../libOLED/src/displayclass.cpp ****     for (int16_t y = y1; y < y2; y++)
2626
 1888                           .loc 1 392 28 is_stmt 1 discriminator 1 view .LVU520
2627
 1889 0016 6445                 cmp     r4, ip
2628
 1890 0018 22DA                 bge     .L73
2629
 394:../libOLED/src/displayclass.cpp ****       {
2630
 1891                           .loc 1 394 7 view .LVU521
2631
 1892                           .loc 1 397 23 is_stmt 0 view .LVU522
2632
 1893 001a 2546                 mov     r5, r4
2633
 1894 001c 002C                 cmp     r4, #0
2634
 1895 001e B8BF                 it      lt
2635
 1896 0020 E51D                 addlt   r5, r4, #7
2636
 1897                           .loc 1 397 39 view .LVU523
2637
 1898 0022 45F3CF06             sbfx    r6, r5, #3, #16
2638
 1899 0026 4568                 ldr     r5, [r0, #4]
2639
 1900 0028 1FFA84F8             uxth    r8, r4
2640
 1901 002c 05FB0615             mla     r5, r5, r6, r1
2641
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 45
2642
 
2643
 
2644
 1902                           .loc 1 397 52 view .LVU524
2645
 1903 0030 04F00704             and     r4, r4, #7
2646
 1904                   .LVL172:
2647
 1905                           .loc 1 397 39 view .LVU525
2648
 1906 0034 066A                 ldr     r6, [r0, #32]
2649
 1907                           .loc 1 397 46 view .LVU526
2650
 1908 0036 0EFA04F4             lsl     r4, lr, r4
2651
 1909                           .loc 1 397 39 view .LVU527
2652
 1910 003a 16F90590             ldrsb   r9, [r6, r5]
2653
 1911 003e 64B2                 sxtb    r4, r4
2654
 394:../libOLED/src/displayclass.cpp ****       {
2655
 1912                           .loc 1 394 7 view .LVU528
2656
 1913 0040 27B1                 cbz     r7, .L75
2657
 1914 0042 032F                 cmp     r7, #3
2658
 1915 0044 09D0                 beq     .L76
2659
 398:../libOLED/src/displayclass.cpp ****         break;
2660
 399:../libOLED/src/displayclass.cpp ****
2661
 400:../libOLED/src/displayclass.cpp ****       default:
2662
 1916                           .loc 1 400 7 is_stmt 1 view .LVU529
2663
 401:../libOLED/src/displayclass.cpp ****       case WHITE:
2664
 1917                           .loc 1 401 7 view .LVU530
2665
 402:../libOLED/src/displayclass.cpp ****       case OVERLAY:
2666
 1918                           .loc 1 402 7 view .LVU531
2667
 403:../libOLED/src/displayclass.cpp ****         m_data[x + (y / 8) * m_width] |= (1 << (y & 7));
2668
 1919                           .loc 1 403 9 view .LVU532
2669
 1920                           .loc 1 403 39 is_stmt 0 view .LVU533
2670
 1921 0046 49EA0404             orr     r4, r9, r4
2671
 1922 004a 01E0                 b       .L82
2672
 1923                   .L75:
2673
 396:../libOLED/src/displayclass.cpp ****         m_data[x + (y / 8) * m_width] &= ~(1 << (y & 7));
2674
 1924                           .loc 1 396 7 is_stmt 1 view .LVU534
2675
 397:../libOLED/src/displayclass.cpp ****         break;
2676
 1925                           .loc 1 397 9 view .LVU535
2677
 397:../libOLED/src/displayclass.cpp ****         break;
2678
 1926                           .loc 1 397 39 is_stmt 0 view .LVU536
2679
 1927 004c 29EA0404             bic     r4, r9, r4
2680
 1928                   .L82:
2681
 404:../libOLED/src/displayclass.cpp ****         break;
2682
 405:../libOLED/src/displayclass.cpp ****
2683
 406:../libOLED/src/displayclass.cpp ****       case INVERT:
2684
 407:../libOLED/src/displayclass.cpp ****         m_data[x + (y / 8) * m_width] ^= (1 << (y & 7));
2685
 1929                           .loc 1 407 39 view .LVU537
2686
 1930 0050 7455                 strb    r4, [r6, r5]
2687
 408:../libOLED/src/displayclass.cpp ****         break;
2688
 1931                           .loc 1 408 9 is_stmt 1 view .LVU538
2689
 392:../libOLED/src/displayclass.cpp ****     {
2690
 1932                           .loc 1 392 5 view .LVU539
2691
 1933 0052 08F10104             add     r4, r8, #1
2692
 1934 0056 24B2                 sxth    r4, r4
2693
 1935                   .LVL173:
2694
 392:../libOLED/src/displayclass.cpp ****     {
2695
 1936                           .loc 1 392 5 is_stmt 0 view .LVU540
2696
 1937 0058 DDE7                 b       .L79
2697
 1938                   .LVL174:
2698
 1939                   .L76:
2699
 406:../libOLED/src/displayclass.cpp ****         m_data[x + (y / 8) * m_width] ^= (1 << (y & 7));
2700
 1940                           .loc 1 406 7 is_stmt 1 view .LVU541
2701
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 46
2702
 
2703
 
2704
 407:../libOLED/src/displayclass.cpp ****         break;
2705
 1941                           .loc 1 407 9 view .LVU542
2706
 407:../libOLED/src/displayclass.cpp ****         break;
2707
 1942                           .loc 1 407 39 is_stmt 0 view .LVU543
2708
 1943 005a 89EA0404             eor     r4, r9, r4
2709
 1944 005e F7E7                 b       .L82
2710
 1945                   .LVL175:
2711
 1946                   .L73:
2712
 407:../libOLED/src/displayclass.cpp ****         break;
2713
 1947                           .loc 1 407 39 view .LVU544
2714
 1948                   .LBE44:
2715
 391:../libOLED/src/displayclass.cpp ****     for (int16_t y = y1; y < y2; y++)
2716
 1949                           .loc 1 391 3 is_stmt 1 discriminator 2 view .LVU545
2717
 1950 0060 0131                 adds    r1, r1, #1
2718
 1951                   .LVL176:
2719
 391:../libOLED/src/displayclass.cpp ****     for (int16_t y = y1; y < y2; y++)
2720
 1952                           .loc 1 391 3 is_stmt 0 discriminator 2 view .LVU546
2721
 1953 0062 09B2                 sxth    r1, r1
2722
 1954                   .LVL177:
2723
 391:../libOLED/src/displayclass.cpp ****     for (int16_t y = y1; y < y2; y++)
2724
 1955                           .loc 1 391 3 discriminator 2 view .LVU547
2725
 1956 0064 D4E7                 b       .L80
2726
 1957                   .LVL178:
2727
 1958                   .L71:
2728
 391:../libOLED/src/displayclass.cpp ****     for (int16_t y = y1; y < y2; y++)
2729
 1959                           .loc 1 391 3 discriminator 2 view .LVU548
2730
 1960                   .LBE45:
2731
 409:../libOLED/src/displayclass.cpp ****       }
2732
 410:../libOLED/src/displayclass.cpp ****     }
2733
 411:../libOLED/src/displayclass.cpp **** }
2734
 1961                           .loc 1 411 1 view .LVU549
2735
 1962 0066 BDE8F083             pop     {r4, r5, r6, r7, r8, r9, pc}
2736
 1963                           .loc 1 411 1 view .LVU550
2737
 1964                           .cfi_endproc
2738
 1965                   .LFE59:
2739
 1967                           .section        .text._ZN9display_t8drawLineEssss8colour_ta,"ax",%progbits
2740
 1968                           .align  1
2741
 1969                           .global _ZN9display_t8drawLineEssss8colour_ta
2742
 1970                           .syntax unified
2743
 1971                           .thumb
2744
 1972                           .thumb_func
2745
 1973                           .fpu softvfp
2746
 1975                   _ZN9display_t8drawLineEssss8colour_ta:
2747
 1976                   .LVL179:
2748
 1977                   .LFB60:
2749
 412:../libOLED/src/displayclass.cpp ****
2750
 413:../libOLED/src/displayclass.cpp **** /* using Bresenham draw algorithm */
2751
 414:../libOLED/src/displayclass.cpp **** void display_t::drawLine(int16_t x1, int16_t y1, int16_t x2, int16_t y2,
2752
 415:../libOLED/src/displayclass.cpp ****                          colour_t colour, int8_t pattern)
2753
 416:../libOLED/src/displayclass.cpp **** {
2754
 1978                           .loc 1 416 1 is_stmt 1 view -0
2755
 1979                           .cfi_startproc
2756
 1980                           @ args = 12, pretend = 0, frame = 16
2757
 1981                           @ frame_needed = 0, uses_anonymous_args = 0
2758
 417:../libOLED/src/displayclass.cpp ****   int16_t x, y, dx, dy,  // deltas
2759
 1982                           .loc 1 417 3 view .LVU552
2760
 418:../libOLED/src/displayclass.cpp ****       dx2, dy2,          // scaled deltas
2761
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 47
2762
 
2763
 
2764
 419:../libOLED/src/displayclass.cpp ****       ix, iy,            // increase rate on the x and y axis
2765
 420:../libOLED/src/displayclass.cpp ****       err;               // the error term
2766
 421:../libOLED/src/displayclass.cpp ****   int8_t patt = pattern; // drawing pattern bit mask 1= solid 10= dots , 111000 equal dot/dash
2767
 1983                           .loc 1 421 3 view .LVU553
2768
 416:../libOLED/src/displayclass.cpp ****   int16_t x, y, dx, dy,  // deltas
2769
 1984                           .loc 1 416 1 is_stmt 0 view .LVU554
2770
 1985 0000 2DE9F04F             push    {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2771
 1986                   .LCFI20:
2772
 1987                           .cfi_def_cfa_offset 36
2773
 1988                           .cfi_offset 4, -36
2774
 1989                           .cfi_offset 5, -32
2775
 1990                           .cfi_offset 6, -28
2776
 1991                           .cfi_offset 7, -24
2777
 1992                           .cfi_offset 8, -20
2778
 1993                           .cfi_offset 9, -16
2779
 1994                           .cfi_offset 10, -12
2780
 1995                           .cfi_offset 11, -8
2781
 1996                           .cfi_offset 14, -4
2782
 1997 0004 85B0                 sub     sp, sp, #20
2783
 1998                   .LCFI21:
2784
 1999                           .cfi_def_cfa_offset 56
2785
 422:../libOLED/src/displayclass.cpp ****
2786
 423:../libOLED/src/displayclass.cpp ****   uint16_t i; // looping variable
2787
 424:../libOLED/src/displayclass.cpp ****
2788
 425:../libOLED/src/displayclass.cpp ****   setPixelMode(colour);
2789
 426:../libOLED/src/displayclass.cpp ****
2790
 427:../libOLED/src/displayclass.cpp ****   // identify the first pixel
2791
 428:../libOLED/src/displayclass.cpp ****   x = x1;
2792
 429:../libOLED/src/displayclass.cpp ****   y = y1;
2793
 430:../libOLED/src/displayclass.cpp ****
2794
 431:../libOLED/src/displayclass.cpp ****   // difference between starting and ending points
2795
 432:../libOLED/src/displayclass.cpp ****   dx = x2 - x1;
2796
 433:../libOLED/src/displayclass.cpp ****   dy = y2 - y1;
2797
 2000                           .loc 1 433 11 view .LVU555
2798
 2001 0006 BDF93850             ldrsh   r5, [sp, #56]
2799
 432:../libOLED/src/displayclass.cpp ****   dy = y2 - y1;
2800
 2002                           .loc 1 432 11 view .LVU556
2801
 2003 000a 5E1A                 subs    r6, r3, r1
2802
 2004                   .LBB46:
2803
 2005                   .LBB47:
2804
  15:../libOLED/inc/libOLED/displayclass.H **** }
2805
  16:../libOLED/inc/libOLED/displayclass.H ****
2806
  17:../libOLED/inc/libOLED/displayclass.H **** enum colour_t
2807
  18:../libOLED/inc/libOLED/displayclass.H **** {
2808
  19:../libOLED/inc/libOLED/displayclass.H ****   BLACK,   /* and 0, invert 0 */
2809
  20:../libOLED/inc/libOLED/displayclass.H ****   WHITE,   /* and 0, invert 1 */
2810
  21:../libOLED/inc/libOLED/displayclass.H ****   OVERLAY, /* and 1, invert 0 */
2811
  22:../libOLED/inc/libOLED/displayclass.H ****   INVERT,  /* and 1, invert 1 */
2812
  23:../libOLED/inc/libOLED/displayclass.H **** };
2813
  24:../libOLED/inc/libOLED/displayclass.H ****
2814
  25:../libOLED/inc/libOLED/displayclass.H **** class display_t
2815
  26:../libOLED/inc/libOLED/displayclass.H **** {
2816
  27:../libOLED/inc/libOLED/displayclass.H **** public:
2817
  28:../libOLED/inc/libOLED/displayclass.H ****   display_t(int const width, int const height, int const ramwidth,
2818
  29:../libOLED/inc/libOLED/displayclass.H ****             uint8_t *const data);
2819
  30:../libOLED/inc/libOLED/displayclass.H ****
2820
  31:../libOLED/inc/libOLED/displayclass.H ****   virtual ~display_t();
2821
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 48
2822
 
2823
 
2824
  32:../libOLED/inc/libOLED/displayclass.H ****
2825
  33:../libOLED/inc/libOLED/displayclass.H ****   /// \brief get the current rotation of the display : doesnt work too well. 
2826
  34:../libOLED/inc/libOLED/displayclass.H ****   uint8_t
2827
  35:../libOLED/inc/libOLED/displayclass.H ****   getRotation();
2828
  36:../libOLED/inc/libOLED/displayclass.H ****
2829
  37:../libOLED/inc/libOLED/displayclass.H ****   /// @brief  Get pixel width
2830
  38:../libOLED/inc/libOLED/displayclass.H ****   /// @return width
2831
  39:../libOLED/inc/libOLED/displayclass.H ****   int16_t
2832
  40:../libOLED/inc/libOLED/displayclass.H ****   width();
2833
  41:../libOLED/inc/libOLED/displayclass.H ****   /// @brief Get pixel height
2834
  42:../libOLED/inc/libOLED/displayclass.H ****   /// @return height
2835
  43:../libOLED/inc/libOLED/displayclass.H ****   int16_t
2836
  44:../libOLED/inc/libOLED/displayclass.H ****   height();
2837
  45:../libOLED/inc/libOLED/displayclass.H ****
2838
  46:../libOLED/inc/libOLED/displayclass.H ****   /// @brief common hardware reset, resets ALL displays
2839
  47:../libOLED/inc/libOLED/displayclass.H ****   void
2840
  48:../libOLED/inc/libOLED/displayclass.H ****   reset();
2841
  49:../libOLED/inc/libOLED/displayclass.H ****
2842
  50:../libOLED/inc/libOLED/displayclass.H ****   void
2843
  51:../libOLED/inc/libOLED/displayclass.H ****   init();
2844
  52:../libOLED/inc/libOLED/displayclass.H ****
2845
  53:../libOLED/inc/libOLED/displayclass.H ****   /// \brief Clear display to colour
2846
  54:../libOLED/inc/libOLED/displayclass.H ****   void
2847
  55:../libOLED/inc/libOLED/displayclass.H ****   clearDisplay(colour_t colour = colour_t::BLACK);
2848
  56:../libOLED/inc/libOLED/displayclass.H ****
2849
  57:../libOLED/inc/libOLED/displayclass.H ****   /// @brief Invert display
2850
  58:../libOLED/inc/libOLED/displayclass.H ****   /// @param i true : invert display
2851
  59:../libOLED/inc/libOLED/displayclass.H ****   void
2852
  60:../libOLED/inc/libOLED/displayclass.H ****   invertDisplay(uint8_t i);
2853
  61:../libOLED/inc/libOLED/displayclass.H ****
2854
  62:../libOLED/inc/libOLED/displayclass.H ****   /// @brief Show the workspace on the screen
2855
  63:../libOLED/inc/libOLED/displayclass.H ****   void
2856
  64:../libOLED/inc/libOLED/displayclass.H ****   display();
2857
  65:../libOLED/inc/libOLED/displayclass.H ****
2858
  66:../libOLED/inc/libOLED/displayclass.H ****   void
2859
  67:../libOLED/inc/libOLED/displayclass.H ****   startscrollright(uint8_t start, uint8_t stop);
2860
  68:../libOLED/inc/libOLED/displayclass.H ****   void
2861
  69:../libOLED/inc/libOLED/displayclass.H ****   startscrollleft(uint8_t start, uint8_t stop);
2862
  70:../libOLED/inc/libOLED/displayclass.H ****
2863
  71:../libOLED/inc/libOLED/displayclass.H ****   void
2864
  72:../libOLED/inc/libOLED/displayclass.H ****   startscrolldiagright(uint8_t start, uint8_t stop);
2865
  73:../libOLED/inc/libOLED/displayclass.H ****   void
2866
  74:../libOLED/inc/libOLED/displayclass.H ****   startscrolldiagleft(uint8_t start, uint8_t stop);
2867
  75:../libOLED/inc/libOLED/displayclass.H ****   void
2868
  76:../libOLED/inc/libOLED/displayclass.H ****   stopscroll(void);
2869
  77:../libOLED/inc/libOLED/displayclass.H ****
2870
  78:../libOLED/inc/libOLED/displayclass.H ****   /// @brief Set display contrast
2871
  79:../libOLED/inc/libOLED/displayclass.H ****   /// @param contrast 0..255 but theres really only two values worth bothering with, 0 and 255
2872
  80:../libOLED/inc/libOLED/displayclass.H ****   void
2873
  81:../libOLED/inc/libOLED/displayclass.H ****   dim(uint8_t contrast);
2874
  82:../libOLED/inc/libOLED/displayclass.H ****
2875
  83:../libOLED/inc/libOLED/displayclass.H ****   // set drawing mode
2876
  84:../libOLED/inc/libOLED/displayclass.H ****   void
2877
  85:../libOLED/inc/libOLED/displayclass.H ****   setPixelMode(colour_t colour)
2878
  86:../libOLED/inc/libOLED/displayclass.H ****   {
2879
  87:../libOLED/inc/libOLED/displayclass.H ****     m_colour = colour;
2880
 2006                           .loc 2 87 14 view .LVU557
2881
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 49
2882
 
2883
 
2884
 2007 000c 9DF83C40             ldrb    r4, [sp, #60]   @ zero_extendqisi2
2885
 2008                   .LBE47:
2886
 2009                   .LBE46:
2887
 432:../libOLED/src/displayclass.cpp ****   dy = y2 - y1;
2888
 2010                           .loc 1 432 6 view .LVU558
2889
 2011 0010 36B2                 sxth    r6, r6
2890
 2012                           .loc 1 433 11 view .LVU559
2891
 2013 0012 AD1A                 subs    r5, r5, r2
2892
 434:../libOLED/src/displayclass.cpp ****
2893
 435:../libOLED/src/displayclass.cpp ****   // calculate direction of the vector and store in ix and iy
2894
 436:../libOLED/src/displayclass.cpp ****   if (dx >= 0)
2895
 437:../libOLED/src/displayclass.cpp ****     ix = 1;
2896
 438:../libOLED/src/displayclass.cpp ****
2897
 439:../libOLED/src/displayclass.cpp ****   if (dx < 0)
2898
 2014                           .loc 1 439 3 view .LVU560
2899
 2015 0014 002E                 cmp     r6, #0
2900
 416:../libOLED/src/displayclass.cpp ****   int16_t x, y, dx, dy,  // deltas
2901
 2016                           .loc 1 416 1 view .LVU561
2902
 2017 0016 9DF94090             ldrsb   r9, [sp, #64]
2903
 2018                   .LVL180:
2904
 423:../libOLED/src/displayclass.cpp ****
2905
 2019                           .loc 1 423 3 is_stmt 1 view .LVU562
2906
 425:../libOLED/src/displayclass.cpp ****
2907
 2020                           .loc 1 425 3 view .LVU563
2908
 2021                   .LBB49:
2909
 2022                   .LBI46:
2910
  85:../libOLED/inc/libOLED/displayclass.H ****   {
2911
 2023                           .loc 2 85 3 view .LVU564
2912
 2024                   .LBB48:
2913
 2025                           .loc 2 87 5 view .LVU565
2914
 2026                           .loc 2 87 14 is_stmt 0 view .LVU566
2915
 2027 001a 0477                 strb    r4, [r0, #28]
2916
 2028                   .LVL181:
2917
 2029                           .loc 2 87 14 view .LVU567
2918
 2030                   .LBE48:
2919
 2031                   .LBE49:
2920
 428:../libOLED/src/displayclass.cpp ****   y = y1;
2921
 2032                           .loc 1 428 3 is_stmt 1 view .LVU568
2922
 429:../libOLED/src/displayclass.cpp ****
2923
 2033                           .loc 1 429 3 view .LVU569
2924
 432:../libOLED/src/displayclass.cpp ****   dy = y2 - y1;
2925
 2034                           .loc 1 432 3 view .LVU570
2926
 433:../libOLED/src/displayclass.cpp ****
2927
 2035                           .loc 1 433 3 view .LVU571
2928
 433:../libOLED/src/displayclass.cpp ****
2929
 2036                           .loc 1 433 6 is_stmt 0 view .LVU572
2930
 2037 001c 2DB2                 sxth    r5, r5
2931
 2038                   .LVL182:
2932
 436:../libOLED/src/displayclass.cpp ****     ix = 1;
2933
 2039                           .loc 1 436 3 is_stmt 1 view .LVU573
2934
 2040                           .loc 1 439 3 view .LVU574
2935
 2041 001e 3FDA                 bge     .L96
2936
 440:../libOLED/src/displayclass.cpp ****   {
2937
 441:../libOLED/src/displayclass.cpp ****     ix = -1;
2938
 2042                           .loc 1 441 5 view .LVU575
2939
 2043                   .LVL183:
2940
 442:../libOLED/src/displayclass.cpp ****     dx = abs(dx);
2941
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 50
2942
 
2943
 
2944
 2044                           .loc 1 442 5 view .LVU576
2945
 2045                   .LBB50:
2946
 2046                   .LBI50:
2947
  70:../libOLED/src/displayclass.cpp ****   {
2948
 2047                           .loc 1 70 5 view .LVU577
2949
 2048                   .LBE50:
2950
 441:../libOLED/src/displayclass.cpp ****     dx = abs(dx);
2951
 2049                           .loc 1 441 8 is_stmt 0 view .LVU578
2952
 2050 0020 4FF0FF3A             mov     r10, #-1
2953
 2051                   .LBB52:
2954
 2052                   .LBB51:
2955
  72:../libOLED/src/displayclass.cpp ****   }
2956
 2053                           .loc 1 72 18 view .LVU579
2957
 2054 0024 002E                 cmp     r6, #0
2958
 2055 0026 B8BF                 it      lt
2959
 2056 0028 7642                 rsblt   r6, r6, #0
2960
 2057                   .LVL184:
2961
  72:../libOLED/src/displayclass.cpp ****   }
2962
 2058                           .loc 1 72 25 view .LVU580
2963
 2059 002a 36B2                 sxth    r6, r6
2964
 2060                   .LVL185:
2965
 2061                   .L84:
2966
  72:../libOLED/src/displayclass.cpp ****   }
2967
 2062                           .loc 1 72 25 view .LVU581
2968
 2063                   .LBE51:
2969
 2064                   .LBE52:
2970
 443:../libOLED/src/displayclass.cpp ****   }
2971
 444:../libOLED/src/displayclass.cpp ****
2972
 445:../libOLED/src/displayclass.cpp ****   if (dy >= 0)
2973
 2065                           .loc 1 445 3 is_stmt 1 view .LVU582
2974
 446:../libOLED/src/displayclass.cpp ****     iy = 1;
2975
 447:../libOLED/src/displayclass.cpp ****
2976
 448:../libOLED/src/displayclass.cpp ****   if (dy < 0)
2977
 2066                           .loc 1 448 3 view .LVU583
2978
 2067 002c 002D                 cmp     r5, #0
2979
 2068 002e 3ADA                 bge     .L97
2980
 449:../libOLED/src/displayclass.cpp ****   {
2981
 450:../libOLED/src/displayclass.cpp ****     iy = -1;
2982
 2069                           .loc 1 450 5 view .LVU584
2983
 2070                   .LVL186:
2984
 451:../libOLED/src/displayclass.cpp ****     dy = abs(dy);
2985
 2071                           .loc 1 451 5 view .LVU585
2986
 2072                   .LBB53:
2987
 2073                   .LBI53:
2988
  70:../libOLED/src/displayclass.cpp ****   {
2989
 2074                           .loc 1 70 5 view .LVU586
2990
 2075                   .LBE53:
2991
 450:../libOLED/src/displayclass.cpp ****     dy = abs(dy);
2992
 2076                           .loc 1 450 8 is_stmt 0 view .LVU587
2993
 2077 0030 4FF0FF33             mov     r3, #-1
2994
 2078                   .LVL187:
2995
 2079                   .LBB55:
2996
 2080                   .LBB54:
2997
  72:../libOLED/src/displayclass.cpp ****   }
2998
 2081                           .loc 1 72 18 view .LVU588
2999
 2082 0034 002D                 cmp     r5, #0
3000
 2083 0036 B8BF                 it      lt
3001
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 51
3002
 
3003
 
3004
 2084 0038 6D42                 rsblt   r5, r5, #0
3005
 2085                   .LVL188:
3006
  72:../libOLED/src/displayclass.cpp ****   }
3007
 2086                           .loc 1 72 25 view .LVU589
3008
 2087 003a 2DB2                 sxth    r5, r5
3009
 2088                   .LVL189:
3010
 2089                   .L106:
3011
  72:../libOLED/src/displayclass.cpp ****   }
3012
 2090                           .loc 1 72 25 view .LVU590
3013
 2091                   .LBE54:
3014
 2092                   .LBE55:
3015
 2093 003c 0093                 str     r3, [sp]
3016
 2094                   .LVL190:
3017
 452:../libOLED/src/displayclass.cpp ****   }
3018
 453:../libOLED/src/displayclass.cpp ****
3019
 454:../libOLED/src/displayclass.cpp ****   // scale deltas and store in dx2 and dy2
3020
 455:../libOLED/src/displayclass.cpp ****   dx2 = dx * 2;
3021
 2095                           .loc 1 455 3 is_stmt 1 view .LVU591
3022
 2096                           .loc 1 455 12 is_stmt 0 view .LVU592
3023
 2097 003e B4B2                 uxth    r4, r6
3024
 456:../libOLED/src/displayclass.cpp ****   dy2 = dy * 2;
3025
 2098                           .loc 1 456 12 view .LVU593
3026
 2099 0040 ABB2                 uxth    r3, r5
3027
 455:../libOLED/src/displayclass.cpp ****   dy2 = dy * 2;
3028
 2100                           .loc 1 455 12 view .LVU594
3029
 2101 0042 6700                 lsls    r7, r4, #1
3030
 2102                           .loc 1 456 12 view .LVU595
3031
 2103 0044 4FEA4308             lsl     r8, r3, #1
3032
 457:../libOLED/src/displayclass.cpp ****
3033
 458:../libOLED/src/displayclass.cpp ****   // all  variables are set and it's time to enter the main loop.
3034
 459:../libOLED/src/displayclass.cpp ****
3035
 460:../libOLED/src/displayclass.cpp ****   if (dx > dy) // dx is the major axis
3036
 2104                           .loc 1 460 3 view .LVU596
3037
 2105 0048 AE42                 cmp     r6, r5
3038
 455:../libOLED/src/displayclass.cpp ****   dy2 = dy * 2;
3039
 2106                           .loc 1 455 12 view .LVU597
3040
 2107 004a BFB2                 uxth    r7, r7
3041
 2108                   .LVL191:
3042
 456:../libOLED/src/displayclass.cpp ****
3043
 2109                           .loc 1 456 3 is_stmt 1 view .LVU598
3044
 456:../libOLED/src/displayclass.cpp ****
3045
 2110                           .loc 1 456 12 is_stmt 0 view .LVU599
3046
 2111 004c 1FFA88F8             uxth    r8, r8
3047
 2112                   .LVL192:
3048
 2113                           .loc 1 460 3 is_stmt 1 view .LVU600
3049
 2114 0050 2BDD                 ble     .L86
3050
 461:../libOLED/src/displayclass.cpp ****   {
3051
 462:../libOLED/src/displayclass.cpp ****     // initialize the error term
3052
 463:../libOLED/src/displayclass.cpp ****     err = dy2 - dx;
3053
 2115                           .loc 1 463 5 view .LVU601
3054
 421:../libOLED/src/displayclass.cpp ****
3055
 2116                           .loc 1 421 10 is_stmt 0 view .LVU602
3056
 2117 0052 4D46                 mov     r5, r9
3057
 2118                   .LVL193:
3058
 2119                           .loc 1 463 9 view .LVU603
3059
 2120 0054 4FF0000B             mov     fp, #0
3060
 2121                           .loc 1 463 15 view .LVU604
3061
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 52
3062
 
3063
 
3064
 2122 0058 A8EB0404             sub     r4, r8, r4
3065
 2123                           .loc 1 463 9 view .LVU605
3066
 2124 005c 24B2                 sxth    r4, r4
3067
 2125                   .LVL194:
3068
 464:../libOLED/src/displayclass.cpp ****
3069
 465:../libOLED/src/displayclass.cpp ****     for (i = 0; i <= dx; i++)
3070
 2126                           .loc 1 465 5 is_stmt 1 view .LVU606
3071
 2127                   .L91:
3072
 2128                           .loc 1 465 19 discriminator 1 view .LVU607
3073
 2129                           .loc 1 465 17 is_stmt 0 discriminator 1 view .LVU608
3074
 2130 005e 1FFA8BF3             uxth    r3, fp
3075
 2131                           .loc 1 465 19 discriminator 1 view .LVU609
3076
 2132 0062 B342                 cmp     r3, r6
3077
 2133 0064 4ADC                 bgt     .L83
3078
 466:../libOLED/src/displayclass.cpp ****     {
3079
 467:../libOLED/src/displayclass.cpp ****       // draw pattern based on using pattern as a sequential bit mask.
3080
 468:../libOLED/src/displayclass.cpp ****       if (patt & 1)
3081
 2134                           .loc 1 468 7 is_stmt 1 view .LVU610
3082
 2135 0066 EB07                 lsls    r3, r5, #31
3083
 2136 0068 08D5                 bpl     .L88
3084
 469:../libOLED/src/displayclass.cpp ****         drawPixel(x, y, 1);
3085
 2137                           .loc 1 469 9 view .LVU611
3086
 2138                           .loc 1 469 18 is_stmt 0 view .LVU612
3087
 2139 006a 0123                 movs    r3, #1
3088
 2140 006c CDE90212             strd    r1, r2, [sp, #8]
3089
 2141 0070 0190                 str     r0, [sp, #4]
3090
 2142 0072 FFF7FEFF             bl      _ZN9display_t9drawPixelEssb
3091
 2143                   .LVL195:
3092
 2144                           .loc 1 469 18 view .LVU613
3093
 2145 0076 DDE90212             ldrd    r1, r2, [sp, #8]
3094
 2146 007a 0198                 ldr     r0, [sp, #4]
3095
 2147                   .L88:
3096
 470:../libOLED/src/displayclass.cpp ****       patt = (patt <= 1) ? pattern : patt >> 1;
3097
 2148                           .loc 1 470 7 is_stmt 1 view .LVU614
3098
 2149                           .loc 1 470 12 is_stmt 0 view .LVU615
3099
 2150 007c 012D                 cmp     r5, #1
3100
 2151 007e D4BF                 ite     le
3101
 2152 0080 4D46                 movle   r5, r9
3102
 2153                   .LVL196:
3103
 2154                           .loc 1 470 12 view .LVU616
3104
 2155 0082 6D10                 asrgt   r5, r5, #1
3105
 2156                   .LVL197:
3106
 471:../libOLED/src/displayclass.cpp ****
3107
 472:../libOLED/src/displayclass.cpp ****       if (err >= 0)
3108
 2157                           .loc 1 472 7 is_stmt 1 view .LVU617
3109
 2158 0084 002C                 cmp     r4, #0
3110
 2159 0086 04DB                 blt     .L90
3111
 473:../libOLED/src/displayclass.cpp ****       {
3112
 474:../libOLED/src/displayclass.cpp ****         err -= dx2;
3113
 2160                           .loc 1 474 9 view .LVU618
3114
 475:../libOLED/src/displayclass.cpp ****         y += iy;
3115
 2161                           .loc 1 475 11 is_stmt 0 view .LVU619
3116
 2162 0088 009B                 ldr     r3, [sp]
3117
 474:../libOLED/src/displayclass.cpp ****         y += iy;
3118
 2163                           .loc 1 474 13 view .LVU620
3119
 2164 008a E41B                 subs    r4, r4, r7
3120
 2165                   .LVL198:
3121
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 53
3122
 
3123
 
3124
 2166                           .loc 1 475 11 view .LVU621
3125
 2167 008c 1A44                 add     r2, r2, r3
3126
 474:../libOLED/src/displayclass.cpp ****         y += iy;
3127
 2168                           .loc 1 474 13 view .LVU622
3128
 2169 008e 24B2                 sxth    r4, r4
3129
 2170                   .LVL199:
3130
 2171                           .loc 1 475 9 is_stmt 1 view .LVU623
3131
 2172                           .loc 1 475 11 is_stmt 0 view .LVU624
3132
 2173 0090 12B2                 sxth    r2, r2
3133
 2174                   .LVL200:
3134
 2175                   .L90:
3135
 476:../libOLED/src/displayclass.cpp ****       }
3136
 477:../libOLED/src/displayclass.cpp ****       err += dy2;
3137
 2176                           .loc 1 477 7 is_stmt 1 discriminator 2 view .LVU625
3138
 2177                           .loc 1 477 11 is_stmt 0 discriminator 2 view .LVU626
3139
 2178 0092 4444                 add     r4, r4, r8
3140
 2179                   .LVL201:
3141
 2180                           .loc 1 477 11 discriminator 2 view .LVU627
3142
 2181 0094 5144                 add     r1, r1, r10
3143
 2182 0096 24B2                 sxth    r4, r4
3144
 2183                   .LVL202:
3145
 478:../libOLED/src/displayclass.cpp ****       x += ix;
3146
 2184                           .loc 1 478 7 is_stmt 1 discriminator 2 view .LVU628
3147
 2185 0098 09B2                 sxth    r1, r1
3148
 2186                   .LVL203:
3149
 465:../libOLED/src/displayclass.cpp ****     {
3150
 2187                           .loc 1 465 5 discriminator 2 view .LVU629
3151
 465:../libOLED/src/displayclass.cpp ****     {
3152
 2188                           .loc 1 465 5 is_stmt 0 discriminator 2 view .LVU630
3153
 2189 009a 0BF1010B             add     fp, fp, #1
3154
 2190                   .LVL204:
3155
 465:../libOLED/src/displayclass.cpp ****     {
3156
 2191                           .loc 1 465 5 discriminator 2 view .LVU631
3157
 2192 009e DEE7                 b       .L91
3158
 2193                   .LVL205:
3159
 2194                   .L96:
3160
 465:../libOLED/src/displayclass.cpp ****     {
3161
 2195                           .loc 1 465 5 discriminator 2 view .LVU632
3162
 2196 00a0 4FF0010A             mov     r10, #1
3163
 2197 00a4 C2E7                 b       .L84
3164
 2198                   .LVL206:
3165
 2199                   .L97:
3166
 465:../libOLED/src/displayclass.cpp ****     {
3167
 2200                           .loc 1 465 5 discriminator 2 view .LVU633
3168
 2201 00a6 0123                 movs    r3, #1
3169
 2202                   .LVL207:
3170
 465:../libOLED/src/displayclass.cpp ****     {
3171
 2203                           .loc 1 465 5 discriminator 2 view .LVU634
3172
 2204 00a8 C8E7                 b       .L106
3173
 2205                   .LVL208:
3174
 2206                   .L86:
3175
 479:../libOLED/src/displayclass.cpp ****     }
3176
 480:../libOLED/src/displayclass.cpp ****   }
3177
 481:../libOLED/src/displayclass.cpp ****
3178
 482:../libOLED/src/displayclass.cpp ****   else // dy is the major axis
3179
 483:../libOLED/src/displayclass.cpp ****   {
3180
 484:../libOLED/src/displayclass.cpp ****     // initialize the error term
3181
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 54
3182
 
3183
 
3184
 485:../libOLED/src/displayclass.cpp ****     err = dx2 - dy;
3185
 2207                           .loc 1 485 5 is_stmt 1 view .LVU635
3186
 421:../libOLED/src/displayclass.cpp ****
3187
 2208                           .loc 1 421 10 is_stmt 0 view .LVU636
3188
 2209 00aa 4E46                 mov     r6, r9
3189
 2210                   .LVL209:
3190
 2211                           .loc 1 485 9 view .LVU637
3191
 2212 00ac 4FF0000B             mov     fp, #0
3192
 2213                           .loc 1 485 15 view .LVU638
3193
 2214 00b0 FC1A                 subs    r4, r7, r3
3194
 2215                   .LVL210:
3195
 2216                           .loc 1 485 9 view .LVU639
3196
 2217 00b2 24B2                 sxth    r4, r4
3197
 2218                   .LVL211:
3198
 486:../libOLED/src/displayclass.cpp ****
3199
 487:../libOLED/src/displayclass.cpp ****     for (i = 0; i <= dy; i++)
3200
 2219                           .loc 1 487 5 is_stmt 1 view .LVU640
3201
 2220                   .L95:
3202
 2221                           .loc 1 487 19 discriminator 1 view .LVU641
3203
 2222                           .loc 1 487 17 is_stmt 0 discriminator 1 view .LVU642
3204
 2223 00b4 1FFA8BF3             uxth    r3, fp
3205
 2224                           .loc 1 487 19 discriminator 1 view .LVU643
3206
 2225 00b8 AB42                 cmp     r3, r5
3207
 2226 00ba 1FDC                 bgt     .L83
3208
 488:../libOLED/src/displayclass.cpp ****     {
3209
 489:../libOLED/src/displayclass.cpp ****       // draw pattern based on using pattern as a sequential bit mask.
3210
 490:../libOLED/src/displayclass.cpp ****       if (patt & 1)
3211
 2227                           .loc 1 490 7 is_stmt 1 view .LVU644
3212
 2228 00bc F307                 lsls    r3, r6, #31
3213
 2229 00be 08D5                 bpl     .L92
3214
 491:../libOLED/src/displayclass.cpp ****         drawPixel(x, y, 1);
3215
 2230                           .loc 1 491 9 view .LVU645
3216
 2231                           .loc 1 491 18 is_stmt 0 view .LVU646
3217
 2232 00c0 0123                 movs    r3, #1
3218
 2233 00c2 CDE90212             strd    r1, r2, [sp, #8]
3219
 2234 00c6 0190                 str     r0, [sp, #4]
3220
 2235 00c8 FFF7FEFF             bl      _ZN9display_t9drawPixelEssb
3221
 2236                   .LVL212:
3222
 2237                           .loc 1 491 18 view .LVU647
3223
 2238 00cc DDE90212             ldrd    r1, r2, [sp, #8]
3224
 2239 00d0 0198                 ldr     r0, [sp, #4]
3225
 2240                   .L92:
3226
 492:../libOLED/src/displayclass.cpp ****       patt = (patt <= 1) ? pattern : patt >> 1;
3227
 2241                           .loc 1 492 7 is_stmt 1 view .LVU648
3228
 2242                           .loc 1 492 12 is_stmt 0 view .LVU649
3229
 2243 00d2 012E                 cmp     r6, #1
3230
 2244 00d4 D4BF                 ite     le
3231
 2245 00d6 4E46                 movle   r6, r9
3232
 2246                   .LVL213:
3233
 2247                           .loc 1 492 12 view .LVU650
3234
 2248 00d8 7610                 asrgt   r6, r6, #1
3235
 2249                   .LVL214:
3236
 493:../libOLED/src/displayclass.cpp ****       if (err >= 0)
3237
 2250                           .loc 1 493 7 is_stmt 1 view .LVU651
3238
 2251 00da 002C                 cmp     r4, #0
3239
 494:../libOLED/src/displayclass.cpp ****       {
3240
 495:../libOLED/src/displayclass.cpp ****         err -= dy2;
3241
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 55
3242
 
3243
 
3244
 2252                           .loc 1 495 9 view .LVU652
3245
 2253                           .loc 1 495 13 is_stmt 0 view .LVU653
3246
 2254 00dc A8BF                 it      ge
3247
 2255 00de A4EB0804             subge   r4, r4, r8
3248
 2256                   .LVL215:
3249
 2257                           .loc 1 495 13 view .LVU654
3250
 2258 00e2 009B                 ldr     r3, [sp]
3251
 2259 00e4 A4BF                 itt     ge
3252
 2260 00e6 24B2                 sxthge  r4, r4
3253
 2261                   .LVL216:
3254
 496:../libOLED/src/displayclass.cpp ****         x += ix;
3255
 2262                           .loc 1 496 9 is_stmt 1 view .LVU655
3256
 2263                           .loc 1 496 11 is_stmt 0 view .LVU656
3257
 2264 00e8 5144                 addge   r1, r1, r10
3258
 497:../libOLED/src/displayclass.cpp ****       }
3259
 498:../libOLED/src/displayclass.cpp ****       err += dx2;
3260
 2265                           .loc 1 498 11 view .LVU657
3261
 2266 00ea 3C44                 add     r4, r4, r7
3262
 2267                   .LVL217:
3263
 2268                           .loc 1 498 11 view .LVU658
3264
 2269 00ec 1A44                 add     r2, r2, r3
3265
 496:../libOLED/src/displayclass.cpp ****         x += ix;
3266
 2270                           .loc 1 496 11 view .LVU659
3267
 2271 00ee A8BF                 it      ge
3268
 2272 00f0 09B2                 sxthge  r1, r1
3269
 2273                   .LVL218:
3270
 2274                           .loc 1 498 7 is_stmt 1 view .LVU660
3271
 2275                           .loc 1 498 11 is_stmt 0 view .LVU661
3272
 2276 00f2 24B2                 sxth    r4, r4
3273
 2277                   .LVL219:
3274
 499:../libOLED/src/displayclass.cpp ****       y += iy;
3275
 2278                           .loc 1 499 7 is_stmt 1 view .LVU662
3276
 2279 00f4 12B2                 sxth    r2, r2
3277
 2280                   .LVL220:
3278
 487:../libOLED/src/displayclass.cpp ****     {
3279
 2281                           .loc 1 487 5 view .LVU663
3280
 487:../libOLED/src/displayclass.cpp ****     {
3281
 2282                           .loc 1 487 5 is_stmt 0 view .LVU664
3282
 2283 00f6 0BF1010B             add     fp, fp, #1
3283
 2284                   .LVL221:
3284
 487:../libOLED/src/displayclass.cpp ****     {
3285
 2285                           .loc 1 487 5 view .LVU665
3286
 2286 00fa DBE7                 b       .L95
3287
 2287                   .LVL222:
3288
 2288                   .L83:
3289
 500:../libOLED/src/displayclass.cpp ****     }
3290
 501:../libOLED/src/displayclass.cpp ****   }
3291
 502:../libOLED/src/displayclass.cpp **** }
3292
 2289                           .loc 1 502 1 view .LVU666
3293
 2290 00fc 05B0                 add     sp, sp, #20
3294
 2291                   .LCFI22:
3295
 2292                           .cfi_def_cfa_offset 36
3296
 2293                   .LVL223:
3297
 2294                           .loc 1 502 1 view .LVU667
3298
 2295                           @ sp needed
3299
 2296 00fe BDE8F08F             pop     {r4, r5, r6, r7, r8, r9, r10, fp, pc}
3300
 2297                           .loc 1 502 1 view .LVU668
3301
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 56
3302
 
3303
 
3304
 2298                           .cfi_endproc
3305
 2299                   .LFE60:
3306
 2301                           .global _ZTV9display_t
3307
 2302                           .section        .rodata._ZTV9display_t,"a"
3308
 2303                           .align  2
3309
 2304                           .set    .LANCHOR0,. + 0
3310
 2307                   _ZTV9display_t:
3311
 2308 0000 00000000             .word   0
3312
 2309 0004 00000000             .word   0
3313
 2310 0008 00000000             .word   0
3314
 2311 000c 00000000             .word   0
3315
 2312 0010 00000000             .word   __cxa_pure_virtual
3316
 2313 0014 00000000             .word   __cxa_pure_virtual
3317
 2314 0018 00000000             .word   __cxa_pure_virtual
3318
 2315 001c 00000000             .word   __cxa_pure_virtual
3319
 2316                           .text
3320
 2317                   .Letext0:
3321
 2318                           .file 3 "c:\\programdata\\chocolatey\\lib\\gcc-arm-embedded\\tools\\gcc-arm-none-eabi-10-2020-q4-m
3322
 2319                           .file 4 "c:\\programdata\\chocolatey\\lib\\gcc-arm-embedded\\tools\\gcc-arm-none-eabi-10-2020-q4-m
3323
 2320                           .file 5 "c:\\programdata\\chocolatey\\lib\\gcc-arm-embedded\\tools\\gcc-arm-none-eabi-10-2020-q4-m
3324
 2321                           .file 6 "c:\\programdata\\chocolatey\\lib\\gcc-arm-embedded\\tools\\gcc-arm-none-eabi-10-2020-q4-m
3325
 2322                           .file 7 "c:\\programdata\\chocolatey\\lib\\gcc-arm-embedded\\tools\\gcc-arm-none-eabi-10-2020-q4-m
3326
 2323                           .file 8 "c:\\programdata\\chocolatey\\lib\\gcc-arm-embedded\\tools\\gcc-arm-none-eabi-10-2020-q4-m
3327
 2324                           .file 9 "c:\\programdata\\chocolatey\\lib\\gcc-arm-embedded\\tools\\gcc-arm-none-eabi-10-2020-q4-m
3328
 2325                           .file 10 "c:\\programdata\\chocolatey\\lib\\gcc-arm-embedded\\tools\\gcc-arm-none-eabi-10-2020-q4-
3329
 2326                           .file 11 "c:\\programdata\\chocolatey\\lib\\gcc-arm-embedded\\tools\\gcc-arm-none-eabi-10-2020-q4-
3330
 2327                           .file 12 "c:\\programdata\\chocolatey\\lib\\gcc-arm-embedded\\tools\\gcc-arm-none-eabi-10-2020-q4-
3331
 2328                           .file 13 "../libOLED/inc/libOLED/fontclass.H"
3332
 2329                           .file 14 "<built-in>"
3333
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s                   page 57
3334
 
3335
 
3336
DEFINED SYMBOLS
3337
                            *ABS*:00000000 displayclass.cpp
3338
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:16     .text._ZdlPvj:00000000 $t
3339
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:24     .text._ZdlPvj:00000000 _ZdlPvj
3340
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:41     .text.__cxa_pure_virtual:00000000 $t
3341
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:48     .text.__cxa_pure_virtual:00000000 __cxa_pure_virtual
3342
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:64     .text._ZN9display_tC2EiiiPh:00000000 $t
3343
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:71     .text._ZN9display_tC2EiiiPh:00000000 _ZN9display_tC2EiiiPh
3344
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:110    .text._ZN9display_tC2EiiiPh:00000020 $d
3345
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:71     .text._ZN9display_tC2EiiiPh:00000000 _ZN9display_tC1EiiiPh
3346
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:117    .text._ZN9display_tD0Ev:00000000 $t
3347
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:124    .text._ZN9display_tD0Ev:00000000 _ZN9display_tD0Ev
3348
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:124    .text._ZN9display_tD0Ev:00000000 _ZN9display_tD1Ev
3349
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:124    .text._ZN9display_tD0Ev:00000000 _ZN9display_tD2Ev
3350
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:149    .text._ZN9display_t5resetEv:00000000 $t
3351
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:156    .text._ZN9display_t5resetEv:00000000 _ZN9display_t5resetEv
3352
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:176    .text._ZN9display_t11getRotationEv:00000000 $t
3353
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:183    .text._ZN9display_t11getRotationEv:00000000 _ZN9display_t11getRotationEv
3354
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:201    .text._ZN9display_t5widthEv:00000000 $t
3355
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:208    .text._ZN9display_t5widthEv:00000000 _ZN9display_t5widthEv
3356
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:268    .text._ZN9display_t6heightEv:00000000 $t
3357
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:275    .text._ZN9display_t6heightEv:00000000 _ZN9display_t6heightEv
3358
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:335    .text._ZN9display_t9drawPixelEssb:00000000 $t
3359
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:342    .text._ZN9display_t9drawPixelEssb:00000000 _ZN9display_t9drawPixelEssb
3360
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:518    .text._ZN9display_t13invertDisplayEh:00000000 $t
3361
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:525    .text._ZN9display_t13invertDisplayEh:00000000 _ZN9display_t13invertDisplayEh
3362
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:582    .text._ZN9display_t16startscrollrightEhh:00000000 $t
3363
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:589    .text._ZN9display_t16startscrollrightEhh:00000000 _ZN9display_t16startscrollrightEhh
3364
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:705    .text._ZN9display_t15startscrollleftEhh:00000000 $t
3365
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:712    .text._ZN9display_t15startscrollleftEhh:00000000 _ZN9display_t15startscrollleftEhh
3366
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:828    .text._ZN9display_t20startscrolldiagrightEhh:00000000 $t
3367
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:835    .text._ZN9display_t20startscrolldiagrightEhh:00000000 _ZN9display_t20startscrolldiagrightEhh
3368
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:969    .text._ZN9display_t19startscrolldiagleftEhh:00000000 $t
3369
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:976    .text._ZN9display_t19startscrolldiagleftEhh:00000000 _ZN9display_t19startscrolldiagleftEhh
3370
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:1110   .text._ZN9display_t10stopscrollEv:00000000 $t
3371
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:1117   .text._ZN9display_t10stopscrollEv:00000000 _ZN9display_t10stopscrollEv
3372
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:1162   .text._ZN9display_t3dimEh:00000000 $t
3373
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:1169   .text._ZN9display_t3dimEh:00000000 _ZN9display_t3dimEh
3374
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:1230   .text._ZN9display_t7displayEv:00000000 $t
3375
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:1237   .text._ZN9display_t7displayEv:00000000 _ZN9display_t7displayEv
3376
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:1424   .text._ZN9display_t12clearDisplayE8colour_t:00000000 $t
3377
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:1431   .text._ZN9display_t12clearDisplayE8colour_t:00000000 _ZN9display_t12clearDisplayE8colour_t
3378
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:1557   .text._ZN9display_t4initEv:00000000 $t
3379
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:1564   .text._ZN9display_t4initEv:00000000 _ZN9display_t4initEv
3380
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:1842   .text._ZN9display_t13drawRectangleEssss8colour_t:00000000 $t
3381
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:1849   .text._ZN9display_t13drawRectangleEssss8colour_t:00000000 _ZN9display_t13drawRectangleEssss8colour_t
3382
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:1968   .text._ZN9display_t8drawLineEssss8colour_ta:00000000 $t
3383
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:1975   .text._ZN9display_t8drawLineEssss8colour_ta:00000000 _ZN9display_t8drawLineEssss8colour_ta
3384
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:2307   .rodata._ZTV9display_t:00000000 _ZTV9display_t
3385
C:\Users\mike\AppData\Local\Temp\ccpRVPnH.s:2303   .rodata._ZTV9display_t:00000000 $d
3386
 
3387
UNDEFINED SYMBOLS
3388
memset