Replace invalid characters with HTML entities
— with — ’ with ’ + with + × with x ç with ç “ with “ ” with ” ‘ with ‘ • with • – with - µ with µ † with † Fix C++ θ with θ Yen symbol instead of times Fix broken apos Bullet again E-circumflex
This commit is contained in:
parent
9e52de9586
commit
500e7f5654
353 changed files with 5091 additions and 5091 deletions
32
57-03.html
32
57-03.html
|
|
@ -74,7 +74,7 @@ SourceX dd ? ;X location in source for this edge
|
|||
SourceY dd ? ;Y location in source for this edge
|
||||
SourceStepX dd ? ;X step in source for Y step in dest of 1
|
||||
SourceStepY dd ? ;Y step in source for Y step in dest of 1
|
||||
;variables used for all-integer Bresenham’s-type
|
||||
;variables used for all-integer Bresenham’s-type
|
||||
; X stepping through the dest, needed for precise
|
||||
; pixel placement to avoid gaps
|
||||
DestX dw ? ;current X location in dest for this edge
|
||||
|
|
@ -114,10 +114,10 @@ ToScanDone:
|
|||
public -ScanOutLine
|
||||
align 2
|
||||
-ScanOutLine proc near
|
||||
push bp ;preserve caller’s stack frame
|
||||
push bp ;preserve caller’s stack frame
|
||||
mov bp,sp ;point to our stack frame
|
||||
sub sp,LOCAL-SIZE ;allocate space for local variables
|
||||
push si ;preserve caller’s register variables
|
||||
push si ;preserve caller’s register variables
|
||||
push di
|
||||
; Nothing to do if destination is fully X clipped.
|
||||
mov di,[bp].RightEdge
|
||||
|
|
@ -162,7 +162,7 @@ ToScanDone:
|
|||
cmp ax,0 ;is the whole step exactly an integer?
|
||||
jz SourceXNonNeg ;yes
|
||||
inc dx ;no, truncate to integer in the direction of
|
||||
; 0, because otherwise we’ll end up with a
|
||||
; 0, because otherwise we’ll end up with a
|
||||
; whole step of 1-too-large magnitude
|
||||
SourceXNonNeg:
|
||||
mov [bp].lXAdvanceByOne,cx ;amount to add to source pointer to
|
||||
|
|
@ -190,7 +190,7 @@ SourceXNonNeg:
|
|||
cmp ax,0 ;is the whole step exactly an integer?
|
||||
jz SourceYNonNeg ;yes
|
||||
inc dx ;no, truncate to integer in the direction of
|
||||
; 0, because otherwise we’ll end up with a
|
||||
; 0, because otherwise we’ll end up with a
|
||||
; whole step of 1-too-large magnitude
|
||||
SourceYNonNeg:
|
||||
mov [bp].lYAdvanceByOne,cx ;amount to add to source pointer to
|
||||
|
|
@ -199,9 +199,9 @@ SourceYNonNeg:
|
|||
imul dx ; image bitmap when Y steps (ignoring
|
||||
mov [bp].lYBaseAdvance,ax ; carry from the fractional part)
|
||||
; Advance 1/2 step in the stepping direction, to space scanned pixels evenly
|
||||
; between the left and right edges. (There’s a slight inaccuracy in dividing
|
||||
; between the left and right edges. (There’s a slight inaccuracy in dividing
|
||||
; negative numbers by 2 by shifting rather than dividing, but the inaccuracy
|
||||
; is in the least significant bit, and we’ll just live with it.)
|
||||
; is in the least significant bit, and we’ll just live with it.)
|
||||
mov ax,word ptr [bp].lSourceStepX
|
||||
mov dx,word ptr [bp].lSourceStepX+2
|
||||
sar dx,1
|
||||
|
|
@ -277,13 +277,13 @@ LeftEdgeClipped:
|
|||
add di,[-CurrentPageBase] ;offset of pixel in display memory
|
||||
;ES:DI now points to the first destination pixel
|
||||
|
||||
and cl,011b ;CL = pixel’s plane
|
||||
and cl,011b ;CL = pixel’s plane
|
||||
mov al,MAP-MASK
|
||||
mov dx,SC-INDEX
|
||||
out dx,al ;point the SC Index register to the Map Mask
|
||||
mov al,11h ;one plane bit in each nibble, so we’ll get carry
|
||||
mov al,11h ;one plane bit in each nibble, so we’ll get carry
|
||||
; automatically when going from plane 3 to plane 0
|
||||
shl al,cl ;set the bit for the first pixel’s plane to 1
|
||||
shl al,cl ;set the bit for the first pixel’s plane to 1
|
||||
; If source X step is negative, change over to working with non-negative
|
||||
; values.
|
||||
cmp word ptr [bp].lXAdvanceByOne,0
|
||||
|
|
@ -299,13 +299,13 @@ SXStepSet:
|
|||
not word ptr [bp].lSourceY
|
||||
SYStepSet:
|
||||
; At this point:
|
||||
; AL = initial pixel’s plane mask
|
||||
; AL = initial pixel’s plane mask
|
||||
; BX = pointer to initial image pixel
|
||||
; SI = # of pixels to fill
|
||||
; DI = pointer to initial destination pixel
|
||||
mov dx,SC-INDEX+1 ;point to SC Data; Index points to Map Mask
|
||||
TexScanLoop:
|
||||
; Set the Map Mask for this pixel’s plane, then draw the pixel.
|
||||
; Set the Map Mask for this pixel’s plane, then draw the pixel.
|
||||
out dx,al
|
||||
mov ah,[bx] ;get image pixel
|
||||
mov es:[di],ah ;set image pixel
|
||||
|
|
@ -313,13 +313,13 @@ TexScanLoop:
|
|||
add bx,[bp].lXBaseAdvance ;advance the minimum # of pixels in X
|
||||
mov cx,word ptr [bp].lSourceStepX
|
||||
add word ptr [bp].lSourceX,cx;step the source X fractional part
|
||||
jnc NoExtraXAdvance ;didn’t turn over; no extra advance
|
||||
jnc NoExtraXAdvance ;didn’t turn over; no extra advance
|
||||
add bx,[bp].lXAdvanceByOne ;did turn over; advance X one extra
|
||||
NoExtraXAdvance:
|
||||
add bx,[bp].lYBaseAdvance;advance the minimum # of pixels in Y
|
||||
mov cx,word ptr [bp].lSourceStepY
|
||||
add word ptr [bp].lSourceY,cx;step the source Y fractional part
|
||||
jnc NoExtraYAdvance;didn’t turn over; no extra advance
|
||||
jnc NoExtraYAdvance;didn’t turn over; no extra advance
|
||||
add bx,[bp].lYAdvanceByOne;did turn over; advance Y one extra
|
||||
NoExtraYAdvance:
|
||||
; Point to the next destination pixel, by cycling to the next plane, and
|
||||
|
|
@ -330,10 +330,10 @@ NoExtraYAdvance:
|
|||
dec si
|
||||
jnz TexScanLoop
|
||||
ScanDone:
|
||||
pop di ;restore caller’s register variables
|
||||
pop di ;restore caller’s register variables
|
||||
pop si
|
||||
mov sp,bp ;deallocate local variables
|
||||
pop bp ;restore caller’s stack frame
|
||||
pop bp ;restore caller’s stack frame
|
||||
ret
|
||||
-ScanOutLine endp
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in a new issue