0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 4

Возможно ли взаимодействие с Assembler

12.03.2012, 10:24. Показов 4342. Ответов 43
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возможно ли использование в quick.basic.4.5 ассемблер, для считывания сигналов с Parallel Port Connector и USB?
написание драйверов, для внешних устройств?

версия quick.basic.4.5 не интерпретатор.

если есть литература по ассемблеру для quick.basic.4.5, то пожалуйста дайте ссылку.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.03.2012, 10:24
Ответы с готовыми решениями:

Ошибка Invalid PUBLIC definition (взаимодействие Pascal и Assembler)
Invalid PUBLIC definition (move) Как я понял, эта ошибка в печёнках сидит не у одного меня. Перерыл много форумов, но исправить так и не...

Возможно ли взаимодействие Pascal и Excel
Нужно написать следующую программу: Тело бросают с земли вертикально вверх. Входными данными является начальная скорость, а на выходе...

Возможно ли взаимодействие ADO с OLE
Приветствую всех участников форума! Написал в свое время программку работающую с БД на DAO с использованием OLE. А теперь захотел...

43
Эксперт по электронике
6863 / 3286 / 340
Регистрация: 28.10.2011
Сообщений: 12,851
Записей в блоге: 7
26.03.2016, 14:48
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от тактик Посмотреть сообщение
Через другие программы (не бейсик) все изменения регистра Status , регистра Control прекрасно видно
Эта программа тоже видит? Возможно ли взаимодействие с Assembler
К слову, она на бейсике написана.

Цитата Сообщение от тактик Посмотреть сообщение
но мне то нужно в QB
Тогда ставьте DOS и запускайте программу. Должно работать (если конечно причина не в ошибке в программе).

Цитата Сообщение от тактик Посмотреть сообщение
я конечно попробую FreeBasic может наступят изменения
Потребуется не просто запустить код в FreeBasic, но изменить его, приведя в виду Win32/64 и вместо прямой работы с портом, нужно использовать драйвер.
0
 Аватар для vodav
572 / 141 / 37
Регистрация: 12.03.2012
Сообщений: 403
26.03.2016, 15:09
Цитата Сообщение от Жорик8 Посмотреть сообщение
если есть литература по ассемблеру для quick.basic.4.5, то пожалуйста дайте ссылку
http://www.basic.visual2000.ru... sart01.htm
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
27.03.2016, 23:26
я конечно попробую FreeBasic может наступят изменения...
Вы думаете дело в компиляторе. Оба компилятора работают с портами одинаково.
Разве что QB медленнее чем FB, т.к. интерпретатор, а компиляция подвязана на
библиотеку функций, которая тоже работает не быстро. Коммутировать бейсик с
ассемблером в ключе работы с портами для вашей задачи вполне может иметь
мало смысла, там нет каких-то особых абилок, наоборот больше запаривания по
задержкам(порт может не успеть среагировать до подачи в него новых данных).

Колитесь, вы там COVOX что-ли паяете, зачем вам LPT?
Всё что касается старых портов COM, LPT лучше делать из под чистого DOS.
В винде это будет прослойка(костыль) из драйвера, который будет дико тормозить
доступ(вызов функций ядра операция не самая быстрая), под DOS-ом же ничего
этого не нужно, прямая работа с портом.
Если проблема с загрузкой DOS, то загрузочный CD можно сделать из образа дискеты
через NERO, делается очень просто на самом деле(если подсмотреть в конфиг файлы
старых реаниматоров).

