我有一个非常晦涩难懂的旧 Basic 脚本集合(脚本太多,都太长,并且有太多的 goto,不值得翻译,而且我个人对 qwbasic 一无所知),我需要在 Linux 服务器中运行它们,以便使用 php exec() 命令从 apache 实例中调用它。
这是代码的摘录:
228 IF CA$="Cl" THEN MATRIXA$(A)=CA$
230 IF CA$="Cl" THEN VEO=VEO+1
232 IF CA$="Cl" THEN GOTO 242
234 IF CA$="nH" THEN MATRIXA$(A)=CA$
236 IF CA$="nH" THEN VEO=VEO+1
238 IF CA$="nH" THEN GOTO 242
240 MATRIXA$(A)=YXD$
242 RETURN
244 IF YXD$="" THEN GOTO 782
246 YXD=VAL(YXD$)
248 IF YXD>0 THEN GOSUB 260
250 IF YXD>0 THEN GOTO 106
252 GOSUB 282
254 IF YXD$="=" THEN GOTO 106
256 IF YXD$="#"
我设法让它使用两个不同的命令,但每个命令都有一个警告
和基本版
pcbasic OLDSCRIPT.BAS -n -k='AAAA\rBBBB\r' > /dev/null
-n 在 Linux 命令行中使用它,而不是在窗口中
-k 插入输入 2 个参数所需的按键(示例中为 AAAA 和 BBBB)
这种方法的问题在于它模拟的计算机 CPU 速度较低,并且脚本是复杂的矩阵运算,需要花费大量时间。
使用 OpenBox
我使其工作的第二种方法是使用 Openbox(然后是 GWBASIC.EXE),它允许我将脚本超频到可接受的速度,但这似乎不适合我,因为它必须使用显示器,因此在服务器中会说:
Openbox-Message:无法从 DISPLAY 环境变量打开显示。
我不知道如何强制 Linux 命令在我的服务器上全速运行,而忽略睡眠/时间同步内部指令,但在我看来这是可行的方法。
也许我应该用 bascom 编译它们?这似乎令人望而生畏。我只想“在 turbo 模式下”解释它