Семь ошибочных предсказаний об интернете и технологиях. Худшие технические предсказания всех времен. Незатратные системы реального времени

Основатель корпорации Microsoft Билл Гейтс заслужил сомнительный титул худшего предсказателя в сфере новых технологий. Сразу две его фразы попали в десятку самых дурацких технических прогнозов всех времен, которую составил популярный журнал T3 .

Именно Гейтсу молва приписывает знаменитую фразу о том, что 640 килобайт памяти всегда будет достаточно для домашнего компьютера. Сегодня вполне нормальный размер оперативной памяти - 2 гигабайта, в 3,5 тыс. раз больше "максимума". Сам Гейтс отрицает, что когда-либо говорил подобные вещи.

Зато неоспорима другая его фраза, вошедшая в рейтинг. "Через два года проблема спама будет решена", - пообещал Гейтс на Всемирном экономическом форуме в 2004 году.

Как явствует из списка, в прошлом люди не верили в перспективы телевидения, в реальность рентгена, считали телефоны ненужным баловством, но зато верили в появление пылесосов на ядерной тяге.

В 1977 году Кен Олсен, президент корпорации Digital Equipment, и вовсе утверждал, что компьютер в домашнем хозяйстве никогда и никому не понадобится. Наивный бизнесмен не знал, что однажды с помощью компьютера можно будет смотреть порно, иронизирует T3.

Первое место в списке занял британский миллиардер сэр Алан Шугар, который в 2005 году заявил в интервью одной из газет: "К следующему Рождеству iPod умрет, ему конец, капут". На сегодняшний день компания Apple продала уже 174 млн своих плееров.

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

Худшие технические предсказания всех времен

1. "К следующему рождеству iPod умрет". Сэр Алан Шугар, 2005 год.

2. Домашний компьютер никому не нужен. Кен Олсен, 1977 год.

3. "Пылесос на ядерной энергии появится в ближайшие десять лет". Алекс Левит, 1955 год.

4. Телевизор быстро утратит популярность, потому что "скоро люди устанут пялиться каждый вечер в фанерный ящик". Киномагнат Дэррил Занук, 1946 год.

5. "Более крупного самолета уже никогда не появится", - заявил в 1933 году инженер компании Boeing после запуска самолета на десять пассажиров.

6. В ближайшее время почту будут доставлять с помощью ракет. Глава почтового ведомства США Артур Саммерфилд, 1959 год.

7. Больше 640 Кб памяти персональным компьютерам никогда не понадобится. Билл Гейтс, 1981 год.

8. "Телефоны нужны американцам, а нам - нет. У нас много курьеров". Сэр Уильям Прис, главный инженер британского почтового ведомства, 1878 год.

9. "Через два года проблема спама будет решена". Билл Гейтс, 2004 год.

10. "Будет доказано, что рентгеновские лучи - выдумка". Лорд Кельвин, глава Королевского научного общества Великобритании, 1883 год.

Наткнулся на такую фразу:

… в свое время, около 30 лет назад, сам Билл Гейтс (Bill Gates) объявил, что «640 килобайт хватит всем» (имея в виду оперативную память), а потом стал от этого открещиваться

Хочется немножко это все “подправить”.

О чем идет речь? В первых моделях IBM PC предел доступной оперативной памяти составлял около 640 килобайт. Это было обусловлено тем, что используемый в них процессор Intel 8088, в отличие от более ранних Intel 8080, имел не 16, а целых 20 адресных линий. 16 адресных линий позволяют адресовать 2 16 =65536 ячеек памяти, на интеловской линейке процессоров ячейка равна байту. Получившиеся 64 килобайта – это много, реально много, особенно для начала 80-х, когда память была очень дорога. В суперпопулярных ZX81, предшественниках “Спектрумов”, размер ОЗУ составлял лишь 16 килобайт. В первых “Спектрумах” размер оперативной памяти составлял 48 кБ – и этого было достаточно для всех задач, которые тогда мог выполнять персональный компьютер.

Конечно, IBM, разрабатывая свою “персоналку”, не могло пойти по пути каких-то там нищебродов и выбрало гораздо более передовой процессор. 20 адресных линий хватает для того, чтобы получить доступ уже к целому мегабайту памяти, причем без каких-либо плясок с бубном типа переключения банков памяти (как было сделано на более поздних “Спектрумах”, которые поддерживали до 128 кБ памяти, а in Soviet Russia – вообще до 4 мегабайт). Правда, в этом мегабайте пришлось “вырезать” небольшую часть – под видеопамять, под устройства ввода-вывода и т. п. Это называется memory-mapped I/O – “отображаемый на память ввод-вывод” и применяется почти во всех архитектурах компьютеров. В конечном итоге, осталось 640 килобайт – и для 1981 года это было действительно очень-очень много.

