   1               		.file	"wiring_digital.c"
   2               	__SP_H__ = 0x3e
   3               	__SP_L__ = 0x3d
   4               	__SREG__ = 0x3f
   5               	__tmp_reg__ = 0
   6               	__zero_reg__ = 1
   9               		.text
  10               	.Ltext0:
 135               	turnOffPWM:
 136               		.stabd	46,0,0
   1:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** /*
   2:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****   wiring_digital.c - digital input and output functions
   3:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****   Part of Arduino - http://www.arduino.cc/
   4:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
   5:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****   Copyright (c) 2005-2006 David A. Mellis
   6:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
   7:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****   This library is free software; you can redistribute it and/or
   8:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****   modify it under the terms of the GNU Lesser General Public
   9:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****   License as published by the Free Software Foundation; either
  10:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****   version 2.1 of the License, or (at your option) any later version.
  11:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
  12:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****   This library is distributed in the hope that it will be useful,
  13:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****   but WITHOUT ANY WARRANTY; without even the implied warranty of
  14:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****   Lesser General Public License for more details.
  16:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
  17:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****   You should have received a copy of the GNU Lesser General
  18:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****   Public License along with this library; if not, write to the
  19:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****   Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  20:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****   Boston, MA  02111-1307  USA
  21:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
  22:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****   Modified 28 September 2010 by Mark Sproul
  23:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** */
  24:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
  25:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #define ARDUINO_MAIN
  26:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #include "wiring_private.h"
  27:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** #include "pins_arduino.h"
  28:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
  29:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** void pinMode(uint8_t pin, uint8_t mode)
  30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** {
  31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	uint8_t bit = digitalPinToBitMask(pin);
  32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	uint8_t port = digitalPinToPort(pin);
  33:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	volatile uint8_t *reg, *out;
  34:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
  35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	if (port == NOT_A_PIN) return;
  36:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
  37:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	// JWS: can I let the optimizer do this?
  38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	reg = portModeRegister(port);
  39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	out = portOutputRegister(port);
  40:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
  41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	if (mode == INPUT) { 
  42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		uint8_t oldSREG = SREG;
  43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****                 cli();
  44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		*reg &= ~bit;
  45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		*out &= ~bit;
  46:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		SREG = oldSREG;
  47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	} else if (mode == INPUT_PULLUP) {
  48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		uint8_t oldSREG = SREG;
  49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****                 cli();
  50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		*reg &= ~bit;
  51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		*out |= bit;
  52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		SREG = oldSREG;
  53:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	} else {
  54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		uint8_t oldSREG = SREG;
  55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****                 cli();
  56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		*reg |= bit;
  57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		SREG = oldSREG;
  58:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	}
  59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** }
  60:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
  61:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // Forcing this inline keeps the callers from having to push their own stuff
  62:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // on the stack. It is a good performance win and only takes 1 more byte per
  63:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // user than calling. (It will take more bytes on the 168.)
  64:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** //
  65:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // But shouldn't this be moved into pinMode? Seems silly to check and do on
  66:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // each digitalread or write.
  67:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** //
  68:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // Mark Sproul:
  69:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // - Removed inline. Save 170 bytes on atmega1280
  70:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // - changed to a switch statment; added 32 bytes but much easier to read and maintain.
  71:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** // - Added more #ifdefs, now compiles for atmega645
  72:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** //
  73:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** //static inline void turnOffPWM(uint8_t timer) __attribute__ ((always_inline));
  74:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** //static inline void turnOffPWM(uint8_t timer)
  75:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** static void turnOffPWM(uint8_t timer)
  76:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** {
 138               	.LM0:
 139               	.LFBB1:
 140               	/* prologue: function */
 141               	/* frame size = 0 */
 142               	/* stack size = 0 */
 143               	.L__stack_usage = 0
  77:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	switch (timer)
 145               	.LM1:
 146 0000 8330      		cpi r24,lo8(3)
 147 0002 01F0      		breq .L3
 148 0004 00F4      		brsh .L4
 149 0006 8130      		cpi r24,lo8(1)
 150 0008 01F0      		breq .L5
 151 000a 8230      		cpi r24,lo8(2)
 152 000c 01F0      		breq .L6
 153 000e 0895      		ret
 154               	.L4:
 155 0010 8730      		cpi r24,lo8(7)
 156 0012 01F0      		breq .L7
 157 0014 8830      		cpi r24,lo8(8)
 158 0016 01F0      		breq .L8
 159 0018 8430      		cpi r24,lo8(4)
 160 001a 01F4      		brne .L1
  78:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	{
  79:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#if defined(TCCR1A) && defined(COM1A1)
  80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		case TIMER1A:   cbi(TCCR1A, COM1A1);    break;
  81:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#endif
  82:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#if defined(TCCR1A) && defined(COM1B1)
  83:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		case TIMER1B:   cbi(TCCR1A, COM1B1);    break;
 162               	.LM2:
 163 001c 8091 8000 		lds r24,128
 164 0020 8F7D      		andi r24,lo8(-33)
 165 0022 00C0      		rjmp .L10
 166               	.L3:
  80:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#endif
 168               	.LM3:
 169 0024 8091 8000 		lds r24,128
 170 0028 8F77      		andi r24,lo8(127)
 171               	.L10:
 173               	.LM4:
 174 002a 8093 8000 		sts 128,r24
 175 002e 0895      		ret
 176               	.L5:
 177               	.LBB4:
 178               	.LBB5:
  84:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#endif
  85:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#if defined(TCCR1A) && defined(COM1C1)
  86:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		case TIMER1C:   cbi(TCCR1A, COM1C1);    break;
  87:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#endif
  88:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		
  89:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#if defined(TCCR2) && defined(COM21)
  90:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		case  TIMER2:   cbi(TCCR2, COM21);      break;
  91:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#endif
  92:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		
  93:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#if defined(TCCR0A) && defined(COM0A1)
  94:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		case  TIMER0A:  cbi(TCCR0A, COM0A1);    break;
 180               	.LM5:
 181 0030 84B5      		in r24,0x24
 182 0032 8F77      		andi r24,lo8(127)
 183 0034 00C0      		rjmp .L12
 184               	.L6:
 185               	.LBE5:
 186               	.LBE4:
  95:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#endif
  96:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		
  97:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#if defined(TCCR0A) && defined(COM0B1)
  98:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		case  TIMER0B:  cbi(TCCR0A, COM0B1);    break;
 188               	.LM6:
 189 0036 84B5      		in r24,0x24
 190 0038 8F7D      		andi r24,lo8(-33)
 191               	.L12:
 192 003a 84BD      		out 0x24,r24
 193 003c 0895      		ret
 194               	.L7:
  99:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#endif
 100:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#if defined(TCCR2A) && defined(COM2A1)
 101:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		case  TIMER2A:  cbi(TCCR2A, COM2A1);    break;
 196               	.LM7:
 197 003e 8091 B000 		lds r24,176
 198 0042 8F77      		andi r24,lo8(127)
 199 0044 00C0      		rjmp .L11
 200               	.L8:
 102:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#endif
 103:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#if defined(TCCR2A) && defined(COM2B1)
 104:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		case  TIMER2B:  cbi(TCCR2A, COM2B1);    break;
 202               	.LM8:
 203 0046 8091 B000 		lds r24,176
 204 004a 8F7D      		andi r24,lo8(-33)
 205               	.L11:
 206 004c 8093 B000 		sts 176,r24
 207               	.L1:
 208 0050 0895      		ret
 210               	.Lscope1:
 212               		.stabd	78,0,0
 216               	.global	pinMode
 218               	pinMode:
 219               		.stabd	46,0,0
  30:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	uint8_t bit = digitalPinToBitMask(pin);
 221               	.LM9:
 222               	.LFBB2:
 223 0052 CF93      		push r28
 224 0054 DF93      		push r29
 225               	/* prologue: function */
 226               	/* frame size = 0 */
 227               	/* stack size = 2 */
 228               	.L__stack_usage = 2
 229               	.LBB6:
  31:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	uint8_t port = digitalPinToPort(pin);
 231               	.LM10:
 232 0056 90E0      		ldi r25,0
 233 0058 FC01      		movw r30,r24
 234 005a E050      		subi r30,lo8(-(digital_pin_to_bit_mask_PGM))
 235 005c F040      		sbci r31,hi8(-(digital_pin_to_bit_mask_PGM))
 236               	/* #APP */
 237               	 ;  31 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino
 238 005e 2491      		lpm r18, Z
 239               		
 240               	 ;  0 "" 2
 241               	/* #NOAPP */
 242               	.LBE6:
 243               	.LBB7:
  32:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	volatile uint8_t *reg, *out;
 245               	.LM11:
 246 0060 FC01      		movw r30,r24
 247 0062 E050      		subi r30,lo8(-(digital_pin_to_port_PGM))
 248 0064 F040      		sbci r31,hi8(-(digital_pin_to_port_PGM))
 249               	/* #APP */
 250               	 ;  32 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino
 251 0066 8491      		lpm r24, Z
 252               		
 253               	 ;  0 "" 2
 254               	/* #NOAPP */
 255               	.LBE7:
  35:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
 257               	.LM12:
 258 0068 8823      		tst r24
 259 006a 01F0      		breq .L14
 260               	.LBB8:
  38:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	out = portOutputRegister(port);
 262               	.LM13:
 263 006c 90E0      		ldi r25,0
 264 006e 880F      		lsl r24
 265 0070 991F      		rol r25
 266 0072 FC01      		movw r30,r24
 267 0074 E050      		subi r30,lo8(-(port_to_mode_PGM))
 268 0076 F040      		sbci r31,hi8(-(port_to_mode_PGM))
 269               	/* #APP */
 270               	 ;  38 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino
 271 0078 C591      		lpm r28, Z+
 272 007a D491      		lpm r29, Z
 273               		
 274               	 ;  0 "" 2
 275               	/* #NOAPP */
 276               	.LBE8:
 277               	.LBB9:
  39:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
 279               	.LM14:
 280 007c FC01      		movw r30,r24
 281 007e E050      		subi r30,lo8(-(port_to_output_PGM))
 282 0080 F040      		sbci r31,hi8(-(port_to_output_PGM))
 283               	/* #APP */
 284               	 ;  39 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino
 285 0082 A591      		lpm r26, Z+
 286 0084 B491      		lpm r27, Z
 287               		
 288               	 ;  0 "" 2
 289               	/* #NOAPP */
 290               	.LBE9:
  41:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		uint8_t oldSREG = SREG;
 292               	.LM15:
 293 0086 6111      		cpse r22,__zero_reg__
 294 0088 00C0      		rjmp .L16
 295               	.LBB10:
  42:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****                 cli();
 297               	.LM16:
 298 008a 9FB7      		in r25,__SREG__
  43:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		*reg &= ~bit;
 300               	.LM17:
 301               	/* #APP */
 302               	 ;  43 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino
 303 008c F894      		cli
 304               	 ;  0 "" 2
  44:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		*out &= ~bit;
 306               	.LM18:
 307               	/* #NOAPP */
 308 008e 8881      		ld r24,Y
 309 0090 2095      		com r18
 310 0092 8223      		and r24,r18
 311 0094 8883      		st Y,r24
  45:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		SREG = oldSREG;
 313               	.LM19:
 314 0096 EC91      		ld r30,X
 315 0098 2E23      		and r18,r30
 316 009a 00C0      		rjmp .L21
 317               	.L16:
 318               	.LBE10:
  47:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		uint8_t oldSREG = SREG;
 320               	.LM20:
 321 009c 6230      		cpi r22,lo8(2)
 322 009e 01F4      		brne .L17
 323               	.LBB11:
  48:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****                 cli();
 325               	.LM21:
 326 00a0 9FB7      		in r25,__SREG__
  49:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		*reg &= ~bit;
 328               	.LM22:
 329               	/* #APP */
 330               	 ;  49 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino
 331 00a2 F894      		cli
 332               	 ;  0 "" 2
  50:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		*out |= bit;
 334               	.LM23:
 335               	/* #NOAPP */
 336 00a4 8881      		ld r24,Y
 337 00a6 322F      		mov r19,r18
 338 00a8 3095      		com r19
 339 00aa 8323      		and r24,r19
 340 00ac 8883      		st Y,r24
  51:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		SREG = oldSREG;
 342               	.LM24:
 343 00ae EC91      		ld r30,X
 344 00b0 2E2B      		or r18,r30
 345               	.L21:
 346 00b2 2C93      		st X,r18
  52:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	} else {
 348               	.LM25:
 349 00b4 9FBF      		out __SREG__,r25
 350               	.LBE11:
 351 00b6 00C0      		rjmp .L14
 352               	.L17:
 353               	.LBB12:
  54:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c ****                 cli();
 355               	.LM26:
 356 00b8 8FB7      		in r24,__SREG__
  55:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		*reg |= bit;
 358               	.LM27:
 359               	/* #APP */
 360               	 ;  55 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino
 361 00ba F894      		cli
 362               	 ;  0 "" 2
  56:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		SREG = oldSREG;
 364               	.LM28:
 365               	/* #NOAPP */
 366 00bc E881      		ld r30,Y
 367 00be 2E2B      		or r18,r30
 368 00c0 2883      		st Y,r18
  57:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	}
 370               	.LM29:
 371 00c2 8FBF      		out __SREG__,r24
 372               	.L14:
 373               	/* epilogue start */
 374               	.LBE12:
  59:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
 376               	.LM30:
 377 00c4 DF91      		pop r29
 378 00c6 CF91      		pop r28
 379 00c8 0895      		ret
 396               	.Lscope2:
 398               		.stabd	78,0,0
 402               	.global	digitalWrite
 404               	digitalWrite:
 405               		.stabd	46,0,0
 105:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#endif
 106:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		
 107:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#if defined(TCCR3A) && defined(COM3A1)
 108:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		case  TIMER3A:  cbi(TCCR3A, COM3A1);    break;
 109:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#endif
 110:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#if defined(TCCR3A) && defined(COM3B1)
 111:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		case  TIMER3B:  cbi(TCCR3A, COM3B1);    break;
 112:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#endif
 113:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#if defined(TCCR3A) && defined(COM3C1)
 114:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		case  TIMER3C:  cbi(TCCR3A, COM3C1);    break;
 115:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#endif
 116:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
 117:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#if defined(TCCR4A) && defined(COM4A1)
 118:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		case  TIMER4A:  cbi(TCCR4A, COM4A1);    break;
 119:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#endif					
 120:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#if defined(TCCR4A) && defined(COM4B1)
 121:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		case  TIMER4B:  cbi(TCCR4A, COM4B1);    break;
 122:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#endif
 123:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#if defined(TCCR4A) && defined(COM4C1)
 124:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		case  TIMER4C:  cbi(TCCR4A, COM4C1);    break;
 125:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#endif			
 126:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#if defined(TCCR4C) && defined(COM4D1)
 127:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		case TIMER4D:	cbi(TCCR4C, COM4D1);	break;
 128:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#endif			
 129:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 			
 130:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#if defined(TCCR5A)
 131:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		case  TIMER5A:  cbi(TCCR5A, COM5A1);    break;
 132:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		case  TIMER5B:  cbi(TCCR5A, COM5B1);    break;
 133:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		case  TIMER5C:  cbi(TCCR5A, COM5C1);    break;
 134:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		#endif
 135:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	}
 136:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** }
 137:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
 138:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** void digitalWrite(uint8_t pin, uint8_t val)
 139:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** {
 407               	.LM31:
 408               	.LFBB3:
 409 00ca 1F93      		push r17
 410 00cc CF93      		push r28
 411 00ce DF93      		push r29
 412               	/* prologue: function */
 413               	/* frame size = 0 */
 414               	/* stack size = 3 */
 415               	.L__stack_usage = 3
 416               	.LBB13:
 140:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	uint8_t timer = digitalPinToTimer(pin);
 418               	.LM32:
 419 00d0 282F      		mov r18,r24
 420 00d2 30E0      		ldi r19,0
 421 00d4 F901      		movw r30,r18
 422 00d6 E050      		subi r30,lo8(-(digital_pin_to_timer_PGM))
 423 00d8 F040      		sbci r31,hi8(-(digital_pin_to_timer_PGM))
 424               	/* #APP */
 425               	 ;  140 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin
 426 00da 8491      		lpm r24, Z
 427               		
 428               	 ;  0 "" 2
 429               	/* #NOAPP */
 430               	.LBE13:
 431               	.LBB14:
 141:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	uint8_t bit = digitalPinToBitMask(pin);
 433               	.LM33:
 434 00dc F901      		movw r30,r18
 435 00de E050      		subi r30,lo8(-(digital_pin_to_bit_mask_PGM))
 436 00e0 F040      		sbci r31,hi8(-(digital_pin_to_bit_mask_PGM))
 437               	/* #APP */
 438               	 ;  141 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin
 439 00e2 D491      		lpm r29, Z
 440               		
 441               	 ;  0 "" 2
 442               	/* #NOAPP */
 443               	.LBE14:
 444               	.LBB15:
 142:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	uint8_t port = digitalPinToPort(pin);
 446               	.LM34:
 447 00e4 F901      		movw r30,r18
 448 00e6 E050      		subi r30,lo8(-(digital_pin_to_port_PGM))
 449 00e8 F040      		sbci r31,hi8(-(digital_pin_to_port_PGM))
 450               	/* #APP */
 451               	 ;  142 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin
 452 00ea C491      		lpm r28, Z
 453               		
 454               	 ;  0 "" 2
 455               	/* #NOAPP */
 456               	.LBE15:
 143:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	volatile uint8_t *out;
 144:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
 145:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	if (port == NOT_A_PIN) return;
 458               	.LM35:
 459 00ec CC23      		tst r28
 460 00ee 01F0      		breq .L22
 461 00f0 162F      		mov r17,r22
 146:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
 147:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	// If the pin that support PWM output, we need to turn it off
 148:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	// before doing a digital write.
 149:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	if (timer != NOT_ON_TIMER) turnOffPWM(timer);
 463               	.LM36:
 464 00f2 8111      		cpse r24,__zero_reg__
 466               	.LM37:
 467 00f4 0E94 0000 		call turnOffPWM
 468               	.L24:
 469               	.LBB16:
 150:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
 151:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	out = portOutputRegister(port);
 471               	.LM38:
 472 00f8 EC2F      		mov r30,r28
 473 00fa F0E0      		ldi r31,0
 474 00fc EE0F      		lsl r30
 475 00fe FF1F      		rol r31
 476 0100 E050      		subi r30,lo8(-(port_to_output_PGM))
 477 0102 F040      		sbci r31,hi8(-(port_to_output_PGM))
 478               	/* #APP */
 479               	 ;  151 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin
 480 0104 A591      		lpm r26, Z+
 481 0106 B491      		lpm r27, Z
 482               		
 483               	 ;  0 "" 2
 484               	/* #NOAPP */
 485               	.LBE16:
 152:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
 153:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	uint8_t oldSREG = SREG;
 487               	.LM39:
 488 0108 9FB7      		in r25,__SREG__
 154:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	cli();
 490               	.LM40:
 491               	/* #APP */
 492               	 ;  154 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin
 493 010a F894      		cli
 494               	 ;  0 "" 2
 155:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
 156:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	if (val == LOW) {
 496               	.LM41:
 497               	/* #NOAPP */
 498 010c 1111      		cpse r17,__zero_reg__
 499 010e 00C0      		rjmp .L25
 157:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		*out &= ~bit;
 501               	.LM42:
 502 0110 8C91      		ld r24,X
 503 0112 D095      		com r29
 504 0114 D823      		and r29,r24
 505 0116 00C0      		rjmp .L33
 506               	.L25:
 158:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	} else {
 159:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 		*out |= bit;
 508               	.LM43:
 509 0118 EC91      		ld r30,X
 510 011a DE2B      		or r29,r30
 511               	.L33:
 512 011c DC93      		st X,r29
 160:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	}
 161:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
 162:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	SREG = oldSREG;
 514               	.LM44:
 515 011e 9FBF      		out __SREG__,r25
 516               	.L22:
 517               	/* epilogue start */
 163:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** }
 519               	.LM45:
 520 0120 DF91      		pop r29
 521 0122 CF91      		pop r28
 522 0124 1F91      		pop r17
 523 0126 0895      		ret
 533               	.Lscope3:
 535               		.stabd	78,0,0
 538               	.global	digitalRead
 540               	digitalRead:
 541               		.stabd	46,0,0
 164:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
 165:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** int digitalRead(uint8_t pin)
 166:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** {
 543               	.LM46:
 544               	.LFBB4:
 545 0128 CF93      		push r28
 546 012a DF93      		push r29
 547               	/* prologue: function */
 548               	/* frame size = 0 */
 549               	/* stack size = 2 */
 550               	.L__stack_usage = 2
 551               	.LBB17:
 167:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	uint8_t timer = digitalPinToTimer(pin);
 553               	.LM47:
 554 012c 282F      		mov r18,r24
 555 012e 30E0      		ldi r19,0
 556 0130 F901      		movw r30,r18
 557 0132 E050      		subi r30,lo8(-(digital_pin_to_timer_PGM))
 558 0134 F040      		sbci r31,hi8(-(digital_pin_to_timer_PGM))
 559               	/* #APP */
 560               	 ;  167 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin
 561 0136 8491      		lpm r24, Z
 562               		
 563               	 ;  0 "" 2
 564               	/* #NOAPP */
 565               	.LBE17:
 566               	.LBB18:
 168:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	uint8_t bit = digitalPinToBitMask(pin);
 568               	.LM48:
 569 0138 F901      		movw r30,r18
 570 013a E050      		subi r30,lo8(-(digital_pin_to_bit_mask_PGM))
 571 013c F040      		sbci r31,hi8(-(digital_pin_to_bit_mask_PGM))
 572               	/* #APP */
 573               	 ;  168 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin
 574 013e D491      		lpm r29, Z
 575               		
 576               	 ;  0 "" 2
 577               	/* #NOAPP */
 578               	.LBE18:
 579               	.LBB19:
 169:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	uint8_t port = digitalPinToPort(pin);
 581               	.LM49:
 582 0140 F901      		movw r30,r18
 583 0142 E050      		subi r30,lo8(-(digital_pin_to_port_PGM))
 584 0144 F040      		sbci r31,hi8(-(digital_pin_to_port_PGM))
 585               	/* #APP */
 586               	 ;  169 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin
 587 0146 C491      		lpm r28, Z
 588               		
 589               	 ;  0 "" 2
 590               	/* #NOAPP */
 591               	.LBE19:
 170:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
 171:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	if (port == NOT_A_PIN) return LOW;
 593               	.LM50:
 594 0148 CC23      		tst r28
 595 014a 01F0      		breq .L38
 172:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
 173:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	// If the pin that support PWM output, we need to turn it off
 174:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	// before getting a digital reading.
 175:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	if (timer != NOT_ON_TIMER) turnOffPWM(timer);
 597               	.LM51:
 598 014c 8111      		cpse r24,__zero_reg__
 600               	.LM52:
 601 014e 0E94 0000 		call turnOffPWM
 602               	.L36:
 603               	.LBB20:
 176:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
 177:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	if (*portInputRegister(port) & bit) return HIGH;
 605               	.LM53:
 606 0152 EC2F      		mov r30,r28
 607 0154 F0E0      		ldi r31,0
 608 0156 EE0F      		lsl r30
 609 0158 FF1F      		rol r31
 610 015a E050      		subi r30,lo8(-(port_to_input_PGM))
 611 015c F040      		sbci r31,hi8(-(port_to_input_PGM))
 612               	/* #APP */
 613               	 ;  177 "/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduin
 614 015e A591      		lpm r26, Z+
 615 0160 B491      		lpm r27, Z
 616               		
 617               	 ;  0 "" 2
 618               	/* #NOAPP */
 619               	.LBE20:
 620 0162 EC91      		ld r30,X
 171:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 
 622               	.LM54:
 623 0164 ED23      		and r30,r29
 624 0166 81E0      		ldi r24,lo8(1)
 625 0168 90E0      		ldi r25,0
 626 016a 01F4      		brne .L35
 627 016c 80E0      		ldi r24,0
 628 016e 00C0      		rjmp .L35
 629               	.L38:
 630 0170 80E0      		ldi r24,0
 631 0172 90E0      		ldi r25,0
 632               	.L35:
 633               	/* epilogue start */
 178:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** 	return LOW;
 179:/home/mrh/Downloads/arduino-1.8.8-linux64/arduino-1.8.8//hardware/arduino/avr/cores/arduino/wiring_digital.c **** }
 635               	.LM55:
 636 0174 DF91      		pop r29
 637 0176 CF91      		pop r28
 638 0178 0895      		ret
 647               	.Lscope4:
 649               		.stabd	78,0,0
 650               	.global	digital_pin_to_timer_PGM
 651               		.section	.progmem.data,"a",@progbits
 654               	digital_pin_to_timer_PGM:
 655 0000 00        		.byte	0
 656 0001 00        		.byte	0
 657 0002 00        		.byte	0
 658 0003 08        		.byte	8
 659 0004 00        		.byte	0
 660 0005 02        		.byte	2
 661 0006 01        		.byte	1
 662 0007 00        		.byte	0
 663 0008 00        		.byte	0
 664 0009 03        		.byte	3
 665 000a 04        		.byte	4
 666 000b 07        		.byte	7
 667 000c 00        		.byte	0
 668 000d 00        		.byte	0
 669 000e 00        		.byte	0
 670 000f 00        		.byte	0
 671 0010 00        		.byte	0
 672 0011 00        		.byte	0
 673 0012 00        		.byte	0
 674 0013 00        		.byte	0
 675               	.global	digital_pin_to_bit_mask_PGM
 678               	digital_pin_to_bit_mask_PGM:
 679 0014 01        		.byte	1
 680 0015 02        		.byte	2
 681 0016 04        		.byte	4
 682 0017 08        		.byte	8
 683 0018 10        		.byte	16
 684 0019 20        		.byte	32
 685 001a 40        		.byte	64
 686 001b 80        		.byte	-128
 687 001c 01        		.byte	1
 688 001d 02        		.byte	2
 689 001e 04        		.byte	4
 690 001f 08        		.byte	8
 691 0020 10        		.byte	16
 692 0021 20        		.byte	32
 693 0022 01        		.byte	1
 694 0023 02        		.byte	2
 695 0024 04        		.byte	4
 696 0025 08        		.byte	8
 697 0026 10        		.byte	16
 698 0027 20        		.byte	32
 699               	.global	digital_pin_to_port_PGM
 702               	digital_pin_to_port_PGM:
 703 0028 04        		.byte	4
 704 0029 04        		.byte	4
 705 002a 04        		.byte	4
 706 002b 04        		.byte	4
 707 002c 04        		.byte	4
 708 002d 04        		.byte	4
 709 002e 04        		.byte	4
 710 002f 04        		.byte	4
 711 0030 02        		.byte	2
 712 0031 02        		.byte	2
 713 0032 02        		.byte	2
 714 0033 02        		.byte	2
 715 0034 02        		.byte	2
 716 0035 02        		.byte	2
 717 0036 03        		.byte	3
 718 0037 03        		.byte	3
 719 0038 03        		.byte	3
 720 0039 03        		.byte	3
 721 003a 03        		.byte	3
 722 003b 03        		.byte	3
 723               	.global	port_to_input_PGM
 726               	port_to_input_PGM:
 727 003c 0000      		.word	0
 728 003e 0000      		.word	0
 729 0040 2300      		.word	35
 730 0042 2600      		.word	38
 731 0044 2900      		.word	41
 732               	.global	port_to_output_PGM
 735               	port_to_output_PGM:
 736 0046 0000      		.word	0
 737 0048 0000      		.word	0
 738 004a 2500      		.word	37
 739 004c 2800      		.word	40
 740 004e 2B00      		.word	43
 741               	.global	port_to_mode_PGM
 744               	port_to_mode_PGM:
 745 0050 0000      		.word	0
 746 0052 0000      		.word	0
 747 0054 2400      		.word	36
 748 0056 2700      		.word	39
 749 0058 2A00      		.word	42
 770               		.text
 772               	.Letext0:
 773               		.ident	"GCC: (GNU) 5.4.0"
DEFINED SYMBOLS
                            *ABS*:0000000000000000 wiring_digital.c
     /tmp/ccyiMr3Y.s:2      *ABS*:000000000000003e __SP_H__
     /tmp/ccyiMr3Y.s:3      *ABS*:000000000000003d __SP_L__
     /tmp/ccyiMr3Y.s:4      *ABS*:000000000000003f __SREG__
     /tmp/ccyiMr3Y.s:5      *ABS*:0000000000000000 __tmp_reg__
     /tmp/ccyiMr3Y.s:6      *ABS*:0000000000000001 __zero_reg__
     /tmp/ccyiMr3Y.s:135    .text:0000000000000000 turnOffPWM
     /tmp/ccyiMr3Y.s:218    .text:0000000000000052 pinMode
     /tmp/ccyiMr3Y.s:678    .progmem.data:0000000000000014 digital_pin_to_bit_mask_PGM
     /tmp/ccyiMr3Y.s:702    .progmem.data:0000000000000028 digital_pin_to_port_PGM
     /tmp/ccyiMr3Y.s:744    .progmem.data:0000000000000050 port_to_mode_PGM
     /tmp/ccyiMr3Y.s:735    .progmem.data:0000000000000046 port_to_output_PGM
     /tmp/ccyiMr3Y.s:404    .text:00000000000000ca digitalWrite
     /tmp/ccyiMr3Y.s:654    .progmem.data:0000000000000000 digital_pin_to_timer_PGM
     /tmp/ccyiMr3Y.s:540    .text:0000000000000128 digitalRead
     /tmp/ccyiMr3Y.s:726    .progmem.data:000000000000003c port_to_input_PGM

NO UNDEFINED SYMBOLS
