SBuffPicFill

From AGI Wiki
Jump to: navigation, search

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