При чем тут Билл Гейтс? В 1981 году он был не гендиром мега-корпорации, а обычным “стартапщиком”, получившим (как утверждают злые языки, не без привлечения “родственных связей” в виде работавшей в IBM тетушки) контракт на адаптацию к IBM PC интерпретатора Бейсика, а затем, когда IBM поругалась с Гарри Килдаллом – и на всю операционную систему. Так или иначе, Гейтс подобного рода решений не принимал – кто бы его пустил? – так что “объявлять” подобное он не мог (и не надо тут никаких ассоциаций с Генри Фордом, сказавшим “вы можете купить Ford Focus любого цвета, если он будет серебристым металликом”, ну или что-то в этом роде).

Потом, Гейтс действительно всячески открещивается от этой фразы – мол, не говорил он такого. И есть все основания считать, что на самом деле не говорил. Но вот отчего-то повелось считать, что Microsoft – корень всех зол, а Гейтс – вообще конченый подонок, намеревавшийся оставить всем эти жалкие по нынешним меркам 640 килобайт.

Запись опубликована в блоге Шуры Люберецкого . Вы можете оставлять свои комментарии там , используя свое имя пользователя из ЖЖ (вход по OpenID).

Про смерть косатки я узнал совсем недавно, да и то из рассылки коалиции «Живое море»... В принципе я не был этим удивлен, — все к тому и шло. Отлов такого животного допотопными средствами, приведший к убийству другой косатки, обязан был спровоцировать смерть второго животного. Кстати говоря, убийство второй особи отрицается до сих пор. Плюс ушедший во время отлова детеныш, который без матери долго не проживет. Вероятно, он уже скончался... Смерть косатки в неволе еще раз доказала опыт зарубежных дельфинариев — косатка в неволе живет меньше года. Сколько дней живет косатка в неволе? Интересно другое, ведь никто не признается, что в неволе косатка умерла по вине дельфинария. Доказательств, ведь, нет! Зато есть тонны протухшего мяса. Мне уже известны три причины смерти косатки. По просьбе Боба Броунелла, я узнал официальную версию. Публиковать эти версии в «ППД» я не собираюсь. Дело в том, что к каждой из них я напишу с десяток абзацев о том, что дельфинарий не признает свою вину, и все будет спихивать на мертвое животное. Дескать, сама виновата, что в сеть залезла. Я думаю, что лучше подождать второго и третьего вскрытия того, что еще не сильно протухло. Еще лучше, в оправдание смерти, будет разослать, всем запросившим, видео производившегося вскрытия... Думаю, что как раз про видеосъемку в тот критический момент вдруг все забыли... Фотографии не подойдут, так как их слишком легко подтасовать.

Читая о причинах смерти второй косатки, у меня возникла забавная мысль. А ведь действительно никто не убивал первую косатку, скорей всего она просто умерла со смеху... В книге Пауло Коэльо «Алхимик», есть такие строки: «То, что произошло один раз — может не повториться, то, что повторилось дважды — обязательно произойдет в третий раз ». Вот так! Смерть косатки во время отлова — один, смерть косатки в дельфинарии — два, смерть дельфиненка — три... А ведь есть еще квоты на вылов косаток на следующий год. Интересно, может прислать Касьянову парочку писем с вопросом: скольких косаток планируется убить в следующем году?

С облегчением

В очередной раз задумался над вопросом: «зачем моему сайту нужен баннер?» Подумал-подумал, да и «снес» его к чертям. Кое-где я оставил этот баннер, но вероятно не за горами то время, когда я уберу баннер со всех страниц. Не стоит он занимаемых им пикселей.

Я вообще считаю, что баннерная реклама скоро себя изживет. Хотя были пророки и до меня, и после меня, их будет множество. А может баннерная реклама себя и не изживет, а превратится во что-нибудь иное. К, сожалению, эффективность баннерной рекламы очень низкая. По статистике баннерного сервиса BISER, на моем сайте было «откручено» более двухсот тысяч баннерохитов, а на мой сайт пришло людей чуть меньше тысячи. И куда это годится?

640 килобайт хватит всем

Кстати, 11 ноября нашему изданию исполнится три года! А 21 февраля 2004 года исполнится четыре года моей персональной странице, а моя персоналка стала прародителем этого интернет-издания...

Страсти по косаткам

Мировая общественность против отлова косаток в Охотском море.

