words/scomma.asm

Jump to Vocabulary

; ( 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

Jump to Vocabulary