ORG 0xe000
Le000:
e000 0000 DW 0x0000
e002 0101 DW 0x0101
e004 0100 DW 0x0001
e006 0001 DW 0x0100
e008 0106 DW 0x0601
e00a 0000 DW 0x0000
e00c 0007 DW 0x0700
e00e 0101 DW 0x0101
e010 0101 DW 0x0101
e012 0106 DW 0x0601
e014 0000 DW 0x0000
e016 0007 DW 0x0700
e018 0000 DW 0x0000
e01a 0007 DW 0x0700
e01c 0101 DW 0x0101
e01e 0106 DW 0x0601
e020 0080 DW 0x8000
e022 0008 DW 0x0800
e024 0080 DW 0x8000
e026 0100 DW 0x0001
_program_start:
e028 31400003 mov.w #0x0300, R1
e02c b012e6e4 call #Le4e6
e030 0c93 tst.w R12
e032 0e24 jz Le050
e034 3c400802 mov.w #0x0208, R12
e038 3d400b00 mov.w #0x000b, R13
e03c b012bce4 call #Le4bc
e040 3c400002 mov.w #0x0200, R12
e044 3d4020e0 mov.w #0xe020, R13
e048 3e400700 mov.w #0x0007, R14
e04c b01202e5 call #Le502
Le050:
e050 b012dce4 call #Le4dc
e054 b01206e5 call #Le506
INT_WDT:
e058 0a12 push.w R10
e05a 0d12 push.w R13
e05c 0c12 push.w R12
e05e 0f12 push.w R15
e060 0e12 push.w R14
e062 7a400f00 mov.b #0x000f, R10
e066 5ac22000 bic.b &P1IN, R10
e06a 4a93 tst.b R10
e06c 1b20 jnz Le0a4
e06e d2c30000 bic.b #1, &IE1
e072 c2931202 tst.b &0x0212
e076 0620 jnz Le084
e078 b29005000a02 cmp.w #0x0005, &0x020a
e07e 0228 jnc Le084
e080 b0125ee4 call #Le45e
Le084:
e084 82430802 clr.w &0x0208
e088 82430a02 clr.w &0x020a
e08c 82430c02 clr.w &0x020c
e090 82430e02 clr.w &0x020e
e094 c2431202 clr.b &0x0212
e098 c2432300 clr.b &P1IFG
e09c f2400f002500 mov.b #0x000f, &P1IE
e0a2 633c jmp Le16a
Le0a4:
e0a4 5ab3 bit.b #1, R10
e0a6 0d28 jnc Le0c2
e0a8 b29000020802 cmp.w #0x0200, &0x0208
e0ae 022c jc Le0b4
e0b0 92530802 add.w #1, &0x0208
Le0b4:
e0b4 b29005000802 cmp.w #0x0005, &0x0208
e0ba 0520 jnz Le0c6
e0bc b012f8e4 call #Le4f8
e0c0 023c jmp Le0c6
Le0c2:
e0c2 82430802 clr.w &0x0208
Le0c6:
e0c6 6ab3 bit.b #2, R10
e0c8 1128 jnc Le0ec
e0ca b29000020a02 cmp.w #0x0200, &0x020a
e0d0 022c jc Le0d6
e0d2 92530a02 add.w #1, &0x020a
Le0d6:
e0d6 b29000020a02 cmp.w #0x0200, &0x020a
e0dc 1420 jnz Le106
e0de b01240e3 call #Le340
e0e2 d2431202 mov.b #1, &0x0212
e0e6 82430a02 clr.w &0x020a
e0ea 0d3c jmp Le106
Le0ec:
e0ec c2931202 tst.b &0x0212
e0f0 0620 jnz Le0fe
e0f2 b29005000a02 cmp.w #0x0005, &0x020a
e0f8 0228 jnc Le0fe
e0fa b0125ee4 call #Le45e
Le0fe:
e0fe c2431202 clr.b &0x0212
e102 82430a02 clr.w &0x020a
Le106:
e106 6ab2 bit.b #4, R10
e108 1d28 jnc Le144
e10a e2b20602 bit.b #4, &0x0206
e10e 0d2c jc Le12a
e110 b29000020c02 cmp.w #0x0200, &0x020c
e116 022c jc Le11c
e118 92530c02 add.w #1, &0x020c
Le11c:
e11c b29005000c02 cmp.w #0x0005, &0x020c
e122 1220 jnz Le148
e124 b0123ae4 call #Le43a
e128 0f3c jmp Le148
Le12a:
e12a 92530c02 add.w #1, &0x020c
e12e 1c420c02 mov.w &0x020c, R12
e132 3e400500 mov.w #0x0005, R14
e136 b0127ee4 call #Le47e
e13a 0e93 tst.w R14
e13c 0520 jnz Le148
e13e b0123ae4 call #Le43a
e142 023c jmp Le148
Le144:
e144 82430c02 clr.w &0x020c
Le148:
e148 7ab2 bit.b #8, R10
e14a 0d28 jnc Le166
e14c b29000020e02 cmp.w #0x0200, &0x020e
e152 022c jc Le158
e154 92530e02 add.w #1, &0x020e
Le158:
e158 b29005000e02 cmp.w #0x0005, &0x020e
e15e 0520 jnz Le16a
e160 b012f0e3 call #Le3f0
e164 023c jmp Le16a
Le166:
e166 82430e02 clr.w &0x020e
Le16a:
e16a 3e41 pop.w R14
e16c 3f41 pop.w R15
e16e 3c41 pop.w R12
e170 3d41 pop.w R13
e172 3a41 pop.w R10
e174 0013 reti
INT_TMR_A3_CR0:
e176 0d12 push.w R13
e178 0f12 push.w R15
e17a 0e12 push.w R14
e17c 4e43 clr.b R14
e17e 4d43 clr.b R13
e180 c2931102 tst.b &0x0211
e184 0524 jz Le190
e186 924200027201 mov.w &0x0200, &TACCR0
e18c c2431102 clr.b &0x0211
Le190:
e190 f2b22900 bit.b #8, &P2OUT
e194 0128 jnc Le198
e196 7ed2 bis.b #8, R14
Le198:
e198 f2b21900 bit.b #8, &P3OUT
e19c 0128 jnc Le1a0
e19e 7dd2 bis.b #8, R13
Le1a0:
e1a0 5f420602 mov.b &0x0206, R15
e1a4 4f4f mov.b R15, R15
e1a6 3ff00300 and.w #0x0003, R15
e1aa 4f83 sub.b #0, R15
e1ac 0724 jz Le1bc
e1ae 5f83 sub.b #1, R15
e1b0 1624 jz Le1de
e1b2 5f83 sub.b #1, R15
e1b4 2524 jz Le200
e1b6 5f83 sub.b #1, R15
e1b8 3424 jz Le222
e1ba 433c jmp Le242
Le1bc:
e1bc 5f421002 mov.b &0x0210, R15
e1c0 7ff00300 and.b #0x0003, R15
e1c4 4f4f mov.b R15, R15
e1c6 5edf00e0 bis.b 57344(R15), R14
e1ca 4f4f mov.b R15, R15
e1cc 5ddf04e0 bis.b 57348(R15), R13
e1d0 c24e2900 mov.b R14, &P2OUT
e1d4 c24d1900 mov.b R13, &P3OUT
e1d8 d2531002 add.b #1, &0x0210
e1dc 323c jmp Le242
Le1de:
e1de 5f421002 mov.b &0x0210, R15
e1e2 7ff00300 and.b #0x0003, R15
e1e6 4f4f mov.b R15, R15
e1e8 5ddf00e0 bis.b 57344(R15), R13
e1ec 4f4f mov.b R15, R15
e1ee 5edf04e0 bis.b 57348(R15), R14
e1f2 c24d1900 mov.b R13, &P3OUT
e1f6 c24e2900 mov.b R14, &P2OUT
e1fa d2531002 add.b #1, &0x0210
e1fe 213c jmp Le242
Le200:
e200 5f421002 mov.b &0x0210, R15
e204 7ff00700 and.b #0x0007, R15
e208 4f4f mov.b R15, R15
e20a 5edf08e0 bis.b 57352(R15), R14
e20e 4f4f mov.b R15, R15
e210 5ddf10e0 bis.b 57360(R15), R13
e214 c24e2900 mov.b R14, &P2OUT
e218 c24d1900 mov.b R13, &P3OUT
e21c d2531002 add.b #1, &0x0210
e220 103c jmp Le242
Le222:
e222 5f421002 mov.b &0x0210, R15
e226 7ff00700 and.b #0x0007, R15
e22a 4f4f mov.b R15, R15
e22c 5ddf18e0 bis.b 57368(R15), R13
e230 4f4f mov.b R15, R15
e232 5edf08e0 bis.b 57352(R15), R14
e236 c24d1900 mov.b R13, &P3OUT
e23a c24e2900 mov.b R14, &P2OUT
e23e d2531002 add.b #1, &0x0210
Le242:
e242 e2b20602 bit.b #4, &0x0206
e246 0328 jnc Le24e
e248 b2c010006201 bic.w #0x0010, &TACCTL0
Le24e:
e24e 3e41 pop.w R14
e250 3f41 pop.w R15
e252 3d41 pop.w R13
e254 0013 reti
Le256:
e256 0e43 clr.w R14
e258 f2d030005700 bis.b #0x0030, &BCSCTL1
e25e b01216e4 call #Le416
e262 b01216e4 call #Le416
e266 b24000516601 mov.w #0x5100, &TACCTL2
e26c b24024026001 mov.w #0x0224, &TACTL
e272 0b3c jmp Le28a
Le274:
e274 f2535600 add.b #-1, &DCOCTL
e278 f2935600 cmp.b #-1, &DCOCTL
e27c 0620 jnz Le28a
e27e f2b007005700 bit.b #0x0007, &BCSCTL1
e284 1f24 jz Le2c4
e286 f2535700 add.b #-1, &BCSCTL1
Le28a:
e28a 92b36601 bit.w #1, &TACCTL2
e28e fd2b jnc Le28a
e290 92c36601 bic.w #1, &TACCTL2
e294 1f427601 mov.w &TACCR2, R15
e298 0f8e sub.w R14, R15
e29a 1e427601 mov.w &TACCR2, R14
e29e 0c9f cmp.w R15, R12
e2a0 1124 jz Le2c4
e2a2 0c9f cmp.w R15, R12
e2a4 e72b jnc Le274
e2a6 d2535600 add.b #1, &DCOCTL
e2aa c2935600 tst.b &DCOCTL
e2ae ed23 jnz Le28a
e2b0 5f425700 mov.b &BCSCTL1, R15
e2b4 7ff00700 and.b #0x0007, R15
e2b8 7f900700 cmp.b #0x0007, R15
e2bc 0324 jz Le2c4
e2be d2535700 add.b #1, &BCSCTL1
e2c2 e33f jmp Le28a
Le2c4:
e2c4 f2f0cf005700 and.b #0x00cf, &BCSCTL1
e2ca 82436601 clr.w &TACCTL2
e2ce 82436001 clr.w &TACTL
e2d2 3041 ret
INT_USART0_RX:
e2d4 0f12 push.w R15
e2d6 0e12 push.w R14
Le2d8:
e2d8 e2b30200 bit.b #2, &IFG1
e2dc fd2b jnc Le2d8
e2de 5e427600 mov.b &U0RXBUF, R14
e2e2 7e804300 sub.b #0x0043, R14
e2e6 1b24 jz Le31e
e2e8 5e83 sub.b #1, R14
e2ea 1624 jz Le318
e2ec 6e83 sub.b #2, R14
e2ee 1d24 jz Le32a
e2f0 7e800700 sub.b #0x0007, R14
e2f4 1724 jz Le324
e2f6 7e800600 sub.b #0x0006, R14
e2fa 1a24 jz Le330
e2fc 7e801000 sub.b #0x0010, R14
e300 0e24 jz Le31e
e302 5e83 sub.b #1, R14
e304 0924 jz Le318
e306 6e83 sub.b #2, R14
e308 1024 jz Le32a
e30a 7e800700 sub.b #0x0007, R14
e30e 0a24 jz Le324
e310 7e800600 sub.b #0x0006, R14
e314 0d24 jz Le330
e316 0e3c jmp Le334
Le318:
e318 b012f8e4 call #Le4f8
e31c 0b3c jmp Le334
Le31e:
e31e b0125ee4 call #Le45e
e322 083c jmp Le334
Le324:
e324 b01240e3 call #Le340
e328 053c jmp Le334
Le32a:
e32a b0123ae4 call #Le43a
e32e 023c jmp Le334
Le330:
e330 b012f0e3 call #Le3f0
Le334:
e334 d24276007700 mov.b &U0RXBUF, &U0TXBUF
e33a 3e41 pop.w R14
e33c 3f41 pop.w R15
e33e 0013 reti
Le340:
e340 e2e30602 xor.b #2, &0x0206
e344 e2b30602 bit.b #2, &0x0206
e348 0e28 jnc Le366
e34a 12c3 clrc
e34c 12100002 rrc.w &0x0200
e350 d2431102 mov.b #1, &0x0211
e354 b24000040202 mov.w #0x0400, &0x0202
e35a b24000400402 mov.w #0x4000, &0x0204
e360 f2d21900 bis.b #8, &P3OUT
e364 3041 ret
Le366:
e366 925200020002 add.w &0x0200, &0x0200
e36c d2431102 mov.b #1, &0x0211
e370 b24000080202 mov.w #0x0800, &0x0202
e376 b24000800402 mov.w #0x8000, &0x0204
e37c f2c21900 bic.b #8, &P3OUT
e380 3041 ret
Le382:
e382 f2400f002400 mov.b #0x000f, &P1IES
e388 c2432300 clr.b &P1IFG
e38c f2400f002500 mov.b #0x000f, &P1IE
e392 c2432900 clr.b &P2OUT
e396 c2431900 clr.b &P3OUT
e39a f2d00f002a00 bis.b #0x000f, &P2DIR
e3a0 f2d00f001a00 bis.b #0x000f, &P3DIR
e3a6 3c404042 mov.w #0x4240, R12
e3aa 3d400f00 mov.w #0x000f, R13
e3ae b01256e2 call #Le256
e3b2 b01296e4 call #Le496
e3b6 b012bee3 call #Le3be
e3ba 3040f0e4 br #Le4f0
Le3be:
e3be f2d030001b00 bis.b #0x0030, &P3SEL
e3c4 f24011007000 mov.b #0x0011, &U0CTL
e3ca f2d003000500 bis.b #0x0003, &ME2
e3d0 f24010007100 mov.b #0x0010, &U0TCTL
e3d6 f24003007400 mov.b #0x0003, &U0BR0
e3dc c2437500 clr.b &U0BR1
e3e0 f2404a007300 mov.b #0x004a, &U0MCTL
e3e6 d2c37000 bic.b #1, &U0CTL
e3ea d2d30100 bis.b #1, &IE2
e3ee 3041 ret
Le3f0:
e3f0 e2b20602 bit.b #4, &0x0206
e3f4 0c2c jc Le40e
e3f6 1f420402 mov.w &0x0204, R15
e3fa 12c3 clrc
e3fc 0f10 rrc.w R15
e3fe 1f920002 cmp.w &0x0200, R15
e402 0528 jnc Le40e
e404 925200020002 add.w &0x0200, &0x0200
e40a d2431102 mov.b #1, &0x0211
Le40e:
e40e b2d010006201 bis.w #0x0010, &TACCTL0
e414 3041 ret
Le416:
e416 12c3 clrc
e418 0d10 rrc.w R13
e41a 0c10 rrc.w R12
e41c 12c3 clrc
e41e 0d10 rrc.w R13
e420 0c10 rrc.w R12
e422 12c3 clrc
e424 0d10 rrc.w R13
e426 0c10 rrc.w R12
e428 12c3 clrc
e42a 0d10 rrc.w R13
e42c 0c10 rrc.w R12
e42e 12c3 clrc
e430 0d10 rrc.w R13
e432 0c10 rrc.w R12
e434 0d11 rra.w R13
e436 0c10 rrc.w R12
e438 3041 ret
Le43a:
e43a e2b20602 bit.b #4, &0x0206
e43e 0b2c jc Le456
e440 1f420002 mov.w &0x0200, R15
e444 12c3 clrc
e446 0f10 rrc.w R15
e448 1f920202 cmp.w &0x0202, R15
e44c 0428 jnc Le456
e44e 824f0002 mov.w R15, &0x0200
e452 d2431102 mov.b #1, &0x0211
Le456:
e456 b2d010006201 bis.w #0x0010, &TACCTL0
e45c 3041 ret
Le45e:
e45e e2e20602 xor.b #4, &0x0206
e462 e2b20602 bit.b #4, &0x0206
e466 062c jc Le474
e468 b2d010006201 bis.w #0x0010, &TACCTL0
e46e f2c22900 bic.b #8, &P2OUT
e472 3041 ret
Le474:
e474 f2d22900 bis.b #8, &P2OUT
e478 3041 ret
e47a 7cf3 and.b #-1, R12
e47c 7ef3 and.b #-1, R14
Le47e:
e47e 0f4e mov.w R14, R15
e480 0d4c mov.w R12, R13
e482 0e43 clr.w R14
e484 1c43 mov.w #1, R12
Le486:
e486 0d5d add.w R13, R13
e488 0e6e addc.w R14, R14
e48a 0e9f cmp.w R15, R14
e48c 0128 jnc Le490
e48e 0e8f sub.w R15, R14
Le490:
e490 0c6c addc.w R12, R12
e492 f92b jnc Le486
e494 3041 ret
Le496:
e496 924200027201 mov.w &0x0200, &TACCR0
e49c b24010006201 mov.w #0x0010, &TACCTL0
e4a2 b24014026001 mov.w #0x0214, &TACTL
e4a8 3041 ret
Le4aa:
e4aa 0f4c mov.w R12, R15
e4ac 043c jmp Le4b6
Le4ae:
e4ae ff4d0000 mov.b @R13+, 0(R15)
e4b2 1f53 add.w #1, R15
e4b4 3e53 add.w #-1, R14
Le4b6:
e4b6 0e93 tst.w R14
e4b8 fa23 jnz Le4ae
e4ba 3041 ret
Le4bc:
e4bc 0f4c mov.w R12, R15
e4be 0f5d add.w R13, R15
e4c0 033c jmp Le4c8
Le4c2:
e4c2 cc430000 clr.b 0(R12)
e4c6 1c53 add.w #1, R12
Le4c8:
e4c8 0c9f cmp.w R15, R12
e4ca fb23 jnz Le4c2
e4cc 3041 ret
INT_PORT1:
e4ce c2432500 clr.b &P1IE
e4d2 c2432300 clr.b &P1IFG
e4d6 d2d30000 bis.b #1, &IE1
e4da 0013 reti
Le4dc:
e4dc b01282e3 call #Le382
e4e0 32d01800 bis.w #0x0018, R2
e4e4 3041 ret
Le4e6:
e4e6 b240805a2001 mov.w #0x5a80, &WDTCTL
e4ec 1c43 mov.w #1, R12
e4ee 3041 ret
Le4f0:
e4f0 b2401f5a2001 mov.w #0x5a1f, &WDTCTL
e4f6 3041 ret
Le4f8:
e4f8 d2e30602 xor.b #1, &0x0206
e4fc 3041 ret
Le4fe:
e4fe 30400ae5 br #Le50a
Le502:
e502 3040aae4 br #Le4aa
Le506:
e506 3040fee4 br #Le4fe
Le50a:
e50a ff3f jmp Le50a
ORG 0xffe4
VECTOR_PORT1:
ffe4 cee4 DW 0xe4ce
ORG 0xffee
VECTOR_USART0_RX:
ffee d4e2 DW 0xe2d4
ORG 0xfff2
VECTOR_TMR_A3_CR0:
fff2 76e1 DW 0xe176
VECTOR_WDT:
fff4 58e0 DW 0xe058
ORG 0xfffe
VECTOR_RESET:
fffe 28e0 DW 0xe028