Други технологии > Компјутерска технологија и софтвер

Дозвола за користење LPT/COM порти на Windows XP

(1/2) > >>

stiffy:
Здраво дечки, имам еден проблем.

Моментално работам на едно проектче, имам програма во асемблер 80x386... некоја комуникација на паралелен порт.

Досега се работев конкретно софтвер во dosbox, и се работеше супер. Последниов проект користам i/o порти од LPT порт конкретно со надворешен хардвер и не можам да користам никакви порти преку самиот досбокс (ваљда немам дозвола).

Прашањето ми е како би можел да добијам контрола од windows да ги управувам портите....сеедно дали преку досбокс или на друг начин. (слушнав од еден професор да користам cmd и некој си porttalk драјвер ама појма немам како да го изведам).

Или дали некој знае како би можел да инсталирам MS DOS на лаптопов и уствари да си го решам проблемот. Прво не знам како се инсталира дос, второ цд-ромот не ми работи, трето нема опција за boot од усб.

користен лаптоп: Dell PP01L Latitude C500/C600
рам 256мб интел целерон 900МHz
оперативен систем: Windows xp

GigaWatt:
Проблем е што NT kernel-от (XP има NT kernel) има strict control што и кој смее да користи влезно/излезни порти, како што се COM и LPT. Само за PS/2 не е потребно ова ниво на заштита бидејќи интерфејсот за контрола е стандардизиран (само маус и тастатура може да се врзе за нив, за разлика од COM и LPT кои се genera purpose I/O и што сакаш може да врзеш за нив). Ова е последица на самиот дизајн на NT kernel-от, има layer-и на работа, слично на *NIX kernel-ите, за разлика од DOS кој имаше само еден layer. Кај NT веќе имаш users (корисници), без разлика дали се локални или во domain, што значи дека секој корисник има определени привилегии ;). Кај NT 5.x (2000, XP, Server 2003) имаше два мода на работа на програмите, user mode и kernel mode (мислам дека и на се од Vista па наваму е исто, ама не сум сигурен). User mode се смета за Layer 3, a kernel mode се смета за Layer 0. Генерално земено, повеќето програми се подигаат и работат во user mode, не kernel mode. Кога програма ќе се подигне во user mode, оперативниот систем (kernel-от) не дозволува пристап до определени I/O порти, т.е. програмот нема доволно „високи“ пермисии за да пристапи до нив (работи во Layer 3, не во Layer 0).

Практично, за да може DOSBox да комуницира со COM и LPT на XP, мора DOSBox да има привилегии за да го направи тоа. Колку што знам оригиналниот проект нема поддршка за такво нешто (контрола на LPT и COM), но мислам дека имаше некои patched верзии кои имаа printing support под DOS. Ова би требало да ти заврши работа ;).


--- Code: ---http://www.dosbox.com/wiki/SVN_Builds#Enhanced_SVN_builds
--- End code ---

Кога ќе размислам подобро, дури и ако ја симнеш верзијата која има printing support, тоа е само за конкретно определена работа, printing, а не и за контрола на LPT портот, така да, ова најверојатно нема да ти заврши работа :-\... но не е на одмет да пробаш.

Без разлика, професорот твој е во право. Има porttalk драјвер кој му овозможува на Command Prompt или било која друга програма да го прави она што нема привилегии да го прави - да „разговара“ со порти со кои може да комуницира само програм подигнат во kernel mode. Генерално земено, само драјвери може да работат во kernel mode (Layer 0) во NT kernel-и, но има финти како може да подигнеш програм да работи во Layer 0 (некаде се нарекува и Ring 0 или за user mode, Ring 3). Јас најчесто го користам OllyDbg со StrongOD plug-in под XP за ваква работа, но сигурно има и други начини. Е сега, недостаток на овој начин е тоа што можно е некои други програми да се „бунат“ бидејќи нешто што не треба да работи под kernel mode, работи под kernel mode, затоа и не се препорачува овој начин да се користи, бидејќи може други проблеми да направи :P.

Е затоа, на некој му текнало да го направи PortTalk драјверот, за да им овозможи на програми кои работат во user mode да имаат пристап до I/O порти ;). Еве нешто подетално за проектот и како можеш да го користиш и инсталираш под Windows XP ;).


--- Code: ---http://web.archive.org/web/20090213171827/http://beyondlogic.org:80/porttalk/porttalk.htm
--- End code ---

А еве и download link за драјверот ;).


--- Code: ---http://web.archive.org/web/20100612215239if_/http://beyondlogic.org/porttalk/porttalk22.zip
--- End code ---

Мислам дека ти е доволно за почеток. Прочитај како се инсталира, како може да го користиш, итн., па ако заглавиш некаде, пиши ;).