На минувшей неделе участники международной встречи в Сан Франциско (США) резко осудили Россию за организованный недавно отлов косатки в Охотском море, сообщает информационное агентство «ЭХО-ДВ». Как утверждают международные эксперты, это было проделано вопреки запрету Международной китовой комиссии (МКК) и протестам мировой общественности. Как рассказал корреспонденту «ЭХО-ДВ» специалист общественной организации «Камчатская лига независимых экспертов» Андрей Абих, на встречу были приглашены 45 активистов из 10 стран, представляющие миллионы простых граждан, которые выступают против отлова и эксплуатации в неволе дельфинов и косаток. Осуждающая российские власти резолюция была принята на встрече единогласно. По данным КЛиНЭ российские экологи готовятся поднять скандальный вопрос на грядущем в ноябре всероссийском съезде по охране природы, организуемом Министерством природных ресурсов РФ.

Как уже сообщало «ЭХО-ДВ», Российское правительство выделило 10 лицензий на отлов косаток в Охотском море, для последующей их продажи в другие страны, в частности, в США, Японию и Канаду. За одну особь этого редкого млекопитающего власти нашей страны запросили 1 миллион долларов США. Напомним, что в прибрежных водах Камчатки должны были поймать четырех косаток. К сожалению, в двадцать первом веке не придумали лучшей технологии отлова косаток, кроме загона в сетку большой группы животных. Так произошло и возле острова Старичкова в Авачинском заливе. В сеть загнали тридцать китов, двадцать восемь смогли уйти, двое запутались. В результате одна косатка погибла. Однако выясняется, что по закону наказать даже штрафом никого нельзя.

По материалам Восток-Медиа (28.10.2003).

Программирование на HTML

Недавно пришло письмо с предложением о работе. Дескать, нам нравится, как сделан ваш сайт, мы читали отклики про ваши возможности и хотели бы вас нанять на работу. В письме также указывалось, что в мои обязанности будет входить: дизайнерская работа (вообще-то, я контент-мастер), набор текста и программирование на HTML. Первые сорок минут я просто смеялся; потом, минут двадцать — приходил в себя от смеха.

Я смеялся не над тем, что оплата будет почти штуку баксов в месяц, а над тем, что программировать на HTML — это равнозначно программированию на русском языке, или программированию на кофейной гуще третьего ополоска. Для тех, кто в танке. HTML — это не язык программирования, а язык разметки гипертекстовых документов. Если люди не разбираются в проблеме, то это прямое доказательство существования этой проблемы. И по поводу оплаты. Дизайн и рисование — никто не оплачивает фиксировано, каждая разработка оплачивается отдельно... Вот представьте, что стоимость оформления высокохудожественного романа из 20 томов и стоимость оформления дешевенькой брошюры будут равны. Что мы после этого получим? Я думаю, — получим попсу. Посмотрите телевизор... что там показывают? Девяносто процентов составит поп-культура * , остальное прорывается случайно... А почему так происходит? Потому, что платят одинаково и все идут по пути наименьшего сопротивления. И, по секрету, верстальщик, использующий HTML, оплачивается как обычный негр, по 100 долларов в месяц. Странно, но на эту негритянскую зарплату люди умудряются жить в Москве.

Но вернемся к нашим парнокопытным, полорогим друзьям. Уж коли, используешь терминологию, то будь добр, разобраться в значении используемых терминов. А то наймешь какого-нибудь HTML-программиста и он, потом такого напрограммирует, что семеро HTML-верстальщиков не разберут!

Кстати, основной смысл письма такой. Люди хотят сделать е-бизнес с помощью интернета и хотели, чтобы я помог им сварганить небольшой е-магазин по продаже книг. Чисто из спортивного интереса я осведомился у них о том, чем они располагают на текущий момент. Ответ меня поразил до глубины души. Они располагают моим адресом и двумя людьми, которые были готовы играть роль службы доставки. Честно напишу, я далек от е-бизнеса (а в данном случае это слово можно писать уже без дефиса), но как минимум для начала нужно иметь минимальный набор книг, пары сотен наименований хватит. Далее идет склад или временное хранилище книг, а лучше небольшую лавку, где эти книги можно посмотреть, пощупать и полистать. Отлаженную службу доставки, двух человек на весь Новосибирск явно мало. Еще нужна служба заказов, которая будет звонить клиенту с вопросом действительно ли он, что-то заказал и уточнять, что именно он заказал. Полагаться исключительно на интернет в этом плане невозможно, т.к. шутников у нас предостаточно.

