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