edit
[rrq/rrqforth.git] / compile.asm
index be5a9088e76a186fe9e6e9c22e09e84ae1f301c1..defb1acaa5dcfc25e59eac9acbe315c216b5c450 100644 (file)
@@ -18,7 +18,7 @@
        mov qword [rbx+24],rcx  ; PFA (length)
        pop rsi                 ; chars* (source)
        lea rdi,[rbx+32]        ; (dest)
-       ;; clear DF
+       cld
 p_create_COPY:
        movsb
        dec rcx
@@ -60,8 +60,8 @@ p_quote_end:
        WORD p_comma,','
        ;; ( v -- )
        ;; Put cell value onto the heap and advance "HERE"
-       dq p_here, p_put, p_literal, 8, p_here, p_put_plus, p_exit
-       
+       dq p_here, p_literal, 8, p_get_n_increment, p_put, p_exit
+
        WORD p_Ccomma,'C,'
        ;; ( c -- )
        ;; Put byte value onto the heap and advance "HERE"
@@ -193,6 +193,8 @@ p_number_ALPHA:
        cmp al,'Z'
        jg p_number_alpha
        sub al,'A'-10
+       cmp rax,qword [p_base_DFA]
+       jge p_number_BAD
        jmp p_number_CONSUME
 p_number_alpha:
        cmp al,'a'
@@ -200,6 +202,8 @@ p_number_alpha:
        cmp al,'z'
        jg p_number_BAD
        sub al,'a'-10
+       cmp rax,qword [p_base_DFA]
+       jge p_number_BAD
        jmp p_number_CONSUME
 p_number_BAD:
        push qword 0