Как запустить QBASIC в Линуксе

Не перестаю удивляться совершенству Линукса и свой дремучести в нем. Впрочем, вся история — это сплошной каламбур.

Пару дней ко мне обратился один студент с просьбой помочь написать программу по учебе. Я сижу без работы, так почему бы не помочь человеку! Да и деньги совсем не лишние. Соглашаюсь. Начинаю выяснять «что-как».

По ходу разговора выясняется, что работу надо сделать в QBASIC-e, который, разумеется, работает под DOS-ом.

— Ой-ой, закапывайте скорее!!! Зачем раскопали! Обоих закапывайте, обоих — и QBASIC, и DOS! И преподов с факультета можете прихватить…

Но, к сожалению, работу нужно сделать только так — в QBASIC-е.

Ладно, чего только не сделаешь за деньги. Договариваемся о сроках, о цене, и я по электро-почте получаю задание.

Итак, понеслась!

И сразу вопрос! Где эту DOS взять? У меня вроде она где-то на дискетках была. Но где? Столько лет прошло! Потратил на поиски в своем барахле наверно час. Не нашел.

Пришлось скачивать с образ с Интернета. Скачал. Приготовил какую-то дискету к записи. Новая беда — оказалось, в моем системнике нет дисковода, куда дискету-то совать?. Срочно нужен дисковод. Да-а, блин!

Ладно, лопату в руки и опять на поиски! Нашел. Аж сразу четыре штуки. Два дохлых (судя по надписям на них), один нормальный и еще один — не понятно какой. Но мне нужен-то всего один. Поэтому — Ура!

Не! Не «ура!» — шлейфа нет.

Шлейф искал уже не долго, обошелся без лопаты. Хочу подключить — а куда? Разъема для подключения флоппа на мамке нет! От жешь засада!

Металлургический факультет, мать его!

Ладно. Пошел пить чай и думать. Дык это … собственно,  … QBASIC можно же из под Венды запускать! Допил чай. Нужно только установить винт с Вендой. Где-то она у меня была…

Винт (ATA-шный) с Вендой нашелся быстро. И даже плоский шлейф был рядом. Отцепил винт с Линуксом, подцепил винт с Вендой. Включил комп. Жду

Жду

Жду

Оппа! Наконец-то Винда загрузилась! Не прошло и года. Слава-тибе-хоспади!

И где тут QBASIC ? Нет его. Значит, надо скачивать с Интернета. Венда старая — XP SP2. Почему-то в ней IE не работает. Я догадываюсь почему, но от этого мне не легче. Что ж, придется возвращать Линуксовый винт, скачивать QBASIC Линем, потом обратно менять винты.

Короче, поменял винты, загрузился под Линем, скачал QBASIC. Снова поменял винты. Включил комп. Жду.

Жду

Жду

Оппа! Наконец-то Винда загрузилась! Не прошло и года. Слава-тибе-хоспади!

Создал на винте рабочую директорию для разработки проги, скопировал туда QBASIC. Запустил. Фух! Заработало.

Делаю первое задание. Первую прогу, ту, что попроще, Студент, в общем-то, сам наковырял. И мне нужно было только исправить ее. Меня, конечно, в ней очень позабавили команды типа:

INPUT "Vvedite razmer massiva =", N

Русская транскрипция рулит не только в школьном «Паскакале»! Металлургический Факультет пошел еще дальше. Видимо, они «Паскакаль» так и не смогли осилить, поэтому все делается по жесткому — в «Васике». И как оказалось — это реально мега-круто, в «Васике» ведь всё делается через одно место.

Например, надо создать функцию, которая обрабатывает массив. При этом массив в проге создается динамически. Функция же желает получать уже готовый массив. А ссылку на массив функция принимать отказывается, только массив, и только конкретный массив. В общем, та еще проблема!

Худо бедно, но я это победил. Потратил не три часа, как я предполагал, а в несколько раз больше. Со всеми приготовлениями, отключениями, подключениями, скачиваниями, изучением документации на QBASIC и т.д. — ушло примерно часов пятнадцать. Но это был мой риск, мои проблемы. В конце концов я сдал работу. Как говориться, «ни один заказчик-собака не пострадал. А жаль!»

Теперь о смешном.

Сегодня с утра, я решил вернуться к проблеме. Знаю, что в Линуксе есть что-то для запуска DOS-овских программ.

Wine — это немножко не то! Wine — это скорее для Виндовых программ. Да и тяжелый он. Мне бы что-нибудь попроще…

«Попроще» оказалось  — dosbox. Вот о нем-то я хочу немного рассказать.

Я в dosbox не силен. Точнее — до этого случая я с ним вообще не был знаком. И на данный момент мой стаж в нем составляет около одного часа. Поэтому, я могу чего-то и не знать.

Меня прикалывает другое. Я никак не могу взять в толк, почему в Венде, как в преемнице DOS-а, на деле оказалась работать с DOS-овскими программами куда сложнее, чем в Линуксе, который к DOS-у имеет весьма посредственное отношение?

Вот смотрите, что я сделал для того чтобы начать работать с QBASIC-ом. Это в некоторой степени руководство.

