Здравствуйте!
Начал делать новый проект, задача — написать эмуляцию устройства. Необходима разработка под ОС MS DOS 6. Вот сижу, думаю какой компилятор взять. Решил скомпильнуть старые исходники от того же проекта (под win32) — не пошло, слишком заметная разница между C++ Builder и Borland C++ 3. Вот и решил спросить: какой компилятор посоветуете выбрать для создания программ под ДОС, какие вещи необходимо учитывать, что такое DOS Extender и когда его необходимо использовать (я пока только догадываюсь , да и вообще — может кто сталкивался с какими-нибудь ловушками при программировании под DOS 16 — поделитесь.
Заранее спасибо!
Здравствуйте, DMD, Вы писали:
DMD>Здравствуйте! DMD>Начал делать новый проект, задача — написать эмуляцию устройства. Необходима разработка под ОС MS DOS 6. Вот сижу, думаю какой компилятор взять. Решил скомпильнуть старые исходники от того же проекта (под win32) — не пошло, слишком заметная разница между C++ Builder и Borland C++ 3. Вот и решил спросить: какой компилятор посоветуете выбрать для создания программ под ДОС, какие вещи необходимо учитывать, что такое DOS Extender и когда его необходимо использовать (я пока только догадываюсь , да и вообще — может кто сталкивался с какими-нибудь ловушками при программировании под DOS 16 — поделитесь. DMD>Заранее спасибо!
есть вполне вменяемый djgpp но он тока под какую-то 32битную прослойку для доса.
и еще не совсем ясно зачем писать эмулятор некоего устройства обязательно под дос? У вас есть некое оч. цен. дос ПО которое использует специфическое оборудование, которого уже нету, и вы пишите эмулятор этой железяки?
Здравствуйте, DMD, Вы писали:
DMD>Начал делать новый проект, задача — написать эмуляцию устройства. Необходима разработка под ОС MS DOS 6.
Все-таки странная постановка задачи.. абсолютно уверены что хотите именно DOS?
DMD> Вот и решил спросить: какой компилятор посоветуете выбрать для создания программ под ДОС,
IMHO, если вам так уж необходимо работать с DOS в режиме 16-бит,
берите Borland C++ 3.1/4.5, автомат, ведро патронов, барабан, веревку... ну, вы знаете.
Для DOS-16 также можно иметь вполне "вменяемый" (c) C++ c поддержкой stl,
посмотрите Digital Mars <b>cross</b>-compiler, только отлаживаться, боюсь, придется принтфами...
> что такое DOS Extender и когда его необходимо использовать
Wikipedia: DOS Extender
> при программировании под DOS 16
Extender-ы были придуманы (~15 лет назад?) для 32-х битового режима, работают на процессорах начиная с ~286.
Всем привет, с наступающими праздниками и так далее...
Отвечу сразу блоком.
Проект необходимо писать под ДОС, так как в контроллере (в который затем будем заливаться проргамма) существует только ДОС-образная ОС с рядом прерываний... Контроллер из серии ADAM-4000 для промышленной автоматизации. Задача стоит — сэмулировать на этом контроллере процессор Z80/i8080 для учебных целей. Короче много всего накручено, много всего уже написано под 32-битный компилятор... Вот теперь надо написать под реальный режим все это. Ужас, но, чем больше работаю с этим, тем больше становится интереснее: так сильно все это отличается от Win32 программирования. Ну да ладно, не в этом суть.
Спасибо за ответы. Я просто хотел узнать какой компилятор генерит самый оптимизированный код по скорости выполнения. Ну да ладно. Кстати, а такой известный компилятор как Watcom C++? Можно ли его ещё где-нибудь скачать (только если там немного, хотя сам не верю в такое чудо)? Как он себя зарекомендовал? Правда ли он так хорош? Я спрашиваю потому, что в эмуляторе будет просчитываться модель и оптимизированный код от компилятора очень важен. А я слышал (и неоднократно), что Watcom C++ давал самый лучший код. Правда ли это?
И ещё: посоветуйте простую и мощную библиотеку для создания пользовательского интерфейса под ДОС (в текстовом режиме)? TurboVision брать не хочу, так как нет для неё описания (искал — не нашел конкретно для С++, да и она "заточена" под BorlandC++ (пытался построить её на MS C++ 7, но походу либо у меня руки крывоваты, либо я что-то не учел). Поэтому посоветуйте где можно скачать библиотеку в исходниках (желательно) для создания UI for DOS.
Здравствуйте, DMD, Вы писали:
DMD>Проект необходимо писать под ДОС, так как в контроллере (в который затем будем заливаться проргамма) существует только ДОС-образная ОС с рядом прерываний... Контроллер из серии ADAM-4000 для промышленной автоматизации. Задача стоит — сэмулировать на этом контроллере процессор Z80/i8080 для учебных целей. Короче много всего накручено, много всего уже написано под 32-битный компилятор... Вот теперь надо написать под реальный режим все это. Ужас, но, чем больше работаю с этим, тем больше становится интереснее: так сильно все это отличается от Win32 программирования.
Bender: My dream died even before it started...
Zoidberg: Welcome to my life! (Starts crying)
Почему бы вам не эмулировать Z80 под Windows? Мне, например, трудно представить,
какие могут быть в процедуре написания эмулятора Z80 для контроллере ADAM-4000
"учебные цели" кроме садизма...
DMD>Спасибо за ответы. Я просто хотел узнать какой компилятор генерит самый оптимизированный код по скорости выполнения. Ну да ладно. Кстати, а такой известный компилятор как Watcom C++? Можно ли его ещё где-нибудь скачать (только если там немного, хотя сам не верю в такое чудо)? Как он себя зарекомендовал? Правда ли он так хорош? Я спрашиваю потому, что в эмуляторе будет просчитываться модель и оптимизированный код от компилятора очень важен. А я слышал (и неоднократно), что Watcom C++ давал самый лучший код. Правда ли это?
Watcom действительно был очень хорош 10 лет назад...
вам же вроде уже дали ссылку на openwatcom — это он и есть. (N лет назад Watcom стал opensource)
DMD>И ещё: посоветуйте простую и мощную библиотеку для создания пользовательского интерфейса под ДОС (в текстовом режиме)? TurboVision брать не хочу, так как нет для неё описания (искал — не нашел конкретно для С++, да и она "заточена" под BorlandC++ (пытался построить её на MS C++ 7, но походу либо у меня руки крывоваты, либо я что-то не учел).
Описание на TurboVision — в хелпе для Borland.
Я почему-то так и подумал что на контроллере все будет. Поэтому ведро патронов, и т.д.
Насчет библиотеки не подскажу... (у вас нормальный дисплей? не индикатор?)
Почему бы вам просто не взять контроллер поприличнее —
чтобы на него linux или даже windows можно было поставить?
IMHO, большинство софта, написанного Advantech (который выпускает ADAM-4000) — нечто "вечноглючащее"...
А вообще, для этого ADAM-4000 Advantech выпускает специальную среду разработки
("графического программирования"), т.е. в контроллер зашивается ихняя программа,
которая выполняет написанные пользователем сценарии. Так что попытку сделать
из данного контроллера эмулятор Z80 можно рассматривать как нецелевое использование
имеющихся средств с отягчающими обстоятельствами. Заключение на срок от 1 года
По поводу разработки.
Я не очень представляю как вы с Watcom будете отлаживаться в контролеере.
Поэтому я бы посоветовал все же старый Borland, у которого был специальный модуль (TDR186 ?),
который можно залить в контроллер, потом подключиться через COM-порт, и отлаживаться.
Типа Remote Debugging в каменном веке
Здравствуйте, bnk, Вы писали:
bnk>Почему бы вам не эмулировать Z80 под Windows? Мне, например, трудно представить, bnk>какие могут быть в процедуре написания эмулятора Z80 для контроллере ADAM-4000 bnk>"учебные цели" кроме садизма...
хотелось бы отметить, что эмуляторы спектрума есть даже на яве для мобильных телефонов, если ничего не путаю, так что, написав его под "адама", в зал славы вы не войдете
Здравствуйте, DMD, Вы писали:
DMD>И ещё: посоветуйте простую и мощную библиотеку для создания пользовательского интерфейса под ДОС (в текстовом режиме)? TurboVision брать не хочу, так как нет для неё описания (искал — не нашел конкретно для С++, да и она "заточена" под BorlandC++ (пытался построить её на MS C++ 7, но походу либо у меня руки крывоваты, либо я что-то не учел). Поэтому посоветуйте где можно скачать библиотеку в исходниках (желательно) для создания UI for DOS.
DMD>Заранее спасибо! http://tvision.sourceforge.net/
Порт TVision на для GNU компиляторов. Есть документация
Всем спасибо! Я уже нашел хороший эмулятор, могу поделиться, если кому надо.
У меня вот тут затык, не знаю куда и думать, вернее в каком направлении.
Следующий код не работает под Вс3.1, но на ура работает под всеми другими компиляторами.
class I8080
{
//......private:
typedef void (I8080::*OpcodeHandler)();
typedef struct {
OpcodeHandler handler; //вот здесь получаю странную ошибку -
//Error I8080.H 551: 'I8080::OpcodeHandler' is not accessibleunsigned cycles;
} OpcodeInfo;
//......
}
Что характерно: все остальные компиляторы (а я отлаживал под Билдером 6, и под Визуалом 6) хавают код нормально. Может что-то поменялось в стандарте со времен ВС так, что я не могу обратиться внутри класса к typedef? причем если вынести typedef в public секцию, то код компилиться и вылетает на слудующей подобной вещице... Может какой ключик есть?
Заранее спасибо!