projects
/
rrq
/
rrqforth.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bug fix for lpar comment
[rrq/rrqforth.git]
/
stdio.asm
diff --git
a/stdio.asm
b/stdio.asm
index 9cf7611606e2411832f2572d55b183deae0b1f90..191e09893e2226146f1ee1d0b92a0650d66ec06d 100644
(file)
--- a/
stdio.asm
+++ b/
stdio.asm
@@
-11,7
+11,7
@@
push qword 0 ; address of mapping (suggestion)
push rax ; length of mapping
push qword 3 ; protection mode PROT_READ | PROT_WRITE
push qword 0 ; address of mapping (suggestion)
push rax ; length of mapping
push qword 3 ; protection mode PROT_READ | PROT_WRITE
- push qword
8226 ; flags PRIVATE | ANONYMOUS | LOCKED
+ push qword
34 ; flags PRIVATE | ANONYMOUS
push qword -1 ; fd -1
push qword 0 ; offset
jmp sys_mmap_asm ; exit via sys_mmap
push qword -1 ; fd -1
push qword 0 ; offset
jmp sys_mmap_asm ; exit via sys_mmap
@@
-214,12
+214,14
@@
p_read_word_nomore:
WORD p_double_quote,'"',fasm ;; " (fool emacs)
;; ( -- char* n )
WORD p_double_quote,'"',fasm ;; " (fool emacs)
;; ( -- char* n )
- ;; Scan to double quote in stream buffer, putting the string on PAD
+ ;; Scan to double quote in stream buffer, putting the string
+ ;; on PAD, plus an extra NUL, then copy that into a new temp
+ ;; object, but exclude the NUL from the returned count, n.
pushr rsi
push p_pad_DFA
push 0
p_double_quote_loop:
pushr rsi
push p_pad_DFA
push 0
p_double_quote_loop:
- DOFORTH p_
stdin
, p_read_stream_char
+ DOFORTH p_
input, p_get
, p_read_stream_char
pop rax
cmp rax,0
jl p_double_quote_endstream
pop rax
cmp rax,0
jl p_double_quote_endstream
@@
-232,6
+234,14
@@
p_double_quote_loop:
jmp p_double_quote_loop
p_double_quote_endquote:
p_double_quote_endstream:
jmp p_double_quote_loop
p_double_quote_endquote:
p_double_quote_endstream:
+ lea rdi,[p_pad_DFA]
+ add rdi,qword [rsp]
+ stosb
+ ;; copy PAD string into new temp object
+ inc qword [rsp]
+ DOFORTH p_str2temp
+ dec qword [rsp]
+ add qword [rsp+8],8 ; adjust pointer
popr rsi
next
popr rsi
next
@@
-271,7
+281,7
@@
p_double_quote_endstream:
WORD p_sp,'SP',dovalue
;; ( -- c )
;; Pushes a space character on the stack
WORD p_sp,'SP',dovalue
;; ( -- c )
;; Pushes a space character on the stack
- dq
10
+ dq
32
WORD p_digits,'DIGITS',dovariable
db '0123456789abcdef'
WORD p_digits,'DIGITS',dovariable
db '0123456789abcdef'