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

Остальные вопросы по работе с операционной системой Windows

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

Сообщение aftaev » 02 апр 2016, 23:54

Купил коробульку которая считывает с щупов данные и передает их в комп.
Вместе с коробулькй пришло 2 дискеты с прогой DOS и файлами *.BAS
Прога досовская не запускается (черный экран и все)
Где и как написать программу времен DOS 01.jpg


В старых мануалах часто приводятся примеры как подружить некий девайс с компом.
Пример похож на 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
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
 
Сообщения: 30939
Зарегистрирован: 04 апр 2010, 19:22
Откуда: Казахстан. Шымкент
Репутация: 5518
Медальки:

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

Сообщение pup » 03 апр 2016, 00:05

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

плохой код вообще - нету обработчиков исключений.посему чернй экран вместо ошибки об отсутстии устройства на порту.
pup
Мастер
 
Сообщения: 676
Зарегистрирован: 12 фев 2015, 10:12
Репутация: 11

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

Сообщение aftaev » 03 апр 2016, 00:13

pup писал(а):а дальше надо читать документацию по синтксису бейсика. что такое PRINT #1 - выводв порт?
в подпрограмме в 130 - что делат LINE? добавляет что-то в JUNK$( котораястроковаяпеременная?)

вот именно по этому не канает вариант:
pup писал(а): напиши на питоне каком-нибудь) да хоть на php.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
 
Сообщения: 30939
Зарегистрирован: 04 апр 2010, 19:22
Откуда: Казахстан. Шымкент
Репутация: 5518
Медальки:

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

Сообщение aftaev » 03 апр 2016, 00:15

pup писал(а):чем читать дискету

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

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

Сообщение pup » 03 апр 2016, 00:32

ничего не понял. почему не канает-то? с портами по-моему работает даже эксель.
про лайн инпут
https://msdn.microsoft.com/en-us/librar ... 59(v=vs.60).aspx
pup
Мастер
 
Сообщения: 676
Зарегистрирован: 12 фев 2015, 10:12
Репутация: 11

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

Сообщение torvn77 » 03 апр 2016, 01:02

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

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

Хотя зачем тогда досовская прога прилагалась не ясно.
Как она называется?
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2388
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 210
Медальки:

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

Сообщение pup » 03 апр 2016, 01:14

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

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

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

Сообщение aftaev » 03 апр 2016, 01:32

pup писал(а):ничего не понял. почему не канает-то?

Чтобы перевести этот код на другой язык нужно знать как и что писать.
Ты же сам пишешь:
pup писал(а): что такое PRINT #1 - выводв порт?

pup писал(а):в подпрограмме в 130 - что делат LINE?

pup писал(а): добавляет что-то в JUNK$( котораястроковаяпеременная?)

Я не знаю что оно делает. Раньше как то этот пример запускали под DOS. Потому спрашиваю у тех кто знает - как это делается?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
 
Сообщения: 30939
Зарегистрирован: 04 апр 2010, 19:22
Откуда: Казахстан. Шымкент
Репутация: 5518
Медальки:

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

Сообщение aftaev » 03 апр 2016, 01:37

torvn77 писал(а):Для начала это можно делать руками через minicom, потом что нибудь придумаете.

Коробочки присылает в ответ свое название, а данные слать не хочет.

torvn77 писал(а):Сами файлы .BAS похоже являются аналогом скриптов на bash, т.е. служат для вторичной переработки результата.

Думаю что когда это писали (в 1988 году), то скриптах еще люди не знали ;)
Я думаю что *.BAS - это исходный файл.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
 
Сообщения: 30939
Зарегистрирован: 04 апр 2010, 19:22
Откуда: Казахстан. Шымкент
Репутация: 5518
Медальки:

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

Сообщение torvn77 » 03 апр 2016, 01:41

Файлы .BAS скорее всего открываются QBASIC,
Поискал, нашёл страницу с описанием:
http://dssp.petrsu.ru/~IVK/zhirin/inf/inf/read17.html
Ну и файл со справкой для его предшественника gw:
gw-man.zip
(216.78 Кб) Скачиваний: 180

Сам QBAS можно найти в дистрибутиве win95/98, ну и в поисковике полно ссылок на отдельное скачивание.
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2388
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 210
Медальки:

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

Сообщение aftaev » 03 апр 2016, 01:46

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

Раньше эти примеры где то набирали и запускали :thinking:
Где и как написать программу времен DOS 01.png
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
 
Сообщения: 30939
Зарегистрирован: 04 апр 2010, 19:22
Откуда: Казахстан. Шымкент
Репутация: 5518
Медальки:

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

