Ada 83 on AVR microcontrollers

The famous Arduino Uno uses an Atmel ATMEGA 328P chip. The base module for 328P register map can be conveniently expressed by a record type and its representation clause.

-------------------------------------------------------------------------------------------------------------------------
-- CC BY SA	ATMEGA_328P.ADS	VINCENT MORIN	23/3/2025		UNIVERSITE DE BRETAGNE OCCIDENTALE
-------------------------------------------------------------------------------------------------------------------------
--	1	2	3	4	5	6	7	8	9	0	1	2


with TYPES;
use  TYPES;

						-----------
		package				ATMEGA_328P
						-----------
is

  type RAM_MAP is record
	-- -----------------------------------------------------------------------------
	--	PAGE 534 NOTICE 8271B-AVR
	-- -----------------------------------------------------------------------------
	PIN_B, DDR_B, PORT_B			: BYTE;
	PIN_C, DDR_C, PORT_C			: BYTE;						
	PIN_D, DDR_D, PORT_D			: BYTE;						
	TIFR0_OCF0A, TIFR0_OCF0B, TIFR0_TOV0		: BOOLEAN;

	TIFR1_ICF1,
	TIFR1_OCF1A, TIFR1_OCF1B, TIFR1_TOV1		: BOOLEAN;

	TIFR2_OCF2A, TIFR2_OCF2B, TIFR2_TOV2		: BOOLEAN;

	PCIFR					: U3;
	-- -----------------------------------------------------------------------------
	--	PAGE 533 NOTICE 8271B-AVR
	-- -----------------------------------------------------------------------------
	EIFR_INTF,
	EIMSK_INT					: U2;
	GPIOR0					: U8;

	EECR_EEPM					: U2;
	EECR_EERIE, EECR_EEMPE, EECR_EEPE,
	EECR_EERE					: BOOLEAN;

	EEDR					: U8;
	EEAR					: U16;

	GTCCR_TSM, GTCCR_PSRASY, GTCCR_PSRSYNC		: BOOLEAN;
	
	TCCR0A_COM0A, TCCR0A_COM0B, TCCR0A_WGM		: U2;

	TCCR0B_WGM				: BOOLEAN;
	TCCR0B_CS					: U3;
	TCCR0B_FOC0A, TCCR0B_FOC0B			: BOOLEAN;

	TCNT0,
	OCR0A,
	OCR0B					: U8;

	GPIOR1, GPIOR2				: U8;
	SPCR_SPIE, SPCR_SPE,  SPCR_DORD,
	SPCR_MSTR, SPCR_CPOL, SPCR_CPHA		: BOOLEAN;
	SPCR_SPR					: U2;

	SPSR_SPIF, SPSR_WCOL, SPSR_SPI2X		: BOOLEAN;
	SPDR					: U8;

	ACSR_ACD,  ACSR_ACBG, ACSR_ACO, ACSR_ACI,
	ACSR_ACIE, ACSR_ACIC			: BOOLEAN;
	ACSR_ACIS					: U2;

	SMCR_SM					: U3;
	SMCR_SE					: BOOLEAN;

	MCUSR_WDRF, MCUSR_BORF, MCUSR_EXTRF,
	MCUSR_PORF				: BOOLEAN;

	MCUCR_BODS,  MCUCR_BODSE, MCUCR_PUD,
	MCUCR_IVSEL, MCUCR_IVCE			: BOOLEAN;

	SPMCSR_SPMIE,  SPMCSR_RWWSB,
	SPMCSR_RWWSRE, SPMCSR_BLBSET,
	SPMCSR_PGWRT,  SPMCSR_PGERS,
	SPMCSR_SELFPRGEN				: BOOLEAN;

	SP					: U11;

	SREG_I, SREG_T, SREG_H, SREG_S,
	SREG_V, SREG_N, SREG_Z, SREG_C		: BOOLEAN;

	WDTCSR_WDIF, WDTCSR_WDIE, WDTCSR_WDP3,
	WDTCSR_WDCE, WDTCSR_WDE			: BOOLEAN;
	WDTCSR_WDP				: U3;

	CLKPR_CLKPCE				: BOOLEAN;
	CLKPR_CLKPS				: U4;

	PRR_PRTWI,  PRR_PRTIM2, PRR_PRTIM0,
	PRR_PRTIM1, PRR_PRSPI,  PRR_PRUSART0,
	PRR_PRADC					: BOOLEAN;

	OSCCAL					: U8;
	PCICR_PCIE				: U3;

	EICRA_ISC1, EICRA_ISC0			: U2;

	PCMSK0_PCINT, PCMSK1_PCINT, PCMSK2_PCINT	: U8;

	TIMSK0_OCIE0B,
	TIMSK0_OCIE0A, TIMSK0_TOIE0			: BOOLEAN;

	TIMSK1_ICIE1,  TIMSK1_OCIE1B,
	TIMSK1_OCIE1A, TIMSK1_TOIE1			: BOOLEAN;

	TIMSK2_OCIE2B,
	TIMSK2_OCIE2A, TIMSK2_TOIE2			: BOOLEAN;

	ADC					: U16;
	ADCSRA_ADEN,  ADCSRA_ADSC,
	ADCSRA_ADATE, ADCSRA_ADIF,
	ADCSRA_ADIE,  ADMUX_ADLAR,
	ADCSRB_ACME				: BOOLEAN;
	ADCSRA_ADPS,  ADCSRB_ADTS			: U3;
	ADMUX_REFS				: U2;
	ADMUX_MUX					: U4;
	-- -----------------------------------------------------------------------------
	--	PAGE 532 NOTICE 8271B-AVR
	-- -----------------------------------------------------------------------------
	DIDR0_ADC5D, DIDR0_ADC4D, DIDR0_ADC3D,
	DIDR0_ADC2D, DIDR0_ADC1D, DIDR0_ADC0D		: BOOLEAN;
	DIDR1_AIN1D, DIDR1_AIN0D			: BOOLEAN;

	TCCR1A_COM1A, TCCR1A_COM1B, TCCR1A_WGM		: U2;
	TCCR1B_ICNC1, TCCR1B_ICES1			: BOOLEAN;
	TCCR1B_WGM				: U2;
	TCCR1B_CS					: U3;
	TCCR1C_FOC1A, TCCR1C_FOC1B			: BOOLEAN;
	TCNT1, ICR1,  OCR1A, OCR1B			: U16;

	TCCR2A_COM2A, TCCR2A_COM2B, TCCR2A_WGM		: U2;
	TCCR2B_WGM				: BOOLEAN;
	TCCR2B_CS					: U3;
	TCCR2B_FOC2A, TCCR2B_FOC2B			: BOOLEAN;
	TCNT2, OCR2A, OCR2B				: U8;

	ASSR_EXCLK,   ASSR_AS2,	ASSR_TCN2UB,
	ASSR_OCR2AUB, ASSR_OCR2BUB,
	ASSR_TCR2AUB, ASSR_TCR2BUB			: BOOLEAN;

	TWBR					: U8;
	TWSR_TWS					: U5;
	TWSR_TWPS					: U2;
	TWAR_TWA					: U7;
	TWAR_TWGCE				: BOOLEAN;
	TWDR					: U8;
	TWCR_TWINT, TWCR_TWEA, TWCR_TWSTA,
	TWCR_TWSTO, TWCR_TWWC, TWCR_TWEN,
	TWCR_TWIE					: BOOLEAN;
	TWAMR_TWAM				: U7;
	-- -----------------------------------------------------------------------------
	--	PAGE 531 NOTICE 8271B-AVR
	-- -----------------------------------------------------------------------------
	UCSR0A_RXC0, UCSR0A_TXC0, UCSR0A_UDRE0,
	UCSR0A_FE0,  UCSR0A_DOR0, UCSR0A_UPE0,
	UCSR0A_U2X0, UCSR0A_MPCM0			: BOOLEAN;

	UCSR0B_RXCIE0, UCSR0B_TXCIE0,
	UCSR0B_UDRIE0, UCSR0B_RXEN0,
	UCSR0B_TXEN0,  UCSR0B_UCSZ02,
	UCSR0B_RXB80,  UCSR0B_TXB80			: BOOLEAN;

	UCSR0C_UMSEL0, UCSR0C_UPM0,
	UCSR0C_UCSZ0				: U2;
	UCSR0C_USBS0, UCSR0C_UCPOL0			: BOOLEAN;
	UBRR					: U12;
	UDR0					: U8;
	end record;


  for RAM_MAP use
	record at mod 1;
	-- -----------------------------------------------------------------------------
	--	PAGE 534 NOTICE 8271B-AVR
	-- -----------------------------------------------------------------------------
