SBuffPicFill

From AGI Wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

sbuff_fill.txt

;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

;		S u b r	o u t i	n e

_SBuffPicFill	proc near		; CODE XREF: _PicFill+8�p
		push	si
		call	_CalcScreenOff
		push	es
		mov	es, SBuff_Seg
		mov	bh, SBuffDrawMask
		mov	bl, 4Fh	; 'O'
		test	bh, 0Fh
		jz	loc_cseg_5292
		mov	dl, 0Fh
		cmp	Color_PictPart, 0Fh
		jz	fill_finish1
		jmp	short loc_cseg_52A3
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_cseg_5292:				; CODE XREF: _SBuffPicFill+12�j
		test	bh, 0F0h
		jz	fill_finish1
		mov	dl, 0F0h ; 'ð'
		cmp	Color_PriPart,	40h ; '@'
		jnz	loc_cseg_52A3

fill_finish1:				; CODE XREF: _SBuffPicFill+1B�j
					; _SBuffPicFill+22�j _SBuffPicFill+39�j
		jmp	fill_finish2
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_cseg_52A3:				; CODE XREF: _SBuffPicFill+1D�j
					; _SBuffPicFill+2B�j
		and	bl, dl
		mov	al, es:[di]
		and	al, dl
		cmp	al, bl
		jnz	fill_finish1
		push	bp
		mov	ax, 0FFFFh
		push	ax
		push	ax
		push	ax
		push	ax
		mov	left, 0A1h ; '¡'
		mov	right, 0
		mov	direction, 1
		mov	toggle,	0

loc_cseg_52CA:				; CODE XREF: _SBuffPicFill+161�j
		mov	ax, word ptr right
		mov	word ptr old_right, ax
		mov	ax, word ptr toggle
		mov	old_toggle, ax
		mov	ax, word ptr InitPicPosOrY
		mov	old_initx, ah
		mov	cl, ah
		mov	ah, PriPicCol_Odd
		test	al, 1
		jnz	loc_cseg_52EB
		mov	ah, PriPicCol_Even

loc_cseg_52EB:				; CODE XREF: _SBuffPicFill+72�j
		mov	bp, di
		xor	ch, ch
		inc	cx
		mov	al, es:[di]
		std	

loc_cseg_52F4:				; CODE XREF: _SBuffPicFill+8F�j
		or	al, bh
		and	al, ah
		stosb
		mov	al, es:[di]
		mov	dh, al
		and	dh, dl
		cmp	dh, bl
		loope	loc_cseg_52F4
		inc	di
		mov	cx, di
		sub	cx, bp
		mov	al, InitPicX
		add	cl, al
		mov	left, cl
		mov	InitPicX, cl
		xchg	bp, di
		inc	di
		mov	cx, 9Fh	; 'Ÿ'
		sub	cl, al
		cld	
		jcxz	loc_cseg_5333

loc_cseg_5321:				; CODE XREF: _SBuffPicFill+BE�j
		mov	al, es:[di]
		mov	dh, al
		and	dh, dl
		cmp	dh, bl
		jnz	loc_cseg_5333
		or	al, bh
		and	al, ah
		stosb
		loop	loc_cseg_5321

loc_cseg_5333:				; CODE XREF: _SBuffPicFill+AC�j
					; _SBuffPicFill+B7�j
		mov	ax, di
		sub	ax, bp
		dec	al
		add	al, left
		mov	right, al
		cmp	old_left, 0A1h ; '¡'
		jz	loc_cseg_5391
		cmp	al, old_right
		jz	loc_cseg_5359
		ja	loc_cseg_5376
		mov	old_initx, al
		mov	toggle,	0
		jmp	short loc_cseg_5381
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_cseg_5359:				; CODE XREF: _SBuffPicFill+D8�j
		mov	al, left
		cmp	al, old_left
		jnz	loc_cseg_5376
		cmp	toggle,	1
		jz	loc_cseg_5391
		mov	toggle,	1
		mov	al, right
		mov	old_initx, al
		jmp	short loc_cseg_5381
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_cseg_5376:				; CODE XREF: _SBuffPicFill+DA�j
					; _SBuffPicFill+ED�j
		mov	toggle,	0
		mov	al, old_right
		mov	old_initx, al

