• Можете, пожалуйста, прокомментировать код?

    @andk
    Напишу самое общее, потому как код примитивный.
    Самая простая функция - putpixel

    proc putpixel uses es di bx ax cx,\
    x,y, color
    написано что из ресурсов используется.
    es - сегментный регистр
    di - destination -регистр приёмник
    вместе с ES образуют пару ES:DI, позволяющуюю адресовать 32х битный адрес
    ax,bx,cx - рабочие регистры процессора, имеющие ещё предопределённые назначения:
    ax - аккумулятор - сюда помещается результат вычислений.
    bx - база(смещение) используется для косвенной адресации по базе
    cx - счётчик
    x,y,color - пользовательские параметры, определённые программой

    mov ax, $A000
    mov es, ax
    инициализация сегмента приемника данных
    mov al, byte[y]
    mov cx, 320
    mul cx
    координата y (1 байт) умножается на количество пикселей в строке - получаем смещение для номера необходимой для вывода строки. Результат в AX.
    mov di, ax
    копируем в регистр приёмника
    add di, [x]
    к полученному смещению начала строки прибавляем координату x.
    теперь в DI - смещение нужного пикселя относительно начала экранной области

    mov al, byte[color]
    mov [es:di], al
    требуемый цвет пикселя выводим в заготовленный полный адрес.

    Подрограммы рисования линий отличаются только тем, что занимаются вычислением координат для рисования (подготовка входной информации для putpixel и drawHorLine). Работа с входными параметрами - аналогична у всех.
  • Можете, пожалуйста, прокомментировать код?

    @andk
    Эээ.. drawCircleSIm - окружность.
    а дальше да, типа того.
    просто окружность и круг могут быть разных цветов - то что в вашем исходнике комментировано как "Mode_NoBorder".