From 67d25d837ac55f28a366c0a3b262e439a6e75fc3 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sat, 19 Aug 2017 12:15:28 +0200 Subject: Add AmForth --- amforth-6.5/common/words/set-stack.asm | 43 ++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 amforth-6.5/common/words/set-stack.asm (limited to 'amforth-6.5/common/words/set-stack.asm') diff --git a/amforth-6.5/common/words/set-stack.asm b/amforth-6.5/common/words/set-stack.asm new file mode 100644 index 0000000..9c95a0b --- /dev/null +++ b/amforth-6.5/common/words/set-stack.asm @@ -0,0 +1,43 @@ +; ( rec-n .. rec-1 n ee-addr -- ) +; Tools +; Write a stack to EEPROM +.if cpu_msp430==1 + HEADER(XT_SET_STACK,9,"set-stack",DOCOLON) +.endif + +.if cpu_avr8==1 +VE_SET_STACK: + .dw $ff09 + .db "set-stack",0 + .dw VE_HEAD + .set VE_HEAD = VE_SET_STACK +XT_SET_STACK: + .dw DO_COLON +PFA_SET_STACK: +.endif + .dw XT_OVER + .dw XT_ZEROLESS + .dw XT_DOCONDBRANCH + DEST(PFA_SET_STACK0) + .dw XT_DOLITERAL + .dw -4 + .dw XT_THROW +PFA_SET_STACK0: + .dw XT_2DUP + .dw XT_STOREE ; ( -- i_n .. i_0 n e-addr ) + .dw XT_SWAP + .dw XT_ZERO + .dw XT_QDOCHECK + .dw XT_DOCONDBRANCH + DEST(PFA_SET_STACK2) + .dw XT_DODO +PFA_SET_STACK1: + .dw XT_CELLPLUS ; ( -- i_x e-addr ) + .dw XT_TUCK ; ( -- e-addr i_x e-addr + .dw XT_STOREE + .dw XT_DOLOOP + DEST(PFA_SET_STACK1) +PFA_SET_STACK2: + .dw XT_DROP + .dw XT_EXIT + -- cgit v1.2.3