Ако се решиш да ставиш DOS на лаптопот, имаш готови image фајлови online. Не мора да имаш исправен CD-ROM за тоа. Извади го HDD-то, стави го DOS image-от на него со адекватниот софтвер (сигурно е напишано како, од каде и да си го симнал image-от) и потоа само врати го назад HDD-то и пушти го лаптопот, би требало да се подигне DOS ;).

Atanas:
Сеуште ли се користи Windows XP? И зошто не би го искористил DOS-от преку Virtualbox? Би требало така да функционира.

GigaWatt:
Бидејќи Command Prompt не е баш DOS. Тоа е legacy програмче по NT кое би требало да може да прави се што можеше да прави и DOS, но реалноста не е таа. Може да прави други работи што DOS не можеше, ама не баш се работи како што треба под Command Prompt (како што работело под DOS). Зошто? Пред се бидејќи работи како програм под protected mode OS, а не како посебен оперативен систем. И не мислам дека Command Prompt работи под kernel mode, мислам дека работи како и секој друг програм под user mode, а за да можеш да правиш се што си можел да правиш под DOS во однос на влезно-излезни порти, мораш да го подигнеш во kernel mode (Ring 0)... или тоа, или да го работиш она што си планирал да го работиш баш под DOS, трето нема :-\.

Евентуално може да се проба со некое distro на Linux и WINE, ама најверојатно и таму ќе треба да се зезаш со пермисии бидејќи таму се се подига како user, ќе мора што и да е она што планираш да го подигаш да го подигнеш како root... не сум пробувал искрен да бидам, но најверојатно така би одела работата.

И да, јас сеуште користам Windows XP. За некои работи е многу корисен ;). На пример, на PC-то во работилница сеуште сум на Server 2003 модифициран да работи како desktop OS ;). Да не зборувам за три виртуелни машини, две XP x86, една XP x64, на кои работам RCE или debugging. Многу е корисен, особено кога станува збор за стари софтвери или модификација на драјвери кои поради некои причини, не работат како што треба под понови оперативни системи. Може да дебагираш на раат, без никакви prompts „ова не е дозволено, она не е дозволено, ваков error, онаков error“, проблеми кои се јавуваат пред се поради стегнатите пермисии на 7, 8.1 и 10. Кај XP немаше такви проблеми, ако си admin, admin си и тоа е тоа, нема elevated admin, к*рци палци, како што има кај поновиве оперативни системи ;).

Ова може да изгледа парадоксално за помладиве членови на форумот, но XP беше многу добар оперативен систем за оние кои сакаа да се зезаат со хардвер, софтвер, дебагирање... што би рекле, сакаат да 'рчкаат ;). Немаш signer drivers? Нема проблем, install anyway ;). Работи? ОК, тоа е тоа ;), толку, чао пријатно. Сега, ако немаш digital certificate, ај иди инсталирај некој драјвер да те видам ::). Мораш да го подигаш со signature enforcement override секој пат, а ова не им се допаѓа на многу други програми бидејќи тогаш оперативниот систем работи во debug mode ::).

stiffy:
Гига, фала многу за исцрпното објаснување, реално и прашањево за тебе и беше само вака јавно поставено хаха :D

Денеска имав та среќа, успеав да стигнам до фамозниот компјутер на факултет шо има дос, се снајдов шо е како е...искуцав тест код и све функционираше. Само, зато шо имам грд табиет...место 5 му дадов 7v на а/д конверторот и цркна.

Викендов нема да имам пристап на факултет па ќе се позанимавам со ова, ако успеам се да спроведам, ќе напишам се како е, шо е па ако му затреба на некого да може да искористи.


--- Quote from: Atanas on 21.12.2018, Friday, 14:03:01 ---Сеуште ли се користи Windows XP?

--- End quote ---

Windows xp според мене е најдобриот оперативен некогаш направен, од аспект на стабилност, флексибилност и секој др аспект реално. Проблемот моментално е шо е престар, можда ти не го ни имаш користено па е проблематичен за поддршка на некои работи, ама за тоа шо го користиме е forever young xD. Наредно исто многу стабилен систем е Windows 7, јас стриктно хр и 7 користам, и не планирам да се префрлам од тоа во блиска иднина.


--- Quote --- И зошто не би го искористил DOS-от преку Virtualbox? Би требало така да функционира.
--- End quote ---
Баш за тоа е и целава тема уствари...за внатрешна програма никаков проблем, кога треба да се користат порти се појавуваат проблемите со дозвола за користење на истите...зато се целите објаснувања на Гига.


--- Quote ---Да не зборувам за три виртуелни машини, две XP x86, една XP x64, на кои работам RCE...

--- End quote ---
беа то времиња, имав околу 7-8 години обожавав да гледам и да “учам“ од еден братучед, мноогу правеше такви дубари xD

Navigation

[0] Message Index

[#] Next page

Go to full version