Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2013, 08:38   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

s-andriano, в принципе, согласен с вашими утверждениями.
Но хотелось бы отметить следующее:
1) в TurboProfessional/ObjectProfessional (c) TurboPower вполне уместно используются ассемблерные вставки, а в квалификации разработчиков я лично не сомневаюсь...

2) не уверен, что в силах автора темы сделать предложенную Вами модернизацию.
использовать программу под DosBox (или под виртуалкой) намного проще, чем переписать заново... Тем более, мы не знаем, о программе какого рода идёт речь (есть вероятность, что это какая-то игрушка, например... )

Хотя, конечно, тут есть множество условий и нюансов, поэтому, как поступать - решать автору темы...


Цитата:
Сообщение от Doox911
От чего может не работать русификатор к dosbox?
Поясните, пожалуйста, в чём у Вас проблема? Какой руссификатор используете?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.02.2013, 17:32   #12
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
1) в TurboProfessional/ObjectProfessional (c) TurboPower вполне уместно используются ассемблерные вставки,
А можно привести пример, в котором либо использование ассемблерной вставки имело существенные преимущества перед аналогичной конструкцией на Паскале, либо выполнение данного действия на Паскале принципиально невозможно?
(на порядок более высокая производительность в данном случае несущественна, т.к. со времен Турбо-Паскаля производительность процессоров выросла более, чем на порядок)
Цитата:
а в квалификации разработчиков я лично не сомневаюсь...
Либо - напрасно, либо - мы говорим о разной квалификации.
Цитата:

2) не уверен, что в силах автора темы сделать предложенную Вами модернизацию.
Я тоже.
Но также не уверен, что задача может быть решена каким-нибудь иным способом.
Цитата:
использовать программу под DosBox (или под виртуалкой) намного проще, чем переписать заново...
Еще проще и надежнее запустить программу на компе с установленным DOS.
Вопрос лишь - допустиммо ли такое решение.
Опять же, у Турбо-Паскаля были определенные особенности, которые не позволяли запускать некоторые программы на процессорах с тактовой частотой выше 200 МГц. (это, к слову, также и о квалификации разработчиков...)
s-andriano вне форума Ответить с цитированием
Старый 02.02.2013, 00:30   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от s-andriano
А можно привести пример, в котором либо использование ассемблерной вставки имело существенные преимущества перед аналогичной конструкцией на Паскале, либо выполнение данного действия на Паскале принципиально невозможно?
А зачем? Чтобы спорить с Вами? Так мне оно не надо.
Чтобы пытаться Вас в чём-то убедить? Тем более это не надо не мне, ни Вам! (тем более, я уверен, что Вас никто и не в чём не убедит... )


впрочем, извольте:
Код:
procedure Reinit8087;
  {-Reinitialize the 8087 chip}
inline(
  $9B/$DB/$E3); {FINIT  ;actual}
Код:
function DosVersion : Word;
  {-Returns the DOS version number. High byte has major version number,
    low byte has minor version number. Eg., DOS 3.1 => $0301.}
  inline(
    $B4/$30/                 {mov ah,$30}
    $CD/$21/                 {int $21}
    $86/$C4);                {xchg ah,al}
Код:
procedure FarCall(ProcAddr : Pointer);
  {-ProcAddr is the address of a routine to be called far. Can be used to
    implement jump tables if procedures take no parameters.}
  inline(
    $89/$E3/                 {mov bx,sp}
    $36/$FF/$1F/             {call far dword ptr ss:[bx]}
    $81/$C4/$04/$00);        {add sp,4}

procedure NearCall(ProcOfs : Word);
  {-ProcOfs is the offset of a routine to be called near.}
  inline(
    $5B/                     {pop bx}
    $FF/$D3);                {call bx}

procedure Reboot;
  {-Reboot the machine}
{$IFNDEF Dpmi} {!!.21 - for real mode only; see implementation for pmode vers}
  inline(
    $B8/$40/$00/             {mov ax,$40}
    $8E/$D8/                 {mov ds,ax}
    $C7/$06/$72/$00/$34/$12/ {mov word ptr [$0072],$1234}
    $EA/$00/$00/$FF/$FF);    {jmp far $FFFF:$0000}
{$ENDIF}

procedure InterruptsOn;
  {-Turn interrupts on}
  inline($FB);               {sti}

procedure InterruptsOff;
  {-Turn interrupts off}
  inline($FA);               {cli}
всё, это, разумеется, надёргано из разных модулей, хаотично..
Я считаю, что это просто "разговор про пустой мешок", но, если Вы хотите посмотреть, то почему бы и нет?..

могу выложить полностью исходники, чтобы Вы смогли оценить код в совокупности, если желаете...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
visual basic для windows vista horpenst Помощь студентам 2 24.02.2012 11:16
Компиляция программ для Linux из Windows Zlyden' Qt и кроссплатформенное программирование С/С++ 8 02.01.2012 11:43
Компиляция под Windows 7 & Windows XP Стелс Общие вопросы Delphi 3 31.10.2011 13:48
Мини-программа, portable, для Windows XP, Vista, 7 Amph Фриланс 1 01.07.2010 18:44
Кросс-компиляция из Linux для Windows Plobzik Qt и кроссплатформенное программирование С/С++ 4 10.05.2010 09:17