Subversion Repositories Projects

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
96 gunterl 1
 
2
main.elf:     file format elf32-avr
3
 
4
Sections:
5
Idx Name          Size      VMA       LMA       File off  Algn
6
 
7
                  CONTENTS, ALLOC, LOAD, DATA
8
  1 .text         000011b8  00000000  00000000  00000094  2**1
9
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
10
  2 .bss          000000cc  008003d8  008003d8  00001524  2**0
11
                  ALLOC
12
  3 .stab         00000378  00000000  00000000  00001524  2**2
13
                  CONTENTS, READONLY, DEBUGGING
14
  4 .stabstr      00000071  00000000  00000000  0000189c  2**0
15
                  CONTENTS, READONLY, DEBUGGING
16
  5 .debug_aranges 00000020  00000000  00000000  0000190d  2**0
17
                  CONTENTS, READONLY, DEBUGGING
18
  6 .debug_pubnames 00000207  00000000  00000000  0000192d  2**0
19
                  CONTENTS, READONLY, DEBUGGING
20
  7 .debug_info   000007c7  00000000  00000000  00001b34  2**0
21
                  CONTENTS, READONLY, DEBUGGING
22
  8 .debug_abbrev 0000020c  00000000  00000000  000022fb  2**0
23
                  CONTENTS, READONLY, DEBUGGING
24
  9 .debug_line   00000d5d  00000000  00000000  00002507  2**0
25
                  CONTENTS, READONLY, DEBUGGING
26
 10 .debug_frame  000000a0  00000000  00000000  00003264  2**2
27
                  CONTENTS, READONLY, DEBUGGING
28
 11 .debug_str    00000287  00000000  00000000  00003304  2**0
29
                  CONTENTS, READONLY, DEBUGGING
30
 12 .debug_loc    00000453  00000000  00000000  0000358b  2**0
31
                  CONTENTS, READONLY, DEBUGGING
32
Disassembly of section .text:
33
 
34
00000000 <__vectors>:
35
       0:	19 c0       	rjmp	.+50     	; 0x34 <__ctors_end>
36
       2:	70 c8       	rjmp	.-3872   	; 0xfffff0e4 <__eeprom_end+0xff7ef0e4>
37
       4:	9c c8       	rjmp	.-3784   	; 0xfffff13e <__eeprom_end+0xff7ef13e>
38
       6:	31 c0       	rjmp	.+98     	; 0x6a <__bad_interrupt>
39
       8:	30 c0       	rjmp	.+96     	; 0x6a <__bad_interrupt>
40
       a:	2f c0       	rjmp	.+94     	; 0x6a <__bad_interrupt>
41
       c:	2e c0       	rjmp	.+92     	; 0x6a <__bad_interrupt>
42
       e:	2d c0       	rjmp	.+90     	; 0x6a <__bad_interrupt>
43
      10:	2c c0       	rjmp	.+88     	; 0x6a <__bad_interrupt>
44
      12:	2b c0       	rjmp	.+86     	; 0x6a <__bad_interrupt>
45
      14:	2a c0       	rjmp	.+84     	; 0x6a <__bad_interrupt>
46
      16:	29 c0       	rjmp	.+82     	; 0x6a <__bad_interrupt>
47
      18:	28 c0       	rjmp	.+80     	; 0x6a <__bad_interrupt>
48
      1a:	27 c0       	rjmp	.+78     	; 0x6a <__bad_interrupt>
49
      1c:	26 c0       	rjmp	.+76     	; 0x6a <__bad_interrupt>
50
      1e:	25 c0       	rjmp	.+74     	; 0x6a <__bad_interrupt>
51
      20:	24 c0       	rjmp	.+72     	; 0x6a <__bad_interrupt>
52
      22:	23 c0       	rjmp	.+70     	; 0x6a <__bad_interrupt>
53
      24:	22 c0       	rjmp	.+68     	; 0x6a <__bad_interrupt>
54
      26:	21 c0       	rjmp	.+66     	; 0x6a <__bad_interrupt>
55
      28:	20 c0       	rjmp	.+64     	; 0x6a <__bad_interrupt>
56
      2a:	1f c0       	rjmp	.+62     	; 0x6a <__bad_interrupt>
57
      2c:	1e c0       	rjmp	.+60     	; 0x6a <__bad_interrupt>
58
      2e:	1d c0       	rjmp	.+58     	; 0x6a <__bad_interrupt>
59
      30:	1c c0       	rjmp	.+56     	; 0x6a <__bad_interrupt>
60
      32:	1b c0       	rjmp	.+54     	; 0x6a <__bad_interrupt>
61
 
62
00000034 <__ctors_end>:
63
      34:	11 24       	eor	r1, r1
64
      36:	1f be       	out	0x3f, r1	; 63
65
      38:	cf ef       	ldi	r28, 0xFF	; 255
66
      3a:	d4 e0       	ldi	r29, 0x04	; 4
67
      3c:	de bf       	out	0x3e, r29	; 62
68
      3e:	cd bf       	out	0x3d, r28	; 61
69
 
70
00000040 <__do_copy_data>:
71
      40:	13 e0       	ldi	r17, 0x03	; 3
72
      42:	a0 e0       	ldi	r26, 0x00	; 0
73
      44:	b1 e0       	ldi	r27, 0x01	; 1
74
      46:	e8 eb       	ldi	r30, 0xB8	; 184
75
      48:	f1 e1       	ldi	r31, 0x11	; 17
76
      4a:	02 c0       	rjmp	.+4      	; 0x50 <.do_copy_data_start>
77
 
78
0000004c <.do_copy_data_loop>:
79
      4c:	05 90       	lpm	r0, Z+
80
      4e:	0d 92       	st	X+, r0
81
 
82
00000050 <.do_copy_data_start>:
83
      50:	a8 3d       	cpi	r26, 0xD8	; 216
84
      52:	b1 07       	cpc	r27, r17
85
      54:	d9 f7       	brne	.-10     	; 0x4c <.do_copy_data_loop>
86
 
87
00000056 <__do_clear_bss>:
88
      56:	14 e0       	ldi	r17, 0x04	; 4
89
      58:	a8 ed       	ldi	r26, 0xD8	; 216
90
      5a:	b3 e0       	ldi	r27, 0x03	; 3
91
      5c:	01 c0       	rjmp	.+2      	; 0x60 <.do_clear_bss_start>
92
 
93
0000005e <.do_clear_bss_loop>:
94
      5e:	1d 92       	st	X+, r1
95
 
96
00000060 <.do_clear_bss_start>:
97
      60:	a4 3a       	cpi	r26, 0xA4	; 164
98
      62:	b1 07       	cpc	r27, r17
99
      64:	e1 f7       	brne	.-8      	; 0x5e <.do_clear_bss_loop>
100
      66:	f6 d1       	rcall	.+1004   	; 0x454 <main>
101
      68:	a6 c8       	rjmp	.-3764   	; 0xfffff1b6 <__eeprom_end+0xff7ef1b6>
102
 
103
0000006a <__bad_interrupt>:
104
      6a:	ca cf       	rjmp	.-108    	; 0x0 <__vectors>
105
 
106
0000006c <GR_Copy>:
107
//-----------------------------------------------------------------------------
108
// copy bitmap
109
//-----------------------------------------------------------------------------
110
extern void GR_Copy(unsigned char* source,int start,int max)
111
{
112
      6c:	dc 01       	movw	r26, r24
113
	int i;
114
	for(i=0;i<max;i++)
115
      6e:	14 16       	cp	r1, r20
116
      70:	15 06       	cpc	r1, r21
117
      72:	64 f4       	brge	.+24     	; 0x8c <GR_Copy+0x20>
118
      74:	fb 01       	movw	r30, r22
119
      76:	e9 5c       	subi	r30, 0xC9	; 201
120
      78:	fe 4f       	sbci	r31, 0xFE	; 254
121
      7a:	20 e0       	ldi	r18, 0x00	; 0
122
      7c:	30 e0       	ldi	r19, 0x00	; 0
123
	{
124
	  dmem[start+i]=*source;
125
      7e:	8d 91       	ld	r24, X+
126
      80:	81 93       	st	Z+, r24
127
      82:	2f 5f       	subi	r18, 0xFF	; 255
128
      84:	3f 4f       	sbci	r19, 0xFF	; 255
129
      86:	42 17       	cp	r20, r18
130
      88:	53 07       	cpc	r21, r19
131
      8a:	c9 f7       	brne	.-14     	; 0x7e <GR_Copy+0x12>
132
      8c:	08 95       	ret
133
 
134
0000008e <GR_Clear>:
135
	  source++;
136
	}
137
}
138
 
139
//-----------------------------------------------------------------------------
140
// Clear Graphic Area
141
//-----------------------------------------------------------------------------
142
extern void GR_Clear()
143
{
144
      8e:	e7 e3       	ldi	r30, 0x37	; 55
145
      90:	f1 e0       	ldi	r31, 0x01	; 1
146
      92:	8f e4       	ldi	r24, 0x4F	; 79
147
      94:	92 e0       	ldi	r25, 0x02	; 2
148
	int i;
149
	for(i=0;i<GR_MaxGraph;i++)
150
	{
151
		dmem[i]=0;
152
      96:	11 92       	st	Z+, r1
153
      98:	e8 17       	cp	r30, r24
154
      9a:	f9 07       	cpc	r31, r25
155
      9c:	e1 f7       	brne	.-8      	; 0x96 <GR_Clear+0x8>
156
      9e:	08 95       	ret
157
 
158
000000a0 <Decode64>:
159
	}
160
}
161
 
162
//-----------------------------------------------------------------------------
163
// Show and Hide Graphic area and Background
164
//-----------------------------------------------------------------------------
165
#define SHOWGRAPHIC 	showgraphic=1
166
#define HIDEGRAPHIC		showgraphic=0
167
#define SHOWGRAPHICBACK	showgraphicb=1
168
#define HIDEGRAPHICBACK showgraphicb=0
169
 
170
 
171
//-----------------------------------------------------------------------------
172
// Decode64
173
//-----------------------------------------------------------------------------
174
extern void Decode64(unsigned char *ptrOut, unsigned char len, unsigned char ptrIn,unsigned char max)
175
{
176
      a0:	ef 92       	push	r14
177
      a2:	ff 92       	push	r15
178
      a4:	1f 93       	push	r17
179
      a6:	cf 93       	push	r28
180
      a8:	df 93       	push	r29
181
      aa:	ec 01       	movw	r28, r24
182
      ac:	16 2f       	mov	r17, r22
183
	unsigned char a,b,c,d;
184
	unsigned char ptr = 0;
185
	unsigned char x,y,z;
186
	while(len)
187
      ae:	66 23       	and	r22, r22
188
      b0:	09 f4       	brne	.+2      	; 0xb4 <Decode64+0x14>
189
      b2:	7b c0       	rjmp	.+246    	; 0x1aa <Decode64+0x10a>
190
	{
191
		a = RxdBuffer[ptrIn++] - '=';
192
      b4:	a4 ef       	ldi	r26, 0xF4	; 244
193
      b6:	b3 e0       	ldi	r27, 0x03	; 3
194
      b8:	fd 01       	movw	r30, r26
195
      ba:	e4 0f       	add	r30, r20
196
      bc:	f1 1d       	adc	r31, r1
197
      be:	50 81       	ld	r21, Z
198
      c0:	84 2f       	mov	r24, r20
199
      c2:	8f 5f       	subi	r24, 0xFF	; 255
200
		b = RxdBuffer[ptrIn++] - '=';
201
      c4:	fd 01       	movw	r30, r26
202
      c6:	e8 0f       	add	r30, r24
203
      c8:	f1 1d       	adc	r31, r1
204
      ca:	30 81       	ld	r19, Z
205
      cc:	8f 5f       	subi	r24, 0xFF	; 255
206
		c = RxdBuffer[ptrIn++] - '=';
207
      ce:	fd 01       	movw	r30, r26
208
      d0:	e8 0f       	add	r30, r24
209
      d2:	f1 1d       	adc	r31, r1
210
      d4:	e0 81       	ld	r30, Z
211
      d6:	8f 5f       	subi	r24, 0xFF	; 255
212
		d = RxdBuffer[ptrIn++] - '=';
213
      d8:	a8 0f       	add	r26, r24
214
      da:	b1 1d       	adc	r27, r1
215
      dc:	ac 91       	ld	r26, X
216
      de:	4c 5f       	subi	r20, 0xFC	; 252
217
		if(ptrIn > max - 2) break;
218
      e0:	82 2f       	mov	r24, r18
219
      e2:	99 27       	eor	r25, r25
220
      e4:	0f 2e       	mov	r0, r31
221
      e6:	fe ef       	ldi	r31, 0xFE	; 254
222
      e8:	ef 2e       	mov	r14, r31
223
      ea:	ff ef       	ldi	r31, 0xFF	; 255
224
      ec:	ff 2e       	mov	r15, r31
225
      ee:	f0 2d       	mov	r31, r0
226
      f0:	e8 0e       	add	r14, r24
227
      f2:	f9 1e       	adc	r15, r25
228
      f4:	84 2f       	mov	r24, r20
229
      f6:	99 27       	eor	r25, r25
230
      f8:	e8 16       	cp	r14, r24
231
      fa:	f9 06       	cpc	r15, r25
232
      fc:	0c f4       	brge	.+2      	; 0x100 <Decode64+0x60>
233
      fe:	55 c0       	rjmp	.+170    	; 0x1aa <Decode64+0x10a>
234
     100:	85 2f       	mov	r24, r21
235
     102:	8d 53       	subi	r24, 0x3D	; 61
236
     104:	3d 53       	subi	r19, 0x3D	; 61
237
     106:	5e 2f       	mov	r21, r30
238
     108:	5d 53       	subi	r21, 0x3D	; 61
239
     10a:	ad 53       	subi	r26, 0x3D	; 61
240
     10c:	20 e0       	ldi	r18, 0x00	; 0
241
     10e:	64 ef       	ldi	r22, 0xF4	; 244
242
     110:	73 e0       	ldi	r23, 0x03	; 3
243
     112:	20 c0       	rjmp	.+64     	; 0x154 <Decode64+0xb4>
244
     114:	fb 01       	movw	r30, r22
245
     116:	e4 0f       	add	r30, r20
246
     118:	f1 1d       	adc	r31, r1
247
     11a:	b0 81       	ld	r27, Z
248
     11c:	84 2f       	mov	r24, r20
249
     11e:	8f 5f       	subi	r24, 0xFF	; 255
250
     120:	fb 01       	movw	r30, r22
251
     122:	e8 0f       	add	r30, r24
252
     124:	f1 1d       	adc	r31, r1
253
     126:	30 81       	ld	r19, Z
254
     128:	8f 5f       	subi	r24, 0xFF	; 255
255
     12a:	fb 01       	movw	r30, r22
256
     12c:	e8 0f       	add	r30, r24
257
     12e:	f1 1d       	adc	r31, r1
258
     130:	50 81       	ld	r21, Z
259
     132:	8f 5f       	subi	r24, 0xFF	; 255
260
     134:	fb 01       	movw	r30, r22
261
     136:	e8 0f       	add	r30, r24
262
     138:	f1 1d       	adc	r31, r1
263
     13a:	a0 81       	ld	r26, Z
264
     13c:	4c 5f       	subi	r20, 0xFC	; 252
265
     13e:	84 2f       	mov	r24, r20
266
     140:	99 27       	eor	r25, r25
267
     142:	e8 16       	cp	r14, r24
268
     144:	f9 06       	cpc	r15, r25
269
     146:	8c f1       	brlt	.+98     	; 0x1aa <Decode64+0x10a>
270
     148:	8b 2f       	mov	r24, r27
271
     14a:	8d 53       	subi	r24, 0x3D	; 61
272
     14c:	3d 53       	subi	r19, 0x3D	; 61
273
     14e:	5d 53       	subi	r21, 0x3D	; 61
274
     150:	ad 53       	subi	r26, 0x3D	; 61
275
     152:	2d 5f       	subi	r18, 0xFD	; 253
276
 
277
		x = (a << 2) | (b >> 4);
278
		y = ((b & 0x0f) << 4) | (c >> 2);
279
		z = ((c & 0x03) << 6) | d;
280
 
281
		if(len--) ptrOut[ptr++] = x; else break;
282
     154:	fe 01       	movw	r30, r28
283
     156:	e2 0f       	add	r30, r18
284
     158:	f1 1d       	adc	r31, r1
285
     15a:	88 0f       	add	r24, r24
286
     15c:	88 0f       	add	r24, r24
287
     15e:	93 2f       	mov	r25, r19
288
     160:	92 95       	swap	r25
289
     162:	9f 70       	andi	r25, 0x0F	; 15
290
     164:	89 2b       	or	r24, r25
291
     166:	80 83       	st	Z, r24
292
		if(len--) ptrOut[ptr++] = y; else break;
293
     168:	11 30       	cpi	r17, 0x01	; 1
294
     16a:	f9 f0       	breq	.+62     	; 0x1aa <Decode64+0x10a>
295
     16c:	82 2f       	mov	r24, r18
296
     16e:	8f 5f       	subi	r24, 0xFF	; 255
297
     170:	fe 01       	movw	r30, r28
298
     172:	e8 0f       	add	r30, r24
299
     174:	f1 1d       	adc	r31, r1
300
     176:	83 2f       	mov	r24, r19
301
     178:	82 95       	swap	r24
302
     17a:	80 7f       	andi	r24, 0xF0	; 240
303
     17c:	95 2f       	mov	r25, r21
304
     17e:	96 95       	lsr	r25
305
     180:	96 95       	lsr	r25
306
     182:	89 2b       	or	r24, r25
307
     184:	80 83       	st	Z, r24
308
     186:	13 50       	subi	r17, 0x03	; 3
309
		if(len--) ptrOut[ptr++] = z; else break;
310
     188:	1f 3f       	cpi	r17, 0xFF	; 255
311
     18a:	79 f0       	breq	.+30     	; 0x1aa <Decode64+0x10a>
312
     18c:	82 2f       	mov	r24, r18
313
     18e:	8e 5f       	subi	r24, 0xFE	; 254
314
     190:	fe 01       	movw	r30, r28
315
     192:	e8 0f       	add	r30, r24
316
     194:	f1 1d       	adc	r31, r1
317
     196:	85 2f       	mov	r24, r21
318
     198:	82 95       	swap	r24
319
     19a:	88 0f       	add	r24, r24
320
     19c:	88 0f       	add	r24, r24
321
     19e:	80 7c       	andi	r24, 0xC0	; 192
322
     1a0:	8a 2b       	or	r24, r26
323
     1a2:	80 83       	st	Z, r24
324
     1a4:	11 23       	and	r17, r17
325
     1a6:	09 f0       	breq	.+2      	; 0x1aa <Decode64+0x10a>
326
     1a8:	b5 cf       	rjmp	.-150    	; 0x114 <Decode64+0x74>
327
     1aa:	df 91       	pop	r29
328
     1ac:	cf 91       	pop	r28
329
     1ae:	1f 91       	pop	r17
330
     1b0:	ff 90       	pop	r15
331
     1b2:	ef 90       	pop	r14
332
     1b4:	08 95       	ret
333
 
334
000001b6 <process_rxdata>:
335
	}
336
}
337
 
