3.3 Real Mode

_asm

{

PUSH BX

PUSH ES

PUSH AX

MOV BXjSegmentFIx

MOV ES.BX

MOV BX.OxO

ADD BX,0x3

MOV AX,sizGFix

MOV ES:[BX],AX

POP AX

POP ES

POP BX

}

return;

)

Our finished program traverses the MCB chain and hides every program

whose name begins with two dollar signs (e.g., $$myTSR.com).

struct MCBHeader mcbHeader;

struct MCBHeader oldHeader;

mcbHeader = getFirstMCB[);

oldHeader = mcbHeader;

printMCB(nicbHeader.TTcb);

wh 11 e

(

((mcbHeader.mcb).type != MCB_TYPE_END) &&

((mcbHeader.mcb).type == MCB_TYPE_NOTEND)

)

{

mcbHeader = getNextMCB(mcbHeader.address.mcbHeader.mcb);

printMCB(mcbHeader.mcb);

if

(

((mcbHeader.mcb).name[0]=='$')

&& ((mcbHeader.mcb).name[l]=='$')

)

{

printf("Hiding program: %s\n",(mcbHeader.mcb).name);

hideApp(oldHeader,mcbHeader);

1

el SG

{

oldHeader = mcbHeader;

Parti I 81