[comp.lang.pascal] Detecting AT&T PC6300 in TP5.0

reeves@dvinci (Malcolm Reeves) (11/28/90)

Someone recently asked for this? I don't know if this code works on all
PC6300's but it works on all the ones I've tested with Rev. 1.21 and Rev 1.43
Bios's. Just use InitGraph immediately after AutoDetect.

Procedure AutoDetect(Var GrDriver,GrMode: integer);
{* Works for Bios Rev 1.21 and 1.43 and maybe others :-)                   *}
{* $fc40:$000  32 char ASCIIZ string 'COPYRIGHT (C)   OLIVETTI 1984   '    *}
{* Autodetect uses the last 16 bytes to check for an AT&T6300              *}
{* Revision numbers are at $fdab:$0002 and $fd9e:$0000 respectively        *}
{* Bios release date is at $fff6:$0000                                     *}
{* Malcolm Reeves reeves@dvinci.usask.ca                                   *}
Type
  ATTString = Array[1..8] of char;
Const
  ATTBios: ATTString = ('O','L','I','V','E','T','T','I');
Var
  ATTDetect: ATTString absolute $FC05:000;
Begin
  GrDriver:=ATT400; GrMode := ATT400Hi;
  if ATTDetect<>ATTBios then GrDriver:=Detect;
End;

north@manta.NOSC.MIL (Mark H. North) (11/28/90)

In article <1990Nov27.232329.2270@herald.usask.ca> reeves@dvinci writes:
>Someone recently asked for this? I don't know if this code works on all
>PC6300's but it works on all the ones I've tested with Rev. 1.21 and Rev 1.43
>Bios's. Just use InitGraph immediately after AutoDetect.
>
>Procedure AutoDetect(Var GrDriver,GrMode: integer);
>{* Works for Bios Rev 1.21 and 1.43 and maybe others :-)                   *}
>{* $fc40:$000  32 char ASCIIZ string 'COPYRIGHT (C)   OLIVETTI 1984   '    *}
>{* Autodetect uses the last 16 bytes to check for an AT&T6300              *}
>{* Revision numbers are at $fdab:$0002 and $fd9e:$0000 respectively        *}
>{* Bios release date is at $fff6:$0000                                     *}
>{* Malcolm Reeves reeves@dvinci.usask.ca                                   *}
>Type
>  ATTString = Array[1..8] of char;
>Const
>  ATTBios: ATTString = ('O','L','I','V','E','T','T','I');
>Var
>  ATTDetect: ATTString absolute $FC05:000;
>Begin
>  GrDriver:=ATT400; GrMode := ATT400Hi;
>  if ATTDetect<>ATTBios then GrDriver:=Detect;
>End;

Sorry I think I'm coming in late on this. Another way to detect an AT&T
PC6300 is by how slow it goes and how you can't see what's on the screen
(monochrome CGA) when a program actually writes in color after being told
it's a real CGA. I guess this isn't useful though. I use mine for a boat
anchor and works good for that. 8^)






Mark