方法中的那些元素是什么?

What are those elements in the method?

这是 this project (full text here 中文件的摘录):

Method redirects() [ Private, ProcedureBlock = 0 ]
{
/// Mnemonics
APC d APC^%X364 q
BEL d BEL^%X364 q
CBT(%1) d CBT^%X364(%1) q
CCH d CCH^%X364 q
CHA(%1) d CHA^%X364(%1) q
CHT(%1) d CHT^%X364(%1) q
CNL(%1) d CNL^%X364(%1) q
CPL(%1) d CPL^%X364(%1) q
CPR d CPR^%X364 q
CTC(%1,%2,%3,%4,%5,%6,%7,%8,%9) d CTC^%X364(%1,%2,%3,%4,%5,%6,%7,%8,%9) q
CUB(%1) d CUB^%X364(%1) q
CUD(%1) d CUD^%X364(%1) q
CUF(%1) d CUF^%X364(%1) q
CUP(%2,%1) d CUP^%X364(%2,%1) q
CUU(%1) d CUU^%X364(%1) q
CVT(%1) d CVT^%X364(%1) q
DA d DA^%X364 q
DAQ(%1,%2,%3,%4,%5,%6,%7,%8,%9) d DAQ^%X364(%1,%2,%3,%4,%5,%6,%7,%8,%9) q
DCH(%1) d DCH^%X364(%1) q
DCS d DCS^%X364 q
DL(%1) d DL^%X364(%1) q
DMI d DMI^%X364 q
DSR(%1) d DSR^%X364(%1) q
EA(%1) d EA^%X364(%1) q
ECH(%1) d ECH^%X364(%1) q
ED(%1) d ED^%X364(%1) q
EF(%1) d EF^%X364(%1) q
EL(%1) d EL^%X364(%1) q
EMI d EMI^%X364 q
EPA d EPA^%X364 q
ESA d ESA^%X364 q
FNT d DNT^%X364 q
GSM d GSM^%X364 q
GSS d GSS^%X364 q
HPA(%1) d HPA^%X364(%1) q
HPR(%1) d HPR^%X364(%1) q
HTJ d HTJ^%X364 q
HTS d HTS^%X364 q
HVP(%1,%2) d HVP^%X364(%1,%2) q
ICH(%1) d ICH^%X364(%1) q
IL(%1) d IL^%X364(%1) q
IND d IND^%X364 q
// And others, followed by old style MAC routines
}

这是我第一次看到...而且我找不到关于这些 "mnemonics" 是什么的文档。

它们是什么?它的文档在哪里?

这是 WebTerminal 本身内部的 WebTerminal 标准助记符实现。

要使 WebTerminal 像普通终端一样在 WebSockets 上工作,最重要的事情之一就是编写一小行代码

use $io:(/NOXY:/BREAK):"^" _ ..InitialZName

在WebSocket服务器初始化开始时执行,实际上设置了助记符的名称space,等于WebTerminal的编译例程名称(如WebTerminal.Engine.1.int)。

这些助记符(APC、BEL等)是一个小宏程序,用户可以使用特殊语法从终端调用。例如,助记符"CHA"用于设置插入符位置:

USER > w "Pos 0", /CHA(14), "Pos 14", /CHA(35), "Pos 35"
Pos 0        Pos 14               Pos 35

为了使用户能够使用此语法访问所有这些,需要将所有标准助记符名称包含到终端例程中,默认设置为每个客户端的助记符space (因为设置默认助记符 space,其中包括这些助记符会破坏 WebTerminal)。剩下的唯一解决方案是使用 ProcedureBlock = 0.

any 方法(在本例中,名为 "redirects" 的方法)中声明它们

说到语法,一般来说,我们有

MNEMONICNAME(%ArgByRef) do MNEMONICNAME^%SYSTEMROUTINE(%ArgByRef) quit

这只是调用了所有可以在^%X364系统例程中找到的标准助记符。