Subversion Repositories EDIS_Ignition

Rev

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

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