338
//-----------------------------------------------------------------------------
339
// process RX Data
340
//-----------------------------------------------------------------------------
341
extern void process_rxdata(unsigned char c)
342
{
343
     1b6:	80 93 e1 03 	sts	0x03E1, r24
344
	static unsigned int crc;
345
	static unsigned char crc1,crc2,buf_ptr;
346
	static unsigned char UartState = 0;
347
	unsigned char CrcOkay = 0;
348
 
349
	SioTmp=c;
350
 
351
	if(buf_ptr >= MAX_RX_BUF)
352
     1ba:	50 91 e6 03 	lds	r21, 0x03E6
353
     1be:	54 36       	cpi	r21, 0x64	; 100
354
     1c0:	10 f0       	brcs	.+4      	; 0x1c6 <process_rxdata+0x10>
355
		UartState = 0;
356
     1c2:	10 92 e5 03 	sts	0x03E5, r1
357
	if(SioTmp == '\r' && UartState == 2)
358
     1c6:	80 91 e1 03 	lds	r24, 0x03E1
359
     1ca:	8d 30       	cpi	r24, 0x0D	; 13
360
     1cc:	09 f0       	breq	.+2      	; 0x1d0 <process_rxdata+0x1a>
361
     1ce:	5c c0       	rjmp	.+184    	; 0x288 <process_rxdata+0xd2>
362
     1d0:	80 91 e5 03 	lds	r24, 0x03E5
363
     1d4:	82 30       	cpi	r24, 0x02	; 2
364
     1d6:	09 f0       	breq	.+2      	; 0x1da <process_rxdata+0x24>
365
     1d8:	57 c0       	rjmp	.+174    	; 0x288 <process_rxdata+0xd2>
366
	{
367
		UartState = 0;
368
     1da:	10 92 e5 03 	sts	0x03E5, r1
369
		crc -= RxdBuffer[buf_ptr-2];
370
     1de:	65 2f       	mov	r22, r21
371
     1e0:	77 27       	eor	r23, r23
372
     1e2:	fb 01       	movw	r30, r22
373
     1e4:	32 97       	sbiw	r30, 0x02	; 2
374
     1e6:	24 ef       	ldi	r18, 0xF4	; 244
375
     1e8:	33 e0       	ldi	r19, 0x03	; 3
376
     1ea:	e2 0f       	add	r30, r18
377
     1ec:	f3 1f       	adc	r31, r19
378
     1ee:	40 81       	ld	r20, Z
379
		crc -= RxdBuffer[buf_ptr-1];
380
     1f0:	cb 01       	movw	r24, r22
381
     1f2:	01 97       	sbiw	r24, 0x01	; 1
382
     1f4:	dc 01       	movw	r26, r24
383
     1f6:	a2 0f       	add	r26, r18
384
     1f8:	b3 1f       	adc	r27, r19
385
     1fa:	2c 91       	ld	r18, X
386
		crc %= 4096;
387
     1fc:	80 91 e9 03 	lds	r24, 0x03E9
388
     200:	90 91 ea 03 	lds	r25, 0x03EA
389
     204:	84 1b       	sub	r24, r20
390
     206:	91 09       	sbc	r25, r1
391
     208:	82 1b       	sub	r24, r18
392
     20a:	91 09       	sbc	r25, r1
393
     20c:	9f 70       	andi	r25, 0x0F	; 15
394
     20e:	90 93 ea 03 	sts	0x03EA, r25
395
     212:	80 93 e9 03 	sts	0x03E9, r24
396
		crc1 = '=' + crc / 64;
397
     216:	9c 01       	movw	r18, r24
398
     218:	00 24       	eor	r0, r0
399
     21a:	22 0f       	add	r18, r18
400
     21c:	33 1f       	adc	r19, r19
401
     21e:	00 1c       	adc	r0, r0
402
     220:	22 0f       	add	r18, r18
403
     222:	33 1f       	adc	r19, r19
404
     224:	00 1c       	adc	r0, r0
405
     226:	23 2f       	mov	r18, r19
406
     228:	30 2d       	mov	r19, r0
407
     22a:	23 5c       	subi	r18, 0xC3	; 195
408
     22c:	20 93 e8 03 	sts	0x03E8, r18
409
		crc2 = '=' + crc % 64;
410
     230:	8f 73       	andi	r24, 0x3F	; 63
411
     232:	38 2f       	mov	r19, r24
412
     234:	33 5c       	subi	r19, 0xC3	; 195
413
     236:	30 93 e7 03 	sts	0x03E7, r19
414
		CrcOkay = 0;
415
		if((crc1 == RxdBuffer[buf_ptr-2]) && (crc2 == RxdBuffer[buf_ptr-1]))
416
     23a:	80 81       	ld	r24, Z
417
     23c:	28 17       	cp	r18, r24
418
     23e:	29 f4       	brne	.+10     	; 0x24a <process_rxdata+0x94>
419
     240:	8c 91       	ld	r24, X
420
     242:	38 17       	cp	r19, r24
421
     244:	11 f4       	brne	.+4      	; 0x24a <process_rxdata+0x94>
422
     246:	91 e0       	ldi	r25, 0x01	; 1
423
     248:	09 c0       	rjmp	.+18     	; 0x25c <process_rxdata+0xa6>
424
		{
425
			CrcOkay = 1;
426
		}
427
		else
428
		{
429
			CrcOkay = 0;
430
			CntCrcError++;
431
     24a:	80 91 e3 03 	lds	r24, 0x03E3
432
     24e:	8f 5f       	subi	r24, 0xFF	; 255
433
     250:	80 93 e3 03 	sts	0x03E3, r24
434
			display_line1[1]='E';
435
     254:	85 e4       	ldi	r24, 0x45	; 69
436
     256:	80 93 59 04 	sts	0x0459, r24
437
     25a:	90 e0       	ldi	r25, 0x00	; 0
438
 
439
		}
440
		if(!NeuerDatensatzEmpfangen && CrcOkay) // Datensatz schon verarbeitet
441
     25c:	80 91 e2 03 	lds	r24, 0x03E2
442
     260:	88 23       	and	r24, r24
443
     262:	09 f0       	breq	.+2      	; 0x266 <process_rxdata+0xb0>
444
     264:	7e c0       	rjmp	.+252    	; 0x362 <process_rxdata+0x1ac>
445
     266:	99 23       	and	r25, r25
446
     268:	09 f4       	brne	.+2      	; 0x26c <process_rxdata+0xb6>
447
     26a:	7b c0       	rjmp	.+246    	; 0x362 <process_rxdata+0x1ac>
448
		{
449
			NeuerDatensatzEmpfangen = 1;
450
     26c:	81 e0       	ldi	r24, 0x01	; 1
451
     26e:	80 93 e2 03 	sts	0x03E2, r24
452
			AnzahlEmpfangsBytes = buf_ptr;
453
     272:	50 93 e4 03 	sts	0x03E4, r21
454
			RxdBuffer[buf_ptr] = '\r';
455
     276:	fb 01       	movw	r30, r22
456
     278:	ec 50       	subi	r30, 0x0C	; 12
457
     27a:	fc 4f       	sbci	r31, 0xFC	; 252
458
     27c:	8d e0       	ldi	r24, 0x0D	; 13
459
     27e:	80 83       	st	Z, r24
460
			display_line1[1]='R';
461
     280:	82 e5       	ldi	r24, 0x52	; 82
462
     282:	80 93 59 04 	sts	0x0459, r24
463
     286:	6d c0       	rjmp	.+218    	; 0x362 <process_rxdata+0x1ac>
464
		}
465
	}
466
	else
467
	switch(UartState)
468
     288:	80 91 e5 03 	lds	r24, 0x03E5
469
     28c:	81 30       	cpi	r24, 0x01	; 1
470
     28e:	31 f1       	breq	.+76     	; 0x2dc <process_rxdata+0x126>
471
     290:	81 30       	cpi	r24, 0x01	; 1
472
     292:	20 f0       	brcs	.+8      	; 0x29c <process_rxdata+0xe6>
473
     294:	82 30       	cpi	r24, 0x02	; 2
474
     296:	09 f0       	breq	.+2      	; 0x29a <process_rxdata+0xe4>
475
     298:	5f c0       	rjmp	.+190    	; 0x358 <process_rxdata+0x1a2>
476
     29a:	3e c0       	rjmp	.+124    	; 0x318 <process_rxdata+0x162>
477
	{
478
		case 0:
479
          if(SioTmp == '#' && !NeuerDatensatzEmpfangen) UartState = 1;  // Startzeichen und Daten schon verarbeitet
480
     29c:	80 91 e1 03 	lds	r24, 0x03E1
481
     2a0:	83 32       	cpi	r24, 0x23	; 35
482
     2a2:	39 f4       	brne	.+14     	; 0x2b2 <process_rxdata+0xfc>
483
     2a4:	80 91 e2 03 	lds	r24, 0x03E2
484
     2a8:	88 23       	and	r24, r24
485
     2aa:	19 f4       	brne	.+6      	; 0x2b2 <process_rxdata+0xfc>
486
     2ac:	81 e0       	ldi	r24, 0x01	; 1
487
     2ae:	80 93 e5 03 	sts	0x03E5, r24
488
		  buf_ptr = 0;
489
		  RxdBuffer[buf_ptr++] = SioTmp;
490
     2b2:	80 91 e1 03 	lds	r24, 0x03E1
491
     2b6:	80 93 f4 03 	sts	0x03F4, r24
492
     2ba:	81 e0       	ldi	r24, 0x01	; 1
493
     2bc:	80 93 e6 03 	sts	0x03E6, r24
494
		  crc = SioTmp;
495
     2c0:	80 91 e1 03 	lds	r24, 0x03E1
496
     2c4:	99 27       	eor	r25, r25
497
     2c6:	90 93 ea 03 	sts	0x03EA, r25
498
     2ca:	80 93 e9 03 	sts	0x03E9, r24
499
		  display_line1[2]='A';
500
     2ce:	81 e4       	ldi	r24, 0x41	; 65
501
     2d0:	80 93 5a 04 	sts	0x045A, r24
502
		  display_line1[1]='X';
503
     2d4:	88 e5       	ldi	r24, 0x58	; 88
504
     2d6:	80 93 59 04 	sts	0x0459, r24
505
     2da:	43 c0       	rjmp	.+134    	; 0x362 <process_rxdata+0x1ac>
506
          break;
507
		case 1: // Adresse auswerten
508
		  UartState++;
509
     2dc:	82 e0       	ldi	r24, 0x02	; 2
510
     2de:	80 93 e5 03 	sts	0x03E5, r24
511
		  RxdBuffer[buf_ptr++] = SioTmp;
512
     2e2:	80 91 e1 03 	lds	r24, 0x03E1
513
     2e6:	e4 ef       	ldi	r30, 0xF4	; 244
514
     2e8:	f3 e0       	ldi	r31, 0x03	; 3
515
     2ea:	e5 0f       	add	r30, r21
516
     2ec:	f1 1d       	adc	r31, r1
517
     2ee:	80 83       	st	Z, r24
518
     2f0:	85 2f       	mov	r24, r21
519
     2f2:	8f 5f       	subi	r24, 0xFF	; 255
520
     2f4:	80 93 e6 03 	sts	0x03E6, r24
521
		  crc += SioTmp;
522
     2f8:	20 91 e1 03 	lds	r18, 0x03E1
523
     2fc:	80 91 e9 03 	lds	r24, 0x03E9
524
     300:	90 91 ea 03 	lds	r25, 0x03EA
525
     304:	82 0f       	add	r24, r18
526
     306:	91 1d       	adc	r25, r1
527
     308:	90 93 ea 03 	sts	0x03EA, r25
528
     30c:	80 93 e9 03 	sts	0x03E9, r24
529
		  display_line1[2]='B';
530
     310:	82 e4       	ldi	r24, 0x42	; 66
531
     312:	80 93 5a 04 	sts	0x045A, r24
532
     316:	25 c0       	rjmp	.+74     	; 0x362 <process_rxdata+0x1ac>
533
		  break;
534
		case 2: //  Eingangsdaten sammeln
535
		  RxdBuffer[buf_ptr] = SioTmp;
536
     318:	80 91 e1 03 	lds	r24, 0x03E1
537
     31c:	e4 ef       	ldi	r30, 0xF4	; 244
538
     31e:	f3 e0       	ldi	r31, 0x03	; 3
539
     320:	e5 0f       	add	r30, r21
540
     322:	f1 1d       	adc	r31, r1
541
     324:	80 83       	st	Z, r24
542
		  if(buf_ptr < MAX_RX_BUF) buf_ptr++;
543
     326:	54 36       	cpi	r21, 0x64	; 100
544
     328:	28 f4       	brcc	.+10     	; 0x334 <process_rxdata+0x17e>
545
     32a:	85 2f       	mov	r24, r21
546
     32c:	8f 5f       	subi	r24, 0xFF	; 255
547
     32e:	80 93 e6 03 	sts	0x03E6, r24
548
     332:	02 c0       	rjmp	.+4      	; 0x338 <process_rxdata+0x182>
549
		  else UartState = 0;
550
     334:	10 92 e5 03 	sts	0x03E5, r1
551
		  crc += SioTmp;
552
     338:	80 91 e1 03 	lds	r24, 0x03E1
553
     33c:	20 91 e9 03 	lds	r18, 0x03E9
554
     340:	30 91 ea 03 	lds	r19, 0x03EA
555
     344:	28 0f       	add	r18, r24
556
     346:	31 1d       	adc	r19, r1
557
     348:	30 93 ea 03 	sts	0x03EA, r19
558
     34c:	20 93 e9 03 	sts	0x03E9, r18
559
		  display_line1[2]='C';
560
     350:	83 e4       	ldi	r24, 0x43	; 67
561
     352:	80 93 5a 04 	sts	0x045A, r24
562
     356:	05 c0       	rjmp	.+10     	; 0x362 <process_rxdata+0x1ac>
563
		  break;
564
		default:
565
          UartState = 0;
566
     358:	10 92 e5 03 	sts	0x03E5, r1
567
  		  display_line1[2]='D';
568
     35c:	84 e4       	ldi	r24, 0x44	; 68
569
     35e:	80 93 5a 04 	sts	0x045A, r24
570
          break;
571
	}
572
 
573
 
574
	if(rxtx[8]==0x00)
575
     362:	80 91 0a 01 	lds	r24, 0x010A
576
     366:	88 23       	and	r24, r24
577
     368:	21 f4       	brne	.+8      	; 0x372 <process_rxdata+0x1bc>
578
		rxtx[8]=0x01;
579
     36a:	81 e0       	ldi	r24, 0x01	; 1
580
     36c:	80 93 0a 01 	sts	0x010A, r24
581
     370:	08 95       	ret
582
	else
583
		rxtx[8]=0x00;
584
     372:	10 92 0a 01 	sts	0x010A, r1
585
     376:	08 95       	ret
586
 
587
00000378 <convert_uint16>:
588
}
589
 
590
//-----------------------------------------------------------------------------
591
// convert_uint16
592
//-----------------------------------------------------------------------------
593
extern void convert_uint16(unsigned char * c,int len, unsigned int value)
594
{
595
     378:	af 92       	push	r10
596
     37a:	bf 92       	push	r11
597
     37c:	cf 92       	push	r12
598
     37e:	df 92       	push	r13
599
     380:	ef 92       	push	r14
600
     382:	ff 92       	push	r15
601
     384:	0f 93       	push	r16
602
     386:	1f 93       	push	r17
603
     388:	cf 93       	push	r28
604
     38a:	df 93       	push	r29
605
     38c:	cd b7       	in	r28, 0x3d	; 61
606
     38e:	de b7       	in	r29, 0x3e	; 62
607
     390:	27 97       	sbiw	r28, 0x07	; 7
608
     392:	0f b6       	in	r0, 0x3f	; 63
609
     394:	f8 94       	cli
610
     396:	de bf       	out	0x3e, r29	; 62
611
     398:	0f be       	out	0x3f, r0	; 63
612
     39a:	cd bf       	out	0x3d, r28	; 61
613
     39c:	6c 01       	movw	r12, r24
614
     39e:	7b 01       	movw	r14, r22
615
   int tempvalue, i;
616
   char c1[7];
617
 
618
   if(len<1) return;
619
     3a0:	16 16       	cp	r1, r22
620
     3a2:	17 06       	cpc	r1, r23
621
     3a4:	0c f0       	brlt	.+2      	; 0x3a8 <convert_uint16+0x30>
622
     3a6:	45 c0       	rjmp	.+138    	; 0x432 <convert_uint16+0xba>
623
     3a8:	80 e0       	ldi	r24, 0x00	; 0
624
     3aa:	90 e0       	ldi	r25, 0x00	; 0
625
     3ac:	9e 01       	movw	r18, r28
626
     3ae:	2f 5f       	subi	r18, 0xFF	; 255
627
     3b0:	3f 4f       	sbci	r19, 0xFF	; 255
628
     3b2:	60 e3       	ldi	r22, 0x30	; 48
629
   for(i=0;i<len;i++) {
630
     c1[i]='0';
631
     3b4:	f9 01       	movw	r30, r18
632
     3b6:	e8 0f       	add	r30, r24
633
     3b8:	f9 1f       	adc	r31, r25
634
     3ba:	60 83       	st	Z, r22
635
     3bc:	01 96       	adiw	r24, 0x01	; 1
636
     3be:	e8 16       	cp	r14, r24
637
     3c0:	f9 06       	cpc	r15, r25
638
     3c2:	c1 f7       	brne	.-16     	; 0x3b4 <convert_uint16+0x3c>
639
   }
640
 
641
   i=len-1;
642
   while(value>0) {
643
     3c4:	41 15       	cp	r20, r1
644
     3c6:	51 05       	cpc	r21, r1
645
     3c8:	19 f1       	breq	.+70     	; 0x410 <convert_uint16+0x98>
646
     3ca:	87 01       	movw	r16, r14
647
     3cc:	01 50       	subi	r16, 0x01	; 1
648
     3ce:	10 40       	sbci	r17, 0x00	; 0
649
     3d0:	5e 01       	movw	r10, r28
650
     3d2:	08 94       	sec
651
     3d4:	a1 1c       	adc	r10, r1
652
     3d6:	b1 1c       	adc	r11, r1
653
     tempvalue=value;
654
     3d8:	fa 01       	movw	r30, r20
655
	 value=value/10;
656
     3da:	ca 01       	movw	r24, r20
657
     3dc:	6a e0       	ldi	r22, 0x0A	; 10
658
     3de:	70 e0       	ldi	r23, 0x00	; 0
659
     3e0:	c3 d6       	rcall	.+3462   	; 0x1168 <__udivmodhi4>
660
     3e2:	ab 01       	movw	r20, r22
661
 	 c1[i]=(tempvalue-(value*10))+'0';
662
     3e4:	d5 01       	movw	r26, r10
663
     3e6:	a0 0f       	add	r26, r16
664
     3e8:	b1 1f       	adc	r27, r17
665
     3ea:	cb 01       	movw	r24, r22
666
     3ec:	88 0f       	add	r24, r24
667
     3ee:	99 1f       	adc	r25, r25
668
     3f0:	9b 01       	movw	r18, r22
669
     3f2:	22 0f       	add	r18, r18
670
     3f4:	33 1f       	adc	r19, r19
671
     3f6:	22 0f       	add	r18, r18
672
     3f8:	33 1f       	adc	r19, r19
673
     3fa:	22 0f       	add	r18, r18
674
     3fc:	33 1f       	adc	r19, r19
675
     3fe:	82 0f       	add	r24, r18
676
     400:	93 1f       	adc	r25, r19
677
     402:	e8 1b       	sub	r30, r24
678
     404:	e0 5d       	subi	r30, 0xD0	; 208
679
     406:	ec 93       	st	X, r30
680
	 i--;
681
     408:	01 50       	subi	r16, 0x01	; 1
682
     40a:	10 40       	sbci	r17, 0x00	; 0
683
     40c:	67 2b       	or	r22, r23
684
     40e:	21 f7       	brne	.-56     	; 0x3d8 <convert_uint16+0x60>
685
     410:	20 e0       	ldi	r18, 0x00	; 0
686
     412:	30 e0       	ldi	r19, 0x00	; 0
687
     414:	ae 01       	movw	r20, r28
688
     416:	4f 5f       	subi	r20, 0xFF	; 255
689
     418:	5f 4f       	sbci	r21, 0xFF	; 255
690
   }
691
   for(i=0;i<len;i++) {
692
     *c=c1[i];
693
     41a:	fa 01       	movw	r30, r20
694
     41c:	e2 0f       	add	r30, r18
695
     41e:	f3 1f       	adc	r31, r19
696
     420:	80 81       	ld	r24, Z
697
     422:	f6 01       	movw	r30, r12
698
     424:	81 93       	st	Z+, r24
699
     426:	6f 01       	movw	r12, r30
700
     428:	2f 5f       	subi	r18, 0xFF	; 255
701
     42a:	3f 4f       	sbci	r19, 0xFF	; 255
702
     42c:	e2 16       	cp	r14, r18
703
     42e:	f3 06       	cpc	r15, r19
704
     430:	a1 f7       	brne	.-24     	; 0x41a <convert_uint16+0xa2>
705
     432:	27 96       	adiw	r28, 0x07	; 7
706
     434:	0f b6       	in	r0, 0x3f	; 63
707
     436:	f8 94       	cli
708
     438:	de bf       	out	0x3e, r29	; 62
709
     43a:	0f be       	out	0x3f, r0	; 63
710
     43c:	cd bf       	out	0x3d, r28	; 61
711
     43e:	df 91       	pop	r29
712
     440:	cf 91       	pop	r28
713
     442:	1f 91       	pop	r17
714
     444:	0f 91       	pop	r16
715
     446:	ff 90       	pop	r15
716
     448:	ef 90       	pop	r14
717
     44a:	df 90       	pop	r13
718
     44c:	cf 90       	pop	r12
719
     44e:	bf 90       	pop	r11
720
     450:	af 90       	pop	r10
721
     452:	08 95       	ret
722
 
723
00000454 <main>:
724
	 c++;
725
 
726
   }
727
}
728
 
729
 
