I actually found a simple solution to change INTERPRET to continue interpreting when a error is encountered. Not much tested, but it works with my block system. So now when a -marker word is encountered, interpret will continue with the next word. You can try and patch your FF with this, unless of course you are using Scamp words. IUNKNOWN: ; a f dec2 W14, W14 rcall CFETCHPP rcall TYPE rcall XSQUOTE .byte 2 .byte '\?',NAK_ .align 2 rcall TYPE ; rcall FALSE_ ; rcall QABORTQ bra INTER1 INTER6:
I quess the only solution for now is to use -marker from the command line and then load the file(s).
Yes. That's a problem with EVALUATE. A proper solution would be to implement CATCH/THROW in FF, so that EVALUATE could catch the error and continue. With a simple ABORT that is not possible.
last : why buf c@+ evaluate buf2 c@+ evaluate doesn't work? and : test2 buf c@+ evaluate buf2 c@+ evaluate ; works.? It does not work because after the first evaluate the system is in compilation state so interpret will try to compile the phrase " buf2 c@+ evaluate" instead of executing it. The word test2 only executes so there is no dependence on state.
last : why buf c@+ evaluate buf2 c@+ evaluate doesn't work? and : test2 buf c@+ evaluate buf2 c@+ evaluate ; works.? It does not work because after the first evaluate the system is in compilation state so interpret will try to compile the phrase " buf2 c@+ evaluate" instead of interpreting it. The word test2 only executes so there is no dependence on state.
Using evaluate like this does not work. ram create buf 20 allot ram create buf2 20 allot s" : test 1 2" buf place s" + . ;" buf2 place buf c@+ evaluate buf2 c@+ evaluate
This works for me ram create buf 20 allot ram create buf2 20 allot : test2 buf c@+ evaluate buf2 c@+ evaluate ; s" : test 1 2" buf place s" + . ;" buf2 place test2 test 3
last : why buf c@+ evaluate buf2 c@+ evaluate doesn't work? and : test2 buf c@+ evaluate buf2 c@+ evaluate ; works.? It does not work because after the first evaluate the system is in compilation state so interpret will try to compile the phrase " buf2 c@+ evaluate" instead of interpreting it.