+++ /dev/null
-.387
- PUBLIC MXCIRCLE
- EXTRN MX_VIDEOSEGMENT:BYTE
- EXTRN MX_CLIPX1:BYTE
- EXTRN MX_CLIPX2:BYTE
- EXTRN MX_CLIPY1:BYTE
- EXTRN MX_CLIPY2:BYTE
- EXTRN MX_BYTESPERLINE:BYTE
-MX_TEXT SEGMENT PARA PUBLIC USE16 'CODE'
- ASSUME CS:MX_TEXT, DS:DGROUP, SS:DGROUP
-MXCIRCLE:
- push bp
- mov bp,sp
- sub sp,2
- push ds
- push si
- push di
- xor si,si
- mov di,word ptr 8[bp]
- mov ax,3
- sub ax,di
- sub ax,di
- mov word ptr -2[bp],ax
- mov ds,word ptr cs:MX_VIDEOSEGMENT
-L$1:
- cmp si,di
- jg L$3
- mov ax,si
- mov bx,di
- call near ptr L$4
- mov ax,si
- neg ax
- mov bx,di
- call near ptr L$4
- mov ax,si
- mov bx,di
- neg bx
- call near ptr L$4
- mov ax,si
- neg ax
- mov bx,di
- neg bx
- call near ptr L$4
- mov ax,di
- mov bx,si
- call near ptr L$4
- mov ax,di
- neg ax
- mov bx,si
- call near ptr L$4
- mov ax,di
- mov bx,si
- neg bx
- call near ptr L$4
- mov ax,di
- neg ax
- mov bx,si
- neg bx
- call near ptr L$4
- mov ax,word ptr -2[bp]
- test ax,ax
- jl L$2
- mov ax,di
- shl ax,1
- shl ax,1
- sub ax,4
- sub word ptr -2[bp],ax
- dec di
-L$2:
- mov ax,si
- shl ax,1
- shl ax,1
- add ax,6
- add word ptr -2[bp],ax
- inc si
- jmp L$1
-L$3:
- xor ax,ax
- pop di
- pop si
- pop ds
- mov sp,bp
- pop bp
- retf 8
-L$4:
- add bx,word ptr 0cH[bp]
- add ax,word ptr 0aH[bp]
- cmp bx,word ptr cs:MX_CLIPX1
- jl L$5
- cmp bx,word ptr cs:MX_CLIPX2
- jg L$5
- cmp ax,word ptr cs:MX_CLIPY1
- jl L$5
- cmp ax,word ptr cs:MX_CLIPY2
- jg L$5
- mul word ptr cs:MX_BYTESPERLINE
- mov cx,bx
- shr bx,1
- shr bx,1
- add bx,ax
- and cl,3
- mov ax,102H
- shl ah,cl
- mov dx,3c4H
- out dx,ax
- mov al,byte ptr 6[bp]
- mov byte ptr [bx],al
-L$5:
- ret
-MX_TEXT ENDS
- END