Потребуется не просто запустить код в FreeBasic, но изменить его
Чел хочет использовать сборку FB под DOS, но запускать прогу из под WinXP. Хех...
Даже 98-я винда очень паршиво работала в режиме эмуляции DOS, чего уж про XP
говорить.
0
2 / 2 / 0
Регистрация: 07.02.2016
Сообщений: 17
28.03.2016, 20:04
мужики! чтобы было все понятнее объясню. на работе используется для настроек и регулировок древний как говно мамонта комп,памяти в нем 300 мб ,тесты проходят в ХР . использую QB и LPT в качестве альтернативы замене пальцев рук и напряга зрения в повседневной монотонной работе . минимум средств а итог - сижу "курю бамбук" . но для некоторых изделий не хватает четырех штук входящих сигналов(потому что с других регистров почему-то не прочесть ,о чем говорил в предыдущих сообщениях) нужно больше. вы мне предлагаете варианты от которых комп уйдет в "глубокую задумчивость" . а с портом видно что работает но такое ощущение что пытаюсь прочесть не по тем адресам или в биосе чего надо поменять ,или какой то бит устанавливать а потом читать????. ответ где-то рядом ......вот тут то и нужны сторонние мозги . одна голова хорошо а много еще лучше. крайний случай есть простой способ получить больше входных сигналов используя те несчастных четыре работающих входа - это программная коммутация , но уже из принципа становиться интересно - где собака зарыта???.
0
Эксперт по электронике
6863 / 3286 / 340
Регистрация: 28.10.2011
Сообщений: 12,851
Записей в блоге: 7
28.03.2016, 20:29
Цитата Сообщение от тактик Посмотреть сообщение
где собака зарыта???.
Зарыта на поверхности. QB для DOS. Он не предназначен для работы в Windows. Надеюсь это понятно?
Если нужно чтобы работало нормально, ставьте DOS и запускайте программу по ее управлением.
Но возможно у вас в коде ошибка...

Цитата Сообщение от тактик Посмотреть сообщение
вам не приходила в голову мысль в век машин посоветовать людям которые любят ездить на велосипедах посоветовать ездить на машине или летать самолетами
Запуская DOS-программу работающую с железом под WindowsXP, вы хотите перелететь на велосипеде через океан. Либо не пытайтесь через океан переделать (ставьте DOS), или переписывайте программу на ЯП, компилирующий под Windows (в самолете перелетайте через океан).
0
 Аватар для vodav
572 / 141 / 37
Регистрация: 12.03.2012
Сообщений: 403
29.03.2016, 13:13
Для виндов в свое время писали кучу библиотек для псевдопрямой работы с портами. Вот у меня в архиве что-то завалялось. Попробуйте это: https://www.cyberforum.ru/atta... 1459246336
Вложения
Тип файла: zip UserPort.zip (33.0 Кб, 16 просмотров)
0
2 / 2 / 0
Регистрация: 07.02.2016
Сообщений: 17
29.03.2016, 20:32
Цитата Сообщение от locm Посмотреть сообщение
Зарыта на поверхности. QB для DOS. Он не предназначен для работы в Windows.
в полне возможно но он у меня работает под ХР (за мелкими исключениями ) и мне нужно (по потребностям) что бы он работал под ХР. к стати забыл сказать что я запускал вашу программу LPT Status - она прекрасно видит изменения в регистре при подачи сигналов из вне. Вы говорите она написана на бейсике ?? а можете скинуть исходник ,тогда было бы сразу ясно где ,что и почему.
0
Эксперт по электронике
6863 / 3286 / 340
Регистрация: 28.10.2011
Сообщений: 12,851
Записей в блоге: 7
29.03.2016, 21:06
В архиве исходник программы (основной файл LPT_Pins.pb) и драйвера. Диалект бейсика - PureBasic.
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
XIncludeFile "pbdriverio_Framework.pbi"
 
 
Procedure GetLPT1(hDriver)  ; Процедура чтения данных из LPT1
  Byte.a = PortInp(hDriver, $379)  ; Чтение из порта
  SetGadgetText(0, RSet(Bin(Byte), 8, "0")) ; Отображение в окне.
EndProcedure
 
 
hDriver = OpenDriver_PB_IO(@ErrCode)
If hDriver = 0
  MessageRequester("Ошибка доступа к драйверу", "Код ошибки:  "+Str(ErrCode))
