program number_drives; { finds the number of diskette drives in PC } var pbstate, drives, mem, sysmem : integer; xt, cop, mono, color : boolean; onech : char; begin writeln; pbstate := port[97]; port[97] := 252; drives := (port[96] and $01) + ((port[96] shr 6) and $01) + 2*((port[96] shr 7) and $01); mem := port[98]; cop := ((port[96] and $02) = 2); sysmem := ((port[96] shr 2) and $3); mono := (((port[96] shr 4) and $3) = 3); color := (((port[96] shr 4) and $2) = 2) or (((port[96] shr 4) and $1) = 1); port[97] := pbstate; writeln('Co-processor: ',cop); writeln(' # of drives: ',drives); writeln(' RAM Memory: ',32*(mem and $1F) + 64,'K'); if sysmem < 4 then else writeln( chr(7),'ERROR: Switch bank 1 must have sections 3 & 4 OFF'); if mono then writeln('Monochrome Adapter'); if color then writeln('Color Adapter') end.