730
//-----------------------------------------------------------------------------
731
//main
732
//main execution loop
733
//-----------------------------------------------------------------------------
734
extern int main(void)
735
{
736
     454:	af 92       	push	r10
737
     456:	bf 92       	push	r11
738
     458:	cf 92       	push	r12
739
     45a:	df 92       	push	r13
740
     45c:	ff 92       	push	r15
741
     45e:	0f 93       	push	r16
742
     460:	1f 93       	push	r17
743
     462:	cf 93       	push	r28
744
     464:	df 93       	push	r29
745
	unsigned char c;
746
	unsigned int i;
747
	int i1;
748
 
749
	HIDEGRAPHIC;
750
     466:	10 92 00 01 	sts	0x0100, r1
751
	HIDEGRAPHICBACK;
752
     46a:	10 92 01 01 	sts	0x0101, r1
753
 
754
	CLKPR=0x80;
755
     46e:	e1 e6       	ldi	r30, 0x61	; 97
756
     470:	f0 e0       	ldi	r31, 0x00	; 0
757
     472:	80 e8       	ldi	r24, 0x80	; 128
758
     474:	80 83       	st	Z, r24
759
	CLKPR=0x00;
760
     476:	10 82       	st	Z, r1
761
 
762
	// PORT D - unused right now
763
	PORTD = 0x10;
764
     478:	80 e1       	ldi	r24, 0x10	; 16
765
     47a:	8b b9       	out	0x0b, r24	; 11
766
	DDRD  = 0x00;
767
     47c:	1a b8       	out	0x0a, r1	; 10
768
 
769
	// USART initialization
770
	// Communication Parameters: 8 Data, 1 Stop, No Parity
771
	// USART Receiver: On
772
	// USART Transmitter: On
773
	// USART Mode: Asynchronous
774
	// USART Baud rate: 57600
775
	UCSR0A=0x00;
776
     47e:	10 92 c0 00 	sts	0x00C0, r1
777
	UCSR0B=0x18;
778
     482:	88 e1       	ldi	r24, 0x18	; 24
779
     484:	80 93 c1 00 	sts	0x00C1, r24
780
	UCSR0C=0x86;
781
     488:	86 e8       	ldi	r24, 0x86	; 134
782
     48a:	80 93 c2 00 	sts	0x00C2, r24
783
#ifdef CPUSPEED_20 	//20.000MHz
784
	UBRR0H=0x00;
785
     48e:	10 92 c5 00 	sts	0x00C5, r1
786
	UBRR0L=0x15;
787
     492:	85 e1       	ldi	r24, 0x15	; 21
788
     494:	80 93 c4 00 	sts	0x00C4, r24
789
#endif
790
 
791
#ifdef CPUSPEED_16 	//16.000MHz
792
	UBRR0H=0x00;
793
	UBRR0L=0x10;
794
#endif
795
 
796
#ifdef CPUSPEED_11059 //11.059MHz
797
	UBRR0H=0x00;
798
	UBRR0L=0x0B;
799
#endif
800
 
801
	// Initialize the 8-bit Timer0 to clock at 20/8 MHz */
802
	TCCR0A=0x00;
803
     498:	14 bc       	out	0x24, r1	; 36
804
	TCCR0B=0x01;
805
     49a:	91 e0       	ldi	r25, 0x01	; 1
806
     49c:	95 bd       	out	0x25, r25	; 37
807
 
808
	// Initialize the SPI Interface
809
	PORTB = 0x00;
810
     49e:	15 b8       	out	0x05, r1	; 5
811
	DDRB = 0x3E; //0x3E
812
     4a0:	8e e3       	ldi	r24, 0x3E	; 62
813
     4a2:	84 b9       	out	0x04, r24	; 4
814
	//DDRB = 0x3A;
815
 
816
	SPCR = (1<<SPE) | (1<<MSTR) | (1<<CPHA);
817
     4a4:	84 e5       	ldi	r24, 0x54	; 84
818
     4a6:	8c bd       	out	0x2c, r24	; 44
819
	SPSR = 1;
820
     4a8:	9d bd       	out	0x2d, r25	; 45
821
 
822
	// External Interrupt(s) initialization
823
	// INT0: On
824
	// INT0 Mode: Falling Edge
825
	// INT1: On
826
	// INT1 Mode: Falling Edge
827
	// Interrupt on any change on pins PCINT0-7: Off
828
	// Interrupt on any change on pins PCINT8-14: Off
829
	// Interrupt on any change on pins PCINT16-23: Off
830
	EICRA=0x0A;
831
     4aa:	8a e0       	ldi	r24, 0x0A	; 10
832
     4ac:	80 93 69 00 	sts	0x0069, r24
833
	EIMSK=0x03;
834
     4b0:	83 e0       	ldi	r24, 0x03	; 3
835
     4b2:	8d bb       	out	0x1d, r24	; 29
836
	EIFR=0x03;
837
     4b4:	8c bb       	out	0x1c, r24	; 28
838
	PCICR=0x00;
839
     4b6:	10 92 68 00 	sts	0x0068, r1
840
 
841
	// Enable interrupts
842
	sei();
843
     4ba:	78 94       	sei
844
 
845
	// MAIN lOOP
846
	display_line1[0]='X';
847
     4bc:	88 e5       	ldi	r24, 0x58	; 88
848
     4be:	80 93 58 04 	sts	0x0458, r24
849
	display_line1[1]='X';
850
     4c2:	80 93 59 04 	sts	0x0459, r24
851
	display_line1[2]='X';
852
     4c6:	80 93 5a 04 	sts	0x045A, r24
853
	display_line1[3]='X';
854
     4ca:	80 93 5b 04 	sts	0x045B, r24
855
	display_line1[4]='X';
856
     4ce:	80 93 5c 04 	sts	0x045C, r24
857
	display_line1[5]='X';
858
     4d2:	80 93 5d 04 	sts	0x045D, r24
859
 
860
	NeuerDatensatzEmpfangen = 0;
861
     4d6:	10 92 e2 03 	sts	0x03E2, r1
862
 
863
	framecounter = 0;
864
     4da:	10 92 da 03 	sts	0x03DA, r1
865
 
866
	GR_Clear();
867
     4de:	d7 dd       	rcall	.-1106   	; 0x8e <GR_Clear>
868
	GR_Copy(&grlevel[0],(GR_Lines/2)*7,21);
869
     4e0:	45 e1       	ldi	r20, 0x15	; 21
870
     4e2:	50 e0       	ldi	r21, 0x00	; 0
871
     4e4:	6c e8       	ldi	r22, 0x8C	; 140
872
     4e6:	70 e0       	ldi	r23, 0x00	; 0
873
     4e8:	8b eb       	ldi	r24, 0xBB	; 187
874
     4ea:	93 e0       	ldi	r25, 0x03	; 3
875
     4ec:	bf dd       	rcall	.-1154   	; 0x6c <GR_Copy>
876
	SHOWGRAPHIC;
877
     4ee:	81 e0       	ldi	r24, 0x01	; 1
878
     4f0:	80 93 00 01 	sts	0x0100, r24
879
     4f4:	ff 24       	eor	r15, r15
880
     4f6:	f3 94       	inc	r15
881
     4f8:	0f 2e       	mov	r0, r31
882
     4fa:	ff ee       	ldi	r31, 0xEF	; 239
883
     4fc:	cf 2e       	mov	r12, r31
884
     4fe:	f3 e0       	ldi	r31, 0x03	; 3
885
     500:	df 2e       	mov	r13, r31
886
     502:	f0 2d       	mov	r31, r0
887
     504:	08 e0       	ldi	r16, 0x08	; 8
888
     506:	14 e0       	ldi	r17, 0x04	; 4
889
     508:	0f 2e       	mov	r0, r31
890
     50a:	fb eb       	ldi	r31, 0xBB	; 187
891
     50c:	af 2e       	mov	r10, r31
892
     50e:	f3 e0       	ldi	r31, 0x03	; 3
893
     510:	bf 2e       	mov	r11, r31
894
     512:	f0 2d       	mov	r31, r0
895
 
896
	while (1)
897
	{
898
 
899
		if (UCSR0A & (1<<RXC0)) {
900
     514:	80 91 c0 00 	lds	r24, 0x00C0
901
     518:	88 23       	and	r24, r24
902
     51a:	2c f4       	brge	.+10     	; 0x526 <__stack+0x27>
903
			c=UDR0;
904
     51c:	e6 ec       	ldi	r30, 0xC6	; 198
905
     51e:	f0 e0       	ldi	r31, 0x00	; 0
906
     520:	80 81       	ld	r24, Z
907
			UDR0=c;
908
     522:	80 83       	st	Z, r24
909
			process_rxdata(c);
910
     524:	48 de       	rcall	.-880    	; 0x1b6 <process_rxdata>
911
		}
912
 
913
		if (framecounter<25) showmessage1=1; else showmessage1=0;
914
     526:	80 91 da 03 	lds	r24, 0x03DA
915
     52a:	89 31       	cpi	r24, 0x19	; 25
916
     52c:	18 f4       	brcc	.+6      	; 0x534 <__stack+0x35>
917
     52e:	f0 92 d9 03 	sts	0x03D9, r15
918
     532:	06 c0       	rjmp	.+12     	; 0x540 <__stack+0x41>
919
     534:	10 92 d9 03 	sts	0x03D9, r1
920
		if (framecounter>50) framecounter = 0;
921
     538:	83 33       	cpi	r24, 0x33	; 51
922
     53a:	10 f0       	brcs	.+4      	; 0x540 <__stack+0x41>
923
     53c:	10 92 da 03 	sts	0x03DA, r1
924
 
925
		if(NeuerDatensatzEmpfangen) {
926
     540:	80 91 e2 03 	lds	r24, 0x03E2
927
     544:	88 23       	and	r24, r24
928
     546:	31 f3       	breq	.-52     	; 0x514 <__stack+0x15>
929
			switch(RxdBuffer[2])
930
     548:	80 91 f6 03 	lds	r24, 0x03F6
931
     54c:	84 34       	cpi	r24, 0x44	; 68
932
     54e:	09 f0       	breq	.+2      	; 0x552 <__stack+0x53>
933
     550:	5f c1       	rjmp	.+702    	; 0x810 <__stack+0x311>
934
			{
935
				case 'D':
936
					//decode the Messagee
937
					Decode64((unsigned char *)&DebugOut,sizeof(DebugOut),3,AnzahlEmpfangsBytes);
938
     552:	20 91 e4 03 	lds	r18, 0x03E4
939
     556:	43 e0       	ldi	r20, 0x03	; 3
940
     558:	62 e4       	ldi	r22, 0x42	; 66
941
     55a:	82 e6       	ldi	r24, 0x62	; 98
942
     55c:	94 e0       	ldi	r25, 0x04	; 4
943
     55e:	a0 dd       	rcall	.-1216   	; 0xa0 <Decode64>
944
 
945
					// Heading information
946
					convert_uint16((unsigned char *)&heading[1],3,(unsigned int)DebugOut.Analog[8]);
947
     560:	40 91 74 04 	lds	r20, 0x0474
948
     564:	50 91 75 04 	lds	r21, 0x0475
949
     568:	63 e0       	ldi	r22, 0x03	; 3
950
     56a:	70 e0       	ldi	r23, 0x00	; 0
951
     56c:	8c e0       	ldi	r24, 0x0C	; 12
952
     56e:	91 e0       	ldi	r25, 0x01	; 1
953
     570:	03 df       	rcall	.-506    	; 0x378 <convert_uint16>
954
 
955
					// Altitute Information
956
					if(DebugOut.Analog[5]>old_alt) {
957
     572:	20 91 6e 04 	lds	r18, 0x046E
958
     576:	30 91 6f 04 	lds	r19, 0x046F
959
     57a:	80 91 eb 03 	lds	r24, 0x03EB
960
     57e:	90 91 ec 03 	lds	r25, 0x03EC
961
     582:	82 17       	cp	r24, r18
962
     584:	93 07       	cpc	r25, r19
963
     586:	64 f4       	brge	.+24     	; 0x5a0 <__stack+0xa1>
964
					  alt_inc=1;
965
     588:	f0 92 de 03 	sts	0x03DE, r15
966
					  alt_dec=0;
967
     58c:	10 92 df 03 	sts	0x03DF, r1
968
					  alt_delta=DebugOut.Analog[5]-old_alt;
969
     590:	a9 01       	movw	r20, r18
970
     592:	48 1b       	sub	r20, r24
971
     594:	59 0b       	sbc	r21, r25
972
     596:	50 93 dd 03 	sts	0x03DD, r21
973
     59a:	40 93 dc 03 	sts	0x03DC, r20
974
     59e:	17 c0       	rjmp	.+46     	; 0x5ce <__stack+0xcf>
975
					}
976
					else {
977
					  if(DebugOut.Analog[5]<old_alt) {
978
     5a0:	28 17       	cp	r18, r24
979
     5a2:	39 07       	cpc	r19, r25
980
     5a4:	5c f4       	brge	.+22     	; 0x5bc <__stack+0xbd>
981
						alt_inc=0;
982
     5a6:	10 92 de 03 	sts	0x03DE, r1
983
						alt_dec=1;
984
     5aa:	f0 92 df 03 	sts	0x03DF, r15
985
						alt_delta=old_alt-DebugOut.Analog[5];
986
     5ae:	82 1b       	sub	r24, r18
987
     5b0:	93 0b       	sbc	r25, r19
988
     5b2:	90 93 dd 03 	sts	0x03DD, r25
989
     5b6:	80 93 dc 03 	sts	0x03DC, r24
990
     5ba:	09 c0       	rjmp	.+18     	; 0x5ce <__stack+0xcf>
991
					  }
992
					  else {
993
						alt_inc=0;
994
     5bc:	10 92 de 03 	sts	0x03DE, r1
995
						alt_dec=0;
996
     5c0:	10 92 df 03 	sts	0x03DF, r1
997
						alt_delta=0;
998
     5c4:	10 92 dd 03 	sts	0x03DD, r1
999
     5c8:	10 92 dc 03 	sts	0x03DC, r1
1000
     5cc:	0c c0       	rjmp	.+24     	; 0x5e6 <__stack+0xe7>
1001
					  }
1002
					}
1003
					if(alt_delta>60) alt_delta=60;
1004
     5ce:	80 91 dc 03 	lds	r24, 0x03DC
1005
     5d2:	90 91 dd 03 	lds	r25, 0x03DD
1006
     5d6:	cd 97       	sbiw	r24, 0x3d	; 61
1007
     5d8:	30 f0       	brcs	.+12     	; 0x5e6 <__stack+0xe7>
1008
     5da:	8c e3       	ldi	r24, 0x3C	; 60
1009
     5dc:	90 e0       	ldi	r25, 0x00	; 0
1010
     5de:	90 93 dd 03 	sts	0x03DD, r25
1011
     5e2:	80 93 dc 03 	sts	0x03DC, r24
1012
					if(alt_delta<0) alt_delta=0;
1013
 
1014
					old_alt=DebugOut.Analog[5];
1015
     5e6:	30 93 ec 03 	sts	0x03EC, r19
1016
     5ea:	20 93 eb 03 	sts	0x03EB, r18
1017
					if(DebugOut.Analog[5]<0) {
1018
     5ee:	33 23       	and	r19, r19
1019
     5f0:	5c f4       	brge	.+22     	; 0x608 <__stack+0x109>
1020
					  altv[0]='-';
1021
     5f2:	8d e2       	ldi	r24, 0x2D	; 45
1022
     5f4:	80 93 30 01 	sts	0x0130, r24
1023
					  DebugOut.Analog[5]=(0xffff-(unsigned int)DebugOut.Analog[5]);
1024
     5f8:	c9 01       	movw	r24, r18
1025
     5fa:	80 95       	com	r24
1026
     5fc:	90 95       	com	r25
1027
     5fe:	90 93 6f 04 	sts	0x046F, r25
1028
     602:	80 93 6e 04 	sts	0x046E, r24
1029
     606:	03 c0       	rjmp	.+6      	; 0x60e <__stack+0x10f>
1030
					}
1031
					else {
1032
					  altv[0]='+';
1033
     608:	8b e2       	ldi	r24, 0x2B	; 43
1034
     60a:	80 93 30 01 	sts	0x0130, r24
1035
					}
1036
					convert_uint16((unsigned char *)&altv[1],5,(unsigned int)DebugOut.Analog[5]);
1037
     60e:	40 91 6e 04 	lds	r20, 0x046E
1038
     612:	50 91 6f 04 	lds	r21, 0x046F
1039
     616:	65 e0       	ldi	r22, 0x05	; 5
1040
     618:	70 e0       	ldi	r23, 0x00	; 0
1041
     61a:	81 e3       	ldi	r24, 0x31	; 49
1042
     61c:	91 e0       	ldi	r25, 0x01	; 1
1043
     61e:	ac de       	rcall	.-680    	; 0x378 <convert_uint16>
1044
 
1045
					//Voltage value
1046
					convert_uint16((unsigned char *)&templine[0],5,(unsigned int)DebugOut.Analog[9]);
1047
     620:	40 91 76 04 	lds	r20, 0x0476
1048
     624:	50 91 77 04 	lds	r21, 0x0477
1049
     628:	65 e0       	ldi	r22, 0x05	; 5
1050
     62a:	70 e0       	ldi	r23, 0x00	; 0
1051
     62c:	c6 01       	movw	r24, r12
1052
     62e:	a4 de       	rcall	.-696    	; 0x378 <convert_uint16>
1053
					ubat[3]=templine[2];
1054
     630:	80 91 f1 03 	lds	r24, 0x03F1
1055
     634:	80 93 1b 01 	sts	0x011B, r24
1056
					ubat[4]=templine[3];
1057
     638:	80 91 f2 03 	lds	r24, 0x03F2
1058
     63c:	80 93 1c 01 	sts	0x011C, r24
1059
					ubat[6]=templine[4];
1060
     640:	80 91 f3 03 	lds	r24, 0x03F3
1061
     644:	80 93 1e 01 	sts	0x011E, r24
1062
 
1063
					if(DebugOut.Analog[9]>90) bat[0]=0x08; else bat[0]=0x04;
1064
     648:	80 91 76 04 	lds	r24, 0x0476
1065
     64c:	90 91 77 04 	lds	r25, 0x0477
1066
     650:	8b 35       	cpi	r24, 0x5B	; 91
1067
     652:	91 05       	cpc	r25, r1
1068
     654:	34 f0       	brlt	.+12     	; 0x662 <__stack+0x163>
1069
     656:	00 93 10 01 	sts	0x0110, r16
1070
					if(DebugOut.Analog[9]>95) bat[1]=0x08; else bat[1]=0x04;
1071
     65a:	80 36       	cpi	r24, 0x60	; 96
1072
     65c:	91 05       	cpc	r25, r1
1073
     65e:	24 f4       	brge	.+8      	; 0x668 <__stack+0x169>
1074
     660:	09 c0       	rjmp	.+18     	; 0x674 <__stack+0x175>
1075
     662:	10 93 10 01 	sts	0x0110, r17
1076
     666:	06 c0       	rjmp	.+12     	; 0x674 <__stack+0x175>
1077
     668:	00 93 11 01 	sts	0x0111, r16
1078
					if(DebugOut.Analog[9]>100) bat[2]=0x08; else bat[2]=0x04;
1079
     66c:	85 36       	cpi	r24, 0x65	; 101
1080
     66e:	91 05       	cpc	r25, r1
1081
     670:	24 f4       	brge	.+8      	; 0x67a <__stack+0x17b>
1082
     672:	09 c0       	rjmp	.+18     	; 0x686 <__stack+0x187>
1083
     674:	10 93 11 01 	sts	0x0111, r17
1084
     678:	06 c0       	rjmp	.+12     	; 0x686 <__stack+0x187>
1085
     67a:	00 93 12 01 	sts	0x0112, r16
1086
					if(DebugOut.Analog[9]>105) bat[3]=0x08; else bat[3]=0x04;
1087
     67e:	8a 36       	cpi	r24, 0x6A	; 106
1088
     680:	91 05       	cpc	r25, r1
1089
     682:	24 f4       	brge	.+8      	; 0x68c <__stack+0x18d>
1090
     684:	09 c0       	rjmp	.+18     	; 0x698 <__stack+0x199>
1091
     686:	10 93 12 01 	sts	0x0112, r17
1092
     68a:	06 c0       	rjmp	.+12     	; 0x698 <__stack+0x199>
1093
     68c:	00 93 13 01 	sts	0x0113, r16
1094
					if(DebugOut.Analog[9]>110) bat[4]=0x08; else bat[4]=0x04;
1095
     690:	8f 36       	cpi	r24, 0x6F	; 111
1096
     692:	91 05       	cpc	r25, r1
1097
     694:	24 f4       	brge	.+8      	; 0x69e <__stack+0x19f>
1098
     696:	09 c0       	rjmp	.+18     	; 0x6aa <__stack+0x1ab>
1099
     698:	10 93 13 01 	sts	0x0113, r17
1100
     69c:	06 c0       	rjmp	.+12     	; 0x6aa <__stack+0x1ab>
1101
     69e:	00 93 14 01 	sts	0x0114, r16
1102
					if(DebugOut.Analog[9]>115) bat[5]=0x08; else bat[5]=0x04;
1103
     6a2:	84 37       	cpi	r24, 0x74	; 116
1104
     6a4:	91 05       	cpc	r25, r1
1105
     6a6:	24 f4       	brge	.+8      	; 0x6b0 <__stack+0x1b1>
1106
     6a8:	09 c0       	rjmp	.+18     	; 0x6bc <__stack+0x1bd>
1107
     6aa:	10 93 14 01 	sts	0x0114, r17
1108
     6ae:	06 c0       	rjmp	.+12     	; 0x6bc <__stack+0x1bd>
1109
     6b0:	00 93 15 01 	sts	0x0115, r16
1110
					if(DebugOut.Analog[9]>120) bat[6]=0x08; else bat[6]=0x04;
1111
     6b4:	89 37       	cpi	r24, 0x79	; 121
1112
     6b6:	91 05       	cpc	r25, r1
1113
     6b8:	24 f4       	brge	.+8      	; 0x6c2 <__stack+0x1c3>
1114
     6ba:	09 c0       	rjmp	.+18     	; 0x6ce <__stack+0x1cf>
1115
     6bc:	10 93 15 01 	sts	0x0115, r17
1116
     6c0:	06 c0       	rjmp	.+12     	; 0x6ce <__stack+0x1cf>
1117
     6c2:	00 93 16 01 	sts	0x0116, r16
1118
					if(DebugOut.Analog[9]>125) bat[7]=0x08; else bat[7]=0x04;
1119
     6c6:	8e 37       	cpi	r24, 0x7E	; 126
1120
     6c8:	91 05       	cpc	r25, r1
1121
     6ca:	4c f4       	brge	.+18     	; 0x6de <__stack+0x1df>
1122
     6cc:	b4 c0       	rjmp	.+360    	; 0x836 <__stack+0x337>
1123
     6ce:	10 93 16 01 	sts	0x0116, r17
1124
     6d2:	10 93 17 01 	sts	0x0117, r17
1125
 
1126
					if(DebugOut.Analog[9]<94) lowbat=1; else lowbat = 0;
1127
     6d6:	8e 35       	cpi	r24, 0x5E	; 94
1128
     6d8:	91 05       	cpc	r25, r1
1129
     6da:	24 f0       	brlt	.+8      	; 0x6e4 <__stack+0x1e5>
1130
     6dc:	06 c0       	rjmp	.+12     	; 0x6ea <__stack+0x1eb>
1131
     6de:	00 93 17 01 	sts	0x0117, r16
1132
     6e2:	03 c0       	rjmp	.+6      	; 0x6ea <__stack+0x1eb>
1133
     6e4:	f0 92 d8 03 	sts	0x03D8, r15
1134
     6e8:	02 c0       	rjmp	.+4      	; 0x6ee <__stack+0x1ef>
1135
     6ea:	10 92 d8 03 	sts	0x03D8, r1
1136
 
1137
					//RX level
1138
					i=((unsigned int)DebugOut.Analog[10]*100)/255;
1139
     6ee:	20 91 78 04 	lds	r18, 0x0478
1140
     6f2:	30 91 79 04 	lds	r19, 0x0479
1141
     6f6:	84 e6       	ldi	r24, 0x64	; 100
1142
     6f8:	90 e0       	ldi	r25, 0x00	; 0
1143
     6fa:	ac 01       	movw	r20, r24
1144
     6fc:	24 9f       	mul	r18, r20
1145
     6fe:	c0 01       	movw	r24, r0
1146
     700:	25 9f       	mul	r18, r21
1147
     702:	90 0d       	add	r25, r0
1148
     704:	34 9f       	mul	r19, r20
1149
     706:	90 0d       	add	r25, r0
1150
     708:	11 24       	eor	r1, r1
1151
     70a:	6f ef       	ldi	r22, 0xFF	; 255
1152
     70c:	70 e0       	ldi	r23, 0x00	; 0
1153
     70e:	2c d5       	rcall	.+2648   	; 0x1168 <__udivmodhi4>
1154
     710:	eb 01       	movw	r28, r22
1155
 
1156
					convert_uint16((unsigned char *)&templine[0],5,(unsigned int)i);
1157
     712:	ab 01       	movw	r20, r22
1158
     714:	65 e0       	ldi	r22, 0x05	; 5
1159
     716:	70 e0       	ldi	r23, 0x00	; 0
1160
     718:	c6 01       	movw	r24, r12
1161
     71a:	2e de       	rcall	.-932    	; 0x378 <convert_uint16>
1162
					urx[4]=templine[2];
1163
     71c:	80 91 f1 03 	lds	r24, 0x03F1
1164
     720:	80 93 2c 01 	sts	0x012C, r24
1165
					urx[5]=templine[3];
1166
     724:	80 91 f2 03 	lds	r24, 0x03F2
1167
     728:	80 93 2d 01 	sts	0x012D, r24
1168
					urx[6]=templine[4];
1169
     72c:	80 91 f3 03 	lds	r24, 0x03F3
1170
     730:	80 93 2e 01 	sts	0x012E, r24
1171
 
1172
					if(i>10) rx[0]=0x08; else rx[0]=0x04;
1173
     734:	cb 30       	cpi	r28, 0x0B	; 11
1174
     736:	d1 05       	cpc	r29, r1
1175
     738:	30 f0       	brcs	.+12     	; 0x746 <__stack+0x247>
1176
     73a:	00 93 20 01 	sts	0x0120, r16
1177
					if(i>20) rx[1]=0x08; else rx[1]=0x04;
1178
     73e:	c5 31       	cpi	r28, 0x15	; 21
1179
     740:	d1 05       	cpc	r29, r1
1180
     742:	20 f4       	brcc	.+8      	; 0x74c <__stack+0x24d>
1181
     744:	09 c0       	rjmp	.+18     	; 0x758 <__stack+0x259>
1182
     746:	10 93 20 01 	sts	0x0120, r17
1183
     74a:	06 c0       	rjmp	.+12     	; 0x758 <__stack+0x259>
1184
     74c:	00 93 21 01 	sts	0x0121, r16
1185
					if(i>30) rx[2]=0x08; else rx[2]=0x04;
1186
     750:	cf 31       	cpi	r28, 0x1F	; 31
1187
     752:	d1 05       	cpc	r29, r1
1188
     754:	20 f4       	brcc	.+8      	; 0x75e <__stack+0x25f>
1189
     756:	09 c0       	rjmp	.+18     	; 0x76a <__stack+0x26b>
1190
     758:	10 93 21 01 	sts	0x0121, r17
1191
     75c:	06 c0       	rjmp	.+12     	; 0x76a <__stack+0x26b>
1192
     75e:	00 93 22 01 	sts	0x0122, r16
1193
					if(i>40) rx[3]=0x08; else rx[3]=0x04;
1194
     762:	c9 32       	cpi	r28, 0x29	; 41
1195
     764:	d1 05       	cpc	r29, r1
1196
     766:	20 f4       	brcc	.+8      	; 0x770 <__stack+0x271>
1197
     768:	09 c0       	rjmp	.+18     	; 0x77c <__stack+0x27d>
1198
     76a:	10 93 22 01 	sts	0x0122, r17
1199
     76e:	06 c0       	rjmp	.+12     	; 0x77c <__stack+0x27d>
1200
     770:	00 93 23 01 	sts	0x0123, r16
1201
					if(i>50) rx[4]=0x08; else rx[4]=0x04;
1202
     774:	c3 33       	cpi	r28, 0x33	; 51
1203
     776:	d1 05       	cpc	r29, r1
1204
     778:	20 f4       	brcc	.+8      	; 0x782 <__stack+0x283>
1205
     77a:	09 c0       	rjmp	.+18     	; 0x78e <__stack+0x28f>
1206
     77c:	10 93 23 01 	sts	0x0123, r17
1207
     780:	06 c0       	rjmp	.+12     	; 0x78e <__stack+0x28f>
1208
     782:	00 93 24 01 	sts	0x0124, r16
1209
					if(i>60) rx[5]=0x08; else rx[5]=0x04;
1210
     786:	cd 33       	cpi	r28, 0x3D	; 61
1211
     788:	d1 05       	cpc	r29, r1
1212
     78a:	20 f4       	brcc	.+8      	; 0x794 <__stack+0x295>
1213
     78c:	09 c0       	rjmp	.+18     	; 0x7a0 <__stack+0x2a1>
1214
     78e:	10 93 24 01 	sts	0x0124, r17
1215
     792:	06 c0       	rjmp	.+12     	; 0x7a0 <__stack+0x2a1>
1216
     794:	00 93 25 01 	sts	0x0125, r16
1217
					if(i>70) rx[6]=0x08; else rx[6]=0x04;
1218
     798:	c7 34       	cpi	r28, 0x47	; 71
1219
     79a:	d1 05       	cpc	r29, r1
1220
     79c:	20 f4       	brcc	.+8      	; 0x7a6 <__stack+0x2a7>
1221
     79e:	09 c0       	rjmp	.+18     	; 0x7b2 <__stack+0x2b3>
1222
     7a0:	10 93 25 01 	sts	0x0125, r17
1223
     7a4:	06 c0       	rjmp	.+12     	; 0x7b2 <__stack+0x2b3>
1224
     7a6:	00 93 26 01 	sts	0x0126, r16
1225
					if(i>80) rx[7]=0x08; else rx[7]=0x04;
1226
     7aa:	c1 35       	cpi	r28, 0x51	; 81
1227
     7ac:	d1 05       	cpc	r29, r1
1228
     7ae:	20 f4       	brcc	.+8      	; 0x7b8 <__stack+0x2b9>
1229
     7b0:	06 c0       	rjmp	.+12     	; 0x7be <__stack+0x2bf>
1230
     7b2:	10 93 26 01 	sts	0x0126, r17
1231
     7b6:	03 c0       	rjmp	.+6      	; 0x7be <__stack+0x2bf>
1232
     7b8:	00 93 27 01 	sts	0x0127, r16
1233
     7bc:	02 c0       	rjmp	.+4      	; 0x7c2 <__stack+0x2c3>
1234
     7be:	10 93 27 01 	sts	0x0127, r17
1235
 
1236
					// nick
1237
					i1=DebugOut.Analog[0]/50;
1238
     7c2:	80 91 64 04 	lds	r24, 0x0464
1239
     7c6:	90 91 65 04 	lds	r25, 0x0465
1240
     7ca:	62 e3       	ldi	r22, 0x32	; 50
1241
     7cc:	70 e0       	ldi	r23, 0x00	; 0
1242
     7ce:	e0 d4       	rcall	.+2496   	; 0x1190 <__divmodhi4>
1243
					i1=((GR_Lines/2)-i1);
1244
     7d0:	84 e1       	ldi	r24, 0x14	; 20
1245
     7d2:	90 e0       	ldi	r25, 0x00	; 0
1246
     7d4:	ec 01       	movw	r28, r24
1247
     7d6:	c6 1b       	sub	r28, r22
1248
     7d8:	d7 0b       	sbc	r29, r23
1249
					if(i1<0) i1=0;
1250
     7da:	ea f0       	brmi	.+58     	; 0x816 <__stack+0x317>
1251
					if(i1>37) i1=37;
1252
     7dc:	c6 32       	cpi	r28, 0x26	; 38
1253
     7de:	d1 05       	cpc	r29, r1
1254
     7e0:	14 f5       	brge	.+68     	; 0x826 <__stack+0x327>
1255
					GR_Clear();
1256
     7e2:	55 dc       	rcall	.-1878   	; 0x8e <GR_Clear>
1257
					GR_Copy(&grlevel[0],i1*7,21);
1258
     7e4:	be 01       	movw	r22, r28
1259
     7e6:	66 0f       	add	r22, r22
1260
     7e8:	77 1f       	adc	r23, r23
1261
     7ea:	66 0f       	add	r22, r22
1262
     7ec:	77 1f       	adc	r23, r23
1263
     7ee:	66 0f       	add	r22, r22
1264
     7f0:	77 1f       	adc	r23, r23
1265
     7f2:	6c 1b       	sub	r22, r28
1266
     7f4:	7d 0b       	sbc	r23, r29
1267
     7f6:	45 e1       	ldi	r20, 0x15	; 21
1268
     7f8:	50 e0       	ldi	r21, 0x00	; 0
1269
     7fa:	c5 01       	movw	r24, r10
1270
     7fc:	37 dc       	rcall	.-1938   	; 0x6c <GR_Copy>
1271
					if(i1!=20) GR_Copy(&grlevel0[0],20*7,7);
1272
     7fe:	64 97       	sbiw	r28, 0x14	; 20
1273
     800:	39 f0       	breq	.+14     	; 0x810 <__stack+0x311>
1274
     802:	47 e0       	ldi	r20, 0x07	; 7
1275
     804:	50 e0       	ldi	r21, 0x00	; 0
1276
     806:	6c e8       	ldi	r22, 0x8C	; 140
1277
     808:	70 e0       	ldi	r23, 0x00	; 0
1278
     80a:	80 ed       	ldi	r24, 0xD0	; 208
1279
     80c:	93 e0       	ldi	r25, 0x03	; 3
1280
     80e:	2e dc       	rcall	.-1956   	; 0x6c <GR_Copy>
1281
					break;
1282
 
1283
 
1284
 
1285
				default:
1286
					break;
1287
 
1288
			}
1289
			NeuerDatensatzEmpfangen=0;
1290
     810:	10 92 e2 03 	sts	0x03E2, r1
1291
     814:	7f ce       	rjmp	.-770    	; 0x514 <__stack+0x15>
1292
     816:	3b dc       	rcall	.-1930   	; 0x8e <GR_Clear>
1293
     818:	45 e1       	ldi	r20, 0x15	; 21
1294
     81a:	50 e0       	ldi	r21, 0x00	; 0
1295
     81c:	60 e0       	ldi	r22, 0x00	; 0
1296
     81e:	70 e0       	ldi	r23, 0x00	; 0
1297
     820:	c5 01       	movw	r24, r10
1298
     822:	24 dc       	rcall	.-1976   	; 0x6c <GR_Copy>
1299
     824:	ee cf       	rjmp	.-36     	; 0x802 <__stack+0x303>
1300
     826:	33 dc       	rcall	.-1946   	; 0x8e <GR_Clear>
1301
     828:	45 e1       	ldi	r20, 0x15	; 21
1302
     82a:	50 e0       	ldi	r21, 0x00	; 0
1303
     82c:	63 e0       	ldi	r22, 0x03	; 3
1304
     82e:	71 e0       	ldi	r23, 0x01	; 1
1305
     830:	c5 01       	movw	r24, r10
1306
     832:	1c dc       	rcall	.-1992   	; 0x6c <GR_Copy>
1307
     834:	e6 cf       	rjmp	.-52     	; 0x802 <__stack+0x303>
1308
     836:	10 93 17 01 	sts	0x0117, r17
1309
     83a:	57 cf       	rjmp	.-338    	; 0x6ea <__stack+0x1eb>
1310
 
1311
0000083c <draw_line>:
1312
		}
1313
	}
1314
	return(1);
1315
}	/* main */
1316
 