Как мне известно, в Новосибирске уже есть один интернет-магазин, торгующий книгами. А это означает, что помимо создания самого магазина в интернете и его раскрутки, нужно учитывать конкуренцию со стороны уже существующего магазина... Как я понимаю, у существующего интернет-магазина хорошо развита инфраструктура и отлажены связи с издательствами и курьерскими службами города.

Я полагаю, что пока в России будут верить, что на HTML можно программировать, а для создания интернет-магазина требуется лишь хороший web-мастер — наша страна так и останется «страной дураков, и вечнозеленых помидоров».

Ваш Orcinus Orca — противник отлова косаток!!!

*) Поп-культура — популярная культура. Наиболее дешевая и массовая технология развлечения людей. Поп-культура не имеет никакого отношения к церкви и церковным служителям (попа́м).

  • Перевод

Никогда не сдавайтесь

Действительно ли Билл Гейтс произнёс фразу «640 КБ должно хватить всем»? Её история довольно туманна, однако чаще всего её приписывают Биллу, так что, возможно, он действительно такое говорил.

Его довольно часто за это высмеивали. Мысль о общем пространстве памяти размером всего 640 КБ по современным стандартам смехотворна. В этот размер не уместится даже исполняемые файлы большинства программ-установщиков.

Для сравнения: калькулятор в Windows 10 занимает в состоянии простоя 16,2 МБ оперативной памяти - почти в 26 раз больше, чем объём доступной DOS-программам памяти в 1980-х.

Странные дела

Поверите ли вы мне, если я скажу, что до сих пор существует активное сообщество, использующее эту устаревшую платформу и разрабатывающее для неё ПО?

Наверно, вашим первым вопросом будет «Но зачем?» И я хорошо вас понимаю. Давайте рассмотрим некоторые группы, которые до сих пор заинтересованы во вложениях усилий в DOS.

Разработчики legacy-систем

Сегодня по-прежнему существует множество программ, которые выполняются в DOS. Промышленные управляющие программы, системы в точках продаж и научные инструменты - вот только некоторые из примеров областей применения, в которых даже сегодня используется DOS. С течением времени большинство этих программ были портированы на другие системы или полностью переписаны, но часть всё же сохранилась.

Незатратные системы реального времени

DOS в сущности является операционной системой реального времени (ОСРВ). Она не была специально разработана для этой цели, но её минималистичный дизайн позволяет отнести её к другим подобным системам.

ОСРВ характеризуются предсказуемой задержкой программных и аппаратных запросов. Так как DOS имеет минимальный API без внутренней многозадачности, стабильность задержек вызовов операционной системы довольно высока.

Хотя уже существуют более современные примеры систем реального времени с улучшенным дизайном и разработанные специально для этой цели, тончайший интерфейс DOS между приложением и оборудованием даёт ей преимущество в этой области использования. Поскольку такие системы, как FreeDOS (которую я рассмотрю ниже) имеют открытые исходники и распространяются бесплатно, они являются хорошей альтернативой другим ОСРВ.

Ностальгические видеоигры

Современные видеоигры потрясающи. Они требуют огромной мощи 3D, но графика, звук и геймплей иногда настолько реалистичны, что их можно спутать с реальностью. Оборудование виртуальной реальности ещё больше усиливает это ощущение, позволяя игрокам полностью погрузиться в среду игры.

Но несмотря на весь этот прогресс, многие геймеры, бывшие детьми в 80-х и начале 90-х, с любовью вспоминают времена, когда примитивная (по современным стандартам) графика и синтезаторные звуки заставляли их заполнять пробелы собственным воображением.

Несмотря на то, что оборудование оставило ограничения эры DOS далеко позади, по-прежнему существует активная сцена DOS-геймеров. Движимые ностальгией и любовью к программированию, разработчики пишут игры, запускаемые на старых системах, в том числе и на PC, которые изначально поставлялись с DOS.

Если вы считаете, что этот рынок ограничен кучкой пенсионеров, пытающихся вернуться в своё технологическое детство, то вы ошибаетесь. Дэвид Мюррей , больше известный в YouTube как The 8-bit Guy , имеет более полумиллиона подписчиков, которые еженедельно исследуют территорию ностальгического компьютерного «железа». Он даже написал стратегию реального времени для Commodore 64 под названием PlanetX2 . Проект имел такой успех, что Дэвид распродал все физические запасы носителей с игрой и планирует создать сиквел для платформы DOS.

Запустите DOS

Существует множество способов запуска DOS. Возможно, у вас даже сохранился компьютер, на котором можно запустить её прямо сейчас. Но поскольку мы хотим плотно работать с этой операционной системой, то воспользуемся способом, в котором применяется бесплатное ПО, работающее почти на любом компьютере.

