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-base.asm | 58 +++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 amforth-6.5/common/words/set-base.asm (limited to 'amforth-6.5/common/words/set-base.asm') diff --git a/amforth-6.5/common/words/set-base.asm b/amforth-6.5/common/words/set-base.asm new file mode 100644 index 0000000..8e9c10b --- /dev/null +++ b/amforth-6.5/common/words/set-base.asm @@ -0,0 +1,58 @@ +; ( addr len -- addr' len' ) +; Numeric IO +; skip a numeric prefix character + +.if cpu_msp430==1 + HEADLESS(XT_BASES,DOROM) +.endif + +.if cpu_avr8==1 +XT_BASES: + .dw PFA_DOCONSTANT +.endif + .dw 10,16,2,10 ; last one could a 8 instead. + +.if cpu_msp430==1 + HEADLESS(XT_SET_BASE,DOCOLON) +.endif + +.if cpu_avr8==1 +XT_SET_BASE: + .dw DO_COLON +PFA_SET_BASE: ; ( adr1 len1 -- adr2 len2 ) +.endif + .dw XT_OVER + .dw XT_CFETCH + .dw XT_DOLITERAL + .dw 35 + .dw XT_MINUS + .dw XT_DUP + .dw XT_ZERO + .dw XT_DOLITERAL + .dw 4 + .dw XT_WITHIN + .dw XT_DOCONDBRANCH + DEST(SET_BASE1) + .if cpu_msp430==1 + .dw XT_CELLS + .endif + .dw XT_BASES + .dw XT_PLUS + .dw XT_FETCHI + .dw XT_BASE + .dw XT_STORE + .dw XT_ONE + .dw XT_SLASHSTRING + .dw XT_DOBRANCH + DEST(SET_BASE2) +SET_BASE1: + .dw XT_DROP +SET_BASE2: + .dw XT_EXIT + +; create bases 10 , 16 , 2 , 8 , +; : set-base 35 - dup 0 4 within if +; bases + @i base ! 1 /string +; else +; drop +; then ; -- cgit v1.2.3