PC/FORTH 编辑程序

时间:2021-11-03 16:37:20

body, table{font-family: 微软雅黑}
table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;}
th{border: 1px solid gray; padding: 4px; background-color: #DDD;}
td{border: 1px solid gray; padding: 4px;}
tr:nth-child(2n){background-color: #f8f8f8;}

利用磁盘存贮源文本再编译进词典
      重复定义同一个名字的词,都会编译进词典,但是文本解释程序总是从最新定义所处的词典尾部开始搜索,所以它最先发现的词就是你最后定义的词,解释程序指给 EXEXUTE 的就是最后定义的那个词。
证明:
PC/FORTH 编辑程序//FORGET DEMO   表示删除DEMO这个词;例子两次定义了DEMO,最后执行的时候是执行的最后一次的定义,但是删除DEMO是删除的最后一次定义的,前一次定义的还在
      当你从终端键入定义的词时,其源文本不能保存;退出就没了;从终端键入的定义仅仅是它的编译形式被保存在词典中。不能对定义好的词作修改。如果要修改,就要使用编辑程序。编辑程序可以在我们需要的时候保留和修改源文本。
       编辑程序是把源文本保存在磁盘上。

FORTH 使用磁盘
       FORTH 的编译程序是把整个词典都编译进计算机内存,以便能迅速访问各个定义。FORTH把词典的源文本存贮在磁盘上。   这样可以从键盘把源文本传送给解释程序,又可以先把源文本存贮在磁盘上,然后再从磁盘读出并传送给解释程序。
PC/FORTH 编辑程序
在终端想看哪块屏幕只要键入 屏幕号  和 LIST 命令   1 LIST    ;   要加载执行快的内容使用词 LOAD,键入命令: 1 LOAD
PC/FORTH 编辑程序
LOAD 命令把你输入的块号的内容发送给输入流,然后由文本解释程序读取。文本解释程序不会考虑文本来自哪里,只有识别出“:”就将定义进行编译。
Screen 里面的 (  也是一个词 告诉文本解释程序跳过其后的文本,但是 ) 不是一个词,只是 ( 寻找的字符,称为终止符
//编排块的习惯做法:
PC/FORTH 编辑程序
PC/FORTH 编辑程序

编辑文本并把它存入磁盘
   编辑源文本首先要找一空块并显示它,当显示的是空块的话,16行都没有内容,最后的  OK 表示文本解释程序已经执行完显示该块的显示命令。  通过显示某块,同时也就把该块选为我要编辑的快了。
1、先找一块空的快;  词   LIST   (  n - - )
2、进入编辑状态; 词   EDIT  (  n - - )
3、编辑完后 ESC  退出保存。
4、用的到的词   F9  清除整个快内容同时光标放在第一行开始位置,要运行这个快的内容先加载该快 LOAD (  n - - )      
180 LIST EDIT            E 表示编辑            180 表示待编辑的快
PC/FORTH 编辑程序 PC/FORTH 编辑程序
PC/FORTH 编辑程序//直接按esc键退出保存 ,再次 esc   退出到终端 180 LOAD  加载刚才编辑的块
PC/FORTH 编辑程序

下面的快捷命令是要按f1 f2 f3 ……

上面的例子也可以实现加载16屏面,然后直接 180 EDIT 
16       LOAD   
180     EDIT
16   LOAD命令是从FORTH屏面存储文件中载入和编译小屏面编辑程序
PC/FORTH 编辑程序
无意中发现的命令(非小屏面编辑状态) ^ R  向前进入下一个屏面
^ C    向后进入下一屏面
^  V   进入插入模式,在光标前插入,字符后移