Для начала немного поговорим о лицензии. По некоторым данным, Microsoft сделала MS-DOS 6.22 общественным достоянием, но мне не удалось найти этому подтверждения. Поскольку ПО можно легко скачать из достаточно безопасных онлайн-источников, я не сторонник установки того, что может нарушать права на копирование. Даже если у вас есть законно приобретённая копия (а я подозреваю, что она есть у многих), её установка на виртуальную машину может быть юридически рискованным поступком.

Чтобы упростить установку, мы воспользуемся FreeDOS. FreeDOS - это клон DOS с открытым исходным кодом, написанный Джимом Холлом. Джим начал разработку в июне 1994 года, когда Microsoft заявила о том, что больше не будет продавать и поддерживать MS-DOS. Через несколько недель к проекту присоединились Пэт Виллэни и Тим Норман. Всего через несколько месяцев появилась версия 0.01. Сегодня мы пользуемся версией 1.2, выпущенной на Рождество 2016 года.

Сначала мы зайдём на веб-сайт FreeDOS и скачаем ISO-образ стандартного установщика на CD-ROM. Также можно скачать USB-версию, но с учётом различий в «железе», BIOS и т.д. мы не будем рассматривать здесь этот способ. Вместо этого мы воспользуемся виртуализацией.

Я протестировал FreeDOS и с VirtualBox Oracle , и с VMware Workstation / Player . Оба продукта работают хорошо, однако VMware обеспечивает немного более качественную эмуляцию BIOS и эмулирует PC speaker, используемый во многих играх для DOS. В примерах ниже я буду использовать VMware Workstation, но в принципе подойдёт любая система.

По умолчанию вариантами установки для FreeDOS являются VirtualBox и VMware. Вас может удивить, насколько мало выделяется ОЗУ и дискового места. Обычно я создаю для DOS двухгигабайтный диск, но и выбранных по умолчанию 512 МБ будет вполне достаточно.

Установка FreeDOS проста, достаточно загрузиться в виртуальной машине с ISO-образа (запрос файла ISO будет выдан при запуске или при создании виртуальной машины) и следовать экранным подсказкам. После того, как FreeDOS разобьёт диск и перезагрузится, снова выберите «Install to Hard Disk». Выберите «Full Installation» или «Full Installation with Sources», если вы любите видеть, как всё работает. Вы читаете эту статью, поэтому скорее всего так и есть, тогда почему бы не установить и исходники?

После установки необходимо будет перезагрузиться. На этот раз вместо выбора «Install to Hard Disk» в загрузочном меню CD выберите «Boot from System Hard Disk». Вариант по умолчанию Jemmex (with no EMS) вполне подходит для стандартной загрузки, особенно если вы хотите заняться разработкой.

Технически система FreeDOS готова к работе, только пока ещё полностью «голая». В таком состоянии удобно запускать игры и программы DOS, но оно не совсем подходит для разработки, потому что у нас нет важных инструментов.

Милый FDimples

Теперь настало время установить в FreeDOS немного программного обеспечения. ОС содержит в себе замечательную систему правления пакетами FDimples. Чтобы воспользоваться ею, введите:

Fdimples
На этом экране можно установить широкий спектр ПО. Здесь у нас есть два варианта - установить все инструменты разработки, или просто установить всё. Второй вариант может показаться перебором, но помните, что по современным стандартам все эти программы займут очень мало места, поэтому на диске останется ещё много пространства.


Потрясающий пакетный менеджер с милым названием.

Для перемещения между категориями и пакетами можно использовать клавиши со стрелками. Пробелом выбираются отдельные пакеты, ENTER - целые категории. Какой бы вариант вы ни выбрали, обязательно отметьте категорию Development. Для запуска установки нажимайте TAB, пока не будет выбрана кнопка OK, затем нажмите ENTER.

От C++ не спрятаться

Но вы и не стремитесь, не так ли? C++ замечателен, и благодаря Ди Джею Делори производительность и возможности GNU Compiler Collection теперь доступны и в DOS.

Более того, с помощью поставляемого в комплекте расширителя DOS CWSDPMI программы могут использовать защищённый режим и компилироваться в 32-битные исполняемые файлы без малейших проблем. Вы сможете преодолеть барьер 640 КБ с большим запасом. Выкусите, мистер Гейтс!

Чтобы проверить работоспособность среды разработки, давайте создадим новую папку и тестовый проект:

Mkdir C:\src mkdir c:\src\hello rhide c:\src\hello\hello.cpp
При этом запустится среда разработки RHIDE. Она не дотягивает до уровня Visual Studio, но для наших нужд разработки вполне достаточна. Мне она напоминает среду Borland Turbo-C, с которой связано множество приятных воспоминаний.


