2

这是该项目文件的摘录(此处为全文):

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
}

这是我第一次看到……而且我找不到关于这些“助记符”是什么的文档。

这些是什么?它的文档在哪里?

4

1 回答 1

4

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

为了使 WebTerminal 像普通终端一样通过 WebSockets 工作,最重要的事情之一就是一小行代码

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

它在WebSocket服务器初始化开始时执行,它实际上设置了助记词空间的名称,它等于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

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

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

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

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

于 2016-02-21T14:01:30.643 回答