Subversion Repositories dashGPS

Rev

Rev 18 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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