-- 16#23# .. 16#2B#
	PIN_B		at 16#23# range 0..7;
	DDR_B		at 16#24# range 0..7;
	PORT_B		at 16#25# range 0..7;
	PIN_C		at 16#26# range 0..7;
	DDR_C		at 16#27# range 0..7;
	PORT_C		at 16#28# range 0..7;
	PIN_D		at 16#29# range 0..7;
	DDR_D		at 16#2A# range 0..7;
	PORT_D		at 16#2B# range 0..7;
-- 16#35#
	TIFR0_OCF0A	at 16#35# range 1..1;	TIFR0_OCF0B	at 16#35# range 2..2;
	TIFR0_TOV0	at 16#35# range 0..0;
-- 16#36#
	TIFR1_ICF1	at 16#36# range 5..5;	TIFR1_OCF1A	at 16#36# range 1..1;
	TIFR1_OCF1B	at 16#36# range 2..2;	TIFR1_TOV1	at 16#36# range 0..0;
-- 16#37#
	TIFR2_OCF2A	at 16#37# range 1..1;	TIFR2_OCF2B	at 16#37# range 2..2;
	TIFR2_TOV2	at 16#37# range 0..0;
-- 16#3B#
	PCIFR		at 16#3B# range 0..2;
	-- -----------------------------------------------------------------------------
	--	PAGE 533 NOTICE 8271B-AVR
	-- -----------------------------------------------------------------------------
