«Старий Асемблер нас помітив,
І в труну сходячи, благословив»

image
Одного разу я вирішив написати програму, сочиняющую вірші. Алгоритм придумався швидко – в кінці сочиняемых строф ставити рифмующиеся слова, а іншу частину строфи заповнювати словами з урахуванням рими, ритму, і ймовірності їх знаходження поруч з іншими словами, взятими з готових зв'язних текстів. Такі марковські ланцюги з прикрученими до них римами.
Читати далі →

Дослідження захисту ArtMoney. Частина перша

Вітаю! Сам ArtMoney був закейгенен мною давним-давно. Я не перший раз вже пробую почати писати статтю про те, як відбувався кейгенинг цієї програми, але завжди десь стопорился. На цей раз, я вирішив доробити все до кінця! Плюс, цю статтю можна вважати продовженням циклу статей про крякинге для новачків.

Отже, в цій статті ви дізнаєтеся, як я писав кейген до ArtMoney (тут буде описана версія 7.45.1).

Читати далі →

Персона. Командир Нортон

image

Пітер Нортон відомий більшості користувачів персональних комп'ютерів. Правда, не всі про це замислюються, не всі уявляють, наскільки великі його заслуги. За плечима Пітера роки роботи над такими продуктами, як Norton Commander, Norton Utilities, Norton Disk Doctor. Він також є автором таких популярних книг, як «Всередині IBM PC», «Всередині OS/2» і «Довідник програміста».

Нортон створив новий напрямок розробки ПО. Він був новатором і з точки зору ринку, і в технічному плані. Однак Пітер Нортон працював не заради грошей і слави. Принаймні, сам він у це вірить.
Читати далі →

Підсумки: що сильніше – асемблер або Хабраэффект?

Відшуміли пристрасті після моєї першої статті на Хабре.
Тема була про веб сайті на асемблері, так що немає нічого дивного в кількості коментарів до статті, а також у Хабраэффекте на сайті. Протягом перших декількох діб тисячі людей відвідали демо сайт AsmBB.
Сайт вже був один раз під таким напливом відвідувачів — коли в серпні хто опублікував посилання на сайт одночасно в Твіттер, ФБ і Реддит.
Але, судячи з лічильником відвідувань, Хабрахабр виявився вдвічі крутіше буржуйських сайтів і в цей раз демо сайт був навантажений значно більше ніж минулого разу.
Як і очікувалося, чудо сталося. Незважаючи на те, що хостинг гранично слабенький (я його взяв такий спеціально), незважаючи на те, що сайт використовує БД SQLite, яку всі вважають дуже повільною, форум не впав. Він навіть не сповільнилося. Весь час сайт працював справно і обслуговував всіх відвідувачів.
Подивимося як виглядає Хабраэффект зсередини:
Читати далі →

Писати веб-сайти на асемблері корисно і приємно

Звичайно, багато хто скаже, що це ні-ні та писати для інтернету потрібно тільки на PHP, ну або на один із модерних мови Пітон, Рубай, Node.js і т. д.
Але справа в тому, що написання сайтів на асемблері дуже корисно, а з відповідними інструментами — легко і приємно.
Взагалі-то, це твердження було лише гіпотезою. Щоб довести чи відкинути її, цієї весни я взявся писати форум на асемблері.
Раніше у мене вже було веб-додаток на асемблері — CMS для малого сайту. Тільки воно працює в режимі "один пише, багато читають". При тому, використовує інтерфейс CGI і тому "багато" читати одночасно теж не виходить.
Читати далі →

Історія одного бага: вирівнювання даних на x86

Одного разу мені довелося вираховувати суму векторів цілих чисел.

Звучить незвично. Кому знадобиться робити це в реальному житті? Зазвичай такі обчислення зустрічаються тільки в задачках з початкової школи або бенчмарках компілятора. Але зараз це сталося насправді.

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

  • її можна ефективно виконати з допомогою процесорної інструкції
    ADC
    (на жаль, ця функція недоступна в C);
  • її можна виконати на словах будь-якого розміру (можете додати за бажанням восьмибайтные значення, тільки результат слід зменшити до двох байт і додати всі біти переповнення);
  • вона нечутлива до порядку проходження байтів (дивно, але це так).

Читати далі →

Розробка гри Frogger для комп'ютера Vectrex

Якийсь час назад я перекладав оповідання Chris Salomon про його розробці гри Frogger для комп'ютера Vectrex. Розповідь, написаний ним у 1998 році, є, на мій погляд, дуже цікавим документом, що дозволяє перейнятися як духом цієї незвичайної платформи, так і специфікою розробки на асемблері взагалі.

Chris не закинув Vectrex і, порівняно недавно, довів до релізу власний емулятор Vectrex для Windows (кращий на даний момент) під назвою «Vide». Мені, до речі, приємно, що мої исходники Electric Force допомогли йому реалізувати пристойну підтримку відображення векторних кривих у цьому емуляторі.

І ось, отримавши в руки такий потужний інструмент, Chris не зміг відмовити собі в задоволенні повернутися до свого старого Frogger', щоб доробити і поліпшити його. Про це він розповів у своєму блог.

Таким чином, тут я публікую дві частини мого перекладу — першу, про оригінальній розробці 1998 року (з файлу progger.txt, бродившего разом з вихідними кодами гри) і другу — про її продовження (з блогу автора).

Читати далі →

Власна платформа. Частина 0.2 Теорія. Інтерпретатор CHIP8

Введення
Здрастуй, світ! Сьогодні у нас переклад специфікації мови CHIP8. Це стаття містить тільки теоретичну частину.
*COSMAC ELF у всій красі*COSMAC ELF
Що таке CHIP8?
CHIP8 це інтерпретується в microsoft мова програмування, який був розроблений Джозефом Вейзбекером (прим. переклад Joseph Weisbecker) в сімдесятих для використання в RCA COSMAC VIP. В подальшому був використаний COSMAC ELF, Telmac 1800, ETI 660, DREAM 6800. Тридцять одна (35?) інструкція давали можливості для виведення простого звуку, монохромного графіки в дозволі на 64 32 пікселя, а також дозволяло використовувати 16 кнопок. Сьогодні CHIP-8 часто використовується для навчання базовим навиком емуляції (не інтерпретації). Інтерпретатори CHIP-8 часто помилково називають емуляторами. Це пов'язано з фактом великої схожості CHIP-8 з комп'ютером.

Читати далі →