| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456 |
- {******************************************************************************
- Register definitions and startup code for ATMEL ATtiny 24/44/84
- ******************************************************************************}
- unit attinyx4;
- {$goto on}
- interface
- var
- PRR : byte absolute $20;
- DIDR0 : byte absolute $21;
- ADCSRB : byte absolute $23;
- ADCL : byte absolute $24;
- ADCH : byte absolute $25;
- ADC : word absolute $24;
- ADCSRA : byte absolute $26;
- ADMUX : byte absolute $27;
- ACSR : byte absolute $28;
- TIFR1 : byte absolute $2B;
- TIMSK1 : byte absolute $2C;
- USICR : byte absolute $2D;
- USISR : byte absolute $2E;
- USIDR : byte absolute $2F;
- USIBR : byte absolute $30;
- PCMSK0 : byte absolute $32;
- GPIOR0 : byte absolute $33;
- GPIOR1 : byte absolute $34;
- GPIOR2 : byte absolute $35;
- PINB : byte absolute $36;
- DDRB : byte absolute $37;
- PORTB : byte absolute $38;
- PINA : byte absolute $39;
- DDRA : byte absolute $3A;
- PORTA : byte absolute $3B;
- EECR : byte absolute $3C;
- EEDR : byte absolute $3D;
- EEARL : byte absolute $3E;
- EEARH : byte absolute $3F;
- EEAR : word absolute $3E;
- PCMSK1 : byte absolute $40;
- WDTCSR : byte absolute $41;
- TCCR1C : byte absolute $42;
- GTCCR : byte absolute $43;
- ICR1L : byte absolute $44;
- ICR1H : byte absolute $45;
- ICR1 : word absolute $44;
- CLKPR : byte absolute $46;
- DWDR : byte absolute $47;
- OCR1BL : byte absolute $48;
- OCR1BH : byte absolute $49;
- OCR1B : word absolute $48;
- OCR1AL : byte absolute $4A;
- OCR1AH : byte absolute $4B;
- OCR1A : word absolute $4A;
- TCNT1L : byte absolute $4C;
- TCNT1H : byte absolute $4D;
- TCNT1 : word absolute $4C;
- TCCR1B : byte absolute $4E;
- TCCR1A : byte absolute $4F;
- TCCR0A : byte absolute $50;
- OSCCAL : byte absolute $51;
- TCNT0 : byte absolute $52;
- TCCR0B : byte absolute $53;
- MCUSR : byte absolute $54;
- MCUCR : byte absolute $55;
- OCR0A : byte absolute $56;
- SPMCSR : byte absolute $57;
- TIFR0 : byte absolute $58;
- TIMSK0 : byte absolute $59;
- GIFR : byte absolute $5A;
- GIMSK : byte absolute $5B;
- OCR0B : byte absolute $5C;
- SPL : byte absolute $5D;
- SPH : byte absolute $5E;
- SP : word absolute $5D;
- SREG : byte absolute $5F;
- const
- { PRR }
- PRTIM1 = 3;
- PRTIM0 = 2;
- PRUSI = 1;
- PRADC = 0;
- { DIDR0 }
- ADC7D = 7;
- ADC6D = 6;
- ADC5D = 5;
- ADC4D = 4;
- ADC3D = 3;
- ADC2D = 2;
- ADC1D = 1;
- ADC0D = 0;
- { ADCSRB }
- BIN = 7;
- ACME = 6;
- ADLAR = 4;
- ADTS2 = 2;
- ADTS1 = 1;
- ADTS0 = 0;
- { ADCSRA }
- ADEN = 7;
- ADSC = 6;
- ADATE = 5;
- ADIF = 4;
- ADIE = 3;
- ADPS2 = 2;
- ADPS1 = 1;
- ADPS0 = 0;
- { ADMUX }
- REFS1 = 7;
- REFS0 = 6;
- MUX5 = 5;
- MUX4 = 4;
- MUX3 = 3;
- MUX2 = 2;
- MUX1 = 1;
- MUX0 = 0;
- { ACSR }
- ACD = 7;
- ACBG = 6;
- ACO = 5;
- ACI = 4;
- ACIE = 3;
- ACIC = 2;
- ACIS1 = 1;
- ACIS0 = 0;
- { TIFR1 }
- ICF1 = 5;
- OCF1B = 2;
- OCF1A = 1;
- TOV1 = 0;
- { TIMSK1 }
- ICIE1 = 5;
- OCIE1B = 2;
- OCIE1A = 1;
- TOIE1 = 0;
- { USICR }
- USISIE = 7;
- USIOIE = 6;
- USIWM1 = 5;
- USIWM0 = 4;
- USICS1 = 3;
- USICS0 = 2;
- USICLK = 1;
- USITC = 0;
- { USISR }
- USISIF = 7;
- USIOIF = 6;
- USIPF = 5;
- USIDC = 4;
- USICNT3 = 3;
- USICNT2 = 2;
- USICNT1 = 1;
- USICNT0 = 0;
- { PCMSK0 }
- PCINT7 = 7;
- PCINT6 = 6;
- PCINT5 = 5;
- PCINT4 = 4;
- PCINT3 = 3;
- PCINT2 = 2;
- PCINT1 = 1;
- PCINT0 = 0;
- { PINB }
- PINB3 = 3;
- PINB2 = 2;
- PINB1 = 1;
- PINB0 = 0;
- { DDRB }
- DDB3 = 3;
- DDB2 = 2;
- DDB1 = 1;
- DDB0 = 0;
- { PORTB }
- PORTB3 = 3;
- PORTB2 = 2;
- PORTB1 = 1;
- PORTB0 = 0;
- { PINA }
- PINA7 = 7;
- PINA6 = 6;
- PINA5 = 5;
- PINA4 = 4;
- PINA3 = 3;
- PINA2 = 2;
- PINA1 = 1;
- PINA0 = 0;
- { DDRA }
- DDA7 = 7;
- DDA6 = 6;
- DDA5 = 5;
- DDA4 = 4;
- DDA3 = 3;
- DDA2 = 2;
- DDA1 = 1;
- DDA0 = 0;
- { PORTA }
- PORTA7 = 7;
- PORTA6 = 6;
- PORTA5 = 5;
- PORTA4 = 4;
- PORTA3 = 3;
- PORTA2 = 2;
- PORTA1 = 1;
- PORTA0 = 0;
- { EECR }
- EEPM1 = 5;
- EEPM0 = 4;
- EERIE = 3;
- EEMPE = 2;
- EEPE = 1;
- EERE = 0;
- { EEARL }
- EEAR7 = 7;
- EEAR6 = 6;
- EEAR5 = 5;
- EEAR4 = 4;
- EEAR3 = 3;
- EEAR2 = 2;
- EEAR1 = 1;
- EEAR0 = 0;
- { EEARH }
- EEAR8 = 0;
- { PCMSK1 }
- PCINT11 = 3;
- PCINT10 = 2;
- PCINT9 = 1;
- PCINT8 = 0;
- { WDTCSR }
- WDIF = 7;
- WDIE = 6;
- WDP3 = 5;
- WDCE = 4;
- WDE = 3;
- WDP2 = 2;
- WDP1 = 1;
- WDP0 = 0;
- { TCCR1C }
- FOC1A = 7;
- FOC1B = 6;
- { GTCCR }
- TSM = 7;
- PSR10 = 0;
- { CLKPR }
- CLKPCE = 7;
- CLKPS3 = 3;
- CLKPS2 = 2;
- CLKPS1 = 1;
- CLKPS0 = 0;
- { TCCR1B }
- ICNC1 = 7;
- ICES1 = 6;
- WGM13 = 4;
- WGM12 = 3;
- CS12 = 2;
- CS11 = 1;
- CS10 = 0;
- { TCCR1A }
- COM1A1 = 7;
- COM1A0 = 6;
- COM1B1 = 5;
- COM1B0 = 4;
- WGM11 = 1;
- WGM10 = 0;
- { TCCR0A }
- COM0A1 = 7;
- COM0A0 = 6;
- COM0B1 = 5;
- COM0B0 = 4;
- WGM01 = 1;
- WGM00 = 0;
- { OSCCAL }
- CAL7 = 7;
- CAL6 = 6;
- CAL5 = 5;
- CAL4 = 4;
- CAL3 = 3;
- CAL2 = 2;
- CAL1 = 1;
- CAL0 = 0;
- { TCCR0B }
- FOC0A = 7;
- FOC0B = 6;
- WGM02 = 3;
- CS02 = 2;
- CS01 = 1;
- CS00 = 0;
- { MCUSR }
- WDRF = 3;
- BORF = 2;
- EXTRF = 1;
- PORF = 0;
- { MCUCR }
- BODS = 7;
- PUD = 6;
- SE = 5;
- SM1 = 4;
- SM0 = 3;
- BODSE = 2;
- ISC01 = 1;
- ISC00 = 0;
- { SPMCSR }
- RSIG = 5;
- CTPB = 4;
- RFLB = 3;
- PGWRT = 2;
- PGERS = 1;
- SPMEN = 0;
- { TIFR0 }
- OCF0B = 2;
- OCF0A = 1;
- TOV0 = 0;
- { TIMSK0 }
- OCIE0B = 2;
- OCIE0A = 1;
- TOIE0 = 0;
- { GIFR }
- INTF0 = 6;
- PCIF1 = 5;
- PCIF0 = 4;
- { GIMSK }
- INT0 = 6;
- PCIE1 = 5;
- PCIE0 = 4;
- {$define RELBRANCHES}
- implementation
- {$i avrcommon.inc}
- procedure Int00Handler; external name 'Int00Handler';
- procedure Int01Handler; external name 'Int01Handler';
- procedure Int02Handler; external name 'Int02Handler';
- procedure Int03Handler; external name 'Int03Handler';
- procedure Int04Handler; external name 'Int04Handler';
- procedure Int05Handler; external name 'Int05Handler';
- procedure Int06Handler; external name 'Int06Handler';
- procedure Int07Handler; external name 'Int07Handler';
- procedure Int08Handler; external name 'Int08Handler';
- procedure Int09Handler; external name 'Int09Handler';
- procedure Int10Handler; external name 'Int10Handler';
- procedure Int11Handler; external name 'Int11Handler';
- procedure Int12Handler; external name 'Int12Handler';
- procedure Int13Handler; external name 'Int13Handler';
- procedure Int14Handler; external name 'Int14Handler';
- procedure Int15Handler; external name 'Int15Handler';
- procedure Int16Handler; external name 'Int16Handler';
- procedure _FPC_start; assembler; nostackframe;
- label
- _start;
- asm
- .init
- .globl _start
- rjmp _start
- rjmp Int00Handler
- rjmp Int01Handler
- rjmp Int02Handler
- rjmp Int03Handler
- rjmp Int04Handler
- rjmp Int05Handler
- rjmp Int06Handler
- rjmp Int07Handler
- rjmp Int08Handler
- rjmp Int09Handler
- rjmp Int10Handler
- rjmp Int11Handler
- rjmp Int12Handler
- rjmp Int13Handler
- rjmp Int14Handler
- rjmp Int15Handler
- rjmp Int16Handler
- {
- all ATMEL MCUs use the same startup code, the details are
- governed by defines
- }
- {$i start.inc}
- .weak Int00Handler
- .weak Int01Handler
- .weak Int02Handler
- .weak Int03Handler
- .weak Int04Handler
- .weak Int05Handler
- .weak Int06Handler
- .weak Int07Handler
- .weak Int08Handler
- .weak Int09Handler
- .weak Int10Handler
- .weak Int11Handler
- .weak Int12Handler
- .weak Int13Handler
- .weak Int14Handler
- .weak Int15Handler
- .weak Int16Handler
- .set Int00Handler, Default_IRQ_handler
- .set Int01Handler, Default_IRQ_handler
- .set Int02Handler, Default_IRQ_handler
- .set Int03Handler, Default_IRQ_handler
- .set Int04Handler, Default_IRQ_handler
- .set Int05Handler, Default_IRQ_handler
- .set Int06Handler, Default_IRQ_handler
- .set Int07Handler, Default_IRQ_handler
- .set Int08Handler, Default_IRQ_handler
- .set Int09Handler, Default_IRQ_handler
- .set Int10Handler, Default_IRQ_handler
- .set Int11Handler, Default_IRQ_handler
- .set Int12Handler, Default_IRQ_handler
- .set Int13Handler, Default_IRQ_handler
- .set Int14Handler, Default_IRQ_handler
- .set Int15Handler, Default_IRQ_handler
- .set Int16Handler, Default_IRQ_handler
- end;
- end.
|