-- 16#3C#
	EIFR_INTF		at 16#3C# range 0..1;
-- 16#3D#
	EIMSK_INT		at 16#3D# range 0..1;
-- 16#3E#
	GPIOR0		at 16#3E# range 0..7;
-- 16#3F#
	EECR_EEPM		at 16#3F# range 4..5;	EECR_EERIE	at 16#3F# range 3..3;
	EECR_EEMPE	at 16#3F# range 2..2;	EECR_EEPE		at 16#3F# range 1..1;
	EECR_EERE		at 16#3F# range 0..0;
-- 16#40#
	EEDR		at 16#40# range 0..7;
-- 16#41#
	EEAR		at 16#41# range 0..15;
-- 16#43#
	GTCCR_TSM		at 16#43# range 7..7;	GTCCR_PSRASY	at 16#43# range 1..1;
	GTCCR_PSRSYNC	at 16#43# range 0..0;
-- 16#44#
	TCCR0A_COM0A	at 16#44# range 6..7;	TCCR0A_COM0B	at 16#44# range 4..5;
	TCCR0A_WGM	at 16#44# range 0..1;
-- 16#45#
	TCCR0B_FOC0A	at 16#45# range 7..7;	TCCR0B_FOC0B	at 16#45# range 6..6;
	TCCR0B_WGM	at 16#45# range 3..3;	TCCR0B_CS		at 16#45# range 0..2;
-- 16#46#
	TCNT0		at 16#46# range 0..7;
-- 16#47#
	OCR0A		at 16#47# range 0..7;
-- 16#48#
	OCR0B		at 16#48# range 0..7;
-- 16#4A#
	GPIOR1		at 16#4A# range 0..7;
-- 16#4B#
	GPIOR2		at 16#4B# range 0..7;
-- 16#4C#
	SPCR_SPIE		at 16#4C# range 7..7;	SPCR_SPE		at 16#4C# range 6..6;
	SPCR_DORD		at 16#4C# range 5..5;	SPCR_MSTR		at 16#4C# range 4..4;
	SPCR_CPOL		at 16#4C# range 3..3;	SPCR_CPHA		at 16#4C# range 2..2;
	SPCR_SPR		at 16#4C# range 0..1;
-- 16#4D#
	SPSR_SPIF		at 16#4D# range 7..7;	SPSR_WCOL		at 16#4D# range 6..6;
	SPSR_SPI2X	at 16#4D# range 0..0;
-- 16#4E#
	SPDR		at 16#4E# range 0..7;
-- 16#50#
	ACSR_ACD		at 16#50# range 7..7;	ACSR_ACBG		at 16#50# range 6..6;
	ACSR_ACO		at 16#50# range 5..5;	ACSR_ACI		at 16#50# range 4..4;
	ACSR_ACIE		at 16#50# range 3..3;	ACSR_ACIC		at 16#50# range 2..2;
	ACSR_ACIS		at 16#50# range 0..1;
