fbpx
3.7 C
София

Компилиране на Microsoft Word от 1989 година

Оригиналът е на Justice Halisham. За мнозина, всичко описано по-долу навярно е до болка познато, но статията се ползва с голям успех и нека и ние да разгледаме съчетанието на DOS времената със съвременните технологии

Най-четени

Даниел Десподовhttps://www.kaldata.com/
Ежедневен автор на новини. Увличам се от съвременни технологии, оръжие, информационна безопасност, спорт, наука и концепцията Internet of Things.

Изграждането на Opus

Opus е кодовото име, което програмистите на Microsoft са дали на офисния пакет Microsoft Word for Windows v1.1a. Нека да опитаме да го компилираме от неговия сорс код и да видим дали ще успеем да го стартираме и използваме!

Въведение

В тази статия е документиран целия процес по изграждането на Opus – вземането на сорс кода и неговото превръщане в работещо приложение за операционната система Windows. Компилаторът и необходимите софтуерни инструменти работят в средата само на MS-DOS, понеже през 1989 година още нямаше подобни инструменти за програмистите, които сега ги има за Windows.

Забележка: в тази статия се говори много за DOS. Подразбира се използването на Microsoft MS-DOS, въпреки че по-голямата част от информацията важи и за IBM PC-DOS, както и за другите разновидности на DOS.

Ако сте начинаещ в използването на операционната система DOS, препоръчвам точно да повтаряте всички мои действия, които извършвам с версията Microsoft MS-DOS v6.22. Това е последната излязла през месец юни 1994 година версия на тази ОС, която включва всичките необходими софтуерни инструменти с едно единствено изключение, за което ще говорим малко по-долу.

Произходът

Разработването на текстовия процесор с име Microsoft Word for DOS започва от Ричард Броуди и други програмисти през 1982 година. Ричард идва от компанията Xerox Parc и е добре запознат с футуристичния по това време текстов редактор Bravo.

За първи път Word for DOS излиза през 1985 година и се доставя в комплект с една от неговите по-ранни версии на MS-DOS. В него се използва примитивна графика, поддържа се работа с мишката, но самата програма получава твърде противоречиви отзиви.

Word v2.0 for DOS е представен през 1985 година и вече поддържа EGA графика и има функция за проверка на правописа.

Word v3.0 for DOS излиза през 1986 година. Поддържа Hercules графика и немалък списък с принтери.

Word v4.0 for DOS е представен на широката публика през 1987 година. Тази версия вече поддържа VGA графика и има както текстов, така и графичен режим.

Word v5.0 for DOS и OS/2 става 16-битово приложение.

С излялото през 1989 обновяване до Word v5.5 се добавят прозорци и менюта в стил Windows/Mac. Той е предшественик на Word for Windows, който излиза същата година.

Разработването на първия WYSIWYG текстов процесор за Microsoft Windows завършва през 1988-1989 години и сега тази версия се намира в Музея по компютърна история (Computer History Museum, CHM).

Мога ли аз да компилирам този код?

Да! Но как да стане? Може да се използва някой много стар компютър, което не е особено добра идея. Може да се използва и съвременен компютър, на който да се стартира DOS, но това сякаш е още по-глупава идея. Може да се използва виртуална машина или хипервайзор за стартирането на виртуален DОС компютър в средата на някоя съвременна операционна система. Всички необходими софтуерни инструменти могат да се вземат от дадения по-горе линк. Но всичко става под DOS и нека се спрем по-подробно как всичко това трябва да работи.

Аз ще използвам VMware Fusion за Mac, но това няма значение – можете да използвате всякакви виртуални машини с всякакви операционни системи, стига да може да се стартира MS DOS. А след стартирането на DOS трябва да се провери колко свободна памет остава. За тази цел трябва в общи линии да се познава по какъв начин DOS вижда хардуера. На компилатора на Microsoft е необходима разширена памет (expanded memory) и тук ще обясня как се осигурява достъпа до този тип памет и как се конфигурира DOS, за да може тази памет да е достъпна за компилатора.

Освен това файловете със сорс код са доста големички за едно DOS приложение и препоръката ми е да си улесните работата като създадете един CD-ROM дисков образ с всички файлове на сорс кода, за да могат наведнъж да бъдат копирани в DOS машината. Но за работата на CD-ROM в DOS среда е необходим драйвер, а този драйвер използва немалко памет и настройката се усложнява.

Самият сорс код е интересен с това, че фирменият компилатор на Microsoft изисква компютър с процесор 386 и нагоре, както и 4 MB оперативна памет. Тези изисквания превъзхождат характеристиките на много персонални компютри от това време и машина с подобни характеристики определено се считаше за high end, понеже повечето компютри от това време имаха максимум 1 MB RAM, като за DOS програмите бяха достъпни само 640 KB от нея. А от тази памет доста прилично количество използва самата DOS и приложенията използват каквото остане. И така, колко памет трябва да има нашата виртуална машина? Как да ѝ добавим още памет? Да се спрем по-подробно.

История на процесорите на Intel

Причината, поради която DOS изисква фино управление и настройка на паметта е тясно свързана с историята на процесорите на Intel, на който операционната система трябва да работи. Тъй като много от ранните програми в зората на мащабното програмиране се пишеха на асемблер, операционната система DOS бе много тясно свързана с процесора, на който работи. В резултат от всичко това тя наследи ограниченията на тези процесори, а те налагаха странни правила и изисквания, понеже всяко ново поколение процесори трябва да поддържа предишната кодова база – всички инструкции на предишните чипове.

