*** empty log message ***

This commit is contained in:
stainless
2001-11-15 23:21:30 +00:00
parent 1e2ed3b259
commit 8017267e82

View File

@@ -19,6 +19,50 @@
SECTION .text
%macro FilterTest 1
cmp byte[GUIOn],1
jne %%nogui
cmp byte[FilteredGUI],1
jne %%nofilter
%%nogui
cmp byte[antienab],1
je near %1
%%nofilter
%endmacro
%macro SSInterpLine 0
mov ax,[esi]
mov [es:edi],ax
add esi,byte 2
add edi,byte 2
mov ecx,254
%%loopb
mov ax,[esi]
mov bx,[esi-2]
cmp ax,bx
jne %%loopb2
mov [es:edi],ax
mov [es:edi-2],bx
jmp %%loopb3
%%loopb2
shr ax,byte 1
shr bx,byte 1
and ax,7befh
and bx,7befh
add ax,bx
mov [es:edi],ax
mov [es:edi-2],ax
%%loopb3
add esi,byte 2
add edi,byte 2
dec ecx
jnz %%loopb
mov ax,[esi]
mov [es:edi],ax
add esi,byte 2
add edi,byte 2
%endmacro
%macro FlipCheck 0
cmp byte[FlipWait],0
je %%noflip
@@ -310,54 +354,54 @@ ScreenShow:
.startcopy
jmp copymodeq256
NEWSYM dosvidpastecopyscr
cmp byte[curblank],40h
je .nocopy
call GUITripleBuffer
.nocopy
call ScreenShowGUI
ret
;NEWSYM dosvidpastecopyscr
; cmp byte[curblank],40h
; je .nocopy
; call GUITripleBuffer
;.nocopy
; call ScreenShowGUI
; ret
ScreenShowGUI:
cmp byte[cvidmode],0
je near copymodeq224
cmp byte[cvidmode],1
je near copymodeq240
cmp byte[cvidmode],2
je near copymodeq256
cmp byte[cvidmode],3
je near copymodex224
cmp byte[cvidmode],4
je near copymodex240
cmp byte[cvidmode],5
je near copymodex256
cmp byte[cvidmode],6
je near copyvesa12640x480x16bgui
cmp byte[cvidmode],7
je near copyvesa2320x240x8b
cmp byte[cvidmode],8
je near copyvesa2320x240x16bgui
cmp byte[cvidmode],9
je near copyvesa2320x480x8bgui
cmp byte[cvidmode],10
je near copyvesa2320x480x16bgui
cmp byte[cvidmode],11
je near copyvesa2512x384x8b
cmp byte[cvidmode],12
je near copyvesa2512x384x16bgui
cmp byte[cvidmode],13
je near copyvesa2640x400x8b
cmp byte[cvidmode],14
je near copyvesa2640x400x16b
cmp byte[cvidmode],15
je near copyvesa2640x480x8bgui
cmp byte[cvidmode],16
je near copyvesa2640x480x16bgui
cmp byte[cvidmode],17
je near copyvesa2800x600x8b
cmp byte[cvidmode],18
je near copyvesa2800x600x16b
jmp copymodeq256
;ScreenShowGUI:
; cmp byte[cvidmode],0
; je near copymodeq224
; cmp byte[cvidmode],1
; je near copymodeq240
; cmp byte[cvidmode],2
; je near copymodeq256
; cmp byte[cvidmode],3
; je near copymodex224
; cmp byte[cvidmode],4
; je near copymodex240
; cmp byte[cvidmode],5
; je near copymodex256
; cmp byte[cvidmode],6
; je near copyvesa12640x480x16bgui
; cmp byte[cvidmode],7
; je near copyvesa2320x240x8b
; cmp byte[cvidmode],8
; je near copyvesa2320x240x16bgui
; cmp byte[cvidmode],9
; je near copyvesa2320x480x8bgui
; cmp byte[cvidmode],10
; je near copyvesa2320x480x16bgui
; cmp byte[cvidmode],11
; je near copyvesa2512x384x8b
; cmp byte[cvidmode],12
; je near copyvesa2512x384x16bgui
; cmp byte[cvidmode],13
; je near copyvesa2640x400x8b
; cmp byte[cvidmode],14
; je near copyvesa2640x400x16b
; cmp byte[cvidmode],15
; je near copyvesa2640x480x8bgui
; cmp byte[cvidmode],16
; je near copyvesa2640x480x16bgui
; cmp byte[cvidmode],17
; je near copyvesa2800x600x8b
; cmp byte[cvidmode],18
; je near copyvesa2800x600x16b
; jmp copymodeq256
%endif
@@ -717,7 +761,8 @@ NEWSYM copyvesa2320x240x8b
add esi,16+256+16+16
xor eax,eax
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
cmp byte[ScreenScale],1
je .fullscreen
@@ -746,11 +791,6 @@ NEWSYM copyvesa2320x240x8b
.fsloopa
mov ecx,256/4
jmp .fsloopb
.fsloopa2
add esi,16+16
dec dl
jnz .fsloopa
jmp .done
.fsloopb
mov eax,[esi]
mov [es:edi],al
@@ -759,7 +799,9 @@ NEWSYM copyvesa2320x240x8b
add edi,byte 5
dec ecx
jnz .fsloopb
jmp .fsloopa2
add esi,16+16
dec dl
jnz .fsloopa
.done
pop es
@@ -770,8 +812,8 @@ NEWSYM copyvesa2320x240x8b
; Copy VESA2 320x480x8b Copies buffer to 320x480x8bVBE2
;*******************************************************
NEWSYM copyvesa2320x480x8bgui
jmp copyvesa2320x480x8b
;NEWSYM copyvesa2320x480x8bgui
; jmp copyvesa2320x480x8b
; mov byte[CurrentGUIOn],1
; jmp copyvesa2320x480x8b.nogui
@@ -796,7 +838,8 @@ NEWSYM copyvesa2320x480x8b
add esi,16+256+16+16
xor eax,eax
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
cmp byte[ScreenScale],1
je near .fullscreen
cmp byte[scanlines],1
@@ -1012,7 +1055,8 @@ NEWSYM copyvesa2800x600x8b
add esi,16+256+16+16
xor eax,eax
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
cmp byte[ScreenScale],1
je near .fullscreen
cmp byte[smallscreenon],1
@@ -1151,7 +1195,8 @@ NEWSYM copyvesa2800x600x16b
add esi,16*2+256*2+16*2+16*2
xor eax,eax
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
cmp byte[ScreenScale],1
je near .fullscreen
cmp byte[smallscreenon],1
@@ -1294,7 +1339,8 @@ NEWSYM copyvesa2640x400x8b
add esi,16+256+16+16
xor eax,eax
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
cmp byte[ScreenScale],1
je near .fullscreen
cmp byte[smallscreenon],1
@@ -1313,14 +1359,15 @@ NEWSYM copyvesa2640x400x8b
call .loopa2
add esi,16+16
add edi,64+64
sub dl,2
dec dl
dec dl
jnz .loopa
jmp .done
.loopa2
mov al,[esi]
mov [es:edi],al
inc esi
mov [es:edi+1],al
inc esi
add edi,byte 2
dec ecx
jnz .loopa2
@@ -1360,7 +1407,8 @@ NEWSYM copyvesa2640x400x8b
mov ecx,256/4
call .fsloopb
add esi,16+16
sub dl,2
dec dl
dec dl
jnz .fsloopa
jmp .done
.fsloopb
@@ -1406,7 +1454,8 @@ NEWSYM copyvesa2640x400x16b
add esi,16*2+256*2+16*2+16*2
xor eax,eax
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
cmp byte[ScreenScale],1
je near .fullscreen
cmp byte[smallscreenon],1
@@ -1425,7 +1474,8 @@ NEWSYM copyvesa2640x400x16b
call .loopa2
add esi,16*2+16*2
add edi,64*2+64*2
sub dl,2
dec dl
dec dl
jnz .loopa
jmp .done
.loopa2
@@ -1472,7 +1522,8 @@ NEWSYM copyvesa2640x400x16b
mov ecx,256/4
call .fsloopb
add esi,16*2+16*2
sub dl,2
dec dl
dec dl
jnz .fsloopa
jmp .done
.fsloopb
@@ -1538,14 +1589,9 @@ NEWSYM copyvesa2640x480x8b
je near smallscreen640x480x8b
cmp byte[ScreenScale],1
je near smallscreen640x480x8b.fullscreen
cmp byte[GUIOn],1
jne .nogui
cmp byte[FilteredGUI],1
jne .noeagle
.nogui
cmp byte[antienab],1
je near proceagle
.noeagle
FilterTest proceagle
cmp byte[scanlines],1
je near copyvesa2640x480x8bs
mov byte[res640],1
@@ -1575,7 +1621,8 @@ NEWSYM copyvesa2640x480x8b
xor eax,eax
mov ebx,hirestiledat+1
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
.loopa
cmp byte[Triplebufen],1
je .ignorehr
@@ -1663,7 +1710,8 @@ NEWSYM copyvesa2640x480x8ng
xor eax,eax
mov ebx,1
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
.loopa
mov ecx,256
cmp dword[ignor512],0
@@ -1896,7 +1944,8 @@ NEWSYM smallscreen640x480x8b
xor eax,eax
mov ebx,hirestiledat+1
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
.loopa
mov ecx,64
rep movsd
@@ -1927,7 +1976,8 @@ NEWSYM smallscreen640x480x8b
xor eax,eax
mov ebx,hirestiledat+1
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
cmp byte[scanlines],1
je near .scanlines
.loopa3
@@ -2000,7 +2050,8 @@ NEWSYM copyvesa2640x480x8bs
xor eax,eax
mov ebx,hirestiledat+1
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
cmp byte[CurrentGUIOn],1
je .loopa
cmp byte[ForceNewGfxOff],0
@@ -2350,7 +2401,8 @@ NEWSYM copyvesa2512x384x8b
xor eax,eax
mov ebx,hirestiledat+1
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
xor dh,dh
.loopa
mov al,[ebx]
@@ -2436,7 +2488,8 @@ NEWSYM copyvesa2512x384x8b
.ssres239
xor eax,eax
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
cmp byte[MMXSupport],1
je .ssloopb
.ssloopa
@@ -2481,7 +2534,8 @@ NEWSYM copyvesa2512x384x8ng
xor eax,eax
mov ebx,1
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
xor dh,dh
.loopa
cmp dword[ignor512],0
@@ -2549,8 +2603,7 @@ SECTION .text
;*******************************************************
copyvesa2320x240x16bgui:
jmp copyvesa2320x240x16b
;copyvesa2320x240x16bgui:
; cmp byte[curblank],40h
; jne .startcopy
; ret
@@ -2654,17 +2707,12 @@ NEWSYM copyvesa2320x240x16b
add esi,16*2+256*2+16*2+16*2
xor eax,eax
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
cmp byte[ScreenScale],1
je near .fullscreen
cmp byte[GUIOn],1
jne .nogui
cmp byte[FilteredGUI],1
jne .nointerp
.nogui
cmp byte[antienab],1
je near .interpolate
.nointerp
FilterTest .interpolate
cmp byte[MMXSupport],1
je near .loopb
@@ -2690,12 +2738,6 @@ NEWSYM copyvesa2320x240x16b
sub edi,32*2
.fsloopa
mov ecx,256/4
jmp .fsloopb
.fsloopa2
add esi,16*2+16*2
dec dl
jnz .fsloopa
jmp .done
.fsloopb
mov eax,[esi]
mov [es:edi],ax
@@ -2705,69 +2747,37 @@ NEWSYM copyvesa2320x240x16b
movsd
dec ecx
jnz .fsloopb
jmp .fsloopa2
add esi,16*2+16*2
dec dl
jnz .fsloopa
jmp .done
.interpolate
;cmp byte[ScreenScale],1
;je .infsloopa
.inloopa
mov ax,[esi]
mov [es:edi],ax
add esi,byte 2
add edi,byte 2
mov ecx,254
jmp .inloopb
.inloopa2
mov ax,[esi]
mov [es:edi],ax
add esi,32*2+2
add edi,64*2+2
SSInterpLine
add esi,16*2+16*2
add edi,32*2+32*2
dec dl
jnz .inloopa
jmp .done
.inloopb
mov ax,[esi]
mov bx,[esi-2]
cmp ax,bx
jne .inloopb2
mov [es:edi],ax
mov [es:edi-2],bx
jmp .inloopb3
.inloopb2
shr ax,byte 1
shr bx,byte 1
and ax,7befh
and bx,7befh
add ax,bx
mov [es:edi],ax
mov [es:edi-2],ax
jmp .inloopb3
.inloopb3
add esi,byte 2
add edi,byte 2
dec ecx
jnz .inloopb
jmp .inloopa2
jnz .interpolate
.done
pop es
ret
SECTION .bss
NEWSYM palresvalng, resd 2
NEWSYM palresvalngb, resd 2
SECTION .text
;SECTION .bss
;NEWSYM palresvalng, resd 2
;NEWSYM palresvalngb, resd 2
;SECTION .text
%macro copya320x240 0
mov [es:edi],dx
%endmacro
;%macro copya320x240 0
; mov [es:edi],dx
;%endmacro
%macro copyb320x240 0
mov [es:edi+2],dx
%endmacro
;%macro copyb320x240 0
; mov [es:edi+2],dx
;%endmacro
%endif
SECTION .bss ALIGN = 32
SECTION .bss ;ALIGN = 32
NEWSYM rescompareng, resd 1
NEWSYM nextdrawallng, resd 1
NEWSYM prevcol0ng, resd 1
@@ -2782,8 +2792,7 @@ SECTION .text
; Copy VESA2 320x480x16b Copies buffer to 320x480x16bVB2
;*******************************************************
NEWSYM copyvesa2320x480x16bgui
jmp copyvesa2320x480x16b
;NEWSYM copyvesa2320x480x16bgui
; cmp byte[curblank],40h
; jne .startcopy
; ret
@@ -2951,7 +2960,8 @@ NEWSYM ConvertToAFormat
mov esi,[vidbuffer]
add esi,16*2+256*2+32*2
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
cmp byte[MMXSupport],1
je near .mmxconv
.crgbloop
@@ -2998,7 +3008,8 @@ NEWSYM UnConvertToAFormat
mov esi,[vidbuffer]
add esi,16*2+256*2+32*2
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
.crgbloop
mov ecx,128
.crgbloop2
@@ -3022,6 +3033,7 @@ NEWSYM copyvesa2320x480x16b
cmp byte[curblank],40h
jne .startcopy
ret
.startcopy
; mov eax,[vesa2_clbitng2]
; mov [vesavaland],eax
@@ -3043,17 +3055,13 @@ NEWSYM copyvesa2320x480x16b
add esi,16*2+256*2+16*2+16*2
xor eax,eax
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
cmp byte[ScreenScale],1
je near .fullscreen
cmp byte[GUIOn],1
jne .nogui
cmp byte[FilteredGUI],1
jne .nointerp
.nogui
cmp byte[antienab],1
je near .interpolate
.nointerp
FilterTest .interpolate
cmp byte[scanlines],1
je near .scanlines
cmp byte[scanlines],3
@@ -3111,47 +3119,32 @@ NEWSYM copyvesa2320x480x16b
jmp .done
.halfscanlines
;cmp byte[MMXSupport],1
;je .hsloopb
;cmp byte[MMXSupport]
;je near .hsloopb
.hsloopa
mov ecx,256/4*2
rep movsd
sub esi,256*2
add edi,32*2+32*2
mov ecx,256/4
jmp .hsloopa3
mov ecx,256/2
.hsloopa2
mov ax,[esi]
mov bx,[esi+2]
shr ax,byte 1
shr bx,byte 1
and ax,7befh
and bx,7befh
mov [es:edi],ax
mov [es:edi+2],bx
add esi,byte 4
add edi,byte 4
dec ecx
jnz .hsloopa2
add esi,16*2+16*2
add edi,32*2+32*2
dec dl
jnz .hsloopa
jmp .done
.hsloopa3
push ecx
push edx
mov ax,[esi]
mov bx,[esi+2]
mov cx,[esi+4]
mov dx,[esi+6]
shr ax,byte 1
shr bx,byte 1
shr cx,byte 1
shr dx,byte 1
and ax,7befh
and bx,7befh
and cx,7befh
and dx,7befh
mov [es:edi],ax
mov [es:edi+2],bx
mov [es:edi+4],cx
mov [es:edi+6],dx
pop edx
pop ecx
add esi,byte 8
add edi,byte 8
dec ecx
jnz .hsloopa3
jmp .hsloopa2
.quartscanlines
;cmp byte[MMXSupport],1
@@ -3162,14 +3155,7 @@ NEWSYM copyvesa2320x480x16b
sub esi,256*2
add edi,32*2+32*2
mov ecx,256/2
jmp .qsloopa3
.qsloopa2
add esi,16*2+16*2
add edi,32*2+32*2
dec dl
jnz .qsloopa
jmp .done
.qsloopa3
push ecx
push edx
mov ax,[esi]
@@ -3189,8 +3175,12 @@ NEWSYM copyvesa2320x480x16b
add esi,byte 4
add edi,byte 4
dec ecx
jnz .qsloopa3
jmp .qsloopa2
jnz .qsloopa2
add esi,16*2+16*2
add edi,32*2+32*2
dec dl
jnz .qsloopa
jmp .done
.fullscreen
sub edi,32*2
@@ -3249,29 +3239,27 @@ NEWSYM copyvesa2320x480x16b
jnz .fsloopb
ret
.fsloopb2
push ecx
push edx
mov ax,[esi]
mov bx,[esi+2]
mov cx,[esi+4]
mov dx,[esi+6]
shr ax,byte 1
shr bx,byte 1
shr cx,byte 1
shr dx,byte 1
and ax,7befh
and bx,7befh
and cx,7befh
and dx,7befh
mov [es:edi],ax
mov [es:edi+2],ax
mov [es:edi+4],bx
mov [es:edi+6],cx
mov [es:edi+8],dx
pop edx
pop ecx
add esi,byte 8
add edi,byte 8+2
add esi,byte 4
add edi,byte 6
mov ax,[esi]
mov bx,[esi+2]
shr ax,byte 1
shr bx,byte 1
and ax,7befh
and bx,7befh
mov [es:edi],ax
mov [es:edi+2],bx
add esi,byte 4
add edi,byte 4
dec ecx
jnz .fsloopb2
ret
@@ -3291,8 +3279,10 @@ NEWSYM copyvesa2320x480x16b
mov [es:edi],ax
mov [es:edi+2],ax
mov [es:edi+4],bx
mov ax,[esi+4]
mov bx,[esi+6]
add esi,byte 4
add edi,byte 6
mov ax,[esi]
mov bx,[esi+2]
mov cx,ax
mov dx,bx
shr cx,byte 2
@@ -3301,77 +3291,35 @@ NEWSYM copyvesa2320x480x16b
and dx,39e7h
sub ax,cx
sub bx,dx
mov [es:edi+6],ax
mov [es:edi+8],bx
mov [es:edi],ax
mov [es:edi+2],bx
add esi,byte 4
add edi,byte 4
pop edx
pop ecx
add esi,byte 8
add edi,byte 8+2
dec ecx
jnz .fsloopb3
ret
.interpolate
cmp byte[scanlines],1
je .inloopa2
je near .inloopa2
.inloopa
mov ax,[esi]
mov [es:edi],ax
add esi,byte 2
add edi,byte 2
mov ecx,254
call .inloopb
mov ax,[esi]
mov [es:edi],ax
sub esi,256*2-2
add edi,64*2+2
mov ax,[esi]
mov [es:edi],ax
add esi,byte 2
add edi,byte 2
mov ecx,254
call .inloopb
add esi,32*2+2
add edi,64*2+2
SSInterpLine
sub esi,256*2
add edi,32*2+32*2
SSInterpLine
add esi,16*2+16*2
add edi,32*2+32*2
dec dl
jnz .inloopa
jnz near .inloopa
jmp .done
.inloopa2
mov ax,[esi]
mov [es:edi],ax
add esi,byte 2
add edi,byte 2
mov ecx,254
call .inloopb
mov ax,[esi]
mov [es:edi],ax
add esi,16*2+16*2+2
add edi,32*2+320*2+32*2+2
SSInterpLine
add esi,16*2+16*2
add edi,32*2+320*2+32*2
dec dl
jnz .inloopa2
jmp .done
.inloopb
mov ax,[esi]
mov bx,[esi-2]
cmp ax,bx
jne .inloopb2
mov [es:edi],ax
mov [es:edi-2],bx
jmp .inloopb3
.inloopb2
shr ax,byte 1
shr bx,byte 1
and ax,7befh
and bx,7befh
add ax,bx
mov [es:edi],ax
mov [es:edi-2],ax
.inloopb3
add esi,byte 2
add edi,byte 2
dec ecx
jnz .inloopb
ret
.done
pop es
@@ -3431,8 +3379,7 @@ NEWSYM copyvesa2320x480x16b
%%nobankswitch
%endmacro
NEWSYM copyvesa12640x480x16bgui
jmp copyvesa12640x480x16b
;NEWSYM copyvesa12640x480x16bgui
; cmp byte[curblank],40h
; jne .startcopy
; ret
@@ -3553,8 +3500,7 @@ VESA12Bankswitch:
sub edi,65536
ret
NEWSYM copyvesa2640x480x16bgui
jmp copyvesa2640x480x16b
;NEWSYM copyvesa2640x480x16bgui
; je near smallscreen640x480x16bgui.fullscreen
; cmp byte[curblank],40h
; jne .startcopy
@@ -3878,7 +3824,8 @@ NEWSYM copyvesa2640x480x16b
je near interpolate640x480x16b
.nointerp
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
cmp byte[scanlines],1
je near .scanlines
cmp byte[scanlines],3
@@ -4610,7 +4557,8 @@ Process2xSaI:
; add edi,[VESAAddr]
mov dl,[resolutn]
sub dl,2 ; Compensate for top/bottom line + 2 lines in 2xSaI
dec dl
dec dl ; Compensate for top/bottom line + 2 lines in 2xSaI
mov byte[lineleft],dl
mov dword[esi+512],0
mov dword[esi+512+576*2],0
@@ -4763,7 +4711,8 @@ NEWSYM smallscreen640x480x16b
xor eax,eax
mov ebx,hirestiledat+1
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
.loopa
mov ecx,128
rep movsd
@@ -4800,7 +4749,8 @@ NEWSYM smallscreen640x480x16b
add esi,16*2+256*2+32*2
xor eax,eax
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
cmp byte[scanlines],1
je near .scanlines
.loopa2
@@ -5713,8 +5663,7 @@ SECTION .text
; Copy VESA2 512x384x16b Copies buffer to 512x384x16bV2
;*******************************************************
NEWSYM copyvesa2512x384x16bgui
jmp copyvesa2512x384x16b
;NEWSYM copyvesa2512x384x16bgui
; cmp byte[curblank],40h
; jne .startcopy
; ret
@@ -5797,7 +5746,8 @@ NEWSYM copyvesa2512x384x16b
xor eax,eax
mov ebx,hirestiledat+1
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
xor dh,dh
.loopa
mov al,[ebx]
@@ -5881,7 +5831,8 @@ NEWSYM copyvesa2512x384x16b
.ssres239
xor eax,eax
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
cmp byte[MMXSupport],1
je .ssloopb
.ssloopa
@@ -6202,7 +6153,8 @@ NEWSYM copyvesa12640x480x16b
; Check if interpolation mode
.nommx
mov dl,[resolutn]
sub dl,2
dec dl
dec dl
mov [lineleft],dl
mov edx,65536
sub edx,edi