-- 16#53#
	SMCR_SM		at 16#53# range 1..3;
	SMCR_SE		at 16#53# range 0..0;
-- 16#54#
	MCUSR_WDRF	at 16#54# range 3..3;	MCUSR_BORF	at 16#54# range 2..2;
	MCUSR_EXTRF	at 16#54# range 1..1;	MCUSR_PORF	at 16#54# range 0..0;
-- 16#55#
	MCUCR_BODS	at 16#55# range 6..6;	MCUCR_BODSE	at 16#55# range 5..5;
	MCUCR_PUD		at 16#55# range 4..4;	MCUCR_IVSEL	at 16#55# range 1..1;
	MCUCR_IVCE	at 16#55# range 0..0;
-- 16#57#
	SPMCSR_SPMIE	at 16#57# range 7..7;	SPMCSR_RWWSB	at 16#57# range 6..6;
	SPMCSR_RWWSRE	at 16#57# range 4..4;	SPMCSR_BLBSET	at 16#57# range 3..3;
	SPMCSR_PGWRT	at 16#57# range 2..2;	SPMCSR_PGERS	at 16#57# range 1..1;
	SPMCSR_SELFPRGEN	at 16#57# range 0..0;
-- 16#5D#
	SP		at 16#5D# range 0..10;
-- 16#5F#
	SREG_I		at 16#5F# range 7..7;	SREG_T		at 16#5F# range 6..6;
	SREG_H		at 16#5F# range 5..5;	SREG_S		at 16#5F# range 4..4;
	SREG_V		at 16#5F# range 3..3;	SREG_N		at 16#5F# range 2..2;
	SREG_Z		at 16#5F# range 1..1;	SREG_C		at 16#5F# range 0..0;
-- 16#60#
	WDTCSR_WDIF	at 16#60# range 7..7;	WDTCSR_WDIE	at 16#60# range 6..6;
	WDTCSR_WDP3	at 16#60# range 5..5;	WDTCSR_WDCE	at 16#60# range 4..4;
	WDTCSR_WDE	at 16#60# range 3..3;	WDTCSR_WDP	at 16#60# range 0..2;
-- 16#61#
	CLKPR_CLKPCE	at 16#61# range 7..7;
	CLKPR_CLKPS	at 16#61# range 0..3;
-- 16#64#
	PRR_PRTWI		at 16#64# range 7..7;	PRR_PRTIM2	at 16#64# range 6..6;
	PRR_PRTIM0	at 16#64# range 5..5;	PRR_PRTIM1	at 16#64# range 3..3;
	PRR_PRSPI		at 16#64# range 2..2;	PRR_PRUSART0	at 16#64# range 1..1;
	PRR_PRADC		at 16#64# range 0..0;
-- 16#66#
	OSCCAL		at 16#66# range 0..7;
-- 16#68#
	PCICR_PCIE	at 16#68# range 0..2;
-- 16#69#
	EICRA_ISC1	at 16#69# range 2..3;	EICRA_ISC0	at 16#69# range 0..1;
-- 16#6B#
	PCMSK0_PCINT	at 16#6B# range 0..7;
-- 16#6C#
	PCMSK1_PCINT	at 16#6C# range 0..7;
-- 16#6D#
	PCMSK2_PCINT	at 16#6D# range 0..7;
-- 16#6E#
	TIMSK0_OCIE0B	at 16#6E# range 2..2;	TIMSK0_OCIE0A	at 16#6E# range 1..1;
	TIMSK0_TOIE0	at 16#6E# range 0..0;
-- 16#6F#
	TIMSK1_ICIE1	at 16#6F# range 5..5;
	TIMSK1_OCIE1B	at 16#6F# range 2..2;	TIMSK1_OCIE1A	at 16#6F# range 1..1;
	TIMSK1_TOIE1	at 16#6F# range 0..0;
-- 16#70#
	TIMSK2_OCIE2B	at 16#70# range 2..2;	TIMSK2_OCIE2A	at 16#70# range 1..1;
	TIMSK2_TOIE2	at 16#70# range 0..0;
-- 16#78#
	ADC		at 16#78# range 0..15;
