1 713
29 075
0
1 075

Заходил

Написал комментарий к произведению Ретро бит [5]

Очередная статья про Elite на Хабре, из интересного:

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

Написал комментарий к произведению Ретро бит [5]

Ну вот смотри, меняем count%4, на count and 0x3 и всё равно будем циклически получать 0..3, при любом count даже при отрицательном. Кроме того что мешает всё таки объявить его беззнаковым, если по условиям задачи он не может быть меньше нуля.

Написал комментарий к произведению Ретро бит [5]

Так нам не нужен общий случай, конкретно тут количество байт для копирования, не может быть отрицательным.

upd. Хотя так же будет работать только остаток получается инвертированным, но для кода выше это не важно.

Написал комментарий к произведению Ретро бит [5]

Мне кажется можно n AND 0x3 применить, это должно дать результат остатка от деления на 4. Не знаю делает ли эту оптимизацию компилятор тех лет.

Написал комментарий к произведению Ретро бит [5]

В номере 52 журнала Downgrade (стр 28) есть ссылка на doom для 8088

Doom8088 is a port for PCs with a 16-bit processor like an 8088 or a 286, and with MDA, CGA, EGA, VGA or MCGA graphics.It uses 64 kB of EMS memory, if available, as an upper memory block to store data.And 1507 kB of XMS memory, if available, as a RAM drive.

Написал комментарий к произведению Ретро бит [5]

