EGAPutBlock

From AGI Wiki
Jump to navigationJump to search

ega_putblock.txt

;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

;		S u b r	o u t i	n e

_EGAPutBlock	proc near		; CODE XREF: j_EGAPutBlock�j
		mov	cx, bx
		call	_CalcScreenOff
		mov	si, di
		call	_FrameBuffOff
		mov	bx, cx
		mov	bp, di
		push	ds
		push	es
		mov	es, wFBufSeg

hgc_crapola:				; CODE XREF: _SBuffFillAX+14�p
					; _ShowPic+35�p	_RenderPic+29�p
		mov	ds, SBuff_Seg
		call	_SetWM2
		and	ah, 3
		xor	di, di
		mov	cx, di
		mov	cl, ah
		jcxz	loc_cseg_97F1

loc_cseg_97EB:				; CODE XREF: _EGAPutBlock+2A�j
		add	di, 0Ch
		loop	loc_cseg_97EB

loc_cseg_97F1:				; CODE XREF: _EGAPutBlock+24�j
		add	di, offset pixel0
		mov	cx, di
		mov	ah, bl
		mov	di, bp
		jmp	cx
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

pixel0:					; CODE XREF: _EGAPutBlock+65�j
					; DATA XREF: _EGAPutBlock+2C�o
		mov	al, 0C0h ; 'À'
		out	dx, al
		mov	al, es:[di]
		movsb
		dec	ah
		jz	loc_cseg_982C
		dec	di

pixel1:
		mov	al, 30h	; '0'
		out	dx, al
		mov	al, es:[di]
		movsb
		dec	ah
		jz	loc_cseg_982C
		dec	di

pixel2:
		mov	al, 0Ch
		out	dx, al
		mov	al, es:[di]
		movsb
		dec	ah
		jz	loc_cseg_982C
		dec	di

pixel3:
		mov	al, 3
		out	dx, al
		mov	al, es:[di]
		movsb
		dec	ah
		jnz	pixel0

loc_cseg_982C:				; CODE XREF: _EGAPutBlock+41�j
					; _EGAPutBlock+4D�j _EGAPutBlock+59�j
		dec	bh
		jz	loc_cseg_9841
		mov	al, bl
		sub	si, 0A0h ; ' '
		sub	si, ax
		sub	bp, 28h	; '('
		mov	di, bp
		mov	ah, bl
		jmp	cx
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

loc_cseg_9841:				; CODE XREF: _EGAPutBlock+69�j
		call	_SetWM0
		pop	es
		pop	ds
		retn	
_EGAPutBlock	endp