Как запустить устаревший скрипт GWBasic в командной строке linux с принудительной скоростью процессора

384
Yiin00b

У меня есть очень неясная старая коллекция базовых сценариев (слишком много сценариев, все они слишком длинные и слишком много 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? Это кажется пугающим. Я просто хочу интерпретировать это "в турбо-режиме"

1

0 ответов на вопрос

Похожие вопросы