Browse Source
Initial commit of BLHeli
Initial commit of BLHeli
Matching published Rev2.0 of SiLabs and Rev3.0 of Atmel Add GPL License file.master
Steffen Skaug
13 years ago
committed by
Chris
commit
fbeac34dbb
34 changed files with 17024 additions and 0 deletions
-
2963Atmel/BLHeli.asm
-
625Atmel/BLHeliTxPgm.inc
-
315Atmel/Feigao6.inc
-
350Atmel/HC5A1SA48V.inc
-
355Atmel/HC5A1SA8.inc
-
26Atmel/README
-
387Atmel/WalkeraWST10LT.inc
-
958Atmel/m48def.inc
-
976Atmel/m88Pdef.inc
-
738Atmel/m8def.inc
-
674COPYING
-
12README
-
2995SiLabs/BLHeli.asm
-
743SiLabs/BLHeliTxPgm.inc
-
204SiLabs/C8051F330.INC
-
256SiLabs/DP_3A.inc
-
267SiLabs/Hex files/DP 3A Main.hex
-
256SiLabs/Hex files/DP 3A Tail.hex
-
267SiLabs/Hex files/Supermicro_3p5A Main.hex
-
256SiLabs/Hex files/Supermicro_3p5A Tail.hex
-
266SiLabs/Hex files/Turnigy6A Main.hex
-
256SiLabs/Hex files/Turnigy6A Tail.hex
-
267SiLabs/Hex files/XP 12A Main.hex
-
256SiLabs/Hex files/XP 12A Tail.hex
-
267SiLabs/Hex files/XP 3A Main.hex
-
256SiLabs/Hex files/XP 3A Tail.hex
-
267SiLabs/Hex files/XP 7A Main.hex
-
256SiLabs/Hex files/XP 7A Tail.hex
-
31SiLabs/README
-
256SiLabs/Supermicro_3p5A.inc
-
255SiLabs/Turnigy6A.inc
-
256SiLabs/XP_12A.inc
-
256SiLabs/XP_3A.inc
-
256SiLabs/XP_7A.inc
2963
Atmel/BLHeli.asm
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,625 @@ |
|||
;**** **** **** **** **** |
|||
; |
|||
; BLHeli program for controlling brushless motors in helicopters |
|||
; |
|||
; Copyright 2011, 2012 Steffen Skaug |
|||
; This program is distributed under the terms of the GNU General Public License |
|||
; |
|||
; This file is part of BLHeli. |
|||
; |
|||
; BLHeli is free software: you can redistribute it and/or modify |
|||
; it under the terms of the GNU General Public License as published by |
|||
; the Free Software Foundation, either version 3 of the License, or |
|||
; (at your option) any later version. |
|||
; |
|||
; BLHeli is distributed in the hope that it will be useful, |
|||
; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
; GNU General Public License for more details. |
|||
; |
|||
; You should have received a copy of the GNU General Public License |
|||
; along with BLHeli. If not, see <http://www.gnu.org/licenses/>. |
|||
; |
|||
;**** **** **** **** **** |
|||
; |
|||
; BLHeliTxPgm Atmel |
|||
; |
|||
;**** **** **** **** **** |
|||
|
|||
|
|||
|
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Read eeprom byte routine |
|||
; |
|||
; Assumes data in Temp1 and address in X |
|||
; Also assumes address high byte to be zero |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
read_eeprom_byte: |
|||
; Wait for completion of previous write |
|||
Check_Eeprom_Ready |
|||
rjmp read_eeprom_byte |
|||
|
|||
; Set up address in address register |
|||
Set_Eeprom_Address Temp2, Temp3 |
|||
; Start eeprom read |
|||
sbi EECR, EERE |
|||
in Temp1, EEDR |
|||
ret |
|||
|
|||
|
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Write eeprom byte routine |
|||
; |
|||
; Assumes data in Temp1 and address in Temp2/Temp3 |
|||
; Also assumes address high byte to be zero |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
write_eeprom_byte: |
|||
; Wait for completion of previous write |
|||
Check_Eeprom_Ready |
|||
rjmp write_eeprom_byte |
|||
|
|||
; Set up address in address register |
|||
out EEDR, Temp1 |
|||
Set_Eeprom_Address Temp2, Temp3 |
|||
; Set write enables and start writing |
|||
cli ; Disable interrupts |
|||
Start_Eeprom_Write |
|||
sei ; Enable interrupts |
|||
ret |
|||
|
|||
|
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Clear eeprom signature routine |
|||
; |
|||
; No assumptions |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
clear_eeprom_signature: |
|||
ldi Temp2, low(Eep_Initialized_L) |
|||
ldi Temp3, high(Eep_Initialized_L) |
|||
ldi Temp1, 0xFF |
|||
rcall write_eeprom_byte |
|||
|
|||
ldi Temp2, low(Eep_Initialized_H) |
|||
ldi Temp3, high(Eep_Initialized_H) |
|||
ldi Temp1, 0xFF |
|||
rcall write_eeprom_byte |
|||
ret |
|||
|
|||
|
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Write eeprom signature routine |
|||
; |
|||
; No assumptions |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
write_eeprom_signature: |
|||
.if TAIL == 0 |
|||
ldi Temp2, low(Eep_Initialized_L) |
|||
ldi Temp3, high(Eep_Initialized_L) |
|||
ldi Temp1, 0xA5 |
|||
rcall write_eeprom_byte |
|||
|
|||
ldi Temp2, low(Eep_Initialized_H) |
|||
ldi Temp3, high(Eep_Initialized_H) |
|||
ldi Temp1, 0x5A |
|||
rcall write_eeprom_byte |
|||
.else |
|||
ldi Temp2, low(Eep_Initialized_L) |
|||
ldi Temp3, high(Eep_Initialized_L) |
|||
ldi Temp1, 0x5A |
|||
rcall write_eeprom_byte |
|||
|
|||
ldi Temp2, low(Eep_Initialized_H) |
|||
ldi Temp3, high(Eep_Initialized_H) |
|||
ldi Temp1, 0xA5 |
|||
rcall write_eeprom_byte |
|||
.endif |
|||
ret |
|||
|
|||
|
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Read eeprom perameters routine |
|||
; |
|||
; No assumptions |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
read_eeprom_parameters: |
|||
.if TAIL == 0 |
|||
; Check initialized signature |
|||
ldi Temp2, low(Eep_Initialized_L) |
|||
ldi Temp3, high(Eep_Initialized_L) |
|||
rcall read_eeprom_byte |
|||
cpi Temp1, 0xA5 |
|||
brne read_eeprom_store_defaults |
|||
|
|||
ldi Temp2, low(Eep_Initialized_H) |
|||
ldi Temp3, high(Eep_Initialized_H) |
|||
rcall read_eeprom_byte |
|||
cpi Temp1, 0x5A |
|||
brne read_eeprom_store_defaults |
|||
|
|||
; Read eeprom |
|||
ldi Temp2, low(Eep_Pgm_Gov_P_Gain) |
|||
ldi Temp3, high(Eep_Pgm_Gov_P_Gain) |
|||
rcall read_eeprom_byte |
|||
sts Pgm_Gov_P_Gain, Temp1 |
|||
|
|||
ldi Temp2, low(Eep_Pgm_Gov_I_Gain) |
|||
ldi Temp3, high(Eep_Pgm_Gov_I_Gain) |
|||
rcall read_eeprom_byte |
|||
sts Pgm_Gov_I_Gain, Temp1 |
|||
|
|||
ldi Temp2, low(Eep_Pgm_Gov_Mode) |
|||
ldi Temp3, high(Eep_Pgm_Gov_Mode) |
|||
rcall read_eeprom_byte |
|||
sts Pgm_Gov_Mode, Temp1 |
|||
|
|||
ldi Temp2, low(Eep_Pgm_Startup_Pwr) |
|||
ldi Temp3, high(Eep_Pgm_Startup_Pwr) |
|||
rcall read_eeprom_byte |
|||
sts Pgm_Startup_Pwr, Temp1 |
|||
|
|||
ldi Temp2, low(Eep_Pgm_Pwm_Freq) |
|||
ldi Temp3, high(Eep_Pgm_Pwm_Freq) |
|||
rcall read_eeprom_byte |
|||
sbr Flags2, (1<<PGM_PWM_HIGH_FREQ) |
|||
sbrc Temp1, 1 |
|||
cbr Flags2, (1<<PGM_PWM_HIGH_FREQ) |
|||
|
|||
ldi Temp2, low(Eep_Pgm_Input_Pol) |
|||
ldi Temp3, high(Eep_Pgm_Input_Pol) |
|||
rcall read_eeprom_byte |
|||
cbr Flags2, (1<<PGM_RCP_PWM_POL) |
|||
sbrc Temp1, 1 |
|||
sbr Flags2, (1<<PGM_RCP_PWM_POL) |
|||
.else |
|||
; Check initialized signature |
|||
ldi Temp2, low(Eep_Initialized_L) |
|||
ldi Temp3, high(Eep_Initialized_L) |
|||
rcall read_eeprom_byte |
|||
cpi Temp1, 0x5A |
|||
brne read_eeprom_store_defaults |
|||
|
|||
ldi Temp2, low(Eep_Initialized_H) |
|||
ldi Temp3, high(Eep_Initialized_H) |
|||
rcall read_eeprom_byte |
|||
cpi Temp1, 0xA5 |
|||
brne read_eeprom_store_defaults |
|||
|
|||
; Read eeprom |
|||
ldi Temp2, low(Eep_Pgm_Tail_Gain) |
|||
ldi Temp3, high(Eep_Pgm_Tail_Gain) |
|||
rcall read_eeprom_byte |
|||
sts Pgm_Tail_Gain, Temp1 |
|||
|
|||
ldi Temp2, low(Eep_Pgm_Tail_Idle) |
|||
ldi Temp3, high(Eep_Pgm_Tail_Idle) |
|||
rcall read_eeprom_byte |
|||
sts Pgm_Tail_Idle, Temp1 |
|||
|
|||
ldi Temp2, low(Eep_Pgm_Startup_Pwr) |
|||
ldi Temp3, high(Eep_Pgm_Startup_Pwr) |
|||
rcall read_eeprom_byte |
|||
sts Pgm_Startup_Pwr, Temp1 |
|||
|
|||
ldi Temp2, low(Eep_Pgm_Pwm_Freq) |
|||
ldi Temp3, high(Eep_Pgm_Pwm_Freq) |
|||
rcall read_eeprom_byte |
|||
sbr Flags2, (1<<PGM_PWM_HIGH_FREQ) |
|||
sbrc Temp1, 1 |
|||
cbr Flags2, (1<<PGM_PWM_HIGH_FREQ) |
|||
|
|||
ldi Temp2, low(Eep_Pgm_Input_Pol) |
|||
ldi Temp3, high(Eep_Pgm_Input_Pol) |
|||
rcall read_eeprom_byte |
|||
cbr Flags2, (1<<PGM_RCP_PWM_POL) |
|||
sbrc Temp1, 1 |
|||
sbr Flags2, (1<<PGM_RCP_PWM_POL) |
|||
|
|||
ldi Temp1, 3 |
|||
sts Pgm_Gov_Mode, Temp1 |
|||
.endif |
|||
rjmp read_eeprom_exit |
|||
|
|||
read_eeprom_store_defaults: |
|||
rcall set_default_parameters |
|||
rcall store_eeprom_defaults |
|||
read_eeprom_exit: |
|||
ret |
|||
|
|||
|
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Store default parameter value in EEPROM routine |
|||
; |
|||
; No assumptions |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
store_eeprom_defaults: |
|||
rcall clear_eeprom_signature |
|||
.if TAIL == 0 |
|||
ldi Temp1, 1 |
|||
sts Tx_Pgm_Func_No, Temp1 |
|||
lds Temp1, Pgm_Gov_P_Gain |
|||
sts Tx_Pgm_Paraval_No, Temp1 |
|||
rcall store_in_eeprom |
|||
|
|||
ldi Temp1, 2 |
|||
sts Tx_Pgm_Func_No, Temp1 |
|||
lds Temp1, Pgm_Gov_I_Gain |
|||
sts Tx_Pgm_Paraval_No, Temp1 |
|||
rcall store_in_eeprom |
|||
|
|||
ldi Temp1, 3 |
|||
sts Tx_Pgm_Func_No, Temp1 |
|||
lds Temp1, Pgm_Gov_Mode |
|||
sts Tx_Pgm_Paraval_No, Temp1 |
|||
rcall store_in_eeprom |
|||
|
|||
ldi Temp1, 4 |
|||
sts Tx_Pgm_Func_No, Temp1 |
|||
lds Temp1, Pgm_Startup_Pwr |
|||
sts Tx_Pgm_Paraval_No, Temp1 |
|||
rcall store_in_eeprom |
|||
|
|||
ldi Temp1, 5 |
|||
sts Tx_Pgm_Func_No, Temp1 |
|||
ldi Temp1, 1 |
|||
sbrs Flags2, PGM_PWM_HIGH_FREQ |
|||
ldi Temp1, 2 |
|||
sts Tx_Pgm_Paraval_No, Temp1 |
|||
rcall store_in_eeprom |
|||
|
|||
ldi Temp1, 6 |
|||
sts Tx_Pgm_Func_No, Temp1 |
|||
ldi Temp1, 1 |
|||
sbrc Flags2, PGM_RCP_PWM_POL |
|||
ldi Temp1, 2 |
|||
sts Tx_Pgm_Paraval_No, Temp1 |
|||
rcall store_in_eeprom |
|||
|
|||
rcall write_eeprom_signature |
|||
.else |
|||
ldi Temp1, 1 |
|||
sts Tx_Pgm_Func_No, Temp1 |
|||
lds Temp1, Pgm_Tail_Gain |
|||
sts Tx_Pgm_Paraval_No, Temp1 |
|||
rcall store_in_eeprom |
|||
|
|||
ldi Temp1, 2 |
|||
sts Tx_Pgm_Func_No, Temp1 |
|||
lds Temp1, Pgm_Tail_Idle |
|||
sts Tx_Pgm_Paraval_No, Temp1 |
|||
rcall store_in_eeprom |
|||
|
|||
ldi Temp1, 3 |
|||
sts Tx_Pgm_Func_No, Temp1 |
|||
lds Temp1, Pgm_Startup_Pwr |
|||
sts Tx_Pgm_Paraval_No, Temp1 |
|||
rcall store_in_eeprom |
|||
|
|||
ldi Temp1, 4 |
|||
sts Tx_Pgm_Func_No, Temp1 |
|||
ldi Temp1, 1 |
|||
sbrs Flags2, PGM_PWM_HIGH_FREQ |
|||
ldi Temp1, 2 |
|||
sts Tx_Pgm_Paraval_No, Temp1 |
|||
rcall store_in_eeprom |
|||
|
|||
ldi Temp1, 5 |
|||
sts Tx_Pgm_Func_No, Temp1 |
|||
ldi Temp1, 1 |
|||
sbrc Flags2, PGM_RCP_PWM_POL |
|||
ldi Temp1, 2 |
|||
sts Tx_Pgm_Paraval_No, Temp1 |
|||
rcall store_in_eeprom |
|||
|
|||
rcall write_eeprom_signature |
|||
.endif |
|||
ret |
|||
|
|||
|
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Store new parameter value in EEPROM routine |
|||
; |
|||
; No assumptions |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
store_in_eeprom: |
|||
lds Temp4, Tx_Pgm_Func_No ; Function no |
|||
lds Temp1, Tx_Pgm_Paraval_No ; Parameter value no |
|||
.if TAIL == 0 |
|||
cpi Temp4, 1 |
|||
breq store_main_func_1 |
|||
cpi Temp4, 2 |
|||
breq store_main_func_2 |
|||
cpi Temp4, 3 |
|||
breq store_main_func_3 |
|||
cpi Temp4, 4 |
|||
breq store_main_func_4 |
|||
cpi Temp4, 5 |
|||
breq store_main_func_5 |
|||
cpi Temp4, 6 |
|||
breq store_main_func_6 |
|||
|
|||
store_main_func_1: |
|||
ldi Temp2, low(Eep_Pgm_Gov_P_Gain) |
|||
ldi Temp3, high(Eep_Pgm_Gov_P_Gain) |
|||
rcall write_eeprom_byte |
|||
rjmp store_in_eeprom_exit |
|||
|
|||
store_main_func_2: |
|||
ldi Temp2, low(Eep_Pgm_Gov_I_Gain) |
|||
ldi Temp3, high(Eep_Pgm_Gov_I_Gain) |
|||
rcall write_eeprom_byte |
|||
rjmp store_in_eeprom_exit |
|||
|
|||
store_main_func_3: |
|||
ldi Temp2, low(Eep_Pgm_Gov_Mode) |
|||
ldi Temp3, high(Eep_Pgm_Gov_Mode) |
|||
rcall write_eeprom_byte |
|||
rjmp store_in_eeprom_exit |
|||
|
|||
store_main_func_4: |
|||
ldi Temp2, low(Eep_Pgm_Startup_Pwr) |
|||
ldi Temp3, high(Eep_Pgm_Startup_Pwr) |
|||
rcall write_eeprom_byte |
|||
rjmp store_in_eeprom_exit |
|||
|
|||
store_main_func_5: |
|||
ldi Temp2, low(Eep_Pgm_Pwm_Freq) |
|||
ldi Temp3, high(Eep_Pgm_Pwm_Freq) |
|||
rcall write_eeprom_byte |
|||
rjmp store_in_eeprom_exit |
|||
|
|||
store_main_func_6: |
|||
ldi Temp2, low(Eep_Pgm_Input_Pol) |
|||
ldi Temp3, high(Eep_Pgm_Input_Pol) |
|||
rcall write_eeprom_byte |
|||
rjmp store_in_eeprom_exit |
|||
.else |
|||
cpi Temp4, 1 |
|||
breq store_tail_func_1 |
|||
cpi Temp4, 2 |
|||
breq store_tail_func_2 |
|||
cpi Temp4, 3 |
|||
breq store_tail_func_3 |
|||
cpi Temp4, 4 |
|||
breq store_tail_func_4 |
|||
cpi Temp4, 5 |
|||
breq store_tail_func_5 |
|||
|
|||
store_tail_func_1: |
|||
ldi Temp2, low(Eep_Pgm_Tail_Gain) |
|||
ldi Temp3, high(Eep_Pgm_Tail_Gain) |
|||
rcall write_eeprom_byte |
|||
rjmp store_in_eeprom_exit |
|||
|
|||
store_tail_func_2: |
|||
ldi Temp2, low(Eep_Pgm_Tail_Idle) |
|||
ldi Temp3, high(Eep_Pgm_Tail_Idle) |
|||
rcall write_eeprom_byte |
|||
rjmp store_in_eeprom_exit |
|||
|
|||
store_tail_func_3: |
|||
ldi Temp2, low(Eep_Pgm_Startup_Pwr) |
|||
ldi Temp3, high(Eep_Pgm_Startup_Pwr) |
|||
rcall write_eeprom_byte |
|||
rjmp store_in_eeprom_exit |
|||
|
|||
store_tail_func_4: |
|||
ldi Temp2, low(Eep_Pgm_Pwm_Freq) |
|||
ldi Temp3, high(Eep_Pgm_Pwm_Freq) |
|||
rcall write_eeprom_byte |
|||
rjmp store_in_eeprom_exit |
|||
|
|||
store_tail_func_5: |
|||
ldi Temp2, low(Eep_Pgm_Input_Pol) |
|||
ldi Temp3, high(Eep_Pgm_Input_Pol) |
|||
rcall write_eeprom_byte |
|||
rjmp store_in_eeprom_exit |
|||
.endif |
|||
|
|||
store_in_eeprom_exit: |
|||
ret |
|||
|
|||
|
|||
;**;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Wait 1 second routine |
|||
; |
|||
; No assumptions |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
wait1s: |
|||
ldi Temp1, 5 |
|||
mov Temp5, Temp1 |
|||
wait1s_loop: |
|||
rcall wait200ms |
|||
dec Temp5 |
|||
brne wait1s_loop |
|||
ret |
|||
|
|||
|
|||
;**;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Success beep routine |
|||
; |
|||
; No assumptions |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
success_beep: |
|||
cli ; Disable all interrupts |
|||
rcall beep_f1 |
|||
rcall beep_f2 |
|||
rcall beep_f3 |
|||
rcall beep_f4 |
|||
rcall wait10ms |
|||
rcall beep_f1 |
|||
rcall beep_f2 |
|||
rcall beep_f3 |
|||
rcall beep_f4 |
|||
rcall wait10ms |
|||
rcall beep_f1 |
|||
rcall beep_f2 |
|||
rcall beep_f3 |
|||
rcall beep_f4 |
|||
sei ; Enable all interrupts |
|||
ret |
|||
|
|||
|
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Function and parameter value beep routine |
|||
; |
|||
; No assumptions |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
function_paraval_beep: |
|||
lds Temp5, Tx_Pgm_Func_No ; Function no |
|||
lds Temp6, Tx_Pgm_Paraval_No ; Parameter value no |
|||
cli ; Disable all interrupts |
|||
function_beep: |
|||
rcall beep_f1 |
|||
rcall beep_f1 |
|||
rcall beep_f1 |
|||
rcall wait10ms |
|||
dec Temp5 |
|||
brne function_beep |
|||
paraval_beep: |
|||
rcall beep_f4 |
|||
rcall wait10ms |
|||
dec Temp6 |
|||
brne paraval_beep |
|||
sei ; Enable all interrupts |
|||
ret |
|||
|
|||
|
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Program by TX routine |
|||
; |
|||
; No assumptions |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
program_by_tx: |
|||
; Start programming mode entry sequence by waiting for low RC pulse |
|||
cli ; Disable all interrupts |
|||
rcall beep_f4 |
|||
sei ; Enable all interrupts |
|||
rcall wait100ms |
|||
lds Temp1, New_Rcp ; Load new RC pulse value |
|||
cpi Temp1, RCP_STOP ; Below stop? |
|||
brsh program_by_tx ; No - start over |
|||
|
|||
; Continue programming mode entry sequence by waiting for high RC pulse |
|||
wait_for_rc_pulse_max: |
|||
cli ; Disable all interrupts |
|||
rcall beep_f1 |
|||
rcall wait10ms |
|||
rcall beep_f1 |
|||
sei ; Enable all interrupts |
|||
rcall wait100ms |
|||
lds Temp1, New_Rcp ; Load new RC pulse value |
|||
cpi Temp1, RCP_MAX ; Above max? |
|||
brlo wait_for_rc_pulse_max ; No - start over |
|||
|
|||
; Programming mode entry beeps |
|||
rcall success_beep |
|||
rcall wait1s |
|||
rcall wait1s |
|||
|
|||
; Start at function 1, parameter value 1 |
|||
ldi Temp1, 1 |
|||
sts Tx_Pgm_Func_No, Temp1 |
|||
paraval_no_entry: |
|||
ldi Temp1, 1 |
|||
sts Tx_Pgm_Paraval_No, Temp1 |
|||
beep_no_entry: |
|||
ldi Temp1, 0 |
|||
sts Tx_Pgm_Beep_No, Temp1 |
|||
func_paraval: |
|||
rcall function_paraval_beep |
|||
ldi Temp1, 5 ; Wait is 5x 200ms |
|||
mov Temp5, Temp1 |
|||
func_paraval_wait: |
|||
rcall wait200ms |
|||
lds Temp1, New_Rcp ; Load new rc pulse value |
|||
cpi Temp1, RCP_STOP ; Below stop? |
|||
brsh func_paraval_cont_wait ; No - branch |
|||
|
|||
rcall clear_eeprom_signature ; Clear signature |
|||
rcall store_in_eeprom ; Yes - store new value in EEPROM |
|||
rcall write_eeprom_signature ; Write signature |
|||
rcall success_beep ; Beep success |
|||
Enable_Watchdog Temp1 ; Generate hardware reset from watchdog |
|||
rcall wait1s |
|||
|
|||
func_paraval_cont_wait: |
|||
dec Temp5 |
|||
brne func_paraval_wait |
|||
lds Temp1, Tx_Pgm_Beep_No ; Load and check number of beeps |
|||
inc Temp1 |
|||
sts Tx_Pgm_Beep_No, Temp1 |
|||
cpi Temp1, 3 ; Three beeps done? |
|||
brsh paraval_next ; Yes - Next parameter value |
|||
|
|||
rjmp func_paraval ; No - go back |
|||
|
|||
paraval_next: |
|||
rcall wait1s |
|||
lds Temp1, Tx_Pgm_Paraval_No ; Parameter value no |
|||
inc Temp1 |
|||
sts Tx_Pgm_Paraval_No, Temp1 |
|||
ldi Temp2, 5 ; Default 5 parameter values |
|||
.if TAIL == 0 |
|||
lds Temp1, Tx_Pgm_Func_No |
|||
cpi Temp1, 3 ; Function 3? |
|||
brne paraval_end_a ; No - branch |
|||
ldi Temp2, 3 ; Yes - set max parameter values |
|||
paraval_end_a: |
|||
lds Temp1, Tx_Pgm_Func_No |
|||
cpi Temp1, 5 ; Function below 5? |
|||
brlo paraval_end_b ; Yes - branch |
|||
ldi Temp2, 2 ; No - set max parameter values |
|||
paraval_end_b: |
|||
.else |
|||
lds Temp1, Tx_Pgm_Func_No |
|||
cpi Temp1, 4 ; Function below 4? |
|||
brlo paraval_end_a ; Yes - branch |
|||
ldi Temp2, 2 ; No - set max parameter values |
|||
paraval_end_a: |
|||
.endif |
|||
inc Temp2 |
|||
lds Temp1, Tx_Pgm_Paraval_No |
|||
cp Temp1, Temp2 |
|||
brsh function_next ; Last parameter value? |
|||
rjmp beep_no_entry ; No - go back |
|||
|
|||
function_next: ; Yes - Next function value |
|||
rcall wait1s |
|||
rcall wait1s |
|||
lds Temp1, Tx_Pgm_Func_No ; Function value no |
|||
inc Temp1 |
|||
sts Tx_Pgm_Func_No, Temp1 |
|||
.if TAIL == 0 |
|||
cpi Temp1, 7 ; Main has 6 functions |
|||
.else |
|||
cpi Temp1, 6 ; Tail has 5 functions |
|||
.endif |
|||
brsh program_by_tx_exit ; Last function value? |
|||
rjmp paraval_no_entry ; No - go back |
|||
|
|||
program_by_tx_exit: |
|||
Enable_Watchdog Temp1 ; Generate hardware reset from watchdog |
|||
rcall wait1s |
|||
|
@ -0,0 +1,315 @@ |
|||
;**** **** **** **** **** |
|||
; |
|||
; BLHeli program for controlling brushless motors in helicopters |
|||
; |
|||
; Copyright 2011, 2012 Steffen Skaug |
|||
; This program is distributed under the terms of the GNU General Public License |
|||
; |
|||
; This file is part of BLHeli. |
|||
; |
|||
; BLHeli is free software: you can redistribute it and/or modify |
|||
; it under the terms of the GNU General Public License as published by |
|||
; the Free Software Foundation, either version 3 of the License, or |
|||
; (at your option) any later version. |
|||
; |
|||
; BLHeli is distributed in the hope that it will be useful, |
|||
; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
; GNU General Public License for more details. |
|||
; |
|||
; You should have received a copy of the GNU General Public License |
|||
; along with BLHeli. If not, see <http://www.gnu.org/licenses/>. |
|||
; |
|||
;**** **** **** **** **** |
|||
|
|||
|
|||
|
|||
;********************* |
|||
; Device Atmega8 |
|||
;********************* |
|||
.include "m8def.inc" |
|||
|
|||
;**** **** **** **** **** |
|||
; Fuses must be set to internal calibrated oscillator = 8Mhz |
|||
;**** **** **** **** **** |
|||
|
|||
;**** **** **** **** **** |
|||
; Constant definitions |
|||
;**** **** **** **** **** |
|||
.equ ADC_LIMIT_L = 211 ; Power supply measurement ADC value for which main motor power is limited (low byte) |
|||
.equ ADC_LIMIT_H = 0 ; Power supply measurement ADC value for which main motor power is limited (2 MSBs) |
|||
|
|||
;********************* |
|||
; PORT D definitions * |
|||
;********************* |
|||
;.equ = 7 ;i |
|||
.equ Comp_Com = 6 ;i Comparator common input (AIN0) |
|||
.equ ApFET = 5 ;o |
|||
.equ CpFET = 4 ;o |
|||
.equ BpFET = 3 ;o |
|||
.equ Rcp_In = 2 ;i RC pulse input |
|||
;.equ = 1 ;i |
|||
;.equ = 0 ;i |
|||
|
|||
.equ INIT_PD = 0 |
|||
.equ DIR_PD = (1<<ApFET)+(1<<BpFET)+(1<<CpFET) |
|||
|
|||
.MACRO Read_Rcp_Int |
|||
in @0, PIND |
|||
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative? |
|||
com @0 ; Yes - invert |
|||
.ENDMACRO |
|||
.MACRO Read_Rcp_Icp_Int |
|||
in @0, PINB |
|||
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative? |
|||
com @0 ; Yes - invert |
|||
.ENDMACRO |
|||
|
|||
.MACRO Rcp_Int_Enable |
|||
ldi @0, (1<<INT0) ; Enable ext0int |
|||
out GICR, @0 |
|||
.ENDMACRO |
|||
.MACRO Rcp_Int_Disable |
|||
ldi @0, 0 ; Disable ext0int |
|||
out GICR, @0 |
|||
.ENDMACRO |
|||
.MACRO Rcp_Int_First |
|||
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive? |
|||
ldi @0, (1<<ISC01)+(1<<ISC00) ; Yes - set next int0 to rising |
|||
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative? |
|||
ldi @0, (1<<ISC01) ; Yes - set next int0 to falling |
|||
out MCUCR, @0 |
|||
.ENDMACRO |
|||
.MACRO Rcp_Int_Second |
|||
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive? |
|||
ldi @0, (1<<ISC01) ; Yes - set next int0 to falling |
|||
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative? |
|||
ldi @0, (1<<ISC01)+(1<<ISC00) ; Yes - set next int0 to rising |
|||
out MCUCR, @0 |
|||
.ENDMACRO |
|||
.MACRO Clear_Int_Flag |
|||
clr @0 |
|||
sbr @0, (1<<INTF0) ; Clear ext0int flag |
|||
out GIFR, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO ApFET_on |
|||
sbi PORTD,5 |
|||
.ENDMACRO |
|||
.MACRO ApFET_off |
|||
cbi PORTD,5 |
|||
.ENDMACRO |
|||
.MACRO CpFET_on |
|||
sbi PORTD,4 |
|||
.ENDMACRO |
|||
.MACRO CpFET_off |
|||
cbi PORTD,4 |
|||
.ENDMACRO |
|||
.MACRO BpFET_on |
|||
sbi PORTD,3 |
|||
.ENDMACRO |
|||
.MACRO BpFET_off |
|||
cbi PORTD,3 |
|||
.ENDMACRO |
|||
.MACRO All_pFETs_Off |
|||
in @0, PORTD |
|||
cbr @0, (1<<ApFET)+(1<<BpFET)+(1<<CpFET) |
|||
out PORTD, @0 |
|||
.ENDMACRO |
|||
.MACRO All_pFETs_On |
|||
in @0, PORTD |
|||
sbr @0, (1<<ApFET)+(1<<BpFET)+(1<<CpFET) |
|||
out PORTD, @0 |
|||
.ENDMACRO |
|||
|
|||
|
|||
;********************* |
|||
; PORT C definitions * |
|||
;********************* |
|||
;.equ = 7 ; ADC7 |
|||
;.equ = 6 ; ADC6 |
|||
.equ Mux_A = 5 ; Phase A input |
|||
.equ Mux_C = 4 ; Phase C input |
|||
;.equ = 3 ; ADC3 |
|||
.equ Mux_B = 2 ; Phase B input |
|||
;.equ = 1 ; ADC1 |
|||
;.equ = 0 ; ADC0 |
|||
|
|||
.equ INIT_PC = 0 |
|||
.equ DIR_PC = 0 |
|||
|
|||
.MACRO Comp_Init |
|||
in @0, SFIOR ; Set Analog Comparator Multiplexer Enable |
|||
sbr @0, (1<<ACME) |
|||
out SFIOR, @0 |
|||
cbi ADCSRA, ADEN ; Disable ADC |
|||
.ENDMACRO |
|||
.MACRO Set_Comp_Phase_A |
|||
ldi @0, Mux_A ; Set comparator multiplexer to phase A |
|||
out ADMUX, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_Comp_Phase_B |
|||
ldi @0, Mux_B ; Set comparator multiplexer to phase B |
|||
out ADMUX, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_Comp_Phase_C |
|||
ldi @0, Mux_C ; Set comparator multiplexer to phase C |
|||
out ADMUX, @0 |
|||
.ENDMACRO |
|||
.MACRO Read_Comp_Out |
|||
in @0, ACSR ; Read comparator output |
|||
.ENDMACRO |
|||
|
|||
|
|||
;********************* |
|||
; PORT B definitions * |
|||
;********************* |
|||
;.equ = 7 |
|||
;.equ = 6 |
|||
;.equ = 5 (sck stk200 interface) |
|||
.equ DebugPin = 4 ;(miso stk200 interface) |
|||
;.equ = 3 (mosi stk200 interface) |
|||
.equ AnFET = 2 |
|||
.equ CnFET = 1 |
|||
.equ BnFET = 0 |
|||
|
|||
.equ INIT_PB = 0 |
|||
.equ DIR_PB = (1<<DebugPin)+(1<<AnFET)+(1<<BnFET)+(1<<CnFET) |
|||
|
|||
.MACRO AnFET_on |
|||
sbi PORTB,2 |
|||
.ENDMACRO |
|||
.MACRO AnFET_off |
|||
cbi PORTB,2 |
|||
.ENDMACRO |
|||
.MACRO CnFET_on |
|||
sbi PORTB,1 |
|||
.ENDMACRO |
|||
.MACRO CnFET_off |
|||
cbi PORTB,1 |
|||
.ENDMACRO |
|||
.MACRO BnFET_on |
|||
sbi PORTB,0 |
|||
.ENDMACRO |
|||
.MACRO BnFET_off |
|||
cbi PORTB,0 |
|||
.ENDMACRO |
|||
.MACRO All_nFETs_Off |
|||
in @0, PORTB |
|||
cbr @0, (1<<AnFET)+(1<<BnFET)+(1<<CnFET) |
|||
out PORTB, @0 |
|||
.ENDMACRO |
|||
|
|||
;********************** |
|||
; MCU specific macros * |
|||
;********************** |
|||
.MACRO Disable_Watchdog |
|||
cli ; Disable interrupts |
|||
wdr ; Reset watchdog timer |
|||
in @0, WDTCR ; Write logical one to WDCE and WDE |
|||
ori @0, (1<<WDCE)|(1<<WDE) |
|||
out WDTCR, @0 |
|||
ldi @0, (0<<WDE) ; Turn off WDT |
|||
out WDTCR, @0 |
|||
.ENDMACRO |
|||
.MACRO Enable_Watchdog |
|||
ldi @0, (1<<WDE) ; Turn on WDT |
|||
sts WDTCR, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Initialize_MCU |
|||
.ENDMACRO |
|||
|
|||
.MACRO Interrupt_Table_Definition |
|||
rjmp reset |
|||
rjmp ext_int0 ; ext_int0 |
|||
nop ; ext_int1 |
|||
nop ; t2oc_int |
|||
rjmp t2ovfl_int; t2ovfl_int |
|||
nop ; icp1_int |
|||
rjmp t1oca_int ; t1oca_int |
|||
nop ; t1ocb_int |
|||
rjmp t1ovfl_int; t1ovfl_int |
|||
rjmp t0ovfl_int; t0ovfl_int |
|||
nop ; spi_int |
|||
nop ; urxc |
|||
nop ; udre |
|||
nop ; utxc |
|||
; nop ; adc_int |
|||
; nop ; eep_int |
|||
; nop ; aci_int |
|||
; nop ; wire2_int |
|||
; nop ; spmc_int |
|||
.ENDMACRO |
|||
|
|||
.MACRO Initialize_Interrupts |
|||
ldi Temp1, (1<<TOIE0)+(1<<TOIE1)+(1<<OCIE1A)+(1<<TOIE2) |
|||
out TIFR, Temp1 ; Clear interrupts |
|||
out TIMSK, Temp1 ; Enable interrupts |
|||
.ENDMACRO |
|||
|
|||
.MACRO Initialize_Adc |
|||
in Temp1, ADCSRA ; Set ADCSRA register (1MHz clock) |
|||
sbr Temp1, (1<<ADPS1) |
|||
sbr Temp1, (1<<ADPS0) |
|||
out ADCSRA, Temp1 |
|||
.ENDMACRO |
|||
.MACRO Start_Adc |
|||
ldi Temp1, (1<<REFS1)+(1<<REFS0) |
|||
out ADMUX, Temp1 ; Set ADMUX register (2.56V reference, left adj result, input 0) |
|||
in @0, ADCSRA |
|||
sbr @0, (1<<ADEN) ; Enable ADC |
|||
sbr @0, (1<<ADSC) ; Start ADC conversion |
|||
out ADCSRA, @0 |
|||
.ENDMACRO |
|||
.MACRO Get_Adc_Status |
|||
in @0, ADCSRA |
|||
.ENDMACRO |
|||
.MACRO Read_Adc_Result |
|||
in @0, ADCL |
|||
in @1, ADCH |
|||
.ENDMACRO |
|||
.MACRO Stop_Adc |
|||
in @0, ADCSRA |
|||
cbr @0, (1<<ADEN) ; Disable ADC |
|||
out ADCSRA, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Set_Timer0_CS0 |
|||
out TCCR0, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_Timer1_CS1 |
|||
out TCCR1B, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_Timer2_CS2 |
|||
out TCCR2, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Read_TCNT1L |
|||
in @0, TCNT1L |
|||
.ENDMACRO |
|||
.MACRO Read_TCNT1H |
|||
in @0, TCNT1H |
|||
.ENDMACRO |
|||
.MACRO Set_OCR1AL |
|||
out OCR1AL, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_OCR1AH |
|||
out OCR1AH, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Set_TCNT2 |
|||
out TCNT2, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Check_Eeprom_Ready |
|||
sbic EECR, EEWE |
|||
.ENDMACRO |
|||
.MACRO Set_Eeprom_Address |
|||
out EEARL, @0 |
|||
out EEARH, @1 |
|||
.ENDMACRO |
|||
.MACRO Start_Eeprom_Write |
|||
sbi EECR, EEMWE |
|||
sbi EECR, EEWE |
|||
.ENDMACRO |
@ -0,0 +1,350 @@ |
|||
;**** **** **** **** **** |
|||
; |
|||
; BLHeli program for controlling brushless motors in helicopters |
|||
; |
|||
; Copyright 2011, 2012 Steffen Skaug |
|||
; This program is distributed under the terms of the GNU General Public License |
|||
; |
|||
; This file is part of BLHeli. |
|||
; |
|||
; BLHeli is free software: you can redistribute it and/or modify |
|||
; it under the terms of the GNU General Public License as published by |
|||
; the Free Software Foundation, either version 3 of the License, or |
|||
; (at your option) any later version. |
|||
; |
|||
; BLHeli is distributed in the hope that it will be useful, |
|||
; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
; GNU General Public License for more details. |
|||
; |
|||
; You should have received a copy of the GNU General Public License |
|||
; along with BLHeli. If not, see <http://www.gnu.org/licenses/>. |
|||
; |
|||
;**** **** **** **** **** |
|||
|
|||
|
|||
|
|||
;********************* |
|||
; Device Atmega48V |
|||
;********************* |
|||
.include "m48def.inc" |
|||
|
|||
;**** **** **** **** **** |
|||
; Fuses must be set to internal calibrated oscillator = 8Mhz |
|||
;**** **** **** **** **** |
|||
|
|||
;**** **** **** **** **** |
|||
; Constant definitions |
|||
;**** **** **** **** **** |
|||
.equ ADC_LIMIT_L = 254 ; Power supply measurement ADC value for which main motor power is limited (low byte) |
|||
.equ ADC_LIMIT_H = 0 ; Power supply measurement ADC value for which main motor power is limited (2 MSBs) |
|||
|
|||
;********************* |
|||
; PORT D definitions * |
|||
;********************* |
|||
.equ Mux_A = 7 ;i Phase A input |
|||
.equ Comp_Com = 6 ;i Comparator common input (AIN0) |
|||
;.equ = 5 |
|||
;.equ = 4 |
|||
.equ ApFET = 3 ;o |
|||
.equ Rcp_In = 2 ;i RC pulse input |
|||
.equ BpFET = 1 ;o |
|||
.equ CpFET = 0 ;o |
|||
|
|||
.equ INIT_PD = 0 |
|||
.equ DIR_PD = (1<<ApFET)+(1<<BpFET)+(1<<CpFET) |
|||
|
|||
.MACRO Read_Rcp_Int |
|||
in @0, PIND |
|||
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative? |
|||
com @0 ; Yes - invert |
|||
.ENDMACRO |
|||
.MACRO Read_Rcp_Icp_Int |
|||
in @0, PINB |
|||
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative? |
|||
com @0 ; Yes - invert |
|||
.ENDMACRO |
|||
|
|||
.MACRO Rcp_Int_Enable |
|||
ldi @0, (1<<INT0) ; Enable ext0int |
|||
out EIMSK, @0 |
|||
.ENDMACRO |
|||
.MACRO Rcp_Int_Disable |
|||
ldi @0, 0 ; Disable ext0int |
|||
out EIMSK, @0 |
|||
.ENDMACRO |
|||
.MACRO Rcp_Int_First |
|||
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive? |
|||
ldi @0, (1<<ISC01)+(1<<ISC00) ; Yes - set next int0 to rising |
|||
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative? |
|||
ldi @0, (1<<ISC01) ; Yes - set next int0 to falling |
|||
sts EICRA, @0 |
|||
.ENDMACRO |
|||
.MACRO Rcp_Int_Second |
|||
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive? |
|||
ldi @0, (1<<ISC01) ; Yes - set next int0 to falling |
|||
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative? |
|||
ldi @0, (1<<ISC01)+(1<<ISC00) ; Yes - set next int0 to rising |
|||
sts EICRA, @0 |
|||
.ENDMACRO |
|||
.MACRO Clear_Int_Flag |
|||
clr @0 |
|||
sbr @0, (1<<INTF0) ; Clear ext0int flag |
|||
out EIFR, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO ApFET_on |
|||
sbi PORTD,3 |
|||
.ENDMACRO |
|||
.MACRO ApFET_off |
|||
cbi PORTD,3 |
|||
.ENDMACRO |
|||
.MACRO BpFET_on |
|||
sbi PORTD,1 |
|||
.ENDMACRO |
|||
.MACRO BpFET_off |
|||
cbi PORTD,1 |
|||
.ENDMACRO |
|||
.MACRO CpFET_on |
|||
sbi PORTD,0 |
|||
.ENDMACRO |
|||
.MACRO CpFET_off |
|||
cbi PORTD,0 |
|||
.ENDMACRO |
|||
.MACRO All_pFETs_Off |
|||
in @0, PORTD |
|||
cbr @0, (1<<ApFET)+(1<<BpFET)+(1<<CpFET) |
|||
out PORTD, @0 |
|||
.ENDMACRO |
|||
.MACRO All_pFETs_On |
|||
in @0, PORTD |
|||
sbr @0, (1<<ApFET)+(1<<BpFET)+(1<<CpFET) |
|||
out PORTD, @0 |
|||
.ENDMACRO |
|||
|
|||
|
|||
;********************* |
|||
; PORT C definitions * |
|||
;********************* |
|||
;.equ = 7 ; ADC7 |
|||
;.equ = 6 ; ADC6 |
|||
;.equ = 5 ; ADC5 |
|||
;.equ = 4 ; ADC4 |
|||
.equ Mux_B = 3 ; Phase B input |
|||
.equ Mux_C = 2 ; Phase C input |
|||
;.equ = 1 ; ADC1 |
|||
;.equ = 0 ; ADC0 |
|||
|
|||
.equ INIT_PC = 0 |
|||
.equ DIR_PC = 0 |
|||
|
|||
.MACRO Comp_Init |
|||
lds @0, ADCSRA ; Disable ADC |
|||
cbr @0, (1<<ADEN) |
|||
sts ADCSRA, @0 |
|||
lds @0, ADCSRB ; Set Analog Comparator Multiplexer Enable |
|||
sbr @0, (1<<ACME) |
|||
sts ADCSRB, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_Comp_Phase_A |
|||
lds @0, ADCSRB ; Set Analog Comparator Multiplexer Disable |
|||
cbr @0, (1<<ACME) |
|||
sts ADCSRB, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_Comp_Phase_B |
|||
lds @0, ADCSRB ; Set Analog Comparator Multiplexer Enable |
|||
sbr @0, (1<<ACME) |
|||
sts ADCSRB, @0 |
|||
ldi @0, Mux_B ; Set comparator multiplexer to phase B |
|||
sts ADMUX, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_Comp_Phase_C |
|||
lds @0, ADCSRB ; Set Analog Comparator Multiplexer Enable |
|||
sbr @0, (1<<ACME) |
|||
sts ADCSRB, @0 |
|||
ldi @0, Mux_C ; Set comparator multiplexer to phase C |
|||
sts ADMUX, @0 |
|||
.ENDMACRO |
|||
.MACRO Read_Comp_Out |
|||
in @0, ACSR ; Read comparator output |
|||
.ENDMACRO |
|||
|
|||
|
|||
;********************* |
|||
; PORT B definitions * |
|||
;********************* |
|||
;.equ = 7 |
|||
;.equ = 6 |
|||
;.equ = 5 (sck stk200 interface) |
|||
.equ DebugPin = 4 ;(miso stk200 interface) |
|||
;.equ = 3 (mosi stk200 interface) |
|||
.equ CnFET = 2 ;o |
|||
.equ BnFET = 1 ;o |
|||
.equ AnFET = 0 ;o |
|||
|
|||
.equ INIT_PB = 0 |
|||
.equ DIR_PB = (1<<AnFET)+(1<<BnFET)+(1<<CnFET)+(1<<DebugPin) |
|||
|
|||
.MACRO AnFET_on |
|||
sbi PORTB,0 |
|||
.ENDMACRO |
|||
.MACRO AnFET_off |
|||
cbi PORTB,0 |
|||
.ENDMACRO |
|||
.MACRO BnFET_on |
|||
sbi PORTB,1 |
|||
.ENDMACRO |
|||
.MACRO BnFET_off |
|||
cbi PORTB,1 |
|||
.ENDMACRO |
|||
.MACRO CnFET_on |
|||
sbi PORTB,2 |
|||
.ENDMACRO |
|||
.MACRO CnFET_off |
|||
cbi PORTB,2 |
|||
.ENDMACRO |
|||
.MACRO All_nFETs_Off |
|||
in @0, PORTB |
|||
cbr @0, (1<<AnFET)+(1<<BnFET)+(1<<CnFET) |
|||
out PORTB, @0 |
|||
.ENDMACRO |
|||
|
|||
|
|||
;********************** |
|||
; MCU specific macros * |
|||
;********************** |
|||
.MACRO Disable_Watchdog |
|||
cli ; Disable interrupts |
|||
wdr ; Reset watchdog timer |
|||
in @0, MCUSR ; Clear WDRF in MCUSR |
|||
andi @0, (0xff & (0<<WDRF)) |
|||
out MCUSR, @0 |
|||
lds @0, WDTCSR ; Write logical one to WDCE and WDE |
|||
ori @0, (1<<WDCE) | (1<<WDE) |
|||
sts WDTCSR, @0 |
|||
ldi @0, (0<<WDE) ; Turn off WDT |
|||
sts WDTCSR, @0 |
|||
.ENDMACRO |
|||
.MACRO Enable_Watchdog |
|||
ldi @0, (1<<WDE) ; Turn on WDT |
|||
sts WDTCSR, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Initialize_MCU |
|||
ldi @0, (1<<CLKPCE) ; Set clock prescaler change enable |
|||
sts CLKPR, @0 |
|||
ldi @0, 0 ; Change clock prescaler (to divide by 1) |
|||
sts CLKPR, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Interrupt_Table_Definition |
|||
rjmp reset |
|||
rjmp ext_int0 ; ext_int0 |
|||
nop ; ext_int1 |
|||
nop ; pci0_int |
|||
nop ; pci1_int |
|||
nop ; pci2_int |
|||
nop ; wdt_int |
|||
nop ; t2oca_int |
|||
nop ; t2ocb_int |
|||
rjmp t2ovfl_int; t2ovfl_int |
|||
rjmp icp1_int ; icp1_int |
|||
rjmp t1oca_int ; t1oca_int |
|||
nop ; t1ocb_int |
|||
rjmp t1ovfl_int; t1ovfl_int |
|||
nop ; t0oca_int |
|||
nop ; t0ocb_int |
|||
rjmp t0ovfl_int; t0ovfl_int |
|||
nop ; spi_int |
|||
nop ; urxc |
|||
nop ; udre |
|||
nop ; utxc |
|||
; nop ; adc_int |
|||
; nop ; eep_int |
|||
; nop ; aci_int |
|||
; nop ; wire2_int |
|||
; nop ; spmc_int |
|||
.ENDMACRO |
|||
|
|||
.MACRO Initialize_Interrupts |
|||
ldi Temp1, (1<<TOIE0) |
|||
out TIFR0, Temp1 ; Clear interrupts |
|||
sts TIMSK0, Temp1 ; Enable interrupts |
|||
ldi Temp1, (1<<TOIE1)+(1<<OCIE1A) |
|||
out TIFR1, Temp1 ; Clear interrupts |
|||
sts TIMSK1, Temp1 ; Enable interrupts |
|||
ldi Temp1, (1<<TOIE2) |
|||
out TIFR2, Temp1 ; Clear interrupts |
|||
sts TIMSK2, Temp1 ; Enable interrupts |
|||
.ENDMACRO |
|||
|
|||
.MACRO Initialize_Adc |
|||
lds Temp1, ADCSRA ; Set ADCSRA register (1MHz clock) |
|||
sbr Temp1, (1<<ADPS1) |
|||
sbr Temp1, (1<<ADPS0) |
|||
sts ADCSRA, Temp1 |
|||
.ENDMACRO |
|||
.MACRO Start_Adc |
|||
ldi Temp1, (1<<REFS1)+(1<<REFS0)+(1<<MUX2)+(1<<MUX1)+(1<<MUX0) |
|||
sts ADMUX, Temp1 ; Set ADMUX register (1.1V reference, left adj result, input 7) |
|||
lds @0, ADCSRA |
|||
sbr @0, (1<<ADEN) ; Enable ADC |
|||
sbr @0, (1<<ADSC) ; Start ADC conversion |
|||
sts ADCSRA, @0 |
|||
.ENDMACRO |
|||
.MACRO Get_Adc_Status |
|||
lds @0, ADCSRA |
|||
.ENDMACRO |
|||
.MACRO Read_Adc_Result |
|||
lds @0, ADCL |
|||
lds @1, ADCH |
|||
.ENDMACRO |
|||
.MACRO Stop_Adc |
|||
lds @0, ADCSRA |
|||
cbr @0, (1<<ADEN) ; Disable ADC |
|||
sts ADCSRA, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Set_Timer0_CS0 |
|||
out TCCR0B, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_Timer1_CS1 |
|||
sts TCCR1B, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_Timer2_CS2 |
|||
sts TCCR2B, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Read_TCNT1L |
|||
lds @0, TCNT1L |
|||
.ENDMACRO |
|||
.MACRO Read_TCNT1H |
|||
lds @0, TCNT1H |
|||
.ENDMACRO |
|||
.MACRO Read_ICR1L |
|||
lds @0, ICR1L |
|||
.ENDMACRO |
|||
.MACRO Read_ICR1H |
|||
lds @0, ICR1H |
|||
.ENDMACRO |
|||
.MACRO Set_OCR1AL |
|||
sts OCR1AL, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_OCR1AH |
|||
sts OCR1AH, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Set_TCNT2 |
|||
sts TCNT2, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Check_Eeprom_Ready |
|||
sbic EECR, EEPE |
|||
.ENDMACRO |
|||
.MACRO Set_Eeprom_Address |
|||
out EEARL, @0 |
|||
.ENDMACRO |
|||
.MACRO Start_Eeprom_Write |
|||
sbi EECR, EEMPE |
|||
sbi EECR, EEPE |
|||
.ENDMACRO |
@ -0,0 +1,355 @@ |
|||
;**** **** **** **** **** |
|||
; |
|||
; BLHeli program for controlling brushless motors in helicopters |
|||
; |
|||
; Copyright 2011, 2012 Steffen Skaug |
|||
; This program is distributed under the terms of the GNU General Public License |
|||
; |
|||
; This file is part of BLHeli. |
|||
; |
|||
; BLHeli is free software: you can redistribute it and/or modify |
|||
; it under the terms of the GNU General Public License as published by |
|||
; the Free Software Foundation, either version 3 of the License, or |
|||
; (at your option) any later version. |
|||
; |
|||
; BLHeli is distributed in the hope that it will be useful, |
|||
; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
; GNU General Public License for more details. |
|||
; |
|||
; You should have received a copy of the GNU General Public License |
|||
; along with BLHeli. If not, see <http://www.gnu.org/licenses/>. |
|||
; |
|||
;**** **** **** **** **** |
|||
|
|||
|
|||
|
|||
;********************* |
|||
; Device Atmega8 |
|||
;********************* |
|||
.include "m8def.inc" |
|||
|
|||
;**** **** **** **** **** |
|||
; Fuses must be set to internal calibrated oscillator = 8Mhz |
|||
;**** **** **** **** **** |
|||
|
|||
;**** **** **** **** **** |
|||
; Constant definitions |
|||
;**** **** **** **** **** |
|||
.equ ADC_LIMIT_L = 45 ; Power supply measurement ADC value for which main motor power is limited (low byte) |
|||
.equ ADC_LIMIT_H = 0 ; Power supply measurement ADC value for which main motor power is limited (2 MSBs) |
|||
|
|||
;********************* |
|||
; PORT D definitions * |
|||
;********************* |
|||
.equ BpFET = 7 ;o |
|||
.equ Comp_Com = 6 ;i Comparator common input (AIN0) |
|||
.equ CpFET = 5 ;o |
|||
.equ ApFET = 4 ;o |
|||
.equ AnFET = 3 ;o |
|||
.equ Rcp_In = 2 ;i RC pulse input |
|||
.equ BnFET = 1 ;o |
|||
.equ CnFET = 0 ;o |
|||
|
|||
.equ INIT_PD = 0 |
|||
.equ DIR_PD = (1<<AnFET)+(1<<BnFET)+(1<<CnFET)+(1<<ApFET)+(1<<BpFET)+(1<<CpFET) |
|||
|
|||
.MACRO Read_Rcp_Int |
|||
in @0, PIND |
|||
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative? |
|||
com @0 ; Yes - invert |
|||
.ENDMACRO |
|||
.MACRO Read_Rcp_Icp_Int |
|||
in @0, PINB |
|||
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative? |
|||
com @0 ; Yes - invert |
|||
.ENDMACRO |
|||
|
|||
.MACRO Rcp_Int_Enable |
|||
ldi @0, (1<<INT0) ; Enable ext0int |
|||
out GICR, @0 |
|||
.ENDMACRO |
|||
.MACRO Rcp_Int_Disable |
|||
ldi @0, 0 ; Disable ext0int |
|||
out GICR, @0 |
|||
.ENDMACRO |
|||
.MACRO Rcp_Int_First |
|||
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive? |
|||
ldi @0, (1<<ISC01)+(1<<ISC00) ; Yes - set next int0 to rising |
|||
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative? |
|||
ldi @0, (1<<ISC01) ; Yes - set next int0 to falling |
|||
out MCUCR, @0 |
|||
.ENDMACRO |
|||
.MACRO Rcp_Int_Second |
|||
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive? |
|||
ldi @0, (1<<ISC01) ; Yes - set next int0 to falling |
|||
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative? |
|||
ldi @0, (1<<ISC01)+(1<<ISC00) ; Yes - set next int0 to rising |
|||
out MCUCR, @0 |
|||
.ENDMACRO |
|||
.MACRO Clear_Int_Flag |
|||
clr @0 |
|||
sbr @0, (1<<INTF0) ; Clear ext0int flag |
|||
out GIFR, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Rcp_Icp_Int_Enable |
|||
in @0, TIMSK |
|||
sbr @0, (1<<TICIE1) ; Enable icp1int |
|||
out TIMSK, @0 |
|||
.ENDMACRO |
|||
.MACRO Rcp_Icp_Int_Disable |
|||
in @0, TIMSK |
|||
cbr @0, (1<<TICIE1) ; Disable icp1int |
|||
out TIMSK, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Rcp_Icp_Int_First |
|||
in @0, TCCR1B |
|||
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive? |
|||
sbr @0, (1<<ICES1) ; Yes - set icp1int to trig on rising edge |
|||
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative? |
|||
cbr @0, (1<<ICES1) ; Yes - set icp1int to trig on falling edge |
|||
out TCCR1B, @0 |
|||
.ENDMACRO |
|||
.MACRO Rcp_Icp_Int_Second |
|||
in @0, TCCR1B |
|||
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive? |
|||
cbr @0, (1<<ICES1) ; Yes - set icp1int to trig on falling edge |
|||
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative? |
|||
sbr @0, (1<<ICES1) ; Yes - set icp1int to trig on rising edge |
|||
out TCCR1B, @0 |
|||
.ENDMACRO |
|||
.MACRO Clear_Icp_Int_Flag |
|||
clr @0 |
|||
sbr @0, (1<<ICF1) ; Clear icp1int flag |
|||
out TIFR, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO AnFET_on |
|||
sbi PORTD,3 |
|||
.ENDMACRO |
|||
.MACRO AnFET_off |
|||
cbi PORTD,3 |
|||
.ENDMACRO |
|||
.MACRO BnFET_on |
|||
sbi PORTD,1 |
|||
.ENDMACRO |
|||
.MACRO BnFET_off |
|||
cbi PORTD,1 |
|||
.ENDMACRO |
|||
.MACRO CnFET_on |
|||
sbi PORTD,0 |
|||
.ENDMACRO |
|||
.MACRO CnFET_off |
|||
cbi PORTD,0 |
|||
.ENDMACRO |
|||
.MACRO All_nFETs_Off |
|||
in @0, PORTD |
|||
cbr @0, (1<<AnFET)+(1<<BnFET)+(1<<CnFET) |
|||
out PORTD, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO ApFET_on |
|||
sbi PORTD,4 |
|||
.ENDMACRO |
|||
.MACRO ApFET_off |
|||
cbi PORTD,4 |
|||
.ENDMACRO |
|||
.MACRO BpFET_on |
|||
sbi PORTD,7 |
|||
.ENDMACRO |
|||
.MACRO BpFET_off |
|||
cbi PORTD,7 |
|||
.ENDMACRO |
|||
.MACRO CpFET_on |
|||
sbi PORTD,5 |
|||
.ENDMACRO |
|||
.MACRO CpFET_off |
|||
cbi PORTD,5 |
|||
.ENDMACRO |
|||
.MACRO All_pFETs_Off |
|||
in @0, PORTD |
|||
cbr @0, (1<<ApFET)+(1<<BpFET)+(1<<CpFET) |
|||
out PORTD, @0 |
|||
.ENDMACRO |
|||
.MACRO All_pFETs_On |
|||
in @0, PORTD |
|||
sbr @0, (1<<ApFET)+(1<<BpFET)+(1<<CpFET) |
|||
out PORTD, @0 |
|||
.ENDMACRO |
|||
|
|||
|
|||
;********************* |
|||
; PORT C definitions * |
|||
;********************* |
|||
;.equ = 7 ; ADC7 |
|||
;.equ = 6 ; ADC6 |
|||
;.equ = 5 ; ADC5 |
|||
.equ Mux_A = 4 ; Phase A input |
|||
.equ Mux_B = 3 ; Phase B input |
|||
.equ Mux_C = 2 ; Phase C input |
|||
;.equ = 1 ; ADC1 |
|||
;.equ = 0 ; ADC0 |
|||
|
|||
.equ INIT_PC = 0 |
|||
.equ DIR_PC = 0 |
|||
|
|||
.MACRO Comp_Init |
|||
in @0, SFIOR ; Set Analog Comparator Multiplexer Enable |
|||
sbr @0, (1<<ACME) |
|||
out SFIOR, @0 |
|||
cbi ADCSRA, ADEN ; Disable ADC |
|||
.ENDMACRO |
|||
.MACRO Set_Comp_Phase_A |
|||
ldi @0, Mux_A ; Set comparator multiplexer to phase A |
|||
out ADMUX, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_Comp_Phase_B |
|||
ldi @0, Mux_B ; Set comparator multiplexer to phase B |
|||
out ADMUX, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_Comp_Phase_C |
|||
ldi @0, Mux_C ; Set comparator multiplexer to phase C |
|||
out ADMUX, @0 |
|||
.ENDMACRO |
|||
.MACRO Read_Comp_Out |
|||
in @0, ACSR ; Read comparator output |
|||
.ENDMACRO |
|||
|
|||
|
|||
;********************* |
|||
; PORT B definitions * |
|||
;********************* |
|||
;.equ = 7 |
|||
;.equ = 6 |
|||
;.equ = 5 (sck stk200 interface) |
|||
.equ DebugPin = 4 ;(miso stk200 interface) |
|||
;.equ = 3 (mosi stk200 interface) |
|||
;.equ = 2 |
|||
;.equ = 1 |
|||
.equ Rcp_Icp_In = 0 |
|||
|
|||
.equ INIT_PB = 0 |
|||
.equ DIR_PB = (1<<DebugPin) |
|||
|
|||
|
|||
;********************** |
|||
; MCU specific macros * |
|||
;********************** |
|||
.MACRO Disable_Watchdog |
|||
cli ; Disable interrupts |
|||
wdr ; Reset watchdog timer |
|||
in @0, WDTCR ; Write logical one to WDCE and WDE |
|||
ori @0, (1<<WDCE)|(1<<WDE) |
|||
out WDTCR, @0 |
|||
ldi @0, (0<<WDE) ; Turn off WDT |
|||
out WDTCR, @0 |
|||
.ENDMACRO |
|||
.MACRO Enable_Watchdog |
|||
ldi @0, (1<<WDE) ; Turn on WDT |
|||
sts WDTCR, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Initialize_MCU |
|||
.ENDMACRO |
|||
|
|||
.MACRO Interrupt_Table_Definition |
|||
rjmp reset |
|||
rjmp ext_int0 ; ext_int0 |
|||
nop ; ext_int1 |
|||
nop ; t2oc_int |
|||
rjmp t2ovfl_int; t2ovfl_int |
|||
rjmp icp1_int ; icp1_int |
|||
rjmp t1oca_int ; t1oca_int |
|||
nop ; t1ocb_int |
|||
rjmp t1ovfl_int; t1ovfl_int |
|||
rjmp t0ovfl_int; t0ovfl_int |
|||
nop ; spi_int |
|||
nop ; urxc |
|||
nop ; udre |
|||
nop ; utxc |
|||
; nop ; adc_int |
|||
; nop ; eep_int |
|||
; nop ; aci_int |
|||
; nop ; wire2_int |
|||
; nop ; spmc_int |
|||
.ENDMACRO |
|||
|
|||
.MACRO Initialize_Interrupts |
|||
ldi Temp1, (1<<TOIE0)+(1<<TOIE1)+(1<<OCIE1A)+(1<<TOIE2) |
|||
out TIFR, Temp1 ; Clear interrupts |
|||
out TIMSK, Temp1 ; Enable interrupts |
|||
.ENDMACRO |
|||
|
|||
.MACRO Initialize_Adc |
|||
in Temp1, ADCSRA ; Set ADCSRA register (1MHz clock) |
|||
sbr Temp1, (1<<ADPS1) |
|||
sbr Temp1, (1<<ADPS0) |
|||
out ADCSRA, Temp1 |
|||
.ENDMACRO |
|||
.MACRO Start_Adc |
|||
ldi Temp1, (1<<REFS1)+(1<<REFS0)+(1<<MUX2)+(1<<MUX1)+(1<<MUX0) |
|||
out ADMUX, Temp1 ; Set ADMUX register (2.56V reference, left adj result, input 7) |
|||
in @0, ADCSRA |
|||
sbr @0, (1<<ADEN) ; Enable ADC |
|||
sbr @0, (1<<ADSC) ; Start ADC conversion |
|||
out ADCSRA, @0 |
|||
.ENDMACRO |
|||
.MACRO Get_Adc_Status |
|||
in @0, ADCSRA |
|||
.ENDMACRO |
|||
.MACRO Read_Adc_Result |
|||
in @0, ADCL |
|||
in @1, ADCH |
|||
.ENDMACRO |
|||
.MACRO Stop_Adc |
|||
in @0, ADCSRA |
|||
cbr @0, (1<<ADEN) ; Disable ADC |
|||
out ADCSRA, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Set_Timer0_CS0 |
|||
out TCCR0, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_Timer1_CS1 |
|||
out TCCR1B, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_Timer2_CS2 |
|||
out TCCR2, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Read_TCNT1L |
|||
in @0, TCNT1L |
|||
.ENDMACRO |
|||
.MACRO Read_TCNT1H |
|||
in @0, TCNT1H |
|||
.ENDMACRO |
|||
.MACRO Read_ICR1L |
|||
in @0, ICR1L |
|||
.ENDMACRO |
|||
.MACRO Read_ICR1H |
|||
in @0, ICR1H |
|||
.ENDMACRO |
|||
.MACRO Set_OCR1AL |
|||
out OCR1AL, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_OCR1AH |
|||
out OCR1AH, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Set_TCNT2 |
|||
out TCNT2, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Check_Eeprom_Ready |
|||
sbic EECR, EEWE |
|||
.ENDMACRO |
|||
.MACRO Set_Eeprom_Address |
|||
out EEARL, @0 |
|||
out EEARH, @1 |
|||
.ENDMACRO |
|||
.MACRO Start_Eeprom_Write |
|||
sbi EECR, EEMWE |
|||
sbi EECR, EEWE |
|||
.ENDMACRO |
@ -0,0 +1,26 @@ |
|||
This tree contains the BLHeli assembly code for sensorless brushless motor electronic speed control (ESC) boards. |
|||
It is designed specifically for use with Eflite mCP X, but may also be used on other copters/planes. |
|||
|
|||
This tree contains AVR assembly code for Atmel MCU based ESCs. |
|||
|
|||
Features and Changes |
|||
-------------------- |
|||
- Can be configured for main motor or tail motor operation |
|||
- Main motor operation has governor functionality |
|||
- Many parmeters can be programmed from the TX |
|||
- Supports 1kHz, 2kHz, 4kHz or 8kHz positive or negative pwm as input signal |
|||
|
|||
Supported Hardware |
|||
------------------ |
|||
- HC 5A |
|||
- Walkera WK-WST-10A-LT |
|||
- Feigao 6A |
|||
|
|||
Installation and use |
|||
-------------------- |
|||
The software is written, compiled and debugged in the AVR Studio 4 IDE. |
|||
|
|||
For more information, check out this thread: |
|||
|
|||
http://www.helifreak.com/showthread.php?t=357151 |
|||
|
@ -0,0 +1,387 @@ |
|||
;**** **** **** **** **** |
|||
; |
|||
; BLHeli program for controlling brushless motors in helicopters |
|||
; |
|||
; Copyright 2011, 2012 Steffen Skaug |
|||
; This program is distributed under the terms of the GNU General Public License |
|||
; |
|||
; This file is part of BLHeli. |
|||
; |
|||
; BLHeli is free software: you can redistribute it and/or modify |
|||
; it under the terms of the GNU General Public License as published by |
|||
; the Free Software Foundation, either version 3 of the License, or |
|||
; (at your option) any later version. |
|||
; |
|||
; BLHeli is distributed in the hope that it will be useful, |
|||
; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
; GNU General Public License for more details. |
|||
; |
|||
; You should have received a copy of the GNU General Public License |
|||
; along with BLHeli. If not, see <http://www.gnu.org/licenses/>. |
|||
; |
|||
;**** **** **** **** **** |
|||
|
|||
|
|||
|
|||
;********************* |
|||
; Device Atmega88P(A) |
|||
;********************* |
|||
.include "m88Pdef.inc" |
|||
|
|||
;**** **** **** **** **** |
|||
; Fuses must be set to external oscillator 8.0- MHz |
|||
;**** **** **** **** **** |
|||
|
|||
;**** **** **** **** **** |
|||
; Constant definitions |
|||
;**** **** **** **** **** |
|||
.equ ADC_LIMIT_L = 180 ; Power supply measurement ADC value for which main motor power is limited (low byte) |
|||
.equ ADC_LIMIT_H = 1 ; Power supply measurement ADC value for which main motor power is limited (2 MSBs) |
|||
|
|||
;********************* |
|||
; PORT D definitions * |
|||
;********************* |
|||
.equ Mux_B = 7 ;i Phase B input |
|||
.equ Comp_Com = 6 ;i Comparator common input (AIN0) |
|||
.equ BnFET = 5 ;o |
|||
.equ BpFET = 4 ;o |
|||
.equ CpFET = 3 ;o |
|||
.equ Rcp_In = 2 ;i RC pulse input |
|||
.equ ApFET = 1 ;o |
|||
;.equ = 0 ;i |
|||
|
|||
.equ INIT_PD = 0 |
|||
.equ DIR_PD = (1<<ApFET)+(1<<BpFET)+(1<<CpFET)+(1<<BnFET) |
|||
|
|||
|
|||
.MACRO Read_Rcp_Int |
|||
in @0, PIND |
|||
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative? |
|||
com @0 ; Yes - invert |
|||
.ENDMACRO |
|||
.MACRO Read_Rcp_Icp_Int |
|||
in @0, PINB |
|||
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative? |
|||
com @0 ; Yes - invert |
|||
.ENDMACRO |
|||
|
|||
.MACRO Rcp_Int_Enable |
|||
ldi @0, (1<<INT0) ; Enable ext0int |
|||
out EIMSK, @0 |
|||
.ENDMACRO |
|||
.MACRO Rcp_Int_Disable |
|||
ldi @0, 0 ; Disable ext0int |
|||
out EIMSK, @0 |
|||
.ENDMACRO |
|||
.MACRO Rcp_Int_First |
|||
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive? |
|||
ldi @0, (1<<ISC01)+(1<<ISC00) ; Yes - set next int0 to rising |
|||
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative? |
|||
ldi @0, (1<<ISC01) ; Yes - set next int0 to falling |
|||
sts EICRA, @0 |
|||
.ENDMACRO |
|||
.MACRO Rcp_Int_Second |
|||
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive? |
|||
ldi @0, (1<<ISC01) ; Yes - set next int0 to falling |
|||
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative? |
|||
ldi @0, (1<<ISC01)+(1<<ISC00) ; Yes - set next int0 to rising |
|||
sts EICRA, @0 |
|||
.ENDMACRO |
|||
.MACRO Clear_Int_Flag |
|||
clr @0 |
|||
sbr @0, (1<<INTF0) ; Clear ext0int flag |
|||
out EIFR, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Rcp_Icp_Int_Enable |
|||
lds @0, TIMSK1 |
|||
sbr @0, (1<<ICIE1) ; Enable icp1int |
|||
sts TIMSK1, @0 |
|||
.ENDMACRO |
|||
.MACRO Rcp_Icp_Int_Disable |
|||
lds @0, TIMSK1 |
|||
cbr @0, (1<<ICIE1) ; Disable icp1int |
|||
sts TIMSK1, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Rcp_Icp_Int_First |
|||
lds @0, TCCR1B |
|||
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive |
|||
sbr @0, (1<<ICES1) ; Yes - set icp1int to trig on rising edge |
|||
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative |
|||
cbr @0, (1<<ICES1) ; Yes - set icp1int to trig on falling edge |
|||
sts TCCR1B, @0 |
|||
.ENDMACRO |
|||
.MACRO Rcp_Icp_Int_Second |
|||
lds @0, TCCR1B |
|||
sbrs Flags2, PGM_RCP_PWM_POL ; Is pwm polarity positive |
|||
cbr @0, (1<<ICES1) ; Yes - set icp1int to trig on falling edge |
|||
sbrc Flags2, PGM_RCP_PWM_POL ; Is pwm polarity negative |
|||
sbr @0, (1<<ICES1) ; Yes - set icp1int to trig on rising edge |
|||
sts TCCR1B, @0 |
|||
.ENDMACRO |
|||
.MACRO Clear_Icp_Int_Flag |
|||
clr @0 |
|||
sbr @0, (1<<ICF1) ; Clear icp1int flag |
|||
out TIFR1, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO ApFET_on |
|||
sbi PORTD,1 |
|||
.ENDMACRO |
|||
.MACRO ApFET_off |
|||
cbi PORTD,1 |
|||
.ENDMACRO |
|||
.MACRO CpFET_on |
|||
sbi PORTD,3 |
|||
.ENDMACRO |
|||
.MACRO CpFET_off |
|||
cbi PORTD,3 |
|||
.ENDMACRO |
|||
.MACRO BpFET_on |
|||
sbi PORTD,4 |
|||
.ENDMACRO |
|||
.MACRO BpFET_off |
|||
cbi PORTD,4 |
|||
.ENDMACRO |
|||
.MACRO All_pFETs_Off |
|||
in @0, PORTD |
|||
cbr @0, (1<<ApFET)+(1<<BpFET)+(1<<CpFET) |
|||
out PORTD, @0 |
|||
.ENDMACRO |
|||
.MACRO All_pFETs_On |
|||
in @0, PORTD |
|||
sbr @0, (1<<ApFET)+(1<<BpFET)+(1<<CpFET) |
|||
out PORTD, @0 |
|||
.ENDMACRO |
|||
|
|||
|
|||
;********************* |
|||
; PORT C definitions * |
|||
;********************* |
|||
;.equ = 7 ; ADC7 |
|||
;.equ = 6 ; ADC6 |
|||
;.equ = 5 ; ADC5 |
|||
;.equ = 4 ; ADC4 |
|||
.equ Mux_C = 3 ; Phase C input |
|||
.equ Mux_A = 2 ; Phase A input |
|||
;.equ = 1 ; ADC1 |
|||
;.equ = 0 ; ADC0 |
|||
|
|||
.equ INIT_PC = 0 |
|||
.equ DIR_PC = 0 |
|||
|
|||
.MACRO Comp_Init |
|||
lds @0, ADCSRA ; Disable ADC |
|||
cbr @0, (1<<ADEN) |
|||
sts ADCSRA, @0 |
|||
lds @0, ADCSRB ; Set Analog Comparator Multiplexer Enable |
|||
sbr @0, (1<<ACME) |
|||
sts ADCSRB, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_Comp_Phase_A |
|||
lds @0, ADCSRB ; Set Analog Comparator Multiplexer Enable |
|||
sbr @0, (1<<ACME) |
|||
sts ADCSRB, @0 |
|||
ldi @0, Mux_A ; Set comparator multiplexer to phase A |
|||
sts ADMUX, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_Comp_Phase_C |
|||
lds @0, ADCSRB ; Set Analog Comparator Multiplexer Enable |
|||
sbr @0, (1<<ACME) |
|||
sts ADCSRB, @0 |
|||
ldi @0, Mux_C ; Set comparator multiplexer to phase C |
|||
sts ADMUX, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_Comp_Phase_B |
|||
lds @0, ADCSRB ; Set Analog Comparator Multiplexer Disable |
|||
cbr @0, (1<<ACME) |
|||
sts ADCSRB, @0 |
|||
.ENDMACRO |
|||
.MACRO Read_Comp_Out |
|||
in @0, ACSR ; Read comparator output |
|||
.ENDMACRO |
|||
|
|||
|
|||
;********************* |
|||
; PORT B definitions * |
|||
;********************* |
|||
;.equ = 7 |
|||
;.equ = 6 |
|||
;.equ = 5 (sck stk200 interface) |
|||
.equ DebugPin = 4 ;(miso stk200 interface) |
|||
;.equ = 3 (mosi stk200 interface) |
|||
.equ AnFET = 2 |
|||
.equ CnFET = 1 |
|||
.equ Rcp_Icp_In = 0 |
|||
|
|||
.equ INIT_PB = 0 |
|||
.equ DIR_PB = (1<<DebugPin)+(1<<AnFET)+(1<<CnFET) |
|||
|
|||
.MACRO AnFET_on |
|||
sbi PORTB,2 |
|||
.ENDMACRO |
|||
.MACRO AnFET_off |
|||
cbi PORTB,2 |
|||
.ENDMACRO |
|||
.MACRO CnFET_on |
|||
sbi PORTB,1 |
|||
.ENDMACRO |
|||
.MACRO CnFET_off |
|||
cbi PORTB,1 |
|||
.ENDMACRO |
|||
.MACRO BnFET_on |
|||
sbi PORTD,5 |
|||
.ENDMACRO |
|||
.MACRO BnFET_off |
|||
cbi PORTD,5 |
|||
.ENDMACRO |
|||
.MACRO All_nFETs_Off |
|||
in @0, PORTB |
|||
cbr @0, (1<<AnFET)+(1<<CnFET) |
|||
out PORTB, @0 |
|||
in @0, PORTD |
|||
cbr @0, (1<<BnFET) |
|||
out PORTD, @0 |
|||
.ENDMACRO |
|||
|
|||
;********************** |
|||
; MCU specific macros * |
|||
;********************** |
|||
.MACRO Disable_Watchdog |
|||
cli ; Disable interrupts |
|||
wdr ; Reset watchdog timer |
|||
in @0, MCUSR ; Clear WDRF in MCUSR |
|||
andi @0, (0xff & (0<<WDRF)) |
|||
out MCUSR, @0 |
|||
lds @0, WDTCSR ; Write logical one to WDCE and WDE |
|||
ori @0, (1<<WDCE) | (1<<WDE) |
|||
sts WDTCSR, @0 |
|||
ldi @0, (0<<WDE) ; Turn off WDT |
|||
sts WDTCSR, @0 |
|||
.ENDMACRO |
|||
.MACRO Enable_Watchdog |
|||
ldi @0, (1<<WDE) ; Turn on WDT |
|||
sts WDTCSR, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Initialize_MCU |
|||
ldi @0, (1<<CLKPCE) ; Set clock prescaler change enable |
|||
sts CLKPR, @0 |
|||
ldi @0, (1<<CLKPS0) ; Change clock prescaler (to divide by 2) |
|||
sts CLKPR, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Interrupt_Table_Definition |
|||
rjmp reset |
|||
rjmp ext_int0 ; ext_int0 |
|||
nop ; ext_int1 |
|||
nop ; pci0_int |
|||
nop ; pci1_int |
|||
nop ; pci2_int |
|||
nop ; wdt_int |
|||
nop ; t2oca_int |
|||
nop ; t2ocb_int |
|||
rjmp t2ovfl_int; t2ovfl_int |
|||
rjmp icp1_int ; icp1_int |
|||
rjmp t1oca_int ; t1oca_int |
|||
nop ; t1ocb_int |
|||
rjmp t1ovfl_int; t1ovfl_int |
|||
nop ; t0oca_int |
|||
nop ; t0ocb_int |
|||
rjmp t0ovfl_int; t0ovfl_int |
|||
nop ; spi_int |
|||
nop ; urxc |
|||
nop ; udre |
|||
nop ; utxc |
|||
; nop ; adc_int |
|||
; nop ; eep_int |
|||
; nop ; aci_int |
|||
; nop ; wire2_int |
|||
; nop ; spmc_int |
|||
.ENDMACRO |
|||
|
|||
.MACRO Initialize_Interrupts |
|||
ldi Temp1, (1<<TOIE0) |
|||
out TIFR0, Temp1 ; Clear interrupts |
|||
sts TIMSK0, Temp1 ; Enable interrupts |
|||
ldi Temp1, (1<<TOIE1)+(1<<OCIE1A) |
|||
out TIFR1, Temp1 ; Clear interrupts |
|||
sts TIMSK1, Temp1 ; Enable interrupts |
|||
ldi Temp1, (1<<TOIE2) |
|||
out TIFR2, Temp1 ; Clear interrupts |
|||
sts TIMSK2, Temp1 ; Enable interrupts |
|||
.ENDMACRO |
|||
|
|||
.MACRO Initialize_Adc |
|||
lds Temp1, ADCSRA ; Set ADCSRA register (1MHz clock) |
|||
sbr Temp1, (1<<ADPS1) |
|||
sbr Temp1, (1<<ADPS0) |
|||
sts ADCSRA, Temp1 |
|||
.ENDMACRO |
|||
.MACRO Start_Adc |
|||
ldi Temp1, (1<<REFS1)+(1<<REFS0)+(1<<MUX2)+(1<<MUX1)+(1<<MUX0) |
|||
sts ADMUX, Temp1 ; Set ADMUX register (1.1V reference, left adj result, input 7) |
|||
lds @0, ADCSRA |
|||
sbr @0, (1<<ADEN) ; Enable ADC |
|||
sbr @0, (1<<ADSC) ; Start ADC conversion |
|||
sts ADCSRA, @0 |
|||
.ENDMACRO |
|||
.MACRO Get_Adc_Status |
|||
lds @0, ADCSRA |
|||
.ENDMACRO |
|||
.MACRO Read_Adc_Result |
|||
lds @0, ADCL |
|||
lds @1, ADCH |
|||
.ENDMACRO |
|||
.MACRO Stop_Adc |
|||
lds @0, ADCSRA |
|||
cbr @0, (1<<ADEN) ; Disable ADC |
|||
sts ADCSRA, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Set_Timer0_CS0 |
|||
out TCCR0B, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_Timer1_CS1 |
|||
sts TCCR1B, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_Timer2_CS2 |
|||
sts TCCR2B, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Read_TCNT1L |
|||
lds @0, TCNT1L |
|||
.ENDMACRO |
|||
.MACRO Read_TCNT1H |
|||
lds @0, TCNT1H |
|||
.ENDMACRO |
|||
.MACRO Read_ICR1L |
|||
lds @0, ICR1L |
|||
.ENDMACRO |
|||
.MACRO Read_ICR1H |
|||
lds @0, ICR1H |
|||
.ENDMACRO |
|||
.MACRO Set_OCR1AL |
|||
sts OCR1AL, @0 |
|||
.ENDMACRO |
|||
.MACRO Set_OCR1AH |
|||
sts OCR1AH, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Set_TCNT2 |
|||
sts TCNT2, @0 |
|||
.ENDMACRO |
|||
|
|||
.MACRO Check_Eeprom_Ready |
|||
sbic EECR, EEPE |
|||
.ENDMACRO |
|||
.MACRO Set_Eeprom_Address |
|||
out EEARL, @0 |
|||
out EEARH, @1 |
|||
.ENDMACRO |
|||
.MACRO Start_Eeprom_Write |
|||
sbi EECR, EEMPE |
|||
sbi EECR, EEPE |
|||
.ENDMACRO |
@ -0,0 +1,958 @@ |
|||
;***** THIS IS A MACHINE GENERATED FILE - DO NOT EDIT ******************** |
|||
;***** Created: 2009-11-03 14:40 ******* Source: ATmega48.xml ************ |
|||
;************************************************************************* |
|||
;* A P P L I C A T I O N N O T E F O R T H E A V R F A M I L Y |
|||
;* |
|||
;* Number : AVR000 |
|||
;* File Name : "m48def.inc" |
|||
;* Title : Register/Bit Definitions for the ATmega48 |
|||
;* Date : 2009-11-03 |
|||
;* Version : 2.35 |
|||
;* Support E-mail : avr@atmel.com |
|||
;* Target MCU : ATmega48 |
|||
;* |
|||
;* DESCRIPTION |
|||
;* When including this file in the assembly program file, all I/O register |
|||
;* names and I/O register bit names appearing in the data book can be used. |
|||
;* In addition, the six registers forming the three data pointers X, Y and |
|||
;* Z have been assigned names XL - ZH. Highest RAM address for Internal |
|||
;* SRAM is also defined |
|||
;* |
|||
;* The Register names are represented by their hexadecimal address. |
|||
;* |
|||
;* The Register Bit names are represented by their bit number (0-7). |
|||
;* |
|||
;* Please observe the difference in using the bit names with instructions |
|||
;* such as "sbr"/"cbr" (set/clear bit in register) and "sbrs"/"sbrc" |
|||
;* (skip if bit in register set/cleared). The following example illustrates |
|||
;* this: |
|||
;* |
|||
;* in r16,PORTB ;read PORTB latch |
|||
;* sbr r16,(1<<PB6)+(1<<PB5) ;set PB6 and PB5 (use masks, not bit#) |
|||
;* out PORTB,r16 ;output to PORTB |
|||
;* |
|||
;* in r16,TIFR ;read the Timer Interrupt Flag Register |
|||
;* sbrc r16,TOV0 ;test the overflow flag (use bit#) |
|||
;* rjmp TOV0_is_set ;jump if set |
|||
;* ... ;otherwise do something else |
|||
;************************************************************************* |
|||
|
|||
#ifndef _M48DEF_INC_ |
|||
#define _M48DEF_INC_ |
|||
|
|||
|
|||
#pragma partinc 0 |
|||
|
|||
; ***** SPECIFY DEVICE *************************************************** |
|||
.device ATmega48 |
|||
#pragma AVRPART ADMIN PART_NAME ATmega48 |
|||
.equ SIGNATURE_000 = 0x1e |
|||
.equ SIGNATURE_001 = 0x92 |
|||
.equ SIGNATURE_002 = 0x05 |
|||
|
|||
#pragma AVRPART CORE CORE_VERSION V2E |
|||
|
|||
|
|||
; ***** I/O REGISTER DEFINITIONS ***************************************** |
|||
; NOTE: |
|||
; Definitions marked "MEMORY MAPPED"are extended I/O ports |
|||
; and cannot be used with IN/OUT instructions |
|||
.equ UDR0 = 0xc6 ; MEMORY MAPPED |
|||
.equ UBRR0L = 0xc4 ; MEMORY MAPPED |
|||
.equ UBRR0H = 0xc5 ; MEMORY MAPPED |
|||
.equ UCSR0C = 0xc2 ; MEMORY MAPPED |
|||
.equ UCSR0B = 0xc1 ; MEMORY MAPPED |
|||
.equ UCSR0A = 0xc0 ; MEMORY MAPPED |
|||
.equ TWAMR = 0xbd ; MEMORY MAPPED |
|||
.equ TWCR = 0xbc ; MEMORY MAPPED |
|||
.equ TWDR = 0xbb ; MEMORY MAPPED |
|||
.equ TWAR = 0xba ; MEMORY MAPPED |
|||
.equ TWSR = 0xb9 ; MEMORY MAPPED |
|||
.equ TWBR = 0xb8 ; MEMORY MAPPED |
|||
.equ ASSR = 0xb6 ; MEMORY MAPPED |
|||
.equ OCR2B = 0xb4 ; MEMORY MAPPED |
|||
.equ OCR2A = 0xb3 ; MEMORY MAPPED |
|||
.equ TCNT2 = 0xb2 ; MEMORY MAPPED |
|||
.equ TCCR2B = 0xb1 ; MEMORY MAPPED |
|||
.equ TCCR2A = 0xb0 ; MEMORY MAPPED |
|||
.equ OCR1BL = 0x8a ; MEMORY MAPPED |
|||
.equ OCR1BH = 0x8b ; MEMORY MAPPED |
|||
.equ OCR1AL = 0x88 ; MEMORY MAPPED |
|||
.equ OCR1AH = 0x89 ; MEMORY MAPPED |
|||
.equ ICR1L = 0x86 ; MEMORY MAPPED |
|||
.equ ICR1H = 0x87 ; MEMORY MAPPED |
|||
.equ TCNT1L = 0x84 ; MEMORY MAPPED |
|||
.equ TCNT1H = 0x85 ; MEMORY MAPPED |
|||
.equ TCCR1C = 0x82 ; MEMORY MAPPED |
|||
.equ TCCR1B = 0x81 ; MEMORY MAPPED |
|||
.equ TCCR1A = 0x80 ; MEMORY MAPPED |
|||
.equ DIDR1 = 0x7f ; MEMORY MAPPED |
|||
.equ DIDR0 = 0x7e ; MEMORY MAPPED |
|||
.equ ADMUX = 0x7c ; MEMORY MAPPED |
|||
.equ ADCSRB = 0x7b ; MEMORY MAPPED |
|||
.equ ADCSRA = 0x7a ; MEMORY MAPPED |
|||
.equ ADCH = 0x79 ; MEMORY MAPPED |
|||
.equ ADCL = 0x78 ; MEMORY MAPPED |
|||
.equ TIMSK2 = 0x70 ; MEMORY MAPPED |
|||
.equ TIMSK1 = 0x6f ; MEMORY MAPPED |
|||
.equ TIMSK0 = 0x6e ; MEMORY MAPPED |
|||
.equ PCMSK1 = 0x6c ; MEMORY MAPPED |
|||
.equ PCMSK2 = 0x6d ; MEMORY MAPPED |
|||
.equ PCMSK0 = 0x6b ; MEMORY MAPPED |
|||
.equ EICRA = 0x69 ; MEMORY MAPPED |
|||
.equ PCICR = 0x68 ; MEMORY MAPPED |
|||
.equ OSCCAL = 0x66 ; MEMORY MAPPED |
|||
.equ PRR = 0x64 ; MEMORY MAPPED |
|||
.equ CLKPR = 0x61 ; MEMORY MAPPED |
|||
.equ WDTCSR = 0x60 ; MEMORY MAPPED |
|||
.equ SREG = 0x3f |
|||
.equ SPL = 0x3d |
|||
.equ SPH = 0x3e |
|||
.equ SPMCSR = 0x37 |
|||
.equ MCUCR = 0x35 |
|||
.equ MCUSR = 0x34 |
|||
.equ SMCR = 0x33 |
|||
.equ ACSR = 0x30 |
|||
.equ SPDR = 0x2e |
|||
.equ SPSR = 0x2d |
|||
.equ SPCR = 0x2c |
|||
.equ GPIOR2 = 0x2b |
|||
.equ GPIOR1 = 0x2a |
|||
.equ OCR0B = 0x28 |
|||
.equ OCR0A = 0x27 |
|||
.equ TCNT0 = 0x26 |
|||
.equ TCCR0B = 0x25 |
|||
.equ TCCR0A = 0x24 |
|||
.equ GTCCR = 0x23 |
|||
.equ EEARL = 0x21 |
|||
.equ EEDR = 0x20 |
|||
.equ EECR = 0x1f |
|||
.equ GPIOR0 = 0x1e |
|||
.equ EIMSK = 0x1d |
|||
.equ EIFR = 0x1c |
|||
.equ PCIFR = 0x1b |
|||
.equ TIFR2 = 0x17 |
|||
.equ TIFR1 = 0x16 |
|||
.equ TIFR0 = 0x15 |
|||
.equ PORTD = 0x0b |
|||
.equ DDRD = 0x0a |
|||
.equ PIND = 0x09 |
|||
.equ PORTC = 0x08 |
|||
.equ DDRC = 0x07 |
|||
.equ PINC = 0x06 |
|||
.equ PORTB = 0x05 |
|||
.equ DDRB = 0x04 |
|||
.equ PINB = 0x03 |
|||
|
|||
|
|||
; ***** BIT DEFINITIONS ************************************************** |
|||
|
|||
; ***** USART0 *********************** |
|||
; UDR0 - USART I/O Data Register |
|||
.equ UDR0_0 = 0 ; USART I/O Data Register bit 0 |
|||
.equ UDR0_1 = 1 ; USART I/O Data Register bit 1 |
|||
.equ UDR0_2 = 2 ; USART I/O Data Register bit 2 |
|||
.equ UDR0_3 = 3 ; USART I/O Data Register bit 3 |
|||
.equ UDR0_4 = 4 ; USART I/O Data Register bit 4 |
|||
.equ UDR0_5 = 5 ; USART I/O Data Register bit 5 |
|||
.equ UDR0_6 = 6 ; USART I/O Data Register bit 6 |
|||
.equ UDR0_7 = 7 ; USART I/O Data Register bit 7 |
|||
|
|||
; UCSR0A - USART Control and Status Register A |
|||
.equ MPCM0 = 0 ; Multi-processor Communication Mode |
|||
.equ U2X0 = 1 ; Double the USART transmission speed |
|||
.equ UPE0 = 2 ; Parity Error |
|||
.equ DOR0 = 3 ; Data overRun |
|||
.equ FE0 = 4 ; Framing Error |
|||
.equ UDRE0 = 5 ; USART Data Register Empty |
|||
.equ TXC0 = 6 ; USART Transmitt Complete |
|||
.equ RXC0 = 7 ; USART Receive Complete |
|||
|
|||
; UCSR0B - USART Control and Status Register B |
|||
.equ TXB80 = 0 ; Transmit Data Bit 8 |
|||
.equ RXB80 = 1 ; Receive Data Bit 8 |
|||
.equ UCSZ02 = 2 ; Character Size |
|||
.equ TXEN0 = 3 ; Transmitter Enable |
|||
.equ RXEN0 = 4 ; Receiver Enable |
|||
.equ UDRIE0 = 5 ; USART Data register Empty Interrupt Enable |
|||
.equ TXCIE0 = 6 ; TX Complete Interrupt Enable |
|||
.equ RXCIE0 = 7 ; RX Complete Interrupt Enable |
|||
|
|||
; UCSR0C - USART Control and Status Register C |
|||
.equ UCPOL0 = 0 ; Clock Polarity |
|||
.equ UCSZ00 = 1 ; Character Size |
|||
.equ UCPHA0 = UCSZ00 ; For compatibility |
|||
.equ UCSZ01 = 2 ; Character Size |
|||
.equ UDORD0 = UCSZ01 ; For compatibility |
|||
.equ USBS0 = 3 ; Stop Bit Select |
|||
.equ UPM00 = 4 ; Parity Mode Bit 0 |
|||
.equ UPM01 = 5 ; Parity Mode Bit 1 |
|||
.equ UMSEL00 = 6 ; USART Mode Select |
|||
.equ UMSEL0 = UMSEL00 ; For compatibility |
|||
.equ UMSEL01 = 7 ; USART Mode Select |
|||
.equ UMSEL1 = UMSEL01 ; For compatibility |
|||
|
|||
; UBRR0H - USART Baud Rate Register High Byte |
|||
.equ UBRR8 = 0 ; USART Baud Rate Register bit 8 |
|||
.equ UBRR9 = 1 ; USART Baud Rate Register bit 9 |
|||
.equ UBRR10 = 2 ; USART Baud Rate Register bit 10 |
|||
.equ UBRR11 = 3 ; USART Baud Rate Register bit 11 |
|||
|
|||
; UBRR0L - USART Baud Rate Register Low Byte |
|||
.equ _UBRR0 = 0 ; USART Baud Rate Register bit 0 |
|||
.equ _UBRR1 = 1 ; USART Baud Rate Register bit 1 |
|||
.equ UBRR2 = 2 ; USART Baud Rate Register bit 2 |
|||
.equ UBRR3 = 3 ; USART Baud Rate Register bit 3 |
|||
.equ UBRR4 = 4 ; USART Baud Rate Register bit 4 |
|||
.equ UBRR5 = 5 ; USART Baud Rate Register bit 5 |
|||
.equ UBRR6 = 6 ; USART Baud Rate Register bit 6 |
|||
.equ UBRR7 = 7 ; USART Baud Rate Register bit 7 |
|||
|
|||
|
|||
; ***** TWI ************************** |
|||
; TWAMR - TWI (Slave) Address Mask Register |
|||
.equ TWAM0 = 1 ; |
|||
.equ TWAMR0 = TWAM0 ; For compatibility |
|||
.equ TWAM1 = 2 ; |
|||
.equ TWAMR1 = TWAM1 ; For compatibility |
|||
.equ TWAM2 = 3 ; |
|||
.equ TWAMR2 = TWAM2 ; For compatibility |
|||
.equ TWAM3 = 4 ; |
|||
.equ TWAMR3 = TWAM3 ; For compatibility |
|||
.equ TWAM4 = 5 ; |
|||
.equ TWAMR4 = TWAM4 ; For compatibility |
|||
.equ TWAM5 = 6 ; |
|||
.equ TWAMR5 = TWAM5 ; For compatibility |
|||
.equ TWAM6 = 7 ; |
|||
.equ TWAMR6 = TWAM6 ; For compatibility |
|||
|
|||
; TWBR - TWI Bit Rate register |
|||
.equ TWBR0 = 0 ; |
|||
.equ TWBR1 = 1 ; |
|||
.equ TWBR2 = 2 ; |
|||
.equ TWBR3 = 3 ; |
|||
.equ TWBR4 = 4 ; |
|||
.equ TWBR5 = 5 ; |
|||
.equ TWBR6 = 6 ; |
|||
.equ TWBR7 = 7 ; |
|||
|
|||
; TWCR - TWI Control Register |
|||
.equ TWIE = 0 ; TWI Interrupt Enable |
|||
.equ TWEN = 2 ; TWI Enable Bit |
|||
.equ TWWC = 3 ; TWI Write Collition Flag |
|||
.equ TWSTO = 4 ; TWI Stop Condition Bit |
|||
.equ TWSTA = 5 ; TWI Start Condition Bit |
|||
.equ TWEA = 6 ; TWI Enable Acknowledge Bit |
|||
.equ TWINT = 7 ; TWI Interrupt Flag |
|||
|
|||
; TWSR - TWI Status Register |
|||
.equ TWPS0 = 0 ; TWI Prescaler |
|||
.equ TWPS1 = 1 ; TWI Prescaler |
|||
.equ TWS3 = 3 ; TWI Status |
|||
.equ TWS4 = 4 ; TWI Status |
|||
.equ TWS5 = 5 ; TWI Status |
|||
.equ TWS6 = 6 ; TWI Status |
|||
.equ TWS7 = 7 ; TWI Status |
|||
|
|||
; TWDR - TWI Data register |
|||
.equ TWD0 = 0 ; TWI Data Register Bit 0 |
|||
.equ TWD1 = 1 ; TWI Data Register Bit 1 |
|||
.equ TWD2 = 2 ; TWI Data Register Bit 2 |
|||
.equ TWD3 = 3 ; TWI Data Register Bit 3 |
|||
.equ TWD4 = 4 ; TWI Data Register Bit 4 |
|||
.equ TWD5 = 5 ; TWI Data Register Bit 5 |
|||
.equ TWD6 = 6 ; TWI Data Register Bit 6 |
|||
.equ TWD7 = 7 ; TWI Data Register Bit 7 |
|||
|
|||
; TWAR - TWI (Slave) Address register |
|||
.equ TWGCE = 0 ; TWI General Call Recognition Enable Bit |
|||
.equ TWA0 = 1 ; TWI (Slave) Address register Bit 0 |
|||
.equ TWA1 = 2 ; TWI (Slave) Address register Bit 1 |
|||
.equ TWA2 = 3 ; TWI (Slave) Address register Bit 2 |
|||
.equ TWA3 = 4 ; TWI (Slave) Address register Bit 3 |
|||
.equ TWA4 = 5 ; TWI (Slave) Address register Bit 4 |
|||
.equ TWA5 = 6 ; TWI (Slave) Address register Bit 5 |
|||
.equ TWA6 = 7 ; TWI (Slave) Address register Bit 6 |
|||
|
|||
|
|||
; ***** TIMER_COUNTER_1 ************** |
|||
; TIMSK1 - Timer/Counter Interrupt Mask Register |
|||
.equ TOIE1 = 0 ; Timer/Counter1 Overflow Interrupt Enable |
|||
.equ OCIE1A = 1 ; Timer/Counter1 Output CompareA Match Interrupt Enable |
|||
.equ OCIE1B = 2 ; Timer/Counter1 Output CompareB Match Interrupt Enable |
|||
.equ ICIE1 = 5 ; Timer/Counter1 Input Capture Interrupt Enable |
|||
|
|||
; TIFR1 - Timer/Counter Interrupt Flag register |
|||
.equ TOV1 = 0 ; Timer/Counter1 Overflow Flag |
|||
.equ OCF1A = 1 ; Output Compare Flag 1A |
|||
.equ OCF1B = 2 ; Output Compare Flag 1B |
|||
.equ ICF1 = 5 ; Input Capture Flag 1 |
|||
|
|||
; TCCR1A - Timer/Counter1 Control Register A |
|||
.equ WGM10 = 0 ; Waveform Generation Mode |
|||
.equ WGM11 = 1 ; Waveform Generation Mode |
|||
.equ COM1B0 = 4 ; Compare Output Mode 1B, bit 0 |
|||
.equ COM1B1 = 5 ; Compare Output Mode 1B, bit 1 |
|||
.equ COM1A0 = 6 ; Comparet Ouput Mode 1A, bit 0 |
|||
.equ COM1A1 = 7 ; Compare Output Mode 1A, bit 1 |
|||
|
|||
; TCCR1B - Timer/Counter1 Control Register B |
|||
.equ CS10 = 0 ; Prescaler source of Timer/Counter 1 |
|||
.equ CS11 = 1 ; Prescaler source of Timer/Counter 1 |
|||
.equ CS12 = 2 ; Prescaler source of Timer/Counter 1 |
|||
.equ WGM12 = 3 ; Waveform Generation Mode |
|||
.equ WGM13 = 4 ; Waveform Generation Mode |
|||
.equ ICES1 = 6 ; Input Capture 1 Edge Select |
|||
.equ ICNC1 = 7 ; Input Capture 1 Noise Canceler |
|||
|
|||
; TCCR1C - Timer/Counter1 Control Register C |
|||
.equ FOC1B = 6 ; |
|||
.equ FOC1A = 7 ; |
|||
|
|||
; GTCCR - General Timer/Counter Control Register |
|||
.equ PSRSYNC = 0 ; Prescaler Reset Timer/Counter1 and Timer/Counter0 |
|||
.equ TSM = 7 ; Timer/Counter Synchronization Mode |
|||
|
|||
|
|||
; ***** TIMER_COUNTER_2 ************** |
|||
; TIMSK2 - Timer/Counter Interrupt Mask register |
|||
.equ TOIE2 = 0 ; Timer/Counter2 Overflow Interrupt Enable |
|||
.equ TOIE2A = TOIE2 ; For compatibility |
|||
.equ OCIE2A = 1 ; Timer/Counter2 Output Compare Match A Interrupt Enable |
|||
.equ OCIE2B = 2 ; Timer/Counter2 Output Compare Match B Interrupt Enable |
|||
|
|||
; TIFR2 - Timer/Counter Interrupt Flag Register |
|||
.equ TOV2 = 0 ; Timer/Counter2 Overflow Flag |
|||
.equ OCF2A = 1 ; Output Compare Flag 2A |
|||
.equ OCF2B = 2 ; Output Compare Flag 2B |
|||
|
|||
; TCCR2A - Timer/Counter2 Control Register A |
|||
.equ WGM20 = 0 ; Waveform Genration Mode |
|||
.equ WGM21 = 1 ; Waveform Genration Mode |
|||
.equ COM2B0 = 4 ; Compare Output Mode bit 0 |
|||
.equ COM2B1 = 5 ; Compare Output Mode bit 1 |
|||
.equ COM2A0 = 6 ; Compare Output Mode bit 1 |
|||
.equ COM2A1 = 7 ; Compare Output Mode bit 1 |
|||
|
|||
; TCCR2B - Timer/Counter2 Control Register B |
|||
.equ CS20 = 0 ; Clock Select bit 0 |
|||
.equ CS21 = 1 ; Clock Select bit 1 |
|||
.equ CS22 = 2 ; Clock Select bit 2 |
|||
.equ WGM22 = 3 ; Waveform Generation Mode |
|||
.equ FOC2B = 6 ; Force Output Compare B |
|||
.equ FOC2A = 7 ; Force Output Compare A |
|||
|
|||
; TCNT2 - Timer/Counter2 |
|||
.equ TCNT2_0 = 0 ; Timer/Counter 2 bit 0 |
|||
.equ TCNT2_1 = 1 ; Timer/Counter 2 bit 1 |
|||
.equ TCNT2_2 = 2 ; Timer/Counter 2 bit 2 |
|||
.equ TCNT2_3 = 3 ; Timer/Counter 2 bit 3 |
|||
.equ TCNT2_4 = 4 ; Timer/Counter 2 bit 4 |
|||
.equ TCNT2_5 = 5 ; Timer/Counter 2 bit 5 |
|||
.equ TCNT2_6 = 6 ; Timer/Counter 2 bit 6 |
|||
.equ TCNT2_7 = 7 ; Timer/Counter 2 bit 7 |
|||
|
|||
; OCR2A - Timer/Counter2 Output Compare Register A |
|||
.equ OCR2A_0 = 0 ; Timer/Counter2 Output Compare Register Bit 0 |
|||
.equ OCR2A_1 = 1 ; Timer/Counter2 Output Compare Register Bit 1 |
|||
.equ OCR2A_2 = 2 ; Timer/Counter2 Output Compare Register Bit 2 |
|||
.equ OCR2A_3 = 3 ; Timer/Counter2 Output Compare Register Bit 3 |
|||
.equ OCR2A_4 = 4 ; Timer/Counter2 Output Compare Register Bit 4 |
|||
.equ OCR2A_5 = 5 ; Timer/Counter2 Output Compare Register Bit 5 |
|||
.equ OCR2A_6 = 6 ; Timer/Counter2 Output Compare Register Bit 6 |
|||
.equ OCR2A_7 = 7 ; Timer/Counter2 Output Compare Register Bit 7 |
|||
|
|||
; OCR2B - Timer/Counter2 Output Compare Register B |
|||
.equ OCR2B_0 = 0 ; Timer/Counter2 Output Compare Register Bit 0 |
|||
.equ OCR2B_1 = 1 ; Timer/Counter2 Output Compare Register Bit 1 |
|||
.equ OCR2B_2 = 2 ; Timer/Counter2 Output Compare Register Bit 2 |
|||
.equ OCR2B_3 = 3 ; Timer/Counter2 Output Compare Register Bit 3 |
|||
.equ OCR2B_4 = 4 ; Timer/Counter2 Output Compare Register Bit 4 |
|||
.equ OCR2B_5 = 5 ; Timer/Counter2 Output Compare Register Bit 5 |
|||
.equ OCR2B_6 = 6 ; Timer/Counter2 Output Compare Register Bit 6 |
|||
.equ OCR2B_7 = 7 ; Timer/Counter2 Output Compare Register Bit 7 |
|||
|
|||
; ASSR - Asynchronous Status Register |
|||
.equ TCR2BUB = 0 ; Timer/Counter Control Register2 Update Busy |
|||
.equ TCR2AUB = 1 ; Timer/Counter Control Register2 Update Busy |
|||
.equ OCR2BUB = 2 ; Output Compare Register 2 Update Busy |
|||
.equ OCR2AUB = 3 ; Output Compare Register2 Update Busy |
|||
.equ TCN2UB = 4 ; Timer/Counter2 Update Busy |
|||
.equ AS2 = 5 ; Asynchronous Timer/Counter2 |
|||
.equ EXCLK = 6 ; Enable External Clock Input |
|||
|
|||
; GTCCR - General Timer Counter Control register |
|||
.equ PSRASY = 1 ; Prescaler Reset Timer/Counter2 |
|||
.equ PSR2 = PSRASY ; For compatibility |
|||
;.equ TSM = 7 ; Timer/Counter Synchronization Mode |
|||
|
|||
|
|||
; ***** AD_CONVERTER ***************** |
|||
; ADMUX - The ADC multiplexer Selection Register |
|||
.equ MUX0 = 0 ; Analog Channel and Gain Selection Bits |
|||
.equ MUX1 = 1 ; Analog Channel and Gain Selection Bits |
|||
.equ MUX2 = 2 ; Analog Channel and Gain Selection Bits |
|||
.equ MUX3 = 3 ; Analog Channel and Gain Selection Bits |
|||
.equ ADLAR = 5 ; Left Adjust Result |
|||
.equ REFS0 = 6 ; Reference Selection Bit 0 |
|||
.equ REFS1 = 7 ; Reference Selection Bit 1 |
|||
|
|||
; ADCSRA - The ADC Control and Status register A |
|||
.equ ADPS0 = 0 ; ADC Prescaler Select Bits |
|||
.equ ADPS1 = 1 ; ADC Prescaler Select Bits |
|||
.equ ADPS2 = 2 ; ADC Prescaler Select Bits |
|||
.equ ADIE = 3 ; ADC Interrupt Enable |
|||
.equ ADIF = 4 ; ADC Interrupt Flag |
|||
.equ ADATE = 5 ; ADC Auto Trigger Enable |
|||
.equ ADSC = 6 ; ADC Start Conversion |
|||
.equ ADEN = 7 ; ADC Enable |
|||
|
|||
; ADCSRB - The ADC Control and Status register B |
|||
.equ ADTS0 = 0 ; ADC Auto Trigger Source bit 0 |
|||
.equ ADTS1 = 1 ; ADC Auto Trigger Source bit 1 |
|||
.equ ADTS2 = 2 ; ADC Auto Trigger Source bit 2 |
|||
.equ ACME = 6 ; |
|||
|
|||
; ADCH - ADC Data Register High Byte |
|||
.equ ADCH0 = 0 ; ADC Data Register High Byte Bit 0 |
|||
.equ ADCH1 = 1 ; ADC Data Register High Byte Bit 1 |
|||
.equ ADCH2 = 2 ; ADC Data Register High Byte Bit 2 |
|||
.equ ADCH3 = 3 ; ADC Data Register High Byte Bit 3 |
|||
.equ ADCH4 = 4 ; ADC Data Register High Byte Bit 4 |
|||
.equ ADCH5 = 5 ; ADC Data Register High Byte Bit 5 |
|||
.equ ADCH6 = 6 ; ADC Data Register High Byte Bit 6 |
|||
.equ ADCH7 = 7 ; ADC Data Register High Byte Bit 7 |
|||
|
|||
; ADCL - ADC Data Register Low Byte |
|||
.equ ADCL0 = 0 ; ADC Data Register Low Byte Bit 0 |
|||
.equ ADCL1 = 1 ; ADC Data Register Low Byte Bit 1 |
|||
.equ ADCL2 = 2 ; ADC Data Register Low Byte Bit 2 |
|||
.equ ADCL3 = 3 ; ADC Data Register Low Byte Bit 3 |
|||
.equ ADCL4 = 4 ; ADC Data Register Low Byte Bit 4 |
|||
.equ ADCL5 = 5 ; ADC Data Register Low Byte Bit 5 |
|||
.equ ADCL6 = 6 ; ADC Data Register Low Byte Bit 6 |
|||
.equ ADCL7 = 7 ; ADC Data Register Low Byte Bit 7 |
|||
|
|||
; DIDR0 - Digital Input Disable Register |
|||
.equ ADC0D = 0 ; |
|||
.equ ADC1D = 1 ; |
|||
.equ ADC2D = 2 ; |
|||
.equ ADC3D = 3 ; |
|||
.equ ADC4D = 4 ; |
|||
.equ ADC5D = 5 ; |
|||
|
|||
|
|||
; ***** ANALOG_COMPARATOR ************ |
|||
; ACSR - Analog Comparator Control And Status Register |
|||
.equ ACIS0 = 0 ; Analog Comparator Interrupt Mode Select bit 0 |
|||
.equ ACIS1 = 1 ; Analog Comparator Interrupt Mode Select bit 1 |
|||
.equ ACIC = 2 ; Analog Comparator Input Capture Enable |
|||
.equ ACIE = 3 ; Analog Comparator Interrupt Enable |
|||
.equ ACI = 4 ; Analog Comparator Interrupt Flag |
|||
.equ ACO = 5 ; Analog Compare Output |
|||
.equ ACBG = 6 ; Analog Comparator Bandgap Select |
|||
.equ ACD = 7 ; Analog Comparator Disable |
|||
|
|||
; DIDR1 - Digital Input Disable Register 1 |
|||
.equ AIN0D = 0 ; AIN0 Digital Input Disable |
|||
.equ AIN1D = 1 ; AIN1 Digital Input Disable |
|||
|
|||
|
|||
; ***** PORTB ************************ |
|||
; PORTB - Port B Data Register |
|||
.equ PORTB0 = 0 ; Port B Data Register bit 0 |
|||
.equ PB0 = 0 ; For compatibility |
|||
.equ PORTB1 = 1 ; Port B Data Register bit 1 |
|||
.equ PB1 = 1 ; For compatibility |
|||
.equ PORTB2 = 2 ; Port B Data Register bit 2 |
|||
.equ PB2 = 2 ; For compatibility |
|||
.equ PORTB3 = 3 ; Port B Data Register bit 3 |
|||
.equ PB3 = 3 ; For compatibility |
|||
.equ PORTB4 = 4 ; Port B Data Register bit 4 |
|||
.equ PB4 = 4 ; For compatibility |
|||
.equ PORTB5 = 5 ; Port B Data Register bit 5 |
|||
.equ PB5 = 5 ; For compatibility |
|||
.equ PORTB6 = 6 ; Port B Data Register bit 6 |
|||
.equ PB6 = 6 ; For compatibility |
|||
.equ PORTB7 = 7 ; Port B Data Register bit 7 |
|||
.equ PB7 = 7 ; For compatibility |
|||
|
|||
; DDRB - Port B Data Direction Register |
|||
.equ DDB0 = 0 ; Port B Data Direction Register bit 0 |
|||
.equ DDB1 = 1 ; Port B Data Direction Register bit 1 |
|||
.equ DDB2 = 2 ; Port B Data Direction Register bit 2 |
|||
.equ DDB3 = 3 ; Port B Data Direction Register bit 3 |
|||
.equ DDB4 = 4 ; Port B Data Direction Register bit 4 |
|||
.equ DDB5 = 5 ; Port B Data Direction Register bit 5 |
|||
.equ DDB6 = 6 ; Port B Data Direction Register bit 6 |
|||
.equ DDB7 = 7 ; Port B Data Direction Register bit 7 |
|||
|
|||
; PINB - Port B Input Pins |
|||
.equ PINB0 = 0 ; Port B Input Pins bit 0 |
|||
.equ PINB1 = 1 ; Port B Input Pins bit 1 |
|||
.equ PINB2 = 2 ; Port B Input Pins bit 2 |
|||
.equ PINB3 = 3 ; Port B Input Pins bit 3 |
|||
.equ PINB4 = 4 ; Port B Input Pins bit 4 |
|||
.equ PINB5 = 5 ; Port B Input Pins bit 5 |
|||
.equ PINB6 = 6 ; Port B Input Pins bit 6 |
|||
.equ PINB7 = 7 ; Port B Input Pins bit 7 |
|||
|
|||
|
|||
; ***** PORTC ************************ |
|||
; PORTC - Port C Data Register |
|||
.equ PORTC0 = 0 ; Port C Data Register bit 0 |
|||
.equ PC0 = 0 ; For compatibility |
|||
.equ PORTC1 = 1 ; Port C Data Register bit 1 |
|||
.equ PC1 = 1 ; For compatibility |
|||
.equ PORTC2 = 2 ; Port C Data Register bit 2 |
|||
.equ PC2 = 2 ; For compatibility |
|||
.equ PORTC3 = 3 ; Port C Data Register bit 3 |
|||
.equ PC3 = 3 ; For compatibility |
|||
.equ PORTC4 = 4 ; Port C Data Register bit 4 |
|||
.equ PC4 = 4 ; For compatibility |
|||
.equ PORTC5 = 5 ; Port C Data Register bit 5 |
|||
.equ PC5 = 5 ; For compatibility |
|||
.equ PORTC6 = 6 ; Port C Data Register bit 6 |
|||
.equ PC6 = 6 ; For compatibility |
|||
|
|||
; DDRC - Port C Data Direction Register |
|||
.equ DDC0 = 0 ; Port C Data Direction Register bit 0 |
|||
.equ DDC1 = 1 ; Port C Data Direction Register bit 1 |
|||
.equ DDC2 = 2 ; Port C Data Direction Register bit 2 |
|||
.equ DDC3 = 3 ; Port C Data Direction Register bit 3 |
|||
.equ DDC4 = 4 ; Port C Data Direction Register bit 4 |
|||
.equ DDC5 = 5 ; Port C Data Direction Register bit 5 |
|||
.equ DDC6 = 6 ; Port C Data Direction Register bit 6 |
|||
|
|||
; PINC - Port C Input Pins |
|||
.equ PINC0 = 0 ; Port C Input Pins bit 0 |
|||
.equ PINC1 = 1 ; Port C Input Pins bit 1 |
|||
.equ PINC2 = 2 ; Port C Input Pins bit 2 |
|||
.equ PINC3 = 3 ; Port C Input Pins bit 3 |
|||
.equ PINC4 = 4 ; Port C Input Pins bit 4 |
|||
.equ PINC5 = 5 ; Port C Input Pins bit 5 |
|||
.equ PINC6 = 6 ; Port C Input Pins bit 6 |
|||
|
|||
|
|||
; ***** PORTD ************************ |
|||
; PORTD - Port D Data Register |
|||
.equ PORTD0 = 0 ; Port D Data Register bit 0 |
|||
.equ PD0 = 0 ; For compatibility |
|||
.equ PORTD1 = 1 ; Port D Data Register bit 1 |
|||
.equ PD1 = 1 ; For compatibility |
|||
.equ PORTD2 = 2 ; Port D Data Register bit 2 |
|||
.equ PD2 = 2 ; For compatibility |
|||
.equ PORTD3 = 3 ; Port D Data Register bit 3 |
|||
.equ PD3 = 3 ; For compatibility |
|||
.equ PORTD4 = 4 ; Port D Data Register bit 4 |
|||
.equ PD4 = 4 ; For compatibility |
|||
.equ PORTD5 = 5 ; Port D Data Register bit 5 |
|||
.equ PD5 = 5 ; For compatibility |
|||
.equ PORTD6 = 6 ; Port D Data Register bit 6 |
|||
.equ PD6 = 6 ; For compatibility |
|||
.equ PORTD7 = 7 ; Port D Data Register bit 7 |
|||
.equ PD7 = 7 ; For compatibility |
|||
|
|||
; DDRD - Port D Data Direction Register |
|||
.equ DDD0 = 0 ; Port D Data Direction Register bit 0 |
|||
.equ DDD1 = 1 ; Port D Data Direction Register bit 1 |
|||
.equ DDD2 = 2 ; Port D Data Direction Register bit 2 |
|||
.equ DDD3 = 3 ; Port D Data Direction Register bit 3 |
|||
.equ DDD4 = 4 ; Port D Data Direction Register bit 4 |
|||
.equ DDD5 = 5 ; Port D Data Direction Register bit 5 |
|||
.equ DDD6 = 6 ; Port D Data Direction Register bit 6 |
|||
.equ DDD7 = 7 ; Port D Data Direction Register bit 7 |
|||
|
|||
; PIND - Port D Input Pins |
|||
.equ PIND0 = 0 ; Port D Input Pins bit 0 |
|||
.equ PIND1 = 1 ; Port D Input Pins bit 1 |
|||
.equ PIND2 = 2 ; Port D Input Pins bit 2 |
|||
.equ PIND3 = 3 ; Port D Input Pins bit 3 |
|||
.equ PIND4 = 4 ; Port D Input Pins bit 4 |
|||
.equ PIND5 = 5 ; Port D Input Pins bit 5 |
|||
.equ PIND6 = 6 ; Port D Input Pins bit 6 |
|||
.equ PIND7 = 7 ; Port D Input Pins bit 7 |
|||
|
|||
|
|||
; ***** TIMER_COUNTER_0 ************** |
|||
; TIMSK0 - Timer/Counter0 Interrupt Mask Register |
|||
.equ TOIE0 = 0 ; Timer/Counter0 Overflow Interrupt Enable |
|||
.equ OCIE0A = 1 ; Timer/Counter0 Output Compare Match A Interrupt Enable |
|||
.equ OCIE0B = 2 ; Timer/Counter0 Output Compare Match B Interrupt Enable |
|||
|
|||
; TIFR0 - Timer/Counter0 Interrupt Flag register |
|||
.equ TOV0 = 0 ; Timer/Counter0 Overflow Flag |
|||
.equ OCF0A = 1 ; Timer/Counter0 Output Compare Flag 0A |
|||
.equ OCF0B = 2 ; Timer/Counter0 Output Compare Flag 0B |
|||
|
|||
; TCCR0A - Timer/Counter Control Register A |
|||
.equ WGM00 = 0 ; Waveform Generation Mode |
|||
.equ WGM01 = 1 ; Waveform Generation Mode |
|||
.equ COM0B0 = 4 ; Compare Output Mode, Fast PWm |
|||
.equ COM0B1 = 5 ; Compare Output Mode, Fast PWm |
|||
.equ COM0A0 = 6 ; Compare Output Mode, Phase Correct PWM Mode |
|||
.equ COM0A1 = 7 ; Compare Output Mode, Phase Correct PWM Mode |
|||
|
|||
; TCCR0B - Timer/Counter Control Register B |
|||
.equ CS00 = 0 ; Clock Select |
|||
.equ CS01 = 1 ; Clock Select |
|||
.equ CS02 = 2 ; Clock Select |
|||
.equ WGM02 = 3 ; |
|||
.equ FOC0B = 6 ; Force Output Compare B |
|||
.equ FOC0A = 7 ; Force Output Compare A |
|||
|
|||
; TCNT0 - Timer/Counter0 |
|||
.equ TCNT0_0 = 0 ; |
|||
.equ TCNT0_1 = 1 ; |
|||
.equ TCNT0_2 = 2 ; |
|||
.equ TCNT0_3 = 3 ; |
|||
.equ TCNT0_4 = 4 ; |
|||
.equ TCNT0_5 = 5 ; |
|||
.equ TCNT0_6 = 6 ; |
|||
.equ TCNT0_7 = 7 ; |
|||
|
|||
; OCR0A - Timer/Counter0 Output Compare Register |
|||
.equ OCR0A_0 = 0 ; |
|||
.equ OCR0A_1 = 1 ; |
|||
.equ OCR0A_2 = 2 ; |
|||
.equ OCR0A_3 = 3 ; |
|||
.equ OCR0A_4 = 4 ; |
|||
.equ OCR0A_5 = 5 ; |
|||
.equ OCR0A_6 = 6 ; |
|||
.equ OCR0A_7 = 7 ; |
|||
|
|||
; OCR0B - Timer/Counter0 Output Compare Register |
|||
.equ OCR0B_0 = 0 ; |
|||
.equ OCR0B_1 = 1 ; |
|||
.equ OCR0B_2 = 2 ; |
|||
.equ OCR0B_3 = 3 ; |
|||
.equ OCR0B_4 = 4 ; |
|||
.equ OCR0B_5 = 5 ; |
|||
.equ OCR0B_6 = 6 ; |
|||
.equ OCR0B_7 = 7 ; |
|||
|
|||
; GTCCR - General Timer/Counter Control Register |
|||
;.equ PSRSYNC = 0 ; Prescaler Reset Timer/Counter1 and Timer/Counter0 |
|||
.equ PSR10 = PSRSYNC ; For compatibility |
|||
;.equ TSM = 7 ; Timer/Counter Synchronization Mode |
|||
|
|||
|
|||
; ***** EXTERNAL_INTERRUPT *********** |
|||
; EICRA - External Interrupt Control Register |
|||
.equ ISC00 = 0 ; External Interrupt Sense Control 0 Bit 0 |
|||
.equ ISC01 = 1 ; External Interrupt Sense Control 0 Bit 1 |
|||
.equ ISC10 = 2 ; External Interrupt Sense Control 1 Bit 0 |
|||
.equ ISC11 = 3 ; External Interrupt Sense Control 1 Bit 1 |
|||
|
|||
; EIMSK - External Interrupt Mask Register |
|||
.equ INT0 = 0 ; External Interrupt Request 0 Enable |
|||
.equ INT1 = 1 ; External Interrupt Request 1 Enable |
|||
|
|||
; EIFR - External Interrupt Flag Register |
|||
.equ INTF0 = 0 ; External Interrupt Flag 0 |
|||
.equ INTF1 = 1 ; External Interrupt Flag 1 |
|||
|
|||
; PCICR - Pin Change Interrupt Control Register |
|||
.equ PCIE0 = 0 ; Pin Change Interrupt Enable 0 |
|||
.equ PCIE1 = 1 ; Pin Change Interrupt Enable 1 |
|||
.equ PCIE2 = 2 ; Pin Change Interrupt Enable 2 |
|||
|
|||
; PCMSK2 - Pin Change Mask Register 2 |
|||
.equ PCINT16 = 0 ; Pin Change Enable Mask 16 |
|||
.equ PCINT17 = 1 ; Pin Change Enable Mask 17 |
|||
.equ PCINT18 = 2 ; Pin Change Enable Mask 18 |
|||
.equ PCINT19 = 3 ; Pin Change Enable Mask 19 |
|||
.equ PCINT20 = 4 ; Pin Change Enable Mask 20 |
|||
.equ PCINT21 = 5 ; Pin Change Enable Mask 21 |
|||
.equ PCINT22 = 6 ; Pin Change Enable Mask 22 |
|||
.equ PCINT23 = 7 ; Pin Change Enable Mask 23 |
|||
|
|||
; PCMSK1 - Pin Change Mask Register 1 |
|||
.equ PCINT8 = 0 ; Pin Change Enable Mask 8 |
|||
.equ PCINT9 = 1 ; Pin Change Enable Mask 9 |
|||
.equ PCINT10 = 2 ; Pin Change Enable Mask 10 |
|||
.equ PCINT11 = 3 ; Pin Change Enable Mask 11 |
|||
.equ PCINT12 = 4 ; Pin Change Enable Mask 12 |
|||
.equ PCINT13 = 5 ; Pin Change Enable Mask 13 |
|||
.equ PCINT14 = 6 ; Pin Change Enable Mask 14 |
|||
|
|||
; PCMSK0 - Pin Change Mask Register 0 |
|||
.equ PCINT0 = 0 ; Pin Change Enable Mask 0 |
|||
.equ PCINT1 = 1 ; Pin Change Enable Mask 1 |
|||
.equ PCINT2 = 2 ; Pin Change Enable Mask 2 |
|||
.equ PCINT3 = 3 ; Pin Change Enable Mask 3 |
|||
.equ PCINT4 = 4 ; Pin Change Enable Mask 4 |
|||
.equ PCINT5 = 5 ; Pin Change Enable Mask 5 |
|||
.equ PCINT6 = 6 ; Pin Change Enable Mask 6 |
|||
.equ PCINT7 = 7 ; Pin Change Enable Mask 7 |
|||
|
|||
; PCIFR - Pin Change Interrupt Flag Register |
|||
.equ PCIF0 = 0 ; Pin Change Interrupt Flag 0 |
|||
.equ PCIF1 = 1 ; Pin Change Interrupt Flag 1 |
|||
.equ PCIF2 = 2 ; Pin Change Interrupt Flag 2 |
|||
|
|||
|
|||
; ***** SPI ************************** |
|||
; SPDR - SPI Data Register |
|||
.equ SPDR0 = 0 ; SPI Data Register bit 0 |
|||
.equ SPDR1 = 1 ; SPI Data Register bit 1 |
|||
.equ SPDR2 = 2 ; SPI Data Register bit 2 |
|||
.equ SPDR3 = 3 ; SPI Data Register bit 3 |
|||
.equ SPDR4 = 4 ; SPI Data Register bit 4 |
|||
.equ SPDR5 = 5 ; SPI Data Register bit 5 |
|||
.equ SPDR6 = 6 ; SPI Data Register bit 6 |
|||
.equ SPDR7 = 7 ; SPI Data Register bit 7 |
|||
|
|||
; SPSR - SPI Status Register |
|||
.equ SPI2X = 0 ; Double SPI Speed Bit |
|||
.equ WCOL = 6 ; Write Collision Flag |
|||
.equ SPIF = 7 ; SPI Interrupt Flag |
|||
|
|||
; SPCR - SPI Control Register |
|||
.equ SPR0 = 0 ; SPI Clock Rate Select 0 |
|||
.equ SPR1 = 1 ; SPI Clock Rate Select 1 |
|||
.equ CPHA = 2 ; Clock Phase |
|||
.equ CPOL = 3 ; Clock polarity |
|||
.equ MSTR = 4 ; Master/Slave Select |
|||
.equ DORD = 5 ; Data Order |
|||
.equ SPE = 6 ; SPI Enable |
|||
.equ SPIE = 7 ; SPI Interrupt Enable |
|||
|
|||
|
|||
; ***** CPU ************************** |
|||
; SREG - Status Register |
|||
.equ SREG_C = 0 ; Carry Flag |
|||
.equ SREG_Z = 1 ; Zero Flag |
|||
.equ SREG_N = 2 ; Negative Flag |
|||
.equ SREG_V = 3 ; Two's Complement Overflow Flag |
|||
.equ SREG_S = 4 ; Sign Bit |
|||
.equ SREG_H = 5 ; Half Carry Flag |
|||
.equ SREG_T = 6 ; Bit Copy Storage |
|||
.equ SREG_I = 7 ; Global Interrupt Enable |
|||
|
|||
; OSCCAL - Oscillator Calibration Value |
|||
.equ CAL0 = 0 ; Oscillator Calibration Value Bit0 |
|||
.equ CAL1 = 1 ; Oscillator Calibration Value Bit1 |
|||
.equ CAL2 = 2 ; Oscillator Calibration Value Bit2 |
|||
.equ CAL3 = 3 ; Oscillator Calibration Value Bit3 |
|||
.equ CAL4 = 4 ; Oscillator Calibration Value Bit4 |
|||
.equ CAL5 = 5 ; Oscillator Calibration Value Bit5 |
|||
.equ CAL6 = 6 ; Oscillator Calibration Value Bit6 |
|||
.equ CAL7 = 7 ; Oscillator Calibration Value Bit7 |
|||
|
|||
; CLKPR - Clock Prescale Register |
|||
.equ CLKPS0 = 0 ; Clock Prescaler Select Bit 0 |
|||
.equ CLKPS1 = 1 ; Clock Prescaler Select Bit 1 |
|||
.equ CLKPS2 = 2 ; Clock Prescaler Select Bit 2 |
|||
.equ CLKPS3 = 3 ; Clock Prescaler Select Bit 3 |
|||
.equ CLKPCE = 7 ; Clock Prescaler Change Enable |
|||
|
|||
; SPMCSR - Store Program Memory Control Register |
|||
.equ SELFPRGEN = 0 ; Self Programming Enable |
|||
.equ PGERS = 1 ; Page Erase |
|||
.equ PGWRT = 2 ; Page Write |
|||
.equ BLBSET = 3 ; Boot Lock Bit Set |
|||
.equ RWWSRE = 4 ; Read-While-Write section read enable |
|||
.equ RWWSB = 6 ; Read-While-Write Section Busy |
|||
.equ SPMIE = 7 ; SPM Interrupt Enable |
|||
|
|||
; MCUCR - MCU Control Register |
|||
.equ PUD = 4 ; |
|||
|
|||
; MCUSR - MCU Status Register |
|||
.equ PORF = 0 ; Power-on reset flag |
|||
.equ EXTRF = 1 ; External Reset Flag |
|||
.equ EXTREF = EXTRF ; For compatibility |
|||
.equ BORF = 2 ; Brown-out Reset Flag |
|||
.equ WDRF = 3 ; Watchdog Reset Flag |
|||
|
|||
; SMCR - |
|||
.equ SE = 0 ; |
|||
.equ SM0 = 1 ; |
|||
.equ SM1 = 2 ; |
|||
.equ SM2 = 3 ; |
|||
|
|||
; GPIOR2 - General Purpose I/O Register 2 |
|||
.equ GPIOR20 = 0 ; |
|||
.equ GPIOR21 = 1 ; |
|||
.equ GPIOR22 = 2 ; |
|||
.equ GPIOR23 = 3 ; |
|||
.equ GPIOR24 = 4 ; |
|||
.equ GPIOR25 = 5 ; |
|||
.equ GPIOR26 = 6 ; |
|||
.equ GPIOR27 = 7 ; |
|||
|
|||
; GPIOR1 - General Purpose I/O Register 1 |
|||
.equ GPIOR10 = 0 ; |
|||
.equ GPIOR11 = 1 ; |
|||
.equ GPIOR12 = 2 ; |
|||
.equ GPIOR13 = 3 ; |
|||
.equ GPIOR14 = 4 ; |
|||
.equ GPIOR15 = 5 ; |
|||
.equ GPIOR16 = 6 ; |
|||
.equ GPIOR17 = 7 ; |
|||
|
|||
; GPIOR0 - General Purpose I/O Register 0 |
|||
.equ GPIOR00 = 0 ; |
|||
.equ GPIOR01 = 1 ; |
|||
.equ GPIOR02 = 2 ; |
|||
.equ GPIOR03 = 3 ; |
|||
.equ GPIOR04 = 4 ; |
|||
.equ GPIOR05 = 5 ; |
|||
.equ GPIOR06 = 6 ; |
|||
.equ GPIOR07 = 7 ; |
|||
|
|||
; PRR - Power Reduction Register |
|||
.equ PRADC = 0 ; Power Reduction ADC |
|||
.equ PRUSART0 = 1 ; Power Reduction USART |
|||
.equ PRSPI = 2 ; Power Reduction Serial Peripheral Interface |
|||
.equ PRTIM1 = 3 ; Power Reduction Timer/Counter1 |
|||
.equ PRTIM0 = 5 ; Power Reduction Timer/Counter0 |
|||
.equ PRTIM2 = 6 ; Power Reduction Timer/Counter2 |
|||
.equ PRTWI = 7 ; Power Reduction TWI |
|||
|
|||
|
|||
; ***** WATCHDOG ********************* |
|||
; WDTCSR - Watchdog Timer Control Register |
|||
.equ WDP0 = 0 ; Watch Dog Timer Prescaler bit 0 |
|||
.equ WDP1 = 1 ; Watch Dog Timer Prescaler bit 1 |
|||
.equ WDP2 = 2 ; Watch Dog Timer Prescaler bit 2 |
|||
.equ WDE = 3 ; Watch Dog Enable |
|||
.equ WDCE = 4 ; Watchdog Change Enable |
|||
.equ WDP3 = 5 ; Watchdog Timer Prescaler Bit 3 |
|||
.equ WDIE = 6 ; Watchdog Timeout Interrupt Enable |
|||
.equ WDIF = 7 ; Watchdog Timeout Interrupt Flag |
|||
|
|||
|
|||
; ***** EEPROM *********************** |
|||
; EEARL - EEPROM Address Register Low Byte |
|||
.equ EEAR0 = 0 ; EEPROM Read/Write Access Bit 0 |
|||
.equ EEAR1 = 1 ; EEPROM Read/Write Access Bit 1 |
|||
.equ EEAR2 = 2 ; EEPROM Read/Write Access Bit 2 |
|||
.equ EEAR3 = 3 ; EEPROM Read/Write Access Bit 3 |
|||
.equ EEAR4 = 4 ; EEPROM Read/Write Access Bit 4 |
|||
.equ EEAR5 = 5 ; EEPROM Read/Write Access Bit 5 |
|||
.equ EEAR6 = 6 ; EEPROM Read/Write Access Bit 6 |
|||
.equ EEAR7 = 7 ; EEPROM Read/Write Access Bit 7 |
|||
|
|||
; EEDR - EEPROM Data Register |
|||
.equ EEDR0 = 0 ; EEPROM Data Register bit 0 |
|||
.equ EEDR1 = 1 ; EEPROM Data Register bit 1 |
|||
.equ EEDR2 = 2 ; EEPROM Data Register bit 2 |
|||
.equ EEDR3 = 3 ; EEPROM Data Register bit 3 |
|||
.equ EEDR4 = 4 ; EEPROM Data Register bit 4 |
|||
.equ EEDR5 = 5 ; EEPROM Data Register bit 5 |
|||
.equ EEDR6 = 6 ; EEPROM Data Register bit 6 |
|||
.equ EEDR7 = 7 ; EEPROM Data Register bit 7 |
|||
|
|||
; EECR - EEPROM Control Register |
|||
.equ EERE = 0 ; EEPROM Read Enable |
|||
.equ EEPE = 1 ; EEPROM Write Enable |
|||
.equ EEWE = EEPE ; For compatibility |
|||
.equ EEMPE = 2 ; EEPROM Master Write Enable |
|||
.equ EEMWE = EEMPE ; For compatibility |
|||
.equ EERIE = 3 ; EEPROM Ready Interrupt Enable |
|||
.equ EEPM0 = 4 ; EEPROM Programming Mode Bit 0 |
|||
.equ EEPM1 = 5 ; EEPROM Programming Mode Bit 1 |
|||
|
|||
|
|||
|
|||
; ***** LOCKSBITS ******************************************************** |
|||
.equ LB1 = 0 ; Lockbit |
|||
.equ LB2 = 1 ; Lockbit |
|||
|
|||
|
|||
; ***** FUSES ************************************************************ |
|||
; LOW fuse bits |
|||
.equ CKSEL0 = 0 ; Select Clock Source |
|||
.equ CKSEL1 = 1 ; Select Clock Source |
|||
.equ CKSEL2 = 2 ; Select Clock Source |
|||
.equ CKSEL3 = 3 ; Select Clock Source |
|||
.equ SUT0 = 4 ; Select start-up time |
|||
.equ SUT1 = 5 ; Select start-up time |
|||
.equ CKOUT = 6 ; Clock output |
|||
.equ CKDIV8 = 7 ; Divide clock by 8 |
|||
|
|||
; HIGH fuse bits |
|||
.equ BODLEVEL0 = 0 ; Brown-out Detector trigger level |
|||
.equ BODLEVEL1 = 1 ; Brown-out Detector trigger level |
|||
.equ BODLEVEL2 = 2 ; Brown-out Detector trigger level |
|||
.equ EESAVE = 3 ; EEPROM memory is preserved through chip erase |
|||
.equ WDTON = 4 ; Watchdog Timer Always On |
|||
.equ SPIEN = 5 ; Enable Serial programming and Data Downloading |
|||
.equ DWEN = 6 ; debugWIRE Enable |
|||
.equ RSTDISBL = 7 ; External reset disable |
|||
|
|||
; EXTENDED fuse bits |
|||
;.equ SELFPRGEN = 0 ; Self Programming Enable |
|||
|
|||
|
|||
|
|||
; ***** CPU REGISTER DEFINITIONS ***************************************** |
|||
.def XH = r27 |
|||
.def XL = r26 |
|||
.def YH = r29 |
|||
.def YL = r28 |
|||
.def ZH = r31 |
|||
.def ZL = r30 |
|||
|
|||
|
|||
|
|||
; ***** DATA MEMORY DECLARATIONS ***************************************** |
|||
.equ FLASHEND = 0x07ff ; Note: Word address |
|||
.equ IOEND = 0x00ff |
|||
.equ SRAM_START = 0x0100 |
|||
.equ SRAM_SIZE = 512 |
|||
.equ RAMEND = 0x02ff |
|||
.equ XRAMEND = 0x0000 |
|||
.equ E2END = 0x00ff |
|||
.equ EEPROMEND = 0x00ff |
|||
.equ EEADRBITS = 8 |
|||
#pragma AVRPART MEMORY PROG_FLASH 4096 |
|||
#pragma AVRPART MEMORY EEPROM 256 |
|||
#pragma AVRPART MEMORY INT_SRAM SIZE 512 |
|||
#pragma AVRPART MEMORY INT_SRAM START_ADDR 0x100 |
|||
|
|||
|
|||
|
|||
; ***** BOOTLOADER DECLARATIONS ****************************************** |
|||
.equ NRWW_START_ADDR = 0x0 |
|||
.equ NRWW_STOP_ADDR = 0x7ff |
|||
.equ RWW_START_ADDR = 0x0 |
|||
.equ RWW_STOP_ADDR = 0x0 |
|||
.equ PAGESIZE = 32 |
|||
|
|||
|
|||
|
|||
; ***** INTERRUPT VECTORS ************************************************ |
|||
.equ INT0addr = 0x0001 ; External Interrupt Request 0 |
|||
.equ INT1addr = 0x0002 ; External Interrupt Request 1 |
|||
.equ PCI0addr = 0x0003 ; Pin Change Interrupt Request 0 |
|||
.equ PCI1addr = 0x0004 ; Pin Change Interrupt Request 0 |
|||
.equ PCI2addr = 0x0005 ; Pin Change Interrupt Request 1 |
|||
.equ WDTaddr = 0x0006 ; Watchdog Time-out Interrupt |
|||
.equ OC2Aaddr = 0x0007 ; Timer/Counter2 Compare Match A |
|||
.equ OC2Baddr = 0x0008 ; Timer/Counter2 Compare Match A |
|||
.equ OVF2addr = 0x0009 ; Timer/Counter2 Overflow |
|||
.equ ICP1addr = 0x000a ; Timer/Counter1 Capture Event |
|||
.equ OC1Aaddr = 0x000b ; Timer/Counter1 Compare Match A |
|||
.equ OC1Baddr = 0x000c ; Timer/Counter1 Compare Match B |
|||
.equ OVF1addr = 0x000d ; Timer/Counter1 Overflow |
|||
.equ OC0Aaddr = 0x000e ; TimerCounter0 Compare Match A |
|||
.equ OC0Baddr = 0x000f ; TimerCounter0 Compare Match B |
|||
.equ OVF0addr = 0x0010 ; Timer/Couner0 Overflow |
|||
.equ SPIaddr = 0x0011 ; SPI Serial Transfer Complete |
|||
.equ URXCaddr = 0x0012 ; USART Rx Complete |
|||
.equ UDREaddr = 0x0013 ; USART, Data Register Empty |
|||
.equ UTXCaddr = 0x0014 ; USART Tx Complete |
|||
.equ ADCCaddr = 0x0015 ; ADC Conversion Complete |
|||
.equ ERDYaddr = 0x0016 ; EEPROM Ready |
|||
.equ ACIaddr = 0x0017 ; Analog Comparator |
|||
.equ TWIaddr = 0x0018 ; Two-wire Serial Interface |
|||
.equ SPMRaddr = 0x0019 ; Store Program Memory Read |
|||
|
|||
.equ INT_VECTORS_SIZE = 26 ; size in words |
|||
|
|||
#endif /* _M48DEF_INC_ */ |
|||
|
|||
; ***** END OF FILE ****************************************************** |
@ -0,0 +1,976 @@ |
|||
;***** THIS IS A MACHINE GENERATED FILE - DO NOT EDIT ******************** |
|||
;***** Created: 2009-11-03 14:40 ******* Source: ATmega88P.xml *********** |
|||
;************************************************************************* |
|||
;* A P P L I C A T I O N N O T E F O R T H E A V R F A M I L Y |
|||
;* |
|||
;* Number : AVR000 |
|||
;* File Name : "m88Pdef.inc" |
|||
;* Title : Register/Bit Definitions for the ATmega88P |
|||
;* Date : 2009-11-03 |
|||
;* Version : 2.35 |
|||
;* Support E-mail : avr@atmel.com |
|||
;* Target MCU : ATmega88P |
|||
;* |
|||
;* DESCRIPTION |
|||
;* When including this file in the assembly program file, all I/O register |
|||
;* names and I/O register bit names appearing in the data book can be used. |
|||
;* In addition, the six registers forming the three data pointers X, Y and |
|||
;* Z have been assigned names XL - ZH. Highest RAM address for Internal |
|||
;* SRAM is also defined |
|||
;* |
|||
;* The Register names are represented by their hexadecimal address. |
|||
;* |
|||
;* The Register Bit names are represented by their bit number (0-7). |
|||
;* |
|||
;* Please observe the difference in using the bit names with instructions |
|||
;* such as "sbr"/"cbr" (set/clear bit in register) and "sbrs"/"sbrc" |
|||
;* (skip if bit in register set/cleared). The following example illustrates |
|||
;* this: |
|||
;* |
|||
;* in r16,PORTB ;read PORTB latch |
|||
;* sbr r16,(1<<PB6)+(1<<PB5) ;set PB6 and PB5 (use masks, not bit#) |
|||
;* out PORTB,r16 ;output to PORTB |
|||
;* |
|||
;* in r16,TIFR ;read the Timer Interrupt Flag Register |
|||
;* sbrc r16,TOV0 ;test the overflow flag (use bit#) |
|||
;* rjmp TOV0_is_set ;jump if set |
|||
;* ... ;otherwise do something else |
|||
;************************************************************************* |
|||
|
|||
#ifndef _M88PDEF_INC_ |
|||
#define _M88PDEF_INC_ |
|||
|
|||
|
|||
#pragma partinc 0 |
|||
|
|||
; ***** SPECIFY DEVICE *************************************************** |
|||
.device ATmega88P |
|||
#pragma AVRPART ADMIN PART_NAME ATmega88P |
|||
.equ SIGNATURE_000 = 0x1e |
|||
.equ SIGNATURE_001 = 0x93 |
|||
.equ SIGNATURE_002 = 0x0f |
|||
|
|||
#pragma AVRPART CORE CORE_VERSION V2E |
|||
|
|||
|
|||
; ***** I/O REGISTER DEFINITIONS ***************************************** |
|||
; NOTE: |
|||
; Definitions marked "MEMORY MAPPED"are extended I/O ports |
|||
; and cannot be used with IN/OUT instructions |
|||
.equ UDR0 = 0xc6 ; MEMORY MAPPED |
|||
.equ UBRR0L = 0xc4 ; MEMORY MAPPED |
|||
.equ UBRR0H = 0xc5 ; MEMORY MAPPED |
|||
.equ UCSR0C = 0xc2 ; MEMORY MAPPED |
|||
.equ UCSR0B = 0xc1 ; MEMORY MAPPED |
|||
.equ UCSR0A = 0xc0 ; MEMORY MAPPED |
|||
.equ TWAMR = 0xbd ; MEMORY MAPPED |
|||
.equ TWCR = 0xbc ; MEMORY MAPPED |
|||
.equ TWDR = 0xbb ; MEMORY MAPPED |
|||
.equ TWAR = 0xba ; MEMORY MAPPED |
|||
.equ TWSR = 0xb9 ; MEMORY MAPPED |
|||
.equ TWBR = 0xb8 ; MEMORY MAPPED |
|||
.equ ASSR = 0xb6 ; MEMORY MAPPED |
|||
.equ OCR2B = 0xb4 ; MEMORY MAPPED |
|||
.equ OCR2A = 0xb3 ; MEMORY MAPPED |
|||
.equ TCNT2 = 0xb2 ; MEMORY MAPPED |
|||
.equ TCCR2B = 0xb1 ; MEMORY MAPPED |
|||
.equ TCCR2A = 0xb0 ; MEMORY MAPPED |
|||
.equ OCR1BL = 0x8a ; MEMORY MAPPED |
|||
.equ OCR1BH = 0x8b ; MEMORY MAPPED |
|||
.equ OCR1AL = 0x88 ; MEMORY MAPPED |
|||
.equ OCR1AH = 0x89 ; MEMORY MAPPED |
|||
.equ ICR1L = 0x86 ; MEMORY MAPPED |
|||
.equ ICR1H = 0x87 ; MEMORY MAPPED |
|||
.equ TCNT1L = 0x84 ; MEMORY MAPPED |
|||
.equ TCNT1H = 0x85 ; MEMORY MAPPED |
|||
.equ TCCR1C = 0x82 ; MEMORY MAPPED |
|||
.equ TCCR1B = 0x81 ; MEMORY MAPPED |
|||
.equ TCCR1A = 0x80 ; MEMORY MAPPED |
|||
.equ DIDR1 = 0x7f ; MEMORY MAPPED |
|||
.equ DIDR0 = 0x7e ; MEMORY MAPPED |
|||
.equ ADMUX = 0x7c ; MEMORY MAPPED |
|||
.equ ADCSRB = 0x7b ; MEMORY MAPPED |
|||
.equ ADCSRA = 0x7a ; MEMORY MAPPED |
|||
.equ ADCH = 0x79 ; MEMORY MAPPED |
|||
.equ ADCL = 0x78 ; MEMORY MAPPED |
|||
.equ TIMSK2 = 0x70 ; MEMORY MAPPED |
|||
.equ TIMSK1 = 0x6f ; MEMORY MAPPED |
|||
.equ TIMSK0 = 0x6e ; MEMORY MAPPED |
|||
.equ PCMSK1 = 0x6c ; MEMORY MAPPED |
|||
.equ PCMSK2 = 0x6d ; MEMORY MAPPED |
|||
.equ PCMSK0 = 0x6b ; MEMORY MAPPED |
|||
.equ EICRA = 0x69 ; MEMORY MAPPED |
|||
.equ PCICR = 0x68 ; MEMORY MAPPED |
|||
.equ OSCCAL = 0x66 ; MEMORY MAPPED |
|||
.equ PRR = 0x64 ; MEMORY MAPPED |
|||
.equ CLKPR = 0x61 ; MEMORY MAPPED |
|||
.equ WDTCSR = 0x60 ; MEMORY MAPPED |
|||
.equ SREG = 0x3f |
|||
.equ SPL = 0x3d |
|||
.equ SPH = 0x3e |
|||
.equ SPMCSR = 0x37 |
|||
.equ MCUCR = 0x35 |
|||
.equ MCUSR = 0x34 |
|||
.equ SMCR = 0x33 |
|||
.equ ACSR = 0x30 |
|||
.equ SPDR = 0x2e |
|||
.equ SPSR = 0x2d |
|||
.equ SPCR = 0x2c |
|||
.equ GPIOR2 = 0x2b |
|||
.equ GPIOR1 = 0x2a |
|||
.equ OCR0B = 0x28 |
|||
.equ OCR0A = 0x27 |
|||
.equ TCNT0 = 0x26 |
|||
.equ TCCR0B = 0x25 |
|||
.equ TCCR0A = 0x24 |
|||
.equ GTCCR = 0x23 |
|||
.equ EEARH = 0x22 |
|||
.equ EEARL = 0x21 |
|||
.equ EEDR = 0x20 |
|||
.equ EECR = 0x1f |
|||
.equ GPIOR0 = 0x1e |
|||
.equ EIMSK = 0x1d |
|||
.equ EIFR = 0x1c |
|||
.equ PCIFR = 0x1b |
|||
.equ TIFR2 = 0x17 |
|||
.equ TIFR1 = 0x16 |
|||
.equ TIFR0 = 0x15 |
|||
.equ PORTD = 0x0b |
|||
.equ DDRD = 0x0a |
|||
.equ PIND = 0x09 |
|||
.equ PORTC = 0x08 |
|||
.equ DDRC = 0x07 |
|||
.equ PINC = 0x06 |
|||
.equ PORTB = 0x05 |
|||
.equ DDRB = 0x04 |
|||
.equ PINB = 0x03 |
|||
|
|||
|
|||
; ***** BIT DEFINITIONS ************************************************** |
|||
|
|||
; ***** USART0 *********************** |
|||
; UDR0 - USART I/O Data Register |
|||
.equ UDR0_0 = 0 ; USART I/O Data Register bit 0 |
|||
.equ UDR0_1 = 1 ; USART I/O Data Register bit 1 |
|||
.equ UDR0_2 = 2 ; USART I/O Data Register bit 2 |
|||
.equ UDR0_3 = 3 ; USART I/O Data Register bit 3 |
|||
.equ UDR0_4 = 4 ; USART I/O Data Register bit 4 |
|||
.equ UDR0_5 = 5 ; USART I/O Data Register bit 5 |
|||
.equ UDR0_6 = 6 ; USART I/O Data Register bit 6 |
|||
.equ UDR0_7 = 7 ; USART I/O Data Register bit 7 |
|||
|
|||
; UCSR0A - USART Control and Status Register A |
|||
.equ MPCM0 = 0 ; Multi-processor Communication Mode |
|||
.equ U2X0 = 1 ; Double the USART transmission speed |
|||
.equ UPE0 = 2 ; Parity Error |
|||
.equ DOR0 = 3 ; Data overRun |
|||
.equ FE0 = 4 ; Framing Error |
|||
.equ UDRE0 = 5 ; USART Data Register Empty |
|||
.equ TXC0 = 6 ; USART Transmitt Complete |
|||
.equ RXC0 = 7 ; USART Receive Complete |
|||
|
|||
; UCSR0B - USART Control and Status Register B |
|||
.equ TXB80 = 0 ; Transmit Data Bit 8 |
|||
.equ RXB80 = 1 ; Receive Data Bit 8 |
|||
.equ UCSZ02 = 2 ; Character Size |
|||
.equ TXEN0 = 3 ; Transmitter Enable |
|||
.equ RXEN0 = 4 ; Receiver Enable |
|||
.equ UDRIE0 = 5 ; USART Data register Empty Interrupt Enable |
|||
.equ TXCIE0 = 6 ; TX Complete Interrupt Enable |
|||
.equ RXCIE0 = 7 ; RX Complete Interrupt Enable |
|||
|
|||
; UCSR0C - USART Control and Status Register C |
|||
.equ UCPOL0 = 0 ; Clock Polarity |
|||
.equ UCSZ00 = 1 ; Character Size |
|||
.equ UCPHA0 = UCSZ00 ; For compatibility |
|||
.equ UCSZ01 = 2 ; Character Size |
|||
.equ UDORD0 = UCSZ01 ; For compatibility |
|||
.equ USBS0 = 3 ; Stop Bit Select |
|||
.equ UPM00 = 4 ; Parity Mode Bit 0 |
|||
.equ UPM01 = 5 ; Parity Mode Bit 1 |
|||
.equ UMSEL00 = 6 ; USART Mode Select |
|||
.equ UMSEL0 = UMSEL00 ; For compatibility |
|||
.equ UMSEL01 = 7 ; USART Mode Select |
|||
.equ UMSEL1 = UMSEL01 ; For compatibility |
|||
|
|||
; UBRR0H - USART Baud Rate Register High Byte |
|||
.equ UBRR8 = 0 ; USART Baud Rate Register bit 8 |
|||
.equ UBRR9 = 1 ; USART Baud Rate Register bit 9 |
|||
.equ UBRR10 = 2 ; USART Baud Rate Register bit 10 |
|||
.equ UBRR11 = 3 ; USART Baud Rate Register bit 11 |
|||
|
|||
; UBRR0L - USART Baud Rate Register Low Byte |
|||
.equ _UBRR0 = 0 ; USART Baud Rate Register bit 0 |
|||
.equ _UBRR1 = 1 ; USART Baud Rate Register bit 1 |
|||
.equ UBRR2 = 2 ; USART Baud Rate Register bit 2 |
|||
.equ UBRR3 = 3 ; USART Baud Rate Register bit 3 |
|||
.equ UBRR4 = 4 ; USART Baud Rate Register bit 4 |
|||
.equ UBRR5 = 5 ; USART Baud Rate Register bit 5 |
|||
.equ UBRR6 = 6 ; USART Baud Rate Register bit 6 |
|||
.equ UBRR7 = 7 ; USART Baud Rate Register bit 7 |
|||
|
|||
|
|||
; ***** TWI ************************** |
|||
; TWAMR - TWI (Slave) Address Mask Register |
|||
.equ TWAM0 = 1 ; |
|||
.equ TWAMR0 = TWAM0 ; For compatibility |
|||
.equ TWAM1 = 2 ; |
|||
.equ TWAMR1 = TWAM1 ; For compatibility |
|||
.equ TWAM2 = 3 ; |
|||
.equ TWAMR2 = TWAM2 ; For compatibility |
|||
.equ TWAM3 = 4 ; |
|||
.equ TWAMR3 = TWAM3 ; For compatibility |
|||
.equ TWAM4 = 5 ; |
|||
.equ TWAMR4 = TWAM4 ; For compatibility |
|||
.equ TWAM5 = 6 ; |
|||
.equ TWAMR5 = TWAM5 ; For compatibility |
|||
.equ TWAM6 = 7 ; |
|||
.equ TWAMR6 = TWAM6 ; For compatibility |
|||
|
|||
; TWBR - TWI Bit Rate register |
|||
.equ TWBR0 = 0 ; |
|||
.equ TWBR1 = 1 ; |
|||
.equ TWBR2 = 2 ; |
|||
.equ TWBR3 = 3 ; |
|||
.equ TWBR4 = 4 ; |
|||
.equ TWBR5 = 5 ; |
|||
.equ TWBR6 = 6 ; |
|||
.equ TWBR7 = 7 ; |
|||
|
|||
; TWCR - TWI Control Register |
|||
.equ TWIE = 0 ; TWI Interrupt Enable |
|||
.equ TWEN = 2 ; TWI Enable Bit |
|||
.equ TWWC = 3 ; TWI Write Collition Flag |
|||
.equ TWSTO = 4 ; TWI Stop Condition Bit |
|||
.equ TWSTA = 5 ; TWI Start Condition Bit |
|||
.equ TWEA = 6 ; TWI Enable Acknowledge Bit |
|||
.equ TWINT = 7 ; TWI Interrupt Flag |
|||
|
|||
; TWSR - TWI Status Register |
|||
.equ TWPS0 = 0 ; TWI Prescaler |
|||
.equ TWPS1 = 1 ; TWI Prescaler |
|||
.equ TWS3 = 3 ; TWI Status |
|||
.equ TWS4 = 4 ; TWI Status |
|||
.equ TWS5 = 5 ; TWI Status |
|||
.equ TWS6 = 6 ; TWI Status |
|||
.equ TWS7 = 7 ; TWI Status |
|||
|
|||
; TWDR - TWI Data register |
|||
.equ TWD0 = 0 ; TWI Data Register Bit 0 |
|||
.equ TWD1 = 1 ; TWI Data Register Bit 1 |
|||
.equ TWD2 = 2 ; TWI Data Register Bit 2 |
|||
.equ TWD3 = 3 ; TWI Data Register Bit 3 |
|||
.equ TWD4 = 4 ; TWI Data Register Bit 4 |
|||
.equ TWD5 = 5 ; TWI Data Register Bit 5 |
|||
.equ TWD6 = 6 ; TWI Data Register Bit 6 |
|||
.equ TWD7 = 7 ; TWI Data Register Bit 7 |
|||
|
|||
; TWAR - TWI (Slave) Address register |
|||
.equ TWGCE = 0 ; TWI General Call Recognition Enable Bit |
|||
.equ TWA0 = 1 ; TWI (Slave) Address register Bit 0 |
|||
.equ TWA1 = 2 ; TWI (Slave) Address register Bit 1 |
|||
.equ TWA2 = 3 ; TWI (Slave) Address register Bit 2 |
|||
.equ TWA3 = 4 ; TWI (Slave) Address register Bit 3 |
|||
.equ TWA4 = 5 ; TWI (Slave) Address register Bit 4 |
|||
.equ TWA5 = 6 ; TWI (Slave) Address register Bit 5 |
|||
.equ TWA6 = 7 ; TWI (Slave) Address register Bit 6 |
|||
|
|||
|
|||
; ***** TIMER_COUNTER_1 ************** |
|||
; TIMSK1 - Timer/Counter Interrupt Mask Register |
|||
.equ TOIE1 = 0 ; Timer/Counter1 Overflow Interrupt Enable |
|||
.equ OCIE1A = 1 ; Timer/Counter1 Output CompareA Match Interrupt Enable |
|||
.equ OCIE1B = 2 ; Timer/Counter1 Output CompareB Match Interrupt Enable |
|||
.equ ICIE1 = 5 ; Timer/Counter1 Input Capture Interrupt Enable |
|||
|
|||
; TIFR1 - Timer/Counter Interrupt Flag register |
|||
.equ TOV1 = 0 ; Timer/Counter1 Overflow Flag |
|||
.equ OCF1A = 1 ; Output Compare Flag 1A |
|||
.equ OCF1B = 2 ; Output Compare Flag 1B |
|||
.equ ICF1 = 5 ; Input Capture Flag 1 |
|||
|
|||
; TCCR1A - Timer/Counter1 Control Register A |
|||
.equ WGM10 = 0 ; Waveform Generation Mode |
|||
.equ WGM11 = 1 ; Waveform Generation Mode |
|||
.equ COM1B0 = 4 ; Compare Output Mode 1B, bit 0 |
|||
.equ COM1B1 = 5 ; Compare Output Mode 1B, bit 1 |
|||
.equ COM1A0 = 6 ; Comparet Ouput Mode 1A, bit 0 |
|||
.equ COM1A1 = 7 ; Compare Output Mode 1A, bit 1 |
|||
|
|||
; TCCR1B - Timer/Counter1 Control Register B |
|||
.equ CS10 = 0 ; Prescaler source of Timer/Counter 1 |
|||
.equ CS11 = 1 ; Prescaler source of Timer/Counter 1 |
|||
.equ CS12 = 2 ; Prescaler source of Timer/Counter 1 |
|||
.equ WGM12 = 3 ; Waveform Generation Mode |
|||
.equ WGM13 = 4 ; Waveform Generation Mode |
|||
.equ ICES1 = 6 ; Input Capture 1 Edge Select |
|||
.equ ICNC1 = 7 ; Input Capture 1 Noise Canceler |
|||
|
|||
; TCCR1C - Timer/Counter1 Control Register C |
|||
.equ FOC1B = 6 ; |
|||
.equ FOC1A = 7 ; |
|||
|
|||
; GTCCR - General Timer/Counter Control Register |
|||
.equ PSRSYNC = 0 ; Prescaler Reset Timer/Counter1 and Timer/Counter0 |
|||
.equ TSM = 7 ; Timer/Counter Synchronization Mode |
|||
|
|||
|
|||
; ***** TIMER_COUNTER_2 ************** |
|||
; TIMSK2 - Timer/Counter Interrupt Mask register |
|||
.equ TOIE2 = 0 ; Timer/Counter2 Overflow Interrupt Enable |
|||
.equ TOIE2A = TOIE2 ; For compatibility |
|||
.equ OCIE2A = 1 ; Timer/Counter2 Output Compare Match A Interrupt Enable |
|||
.equ OCIE2B = 2 ; Timer/Counter2 Output Compare Match B Interrupt Enable |
|||
|
|||
; TIFR2 - Timer/Counter Interrupt Flag Register |
|||
.equ TOV2 = 0 ; Timer/Counter2 Overflow Flag |
|||
.equ OCF2A = 1 ; Output Compare Flag 2A |
|||
.equ OCF2B = 2 ; Output Compare Flag 2B |
|||
|
|||
; TCCR2A - Timer/Counter2 Control Register A |
|||
.equ WGM20 = 0 ; Waveform Genration Mode |
|||
.equ WGM21 = 1 ; Waveform Genration Mode |
|||
.equ COM2B0 = 4 ; Compare Output Mode bit 0 |
|||
.equ COM2B1 = 5 ; Compare Output Mode bit 1 |
|||
.equ COM2A0 = 6 ; Compare Output Mode bit 1 |
|||
.equ COM2A1 = 7 ; Compare Output Mode bit 1 |
|||
|
|||
; TCCR2B - Timer/Counter2 Control Register B |
|||
.equ CS20 = 0 ; Clock Select bit 0 |
|||
.equ CS21 = 1 ; Clock Select bit 1 |
|||
.equ CS22 = 2 ; Clock Select bit 2 |
|||
.equ WGM22 = 3 ; Waveform Generation Mode |
|||
.equ FOC2B = 6 ; Force Output Compare B |
|||
.equ FOC2A = 7 ; Force Output Compare A |
|||
|
|||
; TCNT2 - Timer/Counter2 |
|||
.equ TCNT2_0 = 0 ; Timer/Counter 2 bit 0 |
|||
.equ TCNT2_1 = 1 ; Timer/Counter 2 bit 1 |
|||
.equ TCNT2_2 = 2 ; Timer/Counter 2 bit 2 |
|||
.equ TCNT2_3 = 3 ; Timer/Counter 2 bit 3 |
|||
.equ TCNT2_4 = 4 ; Timer/Counter 2 bit 4 |
|||
.equ TCNT2_5 = 5 ; Timer/Counter 2 bit 5 |
|||
.equ TCNT2_6 = 6 ; Timer/Counter 2 bit 6 |
|||
.equ TCNT2_7 = 7 ; Timer/Counter 2 bit 7 |
|||
|
|||
; OCR2A - Timer/Counter2 Output Compare Register A |
|||
.equ OCR2A_0 = 0 ; Timer/Counter2 Output Compare Register Bit 0 |
|||
.equ OCR2A_1 = 1 ; Timer/Counter2 Output Compare Register Bit 1 |
|||
.equ OCR2A_2 = 2 ; Timer/Counter2 Output Compare Register Bit 2 |
|||
.equ OCR2A_3 = 3 ; Timer/Counter2 Output Compare Register Bit 3 |
|||
.equ OCR2A_4 = 4 ; Timer/Counter2 Output Compare Register Bit 4 |
|||
.equ OCR2A_5 = 5 ; Timer/Counter2 Output Compare Register Bit 5 |
|||
.equ OCR2A_6 = 6 ; Timer/Counter2 Output Compare Register Bit 6 |
|||
.equ OCR2A_7 = 7 ; Timer/Counter2 Output Compare Register Bit 7 |
|||
|
|||
; OCR2B - Timer/Counter2 Output Compare Register B |
|||
.equ OCR2B_0 = 0 ; Timer/Counter2 Output Compare Register Bit 0 |
|||
.equ OCR2B_1 = 1 ; Timer/Counter2 Output Compare Register Bit 1 |
|||
.equ OCR2B_2 = 2 ; Timer/Counter2 Output Compare Register Bit 2 |
|||
.equ OCR2B_3 = 3 ; Timer/Counter2 Output Compare Register Bit 3 |
|||
.equ OCR2B_4 = 4 ; Timer/Counter2 Output Compare Register Bit 4 |
|||
.equ OCR2B_5 = 5 ; Timer/Counter2 Output Compare Register Bit 5 |
|||
.equ OCR2B_6 = 6 ; Timer/Counter2 Output Compare Register Bit 6 |
|||
.equ OCR2B_7 = 7 ; Timer/Counter2 Output Compare Register Bit 7 |
|||
|
|||
; ASSR - Asynchronous Status Register |
|||
.equ TCR2BUB = 0 ; Timer/Counter Control Register2 Update Busy |
|||
.equ TCR2AUB = 1 ; Timer/Counter Control Register2 Update Busy |
|||
.equ OCR2BUB = 2 ; Output Compare Register 2 Update Busy |
|||
.equ OCR2AUB = 3 ; Output Compare Register2 Update Busy |
|||
.equ TCN2UB = 4 ; Timer/Counter2 Update Busy |
|||
.equ AS2 = 5 ; Asynchronous Timer/Counter2 |
|||
.equ EXCLK = 6 ; Enable External Clock Input |
|||
|
|||
; GTCCR - General Timer Counter Control register |
|||
.equ PSRASY = 1 ; Prescaler Reset Timer/Counter2 |
|||
.equ PSR2 = PSRASY ; For compatibility |
|||
;.equ TSM = 7 ; Timer/Counter Synchronization Mode |
|||
|
|||
|
|||
; ***** AD_CONVERTER ***************** |
|||
; ADMUX - The ADC multiplexer Selection Register |
|||
.equ MUX0 = 0 ; Analog Channel and Gain Selection Bits |
|||
.equ MUX1 = 1 ; Analog Channel and Gain Selection Bits |
|||
.equ MUX2 = 2 ; Analog Channel and Gain Selection Bits |
|||
.equ MUX3 = 3 ; Analog Channel and Gain Selection Bits |
|||
.equ ADLAR = 5 ; Left Adjust Result |
|||
.equ REFS0 = 6 ; Reference Selection Bit 0 |
|||
.equ REFS1 = 7 ; Reference Selection Bit 1 |
|||
|
|||
; ADCSRA - The ADC Control and Status register A |
|||
.equ ADPS0 = 0 ; ADC Prescaler Select Bits |
|||
.equ ADPS1 = 1 ; ADC Prescaler Select Bits |
|||
.equ ADPS2 = 2 ; ADC Prescaler Select Bits |
|||
.equ ADIE = 3 ; ADC Interrupt Enable |
|||
.equ ADIF = 4 ; ADC Interrupt Flag |
|||
.equ ADATE = 5 ; ADC Auto Trigger Enable |
|||
.equ ADSC = 6 ; ADC Start Conversion |
|||
.equ ADEN = 7 ; ADC Enable |
|||
|
|||
; ADCSRB - The ADC Control and Status register B |
|||
.equ ADTS0 = 0 ; ADC Auto Trigger Source bit 0 |
|||
.equ ADTS1 = 1 ; ADC Auto Trigger Source bit 1 |
|||
.equ ADTS2 = 2 ; ADC Auto Trigger Source bit 2 |
|||
.equ ACME = 6 ; |
|||
|
|||
; ADCH - ADC Data Register High Byte |
|||
.equ ADCH0 = 0 ; ADC Data Register High Byte Bit 0 |
|||
.equ ADCH1 = 1 ; ADC Data Register High Byte Bit 1 |
|||
.equ ADCH2 = 2 ; ADC Data Register High Byte Bit 2 |
|||
.equ ADCH3 = 3 ; ADC Data Register High Byte Bit 3 |
|||
.equ ADCH4 = 4 ; ADC Data Register High Byte Bit 4 |
|||
.equ ADCH5 = 5 ; ADC Data Register High Byte Bit 5 |
|||
.equ ADCH6 = 6 ; ADC Data Register High Byte Bit 6 |
|||
.equ ADCH7 = 7 ; ADC Data Register High Byte Bit 7 |
|||
|
|||
; ADCL - ADC Data Register Low Byte |
|||
.equ ADCL0 = 0 ; ADC Data Register Low Byte Bit 0 |
|||
.equ ADCL1 = 1 ; ADC Data Register Low Byte Bit 1 |
|||
.equ ADCL2 = 2 ; ADC Data Register Low Byte Bit 2 |
|||
.equ ADCL3 = 3 ; ADC Data Register Low Byte Bit 3 |
|||
.equ ADCL4 = 4 ; ADC Data Register Low Byte Bit 4 |
|||
.equ ADCL5 = 5 ; ADC Data Register Low Byte Bit 5 |
|||
.equ ADCL6 = 6 ; ADC Data Register Low Byte Bit 6 |
|||
.equ ADCL7 = 7 ; ADC Data Register Low Byte Bit 7 |
|||
|
|||
; DIDR0 - Digital Input Disable Register |
|||
.equ ADC0D = 0 ; |
|||
.equ ADC1D = 1 ; |
|||
.equ ADC2D = 2 ; |
|||
.equ ADC3D = 3 ; |
|||
.equ ADC4D = 4 ; |
|||
.equ ADC5D = 5 ; |
|||
|
|||
|
|||
; ***** ANALOG_COMPARATOR ************ |
|||
; ACSR - Analog Comparator Control And Status Register |
|||
.equ ACIS0 = 0 ; Analog Comparator Interrupt Mode Select bit 0 |
|||
.equ ACIS1 = 1 ; Analog Comparator Interrupt Mode Select bit 1 |
|||
.equ ACIC = 2 ; Analog Comparator Input Capture Enable |
|||
.equ ACIE = 3 ; Analog Comparator Interrupt Enable |
|||
.equ ACI = 4 ; Analog Comparator Interrupt Flag |
|||
.equ ACO = 5 ; Analog Compare Output |
|||
.equ ACBG = 6 ; Analog Comparator Bandgap Select |
|||
.equ ACD = 7 ; Analog Comparator Disable |
|||
|
|||
; DIDR1 - Digital Input Disable Register 1 |
|||
.equ AIN0D = 0 ; AIN0 Digital Input Disable |
|||
.equ AIN1D = 1 ; AIN1 Digital Input Disable |
|||
|
|||
|
|||
; ***** PORTB ************************ |
|||
; PORTB - Port B Data Register |
|||
.equ PORTB0 = 0 ; Port B Data Register bit 0 |
|||
.equ PB0 = 0 ; For compatibility |
|||
.equ PORTB1 = 1 ; Port B Data Register bit 1 |
|||
.equ PB1 = 1 ; For compatibility |
|||
.equ PORTB2 = 2 ; Port B Data Register bit 2 |
|||
.equ PB2 = 2 ; For compatibility |
|||
.equ PORTB3 = 3 ; Port B Data Register bit 3 |
|||
.equ PB3 = 3 ; For compatibility |
|||
.equ PORTB4 = 4 ; Port B Data Register bit 4 |
|||
.equ PB4 = 4 ; For compatibility |
|||
.equ PORTB5 = 5 ; Port B Data Register bit 5 |
|||
.equ PB5 = 5 ; For compatibility |
|||
.equ PORTB6 = 6 ; Port B Data Register bit 6 |
|||
.equ PB6 = 6 ; For compatibility |
|||
.equ PORTB7 = 7 ; Port B Data Register bit 7 |
|||
.equ PB7 = 7 ; For compatibility |
|||
|
|||
; DDRB - Port B Data Direction Register |
|||
.equ DDB0 = 0 ; Port B Data Direction Register bit 0 |
|||
.equ DDB1 = 1 ; Port B Data Direction Register bit 1 |
|||
.equ DDB2 = 2 ; Port B Data Direction Register bit 2 |
|||
.equ DDB3 = 3 ; Port B Data Direction Register bit 3 |
|||
.equ DDB4 = 4 ; Port B Data Direction Register bit 4 |
|||
.equ DDB5 = 5 ; Port B Data Direction Register bit 5 |
|||
.equ DDB6 = 6 ; Port B Data Direction Register bit 6 |
|||
.equ DDB7 = 7 ; Port B Data Direction Register bit 7 |
|||
|
|||
; PINB - Port B Input Pins |
|||
.equ PINB0 = 0 ; Port B Input Pins bit 0 |
|||
.equ PINB1 = 1 ; Port B Input Pins bit 1 |
|||
.equ PINB2 = 2 ; Port B Input Pins bit 2 |
|||
.equ PINB3 = 3 ; Port B Input Pins bit 3 |
|||
.equ PINB4 = 4 ; Port B Input Pins bit 4 |
|||
.equ PINB5 = 5 ; Port B Input Pins bit 5 |
|||
.equ PINB6 = 6 ; Port B Input Pins bit 6 |
|||
.equ PINB7 = 7 ; Port B Input Pins bit 7 |
|||
|
|||
|
|||
; ***** PORTC ************************ |
|||
; PORTC - Port C Data Register |
|||
.equ PORTC0 = 0 ; Port C Data Register bit 0 |
|||
.equ PC0 = 0 ; For compatibility |
|||
.equ PORTC1 = 1 ; Port C Data Register bit 1 |
|||
.equ PC1 = 1 ; For compatibility |
|||
.equ PORTC2 = 2 ; Port C Data Register bit 2 |
|||
.equ PC2 = 2 ; For compatibility |
|||
.equ PORTC3 = 3 ; Port C Data Register bit 3 |
|||
.equ PC3 = 3 ; For compatibility |
|||
.equ PORTC4 = 4 ; Port C Data Register bit 4 |
|||
.equ PC4 = 4 ; For compatibility |
|||
.equ PORTC5 = 5 ; Port C Data Register bit 5 |
|||
.equ PC5 = 5 ; For compatibility |
|||
.equ PORTC6 = 6 ; Port C Data Register bit 6 |
|||
.equ PC6 = 6 ; For compatibility |
|||
|
|||
; DDRC - Port C Data Direction Register |
|||
.equ DDC0 = 0 ; Port C Data Direction Register bit 0 |
|||
.equ DDC1 = 1 ; Port C Data Direction Register bit 1 |
|||
.equ DDC2 = 2 ; Port C Data Direction Register bit 2 |
|||
.equ DDC3 = 3 ; Port C Data Direction Register bit 3 |
|||
.equ DDC4 = 4 ; Port C Data Direction Register bit 4 |
|||
.equ DDC5 = 5 ; Port C Data Direction Register bit 5 |
|||
.equ DDC6 = 6 ; Port C Data Direction Register bit 6 |
|||
|
|||
; PINC - Port C Input Pins |
|||
.equ PINC0 = 0 ; Port C Input Pins bit 0 |
|||
.equ PINC1 = 1 ; Port C Input Pins bit 1 |
|||
.equ PINC2 = 2 ; Port C Input Pins bit 2 |
|||
.equ PINC3 = 3 ; Port C Input Pins bit 3 |
|||
.equ PINC4 = 4 ; Port C Input Pins bit 4 |
|||
.equ PINC5 = 5 ; Port C Input Pins bit 5 |
|||
.equ PINC6 = 6 ; Port C Input Pins bit 6 |
|||
|
|||
|
|||
; ***** PORTD ************************ |
|||
; PORTD - Port D Data Register |
|||
.equ PORTD0 = 0 ; Port D Data Register bit 0 |
|||
.equ PD0 = 0 ; For compatibility |
|||
.equ PORTD1 = 1 ; Port D Data Register bit 1 |
|||
.equ PD1 = 1 ; For compatibility |
|||
.equ PORTD2 = 2 ; Port D Data Register bit 2 |
|||
.equ PD2 = 2 ; For compatibility |
|||
.equ PORTD3 = 3 ; Port D Data Register bit 3 |
|||
.equ PD3 = 3 ; For compatibility |
|||
.equ PORTD4 = 4 ; Port D Data Register bit 4 |
|||
.equ PD4 = 4 ; For compatibility |
|||
.equ PORTD5 = 5 ; Port D Data Register bit 5 |
|||
.equ PD5 = 5 ; For compatibility |
|||
.equ PORTD6 = 6 ; Port D Data Register bit 6 |
|||
.equ PD6 = 6 ; For compatibility |
|||
.equ PORTD7 = 7 ; Port D Data Register bit 7 |
|||
.equ PD7 = 7 ; For compatibility |
|||
|
|||
; DDRD - Port D Data Direction Register |
|||
.equ DDD0 = 0 ; Port D Data Direction Register bit 0 |
|||
.equ DDD1 = 1 ; Port D Data Direction Register bit 1 |
|||
.equ DDD2 = 2 ; Port D Data Direction Register bit 2 |
|||
.equ DDD3 = 3 ; Port D Data Direction Register bit 3 |
|||
.equ DDD4 = 4 ; Port D Data Direction Register bit 4 |
|||
.equ DDD5 = 5 ; Port D Data Direction Register bit 5 |
|||
.equ DDD6 = 6 ; Port D Data Direction Register bit 6 |
|||
.equ DDD7 = 7 ; Port D Data Direction Register bit 7 |
|||
|
|||
; PIND - Port D Input Pins |
|||
.equ PIND0 = 0 ; Port D Input Pins bit 0 |
|||
.equ PIND1 = 1 ; Port D Input Pins bit 1 |
|||
.equ PIND2 = 2 ; Port D Input Pins bit 2 |
|||
.equ PIND3 = 3 ; Port D Input Pins bit 3 |
|||
.equ PIND4 = 4 ; Port D Input Pins bit 4 |
|||
.equ PIND5 = 5 ; Port D Input Pins bit 5 |
|||
.equ PIND6 = 6 ; Port D Input Pins bit 6 |
|||
.equ PIND7 = 7 ; Port D Input Pins bit 7 |
|||
|
|||
|
|||
; ***** TIMER_COUNTER_0 ************** |
|||
; TIMSK0 - Timer/Counter0 Interrupt Mask Register |
|||
.equ TOIE0 = 0 ; Timer/Counter0 Overflow Interrupt Enable |
|||
.equ OCIE0A = 1 ; Timer/Counter0 Output Compare Match A Interrupt Enable |
|||
.equ OCIE0B = 2 ; Timer/Counter0 Output Compare Match B Interrupt Enable |
|||
|
|||
; TIFR0 - Timer/Counter0 Interrupt Flag register |
|||
.equ TOV0 = 0 ; Timer/Counter0 Overflow Flag |
|||
.equ OCF0A = 1 ; Timer/Counter0 Output Compare Flag 0A |
|||
.equ OCF0B = 2 ; Timer/Counter0 Output Compare Flag 0B |
|||
|
|||
; TCCR0A - Timer/Counter Control Register A |
|||
.equ WGM00 = 0 ; Waveform Generation Mode |
|||
.equ WGM01 = 1 ; Waveform Generation Mode |
|||
.equ COM0B0 = 4 ; Compare Output Mode, Fast PWm |
|||
.equ COM0B1 = 5 ; Compare Output Mode, Fast PWm |
|||
.equ COM0A0 = 6 ; Compare Output Mode, Phase Correct PWM Mode |
|||
.equ COM0A1 = 7 ; Compare Output Mode, Phase Correct PWM Mode |
|||
|
|||
; TCCR0B - Timer/Counter Control Register B |
|||
.equ CS00 = 0 ; Clock Select |
|||
.equ CS01 = 1 ; Clock Select |
|||
.equ CS02 = 2 ; Clock Select |
|||
.equ WGM02 = 3 ; |
|||
.equ FOC0B = 6 ; Force Output Compare B |
|||
.equ FOC0A = 7 ; Force Output Compare A |
|||
|
|||
; TCNT0 - Timer/Counter0 |
|||
.equ TCNT0_0 = 0 ; |
|||
.equ TCNT0_1 = 1 ; |
|||
.equ TCNT0_2 = 2 ; |
|||
.equ TCNT0_3 = 3 ; |
|||
.equ TCNT0_4 = 4 ; |
|||
.equ TCNT0_5 = 5 ; |
|||
.equ TCNT0_6 = 6 ; |
|||
.equ TCNT0_7 = 7 ; |
|||
|
|||
; OCR0A - Timer/Counter0 Output Compare Register |
|||
.equ OCR0A_0 = 0 ; |
|||
.equ OCR0A_1 = 1 ; |
|||
.equ OCR0A_2 = 2 ; |
|||
.equ OCR0A_3 = 3 ; |
|||
.equ OCR0A_4 = 4 ; |
|||
.equ OCR0A_5 = 5 ; |
|||
.equ OCR0A_6 = 6 ; |
|||
.equ OCR0A_7 = 7 ; |
|||
|
|||
; OCR0B - Timer/Counter0 Output Compare Register |
|||
.equ OCR0B_0 = 0 ; |
|||
.equ OCR0B_1 = 1 ; |
|||
.equ OCR0B_2 = 2 ; |
|||
.equ OCR0B_3 = 3 ; |
|||
.equ OCR0B_4 = 4 ; |
|||
.equ OCR0B_5 = 5 ; |
|||
.equ OCR0B_6 = 6 ; |
|||
.equ OCR0B_7 = 7 ; |
|||
|
|||
; GTCCR - General Timer/Counter Control Register |
|||
;.equ PSRSYNC = 0 ; Prescaler Reset Timer/Counter1 and Timer/Counter0 |
|||
.equ PSR10 = PSRSYNC ; For compatibility |
|||
;.equ TSM = 7 ; Timer/Counter Synchronization Mode |
|||
|
|||
|
|||
; ***** EXTERNAL_INTERRUPT *********** |
|||
; EICRA - External Interrupt Control Register |
|||
.equ ISC00 = 0 ; External Interrupt Sense Control 0 Bit 0 |
|||
.equ ISC01 = 1 ; External Interrupt Sense Control 0 Bit 1 |
|||
.equ ISC10 = 2 ; External Interrupt Sense Control 1 Bit 0 |
|||
.equ ISC11 = 3 ; External Interrupt Sense Control 1 Bit 1 |
|||
|
|||
; EIMSK - External Interrupt Mask Register |
|||
.equ INT0 = 0 ; External Interrupt Request 0 Enable |
|||
.equ INT1 = 1 ; External Interrupt Request 1 Enable |
|||
|
|||
; EIFR - External Interrupt Flag Register |
|||
.equ INTF0 = 0 ; External Interrupt Flag 0 |
|||
.equ INTF1 = 1 ; External Interrupt Flag 1 |
|||
|
|||
; PCICR - Pin Change Interrupt Control Register |
|||
.equ PCIE0 = 0 ; Pin Change Interrupt Enable 0 |
|||
.equ PCIE1 = 1 ; Pin Change Interrupt Enable 1 |
|||
.equ PCIE2 = 2 ; Pin Change Interrupt Enable 2 |
|||
|
|||
; PCMSK2 - Pin Change Mask Register 2 |
|||
.equ PCINT16 = 0 ; Pin Change Enable Mask 16 |
|||
.equ PCINT17 = 1 ; Pin Change Enable Mask 17 |
|||
.equ PCINT18 = 2 ; Pin Change Enable Mask 18 |
|||
.equ PCINT19 = 3 ; Pin Change Enable Mask 19 |
|||
.equ PCINT20 = 4 ; Pin Change Enable Mask 20 |
|||
.equ PCINT21 = 5 ; Pin Change Enable Mask 21 |
|||
.equ PCINT22 = 6 ; Pin Change Enable Mask 22 |
|||
.equ PCINT23 = 7 ; Pin Change Enable Mask 23 |
|||
|
|||
; PCMSK1 - Pin Change Mask Register 1 |
|||
.equ PCINT8 = 0 ; Pin Change Enable Mask 8 |
|||
.equ PCINT9 = 1 ; Pin Change Enable Mask 9 |
|||
.equ PCINT10 = 2 ; Pin Change Enable Mask 10 |
|||
.equ PCINT11 = 3 ; Pin Change Enable Mask 11 |
|||
.equ PCINT12 = 4 ; Pin Change Enable Mask 12 |
|||
.equ PCINT13 = 5 ; Pin Change Enable Mask 13 |
|||
.equ PCINT14 = 6 ; Pin Change Enable Mask 14 |
|||
|
|||
; PCMSK0 - Pin Change Mask Register 0 |
|||
.equ PCINT0 = 0 ; Pin Change Enable Mask 0 |
|||
.equ PCINT1 = 1 ; Pin Change Enable Mask 1 |
|||
.equ PCINT2 = 2 ; Pin Change Enable Mask 2 |
|||
.equ PCINT3 = 3 ; Pin Change Enable Mask 3 |
|||
.equ PCINT4 = 4 ; Pin Change Enable Mask 4 |
|||
.equ PCINT5 = 5 ; Pin Change Enable Mask 5 |
|||
.equ PCINT6 = 6 ; Pin Change Enable Mask 6 |
|||
.equ PCINT7 = 7 ; Pin Change Enable Mask 7 |
|||
|
|||
; PCIFR - Pin Change Interrupt Flag Register |
|||
.equ PCIF0 = 0 ; Pin Change Interrupt Flag 0 |
|||
.equ PCIF1 = 1 ; Pin Change Interrupt Flag 1 |
|||
.equ PCIF2 = 2 ; Pin Change Interrupt Flag 2 |
|||
|
|||
|
|||
; ***** SPI ************************** |
|||
; SPDR - SPI Data Register |
|||
.equ SPDR0 = 0 ; SPI Data Register bit 0 |
|||
.equ SPDR1 = 1 ; SPI Data Register bit 1 |
|||
.equ SPDR2 = 2 ; SPI Data Register bit 2 |
|||
.equ SPDR3 = 3 ; SPI Data Register bit 3 |
|||
.equ SPDR4 = 4 ; SPI Data Register bit 4 |
|||
.equ SPDR5 = 5 ; SPI Data Register bit 5 |
|||
.equ SPDR6 = 6 ; SPI Data Register bit 6 |
|||
.equ SPDR7 = 7 ; SPI Data Register bit 7 |
|||
|
|||
; SPSR - SPI Status Register |
|||
.equ SPI2X = 0 ; Double SPI Speed Bit |
|||
.equ WCOL = 6 ; Write Collision Flag |
|||
.equ SPIF = 7 ; SPI Interrupt Flag |
|||
|
|||
; SPCR - SPI Control Register |
|||
.equ SPR0 = 0 ; SPI Clock Rate Select 0 |
|||
.equ SPR1 = 1 ; SPI Clock Rate Select 1 |
|||
.equ CPHA = 2 ; Clock Phase |
|||
.equ CPOL = 3 ; Clock polarity |
|||
.equ MSTR = 4 ; Master/Slave Select |
|||
.equ DORD = 5 ; Data Order |
|||
.equ SPE = 6 ; SPI Enable |
|||
.equ SPIE = 7 ; SPI Interrupt Enable |
|||
|
|||
|
|||
; ***** WATCHDOG ********************* |
|||
; WDTCSR - Watchdog Timer Control Register |
|||
.equ WDP0 = 0 ; Watch Dog Timer Prescaler bit 0 |
|||
.equ WDP1 = 1 ; Watch Dog Timer Prescaler bit 1 |
|||
.equ WDP2 = 2 ; Watch Dog Timer Prescaler bit 2 |
|||
.equ WDE = 3 ; Watch Dog Enable |
|||
.equ WDCE = 4 ; Watchdog Change Enable |
|||
.equ WDP3 = 5 ; Watchdog Timer Prescaler Bit 3 |
|||
.equ WDIE = 6 ; Watchdog Timeout Interrupt Enable |
|||
.equ WDIF = 7 ; Watchdog Timeout Interrupt Flag |
|||
|
|||
|
|||
; ***** EEPROM *********************** |
|||
; EEARL - EEPROM Address Register Low Byte |
|||
.equ EEAR0 = 0 ; EEPROM Read/Write Access Bit 0 |
|||
.equ EEAR1 = 1 ; EEPROM Read/Write Access Bit 1 |
|||
.equ EEAR2 = 2 ; EEPROM Read/Write Access Bit 2 |
|||
.equ EEAR3 = 3 ; EEPROM Read/Write Access Bit 3 |
|||
.equ EEAR4 = 4 ; EEPROM Read/Write Access Bit 4 |
|||
.equ EEAR5 = 5 ; EEPROM Read/Write Access Bit 5 |
|||
.equ EEAR6 = 6 ; EEPROM Read/Write Access Bit 6 |
|||
.equ EEAR7 = 7 ; EEPROM Read/Write Access Bit 7 |
|||
|
|||
; EEARH - EEPROM Address Register High Byte |
|||
.equ EEAR8 = 0 ; EEPROM Read/Write Access Bit 0 |
|||
|
|||
; EEDR - EEPROM Data Register |
|||
.equ EEDR0 = 0 ; EEPROM Data Register bit 0 |
|||
.equ EEDR1 = 1 ; EEPROM Data Register bit 1 |
|||
.equ EEDR2 = 2 ; EEPROM Data Register bit 2 |
|||
.equ EEDR3 = 3 ; EEPROM Data Register bit 3 |
|||
.equ EEDR4 = 4 ; EEPROM Data Register bit 4 |
|||
.equ EEDR5 = 5 ; EEPROM Data Register bit 5 |
|||
.equ EEDR6 = 6 ; EEPROM Data Register bit 6 |
|||
.equ EEDR7 = 7 ; EEPROM Data Register bit 7 |
|||
|
|||
; EECR - EEPROM Control Register |
|||
.equ EERE = 0 ; EEPROM Read Enable |
|||
.equ EEPE = 1 ; EEPROM Write Enable |
|||
.equ EEMPE = 2 ; EEPROM Master Write Enable |
|||
.equ EERIE = 3 ; EEPROM Ready Interrupt Enable |
|||
.equ EEPM0 = 4 ; EEPROM Programming Mode Bit 0 |
|||
.equ EEPM1 = 5 ; EEPROM Programming Mode Bit 1 |
|||
|
|||
|
|||
; ***** CPU ************************** |
|||
; SREG - Status Register |
|||
.equ SREG_C = 0 ; Carry Flag |
|||
.equ SREG_Z = 1 ; Zero Flag |
|||
.equ SREG_N = 2 ; Negative Flag |
|||
.equ SREG_V = 3 ; Two's Complement Overflow Flag |
|||
.equ SREG_S = 4 ; Sign Bit |
|||
.equ SREG_H = 5 ; Half Carry Flag |
|||
.equ SREG_T = 6 ; Bit Copy Storage |
|||
.equ SREG_I = 7 ; Global Interrupt Enable |
|||
|
|||
; OSCCAL - Oscillator Calibration Value |
|||
.equ CAL0 = 0 ; Oscillator Calibration Value Bit0 |
|||
.equ CAL1 = 1 ; Oscillator Calibration Value Bit1 |
|||
.equ CAL2 = 2 ; Oscillator Calibration Value Bit2 |
|||
.equ CAL3 = 3 ; Oscillator Calibration Value Bit3 |
|||
.equ CAL4 = 4 ; Oscillator Calibration Value Bit4 |
|||
.equ CAL5 = 5 ; Oscillator Calibration Value Bit5 |
|||
.equ CAL6 = 6 ; Oscillator Calibration Value Bit6 |
|||
.equ CAL7 = 7 ; Oscillator Calibration Value Bit7 |
|||
|
|||
; CLKPR - Clock Prescale Register |
|||
.equ CLKPS0 = 0 ; Clock Prescaler Select Bit 0 |
|||
.equ CLKPS1 = 1 ; Clock Prescaler Select Bit 1 |
|||
.equ CLKPS2 = 2 ; Clock Prescaler Select Bit 2 |
|||
.equ CLKPS3 = 3 ; Clock Prescaler Select Bit 3 |
|||
.equ CLKPCE = 7 ; Clock Prescaler Change Enable |
|||
|
|||
; SPMCSR - Store Program Memory Control and Status Register |
|||
.equ SELFPRGEN = 0 ; Self Programming Enable |
|||
.equ PGERS = 1 ; Page Erase |
|||
.equ PGWRT = 2 ; Page Write |
|||
.equ BLBSET = 3 ; Boot Lock Bit Set |
|||
.equ RWWSRE = 4 ; Read-While-Write section read enable |
|||
.equ RWWSB = 6 ; Read-While-Write Section Busy |
|||
.equ SPMIE = 7 ; SPM Interrupt Enable |
|||
|
|||
; MCUCR - MCU Control Register |
|||
.equ IVCE = 0 ; |
|||
.equ IVSEL = 1 ; |
|||
.equ PUD = 4 ; |
|||
.equ BODSE = 5 ; BOD Sleep Enable |
|||
.equ BODS = 6 ; BOD Sleep |
|||
|
|||
; MCUSR - MCU Status Register |
|||
.equ PORF = 0 ; Power-on reset flag |
|||
.equ EXTRF = 1 ; External Reset Flag |
|||
.equ EXTREF = EXTRF ; For compatibility |
|||
.equ BORF = 2 ; Brown-out Reset Flag |
|||
.equ WDRF = 3 ; Watchdog Reset Flag |
|||
|
|||
; SMCR - Sleep Mode Control Register |
|||
.equ SE = 0 ; Sleep Enable |
|||
.equ SM0 = 1 ; Sleep Mode Select Bit 0 |
|||
.equ SM1 = 2 ; Sleep Mode Select Bit 1 |
|||
.equ SM2 = 3 ; Sleep Mode Select Bit 2 |
|||
|
|||
; GPIOR2 - General Purpose I/O Register 2 |
|||
.equ GPIOR20 = 0 ; |
|||
.equ GPIOR21 = 1 ; |
|||
.equ GPIOR22 = 2 ; |
|||
.equ GPIOR23 = 3 ; |
|||
.equ GPIOR24 = 4 ; |
|||
.equ GPIOR25 = 5 ; |
|||
.equ GPIOR26 = 6 ; |
|||
.equ GPIOR27 = 7 ; |
|||
|
|||
; GPIOR1 - General Purpose I/O Register 1 |
|||
.equ GPIOR10 = 0 ; |
|||
.equ GPIOR11 = 1 ; |
|||
.equ GPIOR12 = 2 ; |
|||
.equ GPIOR13 = 3 ; |
|||
.equ GPIOR14 = 4 ; |
|||
.equ GPIOR15 = 5 ; |
|||
.equ GPIOR16 = 6 ; |
|||
.equ GPIOR17 = 7 ; |
|||
|
|||
; GPIOR0 - General Purpose I/O Register 0 |
|||
.equ GPIOR00 = 0 ; |
|||
.equ GPIOR01 = 1 ; |
|||
.equ GPIOR02 = 2 ; |
|||
.equ GPIOR03 = 3 ; |
|||
.equ GPIOR04 = 4 ; |
|||
.equ GPIOR05 = 5 ; |
|||
.equ GPIOR06 = 6 ; |
|||
.equ GPIOR07 = 7 ; |
|||
|
|||
; PRR - Power Reduction Register |
|||
.equ PRADC = 0 ; Power Reduction ADC |
|||
.equ PRUSART0 = 1 ; Power Reduction USART |
|||
.equ PRSPI = 2 ; Power Reduction Serial Peripheral Interface |
|||
.equ PRTIM1 = 3 ; Power Reduction Timer/Counter1 |
|||
.equ PRTIM0 = 5 ; Power Reduction Timer/Counter0 |
|||
.equ PRTIM2 = 6 ; Power Reduction Timer/Counter2 |
|||
.equ PRTWI = 7 ; Power Reduction TWI |
|||
|
|||
|
|||
|
|||
; ***** LOCKSBITS ******************************************************** |
|||
.equ LB1 = 0 ; Lock bit |
|||
.equ LB2 = 1 ; Lock bit |
|||
.equ BLB01 = 2 ; Boot Lock bit |
|||
.equ BLB02 = 3 ; Boot Lock bit |
|||
.equ BLB11 = 4 ; Boot lock bit |
|||
.equ BLB12 = 5 ; Boot lock bit |
|||
|
|||
|
|||
; ***** FUSES ************************************************************ |
|||
; LOW fuse bits |
|||
.equ CKSEL0 = 0 ; Select Clock Source |
|||
.equ CKSEL1 = 1 ; Select Clock Source |
|||
.equ CKSEL2 = 2 ; Select Clock Source |
|||
.equ CKSEL3 = 3 ; Select Clock Source |
|||
.equ SUT0 = 4 ; Select start-up time |
|||
.equ SUT1 = 5 ; Select start-up time |
|||
.equ CKOUT = 6 ; Clock output |
|||
.equ CKDIV8 = 7 ; Divide clock by 8 |
|||
|
|||
; HIGH fuse bits |
|||
.equ BODLEVEL0 = 0 ; Brown-out Detector trigger level |
|||
.equ BODLEVEL1 = 1 ; Brown-out Detector trigger level |
|||
.equ BODLEVEL2 = 2 ; Brown-out Detector trigger level |
|||
.equ EESAVE = 3 ; EEPROM memory is preserved through chip erase |
|||
.equ WDTON = 4 ; Watchdog Timer Always On |
|||
.equ SPIEN = 5 ; Enable Serial programming and Data Downloading |
|||
.equ DWEN = 6 ; debugWIRE Enable |
|||
.equ RSTDISBL = 7 ; External reset disable |
|||
|
|||
; EXTENDED fuse bits |
|||
.equ BOOTRST = 0 ; Select reset vector |
|||
.equ BOOTSZ0 = 1 ; Select boot size |
|||
.equ BOOTSZ1 = 2 ; Select boot size |
|||
|
|||
|
|||
|
|||
; ***** CPU REGISTER DEFINITIONS ***************************************** |
|||
.def XH = r27 |
|||
.def XL = r26 |
|||
.def YH = r29 |
|||
.def YL = r28 |
|||
.def ZH = r31 |
|||
.def ZL = r30 |
|||
|
|||
|
|||
|
|||
; ***** DATA MEMORY DECLARATIONS ***************************************** |
|||
.equ FLASHEND = 0x0fff ; Note: Word address |
|||
.equ IOEND = 0x00ff |
|||
.equ SRAM_START = 0x0100 |
|||
.equ SRAM_SIZE = 1024 |
|||
.equ RAMEND = 0x04ff |
|||
.equ XRAMEND = 0x0000 |
|||
.equ E2END = 0x01ff |
|||
.equ EEPROMEND = 0x01ff |
|||
.equ EEADRBITS = 9 |
|||
#pragma AVRPART MEMORY PROG_FLASH 8192 |
|||
#pragma AVRPART MEMORY EEPROM 512 |
|||
#pragma AVRPART MEMORY INT_SRAM SIZE 1024 |
|||
#pragma AVRPART MEMORY INT_SRAM START_ADDR 0x100 |
|||
|
|||
|
|||
|
|||
; ***** BOOTLOADER DECLARATIONS ****************************************** |
|||
.equ NRWW_START_ADDR = 0xc00 |
|||
.equ NRWW_STOP_ADDR = 0xfff |
|||
.equ RWW_START_ADDR = 0x0 |
|||
.equ RWW_STOP_ADDR = 0xbff |
|||
.equ PAGESIZE = 32 |
|||
.equ FIRSTBOOTSTART = 0xf80 |
|||
.equ SECONDBOOTSTART = 0xf00 |
|||
.equ THIRDBOOTSTART = 0xe00 |
|||
.equ FOURTHBOOTSTART = 0xc00 |
|||
.equ SMALLBOOTSTART = FIRSTBOOTSTART |
|||
.equ LARGEBOOTSTART = FOURTHBOOTSTART |
|||
|
|||
|
|||
|
|||
; ***** INTERRUPT VECTORS ************************************************ |
|||
.equ INT0addr = 0x0001 ; External Interrupt Request 0 |
|||
.equ INT1addr = 0x0002 ; External Interrupt Request 1 |
|||
.equ PCI0addr = 0x0003 ; Pin Change Interrupt Request 0 |
|||
.equ PCI1addr = 0x0004 ; Pin Change Interrupt Request 0 |
|||
.equ PCI2addr = 0x0005 ; Pin Change Interrupt Request 1 |
|||
.equ WDTaddr = 0x0006 ; Watchdog Time-out Interrupt |
|||
.equ OC2Aaddr = 0x0007 ; Timer/Counter2 Compare Match A |
|||
.equ OC2Baddr = 0x0008 ; Timer/Counter2 Compare Match A |
|||
.equ OVF2addr = 0x0009 ; Timer/Counter2 Overflow |
|||
.equ ICP1addr = 0x000a ; Timer/Counter1 Capture Event |
|||
.equ OC1Aaddr = 0x000b ; Timer/Counter1 Compare Match A |
|||
.equ OC1Baddr = 0x000c ; Timer/Counter1 Compare Match B |
|||
.equ OVF1addr = 0x000d ; Timer/Counter1 Overflow |
|||
.equ OC0Aaddr = 0x000e ; TimerCounter0 Compare Match A |
|||
.equ OC0Baddr = 0x000f ; TimerCounter0 Compare Match B |
|||
.equ OVF0addr = 0x0010 ; Timer/Couner0 Overflow |
|||
.equ SPIaddr = 0x0011 ; SPI Serial Transfer Complete |
|||
.equ URXCaddr = 0x0012 ; USART Rx Complete |
|||
.equ UDREaddr = 0x0013 ; USART, Data Register Empty |
|||
.equ UTXCaddr = 0x0014 ; USART Tx Complete |
|||
.equ ADCCaddr = 0x0015 ; ADC Conversion Complete |
|||
.equ ERDYaddr = 0x0016 ; EEPROM Ready |
|||
.equ ACIaddr = 0x0017 ; Analog Comparator |
|||
.equ TWIaddr = 0x0018 ; Two-wire Serial Interface |
|||
.equ SPMRaddr = 0x0019 ; Store Program Memory Read |
|||
|
|||
.equ INT_VECTORS_SIZE = 26 ; size in words |
|||
|
|||
#endif /* _M88PDEF_INC_ */ |
|||
|
|||
; ***** END OF FILE ****************************************************** |
@ -0,0 +1,738 @@ |
|||
;***** THIS IS A MACHINE GENERATED FILE - DO NOT EDIT ******************** |
|||
;***** Created: 2005-01-11 10:31 ******* Source: ATmega8.xml ************* |
|||
;************************************************************************* |
|||
;* A P P L I C A T I O N N O T E F O R T H E A V R F A M I L Y |
|||
;* |
|||
;* Number : AVR000 |
|||
;* File Name : "m8def.inc" |
|||
;* Title : Register/Bit Definitions for the ATmega8 |
|||
;* Date : 2005-01-11 |
|||
;* Version : 2.14 |
|||
;* Support E-mail : avr@atmel.com |
|||
;* Target MCU : ATmega8 |
|||
;* |
|||
;* DESCRIPTION |
|||
;* When including this file in the assembly program file, all I/O register |
|||
;* names and I/O register bit names appearing in the data book can be used. |
|||
;* In addition, the six registers forming the three data pointers X, Y and |
|||
;* Z have been assigned names XL - ZH. Highest RAM address for Internal |
|||
;* SRAM is also defined |
|||
;* |
|||
;* The Register names are represented by their hexadecimal address. |
|||
;* |
|||
;* The Register Bit names are represented by their bit number (0-7). |
|||
;* |
|||
;* Please observe the difference in using the bit names with instructions |
|||
;* such as "sbr"/"cbr" (set/clear bit in register) and "sbrs"/"sbrc" |
|||
;* (skip if bit in register set/cleared). The following example illustrates |
|||
;* this: |
|||
;* |
|||
;* in r16,PORTB ;read PORTB latch |
|||
;* sbr r16,(1<<PB6)+(1<<PB5) ;set PB6 and PB5 (use masks, not bit#) |
|||
;* out PORTB,r16 ;output to PORTB |
|||
;* |
|||
;* in r16,TIFR ;read the Timer Interrupt Flag Register |
|||
;* sbrc r16,TOV0 ;test the overflow flag (use bit#) |
|||
;* rjmp TOV0_is_set ;jump if set |
|||
;* ... ;otherwise do something else |
|||
;************************************************************************* |
|||
|
|||
;.ifndef _M8DEF_INC_ |
|||
;.define _M8DEF_INC_ |
|||
|
|||
|
|||
;.pragma partinc 0 |
|||
|
|||
; ***** SPECIFY DEVICE *************************************************** |
|||
.device ATmega8 |
|||
;.pragma AVRPART ADMIN PART_NAME ATmega8 |
|||
.equ SIGNATURE_000 = 0x1e |
|||
.equ SIGNATURE_001 = 0x93 |
|||
.equ SIGNATURE_002 = 0x07 |
|||
|
|||
;.pragma AVRPART CORE CORE_VERSION V2E |
|||
|
|||
|
|||
; ***** I/O REGISTER DEFINITIONS ***************************************** |
|||
; NOTE: |
|||
; Definitions marked "MEMORY MAPPED"are extended I/O ports |
|||
; and cannot be used with IN/OUT instructions |
|||
.equ SREG = 0x3f |
|||
.equ SPH = 0x3e |
|||
.equ SPL = 0x3d |
|||
.equ GICR = 0x3b |
|||
.equ GIFR = 0x3a |
|||
.equ TIMSK = 0x39 |
|||
.equ TIFR = 0x38 |
|||
.equ SPMCR = 0x37 |
|||
.equ TWCR = 0x36 |
|||
.equ MCUCR = 0x35 |
|||
.equ MCUCSR = 0x34 |
|||
.equ TCCR0 = 0x33 |
|||
.equ TCNT0 = 0x32 |
|||
.equ OSCCAL = 0x31 |
|||
.equ SFIOR = 0x30 |
|||
.equ TCCR1A = 0x2f |
|||
.equ TCCR1B = 0x2e |
|||
.equ TCNT1H = 0x2d |
|||
.equ TCNT1L = 0x2c |
|||
.equ OCR1AH = 0x2b |
|||
.equ OCR1AL = 0x2a |
|||
.equ OCR1BH = 0x29 |
|||
.equ OCR1BL = 0x28 |
|||
.equ ICR1H = 0x27 |
|||
.equ ICR1L = 0x26 |
|||
.equ TCCR2 = 0x25 |
|||
.equ TCNT2 = 0x24 |
|||
.equ OCR2 = 0x23 |
|||
.equ ASSR = 0x22 |
|||
.equ WDTCR = 0x21 |
|||
.equ UBRRH = 0x20 |
|||
.equ UCSRC = 0x20 |
|||
.equ EEARH = 0x1f |
|||
.equ EEARL = 0x1e |
|||
.equ EEDR = 0x1d |
|||
.equ EECR = 0x1c |
|||
.equ PORTB = 0x18 |
|||
.equ DDRB = 0x17 |
|||
.equ PINB = 0x16 |
|||
.equ PORTC = 0x15 |
|||
.equ DDRC = 0x14 |
|||
.equ PINC = 0x13 |
|||
.equ PORTD = 0x12 |
|||
.equ DDRD = 0x11 |
|||
.equ PIND = 0x10 |
|||
.equ SPDR = 0x0f |
|||
.equ SPSR = 0x0e |
|||
.equ SPCR = 0x0d |
|||
.equ UDR = 0x0c |
|||
.equ UCSRA = 0x0b |
|||
.equ UCSRB = 0x0a |
|||
.equ UBRRL = 0x09 |
|||
.equ ACSR = 0x08 |
|||
.equ ADMUX = 0x07 |
|||
.equ ADCSRA = 0x06 |
|||
.equ ADCH = 0x05 |
|||
.equ ADCL = 0x04 |
|||
.equ TWDR = 0x03 |
|||
.equ TWAR = 0x02 |
|||
.equ TWSR = 0x01 |
|||
.equ TWBR = 0x00 |
|||
|
|||
|
|||
; ***** BIT DEFINITIONS ************************************************** |
|||
|
|||
; ***** ANALOG_COMPARATOR ************ |
|||
; SFIOR - Special Function IO Register |
|||
.equ ACME = 3 ; Analog Comparator Multiplexer Enable |
|||
|
|||
; ACSR - Analog Comparator Control And Status Register |
|||
.equ ACIS0 = 0 ; Analog Comparator Interrupt Mode Select bit 0 |
|||
.equ ACIS1 = 1 ; Analog Comparator Interrupt Mode Select bit 1 |
|||
.equ ACIC = 2 ; Analog Comparator Input Capture Enable |
|||
.equ ACIE = 3 ; Analog Comparator Interrupt Enable |
|||
.equ ACI = 4 ; Analog Comparator Interrupt Flag |
|||
.equ ACO = 5 ; Analog Compare Output |
|||
.equ ACBG = 6 ; Analog Comparator Bandgap Select |
|||
.equ ACD = 7 ; Analog Comparator Disable |
|||
|
|||
|
|||
; ***** SPI ************************** |
|||
; SPDR - SPI Data Register |
|||
.equ SPDR0 = 0 ; SPI Data Register bit 0 |
|||
.equ SPDR1 = 1 ; SPI Data Register bit 1 |
|||
.equ SPDR2 = 2 ; SPI Data Register bit 2 |
|||
.equ SPDR3 = 3 ; SPI Data Register bit 3 |
|||
.equ SPDR4 = 4 ; SPI Data Register bit 4 |
|||
.equ SPDR5 = 5 ; SPI Data Register bit 5 |
|||
.equ SPDR6 = 6 ; SPI Data Register bit 6 |
|||
.equ SPDR7 = 7 ; SPI Data Register bit 7 |
|||
|
|||
; SPSR - SPI Status Register |
|||
.equ SPI2X = 0 ; Double SPI Speed Bit |
|||
.equ WCOL = 6 ; Write Collision Flag |
|||
.equ SPIF = 7 ; SPI Interrupt Flag |
|||
|
|||
; SPCR - SPI Control Register |
|||
.equ SPR0 = 0 ; SPI Clock Rate Select 0 |
|||
.equ SPR1 = 1 ; SPI Clock Rate Select 1 |
|||
.equ CPHA = 2 ; Clock Phase |
|||
.equ CPOL = 3 ; Clock polarity |
|||
.equ MSTR = 4 ; Master/Slave Select |
|||
.equ DORD = 5 ; Data Order |
|||
.equ SPE = 6 ; SPI Enable |
|||
.equ SPIE = 7 ; SPI Interrupt Enable |
|||
|
|||
|
|||
; ***** EXTERNAL_INTERRUPT *********** |
|||
; GICR - General Interrupt Control Register |
|||
.equ GIMSK = GICR ; For compatibility |
|||
.equ IVCE = 0 ; Interrupt Vector Change Enable |
|||
.equ IVSEL = 1 ; Interrupt Vector Select |
|||
.equ INT0 = 6 ; External Interrupt Request 0 Enable |
|||
.equ INT1 = 7 ; External Interrupt Request 1 Enable |
|||
|
|||
; GIFR - General Interrupt Flag Register |
|||
.equ INTF0 = 6 ; External Interrupt Flag 0 |
|||
.equ INTF1 = 7 ; External Interrupt Flag 1 |
|||
|
|||
; MCUCR - MCU Control Register |
|||
.equ ISC00 = 0 ; Interrupt Sense Control 0 Bit 0 |
|||
.equ ISC01 = 1 ; Interrupt Sense Control 0 Bit 1 |
|||
.equ ISC10 = 2 ; Interrupt Sense Control 1 Bit 0 |
|||
.equ ISC11 = 3 ; Interrupt Sense Control 1 Bit 1 |
|||
|
|||
|
|||
; ***** TIMER_COUNTER_0 ************** |
|||
; TIMSK - Timer/Counter Interrupt Mask Register |
|||
.equ TOIE0 = 0 ; Timer/Counter0 Overflow Interrupt Enable |
|||
|
|||
; TIFR - Timer/Counter Interrupt Flag register |
|||
.equ TOV0 = 0 ; Timer/Counter0 Overflow Flag |
|||
|
|||
; TCCR0 - Timer/Counter0 Control Register |
|||
.equ CS00 = 0 ; Clock Select0 bit 0 |
|||
.equ CS01 = 1 ; Clock Select0 bit 1 |
|||
.equ CS02 = 2 ; Clock Select0 bit 2 |
|||
|
|||
; TCNT0 - Timer Counter 0 |
|||
.equ TCNT00 = 0 ; Timer Counter 0 bit 0 |
|||
.equ TCNT01 = 1 ; Timer Counter 0 bit 1 |
|||
.equ TCNT02 = 2 ; Timer Counter 0 bit 2 |
|||
.equ TCNT03 = 3 ; Timer Counter 0 bit 3 |
|||
.equ TCNT04 = 4 ; Timer Counter 0 bit 4 |
|||
.equ TCNT05 = 5 ; Timer Counter 0 bit 5 |
|||
.equ TCNT06 = 6 ; Timer Counter 0 bit 6 |
|||
.equ TCNT07 = 7 ; Timer Counter 0 bit 7 |
|||
|
|||
|
|||
; ***** TIMER_COUNTER_1 ************** |
|||
; TIMSK - Timer/Counter Interrupt Mask Register |
|||
.equ TOIE1 = 2 ; Timer/Counter1 Overflow Interrupt Enable |
|||
.equ OCIE1B = 3 ; Timer/Counter1 Output CompareB Match Interrupt Enable |
|||
.equ OCIE1A = 4 ; Timer/Counter1 Output CompareA Match Interrupt Enable |
|||
.equ TICIE1 = 5 ; Timer/Counter1 Input Capture Interrupt Enable |
|||
|
|||
; TIFR - Timer/Counter Interrupt Flag register |
|||
.equ TOV1 = 2 ; Timer/Counter1 Overflow Flag |
|||
.equ OCF1B = 3 ; Output Compare Flag 1B |
|||
.equ OCF1A = 4 ; Output Compare Flag 1A |
|||
.equ ICF1 = 5 ; Input Capture Flag 1 |
|||
|
|||
; TCCR1A - Timer/Counter1 Control Register A |
|||
.equ WGM10 = 0 ; Waveform Generation Mode |
|||
.equ PWM10 = WGM10 ; For compatibility |
|||
.equ WGM11 = 1 ; Waveform Generation Mode |
|||
.equ PWM11 = WGM11 ; For compatibility |
|||
.equ FOC1B = 2 ; Force Output Compare 1B |
|||
.equ FOC1A = 3 ; Force Output Compare 1A |
|||
.equ COM1B0 = 4 ; Compare Output Mode 1B, bit 0 |
|||
.equ COM1B1 = 5 ; Compare Output Mode 1B, bit 1 |
|||
.equ COM1A0 = 6 ; Comparet Ouput Mode 1A, bit 0 |
|||
.equ COM1A1 = 7 ; Compare Output Mode 1A, bit 1 |
|||
|
|||
; TCCR1B - Timer/Counter1 Control Register B |
|||
.equ CS10 = 0 ; Prescaler source of Timer/Counter 1 |
|||
.equ CS11 = 1 ; Prescaler source of Timer/Counter 1 |
|||
.equ CS12 = 2 ; Prescaler source of Timer/Counter 1 |
|||
.equ WGM12 = 3 ; Waveform Generation Mode |
|||
.equ CTC10 = WGM12 ; For compatibility |
|||
.equ CTC1 = WGM12 ; For compatibility |
|||
.equ WGM13 = 4 ; Waveform Generation Mode |
|||
.equ CTC11 = WGM13 ; For compatibility |
|||
.equ ICES1 = 6 ; Input Capture 1 Edge Select |
|||
.equ ICNC1 = 7 ; Input Capture 1 Noise Canceler |
|||
|
|||
|
|||
; ***** TIMER_COUNTER_2 ************** |
|||
; TIMSK - Timer/Counter Interrupt Mask register |
|||
.equ TOIE2 = 6 ; Timer/Counter2 Overflow Interrupt Enable |
|||
.equ OCIE2 = 7 ; Timer/Counter2 Output Compare Match Interrupt Enable |
|||
|
|||
; TIFR - Timer/Counter Interrupt Flag Register |
|||
.equ TOV2 = 6 ; Timer/Counter2 Overflow Flag |
|||
.equ OCF2 = 7 ; Output Compare Flag 2 |
|||
|
|||
; TCCR2 - Timer/Counter2 Control Register |
|||
.equ CS20 = 0 ; Clock Select bit 0 |
|||
.equ CS21 = 1 ; Clock Select bit 1 |
|||
.equ CS22 = 2 ; Clock Select bit 2 |
|||
.equ WGM21 = 3 ; Waveform Generation Mode |
|||
.equ CTC2 = WGM21 ; For compatibility |
|||
.equ COM20 = 4 ; Compare Output Mode bit 0 |
|||
.equ COM21 = 5 ; Compare Output Mode bit 1 |
|||
.equ WGM20 = 6 ; Waveform Genration Mode |
|||
.equ PWM2 = WGM20 ; For compatibility |
|||
.equ FOC2 = 7 ; Force Output Compare |
|||
|
|||
; TCNT2 - Timer/Counter2 |
|||
.equ TCNT2_0 = 0 ; Timer/Counter 2 bit 0 |
|||
.equ TCNT2_1 = 1 ; Timer/Counter 2 bit 1 |
|||
.equ TCNT2_2 = 2 ; Timer/Counter 2 bit 2 |
|||
.equ TCNT2_3 = 3 ; Timer/Counter 2 bit 3 |
|||
.equ TCNT2_4 = 4 ; Timer/Counter 2 bit 4 |
|||
.equ TCNT2_5 = 5 ; Timer/Counter 2 bit 5 |
|||
.equ TCNT2_6 = 6 ; Timer/Counter 2 bit 6 |
|||
.equ TCNT2_7 = 7 ; Timer/Counter 2 bit 7 |
|||
|
|||
; OCR2 - Timer/Counter2 Output Compare Register |
|||
.equ OCR2_0 = 0 ; Timer/Counter2 Output Compare Register Bit 0 |
|||
.equ OCR2_1 = 1 ; Timer/Counter2 Output Compare Register Bit 1 |
|||
.equ OCR2_2 = 2 ; Timer/Counter2 Output Compare Register Bit 2 |
|||
.equ OCR2_3 = 3 ; Timer/Counter2 Output Compare Register Bit 3 |
|||
.equ OCR2_4 = 4 ; Timer/Counter2 Output Compare Register Bit 4 |
|||
.equ OCR2_5 = 5 ; Timer/Counter2 Output Compare Register Bit 5 |
|||
.equ OCR2_6 = 6 ; Timer/Counter2 Output Compare Register Bit 6 |
|||
.equ OCR2_7 = 7 ; Timer/Counter2 Output Compare Register Bit 7 |
|||
|
|||
; ASSR - Asynchronous Status Register |
|||
.equ TCR2UB = 0 ; Timer/counter Control Register2 Update Busy |
|||
.equ OCR2UB = 1 ; Output Compare Register2 Update Busy |
|||
.equ TCN2UB = 2 ; Timer/Counter2 Update Busy |
|||
.equ AS2 = 3 ; Asynchronous Timer/counter2 |
|||
|
|||
; SFIOR - Special Function IO Register |
|||
.equ PSR2 = 1 ; Prescaler Reset Timer/Counter2 |
|||
|
|||
|
|||
; ***** USART ************************ |
|||
; UDR - USART I/O Data Register |
|||
.equ UDR0 = 0 ; USART I/O Data Register bit 0 |
|||
.equ UDR1 = 1 ; USART I/O Data Register bit 1 |
|||
.equ UDR2 = 2 ; USART I/O Data Register bit 2 |
|||
.equ UDR3 = 3 ; USART I/O Data Register bit 3 |
|||
.equ UDR4 = 4 ; USART I/O Data Register bit 4 |
|||
.equ UDR5 = 5 ; USART I/O Data Register bit 5 |
|||
.equ UDR6 = 6 ; USART I/O Data Register bit 6 |
|||
.equ UDR7 = 7 ; USART I/O Data Register bit 7 |
|||
|
|||
; UCSRA - USART Control and Status Register A |
|||
.equ USR = UCSRA ; For compatibility |
|||
.equ MPCM = 0 ; Multi-processor Communication Mode |
|||
.equ U2X = 1 ; Double the USART transmission speed |
|||
.equ UPE = 2 ; Parity Error |
|||
.equ PE = UPE ; For compatibility |
|||
.equ DOR = 3 ; Data overRun |
|||
.equ FE = 4 ; Framing Error |
|||
.equ UDRE = 5 ; USART Data Register Empty |
|||
.equ TXC = 6 ; USART Transmitt Complete |
|||
.equ RXC = 7 ; USART Receive Complete |
|||
|
|||
; UCSRB - USART Control and Status Register B |
|||
.equ UCR = UCSRB ; For compatibility |
|||
.equ TXB8 = 0 ; Transmit Data Bit 8 |
|||
.equ RXB8 = 1 ; Receive Data Bit 8 |
|||
.equ UCSZ2 = 2 ; Character Size |
|||
.equ CHR9 = UCSZ2 ; For compatibility |
|||
.equ TXEN = 3 ; Transmitter Enable |
|||
.equ RXEN = 4 ; Receiver Enable |
|||
.equ UDRIE = 5 ; USART Data register Empty Interrupt Enable |
|||
.equ TXCIE = 6 ; TX Complete Interrupt Enable |
|||
.equ RXCIE = 7 ; RX Complete Interrupt Enable |
|||
|
|||
; UCSRC - USART Control and Status Register C |
|||
.equ UCPOL = 0 ; Clock Polarity |
|||
.equ UCSZ0 = 1 ; Character Size |
|||
.equ UCSZ1 = 2 ; Character Size |
|||
.equ USBS = 3 ; Stop Bit Select |
|||
.equ UPM0 = 4 ; Parity Mode Bit 0 |
|||
.equ UPM1 = 5 ; Parity Mode Bit 1 |
|||
.equ UMSEL = 6 ; USART Mode Select |
|||
.equ URSEL = 7 ; Register Select |
|||
|
|||
.equ UBRRHI = UBRRH ; For compatibility |
|||
|
|||
; ***** TWI ************************** |
|||
; TWBR - TWI Bit Rate register |
|||
.equ I2BR = TWBR ; For compatibility |
|||
.equ TWBR0 = 0 ; |
|||
.equ TWBR1 = 1 ; |
|||
.equ TWBR2 = 2 ; |
|||
.equ TWBR3 = 3 ; |
|||
.equ TWBR4 = 4 ; |
|||
.equ TWBR5 = 5 ; |
|||
.equ TWBR6 = 6 ; |
|||
.equ TWBR7 = 7 ; |
|||
|
|||
; TWCR - TWI Control Register |
|||
.equ I2CR = TWCR ; For compatibility |
|||
.equ TWIE = 0 ; TWI Interrupt Enable |
|||
.equ I2IE = TWIE ; For compatibility |
|||
.equ TWEN = 2 ; TWI Enable Bit |
|||
.equ I2EN = TWEN ; For compatibility |
|||
.equ ENI2C = TWEN ; For compatibility |
|||
.equ TWWC = 3 ; TWI Write Collition Flag |
|||
.equ I2WC = TWWC ; For compatibility |
|||
.equ TWSTO = 4 ; TWI Stop Condition Bit |
|||
.equ I2STO = TWSTO ; For compatibility |
|||
.equ TWSTA = 5 ; TWI Start Condition Bit |
|||
.equ I2STA = TWSTA ; For compatibility |
|||
.equ TWEA = 6 ; TWI Enable Acknowledge Bit |
|||
.equ I2EA = TWEA ; For compatibility |
|||
.equ TWINT = 7 ; TWI Interrupt Flag |
|||
.equ I2INT = TWINT ; For compatibility |
|||
|
|||
; TWSR - TWI Status Register |
|||
.equ I2SR = TWSR ; For compatibility |
|||
.equ TWPS0 = 0 ; TWI Prescaler |
|||
.equ TWS0 = TWPS0 ; For compatibility |
|||
.equ I2GCE = TWPS0 ; For compatibility |
|||
.equ TWPS1 = 1 ; TWI Prescaler |
|||
.equ TWS1 = TWPS1 ; For compatibility |
|||
.equ TWS3 = 3 ; TWI Status |
|||
.equ I2S3 = TWS3 ; For compatibility |
|||
.equ TWS4 = 4 ; TWI Status |
|||
.equ I2S4 = TWS4 ; For compatibility |
|||
.equ TWS5 = 5 ; TWI Status |
|||
.equ I2S5 = TWS5 ; For compatibility |
|||
.equ TWS6 = 6 ; TWI Status |
|||
.equ I2S6 = TWS6 ; For compatibility |
|||
.equ TWS7 = 7 ; TWI Status |
|||
.equ I2S7 = TWS7 ; For compatibility |
|||
|
|||
; TWDR - TWI Data register |
|||
.equ I2DR = TWDR ; For compatibility |
|||
.equ TWD0 = 0 ; TWI Data Register Bit 0 |
|||
.equ TWD1 = 1 ; TWI Data Register Bit 1 |
|||
.equ TWD2 = 2 ; TWI Data Register Bit 2 |
|||
.equ TWD3 = 3 ; TWI Data Register Bit 3 |
|||
.equ TWD4 = 4 ; TWI Data Register Bit 4 |
|||
.equ TWD5 = 5 ; TWI Data Register Bit 5 |
|||
.equ TWD6 = 6 ; TWI Data Register Bit 6 |
|||
.equ TWD7 = 7 ; TWI Data Register Bit 7 |
|||
|
|||
; TWAR - TWI (Slave) Address register |
|||
.equ I2AR = TWAR ; For compatibility |
|||
.equ TWGCE = 0 ; TWI General Call Recognition Enable Bit |
|||
.equ TWA0 = 1 ; TWI (Slave) Address register Bit 0 |
|||
.equ TWA1 = 2 ; TWI (Slave) Address register Bit 1 |
|||
.equ TWA2 = 3 ; TWI (Slave) Address register Bit 2 |
|||
.equ TWA3 = 4 ; TWI (Slave) Address register Bit 3 |
|||
.equ TWA4 = 5 ; TWI (Slave) Address register Bit 4 |
|||
.equ TWA5 = 6 ; TWI (Slave) Address register Bit 5 |
|||
.equ TWA6 = 7 ; TWI (Slave) Address register Bit 6 |
|||
|
|||
|
|||
; ***** WATCHDOG ********************* |
|||
; WDTCR - Watchdog Timer Control Register |
|||
.equ WDTCSR = WDTCR ; For compatibility |
|||
.equ WDP0 = 0 ; Watch Dog Timer Prescaler bit 0 |
|||
.equ WDP1 = 1 ; Watch Dog Timer Prescaler bit 1 |
|||
.equ WDP2 = 2 ; Watch Dog Timer Prescaler bit 2 |
|||
.equ WDE = 3 ; Watch Dog Enable |
|||
.equ WDCE = 4 ; Watchdog Change Enable |
|||
.equ WDTOE = WDCE ; For compatibility |
|||
|
|||
|
|||
; ***** PORTB ************************ |
|||
; PORTB - Port B Data Register |
|||
.equ PORTB0 = 0 ; Port B Data Register bit 0 |
|||
.equ PB0 = 0 ; For compatibility |
|||
.equ PORTB1 = 1 ; Port B Data Register bit 1 |
|||
.equ PB1 = 1 ; For compatibility |
|||
.equ PORTB2 = 2 ; Port B Data Register bit 2 |
|||
.equ PB2 = 2 ; For compatibility |
|||
.equ PORTB3 = 3 ; Port B Data Register bit 3 |
|||
.equ PB3 = 3 ; For compatibility |
|||
.equ PORTB4 = 4 ; Port B Data Register bit 4 |
|||
.equ PB4 = 4 ; For compatibility |
|||
.equ PORTB5 = 5 ; Port B Data Register bit 5 |
|||
.equ PB5 = 5 ; For compatibility |
|||
.equ PORTB6 = 6 ; Port B Data Register bit 6 |
|||
.equ PB6 = 6 ; For compatibility |
|||
.equ PORTB7 = 7 ; Port B Data Register bit 7 |
|||
.equ PB7 = 7 ; For compatibility |
|||
|
|||
; DDRB - Port B Data Direction Register |
|||
.equ DDB0 = 0 ; Port B Data Direction Register bit 0 |
|||
.equ DDB1 = 1 ; Port B Data Direction Register bit 1 |
|||
.equ DDB2 = 2 ; Port B Data Direction Register bit 2 |
|||
.equ DDB3 = 3 ; Port B Data Direction Register bit 3 |
|||
.equ DDB4 = 4 ; Port B Data Direction Register bit 4 |
|||
.equ DDB5 = 5 ; Port B Data Direction Register bit 5 |
|||
.equ DDB6 = 6 ; Port B Data Direction Register bit 6 |
|||
.equ DDB7 = 7 ; Port B Data Direction Register bit 7 |
|||
|
|||
; PINB - Port B Input Pins |
|||
.equ PINB0 = 0 ; Port B Input Pins bit 0 |
|||
.equ PINB1 = 1 ; Port B Input Pins bit 1 |
|||
.equ PINB2 = 2 ; Port B Input Pins bit 2 |
|||
.equ PINB3 = 3 ; Port B Input Pins bit 3 |
|||
.equ PINB4 = 4 ; Port B Input Pins bit 4 |
|||
.equ PINB5 = 5 ; Port B Input Pins bit 5 |
|||
.equ PINB6 = 6 ; Port B Input Pins bit 6 |
|||
.equ PINB7 = 7 ; Port B Input Pins bit 7 |
|||
|
|||
|
|||
; ***** PORTC ************************ |
|||
; PORTC - Port C Data Register |
|||
.equ PORTC0 = 0 ; Port C Data Register bit 0 |
|||
.equ PC0 = 0 ; For compatibility |
|||
.equ PORTC1 = 1 ; Port C Data Register bit 1 |
|||
.equ PC1 = 1 ; For compatibility |
|||
.equ PORTC2 = 2 ; Port C Data Register bit 2 |
|||
.equ PC2 = 2 ; For compatibility |
|||
.equ PORTC3 = 3 ; Port C Data Register bit 3 |
|||
.equ PC3 = 3 ; For compatibility |
|||
.equ PORTC4 = 4 ; Port C Data Register bit 4 |
|||
.equ PC4 = 4 ; For compatibility |
|||
.equ PORTC5 = 5 ; Port C Data Register bit 5 |
|||
.equ PC5 = 5 ; For compatibility |
|||
.equ PORTC6 = 6 ; Port C Data Register bit 6 |
|||
.equ PC6 = 6 ; For compatibility |
|||
|
|||
; DDRC - Port C Data Direction Register |
|||
.equ DDC0 = 0 ; Port C Data Direction Register bit 0 |
|||
.equ DDC1 = 1 ; Port C Data Direction Register bit 1 |
|||
.equ DDC2 = 2 ; Port C Data Direction Register bit 2 |
|||
.equ DDC3 = 3 ; Port C Data Direction Register bit 3 |
|||
.equ DDC4 = 4 ; Port C Data Direction Register bit 4 |
|||
.equ DDC5 = 5 ; Port C Data Direction Register bit 5 |
|||
.equ DDC6 = 6 ; Port C Data Direction Register bit 6 |
|||
|
|||
; PINC - Port C Input Pins |
|||
.equ PINC0 = 0 ; Port C Input Pins bit 0 |
|||
.equ PINC1 = 1 ; Port C Input Pins bit 1 |
|||
.equ PINC2 = 2 ; Port C Input Pins bit 2 |
|||
.equ PINC3 = 3 ; Port C Input Pins bit 3 |
|||
.equ PINC4 = 4 ; Port C Input Pins bit 4 |
|||
.equ PINC5 = 5 ; Port C Input Pins bit 5 |
|||
.equ PINC6 = 6 ; Port C Input Pins bit 6 |
|||
|
|||
|
|||
; ***** PORTD ************************ |
|||
; PORTD - Port D Data Register |
|||
.equ PORTD0 = 0 ; Port D Data Register bit 0 |
|||
.equ PD0 = 0 ; For compatibility |
|||
.equ PORTD1 = 1 ; Port D Data Register bit 1 |
|||
.equ PD1 = 1 ; For compatibility |
|||
.equ PORTD2 = 2 ; Port D Data Register bit 2 |
|||
.equ PD2 = 2 ; For compatibility |
|||
.equ PORTD3 = 3 ; Port D Data Register bit 3 |
|||
.equ PD3 = 3 ; For compatibility |
|||
.equ PORTD4 = 4 ; Port D Data Register bit 4 |
|||
.equ PD4 = 4 ; For compatibility |
|||
.equ PORTD5 = 5 ; Port D Data Register bit 5 |
|||
.equ PD5 = 5 ; For compatibility |
|||
.equ PORTD6 = 6 ; Port D Data Register bit 6 |
|||
.equ PD6 = 6 ; For compatibility |
|||
.equ PORTD7 = 7 ; Port D Data Register bit 7 |
|||
.equ PD7 = 7 ; For compatibility |
|||
|
|||
; DDRD - Port D Data Direction Register |
|||
.equ DDD0 = 0 ; Port D Data Direction Register bit 0 |
|||
.equ DDD1 = 1 ; Port D Data Direction Register bit 1 |
|||
.equ DDD2 = 2 ; Port D Data Direction Register bit 2 |
|||
.equ DDD3 = 3 ; Port D Data Direction Register bit 3 |
|||
.equ DDD4 = 4 ; Port D Data Direction Register bit 4 |
|||
.equ DDD5 = 5 ; Port D Data Direction Register bit 5 |
|||
.equ DDD6 = 6 ; Port D Data Direction Register bit 6 |
|||
.equ DDD7 = 7 ; Port D Data Direction Register bit 7 |
|||
|
|||
; PIND - Port D Input Pins |
|||
.equ PIND0 = 0 ; Port D Input Pins bit 0 |
|||
.equ PIND1 = 1 ; Port D Input Pins bit 1 |
|||
.equ PIND2 = 2 ; Port D Input Pins bit 2 |
|||
.equ PIND3 = 3 ; Port D Input Pins bit 3 |
|||
.equ PIND4 = 4 ; Port D Input Pins bit 4 |
|||
.equ PIND5 = 5 ; Port D Input Pins bit 5 |
|||
.equ PIND6 = 6 ; Port D Input Pins bit 6 |
|||
.equ PIND7 = 7 ; Port D Input Pins bit 7 |
|||
|
|||
|
|||
; ***** EEPROM *********************** |
|||
; EEDR - EEPROM Data Register |
|||
.equ EEDR0 = 0 ; EEPROM Data Register bit 0 |
|||
.equ EEDR1 = 1 ; EEPROM Data Register bit 1 |
|||
.equ EEDR2 = 2 ; EEPROM Data Register bit 2 |
|||
.equ EEDR3 = 3 ; EEPROM Data Register bit 3 |
|||
.equ EEDR4 = 4 ; EEPROM Data Register bit 4 |
|||
.equ EEDR5 = 5 ; EEPROM Data Register bit 5 |
|||
.equ EEDR6 = 6 ; EEPROM Data Register bit 6 |
|||
.equ EEDR7 = 7 ; EEPROM Data Register bit 7 |
|||
|
|||
; EECR - EEPROM Control Register |
|||
.equ EERE = 0 ; EEPROM Read Enable |
|||
.equ EEWE = 1 ; EEPROM Write Enable |
|||
.equ EEMWE = 2 ; EEPROM Master Write Enable |
|||
.equ EEWEE = EEMWE ; For compatibility |
|||
.equ EERIE = 3 ; EEPROM Ready Interrupt Enable |
|||
|
|||
|
|||
; ***** CPU ************************** |
|||
; SREG - Status Register |
|||
.equ SREG_C = 0 ; Carry Flag |
|||
.equ SREG_Z = 1 ; Zero Flag |
|||
.equ SREG_N = 2 ; Negative Flag |
|||
.equ SREG_V = 3 ; Two's Complement Overflow Flag |
|||
.equ SREG_S = 4 ; Sign Bit |
|||
.equ SREG_H = 5 ; Half Carry Flag |
|||
.equ SREG_T = 6 ; Bit Copy Storage |
|||
.equ SREG_I = 7 ; Global Interrupt Enable |
|||
|
|||
; MCUCR - MCU Control Register |
|||
;.equ ISC00 = 0 ; Interrupt Sense Control 0 Bit 0 |
|||
;.equ ISC01 = 1 ; Interrupt Sense Control 0 Bit 1 |
|||
;.equ ISC10 = 2 ; Interrupt Sense Control 1 Bit 0 |
|||
;.equ ISC11 = 3 ; Interrupt Sense Control 1 Bit 1 |
|||
.equ SM0 = 4 ; Sleep Mode Select |
|||
.equ SM1 = 5 ; Sleep Mode Select |
|||
.equ SM2 = 6 ; Sleep Mode Select |
|||
.equ SE = 7 ; Sleep Enable |
|||
|
|||
; MCUCSR - MCU Control And Status Register |
|||
.equ MCUSR = MCUCSR ; For compatibility |
|||
.equ PORF = 0 ; Power-on reset flag |
|||
.equ EXTRF = 1 ; External Reset Flag |
|||
.equ BORF = 2 ; Brown-out Reset Flag |
|||
.equ WDRF = 3 ; Watchdog Reset Flag |
|||
|
|||
; OSCCAL - Oscillator Calibration Value |
|||
.equ CAL0 = 0 ; Oscillator Calibration Value Bit0 |
|||
.equ CAL1 = 1 ; Oscillator Calibration Value Bit1 |
|||
.equ CAL2 = 2 ; Oscillator Calibration Value Bit2 |
|||
.equ CAL3 = 3 ; Oscillator Calibration Value Bit3 |
|||
.equ CAL4 = 4 ; Oscillator Calibration Value Bit4 |
|||
.equ CAL5 = 5 ; Oscillator Calibration Value Bit5 |
|||
.equ CAL6 = 6 ; Oscillator Calibration Value Bit6 |
|||
.equ CAL7 = 7 ; Oscillator Calibration Value Bit7 |
|||
|
|||
; SPMCR - Store Program Memory Control Register |
|||
.equ SPMEN = 0 ; Store Program Memory Enable |
|||
.equ PGERS = 1 ; Page Erase |
|||
.equ PGWRT = 2 ; Page Write |
|||
.equ BLBSET = 3 ; Boot Lock Bit Set |
|||
.equ RWWSRE = 4 ; Read-While-Write Section Read Enable |
|||
.equ RWWSB = 6 ; Read-While-Write Section Busy |
|||
.equ SPMIE = 7 ; SPM Interrupt Enable |
|||
|
|||
; SFIOR - Special Function IO Register |
|||
.equ PSR10 = 0 ; Prescaler Reset Timer/Counter1 and Timer/Counter0 |
|||
.equ PUD = 2 ; Pull-up Disable |
|||
.equ ADHSM = 4 ; ADC High Speed Mode |
|||
|
|||
|
|||
; ***** AD_CONVERTER ***************** |
|||
; ADMUX - The ADC multiplexer Selection Register |
|||
.equ MUX0 = 0 ; Analog Channel and Gain Selection Bits |
|||
.equ MUX1 = 1 ; Analog Channel and Gain Selection Bits |
|||
.equ MUX2 = 2 ; Analog Channel and Gain Selection Bits |
|||
.equ MUX3 = 3 ; Analog Channel and Gain Selection Bits |
|||
.equ ADLAR = 5 ; Left Adjust Result |
|||
.equ REFS0 = 6 ; Reference Selection Bit 0 |
|||
.equ REFS1 = 7 ; Reference Selection Bit 1 |
|||
|
|||
; ADCSRA - The ADC Control and Status register |
|||
.equ ADCSR = ADCSRA ; For compatibility |
|||
.equ ADPS0 = 0 ; ADC Prescaler Select Bits |
|||
.equ ADPS1 = 1 ; ADC Prescaler Select Bits |
|||
.equ ADPS2 = 2 ; ADC Prescaler Select Bits |
|||
.equ ADIE = 3 ; ADC Interrupt Enable |
|||
.equ ADIF = 4 ; ADC Interrupt Flag |
|||
.equ ADFR = 5 ; ADC Free Running Select |
|||
.equ ADSC = 6 ; ADC Start Conversion |
|||
.equ ADEN = 7 ; ADC Enable |
|||
|
|||
|
|||
|
|||
; ***** LOCKSBITS ******************************************************** |
|||
.equ LB1 = 0 ; Lock bit |
|||
.equ LB2 = 1 ; Lock bit |
|||
.equ BLB01 = 2 ; Boot Lock bit |
|||
.equ BLB02 = 3 ; Boot Lock bit |
|||
.equ BLB11 = 4 ; Boot lock bit |
|||
.equ BLB12 = 5 ; Boot lock bit |
|||
|
|||
|
|||
; ***** FUSES ************************************************************ |
|||
; LOW fuse bits |
|||
.equ CKSEL0 = 0 ; Select Clock Source |
|||
.equ CKSEL1 = 1 ; Select Clock Source |
|||
.equ CKSEL2 = 2 ; Select Clock Source |
|||
.equ CKSEL3 = 3 ; Select Clock Source |
|||
.equ SUT0 = 4 ; Select start-up time |
|||
.equ SUT1 = 5 ; Select start-up time |
|||
.equ BODEN = 6 ; Brown out detector enable |
|||
.equ BODLEVEL = 7 ; Brown out detector trigger level |
|||
|
|||
; HIGH fuse bits |
|||
.equ BOOTRST = 0 ; Select Reset Vector |
|||
.equ BOOTSZ0 = 1 ; Select Boot Size |
|||
.equ BOOTSZ1 = 2 ; Select Boot Size |
|||
.equ EESAVE = 3 ; EEPROM memory is preserved through chip erase |
|||
.equ CKOPT = 4 ; Oscillator Options |
|||
.equ SPIEN = 5 ; Enable Serial programming and Data Downloading |
|||
.equ WTDON = 6 ; Enable watchdog |
|||
.equ RSTDISBL = 7 ; Disable reset |
|||
|
|||
|
|||
|
|||
; ***** CPU REGISTER DEFINITIONS ***************************************** |
|||
.def XH = r27 |
|||
.def XL = r26 |
|||
.def YH = r29 |
|||
.def YL = r28 |
|||
.def ZH = r31 |
|||
.def ZL = r30 |
|||
|
|||
|
|||
|
|||
; ***** DATA MEMORY DECLARATIONS ***************************************** |
|||
.equ FLASHEND = 0x0fff ; Note: Word address |
|||
.equ IOEND = 0x003f |
|||
.equ SRAM_START = 0x0060 |
|||
.equ SRAM_SIZE = 1024 |
|||
.equ RAMEND = 0x045f |
|||
.equ XRAMEND = 0x0000 |
|||
.equ E2END = 0x01ff |
|||
.equ EEPROMEND = 0x01ff |
|||
.equ EEADRBITS = 9 |
|||
;.pragma AVRPART MEMORY PROG_FLASH 8192 |
|||
;.pragma AVRPART MEMORY EEPROM 512 |
|||
;.pragma AVRPART MEMORY INT_SRAM SIZE 1024 |
|||
;.pragma AVRPART MEMORY INT_SRAM START_ADDR 0x60 |
|||
|
|||
|
|||
|
|||
; ***** BOOTLOADER DECLARATIONS ****************************************** |
|||
.equ NRWW_START_ADDR = 0xc00 |
|||
.equ NRWW_STOP_ADDR = 0xfff |
|||
.equ RWW_START_ADDR = 0x0 |
|||
.equ RWW_STOP_ADDR = 0xbff |
|||
.equ PAGESIZE = 32 |
|||
.equ FIRSTBOOTSTART = 0xf80 |
|||
.equ SECONDBOOTSTART = 0xf00 |
|||
.equ THIRDBOOTSTART = 0xe00 |
|||
.equ FOURTHBOOTSTART = 0xc00 |
|||
.equ SMALLBOOTSTART = FIRSTBOOTSTART |
|||
.equ LARGEBOOTSTART = FOURTHBOOTSTART |
|||
|
|||
|
|||
|
|||
; ***** INTERRUPT VECTORS ************************************************ |
|||
.equ INT0addr = 0x0001 ; External Interrupt Request 0 |
|||
.equ INT1addr = 0x0002 ; External Interrupt Request 1 |
|||
.equ OC2addr = 0x0003 ; Timer/Counter2 Compare Match |
|||
.equ OVF2addr = 0x0004 ; Timer/Counter2 Overflow |
|||
.equ ICP1addr = 0x0005 ; Timer/Counter1 Capture Event |
|||
.equ OC1Aaddr = 0x0006 ; Timer/Counter1 Compare Match A |
|||
.equ OC1Baddr = 0x0007 ; Timer/Counter1 Compare Match B |
|||
.equ OVF1addr = 0x0008 ; Timer/Counter1 Overflow |
|||
.equ OVF0addr = 0x0009 ; Timer/Counter0 Overflow |
|||
.equ SPIaddr = 0x000a ; Serial Transfer Complete |
|||
.equ URXCaddr = 0x000b ; USART, Rx Complete |
|||
.equ UDREaddr = 0x000c ; USART Data Register Empty |
|||
.equ UTXCaddr = 0x000d ; USART, Tx Complete |
|||
.equ ADCCaddr = 0x000e ; ADC Conversion Complete |
|||
.equ ERDYaddr = 0x000f ; EEPROM Ready |
|||
.equ ACIaddr = 0x0010 ; Analog Comparator |
|||
.equ TWIaddr = 0x0011 ; 2-wire Serial Interface |
|||
.equ SPMRaddr = 0x0012 ; Store Program Memory Ready |
|||
|
|||
.equ INT_VECTORS_SIZE = 19 ; size in words |
|||
|
|||
;.pragma AVRPART CORE INSTRUCTIONS_NOT_SUPPORTED break |
|||
|
|||
;.endif /* _M8DEF_INC_ */ |
|||
|
|||
; ***** END OF FILE ****************************************************** |
@ -0,0 +1,674 @@ |
|||
GNU GENERAL PUBLIC LICENSE |
|||
Version 3, 29 June 2007 |
|||
|
|||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> |
|||
Everyone is permitted to copy and distribute verbatim copies |
|||
of this license document, but changing it is not allowed. |
|||
|
|||
Preamble |
|||
|
|||
The GNU General Public License is a free, copyleft license for |
|||
software and other kinds of works. |
|||
|
|||
The licenses for most software and other practical works are designed |
|||
to take away your freedom to share and change the works. By contrast, |
|||
the GNU General Public License is intended to guarantee your freedom to |
|||
share and change all versions of a program--to make sure it remains free |
|||
software for all its users. We, the Free Software Foundation, use the |
|||
GNU General Public License for most of our software; it applies also to |
|||
any other work released this way by its authors. You can apply it to |
|||
your programs, too. |
|||
|
|||
When we speak of free software, we are referring to freedom, not |
|||
price. Our General Public Licenses are designed to make sure that you |
|||
have the freedom to distribute copies of free software (and charge for |
|||
them if you wish), that you receive source code or can get it if you |
|||
want it, that you can change the software or use pieces of it in new |
|||
free programs, and that you know you can do these things. |
|||
|
|||
To protect your rights, we need to prevent others from denying you |
|||
these rights or asking you to surrender the rights. Therefore, you have |
|||
certain responsibilities if you distribute copies of the software, or if |
|||
you modify it: responsibilities to respect the freedom of others. |
|||
|
|||
For example, if you distribute copies of such a program, whether |
|||
gratis or for a fee, you must pass on to the recipients the same |
|||
freedoms that you received. You must make sure that they, too, receive |
|||
or can get the source code. And you must show them these terms so they |
|||
know their rights. |
|||
|
|||
Developers that use the GNU GPL protect your rights with two steps: |
|||
(1) assert copyright on the software, and (2) offer you this License |
|||
giving you legal permission to copy, distribute and/or modify it. |
|||
|
|||
For the developers' and authors' protection, the GPL clearly explains |
|||
that there is no warranty for this free software. For both users' and |
|||
authors' sake, the GPL requires that modified versions be marked as |
|||
changed, so that their problems will not be attributed erroneously to |
|||
authors of previous versions. |
|||
|
|||
Some devices are designed to deny users access to install or run |
|||
modified versions of the software inside them, although the manufacturer |
|||
can do so. This is fundamentally incompatible with the aim of |
|||
protecting users' freedom to change the software. The systematic |
|||
pattern of such abuse occurs in the area of products for individuals to |
|||
use, which is precisely where it is most unacceptable. Therefore, we |
|||
have designed this version of the GPL to prohibit the practice for those |
|||
products. If such problems arise substantially in other domains, we |
|||
stand ready to extend this provision to those domains in future versions |
|||
of the GPL, as needed to protect the freedom of users. |
|||
|
|||
Finally, every program is threatened constantly by software patents. |
|||
States should not allow patents to restrict development and use of |
|||
software on general-purpose computers, but in those that do, we wish to |
|||
avoid the special danger that patents applied to a free program could |
|||
make it effectively proprietary. To prevent this, the GPL assures that |
|||
patents cannot be used to render the program non-free. |
|||
|
|||
The precise terms and conditions for copying, distribution and |
|||
modification follow. |
|||
|
|||
TERMS AND CONDITIONS |
|||
|
|||
0. Definitions. |
|||
|
|||
"This License" refers to version 3 of the GNU General Public License. |
|||
|
|||
"Copyright" also means copyright-like laws that apply to other kinds of |
|||
works, such as semiconductor masks. |
|||
|
|||
"The Program" refers to any copyrightable work licensed under this |
|||
License. Each licensee is addressed as "you". "Licensees" and |
|||
"recipients" may be individuals or organizations. |
|||
|
|||
To "modify" a work means to copy from or adapt all or part of the work |
|||
in a fashion requiring copyright permission, other than the making of an |
|||
exact copy. The resulting work is called a "modified version" of the |
|||
earlier work or a work "based on" the earlier work. |
|||
|
|||
A "covered work" means either the unmodified Program or a work based |
|||
on the Program. |
|||
|
|||
To "propagate" a work means to do anything with it that, without |
|||
permission, would make you directly or secondarily liable for |
|||
infringement under applicable copyright law, except executing it on a |
|||
computer or modifying a private copy. Propagation includes copying, |
|||
distribution (with or without modification), making available to the |
|||
public, and in some countries other activities as well. |
|||
|
|||
To "convey" a work means any kind of propagation that enables other |
|||
parties to make or receive copies. Mere interaction with a user through |
|||
a computer network, with no transfer of a copy, is not conveying. |
|||
|
|||
An interactive user interface displays "Appropriate Legal Notices" |
|||
to the extent that it includes a convenient and prominently visible |
|||
feature that (1) displays an appropriate copyright notice, and (2) |
|||
tells the user that there is no warranty for the work (except to the |
|||
extent that warranties are provided), that licensees may convey the |
|||
work under this License, and how to view a copy of this License. If |
|||
the interface presents a list of user commands or options, such as a |
|||
menu, a prominent item in the list meets this criterion. |
|||
|
|||
1. Source Code. |
|||
|
|||
The "source code" for a work means the preferred form of the work |
|||
for making modifications to it. "Object code" means any non-source |
|||
form of a work. |
|||
|
|||
A "Standard Interface" means an interface that either is an official |
|||
standard defined by a recognized standards body, or, in the case of |
|||
interfaces specified for a particular programming language, one that |
|||
is widely used among developers working in that language. |
|||
|
|||
The "System Libraries" of an executable work include anything, other |
|||
than the work as a whole, that (a) is included in the normal form of |
|||
packaging a Major Component, but which is not part of that Major |
|||
Component, and (b) serves only to enable use of the work with that |
|||
Major Component, or to implement a Standard Interface for which an |
|||
implementation is available to the public in source code form. A |
|||
"Major Component", in this context, means a major essential component |
|||
(kernel, window system, and so on) of the specific operating system |
|||
(if any) on which the executable work runs, or a compiler used to |
|||
produce the work, or an object code interpreter used to run it. |
|||
|
|||
The "Corresponding Source" for a work in object code form means all |
|||
the source code needed to generate, install, and (for an executable |
|||
work) run the object code and to modify the work, including scripts to |
|||
control those activities. However, it does not include the work's |
|||
System Libraries, or general-purpose tools or generally available free |
|||
programs which are used unmodified in performing those activities but |
|||
which are not part of the work. For example, Corresponding Source |
|||
includes interface definition files associated with source files for |
|||
the work, and the source code for shared libraries and dynamically |
|||
linked subprograms that the work is specifically designed to require, |
|||
such as by intimate data communication or control flow between those |
|||
subprograms and other parts of the work. |
|||
|
|||
The Corresponding Source need not include anything that users |
|||
can regenerate automatically from other parts of the Corresponding |
|||
Source. |
|||
|
|||
The Corresponding Source for a work in source code form is that |
|||
same work. |
|||
|
|||
2. Basic Permissions. |
|||
|
|||
All rights granted under this License are granted for the term of |
|||
copyright on the Program, and are irrevocable provided the stated |
|||
conditions are met. This License explicitly affirms your unlimited |
|||
permission to run the unmodified Program. The output from running a |
|||
covered work is covered by this License only if the output, given its |
|||
content, constitutes a covered work. This License acknowledges your |
|||
rights of fair use or other equivalent, as provided by copyright law. |
|||
|
|||
You may make, run and propagate covered works that you do not |
|||
convey, without conditions so long as your license otherwise remains |
|||
in force. You may convey covered works to others for the sole purpose |
|||
of having them make modifications exclusively for you, or provide you |
|||
with facilities for running those works, provided that you comply with |
|||
the terms of this License in conveying all material for which you do |
|||
not control copyright. Those thus making or running the covered works |
|||
for you must do so exclusively on your behalf, under your direction |
|||
and control, on terms that prohibit them from making any copies of |
|||
your copyrighted material outside their relationship with you. |
|||
|
|||
Conveying under any other circumstances is permitted solely under |
|||
the conditions stated below. Sublicensing is not allowed; section 10 |
|||
makes it unnecessary. |
|||
|
|||
3. Protecting Users' Legal Rights From Anti-Circumvention Law. |
|||
|
|||
No covered work shall be deemed part of an effective technological |
|||
measure under any applicable law fulfilling obligations under article |
|||
11 of the WIPO copyright treaty adopted on 20 December 1996, or |
|||
similar laws prohibiting or restricting circumvention of such |
|||
measures. |
|||
|
|||
When you convey a covered work, you waive any legal power to forbid |
|||
circumvention of technological measures to the extent such circumvention |
|||
is effected by exercising rights under this License with respect to |
|||
the covered work, and you disclaim any intention to limit operation or |
|||
modification of the work as a means of enforcing, against the work's |
|||
users, your or third parties' legal rights to forbid circumvention of |
|||
technological measures. |
|||
|
|||
4. Conveying Verbatim Copies. |
|||
|
|||
You may convey verbatim copies of the Program's source code as you |
|||
receive it, in any medium, provided that you conspicuously and |
|||
appropriately publish on each copy an appropriate copyright notice; |
|||
keep intact all notices stating that this License and any |
|||
non-permissive terms added in accord with section 7 apply to the code; |
|||
keep intact all notices of the absence of any warranty; and give all |
|||
recipients a copy of this License along with the Program. |
|||
|
|||
You may charge any price or no price for each copy that you convey, |
|||
and you may offer support or warranty protection for a fee. |
|||
|
|||
5. Conveying Modified Source Versions. |
|||
|
|||
You may convey a work based on the Program, or the modifications to |
|||
produce it from the Program, in the form of source code under the |
|||
terms of section 4, provided that you also meet all of these conditions: |
|||
|
|||
a) The work must carry prominent notices stating that you modified |
|||
it, and giving a relevant date. |
|||
|
|||
b) The work must carry prominent notices stating that it is |
|||
released under this License and any conditions added under section |
|||
7. This requirement modifies the requirement in section 4 to |
|||
"keep intact all notices". |
|||
|
|||
c) You must license the entire work, as a whole, under this |
|||
License to anyone who comes into possession of a copy. This |
|||
License will therefore apply, along with any applicable section 7 |
|||
additional terms, to the whole of the work, and all its parts, |
|||
regardless of how they are packaged. This License gives no |
|||
permission to license the work in any other way, but it does not |
|||
invalidate such permission if you have separately received it. |
|||
|
|||
d) If the work has interactive user interfaces, each must display |
|||
Appropriate Legal Notices; however, if the Program has interactive |
|||
interfaces that do not display Appropriate Legal Notices, your |
|||
work need not make them do so. |
|||
|
|||
A compilation of a covered work with other separate and independent |
|||
works, which are not by their nature extensions of the covered work, |
|||
and which are not combined with it such as to form a larger program, |
|||
in or on a volume of a storage or distribution medium, is called an |
|||
"aggregate" if the compilation and its resulting copyright are not |
|||
used to limit the access or legal rights of the compilation's users |
|||
beyond what the individual works permit. Inclusion of a covered work |
|||
in an aggregate does not cause this License to apply to the other |
|||
parts of the aggregate. |
|||
|
|||
6. Conveying Non-Source Forms. |
|||
|
|||
You may convey a covered work in object code form under the terms |
|||
of sections 4 and 5, provided that you also convey the |
|||
machine-readable Corresponding Source under the terms of this License, |
|||
in one of these ways: |
|||
|
|||
a) Convey the object code in, or embodied in, a physical product |
|||
(including a physical distribution medium), accompanied by the |
|||
Corresponding Source fixed on a durable physical medium |
|||
customarily used for software interchange. |
|||
|
|||
b) Convey the object code in, or embodied in, a physical product |
|||
(including a physical distribution medium), accompanied by a |
|||
written offer, valid for at least three years and valid for as |
|||
long as you offer spare parts or customer support for that product |
|||
model, to give anyone who possesses the object code either (1) a |
|||
copy of the Corresponding Source for all the software in the |
|||
product that is covered by this License, on a durable physical |
|||
medium customarily used for software interchange, for a price no |
|||
more than your reasonable cost of physically performing this |
|||
conveying of source, or (2) access to copy the |
|||
Corresponding Source from a network server at no charge. |
|||
|
|||
c) Convey individual copies of the object code with a copy of the |
|||
written offer to provide the Corresponding Source. This |
|||
alternative is allowed only occasionally and noncommercially, and |
|||
only if you received the object code with such an offer, in accord |
|||
with subsection 6b. |
|||
|
|||
d) Convey the object code by offering access from a designated |
|||
place (gratis or for a charge), and offer equivalent access to the |
|||
Corresponding Source in the same way through the same place at no |
|||
further charge. You need not require recipients to copy the |
|||
Corresponding Source along with the object code. If the place to |
|||
copy the object code is a network server, the Corresponding Source |
|||
may be on a different server (operated by you or a third party) |
|||
that supports equivalent copying facilities, provided you maintain |
|||
clear directions next to the object code saying where to find the |
|||
Corresponding Source. Regardless of what server hosts the |
|||
Corresponding Source, you remain obligated to ensure that it is |
|||
available for as long as needed to satisfy these requirements. |
|||
|
|||
e) Convey the object code using peer-to-peer transmission, provided |
|||
you inform other peers where the object code and Corresponding |
|||
Source of the work are being offered to the general public at no |
|||
charge under subsection 6d. |
|||
|
|||
A separable portion of the object code, whose source code is excluded |
|||
from the Corresponding Source as a System Library, need not be |
|||
included in conveying the object code work. |
|||
|
|||
A "User Product" is either (1) a "consumer product", which means any |
|||
tangible personal property which is normally used for personal, family, |
|||
or household purposes, or (2) anything designed or sold for incorporation |
|||
into a dwelling. In determining whether a product is a consumer product, |
|||
doubtful cases shall be resolved in favor of coverage. For a particular |
|||
product received by a particular user, "normally used" refers to a |
|||
typical or common use of that class of product, regardless of the status |
|||
of the particular user or of the way in which the particular user |
|||
actually uses, or expects or is expected to use, the product. A product |
|||
is a consumer product regardless of whether the product has substantial |
|||
commercial, industrial or non-consumer uses, unless such uses represent |
|||
the only significant mode of use of the product. |
|||
|
|||
"Installation Information" for a User Product means any methods, |
|||
procedures, authorization keys, or other information required to install |
|||
and execute modified versions of a covered work in that User Product from |
|||
a modified version of its Corresponding Source. The information must |
|||
suffice to ensure that the continued functioning of the modified object |
|||
code is in no case prevented or interfered with solely because |
|||
modification has been made. |
|||
|
|||
If you convey an object code work under this section in, or with, or |
|||
specifically for use in, a User Product, and the conveying occurs as |
|||
part of a transaction in which the right of possession and use of the |
|||
User Product is transferred to the recipient in perpetuity or for a |
|||
fixed term (regardless of how the transaction is characterized), the |
|||
Corresponding Source conveyed under this section must be accompanied |
|||
by the Installation Information. But this requirement does not apply |
|||
if neither you nor any third party retains the ability to install |
|||
modified object code on the User Product (for example, the work has |
|||
been installed in ROM). |
|||
|
|||
The requirement to provide Installation Information does not include a |
|||
requirement to continue to provide support service, warranty, or updates |
|||
for a work that has been modified or installed by the recipient, or for |
|||
the User Product in which it has been modified or installed. Access to a |
|||
network may be denied when the modification itself materially and |
|||
adversely affects the operation of the network or violates the rules and |
|||
protocols for communication across the network. |
|||
|
|||
Corresponding Source conveyed, and Installation Information provided, |
|||
in accord with this section must be in a format that is publicly |
|||
documented (and with an implementation available to the public in |
|||
source code form), and must require no special password or key for |
|||
unpacking, reading or copying. |
|||
|
|||
7. Additional Terms. |
|||
|
|||
"Additional permissions" are terms that supplement the terms of this |
|||
License by making exceptions from one or more of its conditions. |
|||
Additional permissions that are applicable to the entire Program shall |
|||
be treated as though they were included in this License, to the extent |
|||
that they are valid under applicable law. If additional permissions |
|||
apply only to part of the Program, that part may be used separately |
|||
under those permissions, but the entire Program remains governed by |
|||
this License without regard to the additional permissions. |
|||
|
|||
When you convey a copy of a covered work, you may at your option |
|||
remove any additional permissions from that copy, or from any part of |
|||
it. (Additional permissions may be written to require their own |
|||
removal in certain cases when you modify the work.) You may place |
|||
additional permissions on material, added by you to a covered work, |
|||
for which you have or can give appropriate copyright permission. |
|||
|
|||
Notwithstanding any other provision of this License, for material you |
|||
add to a covered work, you may (if authorized by the copyright holders of |
|||
that material) supplement the terms of this License with terms: |
|||
|
|||
a) Disclaiming warranty or limiting liability differently from the |
|||
terms of sections 15 and 16 of this License; or |
|||
|
|||
b) Requiring preservation of specified reasonable legal notices or |
|||
author attributions in that material or in the Appropriate Legal |
|||
Notices displayed by works containing it; or |
|||
|
|||
c) Prohibiting misrepresentation of the origin of that material, or |
|||
requiring that modified versions of such material be marked in |
|||
reasonable ways as different from the original version; or |
|||
|
|||
d) Limiting the use for publicity purposes of names of licensors or |
|||
authors of the material; or |
|||
|
|||
e) Declining to grant rights under trademark law for use of some |
|||
trade names, trademarks, or service marks; or |
|||
|
|||
f) Requiring indemnification of licensors and authors of that |
|||
material by anyone who conveys the material (or modified versions of |
|||
it) with contractual assumptions of liability to the recipient, for |
|||
any liability that these contractual assumptions directly impose on |
|||
those licensors and authors. |
|||
|
|||
All other non-permissive additional terms are considered "further |
|||
restrictions" within the meaning of section 10. If the Program as you |
|||
received it, or any part of it, contains a notice stating that it is |
|||
governed by this License along with a term that is a further |
|||
restriction, you may remove that term. If a license document contains |
|||
a further restriction but permits relicensing or conveying under this |
|||
License, you may add to a covered work material governed by the terms |
|||
of that license document, provided that the further restriction does |
|||
not survive such relicensing or conveying. |
|||
|
|||
If you add terms to a covered work in accord with this section, you |
|||
must place, in the relevant source files, a statement of the |
|||
additional terms that apply to those files, or a notice indicating |
|||
where to find the applicable terms. |
|||
|
|||
Additional terms, permissive or non-permissive, may be stated in the |
|||
form of a separately written license, or stated as exceptions; |
|||
the above requirements apply either way. |
|||
|
|||
8. Termination. |
|||
|
|||
You may not propagate or modify a covered work except as expressly |
|||
provided under this License. Any attempt otherwise to propagate or |
|||
modify it is void, and will automatically terminate your rights under |
|||
this License (including any patent licenses granted under the third |
|||
paragraph of section 11). |
|||
|
|||
However, if you cease all violation of this License, then your |
|||
license from a particular copyright holder is reinstated (a) |
|||
provisionally, unless and until the copyright holder explicitly and |
|||
finally terminates your license, and (b) permanently, if the copyright |
|||
holder fails to notify you of the violation by some reasonable means |
|||
prior to 60 days after the cessation. |
|||
|
|||
Moreover, your license from a particular copyright holder is |
|||
reinstated permanently if the copyright holder notifies you of the |
|||
violation by some reasonable means, this is the first time you have |
|||
received notice of violation of this License (for any work) from that |
|||
copyright holder, and you cure the violation prior to 30 days after |
|||
your receipt of the notice. |
|||
|
|||
Termination of your rights under this section does not terminate the |
|||
licenses of parties who have received copies or rights from you under |
|||
this License. If your rights have been terminated and not permanently |
|||
reinstated, you do not qualify to receive new licenses for the same |
|||
material under section 10. |
|||
|
|||
9. Acceptance Not Required for Having Copies. |
|||
|
|||
You are not required to accept this License in order to receive or |
|||
run a copy of the Program. Ancillary propagation of a covered work |
|||
occurring solely as a consequence of using peer-to-peer transmission |
|||
to receive a copy likewise does not require acceptance. However, |
|||
nothing other than this License grants you permission to propagate or |
|||
modify any covered work. These actions infringe copyright if you do |
|||
not accept this License. Therefore, by modifying or propagating a |
|||
covered work, you indicate your acceptance of this License to do so. |
|||
|
|||
10. Automatic Licensing of Downstream Recipients. |
|||
|
|||
Each time you convey a covered work, the recipient automatically |
|||
receives a license from the original licensors, to run, modify and |
|||
propagate that work, subject to this License. You are not responsible |
|||
for enforcing compliance by third parties with this License. |
|||
|
|||
An "entity transaction" is a transaction transferring control of an |
|||
organization, or substantially all assets of one, or subdividing an |
|||
organization, or merging organizations. If propagation of a covered |
|||
work results from an entity transaction, each party to that |
|||
transaction who receives a copy of the work also receives whatever |
|||
licenses to the work the party's predecessor in interest had or could |
|||
give under the previous paragraph, plus a right to possession of the |
|||
Corresponding Source of the work from the predecessor in interest, if |
|||
the predecessor has it or can get it with reasonable efforts. |
|||
|
|||
You may not impose any further restrictions on the exercise of the |
|||
rights granted or affirmed under this License. For example, you may |
|||
not impose a license fee, royalty, or other charge for exercise of |
|||
rights granted under this License, and you may not initiate litigation |
|||
(including a cross-claim or counterclaim in a lawsuit) alleging that |
|||
any patent claim is infringed by making, using, selling, offering for |
|||
sale, or importing the Program or any portion of it. |
|||
|
|||
11. Patents. |
|||
|
|||
A "contributor" is a copyright holder who authorizes use under this |
|||
License of the Program or a work on which the Program is based. The |
|||
work thus licensed is called the contributor's "contributor version". |
|||
|
|||
A contributor's "essential patent claims" are all patent claims |
|||
owned or controlled by the contributor, whether already acquired or |
|||
hereafter acquired, that would be infringed by some manner, permitted |
|||
by this License, of making, using, or selling its contributor version, |
|||
but do not include claims that would be infringed only as a |
|||
consequence of further modification of the contributor version. For |
|||
purposes of this definition, "control" includes the right to grant |
|||
patent sublicenses in a manner consistent with the requirements of |
|||
this License. |
|||
|
|||
Each contributor grants you a non-exclusive, worldwide, royalty-free |
|||
patent license under the contributor's essential patent claims, to |
|||
make, use, sell, offer for sale, import and otherwise run, modify and |
|||
propagate the contents of its contributor version. |
|||
|
|||
In the following three paragraphs, a "patent license" is any express |
|||
agreement or commitment, however denominated, not to enforce a patent |
|||
(such as an express permission to practice a patent or covenant not to |
|||
sue for patent infringement). To "grant" such a patent license to a |
|||
party means to make such an agreement or commitment not to enforce a |
|||
patent against the party. |
|||
|
|||
If you convey a covered work, knowingly relying on a patent license, |
|||
and the Corresponding Source of the work is not available for anyone |
|||
to copy, free of charge and under the terms of this License, through a |
|||
publicly available network server or other readily accessible means, |
|||
then you must either (1) cause the Corresponding Source to be so |
|||
available, or (2) arrange to deprive yourself of the benefit of the |
|||
patent license for this particular work, or (3) arrange, in a manner |
|||
consistent with the requirements of this License, to extend the patent |
|||
license to downstream recipients. "Knowingly relying" means you have |
|||
actual knowledge that, but for the patent license, your conveying the |
|||
covered work in a country, or your recipient's use of the covered work |
|||
in a country, would infringe one or more identifiable patents in that |
|||
country that you have reason to believe are valid. |
|||
|
|||
If, pursuant to or in connection with a single transaction or |
|||
arrangement, you convey, or propagate by procuring conveyance of, a |
|||
covered work, and grant a patent license to some of the parties |
|||
receiving the covered work authorizing them to use, propagate, modify |
|||
or convey a specific copy of the covered work, then the patent license |
|||
you grant is automatically extended to all recipients of the covered |
|||
work and works based on it. |
|||
|
|||
A patent license is "discriminatory" if it does not include within |
|||
the scope of its coverage, prohibits the exercise of, or is |
|||
conditioned on the non-exercise of one or more of the rights that are |
|||
specifically granted under this License. You may not convey a covered |
|||
work if you are a party to an arrangement with a third party that is |
|||
in the business of distributing software, under which you make payment |
|||
to the third party based on the extent of your activity of conveying |
|||
the work, and under which the third party grants, to any of the |
|||
parties who would receive the covered work from you, a discriminatory |
|||
patent license (a) in connection with copies of the covered work |
|||
conveyed by you (or copies made from those copies), or (b) primarily |
|||
for and in connection with specific products or compilations that |
|||
contain the covered work, unless you entered into that arrangement, |
|||
or that patent license was granted, prior to 28 March 2007. |
|||
|
|||
Nothing in this License shall be construed as excluding or limiting |
|||
any implied license or other defenses to infringement that may |
|||
otherwise be available to you under applicable patent law. |
|||
|
|||
12. No Surrender of Others' Freedom. |
|||
|
|||
If conditions are imposed on you (whether by court order, agreement or |
|||
otherwise) that contradict the conditions of this License, they do not |
|||
excuse you from the conditions of this License. If you cannot convey a |
|||
covered work so as to satisfy simultaneously your obligations under this |
|||
License and any other pertinent obligations, then as a consequence you may |
|||
not convey it at all. For example, if you agree to terms that obligate you |
|||
to collect a royalty for further conveying from those to whom you convey |
|||
the Program, the only way you could satisfy both those terms and this |
|||
License would be to refrain entirely from conveying the Program. |
|||
|
|||
13. Use with the GNU Affero General Public License. |
|||
|
|||
Notwithstanding any other provision of this License, you have |
|||
permission to link or combine any covered work with a work licensed |
|||
under version 3 of the GNU Affero General Public License into a single |
|||
combined work, and to convey the resulting work. The terms of this |
|||
License will continue to apply to the part which is the covered work, |
|||
but the special requirements of the GNU Affero General Public License, |
|||
section 13, concerning interaction through a network will apply to the |
|||
combination as such. |
|||
|
|||
14. Revised Versions of this License. |
|||
|
|||
The Free Software Foundation may publish revised and/or new versions of |
|||
the GNU General Public License from time to time. Such new versions will |
|||
be similar in spirit to the present version, but may differ in detail to |
|||
address new problems or concerns. |
|||
|
|||
Each version is given a distinguishing version number. If the |
|||
Program specifies that a certain numbered version of the GNU General |
|||
Public License "or any later version" applies to it, you have the |
|||
option of following the terms and conditions either of that numbered |
|||
version or of any later version published by the Free Software |
|||
Foundation. If the Program does not specify a version number of the |
|||
GNU General Public License, you may choose any version ever published |
|||
by the Free Software Foundation. |
|||
|
|||
If the Program specifies that a proxy can decide which future |
|||
versions of the GNU General Public License can be used, that proxy's |
|||
public statement of acceptance of a version permanently authorizes you |
|||
to choose that version for the Program. |
|||
|
|||
Later license versions may give you additional or different |
|||
permissions. However, no additional obligations are imposed on any |
|||
author or copyright holder as a result of your choosing to follow a |
|||
later version. |
|||
|
|||
15. Disclaimer of Warranty. |
|||
|
|||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY |
|||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT |
|||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY |
|||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, |
|||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
|||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM |
|||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF |
|||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION. |
|||
|
|||
16. Limitation of Liability. |
|||
|
|||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
|||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS |
|||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY |
|||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE |
|||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF |
|||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD |
|||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), |
|||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF |
|||
SUCH DAMAGES. |
|||
|
|||
17. Interpretation of Sections 15 and 16. |
|||
|
|||
If the disclaimer of warranty and limitation of liability provided |
|||
above cannot be given local legal effect according to their terms, |
|||
reviewing courts shall apply local law that most closely approximates |
|||
an absolute waiver of all civil liability in connection with the |
|||
Program, unless a warranty or assumption of liability accompanies a |
|||
copy of the Program in return for a fee. |
|||
|
|||
END OF TERMS AND CONDITIONS |
|||
|
|||
How to Apply These Terms to Your New Programs |
|||
|
|||
If you develop a new program, and you want it to be of the greatest |
|||
possible use to the public, the best way to achieve this is to make it |
|||
free software which everyone can redistribute and change under these terms. |
|||
|
|||
To do so, attach the following notices to the program. It is safest |
|||
to attach them to the start of each source file to most effectively |
|||
state the exclusion of warranty; and each file should have at least |
|||
the "copyright" line and a pointer to where the full notice is found. |
|||
|
|||
<one line to give the program's name and a brief idea of what it does.> |
|||
Copyright (C) <year> <name of author> |
|||
|
|||
This program is free software: you can redistribute it and/or modify |
|||
it under the terms of the GNU General Public License as published by |
|||
the Free Software Foundation, either version 3 of the License, or |
|||
(at your option) any later version. |
|||
|
|||
This program is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
GNU General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU General Public License |
|||
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|||
|
|||
Also add information on how to contact you by electronic and paper mail. |
|||
|
|||
If the program does terminal interaction, make it output a short |
|||
notice like this when it starts in an interactive mode: |
|||
|
|||
<program> Copyright (C) <year> <name of author> |
|||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. |
|||
This is free software, and you are welcome to redistribute it |
|||
under certain conditions; type `show c' for details. |
|||
|
|||
The hypothetical commands `show w' and `show c' should show the appropriate |
|||
parts of the General Public License. Of course, your program's commands |
|||
might be different; for a GUI interface, you would use an "about box". |
|||
|
|||
You should also get your employer (if you work as a programmer) or school, |
|||
if any, to sign a "copyright disclaimer" for the program, if necessary. |
|||
For more information on this, and how to apply and follow the GNU GPL, see |
|||
<http://www.gnu.org/licenses/>. |
|||
|
|||
The GNU General Public License does not permit incorporating your program |
|||
into proprietary programs. If your program is a subroutine library, you |
|||
may consider it more useful to permit linking proprietary applications with |
|||
the library. If this is what you want to do, use the GNU Lesser General |
|||
Public License instead of this License. But first, please read |
|||
<http://www.gnu.org/philosophy/why-not-lgpl.html>. |
@ -0,0 +1,12 @@ |
|||
This tree contains the BLHeli assembly code for sensorless brushless motor electronic speed control (ESC) boards. |
|||
It is designed specifically for use with Eflite mCP X, but may also be used on other copters/planes. |
|||
|
|||
There is one version of the software for Silabs MCU based ESCs, and another for Atmel MCU based ESCs. |
|||
|
|||
For more information, check out these threads on Helifreak: |
|||
|
|||
http://www.helifreak.com/showthread.php?t=390517 (for SiLabs MCU based ESCs) |
|||
http://www.helifreak.com/showthread.php?t=357151 (for Atmel MCU based ESCs) |
|||
|
|||
April 2012, |
|||
Steffen Skaug |
2995
SiLabs/BLHeli.asm
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,743 @@ |
|||
;**** **** **** **** **** |
|||
; |
|||
; BLHeli program for controlling brushless motors in helicopters |
|||
; |
|||
; Copyright 2011, 2012 Steffen Skaug |
|||
; This program is distributed under the terms of the GNU General Public License |
|||
; |
|||
; This file is part of BLHeli. |
|||
; |
|||
; BLHeli is free software: you can redistribute it and/or modify |
|||
; it under the terms of the GNU General Public License as published by |
|||
; the Free Software Foundation, either version 3 of the License, or |
|||
; (at your option) any later version. |
|||
; |
|||
; BLHeli is distributed in the hope that it will be useful, |
|||
; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
; GNU General Public License for more details. |
|||
; |
|||
; You should have received a copy of the GNU General Public License |
|||
; along with BLHeli. If not, see <http://www.gnu.org/licenses/>. |
|||
; |
|||
;**** **** **** **** **** |
|||
; |
|||
; BLHeliTxPgm SiLabs |
|||
; |
|||
; EEPROM is not available in SiLabs MCUs |
|||
; Therefore a segment of the flash is used as "EEPROM" |
|||
; |
|||
;**** **** **** **** **** |
|||
|
|||
|
|||
|
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Read eeprom byte routine |
|||
; |
|||
; Assumes data in Temp1 and address in DPTR |
|||
; Also assumes address high byte to be zero |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
read_eeprom_byte: |
|||
clr A |
|||
movc A, @A+DPTR ; Read from flash |
|||
mov Temp1, A ; Load read value |
|||
ret |
|||
|
|||
|
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Write eeprom byte routine |
|||
; |
|||
; Assumes data in Temp1 and address in DPTR |
|||
; Also assumes address high byte to be zero |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
write_eeprom_byte: |
|||
orl PSCTL, #01h ; Set the PSWE bit |
|||
anl PSCTL, #0FDh ; Clear the PSEE bit |
|||
mov FLKEY, #0A5h ; First key code |
|||
mov FLKEY, #0F1h ; Second key code |
|||
mov A, Temp1 ; Load value to be written |
|||
movx @DPTR, A ; Write to flash |
|||
anl PSCTL, #0FEh ; Clear the PSWE bit |
|||
ret |
|||
|
|||
|
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Clear eeprom signature routine (erases the flash segment used for "eeprom" variables) |
|||
; |
|||
; No assumptions |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
clear_eeprom_signature: |
|||
; Erase flash |
|||
orl PSCTL, #02h ; Set the PSEE bit |
|||
orl PSCTL, #01h ; Set the PSWE bit |
|||
mov FLKEY, #0A5h ; First key code |
|||
mov FLKEY, #0F1h ; Second key code |
|||
mov DPTR, #Eep_Initialized_L |
|||
movx @DPTR, A |
|||
anl PSCTL, #0FCh ; Clear the PSEE and PSWE bits |
|||
ret |
|||
|
|||
|
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Write eeprom signature routine |
|||
; |
|||
; No assumptions |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
write_eeprom_signature: |
|||
IF TAIL == 0 |
|||
mov DPTR, #Eep_Initialized_L |
|||
mov Temp1, #0A5h |
|||
call write_eeprom_byte |
|||
|
|||
mov DPTR, #Eep_Initialized_H |
|||
mov Temp1, #05Ah |
|||
call write_eeprom_byte |
|||
ELSE |
|||
mov DPTR, #Eep_Initialized_L |
|||
mov Temp1, #05Ah |
|||
call write_eeprom_byte |
|||
|
|||
mov DPTR, #Eep_Initialized_H |
|||
mov Temp1, #0A5h |
|||
call write_eeprom_byte |
|||
ENDIF |
|||
ret |
|||
|
|||
|
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Read eeprom perameters routine |
|||
; |
|||
; No assumptions |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
read_eeprom_parameters: |
|||
IF TAIL == 0 |
|||
; Check initialized signature |
|||
mov DPTR, #Eep_Initialized_L |
|||
call read_eeprom_byte |
|||
clr C |
|||
mov A, Temp1 |
|||
subb A, #0A5h |
|||
jnz read_eeprom_store_defaults |
|||
|
|||
mov DPTR, #Eep_Initialized_H |
|||
call read_eeprom_byte |
|||
clr C |
|||
mov A, Temp1 |
|||
subb A, #05Ah |
|||
jnz read_eeprom_store_defaults |
|||
|
|||
; Read eeprom |
|||
mov DPTR, #Eep_Pgm_Gov_P_Gain |
|||
call read_eeprom_byte |
|||
mov Pgm_Gov_P_Gain, Temp1 |
|||
|
|||
mov DPTR, #Eep_Pgm_Gov_I_Gain |
|||
call read_eeprom_byte |
|||
mov Pgm_Gov_I_Gain, Temp1 |
|||
|
|||
mov DPTR, #Eep_Pgm_Gov_Mode |
|||
call read_eeprom_byte |
|||
mov Pgm_Gov_Mode, Temp1 |
|||
|
|||
mov DPTR, #Eep_Pgm_Low_Voltage_Lim |
|||
call read_eeprom_byte |
|||
mov Pgm_Low_Voltage_Lim, Temp1 |
|||
|
|||
mov DPTR, #Eep_Pgm_Startup_Pwr |
|||
call read_eeprom_byte |
|||
mov Pgm_Startup_Pwr, Temp1 |
|||
|
|||
mov DPTR, #Eep_Pgm_Pwm_Freq |
|||
call read_eeprom_byte |
|||
setb Flags2.PGM_PWM_HIGH_FREQ |
|||
mov A, Temp1 |
|||
jnb ACC.1, ($+5) |
|||
clr Flags2.PGM_PWM_HIGH_FREQ |
|||
|
|||
mov DPTR, #Eep_Pgm_Direction_Rev |
|||
call read_eeprom_byte |
|||
clr Flags2.PGM_DIRECTION_REV |
|||
mov A, Temp1 |
|||
jnb ACC.1, ($+5) |
|||
setb Flags2.PGM_DIRECTION_REV |
|||
|
|||
mov DPTR, #Eep_Pgm_Input_Pol |
|||
call read_eeprom_byte |
|||
clr Flags2.PGM_RCP_PWM_POL |
|||
mov A, Temp1 |
|||
jnb ACC.1, ($+5) |
|||
setb Flags2.PGM_RCP_PWM_POL |
|||
ELSE |
|||
; Check initialized signature |
|||
mov DPTR, #Eep_Initialized_L |
|||
call read_eeprom_byte |
|||
clr C |
|||
mov A, Temp1 |
|||
subb A, #05Ah |
|||
jnz read_eeprom_store_defaults |
|||
|
|||
mov DPTR, #Eep_Initialized_H |
|||
call read_eeprom_byte |
|||
clr C |
|||
mov A, Temp1 |
|||
subb A, #0A5h |
|||
jnz read_eeprom_store_defaults |
|||
|
|||
; Read eeprom |
|||
mov DPTR, #Eep_Pgm_Tail_Gain |
|||
call read_eeprom_byte |
|||
mov Pgm_Tail_Gain, Temp1 |
|||
|
|||
mov DPTR, #Eep_Pgm_Tail_Idle |
|||
call read_eeprom_byte |
|||
mov Pgm_Tail_Idle, Temp1 |
|||
|
|||
mov DPTR, #Eep_Pgm_Startup_Pwr |
|||
call read_eeprom_byte |
|||
mov Pgm_Startup_Pwr, Temp1 |
|||
|
|||
mov DPTR, #Eep_Pgm_Pwm_Freq |
|||
call read_eeprom_byte |
|||
clr Flags2.PGM_PWM_HIGH_FREQ |
|||
mov A, Temp1 |
|||
jnb ACC.0, ($+5) |
|||
setb Flags2.PGM_PWM_HIGH_FREQ |
|||
clr Flags2.PGM_PWM_OFF_DAMPED |
|||
clr C |
|||
mov A, Temp1 |
|||
subb A, #3 |
|||
jc ($+4) |
|||
setb Flags2.PGM_PWM_OFF_DAMPED |
|||
|
|||
mov DPTR, #Eep_Pgm_Direction_Rev |
|||
call read_eeprom_byte |
|||
clr Flags2.PGM_DIRECTION_REV |
|||
mov A, Temp1 |
|||
jnb ACC.1, ($+5) |
|||
setb Flags2.PGM_DIRECTION_REV |
|||
|
|||
mov DPTR, #Eep_Pgm_Input_Pol |
|||
call read_eeprom_byte |
|||
clr Flags2.PGM_RCP_PWM_POL |
|||
mov A, Temp1 |
|||
jnb ACC.1, ($+5) |
|||
setb Flags2.PGM_RCP_PWM_POL |
|||
|
|||
mov Pgm_Gov_Mode, #3 |
|||
ENDIF |
|||
jmp read_eeprom_exit |
|||
|
|||
read_eeprom_store_defaults: |
|||
call set_default_parameters |
|||
call store_all_in_eeprom |
|||
read_eeprom_exit: |
|||
ret |
|||
|
|||
|
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Read all tags from flash and store in temporary storage |
|||
; |
|||
; No assumptions |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
read_tags: |
|||
mov Temp3, #48 ; Number of tags |
|||
mov Temp2, #Tag_Temporary_Storage ; Set RAM address |
|||
mov DPTR, #Eep_ESC_Layout ; Set flash address |
|||
read_tag: |
|||
call read_eeprom_byte |
|||
mov A, Temp1 |
|||
mov @Temp2, A ; Write to RAM |
|||
inc Temp2 |
|||
inc DPTR |
|||
djnz Temp3, read_tag |
|||
ret |
|||
|
|||
|
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Write all tags from temporary storage and store in flash |
|||
; |
|||
; No assumptions |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
write_tags: |
|||
mov Temp3, #48 ; Number of tags |
|||
mov Temp2, #Tag_Temporary_Storage ; Set RAM address |
|||
mov DPTR, #Eep_ESC_Layout ; Set flash address |
|||
write_tag: |
|||
mov A, @Temp2 ; Read from RAM |
|||
mov Temp1, A |
|||
call write_eeprom_byte |
|||
inc Temp2 |
|||
inc DPTR |
|||
djnz Temp3, write_tag |
|||
ret |
|||
|
|||
|
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Store all parameter value in EEPROM routine |
|||
; |
|||
; No assumptions |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
store_all_in_eeprom: |
|||
clr EA ; Disable interrupts |
|||
call read_tags |
|||
call clear_eeprom_signature ; Erase flash |
|||
|
|||
mov DPTR, #Eep_FW_Main_Revision ; Store firmware main revision |
|||
mov Temp1, #EEPROM_FW_MAIN_REVISION |
|||
call write_eeprom_byte |
|||
|
|||
mov DPTR, #Eep_FW_Sub_Revision ; Store firmware sub revision |
|||
mov Temp1, #EEPROM_FW_SUB_REVISION |
|||
call write_eeprom_byte |
|||
|
|||
mov DPTR, #Eep_Layout_Revision ; Store EEPROM layout revision |
|||
mov Temp1, #EEPROM_LAYOUT_REVISION |
|||
call write_eeprom_byte |
|||
|
|||
IF TAIL == 0 |
|||
mov DPTR, #Eep_Pgm_Gov_P_Gain |
|||
mov Temp1, Pgm_Gov_P_Gain |
|||
call write_eeprom_byte |
|||
|
|||
mov DPTR, #Eep_Pgm_Gov_I_Gain |
|||
mov Temp1, Pgm_Gov_I_Gain |
|||
call write_eeprom_byte |
|||
|
|||
mov DPTR, #Eep_Pgm_Gov_Mode |
|||
mov Temp1, Pgm_Gov_Mode |
|||
call write_eeprom_byte |
|||
|
|||
mov DPTR, #Eep_Pgm_Low_Voltage_Lim |
|||
mov Temp1, Pgm_Low_Voltage_Lim |
|||
call write_eeprom_byte |
|||
|
|||
mov DPTR, #Eep_Pgm_Startup_Pwr |
|||
mov Temp1, Pgm_Startup_Pwr |
|||
call write_eeprom_byte |
|||
|
|||
mov DPTR, #Eep_Pgm_Pwm_Freq |
|||
mov Temp1, #1 |
|||
jb Flags2.PGM_PWM_HIGH_FREQ, ($+5) |
|||
mov Temp1, #2 |
|||
call write_eeprom_byte |
|||
|
|||
mov DPTR, #Eep_Pgm_Direction_Rev |
|||
mov Temp1, #1 |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
mov Temp1, #2 |
|||
call write_eeprom_byte |
|||
|
|||
mov DPTR, #Eep_Pgm_Input_Pol |
|||
mov Temp1, #1 |
|||
jnb Flags2.PGM_RCP_PWM_POL, ($+5) |
|||
mov Temp1, #2 |
|||
call write_eeprom_byte |
|||
ELSE |
|||
mov DPTR, #Eep_Pgm_Tail_Gain |
|||
mov Temp1, Pgm_Tail_Gain |
|||
call write_eeprom_byte |
|||
|
|||
mov DPTR, #Eep_Pgm_Tail_Idle |
|||
mov Temp1, Pgm_Tail_Idle |
|||
call write_eeprom_byte |
|||
|
|||
mov DPTR, #Eep_Pgm_Startup_Pwr |
|||
mov Temp1, Pgm_Startup_Pwr |
|||
call write_eeprom_byte |
|||
|
|||
mov DPTR, #Eep_Pgm_Pwm_Freq |
|||
mov Temp1, #1 |
|||
jb Flags2.PGM_PWM_HIGH_FREQ, ($+5) |
|||
mov Temp1, #2 |
|||
jnb Flags2.PGM_PWM_OFF_DAMPED, ($+5) |
|||
mov Temp1, #3 |
|||
call write_eeprom_byte |
|||
|
|||
mov DPTR, #Eep_Pgm_Direction_Rev |
|||
mov Temp1, #1 |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
mov Temp1, #2 |
|||
call write_eeprom_byte |
|||
|
|||
mov DPTR, #Eep_Pgm_Input_Pol |
|||
mov Temp1, #1 |
|||
jnb Flags2.PGM_RCP_PWM_POL, ($+5) |
|||
mov Temp1, #2 |
|||
call write_eeprom_byte |
|||
ENDIF |
|||
call write_tags |
|||
call write_eeprom_signature |
|||
ret |
|||
|
|||
|
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Store new parameter value in ram routine |
|||
; |
|||
; No assumptions |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
store_in_ram: |
|||
mov Temp4, Tx_Pgm_Func_No ; Function no |
|||
mov Temp1, Tx_Pgm_Paraval_No ; Parameter value no |
|||
IF TAIL == 0 |
|||
mov A, Temp4 |
|||
clr C |
|||
subb A, #1 |
|||
jz store_main_func_1 |
|||
mov A, Temp4 |
|||
clr C |
|||
subb A, #2 |
|||
jz store_main_func_2 |
|||
mov A, Temp4 |
|||
clr C |
|||
subb A, #3 |
|||
jz store_main_func_3 |
|||
mov A, Temp4 |
|||
clr C |
|||
subb A, #4 |
|||
jz store_main_func_4 |
|||
mov A, Temp4 |
|||
clr C |
|||
subb A, #5 |
|||
jz store_main_func_5 |
|||
mov A, Temp4 |
|||
clr C |
|||
subb A, #6 |
|||
jz store_main_func_6 |
|||
mov A, Temp4 |
|||
clr C |
|||
subb A, #7 |
|||
jz store_main_func_7 |
|||
mov A, Temp4 |
|||
clr C |
|||
subb A, #8 |
|||
jz store_main_func_8 |
|||
|
|||
store_main_func_1: |
|||
mov Pgm_Gov_P_Gain, Temp1 |
|||
jmp store_in_ram_exit |
|||
|
|||
store_main_func_2: |
|||
mov Pgm_Gov_I_Gain, Temp1 |
|||
jmp store_in_ram_exit |
|||
|
|||
store_main_func_3: |
|||
mov Pgm_Gov_Mode, Temp1 |
|||
jmp store_in_ram_exit |
|||
|
|||
store_main_func_4: |
|||
mov Pgm_Low_Voltage_Lim, Temp1 |
|||
jmp store_in_ram_exit |
|||
|
|||
store_main_func_5: |
|||
mov Pgm_Startup_Pwr, Temp1 |
|||
jmp store_in_ram_exit |
|||
|
|||
store_main_func_6: |
|||
setb Flags2.PGM_PWM_HIGH_FREQ |
|||
mov A, Temp1 |
|||
jnb ACC.1, ($+5) |
|||
clr Flags2.PGM_PWM_HIGH_FREQ |
|||
jmp store_in_ram_exit |
|||
|
|||
store_main_func_7: |
|||
clr Flags2.PGM_DIRECTION_REV |
|||
mov A, Temp1 |
|||
jnb ACC.1, ($+5) |
|||
setb Flags2.PGM_DIRECTION_REV |
|||
jmp store_in_ram_exit |
|||
|
|||
store_main_func_8: |
|||
clr Flags2.PGM_RCP_PWM_POL |
|||
mov A, Temp1 |
|||
jnb ACC.1, ($+5) |
|||
setb Flags2.PGM_RCP_PWM_POL |
|||
jmp store_in_ram_exit |
|||
ELSE |
|||
mov A, Temp4 |
|||
clr C |
|||
subb A, #1 |
|||
jz store_tail_func_1 |
|||
mov A, Temp4 |
|||
clr C |
|||
subb A, #2 |
|||
jz store_tail_func_2 |
|||
mov A, Temp4 |
|||
clr C |
|||
subb A, #3 |
|||
jz store_tail_func_3 |
|||
mov A, Temp4 |
|||
clr C |
|||
subb A, #4 |
|||
jz store_tail_func_4 |
|||
mov A, Temp4 |
|||
clr C |
|||
subb A, #5 |
|||
jz store_tail_func_5 |
|||
mov A, Temp4 |
|||
clr C |
|||
subb A, #6 |
|||
jz store_tail_func_6 |
|||
|
|||
store_tail_func_1: |
|||
mov Pgm_Tail_Gain, Temp1 |
|||
jmp store_in_ram_exit |
|||
|
|||
store_tail_func_2: |
|||
mov Pgm_Tail_Idle, Temp1 |
|||
jmp store_in_ram_exit |
|||
|
|||
store_tail_func_3: |
|||
mov Pgm_Startup_Pwr, Temp1 |
|||
jmp store_in_ram_exit |
|||
|
|||
store_tail_func_4: |
|||
clr Flags2.PGM_PWM_HIGH_FREQ |
|||
mov A, Temp1 |
|||
jnb ACC.0, ($+5) |
|||
setb Flags2.PGM_PWM_HIGH_FREQ |
|||
clr Flags2.PGM_PWM_OFF_DAMPED |
|||
clr C |
|||
mov A, Temp1 |
|||
subb A, #3 |
|||
jc ($+4) |
|||
setb Flags2.PGM_PWM_OFF_DAMPED |
|||
jmp store_in_ram_exit |
|||
|
|||
store_tail_func_5: |
|||
clr Flags2.PGM_DIRECTION_REV |
|||
mov A, Temp1 |
|||
jnb ACC.1, ($+5) |
|||
setb Flags2.PGM_DIRECTION_REV |
|||
jmp store_in_ram_exit |
|||
|
|||
store_tail_func_6: |
|||
clr Flags2.PGM_RCP_PWM_POL |
|||
mov A, Temp1 |
|||
jnb ACC.1, ($+5) |
|||
setb Flags2.PGM_RCP_PWM_POL |
|||
jmp store_in_ram_exit |
|||
ENDIF |
|||
|
|||
store_in_ram_exit: |
|||
ret |
|||
|
|||
|
|||
;**;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Wait 1 second routine |
|||
; |
|||
; No assumptions |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
wait1s: |
|||
mov Temp5, #5 |
|||
wait1s_loop: |
|||
call wait200ms |
|||
djnz Temp5, wait1s_loop |
|||
ret |
|||
|
|||
|
|||
;**;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Success beep routine |
|||
; |
|||
; No assumptions |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
success_beep: |
|||
clr EA ; Disable all interrupts |
|||
call beep_f1 |
|||
call beep_f2 |
|||
call beep_f3 |
|||
call beep_f4 |
|||
call wait10ms |
|||
call beep_f1 |
|||
call beep_f2 |
|||
call beep_f3 |
|||
call beep_f4 |
|||
call wait10ms |
|||
call beep_f1 |
|||
call beep_f2 |
|||
call beep_f3 |
|||
call beep_f4 |
|||
setb EA ; Enable all interrupts |
|||
ret |
|||
|
|||
|
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Function and parameter value beep routine |
|||
; |
|||
; No assumptions |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
function_paraval_beep: |
|||
mov Temp5, Tx_Pgm_Func_No ; Function no |
|||
mov Temp6, Tx_Pgm_Paraval_No ; Parameter value no |
|||
clr EA ; Disable all interrupts |
|||
function_beep: |
|||
call beep_f1 |
|||
call beep_f1 |
|||
call beep_f1 |
|||
call wait10ms |
|||
djnz Temp5, function_beep |
|||
paraval_beep: |
|||
call beep_f4 |
|||
call wait10ms |
|||
djnz Temp6, paraval_beep |
|||
setb EA ; Enable all interrupts |
|||
ret |
|||
|
|||
|
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
; |
|||
; Program by TX routine |
|||
; |
|||
; No assumptions |
|||
; |
|||
;**** **** **** **** **** **** **** **** **** **** **** **** **** |
|||
program_by_tx: |
|||
; Start programming mode entry sequence by waiting for low RC pulse |
|||
clr EA ; Disable all interrupts |
|||
call beep_f4 |
|||
setb EA ; Enable all interrupts |
|||
call wait100ms |
|||
clr C |
|||
mov A, New_Rcp ; Load new RC pulse value |
|||
subb A, #RCP_STOP ; Below stop? |
|||
jnc program_by_tx ; No - start over |
|||
|
|||
; Continue programming mode entry sequence by waiting for high RC pulse |
|||
wait_for_rc_pulse_max: |
|||
clr EA ; Disable all interrupts |
|||
call beep_f1 |
|||
call wait10ms |
|||
call beep_f1 |
|||
setb EA ; Enable all interrupts |
|||
call wait100ms |
|||
clr C |
|||
mov A, New_Rcp ; Load new RC pulse value |
|||
subb A, #RCP_MAX ; Above max? |
|||
jc wait_for_rc_pulse_max ; No - start over |
|||
|
|||
; Programming mode entry beeps |
|||
call success_beep |
|||
call wait1s |
|||
call wait1s |
|||
|
|||
; Start at function 1, parameter value 1 |
|||
mov Tx_Pgm_Func_No, #1 |
|||
paraval_no_entry: |
|||
mov Tx_Pgm_Paraval_No, #1 |
|||
beep_no_entry: |
|||
mov Tx_Pgm_Beep_No, #0 |
|||
func_paraval: |
|||
call function_paraval_beep |
|||
mov Temp5, #5 ; Wait is 5x 200ms |
|||
func_paraval_wait: |
|||
call wait200ms |
|||
clr C |
|||
mov A, New_Rcp ; Load new RC pulse value |
|||
subb A, #RCP_STOP ; Below stop? |
|||
jnc func_paraval_cont_wait ; No - branch |
|||
|
|||
call store_in_ram ; Yes - store new value in RAM |
|||
call store_all_in_eeprom ; Store all values in EEPROM |
|||
call success_beep ; Beep success |
|||
clr EA ; Disable all interrupts |
|||
orl RSTSRC, #10h ; Generate hardware reset |
|||
call wait1s |
|||
|
|||
func_paraval_cont_wait: |
|||
djnz Temp5, func_paraval_wait |
|||
inc Tx_Pgm_Beep_No ; Check number of beeps |
|||
clr C |
|||
mov A, Tx_Pgm_Beep_No |
|||
subb A, #3 ; Three beeps done? |
|||
jnc paraval_next ; Yes - Next parameter value |
|||
|
|||
jmp func_paraval ; No - go back |
|||
|
|||
paraval_next: |
|||
call wait1s |
|||
inc Tx_Pgm_Paraval_No ; Parameter value no |
|||
mov Temp1, #5 ; Default 5 parameter values |
|||
IF TAIL == 0 |
|||
clr C |
|||
mov A, Tx_Pgm_Func_No |
|||
subb A, #3 ; Function 3? |
|||
jnz paraval_end_a ; No - branch |
|||
mov Temp1, #3 ; Yes - set max parameter values |
|||
paraval_end_a: |
|||
clr C |
|||
mov A, Tx_Pgm_Func_No |
|||
subb A, #4 ; Function 4? |
|||
jnz paraval_end_b ; No - branch |
|||
mov Temp1, #3 ; Yes - set max parameter values |
|||
paraval_end_b: |
|||
clr C |
|||
mov A, Tx_Pgm_Func_No |
|||
subb A, #5 ; Function below 5? |
|||
jc paraval_end_c ; Yes - branch |
|||
mov Temp1, #2 ; No - set max parameter values |
|||
paraval_end_c: |
|||
ELSE |
|||
clr C |
|||
mov A, Tx_Pgm_Func_No |
|||
subb A, #4 ; Function below 4? |
|||
jc paraval_end_a ; Yes - branch |
|||
mov Temp1, #3 ; No - set max parameter values |
|||
paraval_end_a: |
|||
clr C |
|||
mov A, Tx_Pgm_Func_No |
|||
subb A, #(4+DAMPED_TAIL_ENABLE) ; Function below 5 (damped tail enabled)? |
|||
jc paraval_end_b ; Yes - branch |
|||
mov Temp1, #2 ; No - set max parameter values |
|||
paraval_end_b: |
|||
ENDIF |
|||
inc Temp1 |
|||
clr C |
|||
mov A, Tx_Pgm_Paraval_No |
|||
subb A, Temp1 |
|||
jnc function_next ; Last parameter value? |
|||
jmp beep_no_entry ; No - go back |
|||
|
|||
function_next: ; Yes - Next function value |
|||
call wait1s |
|||
call wait1s |
|||
inc Tx_Pgm_Func_No ; Function value no |
|||
IF TAIL == 0 |
|||
clr C |
|||
mov A, Tx_Pgm_Func_No |
|||
subb A, #9 ; Main has 8 functions |
|||
ELSE |
|||
clr C |
|||
mov A, Tx_Pgm_Func_No |
|||
subb A, #7 ; Tail has 6 functions |
|||
ENDIF |
|||
jnc program_by_tx_exit ; Last function value? |
|||
jmp paraval_no_entry ; No - go back |
|||
|
|||
program_by_tx_exit: |
|||
clr EA ; Disable all interrupts |
|||
orl RSTSRC, #10h ; Generate hardware reset |
|||
call wait1s |
|||
|
@ -0,0 +1,204 @@ |
|||
;--------------------------------------------------------------------------- |
|||
; |
|||
; |
|||
; |
|||
; |
|||
; FILE NAME: C8051F330.INC |
|||
; TARGET MCUs: C8051F330, F331 |
|||
; DESCRIPTION: Register/bit definitions for the C8051F330 product family. |
|||
; |
|||
; REVISION 1.0 |
|||
; |
|||
;--------------------------------------------------------------------------- |
|||
|
|||
;REGISTER DEFINITIONS |
|||
; |
|||
P0 DATA 080H ; PORT 0 LATCH |
|||
SP DATA 081H ; STACK POINTER |
|||
DPL DATA 082H ; DATA POINTER LOW |
|||
DPH DATA 083H ; DATA POINTER HIGH |
|||
PCON DATA 087H ; POWER CONTROL |
|||
TCON DATA 088H ; TIMER/COUNTER CONTROL |
|||
TMOD DATA 089H ; TIMER/COUNTER MODE |
|||
TL0 DATA 08AH ; TIMER/COUNTER 0 LOW |
|||
TL1 DATA 08BH ; TIMER/COUNTER 1 LOW |
|||
TH0 DATA 08CH ; TIMER/COUNTER 0 HIGH |
|||
TH1 DATA 08DH ; TIMER/COUNTER 1 HIGH |
|||
CKCON DATA 08EH ; CLOCK CONTROL |
|||
PSCTL DATA 08FH ; PROGRAM STORE R/W CONTROL |
|||
P1 DATA 090H ; PORT 1 LATCH |
|||
TMR3CN DATA 091H ; TIMER/COUNTER 3 CONTROL |
|||
TMR3RLL DATA 092H ; TIMER/COUNTER 3 RELOAD LOW |
|||
TMR3RLH DATA 093H ; TIMER/COUNTER 3 RELOAD HIGH |
|||
TMR3L DATA 094H ; TIMER/COUNTER 3 LOW |
|||
TMR3H DATA 095H ; TIMER/COUNTER 3 HIGH |
|||
IDA0L DATA 096H ; CURRENT MODE DAC0 LOW |
|||
IDA0H DATA 097H ; CURRENT MODE DAC0 HIGH |
|||
SCON0 DATA 098H ; UART0 CONTROL |
|||
SBUF0 DATA 099H ; UART0 DATA BUFFER |
|||
CPT0CN DATA 09BH ; COMPARATOR0 CONTROL |
|||
CPT0MD DATA 09DH ; COMPARATOR0 MODE SELECTION |
|||
CPT0MX DATA 09FH ; COMPARATOR0 MUX SELECTION |
|||
P2 DATA 0A0H ; PORT 2 LATCH |
|||
SPI0CFG DATA 0A1H ; SPI CONFIGURATION |
|||
SPI0CKR DATA 0A2H ; SPI CLOCK RATE CONTROL |
|||
SPI0DAT DATA 0A3H ; SPI DATA |
|||
P0MDOUT DATA 0A4H ; PORT 0 OUTPUT MODE CONFIGURATION |
|||
P1MDOUT DATA 0A5H ; PORT 1 OUTPUT MODE CONFIGURATION |
|||
P2MDOUT DATA 0A6H ; PORT 2 OUTPUT MODE CONFIGURATION |
|||
IE DATA 0A8H ; INTERRUPT ENABLE |
|||
CLKSEL DATA 0A9H ; CLOCK SELECT |
|||
EMI0CN DATA 0AAH ; EXTERNAL MEMORY INTERFACE CONTROL |
|||
OSCXCN DATA 0B1H ; EXTERNAL OSCILLATOR CONTROL |
|||
OSCICN DATA 0B2H ; INTERNAL OSCILLATOR CONTROL |
|||
OSCICL DATA 0B3H ; INTERNAL OSCILLATOR CALIBRATION |
|||
FLSCL DATA 0B6H ; FLASH SCALE |
|||
FLKEY DATA 0B7H ; FLASH LOCK AND KEY |
|||
IP DATA 0B8H ; INTERRUPT PRIORITY |
|||
IDA0CN DATA 0B9H ; CURRENT MODE DAC0 CONTROL |
|||
AMX0N DATA 0BAH ; AMUX0 NEGATIVE CHANNEL SELECT |
|||
AMX0P DATA 0BBH ; AMUX0 POSITIVE CHANNEL SELECT |
|||
ADC0CF DATA 0BCH ; ADC0 CONFIGURATION |
|||
ADC0L DATA 0BDH ; ADC0 LOW |
|||
ADC0H DATA 0BEH ; ADC0 HIGH |
|||
SMB0CN DATA 0C0H ; SMBUS CONTROL |
|||
SMB0CF DATA 0C1H ; SMBUS CONFIGURATION |
|||
SMB0DAT DATA 0C2H ; SMBUS DATA |
|||
ADC0GTL DATA 0C3H ; ADC0 GREATER-THAN COMPARE LOW |
|||
ADC0GTH DATA 0C4H ; ADC0 GREATER-THAN COMPARE HIGH |
|||
ADC0LTL DATA 0C5H ; ADC0 LESS-THAN COMPARE WORD LOW |
|||
ADC0LTH DATA 0C6H ; ADC0 LESS-THAN COMPARE WORD HIGH |
|||
TMR2CN DATA 0C8H ; TIMER/COUNTER 2 CONTROL |
|||
TMR2RLL DATA 0CAH ; TIMER/COUNTER 2 RELOAD LOW |
|||
TMR2RLH DATA 0CBH ; TIMER/COUNTER 2 RELOAD HIGH |
|||
TMR2L DATA 0CCH ; TIMER/COUNTER 2 LOW |
|||
TMR2H DATA 0CDH ; TIMER/COUNTER 2 HIGH |
|||
PSW DATA 0D0H ; PROGRAM STATUS WORD |
|||
REF0CN DATA 0D1H ; VOLTAGE REFERENCE CONTROL |
|||
P0SKIP DATA 0D4H ; PORT 0 SKIP |
|||
P1SKIP DATA 0D5H ; PORT 1 SKIP |
|||
PCA0CN DATA 0D8H ; PCA CONTROL |
|||
PCA0MD DATA 0D9H ; PCA MODE |
|||
PCA0CPM0 DATA 0DAH ; PCA MODULE 0 MODE REGISTER |
|||
PCA0CPM1 DATA 0DBH ; PCA MODULE 1 MODE REGISTER |
|||
PCA0CPM2 DATA 0DCH ; PCA MODULE 2 MODE REGISTER |
|||
ACC DATA 0E0H ; ACCUMULATOR |
|||
XBR0 DATA 0E1H ; PORT I/O CROSSBAR CONTROL 0 |
|||
XBR1 DATA 0E2H ; PORT I/O CROSSBAR CONTROL 1 |
|||
OSCLCN DATA 0E3H ; LOW-FREQUENCY OSCILLATOR CONTROL |
|||
IT01CF DATA 0E4H ; INT0/INT1 CONFIGURATION |
|||
EIE1 DATA 0E6H ; EXTENDED INTERRUPT ENABLE 1 |
|||
ADC0CN DATA 0E8H ; ADC0 CONTROL |
|||
PCA0CPL1 DATA 0E9H ; PCA CAPTURE 1 LOW |
|||
PCA0CPH1 DATA 0EAH ; PCA CAPTURE 1 HIGH |
|||
PCA0CPL2 DATA 0EBH ; PCA CAPTURE 2 LOW |
|||
PCA0CPH2 DATA 0ECH ; PCA CAPTURE 2 HIGH |
|||
RSTSRC DATA 0EFH ; RESET SOURCE CONFIGURATION/STATUS |
|||
B DATA 0F0H ; B REGISTER |
|||
P0MDIN DATA 0F1H ; PORT 0 INPUT MODE CONFIGURATION |
|||
P1MDIN DATA 0F2H ; PORT 1 INPUT MODE CONFIGURATION |
|||
EIP1 DATA 0F6H ; EXTENDED INTERRUPT PRIORITY 1 |
|||
SPI0CN DATA 0F8H ; SPI CONTROL |
|||
PCA0L DATA 0F9H ; PCA COUNTER LOW |
|||
PCA0H DATA 0FAH ; PCA COUNTER HIGH |
|||
PCA0CPL0 DATA 0FBH ; PCA CAPTURE 0 LOW |
|||
PCA0CPH0 DATA 0FCH ; PCA CAPTURE 0 HIGH |
|||
VDM0CN DATA 0FFH ; VDD MONITOR CONTROL |
|||
|
|||
; |
|||
;------------------------------------------------------------------------------ |
|||
;BIT DEFINITIONS |
|||
; |
|||
; TCON 088H |
|||
TF1 BIT 08FH ; TIMER 1 OVERFLOW FLAG |
|||
TR1 BIT 08EH ; TIMER 1 ON/OFF CONTROL |
|||
TF0 BIT 08DH ; TIMER 0 OVERFLOW FLAG |
|||
TR0 BIT 08CH ; TIMER 0 ON/OFF CONTROL |
|||
IE1 BIT 08BH ; EXT. INTERRUPT 1 EDGE FLAG |
|||
IT1 BIT 08AH ; EXT. INTERRUPT 1 TYPE |
|||
IE0 BIT 089H ; EXT. INTERRUPT 0 EDGE FLAG |
|||
IT0 BIT 088H ; EXT. INTERRUPT 0 TYPE |
|||
|
|||
; SCON0 098H |
|||
S0MODE BIT 09FH ; UART 0 MODE |
|||
MCE0 BIT 09DH ; UART 0 MCE |
|||
REN0 BIT 09CH ; UART 0 RX ENABLE |
|||
TB80 BIT 09BH ; UART 0 TX BIT 8 |
|||
RB80 BIT 09AH ; UART 0 RX BIT 8 |
|||
TI0 BIT 099H ; UART 0 TX INTERRUPT FLAG |
|||
RI0 BIT 098H ; UART 0 RX INTERRUPT FLAG |
|||
|
|||
; IE 0A8H |
|||
EA BIT 0AFH ; GLOBAL INTERRUPT ENABLE |
|||
ESPI0 BIT 0AEH ; SPI0 INTERRUPT ENABLE |
|||
ET2 BIT 0ADH ; TIMER 2 INTERRUPT ENABLE |
|||
ES0 BIT 0ACH ; UART0 INTERRUPT ENABLE |
|||
ET1 BIT 0ABH ; TIMER 1 INTERRUPT ENABLE |
|||
EX1 BIT 0AAH ; EXTERNAL INTERRUPT 1 ENABLE |
|||
ET0 BIT 0A9H ; TIMER 0 INTERRUPT ENABLE |
|||
EX0 BIT 0A8H ; EXTERNAL INTERRUPT 0 ENABLE |
|||
|
|||
; IP 0B8H |
|||
PSPI0 BIT 0BEH ; SPI0 PRIORITY |
|||
PT2 BIT 0BDH ; TIMER 2 PRIORITY |
|||
PS0 BIT 0BCH ; UART0 PRIORITY |
|||
PT1 BIT 0BBH ; TIMER 1 PRIORITY |
|||
PX1 BIT 0BAH ; EXTERNAL INTERRUPT 1 PRIORITY |
|||
PT0 BIT 0B9H ; TIMER 0 PRIORITY |
|||
PX0 BIT 0B8H ; EXTERNAL INTERRUPT 0 PRIORITY |
|||
|
|||
; SMB0CN 0C0H |
|||
MASTER BIT 0C7H ; SMBUS 0 MASTER/SLAVE |
|||
TXMODE BIT 0C6H ; SMBUS 0 TRANSMIT MODE |
|||
STA BIT 0C5H ; SMBUS 0 START FLAG |
|||
STO BIT 0C4H ; SMBUS 0 STOP FLAG |
|||
ACKRQ BIT 0C3H ; SMBUS 0 ACKNOWLEDGE REQUEST |
|||
ARBLOST BIT 0C2H ; SMBUS 0 ARBITRATION LOST |
|||
ACK BIT 0C1H ; SMBUS 0 ACKNOWLEDGE FLAG |
|||
SI BIT 0C0H ; SMBUS 0 INTERRUPT PENDING FLAG |
|||
|
|||
; TMR2CN 0C8H |
|||
TF2H BIT 0CFH ; TIMER 2 HIGH BYTE OVERFLOW FLAG |
|||
TF2L BIT 0CEH ; TIMER 2 LOW BYTE OVERFLOW FLAG |
|||
TF2LEN BIT 0CDH ; TIMER 2 LOW BYTE INTERRUPT ENABLE |
|||
TF2CEN BIT 0CCH ; TIMER 2 LFO CAPTURE ENABLE |
|||
T2SPLIT BIT 0CBH ; TIMER 2 SPLIT MODE ENABLE |
|||
TR2 BIT 0CAH ; TIMER 2 ON/OFF CONTROL |
|||
T2XCLK BIT 0C8H ; TIMER 2 EXTERNAL CLOCK SELECT |
|||
|
|||
; PSW 0D0H |
|||
CY BIT 0D7H ; CARRY FLAG |
|||
AC BIT 0D6H ; AUXILIARY CARRY FLAG |
|||
F0 BIT 0D5H ; USER FLAG 0 |
|||
RS1 BIT 0D4H ; REGISTER BANK SELECT 1 |
|||
RS0 BIT 0D3H ; REGISTER BANK SELECT 0 |
|||
OV BIT 0D2H ; OVERFLOW FLAG |
|||
F1 BIT 0D1H ; USER FLAG 1 |
|||
P BIT 0D0H ; ACCUMULATOR PARITY FLAG |
|||
|
|||
; PCA0CN 0D8H |
|||
CF BIT 0DFH ; PCA 0 COUNTER OVERFLOW FLAG |
|||
CR BIT 0DEH ; PCA 0 COUNTER RUN CONTROL BIT |
|||
CCF2 BIT 0DAH ; PCA 0 MODULE 2 INTERRUPT FLAG |
|||
CCF1 BIT 0D9H ; PCA 0 MODULE 1 INTERRUPT FLAG |
|||
CCF0 BIT 0D8H ; PCA 0 MODULE 0 INTERRUPT FLAG |
|||
; ADC 0 WINDOW INTERRUPT FLAG |
|||
; ADC0CN 0E8H |
|||
AD0EN BIT 0EFH ; ADC 0 ENABLE |
|||
AD0TM BIT 0EEH ; ADC 0 TRACK MODE |
|||
AD0INT BIT 0EDH ; ADC 0 EOC INTERRUPT FLAG |
|||
AD0BUSY BIT 0ECH ; ADC 0 BUSY FLAG |
|||
AD0WINT BIT 0EBH ; ADC 0 WINDOW INTERRUPT FLAG |
|||
AD0CM2 BIT 0EAH ; ADC 0 CONVERT START MODE BIT 2 |
|||
AD0CM1 BIT 0E9H ; ADC 0 CONVERT START MODE BIT 1 |
|||
AD0CM0 BIT 0E8H ; ADC 0 CONVERT START MODE BIT 0 |
|||
|
|||
; SPI0CN 0F8H |
|||
SPIF BIT 0FFH ; SPI 0 INTERRUPT FLAG |
|||
WCOL BIT 0FEH ; SPI 0 WRITE COLLISION FLAG |
|||
MODF BIT 0FDH ; SPI 0 MODE FAULT FLAG |
|||
RXOVRN BIT 0FCH ; SPI 0 RX OVERRUN FLAG |
|||
NSSMD1 BIT 0FBH ; SPI 0 SLAVE SELECT MODE 1 |
|||
NSSMD0 BIT 0FAH ; SPI 0 SLAVE SELECT MODE 0 |
|||
TXBMT BIT 0F9H ; SPI 0 TX BUFFER EMPTY FLAG |
|||
SPIEN BIT 0F8H ; SPI 0 SPI ENABLE |
@ -0,0 +1,256 @@ |
|||
;**** **** **** **** **** |
|||
; |
|||
; BLHeli program for controlling brushless motors in helicopters |
|||
; |
|||
; Copyright 2011, 2012 Steffen Skaug |
|||
; This program is distributed under the terms of the GNU General Public License |
|||
; |
|||
; This file is part of BLHeli. |
|||
; |
|||
; BLHeli is free software: you can redistribute it and/or modify |
|||
; it under the terms of the GNU General Public License as published by |
|||
; the Free Software Foundation, either version 3 of the License, or |
|||
; (at your option) any later version. |
|||
; |
|||
; BLHeli is distributed in the hope that it will be useful, |
|||
; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
; GNU General Public License for more details. |
|||
; |
|||
; You should have received a copy of the GNU General Public License |
|||
; along with BLHeli. If not, see <http://www.gnu.org/licenses/>. |
|||
; |
|||
;**** **** **** **** **** |
|||
; |
|||
; DP 3A hardware definition file |
|||
; |
|||
;**** **** **** **** **** |
|||
|
|||
|
|||
|
|||
;********************* |
|||
; Device SiLabs F330 |
|||
;********************* |
|||
$include (c8051f330.inc) |
|||
|
|||
;**** **** **** **** **** |
|||
; Uses internal calibrated oscillator set to 24Mhz |
|||
;**** **** **** **** **** |
|||
|
|||
;**** **** **** **** **** |
|||
; Constant definitions |
|||
;**** **** **** **** **** |
|||
CSEG AT 1A40h |
|||
Eep_ESC_Layout: DB "#DP3A# " ; ESC layout tag |
|||
DAMPED_TAIL_ENABLE EQU 1 ; Damped tail mode enabled |
|||
NFETON_DELAY EQU 2 ; Wait delay from pfets off to nfets on |
|||
PFETON_DELAY EQU 1 ; Wait delay from nfets off to pfets on |
|||
ADC_LIMIT_L EQU 128 ; Power supply measurement ADC value for which main motor power is limited (low byte) |
|||
ADC_LIMIT_H EQU 2 ; Power supply measurement ADC value for which main motor power is limited (2 MSBs) |
|||
|
|||
|
|||
;********************* |
|||
; PORT 0 definitions * |
|||
;********************* |
|||
; EQU 7 ;i |
|||
Rcp_In EQU 6 ;i |
|||
Mux_A EQU 5 ;i |
|||
; EQU 4 ;i |
|||
Mux_B EQU 3 ;i |
|||
Comp_Com EQU 2 ;i |
|||
Mux_C EQU 1 ;i |
|||
; EQU 0 ;i |
|||
|
|||
P0_DIGITAL EQU NOT((1 SHL Mux_A)+(1 SHL Mux_B)+(1 SHL Mux_C)+(1 SHL Comp_Com)) |
|||
P0_INIT EQU 0FFh |
|||
P0_PUSHPULL EQU 0 |
|||
P0_SKIP EQU NOT(1 SHL Rcp_In) AND 0FFh |
|||
|
|||
MACRO Read_Rcp_Int |
|||
mov A, P0 |
|||
jnb Flags2.PGM_RCP_PWM_POL, ($+4) ; Is pwm polarity negative? |
|||
cpl A ; Yes - invert |
|||
ENDM |
|||
MACRO Rcp_Int_Enable |
|||
orl PCA0CPM0, #01h ; Interrupt enabled |
|||
ENDM |
|||
MACRO Rcp_Int_Disable |
|||
anl PCA0CPM0, #0FEh ; Interrupt disabled |
|||
ENDM |
|||
MACRO Rcp_Int_First |
|||
anl PCA0CPM0, #0CFh |
|||
jb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity positive? |
|||
orl PCA0CPM0, #20h ; Capture rising edge |
|||
jnb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity negative? |
|||
orl PCA0CPM0, #10h ; Capture falling edge |
|||
ENDM |
|||
MACRO Rcp_Int_Second |
|||
anl PCA0CPM0, #0CFh |
|||
jb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity positive? |
|||
orl PCA0CPM0, #10h ; Capture falling edge |
|||
jnb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity negative? |
|||
orl PCA0CPM0, #20h ; Capture rising edge |
|||
ENDM |
|||
MACRO Rcp_Clear_Int_Flag |
|||
clr CCF0 ; Clear interrupt flag |
|||
ENDM |
|||
|
|||
|
|||
;********************* |
|||
; PORT 1 definitions * |
|||
;********************* |
|||
Ref_Gnd EQU 7 ;o |
|||
Adc_Ip EQU 6 ;i |
|||
CpFET EQU 5 ;o |
|||
BpFET EQU 4 ;o |
|||
ApFET EQU 3 ;o |
|||
CnFET EQU 2 ;o |
|||
BnFET EQU 1 ;i |
|||
AnFET EQU 0 ;i |
|||
|
|||
P1_DIGITAL EQU (1 SHL AnFET)+(1 SHL BnFET)+(1 SHL CnFET)+(1 SHL ApFET)+(1 SHL BpFET)+(1 SHL CpFET)+(1 SHL Ref_Gnd) |
|||
P1_INIT EQU (1 SHL ApFET)+(1 SHL BpFET)+(1 SHL CpFET)+(1 SHL Adc_Ip) ; Setting pFET outputs turn them off |
|||
P1_PUSHPULL EQU (1 SHL AnFET)+(1 SHL BnFET)+(1 SHL CnFET)+(1 SHL ApFET)+(1 SHL BpFET)+(1 SHL CpFET) |
|||
P1_SKIP EQU 0 |
|||
|
|||
MACRO AnFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.AnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CnFET |
|||
ENDM |
|||
MACRO AnFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.AnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CnFET |
|||
ENDM |
|||
MACRO BnFET_on |
|||
setb P1.BnFET |
|||
ENDM |
|||
MACRO BnFET_off |
|||
clr P1.BnFET |
|||
ENDM |
|||
MACRO CnFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.AnFET |
|||
ENDM |
|||
MACRO CnFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.AnFET |
|||
ENDM |
|||
MACRO All_nFETs_Off |
|||
clr P1.AnFET |
|||
clr P1.BnFET |
|||
clr P1.CnFET |
|||
ENDM |
|||
|
|||
MACRO ApFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.ApFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CpFET |
|||
ENDM |
|||
MACRO ApFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.ApFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CpFET |
|||
ENDM |
|||
MACRO BpFET_on |
|||
clr P1.BpFET |
|||
ENDM |
|||
MACRO BpFET_off |
|||
setb P1.BpFET |
|||
ENDM |
|||
MACRO CpFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CpFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.ApFET |
|||
ENDM |
|||
MACRO CpFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CpFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.ApFET |
|||
ENDM |
|||
MACRO All_pFETs_Off |
|||
setb P1.ApFET |
|||
setb P1.BpFET |
|||
setb P1.CpFET |
|||
ENDM |
|||
MACRO All_pFETs_On |
|||
clr P1.ApFET |
|||
clr P1.BpFET |
|||
clr P1.CpFET |
|||
ENDM |
|||
|
|||
MACRO Set_Comp_Phase_A |
|||
jb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #21h ; Set comparator multiplexer to phase A |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #01h |
|||
ENDM |
|||
MACRO Set_Comp_Phase_B |
|||
mov CPT0MX, #11h ; Set comparator multiplexer to phase B |
|||
ENDM |
|||
MACRO Set_Comp_Phase_C |
|||
jb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #01h ; Set comparator multiplexer to phase C |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #21h |
|||
ENDM |
|||
MACRO Read_Comp_Out |
|||
mov A, CPT0CN ; Read comparator output |
|||
cpl A ; Invert output |
|||
ENDM |
|||
|
|||
|
|||
;********************* |
|||
; PORT B definitions * |
|||
;********************* |
|||
DebugPin EQU 0 ;o |
|||
|
|||
P2_PUSHPULL EQU (1 SHL DebugPin) |
|||
|
|||
|
|||
;********************** |
|||
; MCU specific macros * |
|||
;********************** |
|||
MACRO Interrupt_Table_Definition |
|||
CSEG AT 0 ; Code segment start |
|||
jmp reset |
|||
CSEG AT 0Bh ; Timer0 interrupt |
|||
jmp t0_int |
|||
CSEG AT 2Bh ; Timer2 interrupt |
|||
jmp t2_int |
|||
CSEG AT 5Bh ; PCA interrupt |
|||
jmp pca_int |
|||
CSEG AT 73h ; Timer3 interrupt |
|||
jmp t3_int |
|||
ENDM |
|||
|
|||
MACRO Initialize_Adc |
|||
mov REF0CN, #01h ; Enable reference buffer |
|||
mov ADC0CF, #0B8h ; ADC clock 1MHz |
|||
mov AMX0P, #(8+Adc_Ip) ; Select positive input |
|||
mov AMX0N, #11h ; Select negative input as ground |
|||
mov ADC0CN, #80h ; ADC enabled |
|||
ENDM |
|||
MACRO Start_Adc |
|||
mov ADC0CN, #90h ; ADC start |
|||
ENDM |
|||
MACRO Get_Adc_Status |
|||
mov A, ADC0CN |
|||
ENDM |
|||
MACRO Read_Adc_Result |
|||
mov Temp1, ADC0L |
|||
mov Temp2, ADC0H |
|||
ENDM |
|||
MACRO Stop_Adc |
|||
ENDM |
@ -0,0 +1,267 @@ |
|||
:03000000020CD21D |
|||
:03000B0002008070 |
|||
:03002B000201D9F6 |
|||
:03005B000202A5F9 |
|||
:0300730002029BEB |
|||
:10008000C2AFC0D0C0E0D2D3758B00E4205A017358 |
|||
:1000900085248AC25AC3E52494FA5016C290C291AC |
|||
:1000A000C29220620201B27401D5E0FDC293C294F3 |
|||
:1000B000C295D0E0D0D0C2D3D2AF3221C9C29120F4 |
|||
:1000C0006E02D290306E02D29221C9206E02C2928C |
|||
:1000D000306E02C290D29121C9206E02C290306E61 |
|||
:1000E00002C292206E02D292306E02D29021C97466 |
|||
:1000F00002206E02D293306E02D295206E02D2950B |
|||
:10010000306E02D293D5E0E9C291206E02D29030D7 |
|||
:100110006E02D29221C97402206E02D293306E0216 |
|||
:10012000D295D294D5E0F1C291206E02D290306E79 |
|||
:1001300002D29221C97402D294206E02D293306E00 |
|||
:1001400002D295D5E0F1206E02C292306E02C290CA |
|||
:10015000D29121C97402D294206E02D295306E02DF |
|||
:10016000D293D5E0F1206E02C292306E02C290D2DC |
|||
:100170009121C97402206E02D295306E02D293D2C0 |
|||
:1001800094D5E0F1206E02C290306E02C292206ED1 |
|||
:1001900002D292306E02D29021C97402206E02D235 |
|||
:1001A00095306E02D293206E02D293306E02D295B9 |
|||
:1001B000D5E0E9206E02C290306E02C292206E023B |
|||
:1001C000D292306E02D29021C9D25AE524F4F58A37 |
|||
:1001D000D0E0D0D0C2D3D2AF32C2AFC0D0C0E0D214 |
|||
:1001E000D3C2CEE52760041527412478007900E5C5 |
|||
:1001F00080306F01F430E60278FA53DACF206F03D3 |
|||
:1002000043DA20306F0343DA10C2D8C261E5803090 |
|||
:100210006F01F430E60279FAC3E89970CE75274091 |
|||
:10022000884BD260E52960041529413143DA01C2C7 |
|||
:10023000D82060024156E54BF8C260C3E8955050A3 |
|||
:1002400005E550C333F8E52B54F0700A8821A8590E |
|||
:10025000B8030385212320CF09D0E0D0D0C2D3D268 |
|||
:10026000AF32C2CF7801E54BC394014005754E0013 |
|||
:100270004179E54E046002054EE559B40203853D1F |
|||
:1002800021C3E5229521600A4004152241900522F0 |
|||
:10029000D8E7D0E0D0D0C2D3D2AF32C2AF53917F33 |
|||
:1002A000C258D2AF32C2AFC0D0C0E0D2D3A8FBA9EF |
|||
:1002B000FCC2D830610241FE53DACF206F0343DA2B |
|||
:1002C00010306F0343DA20D261E580306F01F420F3 |
|||
:1002D000E60241DA8825892661CE53DACF206F0302 |
|||
:1002E00043DA20306F0343DA10C2D8C2617800E5E8 |
|||
:1002F00080306F01F430E60261C1884B61C153DA8E |
|||
:10030000CF206F0343DA20306F0343DA10C261203D |
|||
:100310005902617853DACF206F0343DA10306F034C |
|||
:1003200043DA20C2D8D2618849894AC3E89547F8A0 |
|||
:10033000E99548F9E4FBC3E89468E994015006E4C0 |
|||
:10034000D2E3FB6170C3E894D0E994025006E4D292 |
|||
:10035000E2FB6170C3E894A0E994055006E4D2E1A1 |
|||
:10036000FB6170C3E89440E9940B5004E4D2E0FBD5 |
|||
:10037000A849A94A88478948C3E89525F8E99526F8 |
|||
:10038000F9306B0261A5306A02619EE9C313F9E896 |
|||
:1003900013F8306902619EE9C313F9E813F8E9C361 |
|||
:1003A00013F9E813F8C3E894FAE99400400278FAE4 |
|||
:1003B000A94B884B20590261C1740FF4552D4BF5A0 |
|||
:1003C0002D752740D26030590261CE53DAFE75296F |
|||
:1003D00020D0E0D0D0C2D3D2AF32790161F279031C |
|||
:1003E00061F2790A61F2791E61F2796461F279C889 |
|||
:1003F00061F27817E4D5E0FDD8FAD9F6227A187BB5 |
|||
:100400007881157A157B8C81157A127BB481157AE7 |
|||
:100410000F7BC881157902B26EE4C294D5E0FD204D |
|||
:100420006E02D290306E02D292E540D5E0FD206E91 |
|||
:1004300002C290306E02C292E540D5E0FDD9D8EA02 |
|||
:10044000F8D5E0FDD8FBDBCDD29422E559B4030208 |
|||
:10045000818EC3E5339400E5349405401285212351 |
|||
:10046000E4F535F536F537F538F539F53E818EE5A5 |
|||
:0F04700022F43333F913F8E9540104F9E854FE88 |
|||
:10047F00C39440F8E99400F988358936753E012216 |
|||
:10048F00E53E6039C3E53413F9E53313F8C3E535B9 |
|||
:10049F0098F8E53699F930E70BC3E89480E994FFB3 |
|||
:1004AF00401381C8C3E8947FE99400500281C87853 |
|||
:1004BF007F790081C8788079FF883A893B22E53EB1 |
|||
:1004CF006052E537253AF8E538353BF9E539353BE4 |
|||
:1004DF00FA30E708C3EA94F04012A101C3EA940F7F |
|||
:1004EF005002A10178FF79FF7A0FA10178007900FE |
|||
:1004FF007AF0C3E523954F5009C3E52394014009D2 |
|||
:10050F00A11DE53A20E70DA11DE53A30E706883732 |
|||
:10051F0089388A3922E53E70030205CE853A20E4F8 |
|||
:10052F00300701F4F9C3E53A33F8E933F9E5573009 |
|||
:10053F00E002A154C3E5579404603AE9A2E713F926 |
|||
:10054F00E813F8A184E9FBE8FAEBA2E713FBEA133F |
|||
:10055F00FAE82AF8E93BF9E557C394056017E9A2D1 |
|||
:10056F00E713F9E813F8E557C394036008E9A2E726 |
|||
:10057F0013F9E813F8E930E70BC3E89480E994FF27 |
|||
:10058F004013A1A8C3E8947FE994005002A1A87872 |
|||
:10059F007F7900A1A8788079FFE820E713C3E522CF |
|||
:1005AF0098F84008C3E894014002A1CC7801A1CC8F |
|||
:1005BF00E8F424012522F84002A1CC78FF883C22E0 |
|||
:1005CF00E53E700302066FA838A939E55830E002FE |
|||
:1005DF00A1F2C3E5589404603AE9A2E713F9E813CE |
|||
:1005EF00F8C122E9FBE8FAEBA2E713FBEA13FAE8FA |
|||
:1005FF002AF8E93BF9E558C394056017E9A2E71318 |
|||
:10060F00F9E813F8E558C394036008E9A2E713F972 |
|||
:10061F00E813F8E930E70BC3E89400E994FF4013BF |
|||
:10062F00C146C3E894FFE994005002C14678FF79B0 |
|||
:10063F0000C146780079FFE920E713C3E53C98F83D |
|||
:10064F004008C3E894014002C16D7801C16DE8F420 |
|||
:10065F002401253CF8E934004002C16D78FF88235E |
|||
:10066F002275E890E5E820ECF8A8BDA9BE75528088 |
|||
:10067F00755302755101C3748033FA740233FBC38F |
|||
:10068F00E89AE99B401D8A528B53755102EA2480E8 |
|||
:10069F00FAEB3402FBC3E89AE99B40078A528B536B |
|||
:1006AF00755103AA52AB53C3E55313F9E55213F82F |
|||
:1006BF00C3E913F9E813F8C3E913F9E813F8C3E929 |
|||
:1006CF0013F9E813F8C3E913FDE813FCE82CF8E974 |
|||
:1006DF003DF9C3E55A94016009C3E55A9403600FCD |
|||
:1006EF00E108C3EA98FAEB99FB8A528B53E108EAC7 |
|||
:1006FF0028FAEB39FB8A528B532275E89022E5E8F2 |
|||
:10070F0020ECFBA8BDA9BEC3E894FFE994035011E8 |
|||
:10071F00C3E89552E995535008E54F600B154FE12B |
|||
:10072F0037E54FF46002054FA84FC3E523985002F9 |
|||
:10073F00A823882422305C027832305D0278503052 |
|||
:10074F005E027850305F027828E52B54F06027A9BD |
|||
:10075F005DB90302E17FC313855D28204002C313F7 |
|||
:10076F00204206C8C398F8E17F28F8500374FFF8B9 |
|||
:10077F00882188238824227545707546177AFF7B58 |
|||
:10078F003F8A438B448A3F8B407B1F8A418B428A2F |
|||
:10079F00348A3322A845A946E1ADA83FA9407591F7 |
|||
:1007AF0000C3E498F594E499F595759104D25875C2 |
|||
:1007BF00C820A8CCA9CD75C824AA31AB32883189FD |
|||
:1007CF0032C3E89AF8E99BF9AA33AB34C3EB13FDB4 |
|||
:1007DF00EA13FCC3ED13FDEC13FCC3EA9CFAEB9D8B |
|||
:1007EF00FBEA28FAEB39FB8A338B3440012275344C |
|||
:1007FF00FF7533FF223058020104759100C3E49551 |
|||
:10080F0041F594E49542F595759104D25822A93497 |
|||
:10081F00A8337A04C3E913F9E813F8DAF7C3E894B5 |
|||
:10082F000AF8E99400F94009C3E8940AE9940050E2 |
|||
:10083F0004780AE4F988438944883F8940C3E9135F |
|||
:10084F00F9E813F88841894222305802015875910E |
|||
:10085F0000C3E49533F594E49534F595759104D27E |
|||
:0E086F005822D2AF20580122E524F4C4C3134E |
|||
:10087D00540704F9D2AF0000C2AF306203305AF40E |
|||
:10088D00780D206D027804C3E58B9840F3E59BF459 |
|||
:10089D00F520300603020871D9F3D2AF22D2AF2072 |
|||
:1008AD00580122E524F4C4C313540704F9D2AF0050 |
|||
:1008BD0000C2AF306203305AF4780D206D02780417 |
|||
:1008CD00C3E58B9840F3E59BF4F520200603020861 |
|||
:1008DD00AAD9F3D2AF22759100C3E49543F594E400 |
|||
:1008ED009544F595759104D2582230580201F7229E |
|||
:1008FD00C2AF306203900173D294206E02C2933066 |
|||
:10090D006E02C295759F11D2AF22C2AF30620390B5 |
|||
:10091D0001542062039000CB206E02C292306E0211 |
|||
:10092D00C290305A02D291206E03759F01306E0332 |
|||
:10093D00759F21D2AF22C2AF306203900135206E78 |
|||
:10094D0002D293306E02D295206E02C295306E02A5 |
|||
:10095D00C293206E03759F21306E03759F01D2AF38 |
|||
:10096D0022C2AF3062039001162062039000BDC217 |
|||
:10097D0091305A0A206E02D290306E02D292759F3B |
|||
:10098D0011D2AF22C2AF3062039000EF206E02D2BF |
|||
:10099D0095306E02D293C294206E03759F01306E16 |
|||
:1009AD0003759F21D2AF22C2AF30620390019A200E |
|||
:1009BD0062039000D9206E02C290306E02C2923056 |
|||
:1009CD005A0A206E02D292306E02D290206E0375BA |
|||
:1009DD009F21306E03759F01D2AF229000BBC29054 |
|||
:1009ED00C291C292D293D294D29522C3E54594D0AE |
|||
:1009FD00E5469407500122C3E545940AF8E546946F |
|||
:100A0D0000F9884589462230580241142275570451 |
|||
:100A1D00755804755901755A02755D03D26D7402CE |
|||
:100A2D0030E102C26DC26E740130E102D26EC26F4E |
|||
:100A3D00740130E102D26F22E493F822438F015307 |
|||
:100A4D008FFD75B7A575B7F1E8F0538FFE22438F73 |
|||
:100A5D0002438F0175B7A575B7F1901A0DF0538F3D |
|||
:100A6D00FC22901A0D78A55149901A0E785A5149C9 |
|||
:100A7D0022901A0D5145C3E894A57058901A0E5145 |
|||
:100A8D0045C3E8945A704D901A0351458857901AF2 |
|||
:100A9D000451458858901A0551458859901A0651A8 |
|||
:100AAD0045885A901A095145885D901A0A5145D2C8 |
|||
:100ABD006DE830E102C26D901A0B5145C26EE830FF |
|||
:100ACD00E102D26E901A0C5145C26FE830E102D2AC |
|||
:100ADD006F020AE6511A120B07227A307980901AAA |
|||
:100AED00405145E8F709A3DAF8227A307980901A57 |
|||
:100AFD0040E7F8514909A3DAF822C2AF51E7515B3B |
|||
:100B0D00901A0078025149901A0178005149901AB3 |
|||
:100B1D000278075149901A03A8575149901A04A811 |
|||
:100B2D00585149901A05A8595149901A06A85A5179 |
|||
:100B3D0049901A09A85D5149901A0A7801206D0251 |
|||
:100B4D0078025149901A0B7801306E0278025149A2 |
|||
:100B5D00901A0C7801306F027802514951F7516F9C |
|||
:100B6D0022AB54A855EBC39401602AEBC3940260E9 |
|||
:100B7D0029EBC394036028EBC394046027EBC39463 |
|||
:100B8D00056026EBC394066025EBC39407602AEB42 |
|||
:100B9D00C39408602F8857020BDC8858020BDC8841 |
|||
:100BAD0059020BDC885A020BDC885D020BDCD26D1E |
|||
:100BBD00E830E102C26D020BDCC26EE830E102D218 |
|||
:100BCD006E020BDCC26FE830E102D26F020BDC2249 |
|||
:100BDD007C051203EEDCFB22C2AF1203FD120403EF |
|||
:100BED0012040912040F1203E21203FD1204031280 |
|||
:100BFD00040912040F1203E21203FD12040312047E |
|||
:100C0D000912040FD2AF22AC54AD55C2AF1203FD81 |
|||
:100C1D001203FD1203FD1203E2DCF212040F1203A4 |
|||
:100C2D00E2DDF8D2AF22C2AF12040FD2AF1203EA47 |
|||
:100C3D00C3E54B940150EFC2AF1203FD1203E21254 |
|||
:100C4D0003FDD2AF1203EAC3E54B94FA40E971E517 |
|||
:100C5D0071DD71DD75540175550175560091147C6A |
|||
:0F0C6D00051203EEC3E54B9401500D716E710734 |
|||
:100C7C0071E5C2AF43EF1071DDDCE70556C3E556F5 |
|||
:100C8C009403500280D871DD05557805C3E5549462 |
|||
:100C9C000370027803C3E554940470027803C3E52F |
|||
:100CAC005494054002780208C3E55598500280AB75 |
|||
:100CBC0071DD71DD0554C3E554940950028099C26D |
|||
:100CCC00AF43EF1071DDC2D353D9BF7581C043B2AE |
|||
:100CDC0003E5B324044002F5B37580FF7590787575 |
|||
:100CEC00A40075A53F75A60175F1D175F2BF75D439 |
|||
:100CFC00BF75D50075E24131E8E4F8F6D8FD511A1C |
|||
:100D0C00517E31E8758E01206D03758E007588500B |
|||
:100D1C0075890275C82475910475D8401203EE12BA |
|||
:100D2C0003FD1203E61204031203E6120409120374 |
|||
:100D3C00E675A82275B80275E69075F610759B805D |
|||
:100D4C0075D10175BCB875BB0E75BA1175E880D23A |
|||
:100D5C00AF12067043DA01C2D8C2611203EED25947 |
|||
:100D6C007A051203DE3060FDE54BC3940240F1E5D9 |
|||
:100D7C002D540F854D4CF54DB54CE5DAE5C2595364 |
|||
:100D8C00DACF206F0343DA20306F0343DA10C2D876 |
|||
:100D9C00C261C2AF1203FD1203FD1203FDD2AF12EA |
|||
:100DAC0003EE753D001203DEC3E54B94FA4002815D |
|||
:100DBC0033C3E54B953D4003854B3DC3E54B940157 |
|||
:100DCC0050E3C2AF12040F12040F12040FD2AF1271 |
|||
:100DDC0003EE1203DEC3E54B940140F631E8E4F573 |
|||
:100DEC0021F522F523F524754FFF855C50306E02FA |
|||
:100DFC00F535F536F537F538F539F53EF52BF54E75 |
|||
:100E0C00120786D262D25C12074431B41203DA1193 |
|||
:100E1C00FD1203DA1203DA31171203DE3143120327 |
|||
:100E2C00DE1203DE316E1203E231911203DE120385 |
|||
:100E3C00DAC25CD25D12074431B41207A3111D3122 |
|||
:100E4C00F8511411FD1207A3111D31F8511431176B |
|||
:100E5C001207A3111D31F8511431431207A3111DB0 |
|||
:100E6C0031F85114316E1207A3111D31F8511431A0 |
|||
:100E7C00911207A3111D31F8C3E54594D0E54694B2 |
|||
:100E8C00074004511480B1C25DD25E120744753024 |
|||
:100E9C0002511431B41207A3111D31F8511411FD74 |
|||
:100EAC001207A3111D31F8511431171207A3111D8C |
|||
:100EBC0031F8511431431207A3111D31F85114317B |
|||
:100ECC006E1207A3111D31F8511431911207A311A1 |
|||
:100EDC001D31F8E530146006F530511480B5C25E52 |
|||
:100EEC00D25F120744511431B41207A91104111D19 |
|||
:100EFC00115875300111AA20580302106E11E3111C |
|||
:100F0C00F711FD1207A91104111D11581171205868 |
|||
:100F1C000302106E11E311F731171207A911041116 |
|||
:100F2C001D115811AA20580302106E11E311F7314C |
|||
:100F3C00431207A91104111D1158117120580302F5 |
|||
:100F4C00106E11E311F7316E1207A91104111D1166 |
|||
:100F5C005811AA20580302106E11E311F7319112A7 |
|||
:100F6C0007A91104111D1158117120580302106E9C |
|||
:100F7C0011E311F731B41207A91104111D1158E531 |
|||
:100F8C0030146004F530E101206C11C2AFC262D2A2 |
|||
:100F9C0093D294D295C2949000D9D2AF11AA205872 |
|||
:100FAC000302106E11E312044B11F711FD1207A985 |
|||
:100FBC001104111D1158117120580302106E11E308 |
|||
:100FCC0012048F11F731171207A91104111D1158B2 |
|||
:100FDC0011AA20580302106E11E31204CD11F7313F |
|||
:100FEC00431207A91104111D115811712058030245 |
|||
:100FFC00106E1208E31205241208F712096E12077C |
|||
:10100C00A912080412081D1208581208AA20580325 |
|||
:10101C0002106E1208E31205CF1208F71209911292 |
|||
:10102C0007A912080412081D120858120871120799 |
|||
:10103C000920580302106E1208E312070D1208F76C |
|||
:10104C001209B41207A912080412081D120858C27A |
|||
:10105C005FC3E54E9401500AC3E53494F05003028B |
|||
:0E106C000FA81209E8E4F521F522F523F5247A |
|||
:03107A00020D6CF8 |
|||
:0F1A000002000704040102030303020101A55AB7 |
|||
:101A40002344503341232020202020202020202008 |
|||
:101A500023424C48454C4923463333302320202031 |
|||
:101A60002020202020202020202020202020202076 |
|||
:00000001FF |
@ -0,0 +1,256 @@ |
|||
:03000000020C04EB |
|||
:03000B0002008070 |
|||
:03002B000201D9F6 |
|||
:03005B000202BFDF |
|||
:030073000202B5D1 |
|||
:10008000C2AFC0D0C0E0D2D3758B00E4205A017358 |
|||
:1000900085248AC25AC3E52494FA5016C290C291AC |
|||
:1000A000C29220620201B27401D5E0FDC293C294F3 |
|||
:1000B000C295D0E0D0D0C2D3D2AF3221C9C29120F4 |
|||
:1000C0006E02D290306E02D29221C9206E02C2928C |
|||
:1000D000306E02C290D29121C9206E02C290306E61 |
|||
:1000E00002C292206E02D292306E02D29021C97466 |
|||
:1000F00002206E02D293306E02D295206E02D2950B |
|||
:10010000306E02D293D5E0E9C291206E02D29030D7 |
|||
:100110006E02D29221C97402206E02D293306E0216 |
|||
:10012000D295D294D5E0F1C291206E02D290306E79 |
|||
:1001300002D29221C97402D294206E02D293306E00 |
|||
:1001400002D295D5E0F1206E02C292306E02C290CA |
|||
:10015000D29121C97402D294206E02D295306E02DF |
|||
:10016000D293D5E0F1206E02C292306E02C290D2DC |
|||
:100170009121C97402206E02D295306E02D293D2C0 |
|||
:1001800094D5E0F1206E02C290306E02C292206ED1 |
|||
:1001900002D292306E02D29021C97402206E02D235 |
|||
:1001A00095306E02D293206E02D293306E02D295B9 |
|||
:1001B000D5E0E9206E02C290306E02C292206E023B |
|||
:1001C000D292306E02D29021C9D25AE524F4F58A37 |
|||
:1001D000D0E0D0D0C2D3D2AF32C2AFC0D0C0E0D214 |
|||
:1001E000D3C2CEE52760041527412478007900E5C5 |
|||
:1001F00080306F01F430E60278FA53DACF206F03D3 |
|||
:1002000043DA20306F0343DA10C2D8C261E5803090 |
|||
:100210006F01F430E60279FAC3E89970CE752718B9 |
|||
:10022000884BD260E52960041529413143DA01C2C7 |
|||
:10023000D82060024189E54BF8C260C394F04003C6 |
|||
:1002400074F0F8C4540F28F8A95BB90302416BC3DA |
|||
:1002500013C313855B28204002C313204206C8C382 |
|||
:1002600098F8416B28F8500374FFF8C3E895505094 |
|||
:1002700005E550C333F8E52B54F0700D8821A859DB |
|||
:10028000B8030685212385212420CF09D0E0D0D0D2 |
|||
:10029000C2D3D2AF32C2CF7801E54BC3940140053F |
|||
:1002A000754E0041ACE54E046002054ED0E0D0D062 |
|||
:1002B000C2D3D2AF32C2AF53917FC258D2AF32C293 |
|||
:1002C000AFC0D0C0E0D2D3A8FBA9FCC2D830610235 |
|||
:1002D000611853DACF206F0343DA10306F0343DA2B |
|||
:1002E00020D261E580306F01F420E60241F48825D8 |
|||
:1002F000892661E853DACF206F0343DA20306F0399 |
|||
:1003000043DA10C2D8C2617800E580306F01F43062 |
|||
:10031000E60261DB884B61DB53DACF206F0343DAFF |
|||
:1003200020306F0343DA10C261205902619253DA20 |
|||
:10033000CF206F0343DA10306F0343DA20C2D8D2E4 |
|||
:10034000618849894AC3E89547F8E99548F9E4FB8B |
|||
:10035000C3E89468E994015006E4D2E3FB618AC3E0 |
|||
:10036000E894D0E994025006E4D2E2FB618AC3E843 |
|||
:1003700094A0E994055006E4D2E1FB618AC3E894B5 |
|||
:1003800040E9940B5004E4D2E0FBA849A94A88470D |
|||
:100390008948C3E89525F8E99526F9306B0261BFD5 |
|||
:1003A000306A0261B8E9C313F9E813F830690261F1 |
|||
:1003B000B8E9C313F9E813F8E9C313F9E813F8C36C |
|||
:1003C000E894FAE99400400278FAA94B884B205946 |
|||
:1003D0000261DB740FF4552D4BF52D752718D26093 |
|||
:1003E00030590261E853DAFE752906D0E0D0D0C258 |
|||
:1003F000D3D2AF327901810C7903810C790A810C57 |
|||
:10040000791E810C7964810C79C8810C7817E4D548 |
|||
:10041000E0FDD8FAD9F6227A187B78812F7A157BFD |
|||
:100420008C812F7A127BB4812F7A0F7BC8812F7930 |
|||
:1004300002B26EE4C294D5E0FD206E02D290306E1E |
|||
:1004400002D292E540D5E0FD206E02C290306E02ED |
|||
:10045000C292E540D5E0FDD9D8EAF8D5E0FDD8FB59 |
|||
:10046000DBCDD29422E559B4030281A8C3E53394CD |
|||
:0F04700000E53494054012852123E4F535F53677 |
|||
:10047F00F537F538F539F53E81A8E522F43333F930 |
|||
:10048F0013F8E9540104F9E854FEC39440F8E994D1 |
|||
:10049F0000F988358936753E0122E53E6039C3E59E |
|||
:1004AF003413F9E53313F8C3E53598F8E53699F9C0 |
|||
:1004BF0030E70BC3E89480E994FF401381E2C3E86F |
|||
:1004CF00947FE99400500281E2787F790081E2788D |
|||
:1004DF008079FF883A893B22E53E6052E537253A1D |
|||
:1004EF00F8E538353BF9E539353BFA30E708C3EA2B |
|||
:1004FF0094F04012A11BC3EA940F5002A11B78FF86 |
|||
:10050F0079FF7A0FA11B780079007AF0C3E5239564 |
|||
:10051F004F5009C3E52394014009A137E53A20E77D |
|||
:10052F000DA137E53A30E706883789388A3922E551 |
|||
:10053F003E70030205E8853A20E4300701F4F9C361 |
|||
:10054F00E53A33F8E933F9E55730E002A16EC3E538 |
|||
:10055F00579404603AE9A2E713F9E813F8A19EE96A |
|||
:10056F00FBE8FAEBA2E713FBEA13FAE82AF8E93BF8 |
|||
:10057F00F9E557C394056017E9A2E713F9E813F8F3 |
|||
:10058F00E557C394036008E9A2E713F9E813F8E904 |
|||
:10059F0030E70BC3E89480E994FF4013A1C2C3E88E |
|||
:1005AF00947FE994005002A1C2787F7900A1C278AC |
|||
:1005BF008079FFE820E713C3E52298F84008C3E8E5 |
|||
:1005CF0094014002A1E67801A1E6E8F42401252276 |
|||
:1005DF00F84002A1E678FF883C22E53E7003020650 |
|||
:1005EF0089A838A939E55830E002C10CC3E5589401 |
|||
:1005FF0004603AE9A2E713F9E813F8C13CE9FBE814 |
|||
:10060F00FAEBA2E713FBEA13FAE82AF8E93BF9E55C |
|||
:10061F0058C394056017E9A2E713F9E813F8E558F2 |
|||
:10062F00C394036008E9A2E713F9E813F8E930E788 |
|||
:10063F000BC3E89400E994FF4013C160C3E894FF33 |
|||
:10064F00E994005002C16078FF7900C160780079A9 |
|||
:10065F00FFE920E713C3E53C98F84008C3E894018D |
|||
:10066F004002C1877801C187E8F42401253CF8E9ED |
|||
:10067F0034004002C18778FF882322222222305C77 |
|||
:10068F00027832305D027878305E027850305F0247 |
|||
:10069F007828E52B54F06027A95DB90302C1C8C3C0 |
|||
:1006AF0013855D28204002C313204206C8C398F863 |
|||
:1006BF00C1C828F8500374FFF888218823882422A2 |
|||
:1006CF007545707546177AFF7B3F8A438B448A3F87 |
|||
:1006DF008B407B1F8A418B428A348A3322A845A9DB |
|||
:1006EF0046C1F6A83FA940759100C3E498F594E47C |
|||
:1006FF0099F595759104D25875C820A8CCA9CD75D8 |
|||
:10070F00C824AA31AB3288318932C3E89AF8E99B01 |
|||
:10071F00F9AA33AB34C3EB13FDEA13FCC3ED13FD9E |
|||
:10072F00EC13FCC3EA9CFAEB9DFBEA28FAEB39FBCE |
|||
:10073F008A338B344001227534FF7533FF223058D2 |
|||
:10074F0002E14D759100C3E49541F594E49542F5AE |
|||
:10075F0095759104D25822A934A8337A04C3E913AA |
|||
:10076F00F9E813F8DAF7C3E8940AF8E99400F940C6 |
|||
:10077F0009C3E8940AE994005004780AE4F988431D |
|||
:10078F008944883F8940C3E913F9E813F888418900 |
|||
:10079F004222305802E1A1759100C3E49533F594DC |
|||
:1007AF00E49534F595759104D25822D2AF205801B3 |
|||
:1007BF0022E524F4C4C313540704F9D2AF0000C2D6 |
|||
:1007CF00AF306203305AF4780D206D027804C3E520 |
|||
:1007DF008B9840F3E59BF4F5203006030207BAD956 |
|||
:1007EF00F3D2AF22D2AF20580122E524F4C4C313B1 |
|||
:1007FF00540704F9D2AF0000C2AF306203305AF48D |
|||
:10080F00780D206D027804C3E58B9840F3E59BF4D7 |
|||
:10081F00F5202006030207F3D9F3D2AF227591001A |
|||
:10082F00C3E49543F594E49544F595759104D25836 |
|||
:10083F0022305802014022C2AF306203900173D2BE |
|||
:10084F0094206E02C293306E02C295759F11D2AF83 |
|||
:10085F0022C2AF3062039001542062039000CB207C |
|||
:0E086F006E02C292306E02C290305A02D291D6 |
|||
:10087D00206E03759F01306E03759F21D2AF22C28A |
|||
:10088D00AF306203900135206E02D293306E02D2EA |
|||
:10089D0095206E02C295306E02C293206E03759F35 |
|||
:1008AD0021306E03759F01D2AF22C2AF306203902B |
|||
:1008BD0001162062039000BDC291305A0A206E02CB |
|||
:1008CD00D290306E02D292759F11D2AF22C2AF304C |
|||
:1008DD0062039000EF206E02D295306E02D293C269 |
|||
:1008ED0094206E03759F01306E03759F21D2AF2248 |
|||
:1008FD00C2AF30620390019A2062039000D9206E3E |
|||
:10090D0002C290306E02C292305A0A206E02D2920A |
|||
:10091D00306E02D290206E03759F21306E03759F4D |
|||
:10092D0001D2AF229000BBC290C291C292D293D29B |
|||
:10093D0094D29522C3E54594D0E546940750012203 |
|||
:10094D00C3E545943CF8E5469400F988458946226F |
|||
:10095D00305802215D22755B03755C03755D03C222 |
|||
:10096D006D740330E002D26DC26CC3740394034006 |
|||
:10097D0002D26CC26E740130E102D266C26F740194 |
|||
:10098D0030E102D26F75590322E493F822438F01AF |
|||
:10099D00538FFD75B7A575B7F1E8F0538FFE224360 |
|||
:1009AD008F02438F0175B7A575B7F1901A0DF053EE |
|||
:1009BD008FFC22901A0D785A319A901A0E78A53123 |
|||
:1009CD009A22901A0D3196C3E8945A7057901A0EC8 |
|||
:1009DD003196C3E894A5704C901A073196885B90B8 |
|||
:1009ED001A083196885C901A093196885D901A0A1A |
|||
:1009FD003196C26DE830E002D26DC26CC3E894034B |
|||
:100A0D004002D26C901A0B3196C26EE830E102D2E0 |
|||
:100A1D006E901A0C3196C26FE830E102D26F7559A3 |
|||
:100A2D0003020A363163120A57227A307980901AFE |
|||
:100A3D00403196E8F709A3DAF8227A307980901AD6 |
|||
:100A4D0040E7F8319A09A3DAF822C2AF513731AC39 |
|||
:100A5D00901A007802319A901A017800319A901A02 |
|||
:100A6D00027807319A901A07A85B319A901A08A854 |
|||
:100A7D005C319A901A09A85D319A901A0A78012072 |
|||
:100A8D006D027802306C027803319A901A0B78015E |
|||
:100A9D00306E027802319A901A0C7801306F02781C |
|||
:100AAD0002319A514731C022AB54A855EBC3940182 |
|||
:100ABD00601EEBC39402601DEBC39403601CEBC37B |
|||
:100ACD009404601BEBC39405602AEBC39406602F5E |
|||
:100ADD00885B020B17885C020B17885D020B17C22F |
|||
:100AED006DE830E002D26DC26CC3E894034002D2CF |
|||
:100AFD006C020B17C26EE830E102D26E020B17C208 |
|||
:100B0D006FE830E102D26F020B17227C0512040848 |
|||
:100B1D00DCFB22C2AF12041712041D1204231204AF |
|||
:100B2D00291203FC12041712041D120423120429A6 |
|||
:100B3D001203FC12041712041D120423120429D2ED |
|||
:100B4D00AF22AC54AD55C2AF1204171204171204E4 |
|||
:100B5D00171203FCDCF21204291203FCDDF8D2AFEC |
|||
:100B6D0022C2AF120429D2AF120404C3E54B940183 |
|||
:100B7D0050EFC2AF1204171203FC120417D2AF12BA |
|||
:100B8D000404C3E54B94FA40E9712071187118758E |
|||
:100B9D005401755501755600714F7C05120408C33B |
|||
:100BAD00E54B9401500D51B551577120C2AF43EF34 |
|||
:100BBD00107118DCE70556C3E5569403500280D832 |
|||
:100BCD00711805557805C3E554940440027803C3A4 |
|||
:100BDD00E55494054002780208C3E555985002800B |
|||
:100BED00B4711871180554C3E5549407500280A2CE |
|||
:100BFD00C2AF43EF107118C2D353D9BF7581C04333 |
|||
:100C0D00B203E5B324044002F5B37580FF75907807 |
|||
:100C1D0075A40075A53F75A60175F1D175F2BF7567 |
|||
:100C2D00D4BF75D50075E2413131E4F8F6D8FD3108 |
|||
:100C3D006331CF3131758E01206D03758E0075884E |
|||
:100C4D005075890275C82475910475D84012040831 |
|||
:100C5D0012041712040012041D12040012042312B0 |
|||
:0E0C6D00040075A82275B80275E69075F610A1 |
|||
:100C7B00759B8075D10175BCB875BB0E75BA1175B6 |
|||
:100C8B00E880D2AF12068A43DA01C2D8C2611204DD |
|||
:100C9B0008D2597A051203F83060FDE54BC3940274 |
|||
:100CAB0040F1E52D540F854D4CF54DB54CE5DAE58E |
|||
:100CBB00C25953DACF206F0343DA20306F0343DA84 |
|||
:100CCB0010C2D8C261C2AF12041712041712041754 |
|||
:100CDB00D2AF120408753D001203F8C3E54B94FA2A |
|||
:100CEB004002616EC3E54B953D4003854B3DC3E52B |
|||
:100CFB004B940150E3C2AF120429120429120429A8 |
|||
:100D0B00D2AF1204081203F8C3E54B940140F6313D |
|||
:100D1B0031E4F521F522F523F524754FFF855C5061 |
|||
:100D2B00306E02F535F536F537F538F539F53EF514 |
|||
:100D3B002BF54E1206CFD262D25C12068D11FD122C |
|||
:100D4B0003F411461203F41203F411601203F811A9 |
|||
:100D5B008C1203F81203F811B71203FC11DA120309 |
|||
:100D6B00F81203F4C25CD25D12068D11FD1206EC73 |
|||
:100D7B001207663141315D11461206EC12076631DE |
|||
:100D8B0041315D11601206EC1207663141315D1184 |
|||
:100D9B008C1206EC1207663141315D11B71206EC6D |
|||
:100DAB001207663141315D11DA1206EC120766311A |
|||
:100DBB0041C3E54594D0E54694074004315D80ABD3 |
|||
:100DCB00C25DD25E12068D753002315D11FD1206C9 |
|||
:100DDB00EC1207663141315D11461206EC120766C3 |
|||
:100DEB003141315D11601206EC1207663141315D04 |
|||
:100DFB00118C1206EC1207663141315D11B71206E8 |
|||
:100E0B00EC1207663141315D11DA1206EC120766FE |
|||
:100E1B003141E530146006F530315D80AFC25ED2F2 |
|||
:100E2B005F12068D315D11FD1206F212074D12078E |
|||
:100E3B00661207A17530011207F3205803020FCA7F |
|||
:100E4B00112C114011461206F212074D12076612B1 |
|||
:100E5B0007A11207BA205803020FCA112C11401117 |
|||
:100E6B00601206F212074D1207661207A11207F362 |
|||
:100E7B00205803020FCA112C1140118C1206F212CA |
|||
:100E8B00074D1207661207A11207BA205803020F6B |
|||
:100E9B00CA112C114011B71206F212074D12076638 |
|||
:100EAB001207A11207F3205803020FCA112C11408D |
|||
:100EBB0011DA1206F212074D1207661207A112077A |
|||
:100ECB00BA205803020FCA112C114011FD1206F261 |
|||
:100EDB0012074D1207661207A1E530146004F530B6 |
|||
:100EEB00C142206C11C2AFC262D293D294D295C2CE |
|||
:100EFB00949000D9D2AF1207F3205803020FCA11F6 |
|||
:100F0B002C120465114011461206F212074D1207FE |
|||
:100F1B00661207A11207BA205803020FCA112C122E |
|||
:100F2B0004A9114011601206F212074D1207661246 |
|||
:100F3B0007A11207F3205803020FCA112C1204E762 |
|||
:100F4B001140118C1206F212074D1207661207A1FF |
|||
:100F5B001207BA205803020FCA112C12053E11407A |
|||
:100F6B0011B71206F212074D1207661207A11207EC |
|||
:100F7B00F3205803020FCA112C1205E9114011DAA4 |
|||
:100F8B001206F212074D1207661207A11207BA12C8 |
|||
:100F9B00068B205803020FCA112C12068C1140111C |
|||
:100FAB00FD1206F212074D1207661207A1C25FC3AC |
|||
:100FBB00E54E94645009C3E53494F05002E10131DD |
|||
:0C0FCB0031E4F521F522F523F524A110F6 |
|||
:0F1A0000020007040401020303030301015AA5B6 |
|||
:101A40002344503341232020202020202020202008 |
|||
:101A500023424C48454C4923463333302320202031 |
|||
:101A60002020202020202020202020202020202076 |
|||
:00000001FF |
@ -0,0 +1,267 @@ |
|||
:03000000020CD21D |
|||
:03000B0002008070 |
|||
:03002B000201D9F6 |
|||
:03005B000202A5F9 |
|||
:0300730002029BEB |
|||
:10008000C2AFC0D0C0E0D2D3758B00E4205A017358 |
|||
:1000900085248AC25AC3E52494FA5016C290C291AC |
|||
:1000A000C29220620201B27401D5E0FDC293C294F3 |
|||
:1000B000C295D0E0D0D0C2D3D2AF3221C9C29120F4 |
|||
:1000C0006E02D290306E02D29221C9206E02C2928C |
|||
:1000D000306E02C290D29121C9206E02C290306E61 |
|||
:1000E00002C292206E02D292306E02D29021C97466 |
|||
:1000F00002206E02D293306E02D295206E02D2950B |
|||
:10010000306E02D293D5E0E9C291206E02D29030D7 |
|||
:100110006E02D29221C97402206E02D293306E0216 |
|||
:10012000D295D294D5E0F1C291206E02D290306E79 |
|||
:1001300002D29221C97402D294206E02D293306E00 |
|||
:1001400002D295D5E0F1206E02C292306E02C290CA |
|||
:10015000D29121C97402D294206E02D295306E02DF |
|||
:10016000D293D5E0F1206E02C292306E02C290D2DC |
|||
:100170009121C97402206E02D295306E02D293D2C0 |
|||
:1001800094D5E0F1206E02C290306E02C292206ED1 |
|||
:1001900002D292306E02D29021C97402206E02D235 |
|||
:1001A00095306E02D293206E02D293306E02D295B9 |
|||
:1001B000D5E0E9206E02C290306E02C292206E023B |
|||
:1001C000D292306E02D29021C9D25AE524F4F58A37 |
|||
:1001D000D0E0D0D0C2D3D2AF32C2AFC0D0C0E0D214 |
|||
:1001E000D3C2CEE52760041527412478007900E5C5 |
|||
:1001F00080306F01F430E60278FA53DACF206F03D3 |
|||
:1002000043DA20306F0343DA10C2D8C261E5803090 |
|||
:100210006F01F430E60279FAC3E89970CE75274091 |
|||
:10022000884BD260E52960041529413143DA01C2C7 |
|||
:10023000D82060024156E54BF8C260C3E8955050A3 |
|||
:1002400005E550C333F8E52B54F0700A8821A8590E |
|||
:10025000B8030385212320CF09D0E0D0D0C2D3D268 |
|||
:10026000AF32C2CF7801E54BC394014005754E0013 |
|||
:100270004179E54E046002054EE559B40203853D1F |
|||
:1002800021C3E5229521600A4004152241900522F0 |
|||
:10029000D8E7D0E0D0D0C2D3D2AF32C2AF53917F33 |
|||
:1002A000C258D2AF32C2AFC0D0C0E0D2D3A8FBA9EF |
|||
:1002B000FCC2D830610241FE53DACF206F0343DA2B |
|||
:1002C00010306F0343DA20D261E580306F01F420F3 |
|||
:1002D000E60241DA8825892661CE53DACF206F0302 |
|||
:1002E00043DA20306F0343DA10C2D8C2617800E5E8 |
|||
:1002F00080306F01F430E60261C1884B61C153DA8E |
|||
:10030000CF206F0343DA20306F0343DA10C261203D |
|||
:100310005902617853DACF206F0343DA10306F034C |
|||
:1003200043DA20C2D8D2618849894AC3E89547F8A0 |
|||
:10033000E99548F9E4FBC3E89468E994015006E4C0 |
|||
:10034000D2E3FB6170C3E894D0E994025006E4D292 |
|||
:10035000E2FB6170C3E894A0E994055006E4D2E1A1 |
|||
:10036000FB6170C3E89440E9940B5004E4D2E0FBD5 |
|||
:10037000A849A94A88478948C3E89525F8E99526F8 |
|||
:10038000F9306B0261A5306A02619EE9C313F9E896 |
|||
:1003900013F8306902619EE9C313F9E813F8E9C361 |
|||
:1003A00013F9E813F8C3E894FAE99400400278FAE4 |
|||
:1003B000A94B884B20590261C1740FF4552D4BF5A0 |
|||
:1003C0002D752740D26030590261CE53DAFE75296F |
|||
:1003D00020D0E0D0D0C2D3D2AF32790161F279031C |
|||
:1003E00061F2790A61F2791E61F2796461F279C889 |
|||
:1003F00061F27817E4D5E0FDD8FAD9F6227A187BB5 |
|||
:100400007881157A157B8C81157A127BB481157AE7 |
|||
:100410000F7BC881157902B26EE4C294D5E0FD204D |
|||
:100420006E02D290306E02D292E540D5E0FD206E91 |
|||
:1004300002C290306E02C292E540D5E0FDD9D8EA02 |
|||
:10044000F8D5E0FDD8FBDBCDD29422E559B4030208 |
|||
:10045000818EC3E5339400E5349405401285212351 |
|||
:10046000E4F535F536F537F538F539F53E818EE5A5 |
|||
:0F04700022F43333F913F8E9540104F9E854FE88 |
|||
:10047F00C39440F8E99400F988358936753E012216 |
|||
:10048F00E53E6039C3E53413F9E53313F8C3E535B9 |
|||
:10049F0098F8E53699F930E70BC3E89480E994FFB3 |
|||
:1004AF00401381C8C3E8947FE99400500281C87853 |
|||
:1004BF007F790081C8788079FF883A893B22E53EB1 |
|||
:1004CF006052E537253AF8E538353BF9E539353BE4 |
|||
:1004DF00FA30E708C3EA94F04012A101C3EA940F7F |
|||
:1004EF005002A10178FF79FF7A0FA10178007900FE |
|||
:1004FF007AF0C3E523954F5009C3E52394014009D2 |
|||
:10050F00A11DE53A20E70DA11DE53A30E706883732 |
|||
:10051F0089388A3922E53E70030205CE853A20E4F8 |
|||
:10052F00300701F4F9C3E53A33F8E933F9E5573009 |
|||
:10053F00E002A154C3E5579404603AE9A2E713F926 |
|||
:10054F00E813F8A184E9FBE8FAEBA2E713FBEA133F |
|||
:10055F00FAE82AF8E93BF9E557C394056017E9A2D1 |
|||
:10056F00E713F9E813F8E557C394036008E9A2E726 |
|||
:10057F0013F9E813F8E930E70BC3E89480E994FF27 |
|||
:10058F004013A1A8C3E8947FE994005002A1A87872 |
|||
:10059F007F7900A1A8788079FFE820E713C3E522CF |
|||
:1005AF0098F84008C3E894014002A1CC7801A1CC8F |
|||
:1005BF00E8F424012522F84002A1CC78FF883C22E0 |
|||
:1005CF00E53E700302066FA838A939E55830E002FE |
|||
:1005DF00A1F2C3E5589404603AE9A2E713F9E813CE |
|||
:1005EF00F8C122E9FBE8FAEBA2E713FBEA13FAE8FA |
|||
:1005FF002AF8E93BF9E558C394056017E9A2E71318 |
|||
:10060F00F9E813F8E558C394036008E9A2E713F972 |
|||
:10061F00E813F8E930E70BC3E89400E994FF4013BF |
|||
:10062F00C146C3E894FFE994005002C14678FF79B0 |
|||
:10063F0000C146780079FFE920E713C3E53C98F83D |
|||
:10064F004008C3E894014002C16D7801C16DE8F420 |
|||
:10065F002401253CF8E934004002C16D78FF88235E |
|||
:10066F002275E890E5E820ECF8A8BDA9BE75528088 |
|||
:10067F00755302755101C3748033FA740233FBC38F |
|||
:10068F00E89AE99B401D8A528B53755102EA2480E8 |
|||
:10069F00FAEB3402FBC3E89AE99B40078A528B536B |
|||
:1006AF00755103AA52AB53C3E55313F9E55213F82F |
|||
:1006BF00C3E913F9E813F8C3E913F9E813F8C3E929 |
|||
:1006CF0013F9E813F8C3E913FDE813FCE82CF8E974 |
|||
:1006DF003DF9C3E55A94016009C3E55A9403600FCD |
|||
:1006EF00E108C3EA98FAEB99FB8A528B53E108EAC7 |
|||
:1006FF0028FAEB39FB8A528B532275E89022E5E8F2 |
|||
:10070F0020ECFBA8BDA9BEC3E894FFE994035011E8 |
|||
:10071F00C3E89552E995535008E54F600B154FE12B |
|||
:10072F0037E54FF46002054FA84FC3E523985002F9 |
|||
:10073F00A823882422305C027832305D0278503052 |
|||
:10074F005E027850305F027828E52B54F06027A9BD |
|||
:10075F005DB90302E17FC313855D28204002C313F7 |
|||
:10076F00204206C8C398F8E17F28F8500374FFF8B9 |
|||
:10077F00882188238824227545707546177AFF7B58 |
|||
:10078F003F8A438B448A3F8B407B1F8A418B428A2F |
|||
:10079F00348A3322A845A946E1ADA83FA9407591F7 |
|||
:1007AF0000C3E498F594E499F595759104D25875C2 |
|||
:1007BF00C820A8CCA9CD75C824AA31AB32883189FD |
|||
:1007CF0032C3E89AF8E99BF9AA33AB34C3EB13FDB4 |
|||
:1007DF00EA13FCC3ED13FDEC13FCC3EA9CFAEB9D8B |
|||
:1007EF00FBEA28FAEB39FB8A338B3440012275344C |
|||
:1007FF00FF7533FF223058020104759100C3E49551 |
|||
:10080F0041F594E49542F595759104D25822A93497 |
|||
:10081F00A8337A04C3E913F9E813F8DAF7C3E894B5 |
|||
:10082F000AF8E99400F94009C3E8940AE9940050E2 |
|||
:10083F0004780AE4F988438944883F8940C3E9135F |
|||
:10084F00F9E813F88841894222305802015875910E |
|||
:10085F0000C3E49533F594E49534F595759104D27E |
|||
:0E086F005822D2AF20580122E524F4C4C3134E |
|||
:10087D00540704F9D2AF0000C2AF306203305AF40E |
|||
:10088D00780D206D027804C3E58B9840F3E59BF459 |
|||
:10089D00F520300603020871D9F3D2AF22D2AF2072 |
|||
:1008AD00580122E524F4C4C313540704F9D2AF0050 |
|||
:1008BD0000C2AF306203305AF4780D206D02780417 |
|||
:1008CD00C3E58B9840F3E59BF4F520200603020861 |
|||
:1008DD00AAD9F3D2AF22759100C3E49543F594E400 |
|||
:1008ED009544F595759104D2582230580201F7229E |
|||
:1008FD00C2AF306203900173D294206E02C2933066 |
|||
:10090D006E02C295759F11D2AF22C2AF30620390B5 |
|||
:10091D0001542062039000CB206E02C292306E0211 |
|||
:10092D00C290305A02D291206E03759F01306E0332 |
|||
:10093D00759F21D2AF22C2AF306203900135206E78 |
|||
:10094D0002D293306E02D295206E02C295306E02A5 |
|||
:10095D00C293206E03759F21306E03759F01D2AF38 |
|||
:10096D0022C2AF3062039001162062039000BDC217 |
|||
:10097D0091305A0A206E02D290306E02D292759F3B |
|||
:10098D0011D2AF22C2AF3062039000EF206E02D2BF |
|||
:10099D0095306E02D293C294206E03759F01306E16 |
|||
:1009AD0003759F21D2AF22C2AF30620390019A200E |
|||
:1009BD0062039000D9206E02C290306E02C2923056 |
|||
:1009CD005A0A206E02D292306E02D290206E0375BA |
|||
:1009DD009F21306E03759F01D2AF229000BBC29054 |
|||
:1009ED00C291C292D293D294D29522C3E54594D0AE |
|||
:1009FD00E5469407500122C3E545940AF8E546946F |
|||
:100A0D0000F9884589462230580241142275570451 |
|||
:100A1D00755804755901755A02755D03D26D7402CE |
|||
:100A2D0030E102C26DC26E740130E102D26EC26F4E |
|||
:100A3D00740130E102D26F22E493F822438F015307 |
|||
:100A4D008FFD75B7A575B7F1E8F0538FFE22438F73 |
|||
:100A5D0002438F0175B7A575B7F1901A0DF0538F3D |
|||
:100A6D00FC22901A0D78A55149901A0E785A5149C9 |
|||
:100A7D0022901A0D5145C3E894A57058901A0E5145 |
|||
:100A8D0045C3E8945A704D901A0351458857901AF2 |
|||
:100A9D000451458858901A0551458859901A0651A8 |
|||
:100AAD0045885A901A095145885D901A0A5145D2C8 |
|||
:100ABD006DE830E102C26D901A0B5145C26EE830FF |
|||
:100ACD00E102D26E901A0C5145C26FE830E102D2AC |
|||
:100ADD006F020AE6511A120B07227A307980901AAA |
|||
:100AED00405145E8F709A3DAF8227A307980901A57 |
|||
:100AFD0040E7F8514909A3DAF822C2AF51E7515B3B |
|||
:100B0D00901A0078025149901A0178005149901AB3 |
|||
:100B1D000278075149901A03A8575149901A04A811 |
|||
:100B2D00585149901A05A8595149901A06A85A5179 |
|||
:100B3D0049901A09A85D5149901A0A7801206D0251 |
|||
:100B4D0078025149901A0B7801306E0278025149A2 |
|||
:100B5D00901A0C7801306F027802514951F7516F9C |
|||
:100B6D0022AB54A855EBC39401602AEBC3940260E9 |
|||
:100B7D0029EBC394036028EBC394046027EBC39463 |
|||
:100B8D00056026EBC394066025EBC39407602AEB42 |
|||
:100B9D00C39408602F8857020BDC8858020BDC8841 |
|||
:100BAD0059020BDC885A020BDC885D020BDCD26D1E |
|||
:100BBD00E830E102C26D020BDCC26EE830E102D218 |
|||
:100BCD006E020BDCC26FE830E102D26F020BDC2249 |
|||
:100BDD007C051203EEDCFB22C2AF1203FD120403EF |
|||
:100BED0012040912040F1203E21203FD1204031280 |
|||
:100BFD00040912040F1203E21203FD12040312047E |
|||
:100C0D000912040FD2AF22AC54AD55C2AF1203FD81 |
|||
:100C1D001203FD1203FD1203E2DCF212040F1203A4 |
|||
:100C2D00E2DDF8D2AF22C2AF12040FD2AF1203EA47 |
|||
:100C3D00C3E54B940150EFC2AF1203FD1203E21254 |
|||
:100C4D0003FDD2AF1203EAC3E54B94FA40E971E517 |
|||
:100C5D0071DD71DD75540175550175560091147C6A |
|||
:0F0C6D00051203EEC3E54B9401500D716E710734 |
|||
:100C7C0071E5C2AF43EF1071DDDCE70556C3E556F5 |
|||
:100C8C009403500280D871DD05557805C3E5549462 |
|||
:100C9C000370027803C3E554940470027803C3E52F |
|||
:100CAC005494054002780208C3E55598500280AB75 |
|||
:100CBC0071DD71DD0554C3E554940950028099C26D |
|||
:100CCC00AF43EF1071DDC2D353D9BF7581C043B2AE |
|||
:100CDC0003E5B324044002F5B37580FF7590787575 |
|||
:100CEC00A40075A53F75A60175F1D175F2BF75D439 |
|||
:100CFC00BF75D50075E24131E8E4F8F6D8FD511A1C |
|||
:100D0C00517E31E8758E01206D03758E007588500B |
|||
:100D1C0075890275C82475910475D8401203EE12BA |
|||
:100D2C0003FD1203E61204031203E6120409120374 |
|||
:100D3C00E675A82275B80275E69075F610759B805D |
|||
:100D4C0075D10175BCB875BB0E75BA1175E880D23A |
|||
:100D5C00AF12067043DA01C2D8C2611203EED25947 |
|||
:100D6C007A051203DE3060FDE54BC3940240F1E5D9 |
|||
:100D7C002D540F854D4CF54DB54CE5DAE5C2595364 |
|||
:100D8C00DACF206F0343DA20306F0343DA10C2D876 |
|||
:100D9C00C261C2AF1203FD1203FD1203FDD2AF12EA |
|||
:100DAC0003EE753D001203DEC3E54B94FA4002815D |
|||
:100DBC0033C3E54B953D4003854B3DC3E54B940157 |
|||
:100DCC0050E3C2AF12040F12040F12040FD2AF1271 |
|||
:100DDC0003EE1203DEC3E54B940140F631E8E4F573 |
|||
:100DEC0021F522F523F524754FFF855C50306E02FA |
|||
:100DFC00F535F536F537F538F539F53EF52BF54E75 |
|||
:100E0C00120786D262D25C12074431B41203DA1193 |
|||
:100E1C00FD1203DA1203DA31171203DE3143120327 |
|||
:100E2C00DE1203DE316E1203E231911203DE120385 |
|||
:100E3C00DAC25CD25D12074431B41207A3111D3122 |
|||
:100E4C00F8511411FD1207A3111D31F8511431176B |
|||
:100E5C001207A3111D31F8511431431207A3111DB0 |
|||
:100E6C0031F85114316E1207A3111D31F8511431A0 |
|||
:100E7C00911207A3111D31F8C3E54594D0E54694B2 |
|||
:100E8C00074004511480B1C25DD25E120744753024 |
|||
:100E9C0002511431B41207A3111D31F8511411FD74 |
|||
:100EAC001207A3111D31F8511431171207A3111D8C |
|||
:100EBC0031F8511431431207A3111D31F85114317B |
|||
:100ECC006E1207A3111D31F8511431911207A311A1 |
|||
:100EDC001D31F8E530146006F530511480B5C25E52 |
|||
:100EEC00D25F120744511431B41207A91104111D19 |
|||
:100EFC00115875300111AA20580302106E11E3111C |
|||
:100F0C00F711FD1207A91104111D11581171205868 |
|||
:100F1C000302106E11E311F731171207A911041116 |
|||
:100F2C001D115811AA20580302106E11E311F7314C |
|||
:100F3C00431207A91104111D1158117120580302F5 |
|||
:100F4C00106E11E311F7316E1207A91104111D1166 |
|||
:100F5C005811AA20580302106E11E311F7319112A7 |
|||
:100F6C0007A91104111D1158117120580302106E9C |
|||
:100F7C0011E311F731B41207A91104111D1158E531 |
|||
:100F8C0030146004F530E101206C11C2AFC262D2A2 |
|||
:100F9C0093D294D295C2949000D9D2AF11AA205872 |
|||
:100FAC000302106E11E312044B11F711FD1207A985 |
|||
:100FBC001104111D1158117120580302106E11E308 |
|||
:100FCC0012048F11F731171207A91104111D1158B2 |
|||
:100FDC0011AA20580302106E11E31204CD11F7313F |
|||
:100FEC00431207A91104111D115811712058030245 |
|||
:100FFC00106E1208E31205241208F712096E12077C |
|||
:10100C00A912080412081D1208581208AA20580325 |
|||
:10101C0002106E1208E31205CF1208F71209911292 |
|||
:10102C0007A912080412081D120858120871120799 |
|||
:10103C000920580302106E1208E312070D1208F76C |
|||
:10104C001209B41207A912080412081D120858C27A |
|||
:10105C005FC3E54E9401500AC3E53494F05003028B |
|||
:0E106C000FA81209E8E4F521F522F523F5247A |
|||
:03107A00020D6CF8 |
|||
:0F1A000002000704040102030303020101A55AB7 |
|||
:101A40002353757065726D6963726F33703541230E |
|||
:101A500023424C48454C4923463333302320202031 |
|||
:101A60002020202020202020202020202020202076 |
|||
:00000001FF |
@ -0,0 +1,256 @@ |
|||
:03000000020C04EB |
|||
:03000B0002008070 |
|||
:03002B000201D9F6 |
|||
:03005B000202BFDF |
|||
:030073000202B5D1 |
|||
:10008000C2AFC0D0C0E0D2D3758B00E4205A017358 |
|||
:1000900085248AC25AC3E52494FA5016C290C291AC |
|||
:1000A000C29220620201B27401D5E0FDC293C294F3 |
|||
:1000B000C295D0E0D0D0C2D3D2AF3221C9C29120F4 |
|||
:1000C0006E02D290306E02D29221C9206E02C2928C |
|||
:1000D000306E02C290D29121C9206E02C290306E61 |
|||
:1000E00002C292206E02D292306E02D29021C97466 |
|||
:1000F00002206E02D293306E02D295206E02D2950B |
|||
:10010000306E02D293D5E0E9C291206E02D29030D7 |
|||
:100110006E02D29221C97402206E02D293306E0216 |
|||
:10012000D295D294D5E0F1C291206E02D290306E79 |
|||
:1001300002D29221C97402D294206E02D293306E00 |
|||
:1001400002D295D5E0F1206E02C292306E02C290CA |
|||
:10015000D29121C97402D294206E02D295306E02DF |
|||
:10016000D293D5E0F1206E02C292306E02C290D2DC |
|||
:100170009121C97402206E02D295306E02D293D2C0 |
|||
:1001800094D5E0F1206E02C290306E02C292206ED1 |
|||
:1001900002D292306E02D29021C97402206E02D235 |
|||
:1001A00095306E02D293206E02D293306E02D295B9 |
|||
:1001B000D5E0E9206E02C290306E02C292206E023B |
|||
:1001C000D292306E02D29021C9D25AE524F4F58A37 |
|||
:1001D000D0E0D0D0C2D3D2AF32C2AFC0D0C0E0D214 |
|||
:1001E000D3C2CEE52760041527412478007900E5C5 |
|||
:1001F00080306F01F430E60278FA53DACF206F03D3 |
|||
:1002000043DA20306F0343DA10C2D8C261E5803090 |
|||
:100210006F01F430E60279FAC3E89970CE752718B9 |
|||
:10022000884BD260E52960041529413143DA01C2C7 |
|||
:10023000D82060024189E54BF8C260C394F04003C6 |
|||
:1002400074F0F8C4540F28F8A95BB90302416BC3DA |
|||
:1002500013C313855B28204002C313204206C8C382 |
|||
:1002600098F8416B28F8500374FFF8C3E895505094 |
|||
:1002700005E550C333F8E52B54F0700D8821A859DB |
|||
:10028000B8030685212385212420CF09D0E0D0D0D2 |
|||
:10029000C2D3D2AF32C2CF7801E54BC3940140053F |
|||
:1002A000754E0041ACE54E046002054ED0E0D0D062 |
|||
:1002B000C2D3D2AF32C2AF53917FC258D2AF32C293 |
|||
:1002C000AFC0D0C0E0D2D3A8FBA9FCC2D830610235 |
|||
:1002D000611853DACF206F0343DA10306F0343DA2B |
|||
:1002E00020D261E580306F01F420E60241F48825D8 |
|||
:1002F000892661E853DACF206F0343DA20306F0399 |
|||
:1003000043DA10C2D8C2617800E580306F01F43062 |
|||
:10031000E60261DB884B61DB53DACF206F0343DAFF |
|||
:1003200020306F0343DA10C261205902619253DA20 |
|||
:10033000CF206F0343DA10306F0343DA20C2D8D2E4 |
|||
:10034000618849894AC3E89547F8E99548F9E4FB8B |
|||
:10035000C3E89468E994015006E4D2E3FB618AC3E0 |
|||
:10036000E894D0E994025006E4D2E2FB618AC3E843 |
|||
:1003700094A0E994055006E4D2E1FB618AC3E894B5 |
|||
:1003800040E9940B5004E4D2E0FBA849A94A88470D |
|||
:100390008948C3E89525F8E99526F9306B0261BFD5 |
|||
:1003A000306A0261B8E9C313F9E813F830690261F1 |
|||
:1003B000B8E9C313F9E813F8E9C313F9E813F8C36C |
|||
:1003C000E894FAE99400400278FAA94B884B205946 |
|||
:1003D0000261DB740FF4552D4BF52D752718D26093 |
|||
:1003E00030590261E853DAFE752906D0E0D0D0C258 |
|||
:1003F000D3D2AF327901810C7903810C790A810C57 |
|||
:10040000791E810C7964810C79C8810C7817E4D548 |
|||
:10041000E0FDD8FAD9F6227A187B78812F7A157BFD |
|||
:100420008C812F7A127BB4812F7A0F7BC8812F7930 |
|||
:1004300002B26EE4C294D5E0FD206E02D290306E1E |
|||
:1004400002D292E540D5E0FD206E02C290306E02ED |
|||
:10045000C292E540D5E0FDD9D8EAF8D5E0FDD8FB59 |
|||
:10046000DBCDD29422E559B4030281A8C3E53394CD |
|||
:0F04700000E53494054012852123E4F535F53677 |
|||
:10047F00F537F538F539F53E81A8E522F43333F930 |
|||
:10048F0013F8E9540104F9E854FEC39440F8E994D1 |
|||
:10049F0000F988358936753E0122E53E6039C3E59E |
|||
:1004AF003413F9E53313F8C3E53598F8E53699F9C0 |
|||
:1004BF0030E70BC3E89480E994FF401381E2C3E86F |
|||
:1004CF00947FE99400500281E2787F790081E2788D |
|||
:1004DF008079FF883A893B22E53E6052E537253A1D |
|||
:1004EF00F8E538353BF9E539353BFA30E708C3EA2B |
|||
:1004FF0094F04012A11BC3EA940F5002A11B78FF86 |
|||
:10050F0079FF7A0FA11B780079007AF0C3E5239564 |
|||
:10051F004F5009C3E52394014009A137E53A20E77D |
|||
:10052F000DA137E53A30E706883789388A3922E551 |
|||
:10053F003E70030205E8853A20E4300701F4F9C361 |
|||
:10054F00E53A33F8E933F9E55730E002A16EC3E538 |
|||
:10055F00579404603AE9A2E713F9E813F8A19EE96A |
|||
:10056F00FBE8FAEBA2E713FBEA13FAE82AF8E93BF8 |
|||
:10057F00F9E557C394056017E9A2E713F9E813F8F3 |
|||
:10058F00E557C394036008E9A2E713F9E813F8E904 |
|||
:10059F0030E70BC3E89480E994FF4013A1C2C3E88E |
|||
:1005AF00947FE994005002A1C2787F7900A1C278AC |
|||
:1005BF008079FFE820E713C3E52298F84008C3E8E5 |
|||
:1005CF0094014002A1E67801A1E6E8F42401252276 |
|||
:1005DF00F84002A1E678FF883C22E53E7003020650 |
|||
:1005EF0089A838A939E55830E002C10CC3E5589401 |
|||
:1005FF0004603AE9A2E713F9E813F8C13CE9FBE814 |
|||
:10060F00FAEBA2E713FBEA13FAE82AF8E93BF9E55C |
|||
:10061F0058C394056017E9A2E713F9E813F8E558F2 |
|||
:10062F00C394036008E9A2E713F9E813F8E930E788 |
|||
:10063F000BC3E89400E994FF4013C160C3E894FF33 |
|||
:10064F00E994005002C16078FF7900C160780079A9 |
|||
:10065F00FFE920E713C3E53C98F84008C3E894018D |
|||
:10066F004002C1877801C187E8F42401253CF8E9ED |
|||
:10067F0034004002C18778FF882322222222305C77 |
|||
:10068F00027832305D027878305E027850305F0247 |
|||
:10069F007828E52B54F06027A95DB90302C1C8C3C0 |
|||
:1006AF0013855D28204002C313204206C8C398F863 |
|||
:1006BF00C1C828F8500374FFF888218823882422A2 |
|||
:1006CF007545707546177AFF7B3F8A438B448A3F87 |
|||
:1006DF008B407B1F8A418B428A348A3322A845A9DB |
|||
:1006EF0046C1F6A83FA940759100C3E498F594E47C |
|||
:1006FF0099F595759104D25875C820A8CCA9CD75D8 |
|||
:10070F00C824AA31AB3288318932C3E89AF8E99B01 |
|||
:10071F00F9AA33AB34C3EB13FDEA13FCC3ED13FD9E |
|||
:10072F00EC13FCC3EA9CFAEB9DFBEA28FAEB39FBCE |
|||
:10073F008A338B344001227534FF7533FF223058D2 |
|||
:10074F0002E14D759100C3E49541F594E49542F5AE |
|||
:10075F0095759104D25822A934A8337A04C3E913AA |
|||
:10076F00F9E813F8DAF7C3E8940AF8E99400F940C6 |
|||
:10077F0009C3E8940AE994005004780AE4F988431D |
|||
:10078F008944883F8940C3E913F9E813F888418900 |
|||
:10079F004222305802E1A1759100C3E49533F594DC |
|||
:1007AF00E49534F595759104D25822D2AF205801B3 |
|||
:1007BF0022E524F4C4C313540704F9D2AF0000C2D6 |
|||
:1007CF00AF306203305AF4780D206D027804C3E520 |
|||
:1007DF008B9840F3E59BF4F5203006030207BAD956 |
|||
:1007EF00F3D2AF22D2AF20580122E524F4C4C313B1 |
|||
:1007FF00540704F9D2AF0000C2AF306203305AF48D |
|||
:10080F00780D206D027804C3E58B9840F3E59BF4D7 |
|||
:10081F00F5202006030207F3D9F3D2AF227591001A |
|||
:10082F00C3E49543F594E49544F595759104D25836 |
|||
:10083F0022305802014022C2AF306203900173D2BE |
|||
:10084F0094206E02C293306E02C295759F11D2AF83 |
|||
:10085F0022C2AF3062039001542062039000CB207C |
|||
:0E086F006E02C292306E02C290305A02D291D6 |
|||
:10087D00206E03759F01306E03759F21D2AF22C28A |
|||
:10088D00AF306203900135206E02D293306E02D2EA |
|||
:10089D0095206E02C295306E02C293206E03759F35 |
|||
:1008AD0021306E03759F01D2AF22C2AF306203902B |
|||
:1008BD0001162062039000BDC291305A0A206E02CB |
|||
:1008CD00D290306E02D292759F11D2AF22C2AF304C |
|||
:1008DD0062039000EF206E02D295306E02D293C269 |
|||
:1008ED0094206E03759F01306E03759F21D2AF2248 |
|||
:1008FD00C2AF30620390019A2062039000D9206E3E |
|||
:10090D0002C290306E02C292305A0A206E02D2920A |
|||
:10091D00306E02D290206E03759F21306E03759F4D |
|||
:10092D0001D2AF229000BBC290C291C292D293D29B |
|||
:10093D0094D29522C3E54594D0E546940750012203 |
|||
:10094D00C3E545943CF8E5469400F988458946226F |
|||
:10095D00305802215D22755B03755C03755D03C222 |
|||
:10096D006D740330E002D26DC26CC3740394034006 |
|||
:10097D0002D26CC26E740130E102D266C26F740194 |
|||
:10098D0030E102D26F75590322E493F822438F01AF |
|||
:10099D00538FFD75B7A575B7F1E8F0538FFE224360 |
|||
:1009AD008F02438F0175B7A575B7F1901A0DF053EE |
|||
:1009BD008FFC22901A0D785A319A901A0E78A53123 |
|||
:1009CD009A22901A0D3196C3E8945A7057901A0EC8 |
|||
:1009DD003196C3E894A5704C901A073196885B90B8 |
|||
:1009ED001A083196885C901A093196885D901A0A1A |
|||
:1009FD003196C26DE830E002D26DC26CC3E894034B |
|||
:100A0D004002D26C901A0B3196C26EE830E102D2E0 |
|||
:100A1D006E901A0C3196C26FE830E102D26F7559A3 |
|||
:100A2D0003020A363163120A57227A307980901AFE |
|||
:100A3D00403196E8F709A3DAF8227A307980901AD6 |
|||
:100A4D0040E7F8319A09A3DAF822C2AF513731AC39 |
|||
:100A5D00901A007802319A901A017800319A901A02 |
|||
:100A6D00027807319A901A07A85B319A901A08A854 |
|||
:100A7D005C319A901A09A85D319A901A0A78012072 |
|||
:100A8D006D027802306C027803319A901A0B78015E |
|||
:100A9D00306E027802319A901A0C7801306F02781C |
|||
:100AAD0002319A514731C022AB54A855EBC3940182 |
|||
:100ABD00601EEBC39402601DEBC39403601CEBC37B |
|||
:100ACD009404601BEBC39405602AEBC39406602F5E |
|||
:100ADD00885B020B17885C020B17885D020B17C22F |
|||
:100AED006DE830E002D26DC26CC3E894034002D2CF |
|||
:100AFD006C020B17C26EE830E102D26E020B17C208 |
|||
:100B0D006FE830E102D26F020B17227C0512040848 |
|||
:100B1D00DCFB22C2AF12041712041D1204231204AF |
|||
:100B2D00291203FC12041712041D120423120429A6 |
|||
:100B3D001203FC12041712041D120423120429D2ED |
|||
:100B4D00AF22AC54AD55C2AF1204171204171204E4 |
|||
:100B5D00171203FCDCF21204291203FCDDF8D2AFEC |
|||
:100B6D0022C2AF120429D2AF120404C3E54B940183 |
|||
:100B7D0050EFC2AF1204171203FC120417D2AF12BA |
|||
:100B8D000404C3E54B94FA40E9712071187118758E |
|||
:100B9D005401755501755600714F7C05120408C33B |
|||
:100BAD00E54B9401500D51B551577120C2AF43EF34 |
|||
:100BBD00107118DCE70556C3E5569403500280D832 |
|||
:100BCD00711805557805C3E554940440027803C3A4 |
|||
:100BDD00E55494054002780208C3E555985002800B |
|||
:100BED00B4711871180554C3E5549407500280A2CE |
|||
:100BFD00C2AF43EF107118C2D353D9BF7581C04333 |
|||
:100C0D00B203E5B324044002F5B37580FF75907807 |
|||
:100C1D0075A40075A53F75A60175F1D175F2BF7567 |
|||
:100C2D00D4BF75D50075E2413131E4F8F6D8FD3108 |
|||
:100C3D006331CF3131758E01206D03758E0075884E |
|||
:100C4D005075890275C82475910475D84012040831 |
|||
:100C5D0012041712040012041D12040012042312B0 |
|||
:0E0C6D00040075A82275B80275E69075F610A1 |
|||
:100C7B00759B8075D10175BCB875BB0E75BA1175B6 |
|||
:100C8B00E880D2AF12068A43DA01C2D8C2611204DD |
|||
:100C9B0008D2597A051203F83060FDE54BC3940274 |
|||
:100CAB0040F1E52D540F854D4CF54DB54CE5DAE58E |
|||
:100CBB00C25953DACF206F0343DA20306F0343DA84 |
|||
:100CCB0010C2D8C261C2AF12041712041712041754 |
|||
:100CDB00D2AF120408753D001203F8C3E54B94FA2A |
|||
:100CEB004002616EC3E54B953D4003854B3DC3E52B |
|||
:100CFB004B940150E3C2AF120429120429120429A8 |
|||
:100D0B00D2AF1204081203F8C3E54B940140F6313D |
|||
:100D1B0031E4F521F522F523F524754FFF855C5061 |
|||
:100D2B00306E02F535F536F537F538F539F53EF514 |
|||
:100D3B002BF54E1206CFD262D25C12068D11FD122C |
|||
:100D4B0003F411461203F41203F411601203F811A9 |
|||
:100D5B008C1203F81203F811B71203FC11DA120309 |
|||
:100D6B00F81203F4C25CD25D12068D11FD1206EC73 |
|||
:100D7B001207663141315D11461206EC12076631DE |
|||
:100D8B0041315D11601206EC1207663141315D1184 |
|||
:100D9B008C1206EC1207663141315D11B71206EC6D |
|||
:100DAB001207663141315D11DA1206EC120766311A |
|||
:100DBB0041C3E54594D0E54694074004315D80ABD3 |
|||
:100DCB00C25DD25E12068D753002315D11FD1206C9 |
|||
:100DDB00EC1207663141315D11461206EC120766C3 |
|||
:100DEB003141315D11601206EC1207663141315D04 |
|||
:100DFB00118C1206EC1207663141315D11B71206E8 |
|||
:100E0B00EC1207663141315D11DA1206EC120766FE |
|||
:100E1B003141E530146006F530315D80AFC25ED2F2 |
|||
:100E2B005F12068D315D11FD1206F212074D12078E |
|||
:100E3B00661207A17530011207F3205803020FCA7F |
|||
:100E4B00112C114011461206F212074D12076612B1 |
|||
:100E5B0007A11207BA205803020FCA112C11401117 |
|||
:100E6B00601206F212074D1207661207A11207F362 |
|||
:100E7B00205803020FCA112C1140118C1206F212CA |
|||
:100E8B00074D1207661207A11207BA205803020F6B |
|||
:100E9B00CA112C114011B71206F212074D12076638 |
|||
:100EAB001207A11207F3205803020FCA112C11408D |
|||
:100EBB0011DA1206F212074D1207661207A112077A |
|||
:100ECB00BA205803020FCA112C114011FD1206F261 |
|||
:100EDB0012074D1207661207A1E530146004F530B6 |
|||
:100EEB00C142206C11C2AFC262D293D294D295C2CE |
|||
:100EFB00949000D9D2AF1207F3205803020FCA11F6 |
|||
:100F0B002C120465114011461206F212074D1207FE |
|||
:100F1B00661207A11207BA205803020FCA112C122E |
|||
:100F2B0004A9114011601206F212074D1207661246 |
|||
:100F3B0007A11207F3205803020FCA112C1204E762 |
|||
:100F4B001140118C1206F212074D1207661207A1FF |
|||
:100F5B001207BA205803020FCA112C12053E11407A |
|||
:100F6B0011B71206F212074D1207661207A11207EC |
|||
:100F7B00F3205803020FCA112C1205E9114011DAA4 |
|||
:100F8B001206F212074D1207661207A11207BA12C8 |
|||
:100F9B00068B205803020FCA112C12068C1140111C |
|||
:100FAB00FD1206F212074D1207661207A1C25FC3AC |
|||
:100FBB00E54E94645009C3E53494F05002E10131DD |
|||
:0C0FCB0031E4F521F522F523F524A110F6 |
|||
:0F1A0000020007040401020303030301015AA5B6 |
|||
:101A40002353757065726D6963726F33703541230E |
|||
:101A500023424C48454C4923463333302320202031 |
|||
:101A60002020202020202020202020202020202076 |
|||
:00000001FF |
@ -0,0 +1,266 @@ |
|||
:03000000020CD01F |
|||
:03000B0002008070 |
|||
:03002B000201D9F6 |
|||
:03005B000202A5F9 |
|||
:0300730002029BEB |
|||
:10008000C2AFC0D0C0E0D2D3758B00E4205A017358 |
|||
:1000900085248AC25AC3E52494FA5016D297D29581 |
|||
:1000A000D29320620201B2740CD5E0FDD296D294B4 |
|||
:1000B000D292D0E0D0D0C2D3D2AF3221C9D29320D5 |
|||
:1000C0006E02C297306E02C29521C9206E02D2958F |
|||
:1000D000306E02D297C29321C9206E02D297306E41 |
|||
:1000E00002D295206E02C295306E02C29721C97469 |
|||
:1000F00016206E02C296306E02C294206E02C29426 |
|||
:10010000306E02C296D5E0E9D293206E02C29730DB |
|||
:100110006E02C29521C97416206E02C296306E021C |
|||
:10012000C294C292D5E0F1D293206E02C297306E93 |
|||
:1001300002C29521C97416C292206E02C296306E18 |
|||
:1001400002C294D5E0F1206E02D295306E02D297B1 |
|||
:10015000C29321C97416C292206E02C294306E02FC |
|||
:10016000C296D5E0F1206E02D295306E02D297C2CF |
|||
:100170009321C97416206E02C294306E02C296C2D8 |
|||
:1001800092D5E0F1206E02D297306E02D295206EA9 |
|||
:1001900002C295306E02C29721C97416206E02C247 |
|||
:1001A00094306E02C296206E02C296306E02C294E5 |
|||
:1001B000D5E0E9206E02D297306E02D295206E0211 |
|||
:1001C000C295306E02C29721C9D25AE524F4F58A4D |
|||
:1001D000D0E0D0D0C2D3D2AF32C2AFC0D0C0E0D214 |
|||
:1001E000D3C2CEE52760041527412478007900E5C5 |
|||
:1001F00080306F01F430E50278FA53DACF206F03D4 |
|||
:1002000043DA20306F0343DA10C2D8C261E5803090 |
|||
:100210006F01F430E50279FAC3E89970CE75274092 |
|||
:10022000884BD260E52960041529413143DA01C2C7 |
|||
:10023000D82060024156E54BF8C260C3E8955050A3 |
|||
:1002400005E550C333F8E52B54F0700A8821A8590E |
|||
:10025000B8030385212320CF09D0E0D0D0C2D3D268 |
|||
:10026000AF32C2CF7801E54BC394014005754E0013 |
|||
:100270004179E54E046002054EE559B40203853D1F |
|||
:1002800021C3E5229521600A4004152241900522F0 |
|||
:10029000D8E7D0E0D0D0C2D3D2AF32C2AF53917F33 |
|||
:1002A000C258D2AF32C2AFC0D0C0E0D2D3A8FBA9EF |
|||
:1002B000FCC2D830610241FE53DACF206F0343DA2B |
|||
:1002C00010306F0343DA20D261E580306F01F420F3 |
|||
:1002D000E50241DA8825892661CE53DACF206F0303 |
|||
:1002E00043DA20306F0343DA10C2D8C2617800E5E8 |
|||
:1002F00080306F01F430E50261C1884B61C153DA8F |
|||
:10030000CF206F0343DA20306F0343DA10C261203D |
|||
:100310005902617853DACF206F0343DA10306F034C |
|||
:1003200043DA20C2D8D2618849894AC3E89547F8A0 |
|||
:10033000E99548F9E4FBC3E89468E994015006E4C0 |
|||
:10034000D2E3FB6170C3E894D0E994025006E4D292 |
|||
:10035000E2FB6170C3E894A0E994055006E4D2E1A1 |
|||
:10036000FB6170C3E89440E9940B5004E4D2E0FBD5 |
|||
:10037000A849A94A88478948C3E89525F8E99526F8 |
|||
:10038000F9306B0261A5306A02619EE9C313F9E896 |
|||
:1003900013F8306902619EE9C313F9E813F8E9C361 |
|||
:1003A00013F9E813F8C3E894FAE99400400278FAE4 |
|||
:1003B000A94B884B20590261C1740FF4552D4BF5A0 |
|||
:1003C0002D752740D26030590261CE53DAFE75296F |
|||
:1003D00020D0E0D0D0C2D3D2AF32790161F279031C |
|||
:1003E00061F2790A61F2791E61F2796461F279C889 |
|||
:1003F00061F27817E4D5E0FDD8FAD9F6227A187BB5 |
|||
:100400007881157A157B8C81157A127BB481157AE7 |
|||
:100410000F7BC881157902B26EE4D292D5E0FD203F |
|||
:100420006E02C297306E02C295E540D5E0FD206EA7 |
|||
:1004300002D297306E02D295E540D5E0FDD9D8EAD8 |
|||
:10044000F8D5E0FDD8FBDBCDC29222E559B403021A |
|||
:10045000818EC3E5339400E5349405401285212351 |
|||
:10046000E4F535F536F537F538F539F53E818EE5A5 |
|||
:0F04700022F43333F913F8E9540104F9E854FE88 |
|||
:10047F00C39440F8E99400F988358936753E012216 |
|||
:10048F00E53E6039C3E53413F9E53313F8C3E535B9 |
|||
:10049F0098F8E53699F930E70BC3E89480E994FFB3 |
|||
:1004AF00401381C8C3E8947FE99400500281C87853 |
|||
:1004BF007F790081C8788079FF883A893B22E53EB1 |
|||
:1004CF006052E537253AF8E538353BF9E539353BE4 |
|||
:1004DF00FA30E708C3EA94F04012A101C3EA940F7F |
|||
:1004EF005002A10178FF79FF7A0FA10178007900FE |
|||
:1004FF007AF0C3E523954F5009C3E52394014009D2 |
|||
:10050F00A11DE53A20E70DA11DE53A30E706883732 |
|||
:10051F0089388A3922E53E70030205CE853A20E4F8 |
|||
:10052F00300701F4F9C3E53A33F8E933F9E5573009 |
|||
:10053F00E002A154C3E5579404603AE9A2E713F926 |
|||
:10054F00E813F8A184E9FBE8FAEBA2E713FBEA133F |
|||
:10055F00FAE82AF8E93BF9E557C394056017E9A2D1 |
|||
:10056F00E713F9E813F8E557C394036008E9A2E726 |
|||
:10057F0013F9E813F8E930E70BC3E89480E994FF27 |
|||
:10058F004013A1A8C3E8947FE994005002A1A87872 |
|||
:10059F007F7900A1A8788079FFE820E713C3E522CF |
|||
:1005AF0098F84008C3E894014002A1CC7801A1CC8F |
|||
:1005BF00E8F424012522F84002A1CC78FF883C22E0 |
|||
:1005CF00E53E700302066FA838A939E55830E002FE |
|||
:1005DF00A1F2C3E5589404603AE9A2E713F9E813CE |
|||
:1005EF00F8C122E9FBE8FAEBA2E713FBEA13FAE8FA |
|||
:1005FF002AF8E93BF9E558C394056017E9A2E71318 |
|||
:10060F00F9E813F8E558C394036008E9A2E713F972 |
|||
:10061F00E813F8E930E70BC3E89400E994FF4013BF |
|||
:10062F00C146C3E894FFE994005002C14678FF79B0 |
|||
:10063F0000C146780079FFE920E713C3E53C98F83D |
|||
:10064F004008C3E894014002C16D7801C16DE8F420 |
|||
:10065F002401253CF8E934004002C16D78FF88235E |
|||
:10066F002275E890E5E820ECF8A8BDA9BE75528880 |
|||
:10067F00755301755101C3748833FA740133FBC389 |
|||
:10068F00E89AE99B401D8A528B53755102EA2488E0 |
|||
:10069F00FAEB3401FBC3E89AE99B40078A528B536C |
|||
:1006AF00755103AA52AB53C3E55313F9E55213F82F |
|||
:1006BF00C3E913F9E813F8C3E913F9E813F8C3E929 |
|||
:1006CF0013F9E813F8C3E913FDE813FCE82CF8E974 |
|||
:1006DF003DF9C3E55A94016009C3E55A9403600FCD |
|||
:1006EF00E108C3EA98FAEB99FB8A528B53E108EAC7 |
|||
:1006FF0028FAEB39FB8A528B532275E89022E5E8F2 |
|||
:10070F0020ECFBA8BDA9BEC3E894FFE994035011E8 |
|||
:10071F00C3E89552E995535008E54F600B154FE12B |
|||
:10072F0037E54FF46002054FA84FC3E523985002F9 |
|||
:10073F00A823882422305C027832305D0278503052 |
|||
:10074F005E027850305F027828E52B54F06027A9BD |
|||
:10075F005DB90302E17FC313855D28204002C313F7 |
|||
:10076F00204206C8C398F8E17F28F8500374FFF8B9 |
|||
:10077F00882188238824227545707546177AFF7B58 |
|||
:10078F003F8A438B448A3F8B407B1F8A418B428A2F |
|||
:10079F00348A3322A845A946E1ADA83FA9407591F7 |
|||
:1007AF0000C3E498F594E499F595759104D25875C2 |
|||
:1007BF00C820A8CCA9CD75C824AA31AB32883189FD |
|||
:1007CF0032C3E89AF8E99BF9AA33AB34C3EB13FDB4 |
|||
:1007DF00EA13FCC3ED13FDEC13FCC3EA9CFAEB9D8B |
|||
:1007EF00FBEA28FAEB39FB8A338B3440012275344C |
|||
:1007FF00FF7533FF223058020104759100C3E49551 |
|||
:10080F0041F594E49542F595759104D25822A93497 |
|||
:10081F00A8337A04C3E913F9E813F8DAF7C3E894B5 |
|||
:10082F000AF8E99400F94009C3E8940AE9940050E2 |
|||
:10083F0004780AE4F988438944883F8940C3E9135F |
|||
:10084F00F9E813F88841894222305802015875910E |
|||
:10085F0000C3E49533F594E49534F595759104D27E |
|||
:0E086F005822D2AF20580122E524F4C4C3134E |
|||
:10087D00540704F9D2AF0000C2AF306203305AF40E |
|||
:10088D00780D206D027804C3E58B9840F3E59BF558 |
|||
:10089D0020300603020871D9F4D2AF22D2AF20580E |
|||
:1008AD000122E524F4C4C313540704F9D2AF0000A8 |
|||
:1008BD00C2AF306203305AF4780D206D027804C354 |
|||
:1008CD00E58B9840F3E59BF5202006030208A9D996 |
|||
:1008DD00F4D2AF22759100C3E49543F594E49544A9 |
|||
:1008ED00F595759104D2582230580201F522C2AF08 |
|||
:1008FD00306203900173C292206E02D296306E0266 |
|||
:10090D00D294759F13D2AF22C2AF306203900154BF |
|||
:10091D002062039000CB206E02D295306E02D297EA |
|||
:10092D00305A02C293206E03759F10306E03759F6F |
|||
:10093D0011D2AF22C2AF306203900135206E02C2D8 |
|||
:10094D0096306E02C294206E02D294306E02D29610 |
|||
:10095D00206E03759F11306E03759F10D2AF22C2AA |
|||
:10096D00AF3062039001162062039000BDD2933028 |
|||
:10097D005A0A206E02C297306E02C295759F13D22D |
|||
:10098D00AF22C2AF3062039000EF206E02C29430EE |
|||
:10099D006E02C296D292206E03759F10306E037553 |
|||
:1009AD009F11D2AF22C2AF30620390019A20620331 |
|||
:1009BD009000D9206E02D297306E02D295305A0A2D |
|||
:1009CD00206E02C295306E02C297206E03759F1184 |
|||
:1009DD00306E03759F10D2AF229000BBD297D29587 |
|||
:1009ED00D293C296C294C29222C3E54594D0E546F5 |
|||
:1009FD009407500122C3E545940AF8E5469400F9A1 |
|||
:100A0D00884589462230580241122275570475587F |
|||
:100A1D0004755901755A02755D03D26D740230E18A |
|||
:100A2D0002C26DC26E740130E102D26EC26F7401EA |
|||
:100A3D0030E102D26F22E493F822438F01538FFDF0 |
|||
:100A4D0075B7A575B7F1E8F0538FFE22438F0243BA |
|||
:100A5D008F0175B7A575B7F1901A0DF0538FFC2264 |
|||
:100A6D00901A0D78A55147901A0E785A5147229039 |
|||
:100A7D001A0D5143C3E894A57058901A0E5143C3F3 |
|||
:100A8D00E8945A704D901A0351438857901A0451A7 |
|||
:100A9D00438858901A0551438859901A0651438836 |
|||
:100AAD005A901A095143885D901A0A5143D26DE844 |
|||
:100ABD0030E102C26D901A0B5143C26EE830E10273 |
|||
:100ACD00D26E901A0C5143C26FE830E102D26F0220 |
|||
:100ADD000AE45118120B05227A307980901A405190 |
|||
:100AED0043E8F709A3DAF8227A307980901A40E7C3 |
|||
:100AFD00F8514709A3DAF822C2AF51E55159901ABE |
|||
:100B0D000078025147901A0178005147901A0278E7 |
|||
:100B1D00075147901A03A8575147901A04A85851E6 |
|||
:100B2D0047901A05A8595147901A06A85A5147904F |
|||
:100B3D001A09A85D5147901A0A7801206D027802B2 |
|||
:100B4D005147901A0B7801306E0278025147901A76 |
|||
:100B5D000C7801306F027802514751F5516D22AB7F |
|||
:100B6D0054A855EBC39401602AEBC394026029EBA2 |
|||
:100B7D00C394036028EBC394046027EBC394056012 |
|||
:100B8D0026EBC394066025EBC39407602AEBC39450 |
|||
:100B9D0008602F8857020BDA8858020BDA88590241 |
|||
:100BAD000BDA885A020BDA885D020BDAD26DE83067 |
|||
:100BBD00E102C26D020BDAC26EE830E102D26E02C2 |
|||
:100BCD000BDAC26FE830E102D26F020BDA227C053C |
|||
:100BDD001203EEDCFB22C2AF1203FD12040312045A |
|||
:100BED000912040F1203E21203FD12040312040989 |
|||
:100BFD0012040F1203E21203FD1204031204091270 |
|||
:100C0D00040FD2AF22AC54AD55C2AF1203FD120387 |
|||
:100C1D00FD1203FD1203E2DCF212040F1203E2DDFA |
|||
:100C2D00F8D2AF22C2AF12040FD2AF1203EAC3E55E |
|||
:100C3D004B940150EFC2AF1203FD1203E21203FDFC |
|||
:100C4D00D2AF1203EAC3E54B94FA40E971E371DBCD |
|||
:100C5D0071DB75540175550175560091127C0512A5 |
|||
:0F0C6D0003EEC3E54B9401500D716C710571E3FB |
|||
:100C7C00C2AF43EF1071DBDCE70556C3E5569403B6 |
|||
:100C8C00500280D871DB05557805C3E55494037088 |
|||
:100C9C00027803C3E554940470027803C3E55494BA |
|||
:100CAC00054002780208C3E55598500280AB71DB11 |
|||
:100CBC0071DB0554C3E554940950028099C2AF43CB |
|||
:100CCC00EF1071DBC2D353D9BF7581C043B203E5BA |
|||
:100CDC00B324044002F5B37580FF7590A975A40088 |
|||
:100CEC0075A5FC75A60175F1B275F2FE75D4DF75AC |
|||
:100CFC00D50175E24131E6E4F8F6D8FD5118517C86 |
|||
:100D0C0031E6758E01206D03758E007588507589DE |
|||
:100D1C000275C82475910475D8401203EE1203FDB8 |
|||
:100D2C001203E61204031203E61204091203E67519 |
|||
:100D3C00A82275B80275E69075F610759B8075D172 |
|||
:100D4C000475BCB875BB0075BA1175E880D2AF12CA |
|||
:100D5C00067043DA01C2D8C2611203EED2597A0589 |
|||
:100D6C001203DE3060FDE54BC3940240F1E52D54D7 |
|||
:100D7C000F854D4CF54DB54CE5DAE5C25953DACF3C |
|||
:100D8C00206F0343DA20306F0343DA10C2D8C261FC |
|||
:100D9C00C2AF1203FD1203FD1203FDD2AF1203EE1C |
|||
:100DAC00753D001203DEC3E54B94FA40028131C35A |
|||
:100DBC00E54B953D4003854B3DC3E54B940150E31A |
|||
:100DCC00C2AF12040F12040F12040FD2AF1203EEB3 |
|||
:100DDC001203DEC3E54B940140F631E6E4F521F550 |
|||
:100DEC0022F523F524754FFF855C50306E02F535E6 |
|||
:100DFC00F536F537F538F539F53EF52BF54E120786 |
|||
:100E0C0086D262D25C12074431B21203DA11FB12A1 |
|||
:100E1C0003DA1203DA31151203DE31411203DE124A |
|||
:100E2C0003DE316C1203E2318F1203DE1203DAC2DD |
|||
:100E3C005CD25D12074431B21207A3111D31F65179 |
|||
:100E4C001211FB1207A3111D31F6511231151207A5 |
|||
:100E5C00A3111D31F6511231411207A3111D31F6A8 |
|||
:100E6C005112316C1207A3111D31F65112318F1230 |
|||
:100E7C0007A3111D31F6C3E54594D0E54694074010 |
|||
:100E8C0004511280B1C25DD25E120744753002511A |
|||
:100E9C001231B21207A3111D31F6511211FB1207B8 |
|||
:100EAC00A3111D31F6511231151207A3111D31F684 |
|||
:100EBC00511231411207A3111D31F65112316C122E |
|||
:100ECC0007A3111D31F65112318F1207A3111D31D9 |
|||
:100EDC00F6E530146006F530511280B5C25ED25F73 |
|||
:100EEC00120744511231B21207A91104111D1158E5 |
|||
:100EFC0075300111A920580302106B11E111F51185 |
|||
:100F0C00FB1207A91104111D11581171205803026D |
|||
:100F1C00106B11E111F531151207A91104111D11F6 |
|||
:100F2C005811A920580302106B11E111F53141122F |
|||
:100F3C0007A91104111D1158117120580302106BCF |
|||
:100F4C0011E111F5316C1207A91104111D11581181 |
|||
:100F5C00A920580302106B11E111F5318F1207A96A |
|||
:100F6C001104111D1158117120580302106B11E15D |
|||
:100F7C0011F531B21207A91104111D1158E53014E5 |
|||
:100F8C006004F530C1FF206C11C2AFC262C296C2C0 |
|||
:100F9C0094C292D2929000D9D2AF11A920580302D8 |
|||
:100FAC00106B11E112044B11F511FB1207A911047E |
|||
:100FBC00111D1158117120580302106B11E112040C |
|||
:100FCC008F11F531151207A91104111D115811A912 |
|||
:100FDC0020580302106B11E11204CD11F5314112AE |
|||
:100FEC0007A91104111D1158117120580302106B1F |
|||
:100FFC0011E11205241208F512096C1207A9120846 |
|||
:10100C000412081D1208581208A920580302106B6C |
|||
:10101C001208E11205CF1208F512098F1207A91256 |
|||
:10102C00080412081D1208581208711207092058DA |
|||
:10103C000302106B1208E112070D1208F51209B227 |
|||
:10104C001207A912080412081D120858C25FC3E542 |
|||
:10105C004E9401500AC3E53494F05003020FA612CB |
|||
:0E106C0009E6E4F521F522F523F524020D6ACC |
|||
:0F1A000002000704040102030303020101A55AB7 |
|||
:101A4000235475726E696779364123202020202047 |
|||
:101A500023424C48454C4923463333302320202031 |
|||
:101A60002020202020202020202020202020202076 |
|||
:00000001FF |
@ -0,0 +1,256 @@ |
|||
:03000000020C02ED |
|||
:03000B0002008070 |
|||
:03002B000201D9F6 |
|||
:03005B000202BFDF |
|||
:030073000202B5D1 |
|||
:10008000C2AFC0D0C0E0D2D3758B00E4205A017358 |
|||
:1000900085248AC25AC3E52494FA5016D297D29581 |
|||
:1000A000D29320620201B2740CD5E0FDD296D294B4 |
|||
:1000B000D292D0E0D0D0C2D3D2AF3221C9D29320D5 |
|||
:1000C0006E02C297306E02C29521C9206E02D2958F |
|||
:1000D000306E02D297C29321C9206E02D297306E41 |
|||
:1000E00002D295206E02C295306E02C29721C97469 |
|||
:1000F00016206E02C296306E02C294206E02C29426 |
|||
:10010000306E02C296D5E0E9D293206E02C29730DB |
|||
:100110006E02C29521C97416206E02C296306E021C |
|||
:10012000C294C292D5E0F1D293206E02C297306E93 |
|||
:1001300002C29521C97416C292206E02C296306E18 |
|||
:1001400002C294D5E0F1206E02D295306E02D297B1 |
|||
:10015000C29321C97416C292206E02C294306E02FC |
|||
:10016000C296D5E0F1206E02D295306E02D297C2CF |
|||
:100170009321C97416206E02C294306E02C296C2D8 |
|||
:1001800092D5E0F1206E02D297306E02D295206EA9 |
|||
:1001900002C295306E02C29721C97416206E02C247 |
|||
:1001A00094306E02C296206E02C296306E02C294E5 |
|||
:1001B000D5E0E9206E02D297306E02D295206E0211 |
|||
:1001C000C295306E02C29721C9D25AE524F4F58A4D |
|||
:1001D000D0E0D0D0C2D3D2AF32C2AFC0D0C0E0D214 |
|||
:1001E000D3C2CEE52760041527412478007900E5C5 |
|||
:1001F00080306F01F430E50278FA53DACF206F03D4 |
|||
:1002000043DA20306F0343DA10C2D8C261E5803090 |
|||
:100210006F01F430E50279FAC3E89970CE752718BA |
|||
:10022000884BD260E52960041529413143DA01C2C7 |
|||
:10023000D82060024189E54BF8C260C394F04003C6 |
|||
:1002400074F0F8C4540F28F8A95BB90302416BC3DA |
|||
:1002500013C313855B28204002C313204206C8C382 |
|||
:1002600098F8416B28F8500374FFF8C3E895505094 |
|||
:1002700005E550C333F8E52B54F0700D8821A859DB |
|||
:10028000B8030685212385212420CF09D0E0D0D0D2 |
|||
:10029000C2D3D2AF32C2CF7801E54BC3940140053F |
|||
:1002A000754E0041ACE54E046002054ED0E0D0D062 |
|||
:1002B000C2D3D2AF32C2AF53917FC258D2AF32C293 |
|||
:1002C000AFC0D0C0E0D2D3A8FBA9FCC2D830610235 |
|||
:1002D000611853DACF206F0343DA10306F0343DA2B |
|||
:1002E00020D261E580306F01F420E50241F48825D9 |
|||
:1002F000892661E853DACF206F0343DA20306F0399 |
|||
:1003000043DA10C2D8C2617800E580306F01F43062 |
|||
:10031000E50261DB884B61DB53DACF206F0343DA00 |
|||
:1003200020306F0343DA10C261205902619253DA20 |
|||
:10033000CF206F0343DA10306F0343DA20C2D8D2E4 |
|||
:10034000618849894AC3E89547F8E99548F9E4FB8B |
|||
:10035000C3E89468E994015006E4D2E3FB618AC3E0 |
|||
:10036000E894D0E994025006E4D2E2FB618AC3E843 |
|||
:1003700094A0E994055006E4D2E1FB618AC3E894B5 |
|||
:1003800040E9940B5004E4D2E0FBA849A94A88470D |
|||
:100390008948C3E89525F8E99526F9306B0261BFD5 |
|||
:1003A000306A0261B8E9C313F9E813F830690261F1 |
|||
:1003B000B8E9C313F9E813F8E9C313F9E813F8C36C |
|||
:1003C000E894FAE99400400278FAA94B884B205946 |
|||
:1003D0000261DB740FF4552D4BF52D752718D26093 |
|||
:1003E00030590261E853DAFE752906D0E0D0D0C258 |
|||
:1003F000D3D2AF327901810C7903810C790A810C57 |
|||
:10040000791E810C7964810C79C8810C7817E4D548 |
|||
:10041000E0FDD8FAD9F6227A187B78812F7A157BFD |
|||
:100420008C812F7A127BB4812F7A0F7BC8812F7930 |
|||
:1004300002B26EE4D292D5E0FD206E02C297306E19 |
|||
:1004400002C295E540D5E0FD206E02D297306E02E3 |
|||
:10045000D295E540D5E0FDD9D8EAF8D5E0FDD8FB46 |
|||
:10046000DBCDC29222E559B4030281A8C3E53394DF |
|||
:0F04700000E53494054012852123E4F535F53677 |
|||
:10047F00F537F538F539F53E81A8E522F43333F930 |
|||
:10048F0013F8E9540104F9E854FEC39440F8E994D1 |
|||
:10049F0000F988358936753E0122E53E6039C3E59E |
|||
:1004AF003413F9E53313F8C3E53598F8E53699F9C0 |
|||
:1004BF0030E70BC3E89480E994FF401381E2C3E86F |
|||
:1004CF00947FE99400500281E2787F790081E2788D |
|||
:1004DF008079FF883A893B22E53E6052E537253A1D |
|||
:1004EF00F8E538353BF9E539353BFA30E708C3EA2B |
|||
:1004FF0094F04012A11BC3EA940F5002A11B78FF86 |
|||
:10050F0079FF7A0FA11B780079007AF0C3E5239564 |
|||
:10051F004F5009C3E52394014009A137E53A20E77D |
|||
:10052F000DA137E53A30E706883789388A3922E551 |
|||
:10053F003E70030205E8853A20E4300701F4F9C361 |
|||
:10054F00E53A33F8E933F9E55730E002A16EC3E538 |
|||
:10055F00579404603AE9A2E713F9E813F8A19EE96A |
|||
:10056F00FBE8FAEBA2E713FBEA13FAE82AF8E93BF8 |
|||
:10057F00F9E557C394056017E9A2E713F9E813F8F3 |
|||
:10058F00E557C394036008E9A2E713F9E813F8E904 |
|||
:10059F0030E70BC3E89480E994FF4013A1C2C3E88E |
|||
:1005AF00947FE994005002A1C2787F7900A1C278AC |
|||
:1005BF008079FFE820E713C3E52298F84008C3E8E5 |
|||
:1005CF0094014002A1E67801A1E6E8F42401252276 |
|||
:1005DF00F84002A1E678FF883C22E53E7003020650 |
|||
:1005EF0089A838A939E55830E002C10CC3E5589401 |
|||
:1005FF0004603AE9A2E713F9E813F8C13CE9FBE814 |
|||
:10060F00FAEBA2E713FBEA13FAE82AF8E93BF9E55C |
|||
:10061F0058C394056017E9A2E713F9E813F8E558F2 |
|||
:10062F00C394036008E9A2E713F9E813F8E930E788 |
|||
:10063F000BC3E89400E994FF4013C160C3E894FF33 |
|||
:10064F00E994005002C16078FF7900C160780079A9 |
|||
:10065F00FFE920E713C3E53C98F84008C3E894018D |
|||
:10066F004002C1877801C187E8F42401253CF8E9ED |
|||
:10067F0034004002C18778FF882322222222305C77 |
|||
:10068F00027832305D027878305E027850305F0247 |
|||
:10069F007828E52B54F06027A95DB90302C1C8C3C0 |
|||
:1006AF0013855D28204002C313204206C8C398F863 |
|||
:1006BF00C1C828F8500374FFF888218823882422A2 |
|||
:1006CF007545707546177AFF7B3F8A438B448A3F87 |
|||
:1006DF008B407B1F8A418B428A348A3322A845A9DB |
|||
:1006EF0046C1F6A83FA940759100C3E498F594E47C |
|||
:1006FF0099F595759104D25875C820A8CCA9CD75D8 |
|||
:10070F00C824AA31AB3288318932C3E89AF8E99B01 |
|||
:10071F00F9AA33AB34C3EB13FDEA13FCC3ED13FD9E |
|||
:10072F00EC13FCC3EA9CFAEB9DFBEA28FAEB39FBCE |
|||
:10073F008A338B344001227534FF7533FF223058D2 |
|||
:10074F0002E14D759100C3E49541F594E49542F5AE |
|||
:10075F0095759104D25822A934A8337A04C3E913AA |
|||
:10076F00F9E813F8DAF7C3E8940AF8E99400F940C6 |
|||
:10077F0009C3E8940AE994005004780AE4F988431D |
|||
:10078F008944883F8940C3E913F9E813F888418900 |
|||
:10079F004222305802E1A1759100C3E49533F594DC |
|||
:1007AF00E49534F595759104D25822D2AF205801B3 |
|||
:1007BF0022E524F4C4C313540704F9D2AF0000C2D6 |
|||
:1007CF00AF306203305AF4780D206D027804C3E520 |
|||
:1007DF008B9840F3E59BF5203006030207BAD9F456 |
|||
:1007EF00D2AF22D2AF20580122E524F4C4C3135450 |
|||
:1007FF000704F9D2AF0000C2AF306203305AF47869 |
|||
:10080F000D206D027804C3E58B9840F3E59BF5202E |
|||
:10081F002006030207F2D9F4D2AF22759100C3E488 |
|||
:10082F009543F594E49544F595759104D25822308B |
|||
:10083F005802013E22C2AF306203900173C2922070 |
|||
:10084F006E02D296306E02D294759F13D2AF22C22F |
|||
:10085F00AF3062039001542062039000CB206E02F0 |
|||
:0F086F00D295306E02D297305A02C293206E0398 |
|||
:10087E00759F10306E03759F11D2AF22C2AF3062DA |
|||
:10088E0003900135206E02C296306E02C294206E25 |
|||
:10089E0002D294306E02D296206E03759F11306E86 |
|||
:1008AE0003759F10D2AF22C2AF30620390011620A3 |
|||
:1008BE0062039000BDD293305A0A206E02C2973066 |
|||
:1008CE006E02C295759F13D2AF22C2AF30620390F3 |
|||
:1008DE0000EF206E02C294306E02C296D292206E4B |
|||
:1008EE0003759F10306E03759F11D2AF22C2AF30C9 |
|||
:1008FE00620390019A2062039000D9206E02D29773 |
|||
:10090E00306E02D295305A0A206E02C295306E02B7 |
|||
:10091E00C297206E03759F11306E03759F10D2AF74 |
|||
:10092E00229000BBD297D295D293C296C294C29215 |
|||
:10093E0022C3E54594D0E5469407500122C3E54510 |
|||
:10094E00943CF8E5469400F98845894622305802D1 |
|||
:10095E00215B22755B03755C03755D03C26D7401CB |
|||
:10096E0030E002D26DC26CC3740194034002D26CAB |
|||
:10097E00C26E740130E102D266C26F740130E102C0 |
|||
:10098E00D26F75590322E493F822438F01538FFDE2 |
|||
:10099E0075B7A575B7F1E8F0538FFE22438F02436A |
|||
:1009AE008F0175B7A575B7F1901A0DF0538FFC2214 |
|||
:1009BE00901A0D785A3198901A0E78A53198229087 |
|||
:1009CE001A0D3194C3E8945A7057901A0E3194C38D |
|||
:1009DE00E894A5704C901A073194885B901A0831F0 |
|||
:1009EE0094885C901A093194885D901A0A3194C2E9 |
|||
:1009FE006DE830E002D26DC26CC3E894034002D2BF |
|||
:100A0E006C901A0B3194C26EE830E102D26E901ADD |
|||
:100A1E000C3194C26FE830E102D26F755903020AAD |
|||
:100A2E00343161120A55227A307980901A4031940D |
|||
:100A3E00E8F709A3DAF8227A307980901A40E7F8BD |
|||
:100A4E00319809A3DAF822C2AF513531AA901A00B3 |
|||
:100A5E0078023198901A0178003198901A0278072E |
|||
:100A6E003198901A07A85B3198901A08A85C3198B3 |
|||
:100A7E00901A09A85D3198901A0A7801206D0278B3 |
|||
:100A8E0002306C0278033198901A0B7801306E02A6 |
|||
:100A9E0078023198901A0C7801306F0278023198F2 |
|||
:100AAE00514531BE22AB54A855EBC39401601EEBE9 |
|||
:100ABE00C39402601DEBC39403601CEBC3940460EB |
|||
:100ACE001BEBC39405602AEBC39406602F885B0270 |
|||
:100ADE000B15885C020B15885D020B15C26DE83094 |
|||
:100AEE00E002D26DC26CC3E894034002D26C020BDA |
|||
:100AFE0015C26EE830E102D26E020B15C26FE830FD |
|||
:100B0E00E102D26F020B15227C05120408DCFB22D7 |
|||
:100B1E00C2AF12041712041D120423120429120369 |
|||
:100B2E00FC12041712041D1204231204291203FCD2 |
|||
:100B3E0012041712041D120423120429D2AF22AC80 |
|||
:100B4E0054AD55C2AF120417120417120417120334 |
|||
:100B5E00FCDCF21204291203FCDDF8D2AF22C2AF84 |
|||
:100B6E00120429D2AF120404C3E54B940150EFC214 |
|||
:100B7E00AF1204171203FC120417D2AF120404C3EF |
|||
:100B8E00E54B94FA40E9711E711671167554017594 |
|||
:100B9E005501755600714D7C05120408C3E54B9442 |
|||
:100BAE0001500D51B35155711EC2AF43EF10711666 |
|||
:100BBE00DCE70556C3E5569403500280D87116053E |
|||
:100BCE00557805C3E554940440027803C3E5549464 |
|||
:100BDE00044002780208C3E55598500280B471169D |
|||
:100BEE0071160554C3E5549407500280A2C2AF4358 |
|||
:100BFE00EF107116C2D353D9BF7581C043B203E54E |
|||
:100C0E00B324044002F5B37580FF7590A975A40056 |
|||
:100C1E0075A5FC75A60175F1B275F2FE75D4DF757A |
|||
:100C2E00D50175E241312FE4F8F6D8FD316131CDB1 |
|||
:100C3E00312F758E01206D03758E00758850758964 |
|||
:100C4E000275C82475910475D84012040812041751 |
|||
:100C5E0012040012041D1204001204231204007563 |
|||
:0E0C6E00A82275B80275E69075F610759B8089 |
|||
:100C7C0075D10475BCB875BB0075BA1175E880D216 |
|||
:100C8C00AF12068A43DA01C2D8C261120408D259E3 |
|||
:100C9C007A051203F83060FDE54BC3940240F1E590 |
|||
:100CAC002D540F854D4CF54DB54CE5DAE5C2595335 |
|||
:100CBC00DACF206F0343DA20306F0343DA10C2D847 |
|||
:100CCC00C261C2AF120417120417120417D2AF126A |
|||
:100CDC000408753D001203F8C3E54B94FA40026119 |
|||
:100CEC006CC3E54B953D4003854B3DC3E54B9401EF |
|||
:100CFC0050E3C2AF120429120429120429D2AF12F4 |
|||
:100D0C0004081203F8C3E54B940140F6312FE4F5C7 |
|||
:100D1C0021F522F523F524754FFF855C50306E02CA |
|||
:100D2C00F535F536F537F538F539F53EF52BF54E45 |
|||
:100D3C001206CFD262D25C12068D11FB1203F41193 |
|||
:100D4C00441203F41203F4115E1203F8118A120315 |
|||
:100D5C00F81203F811B51203FC11D81203F81203A0 |
|||
:100D6C00F4C25CD25D12068D11FB1206EC12076602 |
|||
:100D7C00313F315B11441206EC120766313F315B97 |
|||
:100D8C00115E1206EC120766313F315B118A1206B6 |
|||
:100D9C00EC120766313F315B11B51206EC12076697 |
|||
:100DAC00313F315B11D81206EC120766313FC3E5B7 |
|||
:100DBC004594D0E54694074004315B80ABC25DD2CC |
|||
:100DCC005E12068D753002315B11FB1206EC1207B8 |
|||
:100DDC0066313F315B11441206EC120766313F312C |
|||
:100DEC005B115E1206EC120766313F315B118A1201 |
|||
:100DFC0006EC120766313F315B11B51206EC120797 |
|||
:100E0C0066313F315B11D81206EC120766313FE5B3 |
|||
:100E1C0030146006F530315B80AFC25ED25F1206D3 |
|||
:100E2C008D315B11FB1206F212074D120766120789 |
|||
:100E3C00A17530011207F2205803020FC8112A11B4 |
|||
:100E4C003E11441206F212074D1207661207A11248 |
|||
:100E5C0007BA205803020FC8112A113E115E120660 |
|||
:100E6C00F212074D1207661207A11207F22058035F |
|||
:100E7C00020FC8112A113E118A1206F212074D12E6 |
|||
:100E8C0007661207A11207BA205803020FC8112ACD |
|||
:100E9C00113E11B51206F212074D1207661207A188 |
|||
:100EAC001207F2205803020FC8112A113E11D81252 |
|||
:100EBC0006F212074D1207661207A11207BA205844 |
|||
:100ECC0003020FC8112A113E11FB1206F212074D34 |
|||
:100EDC001207661207A1E530146004F530C14020FA |
|||
:100EEC006C11C2AFC262C296C294C292D2929000EE |
|||
:100EFC00D9D2AF1207F2205803020FC8112A1204DC |
|||
:100F0C0065113E11441206F212074D1207661207C4 |
|||
:100F1C00A11207BA205803020FC8112A1204A911F2 |
|||
:100F2C003E115E1206F212074D1207661207A1124D |
|||
:100F3C0007F2205803020FC8112A1204E7113E11C0 |
|||
:100F4C008A1206F212074D1207661207A11207BA8F |
|||
:100F5C00205803020FC8112A12053E113E11B5127A |
|||
:100F6C0006F212074D1207661207A11207F220585B |
|||
:100F7C0003020FC8112A1205E9113E11D81206F20C |
|||
:100F8C0012074D1207661207A11207BA12068B2020 |
|||
:100F9C005803020FC8112A12068C113E11FB1206BF |
|||
:100FAC00F212074D1207661207A1C25FC3E54E94F9 |
|||
:100FBC00645009C3E53494F05002C1FF312FE4F5BD |
|||
:090FCC0021F522F523F524A10E04 |
|||
:0F1A0000020007040401020303030101015AA5B8 |
|||
:101A4000235475726E696779364123202020202047 |
|||
:101A500023424C48454C4923463333302320202031 |
|||
:101A60002020202020202020202020202020202076 |
|||
:00000001FF |
@ -0,0 +1,267 @@ |
|||
:03000000020CD21D |
|||
:03000B0002008070 |
|||
:03002B000201D9F6 |
|||
:03005B000202A5F9 |
|||
:0300730002029BEB |
|||
:10008000C2AFC0D0C0E0D2D3758B00E4205A017358 |
|||
:1000900085248AC25AC3E52494FA5016C292C291AA |
|||
:1000A000C29020620201B27405D5E0FDD295D294CF |
|||
:1000B000D293D0E0D0D0C2D3D2AF3221C9C29120E6 |
|||
:1000C0006E02D292306E02D29021C9206E02C2908E |
|||
:1000D000306E02C292D29121C9206E02C292306E5D |
|||
:1000E00002C290206E02D290306E02D29221C97468 |
|||
:1000F00016206E02C295306E02C293206E02C29329 |
|||
:10010000306E02C295D5E0E9C291206E02D29230E3 |
|||
:100110006E02D29021C97416206E02C295306E0212 |
|||
:10012000C293C294D5E0F1C291206E02D292306E99 |
|||
:1001300002D29021C97416C294206E02C295306E0C |
|||
:1001400002C293D5E0F1206E02C290306E02C292DC |
|||
:10015000D29121C97416C294206E02C293306E02ED |
|||
:10016000C295D5E0F1206E02C290306E02C292D2EA |
|||
:100170009121C97416206E02C293306E02C295C2DC |
|||
:1001800094D5E0F1206E02C292306E02C290206ED1 |
|||
:1001900002D290306E02D29221C97416206E02C231 |
|||
:1001A00093306E02C295206E02C295306E02C293E9 |
|||
:1001B000D5E0E9206E02C292306E02C290206E023B |
|||
:1001C000D290306E02D29221C9D25AE524F4F58A37 |
|||
:1001D000D0E0D0D0C2D3D2AF32C2AFC0D0C0E0D214 |
|||
:1001E000D3C2CEE52760041527412478007900E5C5 |
|||
:1001F00080306F01F430E70278FA53DACF206F03D2 |
|||
:1002000043DA20306F0343DA10C2D8C261E5803090 |
|||
:100210006F01F430E70279FAC3E89970CE75274090 |
|||
:10022000884BD260E52960041529413143DA01C2C7 |
|||
:10023000D82060024156E54BF8C260C3E8955050A3 |
|||
:1002400005E550C333F8E52B54F0700A8821A8590E |
|||
:10025000B8030385212320CF09D0E0D0D0C2D3D268 |
|||
:10026000AF32C2CF7801E54BC394014005754E0013 |
|||
:100270004179E54E046002054EE559B40203853D1F |
|||
:1002800021C3E5229521600A4004152241900522F0 |
|||
:10029000D8E7D0E0D0D0C2D3D2AF32C2AF53917F33 |
|||
:1002A000C258D2AF32C2AFC0D0C0E0D2D3A8FBA9EF |
|||
:1002B000FCC2D830610241FE53DACF206F0343DA2B |
|||
:1002C00010306F0343DA20D261E580306F01F420F3 |
|||
:1002D000E70241DA8825892661CE53DACF206F0301 |
|||
:1002E00043DA20306F0343DA10C2D8C2617800E5E8 |
|||
:1002F00080306F01F430E70261C1884B61C153DA8D |
|||
:10030000CF206F0343DA20306F0343DA10C261203D |
|||
:100310005902617853DACF206F0343DA10306F034C |
|||
:1003200043DA20C2D8D2618849894AC3E89547F8A0 |
|||
:10033000E99548F9E4FBC3E89468E994015006E4C0 |
|||
:10034000D2E3FB6170C3E894D0E994025006E4D292 |
|||
:10035000E2FB6170C3E894A0E994055006E4D2E1A1 |
|||
:10036000FB6170C3E89440E9940B5004E4D2E0FBD5 |
|||
:10037000A849A94A88478948C3E89525F8E99526F8 |
|||
:10038000F9306B0261A5306A02619EE9C313F9E896 |
|||
:1003900013F8306902619EE9C313F9E813F8E9C361 |
|||
:1003A00013F9E813F8C3E894FAE99400400278FAE4 |
|||
:1003B000A94B884B20590261C1740FF4552D4BF5A0 |
|||
:1003C0002D752740D26030590261CE53DAFE75296F |
|||
:1003D00020D0E0D0D0C2D3D2AF32790161F279031C |
|||
:1003E00061F2790A61F2791E61F2796461F279C889 |
|||
:1003F00061F27817E4D5E0FDD8FAD9F6227A187BB5 |
|||
:100400007881157A157B8C81157A127BB481157AE7 |
|||
:100410000F7BC881157902B26EE4D294D5E0FD203D |
|||
:100420006E02D292306E02D290E540D5E0FD206E91 |
|||
:1004300002C292306E02C290E540D5E0FDD9D8EA02 |
|||
:10044000F8D5E0FDD8FBDBCDC29422E559B4030218 |
|||
:10045000818EC3E5339400E5349405401285212351 |
|||
:10046000E4F535F536F537F538F539F53E818EE5A5 |
|||
:0F04700022F43333F913F8E9540104F9E854FE88 |
|||
:10047F00C39440F8E99400F988358936753E012216 |
|||
:10048F00E53E6039C3E53413F9E53313F8C3E535B9 |
|||
:10049F0098F8E53699F930E70BC3E89480E994FFB3 |
|||
:1004AF00401381C8C3E8947FE99400500281C87853 |
|||
:1004BF007F790081C8788079FF883A893B22E53EB1 |
|||
:1004CF006052E537253AF8E538353BF9E539353BE4 |
|||
:1004DF00FA30E708C3EA94F04012A101C3EA940F7F |
|||
:1004EF005002A10178FF79FF7A0FA10178007900FE |
|||
:1004FF007AF0C3E523954F5009C3E52394014009D2 |
|||
:10050F00A11DE53A20E70DA11DE53A30E706883732 |
|||
:10051F0089388A3922E53E70030205CE853A20E4F8 |
|||
:10052F00300701F4F9C3E53A33F8E933F9E5573009 |
|||
:10053F00E002A154C3E5579404603AE9A2E713F926 |
|||
:10054F00E813F8A184E9FBE8FAEBA2E713FBEA133F |
|||
:10055F00FAE82AF8E93BF9E557C394056017E9A2D1 |
|||
:10056F00E713F9E813F8E557C394036008E9A2E726 |
|||
:10057F0013F9E813F8E930E70BC3E89480E994FF27 |
|||
:10058F004013A1A8C3E8947FE994005002A1A87872 |
|||
:10059F007F7900A1A8788079FFE820E713C3E522CF |
|||
:1005AF0098F84008C3E894014002A1CC7801A1CC8F |
|||
:1005BF00E8F424012522F84002A1CC78FF883C22E0 |
|||
:1005CF00E53E700302066FA838A939E55830E002FE |
|||
:1005DF00A1F2C3E5589404603AE9A2E713F9E813CE |
|||
:1005EF00F8C122E9FBE8FAEBA2E713FBEA13FAE8FA |
|||
:1005FF002AF8E93BF9E558C394056017E9A2E71318 |
|||
:10060F00F9E813F8E558C394036008E9A2E713F972 |
|||
:10061F00E813F8E930E70BC3E89400E994FF4013BF |
|||
:10062F00C146C3E894FFE994005002C14678FF79B0 |
|||
:10063F0000C146780079FFE920E713C3E53C98F83D |
|||
:10064F004008C3E894014002C16D7801C16DE8F420 |
|||
:10065F002401253CF8E934004002C16D78FF88235E |
|||
:10066F002275E890E5E820ECF8A8BDA9BE75527494 |
|||
:10067F00755300755101C3747433FA740033FBC39F |
|||
:10068F00E89AE99B401D8A528B53755102EA2474F4 |
|||
:10069F00FAEB3400FBC3E89AE99B40078A528B536D |
|||
:1006AF00755103AA52AB53C3E55313F9E55213F82F |
|||
:1006BF00C3E913F9E813F8C3E913F9E813F8C3E929 |
|||
:1006CF0013F9E813F8C3E913FDE813FCE82CF8E974 |
|||
:1006DF003DF9C3E55A94016009C3E55A9403600FCD |
|||
:1006EF00E108C3EA98FAEB99FB8A528B53E108EAC7 |
|||
:1006FF0028FAEB39FB8A528B532275E89022E5E8F2 |
|||
:10070F0020ECFBA8BDA9BEC3E894FFE994035011E8 |
|||
:10071F00C3E89552E995535008E54F600B154FE12B |
|||
:10072F0037E54FF46002054FA84FC3E523985002F9 |
|||
:10073F00A823882422305C027832305D0278503052 |
|||
:10074F005E027850305F027828E52B54F06027A9BD |
|||
:10075F005DB90302E17FC313855D28204002C313F7 |
|||
:10076F00204206C8C398F8E17F28F8500374FFF8B9 |
|||
:10077F00882188238824227545707546177AFF7B58 |
|||
:10078F003F8A438B448A3F8B407B1F8A418B428A2F |
|||
:10079F00348A3322A845A946E1ADA83FA9407591F7 |
|||
:1007AF0000C3E498F594E499F595759104D25875C2 |
|||
:1007BF00C820A8CCA9CD75C824AA31AB32883189FD |
|||
:1007CF0032C3E89AF8E99BF9AA33AB34C3EB13FDB4 |
|||
:1007DF00EA13FCC3ED13FDEC13FCC3EA9CFAEB9D8B |
|||
:1007EF00FBEA28FAEB39FB8A338B3440012275344C |
|||
:1007FF00FF7533FF223058020104759100C3E49551 |
|||
:10080F0041F594E49542F595759104D25822A93497 |
|||
:10081F00A8337A04C3E913F9E813F8DAF7C3E894B5 |
|||
:10082F000AF8E99400F94009C3E8940AE9940050E2 |
|||
:10083F0004780AE4F988438944883F8940C3E9135F |
|||
:10084F00F9E813F88841894222305802015875910E |
|||
:10085F0000C3E49533F594E49534F595759104D27E |
|||
:0E086F005822D2AF20580122E524F4C4C3134E |
|||
:10087D00540704F9D2AF0000C2AF306203305AF40E |
|||
:10088D00780D206D027804C3E58B9840F3E59BF459 |
|||
:10089D00F520300603020871D9F3D2AF22D2AF2072 |
|||
:1008AD00580122E524F4C4C313540704F9D2AF0050 |
|||
:1008BD0000C2AF306203305AF4780D206D02780417 |
|||
:1008CD00C3E58B9840F3E59BF4F520200603020861 |
|||
:1008DD00AAD9F3D2AF22759100C3E49543F594E400 |
|||
:1008ED009544F595759104D2582230580201F7229E |
|||
:1008FD00C2AF306203900173C294206E02D2953064 |
|||
:10090D006E02D293759F11D2AF22C2AF30620390A7 |
|||
:10091D0001542062039000CB206E02C290306E0213 |
|||
:10092D00C292305A02D291206E03759F01306E0330 |
|||
:10093D00759F21D2AF22C2AF306203900135206E78 |
|||
:10094D0002C295306E02C293206E02D293306E02B7 |
|||
:10095D00D295206E03759F21306E03759F01D2AF26 |
|||
:10096D0022C2AF3062039001162062039000BDC217 |
|||
:10097D0091305A0A206E02D292306E02D290759F3B |
|||
:10098D0011D2AF22C2AF3062039000EF206E02C2CF |
|||
:10099D0093306E02C295D294206E03759F01306E16 |
|||
:1009AD0003759F21D2AF22C2AF30620390019A200E |
|||
:1009BD0062039000D9206E02C292306E02C2903056 |
|||
:1009CD005A0A206E02D290306E02D292206E0375BA |
|||
:1009DD009F21306E03759F01D2AF229000BBC29252 |
|||
:1009ED00C291C290C295C294C29322C3E54594D0E0 |
|||
:1009FD00E5469407500122C3E545940AF8E546946F |
|||
:100A0D0000F9884589462230580241142275570451 |
|||
:100A1D00755804755901755A02755D03D26D7402CE |
|||
:100A2D0030E102C26DC26E740130E102D26EC26F4E |
|||
:100A3D00740130E102D26F22E493F822438F015307 |
|||
:100A4D008FFD75B7A575B7F1E8F0538FFE22438F73 |
|||
:100A5D0002438F0175B7A575B7F1901A0DF0538F3D |
|||
:100A6D00FC22901A0D78A55149901A0E785A5149C9 |
|||
:100A7D0022901A0D5145C3E894A57058901A0E5145 |
|||
:100A8D0045C3E8945A704D901A0351458857901AF2 |
|||
:100A9D000451458858901A0551458859901A0651A8 |
|||
:100AAD0045885A901A095145885D901A0A5145D2C8 |
|||
:100ABD006DE830E102C26D901A0B5145C26EE830FF |
|||
:100ACD00E102D26E901A0C5145C26FE830E102D2AC |
|||
:100ADD006F020AE6511A120B07227A307980901AAA |
|||
:100AED00405145E8F709A3DAF8227A307980901A57 |
|||
:100AFD0040E7F8514909A3DAF822C2AF51E7515B3B |
|||
:100B0D00901A0078025149901A0178005149901AB3 |
|||
:100B1D000278075149901A03A8575149901A04A811 |
|||
:100B2D00585149901A05A8595149901A06A85A5179 |
|||
:100B3D0049901A09A85D5149901A0A7801206D0251 |
|||
:100B4D0078025149901A0B7801306E0278025149A2 |
|||
:100B5D00901A0C7801306F027802514951F7516F9C |
|||
:100B6D0022AB54A855EBC39401602AEBC3940260E9 |
|||
:100B7D0029EBC394036028EBC394046027EBC39463 |
|||
:100B8D00056026EBC394066025EBC39407602AEB42 |
|||
:100B9D00C39408602F8857020BDC8858020BDC8841 |
|||
:100BAD0059020BDC885A020BDC885D020BDCD26D1E |
|||
:100BBD00E830E102C26D020BDCC26EE830E102D218 |
|||
:100BCD006E020BDCC26FE830E102D26F020BDC2249 |
|||
:100BDD007C051203EEDCFB22C2AF1203FD120403EF |
|||
:100BED0012040912040F1203E21203FD1204031280 |
|||
:100BFD00040912040F1203E21203FD12040312047E |
|||
:100C0D000912040FD2AF22AC54AD55C2AF1203FD81 |
|||
:100C1D001203FD1203FD1203E2DCF212040F1203A4 |
|||
:100C2D00E2DDF8D2AF22C2AF12040FD2AF1203EA47 |
|||
:100C3D00C3E54B940150EFC2AF1203FD1203E21254 |
|||
:100C4D0003FDD2AF1203EAC3E54B94FA40E971E517 |
|||
:100C5D0071DD71DD75540175550175560091147C6A |
|||
:0F0C6D00051203EEC3E54B9401500D716E710734 |
|||
:100C7C0071E5C2AF43EF1071DDDCE70556C3E556F5 |
|||
:100C8C009403500280D871DD05557805C3E5549462 |
|||
:100C9C000370027803C3E554940470027803C3E52F |
|||
:100CAC005494054002780208C3E55598500280AB75 |
|||
:100CBC0071DD71DD0554C3E554940950028099C26D |
|||
:100CCC00AF43EF1071DDC2D353D9BF7581C043B2AE |
|||
:100CDC0003E5B324044002F5B37580FF75900075ED |
|||
:100CEC00A40075A53F75A60175F19175F23F75D4F9 |
|||
:100CFC007F75D50075E24131E8E4F8F6D8FD511A5C |
|||
:100D0C00517E31E8758E01206D03758E007588500B |
|||
:100D1C0075890275C82475910475D8401203EE12BA |
|||
:100D2C0003FD1203E61204031203E6120409120374 |
|||
:100D3C00E675A82275B80275E69075F610759B805D |
|||
:100D4C0075D10175BCB875BB0675BA1175E880D242 |
|||
:100D5C00AF12067043DA01C2D8C2611203EED25947 |
|||
:100D6C007A051203DE3060FDE54BC3940240F1E5D9 |
|||
:100D7C002D540F854D4CF54DB54CE5DAE5C2595364 |
|||
:100D8C00DACF206F0343DA20306F0343DA10C2D876 |
|||
:100D9C00C261C2AF1203FD1203FD1203FDD2AF12EA |
|||
:100DAC0003EE753D001203DEC3E54B94FA4002815D |
|||
:100DBC0033C3E54B953D4003854B3DC3E54B940157 |
|||
:100DCC0050E3C2AF12040F12040F12040FD2AF1271 |
|||
:100DDC0003EE1203DEC3E54B940140F631E8E4F573 |
|||
:100DEC0021F522F523F524754FFF855C50306E02FA |
|||
:100DFC00F535F536F537F538F539F53EF52BF54E75 |
|||
:100E0C00120786D262D25C12074431B41203DA1193 |
|||
:100E1C00FD1203DA1203DA31171203DE3143120327 |
|||
:100E2C00DE1203DE316E1203E231911203DE120385 |
|||
:100E3C00DAC25CD25D12074431B41207A3111D3122 |
|||
:100E4C00F8511411FD1207A3111D31F8511431176B |
|||
:100E5C001207A3111D31F8511431431207A3111DB0 |
|||
:100E6C0031F85114316E1207A3111D31F8511431A0 |
|||
:100E7C00911207A3111D31F8C3E54594D0E54694B2 |
|||
:100E8C00074004511480B1C25DD25E120744753024 |
|||
:100E9C0002511431B41207A3111D31F8511411FD74 |
|||
:100EAC001207A3111D31F8511431171207A3111D8C |
|||
:100EBC0031F8511431431207A3111D31F85114317B |
|||
:100ECC006E1207A3111D31F8511431911207A311A1 |
|||
:100EDC001D31F8E530146006F530511480B5C25E52 |
|||
:100EEC00D25F120744511431B41207A91104111D19 |
|||
:100EFC00115875300111AA20580302106E11E3111C |
|||
:100F0C00F711FD1207A91104111D11581171205868 |
|||
:100F1C000302106E11E311F731171207A911041116 |
|||
:100F2C001D115811AA20580302106E11E311F7314C |
|||
:100F3C00431207A91104111D1158117120580302F5 |
|||
:100F4C00106E11E311F7316E1207A91104111D1166 |
|||
:100F5C005811AA20580302106E11E311F7319112A7 |
|||
:100F6C0007A91104111D1158117120580302106E9C |
|||
:100F7C0011E311F731B41207A91104111D1158E531 |
|||
:100F8C0030146004F530E101206C11C2AFC262C2B2 |
|||
:100F9C0095C294C293D2949000D9D2AF11AA205882 |
|||
:100FAC000302106E11E312044B11F711FD1207A985 |
|||
:100FBC001104111D1158117120580302106E11E308 |
|||
:100FCC0012048F11F731171207A91104111D1158B2 |
|||
:100FDC0011AA20580302106E11E31204CD11F7313F |
|||
:100FEC00431207A91104111D115811712058030245 |
|||
:100FFC00106E1208E31205241208F712096E12077C |
|||
:10100C00A912080412081D1208581208AA20580325 |
|||
:10101C0002106E1208E31205CF1208F71209911292 |
|||
:10102C0007A912080412081D120858120871120799 |
|||
:10103C000920580302106E1208E312070D1208F76C |
|||
:10104C001209B41207A912080412081D120858C27A |
|||
:10105C005FC3E54E9401500AC3E53494F05003028B |
|||
:0E106C000FA81209E8E4F521F522F523F5247A |
|||
:03107A00020D6CF8 |
|||
:0F1A000002000704040102030303020101A55AB7 |
|||
:101A400023585031324123202020202020202020E4 |
|||
:101A500023424C48454C4923463333302320202031 |
|||
:101A60002020202020202020202020202020202076 |
|||
:00000001FF |
@ -0,0 +1,256 @@ |
|||
:03000000020C04EB |
|||
:03000B0002008070 |
|||
:03002B000201D9F6 |
|||
:03005B000202BFDF |
|||
:030073000202B5D1 |
|||
:10008000C2AFC0D0C0E0D2D3758B00E4205A017358 |
|||
:1000900085248AC25AC3E52494FA5016C292C291AA |
|||
:1000A000C29020620201B27405D5E0FDD295D294CF |
|||
:1000B000D293D0E0D0D0C2D3D2AF3221C9C29120E6 |
|||
:1000C0006E02D292306E02D29021C9206E02C2908E |
|||
:1000D000306E02C292D29121C9206E02C292306E5D |
|||
:1000E00002C290206E02D290306E02D29221C97468 |
|||
:1000F00016206E02C295306E02C293206E02C29329 |
|||
:10010000306E02C295D5E0E9C291206E02D29230E3 |
|||
:100110006E02D29021C97416206E02C295306E0212 |
|||
:10012000C293C294D5E0F1C291206E02D292306E99 |
|||
:1001300002D29021C97416C294206E02C295306E0C |
|||
:1001400002C293D5E0F1206E02C290306E02C292DC |
|||
:10015000D29121C97416C294206E02C293306E02ED |
|||
:10016000C295D5E0F1206E02C290306E02C292D2EA |
|||
:100170009121C97416206E02C293306E02C295C2DC |
|||
:1001800094D5E0F1206E02C292306E02C290206ED1 |
|||
:1001900002D290306E02D29221C97416206E02C231 |
|||
:1001A00093306E02C295206E02C295306E02C293E9 |
|||
:1001B000D5E0E9206E02C292306E02C290206E023B |
|||
:1001C000D290306E02D29221C9D25AE524F4F58A37 |
|||
:1001D000D0E0D0D0C2D3D2AF32C2AFC0D0C0E0D214 |
|||
:1001E000D3C2CEE52760041527412478007900E5C5 |
|||
:1001F00080306F01F430E70278FA53DACF206F03D2 |
|||
:1002000043DA20306F0343DA10C2D8C261E5803090 |
|||
:100210006F01F430E70279FAC3E89970CE752718B8 |
|||
:10022000884BD260E52960041529413143DA01C2C7 |
|||
:10023000D82060024189E54BF8C260C394F04003C6 |
|||
:1002400074F0F8C4540F28F8A95BB90302416BC3DA |
|||
:1002500013C313855B28204002C313204206C8C382 |
|||
:1002600098F8416B28F8500374FFF8C3E895505094 |
|||
:1002700005E550C333F8E52B54F0700D8821A859DB |
|||
:10028000B8030685212385212420CF09D0E0D0D0D2 |
|||
:10029000C2D3D2AF32C2CF7801E54BC3940140053F |
|||
:1002A000754E0041ACE54E046002054ED0E0D0D062 |
|||
:1002B000C2D3D2AF32C2AF53917FC258D2AF32C293 |
|||
:1002C000AFC0D0C0E0D2D3A8FBA9FCC2D830610235 |
|||
:1002D000611853DACF206F0343DA10306F0343DA2B |
|||
:1002E00020D261E580306F01F420E70241F48825D7 |
|||
:1002F000892661E853DACF206F0343DA20306F0399 |
|||
:1003000043DA10C2D8C2617800E580306F01F43062 |
|||
:10031000E70261DB884B61DB53DACF206F0343DAFE |
|||
:1003200020306F0343DA10C261205902619253DA20 |
|||
:10033000CF206F0343DA10306F0343DA20C2D8D2E4 |
|||
:10034000618849894AC3E89547F8E99548F9E4FB8B |
|||
:10035000C3E89468E994015006E4D2E3FB618AC3E0 |
|||
:10036000E894D0E994025006E4D2E2FB618AC3E843 |
|||
:1003700094A0E994055006E4D2E1FB618AC3E894B5 |
|||
:1003800040E9940B5004E4D2E0FBA849A94A88470D |
|||
:100390008948C3E89525F8E99526F9306B0261BFD5 |
|||
:1003A000306A0261B8E9C313F9E813F830690261F1 |
|||
:1003B000B8E9C313F9E813F8E9C313F9E813F8C36C |
|||
:1003C000E894FAE99400400278FAA94B884B205946 |
|||
:1003D0000261DB740FF4552D4BF52D752718D26093 |
|||
:1003E00030590261E853DAFE752906D0E0D0D0C258 |
|||
:1003F000D3D2AF327901810C7903810C790A810C57 |
|||
:10040000791E810C7964810C79C8810C7817E4D548 |
|||
:10041000E0FDD8FAD9F6227A187B78812F7A157BFD |
|||
:100420008C812F7A127BB4812F7A0F7BC8812F7930 |
|||
:1004300002B26EE4D294D5E0FD206E02D292306E0C |
|||
:1004400002D290E540D5E0FD206E02C292306E02ED |
|||
:10045000C290E540D5E0FDD9D8EAF8D5E0FDD8FB5B |
|||
:10046000DBCDC29422E559B4030281A8C3E53394DD |
|||
:0F04700000E53494054012852123E4F535F53677 |
|||
:10047F00F537F538F539F53E81A8E522F43333F930 |
|||
:10048F0013F8E9540104F9E854FEC39440F8E994D1 |
|||
:10049F0000F988358936753E0122E53E6039C3E59E |
|||
:1004AF003413F9E53313F8C3E53598F8E53699F9C0 |
|||
:1004BF0030E70BC3E89480E994FF401381E2C3E86F |
|||
:1004CF00947FE99400500281E2787F790081E2788D |
|||
:1004DF008079FF883A893B22E53E6052E537253A1D |
|||
:1004EF00F8E538353BF9E539353BFA30E708C3EA2B |
|||
:1004FF0094F04012A11BC3EA940F5002A11B78FF86 |
|||
:10050F0079FF7A0FA11B780079007AF0C3E5239564 |
|||
:10051F004F5009C3E52394014009A137E53A20E77D |
|||
:10052F000DA137E53A30E706883789388A3922E551 |
|||
:10053F003E70030205E8853A20E4300701F4F9C361 |
|||
:10054F00E53A33F8E933F9E55730E002A16EC3E538 |
|||
:10055F00579404603AE9A2E713F9E813F8A19EE96A |
|||
:10056F00FBE8FAEBA2E713FBEA13FAE82AF8E93BF8 |
|||
:10057F00F9E557C394056017E9A2E713F9E813F8F3 |
|||
:10058F00E557C394036008E9A2E713F9E813F8E904 |
|||
:10059F0030E70BC3E89480E994FF4013A1C2C3E88E |
|||
:1005AF00947FE994005002A1C2787F7900A1C278AC |
|||
:1005BF008079FFE820E713C3E52298F84008C3E8E5 |
|||
:1005CF0094014002A1E67801A1E6E8F42401252276 |
|||
:1005DF00F84002A1E678FF883C22E53E7003020650 |
|||
:1005EF0089A838A939E55830E002C10CC3E5589401 |
|||
:1005FF0004603AE9A2E713F9E813F8C13CE9FBE814 |
|||
:10060F00FAEBA2E713FBEA13FAE82AF8E93BF9E55C |
|||
:10061F0058C394056017E9A2E713F9E813F8E558F2 |
|||
:10062F00C394036008E9A2E713F9E813F8E930E788 |
|||
:10063F000BC3E89400E994FF4013C160C3E894FF33 |
|||
:10064F00E994005002C16078FF7900C160780079A9 |
|||
:10065F00FFE920E713C3E53C98F84008C3E894018D |
|||
:10066F004002C1877801C187E8F42401253CF8E9ED |
|||
:10067F0034004002C18778FF882322222222305C77 |
|||
:10068F00027832305D027878305E027850305F0247 |
|||
:10069F007828E52B54F06027A95DB90302C1C8C3C0 |
|||
:1006AF0013855D28204002C313204206C8C398F863 |
|||
:1006BF00C1C828F8500374FFF888218823882422A2 |
|||
:1006CF007545707546177AFF7B3F8A438B448A3F87 |
|||
:1006DF008B407B1F8A418B428A348A3322A845A9DB |
|||
:1006EF0046C1F6A83FA940759100C3E498F594E47C |
|||
:1006FF0099F595759104D25875C820A8CCA9CD75D8 |
|||
:10070F00C824AA31AB3288318932C3E89AF8E99B01 |
|||
:10071F00F9AA33AB34C3EB13FDEA13FCC3ED13FD9E |
|||
:10072F00EC13FCC3EA9CFAEB9DFBEA28FAEB39FBCE |
|||
:10073F008A338B344001227534FF7533FF223058D2 |
|||
:10074F0002E14D759100C3E49541F594E49542F5AE |
|||
:10075F0095759104D25822A934A8337A04C3E913AA |
|||
:10076F00F9E813F8DAF7C3E8940AF8E99400F940C6 |
|||
:10077F0009C3E8940AE994005004780AE4F988431D |
|||
:10078F008944883F8940C3E913F9E813F888418900 |
|||
:10079F004222305802E1A1759100C3E49533F594DC |
|||
:1007AF00E49534F595759104D25822D2AF205801B3 |
|||
:1007BF0022E524F4C4C313540704F9D2AF0000C2D6 |
|||
:1007CF00AF306203305AF4780D206D027804C3E520 |
|||
:1007DF008B9840F3E59BF4F5203006030207BAD956 |
|||
:1007EF00F3D2AF22D2AF20580122E524F4C4C313B1 |
|||
:1007FF00540704F9D2AF0000C2AF306203305AF48D |
|||
:10080F00780D206D027804C3E58B9840F3E59BF4D7 |
|||
:10081F00F5202006030207F3D9F3D2AF227591001A |
|||
:10082F00C3E49543F594E49544F595759104D25836 |
|||
:10083F0022305802014022C2AF306203900173C2CE |
|||
:10084F0094206E02D295306E02D293759F11D2AF63 |
|||
:10085F0022C2AF3062039001542062039000CB207C |
|||
:0E086F006E02C290306E02C292305A02D291D6 |
|||
:10087D00206E03759F01306E03759F21D2AF22C28A |
|||
:10088D00AF306203900135206E02C295306E02C208 |
|||
:10089D0093206E02D293306E02D295206E03759F17 |
|||
:1008AD0021306E03759F01D2AF22C2AF306203902B |
|||
:1008BD0001162062039000BDC291305A0A206E02CB |
|||
:1008CD00D292306E02D290759F11D2AF22C2AF304C |
|||
:1008DD0062039000EF206E02C293306E02C295D279 |
|||
:1008ED0094206E03759F01306E03759F21D2AF2248 |
|||
:1008FD00C2AF30620390019A2062039000D9206E3E |
|||
:10090D0002C292306E02C290305A0A206E02D2900C |
|||
:10091D00306E02D292206E03759F21306E03759F4B |
|||
:10092D0001D2AF229000BBC292C291C290C295C2B9 |
|||
:10093D0094C29322C3E54594D0E546940750012215 |
|||
:10094D00C3E545943CF8E5469400F988458946226F |
|||
:10095D00305802215D22755B03755C03755D03C222 |
|||
:10096D006D740130E002D26DC26CC374019403400A |
|||
:10097D0002D26CC26E740130E102D266C26F740194 |
|||
:10098D0030E102D26F75590322E493F822438F01AF |
|||
:10099D00538FFD75B7A575B7F1E8F0538FFE224360 |
|||
:1009AD008F02438F0175B7A575B7F1901A0DF053EE |
|||
:1009BD008FFC22901A0D785A319A901A0E78A53123 |
|||
:1009CD009A22901A0D3196C3E8945A7057901A0EC8 |
|||
:1009DD003196C3E894A5704C901A073196885B90B8 |
|||
:1009ED001A083196885C901A093196885D901A0A1A |
|||
:1009FD003196C26DE830E002D26DC26CC3E894034B |
|||
:100A0D004002D26C901A0B3196C26EE830E102D2E0 |
|||
:100A1D006E901A0C3196C26FE830E102D26F7559A3 |
|||
:100A2D0003020A363163120A57227A307980901AFE |
|||
:100A3D00403196E8F709A3DAF8227A307980901AD6 |
|||
:100A4D0040E7F8319A09A3DAF822C2AF513731AC39 |
|||
:100A5D00901A007802319A901A017800319A901A02 |
|||
:100A6D00027807319A901A07A85B319A901A08A854 |
|||
:100A7D005C319A901A09A85D319A901A0A78012072 |
|||
:100A8D006D027802306C027803319A901A0B78015E |
|||
:100A9D00306E027802319A901A0C7801306F02781C |
|||
:100AAD0002319A514731C022AB54A855EBC3940182 |
|||
:100ABD00601EEBC39402601DEBC39403601CEBC37B |
|||
:100ACD009404601BEBC39405602AEBC39406602F5E |
|||
:100ADD00885B020B17885C020B17885D020B17C22F |
|||
:100AED006DE830E002D26DC26CC3E894034002D2CF |
|||
:100AFD006C020B17C26EE830E102D26E020B17C208 |
|||
:100B0D006FE830E102D26F020B17227C0512040848 |
|||
:100B1D00DCFB22C2AF12041712041D1204231204AF |
|||
:100B2D00291203FC12041712041D120423120429A6 |
|||
:100B3D001203FC12041712041D120423120429D2ED |
|||
:100B4D00AF22AC54AD55C2AF1204171204171204E4 |
|||
:100B5D00171203FCDCF21204291203FCDDF8D2AFEC |
|||
:100B6D0022C2AF120429D2AF120404C3E54B940183 |
|||
:100B7D0050EFC2AF1204171203FC120417D2AF12BA |
|||
:100B8D000404C3E54B94FA40E9712071187118758E |
|||
:100B9D005401755501755600714F7C05120408C33B |
|||
:100BAD00E54B9401500D51B551577120C2AF43EF34 |
|||
:100BBD00107118DCE70556C3E5569403500280D832 |
|||
:100BCD00711805557805C3E554940440027803C3A4 |
|||
:100BDD00E55494044002780208C3E555985002800C |
|||
:100BED00B4711871180554C3E5549407500280A2CE |
|||
:100BFD00C2AF43EF107118C2D353D9BF7581C04333 |
|||
:100C0D00B203E5B324044002F5B37580FF7590007F |
|||
:100C1D0075A40075A53F75A60175F19175F23F7527 |
|||
:100C2D00D47F75D50075E2413131E4F8F6D8FD3148 |
|||
:100C3D006331CF3131758E01206D03758E0075884E |
|||
:100C4D005075890275C82475910475D84012040831 |
|||
:100C5D0012041712040012041D12040012042312B0 |
|||
:0E0C6D00040075A82275B80275E69075F610A1 |
|||
:100C7B00759B8075D10175BCB875BB0675BA1175BE |
|||
:100C8B00E880D2AF12068A43DA01C2D8C2611204DD |
|||
:100C9B0008D2597A051203F83060FDE54BC3940274 |
|||
:100CAB0040F1E52D540F854D4CF54DB54CE5DAE58E |
|||
:100CBB00C25953DACF206F0343DA20306F0343DA84 |
|||
:100CCB0010C2D8C261C2AF12041712041712041754 |
|||
:100CDB00D2AF120408753D001203F8C3E54B94FA2A |
|||
:100CEB004002616EC3E54B953D4003854B3DC3E52B |
|||
:100CFB004B940150E3C2AF120429120429120429A8 |
|||
:100D0B00D2AF1204081203F8C3E54B940140F6313D |
|||
:100D1B0031E4F521F522F523F524754FFF855C5061 |
|||
:100D2B00306E02F535F536F537F538F539F53EF514 |
|||
:100D3B002BF54E1206CFD262D25C12068D11FD122C |
|||
:100D4B0003F411461203F41203F411601203F811A9 |
|||
:100D5B008C1203F81203F811B71203FC11DA120309 |
|||
:100D6B00F81203F4C25CD25D12068D11FD1206EC73 |
|||
:100D7B001207663141315D11461206EC12076631DE |
|||
:100D8B0041315D11601206EC1207663141315D1184 |
|||
:100D9B008C1206EC1207663141315D11B71206EC6D |
|||
:100DAB001207663141315D11DA1206EC120766311A |
|||
:100DBB0041C3E54594D0E54694074004315D80ABD3 |
|||
:100DCB00C25DD25E12068D753002315D11FD1206C9 |
|||
:100DDB00EC1207663141315D11461206EC120766C3 |
|||
:100DEB003141315D11601206EC1207663141315D04 |
|||
:100DFB00118C1206EC1207663141315D11B71206E8 |
|||
:100E0B00EC1207663141315D11DA1206EC120766FE |
|||
:100E1B003141E530146006F530315D80AFC25ED2F2 |
|||
:100E2B005F12068D315D11FD1206F212074D12078E |
|||
:100E3B00661207A17530011207F3205803020FCA7F |
|||
:100E4B00112C114011461206F212074D12076612B1 |
|||
:100E5B0007A11207BA205803020FCA112C11401117 |
|||
:100E6B00601206F212074D1207661207A11207F362 |
|||
:100E7B00205803020FCA112C1140118C1206F212CA |
|||
:100E8B00074D1207661207A11207BA205803020F6B |
|||
:100E9B00CA112C114011B71206F212074D12076638 |
|||
:100EAB001207A11207F3205803020FCA112C11408D |
|||
:100EBB0011DA1206F212074D1207661207A112077A |
|||
:100ECB00BA205803020FCA112C114011FD1206F261 |
|||
:100EDB0012074D1207661207A1E530146004F530B6 |
|||
:100EEB00C142206C11C2AFC262C295C294C293D2EE |
|||
:100EFB00949000D9D2AF1207F3205803020FCA11F6 |
|||
:100F0B002C120465114011461206F212074D1207FE |
|||
:100F1B00661207A11207BA205803020FCA112C122E |
|||
:100F2B0004A9114011601206F212074D1207661246 |
|||
:100F3B0007A11207F3205803020FCA112C1204E762 |
|||
:100F4B001140118C1206F212074D1207661207A1FF |
|||
:100F5B001207BA205803020FCA112C12053E11407A |
|||
:100F6B0011B71206F212074D1207661207A11207EC |
|||
:100F7B00F3205803020FCA112C1205E9114011DAA4 |
|||
:100F8B001206F212074D1207661207A11207BA12C8 |
|||
:100F9B00068B205803020FCA112C12068C1140111C |
|||
:100FAB00FD1206F212074D1207661207A1C25FC3AC |
|||
:100FBB00E54E94645009C3E53494F05002E10131DD |
|||
:0C0FCB0031E4F521F522F523F524A110F6 |
|||
:0F1A0000020007040401020303030101015AA5B8 |
|||
:101A400023585031324123202020202020202020E4 |
|||
:101A500023424C48454C4923463333302320202031 |
|||
:101A60002020202020202020202020202020202076 |
|||
:00000001FF |
@ -0,0 +1,267 @@ |
|||
:03000000020CD21D |
|||
:03000B0002008070 |
|||
:03002B000201D9F6 |
|||
:03005B000202A5F9 |
|||
:0300730002029BEB |
|||
:10008000C2AFC0D0C0E0D2D3758B00E4205A017358 |
|||
:1000900085248AC25AC3E52494FA5016C290C291AC |
|||
:1000A000C29220620201B27401D5E0FDC293C294F3 |
|||
:1000B000C295D0E0D0D0C2D3D2AF3221C9C29120F4 |
|||
:1000C0006E02D290306E02D29221C9206E02C2928C |
|||
:1000D000306E02C290D29121C9206E02C290306E61 |
|||
:1000E00002C292206E02D292306E02D29021C97466 |
|||
:1000F00002206E02D293306E02D295206E02D2950B |
|||
:10010000306E02D293D5E0E9C291206E02D29030D7 |
|||
:100110006E02D29221C97402206E02D293306E0216 |
|||
:10012000D295D294D5E0F1C291206E02D290306E79 |
|||
:1001300002D29221C97402D294206E02D293306E00 |
|||
:1001400002D295D5E0F1206E02C292306E02C290CA |
|||
:10015000D29121C97402D294206E02D295306E02DF |
|||
:10016000D293D5E0F1206E02C292306E02C290D2DC |
|||
:100170009121C97402206E02D295306E02D293D2C0 |
|||
:1001800094D5E0F1206E02C290306E02C292206ED1 |
|||
:1001900002D292306E02D29021C97402206E02D235 |
|||
:1001A00095306E02D293206E02D293306E02D295B9 |
|||
:1001B000D5E0E9206E02C290306E02C292206E023B |
|||
:1001C000D292306E02D29021C9D25AE524F4F58A37 |
|||
:1001D000D0E0D0D0C2D3D2AF32C2AFC0D0C0E0D214 |
|||
:1001E000D3C2CEE52760041527412478007900E5C5 |
|||
:1001F00080306F01F430E70278FA53DACF206F03D2 |
|||
:1002000043DA20306F0343DA10C2D8C261E5803090 |
|||
:100210006F01F430E70279FAC3E89970CE75274090 |
|||
:10022000884BD260E52960041529413143DA01C2C7 |
|||
:10023000D82060024156E54BF8C260C3E8955050A3 |
|||
:1002400005E550C333F8E52B54F0700A8821A8590E |
|||
:10025000B8030385212320CF09D0E0D0D0C2D3D268 |
|||
:10026000AF32C2CF7801E54BC394014005754E0013 |
|||
:100270004179E54E046002054EE559B40203853D1F |
|||
:1002800021C3E5229521600A4004152241900522F0 |
|||
:10029000D8E7D0E0D0D0C2D3D2AF32C2AF53917F33 |
|||
:1002A000C258D2AF32C2AFC0D0C0E0D2D3A8FBA9EF |
|||
:1002B000FCC2D830610241FE53DACF206F0343DA2B |
|||
:1002C00010306F0343DA20D261E580306F01F420F3 |
|||
:1002D000E70241DA8825892661CE53DACF206F0301 |
|||
:1002E00043DA20306F0343DA10C2D8C2617800E5E8 |
|||
:1002F00080306F01F430E70261C1884B61C153DA8D |
|||
:10030000CF206F0343DA20306F0343DA10C261203D |
|||
:100310005902617853DACF206F0343DA10306F034C |
|||
:1003200043DA20C2D8D2618849894AC3E89547F8A0 |
|||
:10033000E99548F9E4FBC3E89468E994015006E4C0 |
|||
:10034000D2E3FB6170C3E894D0E994025006E4D292 |
|||
:10035000E2FB6170C3E894A0E994055006E4D2E1A1 |
|||
:10036000FB6170C3E89440E9940B5004E4D2E0FBD5 |
|||
:10037000A849A94A88478948C3E89525F8E99526F8 |
|||
:10038000F9306B0261A5306A02619EE9C313F9E896 |
|||
:1003900013F8306902619EE9C313F9E813F8E9C361 |
|||
:1003A00013F9E813F8C3E894FAE99400400278FAE4 |
|||
:1003B000A94B884B20590261C1740FF4552D4BF5A0 |
|||
:1003C0002D752740D26030590261CE53DAFE75296F |
|||
:1003D00020D0E0D0D0C2D3D2AF32790161F279031C |
|||
:1003E00061F2790A61F2791E61F2796461F279C889 |
|||
:1003F00061F27817E4D5E0FDD8FAD9F6227A187BB5 |
|||
:100400007881157A157B8C81157A127BB481157AE7 |
|||
:100410000F7BC881157902B26EE4C294D5E0FD204D |
|||
:100420006E02D290306E02D292E540D5E0FD206E91 |
|||
:1004300002C290306E02C292E540D5E0FDD9D8EA02 |
|||
:10044000F8D5E0FDD8FBDBCDD29422E559B4030208 |
|||
:10045000818EC3E5339400E5349405401285212351 |
|||
:10046000E4F535F536F537F538F539F53E818EE5A5 |
|||
:0F04700022F43333F913F8E9540104F9E854FE88 |
|||
:10047F00C39440F8E99400F988358936753E012216 |
|||
:10048F00E53E6039C3E53413F9E53313F8C3E535B9 |
|||
:10049F0098F8E53699F930E70BC3E89480E994FFB3 |
|||
:1004AF00401381C8C3E8947FE99400500281C87853 |
|||
:1004BF007F790081C8788079FF883A893B22E53EB1 |
|||
:1004CF006052E537253AF8E538353BF9E539353BE4 |
|||
:1004DF00FA30E708C3EA94F04012A101C3EA940F7F |
|||
:1004EF005002A10178FF79FF7A0FA10178007900FE |
|||
:1004FF007AF0C3E523954F5009C3E52394014009D2 |
|||
:10050F00A11DE53A20E70DA11DE53A30E706883732 |
|||
:10051F0089388A3922E53E70030205CE853A20E4F8 |
|||
:10052F00300701F4F9C3E53A33F8E933F9E5573009 |
|||
:10053F00E002A154C3E5579404603AE9A2E713F926 |
|||
:10054F00E813F8A184E9FBE8FAEBA2E713FBEA133F |
|||
:10055F00FAE82AF8E93BF9E557C394056017E9A2D1 |
|||
:10056F00E713F9E813F8E557C394036008E9A2E726 |
|||
:10057F0013F9E813F8E930E70BC3E89480E994FF27 |
|||
:10058F004013A1A8C3E8947FE994005002A1A87872 |
|||
:10059F007F7900A1A8788079FFE820E713C3E522CF |
|||
:1005AF0098F84008C3E894014002A1CC7801A1CC8F |
|||
:1005BF00E8F424012522F84002A1CC78FF883C22E0 |
|||
:1005CF00E53E700302066FA838A939E55830E002FE |
|||
:1005DF00A1F2C3E5589404603AE9A2E713F9E813CE |
|||
:1005EF00F8C122E9FBE8FAEBA2E713FBEA13FAE8FA |
|||
:1005FF002AF8E93BF9E558C394056017E9A2E71318 |
|||
:10060F00F9E813F8E558C394036008E9A2E713F972 |
|||
:10061F00E813F8E930E70BC3E89400E994FF4013BF |
|||
:10062F00C146C3E894FFE994005002C14678FF79B0 |
|||
:10063F0000C146780079FFE920E713C3E53C98F83D |
|||
:10064F004008C3E894014002C16D7801C16DE8F420 |
|||
:10065F002401253CF8E934004002C16D78FF88235E |
|||
:10066F002275E890E5E820ECF8A8BDA9BE7552AB5D |
|||
:10067F00755301755101C374AB33FA740133FBC366 |
|||
:10068F00E89AE99B401D8A528B53755102EA24ABBD |
|||
:10069F00FAEB3401FBC3E89AE99B40078A528B536C |
|||
:1006AF00755103AA52AB53C3E55313F9E55213F82F |
|||
:1006BF00C3E913F9E813F8C3E913F9E813F8C3E929 |
|||
:1006CF0013F9E813F8C3E913FDE813FCE82CF8E974 |
|||
:1006DF003DF9C3E55A94016009C3E55A9403600FCD |
|||
:1006EF00E108C3EA98FAEB99FB8A528B53E108EAC7 |
|||
:1006FF0028FAEB39FB8A528B532275E89022E5E8F2 |
|||
:10070F0020ECFBA8BDA9BEC3E894FFE994035011E8 |
|||
:10071F00C3E89552E995535008E54F600B154FE12B |
|||
:10072F0037E54FF46002054FA84FC3E523985002F9 |
|||
:10073F00A823882422305C027832305D0278503052 |
|||
:10074F005E027850305F027828E52B54F06027A9BD |
|||
:10075F005DB90302E17FC313855D28204002C313F7 |
|||
:10076F00204206C8C398F8E17F28F8500374FFF8B9 |
|||
:10077F00882188238824227545707546177AFF7B58 |
|||
:10078F003F8A438B448A3F8B407B1F8A418B428A2F |
|||
:10079F00348A3322A845A946E1ADA83FA9407591F7 |
|||
:1007AF0000C3E498F594E499F595759104D25875C2 |
|||
:1007BF00C820A8CCA9CD75C824AA31AB32883189FD |
|||
:1007CF0032C3E89AF8E99BF9AA33AB34C3EB13FDB4 |
|||
:1007DF00EA13FCC3ED13FDEC13FCC3EA9CFAEB9D8B |
|||
:1007EF00FBEA28FAEB39FB8A338B3440012275344C |
|||
:1007FF00FF7533FF223058020104759100C3E49551 |
|||
:10080F0041F594E49542F595759104D25822A93497 |
|||
:10081F00A8337A04C3E913F9E813F8DAF7C3E894B5 |
|||
:10082F000AF8E99400F94009C3E8940AE9940050E2 |
|||
:10083F0004780AE4F988438944883F8940C3E9135F |
|||
:10084F00F9E813F88841894222305802015875910E |
|||
:10085F0000C3E49533F594E49534F595759104D27E |
|||
:0E086F005822D2AF20580122E524F4C4C3134E |
|||
:10087D00540704F9D2AF0000C2AF306203305AF40E |
|||
:10088D00780D206D027804C3E58B9840F3E59BF459 |
|||
:10089D00F520300603020871D9F3D2AF22D2AF2072 |
|||
:1008AD00580122E524F4C4C313540704F9D2AF0050 |
|||
:1008BD0000C2AF306203305AF4780D206D02780417 |
|||
:1008CD00C3E58B9840F3E59BF4F520200603020861 |
|||
:1008DD00AAD9F3D2AF22759100C3E49543F594E400 |
|||
:1008ED009544F595759104D2582230580201F7229E |
|||
:1008FD00C2AF306203900173D294206E02C2933066 |
|||
:10090D006E02C295759F11D2AF22C2AF30620390B5 |
|||
:10091D0001542062039000CB206E02C292306E0211 |
|||
:10092D00C290305A02D291206E03759F01306E0332 |
|||
:10093D00759F21D2AF22C2AF306203900135206E78 |
|||
:10094D0002D293306E02D295206E02C295306E02A5 |
|||
:10095D00C293206E03759F21306E03759F01D2AF38 |
|||
:10096D0022C2AF3062039001162062039000BDC217 |
|||
:10097D0091305A0A206E02D290306E02D292759F3B |
|||
:10098D0011D2AF22C2AF3062039000EF206E02D2BF |
|||
:10099D0095306E02D293C294206E03759F01306E16 |
|||
:1009AD0003759F21D2AF22C2AF30620390019A200E |
|||
:1009BD0062039000D9206E02C290306E02C2923056 |
|||
:1009CD005A0A206E02D292306E02D290206E0375BA |
|||
:1009DD009F21306E03759F01D2AF229000BBC29054 |
|||
:1009ED00C291C292D293D294D29522C3E54594D0AE |
|||
:1009FD00E5469407500122C3E545940AF8E546946F |
|||
:100A0D0000F9884589462230580241142275570451 |
|||
:100A1D00755804755901755A02755D03D26D7402CE |
|||
:100A2D0030E102C26DC26E740130E102D26EC26F4E |
|||
:100A3D00740130E102D26F22E493F822438F015307 |
|||
:100A4D008FFD75B7A575B7F1E8F0538FFE22438F73 |
|||
:100A5D0002438F0175B7A575B7F1901A0DF0538F3D |
|||
:100A6D00FC22901A0D78A55149901A0E785A5149C9 |
|||
:100A7D0022901A0D5145C3E894A57058901A0E5145 |
|||
:100A8D0045C3E8945A704D901A0351458857901AF2 |
|||
:100A9D000451458858901A0551458859901A0651A8 |
|||
:100AAD0045885A901A095145885D901A0A5145D2C8 |
|||
:100ABD006DE830E102C26D901A0B5145C26EE830FF |
|||
:100ACD00E102D26E901A0C5145C26FE830E102D2AC |
|||
:100ADD006F020AE6511A120B07227A307980901AAA |
|||
:100AED00405145E8F709A3DAF8227A307980901A57 |
|||
:100AFD0040E7F8514909A3DAF822C2AF51E7515B3B |
|||
:100B0D00901A0078025149901A0178005149901AB3 |
|||
:100B1D000278075149901A03A8575149901A04A811 |
|||
:100B2D00585149901A05A8595149901A06A85A5179 |
|||
:100B3D0049901A09A85D5149901A0A7801206D0251 |
|||
:100B4D0078025149901A0B7801306E0278025149A2 |
|||
:100B5D00901A0C7801306F027802514951F7516F9C |
|||
:100B6D0022AB54A855EBC39401602AEBC3940260E9 |
|||
:100B7D0029EBC394036028EBC394046027EBC39463 |
|||
:100B8D00056026EBC394066025EBC39407602AEB42 |
|||
:100B9D00C39408602F8857020BDC8858020BDC8841 |
|||
:100BAD0059020BDC885A020BDC885D020BDCD26D1E |
|||
:100BBD00E830E102C26D020BDCC26EE830E102D218 |
|||
:100BCD006E020BDCC26FE830E102D26F020BDC2249 |
|||
:100BDD007C051203EEDCFB22C2AF1203FD120403EF |
|||
:100BED0012040912040F1203E21203FD1204031280 |
|||
:100BFD00040912040F1203E21203FD12040312047E |
|||
:100C0D000912040FD2AF22AC54AD55C2AF1203FD81 |
|||
:100C1D001203FD1203FD1203E2DCF212040F1203A4 |
|||
:100C2D00E2DDF8D2AF22C2AF12040FD2AF1203EA47 |
|||
:100C3D00C3E54B940150EFC2AF1203FD1203E21254 |
|||
:100C4D0003FDD2AF1203EAC3E54B94FA40E971E517 |
|||
:100C5D0071DD71DD75540175550175560091147C6A |
|||
:0F0C6D00051203EEC3E54B9401500D716E710734 |
|||
:100C7C0071E5C2AF43EF1071DDDCE70556C3E556F5 |
|||
:100C8C009403500280D871DD05557805C3E5549462 |
|||
:100C9C000370027803C3E554940470027803C3E52F |
|||
:100CAC005494054002780208C3E55598500280AB75 |
|||
:100CBC0071DD71DD0554C3E554940950028099C26D |
|||
:100CCC00AF43EF1071DDC2D353D9BF7581C043B2AE |
|||
:100CDC0003E5B324044002F5B37580FF75903875B5 |
|||
:100CEC00A40075A53F75A60175F19175F23F75D4F9 |
|||
:100CFC007F75D50075E24131E8E4F8F6D8FD511A5C |
|||
:100D0C00517E31E8758E01206D03758E007588500B |
|||
:100D1C0075890275C82475910475D8401203EE12BA |
|||
:100D2C0003FD1203E61204031203E6120409120374 |
|||
:100D3C00E675A82275B80275E69075F610759B805D |
|||
:100D4C0075D10175BCB875BB0675BA1175E880D242 |
|||
:100D5C00AF12067043DA01C2D8C2611203EED25947 |
|||
:100D6C007A051203DE3060FDE54BC3940240F1E5D9 |
|||
:100D7C002D540F854D4CF54DB54CE5DAE5C2595364 |
|||
:100D8C00DACF206F0343DA20306F0343DA10C2D876 |
|||
:100D9C00C261C2AF1203FD1203FD1203FDD2AF12EA |
|||
:100DAC0003EE753D001203DEC3E54B94FA4002815D |
|||
:100DBC0033C3E54B953D4003854B3DC3E54B940157 |
|||
:100DCC0050E3C2AF12040F12040F12040FD2AF1271 |
|||
:100DDC0003EE1203DEC3E54B940140F631E8E4F573 |
|||
:100DEC0021F522F523F524754FFF855C50306E02FA |
|||
:100DFC00F535F536F537F538F539F53EF52BF54E75 |
|||
:100E0C00120786D262D25C12074431B41203DA1193 |
|||
:100E1C00FD1203DA1203DA31171203DE3143120327 |
|||
:100E2C00DE1203DE316E1203E231911203DE120385 |
|||
:100E3C00DAC25CD25D12074431B41207A3111D3122 |
|||
:100E4C00F8511411FD1207A3111D31F8511431176B |
|||
:100E5C001207A3111D31F8511431431207A3111DB0 |
|||
:100E6C0031F85114316E1207A3111D31F8511431A0 |
|||
:100E7C00911207A3111D31F8C3E54594D0E54694B2 |
|||
:100E8C00074004511480B1C25DD25E120744753024 |
|||
:100E9C0002511431B41207A3111D31F8511411FD74 |
|||
:100EAC001207A3111D31F8511431171207A3111D8C |
|||
:100EBC0031F8511431431207A3111D31F85114317B |
|||
:100ECC006E1207A3111D31F8511431911207A311A1 |
|||
:100EDC001D31F8E530146006F530511480B5C25E52 |
|||
:100EEC00D25F120744511431B41207A91104111D19 |
|||
:100EFC00115875300111AA20580302106E11E3111C |
|||
:100F0C00F711FD1207A91104111D11581171205868 |
|||
:100F1C000302106E11E311F731171207A911041116 |
|||
:100F2C001D115811AA20580302106E11E311F7314C |
|||
:100F3C00431207A91104111D1158117120580302F5 |
|||
:100F4C00106E11E311F7316E1207A91104111D1166 |
|||
:100F5C005811AA20580302106E11E311F7319112A7 |
|||
:100F6C0007A91104111D1158117120580302106E9C |
|||
:100F7C0011E311F731B41207A91104111D1158E531 |
|||
:100F8C0030146004F530E101206C11C2AFC262D2A2 |
|||
:100F9C0093D294D295C2949000D9D2AF11AA205872 |
|||
:100FAC000302106E11E312044B11F711FD1207A985 |
|||
:100FBC001104111D1158117120580302106E11E308 |
|||
:100FCC0012048F11F731171207A91104111D1158B2 |
|||
:100FDC0011AA20580302106E11E31204CD11F7313F |
|||
:100FEC00431207A91104111D115811712058030245 |
|||
:100FFC00106E1208E31205241208F712096E12077C |
|||
:10100C00A912080412081D1208581208AA20580325 |
|||
:10101C0002106E1208E31205CF1208F71209911292 |
|||
:10102C0007A912080412081D120858120871120799 |
|||
:10103C000920580302106E1208E312070D1208F76C |
|||
:10104C001209B41207A912080412081D120858C27A |
|||
:10105C005FC3E54E9401500AC3E53494F05003028B |
|||
:0E106C000FA81209E8E4F521F522F523F5247A |
|||
:03107A00020D6CF8 |
|||
:0F1A000002000704040102030303020101A55AB7 |
|||
:101A400023585033412320202020202020202020F4 |
|||
:101A500023424C48454C4923463333302320202031 |
|||
:101A60002020202020202020202020202020202076 |
|||
:00000001FF |
@ -0,0 +1,256 @@ |
|||
:03000000020C04EB |
|||
:03000B0002008070 |
|||
:03002B000201D9F6 |
|||
:03005B000202BFDF |
|||
:030073000202B5D1 |
|||
:10008000C2AFC0D0C0E0D2D3758B00E4205A017358 |
|||
:1000900085248AC25AC3E52494FA5016C290C291AC |
|||
:1000A000C29220620201B27401D5E0FDC293C294F3 |
|||
:1000B000C295D0E0D0D0C2D3D2AF3221C9C29120F4 |
|||
:1000C0006E02D290306E02D29221C9206E02C2928C |
|||
:1000D000306E02C290D29121C9206E02C290306E61 |
|||
:1000E00002C292206E02D292306E02D29021C97466 |
|||
:1000F00002206E02D293306E02D295206E02D2950B |
|||
:10010000306E02D293D5E0E9C291206E02D29030D7 |
|||
:100110006E02D29221C97402206E02D293306E0216 |
|||
:10012000D295D294D5E0F1C291206E02D290306E79 |
|||
:1001300002D29221C97402D294206E02D293306E00 |
|||
:1001400002D295D5E0F1206E02C292306E02C290CA |
|||
:10015000D29121C97402D294206E02D295306E02DF |
|||
:10016000D293D5E0F1206E02C292306E02C290D2DC |
|||
:100170009121C97402206E02D295306E02D293D2C0 |
|||
:1001800094D5E0F1206E02C290306E02C292206ED1 |
|||
:1001900002D292306E02D29021C97402206E02D235 |
|||
:1001A00095306E02D293206E02D293306E02D295B9 |
|||
:1001B000D5E0E9206E02C290306E02C292206E023B |
|||
:1001C000D292306E02D29021C9D25AE524F4F58A37 |
|||
:1001D000D0E0D0D0C2D3D2AF32C2AFC0D0C0E0D214 |
|||
:1001E000D3C2CEE52760041527412478007900E5C5 |
|||
:1001F00080306F01F430E70278FA53DACF206F03D2 |
|||
:1002000043DA20306F0343DA10C2D8C261E5803090 |
|||
:100210006F01F430E70279FAC3E89970CE752718B8 |
|||
:10022000884BD260E52960041529413143DA01C2C7 |
|||
:10023000D82060024189E54BF8C260C394F04003C6 |
|||
:1002400074F0F8C4540F28F8A95BB90302416BC3DA |
|||
:1002500013C313855B28204002C313204206C8C382 |
|||
:1002600098F8416B28F8500374FFF8C3E895505094 |
|||
:1002700005E550C333F8E52B54F0700D8821A859DB |
|||
:10028000B8030685212385212420CF09D0E0D0D0D2 |
|||
:10029000C2D3D2AF32C2CF7801E54BC3940140053F |
|||
:1002A000754E0041ACE54E046002054ED0E0D0D062 |
|||
:1002B000C2D3D2AF32C2AF53917FC258D2AF32C293 |
|||
:1002C000AFC0D0C0E0D2D3A8FBA9FCC2D830610235 |
|||
:1002D000611853DACF206F0343DA10306F0343DA2B |
|||
:1002E00020D261E580306F01F420E70241F48825D7 |
|||
:1002F000892661E853DACF206F0343DA20306F0399 |
|||
:1003000043DA10C2D8C2617800E580306F01F43062 |
|||
:10031000E70261DB884B61DB53DACF206F0343DAFE |
|||
:1003200020306F0343DA10C261205902619253DA20 |
|||
:10033000CF206F0343DA10306F0343DA20C2D8D2E4 |
|||
:10034000618849894AC3E89547F8E99548F9E4FB8B |
|||
:10035000C3E89468E994015006E4D2E3FB618AC3E0 |
|||
:10036000E894D0E994025006E4D2E2FB618AC3E843 |
|||
:1003700094A0E994055006E4D2E1FB618AC3E894B5 |
|||
:1003800040E9940B5004E4D2E0FBA849A94A88470D |
|||
:100390008948C3E89525F8E99526F9306B0261BFD5 |
|||
:1003A000306A0261B8E9C313F9E813F830690261F1 |
|||
:1003B000B8E9C313F9E813F8E9C313F9E813F8C36C |
|||
:1003C000E894FAE99400400278FAA94B884B205946 |
|||
:1003D0000261DB740FF4552D4BF52D752718D26093 |
|||
:1003E00030590261E853DAFE752906D0E0D0D0C258 |
|||
:1003F000D3D2AF327901810C7903810C790A810C57 |
|||
:10040000791E810C7964810C79C8810C7817E4D548 |
|||
:10041000E0FDD8FAD9F6227A187B78812F7A157BFD |
|||
:100420008C812F7A127BB4812F7A0F7BC8812F7930 |
|||
:1004300002B26EE4C294D5E0FD206E02D290306E1E |
|||
:1004400002D292E540D5E0FD206E02C290306E02ED |
|||
:10045000C292E540D5E0FDD9D8EAF8D5E0FDD8FB59 |
|||
:10046000DBCDD29422E559B4030281A8C3E53394CD |
|||
:0F04700000E53494054012852123E4F535F53677 |
|||
:10047F00F537F538F539F53E81A8E522F43333F930 |
|||
:10048F0013F8E9540104F9E854FEC39440F8E994D1 |
|||
:10049F0000F988358936753E0122E53E6039C3E59E |
|||
:1004AF003413F9E53313F8C3E53598F8E53699F9C0 |
|||
:1004BF0030E70BC3E89480E994FF401381E2C3E86F |
|||
:1004CF00947FE99400500281E2787F790081E2788D |
|||
:1004DF008079FF883A893B22E53E6052E537253A1D |
|||
:1004EF00F8E538353BF9E539353BFA30E708C3EA2B |
|||
:1004FF0094F04012A11BC3EA940F5002A11B78FF86 |
|||
:10050F0079FF7A0FA11B780079007AF0C3E5239564 |
|||
:10051F004F5009C3E52394014009A137E53A20E77D |
|||
:10052F000DA137E53A30E706883789388A3922E551 |
|||
:10053F003E70030205E8853A20E4300701F4F9C361 |
|||
:10054F00E53A33F8E933F9E55730E002A16EC3E538 |
|||
:10055F00579404603AE9A2E713F9E813F8A19EE96A |
|||
:10056F00FBE8FAEBA2E713FBEA13FAE82AF8E93BF8 |
|||
:10057F00F9E557C394056017E9A2E713F9E813F8F3 |
|||
:10058F00E557C394036008E9A2E713F9E813F8E904 |
|||
:10059F0030E70BC3E89480E994FF4013A1C2C3E88E |
|||
:1005AF00947FE994005002A1C2787F7900A1C278AC |
|||
:1005BF008079FFE820E713C3E52298F84008C3E8E5 |
|||
:1005CF0094014002A1E67801A1E6E8F42401252276 |
|||
:1005DF00F84002A1E678FF883C22E53E7003020650 |
|||
:1005EF0089A838A939E55830E002C10CC3E5589401 |
|||
:1005FF0004603AE9A2E713F9E813F8C13CE9FBE814 |
|||
:10060F00FAEBA2E713FBEA13FAE82AF8E93BF9E55C |
|||
:10061F0058C394056017E9A2E713F9E813F8E558F2 |
|||
:10062F00C394036008E9A2E713F9E813F8E930E788 |
|||
:10063F000BC3E89400E994FF4013C160C3E894FF33 |
|||
:10064F00E994005002C16078FF7900C160780079A9 |
|||
:10065F00FFE920E713C3E53C98F84008C3E894018D |
|||
:10066F004002C1877801C187E8F42401253CF8E9ED |
|||
:10067F0034004002C18778FF882322222222305C77 |
|||
:10068F00027832305D027878305E027850305F0247 |
|||
:10069F007828E52B54F06027A95DB90302C1C8C3C0 |
|||
:1006AF0013855D28204002C313204206C8C398F863 |
|||
:1006BF00C1C828F8500374FFF888218823882422A2 |
|||
:1006CF007545707546177AFF7B3F8A438B448A3F87 |
|||
:1006DF008B407B1F8A418B428A348A3322A845A9DB |
|||
:1006EF0046C1F6A83FA940759100C3E498F594E47C |
|||
:1006FF0099F595759104D25875C820A8CCA9CD75D8 |
|||
:10070F00C824AA31AB3288318932C3E89AF8E99B01 |
|||
:10071F00F9AA33AB34C3EB13FDEA13FCC3ED13FD9E |
|||
:10072F00EC13FCC3EA9CFAEB9DFBEA28FAEB39FBCE |
|||
:10073F008A338B344001227534FF7533FF223058D2 |
|||
:10074F0002E14D759100C3E49541F594E49542F5AE |
|||
:10075F0095759104D25822A934A8337A04C3E913AA |
|||
:10076F00F9E813F8DAF7C3E8940AF8E99400F940C6 |
|||
:10077F0009C3E8940AE994005004780AE4F988431D |
|||
:10078F008944883F8940C3E913F9E813F888418900 |
|||
:10079F004222305802E1A1759100C3E49533F594DC |
|||
:1007AF00E49534F595759104D25822D2AF205801B3 |
|||
:1007BF0022E524F4C4C313540704F9D2AF0000C2D6 |
|||
:1007CF00AF306203305AF4780D206D027804C3E520 |
|||
:1007DF008B9840F3E59BF4F5203006030207BAD956 |
|||
:1007EF00F3D2AF22D2AF20580122E524F4C4C313B1 |
|||
:1007FF00540704F9D2AF0000C2AF306203305AF48D |
|||
:10080F00780D206D027804C3E58B9840F3E59BF4D7 |
|||
:10081F00F5202006030207F3D9F3D2AF227591001A |
|||
:10082F00C3E49543F594E49544F595759104D25836 |
|||
:10083F0022305802014022C2AF306203900173D2BE |
|||
:10084F0094206E02C293306E02C295759F11D2AF83 |
|||
:10085F0022C2AF3062039001542062039000CB207C |
|||
:0E086F006E02C292306E02C290305A02D291D6 |
|||
:10087D00206E03759F01306E03759F21D2AF22C28A |
|||
:10088D00AF306203900135206E02D293306E02D2EA |
|||
:10089D0095206E02C295306E02C293206E03759F35 |
|||
:1008AD0021306E03759F01D2AF22C2AF306203902B |
|||
:1008BD0001162062039000BDC291305A0A206E02CB |
|||
:1008CD00D290306E02D292759F11D2AF22C2AF304C |
|||
:1008DD0062039000EF206E02D295306E02D293C269 |
|||
:1008ED0094206E03759F01306E03759F21D2AF2248 |
|||
:1008FD00C2AF30620390019A2062039000D9206E3E |
|||
:10090D0002C290306E02C292305A0A206E02D2920A |
|||
:10091D00306E02D290206E03759F21306E03759F4D |
|||
:10092D0001D2AF229000BBC290C291C292D293D29B |
|||
:10093D0094D29522C3E54594D0E546940750012203 |
|||
:10094D00C3E545943CF8E5469400F988458946226F |
|||
:10095D00305802215D22755B03755C03755D03C222 |
|||
:10096D006D740330E002D26DC26CC3740394034006 |
|||
:10097D0002D26CC26E740130E102D266C26F740194 |
|||
:10098D0030E102D26F75590322E493F822438F01AF |
|||
:10099D00538FFD75B7A575B7F1E8F0538FFE224360 |
|||
:1009AD008F02438F0175B7A575B7F1901A0DF053EE |
|||
:1009BD008FFC22901A0D785A319A901A0E78A53123 |
|||
:1009CD009A22901A0D3196C3E8945A7057901A0EC8 |
|||
:1009DD003196C3E894A5704C901A073196885B90B8 |
|||
:1009ED001A083196885C901A093196885D901A0A1A |
|||
:1009FD003196C26DE830E002D26DC26CC3E894034B |
|||
:100A0D004002D26C901A0B3196C26EE830E102D2E0 |
|||
:100A1D006E901A0C3196C26FE830E102D26F7559A3 |
|||
:100A2D0003020A363163120A57227A307980901AFE |
|||
:100A3D00403196E8F709A3DAF8227A307980901AD6 |
|||
:100A4D0040E7F8319A09A3DAF822C2AF513731AC39 |
|||
:100A5D00901A007802319A901A017800319A901A02 |
|||
:100A6D00027807319A901A07A85B319A901A08A854 |
|||
:100A7D005C319A901A09A85D319A901A0A78012072 |
|||
:100A8D006D027802306C027803319A901A0B78015E |
|||
:100A9D00306E027802319A901A0C7801306F02781C |
|||
:100AAD0002319A514731C022AB54A855EBC3940182 |
|||
:100ABD00601EEBC39402601DEBC39403601CEBC37B |
|||
:100ACD009404601BEBC39405602AEBC39406602F5E |
|||
:100ADD00885B020B17885C020B17885D020B17C22F |
|||
:100AED006DE830E002D26DC26CC3E894034002D2CF |
|||
:100AFD006C020B17C26EE830E102D26E020B17C208 |
|||
:100B0D006FE830E102D26F020B17227C0512040848 |
|||
:100B1D00DCFB22C2AF12041712041D1204231204AF |
|||
:100B2D00291203FC12041712041D120423120429A6 |
|||
:100B3D001203FC12041712041D120423120429D2ED |
|||
:100B4D00AF22AC54AD55C2AF1204171204171204E4 |
|||
:100B5D00171203FCDCF21204291203FCDDF8D2AFEC |
|||
:100B6D0022C2AF120429D2AF120404C3E54B940183 |
|||
:100B7D0050EFC2AF1204171203FC120417D2AF12BA |
|||
:100B8D000404C3E54B94FA40E9712071187118758E |
|||
:100B9D005401755501755600714F7C05120408C33B |
|||
:100BAD00E54B9401500D51B551577120C2AF43EF34 |
|||
:100BBD00107118DCE70556C3E5569403500280D832 |
|||
:100BCD00711805557805C3E554940440027803C3A4 |
|||
:100BDD00E55494054002780208C3E555985002800B |
|||
:100BED00B4711871180554C3E5549407500280A2CE |
|||
:100BFD00C2AF43EF107118C2D353D9BF7581C04333 |
|||
:100C0D00B203E5B324044002F5B37580FF75903847 |
|||
:100C1D0075A40075A53F75A60175F19175F23F7527 |
|||
:100C2D00D47F75D50075E2413131E4F8F6D8FD3148 |
|||
:100C3D006331CF3131758E01206D03758E0075884E |
|||
:100C4D005075890275C82475910475D84012040831 |
|||
:100C5D0012041712040012041D12040012042312B0 |
|||
:0E0C6D00040075A82275B80275E69075F610A1 |
|||
:100C7B00759B8075D10175BCB875BB0675BA1175BE |
|||
:100C8B00E880D2AF12068A43DA01C2D8C2611204DD |
|||
:100C9B0008D2597A051203F83060FDE54BC3940274 |
|||
:100CAB0040F1E52D540F854D4CF54DB54CE5DAE58E |
|||
:100CBB00C25953DACF206F0343DA20306F0343DA84 |
|||
:100CCB0010C2D8C261C2AF12041712041712041754 |
|||
:100CDB00D2AF120408753D001203F8C3E54B94FA2A |
|||
:100CEB004002616EC3E54B953D4003854B3DC3E52B |
|||
:100CFB004B940150E3C2AF120429120429120429A8 |
|||
:100D0B00D2AF1204081203F8C3E54B940140F6313D |
|||
:100D1B0031E4F521F522F523F524754FFF855C5061 |
|||
:100D2B00306E02F535F536F537F538F539F53EF514 |
|||
:100D3B002BF54E1206CFD262D25C12068D11FD122C |
|||
:100D4B0003F411461203F41203F411601203F811A9 |
|||
:100D5B008C1203F81203F811B71203FC11DA120309 |
|||
:100D6B00F81203F4C25CD25D12068D11FD1206EC73 |
|||
:100D7B001207663141315D11461206EC12076631DE |
|||
:100D8B0041315D11601206EC1207663141315D1184 |
|||
:100D9B008C1206EC1207663141315D11B71206EC6D |
|||
:100DAB001207663141315D11DA1206EC120766311A |
|||
:100DBB0041C3E54594D0E54694074004315D80ABD3 |
|||
:100DCB00C25DD25E12068D753002315D11FD1206C9 |
|||
:100DDB00EC1207663141315D11461206EC120766C3 |
|||
:100DEB003141315D11601206EC1207663141315D04 |
|||
:100DFB00118C1206EC1207663141315D11B71206E8 |
|||
:100E0B00EC1207663141315D11DA1206EC120766FE |
|||
:100E1B003141E530146006F530315D80AFC25ED2F2 |
|||
:100E2B005F12068D315D11FD1206F212074D12078E |
|||
:100E3B00661207A17530011207F3205803020FCA7F |
|||
:100E4B00112C114011461206F212074D12076612B1 |
|||
:100E5B0007A11207BA205803020FCA112C11401117 |
|||
:100E6B00601206F212074D1207661207A11207F362 |
|||
:100E7B00205803020FCA112C1140118C1206F212CA |
|||
:100E8B00074D1207661207A11207BA205803020F6B |
|||
:100E9B00CA112C114011B71206F212074D12076638 |
|||
:100EAB001207A11207F3205803020FCA112C11408D |
|||
:100EBB0011DA1206F212074D1207661207A112077A |
|||
:100ECB00BA205803020FCA112C114011FD1206F261 |
|||
:100EDB0012074D1207661207A1E530146004F530B6 |
|||
:100EEB00C142206C11C2AFC262D293D294D295C2CE |
|||
:100EFB00949000D9D2AF1207F3205803020FCA11F6 |
|||
:100F0B002C120465114011461206F212074D1207FE |
|||
:100F1B00661207A11207BA205803020FCA112C122E |
|||
:100F2B0004A9114011601206F212074D1207661246 |
|||
:100F3B0007A11207F3205803020FCA112C1204E762 |
|||
:100F4B001140118C1206F212074D1207661207A1FF |
|||
:100F5B001207BA205803020FCA112C12053E11407A |
|||
:100F6B0011B71206F212074D1207661207A11207EC |
|||
:100F7B00F3205803020FCA112C1205E9114011DAA4 |
|||
:100F8B001206F212074D1207661207A11207BA12C8 |
|||
:100F9B00068B205803020FCA112C12068C1140111C |
|||
:100FAB00FD1206F212074D1207661207A1C25FC3AC |
|||
:100FBB00E54E94645009C3E53494F05002E10131DD |
|||
:0C0FCB0031E4F521F522F523F524A110F6 |
|||
:0F1A0000020007040401020303030301015AA5B6 |
|||
:101A400023585033412320202020202020202020F4 |
|||
:101A500023424C48454C4923463333302320202031 |
|||
:101A60002020202020202020202020202020202076 |
|||
:00000001FF |
@ -0,0 +1,267 @@ |
|||
:03000000020CD21D |
|||
:03000B0002008070 |
|||
:03002B000201D9F6 |
|||
:03005B000202A5F9 |
|||
:0300730002029BEB |
|||
:10008000C2AFC0D0C0E0D2D3758B00E4205A017358 |
|||
:1000900085248AC25AC3E52494FA5016C292C291AA |
|||
:1000A000C29020620201B27405D5E0FDD295D294CF |
|||
:1000B000D293D0E0D0D0C2D3D2AF3221C9C29120E6 |
|||
:1000C0006E02D292306E02D29021C9206E02C2908E |
|||
:1000D000306E02C292D29121C9206E02C292306E5D |
|||
:1000E00002C290206E02D290306E02D29221C97468 |
|||
:1000F00016206E02C295306E02C293206E02C29329 |
|||
:10010000306E02C295D5E0E9C291206E02D29230E3 |
|||
:100110006E02D29021C97416206E02C295306E0212 |
|||
:10012000C293C294D5E0F1C291206E02D292306E99 |
|||
:1001300002D29021C97416C294206E02C295306E0C |
|||
:1001400002C293D5E0F1206E02C290306E02C292DC |
|||
:10015000D29121C97416C294206E02C293306E02ED |
|||
:10016000C295D5E0F1206E02C290306E02C292D2EA |
|||
:100170009121C97416206E02C293306E02C295C2DC |
|||
:1001800094D5E0F1206E02C292306E02C290206ED1 |
|||
:1001900002D290306E02D29221C97416206E02C231 |
|||
:1001A00093306E02C295206E02C295306E02C293E9 |
|||
:1001B000D5E0E9206E02C292306E02C290206E023B |
|||
:1001C000D290306E02D29221C9D25AE524F4F58A37 |
|||
:1001D000D0E0D0D0C2D3D2AF32C2AFC0D0C0E0D214 |
|||
:1001E000D3C2CEE52760041527412478007900E5C5 |
|||
:1001F00080306F01F430E70278FA53DACF206F03D2 |
|||
:1002000043DA20306F0343DA10C2D8C261E5803090 |
|||
:100210006F01F430E70279FAC3E89970CE75274090 |
|||
:10022000884BD260E52960041529413143DA01C2C7 |
|||
:10023000D82060024156E54BF8C260C3E8955050A3 |
|||
:1002400005E550C333F8E52B54F0700A8821A8590E |
|||
:10025000B8030385212320CF09D0E0D0D0C2D3D268 |
|||
:10026000AF32C2CF7801E54BC394014005754E0013 |
|||
:100270004179E54E046002054EE559B40203853D1F |
|||
:1002800021C3E5229521600A4004152241900522F0 |
|||
:10029000D8E7D0E0D0D0C2D3D2AF32C2AF53917F33 |
|||
:1002A000C258D2AF32C2AFC0D0C0E0D2D3A8FBA9EF |
|||
:1002B000FCC2D830610241FE53DACF206F0343DA2B |
|||
:1002C00010306F0343DA20D261E580306F01F420F3 |
|||
:1002D000E70241DA8825892661CE53DACF206F0301 |
|||
:1002E00043DA20306F0343DA10C2D8C2617800E5E8 |
|||
:1002F00080306F01F430E70261C1884B61C153DA8D |
|||
:10030000CF206F0343DA20306F0343DA10C261203D |
|||
:100310005902617853DACF206F0343DA10306F034C |
|||
:1003200043DA20C2D8D2618849894AC3E89547F8A0 |
|||
:10033000E99548F9E4FBC3E89468E994015006E4C0 |
|||
:10034000D2E3FB6170C3E894D0E994025006E4D292 |
|||
:10035000E2FB6170C3E894A0E994055006E4D2E1A1 |
|||
:10036000FB6170C3E89440E9940B5004E4D2E0FBD5 |
|||
:10037000A849A94A88478948C3E89525F8E99526F8 |
|||
:10038000F9306B0261A5306A02619EE9C313F9E896 |
|||
:1003900013F8306902619EE9C313F9E813F8E9C361 |
|||
:1003A00013F9E813F8C3E894FAE99400400278FAE4 |
|||
:1003B000A94B884B20590261C1740FF4552D4BF5A0 |
|||
:1003C0002D752740D26030590261CE53DAFE75296F |
|||
:1003D00020D0E0D0D0C2D3D2AF32790161F279031C |
|||
:1003E00061F2790A61F2791E61F2796461F279C889 |
|||
:1003F00061F27817E4D5E0FDD8FAD9F6227A187BB5 |
|||
:100400007881157A157B8C81157A127BB481157AE7 |
|||
:100410000F7BC881157902B26EE4D294D5E0FD203D |
|||
:100420006E02D292306E02D290E540D5E0FD206E91 |
|||
:1004300002C292306E02C290E540D5E0FDD9D8EA02 |
|||
:10044000F8D5E0FDD8FBDBCDC29422E559B4030218 |
|||
:10045000818EC3E5339400E5349405401285212351 |
|||
:10046000E4F535F536F537F538F539F53E818EE5A5 |
|||
:0F04700022F43333F913F8E9540104F9E854FE88 |
|||
:10047F00C39440F8E99400F988358936753E012216 |
|||
:10048F00E53E6039C3E53413F9E53313F8C3E535B9 |
|||
:10049F0098F8E53699F930E70BC3E89480E994FFB3 |
|||
:1004AF00401381C8C3E8947FE99400500281C87853 |
|||
:1004BF007F790081C8788079FF883A893B22E53EB1 |
|||
:1004CF006052E537253AF8E538353BF9E539353BE4 |
|||
:1004DF00FA30E708C3EA94F04012A101C3EA940F7F |
|||
:1004EF005002A10178FF79FF7A0FA10178007900FE |
|||
:1004FF007AF0C3E523954F5009C3E52394014009D2 |
|||
:10050F00A11DE53A20E70DA11DE53A30E706883732 |
|||
:10051F0089388A3922E53E70030205CE853A20E4F8 |
|||
:10052F00300701F4F9C3E53A33F8E933F9E5573009 |
|||
:10053F00E002A154C3E5579404603AE9A2E713F926 |
|||
:10054F00E813F8A184E9FBE8FAEBA2E713FBEA133F |
|||
:10055F00FAE82AF8E93BF9E557C394056017E9A2D1 |
|||
:10056F00E713F9E813F8E557C394036008E9A2E726 |
|||
:10057F0013F9E813F8E930E70BC3E89480E994FF27 |
|||
:10058F004013A1A8C3E8947FE994005002A1A87872 |
|||
:10059F007F7900A1A8788079FFE820E713C3E522CF |
|||
:1005AF0098F84008C3E894014002A1CC7801A1CC8F |
|||
:1005BF00E8F424012522F84002A1CC78FF883C22E0 |
|||
:1005CF00E53E700302066FA838A939E55830E002FE |
|||
:1005DF00A1F2C3E5589404603AE9A2E713F9E813CE |
|||
:1005EF00F8C122E9FBE8FAEBA2E713FBEA13FAE8FA |
|||
:1005FF002AF8E93BF9E558C394056017E9A2E71318 |
|||
:10060F00F9E813F8E558C394036008E9A2E713F972 |
|||
:10061F00E813F8E930E70BC3E89400E994FF4013BF |
|||
:10062F00C146C3E894FFE994005002C14678FF79B0 |
|||
:10063F0000C146780079FFE920E713C3E53C98F83D |
|||
:10064F004008C3E894014002C16D7801C16DE8F420 |
|||
:10065F002401253CF8E934004002C16D78FF88235E |
|||
:10066F002275E890E5E820ECF8A8BDA9BE75527494 |
|||
:10067F00755300755101C3747433FA740033FBC39F |
|||
:10068F00E89AE99B401D8A528B53755102EA2474F4 |
|||
:10069F00FAEB3400FBC3E89AE99B40078A528B536D |
|||
:1006AF00755103AA52AB53C3E55313F9E55213F82F |
|||
:1006BF00C3E913F9E813F8C3E913F9E813F8C3E929 |
|||
:1006CF0013F9E813F8C3E913FDE813FCE82CF8E974 |
|||
:1006DF003DF9C3E55A94016009C3E55A9403600FCD |
|||
:1006EF00E108C3EA98FAEB99FB8A528B53E108EAC7 |
|||
:1006FF0028FAEB39FB8A528B532275E89022E5E8F2 |
|||
:10070F0020ECFBA8BDA9BEC3E894FFE994035011E8 |
|||
:10071F00C3E89552E995535008E54F600B154FE12B |
|||
:10072F0037E54FF46002054FA84FC3E523985002F9 |
|||
:10073F00A823882422305C027832305D0278503052 |
|||
:10074F005E027850305F027828E52B54F06027A9BD |
|||
:10075F005DB90302E17FC313855D28204002C313F7 |
|||
:10076F00204206C8C398F8E17F28F8500374FFF8B9 |
|||
:10077F00882188238824227545707546177AFF7B58 |
|||
:10078F003F8A438B448A3F8B407B1F8A418B428A2F |
|||
:10079F00348A3322A845A946E1ADA83FA9407591F7 |
|||
:1007AF0000C3E498F594E499F595759104D25875C2 |
|||
:1007BF00C820A8CCA9CD75C824AA31AB32883189FD |
|||
:1007CF0032C3E89AF8E99BF9AA33AB34C3EB13FDB4 |
|||
:1007DF00EA13FCC3ED13FDEC13FCC3EA9CFAEB9D8B |
|||
:1007EF00FBEA28FAEB39FB8A338B3440012275344C |
|||
:1007FF00FF7533FF223058020104759100C3E49551 |
|||
:10080F0041F594E49542F595759104D25822A93497 |
|||
:10081F00A8337A04C3E913F9E813F8DAF7C3E894B5 |
|||
:10082F000AF8E99400F94009C3E8940AE9940050E2 |
|||
:10083F0004780AE4F988438944883F8940C3E9135F |
|||
:10084F00F9E813F88841894222305802015875910E |
|||
:10085F0000C3E49533F594E49534F595759104D27E |
|||
:0E086F005822D2AF20580122E524F4C4C3134E |
|||
:10087D00540704F9D2AF0000C2AF306203305AF40E |
|||
:10088D00780D206D027804C3E58B9840F3E59BF459 |
|||
:10089D00F520300603020871D9F3D2AF22D2AF2072 |
|||
:1008AD00580122E524F4C4C313540704F9D2AF0050 |
|||
:1008BD0000C2AF306203305AF4780D206D02780417 |
|||
:1008CD00C3E58B9840F3E59BF4F520200603020861 |
|||
:1008DD00AAD9F3D2AF22759100C3E49543F594E400 |
|||
:1008ED009544F595759104D2582230580201F7229E |
|||
:1008FD00C2AF306203900173C294206E02D2953064 |
|||
:10090D006E02D293759F11D2AF22C2AF30620390A7 |
|||
:10091D0001542062039000CB206E02C290306E0213 |
|||
:10092D00C292305A02D291206E03759F01306E0330 |
|||
:10093D00759F21D2AF22C2AF306203900135206E78 |
|||
:10094D0002C295306E02C293206E02D293306E02B7 |
|||
:10095D00D295206E03759F21306E03759F01D2AF26 |
|||
:10096D0022C2AF3062039001162062039000BDC217 |
|||
:10097D0091305A0A206E02D292306E02D290759F3B |
|||
:10098D0011D2AF22C2AF3062039000EF206E02C2CF |
|||
:10099D0093306E02C295D294206E03759F01306E16 |
|||
:1009AD0003759F21D2AF22C2AF30620390019A200E |
|||
:1009BD0062039000D9206E02C292306E02C2903056 |
|||
:1009CD005A0A206E02D290306E02D292206E0375BA |
|||
:1009DD009F21306E03759F01D2AF229000BBC29252 |
|||
:1009ED00C291C290C295C294C29322C3E54594D0E0 |
|||
:1009FD00E5469407500122C3E545940AF8E546946F |
|||
:100A0D0000F9884589462230580241142275570451 |
|||
:100A1D00755804755901755A02755D03D26D7402CE |
|||
:100A2D0030E102C26DC26E740130E102D26EC26F4E |
|||
:100A3D00740130E102D26F22E493F822438F015307 |
|||
:100A4D008FFD75B7A575B7F1E8F0538FFE22438F73 |
|||
:100A5D0002438F0175B7A575B7F1901A0DF0538F3D |
|||
:100A6D00FC22901A0D78A55149901A0E785A5149C9 |
|||
:100A7D0022901A0D5145C3E894A57058901A0E5145 |
|||
:100A8D0045C3E8945A704D901A0351458857901AF2 |
|||
:100A9D000451458858901A0551458859901A0651A8 |
|||
:100AAD0045885A901A095145885D901A0A5145D2C8 |
|||
:100ABD006DE830E102C26D901A0B5145C26EE830FF |
|||
:100ACD00E102D26E901A0C5145C26FE830E102D2AC |
|||
:100ADD006F020AE6511A120B07227A307980901AAA |
|||
:100AED00405145E8F709A3DAF8227A307980901A57 |
|||
:100AFD0040E7F8514909A3DAF822C2AF51E7515B3B |
|||
:100B0D00901A0078025149901A0178005149901AB3 |
|||
:100B1D000278075149901A03A8575149901A04A811 |
|||
:100B2D00585149901A05A8595149901A06A85A5179 |
|||
:100B3D0049901A09A85D5149901A0A7801206D0251 |
|||
:100B4D0078025149901A0B7801306E0278025149A2 |
|||
:100B5D00901A0C7801306F027802514951F7516F9C |
|||
:100B6D0022AB54A855EBC39401602AEBC3940260E9 |
|||
:100B7D0029EBC394036028EBC394046027EBC39463 |
|||
:100B8D00056026EBC394066025EBC39407602AEB42 |
|||
:100B9D00C39408602F8857020BDC8858020BDC8841 |
|||
:100BAD0059020BDC885A020BDC885D020BDCD26D1E |
|||
:100BBD00E830E102C26D020BDCC26EE830E102D218 |
|||
:100BCD006E020BDCC26FE830E102D26F020BDC2249 |
|||
:100BDD007C051203EEDCFB22C2AF1203FD120403EF |
|||
:100BED0012040912040F1203E21203FD1204031280 |
|||
:100BFD00040912040F1203E21203FD12040312047E |
|||
:100C0D000912040FD2AF22AC54AD55C2AF1203FD81 |
|||
:100C1D001203FD1203FD1203E2DCF212040F1203A4 |
|||
:100C2D00E2DDF8D2AF22C2AF12040FD2AF1203EA47 |
|||
:100C3D00C3E54B940150EFC2AF1203FD1203E21254 |
|||
:100C4D0003FDD2AF1203EAC3E54B94FA40E971E517 |
|||
:100C5D0071DD71DD75540175550175560091147C6A |
|||
:0F0C6D00051203EEC3E54B9401500D716E710734 |
|||
:100C7C0071E5C2AF43EF1071DDDCE70556C3E556F5 |
|||
:100C8C009403500280D871DD05557805C3E5549462 |
|||
:100C9C000370027803C3E554940470027803C3E52F |
|||
:100CAC005494054002780208C3E55598500280AB75 |
|||
:100CBC0071DD71DD0554C3E554940950028099C26D |
|||
:100CCC00AF43EF1071DDC2D353D9BF7581C043B2AE |
|||
:100CDC0003E5B324044002F5B37580FF75900075ED |
|||
:100CEC00A40075A53F75A60175F19175F23F75D4F9 |
|||
:100CFC007F75D50075E24131E8E4F8F6D8FD511A5C |
|||
:100D0C00517E31E8758E01206D03758E007588500B |
|||
:100D1C0075890275C82475910475D8401203EE12BA |
|||
:100D2C0003FD1203E61204031203E6120409120374 |
|||
:100D3C00E675A82275B80275E69075F610759B805D |
|||
:100D4C0075D10175BCB875BB0675BA1175E880D242 |
|||
:100D5C00AF12067043DA01C2D8C2611203EED25947 |
|||
:100D6C007A051203DE3060FDE54BC3940240F1E5D9 |
|||
:100D7C002D540F854D4CF54DB54CE5DAE5C2595364 |
|||
:100D8C00DACF206F0343DA20306F0343DA10C2D876 |
|||
:100D9C00C261C2AF1203FD1203FD1203FDD2AF12EA |
|||
:100DAC0003EE753D001203DEC3E54B94FA4002815D |
|||
:100DBC0033C3E54B953D4003854B3DC3E54B940157 |
|||
:100DCC0050E3C2AF12040F12040F12040FD2AF1271 |
|||
:100DDC0003EE1203DEC3E54B940140F631E8E4F573 |
|||
:100DEC0021F522F523F524754FFF855C50306E02FA |
|||
:100DFC00F535F536F537F538F539F53EF52BF54E75 |
|||
:100E0C00120786D262D25C12074431B41203DA1193 |
|||
:100E1C00FD1203DA1203DA31171203DE3143120327 |
|||
:100E2C00DE1203DE316E1203E231911203DE120385 |
|||
:100E3C00DAC25CD25D12074431B41207A3111D3122 |
|||
:100E4C00F8511411FD1207A3111D31F8511431176B |
|||
:100E5C001207A3111D31F8511431431207A3111DB0 |
|||
:100E6C0031F85114316E1207A3111D31F8511431A0 |
|||
:100E7C00911207A3111D31F8C3E54594D0E54694B2 |
|||
:100E8C00074004511480B1C25DD25E120744753024 |
|||
:100E9C0002511431B41207A3111D31F8511411FD74 |
|||
:100EAC001207A3111D31F8511431171207A3111D8C |
|||
:100EBC0031F8511431431207A3111D31F85114317B |
|||
:100ECC006E1207A3111D31F8511431911207A311A1 |
|||
:100EDC001D31F8E530146006F530511480B5C25E52 |
|||
:100EEC00D25F120744511431B41207A91104111D19 |
|||
:100EFC00115875300111AA20580302106E11E3111C |
|||
:100F0C00F711FD1207A91104111D11581171205868 |
|||
:100F1C000302106E11E311F731171207A911041116 |
|||
:100F2C001D115811AA20580302106E11E311F7314C |
|||
:100F3C00431207A91104111D1158117120580302F5 |
|||
:100F4C00106E11E311F7316E1207A91104111D1166 |
|||
:100F5C005811AA20580302106E11E311F7319112A7 |
|||
:100F6C0007A91104111D1158117120580302106E9C |
|||
:100F7C0011E311F731B41207A91104111D1158E531 |
|||
:100F8C0030146004F530E101206C11C2AFC262C2B2 |
|||
:100F9C0095C294C293D2949000D9D2AF11AA205882 |
|||
:100FAC000302106E11E312044B11F711FD1207A985 |
|||
:100FBC001104111D1158117120580302106E11E308 |
|||
:100FCC0012048F11F731171207A91104111D1158B2 |
|||
:100FDC0011AA20580302106E11E31204CD11F7313F |
|||
:100FEC00431207A91104111D115811712058030245 |
|||
:100FFC00106E1208E31205241208F712096E12077C |
|||
:10100C00A912080412081D1208581208AA20580325 |
|||
:10101C0002106E1208E31205CF1208F71209911292 |
|||
:10102C0007A912080412081D120858120871120799 |
|||
:10103C000920580302106E1208E312070D1208F76C |
|||
:10104C001209B41207A912080412081D120858C27A |
|||
:10105C005FC3E54E9401500AC3E53494F05003028B |
|||
:0E106C000FA81209E8E4F521F522F523F5247A |
|||
:03107A00020D6CF8 |
|||
:0F1A000002000704040102030303020101A55AB7 |
|||
:101A400023585037412320202020202020202020F0 |
|||
:101A500023424C48454C4923463333302320202031 |
|||
:101A60002020202020202020202020202020202076 |
|||
:00000001FF |
@ -0,0 +1,256 @@ |
|||
:03000000020C04EB |
|||
:03000B0002008070 |
|||
:03002B000201D9F6 |
|||
:03005B000202BFDF |
|||
:030073000202B5D1 |
|||
:10008000C2AFC0D0C0E0D2D3758B00E4205A017358 |
|||
:1000900085248AC25AC3E52494FA5016C292C291AA |
|||
:1000A000C29020620201B27405D5E0FDD295D294CF |
|||
:1000B000D293D0E0D0D0C2D3D2AF3221C9C29120E6 |
|||
:1000C0006E02D292306E02D29021C9206E02C2908E |
|||
:1000D000306E02C292D29121C9206E02C292306E5D |
|||
:1000E00002C290206E02D290306E02D29221C97468 |
|||
:1000F00016206E02C295306E02C293206E02C29329 |
|||
:10010000306E02C295D5E0E9C291206E02D29230E3 |
|||
:100110006E02D29021C97416206E02C295306E0212 |
|||
:10012000C293C294D5E0F1C291206E02D292306E99 |
|||
:1001300002D29021C97416C294206E02C295306E0C |
|||
:1001400002C293D5E0F1206E02C290306E02C292DC |
|||
:10015000D29121C97416C294206E02C293306E02ED |
|||
:10016000C295D5E0F1206E02C290306E02C292D2EA |
|||
:100170009121C97416206E02C293306E02C295C2DC |
|||
:1001800094D5E0F1206E02C292306E02C290206ED1 |
|||
:1001900002D290306E02D29221C97416206E02C231 |
|||
:1001A00093306E02C295206E02C295306E02C293E9 |
|||
:1001B000D5E0E9206E02C292306E02C290206E023B |
|||
:1001C000D290306E02D29221C9D25AE524F4F58A37 |
|||
:1001D000D0E0D0D0C2D3D2AF32C2AFC0D0C0E0D214 |
|||
:1001E000D3C2CEE52760041527412478007900E5C5 |
|||
:1001F00080306F01F430E70278FA53DACF206F03D2 |
|||
:1002000043DA20306F0343DA10C2D8C261E5803090 |
|||
:100210006F01F430E70279FAC3E89970CE752718B8 |
|||
:10022000884BD260E52960041529413143DA01C2C7 |
|||
:10023000D82060024189E54BF8C260C394F04003C6 |
|||
:1002400074F0F8C4540F28F8A95BB90302416BC3DA |
|||
:1002500013C313855B28204002C313204206C8C382 |
|||
:1002600098F8416B28F8500374FFF8C3E895505094 |
|||
:1002700005E550C333F8E52B54F0700D8821A859DB |
|||
:10028000B8030685212385212420CF09D0E0D0D0D2 |
|||
:10029000C2D3D2AF32C2CF7801E54BC3940140053F |
|||
:1002A000754E0041ACE54E046002054ED0E0D0D062 |
|||
:1002B000C2D3D2AF32C2AF53917FC258D2AF32C293 |
|||
:1002C000AFC0D0C0E0D2D3A8FBA9FCC2D830610235 |
|||
:1002D000611853DACF206F0343DA10306F0343DA2B |
|||
:1002E00020D261E580306F01F420E70241F48825D7 |
|||
:1002F000892661E853DACF206F0343DA20306F0399 |
|||
:1003000043DA10C2D8C2617800E580306F01F43062 |
|||
:10031000E70261DB884B61DB53DACF206F0343DAFE |
|||
:1003200020306F0343DA10C261205902619253DA20 |
|||
:10033000CF206F0343DA10306F0343DA20C2D8D2E4 |
|||
:10034000618849894AC3E89547F8E99548F9E4FB8B |
|||
:10035000C3E89468E994015006E4D2E3FB618AC3E0 |
|||
:10036000E894D0E994025006E4D2E2FB618AC3E843 |
|||
:1003700094A0E994055006E4D2E1FB618AC3E894B5 |
|||
:1003800040E9940B5004E4D2E0FBA849A94A88470D |
|||
:100390008948C3E89525F8E99526F9306B0261BFD5 |
|||
:1003A000306A0261B8E9C313F9E813F830690261F1 |
|||
:1003B000B8E9C313F9E813F8E9C313F9E813F8C36C |
|||
:1003C000E894FAE99400400278FAA94B884B205946 |
|||
:1003D0000261DB740FF4552D4BF52D752718D26093 |
|||
:1003E00030590261E853DAFE752906D0E0D0D0C258 |
|||
:1003F000D3D2AF327901810C7903810C790A810C57 |
|||
:10040000791E810C7964810C79C8810C7817E4D548 |
|||
:10041000E0FDD8FAD9F6227A187B78812F7A157BFD |
|||
:100420008C812F7A127BB4812F7A0F7BC8812F7930 |
|||
:1004300002B26EE4D294D5E0FD206E02D292306E0C |
|||
:1004400002D290E540D5E0FD206E02C292306E02ED |
|||
:10045000C290E540D5E0FDD9D8EAF8D5E0FDD8FB5B |
|||
:10046000DBCDC29422E559B4030281A8C3E53394DD |
|||
:0F04700000E53494054012852123E4F535F53677 |
|||
:10047F00F537F538F539F53E81A8E522F43333F930 |
|||
:10048F0013F8E9540104F9E854FEC39440F8E994D1 |
|||
:10049F0000F988358936753E0122E53E6039C3E59E |
|||
:1004AF003413F9E53313F8C3E53598F8E53699F9C0 |
|||
:1004BF0030E70BC3E89480E994FF401381E2C3E86F |
|||
:1004CF00947FE99400500281E2787F790081E2788D |
|||
:1004DF008079FF883A893B22E53E6052E537253A1D |
|||
:1004EF00F8E538353BF9E539353BFA30E708C3EA2B |
|||
:1004FF0094F04012A11BC3EA940F5002A11B78FF86 |
|||
:10050F0079FF7A0FA11B780079007AF0C3E5239564 |
|||
:10051F004F5009C3E52394014009A137E53A20E77D |
|||
:10052F000DA137E53A30E706883789388A3922E551 |
|||
:10053F003E70030205E8853A20E4300701F4F9C361 |
|||
:10054F00E53A33F8E933F9E55730E002A16EC3E538 |
|||
:10055F00579404603AE9A2E713F9E813F8A19EE96A |
|||
:10056F00FBE8FAEBA2E713FBEA13FAE82AF8E93BF8 |
|||
:10057F00F9E557C394056017E9A2E713F9E813F8F3 |
|||
:10058F00E557C394036008E9A2E713F9E813F8E904 |
|||
:10059F0030E70BC3E89480E994FF4013A1C2C3E88E |
|||
:1005AF00947FE994005002A1C2787F7900A1C278AC |
|||
:1005BF008079FFE820E713C3E52298F84008C3E8E5 |
|||
:1005CF0094014002A1E67801A1E6E8F42401252276 |
|||
:1005DF00F84002A1E678FF883C22E53E7003020650 |
|||
:1005EF0089A838A939E55830E002C10CC3E5589401 |
|||
:1005FF0004603AE9A2E713F9E813F8C13CE9FBE814 |
|||
:10060F00FAEBA2E713FBEA13FAE82AF8E93BF9E55C |
|||
:10061F0058C394056017E9A2E713F9E813F8E558F2 |
|||
:10062F00C394036008E9A2E713F9E813F8E930E788 |
|||
:10063F000BC3E89400E994FF4013C160C3E894FF33 |
|||
:10064F00E994005002C16078FF7900C160780079A9 |
|||
:10065F00FFE920E713C3E53C98F84008C3E894018D |
|||
:10066F004002C1877801C187E8F42401253CF8E9ED |
|||
:10067F0034004002C18778FF882322222222305C77 |
|||
:10068F00027832305D027878305E027850305F0247 |
|||
:10069F007828E52B54F06027A95DB90302C1C8C3C0 |
|||
:1006AF0013855D28204002C313204206C8C398F863 |
|||
:1006BF00C1C828F8500374FFF888218823882422A2 |
|||
:1006CF007545707546177AFF7B3F8A438B448A3F87 |
|||
:1006DF008B407B1F8A418B428A348A3322A845A9DB |
|||
:1006EF0046C1F6A83FA940759100C3E498F594E47C |
|||
:1006FF0099F595759104D25875C820A8CCA9CD75D8 |
|||
:10070F00C824AA31AB3288318932C3E89AF8E99B01 |
|||
:10071F00F9AA33AB34C3EB13FDEA13FCC3ED13FD9E |
|||
:10072F00EC13FCC3EA9CFAEB9DFBEA28FAEB39FBCE |
|||
:10073F008A338B344001227534FF7533FF223058D2 |
|||
:10074F0002E14D759100C3E49541F594E49542F5AE |
|||
:10075F0095759104D25822A934A8337A04C3E913AA |
|||
:10076F00F9E813F8DAF7C3E8940AF8E99400F940C6 |
|||
:10077F0009C3E8940AE994005004780AE4F988431D |
|||
:10078F008944883F8940C3E913F9E813F888418900 |
|||
:10079F004222305802E1A1759100C3E49533F594DC |
|||
:1007AF00E49534F595759104D25822D2AF205801B3 |
|||
:1007BF0022E524F4C4C313540704F9D2AF0000C2D6 |
|||
:1007CF00AF306203305AF4780D206D027804C3E520 |
|||
:1007DF008B9840F3E59BF4F5203006030207BAD956 |
|||
:1007EF00F3D2AF22D2AF20580122E524F4C4C313B1 |
|||
:1007FF00540704F9D2AF0000C2AF306203305AF48D |
|||
:10080F00780D206D027804C3E58B9840F3E59BF4D7 |
|||
:10081F00F5202006030207F3D9F3D2AF227591001A |
|||
:10082F00C3E49543F594E49544F595759104D25836 |
|||
:10083F0022305802014022C2AF306203900173C2CE |
|||
:10084F0094206E02D295306E02D293759F11D2AF63 |
|||
:10085F0022C2AF3062039001542062039000CB207C |
|||
:0E086F006E02C290306E02C292305A02D291D6 |
|||
:10087D00206E03759F01306E03759F21D2AF22C28A |
|||
:10088D00AF306203900135206E02C295306E02C208 |
|||
:10089D0093206E02D293306E02D295206E03759F17 |
|||
:1008AD0021306E03759F01D2AF22C2AF306203902B |
|||
:1008BD0001162062039000BDC291305A0A206E02CB |
|||
:1008CD00D292306E02D290759F11D2AF22C2AF304C |
|||
:1008DD0062039000EF206E02C293306E02C295D279 |
|||
:1008ED0094206E03759F01306E03759F21D2AF2248 |
|||
:1008FD00C2AF30620390019A2062039000D9206E3E |
|||
:10090D0002C292306E02C290305A0A206E02D2900C |
|||
:10091D00306E02D292206E03759F21306E03759F4B |
|||
:10092D0001D2AF229000BBC292C291C290C295C2B9 |
|||
:10093D0094C29322C3E54594D0E546940750012215 |
|||
:10094D00C3E545943CF8E5469400F988458946226F |
|||
:10095D00305802215D22755B03755C03755D03C222 |
|||
:10096D006D740130E002D26DC26CC374019403400A |
|||
:10097D0002D26CC26E740130E102D266C26F740194 |
|||
:10098D0030E102D26F75590322E493F822438F01AF |
|||
:10099D00538FFD75B7A575B7F1E8F0538FFE224360 |
|||
:1009AD008F02438F0175B7A575B7F1901A0DF053EE |
|||
:1009BD008FFC22901A0D785A319A901A0E78A53123 |
|||
:1009CD009A22901A0D3196C3E8945A7057901A0EC8 |
|||
:1009DD003196C3E894A5704C901A073196885B90B8 |
|||
:1009ED001A083196885C901A093196885D901A0A1A |
|||
:1009FD003196C26DE830E002D26DC26CC3E894034B |
|||
:100A0D004002D26C901A0B3196C26EE830E102D2E0 |
|||
:100A1D006E901A0C3196C26FE830E102D26F7559A3 |
|||
:100A2D0003020A363163120A57227A307980901AFE |
|||
:100A3D00403196E8F709A3DAF8227A307980901AD6 |
|||
:100A4D0040E7F8319A09A3DAF822C2AF513731AC39 |
|||
:100A5D00901A007802319A901A017800319A901A02 |
|||
:100A6D00027807319A901A07A85B319A901A08A854 |
|||
:100A7D005C319A901A09A85D319A901A0A78012072 |
|||
:100A8D006D027802306C027803319A901A0B78015E |
|||
:100A9D00306E027802319A901A0C7801306F02781C |
|||
:100AAD0002319A514731C022AB54A855EBC3940182 |
|||
:100ABD00601EEBC39402601DEBC39403601CEBC37B |
|||
:100ACD009404601BEBC39405602AEBC39406602F5E |
|||
:100ADD00885B020B17885C020B17885D020B17C22F |
|||
:100AED006DE830E002D26DC26CC3E894034002D2CF |
|||
:100AFD006C020B17C26EE830E102D26E020B17C208 |
|||
:100B0D006FE830E102D26F020B17227C0512040848 |
|||
:100B1D00DCFB22C2AF12041712041D1204231204AF |
|||
:100B2D00291203FC12041712041D120423120429A6 |
|||
:100B3D001203FC12041712041D120423120429D2ED |
|||
:100B4D00AF22AC54AD55C2AF1204171204171204E4 |
|||
:100B5D00171203FCDCF21204291203FCDDF8D2AFEC |
|||
:100B6D0022C2AF120429D2AF120404C3E54B940183 |
|||
:100B7D0050EFC2AF1204171203FC120417D2AF12BA |
|||
:100B8D000404C3E54B94FA40E9712071187118758E |
|||
:100B9D005401755501755600714F7C05120408C33B |
|||
:100BAD00E54B9401500D51B551577120C2AF43EF34 |
|||
:100BBD00107118DCE70556C3E5569403500280D832 |
|||
:100BCD00711805557805C3E554940440027803C3A4 |
|||
:100BDD00E55494044002780208C3E555985002800C |
|||
:100BED00B4711871180554C3E5549407500280A2CE |
|||
:100BFD00C2AF43EF107118C2D353D9BF7581C04333 |
|||
:100C0D00B203E5B324044002F5B37580FF7590007F |
|||
:100C1D0075A40075A53F75A60175F19175F23F7527 |
|||
:100C2D00D47F75D50075E2413131E4F8F6D8FD3148 |
|||
:100C3D006331CF3131758E01206D03758E0075884E |
|||
:100C4D005075890275C82475910475D84012040831 |
|||
:100C5D0012041712040012041D12040012042312B0 |
|||
:0E0C6D00040075A82275B80275E69075F610A1 |
|||
:100C7B00759B8075D10175BCB875BB0675BA1175BE |
|||
:100C8B00E880D2AF12068A43DA01C2D8C2611204DD |
|||
:100C9B0008D2597A051203F83060FDE54BC3940274 |
|||
:100CAB0040F1E52D540F854D4CF54DB54CE5DAE58E |
|||
:100CBB00C25953DACF206F0343DA20306F0343DA84 |
|||
:100CCB0010C2D8C261C2AF12041712041712041754 |
|||
:100CDB00D2AF120408753D001203F8C3E54B94FA2A |
|||
:100CEB004002616EC3E54B953D4003854B3DC3E52B |
|||
:100CFB004B940150E3C2AF120429120429120429A8 |
|||
:100D0B00D2AF1204081203F8C3E54B940140F6313D |
|||
:100D1B0031E4F521F522F523F524754FFF855C5061 |
|||
:100D2B00306E02F535F536F537F538F539F53EF514 |
|||
:100D3B002BF54E1206CFD262D25C12068D11FD122C |
|||
:100D4B0003F411461203F41203F411601203F811A9 |
|||
:100D5B008C1203F81203F811B71203FC11DA120309 |
|||
:100D6B00F81203F4C25CD25D12068D11FD1206EC73 |
|||
:100D7B001207663141315D11461206EC12076631DE |
|||
:100D8B0041315D11601206EC1207663141315D1184 |
|||
:100D9B008C1206EC1207663141315D11B71206EC6D |
|||
:100DAB001207663141315D11DA1206EC120766311A |
|||
:100DBB0041C3E54594D0E54694074004315D80ABD3 |
|||
:100DCB00C25DD25E12068D753002315D11FD1206C9 |
|||
:100DDB00EC1207663141315D11461206EC120766C3 |
|||
:100DEB003141315D11601206EC1207663141315D04 |
|||
:100DFB00118C1206EC1207663141315D11B71206E8 |
|||
:100E0B00EC1207663141315D11DA1206EC120766FE |
|||
:100E1B003141E530146006F530315D80AFC25ED2F2 |
|||
:100E2B005F12068D315D11FD1206F212074D12078E |
|||
:100E3B00661207A17530011207F3205803020FCA7F |
|||
:100E4B00112C114011461206F212074D12076612B1 |
|||
:100E5B0007A11207BA205803020FCA112C11401117 |
|||
:100E6B00601206F212074D1207661207A11207F362 |
|||
:100E7B00205803020FCA112C1140118C1206F212CA |
|||
:100E8B00074D1207661207A11207BA205803020F6B |
|||
:100E9B00CA112C114011B71206F212074D12076638 |
|||
:100EAB001207A11207F3205803020FCA112C11408D |
|||
:100EBB0011DA1206F212074D1207661207A112077A |
|||
:100ECB00BA205803020FCA112C114011FD1206F261 |
|||
:100EDB0012074D1207661207A1E530146004F530B6 |
|||
:100EEB00C142206C11C2AFC262C295C294C293D2EE |
|||
:100EFB00949000D9D2AF1207F3205803020FCA11F6 |
|||
:100F0B002C120465114011461206F212074D1207FE |
|||
:100F1B00661207A11207BA205803020FCA112C122E |
|||
:100F2B0004A9114011601206F212074D1207661246 |
|||
:100F3B0007A11207F3205803020FCA112C1204E762 |
|||
:100F4B001140118C1206F212074D1207661207A1FF |
|||
:100F5B001207BA205803020FCA112C12053E11407A |
|||
:100F6B0011B71206F212074D1207661207A11207EC |
|||
:100F7B00F3205803020FCA112C1205E9114011DAA4 |
|||
:100F8B001206F212074D1207661207A11207BA12C8 |
|||
:100F9B00068B205803020FCA112C12068C1140111C |
|||
:100FAB00FD1206F212074D1207661207A1C25FC3AC |
|||
:100FBB00E54E94645009C3E53494F05002E10131DD |
|||
:0C0FCB0031E4F521F522F523F524A110F6 |
|||
:0F1A0000020007040401020303030101015AA5B8 |
|||
:101A400023585037412320202020202020202020F0 |
|||
:101A500023424C48454C4923463333302320202031 |
|||
:101A60002020202020202020202020202020202076 |
|||
:00000001FF |
@ -0,0 +1,31 @@ |
|||
This tree contains the BLHeli assembly code for sensorless brushless motor electronic speed control (ESC) boards. |
|||
It is designed specifically for use with Eflite mCP X, but may also be used on other copters/planes. |
|||
|
|||
This tree contains SiLabs assembly code for SiLabs MCU based ESCs. |
|||
|
|||
Features and Changes |
|||
-------------------- |
|||
- Can be configured for main motor or tail motor operation |
|||
- Main motor operation has governor functionality |
|||
- Tail motor operation can be damped for fast motor retardation |
|||
- Many parmeters can be programmed from the TX |
|||
- Supports 1kHz, 2kHz, 4kHz or 8kHz positive or negative pwm as input signal |
|||
|
|||
Supported Hardware |
|||
------------------ |
|||
- DP 3A |
|||
- Supermicro 3.5A |
|||
- XP 3A |
|||
- XP 7A |
|||
- XP 12A |
|||
- Turnigy 6A |
|||
|
|||
Installation and use |
|||
-------------------- |
|||
The software is written and debugged in the SiLabs IDE. |
|||
Compilation is done using Raisonance Ride7 and Rkit-51 toolchain. |
|||
|
|||
For more information, check out this thread: |
|||
|
|||
http://www.helifreak.com/showthread.php?t=390517 |
|||
|
@ -0,0 +1,256 @@ |
|||
;**** **** **** **** **** |
|||
; |
|||
; BLHeli program for controlling brushless motors in helicopters |
|||
; |
|||
; Copyright 2011, 2012 Steffen Skaug |
|||
; This program is distributed under the terms of the GNU General Public License |
|||
; |
|||
; This file is part of BLHeli. |
|||
; |
|||
; BLHeli is free software: you can redistribute it and/or modify |
|||
; it under the terms of the GNU General Public License as published by |
|||
; the Free Software Foundation, either version 3 of the License, or |
|||
; (at your option) any later version. |
|||
; |
|||
; BLHeli is distributed in the hope that it will be useful, |
|||
; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
; GNU General Public License for more details. |
|||
; |
|||
; You should have received a copy of the GNU General Public License |
|||
; along with BLHeli. If not, see <http://www.gnu.org/licenses/>. |
|||
; |
|||
;**** **** **** **** **** |
|||
; |
|||
; Supermicro 3.5A hardware definition file |
|||
; |
|||
;**** **** **** **** **** |
|||
|
|||
|
|||
|
|||
;********************* |
|||
; Device SiLabs F330 |
|||
;********************* |
|||
$include (c8051f330.inc) |
|||
|
|||
;**** **** **** **** **** |
|||
; Uses internal calibrated oscillator set to 24Mhz |
|||
;**** **** **** **** **** |
|||
|
|||
;**** **** **** **** **** |
|||
; Constant definitions |
|||
;**** **** **** **** **** |
|||
CSEG AT 1A40h |
|||
Eep_ESC_Layout: DB "#Supermicro3p5A#" ; ESC layout tag |
|||
DAMPED_TAIL_ENABLE EQU 1 ; Damped tail mode enabled |
|||
NFETON_DELAY EQU 2 ; Wait delay from pfets off to nfets on |
|||
PFETON_DELAY EQU 1 ; Wait delay from nfets off to pfets on |
|||
ADC_LIMIT_L EQU 128 ; Power supply measurement ADC value for which main motor power is limited (low byte) |
|||
ADC_LIMIT_H EQU 2 ; Power supply measurement ADC value for which main motor power is limited (2 MSBs) |
|||
|
|||
|
|||
;********************* |
|||
; PORT 0 definitions * |
|||
;********************* |
|||
; EQU 7 ;i |
|||
Rcp_In EQU 6 ;i |
|||
Mux_A EQU 5 ;i |
|||
; EQU 4 ;i |
|||
Mux_B EQU 3 ;i |
|||
Comp_Com EQU 2 ;i |
|||
Mux_C EQU 1 ;i |
|||
; EQU 0 ;i |
|||
|
|||
P0_DIGITAL EQU NOT((1 SHL Mux_A)+(1 SHL Mux_B)+(1 SHL Mux_C)+(1 SHL Comp_Com)) |
|||
P0_INIT EQU 0FFh |
|||
P0_PUSHPULL EQU 0 |
|||
P0_SKIP EQU NOT(1 SHL Rcp_In) AND 0FFh |
|||
|
|||
MACRO Read_Rcp_Int |
|||
mov A, P0 |
|||
jnb Flags2.PGM_RCP_PWM_POL, ($+4) ; Is pwm polarity negative? |
|||
cpl A ; Yes - invert |
|||
ENDM |
|||
MACRO Rcp_Int_Enable |
|||
orl PCA0CPM0, #01h ; Interrupt enabled |
|||
ENDM |
|||
MACRO Rcp_Int_Disable |
|||
anl PCA0CPM0, #0FEh ; Interrupt disabled |
|||
ENDM |
|||
MACRO Rcp_Int_First |
|||
anl PCA0CPM0, #0CFh |
|||
jb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity positive? |
|||
orl PCA0CPM0, #20h ; Capture rising edge |
|||
jnb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity negative? |
|||
orl PCA0CPM0, #10h ; Capture falling edge |
|||
ENDM |
|||
MACRO Rcp_Int_Second |
|||
anl PCA0CPM0, #0CFh |
|||
jb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity positive? |
|||
orl PCA0CPM0, #10h ; Capture falling edge |
|||
jnb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity negative? |
|||
orl PCA0CPM0, #20h ; Capture rising edge |
|||
ENDM |
|||
MACRO Rcp_Clear_Int_Flag |
|||
clr CCF0 ; Clear interrupt flag |
|||
ENDM |
|||
|
|||
|
|||
;********************* |
|||
; PORT 1 definitions * |
|||
;********************* |
|||
Ref_Gnd EQU 7 ;o |
|||
Adc_Ip EQU 6 ;i |
|||
CpFET EQU 5 ;o |
|||
BpFET EQU 4 ;o |
|||
ApFET EQU 3 ;o |
|||
CnFET EQU 2 ;o |
|||
BnFET EQU 1 ;i |
|||
AnFET EQU 0 ;i |
|||
|
|||
P1_DIGITAL EQU (1 SHL AnFET)+(1 SHL BnFET)+(1 SHL CnFET)+(1 SHL ApFET)+(1 SHL BpFET)+(1 SHL CpFET)+(1 SHL Ref_Gnd) |
|||
P1_INIT EQU (1 SHL ApFET)+(1 SHL BpFET)+(1 SHL CpFET)+(1 SHL Adc_Ip) ; Setting pFET outputs turn them off |
|||
P1_PUSHPULL EQU (1 SHL AnFET)+(1 SHL BnFET)+(1 SHL CnFET)+(1 SHL ApFET)+(1 SHL BpFET)+(1 SHL CpFET) |
|||
P1_SKIP EQU 0 |
|||
|
|||
MACRO AnFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.AnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CnFET |
|||
ENDM |
|||
MACRO AnFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.AnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CnFET |
|||
ENDM |
|||
MACRO BnFET_on |
|||
setb P1.BnFET |
|||
ENDM |
|||
MACRO BnFET_off |
|||
clr P1.BnFET |
|||
ENDM |
|||
MACRO CnFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.AnFET |
|||
ENDM |
|||
MACRO CnFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.AnFET |
|||
ENDM |
|||
MACRO All_nFETs_Off |
|||
clr P1.AnFET |
|||
clr P1.BnFET |
|||
clr P1.CnFET |
|||
ENDM |
|||
|
|||
MACRO ApFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.ApFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CpFET |
|||
ENDM |
|||
MACRO ApFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.ApFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CpFET |
|||
ENDM |
|||
MACRO BpFET_on |
|||
clr P1.BpFET |
|||
ENDM |
|||
MACRO BpFET_off |
|||
setb P1.BpFET |
|||
ENDM |
|||
MACRO CpFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CpFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.ApFET |
|||
ENDM |
|||
MACRO CpFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CpFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.ApFET |
|||
ENDM |
|||
MACRO All_pFETs_Off |
|||
setb P1.ApFET |
|||
setb P1.BpFET |
|||
setb P1.CpFET |
|||
ENDM |
|||
MACRO All_pFETs_On |
|||
clr P1.ApFET |
|||
clr P1.BpFET |
|||
clr P1.CpFET |
|||
ENDM |
|||
|
|||
MACRO Set_Comp_Phase_A |
|||
jb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #21h ; Set comparator multiplexer to phase A |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #01h |
|||
ENDM |
|||
MACRO Set_Comp_Phase_B |
|||
mov CPT0MX, #11h ; Set comparator multiplexer to phase B |
|||
ENDM |
|||
MACRO Set_Comp_Phase_C |
|||
jb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #01h ; Set comparator multiplexer to phase C |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #21h |
|||
ENDM |
|||
MACRO Read_Comp_Out |
|||
mov A, CPT0CN ; Read comparator output |
|||
cpl A ; Invert output |
|||
ENDM |
|||
|
|||
|
|||
;********************* |
|||
; PORT B definitions * |
|||
;********************* |
|||
DebugPin EQU 0 ;o |
|||
|
|||
P2_PUSHPULL EQU (1 SHL DebugPin) |
|||
|
|||
|
|||
;********************** |
|||
; MCU specific macros * |
|||
;********************** |
|||
MACRO Interrupt_Table_Definition |
|||
CSEG AT 0 ; Code segment start |
|||
jmp reset |
|||
CSEG AT 0Bh ; Timer0 interrupt |
|||
jmp t0_int |
|||
CSEG AT 2Bh ; Timer2 interrupt |
|||
jmp t2_int |
|||
CSEG AT 5Bh ; PCA interrupt |
|||
jmp pca_int |
|||
CSEG AT 73h ; Timer3 interrupt |
|||
jmp t3_int |
|||
ENDM |
|||
|
|||
MACRO Initialize_Adc |
|||
mov REF0CN, #01h ; Enable reference buffer |
|||
mov ADC0CF, #0B8h ; ADC clock 1MHz |
|||
mov AMX0P, #(8+Adc_Ip) ; Select positive input |
|||
mov AMX0N, #11h ; Select negative input as ground |
|||
mov ADC0CN, #80h ; ADC enabled |
|||
ENDM |
|||
MACRO Start_Adc |
|||
mov ADC0CN, #90h ; ADC start |
|||
ENDM |
|||
MACRO Get_Adc_Status |
|||
mov A, ADC0CN |
|||
ENDM |
|||
MACRO Read_Adc_Result |
|||
mov Temp1, ADC0L |
|||
mov Temp2, ADC0H |
|||
ENDM |
|||
MACRO Stop_Adc |
|||
ENDM |
@ -0,0 +1,255 @@ |
|||
;**** **** **** **** **** |
|||
; |
|||
; BLHeli program for controlling brushless motors in helicopters |
|||
; |
|||
; Copyright 2011, 2012 Steffen Skaug |
|||
; This program is distributed under the terms of the GNU General Public License |
|||
; |
|||
; This file is part of BLHeli. |
|||
; |
|||
; BLHeli is free software: you can redistribute it and/or modify |
|||
; it under the terms of the GNU General Public License as published by |
|||
; the Free Software Foundation, either version 3 of the License, or |
|||
; (at your option) any later version. |
|||
; |
|||
; BLHeli is distributed in the hope that it will be useful, |
|||
; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
; GNU General Public License for more details. |
|||
; |
|||
; You should have received a copy of the GNU General Public License |
|||
; along with BLHeli. If not, see <http://www.gnu.org/licenses/>. |
|||
; |
|||
;**** **** **** **** **** |
|||
; |
|||
; Turnigy 6A hardware definition file |
|||
; |
|||
;**** **** **** **** **** |
|||
|
|||
|
|||
|
|||
;********************* |
|||
; Device SiLabs F330 |
|||
;********************* |
|||
$include (c8051f330.inc) |
|||
|
|||
;**** **** **** **** **** |
|||
; Uses internal calibrated oscillator set to 24Mhz |
|||
;**** **** **** **** **** |
|||
|
|||
;**** **** **** **** **** |
|||
; Constant definitions |
|||
;**** **** **** **** **** |
|||
CSEG AT 1A40h |
|||
Eep_ESC_Layout: DB "#Turnigy6A# " ; ESC layout tag |
|||
DAMPED_TAIL_ENABLE EQU 0 ; Damped tail mode disabled |
|||
NFETON_DELAY EQU 22 ; Wait delay from pfets off to nfets on |
|||
PFETON_DELAY EQU 12 ; Wait delay from nfets off to pfets on |
|||
ADC_LIMIT_L EQU 136 ; Power supply measurement ADC value for which main motor power is limited (low byte) |
|||
ADC_LIMIT_H EQU 1 ; Power supply measurement ADC value for which main motor power is limited (2 MSBs) |
|||
|
|||
|
|||
;********************* |
|||
; PORT 0 definitions * |
|||
;********************* |
|||
; EQU 7 ;i |
|||
Mux_B EQU 6 ;i |
|||
Rcp_In EQU 5 ;i |
|||
; EQU 4 ;i |
|||
Comp_Com EQU 3 ;i |
|||
Mux_A EQU 2 ;i |
|||
; EQU 1 ;i |
|||
Mux_C EQU 0 ;i |
|||
|
|||
P0_DIGITAL EQU NOT((1 SHL Mux_A)+(1 SHL Mux_B)+(1 SHL Mux_C)+(1 SHL Comp_Com)) |
|||
P0_INIT EQU 0FFh |
|||
P0_PUSHPULL EQU 0 |
|||
P0_SKIP EQU NOT(1 SHL Rcp_In) |
|||
|
|||
MACRO Read_Rcp_Int |
|||
mov A, P0 |
|||
jnb Flags2.PGM_RCP_PWM_POL, ($+4) ; Is pwm polarity negative? |
|||
cpl A ; Yes - invert |
|||
ENDM |
|||
MACRO Rcp_Int_Enable |
|||
orl PCA0CPM0, #01h ; Interrupt enabled |
|||
ENDM |
|||
MACRO Rcp_Int_Disable |
|||
anl PCA0CPM0, #0FEh ; Interrupt disabled |
|||
ENDM |
|||
MACRO Rcp_Int_First |
|||
anl PCA0CPM0, #0CFh |
|||
jb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity positive? |
|||
orl PCA0CPM0, #20h ; Capture rising edge |
|||
jnb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity negative? |
|||
orl PCA0CPM0, #10h ; Capture falling edge |
|||
ENDM |
|||
MACRO Rcp_Int_Second |
|||
anl PCA0CPM0, #0CFh |
|||
jb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity positive? |
|||
orl PCA0CPM0, #10h ; Capture falling edge |
|||
jnb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity negative? |
|||
orl PCA0CPM0, #20h ; Capture rising edge |
|||
ENDM |
|||
MACRO Rcp_Clear_Int_Flag |
|||
clr CCF0 ; Clear interrupt flag |
|||
ENDM |
|||
|
|||
|
|||
;********************* |
|||
; PORT 1 definitions * |
|||
;********************* |
|||
AnFET EQU 7 ;o |
|||
ApFET EQU 6 ;o |
|||
CnFET EQU 5 ;o |
|||
CpFET EQU 4 ;o |
|||
BnFET EQU 3 ;o |
|||
BpFET EQU 2 ;o |
|||
; EQU 1 ;i |
|||
Adc_Ip EQU 0 ;i |
|||
|
|||
P1_DIGITAL EQU NOT(1 SHL Adc_Ip) |
|||
P1_INIT EQU (1 SHL AnFET)+(1 SHL BnFET)+(1 SHL CnFET)+(1 SHL Adc_Ip) ; Setting nFET outputs turn them off. Setting ADC ip sets it tristate |
|||
P1_PUSHPULL EQU (1 SHL AnFET)+(1 SHL BnFET)+(1 SHL CnFET)+(1 SHL ApFET)+(1 SHL BpFET)+(1 SHL CpFET) |
|||
P1_SKIP EQU (1 SHL Adc_Ip) |
|||
|
|||
MACRO AnFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.AnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CnFET |
|||
ENDM |
|||
MACRO AnFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.AnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CnFET |
|||
ENDM |
|||
MACRO CnFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.AnFET |
|||
ENDM |
|||
MACRO CnFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.AnFET |
|||
ENDM |
|||
MACRO BnFET_on |
|||
clr P1.BnFET |
|||
ENDM |
|||
MACRO BnFET_off |
|||
setb P1.BnFET |
|||
ENDM |
|||
MACRO All_nFETs_Off |
|||
setb P1.AnFET |
|||
setb P1.CnFET |
|||
setb P1.BnFET |
|||
ENDM |
|||
|
|||
MACRO ApFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.ApFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CpFET |
|||
ENDM |
|||
MACRO ApFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.ApFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CpFET |
|||
ENDM |
|||
MACRO CpFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CpFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.ApFET |
|||
ENDM |
|||
MACRO CpFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CpFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.ApFET |
|||
ENDM |
|||
MACRO BpFET_on |
|||
setb P1.BpFET |
|||
ENDM |
|||
MACRO BpFET_off |
|||
clr P1.BpFET |
|||
ENDM |
|||
MACRO All_pFETs_Off |
|||
clr P1.ApFET |
|||
clr P1.CpFET |
|||
clr P1.BpFET |
|||
ENDM |
|||
MACRO All_pFETs_On |
|||
setb P1.ApFET |
|||
setb P1.CpFET |
|||
setb P1.BpFET |
|||
ENDM |
|||
|
|||
MACRO Set_Comp_Phase_A |
|||
jb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #11h ; Set comparator multiplexer to phase A |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #10h |
|||
ENDM |
|||
MACRO Set_Comp_Phase_C |
|||
jb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #10h ; Set comparator multiplexer to phase C |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #11h |
|||
ENDM |
|||
MACRO Set_Comp_Phase_B |
|||
mov CPT0MX, #13h ; Set comparator multiplexer to phase B |
|||
ENDM |
|||
MACRO Read_Comp_Out |
|||
mov A, CPT0CN ; Read comparator output |
|||
ENDM |
|||
|
|||
|
|||
;********************* |
|||
; PORT B definitions * |
|||
;********************* |
|||
DebugPin EQU 0 ;o |
|||
|
|||
P2_PUSHPULL EQU (1 SHL DebugPin) |
|||
|
|||
|
|||
;********************** |
|||
; MCU specific macros * |
|||
;********************** |
|||
MACRO Interrupt_Table_Definition |
|||
CSEG AT 0 ; Code segment start |
|||
jmp reset |
|||
CSEG AT 0Bh ; Timer0 interrupt |
|||
jmp t0_int |
|||
CSEG AT 2Bh ; Timer2 interrupt |
|||
jmp t2_int |
|||
CSEG AT 5Bh ; PCA interrupt |
|||
jmp pca_int |
|||
CSEG AT 73h ; Timer3 interrupt |
|||
jmp t3_int |
|||
ENDM |
|||
|
|||
MACRO Initialize_Adc |
|||
mov REF0CN, #04h ; Set vdd (3.3V) as reference |
|||
mov ADC0CF, #0B8h ; ADC clock 1MHz |
|||
mov AMX0P, #Adc_Ip ; Select positive input |
|||
mov AMX0N, #11h ; Select negative input as ground |
|||
mov ADC0CN, #80h ; ADC enabled |
|||
ENDM |
|||
MACRO Start_Adc |
|||
mov ADC0CN, #90h ; ADC start |
|||
ENDM |
|||
MACRO Get_Adc_Status |
|||
mov A, ADC0CN |
|||
ENDM |
|||
MACRO Read_Adc_Result |
|||
mov Temp1, ADC0L |
|||
mov Temp2, ADC0H |
|||
ENDM |
|||
MACRO Stop_Adc |
|||
ENDM |
@ -0,0 +1,256 @@ |
|||
;**** **** **** **** **** |
|||
; |
|||
; BLHeli program for controlling brushless motors in helicopters |
|||
; |
|||
; Copyright 2011, 2012 Steffen Skaug |
|||
; This program is distributed under the terms of the GNU General Public License |
|||
; |
|||
; This file is part of BLHeli. |
|||
; |
|||
; BLHeli is free software: you can redistribute it and/or modify |
|||
; it under the terms of the GNU General Public License as published by |
|||
; the Free Software Foundation, either version 3 of the License, or |
|||
; (at your option) any later version. |
|||
; |
|||
; BLHeli is distributed in the hope that it will be useful, |
|||
; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
; GNU General Public License for more details. |
|||
; |
|||
; You should have received a copy of the GNU General Public License |
|||
; along with BLHeli. If not, see <http://www.gnu.org/licenses/>. |
|||
; |
|||
;**** **** **** **** **** |
|||
; |
|||
; XP 12A hardware definition file |
|||
; |
|||
;**** **** **** **** **** |
|||
|
|||
|
|||
|
|||
;********************* |
|||
; Device SiLabs F330 |
|||
;********************* |
|||
$include (c8051f330.inc) |
|||
|
|||
;**** **** **** **** **** |
|||
; Uses internal calibrated oscillator set to 24Mhz |
|||
;**** **** **** **** **** |
|||
|
|||
;**** **** **** **** **** |
|||
; Constant definitions |
|||
;**** **** **** **** **** |
|||
CSEG AT 1A40h |
|||
Eep_ESC_Layout: DB "#XP12A# " ; ESC layout tag |
|||
DAMPED_TAIL_ENABLE EQU 0 ; Damped tail mode disabled |
|||
NFETON_DELAY EQU 22 ; Wait delay from pfets off to nfets on |
|||
PFETON_DELAY EQU 5 ; Wait delay from nfets off to pfets on |
|||
ADC_LIMIT_L EQU 116 ; Power supply measurement ADC value for which main motor power is limited (low byte) |
|||
ADC_LIMIT_H EQU 0 ; Power supply measurement ADC value for which main motor power is limited (2 MSBs) |
|||
|
|||
|
|||
;********************* |
|||
; PORT 0 definitions * |
|||
;********************* |
|||
Rcp_In EQU 7 ;i |
|||
Adc_Ip EQU 6 ;i |
|||
Mux_A EQU 5 ;i |
|||
; EQU 4 ;i |
|||
Mux_B EQU 3 ;i |
|||
Comp_Com EQU 2 ;i |
|||
Mux_C EQU 1 ;i |
|||
; EQU 0 ;i |
|||
|
|||
P0_DIGITAL EQU NOT((1 SHL Mux_A)+(1 SHL Mux_B)+(1 SHL Mux_C)+(1 SHL Comp_Com)+(1 SHL Adc_Ip)) |
|||
P0_INIT EQU 0FFh |
|||
P0_PUSHPULL EQU 0 |
|||
P0_SKIP EQU NOT(1 SHL Rcp_In) AND 0FFh |
|||
|
|||
MACRO Read_Rcp_Int |
|||
mov A, P0 |
|||
jnb Flags2.PGM_RCP_PWM_POL, ($+4) ; Is pwm polarity negative? |
|||
cpl A ; Yes - invert |
|||
ENDM |
|||
MACRO Rcp_Int_Enable |
|||
orl PCA0CPM0, #01h ; Interrupt enabled |
|||
ENDM |
|||
MACRO Rcp_Int_Disable |
|||
anl PCA0CPM0, #0FEh ; Interrupt disabled |
|||
ENDM |
|||
MACRO Rcp_Int_First |
|||
anl PCA0CPM0, #0CFh |
|||
jb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity positive? |
|||
orl PCA0CPM0, #20h ; Capture rising edge |
|||
jnb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity negative? |
|||
orl PCA0CPM0, #10h ; Capture falling edge |
|||
ENDM |
|||
MACRO Rcp_Int_Second |
|||
anl PCA0CPM0, #0CFh |
|||
jb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity positive? |
|||
orl PCA0CPM0, #10h ; Capture falling edge |
|||
jnb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity negative? |
|||
orl PCA0CPM0, #20h ; Capture rising edge |
|||
ENDM |
|||
MACRO Rcp_Clear_Int_Flag |
|||
clr CCF0 ; Clear interrupt flag |
|||
ENDM |
|||
|
|||
|
|||
;********************* |
|||
; PORT 1 definitions * |
|||
;********************* |
|||
; EQU 7 ;o |
|||
; EQU 6 ;o |
|||
ApFET EQU 5 ;o |
|||
BpFET EQU 4 ;o |
|||
CpFET EQU 3 ;o |
|||
AnFET EQU 2 ;o |
|||
BnFET EQU 1 ;i |
|||
CnFET EQU 0 ;i |
|||
|
|||
P1_DIGITAL EQU (1 SHL AnFET)+(1 SHL BnFET)+(1 SHL CnFET)+(1 SHL ApFET)+(1 SHL BpFET)+(1 SHL CpFET) |
|||
P1_INIT EQU 0 |
|||
P1_PUSHPULL EQU (1 SHL AnFET)+(1 SHL BnFET)+(1 SHL CnFET)+(1 SHL ApFET)+(1 SHL BpFET)+(1 SHL CpFET) |
|||
P1_SKIP EQU 0 |
|||
|
|||
MACRO AnFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.AnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CnFET |
|||
ENDM |
|||
MACRO AnFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.AnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CnFET |
|||
ENDM |
|||
MACRO BnFET_on |
|||
setb P1.BnFET |
|||
ENDM |
|||
MACRO BnFET_off |
|||
clr P1.BnFET |
|||
ENDM |
|||
MACRO CnFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.AnFET |
|||
ENDM |
|||
MACRO CnFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.AnFET |
|||
ENDM |
|||
MACRO All_nFETs_Off |
|||
clr P1.AnFET |
|||
clr P1.BnFET |
|||
clr P1.CnFET |
|||
ENDM |
|||
|
|||
MACRO ApFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.ApFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CpFET |
|||
ENDM |
|||
MACRO ApFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.ApFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CpFET |
|||
ENDM |
|||
MACRO BpFET_on |
|||
setb P1.BpFET |
|||
ENDM |
|||
MACRO BpFET_off |
|||
clr P1.BpFET |
|||
ENDM |
|||
MACRO CpFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CpFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.ApFET |
|||
ENDM |
|||
MACRO CpFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CpFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.ApFET |
|||
ENDM |
|||
MACRO All_pFETs_Off |
|||
clr P1.ApFET |
|||
clr P1.BpFET |
|||
clr P1.CpFET |
|||
ENDM |
|||
MACRO All_pFETs_On |
|||
setb P1.ApFET |
|||
setb P1.BpFET |
|||
setb P1.CpFET |
|||
ENDM |
|||
|
|||
MACRO Set_Comp_Phase_A |
|||
jb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #21h ; Set comparator multiplexer to phase A |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #01h |
|||
ENDM |
|||
MACRO Set_Comp_Phase_B |
|||
mov CPT0MX, #11h ; Set comparator multiplexer to phase B |
|||
ENDM |
|||
MACRO Set_Comp_Phase_C |
|||
jb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #01h ; Set comparator multiplexer to phase C |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #21h |
|||
ENDM |
|||
MACRO Read_Comp_Out |
|||
mov A, CPT0CN ; Read comparator output |
|||
cpl A ; Invert output |
|||
ENDM |
|||
|
|||
|
|||
;********************* |
|||
; PORT B definitions * |
|||
;********************* |
|||
DebugPin EQU 0 ;o |
|||
|
|||
P2_PUSHPULL EQU (1 SHL DebugPin) |
|||
|
|||
|
|||
;********************** |
|||
; MCU specific macros * |
|||
;********************** |
|||
MACRO Interrupt_Table_Definition |
|||
CSEG AT 0 ; Code segment start |
|||
jmp reset |
|||
CSEG AT 0Bh ; Timer0 interrupt |
|||
jmp t0_int |
|||
CSEG AT 2Bh ; Timer2 interrupt |
|||
jmp t2_int |
|||
CSEG AT 5Bh ; PCA interrupt |
|||
jmp pca_int |
|||
CSEG AT 73h ; Timer3 interrupt |
|||
jmp t3_int |
|||
ENDM |
|||
|
|||
MACRO Initialize_Adc |
|||
mov REF0CN, #01h ; Enable reference buffer |
|||
mov ADC0CF, #0B8h ; ADC clock 1MHz |
|||
mov AMX0P, #Adc_Ip ; Select positive input |
|||
mov AMX0N, #11h ; Select negative input as ground |
|||
mov ADC0CN, #80h ; ADC enabled |
|||
ENDM |
|||
MACRO Start_Adc |
|||
mov ADC0CN, #90h ; ADC start |
|||
ENDM |
|||
MACRO Get_Adc_Status |
|||
mov A, ADC0CN |
|||
ENDM |
|||
MACRO Read_Adc_Result |
|||
mov Temp1, ADC0L |
|||
mov Temp2, ADC0H |
|||
ENDM |
|||
MACRO Stop_Adc |
|||
ENDM |
@ -0,0 +1,256 @@ |
|||
;**** **** **** **** **** |
|||
; |
|||
; BLHeli program for controlling brushless motors in helicopters |
|||
; |
|||
; Copyright 2011, 2012 Steffen Skaug |
|||
; This program is distributed under the terms of the GNU General Public License |
|||
; |
|||
; This file is part of BLHeli. |
|||
; |
|||
; BLHeli is free software: you can redistribute it and/or modify |
|||
; it under the terms of the GNU General Public License as published by |
|||
; the Free Software Foundation, either version 3 of the License, or |
|||
; (at your option) any later version. |
|||
; |
|||
; BLHeli is distributed in the hope that it will be useful, |
|||
; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
; GNU General Public License for more details. |
|||
; |
|||
; You should have received a copy of the GNU General Public License |
|||
; along with BLHeli. If not, see <http://www.gnu.org/licenses/>. |
|||
; |
|||
;**** **** **** **** **** |
|||
; |
|||
; XP 3A hardware definition file |
|||
; |
|||
;**** **** **** **** **** |
|||
|
|||
|
|||
|
|||
;********************* |
|||
; Device SiLabs F330 |
|||
;********************* |
|||
$include (c8051f330.inc) |
|||
|
|||
;**** **** **** **** **** |
|||
; Uses internal calibrated oscillator set to 24Mhz |
|||
;**** **** **** **** **** |
|||
|
|||
;**** **** **** **** **** |
|||
; Constant definitions |
|||
;**** **** **** **** **** |
|||
CSEG AT 1A40h |
|||
Eep_ESC_Layout: DB "#XP3A# " ; ESC layout tag |
|||
DAMPED_TAIL_ENABLE EQU 1 ; Damped tail mode enabled |
|||
NFETON_DELAY EQU 2 ; Wait delay from pfets off to nfets on |
|||
PFETON_DELAY EQU 1 ; Wait delay from nfets off to pfets on |
|||
ADC_LIMIT_L EQU 171 ; Power supply measurement ADC value for which main motor power is limited (low byte) |
|||
ADC_LIMIT_H EQU 1 ; Power supply measurement ADC value for which main motor power is limited (2 MSBs) |
|||
|
|||
|
|||
;********************* |
|||
; PORT 0 definitions * |
|||
;********************* |
|||
Rcp_In EQU 7 ;i |
|||
Adc_Ip EQU 6 ;i |
|||
Mux_A EQU 5 ;i |
|||
; EQU 4 ;i |
|||
Mux_B EQU 3 ;i |
|||
Comp_Com EQU 2 ;i |
|||
Mux_C EQU 1 ;i |
|||
; EQU 0 ;i |
|||
|
|||
P0_DIGITAL EQU NOT((1 SHL Mux_A)+(1 SHL Mux_B)+(1 SHL Mux_C)+(1 SHL Comp_Com)+(1 SHL Adc_Ip)) |
|||
P0_INIT EQU 0FFh |
|||
P0_PUSHPULL EQU 0 |
|||
P0_SKIP EQU NOT(1 SHL Rcp_In) AND 0FFh |
|||
|
|||
MACRO Read_Rcp_Int |
|||
mov A, P0 |
|||
jnb Flags2.PGM_RCP_PWM_POL, ($+4) ; Is pwm polarity negative? |
|||
cpl A ; Yes - invert |
|||
ENDM |
|||
MACRO Rcp_Int_Enable |
|||
orl PCA0CPM0, #01h ; Interrupt enabled |
|||
ENDM |
|||
MACRO Rcp_Int_Disable |
|||
anl PCA0CPM0, #0FEh ; Interrupt disabled |
|||
ENDM |
|||
MACRO Rcp_Int_First |
|||
anl PCA0CPM0, #0CFh |
|||
jb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity positive? |
|||
orl PCA0CPM0, #20h ; Capture rising edge |
|||
jnb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity negative? |
|||
orl PCA0CPM0, #10h ; Capture falling edge |
|||
ENDM |
|||
MACRO Rcp_Int_Second |
|||
anl PCA0CPM0, #0CFh |
|||
jb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity positive? |
|||
orl PCA0CPM0, #10h ; Capture falling edge |
|||
jnb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity negative? |
|||
orl PCA0CPM0, #20h ; Capture rising edge |
|||
ENDM |
|||
MACRO Rcp_Clear_Int_Flag |
|||
clr CCF0 ; Clear interrupt flag |
|||
ENDM |
|||
|
|||
|
|||
;********************* |
|||
; PORT 1 definitions * |
|||
;********************* |
|||
; EQU 7 ;o |
|||
; EQU 6 ;o |
|||
CpFET EQU 5 ;o |
|||
BpFET EQU 4 ;o |
|||
ApFET EQU 3 ;o |
|||
CnFET EQU 2 ;o |
|||
BnFET EQU 1 ;i |
|||
AnFET EQU 0 ;i |
|||
|
|||
P1_DIGITAL EQU (1 SHL AnFET)+(1 SHL BnFET)+(1 SHL CnFET)+(1 SHL ApFET)+(1 SHL BpFET)+(1 SHL CpFET) |
|||
P1_INIT EQU (1 SHL ApFET)+(1 SHL BpFET)+(1 SHL CpFET) ; Setting pFET outputs turn them off |
|||
P1_PUSHPULL EQU (1 SHL AnFET)+(1 SHL BnFET)+(1 SHL CnFET)+(1 SHL ApFET)+(1 SHL BpFET)+(1 SHL CpFET) |
|||
P1_SKIP EQU 0 |
|||
|
|||
MACRO AnFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.AnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CnFET |
|||
ENDM |
|||
MACRO AnFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.AnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CnFET |
|||
ENDM |
|||
MACRO BnFET_on |
|||
setb P1.BnFET |
|||
ENDM |
|||
MACRO BnFET_off |
|||
clr P1.BnFET |
|||
ENDM |
|||
MACRO CnFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.AnFET |
|||
ENDM |
|||
MACRO CnFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.AnFET |
|||
ENDM |
|||
MACRO All_nFETs_Off |
|||
clr P1.AnFET |
|||
clr P1.BnFET |
|||
clr P1.CnFET |
|||
ENDM |
|||
|
|||
MACRO ApFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.ApFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CpFET |
|||
ENDM |
|||
MACRO ApFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.ApFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CpFET |
|||
ENDM |
|||
MACRO BpFET_on |
|||
clr P1.BpFET |
|||
ENDM |
|||
MACRO BpFET_off |
|||
setb P1.BpFET |
|||
ENDM |
|||
MACRO CpFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CpFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.ApFET |
|||
ENDM |
|||
MACRO CpFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CpFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.ApFET |
|||
ENDM |
|||
MACRO All_pFETs_Off |
|||
setb P1.ApFET |
|||
setb P1.BpFET |
|||
setb P1.CpFET |
|||
ENDM |
|||
MACRO All_pFETs_On |
|||
clr P1.ApFET |
|||
clr P1.BpFET |
|||
clr P1.CpFET |
|||
ENDM |
|||
|
|||
MACRO Set_Comp_Phase_A |
|||
jb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #21h ; Set comparator multiplexer to phase A |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #01h |
|||
ENDM |
|||
MACRO Set_Comp_Phase_B |
|||
mov CPT0MX, #11h ; Set comparator multiplexer to phase B |
|||
ENDM |
|||
MACRO Set_Comp_Phase_C |
|||
jb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #01h ; Set comparator multiplexer to phase C |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #21h |
|||
ENDM |
|||
MACRO Read_Comp_Out |
|||
mov A, CPT0CN ; Read comparator output |
|||
cpl A ; Invert output |
|||
ENDM |
|||
|
|||
|
|||
;********************* |
|||
; PORT B definitions * |
|||
;********************* |
|||
DebugPin EQU 0 ;o |
|||
|
|||
P2_PUSHPULL EQU (1 SHL DebugPin) |
|||
|
|||
|
|||
;********************** |
|||
; MCU specific macros * |
|||
;********************** |
|||
MACRO Interrupt_Table_Definition |
|||
CSEG AT 0 ; Code segment start |
|||
jmp reset |
|||
CSEG AT 0Bh ; Timer0 interrupt |
|||
jmp t0_int |
|||
CSEG AT 2Bh ; Timer2 interrupt |
|||
jmp t2_int |
|||
CSEG AT 5Bh ; PCA interrupt |
|||
jmp pca_int |
|||
CSEG AT 73h ; Timer3 interrupt |
|||
jmp t3_int |
|||
ENDM |
|||
|
|||
MACRO Initialize_Adc |
|||
mov REF0CN, #01h ; Enable reference buffer |
|||
mov ADC0CF, #0B8h ; ADC clock 1MHz |
|||
mov AMX0P, #Adc_Ip ; Select positive input |
|||
mov AMX0N, #11h ; Select negative input as ground |
|||
mov ADC0CN, #80h ; ADC enabled |
|||
ENDM |
|||
MACRO Start_Adc |
|||
mov ADC0CN, #90h ; ADC start |
|||
ENDM |
|||
MACRO Get_Adc_Status |
|||
mov A, ADC0CN |
|||
ENDM |
|||
MACRO Read_Adc_Result |
|||
mov Temp1, ADC0L |
|||
mov Temp2, ADC0H |
|||
ENDM |
|||
MACRO Stop_Adc |
|||
ENDM |
@ -0,0 +1,256 @@ |
|||
;**** **** **** **** **** |
|||
; |
|||
; BLHeli program for controlling brushless motors in helicopters |
|||
; |
|||
; Copyright 2011, 2012 Steffen Skaug |
|||
; This program is distributed under the terms of the GNU General Public License |
|||
; |
|||
; This file is part of BLHeli. |
|||
; |
|||
; BLHeli is free software: you can redistribute it and/or modify |
|||
; it under the terms of the GNU General Public License as published by |
|||
; the Free Software Foundation, either version 3 of the License, or |
|||
; (at your option) any later version. |
|||
; |
|||
; BLHeli is distributed in the hope that it will be useful, |
|||
; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
; GNU General Public License for more details. |
|||
; |
|||
; You should have received a copy of the GNU General Public License |
|||
; along with BLHeli. If not, see <http://www.gnu.org/licenses/>. |
|||
; |
|||
;**** **** **** **** **** |
|||
; |
|||
; XP 7A hardware definition file |
|||
; |
|||
;**** **** **** **** **** |
|||
|
|||
|
|||
|
|||
;********************* |
|||
; Device SiLabs F330 |
|||
;********************* |
|||
$include (c8051f330.inc) |
|||
|
|||
;**** **** **** **** **** |
|||
; Uses internal calibrated oscillator set to 24Mhz |
|||
;**** **** **** **** **** |
|||
|
|||
;**** **** **** **** **** |
|||
; Constant definitions |
|||
;**** **** **** **** **** |
|||
CSEG AT 1A40h |
|||
Eep_ESC_Layout: DB "#XP7A# " ; ESC layout tag |
|||
DAMPED_TAIL_ENABLE EQU 0 ; Damped tail mode disabled |
|||
NFETON_DELAY EQU 22 ; Wait delay from pfets off to nfets on |
|||
PFETON_DELAY EQU 5 ; Wait delay from nfets off to pfets on |
|||
ADC_LIMIT_L EQU 116 ; Power supply measurement ADC value for which main motor power is limited (low byte) |
|||
ADC_LIMIT_H EQU 0 ; Power supply measurement ADC value for which main motor power is limited (2 MSBs) |
|||
|
|||
|
|||
;********************* |
|||
; PORT 0 definitions * |
|||
;********************* |
|||
Rcp_In EQU 7 ;i |
|||
Adc_Ip EQU 6 ;i |
|||
Mux_A EQU 5 ;i |
|||
; EQU 4 ;i |
|||
Mux_B EQU 3 ;i |
|||
Comp_Com EQU 2 ;i |
|||
Mux_C EQU 1 ;i |
|||
; EQU 0 ;i |
|||
|
|||
P0_DIGITAL EQU NOT((1 SHL Mux_A)+(1 SHL Mux_B)+(1 SHL Mux_C)+(1 SHL Comp_Com)+(1 SHL Adc_Ip)) |
|||
P0_INIT EQU 0FFh |
|||
P0_PUSHPULL EQU 0 |
|||
P0_SKIP EQU NOT(1 SHL Rcp_In) AND 0FFh |
|||
|
|||
MACRO Read_Rcp_Int |
|||
mov A, P0 |
|||
jnb Flags2.PGM_RCP_PWM_POL, ($+4) ; Is pwm polarity negative? |
|||
cpl A ; Yes - invert |
|||
ENDM |
|||
MACRO Rcp_Int_Enable |
|||
orl PCA0CPM0, #01h ; Interrupt enabled |
|||
ENDM |
|||
MACRO Rcp_Int_Disable |
|||
anl PCA0CPM0, #0FEh ; Interrupt disabled |
|||
ENDM |
|||
MACRO Rcp_Int_First |
|||
anl PCA0CPM0, #0CFh |
|||
jb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity positive? |
|||
orl PCA0CPM0, #20h ; Capture rising edge |
|||
jnb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity negative? |
|||
orl PCA0CPM0, #10h ; Capture falling edge |
|||
ENDM |
|||
MACRO Rcp_Int_Second |
|||
anl PCA0CPM0, #0CFh |
|||
jb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity positive? |
|||
orl PCA0CPM0, #10h ; Capture falling edge |
|||
jnb Flags2.PGM_RCP_PWM_POL, ($+6) ; Is pwm polarity negative? |
|||
orl PCA0CPM0, #20h ; Capture rising edge |
|||
ENDM |
|||
MACRO Rcp_Clear_Int_Flag |
|||
clr CCF0 ; Clear interrupt flag |
|||
ENDM |
|||
|
|||
|
|||
;********************* |
|||
; PORT 1 definitions * |
|||
;********************* |
|||
; EQU 7 ;o |
|||
; EQU 6 ;o |
|||
ApFET EQU 5 ;o |
|||
BpFET EQU 4 ;o |
|||
CpFET EQU 3 ;o |
|||
AnFET EQU 2 ;o |
|||
BnFET EQU 1 ;i |
|||
CnFET EQU 0 ;i |
|||
|
|||
P1_DIGITAL EQU (1 SHL AnFET)+(1 SHL BnFET)+(1 SHL CnFET)+(1 SHL ApFET)+(1 SHL BpFET)+(1 SHL CpFET) |
|||
P1_INIT EQU 0 |
|||
P1_PUSHPULL EQU (1 SHL AnFET)+(1 SHL BnFET)+(1 SHL CnFET)+(1 SHL ApFET)+(1 SHL BpFET)+(1 SHL CpFET) |
|||
P1_SKIP EQU 0 |
|||
|
|||
MACRO AnFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.AnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CnFET |
|||
ENDM |
|||
MACRO AnFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.AnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CnFET |
|||
ENDM |
|||
MACRO BnFET_on |
|||
setb P1.BnFET |
|||
ENDM |
|||
MACRO BnFET_off |
|||
clr P1.BnFET |
|||
ENDM |
|||
MACRO CnFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.AnFET |
|||
ENDM |
|||
MACRO CnFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CnFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.AnFET |
|||
ENDM |
|||
MACRO All_nFETs_Off |
|||
clr P1.AnFET |
|||
clr P1.BnFET |
|||
clr P1.CnFET |
|||
ENDM |
|||
|
|||
MACRO ApFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.ApFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CpFET |
|||
ENDM |
|||
MACRO ApFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.ApFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CpFET |
|||
ENDM |
|||
MACRO BpFET_on |
|||
setb P1.BpFET |
|||
ENDM |
|||
MACRO BpFET_off |
|||
clr P1.BpFET |
|||
ENDM |
|||
MACRO CpFET_on |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.CpFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
setb P1.ApFET |
|||
ENDM |
|||
MACRO CpFET_off |
|||
jb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.CpFET |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+5) |
|||
clr P1.ApFET |
|||
ENDM |
|||
MACRO All_pFETs_Off |
|||
clr P1.ApFET |
|||
clr P1.BpFET |
|||
clr P1.CpFET |
|||
ENDM |
|||
MACRO All_pFETs_On |
|||
setb P1.ApFET |
|||
setb P1.BpFET |
|||
setb P1.CpFET |
|||
ENDM |
|||
|
|||
MACRO Set_Comp_Phase_A |
|||
jb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #21h ; Set comparator multiplexer to phase A |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #01h |
|||
ENDM |
|||
MACRO Set_Comp_Phase_B |
|||
mov CPT0MX, #11h ; Set comparator multiplexer to phase B |
|||
ENDM |
|||
MACRO Set_Comp_Phase_C |
|||
jb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #01h ; Set comparator multiplexer to phase C |
|||
jnb Flags2.PGM_DIRECTION_REV, ($+6) |
|||
mov CPT0MX, #21h |
|||
ENDM |
|||
MACRO Read_Comp_Out |
|||
mov A, CPT0CN ; Read comparator output |
|||
cpl A ; Invert output |
|||
ENDM |
|||
|
|||
|
|||
;********************* |
|||
; PORT B definitions * |
|||
;********************* |
|||
DebugPin EQU 0 ;o |
|||
|
|||
P2_PUSHPULL EQU (1 SHL DebugPin) |
|||
|
|||
|
|||
;********************** |
|||
; MCU specific macros * |
|||
;********************** |
|||
MACRO Interrupt_Table_Definition |
|||
CSEG AT 0 ; Code segment start |
|||
jmp reset |
|||
CSEG AT 0Bh ; Timer0 interrupt |
|||
jmp t0_int |
|||
CSEG AT 2Bh ; Timer2 interrupt |
|||
jmp t2_int |
|||
CSEG AT 5Bh ; PCA interrupt |
|||
jmp pca_int |
|||
CSEG AT 73h ; Timer3 interrupt |
|||
jmp t3_int |
|||
ENDM |
|||
|
|||
MACRO Initialize_Adc |
|||
mov REF0CN, #01h ; Enable reference buffer |
|||
mov ADC0CF, #0B8h ; ADC clock 1MHz |
|||
mov AMX0P, #Adc_Ip ; Select positive input |
|||
mov AMX0N, #11h ; Select negative input as ground |
|||
mov ADC0CN, #80h ; ADC enabled |
|||
ENDM |
|||
MACRO Start_Adc |
|||
mov ADC0CN, #90h ; ADC start |
|||
ENDM |
|||
MACRO Get_Adc_Status |
|||
mov A, ADC0CN |
|||
ENDM |
|||
MACRO Read_Adc_Result |
|||
mov Temp1, ADC0L |
|||
mov Temp2, ADC0H |
|||
ENDM |
|||
MACRO Stop_Adc |
|||
ENDM |
Write
Preview
Loading…
Cancel
Save
Reference in new issue