--- /dev/null
+.387
+ PUBLIC XSUBCLIPLINE
+ EXTRN MX_CLIPY1:BYTE
+ EXTRN MX_CLIPY2:BYTE
+ EXTRN MX_CLIPX2:BYTE
+ EXTRN MX_CLIPX1:BYTE
+ EXTRN MX_VIDEOSEGMENT:BYTE
+ EXTRN MX_BYTESPERLINE:BYTE
+MX_TEXT SEGMENT PARA PUBLIC USE16 'CODE'
+ ASSUME CS:MX_TEXT, DS:DGROUP, SS:DGROUP
+L$1:
+ or al,byte ptr [bx+si]
+L$2:
+ DW offset L$3
+ or al,byte ptr [bx+si]
+ DW offset L$4
+ or word ptr [bx+si],ax
+ DW offset L$5
+ ????
+ inc word ptr [bx+si]
+ add byte ptr [bp+si],cl
+ add byte ptr 0a00H[bx+si],al
+ add byte ptr 900H[bp],dl
+ add byte ptr -100H[si],ch
+ inc word ptr [bx+si]
+ add byte ptr ds:[0c000H],al
+ add byte ptr ds:[0ce00H],al
+ add byte ptr [di],al
+ add ah,bl
+ add bh,bh
+ inc word ptr [bx+si]
+ add bh,bh
+ inc word ptr [bx+si]
+ add bh,bh
+ inc word ptr [bx+si]
+ add bh,bh
+ inc word ptr [bx+si]
+ add bh,bh
+ inc word ptr [bx+si]
+ DB 0
+L$3:
+ DW offset MX_TEXT+0ecH
+ DW offset MX_TEXT+0eeH
+ DW offset MX_TEXT+0f1H
+ DW offset MX_TEXT+0eaH
+ DW offset MX_TEXT+0f4H
+ DW offset MX_TEXT+0f7H
+ DW offset MX_TEXT+104H
+ DW offset MX_TEXT+0eaH
+ DW offset MX_TEXT+111H
+ DW offset MX_TEXT+114H
+ DW offset MX_TEXT+121H
+L$4:
+ DW offset MX_TEXT+132H
+ DW offset MX_TEXT+0eaH
+ DW offset MX_TEXT+135H
+ DW offset MX_TEXT+0eaH
+ DW offset MX_TEXT+13bH
+ DW offset MX_TEXT+0eaH
+ DW offset MX_TEXT+148H
+ DW offset L$7
+ DW offset L$10
+ DW offset L$7
+ DW offset L$11
+L$5:
+ DW offset L$14
+ DW offset L$15
+ DW offset L$7
+ DW offset L$7
+ DW offset L$16
+ DW offset L$17
+ DW offset L$7
+ DW offset L$7
+ DW offset L$18
+ DW offset L$19
+ DW offset L$22
+ DW offset L$23
+ DW offset L$24
+ DW offset L$7
+ DW offset L$7
+ DW offset L$7
+ DW offset L$7
+ DW offset L$7
+ DW offset L$25
+ DW offset L$26
+ DW offset L$27
+ DW offset L$30
+ DW offset L$7
+ DW offset L$31
+ DW offset L$7
+ DW offset L$7
+ DW offset L$7
+ DW offset L$7
+ DW offset L$7
+ DW offset L$32
+ DW offset L$7
+ DW offset L$33
+ DW offset L$36
+ DW offset L$37
+ DW offset L$7
+ DW offset L$7
+ DW offset L$7
+ DW offset L$7
+ DW offset L$7
+ DW offset L$7
+ DW offset L$38
+ DW offset L$39
+ DW offset L$43
+ DW offset L$44
+ DW offset L$45
+ DW offset L$7
+ DW offset L$46
+ DW offset L$47
+ DW offset L$48
+ DW offset L$51
+ DW offset L$7
+ DW offset L$52
+ DW offset L$7
+ DW offset L$53
+ DW offset L$7
+ DW offset L$54
+ DW offset L$58
+ DW offset L$59
+ DW offset L$7
+ DW offset L$7
+ DW offset L$60
+ DW offset L$61
+L$6:
+ clc
+ ret
+L$7:
+ stc
+ ret
+ clc
+ ret
+ jmp near ptr L$67
+ jmp near ptr L$68
+ jmp near ptr L$70
+ call near ptr L$67
+ cmp si,word ptr cs:MX_CLIPY1
+ jge L$6
+ jmp near ptr L$70
+ call near ptr L$68
+ cmp si,word ptr cs:MX_CLIPY1
+ jge L$6
+ jmp near ptr L$70
+ jmp near ptr L$69
+ call near ptr L$67
+ cmp si,word ptr cs:MX_CLIPY2
+ jle L$6
+ jmp near ptr L$69
+ call near ptr L$68
+ cmp si,word ptr cs:MX_CLIPY2
+ jle L$6
+ jmp near ptr L$69
+L$8:
+ stc
+ ret
+L$9:
+ clc
+ ret
+ jmp near ptr L$63
+ call near ptr L$63
+ jmp near ptr L$68
+ call near ptr L$63
+ cmp bx,word ptr cs:MX_CLIPY1
+ jl L$8
+ jmp near ptr L$70
+ call near ptr L$63
+ cmp bx,word ptr cs:MX_CLIPY1
+ jl L$8
+ call near ptr L$70
+ cmp cx,word ptr cs:MX_CLIPX2
+ jle L$9
+ jmp near ptr L$68
+L$10:
+ call near ptr L$63
+ cmp bx,word ptr cs:MX_CLIPY2
+ jg L$8
+ jmp near ptr L$69
+L$11:
+ call near ptr L$63
+ cmp bx,word ptr cs:MX_CLIPY2
+ jg L$8
+ call near ptr L$69
+ cmp cx,word ptr cs:MX_CLIPX2
+ jle L$9
+ jmp near ptr L$68
+L$12:
+ clc
+ ret
+L$13:
+ stc
+ ret
+L$14:
+ jmp near ptr L$64
+L$15:
+ call near ptr L$64
+ jmp near ptr L$67
+L$16:
+ call near ptr L$64
+ cmp bx,word ptr cs:MX_CLIPY1
+ jl L$13
+ jmp near ptr L$70
+L$17:
+ call near ptr L$64
+ cmp bx,word ptr cs:MX_CLIPY1
+ jl L$13
+ call near ptr L$70
+ cmp cx,word ptr cs:MX_CLIPX1
+ jge L$12
+ jmp near ptr L$67
+L$18:
+ call near ptr L$64
+ cmp bx,word ptr cs:MX_CLIPY2
+ jg L$13
+ jmp near ptr L$69
+L$19:
+ call near ptr L$64
+ cmp bx,word ptr cs:MX_CLIPY2
+ jg L$13
+ call near ptr L$69
+ cmp cx,word ptr cs:MX_CLIPX1
+ jge L$12
+ jmp near ptr L$67
+L$20:
+ clc
+ ret
+L$21:
+ stc
+ ret
+L$22:
+ jmp near ptr L$66
+L$23:
+ call near ptr L$66
+ cmp di,word ptr cs:MX_CLIPX1
+ jl L$21
+ call near ptr L$67
+ cmp si,word ptr cs:MX_CLIPY1
+ jge L$20
+ jmp near ptr L$70
+L$24:
+ call near ptr L$66
+ cmp di,word ptr cs:MX_CLIPX2
+ jg L$21
+ jmp near ptr L$68
+L$25:
+ call near ptr L$66
+ jmp near ptr L$69
+L$26:
+ call near ptr L$66
+ cmp di,word ptr cs:MX_CLIPX1
+ jl L$21
+ call near ptr L$67
+ cmp si,word ptr cs:MX_CLIPY2
+ jle L$20
+ jmp near ptr L$69
+L$27:
+ call near ptr L$66
+ cmp di,word ptr cs:MX_CLIPX2
+ jg L$21
+ call near ptr L$68
+ cmp si,word ptr cs:MX_CLIPY2
+ jle L$20
+ jmp near ptr L$69
+L$28:
+ clc
+ ret
+L$29:
+ stc
+ ret
+L$30:
+ call near ptr L$63
+ cmp bx,word ptr cs:MX_CLIPY1
+ jge L$28
+ jmp near ptr L$66
+L$31:
+ call near ptr L$68
+ cmp si,word ptr cs:MX_CLIPY1
+ jl L$29
+ call near ptr L$66
+ cmp di,word ptr cs:MX_CLIPX1
+ jge L$28
+ jmp near ptr L$63
+L$32:
+ call near ptr L$69
+ cmp cx,word ptr cs:MX_CLIPX1
+ jl L$29
+ call near ptr L$66
+ cmp di,word ptr cs:MX_CLIPX1
+ jge L$28
+ jmp near ptr L$63
+L$33:
+ call near ptr L$63
+ cmp bx,word ptr cs:MX_CLIPY2
+ jg L$29
+ call near ptr L$68
+ cmp bx,word ptr cs:MX_CLIPY1
+ jl L$29
+ cmp si,word ptr cs:MX_CLIPY2
+ jle L$28
+ jmp near ptr L$69
+L$34:
+ clc
+ ret
+L$35:
+ stc
+ ret
+L$36:
+ call near ptr L$64
+ cmp bx,word ptr cs:MX_CLIPY1
+ jge L$34
+ jmp near ptr L$66
+L$37:
+ call near ptr L$67
+ cmp si,word ptr cs:MX_CLIPY2
+ jl L$35
+ call near ptr L$66
+ cmp di,word ptr cs:MX_CLIPX2
+ jle L$34
+ jmp near ptr L$64
+L$38:
+ call near ptr L$69
+ cmp cx,word ptr cs:MX_CLIPX2
+ jg L$35
+ call near ptr L$64
+ cmp bx,word ptr cs:MX_CLIPY1
+ jge L$34
+ jmp near ptr L$66
+L$39:
+ call near ptr L$67
+ cmp si,word ptr cs:MX_CLIPY1
+ jl L$35
+ call near ptr L$64
+ cmp bx,word ptr cs:MX_CLIPY2
+ jg L$35
+ cmp si,word ptr cs:MX_CLIPY2
+ jle L$40
+ call near ptr L$69
+L$40:
+ cmp bx,word ptr cs:MX_CLIPY1
+ jge L$34
+ jmp near ptr L$66
+L$41:
+ clc
+ ret
+L$42:
+ stc
+ ret
+L$43:
+ jmp near ptr L$65
+L$44:
+ call near ptr L$65
+ cmp di,word ptr cs:MX_CLIPX1
+ jl L$42
+ jmp near ptr L$67
+L$45:
+ call near ptr L$65
+ cmp di,word ptr cs:MX_CLIPX2
+ jg L$42
+ jmp near ptr L$68
+L$46:
+ call near ptr L$65
+ jmp near ptr L$70
+L$47:
+ call near ptr L$65
+ cmp di,word ptr cs:MX_CLIPX1
+ jl L$42
+ call near ptr L$67
+ cmp si,word ptr cs:MX_CLIPY1
+ jge L$42
+ jmp near ptr L$70
+L$48:
+ call near ptr L$65
+ cmp di,word ptr cs:MX_CLIPX2
+ jg L$42
+ call near ptr L$68
+ cmp si,word ptr cs:MX_CLIPY1
+ jge L$41
+ jmp near ptr L$70
+L$49:
+ clc
+ ret
+L$50:
+ stc
+ ret
+L$51:
+ call near ptr L$63
+ cmp bx,word ptr cs:MX_CLIPY2
+ jle L$49
+ jmp near ptr L$65
+L$52:
+ call near ptr L$68
+ cmp si,word ptr cs:MX_CLIPY2
+ jg L$50
+ call near ptr L$65
+ cmp di,word ptr cs:MX_CLIPX1
+ jge L$49
+ jmp near ptr L$63
+L$53:
+ call near ptr L$70
+ cmp cx,word ptr cs:MX_CLIPX1
+ jl L$50
+ call near ptr L$63
+ cmp bx,word ptr cs:MX_CLIPY2
+ jle L$49
+ jmp near ptr L$65
+L$54:
+ call near ptr L$63
+ cmp bx,word ptr cs:MX_CLIPY1
+ jl L$50
+ call near ptr L$68
+ cmp si,word ptr cs:MX_CLIPY2
+ jg L$50
+ cmp bx,word ptr cs:MX_CLIPY2
+ jle L$55
+ call near ptr L$65
+L$55:
+ cmp si,word ptr cs:MX_CLIPY1
+ jge L$49
+ jmp near ptr L$70
+L$56:
+ clc
+ ret
+L$57:
+ stc
+ ret
+L$58:
+ call near ptr L$64
+ cmp bx,word ptr cs:MX_CLIPY2
+ jle L$56
+ jmp near ptr L$65
+L$59:
+ call near ptr L$67
+ cmp si,word ptr cs:MX_CLIPY2
+ jg L$57
+ call near ptr L$65
+ cmp di,word ptr cs:MX_CLIPX2
+ jle L$56
+ jmp L$64
+L$60:
+ call near ptr L$70
+ cmp cx,word ptr cs:MX_CLIPX2
+ jg L$57
+ call near ptr L$64
+ cmp bx,word ptr cs:MX_CLIPY2
+ jle L$56
+ jmp L$65
+L$61:
+ call near ptr L$67
+ cmp si,word ptr cs:MX_CLIPY2
+ jg L$57
+ call near ptr L$64
+ cmp bx,word ptr cs:MX_CLIPY1
+ jl L$57
+ cmp si,word ptr cs:MX_CLIPY1
+ jge L$62
+ call near ptr L$70
+L$62:
+ cmp bx,word ptr cs:MX_CLIPY2
+ jle L$56
+ jmp L$65
+L$63:
+ mov ax,si
+ sub ax,bx
+ mov dx,word ptr cs:MX_CLIPX1
+ sub dx,di
+ imul dx
+ mov bp,cx
+ sub bp,di
+ idiv bp
+ add bx,ax
+ mov di,word ptr cs:MX_CLIPX1
+ clc
+ ret
+L$64:
+ mov ax,si
+ sub ax,bx
+ mov dx,word ptr cs:MX_CLIPX2
+ sub dx,di
+ imul dx
+ mov bp,cx
+ sub bp,di
+ idiv bp
+ add bx,ax
+ mov di,word ptr cs:MX_CLIPX2
+ clc
+ ret
+L$65:
+ mov ax,cx
+ sub ax,di
+ mov dx,word ptr cs:MX_CLIPY2
+ sub dx,bx
+ imul dx
+ mov bp,si
+ sub bp,bx
+ idiv bp
+ add di,ax
+ mov bx,word ptr cs:MX_CLIPY2
+ clc
+ ret
+L$66:
+ mov ax,cx
+ sub ax,di
+ mov dx,word ptr cs:MX_CLIPY1
+ sub dx,bx
+ imul dx
+ mov bp,si
+ sub bp,bx
+ idiv bp
+ add di,ax
+ mov bx,word ptr cs:MX_CLIPY1
+ clc
+ ret
+L$67:
+ mov ax,bx
+ sub ax,si
+ mov dx,word ptr cs:MX_CLIPX1
+ sub dx,cx
+ imul dx
+ mov bp,di
+ sub bp,cx
+ idiv bp
+ add si,ax
+ mov cx,word ptr cs:MX_CLIPX1
+ clc
+ ret
+L$68:
+ mov ax,bx
+ sub ax,si
+ mov dx,word ptr cs:MX_CLIPX2
+ sub dx,cx
+ imul dx
+ mov bp,di
+ sub bp,cx
+ idiv bp
+ add si,ax
+ mov cx,word ptr cs:MX_CLIPX2
+ clc
+ ret
+L$69:
+ mov ax,di
+ sub ax,cx
+ mov dx,word ptr cs:MX_CLIPY2
+ sub dx,si
+ imul dx
+ mov bp,bx
+ sub bp,si
+ idiv bp
+ add cx,ax
+ mov si,word ptr cs:MX_CLIPY2
+ clc
+ ret
+L$70:
+ mov ax,di
+ sub ax,cx
+ mov dx,word ptr cs:MX_CLIPY1
+ sub dx,si
+ imul dx
+ mov bp,bx
+ sub bp,si
+ idiv bp
+ add cx,ax
+ mov si,word ptr cs:MX_CLIPY1
+ clc
+ ret
+XSUBCLIPLINE:
+ push bp
+ xor si,si
+ cmp dx,word ptr cs:MX_CLIPY2
+ jle L$71
+ or si,8
+ jmp L$72
+L$71:
+ cmp dx,word ptr cs:MX_CLIPY1
+ jge L$72
+ or si,4
+L$72:
+ cmp cx,word ptr cs:MX_CLIPX2
+ jle L$73
+ or si,2
+ jmp L$74
+L$73:
+ cmp cx,word ptr cs:MX_CLIPX1
+ jge L$74
+ or si,1
+L$74:
+ cmp bx,word ptr cs:MX_CLIPY2
+ jle L$75
+ or si,80H
+ jmp L$76
+L$75:
+ cmp bx,word ptr cs:MX_CLIPY1
+ jge L$76
+ or si,40H
+L$76:
+ cmp ax,word ptr cs:MX_CLIPX2
+ jle L$77
+ or si,20H
+ jmp L$78
+L$77:
+ cmp ax,word ptr cs:MX_CLIPX1
+ jge L$78
+ or si,10H
+L$78:
+ mov di,si
+ and di,0fH
+ and si,0f0H
+ shr si,1
+ shr si,1
+ cmp di,word ptr cs:L$1[si]
+ jg L$79
+ mov si,word ptr cs:L$2[si]
+ shl di,1
+ add si,di
+ mov di,ax
+ mov si,word ptr cs:[si]
+ xchg si,dx
+ call dx
+ mov ax,di
+ mov dx,si
+ pop bp
+ ret
+L$79:
+ pop bp
+ stc
+ ret
+MX_TEXT ENDS
+ END