Мой опыт программирования уже "древней" Vertex VX-210A под современной убунтой.
Под убунтой, но не совсем. На самом деле в DOS, но в эмуляторе qemu-system-i386.
В DoxBOX не завелось - ошибки снюхивания COM-порта DOS и /dev/ttyUSB0: повторить эксперимент с DosBOX не удалось даже посли победы над FreeDOS.
0. Паяем из USB->COM конвертера CH340 примитивную схемку из одного диода:
- как она работает можно отдельно обсудить. Резистор не обязателен, станция подтянет туда напряжение из себя. CH340 - один из наиболее кошерных USB-UART конвертеров из существующих в природе, как я понял, с ним меньше всего приколов. Джампер ставим в 3.3V, но незнаю наколько это важно. Втыкаем кабель в станцию в выключенном состоянии, иначе можно спровоцировать её на вечную передачу. Не дёргайте кабель в станцию и из неё, пока она включена.
Данная схема будет работать так же на Vertex Standard VX-231.
1. Качаем FreeDOS откуда-нибудь (там архив метров на 350), достаём FD13LIVE.iso (спойлер: ставить его не надо, загрузимся так).
2. Качаем DOS-софтину CE45, раззиповываем, кладём в папочку CE45. Есть ещё windows-софтина с японским интерфейсом (ищется на этом сайте, но под Windows 10 она не запускается, так что останемся на кошерной DOS-версии и не пойдём по виндовому пути).
3. Создаём из папочки CE45 .iso - образ:
mkisofs -o disk-ce45.iso CE45
Теперь у нас появился файлик disk-ce45.iso
4. Втыкаем USB-UART адаптер, убеждаемся что /dev/ttyUSB0 существует и на него стоят права 777 для простоты (sudo chmod 777 /dev/ttyUSB0).
5. Зададим режим работы /dev/ttyUSB0: (кажется это довольно критичный шаг, софтина изнутри FreeDOS то-ли не способна сделать это сама, то-ли её попытки не проходят через виртуализацию..,)
stty -F /dev/ttyUSB0 9600 raw -echo
6. Запускаем FreeDOS прямо с CDROM, подсовывая второй CDROM с нашей софтиной CE45 и одновременно пробрасывая
qemu-system-i386 -hda freedos.img -drive file=FD13LIVE.iso,index=1,media=cdrom -drive file=disk-ce45.iso,index=2,media=cdrom -m 16 -boot order=d -chardev serial,path=/dev/ttyUSB0,id=extusbserial -device isa-serial,chardev=extusbserial
"Use FreeDOS 1.3 in Live Environment Mode" в загрузчике выбирайте. После загрузки окажетесь в диске D:
7. После старта DOS и появления D:\ можно профилактически запустить команду "mode". Она распишет имеющиеся в системе COM-порты и другие адские консоли и принтеры. В первых строках вы должны увидеть, что у вас есть COM-порт и что у него есть какое-то там состояние, например его флаги и состояние буферов. Если выключить-включить станцию, подключенную к нашей хардварной фундервафле, то повторный запуск mode позволит увидеть, что во входной буфер что-то упало. Это стартовые байтики, которые станция при каждом включении посылает на выход, приглашая с собой поработать.
7. Когда DOS загрузился, переходим на диск E: командой "E: <ENTER>"
8. Набираем CE45 <ENTER>, запускается софтина CE45 в чёрно-белом режиме. В какой-то менюшке её можно сделать цветной и она запомнит настройки. Далее Upload - прочесть станцию, Download - загрузить прошивку в станцию (не интуитивно, да, но в софтине всё напиано). Софтина будет просить выключить-включить станцию. Должны рисоваться красивые прогресс-бары, литься прошивка туда-сюда, появляться всякие окошки о завершении. Можно из них выйти, выключить станцию и достать из неё кабель. Потом включить и проверить, поняла ли она перепрошивку. У меня получилось прошить с первого раза обе имеющиеся. С того первого, когда FreeDOS начал видеть данные в COM-порте. Кстати, я в жизни редко занимаюсь программированием профессиональных станций и заценил фичу: можно разные станции подключать к порту по очереди и жать кнопку Download, как-бы клонируя все сделанные настройки на всю партию.
P.S. DosBOX проверил ещё раз. Всё так же сыпет ошибками
Serial1: Opening ttyUSB0
Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:0), TX:0, Break 0
Serial1: Errors: Framing 0, Parity 0, Overrun RX:2 (IF0:0), TX:0, Break 0
Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:0), TX:0, Break 0