X-Git-Url: https://git.rrq.au/?a=blobdiff_plain;f=rrqforth.asm;h=96b90837b5843ff0c3ee817b00c5d410e235144d;hb=b49fed131d5a7806d0737bdc6f9b693c64753cf2;hp=dc377747755b342a8ff8cd1e49f8bb16a165531b;hpb=6feac19e9a7e003a0f47890bf39a9a8324697e4b;p=rrq%2Frrqforth.git diff --git a/rrqforth.asm b/rrqforth.asm index dc37774..96b9083 100644 --- a/rrqforth.asm +++ b/rrqforth.asm @@ -73,7 +73,7 @@ dostring: pushpname rax next - WORD p_calltrace,'calltrace',dovalue + WORD p_calltrace,'[calltrace]',dovalue ;; Common call point for debugging ;; rax = cfa of called word ;; rsi = cell* of next forth word @@ -161,6 +161,7 @@ include 'stack.asm' include 'math.asm' include 'logic.asm' include 'stdio.asm' +include 'temp.asm' include 'compile.asm' WORD p_program_version,'PROGRAM_VERSION',dostring @@ -181,7 +182,7 @@ include 'compile.asm' WORD p_lparen,'(',fasm,IMMEDIATE pushr rsi p_lparen_loop: - DOFORTH p_stdin, p_read_word + DOFORTH p_input, p_get, p_read_word pop rax pop rbx cmp rax,0 ; end of stream @@ -189,7 +190,7 @@ p_lparen_loop: cmp rax,1 jne p_lparen_loop push rbx - push qword ')' + push p_lbaren_rparen push 1 DOFORTH p_strncmp pop rax @@ -198,7 +199,8 @@ p_lparen_loop: p_lparen_exit: popr rsi next - +p_lbaren_rparen: db ')',0 + ;;; ******** The main entry point. ******** ;;; This could be set up as a WORD but it isn't @@ -242,7 +244,6 @@ main_is_not_verbose: last_forth_word: WORD p_quit,'QUIT',fasm ;; QUIT is the program entry point ******************** - mov rsp,DS_TOP mov rbp,RS_TOP cmp qword [p_stdin_DFA],0 @@ -254,7 +255,7 @@ last_forth_word: pop qword [p_stdin_DFA] ; Assign STDIN p_quit_INITIALIZED: - ;; Initial blurb + ;; Setup INPUT from STDIN FORTH dq p_verboseQ dq p_get @@ -262,8 +263,7 @@ p_quit_INITIALIZED: dq p_program_version dq p_tell p_quit_EVAL: - dq p_stdin - dq p_evaluate_stream + dq p_stdin, p_evaluate_stream BRANCH 0,p_quit_ERROR dq p_false dq sys_exit