Как раз qbasic использует функционал DOS при работе с СОМ портом (особо туда лезть не требуется), который вполне поддерживаем при работе с ХР. Относительно LPT по непосредственному адресу там возможен только прямой ввод/вывод в/из регистра данных, а доступ к управляющим регистрам по прямому адресу ХР блокирует, что и привело в недалеком прошлом к прекращению работы со старыми самодельными программаторами. Там у меня обмен шел частично через служебный регистр LPT непосредственным "программным ногодрыгом". А вывод в LPT как в файл ессно на сегодня уже особого интереса не представляет.
Гораздо более перспективно с точки обмена с всяко-внешней безделицей использовать СОМ (или USB-COM на соответствующих номерах, поддерживаемых старовасиками - СОМ1, СОМ2).
Посему за основу и взяты работа с текстовыми файлами (частность формат intel hex8 он же и как простой *.txt может быть записан) и с СОМ портом как с файлом random доступа.
Вполне себе приятненькая штука, учитывая что в КОТУИНКе (и в программаторе для АТ89Сх051 на ее основе) для обмена и управления используются именно *.hex файлики.
Одначе там и просто непосредственные ASCII сторки информационных сообщений через СОМ перегоняются.
Относительно простых строк - проблем вообще никаких нету.
А вот с точным преобразованием *.hex блоков кой - чего таки пришлось помудрить из-за неполной информации.
Смысл перебросок -
чтение с диска и пересылка через СОМ на устройство
и
прием с устройства и запись в ранее заготовленный пустой шаблон *.txt...
В основном проблемы в выборе INPUT# или LINE INPUT#, разных опциях самого СОМ как файла при открытии и поведении "непечатаемых символов" обрамления - 0x0D, 0x0A, 0x1A при записи/чтении данных в/из целевого файла на диске.
Ибо мудрить с добавлением 0x1A в готовые файлы есть некошерно, а "задвоение" 0x0A порой весьма на нерву действует.
Вобчемс... разобрался и с этим.
Благо тестировка особо проблем не представляет - открываем обыкновенный terminal на СОМ1 и собственно васик на СОМ2 да гоняем заранее известные файлики туда-сюда пока необходимый результат не получим.
Из аппаратной добавки - простейший перекрестный кабель (нуль-модемный) с минимальным набором сигнальных линий - используются только RxD, TxD и "земляной" (прицел на радиоканал).
Из дополнительных средств анализа - hieW6.86 - дабы наблюдать те "непечатные" в исходном и конечном файликах.
Теперь все расписать по конспектам да добавить всякоудобств, контроля и прочего интерфейсу для результирующей консольки програмаматора...
