Работа с Motorola RSS через DOSBox

По сей день можно услышать, что мол-де старые “Моторолы” программируются самым что ни на есть содомским способом, обязательно с древнего компьютера с физическим COM-портом, и чтобы на нем стояла именно чистая MS-DOS. История эта идет из начала двухтысячных, когда вопросы, связанные с GP 300, особенно активно обсуждались в Рунете и, естественно, у кого с тех времен так и осталась инерция, а кто уже с нуля это все нагуглил. Причем даже тогда это недолго было актуальным.

Для программирования Motorola GP 300 и прочих раций того времени вы можете использовать любой компьютер и ноутбук, под управлением не только любой версии Windows, но и Linux, Mac OS X и так далее.

Секрет прост: еще в 2002 году вышла первая версия DOSBox – эмулятора, способного создавать нужное окружение для запуска досовских программ. Писали его в первую очередь для старых компьютерных игр, но для нас принципиально сейчас то, что DOSBox умеет “прокидывать” последовательный порт из хост-системы в созданное им окружение. Проще говоря, наличие на компьютере физического COM-порта вовсе не обязательно: в эмулированную среду можно перенаправить и виртуальный порт переходника USB-TTL, и даже программную “обманку”.

Содержание

  1. Установка DOSBox
  2. Скачивание Motorola RSS
  3. Конфигурация DOSBox

Для простоты посмотрим, как установить и настроить DOSBox.

Шаг первый: скачиваем дистрибутив, соответствующий используемой операционной системе. Все они выложены на странице проекта на SourceForge, актуальная на момент написания версия – 0.74-3.

Скачиваем и устанавливаем. Перед тем, как приступить к конфигурации DOSBox, нужно также скачать саму программу для работы с рацией. Последнюю из известных версий можно найти прямо здесь, в файловом архиве.

Извлекаем все файлы из архива в какую-нибудь папку на жестком диске. Для примера используем D:\GP_300. В файле README.TXT можно увидеть перечень номеров моделей раций, поддерживаемых программой:

Обратите внимание, что Motorola P110 этой версией уже не поддерживается. Для работы с ней используйте версию R07.00.00.

Если же речь идет о Motorola GP 300 Select-V, то для нее нужен собственный софт, несовместимый с прочими модификациями рации:

Теперь можно приступать к настройке DOSBox. Вся его конфигурация задана в обычном текстовом файле, ярлык для которого сразу пропишется в меню “Пуск” Windows. Для Linux он будет лежать по адресу ~/.dosbox/dosbox-{version}.conf.

В нем редактируем следующие разделы:

[sdl] – отвечает за настройки отображения. По умолчанию DOSBox будет запускать программы в разрешении 640х480 пиксель-в-пиксель с реальным монитором, а даже при разрешении 1920х1080 на моем 24″ мониторе приходится реально напрягать глаза в этом случае. Поэтому прописываем

windowresolution=1024x768
output=ddraw

Теперь окно будет масштабироваться до указанного размера. Крупнопиксельные шрифты, конечно, тоже не радость, но их хотя бы можно читать, не утыкаясь в монитор.

[cpu] – настройки виртуального процессора для DOS-программы. Здесь все можно оставить на auto, изменив только

cycles=max

Дело в том, что для совместимости с разными играми DOSBox имеет возможность виртуально “замедлять” запущенную программу, и даже при настройке auto заставляет ее работать медленнее, чем она могла бы. Здесь возможны варианты, но лично на моей системе никакое замедление для работы с RSS не понадобилось, зато с ним были ощутимые “тормоза” даже при переходах по меню. Так что можно просто выставить виртуальную “тактовую частоту” на максимум, и только по необходимости (например, если программа зависает при считывании данных из рации) экспериментировать с замедлением (при запущенной программе это делает сочетание клавиш Ctrl+F11, текущее значение cycles отображается в заголовке окна).

[serial] – вот здесь уже пробрасывается COM-порт. Смотрим, где в системе прописался адаптер (о котором следующая статья):

Соответственно правим конфигурацию:

serial1=directserial realport:com5

В этом случае наш адаптер на порту COM5 запущенная в DOSBox программа будет видеть как COM1. В целом для работы с Motorola RSS программа уже готова, однако для удобства спустимся еще ниже.

[autoexec] – этот раздел можно произвольно наполнять DOS-командами, которые будут выполнены сразу после инициализации эмулятора. Прописываем:

mount C D:\GP_300
C:
GP350.exe - для R08.01.00 или
GP300.exe - для предыдущих версий или
GP300-5T.exe - для GP 300 Select-V

Теперь при запуске DOSBox будет автоматически монтировать папку с распакованной RSS как виртуальный диск C: и сразу запускать RSS.