От этого интерфейса по телу разливается тепло и пробегают мурашки.

Вот обязательный тестовый код:

#include using namespace std; int main() { cout << “Hello, World!\n”; return 0; }
Теперь можно запустить код с помощью меню «Run» (или нажав ALT+R, а затем R или CTRL+F9). Вы заметите, что можно пользоваться мышью и горячими клавишами. Поначалу мыши достаточно, но стоит запомнить горячие клавиши, которые указаны рядом с различными элементами меню. Проведя какое-то время в RHIDE, вы запомните самые важные из них и ваша продуктивность значительно увеличится!

Давайте сделаем что-нибудь более интересное. Для начала давайте создадим рабочее пространство:

Mkdir c:\src\example rhide c:\src\example\example.cpp
В этом примере мы покажем, как задаются видеорежимы, указываются пиксели и выполняется управление цветом в режиме VGA 320x200x256.

#include #include #include #include #include #include #include #define COLOR_WHITE 15 #define MAX_WIDTH 320 #define MAX_HEIGHT 200 using namespace std; void set_video_mode(int mode) { // Создаём структуру для регистров __dpmi_regs r; // Задаём AX значение видеорежима r.x.ax = mode; // Вызываем int 10 (установка видеорежима BIOS) __dpmi_int(0x10, &r); } void put_pixel(int x, int y, int c) { // Видеопамять VGA находится по адресу A000, поэтому давайте выполнить запись в него. _farpokeb(_dos_ds, 0xA0000+y*320+x, c); } void clear_pixel(int x, int y) { // Мы просто записываем пиксель 0, чтобы очистить точку _farpokeb(_dos_ds, 0xA0000+y*320+x, 0); } void draw_effect() { // Текущие координаты x и y int x = 0; int y = 0; // Для каждого до y_max записываем пиксель for (y = 0; y < MAX_HEIGHT, y++) { for (x=0; x < MAX_WIDTH, x++) { put_pixel(x, y, rand()%(15+1)); } } } int main() { // Устанавливаем видеорежим 13h (320x200x256) set_video_mode(0x13); // Отрисовываем эффект draw_effect(); // Ожидаем нажатия клавиши ENTER cin.ignore(); // Возвращаемся в текстовый режим set_video_mode(3); return 0; }

Пример с движением

В этом примере мы на основе предыдущего примера добавим управляемое пользователем движение. Мы будем использовать клавиши со стрелками, чтобы перемещать пиксель по экрану. Это станет фундаментом того, что может превратиться в видеоигру.

#include #include #include #include #include #include #include #define COLOR_WHITE 15 #define MAX_WIDTH 320 #define MAX_HEIGHT 200 #define KEY_ESC 283 #define KEY_UP 18432 #define KEY_DOWN 20480 #define KEY_LEFT 19200 #define KEY_RIGHT 19712 using namespace std; void set_video_mode(int mode) { // Создаём структуру для регистровs __dpmi_regs r; // Задаём AX значение видеорежима r.x.ax = mode; // Вызываем int 10 (установка видеорежима BIOS) __dpmi_int(0x10, &r); } void put_pixel(int x, int y, int c) { // Видеопамять VGA находится по адресу A000, поэтому давайте выполнить запись в него. _farpokeb(_dos_ds, 0xA0000+y*320+x, c); } void clear_pixel(int x, int y) { // Мы просто записываем пиксель 0, чтобы очистить точку _farpokeb(_dos_ds, 0xA0000+y*320+x, 0); } int get_key() { // Создаём структуру для регистров __dpmi_regs r; // Присваиваем AH значение 00h для вызова BIOS r.x.ax = 0x0000; // Вызываем int 16 (обработчик клавиатуры BIOS) __dpmi_int(0x16, &r); // Возвращаем значение AX (полный скан-код) return r.x.ax; } int main() { // Устанавливаем видеорежим 13h (320x200x256) set_video_mode(0x13); // Основной цикл int running = 1; int curkey; // Начинаем с середины экрана int char_x = MAX_WIDTH / 2; int char_y = MAX_WIDTH / 2; while (running) { // Если нажата клавиша curkey = get_key(); // Что бы ни случилось, мы всё равно должны очищать пиксель clear_pixel(char_x, char_y); switch (curkey) { case KEY_ESC: // Нажата клавиша ESC, поэтому выполняем выход running = 0; break; case KEY_UP: char_y--; break; case KEY_DOWN: char_y++; break; case KEY_LEFT: char_x--; break; case KEY_RIGHT: char_x++; break; } // Отрисовываем "персонажа" на экране put_pixel(char_x, char_y, COLOR_WHITE); } // Возвращаемся в текстовый режим set_video_mode(3); return 0; }
Надеюсь, этот пример дал вам базовое понимание того, как обрабатывать ввод пользователя для перемещения персонажа по экрану. Некоторые части кода несовершенны.