1317
 
1318
 
1319
//-----------------------------------------------------------------------------
1320
// draw line()
1321
// will be executed in interrupt context and will display the overlay content
1322
//-----------------------------------------------------------------------------*/
1323
extern void draw_line()
1324
{
1325
     83c:	40 91 ed 03 	lds	r20, 0x03ED
1326
     840:	50 91 ee 03 	lds	r21, 0x03EE
1327
     844:	ca 01       	movw	r24, r20
1328
     846:	84 97       	sbiw	r24, 0x24	; 36
1329
     848:	07 97       	sbiw	r24, 0x07	; 7
1330
     84a:	08 f0       	brcs	.+2      	; 0x84e <draw_line+0x12>
1331
     84c:	03 c1       	rjmp	.+518    	; 0xa54 <draw_line+0x218>
1332
	unsigned char *ltr_p;
1333
	unsigned char *num_p;
1334
	unsigned char *info_p;
1335
	short ltemp;
1336
	short ntemp;
1337
	short itemp;
1338
	unsigned int i1;
1339
	unsigned char i=0;
1340
	unsigned char c1;
1341
	unsigned char c2;
1342
	unsigned char c3;
1343
	unsigned char c4;
1344
	unsigned char c5;
1345
	unsigned char c6;
1346
	unsigned char c7;
1347
 
1348
	// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1349
	// Bat and Heading output
1350
	if ((line > 35) && (line < 43))
1351
	{
1352
		ltemp = (line - 36) * 27 - 64;
1353
		ntemp = (line - 36) * 16 - 43;
1354
		itemp = (line - 36) * 9;
1355
		ltr_p = ltrs+ltemp;
1356
		num_p = nums+ntemp;
1357
     84e:	ca 01       	movw	r24, r20
1358
     850:	82 95       	swap	r24
1359
     852:	92 95       	swap	r25
1360
     854:	90 7f       	andi	r25, 0xF0	; 240
1361
     856:	98 27       	eor	r25, r24
1362
     858:	80 7f       	andi	r24, 0xF0	; 240
1363
     85a:	98 27       	eor	r25, r24
1364
     85c:	bc 01       	movw	r22, r24
1365
     85e:	6f 55       	subi	r22, 0x5F	; 95
1366
     860:	7f 4f       	sbci	r23, 0xFF	; 255
1367
		info_p = infos+itemp;
1368
     862:	ca 01       	movw	r24, r20
1369
     864:	88 0f       	add	r24, r24
1370
     866:	99 1f       	adc	r25, r25
1371
     868:	88 0f       	add	r24, r24
1372
     86a:	99 1f       	adc	r25, r25
1373
     86c:	88 0f       	add	r24, r24
1374
     86e:	99 1f       	adc	r25, r25
1375
     870:	84 0f       	add	r24, r20
1376
     872:	95 1f       	adc	r25, r21
1377
     874:	9c 01       	movw	r18, r24
1378
     876:	28 5c       	subi	r18, 0xC8	; 200
1379
     878:	3d 4f       	sbci	r19, 0xFD	; 253
1380
		// +++ Bat
1381
		while(TCNT0<LINESTART);
1382
     87a:	86 b5       	in	r24, 0x26	; 38
1383
     87c:	88 3c       	cpi	r24, 0xC8	; 200
1384
     87e:	e8 f3       	brcs	.-6      	; 0x87a <draw_line+0x3e>
1385
		TCNT0=0;
1386
     880:	16 bc       	out	0x26, r1	; 38
1387
		SPSR=1;
1388
     882:	81 e0       	ldi	r24, 0x01	; 1
1389
     884:	8d bd       	out	0x2d, r24	; 45
1390
 
1391
		DDRB|=1; 			//sink thru PB0
1392
     886:	20 9a       	sbi	0x04, 0	; 4
1393
		SPDR = info_p[bat[0]]; Wait();
1394
     888:	80 91 10 01 	lds	r24, 0x0110
1395
     88c:	f9 01       	movw	r30, r18
1396
     88e:	e8 0f       	add	r30, r24
1397
     890:	f1 1d       	adc	r31, r1
1398
     892:	80 81       	ld	r24, Z
1399
     894:	8e bd       	out	0x2e, r24	; 46
1400
     896:	0d b4       	in	r0, 0x2d	; 45
1401
     898:	07 fe       	sbrs	r0, 7
1402
     89a:	fd cf       	rjmp	.-6      	; 0x896 <draw_line+0x5a>
1403
		SPDR = info_p[bat[1]]; Wait();
1404
     89c:	80 91 11 01 	lds	r24, 0x0111
1405
     8a0:	f9 01       	movw	r30, r18
1406
     8a2:	e8 0f       	add	r30, r24
1407
     8a4:	f1 1d       	adc	r31, r1
1408
     8a6:	80 81       	ld	r24, Z
1409
     8a8:	8e bd       	out	0x2e, r24	; 46
1410
     8aa:	0d b4       	in	r0, 0x2d	; 45
1411
     8ac:	07 fe       	sbrs	r0, 7
1412
     8ae:	fd cf       	rjmp	.-6      	; 0x8aa <draw_line+0x6e>
1413
		SPDR = info_p[bat[2]]; Wait();
1414
     8b0:	80 91 12 01 	lds	r24, 0x0112
1415
     8b4:	f9 01       	movw	r30, r18
1416
     8b6:	e8 0f       	add	r30, r24
1417
     8b8:	f1 1d       	adc	r31, r1
1418
     8ba:	80 81       	ld	r24, Z
1419
     8bc:	8e bd       	out	0x2e, r24	; 46
1420
     8be:	0d b4       	in	r0, 0x2d	; 45
1421
     8c0:	07 fe       	sbrs	r0, 7
1422
     8c2:	fd cf       	rjmp	.-6      	; 0x8be <draw_line+0x82>
1423
		SPDR = info_p[bat[3]]; Wait();
1424
     8c4:	80 91 13 01 	lds	r24, 0x0113
1425
     8c8:	f9 01       	movw	r30, r18
1426
     8ca:	e8 0f       	add	r30, r24
1427
     8cc:	f1 1d       	adc	r31, r1
1428
     8ce:	80 81       	ld	r24, Z
1429
     8d0:	8e bd       	out	0x2e, r24	; 46
1430
     8d2:	0d b4       	in	r0, 0x2d	; 45
1431
     8d4:	07 fe       	sbrs	r0, 7
1432
     8d6:	fd cf       	rjmp	.-6      	; 0x8d2 <draw_line+0x96>
1433
		SPDR = info_p[bat[4]]; Wait();
1434
     8d8:	80 91 14 01 	lds	r24, 0x0114
1435
     8dc:	f9 01       	movw	r30, r18
1436
     8de:	e8 0f       	add	r30, r24
1437
     8e0:	f1 1d       	adc	r31, r1
1438
     8e2:	80 81       	ld	r24, Z
1439
     8e4:	8e bd       	out	0x2e, r24	; 46
1440
     8e6:	0d b4       	in	r0, 0x2d	; 45
1441
     8e8:	07 fe       	sbrs	r0, 7
1442
     8ea:	fd cf       	rjmp	.-6      	; 0x8e6 <draw_line+0xaa>
1443
		SPDR = info_p[bat[5]]; Wait();
1444
     8ec:	80 91 15 01 	lds	r24, 0x0115
1445
     8f0:	f9 01       	movw	r30, r18
1446
     8f2:	e8 0f       	add	r30, r24
1447
     8f4:	f1 1d       	adc	r31, r1
1448
     8f6:	80 81       	ld	r24, Z
1449
     8f8:	8e bd       	out	0x2e, r24	; 46
1450
     8fa:	0d b4       	in	r0, 0x2d	; 45
1451
     8fc:	07 fe       	sbrs	r0, 7
1452
     8fe:	fd cf       	rjmp	.-6      	; 0x8fa <draw_line+0xbe>
1453
		SPDR = info_p[bat[6]]; Wait();
1454
     900:	80 91 16 01 	lds	r24, 0x0116
1455
     904:	f9 01       	movw	r30, r18
1456
     906:	e8 0f       	add	r30, r24
1457
     908:	f1 1d       	adc	r31, r1
1458
     90a:	80 81       	ld	r24, Z
1459
     90c:	8e bd       	out	0x2e, r24	; 46
1460
     90e:	0d b4       	in	r0, 0x2d	; 45
1461
     910:	07 fe       	sbrs	r0, 7
1462
     912:	fd cf       	rjmp	.-6      	; 0x90e <draw_line+0xd2>
1463
		SPDR = info_p[bat[7]]; Wait();
1464
     914:	80 91 17 01 	lds	r24, 0x0117
1465
     918:	f9 01       	movw	r30, r18
1466
     91a:	e8 0f       	add	r30, r24
1467
     91c:	f1 1d       	adc	r31, r1
1468
     91e:	80 81       	ld	r24, Z
1469
     920:	8e bd       	out	0x2e, r24	; 46
1470
     922:	0d b4       	in	r0, 0x2d	; 45
1471
     924:	07 fe       	sbrs	r0, 7
1472
     926:	fd cf       	rjmp	.-6      	; 0x922 <draw_line+0xe6>
1473
		DDRB&=0xFE; 		//PB0 Hi-Z again, and load a blank so spacing is right
1474
     928:	20 98       	cbi	0x04, 0	; 4
1475
 
1476
		// +++ Heading
1477
		TCNT0=0;
1478
     92a:	16 bc       	out	0x26, r1	; 38
1479
		while(TCNT0<80);
1480
     92c:	86 b5       	in	r24, 0x26	; 38
1481
     92e:	80 35       	cpi	r24, 0x50	; 80
1482
     930:	e8 f3       	brcs	.-6      	; 0x92c <draw_line+0xf0>
1483
		TCNT0=0;
1484
     932:	16 bc       	out	0x26, r1	; 38
1485
		SPSR=0;
1486
     934:	1d bc       	out	0x2d, r1	; 45
1487
		DDRB|=1;
1488
     936:	20 9a       	sbi	0x04, 0	; 4
1489
		SPDR = info_p[heading[0]]; Wait();
1490
     938:	80 91 0b 01 	lds	r24, 0x010B
1491
     93c:	f9 01       	movw	r30, r18
1492
     93e:	e8 0f       	add	r30, r24
1493
     940:	f1 1d       	adc	r31, r1
1494
     942:	80 81       	ld	r24, Z
1495
     944:	8e bd       	out	0x2e, r24	; 46
1496
     946:	0d b4       	in	r0, 0x2d	; 45
1497
     948:	07 fe       	sbrs	r0, 7
1498
     94a:	fd cf       	rjmp	.-6      	; 0x946 <draw_line+0x10a>
1499
		SPDR = num_p[heading[1]]; Wait();
1500
     94c:	80 91 0c 01 	lds	r24, 0x010C
1501
     950:	fb 01       	movw	r30, r22
1502
     952:	e8 0f       	add	r30, r24
1503
     954:	f1 1d       	adc	r31, r1
1504
     956:	80 81       	ld	r24, Z
1505
     958:	8e bd       	out	0x2e, r24	; 46
1506
     95a:	0d b4       	in	r0, 0x2d	; 45
1507
     95c:	07 fe       	sbrs	r0, 7
1508
     95e:	fd cf       	rjmp	.-6      	; 0x95a <draw_line+0x11e>
1509
		SPDR = num_p[heading[2]]; Wait();
1510
     960:	80 91 0d 01 	lds	r24, 0x010D
1511
     964:	fb 01       	movw	r30, r22
1512
     966:	e8 0f       	add	r30, r24
1513
     968:	f1 1d       	adc	r31, r1
1514
     96a:	80 81       	ld	r24, Z
1515
     96c:	8e bd       	out	0x2e, r24	; 46
1516
     96e:	0d b4       	in	r0, 0x2d	; 45
1517
     970:	07 fe       	sbrs	r0, 7
1518
     972:	fd cf       	rjmp	.-6      	; 0x96e <draw_line+0x132>
1519
		SPDR = num_p[heading[3]]; Wait();
1520
     974:	80 91 0e 01 	lds	r24, 0x010E
1521
     978:	fb 01       	movw	r30, r22
1522
     97a:	e8 0f       	add	r30, r24
1523
     97c:	f1 1d       	adc	r31, r1
1524
     97e:	80 81       	ld	r24, Z
1525
     980:	8e bd       	out	0x2e, r24	; 46
1526
     982:	0d b4       	in	r0, 0x2d	; 45
1527
     984:	07 fe       	sbrs	r0, 7
1528
     986:	fd cf       	rjmp	.-6      	; 0x982 <draw_line+0x146>
1529
		SPDR = info_p[heading[4]]; Wait();
1530
     988:	80 91 0f 01 	lds	r24, 0x010F
1531
     98c:	f9 01       	movw	r30, r18
1532
     98e:	e8 0f       	add	r30, r24
1533
     990:	f1 1d       	adc	r31, r1
1534
     992:	80 81       	ld	r24, Z
1535
     994:	8e bd       	out	0x2e, r24	; 46
1536
     996:	0d b4       	in	r0, 0x2d	; 45
1537
     998:	07 fe       	sbrs	r0, 7
1538
     99a:	fd cf       	rjmp	.-6      	; 0x996 <draw_line+0x15a>
1539
		DDRB&=0xFE; 		//PB0 Hi-Z again, and load a blank so spacing is right
1540
     99c:	20 98       	cbi	0x04, 0	; 4
1541
 
1542
		// +++ RX Level
1543
		while(TCNT0<250);
1544
     99e:	86 b5       	in	r24, 0x26	; 38
1545
     9a0:	8a 3f       	cpi	r24, 0xFA	; 250
1546
     9a2:	e8 f3       	brcs	.-6      	; 0x99e <draw_line+0x162>
1547
		TCNT0=0;
1548
     9a4:	16 bc       	out	0x26, r1	; 38
1549
		while(TCNT0<70);
1550
     9a6:	86 b5       	in	r24, 0x26	; 38
1551
     9a8:	86 34       	cpi	r24, 0x46	; 70
1552
     9aa:	e8 f3       	brcs	.-6      	; 0x9a6 <draw_line+0x16a>
1553
		SPSR=1;
1554
     9ac:	81 e0       	ldi	r24, 0x01	; 1
1555
     9ae:	8d bd       	out	0x2d, r24	; 45
1556
		DDRB|=1;
1557
     9b0:	20 9a       	sbi	0x04, 0	; 4
1558
		SPDR = info_p[rx[0]]; Wait();
1559
     9b2:	80 91 20 01 	lds	r24, 0x0120
1560
     9b6:	f9 01       	movw	r30, r18
1561
     9b8:	e8 0f       	add	r30, r24
1562
     9ba:	f1 1d       	adc	r31, r1
1563
     9bc:	80 81       	ld	r24, Z
1564
     9be:	8e bd       	out	0x2e, r24	; 46
1565
     9c0:	0d b4       	in	r0, 0x2d	; 45
1566
     9c2:	07 fe       	sbrs	r0, 7
1567
     9c4:	fd cf       	rjmp	.-6      	; 0x9c0 <draw_line+0x184>
1568
		SPDR = info_p[rx[1]]; Wait();
1569
     9c6:	80 91 21 01 	lds	r24, 0x0121
1570
     9ca:	f9 01       	movw	r30, r18
1571
     9cc:	e8 0f       	add	r30, r24
1572
     9ce:	f1 1d       	adc	r31, r1
1573
     9d0:	80 81       	ld	r24, Z
1574
     9d2:	8e bd       	out	0x2e, r24	; 46
1575
     9d4:	0d b4       	in	r0, 0x2d	; 45
1576
     9d6:	07 fe       	sbrs	r0, 7
1577
     9d8:	fd cf       	rjmp	.-6      	; 0x9d4 <draw_line+0x198>
1578
		SPDR = info_p[rx[2]]; Wait();
1579
     9da:	80 91 22 01 	lds	r24, 0x0122
1580
     9de:	f9 01       	movw	r30, r18
1581
     9e0:	e8 0f       	add	r30, r24
1582
     9e2:	f1 1d       	adc	r31, r1
1583
     9e4:	80 81       	ld	r24, Z
1584
     9e6:	8e bd       	out	0x2e, r24	; 46
1585
     9e8:	0d b4       	in	r0, 0x2d	; 45
1586
     9ea:	07 fe       	sbrs	r0, 7
1587
     9ec:	fd cf       	rjmp	.-6      	; 0x9e8 <draw_line+0x1ac>
1588
		SPDR = info_p[rx[3]]; Wait();
1589
     9ee:	80 91 23 01 	lds	r24, 0x0123
1590
     9f2:	f9 01       	movw	r30, r18
1591
     9f4:	e8 0f       	add	r30, r24
1592
     9f6:	f1 1d       	adc	r31, r1
1593
     9f8:	80 81       	ld	r24, Z
1594
     9fa:	8e bd       	out	0x2e, r24	; 46
1595
     9fc:	0d b4       	in	r0, 0x2d	; 45
1596
     9fe:	07 fe       	sbrs	r0, 7
1597
     a00:	fd cf       	rjmp	.-6      	; 0x9fc <draw_line+0x1c0>
1598
		SPDR = info_p[rx[4]]; Wait();
1599
     a02:	80 91 24 01 	lds	r24, 0x0124
1600
     a06:	f9 01       	movw	r30, r18
1601
     a08:	e8 0f       	add	r30, r24
1602
     a0a:	f1 1d       	adc	r31, r1
1603
     a0c:	80 81       	ld	r24, Z
1604
     a0e:	8e bd       	out	0x2e, r24	; 46
1605
     a10:	0d b4       	in	r0, 0x2d	; 45
1606
     a12:	07 fe       	sbrs	r0, 7
1607
     a14:	fd cf       	rjmp	.-6      	; 0xa10 <draw_line+0x1d4>
1608
		SPDR = info_p[rx[5]]; Wait();
1609
     a16:	80 91 25 01 	lds	r24, 0x0125
1610
     a1a:	f9 01       	movw	r30, r18
1611
     a1c:	e8 0f       	add	r30, r24
1612
     a1e:	f1 1d       	adc	r31, r1
1613
     a20:	80 81       	ld	r24, Z
1614
     a22:	8e bd       	out	0x2e, r24	; 46
1615
     a24:	0d b4       	in	r0, 0x2d	; 45
1616
     a26:	07 fe       	sbrs	r0, 7
1617
     a28:	fd cf       	rjmp	.-6      	; 0xa24 <draw_line+0x1e8>
1618
		SPDR = info_p[rx[6]]; Wait();
1619
     a2a:	80 91 26 01 	lds	r24, 0x0126
1620
     a2e:	f9 01       	movw	r30, r18
1621
     a30:	e8 0f       	add	r30, r24
1622
     a32:	f1 1d       	adc	r31, r1
1623
     a34:	80 81       	ld	r24, Z
1624
     a36:	8e bd       	out	0x2e, r24	; 46
1625
     a38:	0d b4       	in	r0, 0x2d	; 45
1626
     a3a:	07 fe       	sbrs	r0, 7
1627
     a3c:	fd cf       	rjmp	.-6      	; 0xa38 <draw_line+0x1fc>
1628
		SPDR = info_p[rx[7]]; Wait();
1629
     a3e:	80 91 27 01 	lds	r24, 0x0127
1630
     a42:	f9 01       	movw	r30, r18
1631
     a44:	e8 0f       	add	r30, r24
1632
     a46:	f1 1d       	adc	r31, r1
1633
     a48:	80 81       	ld	r24, Z
1634
     a4a:	8e bd       	out	0x2e, r24	; 46
1635
     a4c:	0d b4       	in	r0, 0x2d	; 45
1636
     a4e:	07 fe       	sbrs	r0, 7
1637
     a50:	fd cf       	rjmp	.-6      	; 0xa4c <draw_line+0x210>
1638
		DDRB&=0xFE;
1639
     a52:	20 98       	cbi	0x04, 0	; 4
1640
	}
1641
 
1642
	// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1643
	// UBat
1644
	if ((line > 44) && (line < 52))
1645
     a54:	ca 01       	movw	r24, r20
1646
     a56:	8d 97       	sbiw	r24, 0x2d	; 45
1647
     a58:	07 97       	sbiw	r24, 0x07	; 7
1648
     a5a:	08 f0       	brcs	.+2      	; 0xa5e <draw_line+0x222>
1649
     a5c:	d4 c0       	rjmp	.+424    	; 0xc06 <draw_line+0x3ca>
1650
	{
1651
		ltemp = (line - 45) * 27 - 64;
1652
		ntemp = (line - 45) * 16 - 43;
1653
		itemp = (line - 45) * 9;
1654
		ltr_p = ltrs+ltemp;
1655
     a5e:	ca 01       	movw	r24, r20
1656
     a60:	88 0f       	add	r24, r24
1657
     a62:	99 1f       	adc	r25, r25
1658
     a64:	84 0f       	add	r24, r20
1659
     a66:	95 1f       	adc	r25, r21
1660
     a68:	9c 01       	movw	r18, r24
1661
     a6a:	22 0f       	add	r18, r18
1662
     a6c:	33 1f       	adc	r19, r19
1663
     a6e:	22 0f       	add	r18, r18
1664
     a70:	33 1f       	adc	r19, r19
1665
     a72:	22 0f       	add	r18, r18
1666
     a74:	33 1f       	adc	r19, r19
1667
     a76:	82 0f       	add	r24, r18
1668
     a78:	93 1f       	adc	r25, r19
1669
     a7a:	bc 01       	movw	r22, r24
1670
     a7c:	60 5b       	subi	r22, 0xB0	; 176
1671
     a7e:	72 40       	sbci	r23, 0x02	; 2
1672
		num_p = nums+ntemp;
1673
     a80:	ca 01       	movw	r24, r20
1674
     a82:	82 95       	swap	r24
1675
     a84:	92 95       	swap	r25
1676
     a86:	90 7f       	andi	r25, 0xF0	; 240
1677
     a88:	98 27       	eor	r25, r24
1678
     a8a:	80 7f       	andi	r24, 0xF0	; 240
1679
     a8c:	98 27       	eor	r25, r24
1680
     a8e:	9c 01       	movw	r18, r24
1681
     a90:	2f 5e       	subi	r18, 0xEF	; 239
1682
     a92:	3f 4f       	sbci	r19, 0xFF	; 255
1683
		info_p = infos+itemp;
1684
		// +++ UBat
1685
		while(TCNT0<LINESTART);
1686
     a94:	86 b5       	in	r24, 0x26	; 38
1687
     a96:	88 3c       	cpi	r24, 0xC8	; 200
1688
     a98:	e8 f3       	brcs	.-6      	; 0xa94 <draw_line+0x258>
1689
		TCNT0=0;
1690
     a9a:	16 bc       	out	0x26, r1	; 38
1691
		SPSR=1;
1692
     a9c:	81 e0       	ldi	r24, 0x01	; 1
1693
     a9e:	8d bd       	out	0x2d, r24	; 45
1694
		DDRB|=1;
1695
     aa0:	20 9a       	sbi	0x04, 0	; 4
1696
		SPDR = ltr_p[ubat[0]]; Wait();
1697
     aa2:	80 91 18 01 	lds	r24, 0x0118
1698
     aa6:	fb 01       	movw	r30, r22
1699
     aa8:	e8 0f       	add	r30, r24
1700
     aaa:	f1 1d       	adc	r31, r1
1701
     aac:	80 81       	ld	r24, Z
1702
     aae:	8e bd       	out	0x2e, r24	; 46
1703
     ab0:	0d b4       	in	r0, 0x2d	; 45
1704
     ab2:	07 fe       	sbrs	r0, 7
1705
     ab4:	fd cf       	rjmp	.-6      	; 0xab0 <draw_line+0x274>
1706
		SPDR = num_p[ubat[1]]; Wait();
1707
     ab6:	80 91 19 01 	lds	r24, 0x0119
1708
     aba:	f9 01       	movw	r30, r18
1709
     abc:	e8 0f       	add	r30, r24
1710
     abe:	f1 1d       	adc	r31, r1
1711
     ac0:	80 81       	ld	r24, Z
1712
     ac2:	8e bd       	out	0x2e, r24	; 46
1713
     ac4:	0d b4       	in	r0, 0x2d	; 45
1714
     ac6:	07 fe       	sbrs	r0, 7
1715
     ac8:	fd cf       	rjmp	.-6      	; 0xac4 <draw_line+0x288>
1716
		SPDR = ltr_p[ubat[2]]; Wait();
1717
     aca:	80 91 1a 01 	lds	r24, 0x011A
1718
     ace:	fb 01       	movw	r30, r22
1719
     ad0:	e8 0f       	add	r30, r24
1720
     ad2:	f1 1d       	adc	r31, r1
1721
     ad4:	80 81       	ld	r24, Z
1722
     ad6:	8e bd       	out	0x2e, r24	; 46
1723
     ad8:	0d b4       	in	r0, 0x2d	; 45
1724
     ada:	07 fe       	sbrs	r0, 7
1725
     adc:	fd cf       	rjmp	.-6      	; 0xad8 <draw_line+0x29c>
1726
		SPDR = num_p[ubat[3]]; Wait();
1727
     ade:	80 91 1b 01 	lds	r24, 0x011B
1728
     ae2:	f9 01       	movw	r30, r18
1729
     ae4:	e8 0f       	add	r30, r24
1730
     ae6:	f1 1d       	adc	r31, r1
1731
     ae8:	80 81       	ld	r24, Z
1732
     aea:	8e bd       	out	0x2e, r24	; 46
1733
     aec:	0d b4       	in	r0, 0x2d	; 45
1734
     aee:	07 fe       	sbrs	r0, 7
1735
     af0:	fd cf       	rjmp	.-6      	; 0xaec <draw_line+0x2b0>
1736
		SPDR = num_p[ubat[4]]; Wait();
1737
     af2:	80 91 1c 01 	lds	r24, 0x011C
1738
     af6:	f9 01       	movw	r30, r18
1739
     af8:	e8 0f       	add	r30, r24
1740
     afa:	f1 1d       	adc	r31, r1
1741
     afc:	80 81       	ld	r24, Z
1742
     afe:	8e bd       	out	0x2e, r24	; 46
1743
     b00:	0d b4       	in	r0, 0x2d	; 45
1744
     b02:	07 fe       	sbrs	r0, 7
1745
     b04:	fd cf       	rjmp	.-6      	; 0xb00 <draw_line+0x2c4>
1746
		SPDR = num_p[ubat[5]]; Wait();
1747
     b06:	80 91 1d 01 	lds	r24, 0x011D
1748
     b0a:	f9 01       	movw	r30, r18
1749
     b0c:	e8 0f       	add	r30, r24
1750
     b0e:	f1 1d       	adc	r31, r1
1751
     b10:	80 81       	ld	r24, Z
1752
     b12:	8e bd       	out	0x2e, r24	; 46
1753
     b14:	0d b4       	in	r0, 0x2d	; 45
1754
     b16:	07 fe       	sbrs	r0, 7
1755
     b18:	fd cf       	rjmp	.-6      	; 0xb14 <draw_line+0x2d8>
1756
		SPDR = num_p[ubat[6]]; Wait();
1757
     b1a:	80 91 1e 01 	lds	r24, 0x011E
1758
     b1e:	f9 01       	movw	r30, r18
1759
     b20:	e8 0f       	add	r30, r24
1760
     b22:	f1 1d       	adc	r31, r1
1761
     b24:	80 81       	ld	r24, Z
1762
     b26:	8e bd       	out	0x2e, r24	; 46
1763
     b28:	0d b4       	in	r0, 0x2d	; 45
1764
     b2a:	07 fe       	sbrs	r0, 7
1765
     b2c:	fd cf       	rjmp	.-6      	; 0xb28 <draw_line+0x2ec>
1766
		SPDR = ltr_p[ubat[7]]; Wait();
1767
     b2e:	80 91 1f 01 	lds	r24, 0x011F
1768
     b32:	fb 01       	movw	r30, r22
1769
     b34:	e8 0f       	add	r30, r24
1770
     b36:	f1 1d       	adc	r31, r1
1771
     b38:	80 81       	ld	r24, Z
1772
     b3a:	8e bd       	out	0x2e, r24	; 46
1773
     b3c:	0d b4       	in	r0, 0x2d	; 45
1774
     b3e:	07 fe       	sbrs	r0, 7
1775
     b40:	fd cf       	rjmp	.-6      	; 0xb3c <draw_line+0x300>
1776
		DDRB&=0xFE;
1777
     b42:	20 98       	cbi	0x04, 0	; 4
1778
		TCNT0=0;
1779
     b44:	16 bc       	out	0x26, r1	; 38
1780
		while(TCNT0<80);
1781
     b46:	86 b5       	in	r24, 0x26	; 38
1782
     b48:	80 35       	cpi	r24, 0x50	; 80
1783
     b4a:	e8 f3       	brcs	.-6      	; 0xb46 <draw_line+0x30a>
1784
		TCNT0=0;
1785
     b4c:	16 bc       	out	0x26, r1	; 38
1786
		while(TCNT0<250);
1787
     b4e:	86 b5       	in	r24, 0x26	; 38
1788
     b50:	8a 3f       	cpi	r24, 0xFA	; 250
1789
     b52:	e8 f3       	brcs	.-6      	; 0xb4e <draw_line+0x312>
1790
		TCNT0=0;
1791
     b54:	16 bc       	out	0x26, r1	; 38
1792
		while(TCNT0<70);
1793
     b56:	86 b5       	in	r24, 0x26	; 38
1794
     b58:	86 34       	cpi	r24, 0x46	; 70
1795
     b5a:	e8 f3       	brcs	.-6      	; 0xb56 <draw_line+0x31a>
1796
		TCNT0=0;
1797
     b5c:	16 bc       	out	0x26, r1	; 38
1798
		SPSR=1;
1799
     b5e:	81 e0       	ldi	r24, 0x01	; 1
1800
     b60:	8d bd       	out	0x2d, r24	; 45
1801
		DDRB|=1;
1802
     b62:	20 9a       	sbi	0x04, 0	; 4
1803
		SPDR = ltr_p[urx[0]]; Wait();
1804
     b64:	80 91 28 01 	lds	r24, 0x0128
1805
     b68:	fb 01       	movw	r30, r22
1806
     b6a:	e8 0f       	add	r30, r24
1807
     b6c:	f1 1d       	adc	r31, r1
1808
     b6e:	80 81       	ld	r24, Z
1809
     b70:	8e bd       	out	0x2e, r24	; 46
1810
     b72:	0d b4       	in	r0, 0x2d	; 45
1811
     b74:	07 fe       	sbrs	r0, 7
1812
     b76:	fd cf       	rjmp	.-6      	; 0xb72 <draw_line+0x336>
1813
		SPDR = ltr_p[urx[1]]; Wait();
1814
     b78:	80 91 29 01 	lds	r24, 0x0129
1815
     b7c:	fb 01       	movw	r30, r22
1816
     b7e:	e8 0f       	add	r30, r24
1817
     b80:	f1 1d       	adc	r31, r1
1818
     b82:	80 81       	ld	r24, Z
1819
     b84:	8e bd       	out	0x2e, r24	; 46
1820
     b86:	0d b4       	in	r0, 0x2d	; 45
1821
     b88:	07 fe       	sbrs	r0, 7
1822
     b8a:	fd cf       	rjmp	.-6      	; 0xb86 <draw_line+0x34a>
1823
		SPDR = num_p[urx[2]]; Wait();
1824
     b8c:	80 91 2a 01 	lds	r24, 0x012A
1825
     b90:	f9 01       	movw	r30, r18
1826
     b92:	e8 0f       	add	r30, r24
1827
     b94:	f1 1d       	adc	r31, r1
1828
     b96:	80 81       	ld	r24, Z
1829
     b98:	8e bd       	out	0x2e, r24	; 46
1830
     b9a:	0d b4       	in	r0, 0x2d	; 45
1831
     b9c:	07 fe       	sbrs	r0, 7
1832
     b9e:	fd cf       	rjmp	.-6      	; 0xb9a <draw_line+0x35e>
1833
		SPDR = ltr_p[urx[3]]; Wait();
1834
     ba0:	80 91 2b 01 	lds	r24, 0x012B
1835
     ba4:	fb 01       	movw	r30, r22
1836
     ba6:	e8 0f       	add	r30, r24
1837
     ba8:	f1 1d       	adc	r31, r1
1838
     baa:	80 81       	ld	r24, Z
1839
     bac:	8e bd       	out	0x2e, r24	; 46
1840
     bae:	0d b4       	in	r0, 0x2d	; 45
1841
     bb0:	07 fe       	sbrs	r0, 7
1842
     bb2:	fd cf       	rjmp	.-6      	; 0xbae <draw_line+0x372>
1843
		SPDR = num_p[urx[4]]; Wait();
1844
     bb4:	80 91 2c 01 	lds	r24, 0x012C
1845
     bb8:	f9 01       	movw	r30, r18
1846
     bba:	e8 0f       	add	r30, r24
1847
     bbc:	f1 1d       	adc	r31, r1
1848
     bbe:	80 81       	ld	r24, Z
1849
     bc0:	8e bd       	out	0x2e, r24	; 46
1850
     bc2:	0d b4       	in	r0, 0x2d	; 45
1851
     bc4:	07 fe       	sbrs	r0, 7
1852
     bc6:	fd cf       	rjmp	.-6      	; 0xbc2 <draw_line+0x386>
1853
		SPDR = num_p[urx[5]]; Wait();
1854
     bc8:	80 91 2d 01 	lds	r24, 0x012D
1855
     bcc:	f9 01       	movw	r30, r18
1856
     bce:	e8 0f       	add	r30, r24
1857
     bd0:	f1 1d       	adc	r31, r1
1858
     bd2:	80 81       	ld	r24, Z
1859
     bd4:	8e bd       	out	0x2e, r24	; 46
1860
     bd6:	0d b4       	in	r0, 0x2d	; 45
1861
     bd8:	07 fe       	sbrs	r0, 7
1862
     bda:	fd cf       	rjmp	.-6      	; 0xbd6 <draw_line+0x39a>
1863
		SPDR = num_p[urx[6]]; Wait();
1864
     bdc:	80 91 2e 01 	lds	r24, 0x012E
1865
     be0:	f9 01       	movw	r30, r18
1866
     be2:	e8 0f       	add	r30, r24
1867
     be4:	f1 1d       	adc	r31, r1
1868
     be6:	80 81       	ld	r24, Z
1869
     be8:	8e bd       	out	0x2e, r24	; 46
1870
     bea:	0d b4       	in	r0, 0x2d	; 45
1871
     bec:	07 fe       	sbrs	r0, 7
1872
     bee:	fd cf       	rjmp	.-6      	; 0xbea <draw_line+0x3ae>
1873
		SPDR = num_p[urx[7]]; Wait();
1874
     bf0:	80 91 2f 01 	lds	r24, 0x012F
1875
     bf4:	f9 01       	movw	r30, r18
1876
     bf6:	e8 0f       	add	r30, r24
1877
     bf8:	f1 1d       	adc	r31, r1
1878
     bfa:	80 81       	ld	r24, Z
1879
     bfc:	8e bd       	out	0x2e, r24	; 46
1880
     bfe:	0d b4       	in	r0, 0x2d	; 45
1881
     c00:	07 fe       	sbrs	r0, 7
1882
     c02:	fd cf       	rjmp	.-6      	; 0xbfe <draw_line+0x3c2>
1883
		DDRB&=0xFE;
1884
     c04:	20 98       	cbi	0x04, 0	; 4
1885
 
1886
	}
1887
 
1888
	// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1889
	// Message
1890
	if ((line > 60) && (line < 68) && (showmessage1) && (lowbat))
1891
     c06:	ca 01       	movw	r24, r20
1892
     c08:	cd 97       	sbiw	r24, 0x3d	; 61
1893
     c0a:	07 97       	sbiw	r24, 0x07	; 7
1894
     c0c:	08 f0       	brcs	.+2      	; 0xc10 <draw_line+0x3d4>
1895
     c0e:	9c c0       	rjmp	.+312    	; 0xd48 <draw_line+0x50c>
1896
     c10:	80 91 d9 03 	lds	r24, 0x03D9
1897
     c14:	88 23       	and	r24, r24
1898
     c16:	09 f4       	brne	.+2      	; 0xc1a <draw_line+0x3de>
1899
     c18:	97 c0       	rjmp	.+302    	; 0xd48 <draw_line+0x50c>
1900
     c1a:	80 91 d8 03 	lds	r24, 0x03D8
1901
     c1e:	88 23       	and	r24, r24
1902
     c20:	09 f4       	brne	.+2      	; 0xc24 <draw_line+0x3e8>
1903
     c22:	92 c0       	rjmp	.+292    	; 0xd48 <draw_line+0x50c>
1904
	{
1905
		ltemp = (line - 61) * 27 - 64;
1906
		ntemp = (line - 61) * 16 - 43;
1907
		itemp = (line - 61) * 9;
1908
		ltr_p = ltrs+ltemp;
1909
     c24:	ca 01       	movw	r24, r20
1910
     c26:	88 0f       	add	r24, r24
1911
     c28:	99 1f       	adc	r25, r25
1912
     c2a:	84 0f       	add	r24, r20
1913
     c2c:	95 1f       	adc	r25, r21
1914
     c2e:	9c 01       	movw	r18, r24
1915
     c30:	22 0f       	add	r18, r18
1916
     c32:	33 1f       	adc	r19, r19
1917
     c34:	22 0f       	add	r18, r18
1918
     c36:	33 1f       	adc	r19, r19
1919
     c38:	22 0f       	add	r18, r18
1920
     c3a:	33 1f       	adc	r19, r19
1921
     c3c:	82 0f       	add	r24, r18
1922
     c3e:	93 1f       	adc	r25, r19
1923
     c40:	9c 01       	movw	r18, r24
1924
     c42:	20 56       	subi	r18, 0x60	; 96
1925
     c44:	34 40       	sbci	r19, 0x04	; 4
1926
		num_p = nums+ntemp;
1927
		info_p = infos+itemp;
1928
		// +++ UBat
1929
		while(TCNT0<LINESTART);
1930
     c46:	86 b5       	in	r24, 0x26	; 38
1931
     c48:	88 3c       	cpi	r24, 0xC8	; 200
1932
     c4a:	e8 f3       	brcs	.-6      	; 0xc46 <draw_line+0x40a>
1933
		TCNT0=0;
1934
     c4c:	16 bc       	out	0x26, r1	; 38
1935
		while(TCNT0<250);
1936
     c4e:	86 b5       	in	r24, 0x26	; 38
1937
     c50:	8a 3f       	cpi	r24, 0xFA	; 250
1938
     c52:	e8 f3       	brcs	.-6      	; 0xc4e <draw_line+0x412>
1939
		SPSR=1;
1940
     c54:	81 e0       	ldi	r24, 0x01	; 1
1941
     c56:	8d bd       	out	0x2d, r24	; 45
1942
		SPDR = ltr_p[Message_LowBat[0]]; Wait();
1943
     c58:	f9 01       	movw	r30, r18
1944
     c5a:	e0 5c       	subi	r30, 0xC0	; 192
1945
     c5c:	ff 4f       	sbci	r31, 0xFF	; 255
1946
     c5e:	80 81       	ld	r24, Z
1947
     c60:	8e bd       	out	0x2e, r24	; 46
1948
     c62:	0d b4       	in	r0, 0x2d	; 45
1949
     c64:	07 fe       	sbrs	r0, 7
1950
     c66:	fd cf       	rjmp	.-6      	; 0xc62 <draw_line+0x426>
1951
		SPDR = ltr_p[Message_LowBat[1]]; Wait();
1952
     c68:	f9 01       	movw	r30, r18
1953
     c6a:	e0 5c       	subi	r30, 0xC0	; 192
1954
     c6c:	ff 4f       	sbci	r31, 0xFF	; 255
1955
     c6e:	80 81       	ld	r24, Z
1956
     c70:	8e bd       	out	0x2e, r24	; 46
1957
     c72:	0d b4       	in	r0, 0x2d	; 45
1958
     c74:	07 fe       	sbrs	r0, 7
1959
     c76:	fd cf       	rjmp	.-6      	; 0xc72 <draw_line+0x436>
1960
		SPDR = ltr_p[Message_LowBat[2]]; Wait();
1961
     c78:	f9 01       	movw	r30, r18
1962
     c7a:	e4 5b       	subi	r30, 0xB4	; 180
1963
     c7c:	ff 4f       	sbci	r31, 0xFF	; 255
1964
     c7e:	80 81       	ld	r24, Z
1965
     c80:	8e bd       	out	0x2e, r24	; 46
1966
     c82:	0d b4       	in	r0, 0x2d	; 45
1967
     c84:	07 fe       	sbrs	r0, 7
1968
     c86:	fd cf       	rjmp	.-6      	; 0xc82 <draw_line+0x446>
1969
		SPDR = ltr_p[Message_LowBat[3]]; Wait();
1970
     c88:	f9 01       	movw	r30, r18
1971
     c8a:	e1 5b       	subi	r30, 0xB1	; 177
1972
     c8c:	ff 4f       	sbci	r31, 0xFF	; 255
1973
     c8e:	80 81       	ld	r24, Z
1974
     c90:	8e bd       	out	0x2e, r24	; 46
1975
     c92:	0d b4       	in	r0, 0x2d	; 45
1976
     c94:	07 fe       	sbrs	r0, 7
1977
     c96:	fd cf       	rjmp	.-6      	; 0xc92 <draw_line+0x456>
1978
		SPDR = ltr_p[Message_LowBat[4]]; Wait();
1979
     c98:	f9 01       	movw	r30, r18
1980
     c9a:	e9 5a       	subi	r30, 0xA9	; 169
1981
     c9c:	ff 4f       	sbci	r31, 0xFF	; 255
1982
     c9e:	80 81       	ld	r24, Z
1983
     ca0:	8e bd       	out	0x2e, r24	; 46
1984
     ca2:	0d b4       	in	r0, 0x2d	; 45
1985
     ca4:	07 fe       	sbrs	r0, 7
1986
     ca6:	fd cf       	rjmp	.-6      	; 0xca2 <draw_line+0x466>
1987
		SPDR = ltr_p[Message_LowBat[5]]; Wait();
1988
     ca8:	f9 01       	movw	r30, r18
1989
     caa:	e0 5c       	subi	r30, 0xC0	; 192
1990
     cac:	ff 4f       	sbci	r31, 0xFF	; 255
1991
     cae:	80 81       	ld	r24, Z
1992
     cb0:	8e bd       	out	0x2e, r24	; 46
1993
     cb2:	0d b4       	in	r0, 0x2d	; 45
1994
     cb4:	07 fe       	sbrs	r0, 7
1995
     cb6:	fd cf       	rjmp	.-6      	; 0xcb2 <draw_line+0x476>
1996
		SPDR = ltr_p[Message_LowBat[6]]; Wait();
1997
     cb8:	f9 01       	movw	r30, r18
1998
     cba:	ee 5b       	subi	r30, 0xBE	; 190
1999
     cbc:	ff 4f       	sbci	r31, 0xFF	; 255
2000
     cbe:	80 81       	ld	r24, Z
2001
     cc0:	8e bd       	out	0x2e, r24	; 46
2002
     cc2:	0d b4       	in	r0, 0x2d	; 45
2003
     cc4:	07 fe       	sbrs	r0, 7
2004
     cc6:	fd cf       	rjmp	.-6      	; 0xcc2 <draw_line+0x486>
2005
		SPDR = ltr_p[Message_LowBat[7]]; Wait();
2006
     cc8:	f9 01       	movw	r30, r18
2007
     cca:	ef 5b       	subi	r30, 0xBF	; 191
2008
     ccc:	ff 4f       	sbci	r31, 0xFF	; 255
2009
     cce:	80 81       	ld	r24, Z
2010
     cd0:	8e bd       	out	0x2e, r24	; 46
2011
     cd2:	0d b4       	in	r0, 0x2d	; 45
2012
     cd4:	07 fe       	sbrs	r0, 7
2013
     cd6:	fd cf       	rjmp	.-6      	; 0xcd2 <draw_line+0x496>
2014
		SPDR = ltr_p[Message_LowBat[8]]; Wait();
2015
     cd8:	f9 01       	movw	r30, r18
2016
     cda:	ec 5a       	subi	r30, 0xAC	; 172
2017
     cdc:	ff 4f       	sbci	r31, 0xFF	; 255
2018
     cde:	80 81       	ld	r24, Z
2019
     ce0:	8e bd       	out	0x2e, r24	; 46
2020
     ce2:	0d b4       	in	r0, 0x2d	; 45
2021
     ce4:	07 fe       	sbrs	r0, 7
2022
     ce6:	fd cf       	rjmp	.-6      	; 0xce2 <draw_line+0x4a6>
2023
		SPDR = ltr_p[Message_LowBat[9]]; Wait();
2024
     ce8:	f9 01       	movw	r30, r18
2025
     cea:	ec 5a       	subi	r30, 0xAC	; 172
2026
     cec:	ff 4f       	sbci	r31, 0xFF	; 255
2027
     cee:	80 81       	ld	r24, Z
2028
     cf0:	8e bd       	out	0x2e, r24	; 46
2029
     cf2:	0d b4       	in	r0, 0x2d	; 45
2030
     cf4:	07 fe       	sbrs	r0, 7
2031
     cf6:	fd cf       	rjmp	.-6      	; 0xcf2 <draw_line+0x4b6>
2032
		SPDR = ltr_p[Message_LowBat[10]]; Wait();
2033
     cf8:	f9 01       	movw	r30, r18
2034
     cfa:	eb 5b       	subi	r30, 0xBB	; 187
2035
     cfc:	ff 4f       	sbci	r31, 0xFF	; 255
2036
     cfe:	80 81       	ld	r24, Z
2037
     d00:	8e bd       	out	0x2e, r24	; 46
2038
     d02:	0d b4       	in	r0, 0x2d	; 45
2039
     d04:	07 fe       	sbrs	r0, 7
2040
     d06:	fd cf       	rjmp	.-6      	; 0xd02 <draw_line+0x4c6>
2041
		SPDR = ltr_p[Message_LowBat[11]]; Wait();
2042
     d08:	f9 01       	movw	r30, r18
2043
     d0a:	ee 5a       	subi	r30, 0xAE	; 174
2044
     d0c:	ff 4f       	sbci	r31, 0xFF	; 255
2045
     d0e:	80 81       	ld	r24, Z
2046
     d10:	8e bd       	out	0x2e, r24	; 46
2047
     d12:	0d b4       	in	r0, 0x2d	; 45
2048
     d14:	07 fe       	sbrs	r0, 7
2049
     d16:	fd cf       	rjmp	.-6      	; 0xd12 <draw_line+0x4d6>
2050
		SPDR = ltr_p[Message_LowBat[12]]; Wait();
2051
     d18:	f9 01       	movw	r30, r18
2052
     d1a:	e7 5a       	subi	r30, 0xA7	; 167
2053
     d1c:	ff 4f       	sbci	r31, 0xFF	; 255
2054
     d1e:	80 81       	ld	r24, Z
2055
     d20:	8e bd       	out	0x2e, r24	; 46
2056
     d22:	0d b4       	in	r0, 0x2d	; 45
2057
     d24:	07 fe       	sbrs	r0, 7
2058
     d26:	fd cf       	rjmp	.-6      	; 0xd22 <draw_line+0x4e6>
2059
		SPDR = ltr_p[Message_LowBat[13]]; Wait();
2060
     d28:	f9 01       	movw	r30, r18
2061
     d2a:	e0 5c       	subi	r30, 0xC0	; 192
2062
     d2c:	ff 4f       	sbci	r31, 0xFF	; 255
2063
     d2e:	80 81       	ld	r24, Z
2064
     d30:	8e bd       	out	0x2e, r24	; 46
2065
     d32:	0d b4       	in	r0, 0x2d	; 45
2066
     d34:	07 fe       	sbrs	r0, 7
2067
     d36:	fd cf       	rjmp	.-6      	; 0xd32 <draw_line+0x4f6>
2068
		SPDR = ltr_p[Message_LowBat[14]]; Wait();
2069
     d38:	f9 01       	movw	r30, r18
2070
     d3a:	e0 5c       	subi	r30, 0xC0	; 192
2071
     d3c:	ff 4f       	sbci	r31, 0xFF	; 255
2072
     d3e:	80 81       	ld	r24, Z
2073
     d40:	8e bd       	out	0x2e, r24	; 46
2074
     d42:	0d b4       	in	r0, 0x2d	; 45
2075
     d44:	07 fe       	sbrs	r0, 7
2076
     d46:	fd cf       	rjmp	.-6      	; 0xd42 <draw_line+0x506>
2077
	}
2078
 
2079
	// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2080
	// alt value
2081
 
2082
	if((line > 80) && (line <250))
2083
     d48:	ca 01       	movw	r24, r20
2084
     d4a:	81 55       	subi	r24, 0x51	; 81
2085
     d4c:	90 40       	sbci	r25, 0x00	; 0
2086
     d4e:	89 3a       	cpi	r24, 0xA9	; 169
2087
     d50:	91 05       	cpc	r25, r1
2088
     d52:	20 f4       	brcc	.+8      	; 0xd5c <draw_line+0x520>
2089
	{
2090
		while(TCNT0<LINESTART);
2091
     d54:	86 b5       	in	r24, 0x26	; 38
2092
     d56:	88 3c       	cpi	r24, 0xC8	; 200
2093
     d58:	e8 f3       	brcs	.-6      	; 0xd54 <draw_line+0x518>
2094
		TCNT0=0;
2095
     d5a:	16 bc       	out	0x26, r1	; 38
2096
	}
2097
 
2098
	if ((line > 170) && (line < 178))
2099
     d5c:	ca 01       	movw	r24, r20
2100
     d5e:	8b 5a       	subi	r24, 0xAB	; 171
2101
     d60:	90 40       	sbci	r25, 0x00	; 0
2102
     d62:	07 97       	sbiw	r24, 0x07	; 7
2103
     d64:	08 f0       	brcs	.+2      	; 0xd68 <draw_line+0x52c>
2104
     d66:	4d c0       	rjmp	.+154    	; 0xe02 <draw_line+0x5c6>
2105
	{
2106
		ltemp = (line - 171) * 27 - 64;
2107
		ntemp = (line - 171) * 16 - 43;
2108
		itemp = (line - 171) * 9;
2109
		ltr_p = ltrs+ltemp;
2110
		num_p = nums+ntemp;
2111
     d68:	ca 01       	movw	r24, r20
2112
     d6a:	82 95       	swap	r24
2113
     d6c:	92 95       	swap	r25
2114
     d6e:	90 7f       	andi	r25, 0xF0	; 240
2115
     d70:	98 27       	eor	r25, r24
2116
     d72:	80 7f       	andi	r24, 0xF0	; 240
2117
     d74:	98 27       	eor	r25, r24
2118
     d76:	9c 01       	movw	r18, r24
2119
     d78:	2f 5c       	subi	r18, 0xCF	; 207
2120
     d7a:	37 40       	sbci	r19, 0x07	; 7
2121
		info_p = infos+itemp;
2122
		while(TCNT0<10);
2123
     d7c:	86 b5       	in	r24, 0x26	; 38
2124
     d7e:	8a 30       	cpi	r24, 0x0A	; 10
2125
     d80:	e8 f3       	brcs	.-6      	; 0xd7c <draw_line+0x540>
2126
		SPSR=1;
2127
     d82:	81 e0       	ldi	r24, 0x01	; 1
2128
     d84:	8d bd       	out	0x2d, r24	; 45
2129
		DDRB|=1;
2130
     d86:	20 9a       	sbi	0x04, 0	; 4
2131
		SPDR = num_p[altv[0]]; Wait();
2132
     d88:	80 91 30 01 	lds	r24, 0x0130
2133
     d8c:	f9 01       	movw	r30, r18
2134
     d8e:	e8 0f       	add	r30, r24
2135
     d90:	f1 1d       	adc	r31, r1
2136
     d92:	80 81       	ld	r24, Z
2137
     d94:	8e bd       	out	0x2e, r24	; 46
2138
     d96:	0d b4       	in	r0, 0x2d	; 45
2139
     d98:	07 fe       	sbrs	r0, 7
2140
     d9a:	fd cf       	rjmp	.-6      	; 0xd96 <draw_line+0x55a>
2141
		SPDR = num_p[altv[1]]; Wait();
2142
     d9c:	80 91 31 01 	lds	r24, 0x0131
2143
     da0:	f9 01       	movw	r30, r18
2144
     da2:	e8 0f       	add	r30, r24
2145
     da4:	f1 1d       	adc	r31, r1
2146
     da6:	80 81       	ld	r24, Z
2147
     da8:	8e bd       	out	0x2e, r24	; 46
2148
     daa:	0d b4       	in	r0, 0x2d	; 45
2149
     dac:	07 fe       	sbrs	r0, 7
2150
     dae:	fd cf       	rjmp	.-6      	; 0xdaa <draw_line+0x56e>
2151
		SPDR = num_p[altv[2]]; Wait();
2152
     db0:	80 91 32 01 	lds	r24, 0x0132
2153
     db4:	f9 01       	movw	r30, r18
2154
     db6:	e8 0f       	add	r30, r24
2155
     db8:	f1 1d       	adc	r31, r1
2156
     dba:	80 81       	ld	r24, Z
2157
     dbc:	8e bd       	out	0x2e, r24	; 46
2158
     dbe:	0d b4       	in	r0, 0x2d	; 45
2159
     dc0:	07 fe       	sbrs	r0, 7
2160
     dc2:	fd cf       	rjmp	.-6      	; 0xdbe <draw_line+0x582>
2161
		SPDR = num_p[altv[3]]; Wait();
2162
     dc4:	80 91 33 01 	lds	r24, 0x0133
2163
     dc8:	f9 01       	movw	r30, r18
2164
     dca:	e8 0f       	add	r30, r24
2165
     dcc:	f1 1d       	adc	r31, r1
2166
     dce:	80 81       	ld	r24, Z
2167
     dd0:	8e bd       	out	0x2e, r24	; 46
2168
     dd2:	0d b4       	in	r0, 0x2d	; 45
2169
     dd4:	07 fe       	sbrs	r0, 7
2170
     dd6:	fd cf       	rjmp	.-6      	; 0xdd2 <draw_line+0x596>
2171
		SPDR = num_p[altv[4]]; Wait();
2172
     dd8:	80 91 34 01 	lds	r24, 0x0134
2173
     ddc:	f9 01       	movw	r30, r18
2174
     dde:	e8 0f       	add	r30, r24
2175
     de0:	f1 1d       	adc	r31, r1
2176
     de2:	80 81       	ld	r24, Z
2177
     de4:	8e bd       	out	0x2e, r24	; 46
2178
     de6:	0d b4       	in	r0, 0x2d	; 45
2179
     de8:	07 fe       	sbrs	r0, 7
2180
     dea:	fd cf       	rjmp	.-6      	; 0xde6 <draw_line+0x5aa>
2181
		SPDR = num_p[altv[5]]; Wait();
2182
     dec:	80 91 35 01 	lds	r24, 0x0135
2183
     df0:	f9 01       	movw	r30, r18
2184
     df2:	e8 0f       	add	r30, r24
2185
     df4:	f1 1d       	adc	r31, r1
2186
     df6:	80 81       	ld	r24, Z
2187
     df8:	8e bd       	out	0x2e, r24	; 46
2188
     dfa:	0d b4       	in	r0, 0x2d	; 45
2189
     dfc:	07 fe       	sbrs	r0, 7
2190
     dfe:	fd cf       	rjmp	.-6      	; 0xdfa <draw_line+0x5be>
2191
		DDRB&=0xFE;
2192
     e00:	20 98       	cbi	0x04, 0	; 4
2193
	}
2194
 
2195
	if ((line > 179) && (line < (179 + alt_delta)) && alt_dec)
2196
     e02:	44 3b       	cpi	r20, 0xB4	; 180
2197
     e04:	51 05       	cpc	r21, r1
2198
     e06:	b0 f0       	brcs	.+44     	; 0xe34 <draw_line+0x5f8>
2199
     e08:	80 91 dc 03 	lds	r24, 0x03DC
2200
     e0c:	90 91 dd 03 	lds	r25, 0x03DD
2201
     e10:	8d 54       	subi	r24, 0x4D	; 77
2202
     e12:	9f 4f       	sbci	r25, 0xFF	; 255
2203
     e14:	48 17       	cp	r20, r24
2204
     e16:	59 07       	cpc	r21, r25
2205
     e18:	68 f4       	brcc	.+26     	; 0xe34 <draw_line+0x5f8>
2206
     e1a:	80 91 df 03 	lds	r24, 0x03DF
2207
     e1e:	88 23       	and	r24, r24
2208
     e20:	49 f0       	breq	.+18     	; 0xe34 <draw_line+0x5f8>
2209
	{
2210
		while(TCNT0<50);
2211
     e22:	86 b5       	in	r24, 0x26	; 38
2212
     e24:	82 33       	cpi	r24, 0x32	; 50
2213
     e26:	e8 f3       	brcs	.-6      	; 0xe22 <draw_line+0x5e6>
2214
		SPDR = bar1; Wait();
2215
     e28:	80 91 36 01 	lds	r24, 0x0136
2216
     e2c:	8e bd       	out	0x2e, r24	; 46
2217
     e2e:	0d b4       	in	r0, 0x2d	; 45
2218
     e30:	07 fe       	sbrs	r0, 7
2219
     e32:	fd cf       	rjmp	.-6      	; 0xe2e <draw_line+0x5f2>
2220
	}
2221
 
2222
	if ((line > (169 - alt_delta)) && (line < 169) && alt_inc)
2223
     e34:	40 91 ed 03 	lds	r20, 0x03ED
2224
     e38:	50 91 ee 03 	lds	r21, 0x03EE
2225
     e3c:	20 91 dc 03 	lds	r18, 0x03DC
2226
     e40:	30 91 dd 03 	lds	r19, 0x03DD
2227
     e44:	89 ea       	ldi	r24, 0xA9	; 169
2228
     e46:	90 e0       	ldi	r25, 0x00	; 0
2229
     e48:	82 1b       	sub	r24, r18
2230
     e4a:	93 0b       	sbc	r25, r19
2231
     e4c:	84 17       	cp	r24, r20
2232
     e4e:	95 07       	cpc	r25, r21
2233
     e50:	80 f4       	brcc	.+32     	; 0xe72 <draw_line+0x636>
2234
     e52:	49 3a       	cpi	r20, 0xA9	; 169
2235
     e54:	51 05       	cpc	r21, r1
2236
     e56:	68 f4       	brcc	.+26     	; 0xe72 <draw_line+0x636>
2237
     e58:	80 91 de 03 	lds	r24, 0x03DE
2238
     e5c:	88 23       	and	r24, r24
2239
     e5e:	49 f0       	breq	.+18     	; 0xe72 <draw_line+0x636>
2240
	{
2241
		while(TCNT0<50);
2242
     e60:	86 b5       	in	r24, 0x26	; 38
2243
     e62:	82 33       	cpi	r24, 0x32	; 50
2244
     e64:	e8 f3       	brcs	.-6      	; 0xe60 <draw_line+0x624>
2245
		SPDR = bar1; Wait();
2246
     e66:	80 91 36 01 	lds	r24, 0x0136
2247
     e6a:	8e bd       	out	0x2e, r24	; 46
2248
     e6c:	0d b4       	in	r0, 0x2d	; 45
2249
     e6e:	07 fe       	sbrs	r0, 7
2250
     e70:	fd cf       	rjmp	.-6      	; 0xe6c <draw_line+0x630>
2251
	}
2252
    asm("nop");
2253
     e72:	00 00       	nop
2254
 
2255
	// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2256
	// grafic array
2257
	if ((line > 90) && (line < 250) && (showgraphic==1))
2258
     e74:	ca 01       	movw	r24, r20
2259
     e76:	8b 55       	subi	r24, 0x5B	; 91
2260
     e78:	90 40       	sbci	r25, 0x00	; 0
2261
     e7a:	8f 39       	cpi	r24, 0x9F	; 159
2262
     e7c:	91 05       	cpc	r25, r1
2263
     e7e:	08 f0       	brcs	.+2      	; 0xe82 <draw_line+0x646>
2264
     e80:	84 c0       	rjmp	.+264    	; 0xf8a <draw_line+0x74e>
2265
     e82:	80 91 00 01 	lds	r24, 0x0100
2266
     e86:	81 30       	cpi	r24, 0x01	; 1
2267
     e88:	09 f0       	breq	.+2      	; 0xe8c <draw_line+0x650>
2268
     e8a:	7f c0       	rjmp	.+254    	; 0xf8a <draw_line+0x74e>
2269
	{
2270
 
2271
		while(TCNT0<250);
2272
     e8c:	86 b5       	in	r24, 0x26	; 38
2273
     e8e:	8a 3f       	cpi	r24, 0xFA	; 250
2274
     e90:	e8 f3       	brcs	.-6      	; 0xe8c <draw_line+0x650>
2275
		TCNT0=0;
2276
     e92:	16 bc       	out	0x26, r1	; 38
2277
 
2278
		i1=7*((line-90)>>2);
2279
     e94:	ca 01       	movw	r24, r20
2280
     e96:	8a 55       	subi	r24, 0x5A	; 90
2281
     e98:	90 40       	sbci	r25, 0x00	; 0
2282
     e9a:	96 95       	lsr	r25
2283
     e9c:	87 95       	ror	r24
2284
     e9e:	96 95       	lsr	r25
2285
     ea0:	87 95       	ror	r24
2286
     ea2:	fc 01       	movw	r30, r24
2287
     ea4:	ee 0f       	add	r30, r30
2288
     ea6:	ff 1f       	adc	r31, r31
2289
     ea8:	ee 0f       	add	r30, r30
2290
     eaa:	ff 1f       	adc	r31, r31
2291
     eac:	ee 0f       	add	r30, r30
2292
     eae:	ff 1f       	adc	r31, r31
2293
     eb0:	e8 1b       	sub	r30, r24
2294
     eb2:	f9 0b       	sbc	r31, r25
2295
		i=0;
2296
		c1=dmem[i1++];
2297
     eb4:	87 e3       	ldi	r24, 0x37	; 55
2298
     eb6:	91 e0       	ldi	r25, 0x01	; 1
2299
     eb8:	df 01       	movw	r26, r30
2300
     eba:	a8 0f       	add	r26, r24
2301
     ebc:	b9 1f       	adc	r27, r25
2302
     ebe:	4c 91       	ld	r20, X
2303
     ec0:	31 96       	adiw	r30, 0x01	; 1
2304
		c2=dmem[i1++];
2305
     ec2:	df 01       	movw	r26, r30
2306
     ec4:	a8 0f       	add	r26, r24
2307
     ec6:	b9 1f       	adc	r27, r25
2308
     ec8:	3c 91       	ld	r19, X
2309
     eca:	31 96       	adiw	r30, 0x01	; 1
2310
		c3=dmem[i1++];
2311
     ecc:	df 01       	movw	r26, r30
2312
     ece:	a8 0f       	add	r26, r24
2313
     ed0:	b9 1f       	adc	r27, r25
2314
     ed2:	5c 91       	ld	r21, X
2315
     ed4:	31 96       	adiw	r30, 0x01	; 1
2316
		c4=dmem[i1++];
2317
     ed6:	df 01       	movw	r26, r30
2318
     ed8:	a8 0f       	add	r26, r24
2319
     eda:	b9 1f       	adc	r27, r25
2320
     edc:	6c 91       	ld	r22, X
2321
     ede:	31 96       	adiw	r30, 0x01	; 1
2322
		c5=dmem[i1++];
2323
     ee0:	df 01       	movw	r26, r30
2324
     ee2:	a8 0f       	add	r26, r24
2325
     ee4:	b9 1f       	adc	r27, r25
2326
     ee6:	ac 91       	ld	r26, X
2327
     ee8:	31 96       	adiw	r30, 0x01	; 1
2328
		c6=dmem[i1++];
2329
     eea:	e8 0f       	add	r30, r24
2330
     eec:	f9 1f       	adc	r31, r25
2331
     eee:	70 81       	ld	r23, Z
2332
		c7=dmem[i1++];
2333
     ef0:	91 81       	ldd	r25, Z+1	; 0x01
2334
		while(TCNT0<20);
2335
     ef2:	86 b5       	in	r24, 0x26	; 38
2336
     ef4:	84 31       	cpi	r24, 0x14	; 20
2337
     ef6:	e8 f3       	brcs	.-6      	; 0xef2 <draw_line+0x6b6>
2338
		if (showgraphicb) DDRB|=1;
2339
     ef8:	80 91 01 01 	lds	r24, 0x0101
2340
     efc:	88 23       	and	r24, r24
2341
     efe:	11 f4       	brne	.+4      	; 0xf04 <draw_line+0x6c8>
2342
     f00:	20 e0       	ldi	r18, 0x00	; 0
2343
     f02:	02 c0       	rjmp	.+4      	; 0xf08 <draw_line+0x6cc>
2344
     f04:	20 9a       	sbi	0x04, 0	; 4
2345
     f06:	20 e0       	ldi	r18, 0x00	; 0
2346
		do {
2347
		  PORTB=((c1<<2)&0x04);
2348
     f08:	84 2f       	mov	r24, r20
2349
     f0a:	88 0f       	add	r24, r24
2350
     f0c:	88 0f       	add	r24, r24
2351
     f0e:	84 70       	andi	r24, 0x04	; 4
2352
     f10:	85 b9       	out	0x05, r24	; 5
2353
		  c1=c1>>1;
2354
     f12:	46 95       	lsr	r20
2355
		  i++;
2356
     f14:	2f 5f       	subi	r18, 0xFF	; 255
2357
		} while(i<8);
2358
     f16:	28 30       	cpi	r18, 0x08	; 8
2359
     f18:	b9 f7       	brne	.-18     	; 0xf08 <draw_line+0x6cc>
2360
		do {
2361
		  PORTB=((c2<<2)&0x04);
2362
     f1a:	83 2f       	mov	r24, r19
2363
     f1c:	88 0f       	add	r24, r24
2364
     f1e:	88 0f       	add	r24, r24
2365
     f20:	84 70       	andi	r24, 0x04	; 4
2366
     f22:	85 b9       	out	0x05, r24	; 5
2367
		  c2=c2>>1;
2368
     f24:	36 95       	lsr	r19
2369
		  i++;
2370
     f26:	2f 5f       	subi	r18, 0xFF	; 255
2371
		} while(i<16);
2372
     f28:	20 31       	cpi	r18, 0x10	; 16
2373
     f2a:	b9 f7       	brne	.-18     	; 0xf1a <draw_line+0x6de>
2374
		do {
2375
		  PORTB=((c3<<2)&0x04);
2376
     f2c:	85 2f       	mov	r24, r21
2377
     f2e:	88 0f       	add	r24, r24
2378
     f30:	88 0f       	add	r24, r24
2379
     f32:	84 70       	andi	r24, 0x04	; 4
2380
     f34:	85 b9       	out	0x05, r24	; 5
2381
		  c3=c3>>1;
2382
     f36:	56 95       	lsr	r21
2383
		  i++;
2384
     f38:	2f 5f       	subi	r18, 0xFF	; 255
2385
		} while(i<24);
2386
     f3a:	28 31       	cpi	r18, 0x18	; 24
2387
     f3c:	b9 f7       	brne	.-18     	; 0xf2c <draw_line+0x6f0>
2388
		do {
2389
		  PORTB=((c4<<2)&0x04);
2390
     f3e:	86 2f       	mov	r24, r22
2391
     f40:	88 0f       	add	r24, r24
2392
     f42:	88 0f       	add	r24, r24
2393
     f44:	84 70       	andi	r24, 0x04	; 4
2394
     f46:	85 b9       	out	0x05, r24	; 5
2395
		  c4=c4>>1;
2396
     f48:	66 95       	lsr	r22
2397
		  i++;
2398
     f4a:	2f 5f       	subi	r18, 0xFF	; 255
2399
		} while(i<32);
2400
     f4c:	20 32       	cpi	r18, 0x20	; 32
2401
     f4e:	b9 f7       	brne	.-18     	; 0xf3e <draw_line+0x702>
2402
		do {
2403
		  PORTB=((c5<<2)&0x04);
2404
     f50:	8a 2f       	mov	r24, r26
2405
     f52:	88 0f       	add	r24, r24
2406
     f54:	88 0f       	add	r24, r24
2407
     f56:	84 70       	andi	r24, 0x04	; 4
2408
     f58:	85 b9       	out	0x05, r24	; 5
2409
		  c5=c5>>1;
2410
     f5a:	a6 95       	lsr	r26
2411
		  i++;
2412
     f5c:	2f 5f       	subi	r18, 0xFF	; 255
2413
		} while(i<40);
2414
     f5e:	28 32       	cpi	r18, 0x28	; 40
2415
     f60:	b9 f7       	brne	.-18     	; 0xf50 <draw_line+0x714>
2416
		do {
2417
		  PORTB=((c6<<2)&0x04);
2418
     f62:	87 2f       	mov	r24, r23
2419
     f64:	88 0f       	add	r24, r24
2420
     f66:	88 0f       	add	r24, r24
2421
     f68:	84 70       	andi	r24, 0x04	; 4
2422
     f6a:	85 b9       	out	0x05, r24	; 5
2423
		  c6=c6>>1;
2424
     f6c:	76 95       	lsr	r23
2425
		  i++;
2426
     f6e:	2f 5f       	subi	r18, 0xFF	; 255
2427
		} while(i<48);
2428
     f70:	20 33       	cpi	r18, 0x30	; 48
2429
     f72:	b9 f7       	brne	.-18     	; 0xf62 <draw_line+0x726>
2430
		do {
2431
		  PORTB=((c7<<2)&0x04);
2432
     f74:	89 2f       	mov	r24, r25
2433
     f76:	88 0f       	add	r24, r24
2434
     f78:	88 0f       	add	r24, r24
2435
     f7a:	84 70       	andi	r24, 0x04	; 4
2436
     f7c:	85 b9       	out	0x05, r24	; 5
2437
		  c7=c7>>1;
2438
     f7e:	96 95       	lsr	r25
2439
		  i++;
2440
     f80:	2f 5f       	subi	r18, 0xFF	; 255
2441
		} while(i<56);
2442
     f82:	28 33       	cpi	r18, 0x38	; 56
2443
     f84:	b9 f7       	brne	.-18     	; 0xf74 <draw_line+0x738>
2444
		PORTB=0x00;
2445
     f86:	15 b8       	out	0x05, r1	; 5
2446
		DDRB&=0xFE;
2447
     f88:	20 98       	cbi	0x04, 0	; 4
2448
	}
2449
 
2450
 
2451
// Debug - remove for release
2452
//	if ((line > 270) && (line < 278))
2453
//	{
2454
//		SPSR=1;
2455
//		ltemp = (line - 271) * 27 - 64;
2456
//		ntemp = (line - 271) * 16 - 43;
2457
//		itemp = (line - 271) * 8;
2458
//		ltr_p = ltrs+ltemp;
2459
//		num_p = nums+ntemp;
2460
//		info_p = infos+itemp;
2461
//		while(TCNT0<LINESTART);
2462
//		DDRB|=1; //sink thru PB0
2463
//		SPDR = ltr_p[rxtx[0]]; Wait();
2464
//		SPDR = ltr_p[rxtx[1]]; Wait();
2465
//		SPDR = ltr_p[rxtx[2]]; Wait();
2466
//		SPDR = info_p[rxtx[3]]; Wait();
2467
//		SPDR = ltr_p[rxtx[4]]; Wait();
2468
//		SPDR = ltr_p[rxtx[5]]; Wait();
2469
//		SPDR = ltr_p[rxtx[6]]; Wait();
2470
//		SPDR = ltr_p[rxtx[7]]; Wait();
2471
//		SPDR = info_p[rxtx[8]]; Wait();
2472
//		TCNT0=0;
2473
//		while(TCNT0<3); 	// 3 wait a little bit before turning off dimmer so that the
2474
//							// length of black box on the right matches the one on the left
2475
//		DDRB&=0xFE; 		//PB0 Hi-Z again, and load a blank so spacing is right
2476
//	}
2477
 
2478
 
2479
//	if ((line > 280) && (line < 288))
2480
//	{
2481
//		SPSR=1;
2482
//		ltemp = (line - 281) * 27 - 64;
2483
//		ntemp = (line - 281) * 16 - 43;
2484
//		ltr_p = ltrs+ltemp; 	//by calculating this pointer you only have to
2485
//		num_p = nums+ntemp; 	//add ltemp/ntemp once per line, instead of for
2486
								//every char. This tightens up printing a bit
2487
								//saves about 3 assembly instructions per char
2488
 
2489
//		SPDR = ltr_p['@']; Wait(); //goofy hack to make SPSR=0 work, write an empty char at SPSR=1 first
2490
//		SPSR=1;
2491
//		while(TCNT0<LINESTART);
2492
//		DDRB|=1; //sink thru PB0
2493
//		//;display_line1[0]='A';
2494
//		SPDR = ltr_p[display_line1[0]]; Wait();
2495
//		SPDR = ltr_p[display_line1[1]]; Wait();
2496
//		SPDR = ltr_p[display_line1[2]]; Wait();
2497
//		SPDR = ltr_p[display_line1[3]]; Wait();
2498
//		SPDR = ltr_p[display_line1[4]]; Wait();
2499
//		SPDR = ltr_p[display_line1[5]]; Wait();
2500
//		TCNT0=0;
2501
//		while(TCNT0<3); 	// 3 wait a little bit before turning off dimmer so that the
2502
//							// length of black box on the right matches the one on the left
2503
//		DDRB&=0xFE; 		//PB0 Hi-Z again, and load a blank so spacing is right
2504
//	}
2505
 
2506
	if ((line > 300) && (line < 308))
2507
     f8a:	20 91 ed 03 	lds	r18, 0x03ED
2508
     f8e:	30 91 ee 03 	lds	r19, 0x03EE
2509
     f92:	c9 01       	movw	r24, r18
2510
     f94:	8d 52       	subi	r24, 0x2D	; 45
2511
     f96:	91 40       	sbci	r25, 0x01	; 1
2512
     f98:	07 97       	sbiw	r24, 0x07	; 7
2513
     f9a:	08 f0       	brcs	.+2      	; 0xf9e <draw_line+0x762>
2514
     f9c:	a2 c0       	rjmp	.+324    	; 0x10e2 <draw_line+0x8a6>
2515
	{
2516
		SPSR=1;
2517
     f9e:	81 e0       	ldi	r24, 0x01	; 1
2518
     fa0:	8d bd       	out	0x2d, r24	; 45
2519
		ltemp = (line - 301) * 27 - 64;
2520
		ntemp = (line - 301) * 16 - 43;
2521
		ltr_p = ltrs+ltemp;
2522
     fa2:	c9 01       	movw	r24, r18
2523
     fa4:	88 0f       	add	r24, r24
2524
     fa6:	99 1f       	adc	r25, r25
2525
     fa8:	82 0f       	add	r24, r18
2526
     faa:	93 1f       	adc	r25, r19
2527
     fac:	9c 01       	movw	r18, r24
2528
     fae:	22 0f       	add	r18, r18
2529
     fb0:	33 1f       	adc	r19, r19
2530
     fb2:	22 0f       	add	r18, r18
2531
     fb4:	33 1f       	adc	r19, r19
2532
     fb6:	22 0f       	add	r18, r18
2533
     fb8:	33 1f       	adc	r19, r19
2534
     fba:	82 0f       	add	r24, r18
2535
     fbc:	93 1f       	adc	r25, r19
2536
     fbe:	9c 01       	movw	r18, r24
2537
     fc0:	20 5b       	subi	r18, 0xB0	; 176
2538
     fc2:	3d 41       	sbci	r19, 0x1D	; 29
2539
		num_p = nums+ntemp;
2540
		while(TCNT0<LINESTART+COPYRIGHTSTART);
2541
     fc4:	86 b5       	in	r24, 0x26	; 38
2542
     fc6:	88 3c       	cpi	r24, 0xC8	; 200
2543
     fc8:	e8 f3       	brcs	.-6      	; 0xfc4 <draw_line+0x788>
2544
		SPDR = ltr_p[head[0]]; Wait();
2545
     fca:	f9 01       	movw	r30, r18
2546
     fcc:	ed 5b       	subi	r30, 0xBD	; 189
2547
     fce:	ff 4f       	sbci	r31, 0xFF	; 255
2548
     fd0:	80 81       	ld	r24, Z
2549
     fd2:	8e bd       	out	0x2e, r24	; 46
2550
     fd4:	0d b4       	in	r0, 0x2d	; 45
2551
     fd6:	07 fe       	sbrs	r0, 7
2552
     fd8:	fd cf       	rjmp	.-6      	; 0xfd4 <draw_line+0x798>
2553
		SPDR = ltr_p[head[1]]; Wait();
2554
     fda:	f9 01       	movw	r30, r18
2555
     fdc:	e0 5c       	subi	r30, 0xC0	; 192
2556
     fde:	ff 4f       	sbci	r31, 0xFF	; 255
2557
     fe0:	80 81       	ld	r24, Z
2558
     fe2:	8e bd       	out	0x2e, r24	; 46
2559
     fe4:	0d b4       	in	r0, 0x2d	; 45
2560
     fe6:	07 fe       	sbrs	r0, 7
2561
     fe8:	fd cf       	rjmp	.-6      	; 0xfe4 <draw_line+0x7a8>
2562
		SPDR = ltr_p[head[2]]; Wait();
2563
     fea:	f9 01       	movw	r30, r18
2564
     fec:	e9 5b       	subi	r30, 0xB9	; 185
2565
     fee:	ff 4f       	sbci	r31, 0xFF	; 255
2566
     ff0:	80 81       	ld	r24, Z
2567
     ff2:	8e bd       	out	0x2e, r24	; 46
2568
     ff4:	0d b4       	in	r0, 0x2d	; 45
2569
     ff6:	07 fe       	sbrs	r0, 7
2570
     ff8:	fd cf       	rjmp	.-6      	; 0xff4 <draw_line+0x7b8>
2571
		SPDR = ltr_p[head[3]]; Wait();
2572
     ffa:	f9 01       	movw	r30, r18
2573
     ffc:	eb 5a       	subi	r30, 0xAB	; 171
2574
     ffe:	ff 4f       	sbci	r31, 0xFF	; 255
2575
    1000:	80 81       	ld	r24, Z
2576
    1002:	8e bd       	out	0x2e, r24	; 46
2577
    1004:	0d b4       	in	r0, 0x2d	; 45
2578
    1006:	07 fe       	sbrs	r0, 7
2579
    1008:	fd cf       	rjmp	.-6      	; 0x1004 <draw_line+0x7c8>
2580
		SPDR = ltr_p[head[4]]; Wait();
2581
    100a:	f9 01       	movw	r30, r18
2582
    100c:	e2 5b       	subi	r30, 0xB2	; 178
2583
    100e:	ff 4f       	sbci	r31, 0xFF	; 255
2584
    1010:	80 81       	ld	r24, Z
2585
    1012:	8e bd       	out	0x2e, r24	; 46
2586
    1014:	0d b4       	in	r0, 0x2d	; 45
2587
    1016:	07 fe       	sbrs	r0, 7
2588
    1018:	fd cf       	rjmp	.-6      	; 0x1014 <draw_line+0x7d8>
2589
		SPDR = ltr_p[head[5]]; Wait();
2590
    101a:	f9 01       	movw	r30, r18
2591
    101c:	ec 5a       	subi	r30, 0xAC	; 172
2592
    101e:	ff 4f       	sbci	r31, 0xFF	; 255
2593
    1020:	80 81       	ld	r24, Z
2594
    1022:	8e bd       	out	0x2e, r24	; 46
2595
    1024:	0d b4       	in	r0, 0x2d	; 45
2596
    1026:	07 fe       	sbrs	r0, 7
2597
    1028:	fd cf       	rjmp	.-6      	; 0x1024 <draw_line+0x7e8>
2598
		SPDR = ltr_p[head[6]]; Wait();
2599
    102a:	f9 01       	movw	r30, r18
2600
    102c:	eb 5b       	subi	r30, 0xBB	; 187
2601
    102e:	ff 4f       	sbci	r31, 0xFF	; 255
2602
    1030:	80 81       	ld	r24, Z
2603
    1032:	8e bd       	out	0x2e, r24	; 46
2604
    1034:	0d b4       	in	r0, 0x2d	; 45
2605
    1036:	07 fe       	sbrs	r0, 7
2606
    1038:	fd cf       	rjmp	.-6      	; 0x1034 <draw_line+0x7f8>
2607
		SPDR = ltr_p[head[7]]; Wait();
2608
    103a:	f9 01       	movw	r30, r18
2609
    103c:	ee 5a       	subi	r30, 0xAE	; 174
2610
    103e:	ff 4f       	sbci	r31, 0xFF	; 255
2611
    1040:	80 81       	ld	r24, Z
2612
    1042:	8e bd       	out	0x2e, r24	; 46
2613
    1044:	0d b4       	in	r0, 0x2d	; 45
2614
    1046:	07 fe       	sbrs	r0, 7
2615
    1048:	fd cf       	rjmp	.-6      	; 0x1044 <draw_line+0x808>
2616
		SPDR = ltr_p[head[8]]; Wait();
2617
    104a:	f9 01       	movw	r30, r18
2618
    104c:	e0 5c       	subi	r30, 0xC0	; 192
2619
    104e:	ff 4f       	sbci	r31, 0xFF	; 255
2620
    1050:	80 81       	ld	r24, Z
2621
    1052:	8e bd       	out	0x2e, r24	; 46
2622
    1054:	0d b4       	in	r0, 0x2d	; 45
2623
    1056:	07 fe       	sbrs	r0, 7
2624
    1058:	fd cf       	rjmp	.-6      	; 0x1054 <draw_line+0x818>
2625
		SPDR = ltr_p[head[9]]; Wait();
2626
    105a:	f9 01       	movw	r30, r18
2627
    105c:	e4 5b       	subi	r30, 0xB4	; 180
2628
    105e:	ff 4f       	sbci	r31, 0xFF	; 255
2629
    1060:	80 81       	ld	r24, Z
2630
    1062:	8e bd       	out	0x2e, r24	; 46
2631
    1064:	0d b4       	in	r0, 0x2d	; 45
2632
    1066:	07 fe       	sbrs	r0, 7
2633
    1068:	fd cf       	rjmp	.-6      	; 0x1064 <draw_line+0x828>
2634
		SPDR = ltr_p[head[10]]; Wait();
2635
    106a:	f9 01       	movw	r30, r18
2636
    106c:	e1 5b       	subi	r30, 0xB1	; 177
2637
    106e:	ff 4f       	sbci	r31, 0xFF	; 255
2638
    1070:	80 81       	ld	r24, Z
2639
    1072:	8e bd       	out	0x2e, r24	; 46
2640
    1074:	0d b4       	in	r0, 0x2d	; 45
2641
    1076:	07 fe       	sbrs	r0, 7
2642
    1078:	fd cf       	rjmp	.-6      	; 0x1074 <draw_line+0x838>
2643
		SPDR = ltr_p[head[11]]; Wait();
2644
    107a:	f9 01       	movw	r30, r18
2645
    107c:	e9 5b       	subi	r30, 0xB9	; 185
2646
    107e:	ff 4f       	sbci	r31, 0xFF	; 255
2647
    1080:	80 81       	ld	r24, Z
2648
    1082:	8e bd       	out	0x2e, r24	; 46
2649
    1084:	0d b4       	in	r0, 0x2d	; 45
2650
    1086:	07 fe       	sbrs	r0, 7
2651
    1088:	fd cf       	rjmp	.-6      	; 0x1084 <draw_line+0x848>
2652
		SPDR = ltr_p[head[12]]; Wait();
2653
    108a:	f9 01       	movw	r30, r18
2654
    108c:	eb 5b       	subi	r30, 0xBB	; 187
2655
    108e:	ff 4f       	sbci	r31, 0xFF	; 255
2656
    1090:	80 81       	ld	r24, Z
2657
    1092:	8e bd       	out	0x2e, r24	; 46
2658
    1094:	0d b4       	in	r0, 0x2d	; 45
2659
    1096:	07 fe       	sbrs	r0, 7
2660
    1098:	fd cf       	rjmp	.-6      	; 0x1094 <draw_line+0x858>
2661
		SPDR = ltr_p[head[13]]; Wait();
2662
    109a:	f9 01       	movw	r30, r18
2663
    109c:	e3 5b       	subi	r30, 0xB3	; 179
2664
    109e:	ff 4f       	sbci	r31, 0xFF	; 255
2665
    10a0:	80 81       	ld	r24, Z
2666
    10a2:	8e bd       	out	0x2e, r24	; 46
2667
    10a4:	0d b4       	in	r0, 0x2d	; 45
2668
    10a6:	07 fe       	sbrs	r0, 7
2669
    10a8:	fd cf       	rjmp	.-6      	; 0x10a4 <draw_line+0x868>
2670
		SPDR = ltr_p[head[14]]; Wait();
2671
    10aa:	f9 01       	movw	r30, r18
2672
    10ac:	ef 5b       	subi	r30, 0xBF	; 191
2673
    10ae:	ff 4f       	sbci	r31, 0xFF	; 255
2674
    10b0:	80 81       	ld	r24, Z
2675
    10b2:	8e bd       	out	0x2e, r24	; 46
2676
    10b4:	0d b4       	in	r0, 0x2d	; 45
2677
    10b6:	07 fe       	sbrs	r0, 7
2678
    10b8:	fd cf       	rjmp	.-6      	; 0x10b4 <draw_line+0x878>
2679
		SPDR = ltr_p[head[15]]; Wait();
2680
    10ba:	f9 01       	movw	r30, r18
2681
    10bc:	e2 5b       	subi	r30, 0xB2	; 178
2682
    10be:	ff 4f       	sbci	r31, 0xFF	; 255
2683
    10c0:	80 81       	ld	r24, Z
2684
    10c2:	8e bd       	out	0x2e, r24	; 46
2685
    10c4:	0d b4       	in	r0, 0x2d	; 45
2686
    10c6:	07 fe       	sbrs	r0, 7
2687
    10c8:	fd cf       	rjmp	.-6      	; 0x10c4 <draw_line+0x888>
2688
		SPDR = ltr_p[head[16]]; Wait();
2689
    10ca:	f9 01       	movw	r30, r18
2690
    10cc:	e2 5b       	subi	r30, 0xB2	; 178
2691
    10ce:	ff 4f       	sbci	r31, 0xFF	; 255
2692
    10d0:	80 81       	ld	r24, Z
2693
    10d2:	8e bd       	out	0x2e, r24	; 46
2694
    10d4:	0d b4       	in	r0, 0x2d	; 45
2695
    10d6:	07 fe       	sbrs	r0, 7
2696
    10d8:	fd cf       	rjmp	.-6      	; 0x10d4 <draw_line+0x898>
2697
		TCNT0=0;
2698
    10da:	16 bc       	out	0x26, r1	; 38
2699
		while(TCNT0<2);
2700
    10dc:	86 b5       	in	r24, 0x26	; 38
2701
    10de:	82 30       	cpi	r24, 0x02	; 2
2702
    10e0:	e8 f3       	brcs	.-6      	; 0x10dc <draw_line+0x8a0>
2703
    10e2:	08 95       	ret
2704
 
2705
000010e4 <__vector_1>:
2706
	}
2707
} // end draw_line()
2708
 