loc_cseg_5381:				; CODE XREF: _SBuffPicFill+E4�j
					; _SBuffPicFill+101�j
		push	old_toggle
		push	word ptr direction
		push	word ptr old_inity
		push	word ptr old_right

loc_cseg_5391:				; CODE XREF: _SBuffPicFill+D2�j
					; _SBuffPicFill+F4�j
		mov	al, direction
		mov	old_direction, al
		mov	al, InitPicPosOrY
		mov	old_inity, al

loc_cseg_539D:				; CODE XREF: _SBuffPicFill+1E6�j
		add	al, direction
		mov	InitPicPosOrY, al
		cmp	al, 0A7h ; '§'
		ja	loc_cseg_5413

loc_cseg_53A8:				; CODE XREF: _SBuffPicFill+19E�j
		mov	ax, word ptr InitPicPosOrY
		xor	ch, ch
		mov	cl, al
		mov	di, cx
		shl	di, 1
		shl	di, 1
		shl	di, 1
		shl	cx, 1
		add	di, cx
		shl	di, 1
		shl	di, 1
		shl	di, 1
		shl	di, 1
		xor	ch, ch
		mov	cl, ah
		add	di, cx
		mov	al, es:[di]
		mov	dh, al
		and	dh, dl
		cmp	dh, bl
		jnz	loc_cseg_53D7
		jmp	loc_cseg_52CA
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_cseg_53D7:				; CODE XREF: _SBuffPicFill+15F�j
		mov	al, InitPicX
		mov	ah, direction
		cmp	ah, old_direction
		jz	loc_cseg_5406
		cmp	toggle,	1
		jz	loc_cseg_5406
		cmp	al, stack_left
		jb	loc_cseg_5406
		mov	ah, stack_right
		cmp	al, ah
		ja	loc_cseg_5406
		mov	al, ah
		cmp	al, right
		jnb	loc_cseg_5413
		inc	al
		mov	InitPicX, al

loc_cseg_5406:				; CODE XREF: _SBuffPicFill+16F�j
					; _SBuffPicFill+176�j
					; _SBuffPicFill+17C�j
					; _SBuffPicFill+184�j
		cmp	al, right
		jnb	loc_cseg_5413
		inc	al
		mov	InitPicX, al
		jmp	short loc_cseg_53A8
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_cseg_5413:				; CODE XREF: _SBuffPicFill+133�j
					; _SBuffPicFill+18C�j
					; _SBuffPicFill+197�j
		mov	al, direction
		cmp	al, old_direction
		jnz	loc_cseg_5436
		cmp	toggle,	0
		jnz	loc_cseg_5436
		neg	al
		mov	direction, al
		mov	al, left
		mov	InitPicX, al
		mov	al, old_inity
		mov	InitPicPosOrY, al
		jmp	short loc_cseg_5450
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_cseg_5436:				; CODE XREF: _SBuffPicFill+1A7�j
					; _SBuffPicFill+1AE�j
		pop	word ptr right
		pop	word ptr InitPicPosOrY
		pop	word ptr direction
		pop	word ptr toggle
		mov	al, InitPicPosOrY
		cmp	al, 0FFh
		jz	fill_finish3
		mov	old_inity, al

loc_cseg_5450:				; CODE XREF: _SBuffPicFill+1C1�j
		mov	bp, sp
		mov	cx, [bp+0]
		mov	word ptr stack_right, cx
		jmp	loc_cseg_539D
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

fill_finish3:				; CODE XREF: _SBuffPicFill+1D8�j
		pop	bp

fill_finish2:				; CODE XREF: _SBuffPicFill+2D�j
		pop	es
		pop	si
		retn	
_SBuffPicFill	endp