; ( addr len -- ) Compiler
; R( -- )
; compiles a string from RAM to Flash
VE_SCOMMA:
.db $02,"s",$2c,0
.dw VE_HEAD
.set VE_HEAD = VE_SCOMMA
XT_SCOMMA:
.dw DO_COLON
PFA_SCOMMA:
.dw XT_DUP
.dw XT_2SLASH ; ( -- addr n k )
.dw XT_1PLUS ; ( -- addr n k+1)
.dw XT_TO_R
.dw XT_OVER ; ( -- addr n addr)
.dw XT_CFETCH ; ( -- addr n c )
.dw XT_DOLITERAL
.dw 8
.dw XT_LSHIFT
.dw XT_OR
.dw XT_COMMA ; ( -- addr )
.dw XT_1PLUS ; ( -- addr+1)
.dw XT_R_FROM ; ( -- addr+1 k+1)
.dw XT_1MINUS ; ( -- addr+1 k)
.dw XT_QDUP ; ( -- addr+1 [k k | 0])
.dw XT_DOCONDBRANCH
.dw PFA_SCOMMA2
.dw XT_ZERO ; ( -- addr+1 k 0)
.dw XT_DODO ; ( -- addr)
.dw PFA_SCOMMA2
PFA_SCOMMA1:
.dw XT_DUP ; ( -- addr addr )
.dw XT_FETCH ; ( -- addr c1c2 )
.dw XT_COMMA ; ( -- addr )
.dw XT_1PLUS ; ( -- addr+1 )
.dw XT_1PLUS ; ( -- addr+2 )
.dw XT_DOLOOP
.dw PFA_SCOMMA1
PFA_SCOMMA2:
.dw XT_DROP ; ( -- )
.dw XT_EXIT