to post messages and comments.

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

Хочу собрать древний комп для старых досовых игрушек. В частности, чтобы воткнуть звуковуху awe64 для настоящего midi-звука. Какого уровня железо лучше брать? 486? Первый пень? Второй пень? :-)

Вся суть старых игр, не то, что современные «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 была выпущена только в ноябре.

Чудеса обратной совместимости.

Почему система команд 8086 такая кривая, зачем регистры делятся на две половинки (al, ah, Ы, bh, cl, ch), зачем геморрой с сегментными регистрами и т.д.? Потому что когда Intel разрабатывала 8086, 8-битный процессор 8080 с 64K памяти был популярен и под него было написано много софта (например, Staredit, dBASE). Базовый регистр для адресации памяти у него делился на две половинки. Поэтому система команд 8086 была написана таким образом, чтобы программы под него можно было получить простой перекомпиляцией программ под 8080 — любой команде этого процессора можно сопоставить одну или иногда последовательность из нескольких команд процессора 8086. Это присказка, сказка ниже.

DOS разрабатывался таким образом, чтобы иметь совместимость с программами для CP/M, например, похож формат каталоговой записи, PSP комовских файлов, файлы con, prn, nul, com1, к которым можно приписать любое расширение. Т.е. когда был написан DOS, программное обеспечение под него УЖЕ БЫЛО!

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

WinAPI Windows NT в целом повторял WinAPI Windows 3.1, разница была только в разрядности некоторых типов (HANDLE, HWND и др.), но программы, работающие и там, и там, писать было можно. Кроме того, в Windows NT есть подсистема, позволяющая запускать досовские и Win16-приложения. Игры, конечно, не запустишь, но всякое корпоративное ПО шло нормально.

Windows 95 разрабатывалась для обеспечения полной совместимости с DOS, Win16, также поддерживался запуск большинства Win32-приложений из Windows NT. Поэтому вышла такая кривая. Тоже, пользователи, ничего не теряя (запуск досовых и 16-разрядных программ), получали профит, запуская и разрабатывая Win32-приложения (с моделью памяти flat и другими плюшками). Один из примеров совместимости: можно было создать такой ярлык досовской программы (.pif-файл), который при запуске перезагружал бы компьютер, запуская DOS с файлами config.sys и autoexec.bat, указанными в свойствах ярлыка! При последующей перезагрузке снова загружалась Windows.

Даже сейчас в 32-разрядных версиях семёрки и восьмёрки можно ограниченно запускать досовские и Win16-программы.

Версия vc.com не совместима с версией Windows, работающей на этом комьютере. Проверьте сведения о системе, чтобы узнать какая версия программы x86 (32-разрядная) или x64 (64-разрядная) вам нужна, и получите её у поставщика программного обеспечения.Только месяц назад заметил, что совсем не пользуюсь DOS-приложениями. Даже грустно стало. Вот сейчас специально из недр вытащил Volcoff Commander

Хорошо быть предусмотрительным :) Чувак запустил Prehistorik 2 в досбоксе и был поражен надписью, которая там появилась перед игрой. Программа сообщала что и в 2009-м году она все еще работает, также она вывела год своего появления и характеристики процессора, на котором была создана (286). Кто-то позаботился о будущем :) youtube.com Enjoy oldies!

Ооо, в фидошных завалах обнаружил первую в моей жизни мультизадачную оболочку DESQview, полный набор файлов для инсталляции. О ней из описания: " DESQview 2.7 Congratulations on installing the latest version of DESQview,
the powerful multitasking multi-windowing software from Quarterdeck Office Systems!"

Проблеме подвержены все языки программирования и фреймворки, в которых не используется дополнительная рандомизация значений в функциях хэширования, например, уязвимы Java (Tomcat, Geronimо, Jetty, Glassfish), JRuby, PHP, Python, Rubinius, Ruby 1.8.7, V8 JavaScript Engine и ASP.NET. Проблема не затрагивает язык Perl и ветку Ruby 1.9.x, так как в этих языках уже используется внесение случайных изменений при формировании хэшей. В Perl проблема была устранена ещё в 2003 году, после публикации отчёта о возможности совершения подобной атаки.

via opennet.ru

ПОчему появилась ДОС, и почему все стали писать именно под неё? Да потому что всех просто заебало, насколько криво всё сделано в Юниксе. В ДОСе просто взяли и сделали всё так, как должно быть. И программы начали писать — такие, какими должны быть программы. А потом вылез Майкрософт со своим маздаём, где всё сделано ещё хуже, и никто не стал оплачивать проги под ДОС. В юникс-подобных же осях взяли и наидебильнейшие идеи довели до реализации на современном оборудовании.