From 036306101f72c2f8033c4422abcb1436f0bde97e Mon Sep 17 00:00:00 2001 From: Ralph Ronnquist Date: Sun, 6 Jun 2021 09:41:01 +1000 Subject: [PATCH] fixed READ-WORD to use TEMPSPACE --- stdio.asm | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/stdio.asm b/stdio.asm index 549852e..467952b 100644 --- a/stdio.asm +++ b/stdio.asm @@ -206,12 +206,12 @@ p_read_stream_char.CHAR: ;; Read next word from the given stream into the PAD pushr rsi pop rax + pushr rax ; the stream push qword p_pad_DFA push qword 0 - push rax p_read_word_skipblanks: - DOFORTH p_dup, p_read_stream_char + DOFORTH p_Rget, p_read_stream_char pop rbx cmp bl,0 jl p_read_word_nomore @@ -220,12 +220,12 @@ p_read_word_skipblanks: cmp bl,'#' je p_read_word_skipline p_read_word_readword: - ;; ( buffer length stream ) - mov rax,qword [rsp+16] - mov rcx,qword [rsp+8] + ;; ( buffer length ) + mov rax,qword [rsp+8] + mov rcx,qword [rsp] mov [rax+rcx],bl - inc qword [rsp+8] - DOFORTH p_dup, p_read_stream_char + inc qword [rsp] + DOFORTH p_Rget, p_read_stream_char ; ( -- buffer length char ) pop rbx cmp bl,0 jl p_read_word_nomore @@ -233,7 +233,14 @@ p_read_word_readword: jg p_read_word_readword p_read_word_nomore: - pop rax + xor rbx,rbx + mov rax,qword [rsp+8] + mov rcx,qword [rsp] + mov [rax+rcx],bl ; add NUL ending + inc qword [rsp] + DOFORTH p_str2temp + dec qword [rsp] + popr rax popr rsi next -- 2.39.2