Hi David 

Just found your response and time, so I tried it on amforth 4.8

Works great!

I had to use AVR Simulator 2 to get ATmega128 (instead of 128A and 128P on AVR 
simulator1)

Some of the instructions in the 4.2 User guide are out of sync with 4.8; but 
since the software was known to be good I was able to sort it out. 

Programed it with Kanda AVRISP over parallel port on an old STK300, if anyone 
is curious.

Questions:
The file “core/devices/atmega128/device.asm” says- "generated do not edit"
Can these changes be added to the regular code base?

“core/drivers/usart_0.asm” - Can the changes to be added to the code base 
without messing things up for other processors? 

Or is the ATmega128(x) too obscure to merit attention? 

Comment:
"core/words/store-i_nrww.asm" the underscores are already present; 

Very helpful, completely solved a long standing problem.

Thanks!

>>>>>>>>>>>

Hi D Williams -

I managed to get Amforth running on a Mega128. There are three 
undocumented file changes you need to make:

“core/devices/atmega128/device.asm”: add these lines (I put them after 
'ifndef EEPME' etc…)
.ifndef MCUSR
.equ MCUSR = MCUCSR
.endif

For some reason the Mega128 doesn't have the MCUSR register, but the 
MCUCSR does the same job (and a bit more...). Adding these lines ensures 
the code will compile with the Mega128 as well as the others supported.

“core/words/istore_nrww.asm” (or "core/words/store-i_nrww.asm")
edit line 114 from
in temp1, SPMCSR to
in_ temp1, SPMCSR ,
and line 122 from
out SPMCSR,temp0 to
out_ SPMCSR,temp0

The 'in' and 'out' commands only work for a limited range of addresses. 
Fortunately the macros 'in_' and 'out_' do the same job for all addresses.

Finally,

“core/drivers/usart_0.asm”: change lines 1 to 6 to:
.equ BAUDRATE_LOW = UBRR0L + $20
.equ BAUDRATE_HIGH = UBRR0H
.equ USART_C = UCSR0C
.equ USART_B = UCSR0B + $20
.equ USART_A = UCSR0A + $20
.equ USART_DATA = UDR0 + $20

These changes are caused by the Mega128 trying to cram a quart into a 
pint bottle. Some addresses are double booked, and this offset is needed 
to fix things.

With these modifications to the code I was able to get the system up and 
running in the AVR Studio (version 4) simulator - and even talk to it 
using 'Hapsim', which permits you to make a virtual serial connection to 
the emulated code.

Hope that's helpful -

David Jeffrey

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel

Reply via email to