Например, для получения нажатий клавиатуры мы используем INT 16. Это работает хорошо, но приостанавливает работу программы, пока она ждёт ввода. В более сложном примере мы бы использовали INT 16 AH = 01 для проверки состояния клавиатуры и возвращались бы к выполнению программы, если ввод с клавиатуры отсутствует. Это даст нам время на отрисовку другой графики. В нашем примере это работает нормально, но для более динамичной игры нужно будет писать обработчик событий клавиатуры с этими функциями.

Кроме того, put_pixel и clear_pixel работают достаточно хорошо, но оба они не так эффективны, как создание буфера кадра и запись в него. Буфер памяти можно с любой нужной скоростью копировать в видеопамять с помощью memcpy(). Пример его использования может выглядеть как-то так:

#include char buffer; int i; // Изменяем массив буфера, как любой другой массив // Периодически копируем буфер в видеопамять dosmemput(buffer, 320*200, 0xA0000);
На этом мы экономим множество изменений защищённого/реального режима, что значительно ускоряет операции записи. Кроме того, можно выполнять запись на экран во время выбора, что позволяет производить в фоне другие операции - воспроизведение музыки, запись на диск и загрузку графики.

Лучшее из обоих миров

Даже несмотря на то, что C++ - высокоуровневый язык, вы можете заметить, что в этом примере мне всё равно пришлось использовать псевдоассемблер. Такова природа всей системы. На ранних этапах программирования в DOS без BASIC код часто писался на языке ассемблера, и существовало несколько стандартных библиотек.

Однако в таком подходе есть своя красота. Вместо того, чтобы писать целиком на ассемблере, я могу воспользоваться мощью вызовов прерываний языка ассемблера в сочетании с удобством C++, не говоря уже о мощной системе управления памятью в защищённом режиме, доступной благодаря DJGPP.

Можно сказать, что используя эту систему, я жульничаю, и если относиться к этому строго, то так и есть. До появления расширителей DOS разработчикам приходилось мучиться, пытаясь уместить всё в 640 КБ. И если смотреть реалистично, у них редко было даже 640 КБ. На большинстве DOS-машин после загрузки драйверов и TSR (резидентных программ) едва находилось 600 КБ ОЗУ.

Этого было достаточно для простых программ, но когда требовались более сложные структуры данных, приходилось использовать расширители DOS или EMS (расширенную память). Код может быть и умещался в 600 КБ, но пространства данных в сложных программах и играх требовали места для роста, а барьер в 1 МБ был невероятно мал. Расширители DOS наподобие CWSDPMI были настоящими спасителями!

Подводим итог

Надеюсь, вам понравилось наше путешествие в Страну ностальгии. Программирование под DOS - это очень интересная область. В любой другой операционной системе сложно так близко подобраться к голому «железу», а без использования DJGPP трудно добиться равновесия между функциональностью и гибкостью.

Хочется, чтобы у нас было больше времени на более сложные примеры программ. С этим комплектом разработки наши возможности поистине безграничны. Мы получаем молниеносность программирования под DOS, графический потенциал системы VGA (которая, несмотря на свою древнюю природу, по-прежнему может создавать интересную игровую графику) и мощь стандартной библиотеки C.

Благодаря C++ мы можем создать класс персонажа для героя видеоигры, назначить ему переменные (например, текущее положение на экране, здоровье и силу) и управлять им с помощью клавиш со стрелками. Поскольку у нас есть до 4 ГБ адресуемого пространства (по крайней мере, теоретически), мы можем считывать с диска сложную тайловую графику или даже целые JPG пререндеренной графики. С помощью этой системы вполне возможно создать почти современную видеоигру.

Но у неё будет одна особенность, которой нет сегодня ни у одной игры. Её можно будет запускать на компьютере, который вам подарили на Рождество в двенадцать лет.

Приступайте к работе - ваш старый компьютер ждёт вас. Настало время снова с ним познакомиться.

В этой статье собраны семь предсказаний о развитии компьютерных и сетевых технологии, впоследствии оказавшихся невероятными

Предсказания — рискованное дело, даже если речь идет о недалеком будущем. Ошибка, допущенная однажды, припомнится оратору не раз. В этой статье собраны семь предсказаний о развитии компьютерных и сетевых технологии, впоследствии оказавшихся невероятными заблуждениями.

