forkd

Dependencies:   mbed

Fork of LG2 by Dmitry Kovalev

Committer:
Kovalev_D
Date:
Wed Feb 03 10:44:42 2016 +0300
Revision:
23:12e6183f04d4
[thyz

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kovalev_D 23:12e6183f04d4 1 ;/*****************************************************************************
Kovalev_D 23:12e6183f04d4 2 ; * @file: startup_LPC13xx.s
Kovalev_D 23:12e6183f04d4 3 ; * @purpose: CMSIS Cortex-M3 Core Device Startup File
Kovalev_D 23:12e6183f04d4 4 ; * for the NXP LPC13xx Device Series
Kovalev_D 23:12e6183f04d4 5 ; * @version: V1.0
Kovalev_D 23:12e6183f04d4 6 ; * @date: 27. Aug. 2009
Kovalev_D 23:12e6183f04d4 7 ; *------- <<< Use Configuration Wizard in Context Menu >>> ------------------
Kovalev_D 23:12e6183f04d4 8 ; *
Kovalev_D 23:12e6183f04d4 9 ; * Copyright (C) 2009 ARM Limited. All rights reserved.
Kovalev_D 23:12e6183f04d4 10 ; * ARM Limited (ARM) is supplying this software for use with Cortex-M3
Kovalev_D 23:12e6183f04d4 11 ; * processor based microcontrollers. This file can be freely distributed
Kovalev_D 23:12e6183f04d4 12 ; * within development tools that are supporting such ARM based processors.
Kovalev_D 23:12e6183f04d4 13 ; *
Kovalev_D 23:12e6183f04d4 14 ; * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
Kovalev_D 23:12e6183f04d4 15 ; * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
Kovalev_D 23:12e6183f04d4 16 ; * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
Kovalev_D 23:12e6183f04d4 17 ; * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
Kovalev_D 23:12e6183f04d4 18 ; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
Kovalev_D 23:12e6183f04d4 19 ; *
Kovalev_D 23:12e6183f04d4 20 ; *****************************************************************************/
Kovalev_D 23:12e6183f04d4 21
Kovalev_D 23:12e6183f04d4 22
Kovalev_D 23:12e6183f04d4 23 ; <h> Stack Configuration
Kovalev_D 23:12e6183f04d4 24 ; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
Kovalev_D 23:12e6183f04d4 25 ; </h>
Kovalev_D 23:12e6183f04d4 26
Kovalev_D 23:12e6183f04d4 27 Stack_Size EQU 0x00000200
Kovalev_D 23:12e6183f04d4 28
Kovalev_D 23:12e6183f04d4 29 AREA STACK, NOINIT, READWRITE, ALIGN=3
Kovalev_D 23:12e6183f04d4 30 Stack_Mem SPACE Stack_Size
Kovalev_D 23:12e6183f04d4 31 __initial_sp
Kovalev_D 23:12e6183f04d4 32
Kovalev_D 23:12e6183f04d4 33
Kovalev_D 23:12e6183f04d4 34 ; <h> Heap Configuration
Kovalev_D 23:12e6183f04d4 35 ; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
Kovalev_D 23:12e6183f04d4 36 ; </h>
Kovalev_D 23:12e6183f04d4 37
Kovalev_D 23:12e6183f04d4 38 Heap_Size EQU 0x00000000
Kovalev_D 23:12e6183f04d4 39
Kovalev_D 23:12e6183f04d4 40 AREA HEAP, NOINIT, READWRITE, ALIGN=3
Kovalev_D 23:12e6183f04d4 41 __heap_base
Kovalev_D 23:12e6183f04d4 42 Heap_Mem SPACE Heap_Size
Kovalev_D 23:12e6183f04d4 43 __heap_limit
Kovalev_D 23:12e6183f04d4 44
Kovalev_D 23:12e6183f04d4 45
Kovalev_D 23:12e6183f04d4 46 PRESERVE8
Kovalev_D 23:12e6183f04d4 47 THUMB
Kovalev_D 23:12e6183f04d4 48
Kovalev_D 23:12e6183f04d4 49
Kovalev_D 23:12e6183f04d4 50 ; Vector Table Mapped to Address 0 at Reset
Kovalev_D 23:12e6183f04d4 51
Kovalev_D 23:12e6183f04d4 52 AREA RESET, DATA, READONLY
Kovalev_D 23:12e6183f04d4 53 EXPORT __Vectors
Kovalev_D 23:12e6183f04d4 54
Kovalev_D 23:12e6183f04d4 55 __Vectors DCD __initial_sp ; Top of Stack
Kovalev_D 23:12e6183f04d4 56 DCD Reset_Handler ; Reset Handler
Kovalev_D 23:12e6183f04d4 57 DCD NMI_Handler ; NMI Handler
Kovalev_D 23:12e6183f04d4 58 DCD HardFault_Handler ; Hard Fault Handler
Kovalev_D 23:12e6183f04d4 59 DCD MemManage_Handler ; MPU Fault Handler
Kovalev_D 23:12e6183f04d4 60 DCD BusFault_Handler ; Bus Fault Handler
Kovalev_D 23:12e6183f04d4 61 DCD UsageFault_Handler ; Usage Fault Handler
Kovalev_D 23:12e6183f04d4 62 DCD 0 ; Reserved
Kovalev_D 23:12e6183f04d4 63 DCD 0 ; Reserved
Kovalev_D 23:12e6183f04d4 64 DCD 0 ; Reserved
Kovalev_D 23:12e6183f04d4 65 DCD 0 ; Reserved
Kovalev_D 23:12e6183f04d4 66 DCD SVC_Handler ; SVCall Handler
Kovalev_D 23:12e6183f04d4 67 DCD DebugMon_Handler ; Debug Monitor Handler
Kovalev_D 23:12e6183f04d4 68 DCD 0 ; Reserved
Kovalev_D 23:12e6183f04d4 69 DCD PendSV_Handler ; PendSV Handler
Kovalev_D 23:12e6183f04d4 70 DCD SysTick_Handler ; SysTick Handler
Kovalev_D 23:12e6183f04d4 71
Kovalev_D 23:12e6183f04d4 72 ; External Interrupts
Kovalev_D 23:12e6183f04d4 73 DCD WAKEUP_IRQHandler ; 16+ 0: Wakeup PIO0.0
Kovalev_D 23:12e6183f04d4 74 DCD WAKEUP_IRQHandler ; 16+ 1: Wakeup PIO0.1
Kovalev_D 23:12e6183f04d4 75 DCD WAKEUP_IRQHandler ; 16+ 2: Wakeup PIO0.2
Kovalev_D 23:12e6183f04d4 76 DCD WAKEUP_IRQHandler ; 16+ 3: Wakeup PIO0.3
Kovalev_D 23:12e6183f04d4 77 DCD WAKEUP_IRQHandler ; 16+ 4: Wakeup PIO0.4
Kovalev_D 23:12e6183f04d4 78 DCD WAKEUP_IRQHandler ; 16+ 5: Wakeup PIO0.5
Kovalev_D 23:12e6183f04d4 79 DCD WAKEUP_IRQHandler ; 16+ 6: Wakeup PIO0.6
Kovalev_D 23:12e6183f04d4 80 DCD WAKEUP_IRQHandler ; 16+ 7: Wakeup PIO0.7
Kovalev_D 23:12e6183f04d4 81 DCD WAKEUP_IRQHandler ; 16+ 8: Wakeup PIO0.8
Kovalev_D 23:12e6183f04d4 82 DCD WAKEUP_IRQHandler ; 16+ 9: Wakeup PIO0.9
Kovalev_D 23:12e6183f04d4 83 DCD WAKEUP_IRQHandler ; 16+10: Wakeup PIO0.10
Kovalev_D 23:12e6183f04d4 84 DCD WAKEUP_IRQHandler ; 16+11: Wakeup PIO0.11
Kovalev_D 23:12e6183f04d4 85 DCD WAKEUP_IRQHandler ; 16+12: Wakeup PIO1.0
Kovalev_D 23:12e6183f04d4 86 DCD WAKEUP_IRQHandler ; 16+13: Wakeup PIO1.1
Kovalev_D 23:12e6183f04d4 87 DCD WAKEUP_IRQHandler ; 16+14: Wakeup PIO1.2
Kovalev_D 23:12e6183f04d4 88 DCD WAKEUP_IRQHandler ; 16+15: Wakeup PIO1.3
Kovalev_D 23:12e6183f04d4 89 DCD WAKEUP_IRQHandler ; 16+16: Wakeup PIO1.4
Kovalev_D 23:12e6183f04d4 90 DCD WAKEUP_IRQHandler ; 16+17: Wakeup PIO1.5
Kovalev_D 23:12e6183f04d4 91 DCD WAKEUP_IRQHandler ; 16+18: Wakeup PIO1.6
Kovalev_D 23:12e6183f04d4 92 DCD WAKEUP_IRQHandler ; 16+19: Wakeup PIO1.7
Kovalev_D 23:12e6183f04d4 93 DCD WAKEUP_IRQHandler ; 16+20: Wakeup PIO1.8
Kovalev_D 23:12e6183f04d4 94 DCD WAKEUP_IRQHandler ; 16+21: Wakeup PIO1.9
Kovalev_D 23:12e6183f04d4 95 DCD WAKEUP_IRQHandler ; 16+22: Wakeup PIO1.10
Kovalev_D 23:12e6183f04d4 96 DCD WAKEUP_IRQHandler ; 16+23: Wakeup PIO1.11
Kovalev_D 23:12e6183f04d4 97 DCD WAKEUP_IRQHandler ; 16+24: Wakeup PIO2.0
Kovalev_D 23:12e6183f04d4 98 DCD WAKEUP_IRQHandler ; 16+25: Wakeup PIO2.1
Kovalev_D 23:12e6183f04d4 99 DCD WAKEUP_IRQHandler ; 16+26: Wakeup PIO2.2
Kovalev_D 23:12e6183f04d4 100 DCD WAKEUP_IRQHandler ; 16+27: Wakeup PIO2.3
Kovalev_D 23:12e6183f04d4 101 DCD WAKEUP_IRQHandler ; 16+28: Wakeup PIO2.4
Kovalev_D 23:12e6183f04d4 102 DCD WAKEUP_IRQHandler ; 16+29: Wakeup PIO2.5
Kovalev_D 23:12e6183f04d4 103 DCD WAKEUP_IRQHandler ; 16+30: Wakeup PIO2.6
Kovalev_D 23:12e6183f04d4 104 DCD WAKEUP_IRQHandler ; 16+31: Wakeup PIO2.7
Kovalev_D 23:12e6183f04d4 105 DCD WAKEUP_IRQHandler ; 16+32: Wakeup PIO2.8
Kovalev_D 23:12e6183f04d4 106 DCD WAKEUP_IRQHandler ; 16+33: Wakeup PIO2.9
Kovalev_D 23:12e6183f04d4 107 DCD WAKEUP_IRQHandler ; 16+34: Wakeup PIO2.10
Kovalev_D 23:12e6183f04d4 108 DCD WAKEUP_IRQHandler ; 16+35: Wakeup PIO2.11
Kovalev_D 23:12e6183f04d4 109 DCD WAKEUP_IRQHandler ; 16+36: Wakeup PIO3.0
Kovalev_D 23:12e6183f04d4 110 DCD WAKEUP_IRQHandler ; 16+37: Wakeup PIO3.1
Kovalev_D 23:12e6183f04d4 111 DCD WAKEUP_IRQHandler ; 16+38: Wakeup PIO3.2
Kovalev_D 23:12e6183f04d4 112 DCD WAKEUP_IRQHandler ; 16+39: Wakeup PIO3.3
Kovalev_D 23:12e6183f04d4 113 DCD I2C_IRQHandler ; 16+40: I2C
Kovalev_D 23:12e6183f04d4 114 DCD TIMER16_0_IRQHandler ; 16+41: 16-bit Counter-Timer 0
Kovalev_D 23:12e6183f04d4 115 DCD TIMER16_1_IRQHandler ; 16+42: 16-bit Counter-Timer 1
Kovalev_D 23:12e6183f04d4 116 DCD TIMER32_0_IRQHandler ; 16+43: 32-bit Counter-Timer 0
Kovalev_D 23:12e6183f04d4 117 DCD TIMER32_1_IRQHandler ; 16+44: 32-bit Counter-Timer 1
Kovalev_D 23:12e6183f04d4 118 DCD SSP_IRQHandler ; 16+45: SSP
Kovalev_D 23:12e6183f04d4 119 DCD UART_IRQHandler ; 16+46: UART
Kovalev_D 23:12e6183f04d4 120 DCD USB_IRQHandler ; 16+47: USB IRQ
Kovalev_D 23:12e6183f04d4 121 DCD USB_FIQHandler ; 16+48: USB FIQ
Kovalev_D 23:12e6183f04d4 122 DCD ADC_IRQHandler ; 16+49: A/D Converter
Kovalev_D 23:12e6183f04d4 123 DCD WDT_IRQHandler ; 16+50: Watchdog Timer
Kovalev_D 23:12e6183f04d4 124 DCD BOD_IRQHandler ; 16+51: Brown Out Detect
Kovalev_D 23:12e6183f04d4 125 DCD FMC_IRQHandler ; 16+52: IP2111 Flash Memory Controller
Kovalev_D 23:12e6183f04d4 126 DCD PIOINT3_IRQHandler ; 16+53: PIO INT3
Kovalev_D 23:12e6183f04d4 127 DCD PIOINT2_IRQHandler ; 16+54: PIO INT2
Kovalev_D 23:12e6183f04d4 128 DCD PIOINT1_IRQHandler ; 16+55: PIO INT1
Kovalev_D 23:12e6183f04d4 129 DCD PIOINT0_IRQHandler ; 16+56: PIO INT0
Kovalev_D 23:12e6183f04d4 130
Kovalev_D 23:12e6183f04d4 131
Kovalev_D 23:12e6183f04d4 132 IF :LNOT::DEF:NO_CRP
Kovalev_D 23:12e6183f04d4 133 AREA |.ARM.__at_0x02FC|, CODE, READONLY
Kovalev_D 23:12e6183f04d4 134 CRP_Key DCD 0xFFFFFFFF
Kovalev_D 23:12e6183f04d4 135 ENDIF
Kovalev_D 23:12e6183f04d4 136
Kovalev_D 23:12e6183f04d4 137
Kovalev_D 23:12e6183f04d4 138 AREA |.text|, CODE, READONLY
Kovalev_D 23:12e6183f04d4 139
Kovalev_D 23:12e6183f04d4 140
Kovalev_D 23:12e6183f04d4 141 ; Reset Handler
Kovalev_D 23:12e6183f04d4 142
Kovalev_D 23:12e6183f04d4 143 Reset_Handler PROC
Kovalev_D 23:12e6183f04d4 144 EXPORT Reset_Handler [WEAK]
Kovalev_D 23:12e6183f04d4 145 IMPORT SystemInit
Kovalev_D 23:12e6183f04d4 146 IMPORT __main
Kovalev_D 23:12e6183f04d4 147 LDR R0, =SystemInit
Kovalev_D 23:12e6183f04d4 148 BLX R0
Kovalev_D 23:12e6183f04d4 149 LDR R0, =__main
Kovalev_D 23:12e6183f04d4 150 BX R0
Kovalev_D 23:12e6183f04d4 151 ENDP
Kovalev_D 23:12e6183f04d4 152
Kovalev_D 23:12e6183f04d4 153
Kovalev_D 23:12e6183f04d4 154 ; Dummy Exception Handlers (infinite loops which can be modified)
Kovalev_D 23:12e6183f04d4 155
Kovalev_D 23:12e6183f04d4 156 NMI_Handler PROC
Kovalev_D 23:12e6183f04d4 157 EXPORT NMI_Handler [WEAK]
Kovalev_D 23:12e6183f04d4 158 B .
Kovalev_D 23:12e6183f04d4 159 ENDP
Kovalev_D 23:12e6183f04d4 160 HardFault_Handler\
Kovalev_D 23:12e6183f04d4 161 PROC
Kovalev_D 23:12e6183f04d4 162 EXPORT HardFault_Handler [WEAK]
Kovalev_D 23:12e6183f04d4 163 B .
Kovalev_D 23:12e6183f04d4 164 ENDP
Kovalev_D 23:12e6183f04d4 165 MemManage_Handler\
Kovalev_D 23:12e6183f04d4 166 PROC
Kovalev_D 23:12e6183f04d4 167 EXPORT MemManage_Handler [WEAK]
Kovalev_D 23:12e6183f04d4 168 B .
Kovalev_D 23:12e6183f04d4 169 ENDP
Kovalev_D 23:12e6183f04d4 170 BusFault_Handler\
Kovalev_D 23:12e6183f04d4 171 PROC
Kovalev_D 23:12e6183f04d4 172 EXPORT BusFault_Handler [WEAK]
Kovalev_D 23:12e6183f04d4 173 B .
Kovalev_D 23:12e6183f04d4 174 ENDP
Kovalev_D 23:12e6183f04d4 175 UsageFault_Handler\
Kovalev_D 23:12e6183f04d4 176 PROC
Kovalev_D 23:12e6183f04d4 177 EXPORT UsageFault_Handler [WEAK]
Kovalev_D 23:12e6183f04d4 178 B .
Kovalev_D 23:12e6183f04d4 179 ENDP
Kovalev_D 23:12e6183f04d4 180 SVC_Handler PROC
Kovalev_D 23:12e6183f04d4 181 EXPORT SVC_Handler [WEAK]
Kovalev_D 23:12e6183f04d4 182 B .
Kovalev_D 23:12e6183f04d4 183 ENDP
Kovalev_D 23:12e6183f04d4 184 DebugMon_Handler\
Kovalev_D 23:12e6183f04d4 185 PROC
Kovalev_D 23:12e6183f04d4 186 EXPORT DebugMon_Handler [WEAK]
Kovalev_D 23:12e6183f04d4 187 B .
Kovalev_D 23:12e6183f04d4 188 ENDP
Kovalev_D 23:12e6183f04d4 189 PendSV_Handler PROC
Kovalev_D 23:12e6183f04d4 190 EXPORT PendSV_Handler [WEAK]
Kovalev_D 23:12e6183f04d4 191 B .
Kovalev_D 23:12e6183f04d4 192 ENDP
Kovalev_D 23:12e6183f04d4 193 SysTick_Handler PROC
Kovalev_D 23:12e6183f04d4 194 EXPORT SysTick_Handler [WEAK]
Kovalev_D 23:12e6183f04d4 195 B .
Kovalev_D 23:12e6183f04d4 196 ENDP
Kovalev_D 23:12e6183f04d4 197
Kovalev_D 23:12e6183f04d4 198 Default_Handler PROC
Kovalev_D 23:12e6183f04d4 199
Kovalev_D 23:12e6183f04d4 200 EXPORT WAKEUP_IRQHandler [WEAK]
Kovalev_D 23:12e6183f04d4 201 EXPORT I2C_IRQHandler [WEAK]
Kovalev_D 23:12e6183f04d4 202 EXPORT TIMER16_0_IRQHandler [WEAK]
Kovalev_D 23:12e6183f04d4 203 EXPORT TIMER16_1_IRQHandler [WEAK]
Kovalev_D 23:12e6183f04d4 204 EXPORT TIMER32_0_IRQHandler [WEAK]
Kovalev_D 23:12e6183f04d4 205 EXPORT TIMER32_1_IRQHandler [WEAK]
Kovalev_D 23:12e6183f04d4 206 EXPORT SSP_IRQHandler [WEAK]
Kovalev_D 23:12e6183f04d4 207 EXPORT UART_IRQHandler [WEAK]
Kovalev_D 23:12e6183f04d4 208 EXPORT USB_IRQHandler [WEAK]
Kovalev_D 23:12e6183f04d4 209 EXPORT USB_FIQHandler [WEAK]
Kovalev_D 23:12e6183f04d4 210 EXPORT ADC_IRQHandler [WEAK]
Kovalev_D 23:12e6183f04d4 211 EXPORT WDT_IRQHandler [WEAK]
Kovalev_D 23:12e6183f04d4 212 EXPORT BOD_IRQHandler [WEAK]
Kovalev_D 23:12e6183f04d4 213 EXPORT FMC_IRQHandler [WEAK]
Kovalev_D 23:12e6183f04d4 214 EXPORT PIOINT3_IRQHandler [WEAK]
Kovalev_D 23:12e6183f04d4 215 EXPORT PIOINT2_IRQHandler [WEAK]
Kovalev_D 23:12e6183f04d4 216 EXPORT PIOINT1_IRQHandler [WEAK]
Kovalev_D 23:12e6183f04d4 217 EXPORT PIOINT0_IRQHandler [WEAK]
Kovalev_D 23:12e6183f04d4 218
Kovalev_D 23:12e6183f04d4 219 WAKEUP_IRQHandler
Kovalev_D 23:12e6183f04d4 220 I2C_IRQHandler
Kovalev_D 23:12e6183f04d4 221 TIMER16_0_IRQHandler
Kovalev_D 23:12e6183f04d4 222 TIMER16_1_IRQHandler
Kovalev_D 23:12e6183f04d4 223 TIMER32_0_IRQHandler
Kovalev_D 23:12e6183f04d4 224 TIMER32_1_IRQHandler
Kovalev_D 23:12e6183f04d4 225 SSP_IRQHandler
Kovalev_D 23:12e6183f04d4 226 UART_IRQHandler
Kovalev_D 23:12e6183f04d4 227 USB_IRQHandler
Kovalev_D 23:12e6183f04d4 228 USB_FIQHandler
Kovalev_D 23:12e6183f04d4 229 ADC_IRQHandler
Kovalev_D 23:12e6183f04d4 230 WDT_IRQHandler
Kovalev_D 23:12e6183f04d4 231 BOD_IRQHandler
Kovalev_D 23:12e6183f04d4 232 FMC_IRQHandler
Kovalev_D 23:12e6183f04d4 233 PIOINT3_IRQHandler
Kovalev_D 23:12e6183f04d4 234 PIOINT2_IRQHandler
Kovalev_D 23:12e6183f04d4 235 PIOINT1_IRQHandler
Kovalev_D 23:12e6183f04d4 236 PIOINT0_IRQHandler
Kovalev_D 23:12e6183f04d4 237
Kovalev_D 23:12e6183f04d4 238 B .
Kovalev_D 23:12e6183f04d4 239
Kovalev_D 23:12e6183f04d4 240 ENDP
Kovalev_D 23:12e6183f04d4 241
Kovalev_D 23:12e6183f04d4 242
Kovalev_D 23:12e6183f04d4 243 ALIGN
Kovalev_D 23:12e6183f04d4 244
Kovalev_D 23:12e6183f04d4 245
Kovalev_D 23:12e6183f04d4 246 ; User Initial Stack & Heap
Kovalev_D 23:12e6183f04d4 247
Kovalev_D 23:12e6183f04d4 248 IF :DEF:__MICROLIB
Kovalev_D 23:12e6183f04d4 249
Kovalev_D 23:12e6183f04d4 250 EXPORT __initial_sp
Kovalev_D 23:12e6183f04d4 251 EXPORT __heap_base
Kovalev_D 23:12e6183f04d4 252 EXPORT __heap_limit
Kovalev_D 23:12e6183f04d4 253
Kovalev_D 23:12e6183f04d4 254 ELSE
Kovalev_D 23:12e6183f04d4 255
Kovalev_D 23:12e6183f04d4 256 IMPORT __use_two_region_memory
Kovalev_D 23:12e6183f04d4 257 EXPORT __user_initial_stackheap
Kovalev_D 23:12e6183f04d4 258 __user_initial_stackheap
Kovalev_D 23:12e6183f04d4 259
Kovalev_D 23:12e6183f04d4 260 LDR R0, = Heap_Mem
Kovalev_D 23:12e6183f04d4 261 LDR R1, =(Stack_Mem + Stack_Size)
Kovalev_D 23:12e6183f04d4 262 LDR R2, = (Heap_Mem + Heap_Size)
Kovalev_D 23:12e6183f04d4 263 LDR R3, = Stack_Mem
Kovalev_D 23:12e6183f04d4 264 BX LR
Kovalev_D 23:12e6183f04d4 265
Kovalev_D 23:12e6183f04d4 266 ALIGN
Kovalev_D 23:12e6183f04d4 267
Kovalev_D 23:12e6183f04d4 268 ENDIF
Kovalev_D 23:12e6183f04d4 269
Kovalev_D 23:12e6183f04d4 270
Kovalev_D 23:12e6183f04d4 271 END