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  +


Могу проверить в DOSBox расширители.


Я тут ещё повспоминал, и довспомался до прерываний.

Во-первых, есть аппаратное прерывание клавиатуры, но его нетривиально обрабатывать. В принципе, я писал обработчик на Turbo Pascal, это было нужно, чтоб одновременно нажатые клавиши в танках знать. Массив Boolean был. Но там нужно с портами ввода/вывода аккуратно работать, на прерывания маску ставить и снимать, иначе клавиатура отваливается. Из защищённого режима такое перехватить — дополнительные сложности.

А вот есть другое прерывание, которое вызывается ДОСовским обработчиком прерывания клавиатуры после трансляции кода клавиши в символ (то есть, уже русифицированный). Вот можно это прерывание перехватить, и узнавать о нажатии мгновенно.

Из защищённого режима DOS можно взаимодействовать с реальным режимом. Там в DPMI есть всякие вызовы. Есть вызов кода в реальном режиме по известному адресу. Можно, наоборот, попросить DPMI выделить в реальном режиме процедуру, вызов которой будет транслироваться в вызов процедуры в защищённом режиме. Но для прерывания это вроде бы маловато, потому что при вызове прерывания в стек кладётся не только адрес следующей инструкции после возврата, но и состояние флагов, и возврат делается инструкцией iret (Interrupt RETurn) или инструкциями popf, retf. Это решаемо, можно после выделения в реальном режиме процедуры попросить ещё DPMI выделить память в реальном режиме, и вписать туда по шаблону инструкции, которые вызовут ранее выделенную процедуру в реальном режиме. И адрес этой последней памяти записать в таблицу прерываний, сохранив прошлое значение. В прошлое значение, как я понимаю, тоже просто так перейти не получится из-за того, что прошлый обработчик будет пытаться освободить флаги со стека, а обычные процедуры так не делают. Тут тоже можно коменсировать это перемычкой в реальном режиме. И так получается, что программа защищённого режима вклинивается в цепочку обработчиков прерываний в реальном режиме.

Возможно, в DPMI уже есть поддержка замены обработчиков прерываний, и получится обойтись без перемычек.

Сообщение отредактировано: 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

 





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