EndIf
 
 
; Открываем окно
OpenWindow(0,0,0,130,70,"lpt status", #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_Invisible)  
StringGadget(0, 2, 4, 124, 20, "")
ButtonGadget(9,2,30,128,24,"Прочитать Status LPT 1") ; Экранная кнопка
HideWindow(0,0)   ; Отображение окна на экране
 
Repeat         ; Главный (оконный) цикл программы "Repeat - Until"
  Event=WaitWindowEvent()  ; Идентификатор события
  If Event=#PB_Event_Gadget ; Произошло событие в гаджете
    Gadget=EventGadget()    ; ID гаджета, в котором произошло событие
    If Gadget=9             ; Обнаруден клик по экранной кнопке
      GetLPT1(hDriver)            ; Процедура передачи информации по порт LPT1
    EndIf
  EndIf
Until Event=#PB_Event_CloseWindow ; Когда закрывают окно, цикл будет прерван и прога завершит работу.
 
CloseDriver(hDriver)
Вложения
Тип файла: rar LPT Status_Src.rar (7.9 Кб, 4 просмотров)
0
2 / 2 / 0
Регистрация: 07.02.2016
Сообщений: 17
29.03.2016, 21:36
да ,если бы я был еще знаком этим РВ , хотя с первого взгляда зкомое есть .
вот эта строчка нужная мне - Byte.a = PortInp(hDriver, $379)
у меня в проге - a = INP(&H379) должно работать но не работает
интересно а как это применить у меня ????
0
Эксперт по электронике
6863 / 3286 / 340
Регистрация: 28.10.2011
Сообщений: 12,851
Записей в блоге: 7
29.03.2016, 21:53
Строка
PureBasic
1
Byte.a = PortInp(hDriver, $379)
это вызов процедуры из файла pbdriverio_Framework.pbi.
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
Procedure PortInp(hDriverID, PortAddress.u) ; Чтение байта из порта, адрес которого указан в 'PortAddress'.
  Protected Result, Buffer.i, BytesReturned.i, OutBuff.i
  Result=0 : Buffer=0 : OutBuff=0
  
  If hDriverID
    Buffer=PortAddress
    DeviceIoControl_(hDriverID, #IOCTL_READ_PORT_UCHAR, @Buffer, 2, @OutBuff, 1, @BytesReturned, 0)
    Result=OutBuff
  EndIf
  
  ProcedureReturn Result
EndProcedure
В ней вызывается WinAPI функция DeviceIoControl (описание на русском), позволяющая обмениваться сообщениями с драйвером, в данном случае pbdriverio.sys. Драйвер (его исходник в папке DriverIO) получив сообщение #IOCTL_READ_PORT_UCHAR вызывает процедуру
PureBasic
1
2
3
4
5
6
7
8
9
Procedure.b InPort(Port.u)
  Protected Result.b=0
  EnableASM
  MOV DX, Port
  IN  al,DX
  MOV Result, al
  DisableASM
  ProcedureReturn Result
EndProcedure
Может все это кажется запутанным и слишком усложненным, но таковы правила Windows. Доступ к портам имеют только программы, выполняющиеся на уровне ядра ОС.
0
2 / 2 / 0
Регистрация: 07.02.2016
Сообщений: 17
29.03.2016, 22:20
тое-сть предлагаешь осваивать РВ , а драйвер с QB никак нельзя связать (я с драйверами никогда не связывался-не мой уровень , я техник)
0
Эксперт по электронике
6863 / 3286 / 340
Регистрация: 28.10.2011
Сообщений: 12,851
Записей в блоге: 7
29.03.2016, 22:39
Чтобы связать драйвер с QB-приложением, нужно из него вызывать функции Windows, в частности CreateFile, DeviceIoControl и подобные. Но когда разрабатывали QB, Windows в ее современном виде еще не существовало и в QB нет возможности с ними взаимодействовать. Еще одно препятствие в том что QB-программы, 16-ти битные, а функции Windows, 32 или 64 битные и они взаимодействовать не могут.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
30.03.2016, 02:01
и мне нужно (по потребностям) что бы он работал под ХР.
Помню, тоже хотел помигать диодами клавиатуры, программируя контроллер через порты
строго по спецификации из асмовой книжки, итог - на NTVDM не помигал, хотя показания
очень даже читались... Под DOS-ом в своё время получалось... Делайте выводы...
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
30.03.2016, 06:41
Цитата Сообщение от тактик Посмотреть сообщение
у меня в проге - a = INP(&H379) должно работать но не работает
интересно а как это применить у меня ????
Сделайте усилие над собой и маааленький шажок вперёд в сторону прогресса - перепишите свои строчки с QB на VB6, Вам даже ни чего нового учить не придется, практически всё то же самое, и синтаксис и операторы.
Вот прочитайте бегло на досуге, и не найдёте отличий от своего QB, ну может только пару первых строчек для инициализации библиотеки "inpout32.dll".
0
2 / 2 / 0
Регистрация: 07.02.2016
Сообщений: 17
30.03.2016, 20:57
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Под DOS-ом в своё время получалось... Делайте выводы...
да я прекрасно знаю что под досом все работает, но не могу же я одновременно запускать и дос и виндовс .А винда нужна потому что тестируется аппаратура из под нее. вот такие пироги ...

Добавлено через 28 минут
а сама библиотека "inpout32.dll"где находиться ???
если можно дате ссылку для скачки руссифицированного VB6 или скинте и мы сделаем
Цитата Сообщение от Pro_grammer Посмотреть сообщение
маааленький шажок вперёд в сторону прогресса
0
 Аватар для vlisp
1068 / 989 / 153
Регистрация: 10.08.2015
Сообщений: 5,394
31.03.2016, 23:18
Цитата Сообщение от тактик Посмотреть сообщение
если можно дате ссылку для скачки руссифицированного VB6 или скинте и мы сделаем
Если для работы, то забудьте... как правило компиляторы оставляют в бинарнике свои следы, так что доказать что вы не верблюд, не получится, VB6 не бесплатный и уже давно не продается...
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
01.04.2016, 21:16
Если для работы, то забудьте... как правило компиляторы оставляют в бинарнике свои следы
Если *.dll-ка идёт отдельно(или есть аналог), то можно её функции подгрузить в FB.
И всё будет легально.
0
 Аватар для vlisp
1068 / 989 / 153
Регистрация: 10.08.2015
Сообщений: 5,394
03.04.2016, 00:52
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Если *.dll-ка идёт отдельно
Если почитать лицензионное соглашение, то там прописывается запрет на использование частей продукта, любой файл дистрибутива является частью продукта, так что не пойдет
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
03.04.2016, 01:06
Цитата Сообщение от vlisp Посмотреть сообщение
то там прописывается запрет на использование частей продукта
Процитируйте где так написано. Я вот вижу open source проект:
http://www.highrez.co.uk/downloads/inpout32/

Зачем публиковать проект и запрещать им пользоваться?
0
 Аватар для vlisp
1068 / 989 / 153
Регистрация: 10.08.2015
Сообщений: 5,394
03.04.2016, 02:38
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Я вот вижу open source проект:
Вообще-то я по поводу VB6 высказался
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.04.2016, 02:38
Помогаю со студенческими работами здесь

Возможно ли взаимодействие интегрированной и дискретной видеокарт?
взаимодействие интегрированной и дискретной видеокарт.возможно ли? Не надо включать Caps-Lock

Ошибка в Assembler или, возможно, DOS/
Писал программу на Assembler, для заполнения матрицы по спирали. Exe файл работает правильно, а с com возникла проблема. Выводит...

Взаимодействие между пользователями средствами jquery ajax — возможно?
Возможно ли средствами Jquery ajax реализовать взаимодействие между пользователями? На сайте авторизовались два пользователя, один с...

Если нельзя выполнить вход в систему, возможно ли сетевое взаимодействие с данным ПК
Здравствуйте. Есть ноутбук, не можем войти в систему Windows 8. Возможно ли скинуть с него файлы по сети на другой комп.Через лайв сиди,...

Возможно ли, и если возможно, то как можно получить свой номер телефона?
возможно ли, и если возможно, то как можно получить свой номер телефона? т.е. на эмуляторе это будет +1 (425) 001-0001


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru