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

时间:2016-02-20 19:29:18

标签: objectscript

这是this project文件的摘录(全文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
}

这是我第一次看到......而且我找不到那些“助记符”的文档。

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

1 个答案:

答案 0 :(得分:4)

这是WebTerminal内部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系统例程中可以找到的所有标准助记符。