Subversion Repositories EDIS_Ignition

Rev

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

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