SBuffPicFill
From AGI Wiki
Jump to navigationJump to search;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ; 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