Fattig mans AVR speldosa (3 / 6 steg)
Steg 3: Låt lagring källkoden
START:. INKLUDERA "m16def.inc"
LDI r16, (1out TCCR0, r16
LDI r21, 0xFF
ut DDRA, r21
LDI r19, 0b00000001
CLR r20
CLR r23
timer1:
i r17, TIFR
CPI r17, 0b00000001
breq clr0
CPI r17, 0b00000011
breq clr0
rjmp timer1
clr0:
LDI r16, (1out TIFR, r16
loop1:
Inc r18
CP r18, r19
breq incnote
rjmp timer1
incnote:; Obs # lagras i r20 och r23. Not längd i r19, not pitch på r22
CPI r20, 0xFF
breq incnote2
Inc r20
rjmp sång
incnote2:; Detta gör att låten vara upp till 512 anteckningar långa
Inc r23; om jag använt båda register på andra sätt, det skulle göra det möjligt för 65 k noterar,
; men skulle öka programmet komplexitet lite, och viktigare, körningstid.
Sång:
CLR r18
N1:
CPI r20, 0x01; Börja med några tystnad tystnad mellan låten loopar
brne n2
LDI r19, 0x40
LDI r22, 0x00
reda på PORTA, r22
rjmp n2
bogo2:
rjmp timer1
N2:
CPI r20, 0x02; Börja med några tystnad tystnad mellan låten loopar
brne n3
LDI r19, 0x20
LDI r22, 0x00
reda på PORTA, r22
rjmp n3
N3:
CPI r20, 0x03, a3, 250msec
brne n4
LDI r19, 0x19
LDI r22, 0b00110110
reda på PORTA, r22
N4:
CPI r20, 0x04, b3, 250msec
brne n5
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
N5:
CPI r20, 0x05, c4, 250msec
brne n6
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
N6:
CPI r20, 0x06, e3, 250msec
brne n7
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N7:
CPI r20, 0x07, c4, 250msec
brne n8
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
N8:
CPI r20, 0x08, e3, 250msec
brne n9
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N9:
CPI r20, 0x09, c4, 250msec
brne n10
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
rjmp n10
bogo3:
rjmp bogo2
N10:
CPI r20, 0x0A, e3, 250msec
brne n11
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N11:
CPI r20, 0x0B, c4, 250msec
brne n12
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
N12:
CPI r20, 0x0C, e3, 250msec
brne n13
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N13:
CPI r20, 0x0D, d4, 250msec
brne vägen n14
LDI r19, 0x19
LDI r22, 0b00110001
reda på PORTA, r22
vägen N14:
CPI r20, 0x0D, e3, 250msec
brne n15
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N15:
CPI r20, 0x0E, c4, 250msec
brne n16
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
N16:
CPI r20, 0x0F, e3, 250msec
brne n17
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N17:
CPI r20, 0x19; b3, 250msec
brne n18
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
N18:
CPI r20, 0x11, e3, 250msec
brne n19
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
rjmp n19
bogo4:
rjmp bogo3
n19:
CPI r20, 0x12, b3, 250msec
brne n20
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
N20:
CPI r20, 0x13, e3, 250msec
brne n21
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N21:
CPI r20, 0x14, b3, 130msec
brne n22
LDI r19, 0x0D
LDI r22, 0b00110100
reda på PORTA, r22
N22:
CPI r20, 0x15, e3, 130msec
brne n23
LDI r19, 0x0C
LDI r22, 0b00111011
reda på PORTA, r22
N23:
CPI r20, 0x16; b3, 250msec
brne n24
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
N24:
CPI r20, 0x17, e3, 250msec
brne n25
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N25:
CPI r20, 0x18, c4, 250msec
brne n26
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
N26:
CPI r20, 0x19, e3, 250msec
brne n27
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N27:
CPI r20, 0x1A; b3, 250msec
brne n28
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
N28:
CPI r20, 0x1B, e3, 380msec
brne n29
LDI r19, 0x26
LDI r22, 0b00111011
reda på PORTA, r22
N29:
CPI r20, 0x1C, a3, 260msec
brne n30
LDI r19, 0x1A
LDI r22, 0b00110110
reda på PORTA, r22
rjmp n30
bogo5:
rjmp bogo4
N30:
CPI r20, 0x1D, vila, 30msec
brne n31
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
N31:
CPI r20, 0x1E, a3, 20msec
brne n32
LDI r19, 0x04
LDI r22, 0b00110110
reda på PORTA, r22
N32:
CPI r20, 0x1F, vila, 20msec
brne n33
LDI r19, 0x04
LDI r22, 0b00000000
reda på PORTA, r22
N33:
CPI r20, 0x20; b3, 30msec
brne n34
LDI r19, 0x05
LDI r22, 0b00110100
reda på PORTA, r22
N34:
CPI r20, 0x21; resten, 30msec
brne n35
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
N35:
CPI r20, 0x22; a3, 280msec, två anteckningar på dekompilerade midi...
brne n36
LDI r19, 0x1C
LDI r22, 0b00110110
reda på PORTA, r22
n36:
CPI r20, 0x23; b3, 40msec
brne n37
LDI r19, 0x04
LDI r22, 0b00110100
reda på PORTA, r22
N37:
CPI r20, 0x24, a3, 320msec, två noterar på dekompilerade midi... nu Obs # och raden justeras
brne n38; på mitt kalkylblad. Innan de var inte på grund av de två inledande pauserna.
LDI r19, 0x20; Bekvämt för mig!
LDI r22, 0b00110110
reda på PORTA, r22
n38:
CPI r20, 0x25; b3
brne n39
LDI r19, 0x07
LDI r22, 0b00110100
reda på PORTA, r22
n39:
CPI r20, 0x26, a3
brne n40
LDI r19, 0x0C
LDI r22, 0b00110110
reda på PORTA, r22
rjmp n40
bogo6:
rjmp bogo5
N40:
CPI r20, 0x27, g3
brne n41
LDI r19, 0x19
LDI r22, 0b00111000
reda på PORTA, r22
n41:
CPI r20, 0x28, e3
brne n42
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N42:
CPI r20, 0x29, d3
brne n43
LDI r19, 0x19
LDI r22, 0b00111101
reda på PORTA, r22
N43:
CPI r20, 0x2A, e3
brne n44
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N44:
CPI r20, 0x2B, a3
brne n45
LDI r19, 0x36
LDI r22, 0b00110110
reda på PORTA, r22
N45:
CPI r20, 0x2C; b3
brne n46
LDI r19, 0x36
LDI r22, 0b00110100
reda på PORTA, r22
N46:
CPI r20, 0x2D, c4
brne n47
LDI r19, 0x26
LDI r22, 0b00110011
reda på PORTA, r22
N47:
CPI r20, 0x2F, e3
brne n48
LDI r19, 0x26
LDI r22, 0b00111011
reda på PORTA, r22
n48:
CPI r20, 0x30, c4
brne n49
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
n49:
CPI r20, 0x31, e3
brne n50
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
rjmp n50
bogo7:
rjmp bogo6
N50:
CPI r20, 0x32, c4
brne n51
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
N51:
CPI r20, 0x33, e3
brne n52
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N52:
CPI r20, 0x34, c4
brne n53
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
N53:
CPI r20, 0x35, e3
brne n54
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N54:
CPI r20, 0x36, d4
brne n55
LDI r19, 0x19
LDI r22, 0b00110001
reda på PORTA, r22
N55:
CPI r20, 0x37, e3
brne n56
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N56:
CPI r20, 0x38, c4
brne n57
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
N57:
CPI r20, 0x39, e3
brne n58
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
n58:
CPI r20, 0x3A; b3
brne n59
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
N59:
CPI r20, 0x3B, e3
brne n60
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
rjmp n60
bogo8:
rjmp bogo7
N60:
CPI r20, 0x3C; b3
brne n61
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
n61:
CPI r20, 0x3D, e3
brne n62
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N62:
CPI r20, 0x3E; b3
brne n63
LDI r19, 0x0D
LDI r22, 0b00110100
reda på PORTA, r22
n63:
CPI r20, 0x3F, e3
brne n64
LDI r19, 0x0C
LDI r22, 0b00111011
reda på PORTA, r22
N64:
CPI r20, 0x40, b3
brne n65
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
N65:
CPI r20, 0x41, null
brne n66
LDI r19, 0x06
LDI r22, 0b00000000
reda på PORTA, r22
n66:
CPI r20, 0x42, e3
brne n67
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N67:
CPI r20, 0x43, c4
brne n68
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
N68:
CPI r20, 0x44, e3
brne n69
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N69:
CPI r20, 0x45; b3
brne n70
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
rjmp n70
bogo9:
rjmp bogo8
N70:
CPI r20, 0x46, e3
brne n71
LDI r19, 0x26
LDI r22, 0b00111011
reda på PORTA, r22
N71:
CPI r20, 0x47, a3
brne n72
LDI r19, 0x1A
LDI r22, 0b00110110
reda på PORTA, r22
N72:
CPI r20, 0x48, a3
brne n73
LDI r19, 0x04
LDI r22, 0b00110110
reda på PORTA, r22
N73:
CPI r20, 0x49; b3
brne n74
LDI r19, 0x05
LDI r22, 0b00110100
reda på PORTA, r22
n74:
CPI r20, 0x4A, null
brne n75
LDI r19, 0x04
LDI r22, 0b00000000
reda på PORTA, r22
N75:
CPI r20, 0x4B, a3
brne n76
LDI r19, 0x19
LDI r22, 0b00110110
reda på PORTA, r22
N76:
CPI r20, 0x4C, a3
brne n77
LDI r19, 0x06
LDI r22, 0b00110110
reda på PORTA, r22
N77:
CPI r20, 0x4D; b3
brne n78
LDI r19, 0x06
LDI r22, 0b00110100
reda på PORTA, r22
N78:
CPI r20, 0x4E, a3
brne n79
LDI r19, 0x1A
LDI r22, 0b00110110
reda på PORTA, r22
N79:
CPI r20, 0x4F, null
brne n80
LDI r19, 0x0A
LDI r22, 0b00000000
reda på PORTA, r22
rjmp n80
bogo10:
rjmp bogo9
N80:
CPI r20, 0x50, a3
brne n81
LDI r19, 0x08
LDI r22, 0b00110110
reda på PORTA, r22
N81:
CPI r20, 0x51; b3
brne n82
LDI r19, 0x09
LDI r22, 0b00110100
reda på PORTA, r22
N82:
CPI r20, 0x52, a3
brne n83
LDI r19, 0x0C
LDI r22, 0b00110110
reda på PORTA, r22
n83:
CPI r20, 0x53, g3
brne n84
LDI r19, 0x19
LDI r22, 0b00111000
reda på PORTA, r22
n84:
CPI r20, 0x54, e3
brne n85
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N85:
CPI r20, 0x55, d3
brne n86
LDI r19, 0x40
LDI r22, 0b00111101
reda på PORTA, r22
N86:
CPI r20, 0x56, e3
brne n87
LDI r19, 0x40
LDI r22, 0b00111011
reda på PORTA, r22
N87:
CPI r20, 0x57, a3
brne n88
LDI r19, 0x19
LDI r22, 0b00110110
reda på PORTA, r22
N88:
CPI r20, 0x58; b3
brne n89
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
N89:
CPI r20, 0x59, c4
brne n90
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
rjmp n90
bogo11:
rjmp bogo10
N90:
CPI r20, 0x5A, e3
brne n91
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N91:
CPI r20, 0x5B, c4
brne n92
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
N92:
CPI r20, 0x5C, e3
brne n93
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N93:
CPI r20, 0x5D, c4
brne n93b
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
n93b:
CPI r20, 0x5E, e3
brne n94
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N94:
CPI r20, 0x5F, e3
brne n95
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N95:
CPI r20, 0x60, c4
brne n96
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
N96:
CPI r20, 0x61, e3
brne n97
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N97:
CPI r20, 0x62, d4
brne n98
LDI r19, 0x19
LDI r22, 0b00110001
reda på PORTA, r22
N98:
CPI r20, 0x63, e3
brne n99
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
N99:
CPI r20, 0x64, c4
brne n100
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
rjmp n100
bogo12:
rjmp bogo11
N100:
CPI r20, 0x65, e3
brne n101
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
n101:
CPI r20, 0x66; b3
brne n102
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
n102:
CPI r20, 0x67, e3
brne n103
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
n103:
CPI r20, 0x68; b3
brne n104
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
N104:
CPI r20, 0x69, e3
brne n105
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
n105:
CPI r20, 0x6A; b3
brne n106
LDI r19, 0x0D
LDI r22, 0b00110100
reda på PORTA, r22
n106:
CPI r20, 0x6B, e3
brne n107
LDI r19, 0x0C
LDI r22, 0b00111011
reda på PORTA, r22
n107:
CPI r20, 0x6C; b3
brne n108
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
n108:
CPI r20, 0x6D, e3
brne n109
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
n109:
CPI r20, 0x6E, c4
brne n110
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
rjmp n110
bogo13:
rjmp bogo12
N110:
CPI r20, 0x6F, e3
brne n111
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
n111:
CPI r20, 0x70; b3
brne n112
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
n112:
CPI r20, 0x71, e3
brne n113
LDI r19, 0x26
LDI r22, 0b00111011
reda på PORTA, r22
N113:
CPI r20, 0x72, a3
brne n114
LDI r19, 0x1A
LDI r22, 0b00110110
reda på PORTA, r22
N114:
CPI r20, 0x73, a3
brne n115
LDI r19, 0x05
LDI r22, 0b00110110
reda på PORTA, r22
n115:
CPI r20, 0x74, null
brne n116
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
N116:
CPI r20, 0x75; b3
brne n117
LDI r19, 0x06
LDI r22, 0b00110100
reda på PORTA, r22
n117:
CPI r20, 0x76, a3
brne n118
LDI r19, 0x19
LDI r22, 0b00110110
reda på PORTA, r22
n118:
CPI r20, 0x77, a3
brne n119
LDI r19, 0x07
LDI r22, 0b00110110
reda på PORTA, r22
n119:
CPI r20, 0x78; b3
brne n120
LDI r19, 0x07
LDI r22, 0b00110100
reda på PORTA, r22
rjmp n120
bogo14:
rjmp bogo13
N120:
CPI r20, 0x79, a3
brne n121
LDI r19, 0x19
LDI r22, 0b00110110
reda på PORTA, r22
n121:
CPI r20, 0x7A, a3
brne n122
LDI r19, 0x08
LDI r22, 0b00110110
reda på PORTA, r22
N122:
CPI r20, 0x7B, null
brne n123
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n123:
CPI r20, 0x7C; b3
brne n124
LDI r19, 0x08
LDI r22, 0b00110100
reda på PORTA, r22
N124:
CPI r20, 0x7D, a3
brne n125
LDI r19, 0x0C
LDI r22, 0b00110110
reda på PORTA, r22
N125:
CPI r20, 0x7E; g3
brne n126
LDI r19, 0x05
LDI r22, 0b00111000
reda på PORTA, r22
n126:
CPI r20, 0x7F; e3
brne n127
LDI r19, 0x19
LDI r22, 0b00111011
reda på PORTA, r22
n127:
CPI r20, 0x80, g3
brne n128
LDI r19, 0x19
LDI r22, 0b00111000
reda på PORTA, r22
n128:
CPI r20, 0x81, a3
brne n129
LDI r19, 0x4A
LDI r22, 0b00110110
reda på PORTA, r22
n129:
CPI r20, 0x82, a3
brne n130
LDI r19, 0x0C
LDI r22, 0b00110110
reda på PORTA, r22
rjmp n130
bogo15:
rjmp bogo14
N130:
CPI r20, 0x83, null
brne n131
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n131:
CPI r20, 0x84; b3
brne n132
LDI r19, 0x0C
LDI r22, 0b00110100
reda på PORTA, r22
n132:
CPI r20, 0x85, null
brne n133
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n133:
CPI r20, 0x86, c4
brne n134
LDI r19, 0x4D
LDI r22, 0b00110011
reda på PORTA, r22
n134:
CPI r20, 0x87, d4
brne n135
LDI r19, 0x0C
LDI r22, 0b00110001
reda på PORTA, r22
n135:
CPI r20, 0x88, c4
brne n136
LDI r19, 0x0C
LDI r22, 0b00110011
reda på PORTA, r22
n136:
CPI r20, 0x89; b3
brne n137
LDI r19, 0x4D
LDI r22, 0b00110100
reda på PORTA, r22
n137:
CPI r20, 0x8A, c4
brne n138
LDI r19, 0x0C
LDI r22, 0b00110011
reda på PORTA, r22
n138:
CPI r20, 0x8B; b3
brne n139
LDI r19, 0x0C
LDI r22, 0b00110100
reda på PORTA, r22
n139:
CPI r20, 0x8C, a3
brne n140
LDI r19, 0x40
LDI r22, 0b00110110
reda på PORTA, r22
rjmp n140
bogo16:
rjmp bogo15
n140:
CPI r20, 0x8D, null
brne n141
LDI r19, 0x08
LDI r22, 0b00000000
reda på PORTA, r22
n141:
CPI r20, 0x8E, null
brne n142
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n142:
CPI r20, 0x8F; b3
brne n143
LDI r19, 0x0C
LDI r22, 0b00110100
reda på PORTA, r22
n143:
CPI r20, 0x90, a3
brne n144
LDI r19, 0x0C
LDI r22, 0b00110110
reda på PORTA, r22
n144:
CPI r20, 0x91, g3
brne n145
LDI r19, 0x0C
LDI r22, 0b00111000
reda på PORTA, r22
n145:
CPI r20, 0x92, null
brne n146
LDI r19, 0x03
LDI r22, 0b00000000
reda på PORTA, r22
n146:
CPI r20, 0x93, e3
brne n147
LDI r19, 0x4D
LDI r22, 0b00111011
reda på PORTA, r22
N147:
CPI r20, 0x94, a3
brne n148
LDI r19, 0x0C
LDI r22, 0b00110110
reda på PORTA, r22
n148:
CPI r20, 0x95; b3
brne n149
LDI r19, 0x0C
LDI r22, 0b00110100
reda på PORTA, r22
n149:
CPI r20, 0x96, c4
brne n150
LDI r19, 0x33
LDI r22, 0b00110011
reda på PORTA, r22
rjmp n150
bogo17:
rjmp bogo16
N150:
CPI r20, 0x97, b3
brne n151
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
n151:
CPI r20, 0x98, c4
brne n152
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
N152:
CPI r20, 0x99, d4
brne n153
LDI r19, 0x26
LDI r22, 0b00110001
reda på PORTA, r22
n153:
CPI r20, 0x9A, c4
brne n154
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
n154:
CPI r20, 0x9B, d4
brne n155
LDI r19, 0x19
LDI r22, 0b00110001
reda på PORTA, r22
n155:
CPI r20, 0x9C, e4
brne n156
LDI r19, 0x26
LDI r22, 0b00101111
reda på PORTA, r22
N156:
CPI r20, 0x9D, a3
brne n157
LDI r19, 0x19
LDI r22, 0b00110110
reda på PORTA, r22
n157:
CPI r20, 0x9E; b3
brne n158
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
n158:
CPI r20, 0x9F, c4
brne n159
LDI r19, 0x26
LDI r22, 0b00110011
reda på PORTA, r22
n159:
CPI r20, 0xA0, d4
brne n160
LDI r19, 0x19
LDI r22, 0b00110001
reda på PORTA, r22
rjmp n160
bogo18:
rjmp bogo17
n160:
CPI r20, 0xA1, c4
brne n161
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
n161:
CPI r20, 0xA2; b3
brne n162
LDI r19, 0x22
LDI r22, 0b00110100
reda på PORTA, r22
n162:
CPI r20, 0xA3, c4
brne n163
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
N163:
CPI r20, 0xA4; b3
brne n164
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
n164:
CPI r20, 0xA5, a3
brne n165
LDI r19, 0x26
LDI r22, 0b00110110
reda på PORTA, r22
n165:
CPI r20, 0xA6, null
brne n166
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n166:
CPI r20, 0xA7; b3
brne n167
LDI r19, 0x0C
LDI r22, 0b00110100
reda på PORTA, r22
n167:
CPI r20, 0xA8, null
brne n168
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n168:
CPI r20, 0xA9, a3
brne n169
LDI r19, 0x19
LDI r22, 0b00110110
reda på PORTA, r22
n169:
CPI r20, 0xAA, g3
brne n170
LDI r19, 0x19
LDI r22, 0b00111000
reda på PORTA, r22
rjmp n170
bogo19:
rjmp bogo18
n170:
CPI r20, 0xAB, e3
brne n171
LDI r19, 0x33
LDI r22, 0b00111011
reda på PORTA, r22
n171:
CPI r20, 0xAC, a3
brne n172
LDI r19, 0x19
LDI r22, 0b00110110
reda på PORTA, r22
n172:
CPI r20, 0xAD; b3
brne n173
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
n173:
CPI r20, 0xAE, c4
brne n174
LDI r19, 0x26
LDI r22, 0b00110011
reda på PORTA, r22
N174:
CPI r20, 0xAF, d4
brne n175
LDI r19, 0x19
LDI r22, 0b00110001
reda på PORTA, r22
n175:
CPI r20, 0xB0, c4
brne n176
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
n176:
CPI r20, 0xB1; b3
brne n177
LDI r19, 0x26
LDI r22, 0b00110100
reda på PORTA, r22
N177:
CPI r20, 0xB2, a3
brne n178
LDI r19, 0x22
LDI r22, 0b00110110
reda på PORTA, r22
n178:
CPI r20, 0xB3, null
brne n179
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n179:
CPI r20, 0xB4, g3
brne n180
LDI r19, 0x0C
LDI r22, 0b00111000
reda på PORTA, r22
rjmp n180
bogo20:
rjmp bogo19
n180:
CPI r20, 0xB5, null
brne n181
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n181:
CPI r20, 0xB6; b3
brne n182
LDI r19, 0x0C
LDI r22, 0b00110100
reda på PORTA, r22
n182:
CPI r20, 0xB7, a3
brne n183
LDI r19, 0x65
LDI r22, 0b00110110
reda på PORTA, r22
n183:
CPI r20, 0xB8, a3
brne n184
LDI r19, 0x0C
LDI r22, 0b00110110
reda på PORTA, r22
n184:
CPI r20, 0xB9, null
brne n185
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n185:
CPI r20, 0xBA; b3
brne n186
LDI r19, 0x0C
LDI r22, 0b00110100
reda på PORTA, r22
n186:
CPI r20, 0xBB, null
brne n187
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n187:
CPI r20, 0xBC, c4
brne n188
LDI r19, 0x3E
LDI r22, 0b00110011
reda på PORTA, r22
n188:
CPI r20, 0xBD, null
brne n189
LDI r19, 0x14
LDI r22, 0b00000000
reda på PORTA, r22
n189:
CPI r20, 0xBE, d4
brne n190
LDI r19, 0x0C
LDI r22, 0b00110001
reda på PORTA, r22
rjmp n190
bogo21:
rjmp bogo20
n190:
CPI r20, 0xBF, null
brne n191
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n191:
CPI r20, 0xC0, c4
brne n192
LDI r19, 0x0C
LDI r22, 0b00110011
reda på PORTA, r22
n192:
CPI r20, 0xC1, null
brne n193
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n193:
CPI r20, 0xC2; b3
brne n194
LDI r19, 0x3E
LDI r22, 0b00110100
reda på PORTA, r22
n194:
CPI r20, 0xC3, null
brne n195
LDI r19, 0x14
LDI r22, 0b00000000
reda på PORTA, r22
n195:
CPI r20, 0xC4, c4
brne n196
LDI r19, 0x0C
LDI r22, 0b00110011
reda på PORTA, r22
n196:
CPI r20, 0xC5, null
brne n197
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n197:
CPI r20, 0xC6; b3
brne n198
LDI r19, 0x0C
LDI r22, 0b00110100
reda på PORTA, r22
n198:
CPI r20, 0xC7, null
brne n199
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n199:
CPI r20, 0xC8, a3
brne n200
LDI r19, 0x34
LDI r22, 0b00110110
reda på PORTA, r22
rjmp n200
bogo22:
rjmp bogo21
N200:
CPI r20, 0xC9, null
brne n201
LDI r19, 0x0A
LDI r22, 0b00000000
reda på PORTA, r22
n201:
CPI r20, 0xCA; b3
brne n202
LDI r19, 0x0C
LDI r22, 0b00110100
reda på PORTA, r22
n202:
CPI r20, 0xCB, a3
brne n203
LDI r19, 0x0C
LDI r22, 0b00110110
reda på PORTA, r22
n203:
CPI r20, 0xCC, g3
brne n204
LDI r19, 0x0C
LDI r22, 0b00111000
reda på PORTA, r22
n204:
CPI r20, 0xCD, null
brne n205
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
N205:
CPI r20, 0xCE, e3
brne n206
LDI r19, 0x3E
LDI r22, 0b00111011
reda på PORTA, r22
N206:
CPI r20, 0xCF, null
brne n207
LDI r19, 0x14
LDI r22, 0b00000000
reda på PORTA, r22
N207:
CPI r20, 0xD0, a3
brne n208
LDI r19, 0x0C
LDI r22, 0b00110110
reda på PORTA, r22
n208:
CPI r20, 0xD1, null
brne n209
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n209:
CPI r20, 0xD2; b3
brne n210
LDI r19, 0x0C
LDI r22, 0b00110100
reda på PORTA, r22
rjmp n210
bogo23:
rjmp bogo22
N210:
CPI r20, 0xD3, null
brne n211
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n211:
CPI r20, 0xD4, c4
brne n212
LDI r19, 0x30
LDI r22, 0b00110011
reda på PORTA, r22
n212:
CPI r20, 0xD5; b3
brne n213
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
N213:
CPI r20, 0xD6, c4
brne n214
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
n214:
CPI r20, 0xD7; d4
brne n215
LDI r19, 0x30
LDI r22, 0b00110001
reda på PORTA, r22
n215:
CPI r20, 0xD8, c4
brne n216
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
n216:
CPI r20, 0xD9, d4
brne n217
LDI r19, 0x19
LDI r22, 0b00110001
reda på PORTA, r22
n217:
CPI r20, 0xDA, e4
brne n218
LDI r19, 0x65
LDI r22, 0b00101111
reda på PORTA, r22
n218:
CPI r20, 0xDB, a3
brne n219
LDI r19, 0x19
LDI r22, 0b00110110
reda på PORTA, r22
n219:
CPI r20, 0xDC; b3
brne n220
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
rjmp n220
bogo24:
rjmp bogo23
N220:
CPI r20, 0xDD, c4
brne n221
LDI r19, 0x30
LDI r22, 0b00110011
reda på PORTA, r22
n221:
CPI r20, 0xDE; d4
brne n222
LDI r19, 0x19
LDI r22, 0b00110001
reda på PORTA, r22
n222:
CPI r20, 0xDF, c4
brne n223
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
N223:
CPI r20, 0xE0; b3
brne n224
LDI r19, 0x30
LDI r22, 0b00110100
reda på PORTA, r22
n224:
CPI r20, 0xE1, c4
brne n225
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
n225:
CPI r20, 0xE2; b3
brne n226
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
N226:
CPI r20, 0xE3, a3
brne n227
LDI r19, 0x25
LDI r22, 0b00110110
reda på PORTA, r22
n227:
CPI r20, 0xE4, null
brne n228
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n228:
CPI r20, 0xE5; b3
brne n229
LDI r19, 0x0C
LDI r22, 0b00110100
reda på PORTA, r22
n229:
CPI r20, 0xE6, null
brne n230
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
rjmp n230
bogo25:
rjmp bogo24
N230:
CPI r20, 0xE7, a3
brne n231
LDI r19, 0x19
LDI r22, 0b00110110
reda på PORTA, r22
n231:
CPI r20, 0xE8, g3
brne n232
LDI r19, 0x19
LDI r22, 0b00111000
reda på PORTA, r22
n232:
CPI r20, 0xE9, e3
brne n233
LDI r19, 0x30
LDI r22, 0b00111011
reda på PORTA, r22
n233:
CPI r20, 0xEA, a3
brne n234
LDI r19, 0x19
LDI r22, 0b00110110
reda på PORTA, r22
n234:
CPI r20, 0xEB; b3
brne n235
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
n235:
CPI r20, 0xEC, c4
brne n236
LDI r19, 0x30
LDI r22, 0b00110011
reda på PORTA, r22
n236:
CPI r20, 0xED; d4
brne n237
LDI r19, 0x19
LDI r22, 0b00110001
reda på PORTA, r22
n237:
CPI r20, 0xEE; c4
brne n238
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
n238:
CPI r20, 0xEF; b3
brne n239
LDI r19, 0x30
LDI r22, 0b00110100
reda på PORTA, r22
n239:
CPI r20, 0xF0, a3
brne n240
LDI r19, 0x25
LDI r22, 0b00110110
reda på PORTA, r22
rjmp n240
bogo26:
rjmp bogo25
N240:
CPI r20, 0xF1, null
brne n241
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n241:
CPI r20, 0xF2, g3
brne n242
LDI r19, 0x0C
LDI r22, 0b00111000
reda på PORTA, r22
n242:
CPI r20, 0xF3, null
brne n243
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n243:
CPI r20, 0xF4; b3
brne n244
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
N244:
CPI r20, 0xF5, a3
brne n245
LDI r19, 0x65
LDI r22, 0b00110110
reda på PORTA, r22
n245:
CPI r20, 0xF6, c4
brne n246
LDI r19, 0x0C
LDI r22, 0b00110011
reda på PORTA, r22
n246:
CPI r20, 0xF7, null
brne n247
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n247:
CPI r20, 0xF8, d4
brne n248
LDI r19, 0x0C
LDI r22, 0b00110001
reda på PORTA, r22
n248:
CPI r20, 0xF9, e4
brne n249
LDI r19, 0x0C
LDI r22, 0b00101111
reda på PORTA, r22
n249:
CPI r20, 0xFA, null
brne n250
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
rjmp n250
bogo27:
rjmp bogo26
N250:
CPI r20, 0xFB, d4
brne n251
LDI r19, 0x30
LDI r22, 0b00110001
reda på PORTA, r22
n251:
CPI r20, 0xFC, null
brne n252
LDI r19, 0x08
LDI r22, 0b00000000
reda på PORTA, r22
n252:
CPI r20, 0xFD, c4
brne n253
LDI r19, 0x0C
LDI r22, 0b00110011
reda på PORTA, r22
n253:
CPI r20, 0xFE; d4
brne n254
LDI r19, 0x0C
LDI r22, 0b00110001
reda på PORTA, r22
n254:
CPI r20, 0xFF, e4
brne n255
LDI r19, 0x34
LDI r22, 0b00101111
reda på PORTA, r22
n255:
CPI r23, 0x01, null, också registrera övergång från r20 till r23 här
brne n256
LDI r19, 0x08
LDI r22, 0b00000000
reda på PORTA, r22
n256:
CPI r23, 0x02, d4
brne n257
LDI r19, 0x19
LDI r22, 0b00110001
reda på PORTA, r22
n257:
CPI r23, 0x03, c4
brne n258
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
n258:
CPI r23, 0x04, d4
brne n259
LDI r19, 0x0C
LDI r22, 0b00110001
reda på PORTA, r22
n259:
CPI r23, 0x05, c4
brne n260
LDI r19, 0x25
LDI r22, 0b00110011
reda på PORTA, r22
rjmp n260
bogo28:
rjmp bogo27
n260:
CPI r23, 0x06; b3
brne n261
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
n261:
CPI r23, 0x07, c4
brne n262
LDI r19, 0x0C
LDI r22, 0b00110011
reda på PORTA, r22
n262:
CPI r23, 0x08; d4
brne n263
LDI r19, 0x34
LDI r22, 0b00110001
reda på PORTA, r22
n263:
CPI r23, 0x09, null
brne n264
LDI r19, 0x0D
LDI r22, 0b00000000
reda på PORTA, r22
n264:
CPI r23, 0x0A, c4
brne n265
LDI r19, 0x19
LDI r22, 0b00110011
reda på PORTA, r22
n265:
CPI r23, 0x0B; b3
brne n266
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
n266:
CPI r23, 0x0C, c4
brne n267
LDI r19, 0x30
LDI r22, 0b00110011
reda på PORTA, r22
n267:
CPI r23, 0x0D, a3
brne n268
LDI r19, 0x19
LDI r22, 0b00110110
reda på PORTA, r22
n268:
CPI r23, 0x0E; b3
brne n269
LDI r19, 0x0C
LDI r22, 0b00110100
reda på PORTA, r22
n269:
CPI r23, 0x0F, c4
brne n270
LDI r19, 0x3E
LDI r22, 0b00110011
reda på PORTA, r22
rjmp n270
bogo29:
rjmp bogo28
N270:
CPI r23, 0x10, b3
brne n271
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
N271:
CPI r23, 0x11, null
brne n272
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n272:
CPI r23, 0x12, a3
brne n273
LDI r19, 0x0C
LDI r22, 0b00110110
reda på PORTA, r22
n273:
CPI r23, 0x13, null
brne n274
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n274:
CPI r23, 0x14, g3
brne n275
LDI r19, 0x50
LDI r22, 0b00111000
reda på PORTA, r22
N275:
CPI r23, 0x15, null
brne n276
LDI r19, 0x18
LDI r22, 0b00000000
reda på PORTA, r22
n276:
CPI r23, 0x16, a3
brne n277
LDI r19, 0x0C
LDI r22, 0b00110110
reda på PORTA, r22
n277:
CPI r23, 0x17, null
brne n278
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
N278:
CPI r23, 0x18; b3
brne n279
LDI r19, 0x0C
LDI r22, 0b00110100
reda på PORTA, r22
n279:
CPI r23, 0x19; c4
brne n280
LDI r19, 0x0C
LDI r22, 0b00110011
reda på PORTA, r22
rjmp n280
bogo30:
rjmp bogo29
N280:
CPI r23, 0x1A; null
brne n281
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
N281:
CPI r23, 0x1B; b3
brne n282
LDI r19, 0x25
LDI r22, 0b00110100
reda på PORTA, r22
N282:
CPI r23, 0x1C, null
brne n283
LDI r19, 0x0D
LDI r22, 0b00000000
reda på PORTA, r22
n283:
CPI r23, 0x1D, a3
brne n284
LDI r19, 0x19
LDI r22, 0b00110110
reda på PORTA, r22
n284:
CPI r23, 0x1E, c4
brne n285
LDI r19, 0x0C
LDI r22, 0b00110011
reda på PORTA, r22
n285:
CPI r23, 0x1F; b3
brne n286
LDI r19, 0x4B
LDI r22, 0b00110100
reda på PORTA, r22
n286:
CPI r23, 0x20; c4
brne n287
LDI r19, 0x0C
LDI r22, 0b00110011
reda på PORTA, r22
n287:
CPI r23, 0x21, null
brne n288
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n288:
CPI r23, 0x22; b3
brne n289
LDI r19, 0x0C
LDI r22, 0b00110100
reda på PORTA, r22
n289:
CPI r23, 0x23; null
brne n290
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
rjmp n290
bogo31:
rjmp bogo30
n290:
CPI r23, 0x24, c4
brne n291
LDI r19, 0x25
LDI r22, 0b00110011
reda på PORTA, r22
n291:
CPI r23, 0x25, null
brne n292
LDI r19, 0x0A
LDI r22, 0b00000000
reda på PORTA, r22
n292:
CPI r23, 0x26, b3
brne n293
LDI r19, 0x0C
LDI r22, 0b00110100
reda på PORTA, r22
n293:
CPI r23, 0x27, a3
brne n294
LDI r19, 0x0C
LDI r22, 0b00110110
reda på PORTA, r22
n294:
CPI r23, 0x28, null
brne n295
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n295:
CPI r23, 0x29, g3
brne n296
LDI r19, 0x19
LDI r22, 0b00111000
reda på PORTA, r22
n296:
CPI r23, 0x2A, null
brne n297
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n297:
CPI r23, 0x2B, e3
brne n298
LDI r19, 0x34
LDI r22, 0b00111011
reda på PORTA, r22
n298:
CPI r23, 0x2C, null
brne n299
LDI r19, 0x08
LDI r22, 0b00000000
reda på PORTA, r22
n299:
CPI r23, 0x2D, a3
brne n300
LDI r19, 0x19
LDI r22, 0b00110110
reda på PORTA, r22
rjmp n300
bogo32:
rjmp bogo31
N300:
CPI r23, 0x2E; b3
brne n301
LDI r19, 0x19
LDI r22, 0b00110100
reda på PORTA, r22
n301:
CPI r23, 0x2F, c4
brne n302
LDI r19, 0x30
LDI r22, 0b00110011
reda på PORTA, r22
n302:
CPI r23, 0x30, d4
brne n303
LDI r19, 0x25
LDI r22, 0b00110001
reda på PORTA, r22
n303:
CPI r23, 0x31, null
brne n304
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n304:
CPI r23, 0x32, c4
brne n305
LDI r19, 0x0C
LDI r22, 0b00110011
reda på PORTA, r22
n305:
CPI r23, 0x33, null
brne n306
LDI r19, 0x05
LDI r22, 0b00000000
reda på PORTA, r22
n306:
CPI r23, 0x34; b3
brne n307
LDI r19, 0x30
LDI r22, 0b00110100
reda på PORTA, r22
N307:
CPI r23, 0x35, a3
brne n308
LDI r19, 0x25
LDI r22, 0b00110110
reda på PORTA, r22
n308:
CPI r23, 0x36, null
brne n309
LDI r19, 0x0A
LDI r22, 0b00000000
reda på PORTA, r22
n309:
CPI r23, 0x37, g3
brne n310
LDI r19, 0x0C
LDI r22, 0b00111000
reda på PORTA, r22
rjmp n310
bogo33:
Inc r24
CPI r24, 0b11111111; Timing tweak
breq bogo32
rjmp bogo33
N310:
CPI r23, 0x38; b3
brne n312
LDI r19, 0x0C
LDI r22, 0b00110100
reda på PORTA, r22
; n311:
; cpi r23, 0x39, null
; brne n312
; ldi r19, 0x05
; ldi r22, 0b00000000
; ut PORTA, r22
; n312:
; cpi r23, 0x3A, a3, inte nödvändigt
; brne n313
; ldi r19, 0x4B
; ldi r22, 0b00110110
; ut PORTA, r22
n312:
CPI r23, 0x3B
LDI r24, 0b00000000
brne bogo33
CLR r23
CLR r20
CLR r17
LDI r22, 0b00000000
reda på PORTA, r22
rjmp bogo33