Skip to content

Instantly share code, notes, and snippets.

@brightcloudy
Created May 1, 2014 09:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brightcloudy/b2203b453bbebb47c9c6 to your computer and use it in GitHub Desktop.
Save brightcloudy/b2203b453bbebb47c9c6 to your computer and use it in GitHub Desktop.
.file "paralleldac.c"
__SREG__ = 0x3f
__SP_H__ = 0x3e
__SP_L__ = 0x3d
__CCP__ = 0x34
__tmp_reg__ = 0
__zero_reg__ = 1
.section .text.interruptInit,"ax",@progbits
.global interruptInit
.type interruptInit, @function
interruptInit:
/* prologue: function */
/* frame size = 0 */
/* stack size = 0 */
.L__stack_usage = 0
/* #APP */
; 20 "init.h" 1
sei
; 0 "" 2
/* epilogue start */
/* #NOAPP */
ret
.size interruptInit, .-interruptInit
.section .text.cpuPrescale,"ax",@progbits
.global cpuPrescale
.type cpuPrescale, @function
cpuPrescale:
/* prologue: function */
/* frame size = 0 */
/* stack size = 0 */
.L__stack_usage = 0
/* #APP */
; 24 "init.h" 1
cli
; 0 "" 2
/* #NOAPP */
ldi r25,lo8(-128)
out 70-32,r25
out 70-32,r24
/* #APP */
; 27 "init.h" 1
sei
; 0 "" 2
/* epilogue start */
/* #NOAPP */
ret
.size cpuPrescale, .-cpuPrescale
.section .text.init,"ax",@progbits
.global init
.type init, @function
init:
/* prologue: function */
/* frame size = 0 */
/* stack size = 0 */
.L__stack_usage = 0
out 81-32,r24
mov r24,r22
rcall cpuPrescale
in r24,59-32
ori r24,lo8(3)
out 59-32,r24
/* epilogue start */
ret
.size init, .-init
.section .text.timer0_wait,"ax",@progbits
.global timer0_wait
.type timer0_wait, @function
timer0_wait:
/* prologue: function */
/* frame size = 0 */
/* stack size = 0 */
.L__stack_usage = 0
ldi r24,lo8(2)
out 88-32,r24
.L5:
in __tmp_reg__,88-32
sbrs __tmp_reg__,1
rjmp .L5
ldi r24,lo8(2)
out 88-32,r24
/* epilogue start */
ret
.size timer0_wait, .-timer0_wait
.section .text.shiftOut,"ax",@progbits
.global shiftOut
.type shiftOut, @function
shiftOut:
push r29
push r28
push __tmp_reg__
in r28,__SP_L__
in r29,__SP_H__
/* prologue: function */
/* frame size = 1 */
/* stack size = 3 */
.L__stack_usage = 3
std Y+1,__zero_reg__
ldi r25,lo8(8)
std Y+1,r25
ldi r25,lo8(0)
ldi r20,lo8(1)
rjmp .L8
.L11:
ldd r18,Y+1
ldi r19,lo8(0)
subi r18,lo8(-(-1))
sbci r19,hi8(-(-1))
movw r22,r24
rjmp 2f
1: asr r23
ror r22
2: dec r18
brpl 1b
sbrs r22,0
rjmp .L9
sbi 59-32,1
rjmp .L10
.L9:
cbi 59-32,1
.L10:
in r18,59-32
eor r18,r20
out 59-32,r18
in r18,59-32
eor r18,r20
out 59-32,r18
ldd r18,Y+1
subi r18,lo8(-(-1))
std Y+1,r18
.L8:
ldd r18,Y+1
tst r18
brne .L11
/* epilogue start */
pop __tmp_reg__
pop r28
pop r29
ret
.size shiftOut, .-shiftOut
.section .text.sendCommand,"ax",@progbits
.global sendCommand
.type sendCommand, @function
sendCommand:
push r29
push r28
push __tmp_reg__
in r28,__SP_L__
in r29,__SP_H__
/* prologue: function */
/* frame size = 1 */
/* stack size = 3 */
.L__stack_usage = 3
std Y+1,__zero_reg__
std Y+1,__zero_reg__
ldi r25,lo8(0)
ldi r18,lo8(7)
ldi r19,hi8(7)
ldi r22,lo8(16)
rjmp .L13
.L16:
ldd r20,Y+1
movw r30,r18
sub r30,r20
sbc r31,__zero_reg__
movw r20,r30
movw r30,r24
rjmp 2f
1: asr r31
ror r30
2: dec r20
brpl 1b
sbrs r30,0
rjmp .L14
sbi 59-32,6
rjmp .L15
.L14:
cbi 59-32,6
.L15:
in r20,59-32
eor r20,r22
out 59-32,r20
in r20,59-32
eor r20,r22
out 59-32,r20
ldd r20,Y+1
subi r20,lo8(-(1))
std Y+1,r20
.L13:
ldd r20,Y+1
cpi r20,lo8(8)
brlo .L16
/* epilogue start */
pop __tmp_reg__
pop r28
pop r29
ret
.size sendCommand, .-sendCommand
.section .text.readReply,"ax",@progbits
.global readReply
.type readReply, @function
readReply:
push r29
push r28
rcall .
in r28,__SP_L__
in r29,__SP_H__
/* prologue: function */
/* frame size = 2 */
/* stack size = 4 */
.L__stack_usage = 4
std Y+1,__zero_reg__
std Y+2,__zero_reg__
std Y+1,__zero_reg__
ldi r18,lo8(7)
ldi r19,hi8(7)
ldi r24,lo8(1)
ldi r25,hi8(1)
ldi r23,lo8(16)
rjmp .L18
.L20:
sbis 57-32,5
rjmp .L19
ldd r22,Y+2
ldd r20,Y+1
movw r30,r18
sub r30,r20
sbc r31,__zero_reg__
movw r20,r30
movw r30,r24
rjmp 2f
1: lsl r30
rol r31
2: dec r20
brpl 1b
or r22,r30
std Y+2,r22
.L19:
in r20,59-32
eor r20,r23
out 59-32,r20
in r20,59-32
eor r20,r23
out 59-32,r20
ldd r20,Y+1
subi r20,lo8(-(1))
std Y+1,r20
.L18:
ldd r20,Y+1
cpi r20,lo8(8)
brlo .L20
ldd r24,Y+2
/* epilogue start */
pop __tmp_reg__
pop __tmp_reg__
pop r28
pop r29
ret
.size readReply, .-readReply
.section .text.main,"ax",@progbits
.global main
.type main, @function
main:
/* prologue: function */
/* frame size = 0 */
/* stack size = 0 */
.L__stack_usage = 0
in r24,80-32
ori r24,lo8(2)
out 80-32,r24
ldi r24,lo8(2)
out 86-32,r24
in r24,83-32
ori r24,lo8(1)
out 83-32,r24
ldi r24,lo8(-42)
ldi r22,lo8(0)
rcall init
ldi r24,lo8(-1)
out 58-32,r24
ldi r24,lo8(0)
.L22:
mov r30,r24
ldi r31,lo8(0)
subi r30,lo8(-(sine))
sbci r31,hi8(-(sine))
/* #APP */
; 19 "paralleldac.c" 1
lpm r30, Z
; 0 "" 2
/* #NOAPP */
out 59-32,r30
subi r24,lo8(-(1))
rjmp .L22
.size main, .-main
.section .progmem.data,"a",@progbits
.type sine, @object
.size sine, 256
sine:
.byte 127
.byte -126
.byte -123
.byte -120
.byte -117
.byte -113
.byte -110
.byte -107
.byte -104
.byte -101
.byte -98
.byte -95
.byte -92
.byte -89
.byte -86
.byte -83
.byte -80
.byte -78
.byte -75
.byte -72
.byte -69
.byte -66
.byte -64
.byte -61
.byte -58
.byte -56
.byte -53
.byte -51
.byte -48
.byte -46
.byte -44
.byte -41
.byte -39
.byte -37
.byte -35
.byte -33
.byte -31
.byte -29
.byte -27
.byte -25
.byte -23
.byte -22
.byte -20
.byte -18
.byte -17
.byte -16
.byte -14
.byte -13
.byte -12
.byte -11
.byte -9
.byte -8
.byte -7
.byte -7
.byte -6
.byte -5
.byte -4
.byte -4
.byte -3
.byte -3
.byte -3
.byte -2
.byte -2
.byte -2
.byte -2
.byte -2
.byte -2
.byte -2
.byte -3
.byte -3
.byte -3
.byte -4
.byte -4
.byte -5
.byte -6
.byte -7
.byte -7
.byte -8
.byte -9
.byte -11
.byte -12
.byte -13
.byte -14
.byte -16
.byte -17
.byte -18
.byte -20
.byte -22
.byte -23
.byte -25
.byte -27
.byte -29
.byte -31
.byte -33
.byte -35
.byte -37
.byte -39
.byte -41
.byte -44
.byte -46
.byte -48
.byte -51
.byte -53
.byte -56
.byte -58
.byte -61
.byte -64
.byte -66
.byte -69
.byte -72
.byte -75
.byte -78
.byte -80
.byte -83
.byte -86
.byte -89
.byte -92
.byte -95
.byte -98
.byte -101
.byte -104
.byte -107
.byte -110
.byte -113
.byte -117
.byte -120
.byte -123
.byte -126
.byte 127
.byte 124
.byte 121
.byte 118
.byte 115
.byte 111
.byte 108
.byte 105
.byte 102
.byte 99
.byte 96
.byte 93
.byte 90
.byte 87
.byte 84
.byte 81
.byte 78
.byte 76
.byte 73
.byte 70
.byte 67
.byte 64
.byte 62
.byte 59
.byte 56
.byte 54
.byte 51
.byte 49
.byte 46
.byte 44
.byte 42
.byte 39
.byte 37
.byte 35
.byte 33
.byte 31
.byte 29
.byte 27
.byte 25
.byte 23
.byte 21
.byte 20
.byte 18
.byte 16
.byte 15
.byte 14
.byte 12
.byte 11
.byte 10
.byte 9
.byte 7
.byte 6
.byte 5
.byte 5
.byte 4
.byte 3
.byte 2
.byte 2
.byte 1
.byte 1
.byte 1
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 1
.byte 1
.byte 1
.byte 2
.byte 2
.byte 3
.byte 4
.byte 5
.byte 5
.byte 6
.byte 7
.byte 9
.byte 10
.byte 11
.byte 12
.byte 14
.byte 15
.byte 16
.byte 18
.byte 20
.byte 21
.byte 23
.byte 25
.byte 27
.byte 29
.byte 31
.byte 33
.byte 35
.byte 37
.byte 39
.byte 42
.byte 44
.byte 46
.byte 49
.byte 51
.byte 54
.byte 56
.byte 59
.byte 62
.byte 64
.byte 67
.byte 70
.byte 73
.byte 76
.byte 78
.byte 81
.byte 84
.byte 87
.byte 90
.byte 93
.byte 96
.byte 99
.byte 102
.byte 105
.byte 108
.byte 111
.byte 115
.byte 118
.byte 121
.byte 127
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment