Взаимодействие регистров LPT-порта. Внутри.
- Dr. Alex
- Это не хвост, это антенна
- Сообщения: 1438
- Зарегистрирован: Вт окт 28, 2008 09:00:18
- Откуда: Украина, Харьков
- Контактная информация:
Re: Взаимодействие регистров LPT-порта. Внутри.
Конечно реально! Просто при запуске программы сбрасывайте всё в 0 и будьте внимательны - СТРОБ инверсный)
Порой мне кажется, что я делаю какое-то дерьмо, но когда я вижу, что делают другие, то я чувствую себя гением...
-
Vova777
- Вымогатель припоя
- Сообщения: 507
- Зарегистрирован: Чт июн 16, 2011 15:06:10
- Откуда: электрощитовая
Re: Взаимодействие регистров LPT-порта. Внутри.
Dr. Alex писал(а):и будьте внимательны - СТРОБ инверсный
Да там похоже, половина Control-a инверсная
даешь высокое напряжение
- Dr. Alex
- Это не хвост, это антенна
- Сообщения: 1438
- Зарегистрирован: Вт окт 28, 2008 09:00:18
- Откуда: Украина, Харьков
- Контактная информация:
Re: Взаимодействие регистров LPT-порта. Внутри.
Это точно)))) Хотя достаточно основных 8 линий D0-D7. Тем более что их вы будете переключать как на передачу, так и на приём))))
Порой мне кажется, что я делаю какое-то дерьмо, но когда я вижу, что делают другие, то я чувствую себя гением...
-
Vova777
- Вымогатель припоя
- Сообщения: 507
- Зарегистрирован: Чт июн 16, 2011 15:06:10
- Откуда: электрощитовая
Re: Взаимодействие регистров LPT-порта. Внутри.
Dr. Alex писал(а):переключать как на передачу, так и на приём
Да )) Буду показывать МК, что ему с ногами делать ) Ок, спасибо.
даешь высокое напряжение
Re: Взаимодействие регистров LPT-порта. Внутри.
Я бы не сказал что работа с софтовым USB настолько сложна.Vova777 писал(а):Ну Вам так проще, а я не прошарен настолько, как там все это делать.
Если прога для МК на Си, посмотрите статью в журнале Радио 2010 № 3.
Если на бейсике, то смотрите статью в журналах Радио 2011 № 10 и 11.
Можете посмотреть простой пример.
Можно за вечер разобраться что к чему.
-
Vova777
- Вымогатель припоя
- Сообщения: 507
- Зарегистрирован: Чт июн 16, 2011 15:06:10
- Откуда: электрощитовая
Re: Взаимодействие регистров LPT-порта. Внутри.
Мурик писал(а):Если прога для МК на Си, посмотрите статью в журнале Радио 2010 № 3.
Если на бейсике, то смотрите статью в журналах Радио 2011 № 10 и 11.
Прога на компе (для LPT) на Делфи, а прога для МК на Ассемблере.
Мурик писал(а):Можете посмотреть простой пример.
Можно за вечер разобраться что к чему.
Спасибо ))
даешь высокое напряжение
- Dr. Alex
- Это не хвост, это антенна
- Сообщения: 1438
- Зарегистрирован: Вт окт 28, 2008 09:00:18
- Откуда: Украина, Харьков
- Контактная информация:
Re: Взаимодействие регистров LPT-порта. Внутри.
А почему-бы не "замутить" это всё на СОМ?
Порой мне кажется, что я делаю какое-то дерьмо, но когда я вижу, что делают другие, то я чувствую себя гением...
-
Vova777
- Вымогатель припоя
- Сообщения: 507
- Зарегистрирован: Чт июн 16, 2011 15:06:10
- Откуда: электрощитовая
Re: Взаимодействие регистров LPT-порта. Внутри.
Dr. Alex писал(а):А почему-бы не "замутить" это всё на СОМ?
Хочу на LPT, с ним сейчас разберусь, потом на COM буду делать. Надо же все знать. До USB доберусь потом. ))
даешь высокое напряжение
- Dr. Alex
- Это не хвост, это антенна
- Сообщения: 1438
- Зарегистрирован: Вт окт 28, 2008 09:00:18
- Откуда: Украина, Харьков
- Контактная информация:
Re: Взаимодействие регистров LPT-порта. Внутри.
Хотя вы правы, с ЛПТ проще всего) Тут явно задаёшь биты)))) используя inout32.dll. Я в своё время делал монитор ЛПТ порта) Да и станок ЧПУ собирал, управляя ЛПТ...
Порой мне кажется, что я делаю какое-то дерьмо, но когда я вижу, что делают другие, то я чувствую себя гением...
-
Vova777
- Вымогатель припоя
- Сообщения: 507
- Зарегистрирован: Чт июн 16, 2011 15:06:10
- Откуда: электрощитовая
Re: Взаимодействие регистров LPT-порта. Внутри.
Dr. Alex писал(а):Я в своё время делал монитор ЛПТ порта
Вот я сейчас собрал LPT-тестер. Фото:
Я всегда использую одну макетку для своих экспериментов. Там сверху слева я другой эксперимент проводил с МК AVR ATmega32. Справа - это я делал динамическую индикацию на МК AVR ATmega8L-8PU. Экспериментирую всё.

