]> 4ch.mooo.com Git - 16.git/blobdiff - 16/x_/mxel.asm
clear
[16.git] / 16 / x_ / mxel.asm
diff --git a/16/x_/mxel.asm b/16/x_/mxel.asm
deleted file mode 100755 (executable)
index 2c9dda2..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-;-----------------------------------------------------------\r
-;\r
-; MXEL.ASM - Mid-point ellipse\r
-; Copyright (c) 1994 by Alessandro Scotti\r
-;\r
-;-----------------------------------------------------------\r
-WARN    PRO\r
-NOWARN  RES\r
-INCLUDE MODEX.DEF\r
-\r
-PUBLIC  mxEllipse\r
-\r
-MX_TEXT         SEGMENT USE16 PARA PUBLIC 'CODE'\r
-                ASSUME cs:MX_TEXT, ds:NOTHING, es:NOTHING\r
-\r
-EXTRN   mx_BytesPerLine : WORD\r
-EXTRN   mx_VideoSegment : WORD\r
-EXTRN   mx_ClipX1       : WORD\r
-EXTRN   mx_ClipY1       : WORD\r
-EXTRN   mx_ClipX2       : WORD\r
-EXTRN   mx_ClipY2       : WORD\r
-\r
-;-----------------------------------------------------------\r
-;\r
-; Draws an ellipse using the mid-point algorithm.\r
-;\r
-; Input:\r
-;       XC, YC  = center coordinates\r
-;       A       = horizontal radius\r
-;       B       = vertical radius\r
-;       Color   = ellipse color\r
-; Output:\r
-;       none\r
-; Note:\r
-;       computes only points in the first quadrant, all other\r
-;       points are obtained by symmetry.\r
-;\r
-mxEllipse       PROC FAR\r
-        ARG     Color:BYTE:2,   \\r
-                B:WORD,         \\r
-                A:WORD,         \\r
-                YC:WORD,        \\r
-                XC:WORD         = ARG_SIZE\r
-        LOCAL   A2:DWORD,       \\r
-                B2:DWORD,       \\r
-                CC:DWORD,       \\r
-                DD:DWORD,       \\r
-                X:DWORD,        \\r
-                Y:DWORD         = AUTO_SIZE\r
-        .enter  AUTO_SIZE\r
-        .push   ds, si, di\r
-\r
-        .chk386 mxEllipse, @@Exit\r
-\r
-; Initialize variables\r
-        xor     eax, eax\r
-        mov     [X], ax         ; X = 0\r
-        mov     ax, [A]\r
-        mul     eax             ; EAX = A*A\r
-        mov     [DD], eax       ; DD = A*A\r
-        shl     eax, 1\r
-        mov     [CC], eax       ; CC = 2*A*A\r
-        shl     eax, 1\r
-        mov     [A2], eax       ; A2 = 4*A*A\r
-        movzx   edx, [B]\r
-        mov     [Y], edx\r
-        mul     edx             ; EAX = 4*A*A*B\r
-        sub     [DD], eax       ; DD = A*A - 4*A*A*B\r
-        movzx   eax, [B]\r
-        mul     eax             ; EAX = B*B\r
-        shl     eax, 2          ; EAX = 4*B*B\r
-        mov     [B2], eax       ; B2 = 4*B*B\r
-        add     [CC], eax       ; CC = 2*A*A + 4*B*B\r
-        add     [D1], eax       ; DD = A*A - 4*A*A*B + 4*B*B\r
-\r
-; Draw initial points\r
-        call    subPlot4\r
-\r
-; First loop\r
-@@Loop1:\r
-        mov     eax, [X]        ; Check slope\r
-        mul     [B2]\r
-        mov     ecx, eax\r
-        mov     eax, [Y]\r
-        mul     [A2]\r
-        sub     eax, ecx\r
-        sub     eax, [CC]       ; EAX = Y*A2 - X*B2 - CC\r
-        jle     @@Done1         ; Crossed critical point, jump to next loop\r
-\r
-        mov     ecx, [DD]       ; Get error\r
-        test    ecx, ecx        ; Positive?\r
-        jl      @@Draw1         ; No, use default step\r
-\r
-        mov     eax, 1\r
-        sub     eax, [Y]\r
-        mul     [A2]\r
-        shl     eax, 1\r
-        add     ecx, eax        ; Bump error\r
-        dec     WORD PTR [Y]    ; Decrement Y coordinate\r
-\r
-@@Draw1:\r
-        mov     eax, [X]\r
-        shl     eax, 1\r
-        add     eax, 3\r
-        mul     [B2]\r
-        add     ecx, eax        ; Bump error\r
-        mov     [DD], ecx       ; Save error\r
-        inc     WORD PTR [X]    ; Increment X coordinate\r
-\r
-        call    subPlot4        ; Draw points\r
-        jmp     @@Loop1\r
-@@Done1:\r
-\r
-; Initialize variables\r
-        shr     [B2], 2\r
-        mov     eax, [X]\r
-        mul     eax\r
-        add     [X]\r
-        shl     eax, 2\r
-        inc     eax\r
-        mul     [B2]\r
-        mov     [DD], eax\r
-        mov     eax, [Y]\r
-        mul     eax\r
-        add     [Y]\r
-        dec     eax\r
-        add     [Y]\r
-        sub     eax, [B2]\r
-        add     [DD], eax\r
-        shl     [B2], 3\r
-        inc     WORD PTR [X]\r
-\r
-; Second loop\r
-@@Loop2:\r
-        cmp     WORD PTR [Y], 0\r
-        ja      @@Done2\r
-\r
-        mov     ecx, [DD]\r
-        test    ecx, ecx\r
-        jge     @@Draw2\r
-\r
-        mov     eax, [X]\r
-        inc     eax\r
-        mul     [B2]\r
-        add     ecx, eax\r
-        inc     WORD PTR [X]\r
-\r
-@@Draw2:\r
-        mov     eax, [Y]\r
-        shl     eax, 1\r
-        sub     eax, 3\r
-        neg     eax\r
-        imul    [A2]\r
-        add     ecx, eax\r
-        dec     WORD PTR [Y]\r
-\r
-        call    subPlot4\r
-        jmp     @@Loop2\r
-@@Done2:\r
-\r
-@@Exit:\r
-        xor     ax, ax\r
-        .leave  ARG_SIZE\r
-mxEllipse       ENDP\r
-\r
-MX_TEXT         ENDS\r
-END\r