-- 16#7A#
	ADCSRA_ADEN	at 16#7A# range 7..7;	ADCSRA_ADSC	at 16#7A# range 6..6;
	ADCSRA_ADATE	at 16#7A# range 5..5;	ADCSRA_ADIF	at 16#7A# range 4..4;
	ADCSRA_ADIE	at 16#7A# range 3..3;	ADCSRA_ADPS	at 16#7A# range 0..2;
-- 16#7B#
	ADCSRB_ACME	at 16#7B# range 6..6;	ADCSRB_ADTS	at 16#7B# range 0..2;
-- 16#7C#
	ADMUX_REFS	at 16#7C# range 6..7;	ADMUX_ADLAR	at 16#7C# range 5..5;
	ADMUX_MUX		at 16#7C# range 0..3;
	-- -----------------------------------------------------------------------------
	--	PAGE 532 NOTICE 8271B-AVR
	-- -----------------------------------------------------------------------------
-- 16#7E#
	DIDR0_ADC5D	at 16#7E# range 5..5;	DIDR0_ADC4D	at 16#7E# range 4..4;
	DIDR0_ADC3D	at 16#7E# range 3..3;	DIDR0_ADC2D	at 16#7E# range 2..2;
	DIDR0_ADC1D	at 16#7E# range 1..1;	DIDR0_ADC0D	at 16#7E# range 0..0;
-- 16#7F#
	DIDR1_AIN1D	at 16#7F# range 1..1;	DIDR1_AIN0D	at 16#7F# range 0..0;
-- 16#80#
	TCCR1A_COM1A	at 16#80# range 6..7;	TCCR1A_COM1B	at 16#80# range 4..5;
	TCCR1A_WGM	at 16#80# range 0..1;
-- 16#81#
	TCCR1B_ICNC1	at 16#81# range 7..7;	TCCR1B_ICES1	at 16#81# range 6..6;
	TCCR1B_WGM	at 16#81# range 3..4;	TCCR1B_CS		at 16#81# range 0..2;
-- 16#82#
	TCCR1C_FOC1A	at 16#82# range 7..7;	TCCR1C_FOC1B	at 16#82# range 6..6;
-- 16#84#
	TCNT1		at 16#84# range 0..15;
-- 16#86#
	ICR1		at 16#86# range 0..15;
-- 16#88#
	OCR1A		at 16#88# range 0..15;
-- 16#8A#
	OCR1B		at 16#8A# range 0..15;
-- 16#B0#
	TCCR2A_COM2A	at 16#B0# range 6..7;	TCCR2A_COM2B	at 16#B0# range 4..5;
	TCCR2A_WGM	at 16#B0# range 0..1;
-- 16#B1#
	TCCR2B_FOC2A	at 16#B1# range 7..7;	TCCR2B_FOC2B	at 16#B1# range 6..6;
	TCCR2B_WGM	at 16#B1# range 3..3;	TCCR2B_CS		at 16#B1# range 0..2;
-- 16#B2#
	TCNT2		at 16#B2# range 0..7;
-- 16#B3#
	OCR2A		at 16#B3# range 0..7;
-- 16#B4#
	OCR2B		at 16#B4# range 0..7;
-- 16#B6#
	ASSR_EXCLK	at 16#B6# range 6..6;	ASSR_AS2		at 16#B6# range 5..5;
	ASSR_TCN2UB	at 16#B6# range 4..4;	ASSR_OCR2AUB	at 16#B6# range 3..3;
	ASSR_OCR2BUB	at 16#B6# range 2..2;	ASSR_TCR2AUB	at 16#B6# range 1..1;
	ASSR_TCR2BUB	at 16#B6# range 0..0;
-- 16#B8#
	TWBR		at 16#B8# range 0..7;
-- 16#B9#
	TWSR_TWS		at 16#B9# range 3..7;
	TWSR_TWPS		at 16#B9# range 0..1;
-- 16#BA#
	TWAR_TWA		at 16#BA# range 1..7;
	TWAR_TWGCE	at 16#BA# range 0..0;
-- 16#BB#
	TWDR		at 16#BB# range 0..7;
-- 16#BC#
	TWCR_TWINT	at 16#BC# range 7..7;	TWCR_TWEA		at 16#BC# range 6..6;
	TWCR_TWSTA	at 16#BC# range 5..5;	TWCR_TWSTO	at 16#BC# range 4..4;
	TWCR_TWWC		at 16#BC# range 3..3;	TWCR_TWEN		at 16#BC# range 2..2;
	TWCR_TWIE		at 16#BC# range 0..0;
