.MODEL large,PASCAL .CODE .386 ; dx = Bground seg ; ax = pos seg ; si = pos ofs ; cx = font seg ; bx = font ofs Putrouts PROC FAR PUBLIC Putrouts push ds mov ds,ax mov ax,0a000h mov es,ax mov fs,cx mov gs,dx mov dx,237*31 @a: lodsw ; get byte count or ax,ax ; if 0 then hidden pixel je @ei ; next pixel mov cx,ax ; set loop value @c: lodsw ; get destination address mov di,ax mov al,byte ptr gs:[di] ; get bground pixel add al,byte ptr fs:[bx] ; add font value to pixel mov byte ptr es:[di],al ; store pixel to screen loop @c @ei: inc bx dec dx jnz @a pop ds ret Putrouts ENDP END