aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/avr8/words/qdup.asm
diff options
context:
space:
mode:
Diffstat (limited to 'amforth-6.5/avr8/words/qdup.asm')
-rw-r--r--amforth-6.5/avr8/words/qdup.asm17
1 files changed, 17 insertions, 0 deletions
diff --git a/amforth-6.5/avr8/words/qdup.asm b/amforth-6.5/avr8/words/qdup.asm
new file mode 100644
index 0000000..e65640b
--- /dev/null
+++ b/amforth-6.5/avr8/words/qdup.asm
@@ -0,0 +1,17 @@
+; ( n1 -- [ n1 n1 ] | 0)
+; Stack
+; duplicate TOS if non-zero
+VE_QDUP:
+ .dw $ff04
+ .db "?dup"
+ .dw VE_HEAD
+ .set VE_HEAD = VE_QDUP
+XT_QDUP:
+ .dw PFA_QDUP
+PFA_QDUP:
+ mov temp0, tosl
+ or temp0, tosh
+ breq PFA_QDUP1
+ savetos
+PFA_QDUP1:
+ jmp_ DO_NEXT