Hi Mark,

> First of all - thanks to you and all your cohorts for Amforth!  I have been
> using Forth for 30 years (F83 ... ) for a variety of projects and Amforth
> (since 4.2) with the 328P as my current platform.

Wow. A Forth Guru. Welcome!

> A quick question: for timing purposes, I have dropped into assembly
> (driving the SPI system as a slave to a Raspberry Pi since the Pi isn't
> easy to slave! BTW, the Pi is my ISP too, fun!) I'm trashing the X register
> r26 & r27 to index into SRAM - so when I exit my code via 'JMP_ DO_NEXT'
> I'm back at the interpeter prompt (surprise!). Where... and how.. is the
> safest way to save the IP ... and what else might I be trashing? (I am
> using temp0 thru 7 (except for temp5))

There a few occasions, where I need two index registers. placing them
on the (CPU-) stack within one assembler word works fine:

push xl
push xh
... do some work with XH:XL, but no jmp DO_NEXT
pop xh
pop xl

> 
> My thinking is to use r31:r30 in place of r27:r26 .

The ZH:ZL is fine. Keep in mind that no CPU register is
guaranteed to survive the inner interpreter (aka a jmp DO_NEXT).
(the currently unused CPU registers are reserved for
future use, not that I have an actual use for them, but...).

Matthias

PS: The atmega SPI system can do the slave work too. Did you
check the datasheets? I've not used it myself however.

------------------------------------------------------------------------------
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev
_______________________________________________
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