Где и как написать программу времен DOS

Остальные вопросы по работе с операционной системой Windows
aftaev
Зачётный участник
Зачётный участник
Сообщения: 32903
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 5906
Откуда: Казахстан. Шымкент
Контактная информация:

Где и как написать программу времен DOS

Сообщение aftaev »

Купил коробульку которая считывает с щупов данные и передает их в комп.
Вместе с коробулькй пришло 2 дискеты с прогой DOS и файлами *.BAS
Прога досовская не запускается (черный экран и все)
01.jpg (6446 просмотров) <a class='original' href='./download/file.php?id=76653&sid=6f3187d72f7827b411da2382ea90fdf1&mode=view' target=_blank>Загрузить оригинал (141.47 КБ)</a>
В старых мануалах часто приводятся примеры как подружить некий девайс с компом.
Пример похож на Basic и файлы с примерами имеют *.BAS

Как этот пример запустить на выполнение на компе?

Код: Выделить всё

1  ' This program shows how to pull a reading from the gageport
2  ' in the computer mode. the gage can be changed in line 40 by
3  ' modifying the last 4 digits of the string to correspond to the
4  ' gage you want to use. This program just pulls a single reading
5  ' from channel A of a gageport.
6  '
10 OPEN "COM1:9600,N,7,2,cs,ds,cd" FOR RANDOM AS #1
15 PAUSE! = .125                        ' Sets up the delay time
20 PRINT "Press any key to read Gage Port"
22 '
25 WHILE INKEY$ = "": WEND              ' Wait for the user to start
30 PRINT #1, "A"; : GOSUB 100           ' Set up channel A to read
35 PRINT #1, "d"; : GOSUB 100           ' the ultra digit III indicator
40 PRINT #1, "00 0010": GOSUB 100       ' this can be changed to anything
41 '
42 '
45 PRINT #1, "A"; : GOSUB 100           ' This is where we actually read
50 PRINT #1, "r"; : GOSUB 100           ' the gage value into the computer
55 PRINT #1, "A"; : GOSUB 100           ' by sending it an 'r' then a 's'
60 PRINT #1, "s"; : GOSUB 100           ' then waiting for the reading....
65 PRINT JUNK$                          ' show the gage reading here
70 END                                  ' Quit
90 '
100                                     ' This pauses for the command
110 T! = TIMER                          ' line sent to gageport to exec
120 WHILE TIMER < T! + PAUSE!: WEND     ' then waits for the echo to
130 LINE INPUT #1, JUNK$                ' show up at the port
140 RETURN                              ' returns to program here
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
pup
Мастер
Сообщения: 676
Зарегистрирован: 12 фев 2015, 10:12
Репутация: 11
Контактная информация:

Re: Где и как написать программу времен DOS

Сообщение pup »

ччтото мне подсказывает, вопрос должен быть: чем читать дискету и где запускать программу времен дос.
программа открывает ком порт. напиши на питоне каком-нибудь) да хоть на php.
а вообще мало понятно чтоона делает, эта программа.
подключаетсяк порту (10 строка)
ждет нажатия пользователем клавиши на клавиатуре (22)
а дальше надо читать документацию по синтксису бейсика. что такое PRINT #1 - выводв порт?
в подпрограмме в 130 - что делат LINE? добавляет что-то в JUNK$( котораястроковаяпеременная?)

плохой код вообще - нету обработчиков исключений.посему чернй экран вместо ошибки об отсутстии устройства на порту.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 32903
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 5906
Откуда: Казахстан. Шымкент
Контактная информация:

Re: Где и как написать программу времен DOS

Сообщение aftaev »

pup писал(а):а дальше надо читать документацию по синтксису бейсика. что такое PRINT #1 - выводв порт?
в подпрограмме в 130 - что делат LINE? добавляет что-то в JUNK$( котораястроковаяпеременная?)
вот именно по этому не канает вариант:
pup писал(а): напиши на питоне каком-нибудь) да хоть на php.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 32903
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 5906
Откуда: Казахстан. Шымкент
Контактная информация:

Re: Где и как написать программу времен DOS

Сообщение aftaev »

pup писал(а):чем читать дискету
дискеты все скопированы со всеми файлами, с этим проблем нет ;)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
pup
Мастер
Сообщения: 676
Зарегистрирован: 12 фев 2015, 10:12
Репутация: 11
Контактная информация:

Re: Где и как написать программу времен DOS

