IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Pascal под DOS
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской
Реальное имя: yurpos
Jabber: yurpos

Репутация: -  0  +


Подскажите пожалуйста, можно ли Pascal загрузить без запуска WINDOWS? и если можно, то какую версию лучше использовать? и можно ли запустить его с флешки?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Большевик–концептуал
***

Группа: Пользователи
Сообщений: 194
Пол: Мужской
Реальное имя: Иван Левашев
Jabber: bu_gen@octagram.name
Skype: i.levashew
QQ: 3152538431
WeChat
Ада: Сторонник
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
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
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   А это смотря какой. Если для голых досок, но с мно…   8.09.2017 4:53
yurpos   Ещё такой вариант. Почитал руководство по ADA).…   8.09.2017 13:32
OCTAGRAM   Могу проверить в DOSBox расширители. Я тут ещё п…   8.09.2017 15:35


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 18.04.2024 22:30
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name