diff --git a/images/apple/PLFORTH.PO b/images/apple/PLFORTH.PO index 5b17d44..8e54326 100755 Binary files a/images/apple/PLFORTH.PO and b/images/apple/PLFORTH.PO differ diff --git a/src/toolsrc/plforth.pla b/src/toolsrc/plforth.pla index 68ea616..3a1ac3f 100644 --- a/src/toolsrc/plforth.pla +++ b/src/toolsrc/plforth.pla @@ -114,12 +114,12 @@ predef _var_(a)#0, _const_(a)#0, _lit_#1, _slit_#1, _find_(a)#2 predef _tick_#0, _forget_#0, _terminal_#1, _prat_(a)#0 predef _blank_#0, _char_#0, _str_#0, _prstr_#0, _prpstr_#0 predef _prval_(a)#0, _prbyte_(a)#0, _prhex_(a)#0 -predef _accept_(a,b)#1, _query_#0, _expect_(a,b)#0, _type_(a,b)#0 +predef _accept_(a,b)#1, _query_#0, _type_(a,b)#0 predef _vlist_#0, _tron_#0, _troff_#0, _stepon_#0, _stepoff_#0 predef _itc_#0, _pbc_#0, _comment_#0, _src_(a)#0, _srcstr_#0, _endsrc_(a)#0 predef _brk_#0, _brkon_#0, _brkoff_#0, _word_(a)#1, _count_(a)#2 predef _space_#0, _spaces_(a)#0, _show_#0, _showstack_#0, _showrstack_#0 -predef _cont_#0, _exitforth_#0, _bye_#0, _quit_#0 +predef _cont_#0, _restart_#0, _bye_#0, _quit_#0 predef _abort_(a)#0, _doabortstr_(a,b)#0, _abortstr_#0 predef compword(dentry)#0, execword(dentry)#0, isnum(a,b)#2 // DROP @@ -514,14 +514,10 @@ word = @d_terminal, 0, @getc char d_query = "QUERY" byte = 0 word = @d_key, 0, @_query_ -// EXPECT -char d_expect = "EXPECT" -byte = 0 -word = @d_query, 0, @_expect_ // ACCEPT char d_accept = "ACCEPT" byte = 0 -word = @d_expect, 0, @_accept_ +word = @d_query, 0, @_accept_ // WORD char d_word = "WORD" byte = 0 @@ -633,7 +629,7 @@ word = @d_doabortstr, 0, @_abortstr_ // COLD exitforth char d_exitforth = "COLD" byte = 0 -word = @d_abortstr, 0, @_exitforth_ +word = @d_abortstr, 0, @_restart_ // COMMENT char d_comment = "(" byte = imm_flag @@ -1625,20 +1621,6 @@ def _query_#0 ^(inptr + ^inptr + 1) = 0 inptr++ end -def _expect_(a,b)#0 - word saveinptr - - saveinptr = inptr - memcpy(heapmark + 256, keyinbuf, 80) - inptr = gets('?'|$80) - if ^inptr > b - ^inptr = b - fin - ^(inptr + ^inptr + 1) = 0 - memcpy(a, inptr + 1, ^inptr) - memcpy(keyinbuf, heapmark + 256, 80) - inptr = saveinptr -end def _accept_(a,b)#1 word saveinptr byte len @@ -1986,9 +1968,9 @@ def _abortstr_#0 fin end // -// exitforth +// Restart FORTH // -def _exitforth_#0 +def _restart_#0 coldstart throw(@exitforth, FALSE) end