2709
 
2710
//-----------------------------------------------------------------------------
2711
// H-Sync Interrupt
2712
//-----------------------------------------------------------------------------*/
2713
SIGNAL(SIG_INTERRUPT0)
2714
{
2715
    10e4:	1f 92       	push	r1
2716
    10e6:	0f 92       	push	r0
2717
    10e8:	0f b6       	in	r0, 0x3f	; 63
2718
    10ea:	0f 92       	push	r0
2719
    10ec:	11 24       	eor	r1, r1
2720
    10ee:	2f 93       	push	r18
2721
    10f0:	3f 93       	push	r19
2722
    10f2:	4f 93       	push	r20
2723
    10f4:	5f 93       	push	r21
2724
    10f6:	6f 93       	push	r22
2725
    10f8:	7f 93       	push	r23
2726
    10fa:	8f 93       	push	r24
2727
    10fc:	9f 93       	push	r25
2728
    10fe:	af 93       	push	r26
2729
    1100:	bf 93       	push	r27
2730
    1102:	ef 93       	push	r30
2731
    1104:	ff 93       	push	r31
2732
	TCNT0=0; 		// reset timer
2733
    1106:	16 bc       	out	0x26, r1	; 38
2734
	line++;			// increment line counter
2735
    1108:	80 91 ed 03 	lds	r24, 0x03ED
2736
    110c:	90 91 ee 03 	lds	r25, 0x03EE
2737
    1110:	01 96       	adiw	r24, 0x01	; 1
2738
    1112:	90 93 ee 03 	sts	0x03EE, r25
2739
    1116:	80 93 ed 03 	sts	0x03ED, r24
2740
	draw_line();	// output the line
2741
    111a:	90 db       	rcall	.-2272   	; 0x83c <draw_line>
2742
    111c:	ff 91       	pop	r31
2743
    111e:	ef 91       	pop	r30
2744
    1120:	bf 91       	pop	r27
2745
    1122:	af 91       	pop	r26
2746
    1124:	9f 91       	pop	r25
2747
    1126:	8f 91       	pop	r24
2748
    1128:	7f 91       	pop	r23
2749
    112a:	6f 91       	pop	r22
2750
    112c:	5f 91       	pop	r21
2751
    112e:	4f 91       	pop	r20
2752
    1130:	3f 91       	pop	r19
2753
    1132:	2f 91       	pop	r18
2754
    1134:	0f 90       	pop	r0
2755
    1136:	0f be       	out	0x3f, r0	; 63
2756
    1138:	0f 90       	pop	r0
2757
    113a:	1f 90       	pop	r1
2758
    113c:	18 95       	reti
2759
 
2760
0000113e <__vector_2>:
2761
}
2762
 
