to post messages and comments.

← All posts tagged DOS

Разобрался с JS-DOS
Я думал, он подвисает, а, оказывается, там что–то типа лимита на запущенные программы. Первой программой должен быть mount, второй программой — собственно программа, и если я во встроенном Z:\COMMAND.COM намылился выполнить многострочник, то ничего у меня не получится, после второй программы зависнет, а вот в NDOS.COM можно запихать команд сколько влезет.
Теперь осталось скрестить это с PasteBin (именно поэтому оно сначала компилируется, а потом запускается) и разместить по ключевым словам «Паскаль Онлайн». Страница по таким ключевым словам у меня давно была, на неё неплохо ломятся, только ни во что особенное она не вела.

Вся суть старых игр, не то, что современные «Press X to Win»
А здесь это можно скачать(Apogee%20Software%20Ltd).zip)

Аркадные игры–платформеры разные бывают, но мне не нравится, когда их делают «скользящими», «инерционными» или когда тайлы плохо различимы, как в Prehistorik 2 или Earth Worm Jim 2. Вот тут как раз та механика и графика, которые мне нравятся. Их хочется есть чайной ложкой. В детстве я мечтал сделать игру с похожей графикой (в смысле тайлов и спрайтов), и, пребывая с этим желанием, сначала научился отрисовывать тайлы PutPixel'ом. Это было страшно медленно, но для танков, допустим, хватало. А, чтобы отслеживать несколько одновременно нажатых клавиш, приходилось перехватывать прерывание, делать операции с портами ввода–вывода. Это, я, насколько помню, взял из исходных кодов Зельды (если я правильно помню название), которые у меня каким–то образом оказались. Но там обработчик не различал клавиши на NumPad и обычные стрелки, а я хотел, чтоб можно было в танках трёх игроков хотя бы посадить, на WASD, стрелках и NumPad. Четвёртый по плану должен был управляться только мышкой. Сейчас я не помню всю хронологию, но было несколько эпизодов, когда по глупости или в других обстоятельствах я терял содержимое жёсткого диска. А дискеты быстро портились. Так или иначе, эти танки я потом обнаружил на CD только в скомпилированном виде. А потом я всё же пытался сделать быструю тайловую игру. На EGA в графическом режиме пиксели идут в нескольких плоскостях, на один байт адресного пространства видеопамяти приходится четыре байта видеопамяти, которые при чтении–записи ведут себя синхронно в зависимости от настроек. Чтобы добиться гладкости перемещения, я нашёл несколько хаков. Во–первых, чтобы гладко двигать экран по вертикали, можно в регистры писать разные значения начала кадра. Регистр начала кадра обычно используется для переключения видеостраниц, но и для гладкой прокрутки он тоже подойдёт, при этом видеостраницы начинают плавать по видеопамяти, но вроде бы особых проблем не возникает. Далее, этот же регистр можно использовать для негладкой прокрутки по горизонтали на 8 пикселов, а для гладкости был ещё какой–то регистр, который указывал, с какого бита начинать отрисовку изображения. Он позволял гладко двигать изображение по горизонтали, но только в пределах 8и пикселей. И всё вместе теоретически давало бы возможность сделать быстрый движок. Практически, даже, если это сделать, в году так 2003–2004м в этом уже мало смысла было, это ж только у меня EGA, DOS и Turbo Pascal, а во внешнем мире уже успел устареть на 8 лет VGA'шный Duke Nukem 3D, но, сидя без Интернета, на CD-ROM'ах с Нортоновскими руководствами по прерываниям DOS и рефератами по EGA, я ещё о многом даже не подозреваю. Тем не менее, пока ускорял движок, научился вводить 32x–битные ассемблерные инструкции во встроенном ассемблере Turbo Pascal, потом решил компилировать часть движка в Turbo Assembler, который понимал 32–битные инструкции сам, без db 66h и потом встраивать в Pascal. Пока всем этим занимался, низкоуровневое программирование стало моей стихией.

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

А начиналось всё с игр и желания сделать свои такие же.