даешь высокое напряжение
- Ariadna-on-Line
- Это не хвост, это антенна
- Сообщения: 1479
- Зарегистрирован: Вс май 13, 2012 00:01:54
Re: Взаимодействие регистров LPT-порта. Внутри.
В LPT порту на выходах D0-D7 по-умолчанию висят нагрузочные резисторы. И не всякий МК их потянет. Чтобы их отключить, надо что-то записывать в "регистр контроля расширенного режима" (что-то вроде этого). Адрес в районе 578h. Поищите про двунаправленный режим LPT.
Re: Взаимодействие регистров LPT-порта. Внутри.
Многое будет зависить от того с какой ОСкой работать -
под Win98 можно творить с LPT все что угодно,
под XP много похуже - можно только управлять состоянием линий данных(ввод или вывод), остальные регистры завязаны на драйверах... изменение статуса порта управления приводит частенько к непредсказуемым результатам, а из входных "безнаказанно" можно работать только с ACK.
Вторая часть неприятностей - какой программой пользоваться для сотворения оболочки... на современных ПК действуют "большие" адреса области ввода/вывода 0xnnnn, которые должны быть указаны полностью, а не все старого образца программы с такой задачей справляются
Из прог под ПК на поиграться хватит команд штатного дебаггера (debug в DOS-окне или с командной строки, а далее по потребностям
) или вот такого "васика" от "Электроника МС1502"
(только запись /чтение ведет под FAT32...) ежли кого заинтересует имеется скан инструкции пользователя под сей васик с правилами создания вставок под ассемблером...

