Конкурс по процедуре прямоугольника продолжается — Абзац


Бумажные газеты и журналыАбзац2001 №7 → Конкурс по процедуре прямоугольника продолжается

Конкурс по процедуре прямоугольника продолжается

Почитал шестой номер, процедуру оптимизировать не удалось, поэтому переписал по-новой:


; hl=adr on screen
; d=высота (1-192)
; e=ширина (1-32)
RECT    LD HL,#4000
        LD DE,#0102
PROC2   LD C,#FF
LINE4   DEC D
        JR Z,PROC2
        LD B,E
        PUSH HL
        LD (HL),C
        INC L
        DJNZ $-2
        DEC L
        SET 0,(HL)
        POP HL
        SET 7,(HL)
        LD C,B
        INC H
        LD A,H
        AND 7
        JR NZ,$+12
        LD A,L
        ADD A,32
        LD L,A
        JR C,$+6
        LD A,H
        SUB 8
        LD H,A
        LD A,D
        INC A
        JR NZ,LINE4
        RET

Итого: длина 39 байт.

Конечно работает немного по-другому, теперь чистит внутреннюю область, нет ограничений на высоту, ширина боковых - 1 пиксель...

Павел СТАХОВ, Первоуральск