В том самом патче 3.5.9 ( #2766863 #2781844 ) для VisualAge C++, я так понимаю, содержится полная версия SOM 2.1. В его файлах, а именно в include\SOMTDBCS.C, нашёл такое:
#ifdef _WDOS
#include <dos.h>
#define DOS_GET_DBCP 0x6601
#define DOS_GET_DBCSEV 0x6300

static int GetKBCodePage(void)
{
union REGS regs;
regs.x.ax = DOS_GET_DBCP;
intdos(&regs, &regs);

return (regs.x.bx);
}
#endif / _WDOS /
Таким образом, нашлась уже восьмая OS, на которую был портирован оригинальный SOM.

habrahabr.ru MS-DOS, который мы никогда не видели

Утилита для управления памятью MEMSET, настоящие фоновые процессы, а не обрезанные TSR, работающие на перехвате векторов прерываний. Виртуальная память и возможность выгрузки сегментов на диск. Я тут же попробовал запустить что-то командой detach и получил ответ в виде PID запущенного процесса.
Отдельно стоит отметить, что это только октябрь 1985, а первая версия Windows была выпущена только в ноябре.

Помнится, как–то раз я заметил, что в DOS Navigator, который я к себе принёс на дискете, остались данные дерева дисков, и спустя полмесяца я удивлял по телефону Chek (aka Choog) детальным знанием содержимого его файловой системы.

Под виндой тогда с моим AMD K5 и EGA было неинтересно, кнопки play у меня на CD приводе не было, так что я свои диски играл именно через DN.

DOS

Почему–то брат и другие родственники воспринимают DOS и вообще старые игры как детские.

Blood 2 — очень даже детская игрушка. Не могу нарадоваться новой находе, оружию Orb. Швыряешь металический шарик в кого–нибудь, он на череп крепится и сверлит, сверлит, сверлит, а потом взрывается. Что немаловажно, запасы оперативно регенерируют. Утром, удачно пристроившись, засверлил главаря до смерти.

Не фурычит BP.EXE на JPC, стопорится эмулятор на Unknown uCode 538. Судя по тому, что BPC.EXE тоже не фурычит, это может быть из–за патчей DPMI16BI.OVL или RTM.EXE. Попробую с оригинальной версией запустить.

DOS

JPC можно запускать с образа ЖД, не размонтируя его при этом в DOSBox. Удобно. Разумеется, запись я только в DOSBox произвожу, а в JPC только смотрю, что получилось.

DOS

Самая противная часть работы со всеми этими эмуляторами — изначальная подготовка. Как корабль в бутылке, нужно образ ЖД делать. Загружаться с загрузочной дискеты, форматировать, осистемивать, копировать с CD. Да ещё же норовят FreeDOS подсунуть, и он же глючит, зараза, надо хоть PC-DOS, хоть Windows 98, только не FreeDOS.

Хорошим подспорьем является DOSBox — умеет монтировать как обычную внешнюю файловую систему, так и образ диска — этакий посредник получается. Загонять инфу на образ ЖД получается быстрее, чем если как обычно всё писать в образ ISO и вставлять ISO в виртуальный CD

DOS

Cool! Накачал кучу разных игр для DOS. Особенно радуют шареварные версии игр на апогеевском движке. Duke Nukem I и II, Commander Keen — это, например, легко достать. А вот Crystal Caves в трёх частях — попробуй найди. Secret Agent — тоже редкий продукт, но у меня уже был во всех трёх частях, и я прошёл его давно уже.

А что, не написали ещё эмулятора DOS на Flash? На Java есть, но, как недавно раскрыл мне глаза @yelbota , Java applet стоит не у всех, надо на Flash теперь чтобы было.

? DOS

Жуйк, если твой комп, на котором игровой сервер, DDoS'ят, какие меры можно предпринять по отношению к тем IP, которые DoS'ят? Неплохо бы TCP SYN флудилку с возможностью динамически добавлять IP:порты, а лучше ещё автоматически вычислять открытые порты на каждом IP. Владельцы IP — наверняка растяпы с затрояненными компами, это заставит их зачесаться, комп вылечить.

Жуйк, как ты относишься к такому выбиванию клина клином?