-- 16#BD#
	TWAMR_TWAM	at 16#BD# range 1..7;
	-- -----------------------------------------------------------------------------
	--	PAGE 531 NOTICE 8271B-AVR
	-- -----------------------------------------------------------------------------
-- 16#C0#
	UCSR0A_RXC0	at 16#C0# range 7..7;	UCSR0A_TXC0	at 16#C0# range 6..6;
	UCSR0A_UDRE0	at 16#C0# range 5..5;	UCSR0A_FE0	at 16#C0# range 4..4;
	UCSR0A_DOR0	at 16#C0# range 3..3;	UCSR0A_UPE0	at 16#C0# range 2..2;
	UCSR0A_U2X0	at 16#C0# range 1..1;	UCSR0A_MPCM0	at 16#C0# range 0..0;
-- 16#C1#
	UCSR0B_RXCIE0	at 16#C1# range 7..7;	UCSR0B_TXCIE0	at 16#C1# range 6..6;
	UCSR0B_UDRIE0	at 16#C1# range 5..5;	UCSR0B_RXEN0	at 16#C1# range 4..4;
	UCSR0B_TXEN0	at 16#C1# range 3..3;	UCSR0B_UCSZ02	at 16#C1# range 2..2;
	UCSR0B_RXB80	at 16#C1# range 1..1;	UCSR0B_TXB80	at 16#C1# range 0..0;
-- 16#C2#
	UCSR0C_UMSEL0	at 16#C2# range 6..7;	UCSR0C_UPM0	at 16#C2# range 4..5;
	UCSR0C_USBS0	at 16#C2# range 3..3;	UCSR0C_UCSZ0	at 16#C2# range 1..2;
	UCSR0C_UCPOL0	at 16#C2# range 0..0;
-- 16#C4#
	UBRR		at 16#C4# range 0..11;
-- 16#C6#
	UDR0		at 16#C6# range 0..7;
-- OUF !!
	end record;

	pragma PACK( RAM_MAP );

  REG	: RAM_MAP;	for REG'ADDRESS use 0;


  procedure VECT_1;		pragma EXPORT ( C, VECT_1, "__vector_1" );
  procedure VECT_2;		pragma EXPORT ( C, VECT_2, "__vector_2" );
  procedure VECT_3;		pragma EXPORT ( C, VECT_3, "__vector_3" );
  procedure VECT_4;		pragma EXPORT ( C, VECT_4, "__vector_4" );
  procedure VECT_5;		pragma EXPORT ( C, VECT_5, "__vector_5" );
  procedure VECT_6;		pragma EXPORT ( C, VECT_6, "__vector_6" );
  procedure VECT_7;		pragma EXPORT ( C, VECT_7, "__vector_7" );
  procedure VECT_8;		pragma EXPORT ( C, VECT_8, "__vector_8" );
  procedure VECT_9;		pragma EXPORT ( C, VECT_9, "__vector_9" );
  procedure VECT_10;	pragma EXPORT ( C, VECT_10, "__vector_10" );

  procedure VECT_12;	pragma EXPORT ( C, VECT_12, "__vector_12" );
  procedure VECT_13;	pragma EXPORT ( C, VECT_13, "__vector_13" );
  procedure VECT_14;	pragma EXPORT ( C, VECT_14, "__vector_14" );
  procedure VECT_15;	pragma EXPORT ( C, VECT_15, "__vector_15" );
  procedure VECT_16;	pragma EXPORT ( C, VECT_16, "__vector_16" );
  procedure VECT_17;	pragma EXPORT ( C, VECT_17, "__vector_17" );
  procedure VECT_20;	pragma EXPORT ( C, VECT_20, "__vector_20" );
  procedure VECT_21;	pragma EXPORT ( C, VECT_21, "__vector_21" );
  procedure VECT_22;	pragma EXPORT ( C, VECT_22, "__vector_22" );
  procedure VECT_23;	pragma EXPORT ( C, VECT_23, "__vector_23" );

  procedure VECT_25;	pragma EXPORT ( C, VECT_25, "__vector_25" );

	-----------
end	ATMEGA_328P;
	-----------

--	1	2	3	4	5	6	7	8	9	0	1	2
-------------------------------------------------------------------------------------------------------------------------