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