1. Нужно проинсталлировать dosbox

Нынче я сижу в Debian, а не в Ubuntu, поэтому действия будут несколько отличаться.

Открываем текстовую консоль, для этого в графической консоли нажимаем CTRL-ALT-F1. Система запрашивает логин — вводим root. Затем вводим рутовский пароль (не свой!). Если все удачно, то система пускает «к себе в домик» и рисует приглашение, оканчивающееся на символ «решетки» — #.

Выполняем сначала подновление списка пакетов, потом апгрейд.

# apt-get update
# apt-get upgrade

(Debian вышел 10 дней назад и поэтому в данный момент в репозиториях еще нет никаких изменений.)

Далее выполняем команду инсталляции пакета

# apt-get install dosbox

У меня система попросила установить загрузочный DVD, с которого я производил ее установку. На DVD содержится «джентльменский набор» пакетов, и, видимо, dosbox входит в этот набор.

Ну, так или иначе, dosbox установился. Теперь нам надо настроить его работу. Поэтому, работа из-под root-а на этом закончена. Нажимаем CTRL-D и выходим из root-овской сессии.

2. Следующим шагом нужно создать директорий, где будут находится DOS-овские программы. Сделать это нужно под своим аккаунтом.

Заходим в систему под «своим именем». В приглашении вместо символа «решетки» будет красоваться символ доллара — $.

По умолчанию мы находимся в своем домашнем директории. Вот в нем-то и создадим поддиректорий, куда поместим наши DOS-вские программы

mkdir-dosprogs

Необязательно называть директория dosprogs, называйте как хотите! Можете даже создать не один директорий, а несколько. Например, один директорий для работы с QBASIC-ом, другой — для работы в TurboPascal.

3. Теперь в эти директории нужно скопировать DOS-овские файлы.

Я не буду здесь заострять внимание на способе копирования файлов. Это элементарно и ни на что не влияет. Просто сделайте это удобным для вас способом.

dosprogs-ls

4. И последнее, что нам остается сконфигурировать dosbox для работы.

В общем-то это делать необязательно. Но тогда Вам придется выполнять эти действия всякий раз, когда вы будете работать с dosbox. В общем-то, вся конфигурация сводится к автоматизации некоторых действий, которые вам пришлось бы делать руками.

Итак, конфигурационный файл dosbox-*.conf располагается в скрытом директории .dosbox (обратите внимание на точку в начале имени файла!)

Нам нужно дописать в него несколько строк. Давайте откроем этот файл для редактирования:

nano-dosbox

Прокрутите файл в самый конец, найдите там секцию [autoexec], и допишите следующие строки:

keyb ru 866
mount c ~/dosprogs
c:\
dir

nano-dosbox.adding

Затем нажмите сначала F3 для сохранения файла, а потом F2 для выхода.

Строка keyb ru 866 — позволит нормально работать с DOS-овской кодировкой (с кириллицей).

Строка mount c ~/dosprogs — смонтирует директорий с нашими DOS-овскими программами, как Майкрософтовский «диск-Цэ».

Строка c:\ — переключит нас на этот диск. Иначе мы так и будем сидеть на виртуальном диске Z:

Строка dir — выведет на экран список файлов, которые присутствуют  на этом диске.

В принципе, если вы создаете диск для одной программы (как в моем случае), то можете вместо этой команды (dir) написать вызов вашей программы. У меня это команда QBASIC. Теперь можно запускать QBASIC и сочинять в нем свои мега-программы.

Для того чтобы запустить dosbox и начать работать с DOS-oвскими прогами, нужно в графической консоли нажать ALT-F2. В появившемся окошке ввести dosbox и нажать Enter.

Вуаля!

Running-dosbox

Если вместо команды dir вы написали команду QBASIC, то вы получите это:

Running-qbasic

Теперь не надо делать всё через сами-знаете-через-что. Никаких тебе «Vvedite nachalnoe znachenie peremennoy «, все сразу пишется по русски. Текст в программе может содержать кириллицу:

qbasic-rus

, которая при запуске программы так же нормально отображается:

Running-qbasic-e2

Бейсиковскую программу можно редактировать как в самой среде QBASIC, так и в любимом Линуксовом редакторе. У меня это gedit:

gedit-basic-rus

Правда, при загрузке в gedit текстового файла нужно явно указать ему раскладку:

select-866.1

иначе вместо кириллицы будут кракозябры.

* * *

Я просто не понимаю, как после всего этого можно не любить Линукс! Даже когда ему выламываешь руки и сносишь напрочь мозги, он продолжает жить:

Oh-no

Реклама

3 responses to “Как запустить QBASIC в Линуксе

  1. Я удивился, почему это Вы сразу не воспользовались dosbox, или на худой конец wineconsole (в ней, кстати FAR и DosNavigator отлично работают), вместо загрузки самого DOS или Windows.

    Я как-то за 15 минут решил задачу по компиляции виндовой проги, которую на винде делал бы несколько часов (http://ibnteo.klava.org/2011/04-07-linux).

  2. В qBasic под Win/DOS раскладка меняется тоже.
    Правые Ctrl+Shift — РУС, левые Ctrl+Shift — LAT.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s