У меня есть очень неясная старая коллекция базовых сценариев (слишком много сценариев, все они слишком длинные и слишком много goto, чтобы их можно было перевести, и я лично ничего не знаю о qwbasic), которые мне нужно запустить на сервере linux вызвать его из экземпляра apache с помощью команды php exec ().
Это выдержка из кода:
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
pcbasic OLDSCRIPT.BAS -n -k='AAAA\rBBBB\r' > /dev/null
-n использовать его из командной строки Linux, а не из окна
-k для вставки нажатий клавиш, необходимых для ввода параметров 2 (AAAA и BBBB в примере)
Проблема этого подхода заключается в том, что он эмулирует компьютер с низкой скоростью процессора, а сценарии представляют собой сложные матричные операции, которые занимают много времени.
С OpenBox
Второй способ, которым я заставил его работать, - это использование Openbox (а затем и GWBASIC.EXE), который позволил мне разогнать скрипт до приемлемой скорости, но мне кажется, что он не подходит, потому что он должен использовать Display, поэтому на сервере сказать:
Openbox-Message: не удалось открыть отображение из переменной окружения DISPLAY.
Я не знаю, как заставить команду linux запускаться на полной скорости моего сервера, игнорируя внутренние инструкции синхронизации сна / времени, но мне кажется, что это путь.
Может мне скомпилировать их с bascom? Это кажется пугающим. Я просто хочу интерпретировать это "в турбо-режиме"