2763
 
2764
//-----------------------------------------------------------------------------
2765
// V-Sync Interrupt
2766
//-----------------------------------------------------------------------------*/
2767
SIGNAL(SIG_INTERRUPT1)
2768
{
2769
    113e:	1f 92       	push	r1
2770
    1140:	0f 92       	push	r0
2771
    1142:	0f b6       	in	r0, 0x3f	; 63
2772
    1144:	0f 92       	push	r0
2773
    1146:	11 24       	eor	r1, r1
2774
    1148:	8f 93       	push	r24
2775
	line = 0;
2776
    114a:	10 92 ee 03 	sts	0x03EE, r1
2777
    114e:	10 92 ed 03 	sts	0x03ED, r1
2778
	framecounter++;
2779
    1152:	80 91 da 03 	lds	r24, 0x03DA
2780
    1156:	8f 5f       	subi	r24, 0xFF	; 255
2781
    1158:	80 93 da 03 	sts	0x03DA, r24
2782
    115c:	8f 91       	pop	r24
2783
    115e:	0f 90       	pop	r0
2784
    1160:	0f be       	out	0x3f, r0	; 63
2785
    1162:	0f 90       	pop	r0
2786
    1164:	1f 90       	pop	r1
2787
    1166:	18 95       	reti
2788
 
2789
00001168 <__udivmodhi4>:
2790
    1168:	aa 1b       	sub	r26, r26
2791
    116a:	bb 1b       	sub	r27, r27
2792
    116c:	51 e1       	ldi	r21, 0x11	; 17
2793
    116e:	07 c0       	rjmp	.+14     	; 0x117e <__udivmodhi4_ep>
2794
 
2795
00001170 <__udivmodhi4_loop>:
2796
    1170:	aa 1f       	adc	r26, r26
2797
    1172:	bb 1f       	adc	r27, r27
2798
    1174:	a6 17       	cp	r26, r22
2799
    1176:	b7 07       	cpc	r27, r23
2800
    1178:	10 f0       	brcs	.+4      	; 0x117e <__udivmodhi4_ep>
2801
    117a:	a6 1b       	sub	r26, r22
2802
    117c:	b7 0b       	sbc	r27, r23
2803
 
2804
0000117e <__udivmodhi4_ep>:
2805
    117e:	88 1f       	adc	r24, r24
2806
    1180:	99 1f       	adc	r25, r25
2807
    1182:	5a 95       	dec	r21
2808
    1184:	a9 f7       	brne	.-22     	; 0x1170 <__udivmodhi4_loop>
2809
    1186:	80 95       	com	r24
2810
    1188:	90 95       	com	r25
2811
    118a:	bc 01       	movw	r22, r24
2812
    118c:	cd 01       	movw	r24, r26
2813
    118e:	08 95       	ret
2814
 
2815
00001190 <__divmodhi4>:
2816
    1190:	97 fb       	bst	r25, 7
2817
    1192:	09 2e       	mov	r0, r25
2818
    1194:	07 26       	eor	r0, r23
2819
    1196:	0a d0       	rcall	.+20     	; 0x11ac <__divmodhi4_neg1>
2820
    1198:	77 fd       	sbrc	r23, 7
2821
    119a:	04 d0       	rcall	.+8      	; 0x11a4 <__divmodhi4_neg2>
2822
    119c:	e5 df       	rcall	.-54     	; 0x1168 <__udivmodhi4>
2823
    119e:	06 d0       	rcall	.+12     	; 0x11ac <__divmodhi4_neg1>
2824
    11a0:	00 20       	and	r0, r0
2825
    11a2:	1a f4       	brpl	.+6      	; 0x11aa <__divmodhi4_exit>
2826
 
2827
000011a4 <__divmodhi4_neg2>:
2828
    11a4:	70 95       	com	r23
2829
    11a6:	61 95       	neg	r22
2830
    11a8:	7f 4f       	sbci	r23, 0xFF	; 255
2831
 
2832
000011aa <__divmodhi4_exit>:
2833
    11aa:	08 95       	ret
2834
 
2835
000011ac <__divmodhi4_neg1>:
2836
    11ac:	f6 f7       	brtc	.-4      	; 0x11aa <__divmodhi4_exit>
2837
    11ae:	90 95       	com	r25
2838
    11b0:	81 95       	neg	r24
2839
    11b2:	9f 4f       	sbci	r25, 0xFF	; 255
2840
    11b4:	08 95       	ret
2841
 
2842
000011b6 <_exit>:
2843
    11b6:	ff cf       	rjmp	.-2      	; 0x11b6 <_exit>