Код:
 ;----------------------------------------;
_NULL   EQU     0
;----------------------------------------;
ATTR_P  EQU     23693 ;атрибуты экрана
;----------------------------------------;
;биты:   0 - over 0/1,   2 - inverse 0/1
;      4 - ink & paper 9 (прозрачные атр.)
P_FLAG  EQU     23697
;----------------------------------------;
;----------------------------------------;
;Algorythm designed by SerzhSoft (c)1996
;рисование окружности
; HL=x, DE=y (-32768..+23767)
; A=радиус (0..255) ;при 0 - точка
CIRCLE
        ld      (X_CIRC),hl
        ld      (Y_CIRC),de
        ld      e,a
        ld      c,#00
        ld      b,c
        ld      d,c
        srl     a
LPCIR1  ex      af,af'
LPCIR2  call    PUT8PX
        inc     c
        ex      af,af'
        sub     c
        jr      nc,LPCIR1
        dec     e
        add     a,e
        ex      af,af'
        ld      a,e
        cp      c
        jr      nc,LPCIR2
        ret
;
PUT8PX  call    PUT4PX
;
PUT4PX  ld      a,c
        ld      c,e
        ld      e,a
        ld      hl,_NULL
X_CIRC  equ     $-2
        push    hl
        add     hl,bc
        call    PUT2PX
        pop     hl
        sbc     hl,bc
;
PUT2PX  inc     h
        dec     h
        ret     nz
        ld      a,l
        ld      (X_NEW),a
        ld      hl,_NULL
Y_CIRC  equ     $-2
        push    hl
        add     hl,de
        call    PUT1PX
        pop     hl
        sbc     hl,de
;
PUT1PX  inc     h
        dec     h
        ret     nz
        ld      a,l
        cp      #C0
        ret     nc
        push    de
        ld      d,a
        ld      e,_NULL
X_NEW   equ     $-1
        push    bc
        call    PLOT
        pop     bc
        pop     de
        ret
;----------------------------------------;
;----------------------------------------;
;выч. адреса и проверка состояния точки
POINT
        LD      B,#07
        LD      A,D
        RRA
        SCF
        RRA
        RRA
        AND     #5F
        LD      H,A
        XOR     E
        AND     B
        XOR     E
        RRCA
        RRCA
        RRCA
        LD      L,A
        LD      A,D
        XOR     H
        AND     B
        XOR     H
        LD      H,A
        LD      A,E
        AND     B
        LD      B,A
        LD      A,#80
        JR      Z,GO_PNT
LP_PNT  RRCA
        DJNZ    LP_PNT
GO_PNT  LD      C,A
        AND     (HL)
        RET
;
POINTHL
        PUSH    HL
        CALL    POINT
        POP     HL
        RET
;----------------------------------------;
;установка точки
PLOT
        CALL    POINT
        LD      A,(P_FLAG)
        PUSH    HL
        LD      HL,#A9A9 ;over 1, inv. 1
        BIT     0,A
        JR      NZ,IF_PLT1
        LD      L,#B1 ;[or c] - over 0
IF_PLT1 BIT     2,A
        JR      NZ,IF_PLT2
        LD      H,#00 ;[nop] - inverse 1
IF_PLT2 LD      (OVR_PLT),HL
        POP     HL
        LD      A,(HL)
OVR_PLT OR      C
INV_PLT XOR     C
;
TO_PLOT ;вход для пр-ры заливки и др.
        LD      (HL),A
        LD      A,(P_FLAG)
        BIT     4,A
        RET     NZ
        LD      A,H
        RRA
        RRA
        RRA
        AND     #03
        OR      #58
        LD      H,A
        LD      A,(ATTR_P)
        LD      (HL),A
        RET
;----------------------------------------;
 для over 1 добавляем: