LINUX.ORG.RU

Комбайн из DosBox

 


0

1

есть ли возможность сделать единый файл (портейбл-версию) DosBox (.run для linux-хостов и .exe для windows-хостов), которая будет содержать в себе некую досовскую тулзу и конфиг DosBox? Типа как раньше в читалке ReadManiac можно было делать мидлеты с единственной книжкой внутри, так и тут в эмуляторе запускать единственное приложение.
Нужно сие для информатики, требуется пускать старую учебную программку УК «Нейман» на новых машинах в 64-битной среде.
Пишу на ЛОР ибо 1) досбокс изначально линуксовый, 2) самому для себя интересно, поскольку собирать несколько версий досбокса для каждой програмки впадлу, а тут будет сразу приложение в контейнере.

★★★

единый файл

и

.run для linux-хостов и .exe для windows-хостов

не согласовано

один файл или два? чем не устраивает возможность автоматического запуска некой досовской тулзы через конфиг DoxBox-а?

anonymous
()
Ответ на: комментарий от anonymous

один файл или два?

единый файл в смысле один на одну платформу.
то есть как я себе это представляю:
пакованый экзешник или эльф программы, который распаковывает свои ресурсы (досбокс, конфиг, содержимое диска цэ) в какую-то темповую папку и запускает из ресурсов досбокс, у которого в приложенном в ресурсах конфиге указаны команды для запуска программы, находящейся в приложенном содержимом диска цэ. по выходу из программы прибивается и досбокс.

чем не устраивает возможность автоматического запуска некой досовской тулзы через конфиг DoxBox-а?

не устраивает необходимостью держать кучу досбоксов в виде, размазанном по фс. Да и на каждый из 20+ компов ставить по четыре досбокса и каждый настраивать - нехорошо совсем.

kostett ★★★
() автор топика
Ответ на: комментарий от SjZ

не, не то, см. мой предыдущий пост

kostett ★★★
() автор топика
Ответ на: комментарий от MikeDM

системы тестирования, написанные когда-то давно, эмулятор машинных кодов и прочая милота.

kostett ★★★
() автор топика
Ответ на: комментарий от kostett

по четыре досбокса и каждый настраивать - нехорошо совсем

у него же есть ключи для запуска:

-conf configfile

anonymous
()
Ответ на: комментарий от anonymous

это если разные конфигурации и ключ "-c command" если команду нужно исполнить определенную

anonymous
()
Ответ на: комментарий от anonymous

команд может быть указано несколько

anonymous
()

Просто возьми RPM-ку от CentOS 5. Она запускается везде.

ZenitharChampion ★★★★★
()
Последнее исправление: ZenitharChampion (всего исправлений: 1)

списать исходники DosBox. найти в файле src/shell/shell.cpp функцию void AutoexecObject::CreateAutoexec(void). вот её код (версия 0.74):

void AutoexecObject::CreateAutoexec(void) {
        /* Remove old autoexec.bat if the shell exists */
        if(first_shell) VFILE_Remove("AUTOEXEC.BAT");

        //Create a new autoexec.bat
        autoexec_data[0] = 0;
        size_t auto_len;
        for(auto_it it=  autoexec_strings.begin(); it != autoexec_strings.end(); it++) {
                auto_len = strlen(autoexec_data);
                if ((auto_len+(*it).length()+3)>AUTOEXEC_SIZE) {
                        E_Exit("SYSTEM:Autoexec.bat file overflow");
                }
                sprintf((autoexec_data+auto_len),"%s\r\n",(*it).c_str());
        }
        if(first_shell) VFILE_Register("AUTOEXEC.BAT",(Bit8u *)autoexec_data,(Bit32u)strlen(autoexec_data));
}
внимательно изучить последнюю строчку, и хорошо подумать.

anonymous
()

а. для винды догнал как - SFX-архив с командой после извлечения. А как сделать SFX-архив в линуксе для линукса?

kostett ★★★
() автор топика

Напиши sh скрипт, в который помести все нужные файлы в текстовом виде, закодировав в MIME. При запуске раскодируй во временный каталог и запускай, проверив, чтобы были соотвестствующие права.

Deleted
()
Ответ на: комментарий от kostett

создай архив, кто мешает то? в virtualbox в ранних версиях можно посмотреть как все устроено. ты только объяснить то можешь, почему тебя вариант с нормальной установкой и запуском через скрипт разных приложений не устраивает?

$ ./create.sh
-1------------------
1.file	2.file	create.sh
-2------------------
#!/bin/bash

FILE_SIZE=xxxxx

dd if=$0 ibs=1 skip=$FILE_SIZE conv=sync 2>/dev/null |
tar -xzvf - 2.file -O 2>/dev/null >/tmp/tmp/tmp.out

exit 0
-3------------------
   __o
 _`\<,_
(*)/ (*)
-4------------------
#!/bin/bash

echo "-1------------------"
ls ./
echo "-2------------------"
cat 1.file
echo "-3------------------"
cat 2.file
echo "-4------------------"
cat create.sh
echo "-5------------------"
ls /tmp/tmp
echo "-6------------------"
mkdir /tmp/tmp
echo "-7------------------"
ls /tmp/tmp
echo "-8------------------"
FILE_SIZE=`du -b 1.file | awk '{ print ($1-5+length($1)); }'`
cat 1.file | sed "s/xxxxx/$FILE_SIZE/" >run.sh
tar -czf - 2.file >>run.sh
chmod +x run.sh
echo "-9------------------"
./run.sh
echo "-10-----------------"
ls /tmp/tmp
echo "-11-----------------"
cat /tmp/tmp/tmp.out

-5------------------
ls: невозможно получить доступ к /tmp/tmp: Нет такого файла или каталога
-6------------------
-7------------------
-8------------------
-9------------------
-10-----------------
tmp.out
-11-----------------
   __o
 _`\<,_
(*)/ (*)

anonymous
()
Ответ на: комментарий от anonymous

мб школоте домой давать, а каждому домой поставить я не осилю

kostett ★★★
() автор топика

дискетку с досом и программкой предлагали? И школьники узнают что такое дискетка dos, и тебе забот меньше.

comp00 ★★★★
()
Ответ на: комментарий от comp00

нету дискеток. спасибо санпину, по которому нам трахают мозги повышенной концентрацией компов на кабинет и из-за которых пришлось их заменить ноутбуками.

kostett ★★★
() автор топика
Ответ на: комментарий от lazyklimm

собственно, никто не мешает держать одну машину с DosBox доступную по rdp/vnc/etc

lazyklimm ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.