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

< На главную

Список подразделов

Бейсик и его диалекты
Ассемблер для начинающих
Оптимизация кода
Цифровой звук
Музыка, AY
Графика
 ::чанки
 ::спрайты
 ::отображение текста
 ::элементы интерфейса
 ::конвертирование
 ::отдельные эффекты
 ::бордюр, мультиколоры
 ::видео
Игростроение
Демостроение
Эмуляторы
Работа с текстом
TR-DOS, ВГ93
iS-DOS
Другие дисковые системы
Защита и взлом ПО
Сжатие данных
Форматы файлов
Вычисления
Описания библиотек
Драйвера, модули
Работа с устройствами
 ::особенности моделей компьютеров
Работа с памятью
Пользовательский интерфейс
Разное

Бейсик и его диалекты

Basic для программистов (ZX Format #1-4)
Цикл статей на различные темы, связанные с использованием стандартного Sinclair Basic. Также рассмотрены различные компиляторы Basic'а.
Beta Basic (ZX Format #5-7)
Описание Beta Basic. Редактор, работа с TR-DOS, вывод на экран, процедуры и функции, условные операторы, циклы, особенности программирования.
Ассемблер для начинающих

Урок ассемблера для ламеров (1-4) (ZX-Guide #1-4)
Цикл из четырёх статей, объясняющих основы программирования на ассемблере для ZX Spectrum. Дополнительно рассмотрены самые частые ошибки и опечатки в программах начинающих кодеров, полезные советы.
Ассемблер: взгляд издалека (Optron #20-41)
Цикл из 11 статей. От выбора ассемблера и основ программирования до описания аппаратного обеспечения ZX Spectrum и работы с экраном.
Ассемблер в картинках для "чайников" и не только (ZX Format #1-2)
Основы программирования на ассемблере Z80. Регистры процессора, флаги, команды. Курс прерван по просьбам читателей.
Экскурс в анатомию ZX (ZX Format #3)
Подборка ответов на наиболее часто возникающие у "начавших" вопросы. Количество тактов в прерывании, вывод графики без пересечения лучом, приблизительная оценка скорости выполнения процедуры с помощью изменения цвета бордюра.
О кодинге для начинающих (ZX Format #7)
Кратко изложены основные сведения о процессоре Z80. Рассмотрены примеры различных процедур, основы оптимизации.
Ответы на некоторые вопросы начинающих (Adventurer #2)
Описание некоторых подпрограмм ПЗУ BASIC48, работа с каналами, использование калькулятора. Быстрое умножение и деление чисел на степени двойки, а также на другие значения (6, 40).
Ответы на некоторые вопросы начинающих (Adventurer #4)
Опрос клавиатуры подпрограммами ПЗУ, отличия ПЗУ BASIC128 от BASIC48, организация памяти ZX Spectrum 128.
Использование подпрограмм ПЗУ и несколько процедур (Adventurer #5)
Краткое описание нескольких подпрограмм ПЗУ BASIC48, процедуры перевода строки в число (десятичный и шестнадцатеричный форматы) и другие.
Знаете ли вы, что такое RST 16(#10) ? (Adventurer #5)
Использование каналов в программах.
О печати сообщений в нижних строках экрана (Deja Vu #0A)
Печать сообщений в нижних строках экрана с помощью переключения канала ввода-вывода и процедур ПЗУ.
Подробно об одном из способов опроса клавиатуры (Deja Vu #09)
Процедура опроса клавиатуры без использования подпрограмм ПЗУ. С подробными комментариями.
Сброс с переходом в TR-DOS (Deja Vu #09)
Процедура сброса с переходом в TR-DOS.
Ну почему он так режет? (Krasnodar News #10)
Вывод упакованных полноэкранных изображений на экран через промежуточный буфер. Синхронное изменение цвета экрана и бордюра.
Адаптация программ на диск для начинающих (ZX Format #3)
Основы адаптации кассетных версий программ для TR-DOS.
Как бороться с закрытыми кодами (ZX Format #3)
Дополнение к статье об основах адаптации программ для TR-DOS - обход простейших защит на основе операции XOR в загрузчиках.
Xor And Or ??? (IzhNews #4)
Логические операторы и их примeнение, сравнение и кратная математика.
Оптимизация кода

Как кодить оптимально (Born Dead #0A)
О методах оптимизации кода по размеру, на примере оптимизаций, выполнявшихся для 512b intro 'Absent' (CC'99)
Оптимизация по скорости (ZX-Guide #4)
Несколько примеров оптимизации по скорости таких эффектов, как Rotation/ZoomRotation, BumpMapping.
Основы оптимизации под Z80 (Info Guide #7)
Виды оптимизации, способы оптимизации по скорости, объёму кода, объёму сжатого кода.
Код Грея и оптимизация программ (Info Guide #10)
Описание кода Грея и его применение для оптимизации программ.
Цифровой звук

Сжатие звука методом ADPCM (Born Dead #0G)
Описание алгоритма сжатия цифрового звука с потерями, на примере сжатия 4:1 (один 8 бит в 2 бита).
Воспроизведение оцифровок на AY методом MCC (Born Dead #09, #0G)
Продолжение темы, начатой в Born Dead #05 - улучшенные варианты плееров, использующие метод Middle-Channel Correction (повышение разрядности ЦАП с помощью использования всех трёх каналов AY).
Как получить на звуковом устройстве больше бит? (Info Guide #6)
Способы повышения разрядности ЦАП с помощью широтно-импульсной модуляции. Применимо для воспроизведения оцифровок через Beeper, Covox.
Цифровые плееры (ZX-Guide #4.5)
Обзор проблем, возникающих при создании плееров цифрового звука, возможные варианты их решения.
О звуке (в особенности на бипере) (Info Guide #10)
Большая статья, посвящённая вопросам оцифровки и воспроизведения звука с помощью магнитофонного входа и бипера.
Цифровой звук (MSD #12)
Проигрывание одного и нескольких сэмплов на AY, примитивный ресемплинг (изменение высоты звука).
Музыка, AY

Автоопределение музыкальных форматов (ZX-Guide #4.5)
Программное определение формата музыкальных модулей (по плееру, по данным модуля).
Индикатор AY (ZX-Guide #4.5)
Вариант индикатора частотного анализатора AY-музыки (процедура и краткие пояснения).
Таблица делителей для нот (Flash Time #1)
Таблица делителей для получения точной частоты нот, формула расчёта.
Синхронизация с музыкой в демах (Scenergy #1)
Подробное описание способов реализации синхронизации каких-либо действий (например, эффектов в trackmo) с музыкой.
Бипер (Info Guide #10)
Обзор способов воспроизведения музыки с помощью бипера. Обзор музыкальных редакторов, ориентированных на использование бипера.
Плавное уменьшение громкости музыки (Deja Vu #04)
Описание способа плавного уменьшения громкости AY-музыки, пять примеров процедур для разных плееров.
Графика

К вопросу о выводе экрана за прерывание (ZX-Guide #1)
Способ вывода экрана за одно прерывание (LD-PUSH), реализация вертикального скроллинга.
Mapping (ZX-Guide #4)
Быстрый вывод фрагмента большого изображения в окне меньшего размера.
Опять Scroll... (3bit #1)
Процедура сдвига экрана вверх/вниз, сдвигает графику и атрибуты.
Оптимальный DOWN HL (ZX-Guide #1)
Процедура вычисления адреса следующей строки пикселей в экране (стандартный, не самый оптимальный вариант).
Процедуры расчета следующей и предыдущей линии экрана. Оптимизация. (Nicron #125)
Наиболее оптимальные варианты процедур DOWN HL/UP HL, известные на текущий момент.
Точка Старых (ZX-Guide #1)
Процедура установки (либо получения состояния) точки в произвольном месте экрана за 58 тактов.
Алгоритм рисования линии (Move #08)
Процедура рисования линии на основе алгоритма Брезенхема.
О летающем слоне (Info Guide #9)
Алгоритм отображения воксельных объектов на примере эффекта в интро к Info Guide #5.
Локальная фильтpация pастpовых изобpажений (Demo Or Die #1)
Описание алгоритмов фильтрации изображения для получения эффектов размытия, увеличения резкости, огня и других. Фрагменты кода.
Алгоpитмы обpаботки видимости повеpхностей 3D-фигуp (Demo Or Die #1)
Описание трёх способов отсечения невидимых граней при отображении 3D-моделей.
Проецирование 3D>2D (Demo Or Die #1)
Описание трёх способов проецирования трёхмерных координат на плоскость - диметрическая, изометрическая и перспективная проекции.
Заливка треугольника, Гуpо shading, наложение текстуры (Demo Or Die #1)
Алгоритм закрашивания треугольника одним цветом и с линейной интерполяцией цвета, для освещения по Гуро.
Phong shading (Demo Or Die #2)
Расчёт освещения граней 3D-модели методом fake phong. Примеры кода.
Flat shading (Demo Or Die #2)
Расчёт освещения граней 3D-модели методом Ламберта. Примеры кода.
Radial blur (Demo Or Die #2)
Описание алгоритма эффекта размытия изображения по кругу (фильтрации с увеличением).
Moving Shit (Demo Or Die #2)
Эффект искажения изображения по таблице синусов. Описание алгоритма и пример кода.
Совершенные методы кодинга и современные способы работы с графикой (Depth #1)
Описание способов вывода полноэкранного изображения и вертикального скроллинга экрана за одно прерывание и способов решения проблемы 'разрыва' изображения. Примеры кода.
Быстрые процедуры линии (Adventurer #7)
Две процедуры рисования произвольной линии, работающие быстрее, чем стандартная, встроенная в ПЗУ BASIC.
Реализация Phong Bump Mapping на Speccy (Scenergy #1)
Подробное описание алгоритма работы и реализации эффекта.
Texture mapping (Scenergy #2)
Алгоритм вывода текстурированного полигона (афинное текстурирование).
Texture mapping + Phong shading (Scenergy #2)
Алгоритм вывода текстурированного полигона (афинное текстурирование) с освещением по Фонгу.
Генерилка шариков (Deja Vu #06)
Процедура генерации кадров вращающегося шарика с "шахматной" текстурой.
Фрактальный папоротник (Deja Vu #06)
Процедура построения фрактального папортника.
Изображение трёхмерных объектов (Echo #01)
Основы трёхмерной графики - общая информация. Дополнительно - вывод точки за 70 тактов, процедура умножения.
Быстрая 3D-графика для Speccy (ZX Power #3-4)
Ускорение расчётов для трёхмерной графики на ZX Spectrum. Описание метода, примеры процедур.
BMC - Show 'em up in colour (BMC = Bitmap Multicolor) (ZX Format #6)
Описание идеи программного видеорежима 3Color (триколор). Методы конвертирования изображений.
Расширение цветовых возможностей ZX (ZX Format #7)
Ещё одно описание видеорежима 3Color. Формат Y для хранения изображений; описание вьюера от Virt Group; способ конвертирования изображений.
Быстрая и не очень быстрая графика (ASpect #4)
Организация и работа с теневым экраном. Примеры процедур.
Графика :: чанки

Fast C2P procedure (Born Dead #05)
Описание способа быстрого вывода чанков 4x6 пикселей.
Chunks Output (Demo or Die #2)
Генерация и вывод чанков 4x4 пикселя.
Dithering 2*2=16 (Psychoz #11)
Метод вывода чанков 2x2 пикселя с использованием дитеринга.
Chunks 2x2 (Adventurer #14)
Метод вывода чанков 2x2 пикселя с использованием дитеринга и линейной интерполяции при выводе.
Генерация чанков 4x4 (ZX-Guide #4)
Процедура генерации чанков 4x4 (17 градаций) с дублированием в байте, длиной 46 байт.
Графика :: спрайты

Быстрый вывод спрайтов (ZX-Guide #4.5)
Способы вывода спрайтов для игр в жанре RTS и подобных (с точностью до пиксела, без хранения сдвинутых копий). Вариант решения проблемы совмещения вывода через стек и отрисовки стрелки на прерываниях.
Вспомогательные операции при выводе спрайта в область экранной памяти (Nicron #105)
Шесть способов расчёта адреса следующей строки экрана.
Поиск адреса спрайта в архиве от Sprites Generator (Adventurer #7)
Процедура расчёта адреса спрайта в блоке данных, создаваемом программой Sprites Generator.
Вывод спрайтов 2x2 знакоместа (Deja Vu #09)
Процедура быстрого вывода спрайтов с фиксированным положением, размером 2x2 знакоместа.
Использование стека при разрешённых прерываниях (Deja Vu #05)
Совмещение вывода графики с помощью стека и разрешённых прерываний.
Использование стека при разрешённых прерываниях (Deja Vu #0A)
Cпособ совмещения разрешённых прерываний и вывода графики с помощью стека.
Вывод спрайтов (Deja Vu #05)
Процедуры вывода спрайтов, процедура поворота спрайта на произвольный угол.
Автоматическое создание маски для спрайтов (ZX Power #3)
Описание трёх способов автоматического создания маски для спрайтов. Пример процедуры для наиболее эффективного из них.
Графика :: отображение текста

Секреты текстового вывода (Black Crow #06)
О приёмах оптимизации вывода символьной информации. Уменьшение объёма памяти, требуемой для хранения шрифта, получение шрифта 6x8 из стандартного, ускорение расчёта адреса символа за счёт изменения формата хранения.
Всё о печати символов... (3bit #1)
Вывод текста символами 8x8, 4x8, 6x8, в цвете и без. Примеры процедур.
Быстрая печать буквы 6x8 (ZX-Guide #1)
Процедура вывода символа 6x8 пикселей, а также быстрое вычисление адреса символа в ПЗУ.
Быстрый и компактный драйвер печати 42 символов в строке (LPrint #12)
Процедура вывода символов 6x8, в цвете и без него, с очисткой или наложением. Дополнительно - процедура конвертации шрифтов ZX-ASM.
Быстрая печать 42, 64 символа в строке (Funeral #1)
Две продедуры вывода символов, 6x8 и 4x8 соответственно.
Печать чисел в разных системах счисления (Deja Vu #04)
Процедуры вывода десятичных, шестнадцатеричных, двоичных чисел. Печать чисел в системе счисления с ос- нованием, установленным пользователем. Печать римских чисел.
Быстрая печать 42-х символов в строке (Deja Vu #09)
Процедура вывода символов 6x8, в цвете. Также процедуры скролла экрана и вывода спрайта.
Быстрый вывод строки с 64 символами (Deja Vu #09)
Процедура вывода символов 4x8. Печатаются одновременно два символа.
Процедура печати для использования из Бейсика (Deja Vu #07)
Процедура печати сообщений, предназначенная для использования в Бейсик-программах. Принимает входные данные из REM-строк.
Чтобы строка вмещала больше (ASpect #8)
Процедура вывода символов 4x8.
Графика :: элементы интерфейса

Рисование окна с рамкой (Adventurer #8)
Короткая процедура рисования окна с рамкой от Ивана Рощина.
Рисование окна с рамкой в цвете (3bit #1)
Известная процедура рисования окна с рамкой от Ивана Рощина, модифицированная Cooper/RSM/P7S.
Графика :: конвертирование

Floyd-Steinberg (Adventurer #13)
Описание одноимённого алгоритма дитеринга (применяется для улучшения качества преобразования изображений из большего количества цветов в меньшее).
Dithering, как он есть (и как его нет) (Deja Vu #07)
Описание алгоритма упорядоченного дитеринга, генерация текстур.
Dithering #02 (Deja Vu #0A)
Продолжение предыдущей статьи. Вывод "цветных" точек и линий; градиентная заливка; 256-"цветная" графика; конверсия 256-цветных изображений в 2 и 4 цвета; примеры использования.
Принципы конвертирования графики PC->ZX (Info Guide #7, #8)
Способы конвертации цветной графики для ZX (обычные 6912 и двухэкранные картинки).
Конвеpсия гpафики в текст фоpмата ASCII (Deja Vu #08)
Процедура конверсии графических изображений в псевдографику. Использует блоки с разной штриховкой.
К вопросу о конверсии (Deja Vu #0A)
Процедура конверсии графических изображений в текст. Использует все символы шрифта.
Графика :: отдельные эффекты

Вращалка-извращалка (Adventurer #9)
Рассматривается эффект, аналогичный использованному в демо Vibrations (Rush'96) - 'атрибутная вращалка-искажалка-приближалка-удалялка-смещалка'.
Круги на воде (Virtual Worlds #1)
Описание алгоритма эффекта кругов на воде.
Реализация плазмы размером 2x2 (Demo Or Die #2)
Описание алгоритма и исходный код эффекта плазмы, выводимой чанками 2x2, из BooM trackmo.
Графический эффект 'Iris' (Adventurer #8)
Исходник графического эффекта, аналогичного эффекту в скринсейвере Iris программы DOS Navigator на PC.
Эффект плавного псевдо-атрибутного скролла (Adventurer #8)
Исходник графического эффекта, выполняющего скролл атрибутной надписи с дискретностью в один пиксель.
Плавающие атрибуты (Deja Vu #03)
Процедура графического эффекта атрибутной надписи, перемещающейся с точностью до пикселя.
Плазменные шарики (Deja Vu #04)
Описание эффекта, аналогичного реализованному в демо Vibrations.
Эффект горящего огня (IzhNews #9)
Описание алгоритма и пример процедуры.
Графика :: бордюр, мультиколоры

Об эффектах на бордюре и кое о чём ещё (ZX Format #5)
Основы создания бордюрных эффектов. Примеры процедур.
Изготовление мультиколоров (ZX Format #6)
Основы эффекта 'мультиколор'. Пример процедуры.
Мультиколор и бордюрные эффекты (Move #02)
Основные принципы создания бордюрных эффектов и мультиколора.
Мультиколор и чанки на бордюре (Black Crow #05)
Увеличение количества видимых цветов в бордюрных эффектах за счёт их черезкадрового чередования (аналогично двухэкранной графике), исходник примера эффекта.
О мультиколоре вообще и MC24 в частности (ZX-Guide #2)
Описание идеи эффекта 'мультиколор', возможные вариации эффекта и способы реализации.
Графика :: видео

Больше цвета! (Adventurer #15)
Описание способа упаковки и вывода цветной анимации, использованной в демо WeeD (Triebkraft'2003).
Об упаковке видео для ZX (Info Guide #7)
Эффективный метод сжатия видео, использующий межкадровое сжатие по знакоместам (с учётом степени изменений и 'стандартных знакомест'). Описание способа конверсии видео с PC.
CD video на ZX (Info Guide #8)
Воспроизведение видео с цифровым звуком с CD (без упаковки) - общие принципы.
Конвертирование анимации на примере атрибутного видео (Demo Or Die #1)
Описание методов создания, упаковки и проигрывания атрибутного видео, с разрешением 32x24 и 53 цветами на условную точку.
Упаковка анимаций в JAM (Scenergy #2)
Описание алгоритма упаковки силуэтных анимаций в демо JAM.
Видео на спектруме. Реально?
Обзорная статья о методах реализации видео на ZX Spectrum. Вывод, хранение, сжатие.
Игростроение

Game making #2 (Adventurer #11)
Статья от автора демо-версии игры Full Shit. Описываются методы выводы графики, структура игрового цикла упомянутой игры и некоторые другие вещи. С примерами процедур.
Как написать 3D игру типа DOOM (Adventurer #13)
Описывается метод 3d-визуализации, использованный в демо Love Gun (3d-движок с секторной организацией пространства).
3D проецирование пола/трассы (Info Guide #7)
Метод перспективного проецирования плоской карты, который возможно применить для гоночной игры (эффект, аналогичный так называемому MODE7 на приставке Super Nintendo). Пример процедуры.
Написание аркадной игры (Info Guide #8)
О процессе написания игры Pang16c под режим 16col (цвет на точку, для Pentagon/ATM2Turbo).
Теория AI (Don News #21)
Некоторые идеи для 'интеллекта' врагов в играх, подобных Battle City. Выбор направления движения, маркеры пути, волновой алгоритм.
Raycasting - сделай себе немного DOOM'a (Inferno Guide #5)
Описание алгоритма рейкастинга, использующегося в Wolfenstein3d-подобных играх (несколько изменённый алгоритм реализован в Wolfenstein'2004 на ZX Spectrum).
Поиск пути (Virtual Worlds #1)
Описание поиска пути методом волнового алгоритма с некоторыми модификациями.
Искусственный интеллект в компьютерных играх (ZX Format #5-6)
Алгоритмы ИИ в компьютерных играх разных жанров. Общие идеи, примеры программ на Бейсике.
Построение крaтчaйшего мaршрутa (ZX Format #6)
Поиск пути стандартным вариантом волнового алгоритма. Возможные модификации.
Демостроение

Секреты DAINGY (Scenergy #2)
Описание алгоритмов и их реализаций, применённых в интро Daingly. Фрагменты кода с пояснениями.
Intro в 256 байт? (Krasnodar News #10)
Исходный код эффекта, использованного в качестве screensaver'а в газете Krasnodar News.
Эмуляторы

Emulators must die! (Born Dead #05)
В статье рассматриваются методы определения выполнения программы на эмуляторе. Идея заключается в определении ошибок эмуляции в существовавших на момент написания статьи эмуляторах (07.01.1999).
Работа с текстом

Быстрый поиск слова в тексте (Black Crow #02)
Обзор проблемы быстрого поиска слова в тексте и один из возможных вариантов её решения.
TR-DOS, ВГ93

Справочник по TR-DOS (Black Crow #05)
Справочник по системным переменным и функциям TR-DOS, для версии 5.04T.
Метод загрузки уровней при адаптации игр к TR-DOS (Black Crow #02)
Рассматриваются основные принципы полной адаптации игр (с дозагрузками/отгрузками) под дисковую систему TR-DOS.
Основы создания дисковых версий (Deja Vu #07)
Описание основ адаптации кассетных версий программ для системы TR-DOS.
Как сделать дисковую версию (Adventurer #6)
Методы полной адаптации кассетных версий программ для системы TR-DOS.
Индикация работы с диском (Black Crow #07)
Пример реализации прогресс-бара загрузки. Написан под оболочку 'Windows98' из журнала Black Crow #02.
О командных строках (AlCoNews #2)
Описание способа передачи параметров в программу через командную строку TR-DOS.
TR-DOS Level 1: 15635 (ZX-Guide #1)
Описание функций TR-DOS, доступных через вызов по #3D13.
TR-DOS Level 2: КР1818ВГ93 (ZX-Guide #2)
Прямое программирование контроллера дисковода.
TR-DOS: Level 3 (ZX-Guide #3)
#3D13 с обработкой ошибок, передача параметров через командную строку TR-DOS, функции для boot, проверка наличия диска в дисководе.
Программирование смены диска/дисковода (Info Guide #7)
Проблема при выполнении операции выбора диска на ZS Scorpion с жёстким диском и способ её решения.
Обработка дисковых ошибок TR-DOS (3bit #1)
Процедура блокировки сообщений об ошибках TR-DOS.
Обработка дисковых ошибок TR-DOS (Adventurer #7)
Код процедуры для обработки дисковых ошибок TR-DOS.
Обработка ошибок TR-DOS при работе через #3D13 (Deja Vu #09)
Примеры процедур обработки ошибок дисковых операций при работе с TR-DOS.
Строение стандартной дорожки (Move #08)
Описание строения стандартной дорожки TR-DOS дискеты.
Секреты TR-DOS (Virtual Worlds #1)
Определение наличия или отсутствия дисководов. Пример процедуры.
Определение наличия диска в дисководе (Deja Vu #0A)
Процедура определения наличия диска в дисководе.
Режим IM2 при работе TR-DOS (Deja Vu #01)
Загрузка данных в TR-DOS одновременно с выполнением программы на прерываниях. Пример процедуры.
Дисковые загрузчики (Adventurer #4, #6)
Описание и код процедуры загрузки с диска с разрешёнными прерываниями, использованной в журнале Eldorado #2; улучшенный вариант этой процедуры.
Загрузка и запуск бейсик-файлов (Deja Vu #05)
Процедура загрузки и запуска Basic-файлов без выхода в Basic. Использует фрагменты подпрограмм ПЗУ TR-DOS.
Сверхбыстрое форматирование дисков (Deja Vu #06)
Процедура для форматирования дискет с высокой скоростью (32 секунды).
Драйвер чтения/записи (Deja Vu #06)
Процедура драйвера чтения/записи без использования #3D13.
TR-DOS для программистов (ZX Format #5-6)
Описание некоторых тонкостей и сложностей. Непосредственная работа с ВГ93. Примеры процедур.
Исправление ошибки TR-DOS (ZX Format #3)
Ошибка при позиционировании головки в ПЗУ TR-DOS и её исправление.
Независимый драйвер для чтения и записи файлов в системе TR-DOS
Процедура драйвера для независимого чтения и записи файлов в TR-DOS.
Оптимизация программ или пишем загрузчик в кодах (MSD #9)
Создание моноблочного загрузчика.
Directory System for TR-DOS
Описание системы каталогов для TR-DOS, поддерживаемой программой TR-DOS Navigator.
iS-DOS

Краткий курс программирования в среде iS-DOS (ZX Format #5-6)
Первоначальные сведения для программирования в среде iS-DOS. Распределение памяти, пример простейшей программы, резидентные программы, драйверы устройств.
UniColor - cтандарт настройки цветов в программах iS-DOS (ZX Format #1)
Описание стандарта UniColor, применяемого для настройки цветовой схемы программ при помощи универсальной утилиты unicolor.com.
Программа gmen.com и системный рестарт menu (#91) (ZX Format #1)
Описание внутреннего устройства программы gmen.com в виде исходного кода с подробными комментариями.
Оконная система iS-DOS (ZX Format #1)
Описание рестартов уровня WIND.SYS, относящихся к работе с окнами и текстовой информацией в них.
Монитор командной строки iS-DOS и рестарт строкового редактора #6E smbgt (ZX Format #2)
Использование рестарта строкового редактора #6E smbgt на примере утилиты mon.com.
Формат объектных модулей *.obj iS-DOS Ассемблера (ZX Format #3)
Описание формата объектных модулей, принятого в системе IS-DOS и поддерживаемого IS-DOS Ассемблером и компоновщиком объектных модулей link.com.
Формат таблицы локальных символов iS-DOS Ассемблера (ZX Format #3)
Описание формата таблицы локальных символов, генерируемой IS-DOS Ассемблером в виде временного файла *.ltb.
Другие дисковые системы

Работа с MDOS, MB02 (Adventurer #13)
Описание дисковых систем MDOS, MB02. Формат дисков, функции системы, программирование.
Форматы дисков (Info Guide #7)
Большой справочник (~100кб) по форматам дисков таких систем и программ, как: MS-DOS, ASC SOUND MASTER, Profi DOS, iS-DOS, CP/M (MICRODOS), Realtime Audio Player, DOS ПК "Агат", DOS 2.6 (Радио-86РК), SP-DOS (Орион-128), MX-DOS (Специалист-MX), RT-11 (Рафос, Фодос), АО-ДОС 2.02, NEWDOS, AN-DOS.
Техническое руководство по DISCiPLE/+D (Info Guide #8)
Перевод документации на систему DISCiPLE/+D.
Структура разметки винчестера на компьютере Scorpion (Info Guide #10)
Описание структуры разметки жёсткого диска на компьютере Scorpion, так называемая MOA filesystem.
Защита и взлом ПО

Описание защиты игры Mortal Kombat (Black Crow #02)
Текст описывает защиту на диске с игрой Mortal Kombat (от MAFIA corp) и способ её взлома.
Общий обзор защит (Black Crow #02)
Краткое описание методов защиты, применённых в игре Black Raven. Объясняется способ защиты с использованием специально нанесённых царапин на диске.
Снятие защит (Black Crow #02)
Краткое описание способов взлома некоторых защит. На примере Imp Protection System 1995, Vasilyev Anton Protection System 1992, KSA Encryption Device 1995, Microprotector 1995.
Защита от копирования (Black Crow #06)
Описание метода защиты дискет от копирования. Данный метод использовался в игре 'Чёрный Ворон: Новые Миссии'.
XOR'em all (Move #02,#03,#05)
Методы шифрования данных, общие сведения и разбор таких защит, как Imp Protection System 1995, Golden Eagle Protection System. DeadLock.
Мeтоды зaщиты информaции нa ZX Spectrum (Adventurer #3)
Обзор способов защиты дискет от копирования. Общая информация.
Методы защиты программного кода (Adventurer #6)
Краткий обзор основных способов защиты кода от модификации. Общая информация.
Как создать некопируемый сектор (Deja Vu #08)
Способ защиты программ от копирования с помощью создания некопируемых секторов.
Вирус-невидимка (Deja Vu #09)
Описание идеи вируса, заражающего CODE-файлы в TR-DOS и хранящегося в неиспользуемых байтах последних секторов файлов.
Восстановление программ (ZX Power #2)
Восстановление испорченных или неработоспособных версий программ. Исправление ошибок, внесённых при адаптации к дисковым системам или снятии защиты.
Cheat и Pokes в игровых программах (ZX Power #3)
Основные сведения о реализации Cheat-режимов в игровых программах.
Пособие для мелкого пакостника или как стать бессмертным (ZX Format #3)
Методы реализации Cheat-режимов в игровых программах.
В поисках вечной жизни (ZX Format #4)
Методы реализации Cheat-режимов в игровых программах.
Форматы файлов

Формат модуля Pro Tracker v3.x (AlCoNews #12)
Описание формата музыкальных модулей PT3.x, неполное. Актуально на момент написания (08.10.2002).
Формат модуля Pro Tracker v3.7x (из дистрибутива v3.7)
Полное описание формата музыкальных модулей PT3.7x.
Формат модуля Pro Tracker 2.101 by GDC (Echo #02)
Описание формата компилированных музыкальных модулей PT2.101, текст декомпилированного плеера.
О формате музыкальных модулей Sound Tracker Pro by KSA software (Echo #03)
Описание формата музыкальных модулей ST Pro, текст декомпилированного плеера.
Формат упакованного триколора .888 (AlCoNews #13)
Описание формата, процедура распаковки.
Формат модуля Chip Tracker 1.x (AlCoNews #26)
Собственно описание формата.
Формат *.chr - векторных шрифтов (Funeral #1)
Описание формата векторных шрифтов *.chr (использовались на PC в программах от Borland).
Формат ani-файлов на ZX (Info Guide #10)
Описание формата файлов с анимацией, поддерживаемого программами JpeGif Laboratory (GFXcon), Little Viewer, Ani Editor.
Формат пакованного файла MegaLZ (Info Guide #10)
Краткое описание формата сжатия упаковщика MegaLZ.
Формат MOD-файла (ZX Format #7)
Описание формата музыкальных модулей MOD (15 и 31 инструментов).
Сжатие данных

Улучшение сжимаемости картинок (Born Dead #08)
Описывается способ небольшого улучшения сжимаемости картинок с помощью обычных архиваторов (Hrust/Hrum) за счёт перекодировки данных 'столбцами'.
Упаковка триколоров (ZX-Guide #4)
Несколько способов сжатия триколорных картинок. RLE, статистическое сжатие.
Форматы упакованных данных на ZX Spectrum (Inferno Guide #5)
Большая статья с подробным описанием форматов и алгоритмов архиваторов PCDv6.2, MS Pack 01.96, Hrum 3.5i, Hrust 1.x/2.x/2.1/2.3/Hrip, RIP 0.2x, mRIP, ASC Screen Crusher, Maxsoft Screen Packer 1.6, Lazy Pack 2.0, LC 4.0/5.2.
Практические принципы LZ упаковки (Info Guide #7)
Методы упаковки Lempel-Ziv, Huffman. Описание, особенности реализации.
Сжатие графической информации и что из этого можно получить
Способ сжатия графической информации без потерь.
Декодирование JPEG (Info Guide #10)
Описание формата сжатия графики с потерями JPEG, и алгоритма его декодирования.
Сжатие по Хаффмену (Deja Vu #06)
Подробное описание алгоритма сжатия данных по Хаффмену.
Депакер для MS-PACK (Deja Vu #05)
Процедура депакера для упаковщика MS-PACK. В отличии от штатной, может выполняться при разрешённых прерываниях.
Эффективность упаковщиков (Info Guide #10)
Сводная таблица эффективности сжатия различных упаковщиков по состоянию на 2007 год.
Вычисления

Як синус забабахать (Adventurer #9)
Об оптимальной генерации таблички синуса. Приводится пример процедуры.
Работа с IEEE-числами (Adventurer #10)
Библиотека для работы с IEEE-числами (float), производит операции сложения, вычитания, умножения, деления, получения синуса, косинуса, квадрата числа; перевод в integer и обратно.
Научное RND (Adventurer #13)
Описание простого способа генерации псевдослучайных чисел.
О некоторых RND-генераторах (Info Guide #10)
Генераторы для получения случайной битовой последовательности на основе LFSR. Генератор случайных байт. Примеры процедур.
Распознавание и вычисление арифметических выражений (Info Guide #7)
Вычисление арифметических выражений по их символьной записи. Лексический, синтаксический анализ, перевод выражение в обратную польскую запись, вычисление. Пример реализации.
Синус и компания (Info Guide #8)
Вычисление тригонометрических и алгебраических функций (SIN, TAN, ATAN, LOG, EXP и др.) в языках высокого уровня.
Один полезный трюк с ^ (Move #09)
Метод построения таблицы квадратов.
Возведение в квадрат (Bugs #1)
Два варианта процедуры возведения числа в квадрат, для 8-ми и 16-ти разрядных чисел.
Генератор таблицы квадратов (Demo Or Die #2)
Короткая процедура генерации таблицы квадратов чисел от 0 до 255.
Квадратный корень (Bugs #1)
Процедуры вычисления квадратного корня.
Извлечение приблизительного корня из числа (Body #21)
Процедура извлечения приблизительного корня из числа.
Делим 16 битное число на 8 битное (Body #22)
Процедура деления 16-разрядного числа на 8-разрядное.
О сортировке (Info Guide #9)
Обзор алгоритмов сортировки массива чисел.
Сортировка (Demo Or Die #2)
Несколько алгоритмов сортировки массива чисел с примерами процедур.
LONG? Что это такое? (Adventurer #8)
Процедуры для работы с целыми 32-разрядными знаковыми числами. Сложение, вычитание, печать, ввод.
Конверсия числа со стека калькулятора в символьную строку (Deja Vu #09)
Конверсия числа со стека калькулятора в символьную строку при помощи процедур ПЗУ.
Умножение, квадратный корень (Deja Vu #05)
Процедуры умножения двух целых 8-разрядных чисел. Процедура вычисления квадратного корня.
Быстрые вычисления в ассемблере (ZX Format #7)
Целочисленное деление и умножение, для однобайтовых и трёхбайтовых чисел.
Описания библиотек

Memory Management Library (Scenergy #2)
Описание и примеры применения макробиблиотеки Memory Management Library (для TASM 4 и Alasm), предназначенной для управления распределением памяти, расчёта экранных адресов, создания таблиц смещений или указателей, задания полей структур данных.
ZXA library (Scenergy #2)
Описание и примеры применения библиотеки ZXA (для TASM 4), предназначенной для проигрывания анимаций.
Hrust Library 2.02 (Deja Vu #09)
Описание библиотеки Hrust Library, предназначенной для упаковки/распаковки данных и другой работы с архивами Hrust.
Драйвера, модули

Структура и организация RAM-диска в Real Commander (Echo #06)
Структура и организация RAM-диска. Поддержка RAM-диска в дисковом драйвере. Драйвер расширенной памяти.
Структура драйвера модема для программы MMD 2.20 (ZX Format #6)
Подробное описание устройства драйвера модема для MMD. Примеры кода.
Работа с устройствами

Программируем CMOS на К512ВИ1 (Black Crow #07)
Процедуры для работы с CMOS-часами.
Руководство по программированию General Sound (ZX Format #6)
Руководство по программированию General Sound от автора встроенного ПО, версия 1.03. Журнальный вариант.
GENERAL'изaция прогрaмм (Spectrum Expert #1)
Подробное описание процесса переозвучивания игр для General Sound, на примере игры 'Target Renegade'.
Прямое программирование General Sound (Adventurer #13)
Внутренее программирование GS - загрузка и исполнения в нём нужного кода; описание внутренних ресурсов GS.
Дешифрация и раскладка портов ZX Spectrum (для Pentagon) (ZX-Guide #4.5)
Карта портов устройств, устанавливаемых на Pentagon (управление памятью, AY, CMOS, Cache, Mouse и прочее).
Видеорежим 384x304 (AlCoNews #32)
Видеорежим 384x304 для Pentagon: схема, раскладка видеопамяти, процедура переброса строки.
384x304: программирование (Info Guide #7)
Видеорежим 384x304 для Pentagon: схема, раскладка видеопамяти, процедуры для работы с экраном. Статья частично дублирует содержание статьи из AlCoNews #32.
Программирование Turbo Sound (Info Guide #8)
Описание принципа работы с Turbo Sound (два AY) по схеме NedoPC, процедуры определения наличия/отсутствия, выбора чипа.
Определение разных устройств (LPrint #21)
Процедуры определения объёма памяти, наличия и типа AY/YM, количества тактов за прерывание, медленной памяти, теневого ОЗУ, порта #FF, C-DOS модема.
Драйвер принтера D-100M для MED (Funeral #1.5)
Процедура драйвера, для компьютера KAY-1024 и редактора MicroEDitor 3.xx.
Двойное разрешение на ZX Spectrum (Echo #05)
Краткое описание режима 512x192 и работа с ним на компьютере 'Байт 01'.
Перехват Magic и Reset на Scorpion ZS-256 (Deja Vu #02)
Способы и процедуры перехвата обработчиков нажатия клавиш Magic и Reset для компьютеров Scorpion.
Аппаратный скроллинг на ATM2 (Info Guide #10)
Описание недокументированной аппаратной особенности компьютеров ATM Turbo 2 (не ATM1), позволяющей реализовать аппаратный скроллинг экрана.
Интерфейс (Deja Vu #09)
Процедуры опроса клавиатуры, джойстика, мыши. Определение наличия мыши и джойстика.
Kempston Mouse (Optron #14)
Определение наличия Kempston-мыши, опрос кнопок, получение координат.
Контроллер прямого доступа к памяти КР1810ВТ37 (Echo #06)
Программирование микросхемы КР1810ВТ37, используемой в качестве контроллера ПДП в звуковой карте DMA Ultrasound Card.
Программируемый таймер 8253 (Echo #07)
Программирование микросхемы КР580ВИ53 (8253, 8254), используемой в звуковой карте DMA Ultrasound Card.
Azure Sound Drive v8.6 (Echo #01)
Описание звукового устройства Azure Sound Drive, совместимого с различными вариантами Soundrive и Covox. Адреса портов. Подключение устройства.
XTR-modem (Deja Vu #02)
Описание возможностей XTR-modem, необходимый минимум информации о его программировании.
Работа с устройствами :: особенности моделей компьютеров

Экраны ПК ATM-Turbo 2+ (Adventurer #1)
Описание организации памяти в расширенных видеорежимах компьютера ATM Turbo 2+.
Компьютер 'Байт-01' (Echo #02)
Краткое описание особенностей компьютера 'Байт-01'. Контроллер дисковода, раздельные поля памяти.
Miko Best 256KB (Optron #7, #21)
Описание особенностей компьютера 'Miko Best 256KB', производившегося фирмой Miko, г. Тернополь.
Pentagon 1024 (Born Dead #10)
Описание Pentagon 1024. Работа с его расширенной памятью и дополнительными устройствами.
Компьютер ZX Profi. Управление ресурсами (Echo #01)
Описание некоторых особенностей компьютера Profi - системные порты, карта памяти для SP-DOS.
Теневой монитор ZS Scorpion (ZX Format #4)
Подробное описание пользовательских подпрограмм теневого монитора ZS Scorpion.
ZX Spectrum +3
Описание особенностей оригинального ZX Spectrum +3. Карта памяти, портов, распайка разъёмов.
Работа с памятью

Драйвер памяти (Echo #05)
Улучшенный вариант драйвера, опубликованного в ZX Format #5, для работы с расширенной памятью.
Драйвер памяти Quick Commander
Исходный текст драйвера расширенной памяти. Поддерживает до 2 МБ памяти, по стандартам Pentagon 128..512,1024,4096; ATM1 128..1024; ATM2 128..1024; Scorpion/Kay 128..1024; Profi 128..1024.
Драйвер расширенной памяти (Online #76)
Исходный текст драйвера расширенной памяти. Поддерживает стандарты: ZX Spectrum, Kay, Profi, ATM1, ATM2, Scorpion.
Расширенная память Profi и Scorpion (Online #44)
Использование расширенной памяти на компьютерах Profi и Scorpion.
Драйвер RAM Disk'а для ZX Spectrum 128 (Scenergy #1)
Подробное описание драйвера RAM-диска, используемого в программе SpriteLand.
MEMHELP (ZX Format #5)
Процедура для определения типа компьютера и объёма расширенной памяти. Поддерживаются стандарты Profi, Scorpion, ZX Spectrum 48/128.
AUTOconfig v5.03 (ZX Format #5)
Процедура для определения типа компьютера и объёма расширенной памяти. Поддерживаются стандарты ZX Spectrum, ATM Turbo, Scorpion, Profi различных модификаций.
Драйвер верхней памяти (Spectrofon #22)
Универсальная процедура для управления расширенной памятью на компьютерах ZX Spectrum, KAY, Profi, ATM Turbo, Scorpion различных модификций.
Пользовательский интерфейс

К вопросу о стрелках (Deja Vu #0A)
Процедура управления "стрелочным" интерфейсом (опрашивает только Kempston-джойстик, выводит точку вместо стрелки).
Стрелочка без стрелочника (ASpect #7)
Процедура "стрелочного" интерфейса. Включает опрос клавиатуры и вывод изображения стрелки.
Разное

Определение тактовой скорости компьютера (Black Crow #06)
Приводится процедура определения количества тактов в прерывании, взятая из Jemmeni Commander.
С точностью до... (Adventurer #2)
Способы измерения времени работы программы в тактах; пример процедуры с точностью измерения до 4-х тактов.
Конверсия чисел (Black Crow #07)
Небольшая процедура для конверсии чисел из символьного вида в десятичный.
Декомпиляция программ (Info Guide #6)
Описание процесса и способов эффективной декомпиляции программ.
Перемещаемость программ (Info Guide #7)
Методы, используемые при создании больших перемещаемых программ.
Большие проекты и дисциплина (Info Guide #7)
Способы эффективного ведения больших проектов на ассемблере.
Выполнение или пропуск 7-тактовой команды за 19 тактов (ZX-Guide #1)
Короткий фрагмент кода, показывающий, как можно выполнить или пропустить одну семитактовую команду за одни и те же 19 тактов.
Автосборка программы (Inferno Guide #5)
Обычные методы сборки программ, их недостатки и реализация автоматической сборки программы.
Различия оригинального ZX Spectrum и клонов (Move #04)
Описаны отличия фирменного варианта ZX Spectrum от отечественных клонов.
Особенности видеоконтроллера ZX Spectrum (Adventurer #8)
Описание особенности видеоконтроллера, связанной с выборкой данных атрибутов.
Art Studio и принцип открытой архитектуры (Adventurer #8)
Организация системы загружаемых модулей для версии Art Studio v2.01c, corrected by ROM/SM and FUX/SM.
Загрузчик для рабочей дискеты (Deja Vu #0A)
Загрузка различных программ в зависимости от удержания клавиши при сбросе компьютера.
Мультиплатформа (Info Guide #10)
Описание особенностей создания мультиплатформенного проекта - программы, собирающейся под разные платформы из одного исходника с помощью условной компиляции. Описание особенностей платформ Sam Coupe и MSX2.
Построение графического пользовательского интерфейса (Info Guide #10)
Описание различных аспектов организации графического пользовательского интерфейса.
Используются технологии uCoz