| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266 |
- GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccw9Ogth.s page 1
- 1 .file "keyboard.c"
- 2 .arch atmega2561
- 3 __SREG__ = 0x3f
- 4 __SP_H__ = 0x3e
- 5 __SP_L__ = 0x3d
- 6 __tmp_reg__ = 0
- 7 __zero_reg__ = 1
- 8 .global __do_copy_data
- 9 .global __do_clear_bss
- 10 .text
- 11 .global KbScan
- 12 .type KbScan, @function
- 13 KbScan:
- 14 /* prologue: frame size=0 */
- 15 /* prologue end (size=0) */
- 16 0000 A398 cbi 52-0x20,3
- 17 /* #APP */
- 18 0002 0000 nop
- 19 0004 0000 nop
- 20 /* #NOAPP */
- 21 0006 8FB1 in r24,47-0x20
- 22 0008 A39A sbi 52-0x20,3
- 23 000a A498 cbi 52-0x20,4
- 24 /* #APP */
- 25 000c 0000 nop
- 26 000e 0000 nop
- 27 /* #NOAPP */
- 28 0010 6FB1 in r22,47-0x20
- 29 0012 A49A sbi 52-0x20,4
- 30 0014 5B98 cbi 43-0x20,3
- 31 /* #APP */
- 32 0016 0000 nop
- 33 0018 0000 nop
- 34 /* #NOAPP */
- 35 001a 2FB1 in r18,47-0x20
- 36 001c 5B9A sbi 43-0x20,3
- 37 001e 5A98 cbi 43-0x20,2
- 38 /* #APP */
- 39 0020 0000 nop
- 40 0022 0000 nop
- 41 /* #NOAPP */
- 42 0024 4FB1 in r20,47-0x20
- 43 0026 5A9A sbi 43-0x20,2
- 44 0028 8295 swap r24
- 45 002a 8F70 andi r24,0x0f
- 46 002c 9927 clr r25
- 47 002e 607F andi r22,lo8(-16)
- 48 0030 7727 clr r23
- 49 0032 862B or r24,r22
- 50 0034 972B or r25,r23
- 51 0036 207F andi r18,lo8(-16)
- 52 0038 3327 clr r19
- 53 003a 54E0 ldi r21,4
- 54 003c 220F 1: lsl r18
- 55 003e 331F rol r19
- 56 0040 5A95 dec r21
- 57 0042 01F4 brne 1b
- GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccw9Ogth.s page 2
- 58 0044 822B or r24,r18
- 59 0046 932B or r25,r19
- 60 0048 407F andi r20,lo8(-16)
- 61 004a 5527 clr r21
- 62 004c 542F mov r21,r20
- 63 004e 4427 clr r20
- 64 0050 842B or r24,r20
- 65 0052 952B or r25,r21
- 66 0054 9093 0000 sts (KeyFound)+1,r25
- 67 0058 8093 0000 sts KeyFound,r24
- 68 /* epilogue: frame size=0 */
- 69 005c 0895 ret
- 70 /* epilogue end (size=1) */
- 71 /* function KbScan size 55 (54) */
- 72 .size KbScan, .-KbScan
- 73 .global KbSetKeyRepeating
- 74 .type KbSetKeyRepeating, @function
- 75 KbSetKeyRepeating:
- 76 /* prologue: frame size=0 */
- 77 /* prologue end (size=0) */
- 78 005e E82F mov r30,r24
- 79 0060 862F mov r24,r22
- 80 0062 8150 subi r24,lo8(-(-1))
- 81 0064 8230 cpi r24,lo8(2)
- 82 0066 00F4 brsh .L7
- 83 0068 E031 cpi r30,lo8(16)
- 84 006a 00F4 brsh .L7
- 85 006c FF27 clr r31
- 86 006e E050 subi r30,lo8(-(KeyRepeatArray))
- 87 0070 F040 sbci r31,hi8(-(KeyRepeatArray))
- 88 0072 6083 st Z,r22
- 89 .L7:
- 90 0074 0895 ret
- 91 /* epilogue: frame size=0 */
- 92 /* epilogue: noreturn */
- 93 /* epilogue end (size=0) */
- 94 /* function KbSetKeyRepeating size 12 (12) */
- 95 .size KbSetKeyRepeating, .-KbSetKeyRepeating
- 96 .global KbGetKey
- 97 .type KbGetKey, @function
- 98 KbGetKey:
- 99 /* prologue: frame size=0 */
- 100 /* prologue end (size=0) */
- 101 0076 8091 0000 lds r24,KeyBuffer
- 102 007a 9927 clr r25
- 103 /* epilogue: frame size=0 */
- 104 007c 0895 ret
- 105 /* epilogue end (size=1) */
- 106 /* function KbGetKey size 4 (3) */
- 107 .size KbGetKey, .-KbGetKey
- 108 .global KbInjectKey
- 109 .type KbInjectKey, @function
- 110 KbInjectKey:
- 111 /* prologue: frame size=0 */
- 112 /* prologue end (size=0) */
- 113 007e 8093 0000 sts KeyBuffer,r24
- 114 0082 E091 0000 lds r30,hKBEvent
- GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccw9Ogth.s page 3
- 115 0086 F091 0000 lds r31,(hKBEvent)+1
- 116 008a 3097 sbiw r30,0
- 117 008c 01F4 brne .L11
- 118 008e 8FEF ldi r24,lo8(-1)
- 119 0090 9FEF ldi r25,hi8(-1)
- 120 0092 9093 0000 sts (hKBEvent)+1,r25
- 121 0096 8093 0000 sts hKBEvent,r24
- 122 009a 0895 ret
- 123 .L11:
- 124 009c 8FEF ldi r24,hi8(-1)
- 125 009e EF3F cpi r30,lo8(-1)
- 126 00a0 F807 cpc r31,r24
- 127 00a2 01F0 breq .L15
- 128 00a4 8481 ldd r24,Z+4
- 129 00a6 9581 ldd r25,Z+5
- 130 00a8 0196 adiw r24,1
- 131 00aa 9583 std Z+5,r25
- 132 00ac 8483 std Z+4,r24
- 133 .L15:
- 134 00ae 0895 ret
- 135 /* epilogue: frame size=0 */
- 136 /* epilogue: noreturn */
- 137 /* epilogue end (size=0) */
- 138 /* function KbInjectKey size 25 (25) */
- 139 .size KbInjectKey, .-KbInjectKey
- 140 .global KbInit
- 141 .type KbInit, @function
- 142 KbInit:
- 143 /* prologue: frame size=0 */
- 144 /* prologue end (size=0) */
- 145 00b0 A39A sbi 52-0x20,3
- 146 00b2 A49A sbi 52-0x20,4
- 147 00b4 5B9A sbi 43-0x20,3
- 148 00b6 5A9A sbi 43-0x20,2
- 149 00b8 1092 0000 sts KbState,__zero_reg__
- 150 00bc 8FEF ldi r24,lo8(-1)
- 151 00be 9FEF ldi r25,hi8(-1)
- 152 00c0 9093 0000 sts (KeyFound)+1,r25
- 153 00c4 8093 0000 sts KeyFound,r24
- 154 /* #APP */
- 155 00c8 0FB6 in __tmp_reg__, __SREG__
- 156 00ca F894 cli
- 157 00cc 0F92 push __tmp_reg__
- 158
- 159 /* #NOAPP */
- 160 00ce 1092 0000 sts (hKBEvent)+1,__zero_reg__
- 161 00d2 1092 0000 sts hKBEvent,__zero_reg__
- 162 /* #APP */
- 163 00d6 0F90 pop __tmp_reg__
- 164 00d8 0FBE out __SREG__, __tmp_reg__
- 165
- 166 /* #NOAPP */
- 167 00da 8FEF ldi r24,lo8(-1)
- 168 00dc 8093 0000 sts KeyBuffer,r24
- 169 00e0 E0E0 ldi r30,lo8(KeyRepeatArray)
- 170 00e2 F0E0 ldi r31,hi8(KeyRepeatArray)
- 171 00e4 82E0 ldi r24,lo8(2)
- GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccw9Ogth.s page 4
- 172 .L17:
- 173 00e6 8193 st Z+,r24
- 174 00e8 90E0 ldi r25,hi8(KeyRepeatArray+16)
- 175 00ea E030 cpi r30,lo8(KeyRepeatArray+16)
- 176 00ec F907 cpc r31,r25
- 177 00ee 01F4 brne .L17
- 178 00f0 1092 0000 sts (HoldCounter)+1,__zero_reg__
- 179 00f4 1092 0000 sts HoldCounter,__zero_reg__
- 180 00f8 61E0 ldi r22,lo8(1)
- 181 00fa 88E0 ldi r24,lo8(8)
- 182 00fc 0E94 0000 call KbSetKeyRepeating
- 183 0100 61E0 ldi r22,lo8(1)
- 184 0102 8BE0 ldi r24,lo8(11)
- 185 0104 0E94 0000 call KbSetKeyRepeating
- 186 0108 61E0 ldi r22,lo8(1)
- 187 010a 8AE0 ldi r24,lo8(10)
- 188 010c 0E94 0000 call KbSetKeyRepeating
- 189 0110 61E0 ldi r22,lo8(1)
- 190 0112 8CE0 ldi r24,lo8(12)
- 191 0114 0E94 0000 call KbSetKeyRepeating
- 192 /* epilogue: frame size=0 */
- 193 0118 0895 ret
- 194 /* epilogue end (size=1) */
- 195 /* function KbInit size 62 (61) */
- 196 .size KbInit, .-KbInit
- 197 .global KbWaitForKeyEvent
- 198 .type KbWaitForKeyEvent, @function
- 199 KbWaitForKeyEvent:
- 200 /* prologue: frame size=0 */
- 201 /* prologue end (size=0) */
- 202 011a AB01 movw r20,r22
- 203 011c BC01 movw r22,r24
- 204 011e 80E0 ldi r24,lo8(hKBEvent)
- 205 0120 90E0 ldi r25,hi8(hKBEvent)
- 206 0122 0E94 0000 call NutEventWait
- 207 0126 20E0 ldi r18,lo8(0)
- 208 0128 30E0 ldi r19,hi8(0)
- 209 012a 8F5F subi r24,lo8(-1)
- 210 012c 9F4F sbci r25,hi8(-1)
- 211 012e 01F4 brne .L23
- 212 0130 21E0 ldi r18,lo8(1)
- 213 0132 30E0 ldi r19,hi8(1)
- 214 .L23:
- 215 0134 C901 movw r24,r18
- 216 /* epilogue: frame size=0 */
- 217 0136 0895 ret
- 218 /* epilogue end (size=1) */
- 219 /* function KbWaitForKeyEvent size 16 (15) */
- 220 .size KbWaitForKeyEvent, .-KbWaitForKeyEvent
- 221 .lcomm hKBEvent,2
- 222 .lcomm KeyFound,2
- 223 .lcomm KeyBuffer,1
- 224 .lcomm HoldCounter,2
- 225 .lcomm KbState,1
- 226 .lcomm KeyRepeatArray,16
- 227 /* File "source/keyboard.c": code 174 = 0x00ae ( 170), prologues 0, epilogues 4 */
- GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccw9Ogth.s page 5
- DEFINED SYMBOLS
- *ABS*:00000000 keyboard.c
- C:\Users\GUUSV_~1\AppData\Local\Temp/ccw9Ogth.s:3 *ABS*:0000003f __SREG__
- C:\Users\GUUSV_~1\AppData\Local\Temp/ccw9Ogth.s:4 *ABS*:0000003e __SP_H__
- C:\Users\GUUSV_~1\AppData\Local\Temp/ccw9Ogth.s:5 *ABS*:0000003d __SP_L__
- C:\Users\GUUSV_~1\AppData\Local\Temp/ccw9Ogth.s:6 *ABS*:00000000 __tmp_reg__
- C:\Users\GUUSV_~1\AppData\Local\Temp/ccw9Ogth.s:7 *ABS*:00000001 __zero_reg__
- C:\Users\GUUSV_~1\AppData\Local\Temp/ccw9Ogth.s:13 .text:00000000 KbScan
- C:\Users\GUUSV_~1\AppData\Local\Temp/ccw9Ogth.s:221 .bss:00000002 KeyFound
- C:\Users\GUUSV_~1\AppData\Local\Temp/ccw9Ogth.s:75 .text:0000005e KbSetKeyRepeating
- C:\Users\GUUSV_~1\AppData\Local\Temp/ccw9Ogth.s:225 .bss:00000008 KeyRepeatArray
- C:\Users\GUUSV_~1\AppData\Local\Temp/ccw9Ogth.s:98 .text:00000076 KbGetKey
- C:\Users\GUUSV_~1\AppData\Local\Temp/ccw9Ogth.s:222 .bss:00000004 KeyBuffer
- C:\Users\GUUSV_~1\AppData\Local\Temp/ccw9Ogth.s:110 .text:0000007e KbInjectKey
- .bss:00000000 hKBEvent
- C:\Users\GUUSV_~1\AppData\Local\Temp/ccw9Ogth.s:142 .text:000000b0 KbInit
- C:\Users\GUUSV_~1\AppData\Local\Temp/ccw9Ogth.s:224 .bss:00000007 KbState
- C:\Users\GUUSV_~1\AppData\Local\Temp/ccw9Ogth.s:223 .bss:00000005 HoldCounter
- C:\Users\GUUSV_~1\AppData\Local\Temp/ccw9Ogth.s:199 .text:0000011a KbWaitForKeyEvent
- UNDEFINED SYMBOLS
- __do_copy_data
- __do_clear_bss
- NutEventWait
|