From dafcf72d5b74f777a5387c9d482f933008ff0e7b Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Mon, 5 Oct 2020 16:56:09 -0400 Subject: [PATCH] Add ATmega328P definitions --- blk/065 | 16 ++++++++++++++++ blk/066 | 6 ++++++ doc/asm.txt | 16 ++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 blk/065 create mode 100644 blk/066 diff --git a/blk/065 b/blk/065 new file mode 100644 index 0000000..1de4477 --- /dev/null +++ b/blk/065 @@ -0,0 +1,16 @@ +( ATmega328P definitions ) : > CONSTANT ; +0xc6 > UDR0 0xc4 > UBRR0L 0xc5 > UBRR0H 0xc2 > UCSR0C +0xc1 > UCSR0B 0xc0 > UCSR0A 0xbd > TWAMR 0xbc > TWCR +0xbb > TWDR 0xba > TWAR 0xb9 > TWSR 0xb8 > TWBR 0xb6 > ASSR +0xb4 > OCR2B 0xb3 > OCR2A 0xb2 > TCNT2 0xb1 > TCCR2B +0xb0 > TCCR2A 0x8a > OCR1BL 0x8b > OCR1BH 0x88 > OCR1AL +0x89 > OCR1AH 0x86 > ICR1L 0x87 > ICR1H 0x84 > TCNT1L +0x85 > TCNT1H 0x82 > TCCR1C 0x81 > TCCR1B 0x80 > TCCR1A +0x7f > DIDR1 0x7e > DIDR0 0x7c > ADMUX 0x7b > ADCSRB +0x7a > ADCSRA 0x79 > ADCH 0x78 > ADCL 0x70 > TIMSK2 +0x6f > TIMSK1 0x6e > TIMSK0 0x6c > PCMSK1 0x6d > PCMSK2 +0x6b > PCMSK0 0x69 > EICRA 0x68 > PCICR 0x66 > OSCCAL +0x64 > PRR 0x61 > CLKPR 0x60 > WDTCSR 0x3f > SREG 0x3d > SPL +0x3e > SPH 0x37 > SPMCSR 0x35 > MCUCR 0x34 > MCUSR 0x33 > SMCR +0x30 > ACSR 0x2e > SPDR 0x2d > SPSR 0x2c > SPCR 0x2b > GPIOR2 +0x2a > GPIOR1 0x28 > OCR0B 0x27 > OCR0A 0x26 > TCNT0 ( cont. ) diff --git a/blk/066 b/blk/066 new file mode 100644 index 0000000..3c6f9eb --- /dev/null +++ b/blk/066 @@ -0,0 +1,6 @@ +( cont. ) 0x25 > TCCR0B 0x24 > TCCR0A 0x23 > GTCCR +0x22 > EEARH 0x21 > EEARL 0x20 > EEDR 0x1f > EECR +0x1e > GPIOR0 0x1d > EIMSK 0x1c > EIFR 0x1b > PCIFR +0x17 > TIFR2 0x16 > TIFR1 0x15 > TIFR0 0x0b > PORTD 0x0a > DDRD +0x09 > PIND 0x08 > PORTC 0x07 > DDRC 0x06 > PINC 0x05 > PORTB +0x04 > DDRB 0x03 > PINB diff --git a/doc/asm.txt b/doc/asm.txt index 76a54ba..08e850e 100644 --- a/doc/asm.txt +++ b/doc/asm.txt @@ -217,6 +217,22 @@ words expecting branching wordref as an argument. Examples: L2 ' BRTS FLBL! ( branch forward to L2 ) L1 ' RJMP LBL, ( branch backward to L1 ) +# Model-specific constants + +Model-specific constants must be loaded separately. Here is a +list of units: + +- ATMega328P: B65-B66 + +Those units contain register constants such as PORTB, DDRB, etc. +Unlike many moder assemblers, they do not include bit constants. +Here's an example use: + +DDRB 5 SBI, +PORTB 5 CBI, +R16 TIFR0 IN, +R16 0 ( TOV0 ) SBRS, + # AVR instructions list OPRd (B53)