+——————————————+;

var

a,b: Word;

begin

{Сообщаем объем оперативной памяти}

WriteLn(MemW[0:$413],' Кбайт оперативной памяти');

{Определяем тип ПК}

if Mem[$FOOO:$FFFE] = $FC then begin {Тип AT}

WriteLn('Компьютер типа IBM AT содержит:');

Port[$70] := $14;

a := Port[$71] ;

if a and K>0 then case (a shr 6) and 3 of

0: WriteLn('- один накопитель ГМД');

1: WriteLn('- два накопителя ГМД');

end;

if a and 2 о 0 then

WriteLn('- арифметический сопроцессор');

case (a shr 4) and 3 of

0: WriteLn('- адаптер EGA или VGA');

1: WriteLn('- цветной адаптер 40х25');

2: WriteLn('- цветной адаптер 80х25');

3: WriteLn('- монохромный дисплей') end;

{Анализируем количество последовательных портов} а := 0;

for b := 0 to 3 do

if MemW[O:$4OO+b shi 2]<>0 then inc (a) ;

WriteLn('- ',a,' последовательных порта');

{Анализируем количество параллельных портов) а := 0;

for b := 0 to 3 do

if MemW[O:$408+b shi 2]<>0 then inc (a) ;

WriteLn('- '/а,' параллельных порта') end else

begin {Тип XT}

WriteLn('Компьютер типа IBM XT содержит:');

a := MemW[0:$ 410];

if a and 1<>0 then

WriteLn('- ',(a shr 6) and 3,' накопителей ГМД');

if a and 2<>0 then

WriteLn('- арифметический сопроцессор');

if a and 12<>0 then