Страница 1 из 3
Где и как написать программу времен DOS
Добавлено: 02 апр 2016, 23:54
aftaev
Купил коробульку которая считывает с щупов данные и передает их в комп.
Вместе с коробулькй пришло 2 дискеты с прогой DOS и файлами *.BAS
Прога досовская не запускается (черный экран и все)
В старых мануалах часто приводятся примеры как подружить некий девайс с компом.
Пример похож на 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
Re: Где и как написать программу времен DOS
Добавлено: 03 апр 2016, 00:05
pup
ччтото мне подсказывает, вопрос должен быть: чем читать дискету и где запускать программу времен дос.
программа открывает ком порт. напиши на питоне каком-нибудь) да хоть на php.
а вообще мало понятно чтоона делает, эта программа.
подключаетсяк порту (10 строка)
ждет нажатия пользователем клавиши на клавиатуре (22)
а дальше надо читать документацию по синтксису бейсика. что такое PRINT #1 - выводв порт?
в подпрограмме в 130 - что делат LINE? добавляет что-то в JUNK$( котораястроковаяпеременная?)
плохой код вообще - нету обработчиков исключений.посему чернй экран вместо ошибки об отсутстии устройства на порту.
Re: Где и как написать программу времен DOS
Добавлено: 03 апр 2016, 00:13
aftaev
pup писал(а):а дальше надо читать документацию по синтксису бейсика. что такое PRINT #1 - выводв порт?
в подпрограмме в 130 - что делат LINE? добавляет что-то в JUNK$( котораястроковаяпеременная?)
вот именно по этому не канает вариант:
pup писал(а): напиши на питоне каком-нибудь) да хоть на php.
Re: Где и как написать программу времен DOS
Добавлено: 03 апр 2016, 00:15
aftaev
pup писал(а):чем читать дискету
дискеты все скопированы со всеми файлами, с этим проблем нет
Re: Где и как написать программу времен DOS
Добавлено: 03 апр 2016, 00:32
pup
ничего не понял. почему не канает-то? с портами по-моему работает даже эксель.
про лайн инпут
https://msdn.microsoft.com/en-us/librar ... s.60).aspx
Re: Где и как написать программу времен DOS
Добавлено: 03 апр 2016, 01:02
torvn77
Если я правильно понял то работать это должно так,
Отправляете в порт одну из букв Ars и ждёте ответ, который вам в этот порт распечатается.
Для начала это можно делать руками через minicom, потом что нибудь придумаете.
Сами файлы .BAS похоже являются аналогом скриптов на bash, т.е. служат для вторичной переработки результата.
В общем кто помнит телефонные модемы тот уже всё понял.
Хотя зачем тогда досовская прога прилагалась не ясно.
Как она называется?
Re: Где и как написать программу времен DOS
Добавлено: 03 апр 2016, 01:14
pup
поспорим? по комментариям отправляемая A вообщеничего не значит. зачем после каждой отправки считывать ответ - не ясно. перезатирается ли эта строчка - тоже не ясно (скорее всего да)
короче, оно открывает порт, пишет туда
Ad00 0010ArAs
и выводит в консоль строчку из порта после ввода последней s
про миником идею поддерживаю. про паузы надо подумать - может они нужны, а может просто достаточно скопипейстить строчку...
Re: Где и как написать программу времен DOS
Добавлено: 03 апр 2016, 01:32
aftaev
pup писал(а):ничего не понял. почему не канает-то?
Чтобы перевести этот код на другой язык нужно знать как и что писать.
Ты же сам пишешь:
pup писал(а): что такое PRINT #1 - выводв порт?
pup писал(а):в подпрограмме в 130 - что делат LINE?
pup писал(а): добавляет что-то в JUNK$( котораястроковаяпеременная?)
Я не знаю что оно делает. Раньше как то этот пример запускали под DOS. Потому спрашиваю у тех кто знает - как это делается?
Re: Где и как написать программу времен DOS
Добавлено: 03 апр 2016, 01:37
aftaev
torvn77 писал(а):Для начала это можно делать руками через minicom, потом что нибудь придумаете.
Коробочки присылает в ответ свое название, а данные слать не хочет.
torvn77 писал(а):Сами файлы .BAS похоже являются аналогом скриптов на bash, т.е. служат для вторичной переработки результата.
Думаю что когда это писали (в 1988 году), то скриптах еще люди не знали
Я думаю что *.BAS - это исходный файл.
Re: Где и как написать программу времен DOS
Добавлено: 03 апр 2016, 01:41
torvn77
Файлы .BAS скорее всего открываются QBASIC,
Поискал, нашёл страницу с описанием:
http://dssp.petrsu.ru/~IVK/zhirin/inf/inf/read17.html
Ну и файл со справкой для его предшественника gw:
Сам QBAS можно найти в дистрибутиве win95/98, ну и в поисковике полно ссылок на отдельное скачивание.
Re: Где и как написать программу времен DOS
Добавлено: 03 апр 2016, 01:46
aftaev
В старых мануалах часто встречаются примеры на Basic. Написано: наберите ручками эту программу, устройство ... будет передавать данные в комп.
Скрин из постороннего мануала:
Раньше эти примеры где то набирали и запускали
Re: Где и как написать программу времен DOS
Добавлено: 03 апр 2016, 01:50
torvn77
aftaev писал(а):Коробочки присылает в ответ свое название, а данные слать не хочет.
А способом Пупа что выходит?
Re: Где и как написать программу времен DOS #7
aftaev писал(а):Думаю что когда это писали (в 1988 году), то скриптах еще люди не знали
Bash это очень, очень старый интерпретатор.
Bourne-shell — одна из популярных разновидностей командной оболочки для UNIX (sh), автором которой является Стивен Борн (1978), усовершенствована в 1987 году Брайаном Фоксом.
Конечно сложнее чем QBASIC, но принципы программирования там одинаковые.
Re: Где и как написать программу времен DOS
Добавлено: 03 апр 2016, 02:11
aftaev
torvn77 писал(а):А способом Пупа что выходит?
Это буду завтра пробовать
torvn77 писал(а):Конечно сложнее чем QBASIC, но принципы программирования там одинаковые.
Мне нужно: открыл *.bas скомпилировал в ехе и готово
Re: Где и как написать программу времен DOS
Добавлено: 03 апр 2016, 02:28
torvn77
aftaev писал(а):Мне нужно: открыл *.bas скомпилировал в ехе и готово
Зачем возиться с 95/98 виндой, если нужное можно и в linux накодить, хоть в том же bash?
Ну конечно если хочется для работы держать отдельный комп, то пожалуйста.
П.С. Если не разбираетесь в bash то могу подсказать как начать,
ну по крайней мере на уровне размещённой тут программы.
Re: Где и как написать программу времен DOS
Добавлено: 03 апр 2016, 06:24
MX_Master
Re: Где и как написать программу времен DOS
Добавлено: 03 апр 2016, 07:15
selenur
http://www.dosbox.com/ вот эта программка представляет собой эмулятор доса, вот в ней и запусти.
Re: Где и как написать программу времен DOS
Добавлено: 03 апр 2016, 13:39
AndyBig
Это же примитивный Бейсик, что тут знать?
Открывает порт COM1, шлет в него команды, оканчивающиеся символамим перевода строки, и после каждой команды ожидает из порта строку, оканчивающуюся символами перевода строки, после последней команды выводит эту строку. Можно написать на любом языке.
Какие команды и параметры слать - нужно смотреть документацию к девайсу.
Re: Где и как написать программу времен DOS
Добавлено: 03 апр 2016, 15:01
aftaev
torvn77 писал(а):Зачем возиться с 95/98 виндой, если нужное можно и в linux накодить, хоть в том же bash?
мне секса еще Linux не хватало
torvn77 писал(а):Ну конечно если хочется для работы держать отдельный комп, то пожалуйста.
Есть специальный нут с FDD 3.5" дисководом и нормальным СОМ портом
Re: Где и как написать программу времен DOS
Добавлено: 03 апр 2016, 15:05
Serg
aftaev писал(а):мне секса еще Linux не хватало
Секс с DOS привлекательней?..
P.S. Ну допустим запустил ты прогу на Бейсике под DOS. Дальше-то что?..
Re: Где и как написать программу времен DOS
Добавлено: 03 апр 2016, 15:19
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 нету.(развитых во всяком случае)