home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 15 / CD_ASCQ_15_070894.iso / vrac / sk210f.zip / TESTBETW.PAS < prev    next >
Pascal/Delphi Source File  |  1992-05-07  |  15KB  |  384 lines

  1. {$I SHDEFINE.INC}
  2.  
  3. {$I SHUNITSW.INC}
  4.  
  5. unit TestBetw;
  6. {
  7.                To test the ShUtilPk unit (BETW functions)
  8.  
  9.                   Copyright 1991 Madison & Associates
  10.                           All Rights Reserved
  11.  
  12.          This program source file and the associated executable
  13.          file may be  used and distributed  only in  accordance
  14.          with the  provisions  described  on  the title page of
  15.                   the accompanying documentation file
  16.                               SKYHAWK.DOC
  17. }
  18.  
  19. interface
  20.  
  21. uses
  22.   ShUtilPk,
  23.   TpCrt,
  24.   TpDos,
  25.   TpString;
  26.  
  27. procedure BetwTest;
  28.  
  29. implementation
  30.  
  31. procedure BetwTest;
  32.  
  33. const
  34.   TA4 : array[1..81,1..3] of LongInt =
  35.          ((  $7777DDDD,  $8888EEEE,   $9999FFFF  ), {HiWord state = 1}
  36.           (  $7777DDDD,  $8888EEEE,   $9999EEEE  ),
  37.           (  $7777DDDD,  $8888EEEE,   $9999DDDD  ),
  38.           (  $7777DDDD,  $8888DDDD,   $9999EEEE  ),
  39.           (  $7777DDDD,  $8888DDDD,   $9999DDDD  ),
  40.           (  $7777DDDD,  $8888DDDD,   $9999CCCC  ),
  41.           (  $7777DDDD,  $8888CCCC,   $9999DDDD  ),
  42.           (  $7777DDDD,  $8888CCCC,   $9999CCCC  ),
  43.           (  $7777DDDD,  $8888CCCC,   $9999BBBB  ),
  44.           (  $7777DDDD,  $8888EEEE,   $8888FFFF  ), {HiWord state = 2}
  45.           (  $7777DDDD,  $8888EEEE,   $8888EEEE  ),
  46.           (  $7777DDDD,  $8888EEEE,   $8888DDDD  ),
  47.           (  $7777DDDD,  $8888DDDD,   $8888EEEE  ),
  48.           (  $7777DDDD,  $8888DDDD,   $8888DDDD  ),
  49.           (  $7777DDDD,  $8888DDDD,   $8888CCCC  ),
  50.           (  $7777DDDD,  $8888CCCC,   $8888DDDD  ),
  51.           (  $7777DDDD,  $8888CCCC,   $8888CCCC  ),
  52.           (  $7777DDDD,  $8888CCCC,   $8888BBBB  ),
  53.           (  $7777DDDD,  $9999EEEE,   $8888FFFF  ), {HiWord state = 3}
  54.           (  $7777DDDD,  $9999EEEE,   $8888EEEE  ),
  55.           (  $7777DDDD,  $9999EEEE,   $8888DDDD  ),
  56.           (  $7777DDDD,  $9999DDDD,   $8888EEEE  ),
  57.           (  $7777DDDD,  $9999DDDD,   $8888DDDD  ),
  58.           (  $7777DDDD,  $9999DDDD,   $8888CCCC  ),
  59.           (  $7777DDDD,  $9999CCCC,   $8888DDDD  ),
  60.           (  $7777DDDD,  $9999CCCC,   $8888CCCC  ),
  61.           (  $7777DDDD,  $9999CCCC,   $8888BBBB  ),
  62.           (  $7777DDDD,  $7777EEEE,   $8888FFFF  ), {HiWord state = 4}
  63.           (  $7777DDDD,  $7777EEEE,   $8888EEEE  ),
  64.           (  $7777DDDD,  $7777EEEE,   $8888DDDD  ),
  65.           (  $7777DDDD,  $7777DDDD,   $8888EEEE  ),
  66.           (  $7777DDDD,  $7777DDDD,   $8888DDDD  ),
  67.           (  $7777DDDD,  $7777DDDD,   $8888CCCC  ),
  68.           (  $7777DDDD,  $7777CCCC,   $8888DDDD  ),
  69.           (  $7777DDDD,  $7777CCCC,   $8888CCCC  ),
  70.           (  $7777DDDD,  $7777CCCC,   $8888BBBB  ),
  71.           (  $7777DDDD,  $7777EEEE,   $7777FFFF  ), {HiWord state = 5}
  72.           (  $7777DDDD,  $7777EEEE,   $7777EEEE  ),
  73.           (  $7777DDDD,  $7777EEEE,   $7777DDDD  ),
  74.           (  $7777DDDD,  $7777DDDD,   $7777EEEE  ),
  75.           (  $7777DDDD,  $7777DDDD,   $7777DDDD  ),
  76.           (  $7777DDDD,  $7777DDDD,   $7777CCCC  ),
  77.           (  $7777DDDD,  $7777CCCC,   $7777DDDD  ),
  78.           (  $7777DDDD,  $7777CCCC,   $7777CCCC  ),
  79.           (  $7777DDDD,  $7777CCCC,   $7777BBBB  ),
  80.           (  $7777DDDD,  $7777EEEE,   $6666FFFF  ), {HiWord state = 6}
  81.           (  $7777DDDD,  $7777EEEE,   $6666EEEE  ),
  82.           (  $7777DDDD,  $7777EEEE,   $6666DDDD  ),
  83.           (  $7777DDDD,  $7777DDDD,   $6666EEEE  ),
  84.           (  $7777DDDD,  $7777DDDD,   $6666DDDD  ),
  85.           (  $7777DDDD,  $7777DDDD,   $6666CCCC  ),
  86.           (  $7777DDDD,  $7777CCCC,   $6666DDDD  ),
  87.           (  $7777DDDD,  $7777CCCC,   $6666CCCC  ),
  88.           (  $7777DDDD,  $7777CCCC,   $6666BBBB  ),
  89.           (  $7777DDDD,  $6666EEEE,   $7777FFFF  ), {HiWord state = 7}
  90.           (  $7777DDDD,  $6666EEEE,   $7777EEEE  ),
  91.           (  $7777DDDD,  $6666EEEE,   $7777DDDD  ),
  92.           (  $7777DDDD,  $6666DDDD,   $7777EEEE  ),
  93.           (  $7777DDDD,  $6666DDDD,   $7777DDDD  ),
  94.           (  $7777DDDD,  $6666DDDD,   $7777CCCC  ),
  95.           (  $7777DDDD,  $6666CCCC,   $7777DDDD  ),
  96.           (  $7777DDDD,  $6666CCCC,   $7777CCCC  ),
  97.           (  $7777DDDD,  $6666CCCC,   $7777BBBB  ),
  98.           (  $7777DDDD,  $6666EEEE,   $6666FFFF  ), {HiWord state = 8}
  99.           (  $7777DDDD,  $6666EEEE,   $6666EEEE  ),
  100.           (  $7777DDDD,  $6666EEEE,   $6666DDDD  ),
  101.           (  $7777DDDD,  $6666DDDD,   $6666EEEE  ),
  102.           (  $7777DDDD,  $6666DDDD,   $6666DDDD  ),
  103.           (  $7777DDDD,  $6666DDDD,   $6666CCCC  ),
  104.           (  $7777DDDD,  $6666CCCC,   $6666DDDD  ),
  105.           (  $7777DDDD,  $6666CCCC,   $6666CCCC  ),
  106.           (  $7777DDDD,  $6666CCCC,   $6666BBBB  ),
  107.           (  $7777DDDD,  $6666EEEE,   $5555FFFF  ), {HiWord state = 9}
  108.           (  $7777DDDD,  $6666EEEE,   $5555EEEE  ),
  109.           (  $7777DDDD,  $6666EEEE,   $5555DDDD  ),
  110.           (  $7777DDDD,  $6666DDDD,   $5555EEEE  ),
  111.           (  $7777DDDD,  $6666DDDD,   $5555DDDD  ),
  112.           (  $7777DDDD,  $6666DDDD,   $5555CCCC  ),
  113.           (  $7777DDDD,  $6666CCCC,   $5555DDDD  ),
  114.           (  $7777DDDD,  $6666CCCC,   $5555CCCC  ),
  115.           (  $7777DDDD,  $6666CCCC,   $5555BBBB  ));
  116.  
  117.   TA4A : array[1..81,1..3] of LongInt =
  118.          ((  $777DDDD,  $888EEEE,   $999FFFF  ), {HiWord state = 1}
  119.           (  $777DDDD,  $888EEEE,   $999EEEE  ),
  120.           (  $777DDDD,  $888EEEE,   $999DDDD  ),
  121.           (  $777DDDD,  $888DDDD,   $999EEEE  ),
  122.           (  $777DDDD,  $888DDDD,   $999DDDD  ),
  123.           (  $777DDDD,  $888DDDD,   $999CCCC  ),
  124.           (  $777DDDD,  $888CCCC,   $999DDDD  ),
  125.           (  $777DDDD,  $888CCCC,   $999CCCC  ),
  126.           (  $777DDDD,  $888CCCC,   $999BBBB  ),
  127.           (  $777DDDD,  $888EEEE,   $888FFFF  ), {HiWord state = 2}
  128.           (  $777DDDD,  $888EEEE,   $888EEEE  ),
  129.           (  $777DDDD,  $888EEEE,   $888DDDD  ),
  130.           (  $777DDDD,  $888DDDD,   $888EEEE  ),
  131.           (  $777DDDD,  $888DDDD,   $888DDDD  ),
  132.           (  $777DDDD,  $888DDDD,   $888CCCC  ),
  133.           (  $777DDDD,  $888CCCC,   $888DDDD  ),
  134.           (  $777DDDD,  $888CCCC,   $888CCCC  ),
  135.           (  $777DDDD,  $888CCCC,   $888BBBB  ),
  136.           (  $777DDDD,  $999EEEE,   $888FFFF  ), {HiWord state = 3}
  137.           (  $777DDDD,  $999EEEE,   $888EEEE  ),
  138.           (  $777DDDD,  $999EEEE,   $888DDDD  ),
  139.           (  $777DDDD,  $999DDDD,   $888EEEE  ),
  140.           (  $777DDDD,  $999DDDD,   $888DDDD  ),
  141.           (  $777DDDD,  $999DDDD,   $888CCCC  ),
  142.           (  $777DDDD,  $999CCCC,   $888DDDD  ),
  143.           (  $777DDDD,  $999CCCC,   $888CCCC  ),
  144.           (  $777DDDD,  $999CCCC,   $888BBBB  ),
  145.           (  $777DDDD,  $777EEEE,   $888FFFF  ), {HiWord state = 4}
  146.           (  $777DDDD,  $777EEEE,   $888EEEE  ),
  147.           (  $777DDDD,  $777EEEE,   $888DDDD  ),
  148.           (  $777DDDD,  $777DDDD,   $888EEEE  ),
  149.           (  $777DDDD,  $777DDDD,   $888DDDD  ),
  150.           (  $777DDDD,  $777DDDD,   $888CCCC  ),
  151.           (  $777DDDD,  $777CCCC,   $888DDDD  ),
  152.           (  $777DDDD,  $777CCCC,   $888CCCC  ),
  153.           (  $777DDDD,  $777CCCC,   $888BBBB  ),
  154.           (  $777DDDD,  $777EEEE,   $777FFFF  ), {HiWord state = 5}
  155.           (  $777DDDD,  $777EEEE,   $777EEEE  ),
  156.           (  $777DDDD,  $777EEEE,   $777DDDD  ),
  157.           (  $777DDDD,  $777DDDD,   $777EEEE  ),
  158.           (  $777DDDD,  $777DDDD,   $777DDDD  ),
  159.           (  $777DDDD,  $777DDDD,   $777CCCC  ),
  160.           (  $777DDDD,  $777CCCC,   $777DDDD  ),
  161.           (  $777DDDD,  $777CCCC,   $777CCCC  ),
  162.           (  $777DDDD,  $777CCCC,   $777BBBB  ),
  163.           (  $777DDDD,  $777EEEE,   $666FFFF  ), {HiWord state = 6}
  164.           (  $777DDDD,  $777EEEE,   $666EEEE  ),
  165.           (  $777DDDD,  $777EEEE,   $666DDDD  ),
  166.           (  $777DDDD,  $777DDDD,   $666EEEE  ),
  167.           (  $777DDDD,  $777DDDD,   $666DDDD  ),
  168.           (  $777DDDD,  $777DDDD,   $666CCCC  ),
  169.           (  $777DDDD,  $777CCCC,   $666DDDD  ),
  170.           (  $777DDDD,  $777CCCC,   $666CCCC  ),
  171.           (  $777DDDD,  $777CCCC,   $666BBBB  ),
  172.           (  $777DDDD,  $666EEEE,   $777FFFF  ), {HiWord state = 7}
  173.           (  $777DDDD,  $666EEEE,   $777EEEE  ),
  174.           (  $777DDDD,  $666EEEE,   $777DDDD  ),
  175.           (  $777DDDD,  $666DDDD,   $777EEEE  ),
  176.           (  $777DDDD,  $666DDDD,   $777DDDD  ),
  177.           (  $777DDDD,  $666DDDD,   $777CCCC  ),
  178.           (  $777DDDD,  $666CCCC,   $777DDDD  ),
  179.           (  $777DDDD,  $666CCCC,   $777CCCC  ),
  180.           (  $777DDDD,  $666CCCC,   $777BBBB  ),
  181.           (  $777DDDD,  $666EEEE,   $666FFFF  ), {HiWord state = 8}
  182.           (  $777DDDD,  $666EEEE,   $666EEEE  ),
  183.           (  $777DDDD,  $666EEEE,   $666DDDD  ),
  184.           (  $777DDDD,  $666DDDD,   $666EEEE  ),
  185.           (  $777DDDD,  $666DDDD,   $666DDDD  ),
  186.           (  $777DDDD,  $666DDDD,   $666CCCC  ),
  187.           (  $777DDDD,  $666CCCC,   $666DDDD  ),
  188.           (  $777DDDD,  $666CCCC,   $666CCCC  ),
  189.           (  $777DDDD,  $666CCCC,   $666BBBB  ),
  190.           (  $777DDDD,  $666EEEE,   $555FFFF  ), {HiWord state = 9}
  191.           (  $777DDDD,  $666EEEE,   $555EEEE  ),
  192.           (  $777DDDD,  $666EEEE,   $555DDDD  ),
  193.           (  $777DDDD,  $666DDDD,   $555EEEE  ),
  194.           (  $777DDDD,  $666DDDD,   $555DDDD  ),
  195.           (  $777DDDD,  $666DDDD,   $555CCCC  ),
  196.           (  $777DDDD,  $666CCCC,   $555DDDD  ),
  197.           (  $777DDDD,  $666CCCC,   $555CCCC  ),
  198.           (  $777DDDD,  $666CCCC,   $555BBBB  ));
  199.  
  200.   TA2 : array[1..9,1..3] of Word =
  201.          ((  $DDDD,  $EEEE,   $FFFF  ),
  202.           (  $DDDD,  $EEEE,   $EEEE  ),
  203.           (  $DDDD,  $EEEE,   $DDDD  ),
  204.           (  $DDDD,  $DDDD,   $EEEE  ),
  205.           (  $DDDD,  $DDDD,   $DDDD  ),
  206.           (  $DDDD,  $DDDD,   $CCCC  ),
  207.           (  $DDDD,  $CCCC,   $DDDD  ),
  208.           (  $DDDD,  $CCCC,   $CCCC  ),
  209.           (  $DDDD,  $CCCC,   $BBBB  ));
  210.  
  211.   TA2A : array[1..9,1..3] of Word =
  212.          ((  $DDD,  $EEE,   $FFF  ),
  213.           (  $DDD,  $EEE,   $EEE  ),
  214.           (  $DDD,  $EEE,   $DDD  ),
  215.           (  $DDD,  $DDD,   $EEE  ),
  216.           (  $DDD,  $DDD,   $DDD  ),
  217.           (  $DDD,  $DDD,   $CCC  ),
  218.           (  $DDD,  $CCC,   $DDD  ),
  219.           (  $DDD,  $CCC,   $CCC  ),
  220.           (  $DDD,  $CCC,   $BBB  ));
  221.  
  222.   TA1 : array[1..9,1..3] of Word =
  223.          ((  $DD,  $EE,   $FF  ),
  224.           (  $DD,  $EE,   $EE  ),
  225.           (  $DD,  $EE,   $DD  ),
  226.           (  $DD,  $DD,   $EE  ),
  227.           (  $DD,  $DD,   $DD  ),
  228.           (  $DD,  $DD,   $CC  ),
  229.           (  $DD,  $CC,   $DD  ),
  230.           (  $DD,  $CC,   $CC  ),
  231.           (  $DD,  $CC,   $BB  ));
  232.  
  233.   TA1A : array[1..9,1..3] of Word =
  234.          ((  $D,  $E,   $F  ),
  235.           (  $D,  $E,   $E  ),
  236.           (  $D,  $E,   $D  ),
  237.           (  $D,  $D,   $E  ),
  238.           (  $D,  $D,   $D  ),
  239.           (  $D,  $D,   $C  ),
  240.           (  $D,  $C,   $D  ),
  241.           (  $D,  $C,   $C  ),
  242.           (  $D,  $C,   $B  ));
  243.  
  244.  
  245. var
  246. s1,s2,s3  : shortint;
  247. b1,b2,b3  : byte;
  248. i1,i2,i3  : integer;
  249. w1,w2,w3  : word;
  250. l1,l2,l3  : longint;
  251. G1,G2,G3  : string;
  252.  
  253. LST,
  254. O         : text;
  255.  
  256. begin
  257.   if HandleIsConsole(1) then begin
  258.     Write('Set printer to max 12 char. per inch. Any key when ready...');
  259.     if ReadKeyWord = 0 then ;
  260.     if OpenStdDev(LST, 4) then ; {if output not redirected, write to printer}
  261.     end
  262.   else
  263.     if OpenStdDev(LST, 1) then ; {if output redirected, write to StdOut}
  264.   if OpenStdDev(O, 1) then ;     {in any case, write screen output to StdOut}
  265.  
  266.   WriteLn(LST,'':7,'UNSIGNED compare -- 4 byte');
  267.   for S1 := 1 to 81 do begin
  268.     if odd(S1) then Write(LST,'':7);
  269.     for S2 := 1 to 3 do
  270.       Write(LST, '$'+HexL(TA4[S1, S2]),' ');
  271.     Write(LST,BetwU(TA4[S1,1], TA4[S1,2], TA4[S1,3]):5,'':5);
  272.     if not odd(S1) then WriteLn(Lst);
  273.     end;
  274.   WriteLn(LST,^L);
  275.  
  276.   for S1 := 1 to 81 do begin
  277.     if odd(S1) then Write(LST,'':7);
  278.     for S2 := 1 to 3 do
  279.       Write(LST, '$'+HexL(TA4A[S1, S2]),' ');
  280.     Write(LST,BetwU(TA4A[S1,1], TA4A[S1,2], TA4A[S1,3]):5,'':5);
  281.     if not odd(S1) then WriteLn(Lst);
  282.     end;
  283.   WriteLn(LST,^L);
  284.  
  285.   WriteLn(LST,'':7,'SIGNED compare -- 4 byte');
  286.   for S1 := 1 to 81 do begin
  287.     if odd(S1) then Write(LST,'':7);
  288.     for S2 := 1 to 3 do
  289.       Write(LST, (TA4[S1, S2]):11,' ');
  290.     Write(LST,BetwS(TA4[S1,1], TA4[S1,2], TA4[S1,3]):5,'':2);
  291.     if not odd(S1) then WriteLn(Lst);
  292.     end;
  293.   WriteLn(LST,^L);
  294.  
  295.   for S1 := 1 to 81 do begin
  296.     if odd(S1) then Write(LST,'':7);
  297.     for S2 := 1 to 3 do
  298.       Write(LST, (TA4A[S1, S2]):11,' ');
  299.     Write(LST,BetwS(TA4A[S1,1], TA4A[S1,2], TA4A[S1,3]):5,'':2);
  300.     if not odd(S1) then WriteLn(Lst);
  301.     end;
  302.   WriteLn(LST,^L);
  303.  
  304.   WriteLn(LST,'':7,'UNSIGNED compare -- 2 byte');
  305.   for S1 := 1 to 9 do begin
  306.     if odd(S1) then Write(LST,'':7);
  307.     for S2 := 1 to 3 do
  308.       Write(LST, '$'+HexW(TA2[S1, S2]),' ');
  309.     Write(LST,BetwU(TA2[S1,1], TA2[S1,2], TA2[S1,3]):5,'':5);
  310.     if not odd(S1) then WriteLn(Lst);
  311.     end;
  312.   Write(LST,^M^J^J^J^J^J);
  313.  
  314.   for S1 := 1 to 9 do begin
  315.     if odd(S1) then Write(LST,'':7);
  316.     for S2 := 1 to 3 do
  317.       Write(LST, '$'+HexW(TA2A[S1, S2]),' ');
  318.     Write(LST,BetwU(TA2A[S1,1], TA2A[S1,2], TA2A[S1,3]):5,'':5);
  319.     if not odd(S1) then WriteLn(Lst);
  320.     end;
  321.   Write(LST,^M^J^J^J^J^J);
  322.  
  323.   WriteLn(LST,'':7,'SIGNED compare -- 2 byte');
  324.   for S1 := 1 to 9 do begin
  325.     if odd(S1) then Write(LST,'':7);
  326.     for S2 := 1 to 3 do
  327.       Write(LST, integer(TA2[S1, S2]):6,' ');
  328.     Write(LST,BetwS(TA2[S1,1], TA2[S1,2], TA2[S1,3]):5,'':5);
  329.     if not odd(S1) then WriteLn(Lst);
  330.     end;
  331.   Write(LST,^M^J^J^J^J^J);
  332.  
  333.   for S1 := 1 to 9 do begin
  334.     if odd(S1) then Write(LST,'':7);
  335.     for S2 := 1 to 3 do
  336.       Write(LST, integer(TA2A[S1, S2]):6,' ');
  337.     Write(LST,BetwS(TA2A[S1,1], TA2A[S1,2], TA2A[S1,3]):5,'':5);
  338.     if not odd(S1) then WriteLn(Lst);
  339.     end;
  340.   WriteLn(LST,^L);
  341.  
  342.   WriteLn(LST,'':7,'UNSIGNED compare -- 1 byte');
  343.   for S1 := 1 to 9 do begin
  344.     if odd(S1) then Write(LST,'':7);
  345.     for S2 := 1 to 3 do
  346.       Write(LST, '$'+HexB(TA1[S1, S2]),' ');
  347.     Write(LST,BetwU(TA1[S1,1], TA1[S1,2], TA1[S1,3]):5,'':5);
  348.     if not odd(S1) then WriteLn(Lst);
  349.     end;
  350.   Write(LST,^M^J^J^J^J^J);
  351.  
  352.   for S1 := 1 to 9 do begin
  353.     if odd(S1) then Write(LST,'':7);
  354.     for S2 := 1 to 3 do
  355.       Write(LST, '$'+HexB(TA1A[S1, S2]),' ');
  356.     Write(LST,BetwU(TA1A[S1,1], TA1A[S1,2], TA1A[S1,3]):5,'':5);
  357.     if not odd(S1) then WriteLn(Lst);
  358.     end;
  359.   Write(LST,^M^J^J^J^J^J);
  360.  
  361.   WriteLn(LST,'':7,'SIGNED compare -- 1 byte');
  362.   for S1 := 1 to 9 do begin
  363.     if odd(S1) then Write(LST,'':7);
  364.     for S2 := 1 to 3 do
  365.       Write(LST, ShortInt(TA1[S1, S2]):4,' ');
  366.     Write(LST,BetwS(TA1[S1,1], TA1[S1,2], TA1[S1,3]):5,'':5);
  367.     if not odd(S1) then WriteLn(Lst);
  368.     end;
  369.   Write(LST,^M^J^J^J^J^J);
  370.  
  371.   for S1 := 1 to 9 do begin
  372.     if odd(S1) then Write(LST,'':7);
  373.     for S2 := 1 to 3 do
  374.       Write(LST, ShortInt(TA1A[S1, S2]):4,' ');
  375.     Write(LST,BetwS(TA1A[S1,1], TA1A[S1,2], TA1A[S1,3]):5,'':5);
  376.     if not odd(S1) then WriteLn(Lst);
  377.     end;
  378.   if HandleIsConsole(1) then
  379.     Write(LST,^L);
  380.   Flush(O);
  381.   Flush(LST);
  382.   end; {BetwTest}
  383. end.
  384.