под Win98 можно творить с LPT все что угодно,
под XP много похуже - можно только управлять состоянием линий данных(ввод или вывод), остальные регистры завязаны на драйверах... изменение статуса порта управления приводит частенько к непредсказуемым результатам, а из входных "безнаказанно" можно работать только с ACK.
Вторая часть неприятностей - какой программой пользоваться для сотворения оболочки... на современных ПК действуют "большие" адреса области ввода/вывода 0xnnnn, которые должны быть указаны полностью, а не все старого образца программы с такой задачей справляются
Из прог под ПК на поиграться хватит команд штатного дебаггера (debug в DOS-окне или с командной строки, а далее по потребностям
(только запись /чтение ведет под FAT32...) ежли кого заинтересует имеется скан инструкции пользователя под сей васик с правилами создания вставок под ассемблером...

Re: Взаимодействие регистров LPT-порта. Внутри.
Это DOS прога.BOB51 писал(а):или вот такого "васика" от "Электроника МС1502"
Какой смысл запускать ее под NT системой? Под ней нужно как минимум 32 разрядное приложение работающее с портом через драйвер.
Re: Взаимодействие регистров LPT-порта. Внутри.
Под NT не запускал, а вот под Win98 и под WIn_XP вполне нормальненько работает.
Причем особо не разбирался - напрямую доступ он получает или через какой драйвер, но то, что выходными линиями LPT прота (0x0378) в режиме ECP управляет вполне на практике убедился. А вот попытка работать с 0x0379 и 0x037A именно под XP привела мя в огорчение - там все зависило и от материнки и от прочих подлостей прогресса.
Только под WIn_XP переключение на кирилицу не срабатывает, да для баловства есть DOSBox 0.74, на крайний случай транслит, ибо копаться в тонких настройках ПК диикооо вломки.
Зачем этот всаик нужен?...
Во первых лицензий и платежей за него не требуется - можно мелочевку нашкарябать и не опасаться, что кол от мелкософтовских "друзей" заквасят ( в отличии от мелкософтовских васиков, хоша и весьма забытых, но хрен его знает, не вспомнят ли о них правообладатели...)
во-вторых хорошо расписаны требования к подключаемым модулям (но, опять же под DOS), чего не очень-то легко сыскать хотя-бы для того же Microsoft Quick Basic 4.5 (или Microsoft Quick Basic 1.0/1.1), а о подписи в прикладной программе "я от пиратов" в остальных "хрякнутых" приложениях мелкософта умолчу...
и в третьих - чтоб не сильно заморачиваясь примитив на ПК получить хоша б для "побаловаться", да и размер программки...
Причем особо не разбирался - напрямую доступ он получает или через какой драйвер, но то, что выходными линиями LPT прота (0x0378) в режиме ECP управляет вполне на практике убедился. А вот попытка работать с 0x0379 и 0x037A именно под XP привела мя в огорчение - там все зависило и от материнки и от прочих подлостей прогресса.
Только под WIn_XP переключение на кирилицу не срабатывает, да для баловства есть DOSBox 0.74, на крайний случай транслит, ибо копаться в тонких настройках ПК диикооо вломки.
Зачем этот всаик нужен?...
Во первых лицензий и платежей за него не требуется - можно мелочевку нашкарябать и не опасаться, что кол от мелкософтовских "друзей" заквасят ( в отличии от мелкософтовских васиков, хоша и весьма забытых, но хрен его знает, не вспомнят ли о них правообладатели...)
во-вторых хорошо расписаны требования к подключаемым модулям (но, опять же под DOS), чего не очень-то легко сыскать хотя-бы для того же Microsoft Quick Basic 4.5 (или Microsoft Quick Basic 1.0/1.1), а о подписи в прикладной программе "я от пиратов" в остальных "хрякнутых" приложениях мелкософта умолчу...
и в третьих - чтоб не сильно заморачиваясь примитив на ПК получить хоша б для "побаловаться", да и размер программки...
Re: Взаимодействие регистров LPT-порта. Внутри.
Win 2000, Win XP и следующие за ней виста, 7 и 8, созданы на основе NT ядра и именно их подразумевал под NT системой.BOB51 писал(а):Под NT не запускал, а вот под Win98 и под WIn_XP вполне нормальненько работает.
По идее система Win 2000 и выше не должна такого допускать.BOB51 писал(а):Причем особо не разбирался - напрямую доступ он получает или через какой драйвер, но то, что выходными линиями LPT прота (0x0378) в режиме ECP управляет вполне на практике убедился.
Т. е. под DOS и Win9x от материнки вообще ничего не зависит?BOB51 писал(а):A именно под XP привела мя в огорчение - там все зависило и от материнки и от прочих подлостей прогресса.
Ни и добавлю.BOB51 писал(а):и в третьих - чтоб не сильно заморачиваясь примитив на ПК получить хоша б для "побаловаться", да и размер программки...
...и в четвертых, DOS программы не работают на x64 системах.
Если вам хочется программировать на бейсике, то есть альтернативы для x86 и x64 не от майкрософт. Причем хорошие альтернативы, позволяющие создать не только x86 и x64 программы или DLL, но и драйвер, что позволяет, с точки зрения системы, получить легальный доступ в порту.
В архиве, прикрепленном к сообщению пример такой программы, а так же исходники программ, dll и драйвера на бейсике. Изучайте.
- Вложения
-
- DriverIO_x86_x64.zip
- (52.93 КБ) 162 скачивания
Re: Взаимодействие регистров LPT-порта. Внутри.
Помнится старые DOS программы пользовались не драйверами, а функциями BIOS... А те прописаны однозначно и независимо от материнки (похоже и по сей день).
У любой программы главная часть - хорошее описание ее команд, директив, синтаксиса и файловой системы. Чтоб самому можно чегось написать так как хойчется можно было.
Здесь "все в комплекте" (скан описания для прямого выкладывания великоват, оттого и приписано - шлем на электорнку), на другое поискать надо. Есть у меня и посложнее програмки, и книжи, да только эта - самая примитивно-простая (после дебаггера). Чего касательно X64 - дык там еще надо надлежащее оборудование, чтоб те приложения тянуло, зато есть куча старых машин, иной раз задаром.
Просто подергать лапками LPT, да "поиграться" - и этого хватит, на большинстве новых материнок под X64 LPT вообще полностью отсутствует - если "по серьезному" так только USB учить надо и сетевые приложения, однако такое затратно и оправдано либо для профессионального уровня либо для пенсионного одиночества.
А программулю положил по принципу - есть в запасниках и отдать не жалко, насчет пользовать или нет - каждый сам для себя решает.
У любой программы главная часть - хорошее описание ее команд, директив, синтаксиса и файловой системы. Чтоб самому можно чегось написать так как хойчется можно было.
Здесь "все в комплекте" (скан описания для прямого выкладывания великоват, оттого и приписано - шлем на электорнку), на другое поискать надо. Есть у меня и посложнее програмки, и книжи, да только эта - самая примитивно-простая (после дебаггера). Чего касательно X64 - дык там еще надо надлежащее оборудование, чтоб те приложения тянуло, зато есть куча старых машин, иной раз задаром.
Просто подергать лапками LPT, да "поиграться" - и этого хватит, на большинстве новых материнок под X64 LPT вообще полностью отсутствует - если "по серьезному" так только USB учить надо и сетевые приложения, однако такое затратно и оправдано либо для профессионального уровня либо для пенсионного одиночества.
А программулю положил по принципу - есть в запасниках и отдать не жалко, насчет пользовать или нет - каждый сам для себя решает.

Re: Взаимодействие регистров LPT-порта. Внутри.
Все это конечно замечательно, только на скольких компах сейчас установлена DOS в качестве основной системы? Или хотя бы Win9x.
В том то и дело что их количество измеряется в сотых, а может и в тысячных долях процента и они имеются наверное в гос. учреждениях где до сих под используют древние проги.
У обычных юзеров основной комп имеет обычно больше 4 ГБ RAMа и поэтому установлена x64 система, где DOS-прога не заработает даже в режиме эмуляции. Так что если вы пишите прогу не только для себя, но еще и для других, то необходимо писать ее под современную ОС, а не давно неиспользуемую DOS, ИМХО.
В том то и дело что их количество измеряется в сотых, а может и в тысячных долях процента и они имеются наверное в гос. учреждениях где до сих под используют древние проги.
У обычных юзеров основной комп имеет обычно больше 4 ГБ RAMа и поэтому установлена x64 система, где DOS-прога не заработает даже в режиме эмуляции. Так что если вы пишите прогу не только для себя, но еще и для других, то необходимо писать ее под современную ОС, а не давно неиспользуемую DOS, ИМХО.
Любой комп (за очень редким исключением), выпущенный после 2000 года, потянет x64 систему. Но такие компы сейчас считают старыми и их можно взять за копейки.BOB51 писал(а):Чего касательно X64 - дык там еще надо надлежащее оборудование, чтоб те приложения тянуло, зато есть куча старых машин, иной раз задаром.
Может под DOS действительно сложно написать приложение работающее с USB или с сетью, но под винду, это не вызывает проблем даже у новичков в программировании. А все дело в том что винда предоставляет удобные функции для работы с USB (классы CDC, HID) и с сетью. Но если вы кодите под DOS, то да, работа с USB и сетью не так проста и сильно зависит от железа компа. Вывод: Надо кодить под современные ОС и кодинг упростится.BOB51 писал(а):если "по серьезному" так только USB учить надо и сетевые приложения, однако такое затратно и оправдано либо для профессионального уровня
Re: Взаимодействие регистров LPT-порта. Внутри.
Мурик писал(а):У обычных юзеров основной комп имеет обычно больше 4 ГБ RAMа и поэтому установлена x64 система, где DOS-прога не заработает даже в режиме эмуляции..... Вывод: Надо кодить под современные ОС и кодинг упростится.
ИЛИ ПОКУПАЙТЕ, ОСВАИВАЙТЕ, ДОГОНЯЙТЕ!!!!
И так до бесконечности ...
Прогресс штука хорошая, ежли ты производитель сего прогресса и изо всех сил стараешся не дать потребителю "очухаться", ибо... возможны негативные последствия...
Однако каждый при своем мнении и при том, что все точки зрения имеют право на жизнь, в зависимости от приложений.
Да и это уже тема "МЯЯЯУ!", а не данной ветки.
Re: Взаимодействие регистров LPT-порта. Внутри.
BOB51 писал(а):С меня для работ с МК и старых версий с 512 Мегабайтами хватает, ну на крайний случай 1 мег ОЗУ и старушка-XPишка с возможностью загрузки 98-й( двухсистемник)
Повторюсь. Если пишите для себя, то не важно на чем и под что. Но если хотите поделится своими наработками с другими, то нужно писать под распространенную платформу, а в данный момент это Windows и Linux, но никак не DOS. Надеюсь это понятно?Мурик писал(а): Так что если вы пишите прогу не только для себя, но еще и для других, то необходимо писать ее под современную ОС
Винде уже лет двадцать если что! Поэтому прогресс тут не причем.BOB51 писал(а):Прогресс штука хорошая, ежли ты производитель сего прогресса и изо всех сил стараешся не дать потребителю "очухаться", ибо... возможны негативные последствия...