   1               		.file	"one_wire_octalSwitch.c"
   2               	__SP_H__ = 0x3e
   3               	__SP_L__ = 0x3d
   4               	__SREG__ = 0x3f
   5               	__RAMPZ__ = 0x3b
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   9               		.text
  10               	.Ltext0:
 157               		.section	.rodata.str1.1,"aMS",@progbits,1
 158               	.LC0:
 159 0000 6F6E 655F 		.string	"one_wire_octalSwitch.c"
 159      7769 7265 
 159      5F6F 6374 
 159      616C 5377 
 159      6974 6368 
 160               		.text
 163               	.global	owiOctalSwitches
 165               	owiOctalSwitches:
   1:one_wire_octalSwitch.c **** /*
   2:one_wire_octalSwitch.c ****    Licensed under the EUPL V.1.1, Lizenziert unter EUPL V.1.1 
   3:one_wire_octalSwitch.c **** */
   4:one_wire_octalSwitch.c **** #include <stdint.h>
   5:one_wire_octalSwitch.c **** #include <stdio.h>
   6:one_wire_octalSwitch.c **** #include <stdarg.h>
   7:one_wire_octalSwitch.c **** #include <string.h>
   8:one_wire_octalSwitch.c **** /* modified (heavily rather rebuild): Peter Zumbruch
   9:one_wire_octalSwitch.c ****  */
  10:one_wire_octalSwitch.c **** #include <math.h>
  11:one_wire_octalSwitch.c **** #include <stdlib.h>
  12:one_wire_octalSwitch.c **** #include <util/delay.h>
  13:one_wire_octalSwitch.c **** #include <avr/pgmspace.h>
  14:one_wire_octalSwitch.c **** #include <ctype.h>
  15:one_wire_octalSwitch.c **** 
  16:one_wire_octalSwitch.c **** #include <avr/io.h>
  17:one_wire_octalSwitch.c **** #include <avr/interrupt.h>
  18:one_wire_octalSwitch.c **** #include <avr/sleep.h>
  19:one_wire_octalSwitch.c **** #include <avr/iocan128.h>
  20:one_wire_octalSwitch.c **** 
  21:one_wire_octalSwitch.c **** #include "one_wire.h"
  22:one_wire_octalSwitch.c **** #include "one_wire_adc.h"
  23:one_wire_octalSwitch.c **** #include "one_wire_octalSwitch.h"
  24:one_wire_octalSwitch.c **** #include "one_wire_dualSwitch.h"
  25:one_wire_octalSwitch.c **** #include "one_wire_simpleSwitch.h"
  26:one_wire_octalSwitch.c **** #include "read_write_register.h"
  27:one_wire_octalSwitch.c **** #include "one_wire_temperature.h"
  28:one_wire_octalSwitch.c **** 
  29:one_wire_octalSwitch.c **** #include "adc.h"
  30:one_wire_octalSwitch.c **** #include "api.h"
  31:one_wire_octalSwitch.c **** #include "api_define.h"
  32:one_wire_octalSwitch.c **** #include "api_global.h"
  33:one_wire_octalSwitch.c **** 
  34:one_wire_octalSwitch.c **** #include "api_debug.h"
  35:one_wire_octalSwitch.c **** #include "can.h"
  36:one_wire_octalSwitch.c **** #include "mem-check.h"
  37:one_wire_octalSwitch.c **** 
  38:one_wire_octalSwitch.c **** #include "OWIDeviceSpecific.h"
  39:one_wire_octalSwitch.c **** #include "OWIHighLevelFunctions.h"
  40:one_wire_octalSwitch.c **** #include "OWIBitFunctions.h"
  41:one_wire_octalSwitch.c **** 
  42:one_wire_octalSwitch.c **** #define DS2408_READ_PIO_REGISTERS                 0xF0
  43:one_wire_octalSwitch.c **** #define DS2408_CHANNEL_ACCESS_READ                0xF5
  44:one_wire_octalSwitch.c **** #define DS2408_CHANNEL_ACCESS_WRITE               0x5A
  45:one_wire_octalSwitch.c **** #define DS2408_WRITE_CONDITIONAL_SEARCH_REGISTERS 0xCC
  46:one_wire_octalSwitch.c **** #define DS2408_RESET_ACTIVITY_LATCHES             0xC3
  47:one_wire_octalSwitch.c **** #define DS2408_WRITE_CONFIRMATION_PATTERN         0xAA
  48:one_wire_octalSwitch.c **** 
  49:one_wire_octalSwitch.c **** #define DS2408_MAX_WRITE_VALUE 0x0F
  50:one_wire_octalSwitch.c **** 
  51:one_wire_octalSwitch.c **** #warning TODO: make this max value switchable
  52:one_wire_octalSwitch.c **** #define OWI_OCTAL_SWITCHES_MAXIMUM_WRITE_ACCESS_COUNTS 100
  53:one_wire_octalSwitch.c **** 
  54:one_wire_octalSwitch.c **** static const char filename[] 		PROGMEM = __FILE__;
  55:one_wire_octalSwitch.c **** 
  56:one_wire_octalSwitch.c **** uint16_t owiOctalSwitchMask = 0x00;
  57:one_wire_octalSwitch.c **** uint16_t* p_owiOctalSwitchMask = &owiOctalSwitchMask;
  58:one_wire_octalSwitch.c **** 
  59:one_wire_octalSwitch.c **** 
  60:one_wire_octalSwitch.c **** void owiOctalSwitches( struct uartStruct *ptr_uartStruct )
  61:one_wire_octalSwitch.c **** {
 167               	.LM0:
 168               	.LFBB1:
 169 0000 1F93      		push r17
 170 0002 CF93      		push r28
 171 0004 DF93      		push r29
 172               	/* prologue: function */
 173               	/* frame size = 0 */
 174               	/* stack size = 3 */
 175               	.L__stack_usage = 3
 176 0006 EC01      		movw r28,r24
  62:one_wire_octalSwitch.c ****    //int index = -1;
  63:one_wire_octalSwitch.c **** #warning TODO? owiReadDevicesID, depending on some settings, might be replaced by a conditional sea
  64:one_wire_octalSwitch.c ****    NumDevicesFound = owiReadDevicesID(BUSES);
 178               	.LM1:
 179 0008 80E0      		ldi r24,lo8(BUSES)
 180 000a 90E0      		ldi r25,hi8(BUSES)
 181 000c 0E94 0000 		call owiReadDevicesID
 182 0010 8093 0000 		sts NumDevicesFound,r24
  65:one_wire_octalSwitch.c ****    if ( 0 < NumDevicesFound )
 184               	.LM2:
 185 0014 8823      		tst r24
 186 0016 01F4      		brne .+2
 187 0018 00C0      		rjmp .L1
  66:one_wire_octalSwitch.c ****    {
  67:one_wire_octalSwitch.c ****       owiOctalSwitchMask = 0x00;
 189               	.LM3:
 190 001a 1092 0000 		sts owiOctalSwitchMask+1,__zero_reg__
 191 001e 1092 0000 		sts owiOctalSwitchMask,__zero_reg__
  68:one_wire_octalSwitch.c **** 
  69:one_wire_octalSwitch.c ****       if ( 0 < ( owiScanIDS(OWI_FAMILY_DS2408_OCTAL_SWITCH, p_owiOctalSwitchMask) ) )
 193               	.LM4:
 194 0022 6091 0000 		lds r22,p_owiOctalSwitchMask
 195 0026 7091 0000 		lds r23,p_owiOctalSwitchMask+1
 196 002a 89E2      		ldi r24,lo8(41)
 197 002c 90E0      		ldi r25,0
 198 002e 0E94 0000 		call owiScanIDS
 199 0032 8823      		tst r24
 200 0034 01F4      		brne .+2
 201 0036 00C0      		rjmp .L1
  70:one_wire_octalSwitch.c ****       {
  71:one_wire_octalSwitch.c ****          /* additional arguments ? no: read all; yes: read:id, write: value, write: id all*/
  72:one_wire_octalSwitch.c ****          /* 0xff> id >> 56 > 0x01 */
  73:one_wire_octalSwitch.c ****          /* needs own parsing */
  74:one_wire_octalSwitch.c **** 
  75:one_wire_octalSwitch.c ****          switch(ptr_uartStruct->number_of_arguments)
 203               	.LM5:
 204 0038 CB8D      		ldd r28,Y+27
 205 003a C130      		cpi r28,lo8(1)
 206 003c 01F0      		breq .L6
 207 003e C230      		cpi r28,lo8(2)
 208 0040 01F4      		brne .+2
 209 0042 00C0      		rjmp .L7
 210 0044 C111      		cpse r28,__zero_reg__
 211 0046 00C0      		rjmp .L16
  76:one_wire_octalSwitch.c ****          {
  77:one_wire_octalSwitch.c ****             case 0: /*read all*/
  78:one_wire_octalSwitch.c ****                 printDebug_p(debugLevelEventDebug, debugSystemOWIOctalSwitches, __LINE__, filename,
 213               	.LM6:
 214 0048 80E0      		ldi r24,lo8(__c.3049)
 215 004a 90E0      		ldi r25,hi8(__c.3049)
 216 004c 9F93      		push r25
 217 004e 8F93      		push r24
 218 0050 80E0      		ldi r24,lo8(filename)
 219 0052 90E0      		ldi r25,hi8(filename)
 220 0054 9F93      		push r25
 221 0056 8F93      		push r24
 222 0058 1F92      		push __zero_reg__
 223 005a 8EE4      		ldi r24,lo8(78)
 224 005c 8F93      		push r24
 225 005e 1F92      		push __zero_reg__
 226 0060 1F92      		push __zero_reg__
 227 0062 1F92      		push __zero_reg__
 228 0064 8FE0      		ldi r24,lo8(15)
 229 0066 8F93      		push r24
 230 0068 82E0      		ldi r24,lo8(2)
 231 006a 8F93      		push r24
 232 006c E091 0000 		lds r30,printDebug_p
 233 0070 F091 0000 		lds r31,printDebug_p+1
 234 0074 0995      		icall
  79:one_wire_octalSwitch.c **** 
  80:one_wire_octalSwitch.c ****                owiFindFamilyDevicesAndAccessValues(BUSES, NumDevicesFound, OWI_FAMILY_DS2408_OCTAL_
 236               	.LM7:
 237 0076 2DB7      		in r18,__SP_L__
 238 0078 3EB7      		in r19,__SP_H__
 239 007a 255F      		subi r18,-11
 240 007c 3F4F      		sbci r19,-1
 241 007e 0FB6      		in __tmp_reg__,__SREG__
 242 0080 F894      		cli
 243 0082 3EBF      		out __SP_H__,r19
 244 0084 0FBE      		out __SREG__,__tmp_reg__
 245 0086 2DBF      		out __SP_L__,r18
 246 0088 00C0      		rjmp .L20
 247               	.L6:
  81:one_wire_octalSwitch.c ****                break;
  82:one_wire_octalSwitch.c ****             case 1: /*read single ID / write all / invalid */
  83:one_wire_octalSwitch.c ****             	if (TRUE == ptr_owiStruct->idSelect_flag) /* read ID */
 249               	.LM8:
 250 008a A091 0000 		lds r26,ptr_owiStruct
 251 008e B091 0000 		lds r27,ptr_owiStruct+1
 252 0092 1896      		adiw r26,8
 253 0094 8C91      		ld r24,X
 254 0096 1897      		sbiw r26,8
 255 0098 E091 0000 		lds r30,printDebug_p
 256 009c F091 0000 		lds r31,printDebug_p+1
 257 00a0 8130      		cpi r24,lo8(1)
 258 00a2 01F4      		brne .L9
  84:one_wire_octalSwitch.c ****                {
  85:one_wire_octalSwitch.c ****                    printDebug_p(debugLevelEventDebug, debugSystemOWIOctalSwitches, __LINE__, filena
 260               	.LM9:
 261 00a4 80E0      		ldi r24,lo8(__c.3053)
 262 00a6 90E0      		ldi r25,hi8(__c.3053)
 263 00a8 9F93      		push r25
 264 00aa 8F93      		push r24
 265 00ac 80E0      		ldi r24,lo8(filename)
 266 00ae 90E0      		ldi r25,hi8(filename)
 267 00b0 9F93      		push r25
 268 00b2 8F93      		push r24
 269 00b4 1F92      		push __zero_reg__
 270 00b6 85E5      		ldi r24,lo8(85)
 271 00b8 8F93      		push r24
 272 00ba 1F92      		push __zero_reg__
 273 00bc 1F92      		push __zero_reg__
 274 00be 1F92      		push __zero_reg__
 275 00c0 8FE0      		ldi r24,lo8(15)
 276 00c2 8F93      		push r24
 277 00c4 82E0      		ldi r24,lo8(2)
 278 00c6 8F93      		push r24
 279 00c8 0995      		icall
  86:one_wire_octalSwitch.c **** 
  87:one_wire_octalSwitch.c ****                   owiFindFamilyDevicesAndAccessValues(BUSES, NumDevicesFound, OWI_FAMILY_DS2408_OCT
 281               	.LM10:
 282 00ca 8DB7      		in r24,__SP_L__
 283 00cc 9EB7      		in r25,__SP_H__
 284 00ce 0B96      		adiw r24,11
 285 00d0 0FB6      		in __tmp_reg__,__SREG__
 286 00d2 F894      		cli
 287 00d4 9EBF      		out __SP_H__,r25
 288 00d6 0FBE      		out __SREG__,__tmp_reg__
 289 00d8 8DBF      		out __SP_L__,r24
 290               	.L20:
 291 00da 20E0      		ldi r18,0
 292 00dc 30E0      		ldi r19,0
 293 00de 00C0      		rjmp .L18
 294               	.L9:
  88:one_wire_octalSwitch.c ****                }
  89:one_wire_octalSwitch.c ****                else /* write value / invalid */
  90:one_wire_octalSwitch.c ****                {
  91:one_wire_octalSwitch.c ****                    printDebug_p(debugLevelEventDebug, debugSystemOWIOctalSwitches, __LINE__, filena
 296               	.LM11:
 297 00e0 1A96      		adiw r26,10
 298 00e2 8C91      		ld r24,X
 299 00e4 1A97      		sbiw r26,10
 300 00e6 8F93      		push r24
 301 00e8 1996      		adiw r26,9
 302 00ea 8C91      		ld r24,X
 303 00ec 1997      		sbiw r26,9
 304 00ee 8F93      		push r24
 305 00f0 1C96      		adiw r26,12
 306 00f2 8C91      		ld r24,X
 307 00f4 1C97      		sbiw r26,12
 308 00f6 8F93      		push r24
 309 00f8 1B96      		adiw r26,11
 310 00fa 8C91      		ld r24,X
 311 00fc 8F93      		push r24
 312 00fe 80E0      		ldi r24,lo8(__c.3055)
 313 0100 90E0      		ldi r25,hi8(__c.3055)
 314 0102 9F93      		push r25
 315 0104 8F93      		push r24
 316 0106 80E0      		ldi r24,lo8(filename)
 317 0108 90E0      		ldi r25,hi8(filename)
 318 010a 9F93      		push r25
 319 010c 8F93      		push r24
 320 010e 1F92      		push __zero_reg__
 321 0110 8BE5      		ldi r24,lo8(91)
 322 0112 8F93      		push r24
 323 0114 1F92      		push __zero_reg__
 324 0116 1F92      		push __zero_reg__
 325 0118 1F92      		push __zero_reg__
 326 011a DFE0      		ldi r29,lo8(15)
 327 011c DF93      		push r29
 328 011e 82E0      		ldi r24,lo8(2)
 329 0120 8F93      		push r24
 330 0122 0995      		icall
  92:one_wire_octalSwitch.c **** 
  93:one_wire_octalSwitch.c ****                   if ( DS2408_MAX_WRITE_VALUE >= ptr_owiStruct->value)
 332               	.LM12:
 333 0124 E091 0000 		lds r30,ptr_owiStruct
 334 0128 F091 0000 		lds r31,ptr_owiStruct+1
 335 012c 8385      		ldd r24,Z+11
 336 012e 9485      		ldd r25,Z+12
 337 0130 2DB7      		in r18,__SP_L__
 338 0132 3EB7      		in r19,__SP_H__
 339 0134 215F      		subi r18,-15
 340 0136 3F4F      		sbci r19,-1
 341 0138 0FB6      		in __tmp_reg__,__SREG__
 342 013a F894      		cli
 343 013c 3EBF      		out __SP_H__,r19
 344 013e 0FBE      		out __SREG__,__tmp_reg__
 345 0140 2DBF      		out __SP_L__,r18
 346 0142 8031      		cpi r24,16
 347 0144 9105      		cpc r25,__zero_reg__
 348 0146 00F4      		brsh .+2
 349 0148 00C0      		rjmp .L19
  94:one_wire_octalSwitch.c ****                   {
  95:one_wire_octalSwitch.c ****                      owiFindFamilyDevicesAndAccessValues(BUSES, NumDevicesFound, OWI_FAMILY_DS2408_
  96:one_wire_octalSwitch.c ****                   }
  97:one_wire_octalSwitch.c ****                   else
  98:one_wire_octalSwitch.c ****                   {
  99:one_wire_octalSwitch.c ****                      CommunicationError_p(ERRA, dynamicMessage_ErrorIndex, TRUE, PSTR("write argume
 351               	.LM13:
 352 014a 1F92      		push __zero_reg__
 353 014c DF93      		push r29
 354 014e 9F93      		push r25
 355 0150 8F93      		push r24
 356 0152 80E0      		ldi r24,lo8(__c.3057)
 357 0154 90E0      		ldi r25,hi8(__c.3057)
 358 0156 9F93      		push r25
 359 0158 8F93      		push r24
 360 015a CF93      		push r28
 361 015c 8FEF      		ldi r24,lo8(-1)
 362 015e 8F93      		push r24
 363 0160 8CE9      		ldi r24,lo8(-100)
 364 0162 8F93      		push r24
 365 0164 CF93      		push r28
 366 0166 E091 0000 		lds r30,CommunicationError_p
 367 016a F091 0000 		lds r31,CommunicationError_p+1
 368 016e 0995      		icall
 100:one_wire_octalSwitch.c ****                      return;
 370               	.LM14:
 371 0170 8DB7      		in r24,__SP_L__
 372 0172 9EB7      		in r25,__SP_H__
 373 0174 0A96      		adiw r24,10
 374 0176 0FB6      		in __tmp_reg__,__SREG__
 375 0178 F894      		cli
 376 017a 9EBF      		out __SP_H__,r25
 377 017c 0FBE      		out __SREG__,__tmp_reg__
 378 017e 8DBF      		out __SP_L__,r24
 379 0180 00C0      		rjmp .L1
 380               	.L7:
 101:one_wire_octalSwitch.c ****                   }
 102:one_wire_octalSwitch.c ****                }
 103:one_wire_octalSwitch.c ****                break;
 104:one_wire_octalSwitch.c ****             case 2: /* write ID value / invalid */
 105:one_wire_octalSwitch.c ****             	if (TRUE == ptr_owiStruct->idSelect_flag) /* write ID value*/
 382               	.LM15:
 383 0182 E091 0000 		lds r30,ptr_owiStruct
 384 0186 F091 0000 		lds r31,ptr_owiStruct+1
 385 018a D085      		ldd r29,Z+8
 386 018c D130      		cpi r29,lo8(1)
 387 018e 01F0      		breq .+2
 388 0190 00C0      		rjmp .L11
 106:one_wire_octalSwitch.c ****                {
 107:one_wire_octalSwitch.c ****                    printDebug_p(debugLevelEventDebug, debugSystemOWIOctalSwitches, __LINE__, filena
 390               	.LM16:
 391 0192 8285      		ldd r24,Z+10
 392 0194 8F93      		push r24
 393 0196 8185      		ldd r24,Z+9
 394 0198 8F93      		push r24
 395 019a 8485      		ldd r24,Z+12
 396 019c 8F93      		push r24
 397 019e 8385      		ldd r24,Z+11
 398 01a0 8F93      		push r24
 399 01a2 80E0      		ldi r24,lo8(.LC0)
 400 01a4 90E0      		ldi r25,hi8(.LC0)
 401 01a6 9F93      		push r25
 402 01a8 8F93      		push r24
 403 01aa 1F92      		push __zero_reg__
 404 01ac 2BE6      		ldi r18,lo8(107)
 405 01ae 2F93      		push r18
 406 01b0 80E0      		ldi r24,lo8(__c.3060)
 407 01b2 90E0      		ldi r25,hi8(__c.3060)
 408 01b4 9F93      		push r25
 409 01b6 8F93      		push r24
 410 01b8 80E0      		ldi r24,lo8(filename)
 411 01ba 90E0      		ldi r25,hi8(filename)
 412 01bc 9F93      		push r25
 413 01be 8F93      		push r24
 414 01c0 1F92      		push __zero_reg__
 415 01c2 2F93      		push r18
 416 01c4 1F92      		push __zero_reg__
 417 01c6 1F92      		push __zero_reg__
 418 01c8 1F92      		push __zero_reg__
 419 01ca 1FE0      		ldi r17,lo8(15)
 420 01cc 1F93      		push r17
 421 01ce CF93      		push r28
 422 01d0 E091 0000 		lds r30,printDebug_p
 423 01d4 F091 0000 		lds r31,printDebug_p+1
 424 01d8 0995      		icall
 108:one_wire_octalSwitch.c ****                   if ( DS2408_MAX_WRITE_VALUE >= ptr_owiStruct->value)
 426               	.LM17:
 427 01da E091 0000 		lds r30,ptr_owiStruct
 428 01de F091 0000 		lds r31,ptr_owiStruct+1
 429 01e2 8385      		ldd r24,Z+11
 430 01e4 9485      		ldd r25,Z+12
 431 01e6 2DB7      		in r18,__SP_L__
 432 01e8 3EB7      		in r19,__SP_H__
 433 01ea 2D5E      		subi r18,-19
 434 01ec 3F4F      		sbci r19,-1
 435 01ee 0FB6      		in __tmp_reg__,__SREG__
 436 01f0 F894      		cli
 437 01f2 3EBF      		out __SP_H__,r19
 438 01f4 0FBE      		out __SREG__,__tmp_reg__
 439 01f6 2DBF      		out __SP_L__,r18
 440 01f8 8031      		cpi r24,16
 441 01fa 9105      		cpc r25,__zero_reg__
 442 01fc 00F4      		brsh .L12
 443               	.L19:
 109:one_wire_octalSwitch.c ****                   {
 110:one_wire_octalSwitch.c ****                      owiFindFamilyDevicesAndAccessValues(BUSES, NumDevicesFound, OWI_FAMILY_DS2408_
 445               	.LM18:
 446 01fe 2185      		ldd r18,Z+9
 447 0200 3285      		ldd r19,Z+10
 448               	.L18:
 449 0202 49E2      		ldi r20,lo8(41)
 450 0204 6091 0000 		lds r22,NumDevicesFound
 451 0208 80E0      		ldi r24,lo8(BUSES)
 452 020a 90E0      		ldi r25,hi8(BUSES)
 453               	/* epilogue start */
 111:one_wire_octalSwitch.c ****                   }
 112:one_wire_octalSwitch.c ****                   else
 113:one_wire_octalSwitch.c ****                   {
 114:one_wire_octalSwitch.c ****                      CommunicationError_p(ERRA, dynamicMessage_ErrorIndex, TRUE, PSTR("write argume
 115:one_wire_octalSwitch.c ****                      return;
 116:one_wire_octalSwitch.c ****                   }
 117:one_wire_octalSwitch.c ****                }
 118:one_wire_octalSwitch.c ****                else
 119:one_wire_octalSwitch.c ****                {
 120:one_wire_octalSwitch.c ****                   CommunicationError_p(ERRA, dynamicMessage_ErrorIndex, TRUE, PSTR("write argument:
 121:one_wire_octalSwitch.c ****                   return;
 122:one_wire_octalSwitch.c ****                }
 123:one_wire_octalSwitch.c ****                break;
 124:one_wire_octalSwitch.c ****             default: /* invalid */
 125:one_wire_octalSwitch.c ****                CommunicationError_p(ERRA, dynamicMessage_ErrorIndex, TRUE, PSTR("write argument: to
 126:one_wire_octalSwitch.c ****                break;
 127:one_wire_octalSwitch.c ****          }
 128:one_wire_octalSwitch.c ****       }
 129:one_wire_octalSwitch.c ****    }
 130:one_wire_octalSwitch.c **** }
 455               	.LM19:
 456 020c DF91      		pop r29
 457 020e CF91      		pop r28
 458 0210 1F91      		pop r17
 110:one_wire_octalSwitch.c ****                   }
 460               	.LM20:
 461 0212 0C94 0000 		jmp owiFindFamilyDevicesAndAccessValues
 462               	.L12:
 114:one_wire_octalSwitch.c ****                      return;
 464               	.LM21:
 465 0216 1F92      		push __zero_reg__
 466 0218 1F93      		push r17
 467 021a 9F93      		push r25
 468 021c 8F93      		push r24
 469 021e 80E0      		ldi r24,lo8(__c.3062)
 470 0220 90E0      		ldi r25,hi8(__c.3062)
 471 0222 9F93      		push r25
 472 0224 8F93      		push r24
 473 0226 DF93      		push r29
 474 0228 8FEF      		ldi r24,lo8(-1)
 475 022a 8F93      		push r24
 476 022c 8CE9      		ldi r24,lo8(-100)
 477 022e 8F93      		push r24
 478 0230 DF93      		push r29
 479 0232 E091 0000 		lds r30,CommunicationError_p
 480 0236 F091 0000 		lds r31,CommunicationError_p+1
 481 023a 0995      		icall
 115:one_wire_octalSwitch.c ****                   }
 483               	.LM22:
 484 023c 8DB7      		in r24,__SP_L__
 485 023e 9EB7      		in r25,__SP_H__
 486 0240 0A96      		adiw r24,10
 487 0242 0FB6      		in __tmp_reg__,__SREG__
 488 0244 F894      		cli
 489 0246 9EBF      		out __SP_H__,r25
 490 0248 0FBE      		out __SREG__,__tmp_reg__
 491 024a 8DBF      		out __SP_L__,r24
 492 024c 00C0      		rjmp .L1
 493               	.L11:
 120:one_wire_octalSwitch.c ****                   return;
 495               	.LM23:
 496 024e 80E0      		ldi r24,lo8(__c.3064)
 497 0250 90E0      		ldi r25,hi8(__c.3064)
 498 0252 00C0      		rjmp .L17
 499               	.L16:
 125:one_wire_octalSwitch.c ****                break;
 501               	.LM24:
 502 0254 80E0      		ldi r24,lo8(__c.3067)
 503 0256 90E0      		ldi r25,hi8(__c.3067)
 504               	.L17:
 505 0258 9F93      		push r25
 506 025a 8F93      		push r24
 507 025c 81E0      		ldi r24,lo8(1)
 508 025e 8F93      		push r24
 509 0260 9FEF      		ldi r25,lo8(-1)
 510 0262 9F93      		push r25
 511 0264 9CE9      		ldi r25,lo8(-100)
 512 0266 9F93      		push r25
 513 0268 8F93      		push r24
 514 026a E091 0000 		lds r30,CommunicationError_p
 515 026e F091 0000 		lds r31,CommunicationError_p+1
 516 0272 0995      		icall
 126:one_wire_octalSwitch.c ****          }
 518               	.LM25:
 519 0274 0F90      		pop __tmp_reg__
 520 0276 0F90      		pop __tmp_reg__
 521 0278 0F90      		pop __tmp_reg__
 522 027a 0F90      		pop __tmp_reg__
 523 027c 0F90      		pop __tmp_reg__
 524 027e 0F90      		pop __tmp_reg__
 525               	.L1:
 526               	/* epilogue start */
 528               	.LM26:
 529 0280 DF91      		pop r29
 530 0282 CF91      		pop r28
 531 0284 1F91      		pop r17
 532 0286 0895      		ret
 534               	.Lscope1:
 538               	.global	ReadOctalSwitches
 540               	ReadOctalSwitches:
 131:one_wire_octalSwitch.c **** 
 132:one_wire_octalSwitch.c **** /*
 133:one_wire_octalSwitch.c ****  *this function reads the state of octal switch
 134:one_wire_octalSwitch.c ****  */
 135:one_wire_octalSwitch.c **** uint16_t ReadOctalSwitches( unsigned char bus_pattern, unsigned char * id )
 136:one_wire_octalSwitch.c **** {
 542               	.LM27:
 543               	.LFBB2:
 544 0288 1F93      		push r17
 545 028a CF93      		push r28
 546 028c DF93      		push r29
 547               	/* prologue: function */
 548               	/* frame size = 0 */
 549               	/* stack size = 3 */
 550               	.L__stack_usage = 3
 551 028e 182F      		mov r17,r24
 552 0290 EB01      		movw r28,r22
 137:one_wire_octalSwitch.c ****    uint16_t value = 0x0;
 138:one_wire_octalSwitch.c ****    // continue if bus isn't active
 139:one_wire_octalSwitch.c ****    if ( 0 == ( ( owiBusMask & bus_pattern ) & 0xFF ) )
 554               	.LM28:
 555 0292 482F      		mov r20,r24
 556 0294 50E0      		ldi r21,0
 557 0296 2091 0000 		lds r18,owiBusMask
 558 029a 3091 0000 		lds r19,owiBusMask+1
 559 029e 2423      		and r18,r20
 560 02a0 3523      		and r19,r21
 561 02a2 232B      		or r18,r19
 562 02a4 01F0      		breq .L25
 140:one_wire_octalSwitch.c ****    {
 141:one_wire_octalSwitch.c ****       return owiReadStatus_owi_bus_mismatch << 8;
 142:one_wire_octalSwitch.c ****    }
 143:one_wire_octalSwitch.c **** 
 144:one_wire_octalSwitch.c ****    // continue if bus doesn't contain any Octal Switches
 145:one_wire_octalSwitch.c ****    if ( 0 == ( ( owiOctalSwitchMask & bus_pattern ) & 0xFF ) )
 564               	.LM29:
 565 02a6 2091 0000 		lds r18,owiOctalSwitchMask
 566 02aa 3091 0000 		lds r19,owiOctalSwitchMask+1
 567 02ae 2423      		and r18,r20
 568 02b0 3523      		and r19,r21
 569 02b2 232B      		or r18,r19
 570 02b4 01F0      		breq .L25
 146:one_wire_octalSwitch.c ****    {
 147:one_wire_octalSwitch.c ****       return owiReadStatus_owi_bus_mismatch << 8;
 148:one_wire_octalSwitch.c ****    }
 149:one_wire_octalSwitch.c **** 
 150:one_wire_octalSwitch.c ****    /* Reset, presence.*/
 151:one_wire_octalSwitch.c ****    if ( OWI_DetectPresence(bus_pattern) == 0 )
 572               	.LM30:
 573 02b6 0E94 0000 		call OWI_DetectPresence
 574 02ba 8823      		tst r24
 575 02bc 01F0      		breq .L26
 152:one_wire_octalSwitch.c ****    {
 153:one_wire_octalSwitch.c ****       return owiReadStatus_no_device_presence << 8;
 154:one_wire_octalSwitch.c ****    }
 155:one_wire_octalSwitch.c **** 
 156:one_wire_octalSwitch.c ****    OWI_MatchRom(id, bus_pattern); /* Match id found earlier*/
 577               	.LM31:
 578 02be 612F      		mov r22,r17
 579 02c0 CE01      		movw r24,r28
 580 02c2 0E94 0000 		call OWI_MatchRom
 157:one_wire_octalSwitch.c ****    OWI_SendByte(DS2408_CHANNEL_ACCESS_READ, bus_pattern); //PIO Access read command
 582               	.LM32:
 583 02c6 612F      		mov r22,r17
 584 02c8 85EF      		ldi r24,lo8(-11)
 585 02ca 0E94 0000 		call OWI_SendByte
 158:one_wire_octalSwitch.c **** 
 159:one_wire_octalSwitch.c ****    /*Read first byte and place them in the 16 bit channel variable*/
 160:one_wire_octalSwitch.c ****    value = OWI_ReceiveByte(bus_pattern);
 587               	.LM33:
 588 02ce 812F      		mov r24,r17
 589 02d0 0E94 0000 		call OWI_ReceiveByte
 161:one_wire_octalSwitch.c ****    value &= 0xFF;
 591               	.LM34:
 592 02d4 C82F      		mov r28,r24
 593 02d6 D0E0      		ldi r29,0
 162:one_wire_octalSwitch.c ****   
 163:one_wire_octalSwitch.c ****    OWI_DetectPresence(bus_pattern); /* generate RESET to stop slave sending its status and presence
 595               	.LM35:
 596 02d8 812F      		mov r24,r17
 597 02da 0E94 0000 		call OWI_DetectPresence
 164:one_wire_octalSwitch.c **** 
 165:one_wire_octalSwitch.c ****    return value | owiReadWriteStatus_OK << 8;
 599               	.LM36:
 600 02de CE01      		movw r24,r28
 601 02e0 00C0      		rjmp .L23
 602               	.L25:
 141:one_wire_octalSwitch.c ****    }
 604               	.LM37:
 605 02e2 80E0      		ldi r24,0
 606 02e4 91E0      		ldi r25,lo8(1)
 607 02e6 00C0      		rjmp .L23
 608               	.L26:
 153:one_wire_octalSwitch.c ****    }
 610               	.LM38:
 611 02e8 80E0      		ldi r24,0
 612 02ea 94E0      		ldi r25,lo8(4)
 613               	.L23:
 614               	/* epilogue start */
 166:one_wire_octalSwitch.c **** }//END of ReadOctalSwitches function
 616               	.LM39:
 617 02ec DF91      		pop r29
 618 02ee CF91      		pop r28
 619 02f0 1F91      		pop r17
 620 02f2 0895      		ret
 625               	.Lscope2:
 630               	.global	WriteOctalSwitches
 632               	WriteOctalSwitches:
 167:one_wire_octalSwitch.c **** 
 168:one_wire_octalSwitch.c **** /*
 169:one_wire_octalSwitch.c ****  *this function writes the state of octal switch
 170:one_wire_octalSwitch.c ****  */
 171:one_wire_octalSwitch.c **** 
 172:one_wire_octalSwitch.c **** uint16_t WriteOctalSwitches( unsigned char bus_pattern, unsigned char * id, uint8_t value )
 173:one_wire_octalSwitch.c **** {
 634               	.LM40:
 635               	.LFBB3:
 636 02f4 EF92      		push r14
 637 02f6 FF92      		push r15
 638 02f8 0F93      		push r16
 639 02fa 1F93      		push r17
 640 02fc CF93      		push r28
 641 02fe DF93      		push r29
 642               	/* prologue: function */
 643               	/* frame size = 0 */
 644               	/* stack size = 6 */
 645               	.L__stack_usage = 6
 646 0300 E82E      		mov r14,r24
 647 0302 EB01      		movw r28,r22
 648 0304 F42E      		mov r15,r20
 174:one_wire_octalSwitch.c ****    static unsigned char timeout_flag;
 175:one_wire_octalSwitch.c ****    static uint32_t count;
 176:one_wire_octalSwitch.c ****    static uint8_t status;
 177:one_wire_octalSwitch.c ****    static uint32_t maxcount = OWI_OCTAL_SWITCHES_MAXIMUM_WRITE_ACCESS_COUNTS;
 178:one_wire_octalSwitch.c **** 
 179:one_wire_octalSwitch.c ****    // continue if bus isn't active
 180:one_wire_octalSwitch.c ****    if ( 0 == ( ( owiBusMask & bus_pattern ) & 0xFF ) )
 650               	.LM41:
 651 0306 482F      		mov r20,r24
 652 0308 50E0      		ldi r21,0
 653 030a 2091 0000 		lds r18,owiBusMask
 654 030e 3091 0000 		lds r19,owiBusMask+1
 655 0312 2423      		and r18,r20
 656 0314 3523      		and r19,r21
 657 0316 232B      		or r18,r19
 658 0318 01F4      		brne .+2
 659 031a 00C0      		rjmp .L35
 181:one_wire_octalSwitch.c ****    {
 182:one_wire_octalSwitch.c ****       return owiReadStatus_owi_bus_mismatch << 8;
 183:one_wire_octalSwitch.c ****    }
 184:one_wire_octalSwitch.c **** 
 185:one_wire_octalSwitch.c ****    // continue if bus doesn't contain any Octal Switches
 186:one_wire_octalSwitch.c ****    if ( 0 == ( ( owiOctalSwitchMask & bus_pattern ) & 0xFF ) )
 661               	.LM42:
 662 031c 2091 0000 		lds r18,owiOctalSwitchMask
 663 0320 3091 0000 		lds r19,owiOctalSwitchMask+1
 664 0324 2423      		and r18,r20
 665 0326 3523      		and r19,r21
 666 0328 232B      		or r18,r19
 667 032a 01F4      		brne .+2
 668 032c 00C0      		rjmp .L35
 187:one_wire_octalSwitch.c ****    {
 188:one_wire_octalSwitch.c ****       return owiReadStatus_owi_bus_mismatch << 8;
 189:one_wire_octalSwitch.c ****    }
 190:one_wire_octalSwitch.c **** 
 191:one_wire_octalSwitch.c ****    /* Reset, presence.*/
 192:one_wire_octalSwitch.c ****    if ( OWI_DetectPresence(bus_pattern) == 0 )
 670               	.LM43:
 671 032e 0E94 0000 		call OWI_DetectPresence
 672 0332 8823      		tst r24
 673 0334 01F4      		brne .+2
 674 0336 00C0      		rjmp .L36
 193:one_wire_octalSwitch.c ****    {
 194:one_wire_octalSwitch.c ****       return owiReadStatus_no_device_presence << 8;
 195:one_wire_octalSwitch.c ****    }
 196:one_wire_octalSwitch.c **** 
 197:one_wire_octalSwitch.c ****    count = maxcount;
 676               	.LM44:
 677 0338 04E6      		ldi r16,lo8(100)
 678 033a 10E0      		ldi r17,0
 679 033c 20E0      		ldi r18,0
 680 033e 30E0      		ldi r19,0
 681 0340 0093 0000 		sts count.3080,r16
 682 0344 1093 0000 		sts count.3080+1,r17
 683 0348 2093 0000 		sts count.3080+2,r18
 684 034c 3093 0000 		sts count.3080+3,r19
 198:one_wire_octalSwitch.c ****    timeout_flag = FALSE;
 686               	.LM45:
 687 0350 1092 0000 		sts timeout_flag.3079,__zero_reg__
 199:one_wire_octalSwitch.c ****    status = 0;
 689               	.LM46:
 690 0354 1092 0000 		sts status.3081,__zero_reg__
 200:one_wire_octalSwitch.c **** 
 201:one_wire_octalSwitch.c ****    /* Match id found earlier*/
 202:one_wire_octalSwitch.c ****    OWI_MatchRom(id, bus_pattern);
 692               	.LM47:
 693 0358 6E2D      		mov r22,r14
 694 035a CE01      		movw r24,r28
 695 035c 0E94 0000 		call OWI_MatchRom
 203:one_wire_octalSwitch.c ****    /* PIO Access write command */
 204:one_wire_octalSwitch.c ****    OWI_SendByte(DS2408_CHANNEL_ACCESS_WRITE, bus_pattern);
 697               	.LM48:
 698 0360 6E2D      		mov r22,r14
 699 0362 8AE5      		ldi r24,lo8(90)
 700 0364 0E94 0000 		call OWI_SendByte
 205:one_wire_octalSwitch.c **** 
 206:one_wire_octalSwitch.c ****    /* loop writing value and its complement, and waiting for confirmation */
 207:one_wire_octalSwitch.c ****    while (DS2408_WRITE_CONFIRMATION_PATTERN != status )
 208:one_wire_octalSwitch.c ****    {
 209:one_wire_octalSwitch.c ****       status = 0;
 210:one_wire_octalSwitch.c ****       /* timeout check */
 211:one_wire_octalSwitch.c ****       if ( 0 == --count)
 212:one_wire_octalSwitch.c ****       {
 213:one_wire_octalSwitch.c ****          timeout_flag = TRUE;
 214:one_wire_octalSwitch.c ****          break;
 215:one_wire_octalSwitch.c ****       }
 216:one_wire_octalSwitch.c **** 
 217:one_wire_octalSwitch.c ****       OWI_SendByte( (value & 0xFF ), bus_pattern); // write value 0:on 1:off
 218:one_wire_octalSwitch.c ****       OWI_SendByte(~(value & 0xFF ), bus_pattern); // to confirm, write inverted
 702               	.LM49:
 703 0368 CF2D      		mov r28,r15
 704 036a C095      		com r28
 705               	.L29:
 207:one_wire_octalSwitch.c ****    {
 707               	.LM50:
 708 036c 8091 0000 		lds r24,status.3081
 709 0370 8A3A      		cpi r24,lo8(-86)
 710 0372 01F0      		breq .L31
 209:one_wire_octalSwitch.c ****       /* timeout check */
 712               	.LM51:
 713 0374 1092 0000 		sts status.3081,__zero_reg__
 211:one_wire_octalSwitch.c ****       {
 715               	.LM52:
 716 0378 0091 0000 		lds r16,count.3080
 717 037c 1091 0000 		lds r17,count.3080+1
 718 0380 2091 0000 		lds r18,count.3080+2
 719 0384 3091 0000 		lds r19,count.3080+3
 720 0388 0150      		subi r16,1
 721 038a 1109      		sbc r17,__zero_reg__
 722 038c 2109      		sbc r18,__zero_reg__
 723 038e 3109      		sbc r19,__zero_reg__
 724 0390 0093 0000 		sts count.3080,r16
 725 0394 1093 0000 		sts count.3080+1,r17
 726 0398 2093 0000 		sts count.3080+2,r18
 727 039c 3093 0000 		sts count.3080+3,r19
 728 03a0 012B      		or r16,r17
 729 03a2 022B      		or r16,r18
 730 03a4 032B      		or r16,r19
 731 03a6 01F4      		brne .L30
 213:one_wire_octalSwitch.c ****          break;
 733               	.LM53:
 734 03a8 81E0      		ldi r24,lo8(1)
 735 03aa 8093 0000 		sts timeout_flag.3079,r24
 214:one_wire_octalSwitch.c ****       }
 737               	.LM54:
 738 03ae 00C0      		rjmp .L31
 739               	.L30:
 217:one_wire_octalSwitch.c ****       OWI_SendByte(~(value & 0xFF ), bus_pattern); // to confirm, write inverted
 741               	.LM55:
 742 03b0 6E2D      		mov r22,r14
 743 03b2 8F2D      		mov r24,r15
 744 03b4 0E94 0000 		call OWI_SendByte
 746               	.LM56:
 747 03b8 6E2D      		mov r22,r14
 748 03ba 8C2F      		mov r24,r28
 749 03bc 0E94 0000 		call OWI_SendByte
 219:one_wire_octalSwitch.c **** 
 220:one_wire_octalSwitch.c ****       /*Read status */
 221:one_wire_octalSwitch.c ****       status = OWI_ReceiveByte(bus_pattern);
 751               	.LM57:
 752 03c0 8E2D      		mov r24,r14
 753 03c2 0E94 0000 		call OWI_ReceiveByte
 754 03c6 8093 0000 		sts status.3081,r24
 755 03ca 00C0      		rjmp .L29
 756               	.L31:
 222:one_wire_octalSwitch.c ****       status &= 0xFF;
 223:one_wire_octalSwitch.c ****    }
 224:one_wire_octalSwitch.c **** 
 225:one_wire_octalSwitch.c ****    if ( FALSE == timeout_flag )
 758               	.LM58:
 759 03cc 8091 0000 		lds r24,timeout_flag.3079
 760 03d0 8111      		cpse r24,__zero_reg__
 761 03d2 00C0      		rjmp .L33
 226:one_wire_octalSwitch.c ****    {
 227:one_wire_octalSwitch.c ****       /*Read first byte*/
 228:one_wire_octalSwitch.c ****       value = OWI_ReceiveByte(bus_pattern);
 763               	.LM59:
 764 03d4 8E2D      		mov r24,r14
 765 03d6 0E94 0000 		call OWI_ReceiveByte
 766 03da C82F      		mov r28,r24
 229:one_wire_octalSwitch.c ****       value &= 0xFF;
 230:one_wire_octalSwitch.c ****       OWI_DetectPresence(bus_pattern); /* generate RESET to stop slave sending its status and prese
 768               	.LM60:
 769 03dc 8E2D      		mov r24,r14
 770 03de 0E94 0000 		call OWI_DetectPresence
 231:one_wire_octalSwitch.c **** 
 232:one_wire_octalSwitch.c ****       return value | owiReadWriteStatus_OK << 8;
 772               	.LM61:
 773 03e2 8C2F      		mov r24,r28
 774 03e4 90E0      		ldi r25,0
 775 03e6 00C0      		rjmp .L28
 776               	.L33:
 233:one_wire_octalSwitch.c ****    }
 234:one_wire_octalSwitch.c ****    else
 235:one_wire_octalSwitch.c ****    {
 236:one_wire_octalSwitch.c ****       OWI_DetectPresence(bus_pattern); /* generate RESET to stop slave sending its status and prese
 778               	.LM62:
 779 03e8 8E2D      		mov r24,r14
 780 03ea 0E94 0000 		call OWI_DetectPresence
 237:one_wire_octalSwitch.c **** 
 238:one_wire_octalSwitch.c ****       CommunicationError_p(ERRG, dynamicMessage_ErrorIndex, TRUE, PSTR("OWI Octal Switch write valu
 782               	.LM63:
 783 03ee 20E0      		ldi r18,lo8(__c.3086)
 784 03f0 30E0      		ldi r19,hi8(__c.3086)
 785 03f2 3F93      		push r19
 786 03f4 2F93      		push r18
 787 03f6 81E0      		ldi r24,lo8(1)
 788 03f8 8F93      		push r24
 789 03fa 8FEF      		ldi r24,lo8(-1)
 790 03fc 8F93      		push r24
 791 03fe 8CE9      		ldi r24,lo8(-100)
 792 0400 8F93      		push r24
 793 0402 1F92      		push __zero_reg__
 794 0404 E091 0000 		lds r30,CommunicationError_p
 795 0408 F091 0000 		lds r31,CommunicationError_p+1
 796 040c 0995      		icall
 239:one_wire_octalSwitch.c **** 
 240:one_wire_octalSwitch.c ****       return value | owiWriteStatus_Timeout << 8;
 798               	.LM64:
 799 040e 8F2D      		mov r24,r15
 800 0410 90E0      		ldi r25,0
 801 0412 9860      		ori r25,8
 802 0414 0F90      		pop __tmp_reg__
 803 0416 0F90      		pop __tmp_reg__
 804 0418 0F90      		pop __tmp_reg__
 805 041a 0F90      		pop __tmp_reg__
 806 041c 0F90      		pop __tmp_reg__
 807 041e 0F90      		pop __tmp_reg__
 808 0420 00C0      		rjmp .L28
 809               	.L35:
 182:one_wire_octalSwitch.c ****    }
 811               	.LM65:
 812 0422 80E0      		ldi r24,0
 813 0424 91E0      		ldi r25,lo8(1)
 814 0426 00C0      		rjmp .L28
 815               	.L36:
 194:one_wire_octalSwitch.c ****    }
 817               	.LM66:
 818 0428 80E0      		ldi r24,0
 819 042a 94E0      		ldi r25,lo8(4)
 820               	.L28:
 821               	/* epilogue start */
 241:one_wire_octalSwitch.c ****    }
 242:one_wire_octalSwitch.c **** 
 243:one_wire_octalSwitch.c **** 
 244:one_wire_octalSwitch.c ****    return  value | owiReadWriteStatus_OK << 8;
 245:one_wire_octalSwitch.c **** }//END of ReadOctalSwitches function
 823               	.LM67:
 824 042c DF91      		pop r29
 825 042e CF91      		pop r28
 826 0430 1F91      		pop r17
 827 0432 0F91      		pop r16
 828 0434 FF90      		pop r15
 829 0436 EF90      		pop r14
 830 0438 0895      		ret
 837               	.Lscope3:
 838               		.section	.progmem.data,"a",@progbits
 841               	__c.3086:
 842 0000 4F57 4920 		.string	"OWI Octal Switch write value timeout"
 842      4F63 7461 
 842      6C20 5377 
 842      6974 6368 
 842      2077 7269 
 843               		.local	status.3081
 844               		.comm	status.3081,1,1
 845               		.local	timeout_flag.3079
 846               		.comm	timeout_flag.3079,1,1
 847               		.local	count.3080
 848               		.comm	count.3080,4,1
 851               	__c.3067:
 852 0025 7772 6974 		.string	"write argument: too many arguments"
 852      6520 6172 
 852      6775 6D65 
 852      6E74 3A20 
 852      746F 6F20 
 855               	__c.3064:
 856 0048 7772 6974 		.string	"write argument: invalid arguments"
 856      6520 6172 
 856      6775 6D65 
 856      6E74 3A20 
 856      696E 7661 
 859               	__c.3062:
 860 006a 7772 6974 		.string	"write argument: %#x is out of range [0,%#x] ... skipping"
 860      6520 6172 
 860      6775 6D65 
 860      6E74 3A20 
 860      2523 7820 
 863               	__c.3060:
 864 00a3 4F57 4453 		.string	"OWDS write ID: %#x pointer (%p)"
 864      2077 7269 
 864      7465 2049 
 864      443A 2025 
 864      2378 2070 
 867               	__c.3057:
 868 00c3 7772 6974 		.string	"write argument: %#x is out of range [0,%#x] ... skipping"
 868      6520 6172 
 868      6775 6D65 
 868      6E74 3A20 
 868      2523 7820 
 871               	__c.3055:
 872 00fc 4F57 3853 		.string	"OW8S write all: %#x, pointer (%p)"
 872      2077 7269 
 872      7465 2061 
 872      6C6C 3A20 
 872      2523 782C 
 875               	__c.3053:
 876 011e 4F57 3853 		.string	"OW8S read ID"
 876      2072 6561 
 876      6420 4944 
 876      00
 879               	__c.3049:
 880 012b 4F57 3853 		.string	"OW8S read all"
 880      2072 6561 
 880      6420 616C 
 880      6C00 
 881               	.global	p_owiOctalSwitchMask
 882               		.data
 885               	p_owiOctalSwitchMask:
 886 0000 0000      		.word	owiOctalSwitchMask
 887               	.global	owiOctalSwitchMask
 888               		.section .bss
 891               	owiOctalSwitchMask:
 892 0000 0000      		.zero	2
 893               		.section	.progmem.data,"a",@progbits
 896               	filename:
 897 0139 6F6E 655F 		.string	"one_wire_octalSwitch.c"
 897      7769 7265 
 897      5F6F 6374 
 897      616C 5377 
 897      6974 6368 
 898               		.comm	ErrorCodes,1,1
 899               		.comm	canTimerInterval,4,1
 905               		.text
 907               	.Letext0:
 908               		.ident	"GCC: (GNU) 4.8.1"
 909               	.global __do_copy_data
 910               	.global __do_clear_bss
DEFINED SYMBOLS
                            *ABS*:00000000 one_wire_octalSwitch.c
     /tmp/ccHxvB0C.s:2      *ABS*:0000003e __SP_H__
     /tmp/ccHxvB0C.s:3      *ABS*:0000003d __SP_L__
     /tmp/ccHxvB0C.s:4      *ABS*:0000003f __SREG__
     /tmp/ccHxvB0C.s:5      *ABS*:0000003b __RAMPZ__
     /tmp/ccHxvB0C.s:6      *ABS*:00000000 __tmp_reg__
     /tmp/ccHxvB0C.s:7      *ABS*:00000001 __zero_reg__
     /tmp/ccHxvB0C.s:165    .text:00000000 owiOctalSwitches
     /tmp/ccHxvB0C.s:891    .bss:00000000 owiOctalSwitchMask
     /tmp/ccHxvB0C.s:885    .data:00000000 p_owiOctalSwitchMask
     /tmp/ccHxvB0C.s:879    .progmem.data:0000012b __c.3049
     /tmp/ccHxvB0C.s:896    .progmem.data:00000139 filename
     /tmp/ccHxvB0C.s:875    .progmem.data:0000011e __c.3053
     /tmp/ccHxvB0C.s:871    .progmem.data:000000fc __c.3055
     /tmp/ccHxvB0C.s:867    .progmem.data:000000c3 __c.3057
     /tmp/ccHxvB0C.s:863    .progmem.data:000000a3 __c.3060
     /tmp/ccHxvB0C.s:859    .progmem.data:0000006a __c.3062
     /tmp/ccHxvB0C.s:855    .progmem.data:00000048 __c.3064
     /tmp/ccHxvB0C.s:851    .progmem.data:00000025 __c.3067
     /tmp/ccHxvB0C.s:540    .text:00000288 ReadOctalSwitches
     /tmp/ccHxvB0C.s:632    .text:000002f4 WriteOctalSwitches
     /tmp/ccHxvB0C.s:846    .bss:00000004 count.3080
     /tmp/ccHxvB0C.s:844    .bss:00000003 timeout_flag.3079
                             .bss:00000002 status.3081
     /tmp/ccHxvB0C.s:841    .progmem.data:00000000 __c.3086
                            *COM*:00000001 ErrorCodes
                            *COM*:00000004 canTimerInterval

UNDEFINED SYMBOLS
BUSES
owiReadDevicesID
NumDevicesFound
owiScanIDS
printDebug_p
ptr_owiStruct
CommunicationError_p
owiFindFamilyDevicesAndAccessValues
owiBusMask
OWI_DetectPresence
OWI_MatchRom
OWI_SendByte
OWI_ReceiveByte
__do_copy_data
__do_clear_bss
