SecondReality/FOREST/ROUTINES.ASM
2017-09-24 01:45:36 +02:00

40 lines
1.1 KiB
NASM

.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