forth - 如何定义 VALUE 和 TO

标签 forth 6502

我要实现Forth的话VALUETO在 RPC/8 上(在 Minecraft mod 中的模拟计算机)。只要我在编译时不使用它们,我的最佳尝试为我提供了一组可以正常工作的单词。更具体地说VALUE有效,但 TO才不是。

: VALUE CREATE , DOES> @ ;
: TO ' 3 + ! ;

我已经尝试了所有我能想到的方法来让它工作,我最好的尝试让我得到了这个:
['] NameOfAValue 3 + !

注意处理器不是纯6502而是65EL0265816 的自定义变体.

编辑 #1:不知何故,我忘记了调用 CREATE in value。它应该一直在那里。
编辑 #2:我也收到了 3+在 TO... 中切换。它应该一直是相反的。

最佳答案

最简单的解决方案是

VARIABLE TO-MESSAGE   \ 0 : FROM ,  1 : TO .           
: TO 1 TO-MESSAGE ! ;

: VALUE CREATE , DOES> TO-MESSAGE @ IF ! ELSE @ THEN 
 0 TO_MESSAGE ! ; 
它仅使用 CORE 词并且绝对是标准的。
它只在解释和编译模式下工作,因为在输入流中没有可疑的前瞻。

关于forth - 如何定义 VALUE 和 TO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14914877/

相关文章:

shebang - Unix shebang 与 Gforth

forth - 如何访问 Forth 中的阴影定义?

forth - 变量浮点变量条件 Gforth

assembly - Vic 20 使用汇编器滚动

emulation - 是否可以通过程序确定 6502 上特定指令所占用的周期数?

assembly - 如何更改 Commodore 64 中的内核 MONKEY 例程行为

emulation - 6502 仿真中 SBC 溢出后溢出标志被清除吗?

compiler-construction - 实现 8051 的函数调用

string - Gforth - 如何获取字符串的代码点?

assembly - 将#$FF 加载到 A,并存储在地址 $0000 不起作用