Здравствуйте, SergeyIT, Вы писали:
SIT>Здравствуйте, Demetrio, Вы писали:
D>>К сожалению в ДОСе пока не получается этого добиться. SIT>В программе или из команды SIT>copy con lpt1 (или com1) ?
Из команды. Да и с небольшой тестовой программы — тоже....
Re[15]: эмуляция принтера на принимающей стороне LPT
Здравствуйте, Demetrio, Вы писали:
D>Из команды. Да и с небольшой тестовой программы — тоже....
Так может COM порт полетел? Это бывает (у меня 1 раз было — в розетке отошли земляные контакты, с тех пор соединяю корпуса компов напрямую).
Извините, я все еще учусь
Re[16]: эмуляция принтера на принимающей стороне LPT
Здравствуйте, SergeyIT, Вы писали:
SIT>Здравствуйте, Demetrio, Вы писали:
D>>Из команды. Да и с небольшой тестовой программы — тоже.... SIT>Так может COM порт полетел? Это бывает (у меня 1 раз было — в розетке отошли земляные контакты, с тех пор соединяю корпуса компов напрямую).
Да нет. Из Windows все ок. файлы передает.
Re[17]: эмуляция принтера на принимающей стороне LPT
Здравствуйте, Demetrio, Вы писали:
D>а не нужен ли какой-нить специальный драйвер под ДОс для COM-порта? А то ведь я ничего специфического не делал. Просто поставил "голый" ДОС.
Да нет вроде.
Может у Вас машина современная и с этим проблемы (может установки в биосе другие нужны).
Я недавно подобным занимался, но на 286, без проблем. А проверял Checkit'ом. Может Вам прислать?
Извините, я все еще учусь
Re[20]: эмуляция принтера на принимающей стороне LPT
Здравствуйте, SergeyIT, Вы писали:
SIT>Здравствуйте, Demetrio, Вы писали:
D>>а не нужен ли какой-нить специальный драйвер под ДОс для COM-порта? А то ведь я ничего специфического не делал. Просто поставил "голый" ДОС. SIT>Да нет вроде. SIT>Может у Вас машина современная и с этим проблемы (может установки в биосе другие нужны). SIT>Я недавно подобным занимался, но на 286, без проблем. А проверял Checkit'ом. Может Вам прислать?
Да. Был бы признателен. demetrio@mail.ru
Re[21]: эмуляция принтера на принимающей стороне LPT
Здравствуйте, Demetrio, Вы писали:
D>Ковыряюсь с настройками, вроде все выставляю аналогично — а пишет ошибку записи D>в порт. Может в ДОСе нужно еще какие-нибудь настройки ставить? Или в чем здесь может D>быть проблема?
Все зависит от того, каким способом ДОСовая программа печатает. Если через функцию ДОС — то тут все просто, и вывод перенаправляется без проблем. Если через BIOSное прерывание, то напрямую вывод не перенаправляется, но подменив точку входу чем-нибудь своим можно добиться искомого и при таком варианте. Но, к сожалению, большинство ДОСовских программ работают с COM и LPT портами "врукопашную", без использования ф-й DOS и BIOS. В этом случае перенаправление невозможно. Если целевая программа имеет свой GUI, то, скорее всего, это именно этот случай. Стандартными прерываниями для работы с портами во времена DOS пользовались только простенькие, как правило, консольные утилиты. В этом случае возможно три пути решения проблемы:
1) Дизассемблировать программу, найти ф-ю печати и пропатчить ее (самый, на мой взгляд, перспективный)
2) Запускать под VMWare и своим драйвером перехватывать обращения к LPT
3) Соединить с другим компом, на котором реализовать ответную часть принтерного интерфейса, чтобы второй комп рассказывал по LPT, какой он Epson. Не факт, что такое возможно чисто программно, но если поставить на STROBE триггер, то вроде без проблем, и даже без писания собственного драйвера.
Re[22]: эмуляция принтера на принимающей стороне LPT
Здравствуйте, Demetrio, Вы писали:
D>Да! Спасибо! Проверил — выдает ошибки. (принят неожидаемый символ, наоборот не принят ожидаемый символ и некоторые другие)
У меня такое было только с битым портом.
Советую Вам обратиться на forum.ixbt.com в соответствующий форум — там специалисты.
Извините, я все еще учусь
Re[24]: эмуляция принтера на принимающей стороне LPT
Самое интересное, что связь есть! Терминалка из DOS-NAvigatora (под ДОС-компом) и стандартная терминалка Windows пректасно ужились. и я могу писать нормальный текст — и он приходит в обе стороны.
Re[24]: эмуляция принтера на принимающей стороне LPT
У меня все больше складывается ощущение, что с COm-портом та же история что и с LPT. Т.е. необходим какой-то специальный протоколо взаимодействия. Например по терминалке все ок, а просто копирование текста в порт — ему не нравится....
Re[25]: эмуляция принтера на принимающей стороне LPT
А кабель у Вас правильно распаян?
Посмотрите здесь (но в Виндах вроде нужно другой драйвер с ним ставить) http://sakva.narod.ru/NullModemFrame.htm
И поищите в инете — вроде под ДОСом и Виндами СОМы как-то по-разному работают.
Я бы спросил на форуме железячников.
Com вариант не подходит. Com-порты заныты под другие цели...
Поэтому возвращаюсь к LPT. Замыкая на стороне Win-компа контакты 2 и 3 — то бишь на стороне DOS контакты 15 и 13 соответственно, получил возможность печати из DOS. Печать из DOS (из программы или командой) выполняется без ошибок. Но теперь встала проблема как отловить данные. Данные теперь приходят на следйющие котнакты (на стороне Win): 15,13,12,10,11,7,8,9 (в порядке возрастания битов). При посылке одного символа на контактах с 15-по 11 приходят данные (ASCII-символ), но верхних трех битов (7,8,9) не достает. Я так понимаю что это биты выходные и они не принимают с обратоной стороны данных. Но вроде как по теории можно переключить Направление передачи. Но ведь тогда я не смогу установить контакты 2 и 3, необходимые для проверки готовности "принтера" (Win-компа). Какой-то замкнутый круг!
Помогите! Как побороть данную проблему? Можно ли стандартным путем или же нужно все-таки писать свой драйвер. Читал про режимы... Nibble Mode и другие. Не совсем понял, можно ли обойтись средствами верхнего уровня для перехвата всех символов или же нужно эмулировать один из протоколов взаимодействия? Т.е. проверять и выставлять задержки, ответы, стробы данных, занятость и т.п.? И я так понял, на какждый символ должно формироваться прерывание или как? Иначе как прочитать следующий символ ?