home *** CD-ROM | disk | FTP | other *** search
/ Best Objectech Shareware Selections / UNTITLED.iso / boss / util / misc / 011 / page_18.pas < prev    next >
Pascal/Delphi Source File  |  1992-12-29  |  42KB  |  1,704 lines

  1. unit page_18;
  2.  
  3. interface
  4.  
  5. uses crt, dos, ifpextrn, ifpglobl, ifpcomon;
  6.  
  7. procedure page18;
  8.  
  9. implementation
  10.  
  11. const
  12.   winclass: array[0..6] of string[21] = ('vector plotter', 'raster display',
  13.               'raster printer', 'raster camera', 'character-stream, PLP',
  14.               'Metafile, VDM', 'display-file');
  15.   pcAstatus: array[$FFFC..$FFFF] of string[23] = ('resident and active',
  16.                'resident and not active', 'memory resident mode',
  17.                'automatic mode');
  18.   pcAspd: array[0..$F] of word = (50, 75, 110, 134, 150, 300, 600, 1200, 1800,
  19.             2000, 2400, 4800, 7200, 9600, 19200, 38400);
  20.   KeyScan: array[0..255] of string[5] =
  21.    {00}( '??', 'ESC',   '1',   '2',   '3',   '4',   '5',   '6',   '7',   '8',
  22.    {10}   '9',   '0',   '-',   '=',  'BS', 'TAB',   'Q',   'W',   'E',   'R',
  23.    {20}   'T',   'Y',   'U',   'I',   'O',   'P',   '[',   ']', 'ENT',  '??',
  24.    {30}   'A',   'S',   'D',   'F',   'G',   'H',   'J',   'K',   'L',   ';',
  25.    {40}  '''',   '`',  '??',   '\',   'Z',   'X',   'C',   'V',   'B',   'N',
  26.    {50}   'M',   ',',   '.',   '/', 'kp*',  '??',  '??',  'SP',  '??',  'F1',
  27.    {60}  'F2',  'F3',  'F4',  'F5',  'F6',  'F7',  'F8',  'F9', 'F10',  '??',
  28.    {70}  '??', 'HOME', 'UP','PGUP', 'kp-','LEFT', 'kp5','RIGHT','kp+', 'END',
  29.    {80}'DOWN', 'PGDN','INS', 'DEL',  'F1',  'F2',  'F3',  'F4',  'F5',  'F6',
  30.    {90}  'F7',  'F8',  'F9', 'F10',  'F1',  'F2',  'F3',  'F4',  'F5',  'F6',
  31.   {100}  'F7',  'F8',  'F9', 'F10',  'F1',  'F2',  'F3',  'F4',  'F5',  'F6',
  32.   {110}  'F7',  'F8',  'F9', 'F10',  '??','LEFT','RIGHT','END','PGDN','HOME',
  33.   {120}  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',
  34.   {130}  '??',  '??','PGUP', 'F11', 'F12', 'F11', 'F12', 'F11', 'F12', 'F11',
  35.   {140} 'F12',  'UP', 'kp-', 'kp5', 'kp+','DOWN', 'INS', 'DEL',  '??', 'kp/',
  36.   {150}  '??','HOME',  'UP','PGUP',  '??','LEFT',  '??','RIGHT', '??', 'END',
  37.   {160}'DOWN','PGDN', 'INS', 'DEL', 'kp/',  '??','kpENT', '??',  '??',  '??',
  38.   {170}  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',
  39.   {180}  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',
  40.   {190}  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',
  41.   {200}  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',
  42.   {210}  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',
  43.   {220}  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',
  44.   {230}  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',
  45.   {240}  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',  '??',
  46.   {250}  '??',  '??',  '??',  '??',  '??',  '??');
  47.  
  48. procedure page18;
  49.  
  50. type
  51.   smartdrvt = record
  52.                write_through: byte;
  53.                write_buffered: byte;
  54.                cache_enabled: byte;
  55.                drivertype: byte;
  56.                cticks: word;
  57.                locked: byte;
  58.                reboot_flush: byte;
  59.                full_track_write: byte;
  60.                buffering_type: byte;
  61.                origInt13ofs: word;
  62.                origInt13seg: word;
  63.                minorversion: byte;
  64.                majorversion: byte;
  65.                reserved: word;
  66.                secs_read: word;
  67.                secs_in_cache: word;
  68.                secs_in_trk_buf: word;
  69.                cache_hitrate: byte;
  70.                track_buf_hitrate: byte;
  71.                total_tracks: word;
  72.                tracks_used: word;
  73.                locked_tracks: word;
  74.                dirty_tracks: word;
  75.                current_size: word;
  76.                original_size: word;
  77.                minimum_size: word;
  78.                lock_pointer_ofs: word;
  79.                lock_pointer_seg: word;
  80.              end;
  81.  
  82.   fossilbuft = record
  83.                  fbufsize: word;
  84.                  spec: byte;
  85.                  rev: byte;
  86.                  idstrofs: word;
  87.                  idstrseg: word;
  88.                  inbufsize: word;
  89.                  infree: word;
  90.                  outbufsize: word;
  91.                  outfree: word;
  92.                  scrwidth: byte;
  93.                  scrlen: byte;
  94.                  baudrate: byte;
  95.                  extra: array[1..13] of byte;
  96.                end;
  97.   vfossilbuft = record
  98.                   fbufsize: word;
  99.                   ver: word;
  100.                   rev: word;
  101.                   hifunc: word
  102.                 end;
  103.   stackerbuft = record
  104.                   signature: word;
  105.                   unknown: word;
  106.                   ddofs: word;
  107.                   ddseg: word
  108.                 end;
  109.   T386maxbuf = record
  110.                  version: byte;
  111.                  signature: array[1..6] of char;
  112.                  verstr: array[1..4] of char;
  113.                  lowseg: word;
  114.                  unkw1: word;
  115.                  unkw2: word;
  116.                  flags1: word;
  117.                  unk1: array [1..16] of byte;
  118.                  int15port: word;
  119.                  int67port: word;
  120.                  unkw3: word;
  121.                  unkw4: word;
  122.                  unkd1: longint;
  123.                  unkd2: longint;
  124.                  sysconfig: word;
  125.                  unk2: array [1..8] of byte;
  126.                  flags2: word;
  127.                  flags3: word;
  128.                  flags4: word;
  129.                  unkw5: word;
  130.                  extfree: word;
  131.                  unkd3: longint;
  132.                  unkw6: word;
  133.                  unkd4: longint;
  134.                  flags5: word;
  135.                  oldint21ofs: word;
  136.                  oldint21seg: word;
  137.                  emsofs: word;
  138.                  emsseg: word;
  139.                  extra: byte;
  140.                end;
  141.  
  142. var
  143.   i : 1..63;
  144.   xbool1 : boolean;
  145.   xbool2 : boolean;
  146.   xbool3 : boolean;
  147.   xchar : char;
  148.   xword1: word;
  149.   xword2: word;
  150.   regs: registers;
  151.   QEMMid: byte;
  152.   foundit: boolean;
  153.   xbyte, xbyte2: byte;
  154.   s: string;
  155.   fossilbuf: fossilbuft;
  156.   vfossilbuf: vfossilbuft;
  157.   smartdrvbuf: smartdrvt;
  158.   stackerbuf: stackerbuft;
  159.   xlong: longint;
  160.   V386maxbuf: T386maxbuf;
  161.  
  162. function windev(device: byte): word;
  163.   var
  164.     regs: registers;
  165.     saveit: word;
  166.  
  167.   begin
  168.   with regs do
  169.     begin
  170.     AX:=$1682;
  171.     Intr($2F, regs);
  172.     AX:=$170A;
  173.     DX:=device;
  174.     Intr($2F, regs);
  175.     windev:=AX
  176.     end
  177.   end; {windev}
  178.  
  179. procedure nortonstatus(b: byte);
  180.   begin
  181.   case b of
  182.     0: Write('disabled');
  183.     1: Write('enabled')
  184.   else
  185.     Write('unknown')
  186.   end
  187.   end; {nortonstatus}
  188.  
  189.   begin (* procedure page_18 *)
  190.   caption1('----Shells and Shell enhancers----');
  191.   Writeln;
  192.   caption2('JP Software 4DOS');
  193.   with regs do
  194.     begin
  195.     AX:=$D44D;
  196.     BX:=0;
  197.     CX:=0;
  198.     DX:=0;
  199.     Intr($2F, regs);
  200.     if AX <> $44DD then
  201.       Writeln('no')
  202.     else
  203.       begin
  204.       Writeln('yes');
  205.       caption3('version');
  206.       xword1:=BH;
  207.       Write(BL, decimal);
  208.       zeropad(xword1);
  209.       caption3('shell no.');
  210.       Write(DL);
  211.       caption3('PSP segment');
  212.       Writeln(hex(CX, 4))
  213.       end;
  214.     end;
  215.   pause3(-1);
  216.   if endit then
  217.     Exit;
  218.   caption2('JP Software KSTACK.COM');
  219.   with regs do
  220.     begin
  221.     AX:=$D44F;
  222.     BX:=0;
  223.     CX:=0;
  224.     DX:=0;
  225.     Intr($2F, regs);
  226.     yesorno(AX = $44DD);
  227.     end;
  228.   pause3(-2);
  229.   if endit then
  230.     Exit;
  231.   caption2('Norton NDOS');
  232.   with regs do
  233.     begin
  234.     AX:=$E44D;
  235.     BX:=0;
  236.     CX:=0;
  237.     DX:=0;
  238.     Intr($2F, regs);
  239.     if AX <> $44EE then
  240.       Writeln('no')
  241.     else
  242.       begin
  243.       Writeln('yes');
  244.       caption3('version');
  245.       xword1:=BH;
  246.       Write(BL, decimal);
  247.       zeropad(xword1);
  248.       caption3('shell no.');
  249.       Write(DL);
  250.       caption3('PSP segment');
  251.       Writeln(hex(CX, 4))
  252.       end;
  253.     end;
  254.   pause3(-1);
  255.   if endit then
  256.     Exit;
  257.   caption2('WildUnix');
  258.   with regs do
  259.     begin
  260.     AH:=$4E;
  261.     DS:=0;
  262.     DX:=0;
  263.     MsDos(regs);
  264.     yesorno(AH = $99);
  265.     end;
  266.   pause3(-1);
  267.   if endit then
  268.     Exit;
  269.   caption2('Anarkey');
  270.   with regs do
  271.     begin
  272.     AX:=$E300;
  273.     Intr($2F, regs);
  274.     case AL of
  275.       $00: Writeln('no');
  276.       $FE: Writeln('yes; but s