.model tiny .386c .code org 0100h colores equ 7 logoY equ 064h logo2X equ 0A0h logo2Y equ 064h ecartlogo2 equ 13Eh logocoordsize equ 0B40h logo2coordsize equ 26Ch zoomout equ 43h start: xor eax,eax xor ebx,ebx xor ecx,ecx xor edx,edx xor esi,esi xor edi,edi mov ax,13h int 10h mov dx,3C8h mov al,7 out dx,al inc dx xor al,al out dx,al out dx,al out dx,al mov si,offset logo2text call showstr mov ax,0A000h mov ds,ax push ds push es push cs mov di,logo2coord mov cx,logo2coordsize xor si,si xor dx,dx xor bx,bx loopcoord2: lodsb or al,al jz nothingcoord2 mov ax,dx sub ax,5Ah stosw mov ax,bx sub ax,14h stosw inc cs:nblogo2 nothingcoord2: add dx,3 cmp dx,0BAh jne short loc_3 xor dx,dx add si,102h add bx,4 loc_3: loop loopcoord2 pop ds call zerocurs mov si,offset data6 call showstr pop es pop ds mov cx,logocoordsize xor si,si xor dx,dx xor bx,bx loopcoord: lodsb or al,al jz nothingcoord mov ax,dx sub ax,32h stosw mov ax,bx shl ax,1 sub ax,1Eh stosw inc cs:nblogo nothingcoord: inc dx inc dx cmp dx,60h jne short loc_6 xor dx,dx add si,110h inc bx loc_6: loop loopcoord push ds pop es push cs pop ds masterloop: inc logox ;++++ inc data_10 mov bl,data_10 xor bh,bh mov al,data_1[bx] cbw mov data_11,ax add bl,zoomout mov al,data_1[bx] cbw mov data_12,ax mov cx,nblogo2 push cx push cx mov si,logo2coord showlogo2: lodsw mov data_7,ax lodsw mov data_8,ax mov data_9,0FFCEh push cx push si mov si,offset data_8 push si mov di,offset data_9 call sub_1 mov si,offset data_7 call sub_1 pop di call sub_1 pop si mov ax,100h imul data_7 mov bx,data_9 add bx,140h idiv bx add ax,logo2X mov bp,ax mov ax,100h imul data_8 mov bx,data_9 add bx,140h idiv bx add ax,logo2Y mov bx,140h imul bx add ax,bp mov di,ax push si sub si,logo2coord shr si,1 mov ds:data_16e[si],di pop si mov bx,data_9 mov cl,4 shr bx,cl pop cx mov al,17h sub al,bl mov ah,al stosw add di,ecartlogo2 stosw loop showlogo2 pop si shl si,1 shl si,1 add si,logo2coord mov cx,nblogo showlogo: push cx lodsw imul data_12 mov di,ax lodsw imul data_11 sub di,ax mov cl,7 sar di,cl add di,logoX mov bx,di sub si,4 lodsw imul data_11 mov di,ax lodsw imul data_12 add di,ax sar di,cl add di,logoy mov ax,140h imul di add ax,bx mov di,ax pop cx mov ax,cx shl ax,1 mov bx,data_17e add bx,ax mov [bx],di mov al,28h stosb loop showlogo mov dx,3DAh synchro: in al,dx test al,8 jnz synchro synchroagain: in al,dx test al,8 jz synchroagain mov si,data_16e pop cx add cx,nblogo add cx,14h showlogo2effect: lodsw mov di,ax xor ax,ax stosw add di,ecartlogo2 stosw loop showlogo2effect in al,60h cmp al,1 je endofprog jmp masterloop endofprog: mov ax,3 int 10h int 20h ret sub_1 proc near mov ax,[si] imul data_12 mov bp,ax mov ax,[di] imul data_11 sub bp,ax mov cl,7 sar bp,cl push bp mov ax,[si] imul data_11 mov bp,ax mov ax,[di] imul data_12 add bp,ax sar bp,cl mov [di],bp pop ax mov [si],ax retn sub_1 endp showcrlf: push ax bx mov ax, 0E0Dh xor bx, bx int 10h mov al, 0Ah int 10h pop bx ax ret zerocurs: push ax bx dx mov ah,02h mov bh,0 mov dx,0 int 10h pop dx bx ax ret showstr: push ax bx si again: lodsb or al,al jz fin cmp al,0Dh jne noret call showcrlf jmp again noret: mov ah,0Eh mov bx,colores int 10h jmp again fin: pop si bx ax ret logoX dw 0A0h ;++++ data_1 db 0 db 03h, 06h, 09h, 0Ch, 10h, 13h db 16h, 19h, 1Ch, 1Fh db '"%(+.1369