Normal quotes
This commit is contained in:
parent
5e10794a24
commit
18011c595a
352 changed files with 6040 additions and 6040 deletions
24
48-02.md
24
48-02.md
|
|
@ -53,10 +53,10 @@
|
|||
.code
|
||||
public _FillPatternX
|
||||
_FillPatternX proc near
|
||||
push bp ;preserve caller’s stack frame
|
||||
push bp ;preserve caller's stack frame
|
||||
mov bp,sp ;point to local stack frame
|
||||
sub sp,STACK_FRAME_SIZE ;allocate space for local vars
|
||||
push si ;preserve caller’s register variables
|
||||
push si ;preserve caller's register variables
|
||||
push di
|
||||
|
||||
cld
|
||||
|
|
@ -123,8 +123,8 @@
|
|||
sub cx,ax
|
||||
shr cx,1
|
||||
shr cx,1 ;# of addresses across rectangle to fill - 1
|
||||
jnz MasksSet ;there’s more than one pixel to draw
|
||||
and bh,bl ;there’s only one pixel, so combine the left-
|
||||
jnz MasksSet ;there's more than one pixel to draw
|
||||
and bh,bl ;there's only one pixel, so combine the left-
|
||||
; and right-edge clip masks
|
||||
MasksSet:
|
||||
mov ax,[bp+EndY]
|
||||
|
|
@ -141,27 +141,27 @@
|
|||
FillRowsLoop:
|
||||
mov cx,[bp+RectAddrWidth] ;width across - 1
|
||||
mov al,es:[si] ;read display memory to latch this scan
|
||||
; line’s pattern
|
||||
; line's pattern
|
||||
inc si ;point to the next pattern scan line, wrapping
|
||||
jnz short NoWrap ; back to the start of the pattern if
|
||||
sub si,4 ; we’ve run off the end
|
||||
sub si,4 ; we've run off the end
|
||||
NoWrap:
|
||||
mov al,bh ;put left-edge clip mask in AL
|
||||
out dx,al ;set the left-edge plane (clip) mask
|
||||
stosb ;draw the left edge (pixels come from latches;
|
||||
; value written by CPU doesn’t matter)
|
||||
; value written by CPU doesn't matter)
|
||||
dec cx ;count off left edge address
|
||||
js FillLoopBottom ;that’s the only address
|
||||
js FillLoopBottom ;that's the only address
|
||||
jz DoRightEdge ;there are only two addresses
|
||||
mov al,00fh ;middle addresses are drawn 4 pixels at a pop
|
||||
out dx,al ;set the middle pixel mask to no clip
|
||||
rep stosb ;draw the middle addresses four pixels apiece
|
||||
; (from latches; value written doesn’t matter)
|
||||
; (from latches; value written doesn't matter)
|
||||
DoRightEdge:
|
||||
mov al,bl ;put right-edge clip mask in AL
|
||||
out dx,al ;set the right-edge plane (clip) mask
|
||||
stosb ;draw the right edge (from latches; value
|
||||
; written doesn’t matter)
|
||||
; written doesn't matter)
|
||||
FillLoopBottom:
|
||||
add di,[bp+NextScanOffset] ;point to the start of the next scan
|
||||
; line of the rectangle
|
||||
|
|
@ -172,10 +172,10 @@
|
|||
mov al,0ffh ; which selects all bits from the CPU
|
||||
out dx,al ; and none from the latches (the GC
|
||||
; Index still points to Bit Mask)
|
||||
pop di ;restore caller’s register variables
|
||||
pop di ;restore caller's register variables
|
||||
pop si
|
||||
mov sp,bp ;discard storage for local variables
|
||||
pop bp ;restore caller’s stack frame
|
||||
pop bp ;restore caller's stack frame
|
||||
ret
|
||||
_FillPatternX endp
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in a new issue