«Вес компьютеров в будущем не будет превышать 1,5 тонны».

Журнал «Популярная механика», 1949 год.

Первый электронный компьютер общего назначения, ЭНИАК (ENIAC, аббревиатура от Electronic Numerical Integrator and Computer, электронный цифровой интегратор и вычислитель), был запущен в 1946 году и весил почти 30 тонн. C формальной точки зрения, прогноз оказался верен, но, может, чуточку консервативен.

«Я пересек эту страну вдоль и поперек и разговаривал с лучшими умами, и я могу вас заверить, что обработка данных — это причуда, о которой забудут уже через год».

Редактор издательства Prentice Hall, 1957 год.

Этот редактор отклонил рукопись, посвященную обработке данных, и сделал на ней вышеприведенную пометку. Газета The New York Times написала по этому поводу: «Причуды имеют свойство задерживаться на земле дольше тех, кто предсказал им исчезновение».

«Вряд ли кому-то придет в голову установить компьютер дома».

Кен Олсен, 1977 год.

Умерший в прошлом месяце Кен Олсен (Ken Olsen) был президентом, председателем совета директоров и основателем компании Digital Equipment Corporation. Кроме систем «мейнфрейм», компания производила мини-компьютеры для научных и технических предприятий. И хотя у самого Олсена был персональный компьютер, он не мог представить, что однажды компьютеры будут использоваться в доме для управления окнами, дверьми и различной электроникой.

«32-битную операционную систему мы не выпустим никогда».

Билл Гейтс, 1989 год.

Никто не знает, что побудило Билла Гейтса (Bill Gates) сделать такое заявление — особенно если учесть, что в переход с 8- на 16-битную системы уже был совершен, и дальнейшее развитие казалось логичным шагом. Четыре года спустя, в 1993 году, была выпущена 32-битная Windows NT 3.1, а «никогда» Билла Гейтса как пришло, так и ушло.

«Я считаю, что OS/2 суждено стать важнейшей операционной системой и, возможно, лучшей программой всех времен».

Билл Гейтс, 1987 год.

Эта цитата взята из написанного Биллом Гейтсом руководства для программиста на OS/2. Изначально работа над этой операционной системой велась совместными усилиями IBM и Microsoft. Позже IBM продолжит разработку системы независимо и будет осуществлять поддержку пользователей до конца 2006 года.

И хотя поговаривают, что на OS/2 программы для Windows работали лучше, чем на самой Windows, назвать эту ОС важнейшей программой всех времен, безусловно, было большим преувеличением.

«Через два года о спаме никто и не вспомнит».

Билл Гейтс, 2004 год.

Билл Гейтс сделал это заявление на Всемирном экономическом форуме в Давосе. Технология, в связи с которой он сделал это заявление, представляла собой электронный аналог почтовой марки, плата за которую взимается, если получатель отклоняет письмо. Тогда же Гейтс объявил, что поисковые технологии Microsoft в скором времени оставят разработки Google позади. Семь лет действительно пролетели быстро, а мы все ждем, когда хотя бы что-нибудь из этого свершится.

«На следующее Рождество с iPod уже будет покончено...»

Сэр Алан Шугар, 2005

Сэр Алан Шугар (Alan Sugar) — основатель компании Amstrad, которая занималась производством электроники. С тех пор он стал известной личностью в Великобритании и членом Палаты лордов. Но Шугар, вне всякого сомнения, не тот человек, которому можно доверить роль консультанта по вопросам развития электроники.

Кроме того, существуют еще две известные цитаты, но они не попали в наш список, потому что относятся скорее к городским легендам. Так, Томасу Уотсону (Thomas J. Watson), экс-президенту IBM, приписывают следующие слова: «Думаю, на мировом рынке существует спрос, может быть, на пять компьютеров». Но документальных подтверждений этому заявлению нет. Билла Гейтса часто высмеивают за якобы произнесенную им фразу «640 КБ памяти с избытком хватит любому компьютеру» . Сам он отрицает, что когда-либо говорил нечто подобное, и за отсутствием доказательств нам остается только верить ему.

И напоследок — недавнее предсказание, которое, надеемся, не сбудется.

«Похоже, что мир будет разрушен, и многие эксперты сходятся в том, что виной этому будет случайность. Тут приходит наша очередь; мы — компьютерщики-профессионалы. Мы — причина случайностей».

Натаниэль Боренштейн (Nathaniel Borenstein), один из разработчиков стандарта MIME.

Подписывайтесь на каналы "SecurityLab" в и , чтобы первыми узнавать о новостях и эксклюзивных материалах по информационной безопасности.

Похожие публикации