Сообщение pup »

ничего не понял. почему не канает-то? с портами по-моему работает даже эксель.
про лайн инпут
https://msdn.microsoft.com/en-us/librar ... s.60).aspx
Аватара пользователя
torvn77
Мастер
Сообщения: 2441
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 214
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Где и как написать программу времен DOS

Сообщение torvn77 »

Если я правильно понял то работать это должно так,
Отправляете в порт одну из букв Ars и ждёте ответ, который вам в этот порт распечатается.
Для начала это можно делать руками через minicom, потом что нибудь придумаете.
Сами файлы .BAS похоже являются аналогом скриптов на bash, т.е. служат для вторичной переработки результата.

В общем кто помнит телефонные модемы тот уже всё понял.

Хотя зачем тогда досовская прога прилагалась не ясно.
Как она называется?
pup
Мастер
Сообщения: 676
Зарегистрирован: 12 фев 2015, 10:12
Репутация: 11
Контактная информация:

Re: Где и как написать программу времен DOS

Сообщение pup »

поспорим? по комментариям отправляемая A вообщеничего не значит. зачем после каждой отправки считывать ответ - не ясно. перезатирается ли эта строчка - тоже не ясно (скорее всего да)
короче, оно открывает порт, пишет туда
Ad00 0010ArAs
и выводит в консоль строчку из порта после ввода последней s

про миником идею поддерживаю. про паузы надо подумать - может они нужны, а может просто достаточно скопипейстить строчку...
aftaev
Зачётный участник
Зачётный участник
Сообщения: 32903
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 5906
Откуда: Казахстан. Шымкент
Контактная информация:

Re: Где и как написать программу времен DOS

Сообщение aftaev »

pup писал(а):ничего не понял. почему не канает-то?
Чтобы перевести этот код на другой язык нужно знать как и что писать.
Ты же сам пишешь:
pup писал(а): что такое PRINT #1 - выводв порт?
pup писал(а):в подпрограмме в 130 - что делат LINE?
pup писал(а): добавляет что-то в JUNK$( котораястроковаяпеременная?)
Я не знаю что оно делает. Раньше как то этот пример запускали под DOS. Потому спрашиваю у тех кто знает - как это делается?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 32903
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 5906
Откуда: Казахстан. Шымкент
Контактная информация:

Re: Где и как написать программу времен DOS

Сообщение aftaev »

torvn77 писал(а):Для начала это можно делать руками через minicom, потом что нибудь придумаете.
Коробочки присылает в ответ свое название, а данные слать не хочет.
torvn77 писал(а):Сами файлы .BAS похоже являются аналогом скриптов на bash, т.е. служат для вторичной переработки результата.
Думаю что когда это писали (в 1988 году), то скриптах еще люди не знали ;)
Я думаю что *.BAS - это исходный файл.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
torvn77
Мастер
Сообщения: 2441
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 214
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Где и как написать программу времен DOS

Сообщение torvn77 »

Файлы .BAS скорее всего открываются QBASIC,
Поискал, нашёл страницу с описанием:
http://dssp.petrsu.ru/~IVK/zhirin/inf/inf/read17.html
Ну и файл со справкой для его предшественника gw:
gw-man.zip
(216.78 КБ) 358 скачиваний
Сам QBAS можно найти в дистрибутиве win95/98, ну и в поисковике полно ссылок на отдельное скачивание.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 32903
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 5906
Откуда: Казахстан. Шымкент
Контактная информация:

Re: Где и как написать программу времен DOS

Сообщение aftaev »

В старых мануалах часто встречаются примеры на Basic. Написано: наберите ручками эту программу, устройство ... будет передавать данные в комп.
Скрин из постороннего мануала:

Раньше эти примеры где то набирали и запускали :thinking:
01.png (6420 просмотров) <a class='original' href='./download/file.php?id=76656&sid=6f3187d72f7827b411da2382ea90fdf1&mode=view' target=_blank>Загрузить оригинал (105.15 КБ)</a>
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
torvn77
Мастер
Сообщения: 2441
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 214
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Где и как написать программу времен DOS

Сообщение torvn77 »

aftaev писал(а):Коробочки присылает в ответ свое название, а данные слать не хочет.
А способом Пупа что выходит?
Re: Где и как написать программу времен DOS #7

