; reassembly of "Analogwandler_.hex" ; created by ReAVR V3.4.0 ; at 2026/03/15 - 15:37:46 ; for ICCAVR assembler ;--------------------------------------- ; AVR_TYPE= ; FLASH_SIZE=8KB ; SRAM_START=0x60 ;--------------------------------------- .area text ;; older iccavr need different setup: ;; .area text (abs,ovr) ;; .org 0x0000 ;--------------------------------------- ; byte constants: ; k00 = 0x00 ; k01 = 0x01 ; k02 = 0x02 ; k03 = 0x03 ; k04 = 0x04 ; k07 = 0x07 ; k08 = 0x08 ; k09 = 0x09 ; k7D = 0x7D ; '}' k7F = 0x7F ; '' k80 = 0x80 ; k86 = 0x86 ; k89 = 0x89 ; k8E = 0x8E ; k98 = 0x98 ; k9D = 0x9D ; kB1 = 0xB1 ; '±' kDF = 0xDF ; 'ß' kE8 = 0xE8 ; 'è' kFF = 0xFF ; 'ÿ' ; ; io register addresses: ; p15 = 0x15 p24 = 0x24 p25 = 0x25 p26 = 0x26 p3D = 0x3D p3E = 0x3E p3F = 0x3F ; ; bit numbers: ; b0 = 0x00 b1 = 0x01 b2 = 0x02 b3 = 0x03 b4 = 0x04 b5 = 0x05 b6 = 0x06 b7 = 0x07 ;--------------------------------------- ; L0000: jmp __start ; L005C ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L0113 ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line jmp L006E ; ----------- jump on last line nop nop .word 0x0024 ; pc=0x0036(0x006C) .word 0x0027 ; pc=0x0037(0x006E) .word 0x002A ; pc=0x0038(0x0070) nop nop .word 0x0025 ; pc=0x003B(0x0076) .word 0x0028 ; pc=0x003C(0x0078) .word 0x002B ; pc=0x003D(0x007A) cpc r0,r4 cpc r0,r4 cpc r0,r4 cpc r0,r4 muls r16,r18 muls r16,r18 muls r16,r18 mulsu r16,r19 mulsu r16,r19 mulsu r16,r19 muls r16,r17 sbc r0,r4 and r1,r0 ld r4,Z muls r16,r17 sbc r0,r4 and r1,r0 muls r16,r17 sbc r0,r4 and r1,r0 nop sbc r0,r0 muls r16,r16 .word 0x0001 ; pc=0x0055(0x00AA) mulsu r16,r16 cpc r16,r20 nop nop nop nop ; __start:: ; L005C: clr r1 out p3F,r1 ldi r28,kFF ldi r29,k08 out p3E,r29 out p3D,r28 ldi r18,k01 ldi r26,k00 ldi r27,k01 rjmp L0067 ; ----------- jump on last line L0066: st X+,r1 L0067: cpi r26,k09 cpc r27,r18 brne L0066 ; ----- branch on last line call L015D jmp L01CC ; ----------- jump on last line L006E: jmp L0000 ; ----------- jump on last line L0070: ldi r30,kB1 ldi r31,k00 lpm r18,Z ldi r30,k9D ldi r31,k00 lpm r25,Z ldi r30,k89 ldi r31,k00 lpm r30,Z tst r30 breq L0094 ; ----- branch on last line tst r18 breq L0084 ; ----- branch on last line cpi r18,k03 breq L009F ; ----- branch on last line brcc L0095 ; ----- branch on last line cpi r18,k01 breq L00A5 ; ----- branch on last line cpi r18,k02 breq L00A9 ; ----- branch on last line L0084: ldi r31,k00 lsl r30 rol r31 subi r30,k8E sbci r31,kFF lpm r26,Z+ lpm r27,Z in r18,p3F cli ld r30,X ; --------- this is skippy cpse r24,r1 rjmp L00B6 ; --------- last may be skipped ; pc=0x90(0x120) ; com r25 and r25,r30 L0092: st X,r25 out p3F,r18 L0094: ret ;----------------------* ; pc=0x95(0x12A) ; L0095: cpi r18,k07 breq L00AC ; ----- branch on last line cpi r18,k08 breq L00B2 ; ----- branch on last line cpi r18,k04 brne L0084 ; ----- branch on last line lds r18,D0080 andi r18,kDF rjmp L00A2 ; ----------- jump on last line L009F: lds r18,D0080 andi r18,k7F L00A2: sts D0080,r18 rjmp L0084 ; ----------- jump on last line L00A5: in r18,p24 andi r18,k7F L00A7: out p24,r18 rjmp L0084 ; ----------- jump on last line L00A9: in r18,p24 andi r18,kDF rjmp L00A7 ; ----------- jump on last line L00AC: lds r18,D00B0 andi r18,k7F L00AF: sts D00B0,r18 rjmp L0084 ; ----------- jump on last line L00B2: lds r18,D00B0 andi r18,kDF rjmp L00AF ; ----------- jump on last line L00B6: or r25,r30 rjmp L0092 ; ----------- jump on last line L00B8: in r19,p3F cli lds r24,D0105 lds r25,D0106 lds r26,D0107 lds r27,D0108 in r18,p26 ; --------- this is skippy sbis p15,b0 rjmp L00CA ; --------- last may be skipped ; pc=0xC5(0x18A) ; cpi r18,kFF breq L00CA ; ----- branch on last line adiw r24,k01 adc r26,r1 adc r27,r1 L00CA: out p3F,r19 mov r27,r26 mov r26,r25 mov r25,r24 clr r24 movw r22,r24 movw r24,r26 add r22,r18 adc r23,r1 adc r24,r1 adc r25,r1 ldi r20,k02 L00D6: lsl r22 rol r23 rol r24 rol r25 dec r20 brne L00D6 ; ----- branch on last line ret ;----------------------* ; pc=0xDD(0x1BA) ; L00DD: push r8 push r9 push r10 push r11 push r12 push r13 push r14 push r15 call L00B8 movw r8,r22 movw r10,r24 ldi r24,kE8 mov r12,r24 ldi r24,k03 mov r13,r24 mov r14,r1 mov r15,r1 L00EF: call L00B8 sub r22,r8 sbc r23,r9 sbc r24,r10 sbc r25,r11 cpi r22,kE8 sbci r23,k03 cpc r24,r1 cpc r25,r1 brcs L00EF ; ----- branch on last line ldi r18,k01 sub r12,r18 sbc r13,r1 sbc r14,r1 sbc r15,r1 ldi r24,kE8 add r8,r24 ldi r24,k03 adc r9,r24 adc r10,r1 adc r11,r1 cp r12,r1 cpc r13,r1 cpc r14,r1 cpc r15,r1 brne L00EF ; ----- branch on last line pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop r9 pop r8 ret ;----------------------* ; pc=0x113(0x226) ; L0113: push r1 push r0 in r0,p3F push r0 clr r1 push r18 push r19 push r24 push r25 push r26 push r27 lds r24,D0101 lds r25,D0102 lds r26,D0103 lds r27,D0104 lds r19,D0100 ldi r18,k03 add r18,r19 cpi r18,k7D brcc L0157 ; ----- branch on last line adiw r24,k01 adc r26,r1 adc r27,r1 L012F: sts D0100,r18 sts D0101,r24 sts D0102,r25 sts D0103,r26 sts D0104,r27 lds r24,D0105 lds r25,D0106 lds r26,D0107 lds r27,D0108 adiw r24,k01 adc r26,r1 adc r27,r1 sts D0105,r24 sts D0106,r25 sts D0107,r26 sts D0108,r27 pop r27 pop r26 pop r25 pop r24 pop r19 pop r18 pop r0 out p3F,r0 pop r0 pop r1 reti ;----------------------* ; pc=0x157(0x2AE) ; L0157: ldi r18,k86 add r18,r19 adiw r24,k02 adc r26,r1 adc r27,r1 rjmp L012F ; ----------- jump on last line L015D: sei in r24,p24 ori r24,k02 out p24,r24 in r24,p24 ori r24,k01 out p24,r24 in r24,p25 ori r24,k02 out p25,r24 in r24,p25 ori r24,k01 out p25,r24 lds r24,D006E ori r24,k01 sts D006E,r24 sts D0081,r1 lds r24,D0081 ori r24,k02 sts D0081,r24 lds r24,D0081 ori r24,k01 sts D0081,r24 lds r24,D0080 ori r24,k01 sts D0080,r24 lds r24,D00B1 ori r24,k04 sts D00B1,r24 lds r24,D00B0 ori r24,k01 sts D00B0,r24 lds r24,D007A ori r24,k04 sts D007A,r24 lds r24,D007A ori r24,k02 sts D007A,r24 lds r24,D007A ori r24,k01 sts D007A,r24 lds r24,D007A ori r24,k80 sts D007A,r24 sts D00C1,r1 ldi r30,k9D ldi r31,k00 lpm r18,Z ldi r30,k89 ldi r31,k00 lpm r24,Z tst r24 breq L01BB ; ----- branch on last line ldi r25,k00 lsl r24 rol r25 movw r30,r24 subi r30,k98 sbci r31,kFF lpm r26,Z+ lpm r27,Z movw r30,r24 subi r30,k8E sbci r31,kFF lpm r24,Z+ lpm r25,Z in r24,p3F cli ld r30,X or r30,r18 st X,r30 out p3F,r24 L01BB: ldi r28,k00 ldi r29,k00 L01BD: ldi r24,k01 call L0070 call L00DD ldi r24,k00 call L0070 call L00DD sbiw r28,k00 breq L01BD ; ----- branch on last line call L0000 rjmp L01BD ; ----------- jump on last line L01CC: cli L01CD: rjmp L01CD ; ----------- jump on last line ; pc=0x1CE(0x39C) ; __text_end:: ; ; last flash byte address = 0x039B ; last flash word address = 0x01CD ;--------------------------------------- .area bss (abs) .org 0x006E ; __first_bss:: ; D006E: .blkb 12 D007A: .blkb 6 D0080: .blkb 1 D0081: .blkb 47 D00B0: .blkb 1 D00B1: .blkb 16 D00C1: .blkb 63 D0100: .blkb 1 D0101: .blkb 1 D0102: .blkb 1 D0103: .blkb 1 D0104: .blkb 1 D0105: .blkb 1 D0106: .blkb 1 D0107: .blkb 1 D0108: ; __last_bss:: ; ; last lds/sts data byte at 0x0108 ;--------------------------------------- ;