1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
| yurpos |
Сообщение
#1
|
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: yurpos Jabber: yurpos Репутация: 0 |
Подскажите пожалуйста, можно ли Pascal загрузить без запуска WINDOWS? и если можно, то какую версию лучше использовать? и можно ли запустить его с флешки?
|
![]() ![]() |
| OCTAGRAM |
Сообщение
#2
|
![]() Большевик–концептуал ![]() ![]() ![]() Группа: Пользователи Сообщений: 194 Пол: Мужской Реальное имя: Иван Левашев Jabber: bu_gen@octagram.name Skype: i.levashew QQ: 3152538431 Ада: Сторонник Embarcadero Delphi: Сторонник Free Pascal: Разработчик Turbo Pascal: Установлен Репутация: 1 |
А это смотря какой. Если для голых досок, но с многозадачностью — тогда эту клавиатуру нужно ещё подключить суметь. Я так понимаю, там датчики всякие и порты ввода/вывода под рукой, а клавиатуру, например, через USB придётся читать.
Если GNAT для Windows, запущенный под DOS одним из расширителей, то расширитель сводит WinAPI к DOS API. Как там через несколько слоёв (в Windows даже и без эмуляции юникодный ввод/вывод весёлый) всё будет проходить, не знаю, и именно поэтому я бы взял Win32Ada и делал прямые вызовы к консольному WinAPI. А дальше ответ на ваш вопрос зависит от реализации расширителя DOS. Какие-то вроде бы умеют в Юникоде давать ответ на ReadConsoleW. В принципе, есть возможность стандартные текстовые потоки ввода/вывода читать/писать как бинарные. Для этого берётся Ada.Text_IO.Standard_Input и подаётся на вход Ada.Text_IO.Text_Streams.Stream, а дальше с ним идёт работа как с потоком. Пример чтения файла средствами двоичных потоков (Показать/Скрыть)
Есть ещё довольно старый GNAT 3.15p для DOS (не WinAPI), можно найти, если видновый на расширителях не будет работать. Но там по API я не знаю, как. По крайней мере, ассемблерным шаблоном прерывания-то можно вызывать из защищённого режима, и наверняка в библиотеке GNAT найдётся высокоуровневая обёртка для вызова прерываний. Соответственно, и опрашивать через прерывания DOS. Ещё такой вариант. В расширителях DOS (как с эмуляцией WinAPI, так и без), я так понимаю, нет страничной адресации, и буфер клавиатуры можно читать напрямую из памяти, а он где-то в первых байтах. Тогда можно под него record объявить с его структурой, переменную объявить с pragma Import и указать адрес в физической памяти. Какого-то единого модуля Crt для GNAT мне неизвестно. GNATCOLL.Terminal умеет цвета в консолях Windows и Linux переключать, а опросить клавиатуру — не может, там вообще нет ввода. Ближайший аналог TextTools разрабатывается, главным образом, на Linux. Если у них там действительно ncurses в основании, то гипотетически можно на Windows взять pdcurses, у которого такой же API, и тогда функцией KeyPress узнавать, нажата ли какая-то клавиша. Но понятно, что проще взять Win32Ada и делать вызовы напрямую, чем портировать TextTools. Сообщение отредактировано: OCTAGRAM - -------------------- If you want to get to the top, you have to start at the bottom
|
| yurpos |
Сообщение
#3
|
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: yurpos Jabber: yurpos Репутация: 0 |
Ещё такой вариант. Почитал руководство по ADA)... пока мне сложно оценить будет ли от него польза, более 400 страниц не одолеть за один вечер... и даже за 10. отсюда вопрос могу ли я вас попросить (поскольку как я понял хорошо знаете тему) запустить на ADA кусочек программы (Pascal строк 10) связанный с опросом буфера клавиатуры и работающий в реальном времени? Если о результате невозможно будет сказать какая программа его выводит, значит в принципе можно двигаться дальше, т.е. добавить в него кусочек кода для определения девиации времени (ещё строк 20) и если результат будет в пределах 1-2% можно пробовать перебивать весь код целиком. Сообщение отредактировано: yurpos - |
yurpos Pascal под DOS 7.08.2017 14:58
OCTAGRAM А если не Windows, то что?
Linux + School Pak для… 7.08.2017 17:14
yurpos
А если не Windows, то что?
я наверно двигаюсь з… 7.08.2017 18:04
OCTAGRAM Может быть, у вас такая проблема только из-за моду… 7.08.2017 18:18
yurpos
Может быть, у вас такая проблема только из-за мод… 7.08.2017 18:58
Федосеев Павел Сейчас уже не существует старого форума wasm.ru, н… 8.08.2017 4:05
yurpos
Время программного цикла у ПЛК сравнительно не вы… 8.08.2017 13:01
OCTAGRAM А что подразумевается под «реальным временем»? По … 8.08.2017 16:18
OCTAGRAM Насколько мне известно, BIOS/EFI умеют эмулировать… 8.08.2017 13:39
yurpos
Насколько мне известно
))) для меня пока это то… 8.08.2017 14:13
Федосеев Павел FreeDOS раньше загружалась с CD-ROM. Если всё прям… 8.08.2017 14:33
yurpos
для ускорения работы с жёсткими дисками
работа … 8.08.2017 15:42
Федосеев Павел Я работал только с FreeDOS 1.0 и 1.1. Для возможно… 8.08.2017 14:55
Федосеев Павел Это, конечно, не относится к теме. Но новый компью… 10.08.2017 1:37
yurpos Добрый день, спасибо огромное за советы, что то я … 5.09.2017 15:51
OCTAGRAM В Turbo Pascal — действительно такие ограничения. … 5.09.2017 16:34
Федосеев Павел Возвращайтесь в Windows.
Другой вариант - 32-разр… 5.09.2017 23:01
yurpos
Возвращайтесь в Windows.
В Windows программа ра… 6.09.2017 14:05
OCTAGRAM Пробовал HX DOS Extender в чистом FreeDOS. Запуска… 6.09.2017 19:14
Федосеев Павел Какая-то странная тема.
С одной стороны непростые … 7.09.2017 10:40
yurpos
Какая-то странная тема.
С одной стороны непростые… 7.09.2017 15:50
OCTAGRAM ... распараллеливание вычислений?
... Работа в нес… 7.09.2017 17:11
yurpos ...самое доступное решение — это GNAT...
Сразу в… 7.09.2017 19:19
OCTAGRAM Могу проверить в DOSBox расширители.
Я тут ещё п… 8.09.2017 15:35![]() ![]() |
|
Текстовая версия | 23.11.2025 4:27 |