aftaev писал(а):Думаю что когда это писали (в 1988 году), то скриптах еще люди не знали ;)
Bash это очень, очень старый интерпретатор.
Bourne-shell — одна из популярных разновидностей командной оболочки для UNIX (sh), автором которой является Стивен Борн (1978), усовершенствована в 1987 году Брайаном Фоксом.
Конечно сложнее чем QBASIC, но принципы программирования там одинаковые.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 32903
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 5906
Откуда: Казахстан. Шымкент
Контактная информация:

Re: Где и как написать программу времен DOS

Сообщение aftaev »

torvn77 писал(а):А способом Пупа что выходит?
Это буду завтра пробовать :)
torvn77 писал(а):Конечно сложнее чем QBASIC, но принципы программирования там одинаковые.
Мне нужно: открыл *.bas скомпилировал в ехе и готово :)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
torvn77
Мастер
Сообщения: 2441
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 214
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Где и как написать программу времен DOS

Сообщение torvn77 »

aftaev писал(а):Мне нужно: открыл *.bas скомпилировал в ехе и готово :)
Зачем возиться с 95/98 виндой, если нужное можно и в linux накодить, хоть в том же bash?
Ну конечно если хочется для работы держать отдельный комп, то пожалуйста. :hehehe:

П.С. Если не разбираетесь в bash то могу подсказать как начать,
ну по крайней мере на уровне размещённой тут программы.
Аватара пользователя
MX_Master
Мастер
Сообщения: 6684
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2814
Настоящее имя: Миша
Контактная информация:

Re: Где и как написать программу времен DOS

Сообщение MX_Master »

Вот страничка с бесплатными компиляторами и интерпретаторами бэйсика - http://www.thefreecountry.com/compilers/basic.shtml.
А вот и на русском языке - http://www.vbnet.ru/articles/showarticle.aspx?id=131
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4363
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1528
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Где и как написать программу времен DOS

Сообщение selenur »

http://www.dosbox.com/ вот эта программка представляет собой эмулятор доса, вот в ней и запусти.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Аватара пользователя
AndyBig
Мастер
Сообщения: 3971
Зарегистрирован: 07 мар 2014, 04:01
Репутация: 1119
Откуда: юг России
Контактная информация:

Re: Где и как написать программу времен DOS

Сообщение AndyBig »

Это же примитивный Бейсик, что тут знать? :)
Открывает порт COM1, шлет в него команды, оканчивающиеся символамим перевода строки, и после каждой команды ожидает из порта строку, оканчивающуюся символами перевода строки, после последней команды выводит эту строку. Можно написать на любом языке.
Какие команды и параметры слать - нужно смотреть документацию к девайсу.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 32903
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 5906
Откуда: Казахстан. Шымкент
Контактная информация:

Re: Где и как написать программу времен DOS

Сообщение aftaev »

torvn77 писал(а):Зачем возиться с 95/98 виндой, если нужное можно и в linux накодить, хоть в том же bash?
мне секса еще Linux не хватало :)
torvn77 писал(а):Ну конечно если хочется для работы держать отдельный комп, то пожалуйста.
Есть специальный нут с FDD 3.5" дисководом и нормальным СОМ портом ;)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
Serg
Мастер
Сообщения: 21856
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5133
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Где и как написать программу времен DOS

Сообщение Serg »

aftaev писал(а):мне секса еще Linux не хватало :)
Секс с DOS привлекательней?.. :)

P.S. Ну допустим запустил ты прогу на Бейсике под DOS. Дальше-то что?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
torvn77
Мастер
Сообщения: 2441
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 214
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Где и как написать программу времен DOS

Сообщение torvn77 »

aftaev писал(а):мне секса еще Linux не хватало :)
Чего только не напишет человек, лишь бы не платить UAVpilot зарплату.

Поскольку я пишу бесплатно, то вот вам пока халтура прототип:

Код: Выделить всё

#!/bin/bash
stty_device = /dev/stty1
cat $stty_device &
echo Ad00 0010 > $stty_device
echo A > $stty_device
echo r > $stty_device
echo A > $stty_device
echo s > $stty_device
exit
UAVpilot писал(а):P.S. Ну допустим запустил ты прогу на Бейсике под DOS. Дальше-то что?..
Вот это, да самое интересное, средств то обработки строк в DOS нету.(развитых во всяком случае)
Последний раз редактировалось torvn77 03 апр 2016, 15:20, всего редактировалось 1 раз.
Ответить

Вернуться в «Прочие вопросы Windows»