Сам практически не писал под дос, да и забыл уже всё. Отрывок ниже из MS-DOS. Руководство разработчика. Глава 4

                   Повторная активизация TSR


             Когда TSR  получает  запрос  повторной активации,  она должна

         убедиться в  безопасности  дальнейшего выполнения. Эту задачу уп-

         рощают действия, выполняемые программой инициализации. TSR должна

         проверить флажки критической ошибки и критической секции,  и убе-

         диться  в  том,  что не выполняются непрерываемые операции.  Если

         дальнейшее продолжение выполнения безопасно, TSR должна сохранить

         текущие  значения  регистров,  переключиться  на свой собственный

         стек, установить свои собственные подпрограммы критической ошибки

         и break,  записать информацию, сохраненную в различных глобальных

         переменных DOS и,  наконец,  установить свою  собственную  среду,

         включающую адреса текущих PSP и DTA. Заметим, что очень важен по-

         рядок выполнения этих операций!

             Кроме этих,  могут потребоваться и другие операции. Так, если

         необходимо использовать изображения, TSR должна сохранять в памя-

         ти  содержимое экрана.  Программа PRINT.COM проверяет сводный ре-

         гистр прерывания в контроллере 8259. Если активны какие-либо пре-

         рывания, отличные от прерываний ISR,  которые пробуждают ее,  она

         игнорирует запрос повторной активации. Вероятно, PRINT.COM делает

         эту  проверку,  чтобы  избежать потери символов последовательного

         порта и других устройств отображения.

             После завершения  своей  работы,  TSR должна произвести откат

         выполненных шагов и быстро перейти в фоновый раздел, ожидая снова

         получения  запроса  повторной активации.  TSR должна восстановить

         значения регистров PSP,  DTA, стека и других регистров прерванной

         программы. После того, как TSR завершит эти шаги, она может безо-

         пасно восстановить драйверы обработки критической ошибки  и break

         и осуществить возврат в прерванную программу.


                   Определение безопасности повторной активации


             Невозможно предсказать,  когда произойдет запрос на повторную

         активацию TSR. Секции DOS не являются повторно входимыми, поэтому

         и  TSR не всегда может повторно активироваться при выдаче запроса

         повторной активации.  Детально эта проблема обсуждается в разделе

         "Архитектура DOS". Необходимо с уважением относиться к этим огра-

         ничениям, иначе Ваша программа,  несомненно,  разрушит систему и,

         даже, возможно, разрушит диск.

             Минимальный объем проверок,  который  должна  выполнять  Ваша

         TSR,  приведен  в листинге 4-27.  Эта программа предназначена для

         выполнения с запрещением прерываний.  Когда процессор отвечает на

         прерывание,  он запрещает прерывания.  До тех пор, пока программа

         обслуживания прерывания  не  разрешит  прерывания  перед  вызовом

         DOSSafeCheck, Вы не должны неявным образом манипулировать флажком

         прерывания.

             Эта программа начинается с увеличения значения того же самого

         флажка BusyFlag (флажок "занято"),  используемого новой  подпрог-

         раммой  дискового  в/в  (листинг 4-23 "Типовое замещение программ

         ISR дискового в/в"). Этот флажок имеет начальное значение -1. Ес-

         ли инструкция INC в DOSSafeCheck имеет нулевой результат, то про-

         должение выполнения безопасно.  Ненулевой результат означает, что

         выполняется  одна  или более дисковых операций (в конечном счете,

         прерывание int 13h выполняется как результат прерываний int 25h и

         int 26h), или незавершен предыдущий вызов TSR. Так как переключе-

         ние стека выполняется программой повторной активации,  то TSR  не

         является повторно входимой. (Позднее последовательность повторной

         активации будет описана более подробно).

             Затем эта программа проверяет  флажки  критической  секции  и

         критического  прерывания.  Заметим,  что необходимо проверять оба

         флажка. Перед началом обработки критической ошибки драйвер крити-

         ческой  ошибки DOS уменьшает значение флажка критической секции и

         увеличивает значение флажка критической ошибки. Побочным эффектом

         вызова этой подпрограммы является то, что она предохраняет TSR от

         повторного входа.  Перед тем, как TSR переключится в фоновый раз-

         дел,  она должна уменьшить значение флажка "занято" (BusyFlag).


                     Переключение стека и сохранение регистров


             Стек является важной составной частью  среды  программы.  Так

         как  повторная  активация происходит в результате прерывания,  то

         способ определения используемого стека или доступного  пространс-

         тва стека отсутствует. Стеки, используемые диспетчером прерывания

         int 21h,  достаточно большие,  чтобы разместить значения всех ре-

         гистров процессора. Любая прерванная программа также должна иметь

         возможность использовать оставшуюся память стека,  иначе  она  не

         сможет  выполнять запросы BIOS.  Диспетчер BIOS сохраняет все ре-

         гистры в текущем стеке.

             Перед повторной активацией TSR,  программа ISR должна  сохра-

         нить  все  регистры  и переключиться на личный стек TSR.  Разумно

         сохранять регистры в том стеке,  который использовался  в  момент

         возникновения прерывания. Оба значения стека и регистров являются

         частью одного и того же контекста программы,  и стек должен иметь

         необходимое пространство для этих значений.

Написал комментарий к произведению Вечно голодный студент 8

Не совсем, насколько я понял сейчас опыт даётся за увеличение шансов сообщества/КДшника выжить. Просто рождение ребёнка этот шанс не увеличивает, а вот когда, например, этот ребёнок достигнет уровня пятидесятого, это меняет дело. Или когда он своё потомство заведёт.

Написал комментарий к произведению Ретро бит [5]

> Прикладная программа вызывает функцию DOS/BIOS, в момент ее исполнения TSR активизируется

Для этого запрет прерываний есть, а в остальном согласен.

Написал комментарий к произведению Ретро бит [5]

Наверное можно было создать «юникс для бедных» — однопользовательский, однозадачный (?), но совместимый на уровне системных вызовов с большими машинами. Не ясна правда его нужность при таких вводных. Всё-таки изначально юникс не предназначен для работы в реальном режиме, все большие ЭВМ имели какой-либо вариант защищённого режима.

Написал комментарий к произведению Ретро бит [5]

Так никто и не заставляет её писать вот прямо сейчас. Подучится, заматереет в обоих направлениях и лет через 4-5 что-нибудь выдаст при правильной мотивации.

Написал комментарий к произведению Все псы попадают в рай

> а крики «отжались все, даже привидения!» уже стали притчей во языцех.

А через час начался самый необычный во всемирной истории экспресс-курс неволшебных наук.

– Ну что, сынки, – говорил Мистер Клинч, прохаживаясь перед строем учеников небрежным строевым шагом. – Родина и лично ректор потребовали от нас напряжения всех наших сил в овладевании всякими мудловскими науками. На все про все у нас три недели. Сдюжим?

Первокурсники угрюмо молчали.

– Не понял. Вы чего-то не поняли? Два круга по стадиону!

Мергиона и Порри старались держаться поближе к Сену, но все равно прозевали момент финишного спурта, который тот устроил прямо на старте. Бежал Аесли быстро, но недолго. Последние полтора круга его пришлось нести. «Первертс своих не бросает, да и мимо чужого не проходит», – на бегу придумал принцип майор Клинч.

После марш-броска студенты стали понятливее и на клинчевское «Сдюжим, сынки?» ответили нестройным «Постараемся, а то что ж…»

– Орлы! – обрадовался преподаватель. – Соколы вы мои пернатые! Только соколы летать должны, а вы еле ползаете. Что я увидел? Увидел я четыре группы научной подготовленности. Первая группа – Пейджер и Дуб. Этих хоть сейчас под ружье… то есть на экзамен. Вторая – Гаттер, Форест и Пулен. Третья – все остальные. Четвертая – Аесли. Так вот, группа должна быть одна, первая! Всем ясно? Первый урок – физика.

– А почему на стадионе? – поинтересовалась Амели.

– Вопрос хороший, – сказал Клинч, – но и ответ будет не хуже. Я эту физику всю прочитал, сколько смог. И что там самое главное? Форест, положи Аесли в тенек, авось отойдет. А главное – это, братцы, сила. Так и написано: ежели силу не приложишь, то ничего и не сдвинется.

– Второй закон Ньютона, – подал голос образованный Порри.

– Закон у нас один, – сказал майор, разглядывая Гаттера. – Сила есть, ума достанем. Упор лежа при-и-и-нять! Двадцать отжиманий. Пейджер! Придержи Аесли, загубит себя, болезный.

Но Сен уже успел сделать три с половиной энергичных отжимания с прихлопываниями, прижался к земле и простонал:

– Мерги! Добей меня! Что ж так мучаться!

– Сам справишься, – ответила добрая Мергиона, добросовестно изучая физику в упоре лежа.

На следующее утро стонущих первокурсников снова собрали на стадионе.

– Что, сынки, – первым делом спросил Клинч, – болят руки-ноги?

– А-а-а-у-у-у-а-а! – простонали сынки.

– А все потому, что химии не знаете! Руки-ноги у вас болят оттого, что в них образовалась зловредная молочная кислота. Как ее формула, не знаю, врать не буду, а буду обучать вас способам лечения этой химической заразы. Два круга… Аесли, куда? Два круга за Сеном Аесли!

На сей раз Сен убежал немного дальше, правда, в противоположную сторону.

– Да что ж такое! – чуть не плакал он, сидя на закорках у Дубль Дуба. – Я же не хотел! Они сами побежали!

К концу недели студенты уже знали основы:

– биологии («Движение – это жизнь, так что, сынки, держитесь, сейчас я вам дам жизни!»);

– географии («Вот попадете вы на Северный полюс, как греться будете? Правильно! Три круга по стадиону!»);

– истории («Чему нас учит история? История нас учит, что хилые завсегда вляпываются в какие-нибудь истории. Так что четыре круга по стадиону»);

– и анатомии («Посмотрев на строение тела человека, делаем вывод "В здоровом теле – здоровые внутренности!" Вывод ясен? Побежали»).

Изучение новых предметов чередовалось с повторением пройденного – вернее, пробеганного.

Сен заметил две странности. Во-первых, после очередного физического упражнения ему всегда становилось легче. Видимо, хочуга тоже не железная. Во-вторых, прыжки, пробежки и прочие телодвижения постепенно начинали как-то удаваться. На «анатомии» он даже сам добрался до финиша, и Клинч торжественно перевел его в третью группу.

– Наверное, – предположил Порри, – ты эту хочугу в энергию перерабатываешь. Глядишь, всю и переработаешь.

В следующий понедельник никто уже не стонал, а на вопрос Клинча «Как самочувствие себя?» – строй бодро отрапортовал:

– Все болит, может, сегодня отдохнем?

– Как скажете, – согласился майор. – А лучший отдых – это смена занятия. К турникам бегом марш!

У турников Клинч сообщил, что сегодня астрономия, и продемонстрировал «солнышко» с эффектным соскоком.

– Солнце вы уже посмотрели, сейчас полюбуетесь на другие астрономические объекты. Ну-ка, все повисли на турниках, подтягиваемся, кто сколько может.

Сен подтянулся один раз. Что оказалось даже больше, чем он мог. И к концу этого раза звездочки действительно залетали у него перед глазами.

«Все, нужно спрыгивать», – решил мальчик… и резким рывком подтянулся еще раз.

В начале третьей недели Аесли перешел во вторую группу. Точнее, перебежал: неистребимая хочуга, пользуясь окрепшим организмом Сена, вынуждала его уже не просто выполнять задания Клинча, а перевыполнять их. Дошло до того, что когда майор начал объяснять базовые понятия геометрии, Аесли пришлось привязать к гимнастическому козлу.

– Угол должен быть прямым. Вот смотрите: я выжимаюсь на брусьях, поднимаю ноги, и они образуют с туловищем прямой угол.

И тут Сен, в котором снова зашевелилась решительность, закряхтел, напрягся – и рывком поднял козла в воздух.

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

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

– Может, и правда, – почесал затылок Лужж, – хочуга превращается в физическую силу. А где ты так накачался?

– На географии с астрономией, – ответил Аесли.


Написал комментарий к произведению Ретро бит [5]

Знали бы вы как я удивился, когда увидел что страница моего nextcloud грузит 50 Мб скриптов до первого показа страницы. Пришлось его заменить на другое решение.

Написал комментарий к произведению Ретро бит [5]

> Называли “Симулятор жизни”, “Симулятор студента”, “Симулятор бомжа” и так далее.

Я что-то такое делал, совсем простенькое на delphi 🙂, лет двадцать назад.

Написал комментарий к произведению Ретро бит [5]

Знание законов/заполняемых форм вам тоже визикальк сделает? Вообще через пару лет нужно под руководством Бренды выделять подразделение занимающееся платформой 1S ;). Желательно опенсорсной, с платной поддержкой, по подобию красношапки.

Написал комментарий к произведению Ретро бит [5]

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

Ну и 10% для игр это просто дофига.

Написал комментарий к произведению Ретро бит [5]

Длинные имена и комменты без проблем, с функциями да есть загвоздка. Учитывая затраты на вызов функций, их нужно избегать в критических по времени исполнения участках. Либо как предложили ниже писать компилятор или препроцессор который будет инлайнить функции.

Написал комментарий к произведению Владимир, Сын Волка 7

Самая последня стадия развития с/х это огромные предприятия биопрома где с/х культуры выращиваются как клеточные культуры, после чего из биомасы формируется мука для зерновых и что-то вроде плодов для остальных. То же самое с мясом.

Наверх Вниз