Сообщение torvn77 » 03 апр 2016, 01:50

aftaev писал(а):Коробочки присылает в ответ свое название, а данные слать не хочет.

А способом Пупа что выходит?
Re: Где и как написать программу времен DOS #7


aftaev писал(а):Думаю что когда это писали (в 1988 году), то скриптах еще люди не знали ;)

Bash это очень, очень старый интерпретатор.
Bourne-shell — одна из популярных разновидностей командной оболочки для UNIX (sh), автором которой является Стивен Борн (1978), усовершенствована в 1987 году Брайаном Фоксом.

Конечно сложнее чем QBASIC, но принципы программирования там одинаковые.
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2388
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 210
Медальки:

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

Сообщение aftaev » 03 апр 2016, 02:11

torvn77 писал(а):А способом Пупа что выходит?

Это буду завтра пробовать :)

torvn77 писал(а):Конечно сложнее чем QBASIC, но принципы программирования там одинаковые.

Мне нужно: открыл *.bas скомпилировал в ехе и готово :)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
 
Сообщения: 30939
Зарегистрирован: 04 апр 2010, 19:22
Откуда: Казахстан. Шымкент
Репутация: 5518
Медальки:

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

Сообщение torvn77 » 03 апр 2016, 02:28

aftaev писал(а):Мне нужно: открыл *.bas скомпилировал в ехе и готово :)

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

П.С. Если не разбираетесь в bash то могу подсказать как начать,
ну по крайней мере на уровне размещённой тут программы.
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2388
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 210
Медальки:

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

Сообщение MX_Master » 03 апр 2016, 06:24

Вот страничка с бесплатными компиляторами и интерпретаторами бэйсика - http://www.thefreecountry.com/compilers/basic.shtml.
А вот и на русском языке - http://www.vbnet.ru/articles/showarticle.aspx?id=131
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 4978
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2261
Медальки:

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

Сообщение selenur » 03 апр 2016, 07:15

http://www.dosbox.com/ вот эта программка представляет собой эмулятор доса, вот в ней и запусти.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Аватара пользователя
selenur
Почётный участник
Почётный участник
 
Сообщения: 4166
Зарегистрирован: 21 авг 2013, 19:44
Откуда: Новый Уренгой
Репутация: 1480
Медальки:
Настоящее имя: Сергей

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

Сообщение AndyBig » 03 апр 2016, 13:39

Это же примитивный Бейсик, что тут знать? :)
Открывает порт COM1, шлет в него команды, оканчивающиеся символамим перевода строки, и после каждой команды ожидает из порта строку, оканчивающуюся символами перевода строки, после последней команды выводит эту строку. Можно написать на любом языке.
Какие команды и параметры слать - нужно смотреть документацию к девайсу.
Аватара пользователя
AndyBig
Мастер
 
Сообщения: 3971
Зарегистрирован: 07 мар 2014, 04:01
Откуда: юг России
Репутация: 1116
Медальки:

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

Сообщение aftaev » 03 апр 2016, 15:01

torvn77 писал(а):Зачем возиться с 95/98 виндой, если нужное можно и в linux накодить, хоть в том же bash?

мне секса еще Linux не хватало :)

torvn77 писал(а):Ну конечно если хочется для работы держать отдельный комп, то пожалуйста.

Есть специальный нут с FDD 3.5" дисководом и нормальным СОМ портом ;)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
 
Сообщения: 30939
Зарегистрирован: 04 апр 2010, 19:22
Откуда: Казахстан. Шымкент
Репутация: 5518
Медальки:

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

Сообщение UAVpilot » 03 апр 2016, 15:05

aftaev писал(а):мне секса еще Linux не хватало :)

Секс с DOS привлекательней?.. :)

P.S. Ну допустим запустил ты прогу на Бейсике под DOS. Дальше-то что?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 19079
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4647
Медальки:
Настоящее имя: Сергей

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

Сообщение torvn77 » 03 апр 2016, 15:19

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 раз.
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2388
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 210
Медальки:

След.

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

Кто сейчас на конференции

Зарегистрированные пользователи: abrist, Bing [Bot], brilliancesf, Chili, cloc111, Coffeein, colosimo, er931, Evgen91, Google [Bot], Google Adsense [Bot], inFamous, Jurko, michael-yurov, mikehv, Mikhgen, MSN [Bot], N1X, poputnik, sabin, Sashalex24, ScrewDriver, vmarkiv, xenon-alien, Yandex [bot], zlodeynik

Reputation System ©'