През 1979 година 8-битовите процесори Intel 8086/8088 можеха да адресират 1024 KB RAM или 1 MB оперативна памет, понеже имат 8-битова шина на данните и 16-битови регистри на паметта.

През 1982 година 16-битовият процесор Intel 80286 може да адресира до 16 MB RAM – 16 битова шина на данните и 24-битово адресно пространство

През 1985 година 32-битовият Intel 80386, както и по-късният 486 вече могат (теоретично) да адресират до 4096 MB оперативна памет или 4 GB RAM

Съвременните 64-битови процесори имат 40-битови, 52-битови и 64-битови архитектури за адресиране на паметта и поддържат от 1 TB до 4 PB RAM.

Историята на DOS и Windows е пълна с проблеми, създадени, за да се осигури обратната съвместимост и да се спазят ограниченията на управлението на паметта, на които влияеше архитектурата на първите процесори на Intel.

Типовете памети в DOS

Има пет области на паметта, адресирани от операционната система DOS. Всяка една от тях се адресира с помощта на един или два драйвера, извиквани от файла CONFIG.SYS по време на зареждане на системата. HIMEM.SYS осигурява достъпа до Extended Memory, а EMM386.EXE – до Expanded Memory.

Ето едно кратко описание на тези видове памет:

  • Conventional Memory (основна памет): паметта от 0 до 640 KB или 651 264 байта, известна и като Lower Memory Area (LMA)
  • Upper Memory Area (горна или адаптерна памет): това са адресите от 640 KB до 1024 KB (1 MB), известна и като Upper Memory Blocks (UMB)
  • Extended Memory Specification (допълнителна памет): XMS са адресите от 1 MB до 64 MB, но в тази спецификация се описва и UMA. Тук често стават обърквания, но DOS няма достъп до UMA без  HIMEM.SYS
  • Expanded Memory Specification (разширена памет): EMS използва кадър или страница от 64 KB, определена в Upper Memory, за предоставяне на достъп до паметта над 1 MB. DOS може да използва едновременно XMS и EMS, когато е зададен параметъра AUTO или да я изключи, ако EMM386.EXE се зареди с параметъра NOEMS. Самият EMM386.EXE и другите подобни мениджъри на паметта емулират expanded memory в областта extended memory и тук всичко е разбираемо и няма обърквания!
  • High Memory Area: HMA са 64-те KB, разположени точно над 1 MB, където DOS може да зареди себе си с помощта на параметрите DOS=HIGH във файла CONFIG.SYS.

В основната памет (Conventional memory) се разполагат DOS програмите от старата школа. Те могат да използват само паметта от 0 до 640 KB и тъй като голяма част от тази памет е заета от самата DOS и по време на своето изпълнение те имат достъп до по-малко от 500 KB RAM. Това много често ограничава приложенията, стартирани в така наречения real mode. С други думи, това са 16-битовите приложения, ограничени от основната памет. Real mode или реалният режим се нарича така, понеже адресираната от приложенията памет е съпоставима с реалните адреси на компютърната система.

Това си беше съвсем нормално, но в продължение на само няколко години, след което тези 640 KB се превърнаха в ограничаващ фактор за по-сложените приложения – тоест, за игрите! Повече памет бе необходима и за новите Windows приложения и ето защо се появи Extended Memory Specification (XMS). Паметта над 1 MB стана адресируема от 16-битовите програми. Тази спецификация се породи от процесорите 286, в които бе реализиран protected mode – защитения режим за получаване на достъп до паметта над DOS ограниченията. Едновременно с това се поддържа достъпа и до основната памет в Real mode, а при необходимост може да се превключва между двата режима.

Инсталирането на DOS

Можем да използваме истински дискети с външно USB флопи или да направим дискови копия на тези дискети и да ползваме тях. Но далеч по-разумно е да изтеглим дисковите образи на тези дискети, нещо което се предлага от редица сайтове, като например WinWorld.

Физическата или виртуалната машина трябва да имат не по-малко от 4 MB и не повече от 32 MB RAM, както и хард диск с капацитет не повече от 512 MB с един единствен FAT16 дял. Ако по някаква причина имате диск с капацитет над 512 MB, то неговият първи дял трябва да е с размер, който може да бъде адресиран от вашата версия на DOS. За съвместимост с различните версии приемаме дискът да е 512 MB или по-малко.

Ако вашата виртуална машина е настроена да има посочените по-горе характеристики, стартирайте дисковия образ на първата дискета на DOS, както казахме, версия 5.0 и нагоре. Ще се стартира инсталатор. Следвайте неговите инструкции и оставете всички предложени значения по подразбиране.

Край на първа част.


Може всичко описано в този материал да изглежда познато и отегчително, но и до днес има предприятия, които използват стари програми за съставяне на рецепти за храна на най-различни животни, има и частично ТРЗ под DOS и какво ли още не. Вече никой не иска да преписва тези програми за Windows и те се ползват, най-вече защото са безплатни, а и техните бази данни са пълни с полезна информация. Но не могат да се стартират и да работят в средата на новите версии на Windows, а толкова стари компютри вече почти няма. В много случаи единственият изход е виртуалната машина, където трябва добре да се познава работата с DOS и тънката настройка на тази ОС, понеже тези стари програми са твърде капризни.

Абонирай се
Извести ме за
guest
2 Коментара
стари
нови
Отзиви
Всички коментари
U4en
U4en
1 година

от безделници, за безделници

Умния
Умния
1 година

От умни хора за умни

Нови ревюта

Подобни новини