DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top
Index: ┃ 5 C I S T

⟦121d96d60⟧ Bits:30005835 RC Chess 750 source code, 5¼" Floppy Disk, CP/M Filesystem - Piccoline, CpmFileSystem_Piccoline, ImdContainer

    Length: 1261568 (0x134000)
    Description: Bits:30005835 RC Chess 750 source code
    Types: 5¼" Floppy Disk, CP/M Filesystem - Piccoline, CpmFileSystem_Piccoline, ImdContainer

Namespace CP/M Filesystem - Piccoline

bytes name artifact
46208 CHESS.000 ⟦9a30032ad⟧
128 CHESS.CHS ⟦5a2857796⟧ TextFile
30720 CHESS.CMD ⟦6a85150be⟧
4224 CHESS.FNT ⟦ff2600976⟧
2816 CHESS.HLP ⟦7e5fc2744⟧ TextFile
20352 CHESS.OP ⟦1d477761f⟧
51840 CHESS750.000 ⟦9049803fa⟧
33408 CHESS750.CMD ⟦ddbf938ae⟧
85376 CHESS80.PAS ⟦2a51cc3e1⟧ TextFile

OctetView - Piccoline

0x000000…000020 (0, 0, 1)  52 43 37 35 30 20 00 00 00 00 00 00 00 00 00 00 00 00 08 00 04 0f 00 57 02 7f 02 00 00 0a 80 04   ┆RC750                  W        ┆
0x000020…000040            00 03 07 00 00 20 61 8f 61 8f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆      a a                       ┆
0x000040…000060            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x1d…]
0x000400…000420 (0, 0, 2)  8c c8 8e d8 8e d0 bc ef 9a 33 c0 8e c0 26 8b 1e 58 00 26 a1 5a 00 b1 0c d3 e0 1e 8e d8 8b 57 22   ┆         3   &  X & Z         W"┆
0x000420…000440            8b 47 24 d3 e0 1f 2e 89 16 ef 9a 2e a3 f1 9a e8 af 07 26 a0 69 00 3c 01 74 03 e9 20 02 26 a0 67   ┆ G$   .    .      & i < t    & g┆
0x000440…000460            00 2c 41 2e a2 99 99 2e c7 06 8c 99 c6 ff 2e c7 06 8e 99 c4 ff 2e c7 06 90 99 c2 ff 2e c7 06 92   ┆ ,A.   .      .      .      .   ┆
0x000460…000480            99 c0 ff 2e c7 06 94 99 c8 ff 2e c7 06 96 99 ca ff b4 05 e8 2d 07 26 a1 75 00 2e a2 6c 99 e8 53   ┆   .      .         - & u . l  S┆
0x000480…0004a0            03 73 03 e9 1b 01 8c c8 bb 57 a4 e8 22 07 2e c6 06 6e 99 01 26 8b 1e 6d 00 b0 9c e8 70 03 73 03   ┆ s       W  " .  n  &  m    p s ┆
0x0004a0…0004c0            e9 fe 00 26 a1 73 00 26 2b 06 6d 00 26 a3 73 00 77 03 e9 49 00 26 a1 6d 00 2e 01 06 89 99 2e c6   ┆   & s &+ m & s w  I & m .    . ┆
0x0004c0…0004e0            06 6e 99 01 26 8b 1e 6d 00 b0 9e e8 40 03 73 03 e9 ce 00 26 a1 73 00 26 2b 06 6d 00 26 a3 73 00   ┆ n  &  m    @ s    & s &+ m & s ┆
0x0004e0…000500            77 03 e9 19 00 2e fe 06 6c 99 e8 e7 02 73 03 e9 af 00 26 a1 6d 00 2e 01 06 89 99 e9 90 ff be f7   ┆w    .  l    s    & m .         ┆
0x000500…000520            9a 2e 89 36 f5 9a 2e c7 06 f3 9a 00 00 b8 1b 98 2e a3 19 98 e8 6a 07 72 03 e9 9b 00 8c c8 bb 57   ┆ . 6  .         .    j r       W┆
0x000520…000540            a4 e8 8c 06 2e 8b 3e f5 9a 8a 05 2e a2 6c 99 e8 a2 02 73 03 e9 6a 00 8a 45 02 2e a2 6e 99 26 8b   ┆    . >    . l    s  j  E . n & ┆
0x000540…000560            1e 6b 00 b0 8c 80 7d 01 00 74 02 0c 02 e8 be 02 73 03 e9 4c 00 e8 ff 06 73 03 e9 6a 00 2e a1 5b   ┆ k    å  t      s  L    s  j . Æ┆
0x000560…000580            99 bb 00 00 e8 49 06 e8 07 08 73 24 53 b1 04 d3 eb 2e 01 1e 5b 99 e8 5b 02 72 26 b0 9c 2e 80 3e   ┆     I    s$S    .  Æ  Æ r&  . >┆
0x000580…0005a0            6d 99 00 74 02 0c 02 5b e8 83 02 72 14 e9 cd ff 2e a1 00 91 8e d8 2e ff 2e fc 90 00 00 00 00 00   ┆m  t   Æ   r    .     . .       ┆
0x0005a0…0005c0            00 e8 62 00 e8 9a 00 2e a1 c2 99 be e5 99 e8 19 06 e8 fd 01 e9 20 00 2e a1 d0 99 be d2 99 e8 09   ┆  b    .               .        ┆
0x0005c0…0005e0            06 e8 ed 01 e9 10 00 2e a1 9e 99 be a0 99 e8 f9 05 e8 dd 01 e9 00 00 b9 0f 00 51 b9 ff ff e2 fe   ┆       .                  Q     ┆
0x0005e0…000600            59 e2 f7 33 c0 8e c0 b0 51 26 a2 67 00 26 8b 1e 58 00 26 a1 5a 00 b1 0c d3 e0 f9 8e c0 2e ff 2e   ┆Y  3    Q& g &  X & Z        . .┆
0x000600…000620            63 91 00 00 ff ff 32 e4 2e 80 3e 6f 99 1c 75 07 2e c6 06 98 99 1d c3 a8 1c 74 1f a8 04 74 06 2e   ┆c     2 . >o  u .        t   t .┆
0x000620…000640            c6 06 98 99 1a a8 08 74 06 2e c6 06 98 99 1b a8 10 74 07 2e c6 06 98 99 1c c3 2e c6 06 98 99 1e   ┆       t .       t .      .     ┆
0x000640…000660            c3 bf ec 99 2e a0 98 99 32 e4 b9 0a 00 33 d2 f7 f1 04 30 88 05 47 8b c2 04 30 88 05 c3 2e c7 06   ┆    .   2    3    0  G   0   .  ┆
0x000660…000680            8c 99 d6 ff 2e c7 06 8e 99 d4 ff 2e c7 06 90 99 d2 ff 2e c7 06 92 99 d0 ff 2e c7 06 94 99 d8 ff   ┆    .      .      .      .      ┆
0x000680…0006a0            2e c7 06 96 99 da ff b4 00 e8 17 05 e8 fc 01 26 a0 67 00 2c 41 2e a2 99 99 bb 57 a4 8c c8 e8 0f   ┆.              & g ,A.    W     ┆
0x0006a0…0006c0            05 b8 10 00 26 8b 0e 73 00 e8 bd 04 bf 78 99 c6 45 01 00 26 a1 75 00 88 65 02 88 45 03 26 a1 71   ┆    &  s     x  E  & u  e  E & q┆
0x0006c0…0006e0            00 88 45 04 e8 ad 03 73 03 e9 a5 00 be f7 9a 2e 89 36 f5 9a 2e c7 06 f3 9a 00 00 be ab 98 2e 89   ┆  E    s       . 6  .         . ┆
0x0006e0…000700            36 19 98 e8 9b 05 72 03 e9 cc fe 8c c8 bb 57 a4 e8 bd 04 b8 10 00 26 8b 0e 6b 00 e8 6b 04 bf 78   ┆6     r       W       &  k  k  x┆
0x000700…000720            99 c6 45 01 00 2e 8b 36 f5 9a 8b 04 88 65 02 88 45 03 b8 01 00 88 45 04 e8 59 03 73 03 e9 51 00   ┆  E  . 6     e  E     E  Y s  Q ┆
0x000720…000740            e8 34 05 73 03 e9 9f fe 2e a1 5b 99 bb 00 00 e8 7e 04 e8 8c 06 72 03 e9 56 fe 50 53 b1 04 d3 eb   ┆ 4 s    . Æ     ü    r  V PS    ┆
0x000740…000760            2e 01 1e 5b 99 b8 10 00 59 e8 1d 04 bf 78 99 c6 45 01 00 58 88 65 02 88 45 03 33 d2 8b c1 26 f7   ┆.  Æ    Y    x  E  X e  E 3   & ┆
0x000760…000780            36 6b 00 88 45 04 e8 0b 03 73 bd e9 03 00 e9 1f fe e8 10 00 e8 ca fe 2e a1 c2 99 be e5 99 e8 49   ┆6k  E    s             .       I┆
0x000780…0007a0            04 e9 53 fe bf 78 99 b7 00 2e 8a 1e 99 99 e8 2e 03 fa 73 07 2e c6 06 98 99 23 c3 bb 73 99 8a 07   ┆  S  x   .     .  s .    #  s   ┆
0x0007a0…0007c0            8a e0 b1 04 d2 e8 24 03 b3 1f 02 c3 2e a2 98 99 c3 ba 10 02 b0 40 ee c3 b9 05 00 50 52 51 b0 0c   ┆      $     .        @     PRQ  ┆
0x0007c0…0007e0            ba 00 02 ee e8 85 00 a8 64 74 05 59 5a 58 f8 c3 e2 e9 f9 c3 b9 05 00 52 ba 02 02 ec 2e 3a 06 6c   ┆        dt YZX         R    .: l┆
0x0007e0…000800            99 5a 75 02 f8 c3 52 51 2e a0 6c 99 ba 06 02 ee b0 1c ba 00 02 ee e8 53 00 59 5a a8 99 74 0d 51   ┆ Zu   RQ. l            S YZ  t Q┆
0x000800…000820 (0, 0, 3)  50 e8 b4 ff 58 59 72 02 e2 dc f9 c3 f8 c3 b9 0a 00 2e a2 6f 99 52 51 b8 06 02 8b cb e8 4a 03 ba   ┆P   XYr          . o RQ      J  ┆
0x000820…000840            04 02 2e a0 6e 99 ee ba 00 02 2e a0 6f 99 ee e8 2c 00 59 5a a8 10 74 0a 50 ba c8 ff ed 0b c0 58   ┆  . n     . o   , YZ  t P      X┆
0x000840…000860            75 04 a8 8f 74 04 e2 cd f9 c3 f8 c3 51 52 ba 00 02 b9 09 00 e2 fe ec a8 01 75 fb 5a 59 c3 51 52   ┆u   t       QR           u ZY QR┆
0x000860…000880            b9 08 00 e2 fe ba 00 02 ec a8 01 74 1b 2e 8b 16 94 99 ed 3d 00 00 75 ed ba 00 02 b0 d8 ee b9 09   ┆           t .     =  u         ┆
0x000880…0008a0            00 e2 fe b0 d0 ee b0 00 5a 59 c3 50 56 51 53 fa 26 a0 68 00 2e a2 77 99 2e c6 06 71 99 00 fc bf   ┆        ZY PVQS & h . w .  q    ┆
0x0008a0…0008c0            88 00 b8 f8 94 ab 8c c8 ab ba 02 00 b0 fb ee ba 22 ff b8 00 80 ef fb be 9a 99 56 b9 04 00 c6 04   ┆                "         V     ┆
0x0008c0…0008e0            00 46 e2 fa 5e 26 a0 63 00 3c 00 74 0b fe c8 c6 04 01 74 04 c6 44 01 01 26 a0 64 00 0a c0 75 03   ┆ F  ^& c < t      t  D  & d   u ┆
0x0008e0…000900            e9 71 00 26 8a 16 63 00 2e 88 16 99 99 32 f6 bf 82 99 bb 7e 99 03 f2 03 fa 03 da a8 01 74 04 b4   ┆ q &  c .    2     ü         t  ┆
0x000900…000920            01 eb 06 a8 02 74 12 b4 02 88 25 c6 07 00 c6 04 10 46 43 47 2e fe 06 99 99 a8 04 74 04 b4 04 eb   ┆     t    %      FCG.      t    ┆
0x000920…000940            06 a8 08 74 2f b4 08 c6 07 00 43 c6 07 01 88 25 47 88 25 b9 02 00 51 56 2e 8a 1e 99 99 32 ff bf   ┆   t/     C    %G %   QV.    2  ┆
0x000940…000960            78 99 e8 e2 00 5e 59 72 03 c6 04 10 46 2e fe 06 99 99 e2 e2 fa 5b 59 5e 58 c3 fa 32 ff 2e 8a 1e   ┆x    ^Yr    F.       ÆY^X  2 .  ┆
0x000960…000980            99 99 b1 ff fe c9 80 f9 00 74 27 e4 72 24 1f 75 f3 2e 8a 87 82 99 e6 10 b0 07 e6 76 b1 ff 49 0b   ┆         t' r$ u .         v  I ┆
0x000980…0009a0            c9 74 0f e4 72 24 08 74 f5 b0 06 e6 76 b0 00 fb f8 c3 fb f9 b0 01 c3 fa 60 ba 00 00 b0 20 ee ba   ┆ t  r$ t    v           `       ┆
0x0009a0…0009c0            22 ff b8 00 80 ef e4 72 24 1f 3c 18 75 17 2e 8b 3e 86 99 8a 05 2e ff 06 86 99 e6 10 2e c6 06 88   ┆"      r$ < u . >    .      .   ┆
0x0009c0…0009e0            99 01 e9 5f 00 e4 72 24 1b 3c 08 75 18 2e c6 06 88 99 02 e4 74 24 04 74 05 e4 10 e9 46 00 b0 00   ┆   _  r$ < u .      t$ t    F   ┆
0x0009e0…000a00            e6 10 e9 3f 00 e4 72 24 1f 3c 1c 75 0b e4 10 2e c6 06 88 99 03 e9 2c 00 e4 72 24 1f 3c 1e 75 15   ┆   ?  r$ < u   .      ,  r$ < u ┆
0x000a00…000a20            e4 10 2e a2 72 99 2e c6 06 88 99 04 2e c6 06 71 99 ff 61 fb cf 2e c6 06 88 99 05 2e c6 06 71 99   ┆  . r .     .  q  a  .     .  q ┆
0x000a20…000a40            ff 61 fb cf 61 fb cf 32 ff 2e 8a 1e 99 99 c6 05 00 2e 8a 87 7e 99 b1 05 d2 e0 88 45 01 c6 45 02   ┆ a  a  2 .       .  ü      E  E ┆
0x000a40…000a60            00 c6 45 03 00 c6 45 04 00 2e a0 77 99 88 45 05 bf 78 99 2e 89 3e 86 99 e8 ff fe 72 15 e8 bd 00   ┆  E   E  . w  E  x . >     r    ┆
0x000a60…000a80            2e 80 3e 88 99 04 75 0a 2e f6 06 72 99 03 75 02 f8 c3 f9 c3 32 ff 2e 8a 1e 99 99 2e c6 06 88 99   ┆. >   u .  r  u     2 .    .    ┆
0x000a80…000aa0            00 c6 05 08 2e 8a 87 7e 99 b1 05 d2 e0 08 45 01 2e a0 77 99 88 45 05 b0 05 e6 76 bf 78 99 2e 89   ┆    .  ü      E . w  E    v x . ┆
0x000aa0…000ac0            3e 86 99 e8 b4 fe 72 15 e8 72 00 2e 80 3e 88 99 04 75 0a 2e f6 06 72 99 03 75 02 f8 c3 f9 c3 c6   ┆>     r  r . >   u .  r  u      ┆
0x000ac0…000ae0            05 03 2e 8a 87 7e 99 b1 05 d2 e8 88 45 01 c6 45 02 00 c6 45 03 00 c6 45 04 04 2e 8a 26 77 99 88   ┆  .  ü      E  E   E   E  . &w  ┆
0x000ae0…000b00            65 05 53 8c c8 bb 73 99 e8 c5 00 b9 04 00 b8 10 00 e8 75 00 b0 05 e6 76 5b bf 78 99 2e 89 3e 86   ┆e S   s           u    vÆ x . > ┆
0x000b00…000b20            99 e8 56 fe 72 15 e8 14 00 2e 80 3e 88 99 04 75 0a 2e f6 06 72 99 03 75 02 f8 c3 f9 c3 2e 80 3e   ┆  V r    . >   u .  r  u     . >┆
0x000b20…000b40            71 99 ff 75 f8 2e c6 06 71 99 00 c3 52 50 2e 8b 16 92 99 2e a1 89 99 ef 2e 8b 16 90 99 32 e4 2e   ┆q  u .  q   RP.    .    .    2 .┆
0x000b40…000b60            a0 8b 99 ef 2e 8b 16 8e 99 b8 10 00 ef 33 c0 2e 8b 16 8c 99 ef 2e 8b 16 94 99 8b c1 ef 2e 8b 16   ┆    .        3 .     .       .  ┆
0x000b60…000b80            96 99 b8 a6 77 ef 58 5a c3 52 51 50 2e 8b 16 8e 99 2e a1 89 99 ef 2e 8b 16 8c 99 32 e4 2e a0 8b   ┆    w XZ RQP.    .    .    2 .  ┆
0x000b80…000ba0            99 ef 2e 8b 16 92 99 58 ef 33 c0 2e 8b 16 90 99 ef 2e 8b 16 94 99 58 ef 2e 8b 16 96 99 b8 66 ae   ┆  .    X 3 .     .    X .     f ┆
0x000ba0…000bc0            ef 5a c3 51 b5 c0 e4 70 22 c5 0a c4 e6 70 59 c3 b1 04 d3 c0 8a e8 24 f0 03 c3 80 d5 00 80 e5 0f   ┆ Z Q   p"    pY       $         ┆
0x000bc0…000be0            2e a3 89 99 2e 88 2e 8b 99 c3 06 2e c4 3e ef 9a fc d1 e0 03 f8 32 e4 ac 3c 24 74 03 ab eb f8 07   ┆.   . .    . >       2  <$t     ┆
0x000be0…000c00            c3 06 2e c4 3e ef 9a fc b0 20 32 e4 b9 50 00 ab e2 fd 07 c3 bf 57 a4 2e c7 06 6a 99 00 00 2e fe   ┆  . >     2  P       W .  j   . ┆
0x000c00…000c20 (0, 0, 4)  06 69 99 e8 19 00 2e ff 06 6a 99 72 11 26 a1 6f 00 2e 3b 06 6a 99 74 05 83 c7 20 eb e6 f8 c3 b9   ┆ i    .  j r & o .; j t         ┆
0x000c20…000c40            0c 00 33 db 26 8a 16 79 00 8a f2 8a 01 24 7f 3a 00 75 22 43 e2 f5 8a 00 3a 01 74 17 80 fa 00 74   ┆  3 &  y     $ : u"C    : t    t┆
0x000c40…000c60            07 fe ca fe 00 e9 ee ff 80 fe 00 74 08 fe ce fe 08 eb f5 f9 c3 f8 c3 bf 57 a4 80 3d 01 75 20 8b   ┆           t            W  = u  ┆
0x000c60…000c80            5d 01 8b 45 03 03 d8 2e a3 fe 90 2d 08 00 2e a3 5b 99 8b 45 0c 3b c3 75 06 2e a3 00 91 f8 c3 f9   ┆Å  E   .   -  . Æ  E ; u .      ┆
0x000c80…000ca0            c3 be 5d 99 e8 6d ff 72 01 c3 bb 10 00 b9 08 00 8b 01 3d 00 00 74 18 53 51 57 2e ff 16 19 98 5f   ┆  Å  m r          =  t SQW.    _┆
0x000ca0…000cc0            59 5b 83 c3 02 e2 e9 be 5d 99 e8 47 ff 72 db 2e c7 06 f5 9a f7 9a f9 c3 1b 98 2e 8b 36 f5 9a 8b   ┆YÆ      Å  G r .          . 6   ┆
0x000cc0…000ce0            fe 26 8b 0e 7c 00 33 d2 f7 f1 26 03 06 75 00 88 04 8b c2 33 d2 26 8b 0e 80 00 f7 f1 88 44 01 8b   ┆ &  ø 3   &  u     3 &       D  ┆
0x000ce0…000d00            c2 26 8b 0e 7e 00 f7 e1 40 88 44 02 2e ff 06 f3 9a 83 c7 03 26 8b 0e 7e 00 49 26 8a 16 6a 00 3a   ┆ &  ü   @ D .       &  ü I&  j :┆
0x000d00…000d20            c2 74 11 fe c0 88 45 02 8a 24 88 25 8a 64 01 88 65 01 eb 23 80 7c 01 00 75 0d 88 45 02 c6 45 01   ┆ t    E  $ % d  e  # ø  u  E  E ┆
0x000d20…000d40            01 8a 24 88 25 eb 10 8a 24 fe c4 88 25 c6 45 01 00 c6 45 02 01 b0 01 83 c7 03 83 c6 03 2e ff 06   ┆  $ %   $   % E   E          .  ┆
0x000d40…000d60            f3 9a e2 bb 2e 89 3e f5 9a c3 26 f7 26 7e 00 26 03 06 75 00 26 8b 0e 7e 00 2e 8b 1e f5 9a 89 07   ┆    . >   & &ü &  u &  ü .      ┆
0x000d60…000d80            83 c3 02 40 2e ff 06 f3 9a e2 f3 2e 89 1e f5 9a c3 2e 8b 0e f3 9a bb 00 00 83 f9 00 75 02 f8 c3   ┆   @.      .     .          u   ┆
0x000d80…000da0            2e 8b 3e f5 9a 8a 25 2e 88 26 6c 99 8a 55 01 2e 88 16 6d 99 8a 45 02 2e a2 6e 99 38 25 75 16 38   ┆. >   %. &l  U .  m  E . n 8%u 8┆
0x000da0…000dc0            55 01 75 11 38 45 02 75 0c 26 03 1e 6b 00 fe c0 83 c7 03 e2 e6 2e 89 3e f5 9a 2e 89 0e f3 9a f9   ┆U u 8E u &  k        . >  .     ┆
0x000dc0…000de0            c3 2e 8b 0e f3 9a bb 00 00 83 f9 00 75 02 f8 c3 2e 8b 3e f5 9a 8b 05 8b d0 81 fb 00 80 73 0f 3b   ┆ .          u   . >          s ;┆
0x000de0…000e00            15 75 0b 26 03 1e 6b 00 42 83 c7 02 e2 eb 2e 89 3e f5 9a 2e 89 0e f3 9a f9 c3 40 00 00 43 43 50   ┆ u &  k B     . >  .      @  CCP┆
0x000e00…000e20            4d 20 20 20 20 53 59 53 ff 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆M    SYS                        ┆
0x000e20…000e40            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 42   ┆                               B┆
0x000e40…000e60            41 44 20 46 49 4c 45 20 48 45 41 44 45 52 20 49 4e 20 46 49 4c 45 3a 20 43 43 50 4d 2e 53 59 53   ┆AD FILE HEADER IN FILE: CCPM.SYS┆
0x000e60…000e80            24 01 00 52 45 41 44 20 45 52 52 4f 52 53 24 01 00 4e 4f 20 46 49 4c 45 20 3d 20 43 43 50 4d 2e   ┆$  READ ERRORS$  NO FILE = CCPM.┆
0x000e80…000ea0            53 59 53 24 45 52 52 4f 52 3a 20 20 20 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆SYS$ERROR:   $                  ┆
0x000ea0…000ec0            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x6…]
0x000f80…000fa0            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f7 9a 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x000fa0…000fc0            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x49…]
0x0018e0…001900            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4c 53 54 3a 00 43 70 72 6f 67   ┆                      LST: Cprog┆
0x001900…001920            72 61 6d 00 43 4f 4e 3a 00 1a 1b 00 00 00 00 00 ff ff ff ff 00 00 00 00 00 20 20 20 20 20 20 20   ┆ram CON:                        ┆
0x001920…001940            20 20 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x001940…001960            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x2…]
0x0019a0…0019c0            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13 01 00 00   ┆                                ┆
0x0019c0…0019e0            00 00 ff ff ff ff 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x0019e0…001a00            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x3…]
0x001a60…001a80            00 00 00 00 00 00 00 00 00 00 00 00 00 00 13 02 00 00 00 00 ff ff ff ff 00 00 00 00 00 20 20 20   ┆                                ┆
0x001a80…001aa0            20 20 20 20 20 20 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x001aa0…001ac0            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x3…]
0x001b20…001b40            00 03 00 00 00 00 ff ff ff ff 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 00 00 00 00 00 00   ┆                                ┆
0x001b40…001b60            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x3…]
0x001bc0…001be0            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 ff ff ff ff 00 00 00 00   ┆                                ┆
0x001be0…001c00            00 20 20 20 20 20 20 20 20 20 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x001c00…001c20 (0, 0, 8)  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x3…]
0x001c80…001ca0            00 00 00 00 00 05 00 00 00 00 ff ff ff ff 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 00 00   ┆                                ┆
0x001ca0…001cc0            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x3…]
0x001d20…001d40            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 ff ff ff ff   ┆                                ┆
0x001d40…001d60            00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x001d60…001d80            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x3…]
0x001de0…001e00            00 00 00 00 00 00 00 00 00 07 00 00 00 00 ff ff ff ff 00 00 00 00 00 20 20 20 20 20 20 20 20 20   ┆                                ┆
0x001e00…001e20            20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x001e20…001e40            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x2…]
0x001e80…001ea0            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 00   ┆                                ┆
0x001ea0…001ec0            ff ff ff ff 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x001ec0…001ee0            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x3…]
0x001f40…001f60            00 00 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 00 ff ff ff ff 00 00 00 00 00 20 20 20 20 20   ┆                                ┆
0x001f60…001f80            20 20 20 20 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x001f80…001fa0            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x2…]
0x001fe0…002000            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a   ┆                                ┆
0x002000…002020 (0, 1, 1)  00 00 00 00 ff ff ff ff 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 00 00 00 00 00 00 00 00   ┆                                ┆
0x002020…002040            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x3…]
0x0020a0…0020c0            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 00 ff ff ff ff 00 00 00 00 00 20   ┆                                ┆
0x0020c0…0020e0            20 20 20 20 20 20 20 20 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x0020e0…002100            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x3…]
0x002160…002180            00 00 00 0c 00 00 00 00 ff ff ff ff 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 00 00 00 00   ┆                                ┆
0x002180…0021a0            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x3…]
0x002200…002220            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 00 ff ff ff ff 00 00   ┆                                ┆
0x002220…002240            00 00 00 20 20 20 20 20 20 20 20 20 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x002240…002260            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x3…]
0x0022c0…0022e0            00 00 00 00 00 00 00 0e 00 00 00 00 ff ff ff ff 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
0x0022e0…002300            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x3…]
0x002360…002380            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 00 ff ff   ┆                                ┆
0x002380…0023a0            ff ff 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x0023a0…0023c0            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x3…]
0x002420…002440            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 91 af 00 00 00 00 43 61 6e 6e 6f 74 20 6f 70 65   ┆                      Cannot ope┆
0x002440…002460            6e 20 00 43 61 6e 6e 6f 74 20 63 72 65 61 74 65 20 00 0a 00 07 00 00 00 00 00 00 00 00 00 00 80   ┆n  Cannot create                ┆
0x002460…002480            00 00 08 02 00 02 00 0a 00 05 00 03 00 14 00 08 00 10 00 24 00 24 14 02 00 08 00 20 00 08 00 02   ┆                   $ $          ┆
0x002480…0024a0            00 04 00 08 00 40 00 08 00 40 00 00 02 01 00 01 01 01 00 00 00 00 09 45 4e 44 20 20 20 20 20 20   ┆     @   @             END      ┆
0x0024a0…0024c0            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
          […0x1…]
0x0024e0…002500            20 20 20 20 3b 45 4e 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆    ;END                        ┆
0x002500…002520            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
0x002520…002540            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 4e 04 20 47 36 2d 48 35 20 3d 20 4b 2d   ┆                  ;N  G6-H5 = K-┆
0x002540…002560            52 34 2c 20 20 20 20 20 20 20 20 20 20 20 0f 47 36 2d 48 35 20 3d 20 4b 2d 52 34 2c 20 20 48 45   ┆R4,            G6-H5 = K-R4,  HE┆
0x002560…002580            43 2e 20 00 00 00 00 00 12 20 20 20 47 36 2d 48 35 20 3d 20 4b 2d 52 34 2c 20 20 48 45 43 2e 20   ┆C.          G6-H5 = K-R4,  HEC. ┆
0x002580…0025a0            00 00 00 20 20 20 42 4f 41 52 44 20 4e 45 57 2d 4b 34 2c 20 20 00 00 00 00 00 00 00 07 20 20 20   ┆      BOARD NEW-K4,             ┆
0x0025a0…0025c0            4c 4f 41 44 35 20 3d 20 50 2d 4b 34 2c 20 20 00 09 00 00 00 00 ff 17 20 35 2e 42 38 2d 44 36 20   ┆LOAD5 = P-K4,           5.B8-D6 ┆
0x0025c0…0025e0            3d 20 51 2d 51 36 2c 20 43 48 45 43 2e 20 00 00 12 20 20 20 45 37 2d 46 37 20 3d 20 4b 2d 42 32   ┆= Q-Q6, CHEC.       E7-F7 = K-B2┆
0x0025e0…002600            2c 20 20 48 45 43 2e 20 00 00 17 20 36 2e 44 36 2d 45 36 20 3d 20 51 2d 4b 36 2c 20 43 48 45 43   ┆,  HEC.     6.D6-E6 = Q-K6, CHEC┆
0x002600…002620            2e 20 00 00 12 20 20 20 46 37 2d 47 36 20 3d 20 4b 2d 4e 33 2c 20 20 48 45 43 2e 20 00 00 12 20   ┆.       F7-G6 = K-N3,  HEC.     ┆
0x002620…002640            37 2e 43 35 2d 43 36 20 3d 20 50 2d 42 36 2c 20 20 48 45 43 2e 20 00 00 12 20 20 20 47 36 2d 48   ┆7.C5-C6 = P-B6,  HEC.       G6-H┆
0x002640…002660            35 20 3d 20 4b 2d 52 34 2c 20 20 48 45 43 2e 20 00 00 00 01 00 01 01 00 00 01 00 01 01 00 00 00   ┆5 = K-R4,  HEC.                 ┆
0x002660…002680            04 08 00 00 00 02 04 08 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x002680…0026a0            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x1…]
0x0026c0…0026e0            f5 ff 00 00 00 00 00 00 00 00 00 00 00 00 f6 ff 00 00 00 00 00 00 f5 ff 00 00 00 00 f7 ff 00 00   ┆                                ┆
0x0026e0…002700            00 00 f6 ff 00 00 00 00 00 00 00 00 f5 ff f7 ff 00 00 00 00 00 00 f6 ff 00 00 00 00 00 00 00 00   ┆                                ┆
0x002700…002720            f7 ff f5 ff 00 00 00 00 00 00 f6 ff 00 00 00 00 00 00 f7 ff 00 00 00 00 f5 ff 00 00 00 00 f6 ff   ┆                                ┆
0x002720…002740            00 00 00 00 f7 ff 00 00 00 00 00 00 00 00 f5 ff eb ff f6 ff ed ff f7 ff 00 00 00 00 00 00 00 00   ┆                                ┆
0x002740…002760            00 00 f4 ff f5 ff f6 ff f7 ff f8 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00 00 01 00 01 00   ┆                                ┆
0x002760…002780            01 00 01 00 01 00 01 00 01 00 08 00 09 00 0a 00 0b 00 0c 00 00 00 00 00 00 00 00 00 00 00 09 00   ┆                                ┆
0x002780…0027a0            13 00 0a 00 15 00 0b 00 00 00 00 00 00 00 00 00 09 00 00 00 00 00 0a 00 00 00 00 00 0b 00 00 00   ┆                                ┆
0x0027a0…0027c0            00 00 09 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 0b 00 09 00 00 00 00 00 00 00 00 00 0a 00   ┆                                ┆
0x0027c0…0027e0            00 00 00 00 00 00 09 00 0b 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 09 00 00 00 00 00 0b 00   ┆                                ┆
0x0027e0…002800            00 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x002800…002820 (0, 1, 3)  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
          […0x1…]
0x002840…002860            00 00 00 00 00 00 00 00 00 00 01 07 0f 03 07 07 03 07 0f 03 07 07 00 01 01 01 01 01 01 01 01 02   ┆                                ┆
0x002860…002880            02 02 02 02 02 02 02 04 04 04 04 04 04 04 04 08 08 08 08 08 08 08 08 10 10 10 10 10 10 10 10 20   ┆                                ┆
0x002880…0028a0            20 20 20 20 20 20 20 40 40 40 40 40 40 40 40 80 80 80 80 80 80 80 80 ff 00 00 00 00 00 00 00 00   ┆       @@@@@@@@                 ┆
0x0028a0…0028c0            ff 00 00 00 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 ff 00 00 00 00   ┆                                ┆
0x0028c0…0028e0            00 00 00 00 ff 00 00 00 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 ff fe fe fe fe fe fe fe fe fd   ┆                                ┆
0x0028e0…002900            fd fd fd fd fd fd fd fb fb fb fb fb fb fb fb f7 f7 f7 f7 f7 f7 f7 f7 ef ef ef ef ef ef ef ef df   ┆                                ┆
0x002900…002920            df df df df df df df bf bf bf bf bf bf bf bf 7f 7f 7f 7f 7f 7f 7f 7f 00 ff ff ff ff ff ff ff ff   ┆                                ┆
0x002920…002940            00 ff ff ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff 00 ff ff ff ff   ┆                                ┆
0x002940…002960            ff ff ff ff 00 ff ff ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff 00 01 00 00 00 00 00 00 00 02   ┆                                ┆
0x002960…002980            00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 20   ┆                                ┆
0x002980…0029a0            00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00   ┆       @                        ┆
0x0029a0…0029c0            02 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00   ┆                                ┆
0x0029c0…0029e0            20 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00   ┆        @                       ┆
0x0029e0…002a00            00 02 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 10 00 00 00 00 00 00   ┆                                ┆
0x002a00…002a20            00 20 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00 00 00   ┆         @                      ┆
0x002a20…002a40            00 00 02 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 10 00 00 00 00 00   ┆                                ┆
0x002a40…002a60            00 00 20 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00 00   ┆          @                     ┆
0x002a60…002a80            00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 10 00 00 00 00   ┆                                ┆
0x002a80…002aa0            00 00 00 20 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00   ┆           @                    ┆
0x002aa0…002ac0            00 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 10 00 00 00   ┆                                ┆
0x002ac0…002ae0            00 00 00 00 20 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00   ┆            @                   ┆
0x002ae0…002b00            00 00 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 10 00 00   ┆                                ┆
0x002b00…002b20            00 00 00 00 00 20 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 01 00   ┆             @                  ┆
0x002b20…002b40            00 00 00 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 10 00   ┆                                ┆
0x002b40…002b60            00 00 00 00 00 00 20 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 80 04 06 0c 00 01 00 00 00 00   ┆              @                 ┆
0x002b60…002b80            00 01 00 04 02 0c 00 01 00 00 00 00 00 01 01 3c 3e 0c 00 01 00 00 00 00 00 01 00 3c 3a 0c 00 01   ┆               <>          <:   ┆
0x002b80…002ba0            00 00 00 00 00 01 01 90 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 00   ┆                                ┆
0x002ba0…002bc0            00 00 00 00 00 00 11 01 00 02 00 04 00 08 00 10 00 20 00 40 00 80 00 00 01 00 02 00 04 00 08 00   ┆                   @            ┆
0x002bc0…002be0            10 00 20 00 40 00 80 01 00 02 00 04 00 08 00 10 00 20 00 40 00 80 00 00 01 00 02 00 04 00 08 00   ┆    @              @            ┆
          […0x2…]
0x002c20…002c40            10 00 20 00 40 00 80 2d 2a 09 00 0b 00 f7 ff f5 ff ff ff 0a 00 01 00 f6 ff 13 00 15 00 0c 00 f8   ┆    @  -*                       ┆
0x002c40…002c60            ff ed ff eb ff f4 ff 08 00 51 52 4e 42 04 0a aa 01 07 aa 02 08 55 03 09 55 ff ff ff ff ff ff ff   ┆         QRNB        U  U       ┆
0x002c60…002c80            ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff   ┆                                ┆
0x002c80…002ca0            ff ff ff 00 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 ff ff ff ff 08 00 09 00 0a 00 0b 00 0c   ┆                                ┆
0x002ca0…002cc0            00 0d 00 0e 00 0f 00 ff ff ff ff 10 00 11 00 12 00 13 00 14 00 15 00 16 00 17 00 ff ff ff ff 18   ┆                                ┆
0x002cc0…002ce0            00 19 00 1a 00 1b 00 1c 00 1d 00 1e 00 1f 00 ff ff ff ff 20 00 21 00 22 00 23 00 24 00 25 00 26   ┆                     ! " # $ % &┆
0x002ce0…002d00            00 27 00 ff ff ff ff 28 00 29 00 2a 00 2b 00 2c 00 2d 00 2e 00 2f 00 ff ff ff ff 30 00 31 00 32   ┆ '     ( ) * + , - . /     0 1 2┆
0x002d00…002d20            00 33 00 34 00 35 00 36 00 37 00 ff ff ff ff 38 00 39 00 3a 00 3b 00 3c 00 3d 00 3e 00 3f 00 ff   ┆ 3 4 5 6 7     8 9 : ; < = > ?  ┆
0x002d20…002d40            ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff   ┆                                ┆
0x002d40…002d60            ff ff ff ff ff ff ff ff ff 20 77 68 69 74 65 20 20 20 20 20 62 6c 61 63 6b 20 20 20 20 6e 6f 20   ┆          white     black    no ┆
0x002d60…002d80            6f 6e 65 20 20 20 20 00 02 55 01 00 ff ff 55 aa 50 52 4e 42 51 4b 50 52 4e 42 51 4b 2e 00 00 00   ┆one      U    U PRNBQKPRNBQK.   ┆
0x002d80…002da0            00 00 00 01 01 01 01 01 01 02 00 01 02 03 04 05 00 01 02 03 04 05 00 40 00 40 01 c0 00 c0 00 40   ┆                       @ @     @┆
0x002da0…002dc0            02 00 00 c0 ff c0 fe 40 ff 40 ff c0 fd 00 00 00 00 77 68 69 74 65 20 6b 69 6e 67 77 68 69 74 65   ┆       @ @       white kingwhite┆
0x002dc0…002de0            20 6c 6f 6e 67 62 6c 61 63 6b 20 6b 69 6e 67 62 6c 61 63 6b 20 6c 6f 6e 67 07 00 3f 38 00 01 02   ┆ longblack kingblack long  ?8   ┆
0x002de0…002e00            03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22   ┆                              !"┆
0x002e00…002e20            23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 00 01 02   ┆#$%&'()*+,-./0123456789:;<=>?   ┆
0x002e20…002e40            03 04 05 06 07 00 01 02 03 04 05 06 07 00 01 02 03 04 05 06 07 00 01 02 03 04 05 06 07 00 01 02   ┆                                ┆
0x002e40…002e60            03 04 05 06 07 00 01 02 03 04 05 06 07 00 01 02 03 04 05 06 07 00 01 02 03 04 05 06 07 15 16 17   ┆                                ┆
0x002e60…002e80            18 19 1a 1b 1c 1f 20 21 22 23 24 25 26 29 2a 2b 2c 2d 2e 2f 30 33 34 35 36 37 38 39 3a 3d 3e 3f   ┆       !"#$%&)*+,-./03456789:=>?┆
0x002e80…002ea0            40 41 42 43 44 47 48 49 4a 4b 4c 4d 4e 51 52 53 54 55 56 57 58 5b 5c 5d 5e 5f 60 61 62 00 00 00   ┆@ABCDGHIJKLMNQRSTUVWXÆØÅ^_`ab   ┆
0x002ea0…002ec0            00 00 00 00 00 01 01 01 01 01 01 01 01 02 02 02 02 02 02 02 02 03 03 03 03 03 03 03 03 04 04 04   ┆                                ┆
0x002ec0…002ee0            04 04 04 04 04 05 05 05 05 05 05 05 05 06 06 06 06 06 06 06 06 07 07 07 07 07 07 07 07 00 01 02   ┆                                ┆
0x002ee0…002f00            03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 01 02   ┆                                ┆
0x002f00…002f20            03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 00 00 00   ┆                                ┆
0x002f20…002f40            00 00 00 00 00 00 00 00 00 00 00 00 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 02 02 02   ┆                                ┆
0x002f40…002f60            02 02 02 02 02 02 02 02 02 02 02 02 02 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 50 52 4e   ┆                             PRN┆
0x002f60…002f80            42 51 4b 00 06 aa 01 07 55 02 08 55 03 09 aa 04 0a aa 05 0b 55 60 00 00 00 00 00 00 00 0e 00 00   ┆BQK     U  U        U`          ┆
0x002f80…002fa0            00 00 00 00 00 00 00 00 00 00 00 00 60 00 00 00 00 00 00 00 0e 70 00 00 00 00 00 00 00 1c 00 00   ┆            `        p          ┆
0x002fa0…002fc0            00 00 00 00 00 00 00 00 00 00 00 00 70 00 00 00 00 00 00 00 1c 02 00 0e 00 08 00 0d 00 19 00 08   ┆            p                   ┆
0x002fc0…002fe0            00 01 01 01 01 01 01 01 ff 80 80 80 80 80 80 80 ff ff 80 80 80 80 80 80 80 ff 01 01 01 01 01 01   ┆                                ┆
0x002fe0…003000            01 01 01 01 01 01 01 01 01 00 00 00 00 00 00 00 ff 80 80 80 80 80 80 80 80 ff 00 00 00 00 00 00   ┆                                ┆
0x003000…003020 (0, 1, 5)  00 01 01 01 01 01 01 ff ff 80 80 80 80 80 80 ff ff c0 c0 c0 c0 c0 c0 c0 ff ff c0 c0 c0 c0 c0 c0   ┆                                ┆
0x003020…003040            c0 ff ff 80 80 80 80 80 80 ff ff 01 01 01 01 01 01 ff 03 03 03 03 03 03 03 03 03 03 03 03 03 03   ┆                                ┆
0x003040…003060            ff c3 c3 00 00 00 00 c3 c3 00 00 18 3c 3c 18 00 00 00 00 0c 00 01 00 00 00 00 01 03 aa 01 00 02   ┆            <<                  ┆
0x003060…003080            01 00 00 00 00 2a 01 00 00 00 00 01 00 00 00 00 2a 01 01 00 00 01 01 01 00 00 01 2a 01 00 00 00   ┆     *          *          *    ┆
0x003080…0030a0            00 01 00 00 00 00 2a 01 01 00 01 00 01 01 00 01 00 2a 01 00 00 00 00 01 00 00 00 00 2a 01 01 00   ┆      *          *          *   ┆
0x0030a0…0030c0            01 01 01 01 00 01 01 2a 01 00 00 00 00 01 00 00 00 00 2a 01 01 00 01 01 01 01 00 01 01 2a 01 00   ┆       *          *          *  ┆
0x0030c0…0030e0            00 00 00 01 00 00 00 00 2a 01 01 01 01 01 01 01 01 01 01 2a 01 01 00 00 00 01 01 00 00 01 2a 01   ┆        *          *          * ┆
0x0030e0…003100            01 00 00 01 01 01 00 01 00 2a 01 01 00 01 00 01 01 00 00 01 2a 01 01 00 01 00 01 01 00 01 00 2a   ┆         *          *          *┆
0x003100…003120            01 01 00 00 01 01 01 00 01 01 2a 01 01 00 00 01 01 01 00 00 01 2a 01 01 00 01 01 01 01 00 01 01   ┆          *          *          ┆
0x003120…003140            2a 01 01 00 01 00 01 01 00 01 00 2a 01 01 00 01 01 01 01 01 01 00 2a 01 01 00 00 01 01 01 00 00   ┆*          *          *         ┆
0x003140…003160            01 2a 01 01 01 01 00 01 01 01 01 00 2a 01 01 00 01 00 01 01 00 01 00 2a 01 01 01 01 00 01 01 00   ┆ *          *          *        ┆
0x003160…003180            00 01 2a 01 01 01 01 01 01 01 01 01 01 2a 01 01 00 00 01 01 01 00 01 00 2a 01 01 01 01 01 01 01   ┆  *          *          *       ┆
0x003180…0031a0            01 01 01 2a 01 01 00 01 00 01 01 00 01 01 2a 01 01 00 01 01 01 01 01 01 00 2a 01 01 00 01 01 01   ┆   *          *          *      ┆
0x0031a0…0031c0            01 00 01 01 2a 01 01 01 01 00 01 01 01 01 00 2a 01 01 01 01 00 01 01 01 01 01 2a 01 01 00 01 01   ┆    *          *          *     ┆
0x0031c0…0031e0            01 01 00 01 01 2a 01 01 01 01 01 01 01 01 01 01 2a 01 01 01 01 00 01 01 01 01 00 2a 01 01 01 01   ┆     *          *          *    ┆
0x0031e0…003200            01 01 01 01 01 01 2a 01 01 01 01 01 01 00 00 00 00 2d 00 00 00 01 01 01 00 00 00 00 2d 00 00 01   ┆      *          -          -   ┆
0x003200…003220            01 01 01 01 00 00 01 2d 00 00 00 01 01 01 01 00 01 00 2d 00 00 00 01 01 01 01 00 00 01 2d 00 00   ┆       -          -          -  ┆
0x003220…003240            01 01 01 01 01 00 01 00 2d 00 00 01 01 01 01 01 00 01 01 2d 00 00 00 01 01 01 01 01 01 00 2d 00   ┆        -          -          - ┆
0x003240…003260            00 00 01 01 01 01 00 01 01 2d 00 00 01 01 01 01 01 01 01 00 2d 00 00 01 01 01 01 01 01 01 01 2d   ┆         -          -          -┆
0x003260…003280            00 00 01 01 01 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆      U UU U U  U U UU U U  U U ┆
0x003280…0032a0            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x0032a0…0032c0            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x0032c0…0032e0            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x0032e0…003300            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003300…003320            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003320…003340            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003340…003360            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003360…003380            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003380…0033a0            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x0033a0…0033c0            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x0033c0…0033e0            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x0033e0…003400            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003400…003420 (0, 1, 6)  55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003420…003440            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003440…003460            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003460…003480            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003480…0034a0            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x0034a0…0034c0            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x0034c0…0034e0            55 00 00 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆U  U U  U U UU U U  U U UU U U  ┆
0x0034e0…003500            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003500…003520            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003520…003540            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003540…003560            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003560…003580            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003580…0035a0            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x0035a0…0035c0            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x0035c0…0035e0            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x0035e0…003600            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003600…003620            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003620…003640            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003640…003660            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003660…003680            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003680…0036a0            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x0036a0…0036c0            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x0036c0…0036e0            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x0036e0…003700            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003700…003720            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003720…003740            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003740…003760            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003760…003780            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003780…0037a0            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x0037a0…0037c0            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x0037c0…0037e0            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x0037e0…003800            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003800…003820 (0, 1, 7)  aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003820…003840            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003840…003860            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003860…003880            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003880…0038a0            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x0038a0…0038c0            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x0038c0…0038e0            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x0038e0…003900            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003900…003920            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003920…003940            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003940…003960            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003960…003980            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003980…0039a0            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x0039a0…0039c0            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x0039c0…0039e0            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x0039e0…003a00            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003a00…003a20            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003a20…003a40            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003a40…003a60            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003a60…003a80            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003a80…003aa0            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003aa0…003ac0            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003ac0…003ae0            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003ae0…003b00            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003b00…003b20            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003b20…003b40            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003b40…003b60            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003b60…003b80            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003b80…003ba0            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003ba0…003bc0            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003bc0…003be0            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003be0…003c00            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003c00…003c20 (0, 1, 8)  55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003c20…003c40            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003c40…003c60            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003c60…003c80            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003c80…003ca0            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003ca0…003cc0            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003cc0…003ce0            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003ce0…003d00            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003d00…003d20            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003d20…003d40            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003d40…003d60            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003d60…003d80            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003d80…003da0            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003da0…003dc0            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003dc0…003de0            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003de0…003e00            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003e00…003e20            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003e20…003e40            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003e40…003e60            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003e60…003e80            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003e80…003ea0            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003ea0…003ec0            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003ec0…003ee0            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003ee0…003f00            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003f00…003f20            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003f20…003f40            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003f40…003f60            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003f60…003f80            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003f80…003fa0            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x003fa0…003fc0            55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa   ┆UU U U  U U UU U U  U U UU U U  ┆
0x003fc0…003fe0            55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55   ┆U U UU U U  U U UU U U  U U UU U┆
0x003fe0…004000            aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa 55 55 aa 55 aa 55 aa aa 55 aa 55 aa   ┆ U  U U UU U U  U U UU U U  U U ┆
0x004000…004020 (1, 0, 1)  e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x1ff…]
0x008000…008020 (2, 0, 1)  DirEnt {status=0x20, name=»chess      «, xl=0x31, bc=0x00, xh=0x00, rc=0x00, al=[0x0000, 0x0000, 0x0000, 0x0000, 0x0b3f, 0x5415, 0x0b3f, 0x5415], flags=[0,0,0,0,0,0,0,0,0,0,0]}
0x008020…008040            DirEnt {status=0x00, name=»CHESS   TST«, xl=0x00, bc=0x00, xh=0x00, rc=0x00, al=[0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000], flags=[0,0,0,0,0,0,0,0,0,0,0]}
0x008040…008060            DirEnt {status=0x00, name=»CHESS750CMD«, xl=0x00, bc=0x00, xh=0x00, rc=0x80, al=[0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010], flags=[0,0,0,0,0,0,0,0,0,1,0]}
0x008060…008080            UnusedDirEnt {status=0xe5}
0x008080…0080a0            DirEnt {status=0x00, name=»CHESS   CMD«, xl=0x00, bc=0x00, xh=0x00, rc=0x80, al=[0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d], flags=[0,0,0,0,0,0,0,0,0,0,0]}
0x0080a0…0080c0            DirEnt {status=0x00, name=»CHESS   CMD«, xl=0x01, bc=0x00, xh=0x00, rc=0x70, al=[0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0000], flags=[0,0,0,0,0,0,0,0,0,0,0]}
0x0080c0…0080e0            DirEnt {status=0x00, name=»CHESS   000«, xl=0x00, bc=0x00, xh=0x00, rc=0x80, al=[0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c], flags=[0,0,0,0,0,0,0,0,0,0,0]}
0x0080e0…008100            UnusedDirEnt {status=0xe5}
0x008100…008120            DirEnt {status=0x00, name=»CHESS   000«, xl=0x01, bc=0x00, xh=0x00, rc=0x80, al=[0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034], flags=[0,0,0,0,0,0,0,0,0,0,0]}
0x008120…008140            DirEnt {status=0x00, name=»CHESS   000«, xl=0x02, bc=0x00, xh=0x00, rc=0x69, al=[0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x0000], flags=[0,0,0,0,0,0,0,0,0,0,0]}
0x008140…008160            DirEnt {status=0x00, name=»CHESS   OP «, xl=0x00, bc=0x00, xh=0x00, rc=0x80, al=[0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043], flags=[0,0,0,0,0,0,0,0,0,1,0]}
0x008160…008180            UnusedDirEnt {status=0xe5}
0x008180…0081a0            DirEnt {status=0x00, name=»CHESS   OP «, xl=0x01, bc=0x00, xh=0x00, rc=0x1f, al=[0x0044, 0x0045, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000], flags=[0,0,0,0,0,0,0,0,0,1,0]}
0x0081a0…0081c0            DirEnt {status=0x00, name=»CHESS   FNT«, xl=0x00, bc=0x00, xh=0x00, rc=0x21, al=[0x0046, 0x0047, 0x0048, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000], flags=[0,0,0,0,0,0,0,0,0,1,0]}
0x0081c0…0081e0            DirEnt {status=0x00, name=»CHESS   CHS«, xl=0x00, bc=0x00, xh=0x00, rc=0x01, al=[0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000], flags=[0,0,0,0,0,0,0,0,0,0,0]}
0x0081e0…008200            UnusedDirEnt {status=0xe5}
0x008200…008220            DirEnt {status=0x00, name=»CHESS   HLP«, xl=0x00, bc=0x00, xh=0x00, rc=0x16, al=[0x004a, 0x004b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000], flags=[0,0,0,0,0,0,0,0,0,1,0]}
0x008220…008240            DirEnt {status=0x00, name=»CHESS750CMD«, xl=0x01, bc=0x00, xh=0x00, rc=0x80, al=[0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x004c, 0x004d, 0x004e], flags=[0,0,0,0,0,0,0,0,0,1,0]}
0x008240…008260            DirEnt {status=0x00, name=»CHESS750CMD«, xl=0x02, bc=0x00, xh=0x00, rc=0x05, al=[0x004f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000], flags=[0,0,0,0,0,0,0,0,0,1,0]}
0x008260…008280            UnusedDirEnt {status=0xe5}
0x008280…0082a0            DirEnt {status=0x00, name=»CHESS750000«, xl=0x00, bc=0x00, xh=0x00, rc=0x80, al=[0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057], flags=[0,0,0,0,0,0,0,0,0,1,0]}
0x0082a0…0082c0            DirEnt {status=0x00, name=»CHESS750000«, xl=0x01, bc=0x00, xh=0x00, rc=0x80, al=[0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f], flags=[0,0,0,0,0,0,0,0,0,1,0]}
0x0082c0…0082e0            DirEnt {status=0x00, name=»CHESS750000«, xl=0x02, bc=0x00, xh=0x00, rc=0x80, al=[0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067], flags=[0,0,0,0,0,0,0,0,0,1,0]}
0x0082e0…008300            UnusedDirEnt {status=0xe5}
0x008300…008320            DirEnt {status=0x00, name=»CHESS750000«, xl=0x03, bc=0x00, xh=0x00, rc=0x15, al=[0x0068, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000], flags=[0,0,0,0,0,0,0,0,0,1,0]}
0x008320…008340            DirEnt {status=0x00, name=»CHESS80 PAS«, xl=0x00, bc=0x00, xh=0x00, rc=0x80, al=[0x0008, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070], flags=[0,0,0,0,0,0,0,0,0,0,0]}
0x008340…008360            DirEnt {status=0x00, name=»CHESS80 PAS«, xl=0x01, bc=0x00, xh=0x00, rc=0x80, al=[0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078], flags=[0,0,0,0,0,0,0,0,0,0,0]}
0x008360…008380            UnusedDirEnt {status=0xe5}
0x008380…0083a0            DirEnt {status=0x00, name=»CHESS80 PAS«, xl=0x02, bc=0x00, xh=0x00, rc=0x80, al=[0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080], flags=[0,0,0,0,0,0,0,0,0,0,0]}
0x0083a0…0083c0            DirEnt {status=0x00, name=»CHESS80 PAS«, xl=0x03, bc=0x00, xh=0x00, rc=0x80, al=[0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088], flags=[0,0,0,0,0,0,0,0,0,0,0]}
0x0083c0…0083e0            DirEnt {status=0x00, name=»CHESS80 PAS«, xl=0x04, bc=0x00, xh=0x00, rc=0x80, al=[0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090], flags=[0,0,0,0,0,0,0,0,0,0,0]}
0x0083e0…008400            UnusedDirEnt {status=0xe5}
0x008400…008420 (2, 0, 2)  DirEnt {status=0x00, name=»CHESS80 PAS«, xl=0x05, bc=0x00, xh=0x00, rc=0x1b, al=[0x0091, 0x0092, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000], flags=[0,0,0,0,0,0,0,0,0,0,0]}
0x008420…008440            UnusedDirEnt {status=0xe5}
          […0xfe…]
0x00a400…00a420 (2, 1, 2)  e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00a460…00a480            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00a480…00a4a0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00a4e0…00a500            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00a500…00a520            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00a560…00a580            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00a580…00a5a0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00a5e0…00a600            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00a600…00a620            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00a660…00a680            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00a680…00a6a0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00a6e0…00a700            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00a700…00a720            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00a760…00a780            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00a780…00a7a0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00a7e0…00a800            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00a800…00a820 (2, 1, 3)  e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00a860…00a880            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00a880…00a8a0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00a8e0…00a900            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00a900…00a920            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00a960…00a980            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00a980…00a9a0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00a9e0…00aa00            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00aa00…00aa20            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00aa60…00aa80            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00aa80…00aaa0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00aae0…00ab00            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00ab00…00ab20            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00ab60…00ab80            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00ab80…00aba0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00abe0…00ac00            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00ac00…00ac20 (2, 1, 4)  e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00ac60…00ac80            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00ac80…00aca0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00ace0…00ad00            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00ad00…00ad20            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00ad60…00ad80            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00ad80…00ada0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00ade0…00ae00            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00ae00…00ae20            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00ae60…00ae80            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00ae80…00aea0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00aee0…00af00            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00af00…00af20            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00af60…00af80            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00af80…00afa0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00afe0…00b000            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00b000…00b020 (2, 1, 5)  e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00b060…00b080            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00b080…00b0a0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00b0e0…00b100            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00b100…00b120            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00b160…00b180            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00b180…00b1a0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00b1e0…00b200            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00b200…00b220            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00b260…00b280            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00b280…00b2a0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00b2e0…00b300            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00b300…00b320            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00b360…00b380            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00b380…00b3a0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00b3e0…00b400            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00b400…00b420 (2, 1, 6)  e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00b460…00b480            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00b480…00b4a0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00b4e0…00b500            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00b500…00b520            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00b560…00b580            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00b580…00b5a0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00b5e0…00b600            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00b600…00b620            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00b660…00b680            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00b680…00b6a0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00b6e0…00b700            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00b700…00b720            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00b760…00b780            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00b780…00b7a0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00b7e0…00b800            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00b800…00b820 (2, 1, 7)  e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00b860…00b880            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00b880…00b8a0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00b8e0…00b900            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00b900…00b920            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00b960…00b980            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00b980…00b9a0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00b9e0…00ba00            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00ba00…00ba20            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00ba60…00ba80            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00ba80…00baa0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00bae0…00bb00            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00bb00…00bb20            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00bb60…00bb80            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00bb80…00bba0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00bbe0…00bc00            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00bc00…00bc20 (2, 1, 8)  e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00bc60…00bc80            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00bc80…00bca0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00bce0…00bd00            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00bd00…00bd20            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00bd60…00bd80            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00bd80…00bda0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00bde0…00be00            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00be00…00be20            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00be60…00be80            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00be80…00bea0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00bee0…00bf00            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00bf00…00bf20            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00bf60…00bf80            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00bf80…00bfa0            e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x2…]
0x00bfe0…00c000            21 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆!                               ┆
0x00c000…00c400 (3, 0, 1)  DataBlock {»CHESS80.PAS«}
          […0x1…]
0x00c800…00cc00 (3, 0, 3)  DataBlock {»CHESS750.CMD«}
          […0x19…]
0x013000…013400 (4, 1, 5)  DataBlock {»CHESS.CMD«}
          […0x1d…]
0x01a800…01ac00 (6, 1, 3)  DataBlock {»CHESS.000«}
          […0x2d…]
0x026000…026400 (9, 1, 1)  DataBlock {»CHESS.OP«}
          […0x13…]
0x02b000…02b400 (10, 1, 5) DataBlock {»CHESS.FNT«}
          […0x5…]
0x02c800…02cc00 (11, 0, 3) DataBlock {»CHESS.CHS«}
          […0x1…]
0x02d000…02d400 (11, 0, 5) DataBlock {»CHESS.HLP«}
          […0x3…]
0x02e000…02e400 (11, 1, 1) DataBlock {»CHESS750.CMD«}
          […0x7…]
0x030000…030400 (12, 0, 1) DataBlock {»CHESS750.000«}
          […0x33…]
0x03d000…03d400 (15, 0, 5) DataBlock {»CHESS80.PAS«}
          […0x51…]
0x051800…051820 (20, 0, 7) 2a 20 2a 20 2a 20 52 20 43 20 20 43 20 48 20 45 20 53 20 53 20 20 37 20 35 20 30 20 2a 20 2a 20   ┆* * * R C  C H E S S  7 5 0 * * ┆
0x051820…051840            2a 0d 0a 20 20 72 65 76 20 32 2e 33 20 20 64 61 74 65 20 38 35 2e 31 30 2e 30 34 0d 0a 0d 0a 2a   ┆*    rev 2.3  date 85.10.04    *┆
0x051840…051860            2a 2a 2a 2a 2a 2a 20 4f 70 65 6e 69 6e 67 73 20 47 61 6d 65 20 2a 2a 2a 2a 2a 2a 2a 0d 0a 20 33   ┆****** Openings Game *******   3┆
0x051860…051880            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
          […0x1…]
0x0518a0…0518c0            20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 41 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆               A                ┆
0x0518c0…0518e0            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
0x0518e0…051900            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 35   ┆                               5┆
0x051900…051920            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
          […0x1…]
0x051940…051960            20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆               1                ┆
0x051960…051980            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
0x051980…0519a0            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 39   ┆                               9┆
0x0519a0…0519c0            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
          […0x1…]
0x0519e0…051a00            20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 42 33 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆               B3               ┆
0x051a00…051a20            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
0x051a20…051a40            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 41   ┆                               A┆
0x051a40…051a60            32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆2                               ┆
0x051a60…051a80            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆                                ┆
0x051a80…051aa0            e8 dc 85 e8 fb 8e b8 01 00 50 b8 4e 00 2d 01 00 59 91 2b c8 7d 03 e9 2c 00 41 88 46 f3 51 bf c1   ┆         P N -  Y + å  , A F Q  ┆
0x051aa0…051ac0            02 1e e8 a0 82 8a 46 f3 32 e4 97 8a 85 8e 32 32 e4 50 b8 00 00 e8 a7 85 e8 c6 8e 59 49 74 06 fe   ┆      F 2     22 P         YIt  ┆
0x051ac0…051ae0            46 f3 e9 d8 ff bf c1 02 1e e8 79 82 e8 64 86 e8 af 8e b8 01 00 05 01 00 97 8a 85 8e 32 32 e4 50   ┆F         y  d              22 P┆
0x051ae0…051b00            e8 3a 73 b8 41 00 50 b8 57 00 e8 49 73 b8 59 00 50 b8 5a 00 e8 3f 73 e8 08 74 75 03 e9 dc 02 8d   ┆ :s A P W  Is Y P Z  ?s  tu     ┆
0x051b00…051b20            7e f4 16 57 eb 0a 20 20 20 20 20 20 20 20 20 20 bf 04 98 0e b9 0a 00 e8 f4 8c a0 8f 32 32 e4 88   ┆ü  W                        22  ┆
0x051b20…051b40            46 f4 b8 01 00 05 01 00 97 57 b8 01 00 05 01 00 97 8a 85 8e 32 32 e4 5f 88 43 f3 e8 0a db 8d 7e   ┆F        W          22 _ C     ü┆
0x051b40…051b60            f4 16 b1 0a e8 2d 70 e8 ec 6f 0a 42 4f 20 20 20 20 20 20 20 20 e8 73 70 75 03 e9 06 00 e8 50 df   ┆     -p  o BO         spu     P ┆
0x051b60…051b80            e9 78 02 8d 7e f4 16 b1 0a e8 08 70 e8 c7 6f 0a 45 4e 20 20 20 20 20 20 20 20 e8 4e 70 75 03 e9   ┆ x  ü      p  o EN         Npu  ┆
0x051b80…051ba0            06 00 e8 21 e2 e9 53 02 8d 7e f4 16 b1 0a e8 e3 6f e8 a2 6f 0a 47 4f 20 20 20 20 20 20 20 20 e8   ┆   !  S  ü      o  o GO         ┆
0x051ba0…051bc0            29 70 75 03 e9 06 00 e8 15 e2 e9 2e 02 8d 7e f4 16 b1 0a e8 be 6f e8 7d 6f 0a 49 4e 20 20 20 20   ┆)pu        .  ü      o åo IN    ┆
0x051bc0…051be0            20 20 20 20 e8 04 70 75 03 e9 06 00 e8 32 e2 e9 09 02 8d 7e f4 16 b1 0a e8 99 6f e8 58 6f 0a 4c   ┆      pu     2     ü      o Xo L┆
0x051be0…051c00            45 20 20 20 20 20 20 20 20 e8 df 6f 75 03 e9 06 00 e8 26 e2 e9 e4 01 8d 7e f4 16 b1 0a e8 74 6f   ┆E          ou     &     ü     to┆
0x051c00…051c20 (20, 0, 8) 65 70 2c 65 72 2c 65 6e 2c 65 62 2c 65 71 2c 65 6b 29 3b 0d 0a 20 20 74 76 09 3d 20 61 76 2e 2e   ┆ep,er,en,eb,eq,ek);    tv = av..┆
0x051c20…051c40            7a 76 3b 0d 0a 20 20 74 77 09 3d 20 61 77 2e 2e 7a 77 3b 0d 0a 20 20 74 78 09 3d 20 61 78 2e 2e   ┆zv;    tw = aw..zw;    tx = ax..┆
0x051c40…051c60            7a 78 3b 0d 0a 20 20 74 79 09 3d 20 61 79 2e 2e 7a 79 3b 0d 0a 20 20 74 79 62 09 3d 20 61 79 2e   ┆zx;    ty = ay..zy;    tyb = ay.┆
0x051c60…051c80            2e 7a 79 62 3b 0d 0a 20 20 74 7a 09 3d 20 72 65 61 6c 3b 0d 0a 20 20 62 79 74 65 09 3d 20 30 2e   ┆.zyb;    tz = real;    byte = 0.┆
0x051c80…051ca0            2e 32 35 35 3b 0d 0a 0d 0a 20 20 28 2a 20 73 65 74 73 20 2a 29 0d 0a 20 20 73 63 09 3d 20 73 65   ┆.255;      (* sets *)    sc = se┆
0x051ca0…051cc0            74 20 6f 66 20 61 63 2e 2e 7a 63 3b 0d 0a 20 20 73 66 09 3d 20 73 65 74 20 6f 66 20 74 66 3b 0d   ┆t of ac..zc;    sf = set of tf; ┆
0x051cc0…051ce0            0a 20 20 73 71 09 3d 20 73 65 74 20 6f 66 20 74 71 3b 0d 0a 20 20 73 72 09 3d 20 73 65 74 20 6f   ┆   sq = set of tq;    sr = set o┆
0x051ce0…051d00            66 20 74 72 3b 0d 0a 20 20 73 78 09 3d 20 73 65 74 20 6f 66 20 74 78 3b 0d 0a 20 20 0d 0a 20 20   ┆f tr;    sx = set of tx;        ┆
0x051d00…051d20            28 2a 20 72 65 63 6f 72 64 73 20 2a 29 0d 0a 20 20 72 63 09 3d 20 61 72 72 61 79 5b 74 73 5d 20   ┆(* records *)    rc = arrayÆtsÅ ┆
0x051d20…051d40            6f 66 20 74 70 3b 0d 0a 20 20 72 62 09 3d 20 72 65 63 6f 72 64 0d 0a 20 20 09 72 62 74 6d 09 3a   ┆of tp;    rb = record     rbtm :┆
0x051d40…051d60            20 74 6d 3b 0d 0a 20 20 09 72 62 74 73 09 3a 20 74 74 3b 0d 0a 20 20 09 72 62 74 69 09 3a 20 74   ┆ tm;     rbts : tt;     rbti : t┆
0x051d60…051d80            69 3b 0d 0a 20 20 09 72 62 73 71 09 3a 20 73 71 3b 0d 0a 20 20 09 63 61 73 65 20 69 6e 74 65 67   ┆i;     rbsq : sq;     case integ┆
0x051d80…051da0            65 72 20 6f 66 0d 0a 20 20 09 20 20 30 3a 09 28 72 62 69 73 3a 09 72 63 29 3b 0d 0a 20 20 09 20   ┆er of       0: (rbis: rc);      ┆
0x051da0…051dc0            20 31 3a 09 28 72 62 69 72 66 3a 09 61 72 72 61 79 20 5b 74 72 2c 74 66 5d 20 6f 66 20 74 70 29   ┆ 1: (rbirf: array Ætr,tfÅ of tp)┆
0x051dc0…051de0            3b 0d 0a 20 20 09 65 6e 64 3b 0d 0a 20 20 72 61 09 3d 20 70 61 63 6b 65 64 20 61 72 72 61 79 5b   ┆;     end;    ra = packed arrayÆ┆
0x051de0…051e00            74 61 5d 20 6f 66 20 74 63 3b 0d 0a 20 20 72 6e 09 3d 20 70 61 63 6b 65 64 20 61 72 72 61 79 20   ┆taÅ of tc;    rn = packed array ┆
0x051e00…051e20            5b 74 6e 5d 20 6f 66 20 74 63 3b 0d 0a 20 20 72 6e 6e 09 3d 20 70 61 63 6b 65 64 20 61 72 72 61   ┆ÆtnÅ of tc;    rnn = packed arra┆
0x051e20…051e40            79 20 5b 74 6e 6e 5d 20 6f 66 20 74 63 3b 0d 0a 20 20 72 6a 09 3d 20 70 61 63 6b 65 64 20 61 72   ┆y ÆtnnÅ of tc;    rj = packed ar┆
0x051e40…051e60            72 61 79 20 5b 74 6a 5d 20 6f 66 20 74 63 3b 0d 0a 20 20 72 64 09 3d 20 70 61 63 6b 65 64 20 72   ┆ray ÆtjÅ of tc;    rd = packed r┆
0x051e60…051e80            65 63 6f 72 64 0d 0a 20 20 09 72 64 70 63 09 3a 20 74 62 3b 0d 0a 20 20 09 72 64 73 6c 09 3a 20   ┆ecord     rdpc : tb;     rdsl : ┆
0x051e80…051ea0            74 62 3b 0d 0a 20 20 09 72 64 6b 71 09 3a 20 74 62 3b 0d 0a 20 20 09 72 64 6e 62 09 3a 20 74 62   ┆tb;     rdkq : tb;     rdnb : tb┆
0x051ea0…051ec0            3b 0d 0a 20 20 09 72 64 72 6b 09 3a 20 74 62 3b 0d 0a 20 20 09 65 6e 64 3b 0d 0a 20 20 72 6d 09   ┆;     rdrk : tb;     end;    rm ┆
0x051ec0…051ee0            3d 20 70 61 63 6b 65 64 20 72 65 63 6f 72 64 0d 0a 20 20 09 72 6d 66 72 09 3a 20 74 73 3b 0d 0a   ┆= packed record     rmfr : ts;  ┆
0x051ee0…051f00            20 20 09 72 6d 74 6f 09 3a 20 74 73 3b 0d 0a 20 20 09 72 6d 63 70 09 3a 20 74 70 3b 0d 0a 20 20   ┆   rmto : ts;     rmcp : tp;    ┆
0x051f00…051f20            09 72 6d 63 61 09 3a 20 74 62 3b 0d 0a 20 20 09 72 6d 61 63 09 3a 20 74 62 3b 0d 0a 20 20 09 72   ┆ rmca : tb;     rmac : tb;     r┆
0x051f20…051f40            6d 63 68 09 3a 20 74 62 3b 0d 0a 20 20 09 72 6d 6d 74 09 3a 20 74 62 3b 0d 0a 20 20 09 72 6d 69   ┆mch : tb;     rmmt : tb;     rmi┆
0x051f40…051f60            6c 09 3a 20 74 62 3b 0d 0a 20 20 09 72 6d 73 75 09 3a 20 74 62 3b 0d 0a 20 20 09 63 61 73 65 20   ┆l : tb;     rmsu : tb;     case ┆
0x051f60…051f80            72 6d 70 72 20 3a 20 74 62 20 6f 66 0d 0a 20 20 09 20 20 66 61 6c 73 65 3a 28 0d 0a 20 20 09 20   ┆rmpr : tb of       false:(      ┆
0x051f80…051fa0            20 20 20 63 61 73 65 20 72 6d 6f 6f 20 3a 20 74 62 20 6f 66 0d 0a 20 20 09 20 20 20 20 20 20 66   ┆   case rmoo : tb of           f┆
0x051fa0…051fc0            61 6c 73 65 20 3a 09 28 72 6d 65 70 20 3a 09 74 62 29 3b 0d 0a 20 20 09 20 20 20 20 20 20 74 72   ┆alse : (rmep : tb);           tr┆
0x051fc0…051fe0            75 65 20 3a 09 28 72 6d 71 73 20 3a 09 74 62 29 3b 0d 0a 20 20 09 20 20 20 20 20 20 20 20 29 3b   ┆ue : (rmqs : tb);             );┆
0x051fe0…052000            0d 0a 20 20 09 20 20 74 72 75 65 3a 09 28 72 6d 70 70 20 3a 20 74 67 29 3b 0d 0a 20 20 09 65 6e   ┆       true: (rmpp : tg);     en┆
0x052000…052020 (20, 1, 1) 64 3b 0d 0a 20 20 72 73 09 3d 20 70 61 63 6b 65 64 20 72 65 63 6f 72 64 0d 0a 20 20 09 20 20 20   ┆d;    rs = packed record        ┆
0x052020…052040            20 63 61 73 65 20 69 6e 74 65 67 65 72 20 6f 66 0d 0a 20 20 09 20 20 20 20 20 30 3a 09 28 72 73   ┆ case integer of          0: (rs┆
0x052040…052060            73 73 20 3a 20 73 78 29 3b 0d 0a 20 20 09 20 20 20 20 20 31 3a 09 28 72 73 74 69 20 3a 20 61 72   ┆ss : sx);          1: (rsti : ar┆
0x052060…052080            72 61 79 20 5b 74 79 5d 20 6f 66 20 74 69 29 3b 0d 0a 09 20 20 20 20 20 32 3a 09 28 72 73 62 74   ┆ray ÆtyÅ of ti);        2: (rsbt┆
0x052080…0520a0            20 3a 20 70 61 63 6b 65 64 20 61 72 72 61 79 20 5b 74 79 62 5d 20 6f 66 20 62 79 74 65 29 3b 0d   ┆ : packed array ÆtybÅ of byte); ┆
0x0520a0…0520c0            0a 20 20 09 20 20 65 6e 64 3b 0d 0a 20 20 72 78 09 3d 20 61 72 72 61 79 20 5b 74 73 5d 20 6f 66   ┆      end;    rx = array ÆtsÅ of┆
0x0520c0…0520e0            20 72 73 3b 0d 0a 20 20 72 79 09 3d 20 70 61 63 6b 65 64 20 72 65 63 6f 72 64 0d 0a 20 20 09 72   ┆ rs;    ry = packed record     r┆
0x0520e0…052100            79 6c 73 09 3a 20 72 64 3b 0d 0a 20 20 09 72 79 63 68 09 3a 20 74 63 3b 0d 0a 20 20 09 72 79 72   ┆yls : rd;     rych : tc;     ryr┆
0x052100…052120            73 09 3a 20 72 64 3b 0d 0a 20 20 09 65 6e 64 3b 0d 0a 20 20 72 65 09 3d 20 61 72 72 61 79 20 5b   ┆s : rd;     end;    re = array Æ┆
0x052120…052140            74 77 5d 20 6f 66 20 74 76 3b 0d 0a 20 20 72 66 09 3d 20 61 72 72 61 79 20 5b 74 77 5d 20 6f 66   ┆twÅ of tv;    rf = array ÆtwÅ of┆
0x052140…052160            20 72 6d 3b 0d 0a 20 20 0d 0a 76 61 72 0d 0a 20 20 28 2a 20 64 61 74 61 20 62 61 73 65 20 2a 29   ┆ rm;      var    (* data base *)┆
0x052160…052180            0d 0a 20 20 62 6f 61 72 64 09 3a 20 72 62 3b 0d 0a 20 20 6e 62 6f 72 64 09 3a 20 72 63 3b 0d 0a   ┆    board : rb;    nbord : rc;  ┆
0x052180…0521a0            20 20 61 74 6b 66 72 09 3a 20 72 78 3b 0d 0a 20 20 61 74 6b 74 6f 09 3a 20 72 78 3b 0d 0a 20 20   ┆  atkfr : rx;    atkto : rx;    ┆
0x0521a0…0521c0            61 6c 61 74 6b 09 3a 20 61 72 72 61 79 20 5b 74 6d 5d 20 6f 66 20 72 73 3b 0d 0a 20 20 74 70 6c   ┆alatk : array ÆtmÅ of rs;    tpl┆
0x0521c0…0521e0            6f 63 09 3a 20 61 72 72 61 79 20 5b 74 70 5d 20 6f 66 20 72 73 3b 0d 0a 20 20 74 6d 6c 6f 63 09   ┆oc : array ÆtpÅ of rs;    tmloc ┆
0x0521e0…052200            3a 20 61 72 72 61 79 20 5b 74 6d 5d 20 6f 66 20 72 73 3b 0d 0a 20 20 6d 6f 76 65 73 09 3a 20 72   ┆: array ÆtmÅ of rs;    moves : r┆
0x052200…052220            66 3b 0d 0a 20 20 76 61 6c 75 75 09 3a 20 72 65 3b 0d 0a 20 20 61 6c 6c 6f 63 09 3a 20 61 72 72   ┆f;    valuu : re;    alloc : arr┆
0x052220…052240            61 79 20 5b 74 6b 5d 20 6f 66 20 72 73 3b 0d 0a 20 20 62 73 74 6d 76 09 3a 20 61 72 72 61 79 20   ┆ay ÆtkÅ of rs;    bstmv : array ┆
0x052240…052260            5b 74 6b 5d 20 6f 66 20 74 77 3b 0d 0a 20 20 62 73 74 76 6c 09 3a 20 61 72 72 61 79 20 5b 61 6b   ┆ÆtkÅ of tw;    bstvl : array Æak┆
0x052260…052280            6d 32 2e 2e 7a 6b 70 31 5d 20 6f 66 20 74 76 3b 0d 0a 20 20 63 73 74 61 74 09 3a 20 61 72 72 61   ┆m2..zkp1Å of tv;    cstat : arra┆
0x052280…0522a0            79 20 5b 74 6b 5d 20 6f 66 20 72 73 3b 0d 0a 20 20 65 6e 70 61 73 09 3a 20 61 72 72 61 79 20 5b   ┆y ÆtkÅ of rs;    enpas : array Æ┆
0x0522a0…0522c0            74 6b 5d 20 6f 66 20 72 73 3b 0d 0a 20 20 67 65 6e 70 6e 09 3a 20 61 72 72 61 79 20 5b 74 6b 5d   ┆tkÅ of rs;    genpn : array ÆtkÅ┆
0x0522c0…0522e0            20 6f 66 20 72 73 3b 0d 0a 20 20 67 65 6e 74 6f 09 3a 20 61 72 72 61 79 20 5b 74 6b 5d 20 6f 66   ┆ of rs;    gento : array ÆtkÅ of┆
0x0522e0…052300            20 72 73 3b 0d 0a 20 20 67 65 6e 66 72 09 3a 20 61 72 72 61 79 20 5b 74 6b 5d 20 6f 66 20 72 73   ┆ rs;    genfr : array ÆtkÅ of rs┆
0x052300…052320            3b 0d 0a 20 20 6d 62 76 61 6c 09 3a 20 61 72 72 61 79 20 5b 74 6b 5d 20 6f 66 20 74 76 3b 0d 0a   ┆;    mbval : array ÆtkÅ of tv;  ┆
0x052320…052340            20 20 6d 76 73 65 6c 09 3a 20 61 72 72 61 79 20 5b 74 6b 5d 20 6f 66 20 74 69 3b 0d 0a 20 20 69   ┆  mvsel : array ÆtkÅ of ti;    i┆
0x052340…052360            6e 64 65 78 09 3a 20 61 72 72 61 79 20 5b 61 6b 2e 2e 7a 6b 70 31 5d 20 6f 66 20 74 77 3b 0d 0a   ┆ndex : array Æak..zkp1Å of tw;  ┆
0x052360…052380            20 20 6b 69 6c 6c 72 09 3a 20 61 72 72 61 79 20 5b 74 6b 5d 20 6f 66 20 72 6d 3b 0d 0a 20 20 6c   ┆  killr : array ÆtkÅ of rm;    l┆
0x052380…0523a0            69 6e 64 78 09 3a 20 61 72 72 61 79 20 5b 74 6b 5d 20 6f 66 20 74 77 3b 0d 0a 20 20 73 72 63 68   ┆indx : array ÆtkÅ of tw;    srch┆
0x0523a0…0523c0            6d 09 3a 20 61 72 72 61 79 20 5b 74 6b 5d 20 6f 66 20 74 68 3b 0d 0a 20 20 63 61 73 74 6c 65 3a   ┆m : array ÆtkÅ of th;    castle:┆
0x0523c0…0523e0            20 61 72 72 61 79 20 5b 74 6d 5d 20 6f 66 20 74 62 3b 0d 0a 20 20 67 6f 69 6e 67 09 3a 20 74 69   ┆ array ÆtmÅ of tb;    going : ti┆
0x0523e0…052400            3b 0d 0a 20 20 6c 73 74 6d 76 09 3a 20 72 6d 3b 0d 0a 20 20 6d 61 78 70 73 09 3a 20 74 76 3b 0d   ┆;    lstmv : rm;    maxps : tv; ┆
0x052400…052420 (20, 1, 2) 0a 20 20 6d 62 6c 74 65 09 3a 20 74 76 3b 0d 0a 20 20 6d 62 70 77 6e 09 3a 20 61 72 72 61 79 20   ┆   mblte : tv;    mbpwn : array ┆
0x052420…052440            5b 74 6d 5d 20 6f 66 20 74 69 3b 0d 0a 20 20 6d 62 74 6f 74 09 3a 20 74 76 3b 0d 0a 20 20 6e 6f   ┆ÆtmÅ of ti;    mbtot : tv;    no┆
0x052440…052460            64 65 73 09 3a 20 74 69 3b 0d 0a 20 20 6a 6e 74 6b 09 3a 20 74 6b 3b 0d 0a 20 20 6a 6d 74 6b 09   ┆des : ti;    jntk : tk;    jmtk ┆
0x052460…052480            3a 20 74 6b 3b 0d 0a 20 20 6a 6e 74 6d 09 3a 20 74 6d 3b 0d 0a 20 20 6a 6e 74 77 09 3a 20 74 77   ┆: tk;    jntm : tm;    jntw : tw┆
0x052480…0524a0            3b 0d 0a 20 20 6a 66 6d 76 09 3a 20 74 62 3b 0d 0a 20 20 0d 0a 20 20 28 2a 20 6c 65 74 73 20 2a   ┆;    jfmv : tb;        (* lets *┆
0x0524a0…0524c0            29 0d 0a 20 20 66 6b 70 73 68 64 3a 20 74 69 3b 0d 0a 20 20 66 6b 73 61 6e 71 3a 20 74 69 3b 0d   ┆)    fkpshd: ti;    fksanq: ti; ┆
0x0524c0…0524e0            0a 20 20 66 6d 61 78 6d 74 3a 20 74 69 3b 0d 0a 20 20 73 74 61 67 65 73 3a 20 74 69 3b 0d 0a 20   ┆   fmaxmt: ti;    stages: ti;   ┆
0x0524e0…052500            20 66 70 61 64 63 72 3a 20 61 72 72 61 79 20 5b 74 66 5d 20 6f 66 20 74 69 3b 0d 0a 20 20 66 70   ┆ fpadcr: array ÆtfÅ of ti;    fp┆
0x052500…052520            62 6c 6f 6b 3a 20 74 69 3b 0d 0a 20 20 66 70 63 6f 6e 6e 3a 20 74 69 3b 0d 0a 20 20 66 70 66 6c   ┆blok: ti;    fpconn: ti;    fpfl┆
0x052520…052540            6e 78 3a 20 74 69 3b 0d 0a 20 20 66 72 64 75 62 6c 3a 20 74 69 3b 0d 0a 20 20 66 72 6b 37 74 68   ┆nx: ti;    frdubl: ti;    frk7th┆
0x052540…052560            3a 20 74 69 3b 0d 0a 20 20 66 74 72 61 64 65 3a 20 74 69 3b 0d 0a 20 20 66 74 72 64 73 6c 3a 20   ┆: ti;    ftrade: ti;    ftrdsl: ┆
0x052560…052580            74 69 3b 0d 0a 20 20 66 74 72 70 6f 6b 3a 20 74 69 3b 0d 0a 20 20 66 74 72 70 77 6e 3a 20 74 69   ┆ti;    ftrpok: ti;    ftrpwn: ti┆
0x052580…0525a0            3b 0d 0a 20 20 66 77 6b 69 6e 67 3a 20 74 69 3b 0d 0a 20 20 66 77 6d 61 6a 6d 3a 20 74 69 3b 0d   ┆;    fwking: ti;    fwmajm: ti; ┆
0x0525a0…0525c0            0a 20 20 66 77 6d 69 6e 6d 3a 20 74 69 3b 0d 0a 20 20 66 77 70 61 77 6e 3a 20 74 69 3b 0d 0a 20   ┆   fwminm: ti;    fwpawn: ti;   ┆
0x0525c0…0525e0            20 66 77 72 6f 6f 6b 3a 20 74 69 3b 0d 0a 20 20 66 63 68 65 63 6b 3a 20 74 69 3b 0d 0a 20 20 66   ┆ fwrook: ti;    fcheck: ti;    f┆
0x0525e0…052600            77 61 74 74 6b 3a 20 74 69 3b 0d 0a 20 20 66 61 6b 69 6e 67 3a 20 74 69 3b 09 09 28 2a 20 62 6f   ┆wattk: ti;    faking: ti;  (* bo┆
0x052600…052620            6e 75 73 20 66 6f 72 20 61 74 74 61 63 6b 20 6f 70 70 2e 20 6b 69 6e 67 20 2a 29 0d 0a 20 20 66   ┆nus for attack opp. king *)    f┆
0x052620…052640            63 66 72 65 65 3a 20 74 69 3b 09 09 28 2a 20 62 6f 6e 75 73 20 66 6f 72 20 63 61 73 74 6c 65 20   ┆cfree: ti;  (* bonus for castle ┆
0x052640…052660            66 72 65 65 20 73 71 75 61 72 65 20 2a 29 0d 0a 20 20 77 69 6e 64 6f 77 3a 20 74 69 3b 0d 0a 20   ┆free square *)    window: ti;   ┆
0x052660…052680            20 0d 0a 20 20 28 2a 20 73 77 69 74 63 68 65 73 20 2a 29 0d 0a 20 20 73 77 65 63 09 3a 20 74 62   ┆     (* switches *)    swec : tb┆
0x052680…0526a0            3b 0d 0a 20 20 73 77 70 61 09 3a 20 74 62 3b 0d 0a 20 20 73 77 70 73 09 3a 20 74 62 3b 0d 0a 20   ┆;    swpa : tb;    swps : tb;   ┆
0x0526a0…0526c0            20 73 77 72 65 09 3a 20 74 62 3b 0d 0a 20 20 73 77 73 75 09 3a 20 74 62 3b 0d 0a 20 20 73 77 74   ┆ swre : tb;    swsu : tb;    swt┆
0x0526c0…0526e0            72 09 3a 20 74 62 3b 0d 0a 20 20 73 77 70 72 09 3a 20 74 62 3b 0d 0a 20 20 73 77 62 6d 09 3a 20   ┆r : tb;    swpr : tb;    swbm : ┆
0x0526e0…052700            74 62 3b 0d 0a 20 20 0d 0a 20 20 28 2a 20 63 6f 6d 6d 61 6e 64 20 70 72 6f 63 65 73 73 69 6e 67   ┆tb;        (* command processing┆
0x052700…052720            20 64 61 74 61 20 2a 29 0d 0a 20 20 63 6f 6d 09 3a 20 74 69 3b 0d 0a 20 20 69 63 61 72 64 09 3a   ┆ data *)    com : ti;    icard :┆
0x052720…052740            20 72 6a 3b 0d 0a 20 20 69 6c 69 6e 65 09 3a 20 72 6a 3b 0d 0a 20 20 6a 6d 74 6a 09 3a 20 74 6a   ┆ rj;    iline : rj;    jmtj : tj┆
0x052740…052760            3b 0d 0a 20 20 6a 6e 74 6a 09 3a 20 74 6a 3b 0d 0a 20 20 6d 6f 76 6d 73 09 3a 20 72 6e 6e 3b 0d   ┆;    jntj : tj;    movms : rnn; ┆
0x052760…052780            0a 20 20 0d 0a 20 20 28 2a 20 74 72 61 6e 73 6c 61 74 69 6f 6e 20 74 61 62 6c 65 73 20 2a 29 0d   ┆       (* translation tables *) ┆
0x052780…0527a0            0a 20 20 78 73 70 62 09 3a 20 61 72 72 61 79 20 5b 74 70 5d 20 6f 66 20 74 62 3b 0d 0a 20 20 78   ┆   xspb : array ÆtpÅ of tb;    x┆
0x0527a0…0527c0            66 70 65 09 3a 20 61 72 72 61 79 20 5b 74 70 5d 20 6f 66 20 74 65 3b 0d 0a 20 20 78 6c 6c 64 09   ┆fpe : array ÆtpÅ of te;    xlld ┆
0x0527c0…0527e0            3a 20 61 72 72 61 79 20 5b 61 7a 6c 2e 2e 7a 61 6c 5d 20 6f 66 20 74 64 3b 0d 0a 20 20 78 6c 70   ┆: array Æazl..zalÅ of td;    xlp┆
0x0527e0…052800            65 09 3a 20 61 72 72 61 79 20 5b 74 70 5d 20 6f 66 20 74 65 3b 0d 0a 20 20 78 72 66 73 09 3a 20   ┆e : array ÆtpÅ of te;    xrfs : ┆
0x052800…052820 (20, 1, 3) 61 72 72 61 79 20 5b 74 66 5d 20 6f 66 20 72 73 3b 0d 0a 20 20 78 72 72 73 09 3a 20 61 72 72 61   ┆array ÆtfÅ of rs;    xrrs : arra┆
0x052820…052840            79 20 5b 74 72 5d 20 6f 66 20 72 73 3b 0d 0a 20 20 78 6e 66 73 09 3a 20 61 72 72 61 79 20 5b 74   ┆y ÆtrÅ of rs;    xnfs : array Æt┆
0x052840…052860            66 5d 20 6f 66 20 72 73 3b 0d 0a 20 20 78 6e 72 73 09 3a 20 61 72 72 61 79 20 5b 74 72 5d 20 6f   ┆fÅ of rs;    xnrs : array ÆtrÅ o┆
0x052860…052880            66 20 72 73 3b 0d 0a 20 20 78 72 73 73 09 3a 20 61 72 72 61 79 20 5b 74 73 5d 20 6f 66 20 72 73   ┆f rs;    xrss : array ÆtsÅ of rs┆
0x052880…0528a0            3b 0d 0a 20 20 78 72 71 6d 09 3a 20 61 72 72 61 79 20 5b 74 71 5d 20 6f 66 20 72 6d 3b 0d 0a 20   ┆;    xrqm : array ÆtqÅ of rm;   ┆
0x0528a0…0528c0            20 78 73 71 73 09 3a 20 61 72 72 61 79 20 5b 74 71 5d 20 6f 66 20 72 73 3b 0d 0a 20 20 78 73 73   ┆ xsqs : array ÆtqÅ of rs;    xss┆
0x0528c0…0528e0            78 09 3a 20 61 72 72 61 79 20 5b 74 73 5d 20 6f 66 20 73 78 3b 0d 0a 20 20 78 74 62 63 09 3a 20   ┆x : array ÆtsÅ of sx;    xtbc : ┆
0x0528e0…052900            61 72 72 61 79 20 5b 74 62 5d 20 6f 66 20 74 63 3b 0d 0a 20 20 78 74 65 64 09 3a 20 61 72 72 61   ┆array ÆtbÅ of tc;    xted : arra┆
0x052900…052920            79 20 5b 74 65 5d 20 6f 66 20 74 64 3b 0d 0a 20 20 78 74 67 63 09 3a 20 61 72 72 61 79 20 5b 74   ┆y ÆteÅ of td;    xtgc : array Æt┆
0x052920…052940            67 5d 20 6f 66 20 74 63 3b 0d 0a 20 20 78 74 67 6d 70 09 3a 20 61 72 72 61 79 20 5b 74 67 2c 74   ┆gÅ of tc;    xtgmp : array Ætg,t┆
0x052940…052960            6d 5d 20 6f 66 20 74 70 3b 0d 0a 20 20 78 74 6c 73 09 3a 20 61 72 72 61 79 20 5b 74 6c 5d 20 6f   ┆mÅ of tp;    xtls : array ÆtlÅ o┆
0x052960…052980            66 20 74 74 3b 0d 0a 20 20 78 74 6d 61 09 3a 20 61 72 72 61 79 20 5b 74 6d 5d 20 6f 66 20 72 61   ┆f tt;    xtma : array ÆtmÅ of ra┆
0x052980…0529a0            3b 0d 0a 20 20 78 74 6d 71 09 3a 20 61 72 72 61 79 20 5b 74 6d 5d 20 6f 66 20 74 71 3b 0d 0a 20   ┆;    xtmq : array ÆtmÅ of tq;   ┆
0x0529a0…0529c0            20 78 74 6d 76 09 3a 20 61 72 72 61 79 20 5b 74 6d 5d 20 6f 66 20 74 76 3b 0d 0a 20 20 78 74 70   ┆ xtmv : array ÆtmÅ of tv;    xtp┆
0x0529c0…0529e0            63 09 3a 20 61 72 72 61 79 20 5b 74 70 5d 20 6f 66 20 74 63 3b 0d 0a 20 20 78 74 70 6d 09 3a 20   ┆c : array ÆtpÅ of tc;    xtpm : ┆
0x0529e0…052a00            61 72 72 61 79 20 5b 74 70 5d 20 6f 66 20 74 6d 3b 0d 0a 20 20 78 74 70 75 09 3a 20 61 72 72 61   ┆array ÆtpÅ of tm;    xtpu : arra┆
0x052a00…052a20            79 20 5b 74 70 5d 20 6f 66 20 74 75 3b 0d 0a 20 20 78 74 70 76 09 3a 20 61 72 72 61 79 20 5b 74   ┆y ÆtpÅ of tu;    xtpv : array Æt┆
0x052a20…052a40            70 5d 20 6f 66 20 74 76 3b 0d 0a 20 20 78 74 71 61 09 3a 20 61 72 72 61 79 20 5b 74 71 5d 20 6f   ┆pÅ of tv;    xtqa : array ÆtqÅ o┆
0x052a40…052a60            66 20 72 61 3b 0d 0a 20 20 78 74 71 73 09 3a 20 61 72 72 61 79 20 5b 74 71 5d 20 6f 66 20 74 73   ┆f ra;    xtqs : array ÆtqÅ of ts┆
0x052a60…052a80            3b 0d 0a 20 20 78 74 72 66 73 09 3a 20 61 72 72 61 79 20 5b 74 72 2c 74 66 5d 20 6f 66 20 74 73   ┆;    xtrfs : array Ætr,tfÅ of ts┆
0x052a80…052aa0            3b 0d 0a 20 20 78 74 73 66 09 3a 20 61 72 72 61 79 20 5b 74 73 5d 20 6f 66 20 74 66 3b 0d 0a 20   ┆;    xtsf : array ÆtsÅ of tf;   ┆
0x052aa0…052ac0            20 78 74 73 6c 09 3a 20 61 72 72 61 79 20 5b 74 73 5d 20 6f 66 20 74 6c 3b 0d 0a 20 20 78 74 73   ┆ xtsl : array ÆtsÅ of tl;    xts┆
0x052ac0…052ae0            72 09 3a 20 61 72 72 61 79 20 5b 74 73 5d 20 6f 66 20 74 72 3b 0d 0a 20 20 78 74 73 78 09 3a 20   ┆r : array ÆtsÅ of tr;    xtsx : ┆
0x052ae0…052b00            61 72 72 61 79 20 5b 74 73 5d 20 6f 66 20 74 78 3b 0d 0a 20 20 78 74 73 79 09 3a 20 61 72 72 61   ┆array ÆtsÅ of tx;    xtsy : arra┆
0x052b00…052b20            79 20 5b 74 73 5d 20 6f 66 20 74 79 3b 0d 0a 20 20 78 74 75 63 09 3a 20 61 72 72 61 79 20 5b 74   ┆y ÆtsÅ of ty;    xtuc : array Æt┆
0x052b20…052b40            75 5d 20 6f 66 20 74 63 3b 0d 0a 20 20 78 74 75 6d 70 09 3a 20 61 72 72 61 79 20 5b 74 75 2c 74   ┆uÅ of tc;    xtump : array Ætu,t┆
0x052b40…052b60            6d 5d 20 6f 66 20 74 70 3b 0d 0a 20 20 78 72 71 73 6f 09 3a 20 61 72 72 61 79 20 5b 74 71 5d 20   ┆mÅ of tp;    xrqso : array ÆtqÅ ┆
0x052b60…052b80            6f 66 20 72 73 3b 0d 0a 20 20 78 72 71 73 61 09 3a 20 61 72 72 61 79 20 5b 74 71 5d 20 6f 66 20   ┆of rs;    xrqsa : array ÆtqÅ of ┆
0x052b80…052ba0            72 73 3b 0d 0a 20 20 65 64 67 65 09 3a 20 61 72 72 61 79 20 5b 74 65 5d 20 6f 66 20 72 73 3b 0d   ┆rs;    edge : array ÆteÅ of rs; ┆
0x052ba0…052bc0            0a 20 20 63 74 20 20 20 20 3a 20 61 72 72 61 79 20 5b 30 2e 2e 32 35 35 5d 20 6f 66 20 74 73 3b   ┆   ct    : array Æ0..255Å of ts;┆
0x052bc0…052be0            0d 0a 20 20 63 6f 72 6e 72 09 3a 20 72 73 3b 0d 0a 20 20 6e 75 6c 6d 76 09 3a 20 72 6d 3b 0d 0a   ┆    cornr : rs;    nulmv : rm;  ┆
0x052be0…052c00            20 20 6f 74 68 65 72 09 3a 20 61 72 72 61 79 20 5b 74 6d 5d 20 6f 66 20 74 6d 3b 0d 0a 20 20 73   ┆  other : array ÆtmÅ of tm;    s┆
0x052c00…052c20 (20, 1, 4) 79 6e 74 78 09 3a 20 61 72 72 61 79 20 5b 73 79 6e 63 66 2e 2e 73 79 6e 6d 6c 5d 20 6f 66 20 72   ┆yntx : array Æsyncf..synmlÅ of r┆
0x052c20…052c40            79 3b 0d 0a 0d 0a 28 2a 20 63 68 65 73 73 2e 70 30 31 20 2a 29 0d 0a 66 75 6e 63 74 69 6f 6e 20   ┆y;    (* chess.p01 *)  function ┆
0x052c40…052c60            6d 61 78 28 61 2c 62 3a 20 74 69 29 3a 74 69 3b 0d 0a 62 65 67 69 6e 20 69 66 20 61 20 3e 20 62   ┆max(a,b: ti):ti;  begin if a > b┆
0x052c60…052c80            20 74 68 65 6e 20 6d 61 78 3a 3d 61 20 65 6c 73 65 20 6d 61 78 3a 3d 62 20 65 6e 64 3b 0d 0a 0d   ┆ then max:=a else max:=b end;   ┆
0x052c80…052ca0            0a 66 75 6e 63 74 69 6f 6e 20 6d 69 6e 28 61 2c 62 3a 20 74 69 29 3a 20 74 69 3b 0d 0a 62 65 67   ┆ function min(a,b: ti): ti;  beg┆
0x052ca0…052cc0            69 6e 20 69 66 20 61 20 3c 20 62 20 74 68 65 6e 20 6d 69 6e 3a 3d 61 20 65 6c 73 65 20 6d 69 6e   ┆in if a < b then min:=a else min┆
0x052cc0…052ce0            3a 3d 62 20 65 6e 64 3b 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 73 69 67 6e 28 61 2c 62 3a 20 74   ┆:=b end;    function sign(a,b: t┆
0x052ce0…052d00            69 29 3a 20 74 69 3b 0d 0a 62 65 67 69 6e 20 69 66 20 62 20 3c 3e 20 30 20 74 68 65 6e 20 73 69   ┆i): ti;  begin if b <> 0 then si┆
0x052d00…052d20            67 6e 3a 3d 74 72 75 6e 63 28 62 2f 61 62 73 28 62 29 29 20 2a 20 61 62 73 28 61 29 20 65 6c 73   ┆gn:=trunc(b/abs(b)) * abs(a) els┆
0x052d20…052d40            65 20 73 69 67 6e 3a 3d 61 20 65 6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20 73 6f 72 74   ┆e sign:=a end;    procedure sort┆
0x052d40…052d60            69 74 28 76 61 72 20 61 3a 20 72 65 3b 20 76 61 72 20 62 3a 20 72 66 3b 20 63 3a 20 74 77 29 3b   ┆it(var a: re; var b: rf; c: tw);┆
0x052d60…052d80            0d 0a 76 61 72 0d 0a 20 20 69 6e 74 62 09 3a 20 74 62 3b 0d 0a 20 20 69 6e 74 77 09 3a 20 74 77   ┆  var    intb : tb;    intw : tw┆
0x052d80…052da0            3b 0d 0a 20 20 69 6e 74 69 09 3a 20 74 69 3b 0d 0a 20 20 69 6e 74 76 09 3a 20 74 76 3b 0d 0a 20   ┆;    inti : ti;    intv : tv;   ┆
0x052da0…052dc0            20 69 6e 72 6d 09 3a 20 72 6d 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 66 6f 72 20 69 6e 74 77 3a 3d   ┆ inrm : rm;  begin    for intw:=┆
0x052dc0…052de0            61 77 2b 32 20 74 6f 20 63 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 69 6e 74 69 3a   ┆aw+2 to c do    begin      inti:┆
0x052de0…052e00            3d 69 6e 74 77 2d 31 3b 0d 0a 20 20 20 20 69 6e 74 76 3a 3d 61 5b 69 6e 74 77 5d 3b 0d 0a 20 20   ┆=intw-1;      intv:=aÆintwÅ;    ┆
0x052e00…052e20            20 20 69 6e 72 6d 3a 3d 62 5b 69 6e 74 77 5d 3b 0d 0a 20 20 20 20 69 6e 74 62 3a 3d 74 72 75 65   ┆  inrm:=bÆintwÅ;      intb:=true┆
0x052e20…052e40            3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 28 69 6e 74 69 20 3e 20 61 77 29 20 61 6e 64 20 69 6e 74   ┆;      while (inti > aw) and int┆
0x052e40…052e60            62 20 64 6f 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 74 76 20 3c 20 61 5b 69 6e 74 69 5d 20 74 68   ┆b do        if intv < aÆintiÅ th┆
0x052e60…052e80            65 6e 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 61 5b 69 6e 74 69 2b   ┆en        begin          aÆinti+┆
0x052e80…052ea0            31 5d 3a 3d 61 5b 69 6e 74 69 5d 3b 0d 0a 20 20 20 20 20 20 20 20 62 5b 69 6e 74 69 2b 31 5d 3a   ┆1Å:=aÆintiÅ;          bÆinti+1Å:┆
0x052ea0…052ec0            3d 62 5b 69 6e 74 69 5d 3b 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 69 3a 3d 69 6e 74 69 2d 31 3b   ┆=bÆintiÅ;          inti:=inti-1;┆
0x052ec0…052ee0            0d 0a 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 20 69 6e 74 62 3a 3d 66 61 6c 73 65 3b 0d 0a 20   ┆        end else intb:=false;   ┆
0x052ee0…052f00            20 20 20 61 5b 69 6e 74 69 2b 31 5d 3a 3d 69 6e 74 76 3b 0d 0a 20 20 20 20 62 5b 69 6e 74 69 2b   ┆   aÆinti+1Å:=intv;      bÆinti+┆
0x052f00…052f20            31 5d 3a 3d 69 6e 72 6d 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 28 2a 20 6d 61   ┆1Å:=inrm;    end;  end;    (* ma┆
0x052f20…052f40            63 68 69 6e 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 20 2a 29 0d 0a 70 72 6f 63 65   ┆chine independent code *)  proce┆
0x052f40…052f60            64 75 72 65 20 61 6e 64 72 73 28 76 61 72 20 63 3a 20 72 73 3b 20 61 2c 62 3a 20 72 73 29 3b 0d   ┆dure andrs(var c: rs; a,b: rs); ┆
0x052f60…052f80            0a 62 65 67 69 6e 0d 0a 20 20 63 2e 72 73 73 73 3a 3d 61 2e 72 73 73 73 20 2a 20 62 2e 72 73 73   ┆ begin    c.rsss:=a.rsss * b.rss┆
0x052f80…052fa0            73 3b 0d 0a 65 6e 64 3b 0d 0a 28 2a 0d 0a 70 72 6f 63 65 64 75 72 65 20 61 6e 64 72 73 28 76 61   ┆s;  end;  (*  procedure andrs(va┆
0x052fa0…052fc0            72 20 63 3a 20 72 73 3b 20 76 61 72 20 61 2c 62 3a 20 72 73 29 3b 0d 0a 76 61 72 20 69 6e 74 79   ┆r c: rs; var a,b: rs);  var inty┆
0x052fc0…052fe0            20 3a 20 74 79 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 66 6f 72 20 69 6e 74 79 3a 3d 61 79 20 74 6f   ┆ : ty;  begin    for inty:=ay to┆
0x052fe0…053000            20 7a 79 20 64 6f 20 63 2e 72 73 74 69 5b 69 6e 74 79 5d 3a 3d 61 2e 72 73 74 69 5b 69 6e 74 79   ┆ zy do c.rstiÆintyÅ:=a.rstiÆinty┆
0x053000…053020 (20, 1, 5) 5d 20 61 6e 64 20 62 2e 72 73 74 69 5b 69 6e 74 79 5d 3b 0d 0a 65 6e 64 3b 0d 0a 2a 29 0d 0a 28   ┆Å and b.rstiÆintyÅ;  end;  *)  (┆
0x053020…053040            2a 20 6d 61 63 68 69 6e 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 20 2a 29 0d 0a 70   ┆* machine independent code *)  p┆
0x053040…053060            72 6f 63 65 64 75 72 65 20 63 6c 72 72 73 28 76 61 72 20 63 3a 20 72 73 3b 20 61 3a 20 74 73 29   ┆rocedure clrrs(var c: rs; a: ts)┆
0x053060…053080            3b 0d 0a 62 65 67 69 6e 20 63 2e 72 73 73 73 3a 3d 63 2e 72 73 73 73 2d 78 73 73 78 5b 61 5d 20   ┆;  begin c.rsss:=c.rsss-xssxÆaÅ ┆
0x053080…0530a0            65 6e 64 3b 0d 0a 28 2a 0d 0a 70 72 6f 63 65 64 75 72 65 20 63 6c 72 72 73 28 76 61 72 20 63 3a   ┆end;  (*  procedure clrrs(var c:┆
0x0530a0…0530c0            20 72 73 3b 20 61 3a 20 74 73 29 3b 0d 0a 76 61 72 20 69 20 3a 20 74 73 3b 0d 0a 62 65 67 69 6e   ┆ rs; a: ts);  var i : ts;  begin┆
0x0530c0…0530e0            0d 0a 20 20 69 3a 3d 6f 72 64 28 78 74 73 72 5b 61 5d 29 3b 0d 0a 20 20 63 2e 72 73 62 74 5b 69   ┆    i:=ord(xtsrÆaÅ);    c.rsbtÆi┆
0x0530e0…053100            5d 3a 3d 63 2e 72 73 62 74 5b 69 5d 20 61 6e 64 20 6e 6f 74 28 31 20 73 68 6c 20 6f 72 64 28 78   ┆Å:=c.rsbtÆiÅ and not(1 shl ord(x┆
0x053100…053120            74 73 66 5b 61 5d 29 29 3b 0d 0a 65 6e 64 3b 0d 0a 2a 29 0d 0a 28 2a 20 6d 61 63 68 69 6e 65 20   ┆tsfÆaÅ));  end;  *)  (* machine ┆
0x053120…053140            69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 20 2a 29 0d 0a 70 72 6f 63 65 64 75 72 65 20 73   ┆independent code *)  procedure s┆
0x053140…053160            65 74 72 73 28 76 61 72 20 63 3a 20 72 73 3b 20 61 3a 20 74 73 29 3b 0d 0a 62 65 67 69 6e 20 63   ┆etrs(var c: rs; a: ts);  begin c┆
0x053160…053180            2e 72 73 73 73 3a 3d 63 2e 72 73 73 73 2b 78 73 73 78 5b 61 5d 20 65 6e 64 3b 0d 0a 28 2a 0d 0a   ┆.rsss:=c.rsss+xssxÆaÅ end;  (*  ┆
0x053180…0531a0            70 72 6f 63 65 64 75 72 65 20 73 65 74 72 73 28 76 61 72 20 63 3a 20 72 73 3b 20 61 3a 20 74 73   ┆procedure setrs(var c: rs; a: ts┆
0x0531a0…0531c0            29 3b 0d 0a 76 61 72 20 69 20 3a 20 74 73 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 69 3a 3d 6f 72 64   ┆);  var i : ts;  begin    i:=ord┆
0x0531c0…0531e0            28 78 74 73 72 5b 61 5d 29 3b 0d 0a 20 20 63 2e 72 73 62 74 5b 69 5d 3a 3d 63 2e 72 73 62 74 5b   ┆(xtsrÆaÅ);    c.rsbtÆiÅ:=c.rsbtÆ┆
0x0531e0…053200            69 5d 20 6f 72 20 28 31 20 73 68 6c 20 6f 72 64 28 78 74 73 66 5b 61 5d 29 29 3b 0d 0a 65 6e 64   ┆iÅ or (1 shl ord(xtsfÆaÅ));  end┆
0x053200…053220            3b 0d 0a 2a 29 0d 0a 28 2a 20 6d 61 63 68 69 6e 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f   ┆;  *)  (* machine independent co┆
0x053220…053240            64 65 20 2a 29 0d 0a 70 72 6f 63 65 64 75 72 65 20 69 6f 72 72 73 28 76 61 72 20 63 3a 20 72 73   ┆de *)  procedure iorrs(var c: rs┆
0x053240…053260            3b 20 61 2c 62 3a 20 72 73 29 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 63 2e 72 73 73 73 3a 3d 61 2e   ┆; a,b: rs);  begin    c.rsss:=a.┆
0x053260…053280            72 73 73 73 20 2b 20 62 2e 72 73 73 73 3b 0d 0a 65 6e 64 3b 0d 0a 28 2a 0d 0a 70 72 6f 63 65 64   ┆rsss + b.rsss;  end;  (*  proced┆
0x053280…0532a0            75 72 65 20 69 6f 72 72 73 28 76 61 72 20 63 3a 20 72 73 3b 20 76 61 72 20 61 2c 62 3a 20 72 73   ┆ure iorrs(var c: rs; var a,b: rs┆
0x0532a0…0532c0            29 3b 0d 0a 76 61 72 20 69 6e 74 79 20 3a 20 74 79 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 66 6f 72   ┆);  var inty : ty;  begin    for┆
0x0532c0…0532e0            20 69 6e 74 79 3a 3d 61 79 20 74 6f 20 7a 79 20 64 6f 20 63 2e 72 73 74 69 5b 69 6e 74 79 5d 3a   ┆ inty:=ay to zy do c.rstiÆintyÅ:┆
0x0532e0…053300            3d 61 2e 72 73 74 69 5b 69 6e 74 79 5d 20 6f 72 20 62 2e 72 73 74 69 5b 69 6e 74 79 5d 3b 0d 0a   ┆=a.rstiÆintyÅ or b.rstiÆintyÅ;  ┆
0x053300…053320            65 6e 64 3b 0d 0a 2a 29 0d 0a 70 72 6f 63 65 64 75 72 65 20 6e 65 77 72 73 28 76 61 72 20 61 3a   ┆end;  *)  procedure newrs(var a:┆
0x053320…053340            20 72 73 29 3b 0d 0a 76 61 72 20 69 6e 74 79 20 3a 20 74 79 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20   ┆ rs);  var inty : ty;  begin    ┆
0x053340…053360            66 6f 72 20 69 6e 74 79 3a 3d 61 79 20 74 6f 20 7a 79 20 64 6f 20 61 2e 72 73 74 69 5b 69 6e 74   ┆for inty:=ay to zy do a.rstiÆint┆
0x053360…053380            79 5d 3a 3d 30 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 28 2a 20 6d 61 63 68 69 6e 65 20 69 6e 64 65 70   ┆yÅ:=0;  end;    (* machine indep┆
0x053380…0533a0            65 6e 64 65 6e 74 20 63 6f 64 65 20 2a 29 0d 0a 70 72 6f 63 65 64 75 72 65 20 6e 6f 74 72 73 28   ┆endent code *)  procedure notrs(┆
0x0533a0…0533c0            76 61 72 20 63 3a 20 72 73 3b 20 61 3a 20 72 73 29 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 63 2e 72   ┆var c: rs; a: rs);  begin    c.r┆
0x0533c0…0533e0            73 73 73 3a 3d 5b 61 78 2e 2e 7a 78 5d 20 2d 20 61 2e 72 73 73 73 3b 0d 0a 65 6e 64 3b 0d 0a 28   ┆sss:=Æax..zxÅ - a.rsss;  end;  (┆
0x0533e0…053400            2a 0d 0a 70 72 6f 63 65 64 75 72 65 20 6e 6f 74 72 73 28 76 61 72 20 63 3a 20 72 73 3b 20 76 61   ┆*  procedure notrs(var c: rs; va┆
0x053400…053420 (20, 1, 6) 72 20 61 3a 20 72 73 29 3b 0d 0a 76 61 72 20 69 6e 74 79 20 3a 20 74 79 3b 0d 0a 62 65 67 69 6e   ┆r a: rs);  var inty : ty;  begin┆
0x053420…053440            0d 0a 20 20 66 6f 72 20 69 6e 74 79 3a 3d 61 79 20 74 6f 20 7a 79 20 64 6f 20 63 2e 72 73 74 69   ┆    for inty:=ay to zy do c.rsti┆
0x053440…053460            5b 69 6e 74 79 5d 3a 3d 6e 6f 74 20 61 2e 72 73 74 69 5b 69 6e 74 79 5d 3b 0d 0a 65 6e 64 3b 0d   ┆ÆintyÅ:=not a.rstiÆintyÅ;  end; ┆
0x053460…053480            0a 2a 29 0d 0a 28 2a 20 6d 61 63 68 69 6e 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65   ┆ *)  (* machine independent code┆
0x053480…0534a0            20 0d 0a 66 75 6e 63 74 69 6f 6e 20 6e 78 74 74 73 28 76 61 72 20 61 3a 20 72 73 3b 20 76 61 72   ┆   function nxtts(var a: rs; var┆
0x0534a0…0534c0            20 62 3a 20 74 73 29 3a 20 74 62 3b 0d 0a 6c 61 62 65 6c 20 31 31 3b 0d 0a 76 61 72 0d 0a 20 20   ┆ b: ts): tb;  label 11;  var    ┆
0x0534c0…0534e0            69 6e 74 78 09 3a 20 74 78 3b 0d 0a 20 20 69 6e 74 79 09 3a 20 74 79 3b 0d 0a 62 65 67 69 6e 0d   ┆intx : tx;    inty : ty;  begin ┆
0x0534e0…053500            0a 20 20 66 6f 72 20 69 6e 74 79 3a 3d 7a 79 20 64 6f 77 6e 74 6f 20 61 79 20 64 6f 0d 0a 20 20   ┆   for inty:=zy downto ay do    ┆
0x053500…053520            20 20 69 66 20 61 2e 72 73 74 69 5b 69 6e 74 79 5d 20 3c 3e 20 30 20 74 68 65 6e 0d 0a 20 20 20   ┆  if a.rstiÆintyÅ <> 0 then     ┆
0x053520…053540            20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 66 6f 72 20 69 6e 74 78 3a 3d 7a 78 20 64 6f 77 6e 74   ┆ begin        for intx:=zx downt┆
0x053540…053560            6f 20 61 78 20 64 6f 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 74 78 20 69 6e 20 61 2e 72 73   ┆o ax do          if intx in a.rs┆
0x053560…053580            73 73 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20   ┆ss then          begin          ┆
0x053580…0535a0            20 20 62 3a 3d 69 6e 74 78 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 61 2e 72 73 73 73 3a 3d 61 2e   ┆  b:=intx;            a.rsss:=a.┆
0x0535a0…0535c0            72 73 73 73 2d 5b 69 6e 74 78 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 6e 78 74 74 73 3a 3d 74   ┆rsss-ÆintxÅ;            nxtts:=t┆
0x0535c0…0535e0            72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 20 31 31 3b 0d 0a 20 20 20 20 20 20   ┆rue;            goto 11;        ┆
0x0535e0…053600            20 20 65 6e 64 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 6e 78 74 74 73 3a 3d 66 61 6c 73 65   ┆  end;      end;    nxtts:=false┆
0x053600…053620            3b 0d 0a 31 31 3a 0d 0a 65 6e 64 3b 0d 0a 2a 29 0d 0a 66 75 6e 63 74 69 6f 6e 20 6e 78 74 74 73   ┆;  11:  end;  *)  function nxtts┆
0x053620…053640            28 76 61 72 20 61 3a 20 72 73 3b 20 76 61 72 20 62 3a 20 74 73 29 3a 20 74 62 3b 0d 0a 6c 61 62   ┆(var a: rs; var b: ts): tb;  lab┆
0x053640…053660            65 6c 20 31 31 3b 0d 0a 76 61 72 0d 0a 20 20 69 2c 6a 2c 70 09 3a 20 74 69 3b 0d 0a 20 20 69 6e   ┆el 11;  var    i,j,p : ti;    in┆
0x053660…053680            74 78 09 3a 20 74 78 3b 0d 0a 20 20 69 6e 74 79 09 3a 20 74 79 3b 0d 0a 62 65 67 69 6e 0d 0a 20   ┆tx : tx;    inty : ty;  begin   ┆
0x053680…0536a0            20 66 6f 72 20 69 3a 3d 7a 79 62 20 64 6f 77 6e 74 6f 20 61 79 20 64 6f 0d 0a 20 20 20 20 69 66   ┆ for i:=zyb downto ay do      if┆
0x0536a0…0536c0            20 61 2e 72 73 62 74 5b 69 5d 20 3c 3e 20 30 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d   ┆ a.rsbtÆiÅ <> 0 then      begin ┆
0x0536c0…0536e0            0a 20 20 20 20 20 20 70 3a 3d 31 32 38 3b 0d 0a 20 20 20 20 20 20 66 6f 72 20 6a 3a 3d 61 79 20   ┆       p:=128;        for j:=ay ┆
0x0536e0…053700            74 6f 20 7a 79 62 20 64 6f 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20   ┆to zyb do        begin          ┆
0x053700…053720            69 66 20 61 2e 72 73 62 74 5b 69 5d 20 2d 20 70 20 3e 3d 20 30 20 74 68 65 6e 0d 0a 20 20 20 20   ┆if a.rsbtÆiÅ - p >= 0 then      ┆
0x053720…053740            20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 62 3a 3d 6a 2b 69 20 2a 20 38 3b   ┆    begin            b:=j+i * 8;┆
0x053740…053760            0d 0a 20 20 20 20 20 20 20 20 20 20 61 2e 72 73 62 74 5b 69 5d 3a 3d 61 2e 72 73 62 74 5b 69 5d   ┆            a.rsbtÆiÅ:=a.rsbtÆiÅ┆
0x053760…053780            2d 70 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 6e 78 74 74 73 3a 3d 74 72 75 65 3b 0d 0a 20 20 20   ┆-p;            nxtts:=true;     ┆
0x053780…0537a0            20 20 20 20 20 20 20 67 6f 74 6f 20 31 31 3b 0d 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20   ┆       goto 11;          end;   ┆
0x0537a0…0537c0            20 20 20 20 20 70 3a 3d 70 20 64 69 76 20 32 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 65 6e   ┆     p:=p div 2;      end;    en┆
0x0537c0…0537e0            64 3b 0d 0a 20 20 6e 78 74 74 73 3a 3d 66 61 6c 73 65 3b 0d 0a 31 31 3a 0d 0a 65 6e 64 3b 0d 0a   ┆d;    nxtts:=false;  11:  end;  ┆
0x0537e0…053800            0d 0a 28 2a 20 6d 61 63 68 69 6e 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 20 2a 29   ┆  (* machine independent code *)┆
0x053800…053820 (20, 1, 7) 0d 0a 66 75 6e 63 74 69 6f 6e 20 63 6e 74 72 73 28 76 61 72 20 61 3a 20 72 73 29 3a 20 74 73 3b   ┆  function cntrs(var a: rs): ts;┆
0x053820…053840            0d 0a 76 61 72 0d 0a 20 20 69 09 3a 20 74 79 62 3b 0d 0a 20 20 73 75 6d 09 3a 20 74 73 3b 0d 0a   ┆  var    i : tyb;    sum : ts;  ┆
0x053840…053860            62 65 67 69 6e 0d 0a 20 20 73 75 6d 3a 3d 30 3b 0d 0a 20 20 66 6f 72 20 69 3a 3d 61 79 20 74 6f   ┆begin    sum:=0;    for i:=ay to┆
0x053860…053880            20 7a 79 62 20 64 6f 20 73 75 6d 3a 3d 73 75 6d 2b 63 74 5b 61 2e 72 73 62 74 5b 69 5d 5d 3b 0d   ┆ zyb do sum:=sum+ctÆa.rsbtÆiÅÅ; ┆
0x053880…0538a0            0a 20 20 63 6e 74 72 73 3a 3d 73 75 6d 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 28 2a 20 6d 61 63 68 69   ┆   cntrs:=sum;  end;    (* machi┆
0x0538a0…0538c0            6e 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 64 65 20 0d 0a 70 72 6f 63 65 64 75 72 65 20   ┆ne independent code   procedure ┆
0x0538c0…0538e0            73 66 74 72 73 28 76 61 72 20 61 3a 20 72 73 3b 20 62 3a 20 72 73 3b 20 63 3a 20 74 65 29 3b 0d   ┆sftrs(var a: rs; b: rs; c: te); ┆
0x0538e0…053900            0a 76 61 72 0d 0a 20 20 69 6e 72 73 09 3a 20 72 73 3b 0d 0a 20 20 69 6e 74 73 09 3a 20 74 73 3b   ┆ var    inrs : rs;    ints : ts;┆
0x053900…053920            0d 0a 20 20 69 6e 74 79 09 3a 20 74 79 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 6e 65 77 72 73 28 61   ┆    inty : ty;  begin    newrs(a┆
0x053920…053940            29 3b 0d 0a 20 20 77 68 69 6c 65 20 6e 78 74 74 73 28 62 2c 69 6e 74 73 29 20 64 6f 0d 0a 20 20   ┆);    while nxtts(b,ints) do    ┆
0x053940…053960            20 20 69 66 20 78 74 6c 73 5b 78 74 73 6c 5b 69 6e 74 73 5d 2b 78 74 65 64 5b 63 5d 5d 20 3e 20   ┆  if xtlsÆxtslÆintsÅ+xtedÆcÅÅ > ┆
0x053960…053980            30 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 73 65 74 72 73 28 61 2c 78 74 6c 73 5b 78 74 73 6c 5b   ┆0 then        setrs(a,xtlsÆxtslÆ┆
0x053980…0539a0            69 6e 74 73 5d 2b 78 74 65 64 5b 63 5d 5d 29 3b 0d 0a 65 6e 64 3b 0d 0a 2a 29 0d 0a 70 72 6f 63   ┆intsÅ+xtedÆcÅÅ);  end;  *)  proc┆
0x0539a0…0539c0            65 64 75 72 65 20 73 66 74 72 73 28 76 61 72 20 61 3a 20 72 73 3b 20 62 3a 20 72 73 3b 20 63 3a   ┆edure sftrs(var a: rs; b: rs; c:┆
0x0539c0…0539e0            20 74 65 29 3b 0d 0a 76 61 72 20 69 09 3a 20 69 6e 74 65 67 65 72 3b 0d 0a 62 65 67 69 6e 0d 0a   ┆ te);  var i : integer;  begin  ┆
0x0539e0…053a00            63 61 73 65 20 63 20 6f 66 0d 0a 20 20 20 73 31 3a 20 66 6f 72 20 69 3a 3d 61 79 20 74 6f 20 7a   ┆case c of     s1: for i:=ay to z┆
0x053a00…053a20            79 62 20 64 6f 0d 0a 20 20 20 20 20 20 20 20 20 69 66 20 62 2e 72 73 62 74 5b 69 5d 20 3c 20 31   ┆yb do           if b.rsbtÆiÅ < 1┆
0x053a20…053a40            32 38 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 61 2e 72 73 62 74 5b 69 5d 3a 3d 62   ┆28 then             a.rsbtÆiÅ:=b┆
0x053a40…053a60            2e 72 73 62 74 5b 69 5d 20 2a 20 32 0d 0a 20 20 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 20 20   ┆.rsbtÆiÅ * 2           else     ┆
0x053a60…053a80            20 20 20 20 20 20 20 20 61 2e 72 73 62 74 5b 69 5d 3a 3d 28 62 2e 72 73 62 74 5b 69 5d 2d 31 32   ┆        a.rsbtÆiÅ:=(b.rsbtÆiÅ-12┆
0x053a80…053aa0            38 29 20 2a 20 32 3b 0d 0a 20 20 20 73 32 3a 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20   ┆8) * 2;     s2: begin           ┆
0x053aa0…053ac0            66 6f 72 20 69 3a 3d 61 79 20 74 6f 20 7a 79 62 2d 31 20 64 6f 20 61 2e 72 73 62 74 5b 69 2b 31   ┆for i:=ay to zyb-1 do a.rsbtÆi+1┆
0x053ac0…053ae0            5d 3a 3d 62 2e 72 73 62 74 5b 69 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 61 2e 72 73 62 74 5b 61   ┆Å:=b.rsbtÆiÅ;           a.rsbtÆa┆
0x053ae0…053b00            79 5d 3a 3d 30 3b 0d 0a 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 73 33 3a 20 66 6f 72 20   ┆yÅ:=0;         end;     s3: for ┆
0x053b00…053b20            69 3a 3d 61 79 20 74 6f 20 7a 79 62 20 64 6f 20 61 2e 72 73 62 74 5b 69 5d 3a 3d 62 2e 72 73 62   ┆i:=ay to zyb do a.rsbtÆiÅ:=b.rsb┆
0x053b20…053b40            74 5b 69 5d 20 64 69 76 20 32 3b 0d 0a 20 20 20 73 34 3a 20 62 65 67 69 6e 0d 0a 20 20 20 20 20   ┆tÆiÅ div 2;     s4: begin       ┆
0x053b40…053b60            20 20 20 20 66 6f 72 20 69 3a 3d 61 79 20 74 6f 20 7a 79 62 2d 31 20 64 6f 20 61 2e 72 73 62 74   ┆    for i:=ay to zyb-1 do a.rsbt┆
0x053b60…053b80            5b 69 5d 3a 3d 62 2e 72 73 62 74 5b 69 2b 31 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 61 2e 72 73   ┆ÆiÅ:=b.rsbtÆi+1Å;           a.rs┆
0x053b80…053ba0            62 74 5b 7a 79 62 5d 3a 3d 30 3b 0d 0a 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 62 31 3a   ┆btÆzybÅ:=0;         end;     b1:┆
0x053ba0…053bc0            20 62 65 67 69 6e 20 73 66 74 72 73 28 61 2c 62 2c 73 31 29 3b 20 73 66 74 72 73 28 61 2c 61 2c   ┆ begin sftrs(a,b,s1); sftrs(a,a,┆
0x053bc0…053be0            73 32 29 20 65 6e 64 3b 0d 0a 20 20 20 62 32 3a 20 62 65 67 69 6e 20 73 66 74 72 73 28 61 2c 62   ┆s2) end;     b2: begin sftrs(a,b┆
0x053be0…053c00            2c 73 32 29 3b 20 73 66 74 72 73 28 61 2c 61 2c 73 33 29 20 65 6e 64 3b 0d 0a 20 20 20 62 33 3a   ┆,s2); sftrs(a,a,s3) end;     b3:┆
0x053c00…053c20 (20, 1, 8) 20 62 65 67 69 6e 20 73 66 74 72 73 28 61 2c 62 2c 73 33 29 3b 20 73 66 74 72 73 28 61 2c 61 2c   ┆ begin sftrs(a,b,s3); sftrs(a,a,┆
0x053c20…053c40            73 34 29 20 65 6e 64 3b 0d 0a 20 20 20 62 34 3a 20 62 65 67 69 6e 20 73 66 74 72 73 28 61 2c 62   ┆s4) end;     b4: begin sftrs(a,b┆
0x053c40…053c60            2c 73 34 29 3b 20 73 66 74 72 73 28 61 2c 61 2c 73 31 29 20 65 6e 64 3b 0d 0a 20 20 20 6e 31 3a   ┆,s4); sftrs(a,a,s1) end;     n1:┆
0x053c60…053c80            20 62 65 67 69 6e 20 73 66 74 72 73 28 61 2c 62 2c 62 31 29 3b 20 73 66 74 72 73 28 61 2c 61 2c   ┆ begin sftrs(a,b,b1); sftrs(a,a,┆
0x053c80…053ca0            73 32 29 20 65 6e 64 3b 0d 0a 20 20 20 6e 32 3a 20 62 65 67 69 6e 20 73 66 74 72 73 28 61 2c 62   ┆s2) end;     n2: begin sftrs(a,b┆
0x053ca0…053cc0            2c 62 32 29 3b 20 73 66 74 72 73 28 61 2c 61 2c 73 32 29 20 65 6e 64 3b 0d 0a 20 20 20 6e 33 3a   ┆,b2); sftrs(a,a,s2) end;     n3:┆
0x053cc0…053ce0            20 62 65 67 69 6e 20 73 66 74 72 73 28 61 2c 62 2c 62 32 29 3b 20 73 66 74 72 73 28 61 2c 61 2c   ┆ begin sftrs(a,b,b2); sftrs(a,a,┆
0x053ce0…053d00            73 33 29 20 65 6e 64 3b 0d 0a 20 20 20 6e 34 3a 20 62 65 67 69 6e 20 73 66 74 72 73 28 61 2c 62   ┆s3) end;     n4: begin sftrs(a,b┆
0x053d00…053d20            2c 62 33 29 3b 20 73 66 74 72 73 28 61 2c 61 2c 73 33 29 20 65 6e 64 3b 0d 0a 20 20 20 6e 35 3a   ┆,b3); sftrs(a,a,s3) end;     n5:┆
0x053d20…053d40            20 62 65 67 69 6e 20 73 66 74 72 73 28 61 2c 62 2c 62 33 29 3b 20 73 66 74 72 73 28 61 2c 61 2c   ┆ begin sftrs(a,b,b3); sftrs(a,a,┆
0x053d40…053d60            73 34 29 20 65 6e 64 3b 0d 0a 20 20 20 6e 36 3a 20 62 65 67 69 6e 20 73 66 74 72 73 28 61 2c 62   ┆s4) end;     n6: begin sftrs(a,b┆
0x053d60…053d80            2c 62 34 29 3b 20 73 66 74 72 73 28 61 2c 61 2c 73 34 29 20 65 6e 64 3b 0d 0a 20 20 20 6e 37 3a   ┆,b4); sftrs(a,a,s4) end;     n7:┆
0x053d80…053da0            20 62 65 67 69 6e 20 73 66 74 72 73 28 61 2c 62 2c 62 34 29 3b 20 73 66 74 72 73 28 61 2c 61 2c   ┆ begin sftrs(a,b,b4); sftrs(a,a,┆
0x053da0…053dc0            73 31 29 20 65 6e 64 3b 0d 0a 20 20 20 6e 38 3a 20 62 65 67 69 6e 20 73 66 74 72 73 28 61 2c 62   ┆s1) end;     n8: begin sftrs(a,b┆
0x053dc0…053de0            2c 62 31 29 3b 20 73 66 74 72 73 28 61 2c 61 2c 73 31 29 20 65 6e 64 3b 0d 0a 20 20 65 6e 64 3b   ┆,b1); sftrs(a,a,s1) end;    end;┆
0x053de0…053e00            0d 0a 65 6e 64 3b 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 69 6e 72 73 74 62 28 76 61 72 20 61 3a   ┆  end;    function inrstb(var a:┆
0x053e00…053e20            20 72 73 3b 20 62 3a 20 74 73 29 3a 20 74 62 3b 0d 0a 62 65 67 69 6e 20 69 6e 72 73 74 62 3a 3d   ┆ rs; b: ts): tb;  begin inrstb:=┆
0x053e20…053e40            6e 6f 74 20 6e 6f 74 20 28 5b 62 5d 20 3c 3d 20 61 2e 72 73 73 73 29 20 65 6e 64 3b 0d 0a 0d 0a   ┆not not (ÆbÅ <= a.rsss) end;    ┆
0x053e40…053e60            66 75 6e 63 74 69 6f 6e 20 6e 75 6c 72 73 28 76 61 72 20 61 3a 20 72 73 29 3a 20 74 62 3b 0d 0a   ┆function nulrs(var a: rs): tb;  ┆
0x053e60…053e80            76 61 72 0d 0a 20 20 69 6e 74 79 09 3a 20 74 79 3b 0d 0a 20 20 69 6e 74 62 09 3a 20 74 62 3b 0d   ┆var    inty : ty;    intb : tb; ┆
0x053e80…053ea0            0a 62 65 67 69 6e 0d 0a 20 20 69 6e 74 62 3a 3d 74 72 75 65 3b 0d 0a 20 20 66 6f 72 20 69 6e 74   ┆ begin    intb:=true;    for int┆
0x053ea0…053ec0            79 3a 3d 61 79 20 74 6f 20 7a 79 20 64 6f 0d 0a 20 20 20 20 69 6e 74 62 3a 3d 69 6e 74 62 20 61   ┆y:=ay to zy do      intb:=intb a┆
0x053ec0…053ee0            6e 64 20 28 61 2e 72 73 74 69 5b 69 6e 74 79 5d 20 3d 20 30 29 3b 0d 0a 20 20 6e 75 6c 72 73 3a   ┆nd (a.rstiÆintyÅ = 0);    nulrs:┆
0x053ee0…053f00            3d 69 6e 74 62 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6e 75 6c 6d 76 62 28   ┆=intb;  end;    function nulmvb(┆
0x053f00…053f20            61 3a 20 72 6d 29 3a 20 74 62 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 6e 75 6c 6d 76 62 3a 3d 61 2e   ┆a: rm): tb;  begin    nulmvb:=a.┆
0x053f20…053f40            72 6d 61 63 20 61 6e 64 20 61 2e 72 6d 70 72 20 61 6e 64 20 28 6e 6f 74 20 61 2e 72 6d 63 61 29   ┆rmac and a.rmpr and (not a.rmca)┆
0x053f40…053f60            3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20 70 61 75 73 65 72 3b 0d 0a 62 65   ┆;  end;    procedure pauser;  be┆
0x053f60…053f80            67 69 6e 0d 0a 20 20 69 66 20 73 77 70 61 20 74 68 65 6e 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20   ┆gin    if swpa then    begin    ┆
0x053f80…053fa0            20 20 77 72 69 74 65 6c 6e 28 27 20 50 41 55 53 49 4e 47 20 27 29 3b 0d 0a 20 20 20 20 72 65 61   ┆  writeln(' PAUSING ');      rea┆
0x053fa0…053fc0            64 6c 6e 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 28 2a 20 63 68 65 73 73 2e 70   ┆dln;    end;  end;    (* chess.p┆
0x053fc0…053fe0            30 33 20 2a 29 0d 0a 70 72 6f 63 65 64 75 72 65 20 6d 62 65 76 61 6c 3b 09 09 28 2a 20 65 76 61   ┆03 *)  procedure mbeval;  (* eva┆
0x053fe0…054000            6c 75 61 74 65 20 6d 61 74 65 72 69 61 6c 20 62 61 6c 61 6e 63 65 20 2a 29 0d 0a 76 61 72 20 69   ┆luate material balance *)  var i┆
0x054000…054020 (21, 0, 1) 6e 74 69 09 3a 20 74 69 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 69 66 20 6d 62 6c 74 65 20 3c 3e 20   ┆nti : ti;  begin    if mblte <> ┆
0x054020…054040            30 20 74 68 65 6e 0d 0a 20 20 20 20 69 66 20 6d 62 6c 74 65 20 3e 20 30 20 74 68 65 6e 20 69 6e   ┆0 then      if mblte > 0 then in┆
0x054040…054060            74 69 3a 3d 6d 62 70 77 6e 5b 6c 69 74 65 5d 20 65 6c 73 65 20 69 6e 74 69 3a 3d 6d 62 70 77 6e   ┆ti:=mbpwnÆliteÅ else inti:=mbpwn┆
0x054060…054080            5b 64 61 72 6b 5d 0d 0a 20 20 65 6c 73 65 20 69 6e 74 69 3a 3d 30 3b 0d 0a 20 20 6d 62 76 61 6c   ┆ÆdarkÅ    else inti:=0;    mbval┆
0x054080…0540a0            5b 6a 6e 74 6b 5d 3a 3d 73 69 67 6e 28 0d 0a 20 20 09 09 20 20 20 20 20 20 6d 69 6e 28 0d 0a 20   ┆ÆjntkÅ:=sign(            min(   ┆
0x0540a0…0540c0            20 09 09 20 20 20 20 09 20 20 74 72 75 6e 63 28 6d 69 6e 28 66 6d 61 78 6d 74 2c 61 62 73 28 6d   ┆          trunc(min(fmaxmt,abs(m┆
0x0540c0…0540e0            62 6c 74 65 29 29 0d 0a 20 20 09 09 09 20 20 20 20 20 20 20 20 20 20 20 20 2b 31 2e 30 2a 66 74   ┆blte))                   +1.0*ft┆
0x0540e0…054100            72 61 64 65 2a 61 62 73 28 6d 62 6c 74 65 29 2a 28 66 74 72 64 73 6c 2d 6d 62 74 6f 74 29 0d 0a   ┆rade*abs(mblte)*(ftrdsl-mbtot)  ┆
0x054100…054120            20 20 09 09 09 20 20 20 20 20 20 20 20 20 20 20 20 2a 28 34 2a 69 6e 74 69 2b 66 74 72 70 6f 6b   ┆                 *(4*inti+ftrpok┆
0x054120…054140            29 20 2f 20 28 34 2a 69 6e 74 69 2b 66 74 72 70 77 6e 29 20 0d 0a 20 20 09 09 09 20 20 20 20 20   ┆) / (4*inti+ftrpwn)             ┆
0x054140…054160            20 20 20 20 20 20 20 2f 20 32 2e 36 32 31 34 34 65 35 29 0d 0a 09 20 20 09 20 20 20 20 20 20 2c   ┆       / 2.62144e5)            ,┆
0x054160…054180            31 36 33 32 30 29 0d 0a 09 20 20 09 20 2c 6d 62 6c 74 65 29 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70   ┆16320)       ,mblte);  end;    p┆
0x054180…0541a0            72 6f 63 65 64 75 72 65 20 77 72 69 74 65 78 79 28 73 71 3a 20 74 73 29 3b 0d 0a 62 65 67 69 6e   ┆rocedure writexy(sq: ts);  begin┆
0x0541a0…0541c0            0d 0a 20 20 77 72 69 74 65 28 63 68 72 28 73 71 20 6d 6f 64 20 38 20 2b 20 6f 72 64 28 27 41 27   ┆    write(chr(sq mod 8 + ord('A'┆
0x0541c0…0541e0            29 29 2c 73 71 20 64 69 76 20 38 20 2b 20 31 3a 30 29 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70 72 6f   ┆)),sq div 8 + 1:0);  end;    pro┆
0x0541e0…054200            63 65 64 75 72 65 20 69 6e 69 74 61 6c 28 76 61 72 20 61 3a 20 72 62 29 3b 09 09 28 2a 20 69 6e   ┆cedure inital(var a: rb);  (* in┆
0x054200…054220            69 74 74 69 61 6c 69 7a 65 20 66 6f 72 20 61 20 6e 65 77 20 67 61 6d 65 20 2a 29 0d 0a 76 61 72   ┆ittialize for a new game *)  var┆
0x054220…054240            0d 0a 20 20 69 6e 74 66 09 3a 20 74 66 3b 0d 0a 20 20 69 6e 74 72 09 3a 20 74 72 3b 0d 0a 62 65   ┆    intf : tf;    intr : tr;  be┆
0x054240…054260            67 69 6e 0d 0a 20 20 77 69 74 68 20 61 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 72   ┆gin    with a do    begin      r┆
0x054260…054280            62 74 6d 3a 3d 6c 69 74 65 3b 0d 0a 20 20 20 20 72 62 74 73 3a 3d 2d 31 3b 0d 0a 20 20 20 20 72   ┆btm:=lite;      rbts:=-1;      r┆
0x054280…0542a0            62 74 69 3a 3d 30 3b 0d 0a 20 20 20 20 72 62 73 71 3a 3d 5b 6c 73 2c 6c 6c 2c 64 73 2c 64 6c 5d   ┆bti:=0;      rbsq:=Æls,ll,ds,dlÅ┆
0x0542a0…0542c0            3b 0d 0a 20 20 20 20 63 61 73 74 6c 65 5b 6c 69 74 65 5d 3a 3d 66 61 6c 73 65 3b 20 63 61 73 74   ┆;      castleÆliteÅ:=false; cast┆
0x0542c0…0542e0            6c 65 5b 64 61 72 6b 5d 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 66 6f 72 20 69 6e 74 66 3a 3d   ┆leÆdarkÅ:=false;      for intf:=┆
0x0542e0…054300            66 31 20 74 6f 20 66 38 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 72 62   ┆f1 to f8 do      begin        rb┆
0x054300…054320            69 72 66 5b 72 32 2c 69 6e 74 66 5d 3a 3d 6c 70 3b 0d 0a 20 20 20 20 20 20 66 6f 72 20 69 6e 74   ┆irfÆr2,intfÅ:=lp;        for int┆
0x054320…054340            72 3a 3d 72 33 20 74 6f 20 72 36 20 64 6f 20 72 62 69 72 66 5b 69 6e 74 72 2c 69 6e 74 66 5d 3a   ┆r:=r3 to r6 do rbirfÆintr,intfÅ:┆
0x054340…054360            3d 6d 74 3b 0d 0a 20 20 20 20 20 20 72 62 69 72 66 5b 72 37 2c 69 6e 74 66 5d 3a 3d 64 70 3b 0d   ┆=mt;        rbirfÆr7,intfÅ:=dp; ┆
0x054360…054380            0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 72 62 69 72 66 5b 72 31 2c 66 31 5d 3a 3d 6c 72 3b   ┆     end;      rbirfÆr1,f1Å:=lr;┆
0x054380…0543a0            0d 0a 20 20 20 20 72 62 69 72 66 5b 72 31 2c 66 32 5d 3a 3d 6c 6e 3b 0d 0a 20 20 20 20 72 62 69   ┆      rbirfÆr1,f2Å:=ln;      rbi┆
0x0543a0…0543c0            72 66 5b 72 31 2c 66 33 5d 3a 3d 6c 62 3b 0d 0a 20 20 20 20 72 62 69 72 66 5b 72 31 2c 66 34 5d   ┆rfÆr1,f3Å:=lb;      rbirfÆr1,f4Å┆
0x0543c0…0543e0            3a 3d 6c 71 3b 0d 0a 20 20 20 20 72 62 69 72 66 5b 72 31 2c 66 35 5d 3a 3d 6c 6b 3b 0d 0a 20 20   ┆:=lq;      rbirfÆr1,f5Å:=lk;    ┆
0x0543e0…054400            20 20 72 62 69 72 66 5b 72 31 2c 66 36 5d 3a 3d 6c 62 3b 0d 0a 20 20 20 20 72 62 69 72 66 5b 72   ┆  rbirfÆr1,f6Å:=lb;      rbirfÆr┆
0x054400…054420 (21, 0, 2) 31 2c 66 37 5d 3a 3d 6c 6e 3b 0d 0a 20 20 20 20 72 62 69 72 66 5b 72 31 2c 66 38 5d 3a 3d 6c 72   ┆1,f7Å:=ln;      rbirfÆr1,f8Å:=lr┆
0x054420…054440            3b 0d 0a 20 20 20 20 72 62 69 72 66 5b 72 38 2c 66 31 5d 3a 3d 64 72 3b 0d 0a 20 20 20 20 72 62   ┆;      rbirfÆr8,f1Å:=dr;      rb┆
0x054440…054460            69 72 66 5b 72 38 2c 66 32 5d 3a 3d 64 6e 3b 0d 0a 20 20 20 20 72 62 69 72 66 5b 72 38 2c 66 33   ┆irfÆr8,f2Å:=dn;      rbirfÆr8,f3┆
0x054460…054480            5d 3a 3d 64 62 3b 0d 0a 20 20 20 20 72 62 69 72 66 5b 72 38 2c 66 34 5d 3a 3d 64 71 3b 0d 0a 20   ┆Å:=db;      rbirfÆr8,f4Å:=dq;   ┆
0x054480…0544a0            20 20 20 72 62 69 72 66 5b 72 38 2c 66 35 5d 3a 3d 64 6b 3b 0d 0a 20 20 20 20 72 62 69 72 66 5b   ┆   rbirfÆr8,f5Å:=dk;      rbirfÆ┆
0x0544a0…0544c0            72 38 2c 66 36 5d 3a 3d 64 62 3b 0d 0a 20 20 20 20 72 62 69 72 66 5b 72 38 2c 66 37 5d 3a 3d 64   ┆r8,f6Å:=db;      rbirfÆr8,f7Å:=d┆
0x0544c0…0544e0            6e 3b 0d 0a 20 20 20 20 72 62 69 72 66 5b 72 38 2c 66 38 5d 3a 3d 64 72 3b 0d 0a 20 20 20 20 6d   ┆n;      rbirfÆr8,f8Å:=dr;      m┆
0x0544e0…054500            6f 76 6d 73 3a 3d 27 20 45 4e 54 45 52 20 4d 4f 56 45 20 43 52 20 54 59 50 45 20 47 4f 2e 20 20   ┆ovms:=' ENTER MOVE CR TYPE GO.  ┆
0x054500…054520            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 3b 0d 0a 20 20 20 20 77 72 69 74 65 6c 6e 28 6d   ┆               ';      writeln(m┆
0x054520…054540            6f 76 6d 73 29 3b 0d 0a 20 20 20 20 6c 73 74 6d 76 3a 3d 6e 75 6c 6d 76 3b 0d 0a 20 20 65 6e 64   ┆ovms);      lstmv:=nulmv;    end┆
0x054540…054560            3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20 70 72 69 6d 6f 76 28 61 3a 20 72   ┆;  end;    procedure primov(a: r┆
0x054560…054580            6d 29 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 77 69 74 68 20 61 20 64 6f 0d 0a 20 20 62 65 67 69 6e   ┆m);  begin    with a do    begin┆
0x054580…0545a0            0d 0a 20 20 20 20 77 72 69 74 65 28 27 20 27 2c 78 74 70 63 5b 6e 62 6f 72 64 5b 72 6d 66 72 5d   ┆      write(' ',xtpcÆnbordÆrmfrÅ┆
0x0545a0…0545c0            5d 3a 30 2c 27 2f 27 29 3b 0d 0a 20 20 20 20 77 72 69 74 65 78 79 28 72 6d 66 72 29 3b 0d 0a 20   ┆Å:0,'/');      writexy(rmfr);   ┆
0x0545c0…0545e0            20 20 20 69 66 20 72 6d 63 61 20 74 68 65 6e 20 77 72 69 74 65 28 27 2a 27 29 20 65 6c 73 65 20   ┆   if rmca then write('*') else ┆
0x0545e0…054600            77 72 69 74 65 28 27 2d 27 29 3b 0d 0a 20 20 20 20 77 72 69 74 65 78 79 28 72 6d 74 6f 29 3b 0d   ┆write('-');      writexy(rmto); ┆
0x054600…054620            0a 20 20 20 20 69 66 20 6e 75 6c 6d 76 62 28 61 29 20 74 68 65 6e 20 77 72 69 74 65 28 27 2c 20   ┆     if nulmvb(a) then write(', ┆
0x054620…054640            4e 55 4c 4c 20 4d 4f 56 45 27 29 0d 0a 20 20 20 20 65 6c 73 65 20 62 65 67 69 6e 0d 0a 20 20 20   ┆NULL MOVE')      else begin     ┆
0x054640…054660            20 20 20 69 66 20 72 6d 63 61 20 74 68 65 6e 20 77 72 69 74 65 28 27 2c 20 43 41 50 54 55 52 45   ┆   if rmca then write(', CAPTURE┆
0x054660…054680            20 27 2c 78 74 70 63 5b 72 6d 63 70 5d 2c 27 2c 27 29 0d 0a 20 20 20 20 20 20 65 6c 73 65 20 77   ┆ ',xtpcÆrmcpÅ,',')        else w┆
0x054680…0546a0            72 69 74 65 28 27 2c 20 53 49 4d 50 4c 45 2c 27 29 3b 0d 0a 20 20 20 20 20 20 69 66 20 6e 6f 74   ┆rite(', SIMPLE,');        if not┆
0x0546a0…0546c0            20 72 6d 61 63 20 74 68 65 6e 20 77 72 69 74 65 28 27 20 4e 4f 27 29 3b 0d 0a 20 20 20 20 20 20   ┆ rmac then write(' NO');        ┆
0x0546c0…0546e0            77 72 69 74 65 28 27 20 41 43 53 27 29 3b 0d 0a 20 20 20 20 20 20 69 66 20 72 6d 63 68 20 74 68   ┆write(' ACS');        if rmch th┆
0x0546e0…054700            65 6e 20 77 72 69 74 65 28 27 2c 20 43 48 45 43 4b 27 29 3b 0d 0a 20 20 20 20 20 20 69 66 20 72   ┆en write(', CHECK');        if r┆
0x054700…054720            6d 6d 74 20 74 68 65 6e 20 77 72 69 74 65 28 27 2c 20 4d 41 54 45 27 29 3b 0d 0a 20 20 20 20 20   ┆mmt then write(', MATE');       ┆
0x054720…054740            20 69 66 20 72 6d 69 6c 20 74 68 65 6e 20 77 72 69 74 65 28 27 2c 20 49 4c 4c 45 47 41 4c 27 29   ┆ if rmil then write(', ILLEGAL')┆
0x054740…054760            3b 0d 0a 20 20 20 20 20 20 69 66 20 72 6d 73 75 20 74 68 65 6e 20 77 72 69 74 65 28 27 2c 20 53   ┆;        if rmsu then write(', S┆
0x054760…054780            45 41 52 43 48 45 44 27 29 3b 0d 0a 20 20 20 20 20 20 63 61 73 65 20 72 6d 70 72 20 6f 66 0d 0a   ┆EARCHED');        case rmpr of  ┆
0x054780…0547a0            20 20 20 20 20 20 20 20 66 61 6c 73 65 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 72   ┆        false:            case r┆
0x0547a0…0547c0            6d 6f 6f 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 61 6c 73 65 3a 20 69 66 20 72 6d   ┆moo of              false: if rm┆
0x0547c0…0547e0            65 70 20 74 68 65 6e 20 77 72 69 74 65 28 27 2c 20 45 4e 50 41 53 53 41 4e 54 27 29 3b 0d 0a 20   ┆ep then write(', ENPASSANT');   ┆
0x0547e0…054800            20 20 20 20 20 20 20 20 20 20 20 74 72 75 65 20 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 62   ┆           true :              b┆
0x054800…054820 (21, 0, 3) 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 28 27 2c 20 43 41 53   ┆egin                write(', CAS┆
0x054820…054840            54 4c 45 20 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 72 6d 71 73 20 74   ┆TLE ');                if rmqs t┆
0x054840…054860            68 65 6e 20 77 72 69 74 65 28 27 4c 4f 4e 47 27 29 20 65 6c 73 65 20 77 72 69 74 65 28 27 53 48   ┆hen write('LONG') else write('SH┆
0x054860…054880            4f 52 54 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20   ┆ORT');              end;        ┆
0x054880…0548a0            20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 74 72 75 65 20 3a 0d 0a 20 20 20 20 20 20   ┆    end;          true :        ┆
0x0548a0…0548c0            20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 28 27 2c 20 50 52 4f 4d   ┆  begin            write(', PROM┆
0x0548c0…0548e0            4f 54 45 20 54 4f 20 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 72 6d 70 70 20   ┆OTE TO ');            case rmpp ┆
0x0548e0…054900            6f 66 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 71 3a 20 20 77 72 69 74 65 28 27 51 55 45 45   ┆of              pq:  write('QUEE┆
0x054900…054920            4e 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 3a 20 20 77 72 69 74 65 28 27 52 4f   ┆N');              pr:  write('RO┆
0x054920…054940            4f 4b 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 62 3a 20 20 77 72 69 74 65 28 27 42   ┆OK');              pb:  write('B┆
0x054940…054960            49 53 48 4f 50 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 6e 3a 20 20 77 72 69 74 65   ┆ISHOP');              pn:  write┆
0x054960…054980            28 27 4b 4e 49 47 48 54 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20   ┆('KNIGHT');            end;     ┆
0x054980…0549a0            20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d   ┆     end;        end;      end; ┆
0x0549a0…0549c0            0a 20 20 65 6e 64 3b 0d 0a 20 20 77 72 69 74 65 6c 6e 28 27 2e 27 29 3b 0d 0a 65 6e 64 3b 0d 0a   ┆   end;    writeln('.');  end;  ┆
0x0549c0…0549e0            0d 0a 28 2a 20 6d 61 63 68 69 6e 65 20 69 6e 64 65 70 65 6e 64 65 64 20 63 6f 64 65 20 2a 29 0d   ┆  (* machine independed code *) ┆
0x0549e0…054a00            0a 70 72 6f 63 65 64 75 72 65 20 70 72 69 6e 74 62 28 61 3a 20 72 63 29 3b 0d 0a 76 61 72 0d 0a   ┆ procedure printb(a: rc);  var  ┆
0x054a00…054a20            20 20 69 6e 74 72 09 3a 20 74 72 3b 0d 0a 20 20 69 6e 74 66 09 3a 20 74 66 3b 0d 0a 20 20 69 6e   ┆  intr : tr;    intf : tf;    in┆
0x054a20…054a40            74 70 09 3a 20 74 70 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 77 72 69 74 65 6c 6e 3b 0d 0a 20 20 66   ┆tp : tp;  begin    writeln;    f┆
0x054a40…054a60            6f 72 20 69 6e 74 72 3a 3d 72 38 20 64 6f 77 6e 74 6f 20 72 31 20 64 6f 0d 0a 20 20 62 65 67 69   ┆or intr:=r8 downto r1 do    begi┆
0x054a60…054a80            6e 0d 0a 20 20 20 20 77 72 69 74 65 28 27 20 27 2c 6f 72 64 28 69 6e 74 72 29 2b 31 3a 31 2c 27   ┆n      write(' ',ord(intr)+1:1,'┆
0x054a80…054aa0            20 27 29 3b 0d 0a 20 20 20 20 66 6f 72 20 69 6e 74 66 3a 3d 66 31 20 74 6f 20 66 38 20 64 6f 0d   ┆ ');      for intf:=f1 to f8 do ┆
0x054aa0…054ac0            0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 6e 74 70 3a 3d 61 5b 78 74 72 66 73 5b   ┆     begin        intp:=aÆxtrfsÆ┆
0x054ac0…054ae0            69 6e 74 72 2c 69 6e 74 66 5d 5d 3b 0d 0a 20 20 20 20 20 20 69 66 20 78 74 70 6d 5b 69 6e 74 70   ┆intr,intfÅÅ;        if xtpmÆintp┆
0x054ae0…054b00            5d 20 3d 20 64 61 72 6b 20 74 68 65 6e 20 77 72 69 74 65 28 27 2d 27 29 20 65 6c 73 65 20 77 72   ┆Å = dark then write('-') else wr┆
0x054b00…054b20            69 74 65 28 27 20 27 29 3b 0d 0a 20 20 20 20 20 20 77 72 69 74 65 28 78 74 70 63 5b 69 6e 74 70   ┆ite(' ');        write(xtpcÆintp┆
0x054b20…054b40            5d 29 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 77 72 69 74 65 6c 6e 3b 0d 0a 20 20 65   ┆Å);      end;      writeln;    e┆
0x054b40…054b60            6e 64 3b 0d 0a 20 20 77 72 69 74 65 6c 6e 3b 20 77 72 69 74 65 6c 6e 28 27 20 20 20 20 41 20 42   ┆nd;    writeln; writeln('    A B┆
0x054b60…054b80            20 43 20 44 20 45 20 46 20 47 20 48 27 29 3b 0d 0a 65 6e 64 3b 0d 0a 28 2a 0d 0a 70 72 6f 63 65   ┆ C D E F G H');  end;  (*  proce┆
0x054b80…054ba0            64 75 72 65 20 70 72 69 6e 74 62 28 61 3a 20 72 63 29 3b 0d 0a 63 6f 6e 73 74 0d 0a 20 20 69 6e   ┆dure printb(a: rc);  const    in┆
0x054ba0…054bc0            76 65 72 73 20 3d 20 40 31 34 34 3b 0d 0a 20 20 6e 6f 72 6d 61 6c 20 3d 20 40 31 32 38 3b 0d 0a   ┆vers = @144;    normal = @128;  ┆
0x054bc0…054be0            76 61 72 0d 0a 20 20 69 6e 74 70 09 3a 20 74 70 3b 0d 0a 20 20 69 2c 6a 2c 6b 09 3a 20 74 69 3b   ┆var    intp : tp;    i,j,k : ti;┆
0x054be0…054c00            0d 0a 20 20 66 69 67 75 72 65 3a 20 74 62 3b 0d 0a 20 20 61 74 74 72 09 3a 20 74 63 3b 0d 0a 62   ┆    figure: tb;    attr : tc;  b┆
0x054c00…054c20 (21, 0, 4) 65 67 69 6e 0d 0a 20 20 61 74 74 72 3a 3d 69 6e 76 65 72 73 3b 0d 0a 20 20 66 6f 72 20 6a 3a 3d   ┆egin    attr:=invers;    for j:=┆
0x054c20…054c40            30 20 74 6f 20 32 33 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 69 66 20 6a 20 6d 6f   ┆0 to 23 do    begin      if j mo┆
0x054c40…054c60            64 20 33 20 3d 20 30 20 74 68 65 6e 20 69 66 20 61 74 74 72 20 3d 20 69 6e 76 65 72 73 20 74 68   ┆d 3 = 0 then if attr = invers th┆
0x054c60…054c80            65 6e 20 61 74 74 72 3a 3d 6e 6f 72 6d 61 6c 20 65 6c 73 65 20 61 74 74 72 3a 3d 69 6e 76 65 72   ┆en attr:=normal else attr:=inver┆
0x054c80…054ca0            73 3b 0d 0a 20 20 20 20 66 69 67 75 72 65 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 69 66 20 6a   ┆s;      figure:=false;      if j┆
0x054ca0…054cc0            20 6d 6f 64 20 33 20 3d 20 31 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20   ┆ mod 3 = 1 then      begin      ┆
0x054cc0…054ce0            20 20 6b 3a 3d 38 2d 6a 20 64 69 76 20 33 3b 0d 0a 20 20 20 20 20 20 77 72 69 74 65 28 6e 6f 72   ┆  k:=8-j div 3;        write(nor┆
0x054ce0…054d00            6d 61 6c 2c 6b 2c 27 20 20 20 27 29 0d 0a 20 20 20 20 65 6e 64 20 65 6c 73 65 20 77 72 69 74 65   ┆mal,k,'   ')      end else write┆
0x054d00…054d20            28 6e 6f 72 6d 61 6c 2c 27 20 20 20 20 27 29 3b 0d 0a 20 20 20 20 66 6f 72 20 69 3a 3d 30 20 74   ┆(normal,'    ');      for i:=0 t┆
0x054d20…054d40            6f 20 35 35 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 63 61 73 65 20 69   ┆o 55 do      begin        case i┆
0x054d40…054d60            20 6d 6f 64 20 37 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 30 3a 20 62 65 67 69 6e 0d 0a 20 20 20   ┆ mod 7 of          0: begin     ┆
0x054d60…054d80            20 20 20 20 20 20 20 20 20 20 69 66 20 6a 20 6d 6f 64 20 33 20 3d 20 31 20 74 68 65 6e 20 66 69   ┆          if j mod 3 = 1 then fi┆
0x054d80…054da0            67 75 72 65 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 61 74 74   ┆gure:=true;               if att┆
0x054da0…054dc0            72 20 3d 20 69 6e 76 65 72 73 20 74 68 65 6e 20 61 74 74 72 3a 3d 6e 6f 72 6d 61 6c 20 65 6c 73   ┆r = invers then attr:=normal els┆
0x054dc0…054de0            65 20 61 74 74 72 3a 3d 69 6e 76 65 72 73 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 77 72   ┆e attr:=invers;               wr┆
0x054de0…054e00            69 74 65 28 61 74 74 72 2c 27 20 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d   ┆ite(attr,' ');             end; ┆
0x054e00…054e20            0a 20 20 20 20 20 20 20 20 32 3a 20 69 66 20 66 69 67 75 72 65 20 74 68 65 6e 0d 0a 20 20 20 20   ┆         2: if figure then      ┆
0x054e20…054e40            20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 70 3a   ┆       begin               intp:┆
0x054e40…054e60            3d 61 5b 28 28 6b 2d 31 29 2a 38 20 2b 20 69 20 64 69 76 20 37 29 5d 3b 0d 0a 20 20 20 20 20 20   ┆=aÆ((k-1)*8 + i div 7)Å;        ┆
0x054e60…054e80            20 20 20 20 20 20 20 69 66 20 69 6e 74 70 20 3d 20 6d 74 20 74 68 65 6e 0d 0a 20 20 20 20 20 20   ┆       if intp = mt then        ┆
0x054e80…054ea0            20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 67   ┆       begin                 fig┆
0x054ea0…054ec0            75 72 65 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 72 69 74   ┆ure:=false;                 writ┆
0x054ec0…054ee0            65 28 27 20 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 20 69   ┆e(' ');               end else i┆
0x054ee0…054f00            66 20 78 74 70 6d 5b 69 6e 74 70 5d 20 3d 20 64 61 72 6b 20 74 68 65 6e 0d 0a 20 20 20 20 20 20   ┆f xtpmÆintpÅ = dark then        ┆
0x054f00…054f20            20 20 20 20 20 20 20 20 20 77 72 69 74 65 28 6e 6f 72 6d 61 6c 2c 27 2d 27 29 20 65 6c 73 65 20   ┆         write(normal,'-') else ┆
0x054f20…054f40            77 72 69 74 65 28 69 6e 76 65 72 73 2c 27 2d 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 65   ┆write(invers,'-');             e┆
0x054f40…054f60            6e 64 20 65 6c 73 65 20 77 72 69 74 65 28 27 20 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 33 3a 20   ┆nd else write(' ');          3: ┆
0x054f60…054f80            69 66 20 66 69 67 75 72 65 20 74 68 65 6e 20 77 72 69 74 65 28 78 74 70 63 5b 69 6e 74 70 5d 29   ┆if figure then write(xtpcÆintpÅ)┆
0x054f80…054fa0            20 65 6c 73 65 20 77 72 69 74 65 28 27 20 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 34 3a 20 69 66   ┆ else write(' ');          4: if┆
0x054fa0…054fc0            20 66 69 67 75 72 65 20 74 68 65 6e 20 77 72 69 74 65 28 27 2d 27 29 20 65 6c 73 65 20 77 72 69   ┆ figure then write('-') else wri┆
0x054fc0…054fe0            74 65 28 27 20 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 31 2c 35 2c 36 3a 20 77 72 69 74 65 28 61   ┆te(' ');          1,5,6: write(a┆
0x054fe0…055000            74 74 72 2c 27 20 27 29 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d   ┆ttr,' ');        end;      end; ┆
0x055000…055020 (21, 0, 5) 0a 20 20 20 20 77 72 69 74 65 6c 6e 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 77 72 69 74 65 28 6e   ┆     writeln;    end;    write(n┆
0x055020…055040            6f 72 6d 61 6c 29 3b 0d 0a 65 6e 64 3b 0d 0a 2a 29 0d 0a 70 72 6f 63 65 64 75 72 65 20 70 72 69   ┆ormal);  end;  *)  procedure pri┆
0x055040…055060            6e 62 62 28 61 3a 20 72 73 29 3b 09 28 2a 20 70 72 69 6e 74 20 61 20 62 69 74 20 62 6f 61 72 64   ┆nbb(a: rs); (* print a bit board┆
0x055060…055080            20 2a 29 0d 0a 76 61 72 0d 0a 20 20 69 6e 74 72 09 3a 20 74 72 3b 0d 0a 20 20 69 6e 74 66 09 3a   ┆ *)  var    intr : tr;    intf :┆
0x055080…0550a0            20 74 66 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 77 72 69 74 65 6c 6e 3b 0d 0a 20 20 66 6f 72 20 69   ┆ tf;  begin    writeln;    for i┆
0x0550a0…0550c0            6e 74 72 3a 3d 72 38 20 64 6f 77 6e 74 6f 20 72 31 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20   ┆ntr:=r8 downto r1 do    begin   ┆
0x0550c0…0550e0            20 20 20 77 72 69 74 65 28 27 20 27 2c 6f 72 64 28 69 6e 74 72 29 2b 31 3a 31 2c 27 20 27 29 3b   ┆   write(' ',ord(intr)+1:1,' ');┆
0x0550e0…055100            0d 0a 20 20 20 20 66 6f 72 20 69 6e 74 66 3a 3d 66 31 20 74 6f 20 66 38 20 64 6f 0d 0a 20 20 20   ┆      for intf:=f1 to f8 do     ┆
0x055100…055120            20 20 20 77 72 69 74 65 28 78 74 62 63 5b 69 6e 72 73 74 62 28 61 2c 78 74 72 66 73 5b 69 6e 74   ┆   write(xtbcÆinrstb(a,xtrfsÆint┆
0x055120…055140            72 2c 69 6e 74 66 5d 29 5d 29 3b 0d 0a 20 20 20 20 77 72 69 74 65 6c 6e 3b 0d 0a 20 20 65 6e 64   ┆r,intfÅ)Å);      writeln;    end┆
0x055140…055160            3b 0d 0a 20 20 77 72 69 74 65 6c 6e 28 27 20 20 20 41 42 43 44 45 46 47 48 27 29 3b 0d 0a 65 6e   ┆;    writeln('   ABCDEFGH');  en┆
0x055160…055180            64 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20 70 72 69 6e 61 6d 28 61 3a 20 72 78 29 3b 09 28   ┆d;    procedure prinam(a: rx); (┆
0x055180…0551a0            2a 20 70 72 69 6e 74 20 61 74 74 61 63 6b 20 6d 61 70 20 2a 29 0d 0a 76 61 72 0d 0a 20 20 69 6e   ┆* print attack map *)  var    in┆
0x0551a0…0551c0            74 72 2c 20 6a 6e 74 72 09 3a 20 74 72 3b 0d 0a 20 20 69 6e 74 66 2c 20 6a 6e 74 66 09 3a 20 74   ┆tr, jntr : tr;    intf, jntf : t┆
0x0551c0…0551e0            66 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 77 72 69 74 65 6c 6e 3b 0d 0a 20 20 66 6f 72 20 69 6e 74   ┆f;  begin    writeln;    for int┆
0x0551e0…055200            72 3a 3d 72 38 20 64 6f 77 6e 74 6f 20 72 31 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20   ┆r:=r8 downto r1 do    begin     ┆
0x055200…055220            20 66 6f 72 20 6a 6e 74 72 3a 3d 72 38 20 64 6f 77 6e 74 6f 20 72 31 20 64 6f 0d 0a 20 20 20 20   ┆ for jntr:=r8 downto r1 do      ┆
0x055220…055240            62 65 67 69 6e 0d 0a 20 20 20 20 20 20 66 6f 72 20 69 6e 74 66 3a 3d 66 31 20 74 6f 20 66 38 20   ┆begin        for intf:=f1 to f8 ┆
0x055240…055260            64 6f 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 28 27   ┆do        begin          write('┆
0x055260…055280            20 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 66 6f 72 20 6a 6e 74 66 3a 3d 66 31 20 74 6f 20 66 38   ┆ ');          for jntf:=f1 to f8┆
0x055280…0552a0            20 64 6f 0d 0a 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 28 78 74 62 63 5b 69 6e 72 73 74 62   ┆ do            write(xtbcÆinrstb┆
0x0552a0…0552c0            28 61 5b 78 74 72 66 73 5b 69 6e 74 72 2c 69 6e 74 66 5d 5d 2c 78 74 72 66 73 5b 6a 6e 74 72 2c   ┆(aÆxtrfsÆintr,intfÅÅ,xtrfsÆjntr,┆
0x0552c0…0552e0            6a 6e 74 66 5d 29 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 28 27 20 27 29 3b 0d 0a   ┆jntfÅ)Å);          write(' ');  ┆
0x0552e0…055300            20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 3b 0d 0a 20 20 20 20   ┆      end;        writeln;      ┆
0x055300…055320            65 6e 64 3b 0d 0a 20 20 20 20 77 72 69 74 65 6c 6e 3b 0d 0a 20 20 20 20 69 66 20 69 6e 74 72 20   ┆end;      writeln;      if intr ┆
0x055320…055340            69 6e 20 5b 72 31 2c 72 33 2c 72 35 2c 72 37 5d 20 74 68 65 6e 20 70 61 75 73 65 72 3b 0d 0a 20   ┆in Ær1,r3,r5,r7Å then pauser;   ┆
0x055340…055360            20 65 6e 64 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20 70 72 69 73 77 69 28   ┆ end;  end;    procedure priswi(┆
0x055360…055380            61 3a 20 72 61 3b 20 62 3a 20 74 62 29 3b 09 09 28 2a 20 70 72 69 6e 74 20 61 20 73 77 69 74 63   ┆a: ra; b: tb);  (* print a switc┆
0x055380…0553a0            68 20 2a 29 0d 0a 62 65 67 69 6e 0d 0a 20 20 77 72 69 74 65 28 27 20 27 2c 61 5b 61 61 5d 2c 61   ┆h *)  begin    write(' ',aÆaaÅ,a┆
0x0553a0…0553c0            5b 61 61 2b 31 5d 29 3b 0d 0a 20 20 69 66 20 62 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 27 20   ┆Æaa+1Å);    if b then writeln(' ┆
0x0553c0…0553e0            4f 4e 27 29 20 65 6c 73 65 20 77 72 69 74 65 6c 6e 28 27 20 4f 46 46 27 29 3b 0d 0a 65 6e 64 3b   ┆ON') else writeln(' OFF');  end;┆
0x0553e0…055400            0d 0a 0d 0a 28 2a 20 63 68 65 73 73 2e 70 30 34 20 2a 29 0d 0a 70 72 6f 63 65 64 75 72 65 20 6d   ┆    (* chess.p04 *)  procedure m┆
0x055400…055420 (21, 0, 6) 62 63 61 70 74 28 61 3a 20 74 70 29 3b 09 28 2a 20 65 76 61 6c 75 61 74 65 20 6d 61 74 65 72 69   ┆bcapt(a: tp); (* evaluate materi┆
0x055420…055440            61 6c 20 61 66 74 65 72 20 63 61 70 74 75 72 65 20 2a 29 0d 0a 62 65 67 69 6e 0d 0a 20 20 6d 62   ┆al after capture *)  begin    mb┆
0x055440…055460            74 6f 74 3a 3d 6d 62 74 6f 74 2d 61 62 73 28 78 74 70 76 5b 61 5d 29 3b 0d 0a 20 20 69 66 20 78   ┆tot:=mbtot-abs(xtpvÆaÅ);    if x┆
0x055460…055480            74 70 75 5b 61 5d 20 3d 20 65 70 20 74 68 65 6e 20 6d 62 70 77 6e 5b 78 74 70 6d 5b 61 5d 5d 3a   ┆tpuÆaÅ = ep then mbpwnÆxtpmÆaÅÅ:┆
0x055480…0554a0            3d 6d 62 70 77 6e 5b 78 74 70 6d 5b 61 5d 5d 2d 31 3b 0d 0a 20 20 6d 62 6c 74 65 3a 3d 6d 62 6c   ┆=mbpwnÆxtpmÆaÅÅ-1;    mblte:=mbl┆
0x0554a0…0554c0            74 65 2d 78 74 70 76 5b 61 5d 3b 0d 0a 20 20 6d 62 65 76 61 6c 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a   ┆te-xtpvÆaÅ;    mbeval;  end;    ┆
0x0554c0…0554e0            70 72 6f 63 65 64 75 72 65 20 6d 62 70 72 6f 6d 28 61 3a 20 74 70 29 3b 20 28 2a 20 65 76 61 6c   ┆procedure mbprom(a: tp); (* eval┆
0x0554e0…055500            75 61 74 65 20 6d 61 74 72 2e 20 62 61 6c 2e 20 63 68 61 6e 67 65 20 64 75 65 20 74 6f 20 70 61   ┆uate matr. bal. change due to pa┆
0x055500…055520            77 6e 0d 0a 09 09 09 09 09 09 70 72 6f 6d 6f 74 69 6f 6e 20 2a 29 0d 0a 62 65 67 69 6e 0d 0a 20   ┆wn        promotion *)  begin   ┆
0x055520…055540            20 6d 62 74 6f 74 3a 3d 6d 62 74 6f 74 2b 61 62 73 28 78 74 70 76 5b 61 5d 2d 78 74 70 76 5b 78   ┆ mbtot:=mbtot+abs(xtpvÆaÅ-xtpvÆx┆
0x055540…055560            74 75 6d 70 5b 65 70 2c 78 74 70 6d 5b 61 5d 5d 5d 29 3b 0d 0a 20 20 6d 62 70 77 6e 5b 78 74 70   ┆tumpÆep,xtpmÆaÅÅÅ);    mbpwnÆxtp┆
0x055560…055580            6d 5b 61 5d 5d 3a 3d 6d 62 70 77 6e 5b 78 74 70 6d 5b 61 5d 5d 2d 31 3b 0d 0a 20 20 6d 62 6c 74   ┆mÆaÅÅ:=mbpwnÆxtpmÆaÅÅ-1;    mblt┆
0x055580…0555a0            65 3a 3d 6d 62 6c 74 65 2b 78 74 70 76 5b 61 5d 2d 78 74 70 76 5b 78 74 75 6d 70 5b 65 70 2c 78   ┆e:=mblte+xtpvÆaÅ-xtpvÆxtumpÆep,x┆
0x0555a0…0555c0            74 70 6d 5b 61 5d 5d 5d 3b 0d 0a 20 20 6d 62 65 76 61 6c 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70 72   ┆tpmÆaÅÅÅ;    mbeval;  end;    pr┆
0x0555c0…0555e0            6f 63 65 64 75 72 65 20 6d 62 6d 6f 72 70 28 61 3a 20 74 70 29 3b 20 28 2a 20 72 65 6d 6f 76 65   ┆ocedure mbmorp(a: tp); (* remove┆
0x0555e0…055600            20 70 61 77 6e 20 70 72 6f 6d 6f 74 69 6f 6e 20 66 72 6f 6d 20 6d 61 74 72 2e 62 61 6c 2e 20 2a   ┆ pawn promotion from matr.bal. *┆
0x055600…055620            29 0d 0a 62 65 67 69 6e 0d 0a 20 20 6d 62 74 6f 74 3a 3d 6d 62 74 6f 74 2d 61 62 73 28 78 74 70   ┆)  begin    mbtot:=mbtot-abs(xtp┆
0x055620…055640            76 5b 61 5d 2d 78 74 70 76 5b 78 74 75 6d 70 5b 65 70 2c 78 74 70 6d 5b 61 5d 5d 5d 29 3b 0d 0a   ┆vÆaÅ-xtpvÆxtumpÆep,xtpmÆaÅÅÅ);  ┆
0x055640…055660            20 20 6d 62 70 77 6e 5b 78 74 70 6d 5b 61 5d 5d 3a 3d 6d 62 70 77 6e 5b 78 74 70 6d 5b 61 5d 5d   ┆  mbpwnÆxtpmÆaÅÅ:=mbpwnÆxtpmÆaÅÅ┆
0x055660…055680            2b 31 3b 0d 0a 20 20 6d 62 6c 74 65 3a 3d 6d 62 6c 74 65 2d 28 78 74 70 76 5b 61 5d 2d 78 74 70   ┆+1;    mblte:=mblte-(xtpvÆaÅ-xtp┆
0x055680…0556a0            76 5b 78 74 75 6d 70 5b 65 70 2c 78 74 70 6d 5b 61 5d 5d 5d 29 3b 0d 0a 20 20 6d 62 65 76 61 6c   ┆vÆxtumpÆep,xtpmÆaÅÅÅ);    mbeval┆
0x0556a0…0556c0            3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20 6d 62 74 70 61 63 28 61 3a 20 74   ┆;  end;    procedure mbtpac(a: t┆
0x0556c0…0556e0            70 29 3b 20 28 2a 20 72 65 6d 6f 76 65 20 63 61 70 74 75 72 65 20 66 6f 72 6d 20 6d 61 74 72 2e   ┆p); (* remove capture form matr.┆
0x0556e0…055700            20 62 61 6c 2e 20 64 61 74 61 20 2a 29 0d 0a 62 65 67 69 6e 0d 0a 20 20 6d 62 74 6f 74 3a 3d 6d   ┆ bal. data *)  begin    mbtot:=m┆
0x055700…055720            62 74 6f 74 2b 61 62 73 28 78 74 70 76 5b 61 5d 29 3b 0d 0a 20 20 69 66 20 78 74 70 75 5b 61 5d   ┆btot+abs(xtpvÆaÅ);    if xtpuÆaÅ┆
0x055720…055740            20 3d 20 65 70 20 74 68 65 6e 20 6d 62 70 77 6e 5b 78 74 70 6d 5b 61 5d 5d 3a 3d 6d 62 70 77 6e   ┆ = ep then mbpwnÆxtpmÆaÅÅ:=mbpwn┆
0x055740…055760            5b 78 74 70 6d 5b 61 5d 5d 2b 31 3b 0d 0a 20 20 6d 62 6c 74 65 3a 3d 6d 62 6c 74 65 2b 78 74 70   ┆ÆxtpmÆaÅÅ+1;    mblte:=mblte+xtp┆
0x055760…055780            76 5b 61 5d 3b 0d 0a 20 20 6d 62 65 76 61 6c 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64   ┆vÆaÅ;    mbeval;  end;    proced┆
0x055780…0557a0            75 72 65 20 61 64 64 61 74 6b 28 61 3a 20 74 73 29 3b 09 28 2a 20 61 64 64 20 61 74 74 61 63 6b   ┆ure addatk(a: ts); (* add attack┆
0x0557a0…0557c0            73 20 6f 66 20 70 69 65 63 65 20 74 6f 20 64 61 74 61 2d 62 61 73 65 20 2a 29 0d 0a 76 61 72 0d   ┆s of piece to data-base *)  var ┆
0x0557c0…0557e0            0a 20 20 69 6e 74 62 09 3a 20 74 62 3b 0d 0a 20 20 69 6e 74 64 09 3a 20 74 64 3b 0d 0a 20 20 69   ┆   intb : tb;    intd : td;    i┆
0x0557e0…055800            6e 74 65 09 3a 20 74 65 3b 0d 0a 20 20 69 6e 74 6d 09 3a 20 74 6d 3b 0d 0a 20 20 69 6e 74 70 09   ┆nte : te;    intm : tm;    intp ┆
0x055800…055820 (21, 0, 7) 3a 20 74 70 3b 0d 0a 20 20 69 6e 74 74 09 3a 20 74 74 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 69 6e   ┆: tp;    intt : tt;  begin    in┆
0x055820…055840            74 70 3a 3d 6e 62 6f 72 64 5b 61 5d 3b 0d 0a 20 20 69 6e 74 6d 3a 3d 78 74 70 6d 5b 69 6e 74 70   ┆tp:=nbordÆaÅ;    intm:=xtpmÆintp┆
0x055840…055860            5d 3b 0d 0a 20 20 66 6f 72 20 69 6e 74 65 3a 3d 78 66 70 65 5b 69 6e 74 70 5d 20 74 6f 20 78 6c   ┆Å;    for inte:=xfpeÆintpÅ to xl┆
0x055860…055880            70 65 5b 69 6e 74 70 5d 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 69 6e 74 74 3a 3d   ┆peÆintpÅ do    begin      intt:=┆
0x055880…0558a0            61 3b 0d 0a 20 20 20 20 69 6e 74 62 3a 3d 78 73 70 62 5b 69 6e 74 70 5d 3b 0d 0a 20 20 20 20 69   ┆a;      intb:=xspbÆintpÅ;      i┆
0x0558a0…0558c0            6e 74 64 3a 3d 78 74 65 64 5b 69 6e 74 65 5d 3b 0d 0a 20 20 20 20 72 65 70 65 61 74 0d 0a 20 20   ┆ntd:=xtedÆinteÅ;      repeat    ┆
0x0558c0…0558e0            20 20 20 20 69 6e 74 74 3a 3d 78 74 6c 73 5b 78 74 73 6c 5b 69 6e 74 74 5d 2b 69 6e 74 64 5d 3b   ┆    intt:=xtlsÆxtslÆinttÅ+intdÅ;┆
0x0558e0…055900            0d 0a 20 20 20 20 20 20 69 66 20 69 6e 74 74 20 3e 3d 20 30 20 74 68 65 6e 0d 0a 20 20 20 20 20   ┆        if intt >= 0 then       ┆
0x055900…055920            20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 73 65 74 72 73 28 61 74 6b 66 72 5b 61 5d 2c 69   ┆ begin          setrs(atkfrÆaÅ,i┆
0x055920…055940            6e 74 74 29 3b 0d 0a 20 20 20 20 20 20 20 20 73 65 74 72 73 28 61 74 6b 74 6f 5b 69 6e 74 74 5d   ┆ntt);          setrs(atktoÆinttÅ┆
0x055940…055960            2c 61 29 3b 0d 0a 20 20 20 20 20 20 20 20 73 65 74 72 73 28 61 6c 61 74 6b 5b 69 6e 74 6d 5d 2c   ┆,a);          setrs(alatkÆintmÅ,┆
0x055960…055980            69 6e 74 74 29 3b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 6e 62 6f 72 64 5b 69 6e 74 74 5d 20 3c   ┆intt);          if nbordÆinttÅ <┆
0x055980…0559a0            3e 20 6d 74 20 74 68 65 6e 20 69 6e 74 62 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 65 6e   ┆> mt then intb:=false;        en┆
0x0559a0…0559c0            64 20 65 6c 73 65 20 69 6e 74 62 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 75 6e 74 69 6c 20 6e   ┆d else intb:=false;      until n┆
0x0559c0…0559e0            6f 74 20 69 6e 74 62 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64   ┆ot intb;    end;  end;    proced┆
0x0559e0…055a00            75 72 65 20 61 64 64 6c 6f 63 28 61 3a 20 74 73 3b 20 62 3a 20 74 70 29 3b 09 28 2a 20 61 64 64   ┆ure addloc(a: ts; b: tp); (* add┆
0x055a00…055a20            20 70 69 65 63 65 20 74 6f 20 64 61 74 61 2d 62 61 73 65 20 2a 29 0d 0a 62 65 67 69 6e 0d 0a 20   ┆ piece to data-base *)  begin   ┆
0x055a20…055a40            20 63 6c 72 72 73 28 74 70 6c 6f 63 5b 6d 74 5d 2c 61 29 3b 0d 0a 20 20 73 65 74 72 73 28 74 70   ┆ clrrs(tplocÆmtÅ,a);    setrs(tp┆
0x055a40…055a60            6c 6f 63 5b 62 5d 2c 61 29 3b 0d 0a 20 20 73 65 74 72 73 28 74 6d 6c 6f 63 5b 78 74 70 6d 5b 62   ┆locÆbÅ,a);    setrs(tmlocÆxtpmÆb┆
0x055a60…055a80            5d 5d 2c 61 29 3b 0d 0a 20 20 73 65 74 72 73 28 61 6c 6c 6f 63 5b 6a 6e 74 6b 5d 2c 61 29 3b 0d   ┆ÅÅ,a);    setrs(allocÆjntkÅ,a); ┆
0x055a80…055aa0            0a 20 20 6e 62 6f 72 64 5b 61 5d 3a 3d 62 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75   ┆   nbordÆaÅ:=b;  end;    procedu┆
0x055aa0…055ac0            72 65 20 63 6c 73 74 61 74 3b 09 09 28 2a 20 63 6c 65 61 72 20 70 6f 73 69 74 69 6f 6e 20 73 74   ┆re clstat;  (* clear position st┆
0x055ac0…055ae0            61 74 75 73 20 2a 29 0d 0a 62 65 67 69 6e 0d 0a 20 20 77 69 74 68 20 62 6f 61 72 64 20 64 6f 0d   ┆atus *)  begin    with board do ┆
0x055ae0…055b00            0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 72 62 74 6d 3a 3d 6c 69 74 65 3b 0d 0a 20 20 20 20 72   ┆   begin      rbtm:=lite;      r┆
0x055b00…055b20            62 74 73 3a 3d 2d 31 3b 0d 0a 20 20 20 20 72 62 73 71 3a 3d 5b 5d 3b 0d 0a 20 20 65 6e 64 3b 0d   ┆bts:=-1;      rbsq:=ÆÅ;    end; ┆
0x055b20…055b40            0a 20 20 63 61 73 74 6c 65 5b 6c 69 74 65 5d 3a 3d 66 61 6c 73 65 3b 20 63 61 73 74 6c 65 5b 64   ┆   castleÆliteÅ:=false; castleÆd┆
0x055b40…055b60            61 72 6b 5d 3a 3d 66 61 6c 73 65 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20   ┆arkÅ:=false;  end;    procedure ┆
0x055b60…055b80            63 75 74 61 74 6b 28 61 3a 20 74 73 29 3b 09 09 28 2a 20 63 75 74 20 61 74 74 61 63 6b 73 20 74   ┆cutatk(a: ts);  (* cut attacks t┆
0x055b80…055ba0            72 6f 75 67 68 20 73 71 75 61 72 65 20 2a 29 0d 0a 76 61 72 0d 0a 20 20 69 6e 72 73 09 3a 20 72   ┆rough square *)  var    inrs : r┆
0x055ba0…055bc0            73 3b 0d 0a 20 20 69 6e 74 73 09 3a 20 74 73 3b 0d 0a 20 20 69 6d 72 73 09 3a 20 72 73 3b 0d 0a   ┆s;    ints : ts;    imrs : rs;  ┆
0x055bc0…055be0            20 20 69 6e 74 64 09 3a 20 74 64 3b 0d 0a 20 20 69 6e 74 6d 09 3a 20 74 6d 3b 0d 0a 20 20 69 6e   ┆  intd : td;    intm : tm;    in┆
0x055be0…055c00            74 6c 09 3a 20 74 6c 3b 0d 0a 20 20 69 6e 74 74 09 3a 20 74 74 3b 0d 0a 62 65 67 69 6e 0d 0a 20   ┆tl : tl;    intt : tt;  begin   ┆
0x055c00…055c20 (21, 0, 8) 20 69 6e 72 73 3a 3d 61 74 6b 74 6f 5b 61 5d 3b 0d 0a 20 20 77 68 69 6c 65 20 6e 78 74 74 73 28   ┆ inrs:=atktoÆaÅ;    while nxtts(┆
0x055c20…055c40            69 6e 72 73 2c 69 6e 74 73 29 20 64 6f 0d 0a 20 20 20 20 69 66 20 78 73 70 62 5b 6e 62 6f 72 64   ┆inrs,ints) do      if xspbÆnbord┆
0x055c40…055c60            5b 69 6e 74 73 5d 5d 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69   ┆ÆintsÅÅ then      begin        i┆
0x055c60…055c80            6e 74 64 3a 3d 78 6c 6c 64 5b 78 74 73 6c 5b 61 5d 2d 78 74 73 6c 5b 69 6e 74 73 5d 5d 3b 0d 0a   ┆ntd:=xlldÆxtslÆaÅ-xtslÆintsÅÅ;  ┆
0x055c80…055ca0            20 20 20 20 20 20 69 6e 74 6d 3a 3d 78 74 70 6d 5b 6e 62 6f 72 64 5b 69 6e 74 73 5d 5d 3b 0d 0a   ┆      intm:=xtpmÆnbordÆintsÅÅ;  ┆
0x055ca0…055cc0            20 20 20 20 20 20 69 6e 74 6c 3a 3d 78 74 73 6c 5b 61 5d 2b 69 6e 74 64 3b 0d 0a 20 20 20 20 20   ┆      intl:=xtslÆaÅ+intd;       ┆
0x055cc0…055ce0            20 69 6e 74 74 3a 3d 78 74 6c 73 5b 69 6e 74 6c 5d 3b 0d 0a 20 20 20 20 20 20 77 68 69 6c 65 20   ┆ intt:=xtlsÆintlÅ;        while ┆
0x055ce0…055d00            69 6e 74 74 20 3e 20 61 74 74 20 64 6f 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20   ┆intt > att do        begin      ┆
0x055d00…055d20            20 20 20 20 63 6c 72 72 73 28 61 74 6b 66 72 5b 69 6e 74 73 5d 2c 69 6e 74 74 29 3b 0d 0a 20 20   ┆    clrrs(atkfrÆintsÅ,intt);    ┆
0x055d20…055d40            20 20 20 20 20 20 63 6c 72 72 73 28 61 74 6b 74 6f 5b 69 6e 74 74 5d 2c 69 6e 74 73 29 3b 0d 0a   ┆      clrrs(atktoÆinttÅ,ints);  ┆
0x055d40…055d60            20 20 20 20 20 20 20 20 61 6e 64 72 73 28 69 6d 72 73 2c 61 74 6b 74 6f 5b 69 6e 74 74 5d 2c 74   ┆        andrs(imrs,atktoÆinttÅ,t┆
0x055d60…055d80            6d 6c 6f 63 5b 69 6e 74 6d 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 6e 75 6c 72 73 28 69   ┆mlocÆintmÅ);          if nulrs(i┆
0x055d80…055da0            6d 72 73 29 20 74 68 65 6e 20 63 6c 72 72 73 28 61 6c 61 74 6b 5b 69 6e 74 6d 5d 2c 69 6e 74 74   ┆mrs) then clrrs(alatkÆintmÅ,intt┆
0x055da0…055dc0            29 3b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 6e 62 6f 72 64 5b 69 6e 74 74 5d 20 3d 20 6d 74 20   ┆);          if nbordÆinttÅ = mt ┆
0x055dc0…055de0            74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 69   ┆then          begin            i┆
0x055de0…055e00            6e 74 6c 3a 3d 69 6e 74 6c 2b 69 6e 74 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 69 6e 74 74 3a   ┆ntl:=intl+intd;            intt:┆
0x055e00…055e20            3d 78 74 6c 73 5b 69 6e 74 6c 5d 3b 0d 0a 20 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 20 69   ┆=xtlsÆintlÅ;          end else i┆
0x055e20…055e40            6e 74 74 3a 3d 61 74 74 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d   ┆ntt:=att;        end;      end; ┆
0x055e40…055e60            0a 65 6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20 64 65 6c 61 74 6b 28 61 3a 20 74 73 29   ┆ end;    procedure delatk(a: ts)┆
0x055e60…055e80            3b 09 28 2a 20 64 65 6c 65 74 65 20 61 74 74 61 63 6b 73 20 66 72 6f 6d 20 73 71 75 61 72 65 20   ┆; (* delete attacks from square ┆
0x055e80…055ea0            2a 29 0d 0a 76 61 72 0d 0a 20 20 69 6e 72 73 09 3a 20 72 73 3b 0d 0a 20 20 69 6d 72 73 09 3a 20   ┆*)  var    inrs : rs;    imrs : ┆
0x055ea0…055ec0            72 73 3b 0d 0a 20 20 69 6e 74 73 09 3a 20 74 73 3b 0d 0a 20 20 69 6e 74 6d 09 3a 20 74 6d 3b 0d   ┆rs;    ints : ts;    intm : tm; ┆
0x055ec0…055ee0            0a 62 65 67 69 6e 0d 0a 20 20 69 6e 72 73 3a 3d 61 74 6b 66 72 5b 61 5d 3b 0d 0a 20 20 6e 65 77   ┆ begin    inrs:=atkfrÆaÅ;    new┆
0x055ee0…055f00            72 73 28 61 74 6b 66 72 5b 61 5d 29 3b 0d 0a 20 20 69 6e 74 6d 3a 3d 78 74 70 6d 5b 6e 62 6f 72   ┆rs(atkfrÆaÅ);    intm:=xtpmÆnbor┆
0x055f00…055f20            64 5b 61 5d 5d 3b 0d 0a 20 20 77 68 69 6c 65 20 6e 78 74 74 73 28 69 6e 72 73 2c 69 6e 74 73 29   ┆dÆaÅÅ;    while nxtts(inrs,ints)┆
0x055f20…055f40            20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 63 6c 72 72 73 28 61 74 6b 74 6f 5b 69 6e   ┆ do    begin      clrrs(atktoÆin┆
0x055f40…055f60            74 73 5d 2c 61 29 3b 0d 0a 20 20 20 20 61 6e 64 72 73 28 69 6d 72 73 2c 61 74 6b 74 6f 5b 69 6e   ┆tsÅ,a);      andrs(imrs,atktoÆin┆
0x055f60…055f80            74 73 5d 2c 74 6d 6c 6f 63 5b 69 6e 74 6d 5d 29 3b 0d 0a 20 20 20 20 69 66 20 6e 75 6c 72 73 28   ┆tsÅ,tmlocÆintmÅ);      if nulrs(┆
0x055f80…055fa0            69 6d 72 73 29 20 74 68 65 6e 20 63 6c 72 72 73 28 61 6c 61 74 6b 5b 69 6e 74 6d 5d 2c 69 6e 74   ┆imrs) then clrrs(alatkÆintmÅ,int┆
0x055fa0…055fc0            73 29 3b 0d 0a 20 20 20 20 63 6c 72 72 73 28 74 70 6c 6f 63 5b 6e 62 6f 72 64 5b 61 5d 5d 2c 61   ┆s);      clrrs(tplocÆnbordÆaÅÅ,a┆
0x055fc0…055fe0            29 3b 0d 0a 20 20 20 20 63 6c 72 72 73 28 74 6d 6c 6f 63 5b 69 6e 74 6d 5d 2c 61 29 3b 0d 0a 20   ┆);      clrrs(tmlocÆintmÅ,a);   ┆
0x055fe0…056000            20 20 20 63 6c 72 72 73 28 61 6c 6c 6f 63 5b 6a 6e 74 6b 5d 2c 61 29 3b 0d 0a 20 20 20 20 73 65   ┆   clrrs(allocÆjntkÅ,a);      se┆
0x056000…056020 (21, 1, 1) 74 72 73 28 74 70 6c 6f 63 5b 6d 74 5d 2c 61 29 3b 0d 0a 20 20 20 20 6e 62 6f 72 64 5b 61 5d 3a   ┆trs(tplocÆmtÅ,a);      nbordÆaÅ:┆
0x056020…056040            3d 6d 74 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20   ┆=mt;    end;  end;    procedure ┆
0x056040…056060            70 72 70 61 74 6b 28 61 3a 20 74 73 29 3b 09 28 2a 70 72 6f 70 61 67 61 74 65 20 61 74 74 61 63   ┆prpatk(a: ts); (*propagate attac┆
0x056060…056080            6b 73 20 74 72 6f 75 67 68 20 73 71 75 61 72 65 20 2a 29 0d 0a 76 61 72 0d 0a 20 20 69 6e 72 73   ┆ks trough square *)  var    inrs┆
0x056080…0560a0            09 3a 20 72 73 3b 0d 0a 20 20 69 6e 74 73 09 3a 20 74 73 3b 0d 0a 20 20 69 6e 74 64 09 3a 20 74   ┆ : rs;    ints : ts;    intd : t┆
0x0560a0…0560c0            64 3b 0d 0a 20 20 69 6e 74 6d 09 3a 20 74 6d 3b 0d 0a 20 20 69 6e 74 6c 09 3a 20 74 6c 3b 0d 0a   ┆d;    intm : tm;    intl : tl;  ┆
0x0560c0…0560e0            20 20 69 6e 74 74 09 3a 20 74 74 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 69 6e 72 73 3a 3d 61 74 6b   ┆  intt : tt;  begin    inrs:=atk┆
0x0560e0…056100            74 6f 5b 61 5d 3b 0d 0a 20 20 77 68 69 6c 65 20 6e 78 74 74 73 28 69 6e 72 73 2c 69 6e 74 73 29   ┆toÆaÅ;    while nxtts(inrs,ints)┆
0x056100…056120            20 64 6f 0d 0a 20 20 20 20 69 66 20 78 73 70 62 5b 6e 62 6f 72 64 5b 69 6e 74 73 5d 5d 20 74 68   ┆ do      if xspbÆnbordÆintsÅÅ th┆
0x056120…056140            65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 6e 74 64 3a 3d 78 6c 6c 64 5b   ┆en      begin        intd:=xlldÆ┆
0x056140…056160            78 74 73 6c 5b 61 5d 2d 78 74 73 6c 5b 69 6e 74 73 5d 5d 3b 0d 0a 20 20 20 20 20 20 69 6e 74 6d   ┆xtslÆaÅ-xtslÆintsÅÅ;        intm┆
0x056160…056180            3a 3d 78 74 70 6d 5b 6e 62 6f 72 64 5b 69 6e 74 73 5d 5d 3b 0d 0a 20 20 20 20 20 20 69 6e 74 6c   ┆:=xtpmÆnbordÆintsÅÅ;        intl┆
0x056180…0561a0            3a 3d 78 74 73 6c 5b 61 5d 2b 69 6e 74 64 3b 0d 0a 20 20 20 20 20 20 69 6e 74 74 3a 3d 78 74 6c   ┆:=xtslÆaÅ+intd;        intt:=xtl┆
0x0561a0…0561c0            73 5b 69 6e 74 6c 5d 3b 0d 0a 20 20 20 20 20 20 77 68 69 6c 65 20 69 6e 74 74 20 3e 3d 30 20 64   ┆sÆintlÅ;        while intt >=0 d┆
0x0561c0…0561e0            6f 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 73 65 74 72 73 28 61 74   ┆o        begin          setrs(at┆
0x0561e0…056200            6b 66 72 5b 69 6e 74 73 5d 2c 69 6e 74 74 29 3b 0d 0a 20 20 20 20 20 20 20 20 73 65 74 72 73 28   ┆kfrÆintsÅ,intt);          setrs(┆
0x056200…056220            61 74 6b 74 6f 5b 69 6e 74 74 5d 2c 69 6e 74 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 73 65 74 72   ┆atktoÆinttÅ,ints);          setr┆
0x056220…056240            73 28 61 6c 61 74 6b 5b 69 6e 74 6d 5d 2c 69 6e 74 74 29 3b 0d 0a 20 20 20 20 20 20 20 20 69 66   ┆s(alatkÆintmÅ,intt);          if┆
0x056240…056260            20 6e 62 6f 72 64 5b 69 6e 74 74 5d 20 3d 20 6d 74 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20   ┆ nbordÆinttÅ = mt then          ┆
0x056260…056280            62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 69 6e 74 6c 3a 3d 69 6e 74 6c 2b 69 6e 74 64   ┆begin            intl:=intl+intd┆
0x056280…0562a0            3b 0d 0a 20 20 20 20 20 20 20 20 20 20 69 6e 74 74 3a 3d 78 74 6c 73 5b 69 6e 74 6c 5d 3b 0d 0a   ┆;            intt:=xtlsÆintlÅ;  ┆
0x0562a0…0562c0            20 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 20 69 6e 74 74 3a 3d 2d 31 3b 0d 0a 20 20 20 20   ┆        end else intt:=-1;      ┆
0x0562c0…0562e0            20 20 65 6e 64 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64   ┆  end;      end;  end;    proced┆
0x0562e0…056300            75 72 65 20 67 61 69 6e 69 74 28 61 3a 20 72 6d 29 3b 09 28 2a 20 75 6e 70 72 6f 63 65 73 73 20   ┆ure gainit(a: rm); (* unprocess ┆
0x056300…056320            63 61 70 74 75 72 65 20 6d 6f 76 65 20 2a 29 0d 0a 62 65 67 69 6e 0d 0a 20 20 77 69 74 68 20 61   ┆capture move *)  begin    with a┆
0x056320…056340            20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 61 64 64 6c 6f 63 28 72 6d 66 72 2c 6e 62   ┆ do    begin      addloc(rmfr,nb┆
0x056340…056360            6f 72 64 5b 72 6d 74 6f 5d 29 3b 0d 0a 20 20 20 20 61 64 64 61 74 6b 28 72 6d 66 72 29 3b 0d 0a   ┆ordÆrmtoÅ);      addatk(rmfr);  ┆
0x056360…056380            20 20 20 20 63 75 74 61 74 6b 28 72 6d 66 72 29 3b 0d 0a 20 20 20 20 64 65 6c 61 74 6b 28 72 6d   ┆    cutatk(rmfr);      delatk(rm┆
0x056380…0563a0            74 6f 29 3b 0d 0a 20 20 20 20 61 64 64 6c 6f 63 28 72 6d 74 6f 2c 72 6d 63 70 29 3b 0d 0a 20 20   ┆to);      addloc(rmto,rmcp);    ┆
0x0563a0…0563c0            20 20 61 64 64 61 74 6b 28 72 6d 74 6f 29 3b 0d 0a 20 20 20 20 6d 62 74 70 61 63 28 6e 62 6f 72   ┆  addatk(rmto);      mbtpac(nbor┆
0x0563c0…0563e0            64 5b 72 6d 74 6f 5d 29 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65   ┆dÆrmtoÅ);    end;  end;    proce┆
0x0563e0…056400            64 75 72 65 20 6c 6f 73 65 69 74 28 61 3a 20 72 6d 29 3b 09 28 2a 20 70 72 6f 63 65 73 73 20 63   ┆dure loseit(a: rm); (* process c┆
0x056400…056420 (21, 1, 2) 61 70 74 75 72 65 20 6d 6f 76 65 20 2a 29 0d 0a 62 65 67 69 6e 0d 0a 20 20 77 69 74 68 20 61 20   ┆apture move *)  begin    with a ┆
0x056420…056440            64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 6d 62 63 61 70 74 28 6e 62 6f 72 64 5b 72 6d   ┆do    begin      mbcapt(nbordÆrm┆
0x056440…056460            74 6f 5d 29 3b 0d 0a 20 20 20 20 64 65 6c 61 74 6b 28 72 6d 74 6f 29 3b 0d 0a 20 20 20 20 61 64   ┆toÅ);      delatk(rmto);      ad┆
0x056460…056480            64 6c 6f 63 28 72 6d 74 6f 2c 6e 62 6f 72 64 5b 72 6d 66 72 5d 29 3b 0d 0a 20 20 20 20 64 65 6c   ┆dloc(rmto,nbordÆrmfrÅ);      del┆
0x056480…0564a0            61 74 6b 28 72 6d 66 72 29 3b 0d 0a 20 20 20 20 70 72 70 61 74 6b 28 72 6d 66 72 29 3b 0d 0a 20   ┆atk(rmfr);      prpatk(rmfr);   ┆
0x0564a0…0564c0            20 20 20 61 64 64 61 74 6b 28 72 6d 74 6f 29 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 65 6e 64 3b 0d 0a   ┆   addatk(rmto);    end;  end;  ┆
0x0564c0…0564e0            0d 0a 70 72 6f 63 65 64 75 72 65 20 6d 6f 76 65 69 74 28 61 3a 20 72 6d 29 3b 09 28 2a 20 70 72   ┆  procedure moveit(a: rm); (* pr┆
0x0564e0…056500            6f 63 65 73 73 20 6f 72 64 69 6e 61 72 79 20 6d 6f 76 65 20 2a 29 0d 0a 62 65 67 69 6e 0d 0a 20   ┆ocess ordinary move *)  begin   ┆
0x056500…056520            20 77 69 74 68 20 61 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 61 64 64 6c 6f 63 28   ┆ with a do    begin      addloc(┆
0x056520…056540            72 6d 74 6f 2c 6e 62 6f 72 64 5b 72 6d 66 72 5d 29 3b 0d 0a 20 20 20 20 63 75 74 61 74 6b 28 72   ┆rmto,nbordÆrmfrÅ);      cutatk(r┆
0x056540…056560            6d 74 6f 29 3b 0d 0a 20 20 20 20 64 65 6c 61 74 6b 28 72 6d 66 72 29 3b 0d 0a 20 20 20 20 70 72   ┆mto);      delatk(rmfr);      pr┆
0x056560…056580            70 61 74 6b 28 72 6d 66 72 29 3b 0d 0a 20 20 20 20 61 64 64 61 74 6b 28 72 6d 74 6f 29 3b 0d 0a   ┆patk(rmfr);      addatk(rmto);  ┆
0x056580…0565a0            20 20 65 6e 64 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20 72 74 72 6b 69 74   ┆  end;  end;    procedure rtrkit┆
0x0565a0…0565c0            28 61 3a 20 72 6d 29 3b 09 28 2a 20 75 6e 70 72 6f 63 65 73 73 20 6f 72 64 69 6e 61 72 79 20 6d   ┆(a: rm); (* unprocess ordinary m┆
0x0565c0…0565e0            6f 76 65 20 2a 29 0d 0a 62 65 67 69 6e 0d 0a 20 20 77 69 74 68 20 61 20 64 6f 0d 0a 20 20 62 65   ┆ove *)  begin    with a do    be┆
0x0565e0…056600            67 69 6e 0d 0a 20 20 20 20 61 64 64 6c 6f 63 28 72 6d 66 72 2c 6e 62 6f 72 64 5b 72 6d 74 6f 5d   ┆gin      addloc(rmfr,nbordÆrmtoÅ┆
0x056600…056620            29 3b 0d 0a 20 20 20 20 63 75 74 61 74 6b 28 72 6d 66 72 29 3b 0d 0a 20 20 20 20 64 65 6c 61 74   ┆);      cutatk(rmfr);      delat┆
0x056620…056640            6b 28 72 6d 74 6f 29 3b 0d 0a 20 20 20 20 70 72 70 61 74 6b 28 72 6d 74 6f 29 3b 0d 0a 20 20 20   ┆k(rmto);      prpatk(rmto);     ┆
0x056640…056660            20 61 64 64 61 74 6b 28 72 6d 66 72 29 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a   ┆ addatk(rmfr);    end;  end;    ┆
0x056660…056680            70 72 6f 63 65 64 75 72 65 20 70 61 77 6e 69 74 28 61 3a 20 72 6d 29 3b 09 28 2a 20 75 6e 70 72   ┆procedure pawnit(a: rm); (* unpr┆
0x056680…0566a0            6f 6d 6f 74 65 20 61 20 70 61 77 6e 20 2a 29 0d 0a 62 65 67 69 6e 0d 0a 20 20 77 69 74 68 20 61   ┆omote a pawn *)  begin    with a┆
0x0566a0…0566c0            20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 6d 62 6d 6f 72 70 28 6e 62 6f 72 64 5b 72   ┆ do    begin      mbmorp(nbordÆr┆
0x0566c0…0566e0            6d 74 6f 5d 29 3b 0d 0a 20 20 20 20 6e 62 6f 72 64 5b 72 6d 74 6f 5d 3a 3d 78 74 75 6d 70 5b 65   ┆mtoÅ);      nbordÆrmtoÅ:=xtumpÆe┆
0x0566e0…056700            70 2c 78 74 70 6d 5b 6e 62 6f 72 64 5b 72 6d 74 6f 5d 5d 5d 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 65   ┆p,xtpmÆnbordÆrmtoÅÅÅ;    end;  e┆
0x056700…056720            6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20 70 72 6f 61 63 73 28 61 3a 20 72 6d 29 3b 28   ┆nd;    procedure proacs(a: rm);(┆
0x056720…056740            2a 20 70 72 6f 63 65 73 73 20 6d 6f 76 65 72 20 61 66 66 65 63 74 69 6e 67 20 63 61 73 74 6c 65   ┆* process mover affecting castle┆
0x056740…056760            20 73 74 61 74 75 73 20 2a 29 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 70 72 6f 61 63 61 28 61   ┆ status *)    procedure proaca(a┆
0x056760…056780            3a 20 74 73 29 3b 09 28 2a 20 70 72 6f 63 65 73 73 20 63 61 73 74 6c 65 20 73 74 61 74 75 73 20   ┆: ts); (* process castle status ┆
0x056780…0567a0            63 68 61 6e 67 65 73 20 2a 29 0d 0a 20 20 76 61 72 0d 0a 20 20 20 20 69 6e 72 73 09 3a 20 72 73   ┆changes *)    var      inrs : rs┆
0x0567a0…0567c0            3b 0d 0a 20 20 20 20 69 6d 72 73 09 3a 20 72 73 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20   ┆;      imrs : rs;    begin      ┆
0x0567c0…0567e0            63 6c 72 72 73 28 63 73 74 61 74 5b 6a 6e 74 6b 5d 2c 61 29 3b 0d 0a 20 20 20 20 61 6e 64 72 73   ┆clrrs(cstatÆjntkÅ,a);      andrs┆
0x0567e0…056800            28 69 6e 72 73 2c 63 73 74 61 74 5b 6a 6e 74 6b 5d 2c 78 72 72 73 5b 78 74 73 72 5b 61 5d 5d 29   ┆(inrs,cstatÆjntkÅ,xrrsÆxtsrÆaÅÅ)┆
0x056800…056820 (21, 1, 3) 3b 0d 0a 20 20 20 20 69 66 20 6e 6f 74 20 69 6e 72 73 74 62 28 69 6e 72 73 2c 78 74 72 66 73 5b   ┆;      if not inrstb(inrs,xtrfsÆ┆
0x056820…056840            78 74 73 72 5b 61 5d 2c 66 35 5d 29 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 61 6e 64 72 73 28 63   ┆xtsrÆaÅ,f5Å) then        andrs(c┆
0x056840…056860            73 74 61 74 5b 6a 6e 74 6b 5d 2c 63 73 74 61 74 5b 6a 6e 74 6b 5d 2c 78 6e 72 73 5b 78 74 73 72   ┆statÆjntkÅ,cstatÆjntkÅ,xnrsÆxtsr┆
0x056860…056880            5b 61 5d 5d 29 3b 0d 0a 20 20 20 20 61 6e 64 72 73 28 69 6d 72 73 2c 69 6e 72 73 2c 78 72 66 73   ┆ÆaÅÅ);      andrs(imrs,inrs,xrfs┆
0x056880…0568a0            5b 66 38 5d 29 3b 0d 0a 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 69 6e 72 73 2c 78 72 66 73   ┆Æf8Å);      andrs(inrs,inrs,xrfs┆
0x0568a0…0568c0            5b 66 31 5d 29 3b 0d 0a 20 20 20 20 69 6f 72 72 73 28 69 6e 72 73 2c 69 6e 72 73 2c 69 6d 72 73   ┆Æf1Å);      iorrs(inrs,inrs,imrs┆
0x0568c0…0568e0            29 3b 0d 0a 20 20 20 20 69 66 20 6e 75 6c 72 73 28 69 6e 72 73 29 20 74 68 65 6e 20 61 6e 64 72   ┆);      if nulrs(inrs) then andr┆
0x0568e0…056900            73 28 63 73 74 61 74 5b 6a 6e 74 6b 5d 2c 63 73 74 61 74 5b 6a 6e 74 6b 5d 2c 78 6e 72 73 5b 78   ┆s(cstatÆjntkÅ,cstatÆjntkÅ,xnrsÆx┆
0x056900…056920            74 73 72 5b 61 5d 5d 29 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 77 69 74 68   ┆tsrÆaÅÅ);    end;  begin    with┆
0x056920…056940            20 61 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 69 66 20 69 6e 72 73 74 62 28 63 73   ┆ a do    begin      if inrstb(cs┆
0x056940…056960            74 61 74 5b 6a 6e 74 6b 5d 2c 72 6d 66 72 29 20 74 68 65 6e 20 70 72 6f 61 63 61 28 72 6d 66 72   ┆tatÆjntkÅ,rmfr) then proaca(rmfr┆
0x056960…056980            29 3b 0d 0a 20 20 20 20 69 66 20 69 6e 72 73 74 62 28 63 73 74 61 74 5b 6a 6e 74 6b 5d 2c 72 6d   ┆);      if inrstb(cstatÆjntkÅ,rm┆
0x056980…0569a0            74 6f 29 20 74 68 65 6e 20 70 72 6f 61 63 61 28 72 6d 74 6f 29 3b 0d 0a 20 20 65 6e 64 3b 0d 0a   ┆to) then proaca(rmto);    end;  ┆
0x0569a0…0569c0            65 6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20 70 72 6f 6d 6f 74 28 61 3a 20 72 6d 29 3b   ┆end;    procedure promot(a: rm);┆
0x0569c0…0569e0            09 28 2a 20 70 72 6f 63 65 73 73 20 70 72 6f 6d 6f 74 69 6f 6e 20 2a 29 0d 0a 62 65 67 69 6e 0d   ┆ (* process promotion *)  begin ┆
0x0569e0…056a00            0a 20 20 77 69 74 68 20 61 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 6d 62 70 72 6f   ┆   with a do    begin      mbpro┆
0x056a00…056a20            6d 28 78 74 67 6d 70 5b 72 6d 70 70 2c 6a 6e 74 6d 5d 29 3b 0d 0a 20 20 20 20 6e 62 6f 72 64 5b   ┆m(xtgmpÆrmpp,jntmÅ);      nbordÆ┆
0x056a20…056a40            72 6d 66 72 5d 3a 3d 78 74 67 6d 70 5b 72 6d 70 70 2c 6a 6e 74 6d 5d 3b 0d 0a 20 20 65 6e 64 3b   ┆rmfrÅ:=xtgmpÆrmpp,jntmÅ;    end;┆
0x056a40…056a60            0d 0a 65 6e 64 3b 0d 0a 0d 0a 28 2a 20 63 68 65 73 73 2e 70 30 35 20 2a 29 0d 0a 70 72 6f 63 65   ┆  end;    (* chess.p05 *)  proce┆
0x056a60…056a80            64 75 72 65 20 67 65 6e 6f 6e 65 28 61 3a 20 74 74 3b 20 62 3a 20 74 73 29 3b 09 28 2a 20 73 74   ┆dure genone(a: tt; b: ts); (* st┆
0x056a80…056aa0            61 63 6b 20 6f 6e 65 20 67 65 6e 65 72 61 74 65 64 20 6d 6f 76 65 20 2a 29 0d 0a 76 61 72 0d 0a   ┆ack one generated move *)  var  ┆
0x056aa0…056ac0            20 20 69 6e 72 73 09 3a 20 72 73 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 77 69 74 68 20 6d 6f 76 65   ┆  inrs : rs;  begin    with move┆
0x056ac0…056ae0            73 5b 6a 6e 74 77 5d 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 72 6d 66 72 3a 3d 61   ┆sÆjntwÅ do    begin      rmfr:=a┆
0x056ae0…056b00            3b 0d 0a 20 20 20 20 72 6d 74 6f 3a 3d 62 3b 0d 0a 20 20 20 20 72 6d 63 70 3a 3d 6e 62 6f 72 64   ┆;      rmto:=b;      rmcp:=nbord┆
0x056b00…056b20            5b 62 5d 3b 0d 0a 20 20 20 20 72 6d 63 61 3a 3d 28 6e 62 6f 72 64 5b 62 5d 20 3c 3e 20 6d 74 29   ┆ÆbÅ;      rmca:=(nbordÆbÅ <> mt)┆
0x056b20…056b40            3b 0d 0a 20 20 20 20 69 6f 72 72 73 28 69 6e 72 73 2c 78 72 73 73 5b 61 5d 2c 78 72 73 73 5b 62   ┆;      iorrs(inrs,xrssÆaÅ,xrssÆb┆
0x056b40…056b60            5d 29 3b 0d 0a 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 69 6e 72 73 2c 63 73 74 61 74 5b 6a   ┆Å);      andrs(inrs,inrs,cstatÆj┆
0x056b60…056b80            6e 74 6b 5d 29 3b 0d 0a 20 20 20 20 72 6d 61 63 3a 3d 6e 6f 74 20 6e 75 6c 72 73 28 69 6e 72 73   ┆ntkÅ);      rmac:=not nulrs(inrs┆
0x056b80…056ba0            29 3b 0d 0a 20 20 20 20 72 6d 63 68 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 72 6d 6d 74 3a 3d   ┆);      rmch:=false;      rmmt:=┆
0x056ba0…056bc0            66 61 6c 73 65 3b 0d 0a 20 20 20 20 72 6d 69 6c 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 72 6d   ┆false;      rmil:=false;      rm┆
0x056bc0…056be0            73 75 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 72 6d 70 72 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20   ┆su:=false;      rmpr:=false;    ┆
0x056be0…056c00            20 20 72 6d 6f 6f 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 72 6d 65 70 3a 3d 66 61 6c 73 65 3b   ┆  rmoo:=false;      rmep:=false;┆
0x056c00…056c20 (21, 1, 4) 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 76 61 6c 75 75 5b 6a 6e 74 77 5d 3a 3d 30 3b 0d 0a 20 20 69   ┆    end;    valuuÆjntwÅ:=0;    i┆
0x056c20…056c40            66 20 6a 6e 74 77 20 3c 20 7a 77 20 74 68 65 6e 20 6a 6e 74 77 3a 3d 6a 6e 74 77 2b 31 3b 0d 0a   ┆f jntw < zw then jntw:=jntw+1;  ┆
0x056c40…056c60            20 20 69 66 20 6a 6e 74 77 20 3d 20 7a 77 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 27 2a 2a 2a   ┆  if jntw = zw then writeln('***┆
0x056c60…056c80            20 4d 4f 56 45 20 4c 49 4d 49 54 53 20 2a 2a 2a 27 29 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70 72 6f   ┆ MOVE LIMITS ***');  end;    pro┆
0x056c80…056ca0            63 65 64 75 72 65 20 64 6e 64 61 74 65 28 61 3a 20 72 6d 29 3b 20 28 2a 20 64 6f 77 6e 64 61 74   ┆cedure dndate(a: rm); (* downdat┆
0x056ca0…056cc0            65 20 64 61 74 61 20 62 61 73 65 20 74 6f 20 62 61 63 6b 20 6f 75 74 20 61 20 6d 6f 76 65 20 2a   ┆e data base to back out a move *┆
0x056cc0…056ce0            29 0d 0a 76 61 72 0d 0a 20 20 69 6e 74 73 09 3a 20 74 73 3b 0d 0a 20 20 69 6e 74 72 09 3a 20 74   ┆)  var    ints : ts;    intr : t┆
0x056ce0…056d00            72 3b 0d 0a 20 20 69 6e 74 66 09 3a 20 74 66 3b 0d 0a 20 20 72 6b 66 72 09 3a 20 74 73 3b 0d 0a   ┆r;    intf : tf;    rkfr : ts;  ┆
0x056d00…056d20            20 20 72 6b 74 6f 09 3a 20 74 73 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 77 69 74 68 20 61 20 64 6f   ┆  rkto : ts;  begin    with a do┆
0x056d20…056d40            0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 63 61 73 65 20 6f 72 64 28 72 6d 63 61 29 2a 34 20   ┆    begin      case ord(rmca)*4 ┆
0x056d40…056d60            2b 20 6f 72 64 28 72 6d 61 63 29 2a 32 20 2b 20 6f 72 64 28 72 6d 70 72 29 20 6f 66 0d 0a 20 20   ┆+ ord(rmac)*2 + ord(rmpr) of    ┆
0x056d60…056d80            20 20 20 20 30 3a 20 72 74 72 6b 69 74 28 61 29 3b 09 28 2a 20 6f 72 64 69 6e 61 72 79 20 6d 6f   ┆    0: rtrkit(a); (* ordinary mo┆
0x056d80…056da0            76 65 20 2a 29 0d 0a 20 20 20 20 20 20 31 3a 20 62 65 67 69 6e 09 09 28 2a 20 70 61 77 6e 20 6d   ┆ve *)        1: begin  (* pawn m┆
0x056da0…056dc0            6f 76 65 20 61 6e 64 20 70 72 6f 6d 6f 74 65 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 70   ┆ove and promote *)             p┆
0x056dc0…056de0            61 77 6e 69 74 28 61 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 72 74 72 6b 69 74 28 61 29 3b   ┆awnit(a);             rtrkit(a);┆
0x056de0…056e00            0d 0a 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 32 3a 20 69 66 20 72 6d 6f   ┆           end;        2: if rmo┆
0x056e00…056e20            6f 20 74 68 65 6e 09 28 2a 20 6d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 20 61 63 73 20 2a 29 0d 0a   ┆o then (* miscellaneous acs *)  ┆
0x056e20…056e40            20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20 72 6d   ┆         begin             if rm┆
0x056e40…056e60            71 73 20 74 68 65 6e 20 69 6e 74 66 3a 3d 66 31 20 65 6c 73 65 20 69 6e 74 66 3a 3d 66 38 3b 0d   ┆qs then intf:=f1 else intf:=f8; ┆
0x056e60…056e80            0a 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 72 3a 3d 78 74 73 72 5b 72 6d 66 72 5d 3b 0d 0a 20   ┆            intr:=xtsrÆrmfrÅ;   ┆
0x056e80…056ea0            20 20 20 20 20 20 20 20 20 20 72 6b 66 72 3a 3d 78 74 72 66 73 5b 69 6e 74 72 2c 69 6e 74 66 5d   ┆          rkfr:=xtrfsÆintr,intfÅ┆
0x056ea0…056ec0            3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 72 6b 74 6f 3a 3d 28 72 6d 66 72 2b 72 6d 74 6f 29 20   ┆;             rkto:=(rmfr+rmto) ┆
0x056ec0…056ee0            64 69 76 20 32 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 63 61 73 74 6c 65 5b 6a 6e 74 6d 5d 3a   ┆div 2;             castleÆjntmÅ:┆
0x056ee0…056f00            3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 61 64 64 6c 6f 63 28 72 6b 66 72 2c   ┆=false;             addloc(rkfr,┆
0x056f00…056f20            6e 62 6f 72 64 5b 72 6b 74 6f 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 64 65 6c 61 74 6b   ┆nbordÆrktoÅ);             delatk┆
0x056f20…056f40            28 72 6b 74 6f 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 70 72 70 61 74 6b 28 72 6b 74 6f 29   ┆(rkto);             prpatk(rkto)┆
0x056f40…056f60            3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 61 64 64 61 74 6b 28 72 6b 66 72 29 3b 0d 0a 20 20 20   ┆;             addatk(rkfr);     ┆
0x056f60…056f80            20 20 20 20 20 20 20 20 72 74 72 6b 69 74 28 61 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 65 6e 64   ┆        rtrkit(a);           end┆
0x056f80…056fa0            20 65 6c 73 65 20 72 74 72 6b 69 74 28 61 29 3b 0d 0a 20 20 20 20 20 20 33 3a 20 3b 09 09 28 2a   ┆ else rtrkit(a);        3: ;  (*┆
0x056fa0…056fc0            20 6e 75 6c 6c 20 6d 6f 76 65 20 2a 29 0d 0a 20 20 20 20 20 20 34 3a 20 69 66 20 72 6d 65 70 20   ┆ null move *)        4: if rmep ┆
0x056fc0…056fe0            74 68 65 6e 09 28 2a 20 63 61 70 74 75 72 65 20 65 6e 70 61 73 73 61 6e 74 20 2a 29 0d 0a 20 20   ┆then (* capture enpassant *)    ┆
0x056fe0…057000            20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 73 3a 3d 78   ┆       begin             ints:=x┆
0x057000…057020 (21, 1, 5) 74 72 66 73 5b 78 74 73 72 5b 72 6d 66 72 5d 2c 78 74 73 66 5b 72 6d 74 6f 5d 5d 3b 0d 0a 20 20   ┆trfsÆxtsrÆrmfrÅ,xtsfÆrmtoÅÅ;    ┆
0x057020…057040            20 20 20 20 20 20 20 20 20 61 64 64 6c 6f 63 28 69 6e 74 73 2c 72 6d 63 70 29 3b 0d 0a 20 20 20   ┆         addloc(ints,rmcp);     ┆
0x057040…057060            20 20 20 20 20 20 20 20 63 75 74 61 74 6b 28 69 6e 74 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 20   ┆        cutatk(ints);           ┆
0x057060…057080            20 20 61 64 64 61 74 6b 28 69 6e 74 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 72 74 72 6b   ┆  addatk(ints);             rtrk┆
0x057080…0570a0            69 74 28 61 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 6d 62 74 70 61 63 28 6e 62 6f 72 64 5b   ┆it(a);             mbtpac(nbordÆ┆
0x0570a0…0570c0            69 6e 74 73 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 20 67 61 69 6e 69   ┆intsÅ);           end else gaini┆
0x0570c0…0570e0            74 28 61 29 3b 0d 0a 20 20 20 20 20 20 35 3a 20 62 65 67 69 6e 09 09 28 2a 20 63 61 70 74 75 72   ┆t(a);        5: begin  (* captur┆
0x0570e0…057100            65 20 61 6e 64 20 70 72 6f 6d 6f 74 65 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 70 61 77   ┆e and promote *)             paw┆
0x057100…057120            6e 69 74 28 61 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 67 61 69 6e 69 74 28 61 29 3b 0d 0a   ┆nit(a);             gainit(a);  ┆
0x057120…057140            20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 36 3a 20 67 61 69 6e 69 74 28 61   ┆         end;        6: gainit(a┆
0x057140…057160            29 3b 09 28 2a 20 63 61 70 74 75 72 65 20 61 63 73 20 2a 29 0d 0a 20 20 20 20 20 20 37 3a 20 62   ┆); (* capture acs *)        7: b┆
0x057160…057180            65 67 69 6e 09 09 28 2a 20 63 61 70 74 75 72 65 20 72 6f 6f 6b 20 61 63 73 2c 20 70 72 6f 6d 6f   ┆egin  (* capture rook acs, promo┆
0x057180…0571a0            74 65 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 70 61 77 6e 69 74 28 61 29 3b 0d 0a 20 20   ┆te *)             pawnit(a);    ┆
0x0571a0…0571c0            20 20 20 20 20 20 20 20 20 67 61 69 6e 69 74 28 61 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 65 6e   ┆         gainit(a);           en┆
0x0571c0…0571e0            64 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 6a 6e 74 77 3a 3d 6c 69 6e 64 78 5b 6a 6e   ┆d;      end;      jntw:=lindxÆjn┆
0x0571e0…057200            74 6b 5d 3b 0d 0a 20 20 20 20 6a 6e 74 6b 3a 3d 6a 6e 74 6b 2d 31 3b 0d 0a 20 20 20 20 6a 6e 74   ┆tkÅ;      jntk:=jntk-1;      jnt┆
0x057200…057220            6d 3a 3d 6f 74 68 65 72 5b 6a 6e 74 6d 5d 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 65 6e 64 3b 09 28 2a   ┆m:=otherÆjntmÅ;    end;  end; (*┆
0x057220…057240            20 64 6e 64 61 74 65 20 2a 29 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20 63 72 65 61 74 65 3b 09   ┆ dndate *)    procedure create; ┆
0x057240…057260            09 28 2a 20 63 72 65 61 74 65 20 67 6c 6f 62 61 6c 20 64 61 74 61 20 62 61 73 65 20 2a 29 0d 0a   ┆ (* create global data base *)  ┆
0x057260…057280            76 61 72 0d 0a 20 20 69 6e 72 73 09 3a 20 72 73 3b 0d 0a 20 20 69 6e 74 6d 09 3a 20 74 6d 3b 0d   ┆var    inrs : rs;    intm : tm; ┆
0x057280…0572a0            0a 20 20 69 6e 74 70 09 3a 20 74 70 3b 0d 0a 20 20 69 6e 74 71 09 3a 20 74 71 3b 0d 0a 20 20 69   ┆   intp : tp;    intq : tq;    i┆
0x0572a0…0572c0            6e 74 73 09 3a 20 74 73 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 77 69 74 68 20 62 6f 61 72 64 20 64   ┆nts : ts;  begin    with board d┆
0x0572c0…0572e0            6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 6a 6e 74 77 3a 3d 61 77 2b 31 3b 0d 0a 20 20 20   ┆o    begin      jntw:=aw+1;     ┆
0x0572e0…057300            20 6a 6e 74 6b 3a 3d 61 6b 3b 0d 0a 20 20 20 20 6a 6e 74 6d 3a 3d 72 62 74 6d 3b 0d 0a 20 20 20   ┆ jntk:=ak;      jntm:=rbtm;     ┆
0x057300…057320            20 6e 6f 64 65 73 3a 3d 30 3b 0d 0a 20 20 20 20 6c 69 6e 64 78 5b 6a 6e 74 6b 5d 3a 3d 6a 6e 74   ┆ nodes:=0;      lindxÆjntkÅ:=jnt┆
0x057320…057340            77 3b 0d 0a 20 20 20 20 73 72 63 68 6d 5b 6a 6e 74 6b 5d 3a 3d 68 30 3b 0d 0a 20 20 20 20 66 6f   ┆w;      srchmÆjntkÅ:=h0;      fo┆
0x057340…057360            72 20 69 6e 74 73 3a 3d 20 61 73 20 74 6f 20 7a 73 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d   ┆r ints:= as to zs do      begin ┆
0x057360…057380            0a 20 20 20 20 20 20 6e 65 77 72 73 28 61 74 6b 66 72 5b 69 6e 74 73 5d 29 3b 0d 0a 20 20 20 20   ┆       newrs(atkfrÆintsÅ);      ┆
0x057380…0573a0            20 20 6e 65 77 72 73 28 61 74 6b 74 6f 5b 69 6e 74 73 5d 29 3b 0d 0a 20 20 20 20 20 20 6e 62 6f   ┆  newrs(atktoÆintsÅ);        nbo┆
0x0573a0…0573c0            72 64 5b 69 6e 74 73 5d 3a 3d 6d 74 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 6e 65 77   ┆rdÆintsÅ:=mt;      end;      new┆
0x0573c0…0573e0            72 73 28 61 6c 6c 6f 63 5b 6a 6e 74 6b 5d 29 3b 0d 0a 20 20 20 20 66 6f 72 20 69 6e 74 70 3a 3d   ┆rs(allocÆjntkÅ);      for intp:=┆
0x0573e0…057400            6c 70 20 74 6f 20 6d 74 20 64 6f 20 6e 65 77 72 73 28 74 70 6c 6f 63 5b 69 6e 74 70 5d 29 3b 0d   ┆lp to mt do newrs(tplocÆintpÅ); ┆
0x057400…057420 (21, 1, 6) 0a 20 20 20 20 66 6f 72 20 69 6e 74 6d 3a 3d 6c 69 74 65 20 74 6f 20 6e 6f 6e 65 20 64 6f 0d 0a   ┆     for intm:=lite to none do  ┆
0x057420…057440            20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 6e 65 77 72 73 28 74 6d 6c 6f 63 5b 69 6e 74   ┆    begin        newrs(tmlocÆint┆
0x057440…057460            6d 5d 29 3b 0d 0a 20 20 20 20 20 20 6e 65 77 72 73 28 61 6c 61 74 6b 5b 69 6e 74 6d 5d 29 3b 0d   ┆mÅ);        newrs(alatkÆintmÅ); ┆
0x057460…057480            0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 6d 62 74 6f 74 3a 3d 30 3b 0d 0a 20 20 20 20 6d 62   ┆     end;      mbtot:=0;      mb┆
0x057480…0574a0            70 77 6e 5b 6c 69 74 65 5d 3a 3d 30 3b 0d 0a 20 20 20 20 6d 62 70 77 6e 5b 64 61 72 6b 5d 3a 3d   ┆pwnÆliteÅ:=0;      mbpwnÆdarkÅ:=┆
0x0574a0…0574c0            30 3b 0d 0a 20 20 20 20 6d 62 6c 74 65 3a 3d 30 3b 0d 0a 20 20 20 20 6d 61 78 70 73 3a 3d 30 3b   ┆0;      mblte:=0;      maxps:=0;┆
0x0574c0…0574e0            0d 0a 20 20 20 20 66 6f 72 20 69 6e 74 73 3a 3d 61 73 20 74 6f 20 7a 73 20 64 6f 0d 0a 20 20 20   ┆      for ints:=as to zs do     ┆
0x0574e0…057500            20 20 20 69 66 20 72 62 69 73 5b 69 6e 74 73 5d 20 3c 3e 20 6d 74 20 74 68 65 6e 0d 0a 20 20 20   ┆   if rbisÆintsÅ <> mt then     ┆
0x057500…057520            20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 61 64 64 6c 6f 63 28 69 6e 74 73 2c 72 62   ┆   begin          addloc(ints,rb┆
0x057520…057540            69 73 5b 69 6e 74 73 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 6d 62 74 70 61 63 28 72 62 69 73 5b   ┆isÆintsÅ);          mbtpac(rbisÆ┆
0x057540…057560            69 6e 74 73 5d 29 3b 0d 0a 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 20 73 65 74 72 73 28 74 70   ┆intsÅ);        end else setrs(tp┆
0x057560…057580            6c 6f 63 5b 6d 74 5d 2c 69 6e 74 73 29 3b 0d 0a 20 20 20 20 6d 62 65 76 61 6c 3b 0d 0a 20 20 20   ┆locÆmtÅ,ints);      mbeval;     ┆
0x057580…0575a0            20 69 6e 72 73 3a 3d 61 6c 6c 6f 63 5b 6a 6e 74 6b 5d 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 6e   ┆ inrs:=allocÆjntkÅ;      while n┆
0x0575a0…0575c0            78 74 74 73 28 69 6e 72 73 2c 69 6e 74 73 29 20 64 6f 20 61 64 64 61 74 6b 28 69 6e 74 73 29 3b   ┆xtts(inrs,ints) do addatk(ints);┆
0x0575c0…0575e0            0d 0a 20 20 20 20 6e 65 77 72 73 28 63 73 74 61 74 5b 6a 6e 74 6b 5d 29 3b 0d 0a 20 20 20 20 66   ┆      newrs(cstatÆjntkÅ);      f┆
0x0575e0…057600            6f 72 20 69 6e 74 71 3a 3d 6c 73 20 74 6f 20 64 6c 20 64 6f 0d 0a 20 20 20 20 20 20 69 66 20 69   ┆or intq:=ls to dl do        if i┆
0x057600…057620            6e 74 71 20 69 6e 20 72 62 73 71 20 74 68 65 6e 20 69 6f 72 72 73 28 63 73 74 61 74 5b 6a 6e 74   ┆ntq in rbsq then iorrs(cstatÆjnt┆
0x057620…057640            6b 5d 2c 63 73 74 61 74 5b 6a 6e 74 6b 5d 2c 78 73 71 73 5b 69 6e 74 71 5d 29 3b 0d 0a 20 20 20   ┆kÅ,cstatÆjntkÅ,xsqsÆintqÅ);     ┆
0x057640…057660            20 6e 65 77 72 73 28 65 6e 70 61 73 5b 6a 6e 74 6b 5d 29 3b 0d 0a 20 20 20 20 69 66 20 72 62 74   ┆ newrs(enpasÆjntkÅ);      if rbt┆
0x057660…057680            73 20 3e 3d 20 30 20 74 68 65 6e 20 73 65 74 72 73 28 65 6e 70 61 73 5b 6a 6e 74 6b 5d 2c 72 62   ┆s >= 0 then setrs(enpasÆjntkÅ,rb┆
0x057680…0576a0            74 73 29 3b 0d 0a 20 20 20 20 67 65 6e 70 6e 5b 6a 6e 74 6b 5d 3a 3d 74 70 6c 6f 63 5b 78 74 75   ┆ts);      genpnÆjntkÅ:=tplocÆxtu┆
0x0576a0…0576c0            6d 70 5b 65 70 2c 6a 6e 74 6d 5d 5d 3b 0d 0a 20 20 20 20 6e 6f 74 72 73 28 67 65 6e 74 6f 5b 6a   ┆mpÆep,jntmÅÅ;      notrs(gentoÆj┆
0x0576c0…0576e0            6e 74 6b 5d 2c 74 6d 6c 6f 63 5b 6a 6e 74 6d 5d 29 3b 0d 0a 20 20 20 20 6e 6f 74 72 73 28 69 6e   ┆ntkÅ,tmlocÆjntmÅ);      notrs(in┆
0x0576e0…057700            72 73 2c 67 65 6e 70 6e 5b 6a 6e 74 6b 5d 29 3b 0d 0a 20 20 20 20 61 6e 64 72 73 28 67 65 6e 66   ┆rs,genpnÆjntkÅ);      andrs(genf┆
0x057700…057720            72 5b 6a 6e 74 6b 5d 2c 74 6d 6c 6f 63 5b 6a 6e 74 6d 5d 2c 69 6e 72 73 29 3b 0d 0a 20 20 65 6e   ┆rÆjntkÅ,tmlocÆjntmÅ,inrs);    en┆
0x057720…057740            64 3b 0d 0a 65 6e 64 3b 09 28 2a 20 63 72 65 61 74 65 20 2a 29 0d 0a 0d 0a 66 75 6e 63 74 69 6f   ┆d;  end; (* create *)    functio┆
0x057740…057760            6e 20 75 70 64 61 74 65 28 76 61 72 20 61 3a 20 72 6d 29 3a 74 62 3b 09 28 2a 20 75 70 64 61 74   ┆n update(var a: rm):tb; (* updat┆
0x057760…057780            65 20 64 61 74 61 20 62 61 73 65 20 66 6f 72 20 61 20 6d 6f 76 65 20 2a 29 0d 0a 76 61 72 0d 0a   ┆e data base for a move *)  var  ┆
0x057780…0577a0            20 20 69 6e 72 73 09 3a 20 72 73 3b 0d 0a 20 20 69 6d 72 73 09 3a 20 72 73 3b 0d 0a 20 20 69 6e   ┆  inrs : rs;    imrs : rs;    in┆
0x0577a0…0577c0            74 73 09 3a 20 74 73 3b 0d 0a 20 20 69 6e 74 66 09 3a 20 74 66 3b 0d 0a 20 20 69 6e 74 72 09 3a   ┆ts : ts;    intf : tf;    intr :┆
0x0577c0…0577e0            20 74 72 3b 0d 0a 20 20 72 6b 74 6f 09 3a 20 74 73 3b 0d 0a 20 20 72 6b 66 72 09 3a 20 74 73 3b   ┆ tr;    rkto : ts;    rkfr : ts;┆
0x0577e0…057800            0d 0a 62 65 67 69 6e 0d 0a 20 20 77 69 74 68 20 61 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20   ┆  begin    with a do    begin   ┆
0x057800…057820 (21, 1, 7) 20 20 20 6a 6e 74 6b 3a 3d 6a 6e 74 6b 2b 31 3b 0d 0a 20 20 20 20 69 66 20 6a 6e 74 6b 20 3d 20   ┆   jntk:=jntk+1;      if jntk = ┆
0x057820…057840            7a 6b 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 27 2a 2a 2a 20 53 45 41 52 43 48 20 4c 49 4d 49   ┆zk then writeln('*** SEARCH LIMI┆
0x057840…057860            54 20 2a 2a 2a 27 29 3b 0d 0a 20 20 20 20 6e 65 77 72 73 28 65 6e 70 61 73 5b 6a 6e 74 6b 5d 29   ┆T ***');      newrs(enpasÆjntkÅ)┆
0x057860…057880            3b 0d 0a 20 20 20 20 63 73 74 61 74 5b 6a 6e 74 6b 5d 3a 3d 63 73 74 61 74 5b 6a 6e 74 6b 2d 31   ┆;      cstatÆjntkÅ:=cstatÆjntk-1┆
0x057880…0578a0            5d 3b 0d 0a 20 20 20 20 61 6c 6c 6f 63 5b 6a 6e 74 6b 5d 3a 3d 61 6c 6c 6f 63 5b 6a 6e 74 6b 2d   ┆Å;      allocÆjntkÅ:=allocÆjntk-┆
0x0578a0…0578c0            31 5d 3b 0d 0a 20 20 20 20 6d 62 76 61 6c 5b 6a 6e 74 6b 5d 3a 3d 6d 62 76 61 6c 5b 6a 6e 74 6b   ┆1Å;      mbvalÆjntkÅ:=mbvalÆjntk┆
0x0578c0…0578e0            2d 31 5d 3b 0d 0a 20 20 20 20 6c 69 6e 64 78 5b 6a 6e 74 6b 5d 3a 3d 6a 6e 74 77 3b 0d 0a 20 20   ┆-1Å;      lindxÆjntkÅ:=jntw;    ┆
0x0578e0…057900            20 20 63 61 73 65 20 6f 72 64 28 72 6d 63 61 29 2a 34 20 2b 6f 72 64 28 72 6d 61 63 29 2a 32 20   ┆  case ord(rmca)*4 +ord(rmac)*2 ┆
0x057900…057920            2b 20 6f 72 64 28 72 6d 70 72 29 20 6f 66 0d 0a 20 20 20 20 20 20 30 3a 20 69 66 20 72 6d 65 70   ┆+ ord(rmpr) of        0: if rmep┆
0x057920…057940            20 74 68 65 6e 09 28 2a 20 6f 72 64 69 6e 61 72 79 20 6d 6f 76 65 20 2a 29 0d 0a 20 20 20 20 20   ┆ then (* ordinary move *)       ┆
0x057940…057960            20 20 20 20 62 65 67 69 6e 09 09 28 2a 20 70 61 77 6e 20 6d 6f 76 65 20 32 20 73 70 61 63 65 73   ┆    begin  (* pawn move 2 spaces┆
0x057960…057980            20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 73 66 74 72 73 28 69 6e 72 73 2c 78 72 73 73 5b   ┆ *)             sftrs(inrs,xrssÆ┆
0x057980…0579a0            72 6d 74 6f 5d 2c 73 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 73 66 74 72 73 28 69 6d 72   ┆rmtoÅ,s1);             sftrs(imr┆
0x0579a0…0579c0            73 2c 78 72 73 73 5b 72 6d 74 6f 5d 2c 73 33 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 69 6f   ┆s,xrssÆrmtoÅ,s3);             io┆
0x0579c0…0579e0            72 72 73 28 69 6e 72 73 2c 69 6e 72 73 2c 69 6d 72 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆rrs(inrs,inrs,imrs);            ┆
0x0579e0…057a00            20 61 6e 64 72 73 28 69 6e 72 73 2c 69 6e 72 73 2c 74 70 6c 6f 63 5b 78 74 75 6d 70 5b 65 70 2c   ┆ andrs(inrs,inrs,tplocÆxtumpÆep,┆
0x057a00…057a20            6f 74 68 65 72 5b 6a 6e 74 6d 5d 5d 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e   ┆otherÆjntmÅÅÅ);             if n┆
0x057a20…057a40            6f 74 20 6e 75 6c 72 73 28 69 6e 72 73 29 20 74 68 65 6e 20 73 65 74 72 73 28 65 6e 70 61 73 5b   ┆ot nulrs(inrs) then setrs(enpasÆ┆
0x057a40…057a60            6a 6e 74 6b 5d 2c 28 72 6d 74 6f 2b 72 6d 66 72 29 20 64 69 76 20 32 29 3b 0d 0a 20 20 20 20 20   ┆jntkÅ,(rmto+rmfr) div 2);       ┆
0x057a60…057a80            20 20 20 20 20 20 6d 6f 76 65 69 74 28 61 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 65 6e 64 20 65   ┆      moveit(a);           end e┆
0x057a80…057aa0            6c 73 65 20 6d 6f 76 65 69 74 28 61 29 3b 0d 0a 20 20 20 20 20 20 31 3a 20 62 65 67 69 6e 09 09   ┆lse moveit(a);        1: begin  ┆
0x057aa0…057ac0            28 2a 20 6d 6f 76 65 20 61 6e 64 20 70 72 6f 6d 6f 74 65 20 2a 29 0d 0a 20 20 20 20 20 20 20 20   ┆(* move and promote *)          ┆
0x057ac0…057ae0            20 20 20 70 72 6f 6d 6f 74 28 61 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 6d 6f 76 65 69 74   ┆   promot(a);             moveit┆
0x057ae0…057b00            28 61 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 32 3a 20 62 65   ┆(a);           end;        2: be┆
0x057b00…057b20            67 69 6e 09 09 28 2a 20 6d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 20 61 63 73 20 2a 29 0d 0a 20 20   ┆gin  (* miscellaneous acs *)    ┆
0x057b20…057b40            20 20 20 20 20 20 20 20 20 69 66 20 72 6d 6f 6f 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20   ┆         if rmoo then           ┆
0x057b40…057b60            20 20 62 65 67 69 6e 09 28 2a 20 63 61 73 74 6c 65 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆  begin (* castle *)            ┆
0x057b60…057b80            20 20 20 69 66 20 72 6d 71 73 20 74 68 65 6e 20 69 6e 74 66 3a 3d 66 31 20 65 6c 73 65 20 69 6e   ┆   if rmqs then intf:=f1 else in┆
0x057b80…057ba0            74 66 3a 3d 66 38 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 72 3a 3d 78 74 73 72   ┆tf:=f8;               intr:=xtsr┆
0x057ba0…057bc0            5b 72 6d 66 72 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 72 6b 66 72 3a 3d 78 74 72 66   ┆ÆrmfrÅ;               rkfr:=xtrf┆
0x057bc0…057be0            73 5b 69 6e 74 72 2c 69 6e 74 66 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 72 6b 74 6f   ┆sÆintr,intfÅ;               rkto┆
0x057be0…057c00            3a 3d 28 72 6d 66 72 2b 72 6d 74 6f 29 20 64 69 76 20 32 3b 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆:=(rmfr+rmto) div 2;            ┆
0x057c00…057c20 (21, 1, 8) 20 20 20 61 6e 64 72 73 28 63 73 74 61 74 5b 6a 6e 74 6b 5d 2c 63 73 74 61 74 5b 6a 6e 74 6b 5d   ┆   andrs(cstatÆjntkÅ,cstatÆjntkÅ┆
0x057c20…057c40            2c 78 6e 72 73 5b 69 6e 74 72 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 74   ┆,xnrsÆintrÅ);               cast┆
0x057c40…057c60            6c 65 5b 6f 74 68 65 72 5b 6a 6e 74 6d 5d 5d 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20   ┆leÆotherÆjntmÅÅ:=true;          ┆
0x057c60…057c80            20 20 20 20 20 61 64 64 6c 6f 63 28 72 6b 74 6f 2c 6e 62 6f 72 64 5b 72 6b 66 72 5d 29 3b 0d 0a   ┆     addloc(rkto,nbordÆrkfrÅ);  ┆
0x057c80…057ca0            20 20 20 20 20 20 20 20 20 20 20 20 20 61 64 64 61 74 6b 28 72 6b 74 6f 29 3b 0d 0a 20 20 20 20   ┆             addatk(rkto);      ┆
0x057ca0…057cc0            20 20 20 20 20 20 20 20 20 64 65 6c 61 74 6b 28 72 6b 66 72 29 3b 0d 0a 20 20 20 20 20 20 20 20   ┆         delatk(rkfr);          ┆
0x057cc0…057ce0            20 20 20 20 20 6d 6f 76 65 69 74 28 61 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20   ┆     moveit(a);             end ┆
0x057ce0…057d00            65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20   ┆else             begin          ┆
0x057d00…057d20            20 20 20 20 20 70 72 6f 61 63 73 28 61 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 6f   ┆     proacs(a);               mo┆
0x057d20…057d40            76 65 69 74 28 61 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20   ┆veit(a);             end;       ┆
0x057d40…057d60            20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 33 3a 20 3b 09 09 28 2a 20 6e 75 6c 6c 20 6d 6f   ┆    end;        3: ;  (* null mo┆
0x057d60…057d80            76 65 20 2a 29 0d 0a 20 20 20 20 20 20 34 3a 20 69 66 20 72 6d 65 70 20 74 68 65 6e 09 28 2a 20   ┆ve *)        4: if rmep then (* ┆
0x057d80…057da0            63 61 70 74 75 72 65 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20   ┆capture *)           begin      ┆
0x057da0…057dc0            20 20 20 20 20 20 20 69 6e 74 73 3a 3d 78 74 72 66 73 5b 78 74 73 72 5b 72 6d 66 72 5d 2c 78 74   ┆       ints:=xtrfsÆxtsrÆrmfrÅ,xt┆
0x057dc0…057de0            73 66 5b 72 6d 74 6f 5d 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 6d 62 63 61 70 74 28 6e 62   ┆sfÆrmtoÅÅ;             mbcapt(nb┆
0x057de0…057e00            6f 72 64 5b 69 6e 74 73 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 64 65 6c 61 74 6b 28 69   ┆ordÆintsÅ);             delatk(i┆
0x057e00…057e20            6e 74 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 70 72 70 61 74 6b 28 69 6e 74 73 29 3b 0d   ┆nts);             prpatk(ints); ┆
0x057e20…057e40            0a 20 20 20 20 20 20 20 20 20 20 20 6d 6f 76 65 69 74 28 61 29 3b 0d 0a 20 20 20 20 20 20 20 20   ┆            moveit(a);          ┆
0x057e40…057e60            20 65 6e 64 20 65 6c 73 65 20 6c 6f 73 65 69 74 28 61 29 3b 0d 0a 20 20 20 20 20 20 35 3a 20 62   ┆ end else loseit(a);        5: b┆
0x057e60…057e80            65 67 69 6e 09 09 28 2a 20 63 61 70 74 75 72 65 20 61 6e 64 20 70 72 6f 6d 6f 74 65 20 2a 29 0d   ┆egin  (* capture and promote *) ┆
0x057e80…057ea0            0a 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6d 6f 74 28 61 29 3b 0d 0a 20 20 20 20 20 20 20 20   ┆            promot(a);          ┆
0x057ea0…057ec0            20 20 20 6c 6f 73 65 69 74 28 61 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20   ┆   loseit(a);           end;    ┆
0x057ec0…057ee0            20 20 20 20 36 3a 20 62 65 67 69 6e 09 09 28 2a 20 63 61 70 74 75 72 65 20 61 63 73 20 2a 29 0d   ┆    6: begin  (* capture acs *) ┆
0x057ee0…057f00            0a 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 61 63 73 28 61 29 3b 0d 0a 20 20 20 20 20 20 20 20   ┆            proacs(a);          ┆
0x057f00…057f20            20 20 20 6c 6f 73 65 69 74 28 61 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20   ┆   loseit(a);           end;    ┆
0x057f20…057f40            20 20 20 20 37 3a 20 62 65 67 69 6e 09 09 28 2a 20 63 61 70 74 75 72 65 20 72 6f 6f 6b 20 61 63   ┆    7: begin  (* capture rook ac┆
0x057f40…057f60            73 2c 20 70 72 6f 6d 6f 74 65 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6d 6f 74   ┆s, promote *)             promot┆
0x057f60…057f80            28 61 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 61 63 73 28 61 29 3b 0d 0a 20 20 20   ┆(a);             proacs(a);     ┆
0x057f80…057fa0            20 20 20 20 20 20 20 20 6c 6f 73 65 69 74 28 61 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 65 6e 64   ┆        loseit(a);           end┆
0x057fa0…057fc0            3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 28 2a 20 69 6e 69 74 69 61   ┆;      end;            (* initia┆
0x057fc0…057fe0            6c 69 7a 65 20 6d 6f 76 65 20 67 65 6e 65 72 61 74 69 6f 6e 20 2a 29 0d 0a 20 20 20 20 6a 6e 74   ┆lize move generation *)      jnt┆
0x057fe0…058000            6d 3a 3d 6f 74 68 65 72 5b 6a 6e 74 6d 5d 3b 0d 0a 20 20 20 20 67 65 6e 70 6e 5b 6a 6e 74 6b 5d   ┆m:=otherÆjntmÅ;      genpnÆjntkÅ┆
0x058000…058020 (22, 0, 1) 3a 3d 74 70 6c 6f 63 5b 78 74 75 6d 70 5b 65 70 2c 6a 6e 74 6d 5d 5d 3b 0d 0a 20 20 20 20 6e 6f   ┆:=tplocÆxtumpÆep,jntmÅÅ;      no┆
0x058020…058040            74 72 73 28 67 65 6e 74 6f 5b 6a 6e 74 6b 5d 2c 74 6d 6c 6f 63 5b 6a 6e 74 6d 5d 29 3b 0d 0a 20   ┆trs(gentoÆjntkÅ,tmlocÆjntmÅ);   ┆
0x058040…058060            20 20 20 6e 6f 74 72 73 28 69 6e 72 73 2c 67 65 6e 70 6e 5b 6a 6e 74 6b 5d 29 3b 0d 0a 20 20 20   ┆   notrs(inrs,genpnÆjntkÅ);     ┆
0x058060…058080            20 61 6e 64 72 73 28 67 65 6e 66 72 5b 6a 6e 74 6b 5d 2c 74 6d 6c 6f 63 5b 6a 6e 74 6d 5d 2c 69   ┆ andrs(genfrÆjntkÅ,tmlocÆjntmÅ,i┆
0x058080…0580a0            6e 72 73 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 28 2a 20 64 65 74 65 72 6d 69 6e 65 20 69 66   ┆nrs);            (* determine if┆
0x0580a0…0580c0            20 6d 6f 76 65 20 6c 65 61 76 65 73 20 6b 69 6e 67 20 69 6e 20 63 68 65 63 6b 2c 20 6f 72 20 6d   ┆ move leaves king in check, or m┆
0x0580c0…0580e0            6f 76 65 73 20 6b 69 6e 67 20 69 6e 74 6f 20 63 68 65 63 6b 20 2a 29 0d 0a 20 20 20 20 61 6e 64   ┆oves king into check *)      and┆
0x0580e0…058100            72 73 28 69 6e 72 73 2c 74 70 6c 6f 63 5b 78 74 75 6d 70 5b 65 6b 2c 6a 6e 74 6d 5d 5d 2c 61 6c   ┆rs(inrs,tplocÆxtumpÆek,jntmÅÅ,al┆
0x058100…058120            61 74 6b 5b 6f 74 68 65 72 5b 6a 6e 74 6d 5d 5d 29 3b 0d 0a 20 20 20 20 72 6d 63 68 3a 3d 6e 6f   ┆atkÆotherÆjntmÅÅ);      rmch:=no┆
0x058120…058140            74 20 6e 75 6c 72 73 28 69 6e 72 73 29 3b 0d 0a 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 74   ┆t nulrs(inrs);      andrs(inrs,t┆
0x058140…058160            70 6c 6f 63 5b 78 74 75 6d 70 5b 65 6b 2c 6f 74 68 65 72 5b 6a 6e 74 6d 5d 5d 5d 2c 61 6c 61 74   ┆plocÆxtumpÆek,otherÆjntmÅÅÅ,alat┆
0x058160…058180            6b 5b 6a 6e 74 6d 5d 29 3b 0d 0a 20 20 20 20 72 6d 69 6c 3a 3d 6e 6f 74 20 6e 75 6c 72 73 28 69   ┆kÆjntmÅ);      rmil:=not nulrs(i┆
0x058180…0581a0            6e 72 73 29 3b 0d 0a 20 20 20 20 75 70 64 61 74 65 3a 3d 20 6e 6f 74 20 72 6d 69 6c 3b 0d 0a 20   ┆nrs);      update:= not rmil;   ┆
0x0581a0…0581c0            20 20 20 69 66 20 6e 6f 74 20 72 6d 69 6c 20 74 68 65 6e 20 6d 76 73 65 6c 5b 6a 6e 74 6b 2d 31   ┆   if not rmil then mvselÆjntk-1┆
0x0581c0…0581e0            5d 3a 3d 6d 76 73 65 6c 5b 6a 6e 74 6b 2d 31 5d 2b 31 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 28   ┆Å:=mvselÆjntk-1Å+1;            (┆
0x0581e0…058200            2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 6d 6f 76 65 20 73 65 61 72 63 68 69 6e 67 20 2a 29 0d 0a   ┆* initialize move searching *)  ┆
0x058200…058220            20 20 20 20 73 72 63 68 6d 5b 6a 6e 74 6b 5d 3a 3d 68 31 3b 0d 0a 20 20 20 20 6e 6f 64 65 73 3a   ┆    srchmÆjntkÅ:=h1;      nodes:┆
0x058220…058240            3d 6e 6f 64 65 73 2b 31 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 65 6e 64 3b 09 28 2a 20 75 70 64 61 74   ┆=nodes+1;    end;  end; (* updat┆
0x058240…058260            65 20 2a 29 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20 70 77 6e 70 72 6f 3b 09 09 28 2a 20 67 65   ┆e *)    procedure pwnpro;  (* ge┆
0x058260…058280            6e 65 72 61 74 65 20 61 6c 6c 20 70 72 6f 6d 6f 74 69 6f 6e 20 6d 6f 76 65 73 20 2a 29 0d 0a 76   ┆nerate all promotion moves *)  v┆
0x058280…0582a0            61 72 0d 0a 20 20 69 6e 74 67 09 3a 20 74 67 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 6d 6f 76 65 73   ┆ar    intg : tg;  begin    moves┆
0x0582a0…0582c0            5b 6a 6e 74 77 2d 31 5d 2e 72 6d 70 72 3a 3d 74 72 75 65 3b 0d 0a 20 20 6d 6f 76 65 73 5b 6a 6e   ┆Æjntw-1Å.rmpr:=true;    movesÆjn┆
0x0582c0…0582e0            74 77 2d 31 5d 2e 72 6d 70 70 3a 3d 70 71 3b 0d 0a 20 20 66 6f 72 20 69 6e 74 67 3a 3d 70 72 20   ┆tw-1Å.rmpp:=pq;    for intg:=pr ┆
0x0582e0…058300            74 6f 20 70 62 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 6d 6f 76 65 73 5b 6a 6e 74   ┆to pb do    begin      movesÆjnt┆
0x058300…058320            77 5d 3a 3d 6d 6f 76 65 73 5b 6a 6e 74 77 2d 31 5d 3b 0d 0a 20 20 20 20 6d 6f 76 65 73 5b 6a 6e   ┆wÅ:=movesÆjntw-1Å;      movesÆjn┆
0x058320…058340            74 77 5d 2e 72 6d 70 70 3a 3d 69 6e 74 67 3b 0d 0a 20 20 20 20 6a 6e 74 77 3a 3d 6a 6e 74 77 2b   ┆twÅ.rmpp:=intg;      jntw:=jntw+┆
0x058340…058360            31 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20 67 65   ┆1;    end;  end;    procedure ge┆
0x058360…058380            6e 70 77 6e 28 61 3a 20 72 73 3b 62 3a 20 72 73 29 3b 09 28 2a 20 67 65 6e 65 72 61 74 65 20 70   ┆npwn(a: rs;b: rs); (* generate p┆
0x058380…0583a0            61 77 6e 20 6d 6f 76 65 73 20 2a 29 0d 0a 76 61 72 0d 0a 20 20 69 6e 72 73 09 3a 20 72 73 3b 0d   ┆awn moves *)  var    inrs : rs; ┆
0x0583a0…0583c0            0a 20 20 69 6d 72 73 09 3a 20 72 73 3b 0d 0a 20 20 69 6e 74 73 09 3a 20 74 73 3b 0d 0a 62 65 67   ┆   imrs : rs;    ints : ts;  beg┆
0x0583c0…0583e0            69 6e 0d 0a 20 20 69 66 20 6a 6e 74 6d 20 3d 20 6c 69 74 65 20 74 68 65 6e 0d 0a 20 20 62 65 67   ┆in    if jntm = lite then    beg┆
0x0583e0…058400            69 6e 09 09 09 28 2a 20 77 68 69 74 65 20 70 61 77 6e 20 2a 29 0d 0a 20 20 20 20 73 66 74 72 73   ┆in   (* white pawn *)      sftrs┆
0x058400…058420 (22, 0, 2) 28 69 6e 72 73 2c 61 2c 73 32 29 3b 0d 0a 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 74 70 6c   ┆(inrs,a,s2);      andrs(inrs,tpl┆
0x058420…058440            6f 63 5b 6d 74 5d 2c 69 6e 72 73 29 3b 0d 0a 20 20 20 20 69 6d 72 73 3a 3d 69 6e 72 73 3b 0d 0a   ┆ocÆmtÅ,inrs);      imrs:=inrs;  ┆
0x058440…058460            20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 62 2c 69 6e 72 73 29 3b 0d 0a 20 20 20 20 77 68 69   ┆    andrs(inrs,b,inrs);      whi┆
0x058460…058480            6c 65 20 6e 78 74 74 73 28 69 6e 72 73 2c 69 6e 74 73 29 20 64 6f 0d 0a 20 20 20 20 62 65 67 69   ┆le nxtts(inrs,ints) do      begi┆
0x058480…0584a0            6e 0d 0a 20 20 20 20 20 20 67 65 6e 6f 6e 65 28 78 74 6c 73 5b 78 74 73 6c 5b 69 6e 74 73 5d 2d   ┆n        genone(xtlsÆxtslÆintsÅ-┆
0x0584a0…0584c0            78 74 65 64 5b 73 32 5d 5d 2c 69 6e 74 73 29 3b 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 74 73 20   ┆xtedÆs2ÅÅ,ints);        if ints ┆
0x0584c0…0584e0            3e 3d 20 78 74 72 66 73 5b 72 38 2c 66 31 5d 20 74 68 65 6e 20 70 77 6e 70 72 6f 3b 0d 0a 20 20   ┆>= xtrfsÆr8,f1Å then pwnpro;    ┆
0x0584e0…058500            20 20 65 6e 64 3b 0d 0a 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 69 6d 72 73 2c 78 72 72 73   ┆  end;      andrs(inrs,imrs,xrrs┆
0x058500…058520            5b 72 33 5d 29 3b 0d 0a 20 20 20 20 73 66 74 72 73 28 69 6e 72 73 2c 69 6e 72 73 2c 73 32 29 3b   ┆Ær3Å);      sftrs(inrs,inrs,s2);┆
0x058520…058540            0d 0a 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 69 6e 72 73 2c 74 70 6c 6f 63 5b 6d 74 5d 29   ┆      andrs(inrs,inrs,tplocÆmtÅ)┆
0x058540…058560            3b 0d 0a 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 69 6e 72 73 2c 62 29 3b 0d 0a 20 20 20 20   ┆;      andrs(inrs,inrs,b);      ┆
0x058560…058580            77 68 69 6c 65 20 6e 78 74 74 73 28 69 6e 72 73 2c 69 6e 74 73 29 20 64 6f 0d 0a 20 20 20 20 62   ┆while nxtts(inrs,ints) do      b┆
0x058580…0585a0            65 67 69 6e 0d 0a 20 20 20 20 20 20 67 65 6e 6f 6e 65 28 78 74 6c 73 5b 78 74 73 6c 5b 69 6e 74   ┆egin        genone(xtlsÆxtslÆint┆
0x0585a0…0585c0            73 5d 2d 32 2a 78 74 65 64 5b 73 32 5d 5d 2c 69 6e 74 73 29 3b 0d 0a 20 20 20 20 20 20 6d 6f 76   ┆sÅ-2*xtedÆs2ÅÅ,ints);        mov┆
0x0585c0…0585e0            65 73 5b 6a 6e 74 77 2d 31 5d 2e 72 6d 65 70 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 65 6e 64 3b   ┆esÆjntw-1Å.rmep:=true;      end;┆
0x0585e0…058600            0d 0a 20 20 20 20 73 66 74 72 73 28 69 6e 72 73 2c 61 2c 62 31 29 3b 0d 0a 20 20 20 20 69 6f 72   ┆      sftrs(inrs,a,b1);      ior┆
0x058600…058620            72 73 28 69 6d 72 73 2c 74 6d 6c 6f 63 5b 6f 74 68 65 72 5b 6a 6e 74 6d 5d 5d 2c 65 6e 70 61 73   ┆rs(imrs,tmlocÆotherÆjntmÅÅ,enpas┆
0x058620…058640            5b 6a 6e 74 6b 5d 29 3b 0d 0a 20 20 20 20 61 6e 64 72 73 28 69 6d 72 73 2c 69 6d 72 73 2c 62 29   ┆ÆjntkÅ);      andrs(imrs,imrs,b)┆
0x058640…058660            3b 0d 0a 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 69 6e 72 73 2c 69 6d 72 73 29 3b 0d 0a 20   ┆;      andrs(inrs,inrs,imrs);   ┆
0x058660…058680            20 20 20 77 68 69 6c 65 20 6e 78 74 74 73 28 69 6e 72 73 2c 69 6e 74 73 29 20 64 6f 0d 0a 20 20   ┆   while nxtts(inrs,ints) do    ┆
0x058680…0586a0            20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 67 65 6e 6f 6e 65 28 78 74 6c 73 5b 78 74 73 6c 5b   ┆  begin        genone(xtlsÆxtslÆ┆
0x0586a0…0586c0            69 6e 74 73 5d 2d 78 74 65 64 5b 62 31 5d 5d 2c 69 6e 74 73 29 3b 0d 0a 20 20 20 20 20 20 6d 6f   ┆intsÅ-xtedÆb1ÅÅ,ints);        mo┆
0x0586c0…0586e0            76 65 73 5b 6a 6e 74 77 2d 31 5d 2e 72 6d 63 61 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 6d   ┆vesÆjntw-1Å.rmca:=true;        m┆
0x0586e0…058700            6f 76 65 73 5b 6a 6e 74 77 2d 31 5d 2e 72 6d 65 70 3a 3d 69 6e 72 73 74 62 28 65 6e 70 61 73 5b   ┆ovesÆjntw-1Å.rmep:=inrstb(enpasÆ┆
0x058700…058720            6a 6e 74 6b 5d 2c 69 6e 74 73 29 3b 0d 0a 20 20 20 20 20 20 69 66 20 6d 6f 76 65 73 5b 6a 6e 74   ┆jntkÅ,ints);        if movesÆjnt┆
0x058720…058740            77 2d 31 5d 2e 72 6d 65 70 20 74 68 65 6e 20 6d 6f 76 65 73 5b 6a 6e 74 77 2d 31 5d 2e 72 6d 63   ┆w-1Å.rmep then movesÆjntw-1Å.rmc┆
0x058740…058760            70 3a 3d 64 70 3b 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 74 73 20 3e 3d 20 78 74 72 66 73 5b 72   ┆p:=dp;        if ints >= xtrfsÆr┆
0x058760…058780            38 2c 66 31 5d 20 74 68 65 6e 20 70 77 6e 70 72 6f 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20   ┆8,f1Å then pwnpro;      end;    ┆
0x058780…0587a0            20 20 73 66 74 72 73 28 69 6e 72 73 2c 61 2c 62 32 29 3b 0d 0a 20 20 20 20 69 6f 72 72 73 28 69   ┆  sftrs(inrs,a,b2);      iorrs(i┆
0x0587a0…0587c0            6d 72 73 2c 74 6d 6c 6f 63 5b 6f 74 68 65 72 5b 6a 6e 74 6d 5d 5d 2c 65 6e 70 61 73 5b 6a 6e 74   ┆mrs,tmlocÆotherÆjntmÅÅ,enpasÆjnt┆
0x0587c0…0587e0            6b 5d 29 3b 0d 0a 20 20 20 20 61 6e 64 72 73 28 69 6d 72 73 2c 69 6d 72 73 2c 62 29 3b 0d 0a 20   ┆kÅ);      andrs(imrs,imrs,b);   ┆
0x0587e0…058800            20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 69 6e 72 73 2c 69 6d 72 73 29 3b 0d 0a 20 20 20 20 77   ┆   andrs(inrs,inrs,imrs);      w┆
0x058800…058820 (22, 0, 3) 68 69 6c 65 20 6e 78 74 74 73 28 69 6e 72 73 2c 69 6e 74 73 29 20 64 6f 0d 0a 20 20 20 20 62 65   ┆hile nxtts(inrs,ints) do      be┆
0x058820…058840            67 69 6e 0d 0a 20 20 20 20 20 20 67 65 6e 6f 6e 65 28 78 74 6c 73 5b 78 74 73 6c 5b 69 6e 74 73   ┆gin        genone(xtlsÆxtslÆints┆
0x058840…058860            5d 2d 78 74 65 64 5b 62 32 5d 5d 2c 69 6e 74 73 29 3b 0d 0a 20 20 20 20 20 20 6d 6f 76 65 73 5b   ┆Å-xtedÆb2ÅÅ,ints);        movesÆ┆
0x058860…058880            6a 6e 74 77 2d 31 5d 2e 72 6d 63 61 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 6d 6f 76 65 73   ┆jntw-1Å.rmca:=true;        moves┆
0x058880…0588a0            5b 6a 6e 74 77 2d 31 5d 2e 72 6d 65 70 3a 3d 69 6e 72 73 74 62 28 65 6e 70 61 73 5b 6a 6e 74 6b   ┆Æjntw-1Å.rmep:=inrstb(enpasÆjntk┆
0x0588a0…0588c0            5d 2c 69 6e 74 73 29 3b 0d 0a 20 20 20 20 20 20 69 66 20 6d 6f 76 65 73 5b 6a 6e 74 77 2d 31 5d   ┆Å,ints);        if movesÆjntw-1Å┆
0x0588c0…0588e0            2e 72 6d 65 70 20 74 68 65 6e 20 6d 6f 76 65 73 5b 6a 6e 74 77 2d 31 5d 2e 72 6d 63 70 3a 3d 64   ┆.rmep then movesÆjntw-1Å.rmcp:=d┆
0x0588e0…058900            70 3b 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 74 73 20 3e 3d 20 78 74 72 66 73 5b 72 38 2c 66 31   ┆p;        if ints >= xtrfsÆr8,f1┆
0x058900…058920            5d 20 74 68 65 6e 20 70 77 6e 70 72 6f 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 65 6e 64 20   ┆Å then pwnpro;      end;    end ┆
0x058920…058940            65 6c 73 65 0d 0a 20 20 62 65 67 69 6e 09 09 09 09 28 2a 20 62 6c 61 63 6b 20 70 61 77 6e 73 20   ┆else    begin    (* black pawns ┆
0x058940…058960            2a 29 0d 0a 20 20 20 20 73 66 74 72 73 28 69 6e 72 73 2c 61 2c 73 34 29 3b 0d 0a 20 20 20 20 61   ┆*)      sftrs(inrs,a,s4);      a┆
0x058960…058980            6e 64 72 73 28 69 6e 72 73 2c 74 70 6c 6f 63 5b 6d 74 5d 2c 69 6e 72 73 29 3b 0d 0a 20 20 20 20   ┆ndrs(inrs,tplocÆmtÅ,inrs);      ┆
0x058980…0589a0            69 6d 72 73 3a 3d 69 6e 72 73 3b 0d 0a 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 62 2c 69 6e   ┆imrs:=inrs;      andrs(inrs,b,in┆
0x0589a0…0589c0            72 73 29 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 6e 78 74 74 73 28 69 6e 72 73 2c 69 6e 74 73 29   ┆rs);      while nxtts(inrs,ints)┆
0x0589c0…0589e0            20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 67 65 6e 6f 6e 65 28 78 74 6c   ┆ do      begin        genone(xtl┆
0x0589e0…058a00            73 5b 78 74 73 6c 5b 69 6e 74 73 5d 2d 78 74 65 64 5b 73 34 5d 5d 2c 69 6e 74 73 29 3b 0d 0a 20   ┆sÆxtslÆintsÅ-xtedÆs4ÅÅ,ints);   ┆
0x058a00…058a20            20 20 20 20 20 69 66 20 69 6e 74 73 20 3c 3d 20 78 74 72 66 73 5b 72 31 2c 66 38 5d 20 74 68 65   ┆     if ints <= xtrfsÆr1,f8Å the┆
0x058a20…058a40            6e 20 70 77 6e 70 72 6f 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 61 6e 64 72 73 28 69   ┆n pwnpro;      end;      andrs(i┆
0x058a40…058a60            6e 72 73 2c 69 6d 72 73 2c 78 72 72 73 5b 72 36 5d 29 3b 0d 0a 20 20 20 20 73 66 74 72 73 28 69   ┆nrs,imrs,xrrsÆr6Å);      sftrs(i┆
0x058a60…058a80            6e 72 73 2c 69 6e 72 73 2c 73 34 29 3b 0d 0a 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 69 6e   ┆nrs,inrs,s4);      andrs(inrs,in┆
0x058a80…058aa0            72 73 2c 74 70 6c 6f 63 5b 6d 74 5d 29 3b 0d 0a 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 69   ┆rs,tplocÆmtÅ);      andrs(inrs,i┆
0x058aa0…058ac0            6e 72 73 2c 62 29 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 6e 78 74 74 73 28 69 6e 72 73 2c 69 6e   ┆nrs,b);      while nxtts(inrs,in┆
0x058ac0…058ae0            74 73 29 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 67 65 6e 6f 6e 65 28   ┆ts) do      begin        genone(┆
0x058ae0…058b00            78 74 6c 73 5b 78 74 73 6c 5b 69 6e 74 73 5d 2d 32 2a 78 74 65 64 5b 73 34 5d 5d 2c 69 6e 74 73   ┆xtlsÆxtslÆintsÅ-2*xtedÆs4ÅÅ,ints┆
0x058b00…058b20            29 3b 0d 0a 20 20 20 20 20 20 6d 6f 76 65 73 5b 6a 6e 74 77 2d 31 5d 2e 72 6d 65 70 3a 3d 74 72   ┆);        movesÆjntw-1Å.rmep:=tr┆
0x058b20…058b40            75 65 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 73 66 74 72 73 28 69 6e 72 73 2c 61 2c   ┆ue;      end;      sftrs(inrs,a,┆
0x058b40…058b60            62 33 29 3b 0d 0a 20 20 20 20 69 6f 72 72 73 28 69 6d 72 73 2c 74 6d 6c 6f 63 5b 6f 74 68 65 72   ┆b3);      iorrs(imrs,tmlocÆother┆
0x058b60…058b80            5b 6a 6e 74 6d 5d 5d 2c 65 6e 70 61 73 5b 6a 6e 74 6b 5d 29 3b 0d 0a 20 20 20 20 61 6e 64 72 73   ┆ÆjntmÅÅ,enpasÆjntkÅ);      andrs┆
0x058b80…058ba0            28 69 6d 72 73 2c 69 6d 72 73 2c 62 29 3b 0d 0a 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 69   ┆(imrs,imrs,b);      andrs(inrs,i┆
0x058ba0…058bc0            6e 72 73 2c 69 6d 72 73 29 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 6e 78 74 74 73 28 69 6e 72 73   ┆nrs,imrs);      while nxtts(inrs┆
0x058bc0…058be0            2c 69 6e 74 73 29 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 67 65 6e 6f   ┆,ints) do      begin        geno┆
0x058be0…058c00            6e 65 28 78 74 6c 73 5b 78 74 73 6c 5b 69 6e 74 73 5d 2d 78 74 65 64 5b 62 33 5d 5d 2c 69 6e 74   ┆ne(xtlsÆxtslÆintsÅ-xtedÆb3ÅÅ,int┆
0x058c00…058c20 (22, 0, 4) 73 29 3b 0d 0a 20 20 20 20 20 20 6d 6f 76 65 73 5b 6a 6e 74 77 2d 31 5d 2e 72 6d 63 61 3a 3d 74   ┆s);        movesÆjntw-1Å.rmca:=t┆
0x058c20…058c40            72 75 65 3b 0d 0a 20 20 20 20 20 20 6d 6f 76 65 73 5b 6a 6e 74 77 2d 31 5d 2e 72 6d 65 70 3a 3d   ┆rue;        movesÆjntw-1Å.rmep:=┆
0x058c40…058c60            69 6e 72 73 74 62 28 65 6e 70 61 73 5b 6a 6e 74 6b 5d 2c 69 6e 74 73 29 3b 0d 0a 20 20 20 20 20   ┆inrstb(enpasÆjntkÅ,ints);       ┆
0x058c60…058c80            20 69 66 20 6d 6f 76 65 73 5b 6a 6e 74 77 2d 31 5d 2e 72 6d 65 70 20 74 68 65 6e 20 6d 6f 76 65   ┆ if movesÆjntw-1Å.rmep then move┆
0x058c80…058ca0            73 5b 6a 6e 74 77 2d 31 5d 2e 72 6d 63 70 3a 3d 6c 70 3b 0d 0a 20 20 20 20 20 20 69 66 20 69 6e   ┆sÆjntw-1Å.rmcp:=lp;        if in┆
0x058ca0…058cc0            74 73 20 3c 3d 20 78 74 72 66 73 5b 72 31 2c 66 38 5d 20 74 68 65 6e 20 70 77 6e 70 72 6f 3b 0d   ┆ts <= xtrfsÆr1,f8Å then pwnpro; ┆
0x058cc0…058ce0            0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 73 66 74 72 73 28 69 6e 72 73 2c 61 2c 62 34 29 3b   ┆     end;      sftrs(inrs,a,b4);┆
0x058ce0…058d00            0d 0a 20 20 20 20 69 6f 72 72 73 28 69 6d 72 73 2c 74 6d 6c 6f 63 5b 6f 74 68 65 72 5b 6a 6e 74   ┆      iorrs(imrs,tmlocÆotherÆjnt┆
0x058d00…058d20            6d 5d 5d 2c 65 6e 70 61 73 5b 6a 6e 74 6b 5d 29 3b 0d 0a 20 20 20 20 61 6e 64 72 73 28 69 6d 72   ┆mÅÅ,enpasÆjntkÅ);      andrs(imr┆
0x058d20…058d40            73 2c 69 6d 72 73 2c 62 29 3b 0d 0a 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 69 6e 72 73 2c   ┆s,imrs,b);      andrs(inrs,inrs,┆
0x058d40…058d60            69 6d 72 73 29 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 6e 78 74 74 73 28 69 6e 72 73 2c 69 6e 74   ┆imrs);      while nxtts(inrs,int┆
0x058d60…058d80            73 29 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 67 65 6e 6f 6e 65 28 78   ┆s) do      begin        genone(x┆
0x058d80…058da0            74 6c 73 5b 78 74 73 6c 5b 69 6e 74 73 5d 2d 78 74 65 64 5b 62 34 5d 5d 2c 69 6e 74 73 29 3b 0d   ┆tlsÆxtslÆintsÅ-xtedÆb4ÅÅ,ints); ┆
0x058da0…058dc0            0a 20 20 20 20 20 20 6d 6f 76 65 73 5b 6a 6e 74 77 2d 31 5d 2e 72 6d 63 61 3a 3d 74 72 75 65 3b   ┆       movesÆjntw-1Å.rmca:=true;┆
0x058dc0…058de0            0d 0a 20 20 20 20 20 20 6d 6f 76 65 73 5b 6a 6e 74 77 2d 31 5d 2e 72 6d 65 70 3a 3d 69 6e 72 73   ┆        movesÆjntw-1Å.rmep:=inrs┆
0x058de0…058e00            74 62 28 65 6e 70 61 73 5b 6a 6e 74 6b 5d 2c 69 6e 74 73 29 3b 0d 0a 20 20 20 20 20 20 69 66 20   ┆tb(enpasÆjntkÅ,ints);        if ┆
0x058e00…058e20            6d 6f 76 65 73 5b 6a 6e 74 77 2d 31 5d 2e 72 6d 65 70 20 74 68 65 6e 20 6d 6f 76 65 73 5b 6a 6e   ┆movesÆjntw-1Å.rmep then movesÆjn┆
0x058e20…058e40            74 77 2d 31 5d 2e 72 6d 63 70 3a 3d 6c 70 3b 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 74 73 20 3c   ┆tw-1Å.rmcp:=lp;        if ints <┆
0x058e40…058e60            3d 20 78 74 72 66 73 5b 72 31 2c 66 38 5d 20 74 68 65 6e 20 70 77 6e 70 72 6f 3b 0d 0a 20 20 20   ┆= xtrfsÆr1,f8Å then pwnpro;     ┆
0x058e60…058e80            20 65 6e 64 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 65 6e 64 3b 09 28 2a 20 67 65 6e 70 77 6e 20 2a 29   ┆ end;    end;  end; (* genpwn *)┆
0x058e80…058ea0            0d 0a 0d 0a 28 2a 20 63 68 65 73 73 2e 70 30 36 20 2a 29 0d 0a 70 72 6f 63 65 64 75 72 65 20 67   ┆    (* chess.p06 *)  procedure g┆
0x058ea0…058ec0            65 6e 66 73 6c 28 61 3a 20 72 73 29 3b 28 2a 20 67 65 6e 65 72 61 74 65 20 61 6c 6c 20 6d 6f 76   ┆enfsl(a: rs);(* generate all mov┆
0x058ec0…058ee0            65 73 20 66 72 6f 6d 20 61 20 73 65 74 20 6f 66 20 73 71 75 61 72 65 73 20 2a 29 0d 0a 76 61 72   ┆es from a set of squares *)  var┆
0x058ee0…058f00            09 09 09 09 28 2a 20 6f 72 69 67 69 6e 20 73 65 74 20 2a 29 0d 0a 20 20 69 6e 72 73 09 3a 20 72   ┆    (* origin set *)    inrs : r┆
0x058f00…058f20            73 3b 0d 0a 20 20 69 6d 72 73 09 3a 20 72 73 3b 0d 0a 20 20 69 70 72 73 09 3a 20 72 73 3b 0d 0a   ┆s;    imrs : rs;    iprs : rs;  ┆
0x058f20…058f40            20 20 69 6e 74 73 09 3a 20 74 73 3b 0d 0a 20 20 69 6d 74 73 09 3a 20 74 73 3b 0d 0a 62 65 67 69   ┆  ints : ts;    imts : ts;  begi┆
0x058f40…058f60            6e 0d 0a 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 61 2c 67 65 6e 66 72 5b 6a 6e 74 6b 5d 29 3b 0d   ┆n    andrs(inrs,a,genfrÆjntkÅ); ┆
0x058f60…058f80            0a 20 20 6e 6f 74 72 73 28 69 6d 72 73 2c 61 29 3b 0d 0a 20 20 61 6e 64 72 73 28 67 65 6e 66 72   ┆   notrs(imrs,a);    andrs(genfr┆
0x058f80…058fa0            5b 6a 6e 74 6b 5d 2c 67 65 6e 66 72 5b 6a 6e 74 6b 5d 2c 69 6d 72 73 29 3b 0d 0a 20 20 61 6e 64   ┆ÆjntkÅ,genfrÆjntkÅ,imrs);    and┆
0x058fa0…058fc0            72 73 28 69 70 72 73 2c 61 2c 67 65 6e 70 6e 5b 6a 6e 74 6b 5d 29 3b 0d 0a 20 20 61 6e 64 72 73   ┆rs(iprs,a,genpnÆjntkÅ);    andrs┆
0x058fc0…058fe0            28 67 65 6e 70 6e 5b 6a 6e 74 6b 5d 2c 67 65 6e 70 6e 5b 6a 6e 74 6b 5d 2c 69 6d 72 73 29 3b 0d   ┆(genpnÆjntkÅ,genpnÆjntkÅ,imrs); ┆
0x058fe0…059000            0a 20 20 77 68 69 6c 65 20 6e 78 74 74 73 28 69 6e 72 73 2c 69 6e 74 73 29 20 64 6f 0d 0a 20 20   ┆   while nxtts(inrs,ints) do    ┆
0x059000…059020 (22, 0, 5) 62 65 67 69 6e 0d 0a 20 20 20 20 61 6e 64 72 73 28 69 6d 72 73 2c 61 74 6b 66 72 5b 69 6e 74 73   ┆begin      andrs(imrs,atkfrÆints┆
0x059020…059040            5d 2c 67 65 6e 74 6f 5b 6a 6e 74 6b 5d 29 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 6e 78 74 74 73   ┆Å,gentoÆjntkÅ);      while nxtts┆
0x059040…059060            28 69 6d 72 73 2c 69 6d 74 73 29 20 64 6f 20 67 65 6e 6f 6e 65 28 69 6e 74 73 2c 69 6d 74 73 29   ┆(imrs,imts) do genone(ints,imts)┆
0x059060…059080            3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 69 66 20 6e 6f 74 20 6e 75 6c 72 73 28 69 70 72 73 29 20   ┆;    end;    if not nulrs(iprs) ┆
0x059080…0590a0            74 68 65 6e 20 67 65 6e 70 77 6e 28 69 70 72 73 2c 67 65 6e 74 6f 5b 6a 6e 74 6b 5d 29 3b 0d 0a   ┆then genpwn(iprs,gentoÆjntkÅ);  ┆
0x0590a0…0590c0            65 6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20 67 65 6e 74 73 6c 28 61 3a 20 72 73 29 3b   ┆end;    procedure gentsl(a: rs);┆
0x0590c0…0590e0            28 2a 20 67 65 6e 65 72 61 74 65 20 61 6c 6c 20 6d 6f 76 65 73 20 74 6f 20 61 20 73 65 74 20 6f   ┆(* generate all moves to a set o┆
0x0590e0…059100            66 20 73 71 75 61 72 65 73 20 2a 29 0d 0a 76 61 72 09 09 09 09 28 2a 20 74 61 72 67 65 74 20 73   ┆f squares *)  var    (* target s┆
0x059100…059120            65 74 20 2a 29 0d 0a 20 20 69 6e 72 73 09 3a 20 72 73 3b 0d 0a 20 20 69 6d 72 73 09 3a 20 72 73   ┆et *)    inrs : rs;    imrs : rs┆
0x059120…059140            3b 0d 0a 20 20 69 70 72 73 09 3a 20 72 73 3b 0d 0a 20 20 69 6e 74 73 09 3a 20 74 73 3b 0d 0a 20   ┆;    iprs : rs;    ints : ts;   ┆
0x059140…059160            20 69 6d 74 73 09 3a 20 74 73 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 61 6e 64 72 73 28 69 6e 72 73   ┆ imts : ts;  begin    andrs(inrs┆
0x059160…059180            2c 61 2c 67 65 6e 74 6f 5b 6a 6e 74 6b 5d 29 3b 0d 0a 20 20 6e 6f 74 72 73 28 69 6d 72 73 2c 61   ┆,a,gentoÆjntkÅ);    notrs(imrs,a┆
0x059180…0591a0            29 3b 0d 0a 20 20 61 6e 64 72 73 28 67 65 6e 74 6f 5b 6a 6e 74 6b 5d 2c 67 65 6e 74 6f 5b 6a 6e   ┆);    andrs(gentoÆjntkÅ,gentoÆjn┆
0x0591a0…0591c0            74 6b 5d 2c 69 6d 72 73 29 3b 0d 0a 20 20 69 70 72 73 3a 3d 69 6e 72 73 3b 0d 0a 20 20 77 68 69   ┆tkÅ,imrs);    iprs:=inrs;    whi┆
0x0591c0…0591e0            6c 65 20 6e 78 74 74 73 28 69 6e 72 73 2c 69 6e 74 73 29 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d   ┆le nxtts(inrs,ints) do    begin ┆
0x0591e0…059200            0a 20 20 20 20 61 6e 64 72 73 28 69 6d 72 73 2c 61 74 6b 74 6f 5b 69 6e 74 73 5d 2c 67 65 6e 66   ┆     andrs(imrs,atktoÆintsÅ,genf┆
0x059200…059220            72 5b 6a 6e 74 6b 5d 29 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 6e 78 74 74 73 28 69 6d 72 73 2c   ┆rÆjntkÅ);      while nxtts(imrs,┆
0x059220…059240            69 6d 74 73 29 20 64 6f 20 67 65 6e 6f 6e 65 28 69 6d 74 73 2c 69 6e 74 73 29 3b 0d 0a 20 20 65   ┆imts) do genone(imts,ints);    e┆
0x059240…059260            6e 64 3b 0d 0a 20 20 69 66 20 6e 6f 74 20 6e 75 6c 72 73 28 69 70 72 73 29 20 74 68 65 6e 20 67   ┆nd;    if not nulrs(iprs) then g┆
0x059260…059280            65 6e 70 77 6e 28 67 65 6e 70 6e 5b 6a 6e 74 6b 5d 2c 69 70 72 73 29 3b 0d 0a 65 6e 64 3b 0d 0a   ┆enpwn(genpnÆjntkÅ,iprs);  end;  ┆
0x059280…0592a0            0d 0a 70 72 6f 63 65 64 75 72 65 20 67 65 6e 6b 69 6c 6c 72 28 66 72 6f 6d 2c 20 69 74 6f 20 3a   ┆  procedure genkillr(from, ito :┆
0x0592a0…0592c0            20 74 73 29 3b 09 28 2a 20 67 65 6e 65 72 61 74 65 20 6b 69 6c 6c 65 72 20 6d 6f 76 65 20 2a 29   ┆ ts); (* generate killer move *)┆
0x0592c0…0592e0            0d 0a 76 61 72 20 66 72 72 73 2c 20 74 6f 72 73 2c 20 69 6e 72 73 2c 20 69 70 72 73 20 3a 20 72   ┆  var frrs, tors, inrs, iprs : r┆
0x0592e0…059300            73 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 66 72 72 73 3a 3d 78 72 73 73 5b 66 72 6f 6d 5d 3b 0d 0a   ┆s;  begin    frrs:=xrssÆfromÅ;  ┆
0x059300…059320            20 20 74 6f 72 73 3a 3d 78 72 73 73 5b 69 74 6f 5d 3b 0d 0a 20 20 61 6e 64 72 73 28 69 70 72 73   ┆  tors:=xrssÆitoÅ;    andrs(iprs┆
0x059320…059340            2c 66 72 72 73 2c 67 65 6e 70 6e 5b 6a 6e 74 6b 5d 29 3b 09 28 2a 20 76 61 6c 69 64 20 70 61 77   ┆,frrs,genpnÆjntkÅ); (* valid paw┆
0x059340…059360            6e 20 66 72 6f 6d 20 73 71 75 61 72 65 20 2a 29 0d 0a 20 20 69 66 20 6e 6f 74 20 6e 75 6c 72 73   ┆n from square *)    if not nulrs┆
0x059360…059380            28 69 70 72 73 29 20 74 68 65 6e 09 09 28 2a 20 70 61 77 6e 20 6d 6f 76 65 20 2a 29 0d 0a 20 20   ┆(iprs) then  (* pawn move *)    ┆
0x059380…0593a0            62 65 67 69 6e 0d 0a 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 74 6f 72 73 2c 67 65 6e 74 6f   ┆begin      andrs(inrs,tors,gento┆
0x0593a0…0593c0            5b 6a 6e 74 6b 5d 29 3b 09 28 2a 20 6f 6e 6c 79 20 76 61 69 6c 64 20 64 65 73 74 2e 73 71 75 61   ┆ÆjntkÅ); (* only vaild dest.squa┆
0x0593c0…0593e0            72 65 20 2a 29 0d 0a 20 20 20 20 69 66 20 6e 6f 74 20 6e 75 6c 72 73 28 69 6e 72 73 29 20 74 68   ┆re *)      if not nulrs(inrs) th┆
0x0593e0…059400            65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 63 6c 72 72 73 28 67 65 6e 74 6f   ┆en      begin        clrrs(gento┆
0x059400…059420 (22, 0, 6) 5b 6a 6e 74 6b 5d 2c 69 74 6f 29 3b 09 09 28 2a 20 72 65 6d 6f 76 65 20 64 65 73 74 2e 73 71 75   ┆ÆjntkÅ,ito);  (* remove dest.squ┆
0x059420…059440            61 72 65 20 2a 29 0d 0a 20 20 20 20 20 20 67 65 6e 70 77 6e 28 69 70 72 73 2c 74 6f 72 73 29 3b   ┆are *)        genpwn(iprs,tors);┆
0x059440…059460            0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 65 6e 64 0d 0a 20 20 65 6c 73 65 0d 0a 20 20 62 65 67   ┆      end;    end    else    beg┆
0x059460…059480            69 6e 09 09 09 09 09 28 2a 20 6e 6f 72 6d 61 6c 20 6d 6f 76 65 20 2a 29 0d 0a 20 20 20 20 61 6e   ┆in     (* normal move *)      an┆
0x059480…0594a0            64 72 73 28 69 6e 72 73 2c 66 72 72 73 2c 67 65 6e 66 72 5b 6a 6e 74 6b 5d 29 3b 09 28 2a 20 6f   ┆drs(inrs,frrs,genfrÆjntkÅ); (* o┆
0x0594a0…0594c0            6e 6c 79 20 76 61 6c 69 64 20 66 72 6f 6d 20 73 71 75 61 72 65 20 2a 29 0d 0a 20 20 20 20 69 66   ┆nly valid from square *)      if┆
0x0594c0…0594e0            20 6e 6f 74 20 6e 75 6c 72 73 28 69 6e 72 73 29 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e   ┆ not nulrs(inrs) then      begin┆
0x0594e0…059500            0d 0a 20 20 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 61 74 6b 66 72 5b 66 72 6f 6d 5d 2c 67   ┆        andrs(inrs,atkfrÆfromÅ,g┆
0x059500…059520            65 6e 74 6f 5b 6a 6e 74 6b 5d 29 3b 0d 0a 20 20 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 69   ┆entoÆjntkÅ);        andrs(inrs,i┆
0x059520…059540            6e 72 73 2c 74 6f 72 73 29 3b 09 09 28 2a 20 6f 6e 6c 79 20 76 61 6c 69 64 20 64 65 73 74 2e 73   ┆nrs,tors);  (* only valid dest.s┆
0x059540…059560            71 75 61 72 65 20 2a 29 0d 0a 20 20 20 20 20 20 69 66 20 6e 6f 74 20 6e 75 6c 72 73 28 69 6e 72   ┆quare *)        if not nulrs(inr┆
0x059560…059580            73 29 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 63 6c   ┆s) then        begin          cl┆
0x059580…0595a0            72 72 73 28 67 65 6e 74 6f 5b 6a 6e 74 6b 5d 2c 69 74 6f 29 3b 09 28 2a 20 72 65 6d 6f 76 65 20   ┆rrs(gentoÆjntkÅ,ito); (* remove ┆
0x0595a0…0595c0            64 65 73 74 2e 73 71 75 61 72 65 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 67 65 6e 6f 6e 65 28 66   ┆dest.square *)          genone(f┆
0x0595c0…0595e0            72 6f 6d 2c 69 74 6f 29 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d   ┆rom,ito);        end;      end; ┆
0x0595e0…059600            0a 20 20 65 6e 64 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20 67 65 6e 63 61   ┆   end;  end;    procedure genca┆
0x059600…059620            70 3b 09 09 28 2a 20 67 65 6e 65 72 61 74 65 20 63 61 70 74 75 72 65 20 6d 6f 76 65 73 20 2a 29   ┆p;  (* generate capture moves *)┆
0x059620…059640            0d 0a 76 61 72 20 69 6e 72 73 20 3a 20 72 73 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 69 6f 72 72 73   ┆  var inrs : rs;  begin    iorrs┆
0x059640…059660            28 69 6e 72 73 2c 65 6e 70 61 73 5b 6a 6e 74 6b 5d 2c 74 6d 6c 6f 63 5b 6f 74 68 65 72 5b 6a 6e   ┆(inrs,enpasÆjntkÅ,tmlocÆotherÆjn┆
0x059660…059680            74 6d 5d 5d 29 3b 0d 0a 20 20 67 65 6e 74 73 6c 28 69 6e 72 73 29 3b 0d 0a 65 6e 64 3b 0d 0a 0d   ┆tmÅÅ);    gentsl(inrs);  end;   ┆
0x059680…0596a0            0a 70 72 6f 63 65 64 75 72 65 20 67 65 6e 63 61 73 3b 09 09 28 2a 20 67 65 6e 65 72 61 74 65 20   ┆ procedure gencas;  (* generate ┆
0x0596a0…0596c0            63 61 73 74 6c 65 20 6d 6f 76 65 73 20 2a 29 0d 0a 76 61 72 0d 0a 20 20 69 6e 74 71 09 3a 20 74   ┆castle moves *)  var    intq : t┆
0x0596c0…0596e0            71 3b 0d 0a 20 20 69 6e 72 73 09 3a 20 72 73 3b 0d 0a 20 20 69 6d 72 73 09 3a 20 72 73 3b 0d 0a   ┆q;    inrs : rs;    imrs : rs;  ┆
0x0596e0…059700            62 65 67 69 6e 0d 0a 20 20 66 6f 72 20 69 6e 74 71 3a 3d 78 74 6d 71 5b 6a 6e 74 6d 5d 20 74 6f   ┆begin    for intq:=xtmqÆjntmÅ to┆
0x059700…059720            20 73 75 63 63 28 78 74 6d 71 5b 6a 6e 74 6d 5d 29 20 64 6f 0d 0a 20 20 20 20 69 66 20 69 6e 72   ┆ succ(xtmqÆjntmÅ) do      if inr┆
0x059720…059740            73 74 62 28 63 73 74 61 74 5b 6a 6e 74 6b 5d 2c 78 74 71 73 5b 69 6e 74 71 5d 29 20 74 68 65 6e   ┆stb(cstatÆjntkÅ,xtqsÆintqÅ) then┆
0x059740…059760            0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 78 72   ┆      begin        andrs(inrs,xr┆
0x059760…059780            71 73 6f 5b 69 6e 74 71 5d 2c 61 6c 6c 6f 63 5b 6a 6e 74 6b 5d 29 3b 0d 0a 20 20 20 20 20 20 61   ┆qsoÆintqÅ,allocÆjntkÅ);        a┆
0x059780…0597a0            6e 64 72 73 28 69 6d 72 73 2c 78 72 71 73 61 5b 69 6e 74 71 5d 2c 61 6c 61 74 6b 5b 6f 74 68 65   ┆ndrs(imrs,xrqsaÆintqÅ,alatkÆothe┆
0x0597a0…0597c0            72 5b 6a 6e 74 6d 5d 5d 29 3b 0d 0a 20 20 20 20 20 20 69 66 20 6e 75 6c 72 73 28 69 6e 72 73 29   ┆rÆjntmÅÅ);        if nulrs(inrs)┆
0x0597c0…0597e0            20 61 6e 64 20 6e 75 6c 72 73 28 69 6d 72 73 29 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 62 65 67   ┆ and nulrs(imrs) then        beg┆
0x0597e0…059800            69 6e 0d 0a 20 20 20 20 20 20 20 20 6d 6f 76 65 73 5b 6a 6e 74 77 5d 3a 3d 78 72 71 6d 5b 69 6e   ┆in          movesÆjntwÅ:=xrqmÆin┆
0x059800…059820 (22, 0, 7) 74 71 5d 3b 0d 0a 20 20 20 20 20 20 20 20 76 61 6c 75 75 5b 6a 6e 74 77 5d 3a 3d 30 3b 0d 0a 20   ┆tqÅ;          valuuÆjntwÅ:=0;   ┆
0x059820…059840            20 20 20 20 20 20 20 6a 6e 74 77 3a 3d 6a 6e 74 77 2b 31 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b   ┆       jntw:=jntw+1;        end;┆
0x059840…059860            0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20 67 65   ┆      end;  end;    procedure ge┆
0x059860…059880            6e 61 6c 6c 3b 09 09 28 2a 20 67 65 6e 65 72 61 74 65 20 61 6c 6c 20 6c 65 67 61 6c 20 6d 6f 76   ┆nall;  (* generate all legal mov┆
0x059880…0598a0            65 73 20 2a 29 0d 0a 62 65 67 69 6e 0d 0a 20 20 67 65 6e 66 73 6c 28 61 6c 6c 6f 63 5b 6a 6e 74   ┆es *)  begin    genfsl(allocÆjnt┆
0x0598a0…0598c0            6b 5d 29 3b 09 28 2a 20 67 65 6e 65 72 61 74 65 20 73 69 6d 70 6c 65 20 6d 6f 76 65 73 20 2a 29   ┆kÅ); (* generate simple moves *)┆
0x0598c0…0598e0            0d 0a 20 20 67 65 6e 63 61 73 3b 09 09 09 28 2a 20 67 65 6e 65 72 61 74 65 20 63 61 73 74 6c 65   ┆    gencas;   (* generate castle┆
0x0598e0…059900            20 6d 6f 76 65 73 20 2a 29 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20 6c 73 74   ┆ moves *)  end;    procedure lst┆
0x059900…059920            6d 6f 76 3b 09 09 28 2a 20 6c 73 74 20 6c 65 67 61 6c 20 70 6c 61 79 65 72 73 20 6d 6f 76 65 73   ┆mov;  (* lst legal players moves┆
0x059920…059940            20 2a 29 0d 0a 76 61 72 20 69 6e 74 77 20 3a 20 74 77 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 63 72   ┆ *)  var intw : tw;  begin    cr┆
0x059940…059960            65 61 74 65 3b 0d 0a 20 20 67 65 6e 61 6c 6c 3b 0d 0a 20 20 66 6f 72 20 69 6e 74 77 3a 3d 61 77   ┆eate;    genall;    for intw:=aw┆
0x059960…059980            2b 31 20 74 6f 20 6a 6e 74 77 2d 31 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 69 66   ┆+1 to jntw-1 do    begin      if┆
0x059980…0599a0            20 75 70 64 61 74 65 28 6d 6f 76 65 73 5b 69 6e 74 77 5d 29 20 74 68 65 6e 20 3b 0d 0a 20 20 20   ┆ update(movesÆintwÅ) then ;     ┆
0x0599a0…0599c0            20 64 6e 64 61 74 65 28 6d 6f 76 65 73 5b 69 6e 74 77 5d 29 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 65   ┆ dndate(movesÆintwÅ);    end;  e┆
0x0599c0…0599e0            6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20 74 68 65 6d 6f 76 28 61 3a 20 72 6d 29 3b 09   ┆nd;    procedure themov(a: rm); ┆
0x0599e0…059a00            28 2a 20 6d 61 6b 65 20 74 68 65 20 6d 6f 76 65 20 66 6f 72 20 72 65 61 6c 20 2a 29 0d 0a 76 61   ┆(* make the move for real *)  va┆
0x059a00…059a20            72 0d 0a 20 20 69 6e 74 62 09 3a 20 74 62 3b 0d 0a 20 20 69 6e 72 73 09 3a 20 72 73 3b 0d 0a 20   ┆r    intb : tb;    inrs : rs;   ┆
0x059a20…059a40            20 69 6e 74 71 09 3a 20 74 71 3b 0d 0a 20 20 69 6e 74 73 09 3a 20 74 73 3b 0d 0a 62 65 67 69 6e   ┆ intq : tq;    ints : ts;  begin┆
0x059a40…059a60            0d 0a 20 20 6c 73 74 6d 76 3a 3d 61 3b 0d 0a 20 20 69 6e 74 62 3a 3d 75 70 64 61 74 65 28 61 29   ┆    lstmv:=a;    intb:=update(a)┆
0x059a60…059a80            3b 0d 0a 20 20 77 69 74 68 20 62 6f 61 72 64 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20   ┆;    with board do    begin     ┆
0x059a80…059aa0            20 72 62 74 6d 3a 3d 6a 6e 74 6d 3b 0d 0a 20 20 20 20 69 6e 72 73 3a 3d 65 6e 70 61 73 5b 6a 6e   ┆ rbtm:=jntm;      inrs:=enpasÆjn┆
0x059aa0…059ac0            74 6b 5d 3b 0d 0a 20 20 20 20 69 66 20 6e 78 74 74 73 28 69 6e 72 73 2c 69 6e 74 73 29 20 74 68   ┆tkÅ;      if nxtts(inrs,ints) th┆
0x059ac0…059ae0            65 6e 20 72 62 74 73 3a 3d 69 6e 74 73 20 65 6c 73 65 20 72 62 74 73 3a 3d 61 74 74 3b 0d 0a 20   ┆en rbts:=ints else rbts:=att;   ┆
0x059ae0…059b00            20 20 20 69 66 20 6a 6e 74 6d 20 3d 20 64 61 72 6b 20 74 68 65 6e 20 72 62 74 69 3a 3d 72 62 74   ┆   if jntm = dark then rbti:=rbt┆
0x059b00…059b20            69 2b 31 3b 0d 0a 20 20 20 20 66 6f 72 20 69 6e 74 71 3a 3d 6c 73 20 74 6f 20 64 6c 20 64 6f 0d   ┆i+1;      for intq:=ls to dl do ┆
0x059b20…059b40            0a 20 20 20 20 20 20 69 66 20 69 6e 72 73 74 62 28 63 73 74 61 74 5b 6a 6e 74 6b 5d 2c 78 74 71   ┆       if inrstb(cstatÆjntkÅ,xtq┆
0x059b40…059b60            73 5b 69 6e 74 71 5d 29 20 74 68 65 6e 20 72 62 73 71 3a 3d 72 62 73 71 2b 5b 69 6e 74 71 5d 0d   ┆sÆintqÅ) then rbsq:=rbsq+ÆintqÅ ┆
0x059b60…059b80            0a 20 20 20 20 20 20 20 20 65 6c 73 65 20 72 62 73 71 3a 3d 72 62 73 71 2d 5b 69 6e 74 71 5d 3b   ┆         else rbsq:=rbsq-ÆintqÅ;┆
0x059b80…059ba0            0d 0a 20 20 20 20 66 6f 72 20 69 6e 74 73 3a 3d 61 73 20 74 6f 20 7a 73 20 64 6f 20 72 62 69 73   ┆      for ints:=as to zs do rbis┆
0x059ba0…059bc0            5b 69 6e 74 73 5d 3a 3d 6e 62 6f 72 64 5b 69 6e 74 73 5d 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 65 6e   ┆ÆintsÅ:=nbordÆintsÅ;    end;  en┆
0x059bc0…059be0            64 3b 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 3a 20 74 77 3b 20 28 2a 20 73 65   ┆d;    function search: tw; (* se┆
0x059be0…059c00            61 72 63 68 20 6c 6f 6f 6b 2d 61 68 65 61 64 20 74 72 65 65 2c 20 72 65 74 75 72 6e 20 74 68 65   ┆arch look-ahead tree, return the┆
0x059c00…059c20 (22, 0, 8) 20 62 65 73 74 20 6d 6f 76 65 20 2a 29 0d 0a 6c 61 62 65 6c 20 31 31 2c 31 32 2c 31 33 2c 31 34   ┆ best move *)  label 11,12,13,14┆
0x059c20…059c40            2c 31 35 2c 31 36 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 65 76 61 6c 75 38 3b 09 09 28 2a   ┆,15,16;    procedure evalu8;  (*┆
0x059c40…059c60            20 65 76 61 6c 75 61 74 65 20 63 75 72 72 65 6e 74 20 70 6f 73 69 74 69 6f 6e 20 2a 29 0d 0a 20   ┆ evaluate current position *)   ┆
0x059c60…059c80            20 76 61 72 0d 0a 20 20 20 20 69 6e 74 76 20 3a 20 74 76 3b 0d 0a 20 20 20 20 69 6d 74 76 20 3a   ┆ var      intv : tv;      imtv :┆
0x059c80…059ca0            20 74 76 3b 0d 0a 20 20 20 20 69 6e 74 71 20 3a 20 74 71 3b 0d 0a 20 20 20 20 69 6e 72 73 20 3a   ┆ tv;      intq : tq;      inrs :┆
0x059ca0…059cc0            20 72 73 3b 0d 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 65 76 61 74 6b 28 61 3a 20 74 6d 29 3a   ┆ rs;      function evatk(a: tm):┆
0x059cc0…059ce0            20 74 76 3b 0d 0a 20 20 20 20 76 61 72 0d 0a 20 20 20 20 20 20 69 6e 72 73 20 3a 20 72 73 3b 0d   ┆ tv;      var        inrs : rs; ┆
0x059ce0…059d00            0a 20 20 20 20 20 20 69 6e 74 73 20 3a 20 74 73 3b 0d 0a 20 20 20 20 20 20 69 6e 74 76 20 3a 20   ┆       ints : ts;        intv : ┆
0x059d00…059d20            74 76 3b 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 6e 74 76 3a 3d 30 3b 0d 0a   ┆tv;      begin        intv:=0;  ┆
0x059d20…059d40            20 20 20 20 20 20 69 6e 72 73 3a 3d 74 70 6c 6f 63 5b 78 74 75 6d 70 5b 65 6b 2c 6f 74 68 65 72   ┆      inrs:=tplocÆxtumpÆek,other┆
0x059d40…059d60            5b 61 5d 5d 5d 3b 0d 0a 20 20 20 20 20 20 69 66 20 6e 78 74 74 73 28 69 6e 72 73 2c 69 6e 74 73   ┆ÆaÅÅÅ;        if nxtts(inrs,ints┆
0x059d60…059d80            29 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 61 6e 64   ┆) then        begin          and┆
0x059d80…059da0            72 73 28 69 6e 72 73 2c 61 74 6b 66 72 5b 69 6e 74 73 5d 2c 61 6c 61 74 6b 5b 61 5d 29 3b 0d 0a   ┆rs(inrs,atkfrÆintsÅ,alatkÆaÅ);  ┆
0x059da0…059dc0            20 20 20 20 20 20 20 20 69 6e 74 76 3a 3d 63 6e 74 72 73 28 69 6e 72 73 29 2a 66 61 6b 69 6e 67   ┆        intv:=cntrs(inrs)*faking┆
0x059dc0…059de0            3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c   ┆;        end;        andrs(inrs,┆
0x059de0…059e00            61 6c 61 74 6b 5b 61 5d 2c 74 6d 6c 6f 63 5b 61 5d 29 3b 0d 0a 20 20 20 20 20 20 6e 6f 74 72 73   ┆alatkÆaÅ,tmlocÆaÅ);        notrs┆
0x059e00…059e20            28 69 6e 72 73 2c 69 6e 72 73 29 3b 0d 0a 20 20 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 69   ┆(inrs,inrs);        andrs(inrs,i┆
0x059e20…059e40            6e 72 73 2c 74 6d 6c 6f 63 5b 61 5d 29 3b 0d 0a 20 20 20 20 20 20 77 68 69 6c 65 20 6e 78 74 74   ┆nrs,tmlocÆaÅ);        while nxtt┆
0x059e40…059e60            73 28 69 6e 72 73 2c 69 6e 74 73 29 20 64 6f 09 09 28 2a 20 70 69 65 63 65 20 6e 6f 74 20 63 6f   ┆s(inrs,ints) do  (* piece not co┆
0x059e60…059e80            76 65 72 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 69 66 20 78 74 70 75 5b 6e 62 6f 72 64 5b 69 6e   ┆ver *)          if xtpuÆnbordÆin┆
0x059e80…059ea0            74 73 5d 5d 20 3c 3e 20 65 71 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 69 6e 74 76 3a   ┆tsÅÅ <> eq then            intv:┆
0x059ea0…059ec0            3d 69 6e 74 76 20 2d 20 61 62 73 28 78 74 70 76 5b 6e 62 6f 72 64 5b 69 6e 74 73 5d 5d 29 20 64   ┆=intv - abs(xtpvÆnbordÆintsÅÅ) d┆
0x059ec0…059ee0            69 76 20 66 77 61 74 74 6b 3b 0d 0a 20 20 20 20 20 20 65 76 61 74 6b 3a 3d 69 6e 74 76 3b 0d 0a   ┆iv fwattk;        evatk:=intv;  ┆
0x059ee0…059f00            20 20 20 20 20 20 69 66 20 73 77 74 72 20 74 68 65 6e 20 77 72 69 74 65 28 27 20 41 27 2c 69 6e   ┆      if swtr then write(' A',in┆
0x059f00…059f20            74 76 3a 30 29 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 65   ┆tv:0);      end;      function e┆
0x059f20…059f40            76 6b 69 6e 67 28 61 2c 20 62 3a 20 72 73 29 3a 20 74 76 3b 0d 0a 20 20 20 20 76 61 72 0d 0a 20   ┆vking(a, b: rs): tv;      var   ┆
0x059f40…059f60            20 20 20 20 20 69 6e 74 73 20 3a 20 74 73 3b 0d 0a 20 20 20 20 20 20 69 6e 72 73 20 3a 20 72 73   ┆     ints : ts;        inrs : rs┆
0x059f60…059f80            3b 0d 0a 20 20 20 20 20 20 69 6e 74 76 20 3a 20 74 76 3b 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a   ┆;        intv : tv;      begin  ┆
0x059f80…059fa0            20 20 20 20 20 20 69 6e 74 76 3a 3d 30 3b 0d 0a 20 20 20 20 20 20 69 6e 72 73 3a 3d 61 3b 0d 0a   ┆      intv:=0;        inrs:=a;  ┆
0x059fa0…059fc0            20 20 20 20 20 20 69 66 20 6e 78 74 74 73 28 69 6e 72 73 2c 69 6e 74 73 29 20 74 68 65 6e 0d 0a   ┆      if nxtts(inrs,ints) then  ┆
0x059fc0…059fe0            20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c   ┆      begin          andrs(inrs,┆
0x059fe0…05a000            61 74 6b 66 72 5b 69 6e 74 73 5d 2c 62 29 3b 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 76 3a 3d 69   ┆atkfrÆintsÅ,b);          intv:=i┆
0x05a000…05a020 (22, 1, 1) 6e 74 76 2b 63 6e 74 72 73 28 69 6e 72 73 29 2a 66 6b 70 73 68 64 3b 0d 0a 20 20 20 20 20 20 65   ┆ntv+cntrs(inrs)*fkpshd;        e┆
0x05a020…05a040            6e 64 3b 0d 0a 20 20 20 20 20 20 65 76 6b 69 6e 67 3a 3d 69 6e 74 76 3b 0d 0a 20 20 20 20 20 20   ┆nd;        evking:=intv;        ┆
0x05a040…05a060            69 66 20 73 77 74 72 20 74 68 65 6e 20 77 72 69 74 65 28 27 20 4b 27 2c 69 6e 74 76 3a 30 29 3b   ┆if swtr then write(' K',intv:0);┆
0x05a060…05a080            0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 65 76 6d 6f 62 6c 28   ┆      end;      function evmobl(┆
0x05a080…05a0a0            61 2c 20 62 3a 20 74 70 29 3a 20 74 76 3b 0d 0a 20 20 20 20 76 61 72 0d 0a 20 20 20 20 20 20 69   ┆a, b: tp): tv;      var        i┆
0x05a0a0…05a0c0            6e 72 73 20 3a 20 72 73 3b 0d 0a 20 20 20 20 20 20 69 6e 74 73 20 3a 20 74 73 3b 0d 0a 20 20 20   ┆nrs : rs;        ints : ts;     ┆
0x05a0c0…05a0e0            20 20 20 69 6e 74 76 20 3a 20 74 76 3b 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20   ┆   intv : tv;      begin        ┆
0x05a0e0…05a100            69 6f 72 72 73 28 69 6e 72 73 2c 74 70 6c 6f 63 5b 61 5d 2c 74 70 6c 6f 63 5b 62 5d 29 3b 0d 0a   ┆iorrs(inrs,tplocÆaÅ,tplocÆbÅ);  ┆
0x05a100…05a120            20 20 20 20 20 20 69 6e 74 76 3a 3d 30 3b 0d 0a 20 20 20 20 20 20 77 68 69 6c 65 20 6e 78 74 74   ┆      intv:=0;        while nxtt┆
0x05a120…05a140            73 28 69 6e 72 73 2c 69 6e 74 73 29 20 64 6f 20 69 6e 74 76 3a 3d 69 6e 74 76 2b 63 6e 74 72 73   ┆s(inrs,ints) do intv:=intv+cntrs┆
0x05a140…05a160            28 61 74 6b 66 72 5b 69 6e 74 73 5d 29 3b 0d 0a 20 20 20 20 20 20 65 76 6d 6f 62 6c 3a 3d 69 6e   ┆(atkfrÆintsÅ);        evmobl:=in┆
0x05a160…05a180            74 76 3b 0d 0a 20 20 20 20 20 20 69 66 20 73 77 74 72 20 74 68 65 6e 20 77 72 69 74 65 28 27 20   ┆tv;        if swtr then write(' ┆
0x05a180…05a1a0            4d 27 2c 69 6e 74 76 3a 30 29 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 66 75 6e 63 74   ┆M',intv:0);      end;      funct┆
0x05a1a0…05a1c0            69 6f 6e 20 65 76 70 61 77 6e 28 61 3a 20 72 73 3b 20 62 3a 20 74 65 3b 20 63 3a 20 74 72 3b 20   ┆ion evpawn(a: rs; b: te; c: tr; ┆
0x05a1c0…05a1e0            64 3a 20 74 6d 29 3a 74 76 3b 0d 0a 20 20 20 20 76 61 72 0d 0a 20 20 20 20 20 20 69 20 20 20 20   ┆d: tm):tv;      var        i    ┆
0x05a1e0…05a200            3a 20 74 69 3b 0d 0a 20 20 20 20 20 20 69 6e 72 73 20 3a 20 72 73 3b 0d 0a 20 20 20 20 20 20 69   ┆: ti;        inrs : rs;        i┆
0x05a200…05a220            6d 72 73 20 3a 20 72 73 3b 0d 0a 20 20 20 20 20 20 69 6e 74 73 20 3a 20 74 73 3b 0d 0a 20 20 20   ┆mrs : rs;        ints : ts;     ┆
0x05a220…05a240            20 20 20 69 6d 74 73 20 3a 20 74 73 3b 0d 0a 20 20 20 20 20 20 69 6e 74 66 20 3a 20 74 66 3b 0d   ┆   imts : ts;        intf : tf; ┆
0x05a240…05a260            0a 20 20 20 20 20 20 69 6e 66 73 20 3a 20 61 72 72 61 79 5b 74 66 5d 20 6f 66 20 74 73 3b 0d 0a   ┆       infs : arrayÆtfÅ of ts;  ┆
0x05a260…05a280            20 20 20 20 20 20 69 6e 74 76 20 3a 20 74 76 3b 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20   ┆      intv : tv;      begin     ┆
0x05a280…05a2a0            20 20 20 73 66 74 72 73 28 69 6e 72 73 2c 61 2c 73 31 29 3b 0d 0a 20 20 20 20 20 20 61 6e 64 72   ┆   sftrs(inrs,a,s1);        andr┆
0x05a2a0…05a2c0            73 28 69 6e 72 73 2c 69 6e 72 73 2c 61 29 3b 0d 0a 20 20 20 20 20 20 69 6e 74 76 3a 3d 63 6e 74   ┆s(inrs,inrs,a);        intv:=cnt┆
0x05a2c0…05a2e0            72 73 28 69 6e 72 73 29 2a 66 70 66 6c 6e 78 3b 0d 0a 20 20 20 20 20 20 73 66 74 72 73 28 69 6e   ┆rs(inrs)*fpflnx;        sftrs(in┆
0x05a2e0…05a300            72 73 2c 61 2c 62 31 29 3b 0d 0a 20 20 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 69 6e 72 73   ┆rs,a,b1);        andrs(inrs,inrs┆
0x05a300…05a320            2c 61 29 3b 0d 0a 20 20 20 20 20 20 69 6e 74 76 3a 3d 69 6e 74 76 2b 63 6e 74 72 73 28 69 6e 72   ┆,a);        intv:=intv+cntrs(inr┆
0x05a320…05a340            73 29 2a 66 70 63 6f 6e 6e 3b 0d 0a 20 20 20 20 20 20 73 66 74 72 73 28 69 6e 72 73 2c 61 2c 62   ┆s)*fpconn;        sftrs(inrs,a,b┆
0x05a340…05a360            32 29 3b 0d 0a 20 20 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 69 6e 72 73 2c 61 29 3b 0d 0a   ┆2);        andrs(inrs,inrs,a);  ┆
0x05a360…05a380            20 20 20 20 20 20 69 6e 74 76 3a 3d 69 6e 74 76 2b 63 6e 74 72 73 28 69 6e 72 73 29 2a 66 70 63   ┆      intv:=intv+cntrs(inrs)*fpc┆
0x05a380…05a3a0            6f 6e 6e 3b 0d 0a 20 20 20 20 20 20 73 66 74 72 73 28 69 6e 72 73 2c 61 2c 62 29 3b 0d 0a 20 20   ┆onn;        sftrs(inrs,a,b);    ┆
0x05a3a0…05a3c0            20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 69 6e 72 73 2c 74 6d 6c 6f 63 5b 64 5d 29 3b 0d 0a   ┆    andrs(inrs,inrs,tmlocÆdÅ);  ┆
0x05a3c0…05a3e0            20 20 20 20 20 20 69 3a 3d 63 6e 74 72 73 28 69 6e 72 73 29 3b 0d 0a 20 20 20 20 20 20 69 66 20   ┆      i:=cntrs(inrs);        if ┆
0x05a3e0…05a400            69 20 3e 20 30 20 74 68 65 6e 09 28 2a 20 62 6c 6f 63 6b 65 64 20 62 79 20 6f 77 6e 20 70 69 65   ┆i > 0 then (* blocked by own pie┆
0x05a400…05a420 (22, 1, 2) 63 65 20 2a 29 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 76   ┆ce *)        begin          intv┆
0x05a420…05a440            3a 3d 69 6e 74 76 2d 69 2a 66 70 62 6c 6f 6b 3b 09 09 09 28 2a 20 70 65 6e 61 6c 69 7a 65 20 66   ┆:=intv-i*fpblok;   (* penalize f┆
0x05a440…05a460            6f 72 20 62 6c 6f 63 6b 65 64 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 61 6e 64 72 73 28 69 6d 72   ┆or blocked *)          andrs(imr┆
0x05a460…05a480            73 2c 69 6e 72 73 2c 61 29 3b 09 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 76 3a 3d 69 6e 74 76 2d   ┆s,inrs,a);           intv:=intv-┆
0x05a480…05a4a0            63 6e 74 72 73 28 69 6d 72 73 29 2a 66 70 62 6c 6f 6b 3b 09 09 28 2a 20 64 6f 75 62 6c 65 20 69   ┆cntrs(imrs)*fpblok;  (* double i┆
0x05a4a0…05a4c0            66 20 6f 77 6e 20 70 61 77 6e 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 61 6e 64 72 73 28 69 6d 72   ┆f own pawn *)          andrs(imr┆
0x05a4c0…05a4e0            73 2c 69 6e 72 73 2c 74 70 6c 6f 63 5b 78 74 75 6d 70 5b 65 6e 2c 64 5d 5d 29 3b 0d 0a 20 20 20   ┆s,inrs,tplocÆxtumpÆen,dÅÅ);     ┆
0x05a4e0…05a500            20 20 20 20 20 69 6e 74 76 3a 3d 69 6e 74 76 2b 63 6e 74 72 73 28 69 6d 72 73 29 2a 28 66 70 62   ┆     intv:=intv+cntrs(imrs)*(fpb┆
0x05a500…05a520            6c 6f 6b 2d 66 70 62 6c 6f 6b 20 64 69 76 20 34 29 3b 09 28 2a 20 31 2f 34 20 69 66 20 4e 20 2a   ┆lok-fpblok div 4); (* 1/4 if N *┆
0x05a520…05a540            29 0d 0a 20 20 20 20 20 20 20 20 61 6e 64 72 73 28 69 6d 72 73 2c 69 6e 72 73 2c 74 70 6c 6f 63   ┆)          andrs(imrs,inrs,tploc┆
0x05a540…05a560            5b 78 74 75 6d 70 5b 65 71 2c 64 5d 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 76 3a 3d 69   ┆ÆxtumpÆeq,dÅÅ);          intv:=i┆
0x05a560…05a580            6e 74 76 2b 63 6e 74 72 73 28 69 6d 72 73 29 2a 28 66 70 62 6c 6f 6b 2d 66 70 62 6c 6f 6b 20 64   ┆ntv+cntrs(imrs)*(fpblok-fpblok d┆
0x05a580…05a5a0            69 76 20 32 29 3b 09 28 2a 20 31 2f 32 20 69 66 20 51 20 2a 29 0d 0a 20 20 20 20 20 20 65 6e 64   ┆iv 2); (* 1/2 if Q *)        end┆
0x05a5a0…05a5c0            3b 0d 0a 20 20 20 20 20 20 69 6e 72 73 3a 3d 61 3b 0d 0a 20 20 20 20 20 20 66 6f 72 20 69 6e 74   ┆;        inrs:=a;        for int┆
0x05a5c0…05a5e0            66 3a 3d 66 31 20 74 6f 20 66 38 20 64 6f 20 69 6e 66 73 5b 69 6e 74 66 5d 3a 3d 61 73 3b 0d 0a   ┆f:=f1 to f8 do infsÆintfÅ:=as;  ┆
0x05a5e0…05a600            20 20 20 20 20 20 77 68 69 6c 65 20 6e 78 74 74 73 28 69 6e 72 73 2c 69 6e 74 73 29 20 64 6f 0d   ┆      while nxtts(inrs,ints) do ┆
0x05a600…05a620            0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 66 3a 3d 78 74 73 66   ┆       begin          intf:=xtsf┆
0x05a620…05a640            5b 69 6e 74 73 5d 3b 0d 0a 20 20 20 20 20 20 20 20 69 6d 74 73 3a 3d 78 74 72 66 73 5b 63 2c 66   ┆ÆintsÅ;          imts:=xtrfsÆc,f┆
0x05a640…05a660            31 5d 3b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 66 73 5b 69 6e 74 66 5d 20 3e 20 61 73 20   ┆1Å;          if infsÆintfÅ > as ┆
0x05a660…05a680            74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 63 20 3d 20 72 32 20 74 68 65 6e 20 69   ┆then            if c = r2 then i┆
0x05a680…05a6a0            6d 74 73 3a 3d 6d 61 78 28 69 6e 66 73 5b 69 6e 74 66 5d 2c 69 6e 74 73 29 0d 0a 20 20 20 20 20   ┆mts:=max(infsÆintfÅ,ints)       ┆
0x05a6a0…05a6c0            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 6d 74 73 3a 3d 6d 69 6e 28 69 6e   ┆               else imts:=min(in┆
0x05a6c0…05a6e0            66 73 5b 69 6e 74 66 5d 2c 69 6e 74 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 69 6e 66 73 5b 69 6e   ┆fsÆintfÅ,ints);          infsÆin┆
0x05a6e0…05a700            74 66 5d 3a 3d 69 6e 74 73 3b 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 76 3a 3d 69 6e 74 76 2b 28   ┆tfÅ:=ints;          intv:=intv+(┆
0x05a700…05a720            61 62 73 28 6f 72 64 28 63 29 2d 6f 72 64 28 78 74 73 72 5b 69 6e 74 73 5d 29 29 2d 0d 0a 20 20   ┆abs(ord(c)-ord(xtsrÆintsÅ))-    ┆
0x05a720…05a740            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 62 73 28 6f 72 64 28 63 29 2d 6f 72 64   ┆                  abs(ord(c)-ord┆
0x05a740…05a760            28 78 74 73 72 5b 69 6d 74 73 5d 29 29 29 2a 66 70 61 64 63 72 5b 69 6e 74 66 5d 3b 0d 0a 20 20   ┆(xtsrÆimtsÅ)))*fpadcrÆintfÅ;    ┆
0x05a760…05a780            20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 65 76 70 61 77 6e 3a 3d 69 6e 74 76 3b 0d 0a 20   ┆    end;        evpawn:=intv;   ┆
0x05a780…05a7a0            20 20 20 20 20 69 66 20 73 77 74 72 20 74 68 65 6e 20 77 72 69 74 65 28 27 20 50 27 2c 69 6e 74   ┆     if swtr then write(' P',int┆
0x05a7a0…05a7c0            76 3a 30 29 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 65 76   ┆v:0);      end;      function ev┆
0x05a7c0…05a7e0            72 6f 6f 6b 28 61 2c 20 62 3a 20 72 73 29 3a 20 74 76 3b 0d 0a 20 20 20 20 76 61 72 0d 0a 20 20   ┆rook(a, b: rs): tv;      var    ┆
0x05a7e0…05a800            20 20 20 20 69 6e 74 76 20 3a 20 74 76 3b 0d 0a 20 20 20 20 20 20 69 6e 74 69 20 3a 20 74 69 3b   ┆    intv : tv;        inti : ti;┆
0x05a800…05a820 (22, 1, 3) 0d 0a 20 20 20 20 20 20 69 6e 74 73 20 3a 20 74 73 3b 0d 0a 20 20 20 20 20 20 69 6e 72 73 20 3a   ┆        ints : ts;        inrs :┆
0x05a820…05a840            20 72 73 3b 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 6e 74 76 3a 3d 30 3b 0d   ┆ rs;      begin        intv:=0; ┆
0x05a840…05a860            0a 20 20 20 20 20 20 69 6e 72 73 3a 3d 61 3b 0d 0a 20 20 20 20 20 20 69 66 20 6e 78 74 74 73 28   ┆       inrs:=a;        if nxtts(┆
0x05a860…05a880            69 6e 72 73 2c 69 6e 74 73 29 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20   ┆inrs,ints) then        begin    ┆
0x05a880…05a8a0            20 20 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 61 2c 61 74 6b 66 72 5b 69 6e 74 73 5d 29 3b   ┆      andrs(inrs,a,atkfrÆintsÅ);┆
0x05a8a0…05a8c0            0d 0a 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 6e 75 6c 72 73 28 69 6e 72 73 29 20 74 68 65   ┆          if not nulrs(inrs) the┆
0x05a8c0…05a8e0            6e 20 69 6e 74 76 3a 3d 69 6e 74 76 2b 66 72 64 75 62 6c 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b   ┆n intv:=intv+frdubl;        end;┆
0x05a8e0…05a900            0d 0a 20 20 20 20 20 20 61 6e 64 72 73 28 69 6e 72 73 2c 61 2c 62 29 3b 0d 0a 20 20 20 20 20 20   ┆        andrs(inrs,a,b);        ┆
0x05a900…05a920            69 6e 74 69 3a 3d 63 6e 74 72 73 28 69 6e 72 73 29 3b 0d 0a 20 20 20 20 20 20 69 6e 74 76 3a 3d   ┆inti:=cntrs(inrs);        intv:=┆
0x05a920…05a940            69 6e 74 76 2b 69 6e 74 69 2a 69 6e 74 69 2a 66 72 6b 37 74 68 3b 0d 0a 20 20 20 20 20 20 65 76   ┆intv+inti*inti*frk7th;        ev┆
0x05a940…05a960            72 6f 6f 6b 3a 3d 69 6e 74 76 3b 0d 0a 20 20 20 20 20 20 69 66 20 73 77 74 72 20 74 68 65 6e 20   ┆rook:=intv;        if swtr then ┆
0x05a960…05a980            77 72 69 74 65 28 27 20 52 27 2c 69 6e 74 76 3a 30 29 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20   ┆write(' R',intv:0);      end;   ┆
0x05a980…05a9a0            20 20 20 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 69 66 20 73 77 74 72 20 74 68 65 6e 20 77   ┆       begin      if swtr then w┆
0x05a9a0…05a9c0            72 69 74 65 28 27 4d 42 27 2c 6d 62 76 61 6c 5b 6a 6e 74 6b 5d 3a 30 29 3b 0d 0a 20 20 20 20 69   ┆rite('MB',mbvalÆjntkÅ:0);      i┆
0x05a9c0…05a9e0            66 20 78 74 6d 76 5b 6a 6e 74 6d 5d 2a 6d 62 76 61 6c 5b 6a 6e 74 6b 5d 2b 6d 61 78 70 73 20 3c   ┆f xtmvÆjntmÅ*mbvalÆjntkÅ+maxps <┆
0x05a9e0…05aa00            3d 20 62 73 74 76 6c 5b 6a 6e 74 6b 2d 32 5d 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 69 6e 74 76   ┆= bstvlÆjntk-2Å then        intv┆
0x05aa00…05aa20            3a 3d 78 74 6d 76 5b 6a 6e 74 6d 5d 2a 6d 62 76 61 6c 5b 6a 6e 74 6b 5d 0d 0a 20 20 20 20 65 6c   ┆:=xtmvÆjntmÅ*mbvalÆjntkÅ      el┆
0x05aa20…05aa40            73 65 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 6e 74 76 3a 3d 0d 0a 20 20 20   ┆se      begin        intv:=     ┆
0x05aa40…05aa60            20 20 20 20 20 28 66 77 70 61 77 6e 2a 28 65 76 70 61 77 6e 28 74 70 6c 6f 63 5b 6c 70 5d 2c 73   ┆     (fwpawn*(evpawn(tplocÆlpÅ,s┆
0x05aa60…05aa80            32 2c 72 32 2c 6c 69 74 65 29 2d 65 76 70 61 77 6e 28 74 70 6c 6f 63 5b 64 70 5d 2c 73 34 2c 72   ┆2,r2,lite)-evpawn(tplocÆdpÅ,s4,r┆
0x05aa80…05aaa0            37 2c 64 61 72 6b 29 29 0d 0a 20 20 20 20 20 20 09 20 20 2b 66 77 6d 69 6e 6d 2a 28 65 76 6d 6f   ┆7,dark))           +fwminm*(evmo┆
0x05aaa0…05aac0            62 6c 28 6c 62 2c 6c 6e 29 09 20 20 20 20 2d 65 76 6d 6f 62 6c 28 64 62 2c 64 6e 29 09 20 20 20   ┆bl(lb,ln)     -evmobl(db,dn)    ┆
0x05aac0…05aae0            20 20 20 29 0d 0a 20 20 20 20 20 20 09 20 20 2b 66 77 6d 61 6a 6d 2a 28 65 76 6d 6f 62 6c 28 6c   ┆   )           +fwmajm*(evmobl(l┆
0x05aae0…05ab00            72 2c 6c 71 29 09 20 20 20 20 2d 65 76 6d 6f 62 6c 28 64 72 2c 64 71 29 09 20 20 20 20 20 20 29   ┆r,lq)     -evmobl(dr,dq)       )┆
0x05ab00…05ab20            0d 0a 20 20 20 20 20 20 20 2b 66 77 72 6f 6f 6b 2a 28 65 76 72 6f 6f 6b 28 74 70 6c 6f 63 5b 6c   ┆         +fwrook*(evrook(tplocÆl┆
0x05ab20…05ab40            72 5d 2c 78 72 72 73 5b 72 37 5d 29 2d 65 76 72 6f 6f 6b 28 74 70 6c 6f 63 5b 64 72 5d 2c 78 72   ┆rÅ,xrrsÆr7Å)-evrook(tplocÆdrÅ,xr┆
0x05ab40…05ab60            72 73 5b 72 32 5d 29 29 0d 0a 20 20 20 20 20 20 2b 66 77 6b 69 6e 67 2a 28 65 76 6b 69 6e 67 28   ┆rsÆr2Å))        +fwking*(evking(┆
0x05ab60…05ab80            74 70 6c 6f 63 5b 6c 6b 5d 2c 74 70 6c 6f 63 5b 6c 70 5d 29 2d 65 76 6b 69 6e 67 28 74 70 6c 6f   ┆tplocÆlkÅ,tplocÆlpÅ)-evking(tplo┆
0x05ab80…05aba0            63 5b 64 6b 5d 2c 74 70 6c 6f 63 5b 64 70 5d 29 29 0d 0a 20 20 20 20 20 20 29 20 64 69 76 20 36   ┆cÆdkÅ,tplocÆdpÅ))        ) div 6┆
0x05aba0…05abc0            34 3b 0d 0a 20 20 20 20 20 20 69 66 20 73 77 74 72 20 74 68 65 6e 20 77 72 69 74 65 28 27 20 76   ┆4;        if swtr then write(' v┆
0x05abc0…05abe0            3d 27 2c 69 6e 74 76 3a 30 29 3b 0d 0a 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 69 6d 74 76 3a   ┆=',intv:0);                imtv:┆
0x05abe0…05ac00            3d 30 3b 0d 0a 20 20 20 20 20 20 66 6f 72 20 69 6e 74 71 3a 3d 6c 73 20 74 6f 20 64 6c 20 64 6f   ┆=0;        for intq:=ls to dl do┆
0x05ac00…05ac20 (22, 1, 4) 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 73 74 62 28 63 73 74 61 74 5b 6a 6e 74 6b 5d 2c   ┆          if inrstb(cstatÆjntkÅ,┆
0x05ac20…05ac40            78 74 71 73 5b 69 6e 74 71 5d 29 20 74 68 65 6e 09 28 2a 20 63 61 73 74 6c 65 20 6c 65 67 61 6c   ┆xtqsÆintqÅ) then (* castle legal┆
0x05ac40…05ac60            20 2a 29 0d 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 61 6e   ┆ *)          begin            an┆
0x05ac60…05ac80            64 72 73 28 69 6e 72 73 2c 78 72 71 73 6f 5b 69 6e 74 71 5d 2c 74 70 6c 6f 63 5b 6d 74 5d 29 3b   ┆drs(inrs,xrqsoÆintqÅ,tplocÆmtÅ);┆
0x05ac80…05aca0            0d 0a 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 69 6e 74 71 20 6f 66 0d 0a 20 20 20 20 20 20   ┆            case intq of        ┆
0x05aca0…05acc0            20 20 20 20 20 6c 73 20 3a 20 69 6d 74 76 3a 3d 69 6d 74 76 2b 28 63 6e 74 72 73 28 69 6e 72 73   ┆     ls : imtv:=imtv+(cntrs(inrs┆
0x05acc0…05ace0            29 2b 31 29 2a 32 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 6c 6c 20 3a 20 69 6d 74 76 3a 3d 69   ┆)+1)*2;             ll : imtv:=i┆
0x05ace0…05ad00            6d 74 76 2b 28 63 6e 74 72 73 28 69 6e 72 73 29 2b 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆mtv+(cntrs(inrs)+1);            ┆
0x05ad00…05ad20            20 64 73 20 3a 20 69 6d 74 76 3a 3d 69 6d 74 76 2d 28 63 6e 74 72 73 28 69 6e 72 73 29 2b 31 29   ┆ ds : imtv:=imtv-(cntrs(inrs)+1)┆
0x05ad20…05ad40            2a 32 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 64 6c 20 3a 20 69 6d 74 76 3a 3d 69 6d 74 76 2d   ┆*2;             dl : imtv:=imtv-┆
0x05ad40…05ad60            28 63 6e 74 72 73 28 69 6e 72 73 29 2b 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b   ┆(cntrs(inrs)+1);            end;┆
0x05ad60…05ad80            0d 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 69 6e 74 76 3a 3d 69 6e 74 76   ┆          end;        intv:=intv┆
0x05ad80…05ada0            2b 69 6d 74 76 2a 66 63 66 72 65 65 3b 0d 0a 20 20 20 20 20 20 69 66 20 63 61 73 74 6c 65 5b 6c   ┆+imtv*fcfree;        if castleÆl┆
0x05ada0…05adc0            69 74 65 5d 20 74 68 65 6e 20 69 6e 74 76 3a 3d 69 6e 74 76 2d 28 66 6b 73 61 6e 71 2d 28 62 6f   ┆iteÅ then intv:=intv-(fksanq-(bo┆
0x05adc0…05ade0            61 72 64 2e 72 62 74 69 2b 6a 6e 74 6b 29 29 3b 0d 0a 20 20 20 20 20 20 69 66 20 63 61 73 74 6c   ┆ard.rbti+jntk));        if castl┆
0x05ade0…05ae00            65 5b 64 61 72 6b 5d 20 74 68 65 6e 20 69 6e 74 76 3a 3d 69 6e 74 76 2b 28 66 6b 73 61 6e 71 2d   ┆eÆdarkÅ then intv:=intv+(fksanq-┆
0x05ae00…05ae20            28 62 6f 61 72 64 2e 72 62 74 69 2b 6a 6e 74 6b 29 29 3b 0d 0a 20 20 20 20 20 20 69 66 20 73 77   ┆(board.rbti+jntk));        if sw┆
0x05ae20…05ae40            74 72 20 74 68 65 6e 20 77 72 69 74 65 28 27 20 76 63 3d 27 2c 69 6e 74 76 3a 30 29 3b 0d 0a 20   ┆tr then write(' vc=',intv:0);   ┆
0x05ae40…05ae60            20 20 20 20 20 0d 0a 20 20 20 20 20 20 69 6e 74 76 3a 3d 69 6e 74 76 20 2b 20 28 65 76 61 74 6b   ┆             intv:=intv + (evatk┆
0x05ae60…05ae80            28 6c 69 74 65 29 20 2d 20 65 76 61 74 6b 28 64 61 72 6b 29 29 3b 0d 0a 20 20 20 20 20 20 69 66   ┆(lite) - evatk(dark));        if┆
0x05ae80…05aea0            20 6d 6f 76 65 73 5b 69 6e 64 65 78 5b 6a 6e 74 6b 5d 5d 2e 72 6d 63 68 20 74 68 65 6e 0d 0a 20   ┆ movesÆindexÆjntkÅÅ.rmch then   ┆
0x05aea0…05aec0            20 20 20 20 20 20 20 69 6e 74 76 3a 3d 69 6e 74 76 2d 78 74 6d 76 5b 6a 6e 74 6d 5d 2a 66 63 68   ┆       intv:=intv-xtmvÆjntmÅ*fch┆
0x05aec0…05aee0            65 63 6b 3b 09 28 2a 20 62 6f 6e 75 73 20 2a 29 0d 0a 20 20 20 20 20 20 6d 61 78 70 73 3a 3d 6d   ┆eck; (* bonus *)        maxps:=m┆
0x05aee0…05af00            61 78 28 6d 61 78 70 73 2c 61 62 73 28 69 6e 74 76 29 29 3b 0d 0a 20 20 20 20 20 20 69 6e 74 76   ┆ax(maxps,abs(intv));        intv┆
0x05af00…05af20            3a 3d 78 74 6d 76 5b 6a 6e 74 6d 5d 2a 28 6d 62 76 61 6c 5b 6a 6e 74 6b 5d 2b 69 6e 74 76 29 3b   ┆:=xtmvÆjntmÅ*(mbvalÆjntkÅ+intv);┆
0x05af20…05af40            0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 69 66 20 73 77 74 72 20 74 68 65 6e 0d 0a 20 20   ┆      end;      if swtr then    ┆
0x05af40…05af60            20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 28 27 20 4d 50 53 27 2c 6d 61   ┆  begin        writeln(' MPS',ma┆
0x05af60…05af80            78 70 73 3a 30 2c 27 20 54 4d 27 2c 78 74 6d 76 5b 6a 6e 74 6d 5d 3a 30 2c 27 20 56 3d 27 2c 69   ┆xps:0,' TM',xtmvÆjntmÅ:0,' V=',i┆
0x05af80…05afa0            6e 74 76 3a 30 29 3b 0d 0a 20 20 20 20 20 20 77 72 69 74 65 28 27 20 27 3a 6a 6e 74 6b 2a 32 2c   ┆ntv:0);        write(' ':jntk*2,┆
0x05afa0…05afc0            27 20 45 56 41 4c 55 38 20 27 2c 6a 6e 74 6b 3a 30 2c 27 20 27 2c 6a 6e 74 77 3a 30 2c 27 20 27   ┆' EVALU8 ',jntk:0,' ',jntw:0,' '┆
0x05afc0…05afe0            2c 69 6e 64 65 78 5b 6a 6e 74 6b 5d 3a 30 2c 27 20 27 2c 69 6e 74 76 3a 30 29 3b 0d 0a 20 20 20   ┆,indexÆjntkÅ:0,' ',intv:0);     ┆
0x05afe0…05b000            20 20 20 70 72 69 6d 6f 76 28 6d 6f 76 65 73 5b 69 6e 64 65 78 5b 6a 6e 74 6b 5d 5d 29 3b 0d 0a   ┆   primov(movesÆindexÆjntkÅÅ);  ┆
0x05b000…05b020 (22, 1, 5) 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 76 61 6c 75 75 5b 69 6e 64 65 78 5b 6a 6e 74 6b 5d 5d   ┆    end;      valuuÆindexÆjntkÅÅ┆
0x05b020…05b040            3a 3d 69 6e 74 76 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 6e 65 77   ┆:=intv;    end;    procedure new┆
0x05b040…05b060            62 73 74 28 61 3a 20 74 6b 29 3b 09 28 2a 20 73 61 76 65 20 62 65 73 74 20 6d 6f 76 65 20 2a 29   ┆bst(a: tk); (* save best move *)┆
0x05b060…05b080            0d 0a 20 20 76 61 72 0d 0a 20 20 20 20 69 6e 74 77 20 3a 20 74 77 3b 0d 0a 20 20 20 20 69 6e 72   ┆    var      intw : tw;      inr┆
0x05b080…05b0a0            6d 20 3a 20 72 6d 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 62 73 74 6d 76 5b 61 5d 3a 3d   ┆m : rm;    begin      bstmvÆaÅ:=┆
0x05b0a0…05b0c0            69 6e 64 65 78 5b 61 2b 31 5d 3b 0d 0a 20 20 20 20 69 66 20 61 20 3d 20 61 6b 20 74 68 65 6e 0d   ┆indexÆa+1Å;      if a = ak then ┆
0x05b0c0…05b0e0            0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 6e 72 6d 3a 3d 6d 6f 76 65 73 5b 62 73   ┆     begin        inrm:=movesÆbs┆
0x05b0e0…05b100            74 6d 76 5b 61 5d 5d 3b 0d 0a 20 20 20 20 20 20 69 66 20 73 77 62 6d 20 74 68 65 6e 0d 0a 20 20   ┆tmvÆaÅÅ;        if swbm then    ┆
0x05b100…05b120            20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 28 27 2a 20 4e 45 57 42   ┆    begin          write('* NEWB┆
0x05b120…05b140            45 53 54 20 2a 20 20 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 70 72 69 6d 6f 76 28 69 6e 72 6d 29   ┆EST *  ');          primov(inrm)┆
0x05b140…05b160            3b 0d 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 28 27 20 20 20 20 20 20 27 2c 62 73 74 76 6c 5b   ┆;          write('      ',bstvlÆ┆
0x05b160…05b180            61 6b 2b 31 5d 3a 35 2c 27 20 20 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 70 72 69 6d 6f 76 28 6d   ┆ak+1Å:5,'  ');          primov(m┆
0x05b180…05b1a0            6f 76 65 73 5b 62 73 74 6d 76 5b 61 6b 2b 31 5d 5d 29 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d   ┆ovesÆbstmvÆak+1ÅÅ);        end; ┆
0x05b1a0…05b1c0            0a 20 20 20 20 20 20 66 6f 72 20 69 6e 74 77 3a 3d 62 73 74 6d 76 5b 61 5d 2d 31 20 64 6f 77 6e   ┆       for intw:=bstmvÆaÅ-1 down┆
0x05b1c0…05b1e0            74 6f 20 61 77 2b 31 20 64 6f 0d 0a 20 20 20 20 20 20 20 20 6d 6f 76 65 73 5b 69 6e 74 77 2b 31   ┆to aw+1 do          movesÆintw+1┆
0x05b1e0…05b200            5d 3a 3d 6d 6f 76 65 73 5b 69 6e 74 77 5d 3b 0d 0a 20 20 20 20 20 20 6d 6f 76 65 73 5b 61 77 2b   ┆Å:=movesÆintwÅ;        movesÆaw+┆
0x05b200…05b220            31 5d 3a 3d 69 6e 72 6d 3b 0d 0a 20 20 20 20 20 20 62 73 74 6d 76 5b 61 6b 5d 3a 3d 61 77 2b 31   ┆1Å:=inrm;        bstmvÆakÅ:=aw+1┆
0x05b220…05b240            3b 0d 0a 20 20 20 20 65 6e 64 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 6e 6f 74 20 6d 6f   ┆;      end else        if not mo┆
0x05b240…05b260            76 65 73 5b 62 73 74 6d 76 5b 61 5d 5d 2e 72 6d 63 61 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20   ┆vesÆbstmvÆaÅÅ.rmca then         ┆
0x05b260…05b280            20 6b 69 6c 6c 72 5b 6a 6e 74 6b 5d 3a 3d 6d 6f 76 65 73 5b 62 73 74 6d 76 5b 61 5d 5d 3b 0d 0a   ┆ killrÆjntkÅ:=movesÆbstmvÆaÅÅ;  ┆
0x05b280…05b2a0            20 20 65 6e 64 3b 0d 0a 20 20 66 75 6e 63 74 69 6f 6e 20 6d 69 6e 6d 61 78 28 61 3a 20 74 6b 29   ┆  end;    function minmax(a: tk)┆
0x05b2a0…05b2c0            3a 20 74 62 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 6d 69 6e 6d 61 78 3a 3d 66 61 6c 73   ┆: tb;    begin      minmax:=fals┆
0x05b2c0…05b2e0            65 3b 0d 0a 20 20 20 20 69 66 20 73 77 74 72 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 77 72 69 74   ┆e;      if swtr then        writ┆
0x05b2e0…05b300            65 28 27 20 27 3a 6a 6e 74 6b 2a 32 2c 27 20 4d 49 4e 4d 41 58 20 27 2c 61 3a 30 2c 27 20 27 2c   ┆e(' ':jntk*2,' MINMAX ',a:0,' ',┆
0x05b300…05b320            2d 62 73 74 76 6c 5b 61 2d 31 5d 3a 30 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆-bstvlÆa-1Å:0,                  ┆
0x05b320…05b340            27 20 27 2c 62 73 74 76 6c 5b 61 5d 3a 30 2c 27 20 27 2c 2d 62 73 74 76 6c 5b 61 2b 31 5d 3a 30   ┆' ',bstvlÆaÅ:0,' ',-bstvlÆa+1Å:0┆
0x05b340…05b360            29 3b 0d 0a 20 20 20 20 69 66 20 2d 62 73 74 76 6c 5b 61 2b 31 5d 20 3e 20 62 73 74 76 6c 5b 61   ┆);      if -bstvlÆa+1Å > bstvlÆa┆
0x05b360…05b380            5d 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 62 73 74 76 6c 5b 61   ┆Å then      begin        bstvlÆa┆
0x05b380…05b3a0            5d 3a 3d 2d 62 73 74 76 6c 5b 61 2b 31 5d 3b 0d 0a 20 20 20 20 20 20 6e 65 77 62 73 74 28 61 29   ┆Å:=-bstvlÆa+1Å;        newbst(a)┆
0x05b3a0…05b3c0            3b 0d 0a 20 20 20 20 20 20 6d 69 6e 6d 61 78 3a 3d 62 73 74 76 6c 5b 61 2b 31 5d 20 3c 3d 20 62   ┆;        minmax:=bstvlÆa+1Å <= b┆
0x05b3c0…05b3e0            73 74 76 6c 5b 61 2d 31 5d 3b 0d 0a 20 20 20 20 20 20 69 66 20 73 77 74 72 20 74 68 65 6e 20 77   ┆stvlÆa-1Å;        if swtr then w┆
0x05b3e0…05b400            72 69 74 65 28 27 20 4e 45 57 20 42 45 53 54 2e 20 50 52 55 4e 45 3a 20 27 2c 62 73 74 76 6c 5b   ┆rite(' NEW BEST. PRUNE: ',bstvlÆ┆
0x05b400…05b420 (22, 1, 6) 61 2b 31 5d 20 3c 3d 20 62 73 74 76 6c 5b 61 2d 31 5d 29 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a   ┆a+1Å <= bstvlÆa-1Å);      end;  ┆
0x05b420…05b440            20 20 20 20 69 66 20 73 77 74 72 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 3b 0d 0a 20 20 65 6e 64   ┆    if swtr then writeln;    end┆
0x05b440…05b460            3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 73 63 6f 72 65 6d 3b 09 09 28 2a 20 73 63 6f 72 65   ┆;    procedure scorem;  (* score┆
0x05b460…05b480            20 6d 61 74 65 20 2a 29 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 77 72 69 74 65 6c 6e 28 27   ┆ mate *)    begin      writeln('┆
0x05b480…05b4a0            2a 2a 2a 20 53 43 4f 52 45 4d 20 2a 2a 2a 20 27 2c 6a 6e 74 6b 3a 30 29 3b 0d 0a 20 20 20 20 6d   ┆*** SCOREM *** ',jntk:0);      m┆
0x05b4a0…05b4c0            6f 76 65 73 5b 69 6e 64 65 78 5b 6a 6e 74 6b 5d 5d 2e 72 6d 6d 74 3a 3d 74 72 75 65 3b 0d 0a 20   ┆ovesÆindexÆjntkÅÅ.rmmt:=true;   ┆
0x05b4c0…05b4e0            20 20 20 69 66 20 6d 6f 76 65 73 5b 69 6e 64 65 78 5b 6a 6e 74 6b 5d 5d 2e 72 6d 63 68 20 74 68   ┆   if movesÆindexÆjntkÅÅ.rmch th┆
0x05b4e0…05b500            65 6e 20 76 61 6c 75 75 5b 69 6e 64 65 78 5b 6a 6e 74 6b 5d 5d 3a 3d 36 34 2a 6a 6e 74 6b 2d 7a   ┆en valuuÆindexÆjntkÅÅ:=64*jntk-z┆
0x05b500…05b520            76 0d 0a 20 20 20 20 20 20 65 6c 73 65 20 76 61 6c 75 75 5b 69 6e 64 65 78 5b 6a 6e 74 6b 5d 5d   ┆v        else valuuÆindexÆjntkÅÅ┆
0x05b520…05b540            3a 3d 30 3b 0d 0a 20 20 20 20 69 66 20 73 77 74 72 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 77 72   ┆:=0;      if swtr then        wr┆
0x05b540…05b560            69 74 65 6c 6e 28 27 20 27 3a 6a 6e 74 6b 2a 32 2c 27 20 53 43 4f 52 45 4d 20 27 2c 6a 6e 74 6b   ┆iteln(' ':jntk*2,' SCOREM ',jntk┆
0x05b560…05b580            3a 30 2c 27 20 27 2c 6a 6e 74 77 3a 30 2c 27 20 27 2c 69 6e 64 65 78 5b 6a 6e 74 6b 5d 3a 30 2c   ┆:0,' ',jntw:0,' ',indexÆjntkÅ:0,┆
0x05b580…05b5a0            0d 0a 20 20 20 20 20 20 09 09 27 20 27 2c 76 61 6c 75 75 5b 69 6e 64 65 78 5b 6a 6e 74 6b 5d 5d   ┆          ' ',valuuÆindexÆjntkÅÅ┆
0x05b5a0…05b5c0            3a 30 29 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 3a   ┆:0);    end;    function select:┆
0x05b5c0…05b5e0            20 74 62 3b 09 09 28 2a 20 73 65 6c 65 63 74 20 6e 65 78 74 20 6d 6f 76 65 20 74 6f 20 73 65 61   ┆ tb;  (* select next move to sea┆
0x05b5e0…05b600            72 63 68 20 2a 29 0d 0a 20 20 76 61 72 0d 0a 20 20 20 20 69 6e 74 62 20 3a 20 74 62 3b 0d 0a 20   ┆rch *)    var      intb : tb;   ┆
0x05b600…05b620            20 20 20 69 6e 74 6b 20 3a 20 74 6b 3b 0d 0a 20 20 20 20 69 6e 74 77 20 3a 20 74 77 3b 0d 0a 20   ┆   intk : tk;      intw : tw;   ┆
0x05b620…05b640            20 20 20 69 6d 74 77 20 3a 20 74 77 3b 0d 0a 20 20 20 20 6b 69 74 77 20 3a 20 74 77 3b 0d 0a 20   ┆   imtw : tw;      kitw : tw;   ┆
0x05b640…05b660            20 20 20 69 6e 74 76 20 3a 20 74 76 3b 0d 0a 20 20 20 20 65 78 69 74 20 3a 20 74 62 3b 0d 0a 20   ┆   intv : tv;      exit : tb;   ┆
0x05b660…05b680            20 20 20 70 72 6f 63 65 64 75 72 65 20 73 65 6c 64 6f 6e 3b 0d 0a 20 20 20 20 62 65 67 69 6e 0d   ┆   procedure seldon;      begin ┆
0x05b680…05b6a0            0a 20 20 20 20 20 20 69 6e 74 62 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 69 66 20 73 77   ┆       intb:=false;        if sw┆
0x05b6a0…05b6c0            74 72 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 27 20 27 3a 6a 6e 74 6b 2a 32 2c 27 20 53 45 4c   ┆tr then writeln(' ':jntk*2,' SEL┆
0x05b6c0…05b6e0            45 43 54 20 27 2c 6a 6e 74 6b 3a 30 2c 27 20 45 4e 44 2e 27 29 3b 0d 0a 20 20 20 20 20 20 65 78   ┆ECT ',jntk:0,' END.');        ex┆
0x05b6e0…05b700            69 74 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 70 72 6f 63 65 64 75   ┆it:=true;      end;      procedu┆
0x05b700…05b720            72 65 20 73 65 6c 6d 6f 76 28 61 3a 20 74 77 29 3b 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20   ┆re selmov(a: tw);      begin    ┆
0x05b720…05b740            20 20 20 20 69 6e 74 62 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 69 6e 64 65 78 5b 6a 6e 74   ┆    intb:=true;        indexÆjnt┆
0x05b740…05b760            6b 2b 31 5d 3a 3d 61 3b 0d 0a 20 20 20 20 20 20 6d 6f 76 65 73 5b 61 5d 2e 72 6d 73 75 3a 3d 74   ┆k+1Å:=a;        movesÆaÅ.rmsu:=t┆
0x05b760…05b780            72 75 65 3b 0d 0a 20 20 20 20 20 20 69 66 20 73 77 74 72 20 74 68 65 6e 0d 0a 20 20 20 20 20 20   ┆rue;        if swtr then        ┆
0x05b780…05b7a0            62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 69 66 20 6a 6e 74 6b 20 3d 20 30 20 74 68 65 6e 20   ┆begin          if jntk = 0 then ┆
0x05b7a0…05b7c0            77 72 69 74 65 6c 6e 3b 0d 0a 20 20 20 20 20 20 20 20 77 72 69 74 65 28 27 20 27 3a 6a 6e 74 6b   ┆writeln;          write(' ':jntk┆
0x05b7c0…05b7e0            2a 32 2c 27 20 53 45 4c 45 43 54 20 27 2c 6a 6e 74 6b 3a 30 2c 27 20 27 2c 6f 72 64 28 73 72 63   ┆*2,' SELECT ',jntk:0,' ',ord(src┆
0x05b7e0…05b800            68 6d 5b 6a 6e 74 6b 5d 29 3a 30 2c 27 20 27 2c 61 3a 30 29 3b 0d 0a 20 20 20 20 20 20 20 20 70   ┆hmÆjntkÅ):0,' ',a:0);          p┆
0x05b800…05b820 (22, 1, 7) 72 69 6d 6f 76 28 6d 6f 76 65 73 5b 61 5d 29 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20   ┆rimov(movesÆaÅ);        end;    ┆
0x05b820…05b840            20 20 20 20 65 78 69 74 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 70   ┆    exit:=true;      end;      p┆
0x05b840…05b860            72 6f 63 65 64 75 72 65 20 73 65 6c 6e 78 74 28 61 3a 20 74 68 29 3b 0d 0a 20 20 20 20 62 65 67   ┆rocedure selnxt(a: th);      beg┆
0x05b860…05b880            69 6e 0d 0a 20 20 20 20 20 20 69 6e 64 65 78 5b 6a 6e 74 6b 2b 31 5d 3a 3d 6c 69 6e 64 78 5b 6a   ┆in        indexÆjntk+1Å:=lindxÆj┆
0x05b880…05b8a0            6e 74 6b 5d 2d 31 3b 0d 0a 20 20 20 20 20 20 73 72 63 68 6d 5b 6a 6e 74 6b 5d 3a 3d 61 3b 0d 0a   ┆ntkÅ-1;        srchmÆjntkÅ:=a;  ┆
0x05b8a0…05b8c0            20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 70 72 6f 63 65 64 75 72 65 20 73 65 6c 61 6e 79 3b 0d   ┆    end;      procedure selany; ┆
0x05b8c0…05b8e0            0a 20 20 20 20 6c 61 62 65 6c 20 39 39 3b 0d 0a 20 20 20 20 76 61 72 20 69 6e 74 77 3a 20 74 77   ┆     label 99;      var intw: tw┆
0x05b8e0…05b900            3b 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 66 6f 72 20 69 6e 74 77 3a 3d 69 6e   ┆;      begin        for intw:=in┆
0x05b900…05b920            64 65 78 5b 6a 6e 74 6b 2b 31 5d 2b 31 20 74 6f 20 6a 6e 74 77 2d 31 20 64 6f 0d 0a 20 20 20 20   ┆dexÆjntk+1Å+1 to jntw-1 do      ┆
0x05b920…05b940            20 20 20 20 69 66 20 6e 6f 74 20 6d 6f 76 65 73 5b 69 6e 74 77 5d 2e 72 6d 73 75 20 74 68 65 6e   ┆    if not movesÆintwÅ.rmsu then┆
0x05b940…05b960            0d 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 73 65 6c 6d 6f   ┆          begin            selmo┆
0x05b960…05b980            76 28 69 6e 74 77 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 65 78 69 74 20 74 68 65 6e   ┆v(intw);            if exit then┆
0x05b980…05b9a0            20 67 6f 74 6f 20 39 39 3b 0d 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 39 39 3a   ┆ goto 99;          end;      99:┆
0x05b9a0…05b9c0            09 28 2a 20 65 78 69 74 20 2a 29 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a   ┆ (* exit *)      end;    begin  ┆
0x05b9c0…05b9e0            20 20 20 20 65 78 69 74 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 72 65 70 65 61 74 09 28 2a 20   ┆    exit:=false;      repeat (* ┆
0x05b9e0…05ba00            6e 65 77 20 73 65 61 72 63 68 20 6e 6f 64 65 20 2a 29 0d 0a 20 20 20 20 20 20 63 61 73 65 20 73   ┆new search node *)        case s┆
0x05ba00…05ba20            72 63 68 6d 5b 6a 6e 74 6b 5d 20 6f 66 0d 0a 20 20 20 20 20 20 68 30 3a 20 62 65 67 69 6e 09 28   ┆rchmÆjntkÅ of        h0: begin (┆
0x05ba20…05ba40            2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 66 6f 72 20 6e 65 77 20 6d 6f 76 65 20 2a 29 0d 0a 20 20   ┆* initialize for new move *)    ┆
0x05ba40…05ba60            20 20 20 20 20 20 20 20 20 20 6d 76 73 65 6c 5b 6a 6e 74 6b 5d 3a 3d 30 3b 0d 0a 20 20 20 20 20   ┆          mvselÆjntkÅ:=0;       ┆
0x05ba60…05ba80            20 20 20 20 20 20 20 69 6e 74 76 3a 3d 62 73 74 76 6c 5b 6a 6e 74 6b 2d 32 5d 3b 0d 0a 20 20 20   ┆       intv:=bstvlÆjntk-2Å;     ┆
0x05ba80…05baa0            20 20 20 20 20 20 20 20 20 62 73 74 76 6c 5b 6a 6e 74 6b 2d 32 5d 3a 3d 2d 7a 76 3b 0d 0a 20 20   ┆         bstvlÆjntk-2Å:=-zv;    ┆
0x05baa0…05bac0            20 20 20 20 20 20 20 20 20 20 6d 61 78 70 73 3a 3d 30 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20   ┆          maxps:=0;             ┆
0x05bac0…05bae0            20 67 65 6e 61 6c 6c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 69 6e 74 77 3a 3d   ┆ genall;              for intw:=┆
0x05bae0…05bb00            61 77 2b 31 20 74 6f 20 6a 6e 74 77 2d 31 20 64 6f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 62   ┆aw+1 to jntw-1 do              b┆
0x05bb00…05bb20            65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 75 70 64 61 74 65 28 6d 6f   ┆egin                if update(mo┆
0x05bb20…05bb40            76 65 73 5b 69 6e 74 77 5d 29 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62   ┆vesÆintwÅ) then                b┆
0x05bb40…05bb60            65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 64 65 78 5b 6a 6e 74 6b   ┆egin                  indexÆjntk┆
0x05bb60…05bb80            5d 3a 3d 69 6e 74 77 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 76 61 6c 75 38   ┆Å:=intw;                  evalu8┆
0x05bb80…05bba0            3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20   ┆;                end;           ┆
0x05bba0…05bbc0            20 20 20 20 20 64 6e 64 61 74 65 28 6d 6f 76 65 73 5b 69 6e 74 77 5d 29 3b 0d 0a 20 20 20 20 20   ┆     dndate(movesÆintwÅ);       ┆
0x05bbc0…05bbe0            20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 73 74 76 6c 5b 6a   ┆       end;              bstvlÆj┆
0x05bbe0…05bc00            6e 74 6b 2d 32 5d 3a 3d 69 6e 74 76 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 6f 72 74 69   ┆ntk-2Å:=intv;              sorti┆
0x05bc00…05bc20 (22, 1, 8) 74 28 76 61 6c 75 75 2c 6d 6f 76 65 73 2c 6a 6e 74 77 2d 31 29 3b 0d 0a 20 20 20 20 20 20 20 20   ┆t(valuu,moves,jntw-1);          ┆
0x05bc20…05bc40            20 20 20 20 66 6f 72 20 69 6e 74 6b 3a 3d 61 6b 20 74 6f 20 7a 6b 20 64 6f 20 6b 69 6c 6c 72 5b   ┆    for intk:=ak to zk do killrÆ┆
0x05bc40…05bc60            69 6e 74 6b 5d 3a 3d 6e 75 6c 6d 76 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 73 77   ┆intkÅ:=nulmv;              if sw┆
0x05bc60…05bc80            74 72 20 6f 72 20 73 77 70 73 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66   ┆tr or swps then                f┆
0x05bc80…05bca0            6f 72 20 69 6e 74 77 3a 3d 61 77 2b 31 20 74 6f 20 6a 6e 74 77 2d 31 20 64 6f 0d 0a 20 20 20 20   ┆or intw:=aw+1 to jntw-1 do      ┆
0x05bca0…05bcc0            20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆          begin                 ┆
0x05bcc0…05bce0            20 77 72 69 74 65 28 27 20 50 52 45 4c 49 4d 20 27 2c 69 6e 74 77 3a 30 2c 27 20 27 2c 76 61 6c   ┆ write(' PRELIM ',intw:0,' ',val┆
0x05bce0…05bd00            75 75 5b 69 6e 74 77 5d 3a 30 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72   ┆uuÆintwÅ:0);                  pr┆
0x05bd00…05bd20            69 6d 6f 76 28 6d 6f 76 65 73 5b 69 6e 74 77 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   ┆imov(movesÆintwÅ);              ┆
0x05bd20…05bd40            20 20 20 20 69 66 20 69 6e 74 77 2f 6c 70 70 20 3d 20 69 6e 74 77 20 64 69 76 20 6c 70 70 20 74   ┆    if intw/lpp = intw div lpp t┆
0x05bd40…05bd60            68 65 6e 20 70 61 75 73 65 72 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d   ┆hen pauser;                end; ┆
0x05bd60…05bd80            0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 6e 78 74 28 68 36 29 3b 0d 0a 20 20 20 20 20 20   ┆             selnxt(h6);        ┆
0x05bd80…05bda0            20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 68 31 3a 20 62 65 67 69 6e 09 28 2a 20 69 6e 69   ┆    end;        h1: begin (* ini┆
0x05bda0…05bdc0            74 69 61 6c 69 7a 65 20 61 74 20 6e 65 77 20 64 65 70 74 68 20 2a 29 0d 0a 20 20 20 20 20 20 20   ┆tialize at new depth *)         ┆
0x05bdc0…05bde0            20 20 20 20 20 6d 76 73 65 6c 5b 6a 6e 74 6b 5d 3a 3d 30 3b 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆     mvselÆjntkÅ:=0;            ┆
0x05bde0…05be00            20 20 69 66 20 6a 6e 74 6b 20 3e 20 6a 6d 74 6b 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20   ┆  if jntk > jmtk then           ┆
0x05be00…05be20            20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 76 61 6c 75 38 3b 0d   ┆   begin                evalu8; ┆
0x05be20…05be40            0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 64 65 78 5b 6a 6e 74 6b 2b 31 5d 3a 3d 61 77   ┆               indexÆjntk+1Å:=aw┆
0x05be40…05be60            3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 73 74 76 6c 5b 6a 6e 74 6b 2b 31 5d 3a 3d   ┆;                bstvlÆjntk+1Å:=┆
0x05be60…05be80            2d 76 61 6c 75 75 5b 69 6e 64 65 78 5b 6a 6e 74 6b 5d 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆-valuuÆindexÆjntkÅÅ;            ┆
0x05be80…05bea0            20 20 20 20 69 66 20 6d 6f 76 65 73 5b 69 6e 64 65 78 5b 6a 6e 74 6b 5d 5d 2e 72 6d 63 68 20 61   ┆    if movesÆindexÆjntkÅÅ.rmch a┆
0x05bea0…05bec0            6e 64 20 28 6a 6e 74 6b 20 3c 20 7a 6b 29 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20   ┆nd (jntk < zk) then             ┆
0x05bec0…05bee0            20 20 20 20 20 73 72 63 68 6d 5b 6a 6e 74 6b 5d 3a 3d 68 33 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆     srchmÆjntkÅ:=h3            ┆
0x05bee0…05bf00            20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20   ┆    else                begin   ┆
0x05bf00…05bf20            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6d 69 6e 6d 61 78 28 6a 6e 74 6b 29 20 6f   ┆               if minmax(jntk) o┆
0x05bf20…05bf40            72 20 28 6a 6e 74 6b 20 3d 20 7a 6b 29 20 74 68 65 6e 20 73 65 6c 64 6f 6e 3b 0d 0a 20 20 20 20   ┆r (jntk = zk) then seldon;      ┆
0x05bf40…05bf60            20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 65 78 69 74 20 74 68 65 6e 20 73 72 63   ┆            if not exit then src┆
0x05bf60…05bf80            68 6d 5b 6a 6e 74 6b 5d 3a 3d 68 32 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64   ┆hmÆjntkÅ:=h2;                end┆
0x05bf80…05bfa0            3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 20 73 72 63 68 6d 5b 6a 6e   ┆;              end else srchmÆjn┆
0x05bfa0…05bfc0            74 6b 5d 3a 3d 68 33 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 65 78 69   ┆tkÅ:=h3;              if not exi┆
0x05bfc0…05bfe0            74 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20   ┆t then              begin       ┆
0x05bfe0…05c000            20 20 20 20 20 20 20 20 20 67 65 6e 63 61 70 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆         gencap;                ┆
0x05c000…05c020 (23, 0, 1) 73 65 6c 6e 78 74 28 73 72 63 68 6d 5b 6a 6e 74 6b 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆selnxt(srchmÆjntkÅ);            ┆
0x05c020…05c040            20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 68 32   ┆  end;            end;        h2┆
0x05c040…05c060            3a 20 62 65 67 69 6e 09 28 2a 20 63 61 70 74 75 72 65 20 73 65 61 72 63 68 20 2a 29 0d 0a 20 20   ┆: begin (* capture search *)    ┆
0x05c060…05c080            20 20 20 20 20 20 20 20 20 20 69 6e 74 77 3a 3d 61 77 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20   ┆          intw:=aw;             ┆
0x05c080…05c0a0            20 69 6e 74 76 3a 3d 61 76 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 69 6d 74 77   ┆ intv:=av;              for imtw┆
0x05c0a0…05c0c0            3a 3d 6c 69 6e 64 78 5b 6a 6e 74 6b 5d 20 74 6f 20 6a 6e 74 77 2d 31 20 64 6f 0d 0a 20 20 20 20   ┆:=lindxÆjntkÅ to jntw-1 do      ┆
0x05c0c0…05c0e0            20 20 20 20 20 20 20 20 20 20 77 69 74 68 20 6d 6f 76 65 73 5b 69 6d 74 77 5d 20 64 6f 0d 0a 20   ┆          with movesÆimtwÅ do   ┆
0x05c0e0…05c100            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 72 6d 73 75 20 74 68 65 6e 0d   ┆               if not rmsu then ┆
0x05c100…05c120            0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 61 62 73 28 78 74 70 76 5b 72   ┆                   if abs(xtpvÆr┆
0x05c120…05c140            6d 63 70 5d 29 20 3e 20 69 6e 74 76 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆mcpÅ) > intv then               ┆
0x05c140…05c160            20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆     begin                      ┆
0x05c160…05c180            69 6e 74 76 3a 3d 61 62 73 28 78 74 70 76 5b 72 6d 63 70 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20   ┆intv:=abs(xtpvÆrmcpÅ);          ┆
0x05c180…05c1a0            20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 77 3a 3d 69 6d 74 77 3b 0d 0a 20 20 20 20 20 20 20   ┆            intw:=imtw;         ┆
0x05c1a0…05c1c0            20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20   ┆           end;              if ┆
0x05c1c0…05c1e0            69 6e 74 77 20 3c 3e 20 61 77 20 74 68 65 6e 20 73 65 6c 6d 6f 76 28 69 6e 74 77 29 20 65 6c 73   ┆intw <> aw then selmov(intw) els┆
0x05c1e0…05c200            65 20 73 65 6c 64 6f 6e 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20   ┆e seldon;            end;       ┆
0x05c200…05c220            20 68 33 3a 20 62 65 67 69 6e 09 28 2a 20 66 75 6c 6c 20 77 69 64 74 68 20 73 65 61 72 63 68 20   ┆ h3: begin (* full width search ┆
0x05c220…05c240            2d 20 63 61 70 74 75 72 65 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 77 3a 3d   ┆- capture *)              intw:=┆
0x05c240…05c260            61 77 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 76 3a 3d 61 76 3b 0d 0a 20 20 20 20   ┆aw;              intv:=av;      ┆
0x05c260…05c280            20 20 20 20 20 20 20 20 66 6f 72 20 69 6d 74 77 3a 3d 6c 69 6e 64 78 5b 6a 6e 74 6b 5d 20 74 6f   ┆        for imtw:=lindxÆjntkÅ to┆
0x05c280…05c2a0            20 6a 6e 74 77 2d 31 20 64 6f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 69 74 68 20 6d   ┆ jntw-1 do                with m┆
0x05c2a0…05c2c0            6f 76 65 73 5b 69 6d 74 77 5d 20 64 6f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69   ┆ovesÆimtwÅ do                  i┆
0x05c2c0…05c2e0            66 20 6e 6f 74 20 72 6d 73 75 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆f not rmsu then                 ┆
0x05c2e0…05c300            20 20 20 69 66 20 61 62 73 28 78 74 70 76 5b 72 6d 63 70 5d 29 20 3e 20 69 6e 74 76 20 74 68 65   ┆   if abs(xtpvÆrmcpÅ) > intv the┆
0x05c300…05c320            6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20   ┆n                    begin      ┆
0x05c320…05c340            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 76 3a 3d 61 62 73 28 78 74 70 76 5b 72   ┆                intv:=abs(xtpvÆr┆
0x05c340…05c360            6d 63 70 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 77   ┆mcpÅ);                      intw┆
0x05c360…05c380            3a 3d 69 6d 74 77 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d   ┆:=imtw;                    end; ┆
0x05c380…05c3a0            0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 69 6e 74 77 20 3c 3e 20 61 77 20 74 68 65 6e 0d   ┆             if intw <> aw then ┆
0x05c3a0…05c3c0            0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 6d 6f 76 28 69 6e 74 77 29 0d 0a 20 20 20   ┆               selmov(intw)     ┆
0x05c3c0…05c3e0            20 20 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20   ┆         else                if ┆
0x05c3e0…05c400            6e 6f 74 20 6e 75 6c 6d 76 62 28 6b 69 6c 6c 72 5b 6a 6e 74 6b 5d 29 20 74 68 65 6e 0d 0a 20 20   ┆not nulmvb(killrÆjntkÅ) then    ┆
0x05c400…05c420 (23, 0, 2) 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆            begin               ┆
0x05c420…05c440            20 20 20 69 6d 74 77 3a 3d 6a 6e 74 77 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆   imtw:=jntw;                  ┆
0x05c440…05c460            67 65 6e 6b 69 6c 6c 72 28 6b 69 6c 6c 72 5b 6a 6e 74 6b 5d 2e 72 6d 66 72 2c 6b 69 6c 6c 72 5b   ┆genkillr(killrÆjntkÅ.rmfr,killrÆ┆
0x05c460…05c480            6a 6e 74 6b 5d 2e 72 6d 74 6f 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 72   ┆jntkÅ.rmto);                  sr┆
0x05c480…05c4a0            63 68 6d 5b 6a 6e 74 6b 5d 3a 3d 68 34 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆chmÆjntkÅ:=h4;                  ┆
0x05c4a0…05c4c0            69 66 20 6a 6e 74 77 20 3e 20 69 6d 74 77 20 74 68 65 6e 20 73 65 6c 6d 6f 76 28 69 6d 74 77 29   ┆if jntw > imtw then selmov(imtw)┆
0x05c4c0…05c4e0            3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20   ┆;                end;           ┆
0x05c4e0…05c500            20 20 20 69 66 20 6e 6f 74 20 65 78 69 74 20 74 68 65 6e 20 73 65 6c 6e 78 74 28 68 34 29 3b 0d   ┆   if not exit then selnxt(h4); ┆
0x05c500…05c520            0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 68 34 3a 20 62 65 67 69 6e   ┆           end;        h4: begin┆
0x05c520…05c540            09 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 73 63 61 6e 20 6f 66 20 63 61 73 74 6c 65 20 26 20   ┆ (* initialize scan of castle & ┆
0x05c540…05c560            6f 74 68 65 72 20 6d 6f 76 65 73 20 62 79 20 6b 69 6c 6c 65 72 20 70 69 65 63 65 20 2a 29 0d 0a   ┆other moves by killer piece *)  ┆
0x05c560…05c580            20 20 20 20 20 20 20 20 20 20 20 20 67 65 6e 63 61 73 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20   ┆            gencas;             ┆
0x05c580…05c5a0            20 73 65 6c 6e 78 74 28 68 35 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20   ┆ selnxt(h5);            end;    ┆
0x05c5a0…05c5c0            20 20 20 20 68 35 3a 20 62 65 67 69 6e 09 28 2a 20 66 75 6c 6c 20 77 69 64 74 68 20 73 65 61 72   ┆    h5: begin (* full width sear┆
0x05c5c0…05c5e0            63 68 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 61 6e 79 3b 0d 0a 20 20 20 20   ┆ch *)              selany;      ┆
0x05c5e0…05c600            20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 65 78 69 74 20 74 68 65 6e 0d 0a 20 20 20 20 20 20   ┆        if not exit then        ┆
0x05c600…05c620            20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 65 6e 66 73   ┆      begin                genfs┆
0x05c620…05c640            6c 28 61 6c 6c 6f 63 5b 6a 6e 74 6b 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73   ┆l(allocÆjntkÅ);                s┆
0x05c640…05c660            65 6c 6e 78 74 28 68 36 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20   ┆elnxt(h6);              end;    ┆
0x05c660…05c680            20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 68 36 3a 20 62 65 67 69 6e 09 28 2a   ┆        end;        h6: begin (*┆
0x05c680…05c6a0            20 66 75 6c 6c 20 77 69 64 74 68 20 73 65 61 72 63 68 20 2d 20 72 65 6d 61 69 6e 64 69 6e 67 20   ┆ full width search - remainding ┆
0x05c6a0…05c6c0            6d 6f 76 65 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 61 6e 79 3b 0d 0a 20 20   ┆move *)              selany;    ┆
0x05c6c0…05c6e0            20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 65 78 69 74 20 74 68 65 6e 0d 0a 20 20 20 20   ┆          if not exit then      ┆
0x05c6e0…05c700            20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20   ┆        begin                if ┆
0x05c700…05c720            6d 76 73 65 6c 5b 6a 6e 74 6b 5d 20 3d 20 30 20 74 68 65 6e 20 73 63 6f 72 65 6d 3b 0d 0a 20 20   ┆mvselÆjntkÅ = 0 then scorem;    ┆
0x05c720…05c740            20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 64 6f 6e 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20   ┆            seldon;             ┆
0x05c740…05c760            20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 68 37 3a   ┆ end;            end;        h7:┆
0x05c760…05c780            20 62 65 67 69 6e 09 28 2a 20 72 65 73 65 61 72 63 68 20 66 69 72 73 74 20 70 6c 79 20 2a 29 0d   ┆ begin (* research first ply *) ┆
0x05c780…05c7a0            0a 20 20 20 20 20 20 20 20 20 20 20 20 6a 6e 74 77 3a 3d 6c 69 6e 64 78 5b 61 6b 2b 31 5d 3b 0d   ┆             jntw:=lindxÆak+1Å; ┆
0x05c7a0…05c7c0            0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 76 73 65 6c 5b 61 6b 5d 3a 3d 30 3b 0d 0a 20 20 20 20   ┆             mvselÆakÅ:=0;      ┆
0x05c7c0…05c7e0            20 20 20 20 20 20 20 20 66 6f 72 20 69 6e 74 77 3a 3d 61 77 2b 31 20 74 6f 20 6a 6e 74 77 2d 31   ┆        for intw:=aw+1 to jntw-1┆
0x05c7e0…05c800            20 64 6f 20 6d 6f 76 65 73 5b 69 6e 74 77 5d 2e 72 6d 73 75 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20   ┆ do movesÆintwÅ.rmsu:=false;    ┆
0x05c800…05c820 (23, 0, 3) 20 20 20 20 20 20 20 20 20 20 69 66 20 6a 6d 74 6b 20 3d 20 61 6b 2b 31 20 74 68 65 6e 20 77 72   ┆          if jmtk = ak+1 then wr┆
0x05c820…05c840            69 74 65 28 27 2a 2a 20 52 45 44 4f 20 20 27 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ite('** REDO  ')                ┆
0x05c840…05c860            65 6c 73 65 20 77 72 69 74 65 28 6a 6d 74 6b 3a 30 2c 27 2e 20 53 54 41 47 45 53 20 20 27 29 3b   ┆else write(jmtk:0,'. STAGES  ');┆
0x05c860…05c880            0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 28 6e 6f 64 65 73 3a 30 2c 27 20 27 29   ┆              write(nodes:0,' ')┆
0x05c880…05c8a0            3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6d 6f 76 28 6d 6f 76 65 73 5b 62 73 74 6d   ┆;              primov(movesÆbstm┆
0x05c8a0…05c8c0            76 5b 61 6b 5d 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 73 77 74 72 20 74 68   ┆vÆakÅÅ);              if swtr th┆
0x05c8c0…05c8e0            65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 6c 6e 28 27 20 27 3a 6a 6e   ┆en                writeln(' ':jn┆
0x05c8e0…05c900            74 6b 2a 32 2c 27 20 52 45 44 4f 20 27 2c 6a 6e 74 6b 3a 30 2c 27 20 27 2c 62 73 74 76 6c 5b 61   ┆tk*2,' REDO ',jntk:0,' ',bstvlÆa┆
0x05c900…05c920            6b 2d 32 5d 3a 30 2c 27 20 27 2c 62 73 74 76 6c 5b 61 6b 2d 31 5d 3a 30 29 3b 0d 0a 20 20 20 20   ┆k-2Å:0,' ',bstvlÆak-1Å:0);      ┆
0x05c920…05c940            20 20 20 20 20 20 20 20 73 65 6c 6e 78 74 28 68 36 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65   ┆        selnxt(h6);            e┆
0x05c940…05c960            6e 64 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 75 6e 74 69 6c 20 65 78 69 74 3b   ┆nd;        end;      until exit;┆
0x05c960…05c980            09 28 2a 20 73 65 6c 65 63 74 20 65 78 69 74 20 2a 29 0d 0a 20 20 20 20 73 65 6c 65 63 74 3a 3d   ┆ (* select exit *)      select:=┆
0x05c980…05c9a0            69 6e 74 62 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 62 65 67 69 6e 09 28 2a 20 73 65 61 72 63 68 20 2a   ┆intb;    end;  begin (* search *┆
0x05c9a0…05c9c0            29 0d 0a 20 20 62 73 74 6d 76 5b 61 6b 5d 3a 3d 61 77 3b 0d 0a 20 20 69 6e 64 65 78 5b 6a 6e 74   ┆)    bstmvÆakÅ:=aw;    indexÆjnt┆
0x05c9c0…05c9e0            6b 5d 3a 3d 61 77 3b 0d 0a 20 20 6d 6f 76 65 73 5b 61 77 5d 3a 3d 6c 73 74 6d 76 3b 0d 0a 20 20   ┆kÅ:=aw;    movesÆawÅ:=lstmv;    ┆
0x05c9e0…05ca00            62 73 74 76 6c 5b 61 6b 2d 32 5d 3a 3d 61 76 3b 0d 0a 20 20 65 76 61 6c 75 38 3b 0d 0a 20 20 69   ┆bstvlÆak-2Å:=av;    evalu8;    i┆
0x05ca00…05ca20            66 20 73 77 73 75 20 74 68 65 6e 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 69 66 20 73 77 65   ┆f swsu then    begin      if swe┆
0x05ca20…05ca40            63 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 27 20 20 20 27 2c 62 6f 61 72 64 2e 72 62 74 69 3a   ┆c then writeln('   ',board.rbti:┆
0x05ca40…05ca60            30 2c 27 2e 20 20 27 2c 2d 76 61 6c 75 75 5b 61 77 5d 3a 34 29 3b 0d 0a 20 20 20 20 77 72 69 74   ┆0,'.  ',-valuuÆawÅ:4);      writ┆
0x05ca60…05ca80            65 6c 6e 28 27 20 20 20 27 2c 62 6f 61 72 64 2e 72 62 74 69 3a 30 2c 27 2e 20 20 27 2c 2d 76 61   ┆eln('   ',board.rbti:0,'.  ',-va┆
0x05ca80…05caa0            6c 75 75 5b 61 77 5d 3a 34 29 3b 0d 0a 20 20 65 6e 64 20 65 6c 73 65 20 62 65 67 69 6e 20 77 72   ┆luuÆawÅ:4);    end else begin wr┆
0x05caa0…05cac0            69 74 65 6c 6e 3b 20 69 66 20 73 77 65 63 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 20 65 6e 64 3b   ┆iteln; if swec then writeln end;┆
0x05cac0…05cae0            0d 0a 20 20 62 73 74 76 6c 5b 61 6b 2d 32 5d 3a 3d 76 61 6c 75 75 5b 61 77 5d 2d 77 69 6e 64 6f   ┆    bstvlÆak-2Å:=valuuÆawÅ-windo┆
0x05cae0…05cb00            77 3b 0d 0a 20 20 62 73 74 76 6c 5b 61 6b 2d 31 5d 3a 3d 2d 76 61 6c 75 75 5b 61 77 5d 2d 77 69   ┆w;    bstvlÆak-1Å:=-valuuÆawÅ-wi┆
0x05cb00…05cb20            6e 64 6f 77 3b 0d 0a 20 20 6a 6d 74 6b 3a 3d 61 6b 2b 31 3b 0d 0a 20 20 77 68 69 6c 65 20 28 6a   ┆ndow;    jmtk:=ak+1;    while (j┆
0x05cb20…05cb40            6d 74 6b 20 3c 20 73 74 61 67 65 73 29 20 61 6e 64 20 28 6a 6e 74 6b 20 3c 20 6d 61 78 28 7a 6b   ┆mtk < stages) and (jntk < max(zk┆
0x05cb40…05cb60            20 64 69 76 20 32 2c 7a 6b 2d 38 29 29 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 31 31 3a 09 28   ┆ div 2,zk-8)) do    begin  11: (┆
0x05cb60…05cb80            2a 20 73 74 61 72 74 20 6e 65 77 20 70 6c 79 20 2a 29 0d 0a 20 20 20 20 62 73 74 76 6c 5b 6a 6e   ┆* start new ply *)      bstvlÆjn┆
0x05cb80…05cba0            74 6b 5d 3a 3d 62 73 74 76 6c 5b 6a 6e 74 6b 2d 32 5d 3b 0d 0a 31 32 3a 09 28 2a 20 64 69 66 66   ┆tkÅ:=bstvlÆjntk-2Å;  12: (* diff┆
0x05cba0…05cbc0            65 72 65 6e 74 20 66 69 72 73 74 20 6d 6f 76 65 20 2a 29 0d 0a 20 20 20 20 69 66 20 6e 6f 74 20   ┆erent first move *)      if not ┆
0x05cbc0…05cbe0            73 65 6c 65 63 74 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 62 73   ┆select then      begin        bs┆
0x05cbe0…05cc00            74 76 6c 5b 6a 6e 74 6b 5d 3a 3d 76 61 6c 75 75 5b 69 6e 64 65 78 5b 6a 6e 74 6b 5d 5d 3b 0d 0a   ┆tvlÆjntkÅ:=valuuÆindexÆjntkÅÅ;  ┆
0x05cc00…05cc20 (23, 0, 4) 20 20 20 20 20 20 6e 65 77 62 73 74 28 6a 6e 74 6b 29 3b 0d 0a 20 20 20 20 65 6e 64 20 65 6c 73   ┆      newbst(jntk);      end els┆
0x05cc20…05cc40            65 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 66 20 75 70 64 61 74 65 28 6d 6f   ┆e      begin        if update(mo┆
0x05cc40…05cc60            76 65 73 5b 69 6e 64 65 78 5b 6a 6e 74 6b 2b 31 5d 5d 29 20 74 68 65 6e 20 67 6f 74 6f 20 31 31   ┆vesÆindexÆjntk+1ÅÅ) then goto 11┆
0x05cc60…05cc80            20 65 6c 73 65 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 64 6e 64 61   ┆ else        begin          dnda┆
0x05cc80…05cca0            74 65 28 6d 6f 76 65 73 5b 69 6e 64 65 78 5b 6a 6e 74 6b 5d 5d 29 3b 0d 0a 20 20 20 20 20 20 20   ┆te(movesÆindexÆjntkÅÅ);         ┆
0x05cca0…05ccc0            20 67 6f 74 6f 20 31 32 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a 31 33 3a 09 28 2a 20 66 6c   ┆ goto 12;        end;  13: (* fl┆
0x05ccc0…05cce0            6f 61 74 20 76 61 6c 75 65 20 62 61 63 6b 20 2a 29 0d 0a 20 20 20 20 20 20 69 66 20 6d 69 6e 6d   ┆oat value back *)        if minm┆
0x05cce0…05cd00            61 78 28 6a 6e 74 6b 29 20 74 68 65 6e 20 67 6f 74 6f 20 31 35 3b 0d 0a 31 34 3a 09 28 2a 20 66   ┆ax(jntk) then goto 15;  14: (* f┆
0x05cd00…05cd20            69 6e 64 20 61 6e 6f 74 68 65 72 20 6d 6f 76 65 20 61 74 20 74 68 69 73 20 70 6c 79 20 2a 29 0d   ┆ind another move at this ply *) ┆
0x05cd20…05cd40            0a 20 20 20 20 20 20 69 66 20 73 65 6c 65 63 74 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 69   ┆       if select then          i┆
0x05cd40…05cd60            66 20 75 70 64 61 74 65 28 6d 6f 76 65 73 5b 69 6e 64 65 78 5b 6a 6e 74 6b 2b 31 5d 5d 29 20 74   ┆f update(movesÆindexÆjntk+1ÅÅ) t┆
0x05cd60…05cd80            68 65 6e 20 67 6f 74 6f 20 31 31 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d   ┆hen goto 11 else          begin ┆
0x05cd80…05cda0            0a 20 20 20 20 20 20 20 20 20 20 64 6e 64 61 74 65 28 6d 6f 76 65 73 5b 69 6e 64 65 78 5b 6a 6e   ┆           dndate(movesÆindexÆjn┆
0x05cda0…05cdc0            74 6b 5d 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 20 31 34 3b 0d 0a 20 20 20 20   ┆tkÅÅ);            goto 14;      ┆
0x05cdc0…05cde0            20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 31 35 3a 09 28 2a 20 62 61 63 6b 20   ┆    end;      end;  15: (* back ┆
0x05cde0…05ce00            75 70 20 61 20 70 6c 79 20 2a 29 0d 0a 20 20 20 20 69 66 20 6a 6e 74 6b 20 3e 20 61 6b 20 74 68   ┆up a ply *)      if jntk > ak th┆
0x05ce00…05ce20            65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 64 6e 64 61 74 65 28 6d 6f 76 65   ┆en      begin        dndate(move┆
0x05ce20…05ce40            73 5b 69 6e 64 65 78 5b 6a 6e 74 6b 5d 5d 29 3b 0d 0a 20 20 20 20 20 20 67 6f 74 6f 20 31 33 3b   ┆sÆindexÆjntkÅÅ);        goto 13;┆
0x05ce40…05ce60            0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 28 2a 20 64 6f 6e 65 20 77 69 74 68 20 69 74 65   ┆      end;      (* done with ite┆
0x05ce60…05ce80            72 61 74 69 6f 6e 20 2a 29 0d 0a 20 20 20 20 69 66 20 28 62 73 74 76 6c 5b 61 6b 5d 20 3c 3d 20   ┆ration *)      if (bstvlÆakÅ <= ┆
0x05ce80…05cea0            62 73 74 76 6c 5b 61 6b 2d 32 5d 29 20 6f 72 20 28 62 73 74 76 6c 5b 61 6b 5d 20 3e 3d 20 2d 62   ┆bstvlÆak-2Å) or (bstvlÆakÅ >= -b┆
0x05cea0…05cec0            73 74 76 6c 5b 61 6b 2d 31 5d 29 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 09 28 2a 20 6e   ┆stvlÆak-1Å) then      begin (* n┆
0x05cec0…05cee0            6f 20 6d 6f 76 65 20 66 6f 75 6e 64 20 2a 29 0d 0a 20 20 20 20 20 20 69 66 20 6d 76 73 65 6c 5b   ┆o move found *)        if mvselÆ┆
0x05cee0…05cf00            61 6b 5d 20 3d 20 30 20 74 68 65 6e 20 67 6f 74 6f 20 31 36 3b 09 28 2a 20 6e 6f 20 6c 65 67 61   ┆akÅ = 0 then goto 16; (* no lega┆
0x05cf00…05cf20            6c 20 6d 6f 76 65 73 20 2d 20 67 69 76 65 20 75 70 20 2a 29 0d 0a 20 20 20 20 20 20 69 66 20 73   ┆l moves - give up *)        if s┆
0x05cf20…05cf40            74 61 67 65 73 2d 31 20 3d 20 6a 6d 74 6b 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 62 65 67 69 6e   ┆tages-1 = jmtk then        begin┆
0x05cf40…05cf60            0d 0a 20 20 20 20 20 20 20 20 62 73 74 76 6c 5b 61 6b 2d 32 5d 3a 3d 2d 7a 76 3b 0d 0a 20 20 20   ┆          bstvlÆak-2Å:=-zv;     ┆
0x05cf60…05cf80            20 20 20 20 20 62 73 74 76 6c 5b 61 6b 2d 31 5d 3a 3d 2d 7a 76 3b 0d 0a 20 20 20 20 20 20 20 20   ┆     bstvlÆak-1Å:=-zv;          ┆
0x05cf80…05cfa0            73 72 63 68 6d 5b 61 6b 5d 3a 3d 68 37 3b 0d 0a 20 20 20 20 20 20 20 20 6a 6e 74 77 3a 3d 61 6b   ┆srchmÆakÅ:=h7;          jntw:=ak┆
0x05cfa0…05cfc0            2b 31 3b 0d 0a 20 20 20 20 20 20 20 20 67 6f 74 6f 20 31 31 3b 0d 0a 20 20 20 20 20 20 65 6e 64   ┆+1;          goto 11;        end┆
0x05cfc0…05cfe0            3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 62 73 74 76 6c 5b 61 6b 2d 32 5d 3a 3d 62 73   ┆;      end;      bstvlÆak-2Å:=bs┆
0x05cfe0…05d000            74 76 6c 5b 61 6b 5d 2d 77 69 6e 64 6f 77 3b 0d 0a 20 20 20 20 62 73 74 76 6c 5b 61 6b 2d 31 5d   ┆tvlÆakÅ-window;      bstvlÆak-1Å┆
0x05d000…05d020 (23, 0, 5) 3a 3d 2d 62 73 74 76 6c 5b 61 6b 5d 2d 77 69 6e 64 6f 77 3b 0d 0a 20 20 20 20 6a 6d 74 6b 3a 3d   ┆:=-bstvlÆakÅ-window;      jmtk:=┆
0x05d020…05d040            6a 6d 74 6b 2b 31 3b 0d 0a 20 20 20 20 73 72 63 68 6d 5b 61 6b 5d 3a 3d 68 37 3b 0d 0a 20 20 65   ┆jmtk+1;      srchmÆakÅ:=h7;    e┆
0x05d040…05d060            6e 64 3b 0d 0a 31 36 3a 09 28 2a 20 65 78 69 74 20 73 65 61 72 63 68 20 2a 29 0d 0a 20 20 73 65   ┆nd;  16: (* exit search *)    se┆
0x05d060…05d080            61 72 63 68 3a 3d 62 73 74 6d 76 5b 61 6b 5d 3b 0d 0a 65 6e 64 3b 09 28 2a 20 73 65 61 72 63 68   ┆arch:=bstmvÆakÅ;  end; (* search┆
0x05d080…05d0a0            20 2a 29 0d 0a 0d 0a 28 2a 20 63 68 65 73 73 2e 70 30 37 20 2a 29 0d 0a 70 72 6f 63 65 64 75 72   ┆ *)    (* chess.p07 *)  procedur┆
0x05d0a0…05d0c0            65 20 72 65 61 64 65 72 3b 09 28 2a 20 72 65 61 64 20 69 6e 70 75 74 20 66 72 6f 6d 20 75 73 65   ┆e reader; (* read input from use┆
0x05d0c0…05d0e0            72 20 2a 29 0d 0a 76 61 72 0d 0a 20 20 69 6e 72 61 09 3a 20 72 61 3b 0d 0a 20 20 69 6e 74 6a 09   ┆r *)  var    inra : ra;    intj ┆
0x05d0e0…05d100            3a 20 74 6a 3b 0d 0a 20 20 6f 6b 09 3a 20 74 62 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 72   ┆: tj;    ok : tb;    procedure r┆
0x05d100…05d120            64 72 65 72 72 28 61 3a 20 72 6e 29 3b 09 28 2a 20 70 72 69 6e 74 20 64 69 61 67 6e 6f 73 74 69   ┆drerr(a: rn); (* print diagnosti┆
0x05d120…05d140            63 20 61 6e 64 20 65 78 69 74 20 2a 29 0d 0a 20 20 76 61 72 0d 0a 20 20 20 20 69 6e 74 6a 20 3a   ┆c and exit *)    var      intj :┆
0x05d140…05d160            20 74 6a 3b 0d 0a 20 20 20 20 69 6e 74 6e 20 3a 20 74 6e 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a 20   ┆ tj;      intn : tn;    begin   ┆
0x05d160…05d180            20 20 20 69 66 20 6e 6f 74 20 73 77 65 63 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a   ┆   if not swec then      begin  ┆
0x05d180…05d1a0            20 20 20 20 20 20 77 72 69 74 65 28 27 20 27 29 3b 0d 0a 20 20 20 20 20 20 66 6f 72 20 69 6e 74   ┆      write(' ');        for int┆
0x05d1a0…05d1c0            6a 3a 3d 61 6a 20 74 6f 20 7a 6a 2d 31 20 64 6f 20 77 72 69 74 65 28 69 6c 69 6e 65 5b 69 6e 74   ┆j:=aj to zj-1 do write(ilineÆint┆
0x05d1c0…05d1e0            6a 5d 29 3b 0d 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a   ┆jÅ);        writeln;      end;  ┆
0x05d1e0…05d200            20 20 20 20 66 6f 72 20 69 6e 74 6a 3a 3d 61 6a 20 74 6f 20 6a 6e 74 6a 2d 31 20 64 6f 20 77 72   ┆    for intj:=aj to jntj-1 do wr┆
0x05d200…05d220            69 74 65 28 27 20 27 29 3b 0d 0a 20 20 20 20 77 72 69 74 65 6c 6e 28 27 60 27 29 3b 09 28 2a 20   ┆ite(' ');      writeln('`'); (* ┆
0x05d220…05d240            70 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 20 2a 29 0d 0a 20 20 20 20 66 6f 72 20 69 6e 74   ┆pointer to error *)      for int┆
0x05d240…05d260            6e 3a 3d 61 6e 20 74 6f 20 7a 6e 20 64 6f 20 77 72 69 74 65 28 61 5b 69 6e 74 6e 5d 29 3b 0d 0a   ┆n:=an to zn do write(aÆintnÅ);  ┆
0x05d260…05d280            20 20 20 20 77 72 69 74 65 6c 6e 3b 0d 0a 20 20 20 20 6f 6b 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20   ┆    writeln;      ok:=false;    ┆
0x05d280…05d2a0            65 6e 64 3b 0d 0a 20 20 66 75 6e 63 74 69 6f 6e 20 72 64 72 67 6e 74 28 76 61 72 20 61 3a 20 72   ┆end;    function rdrgnt(var a: r┆
0x05d2a0…05d2c0            61 29 3a 20 74 62 3b 09 28 2a 20 67 65 74 20 6e 65 78 74 20 74 6f 6b 65 6e 20 66 72 6f 6d 20 63   ┆a): tb; (* get next token from c┆
0x05d2c0…05d2e0            6f 6d 6d 61 6e 64 20 2a 29 0d 0a 20 20 76 61 72 20 69 6e 74 6a 20 3a 20 74 6a 3b 0d 0a 20 20 62   ┆ommand *)    var intj : tj;    b┆
0x05d2e0…05d300            65 67 69 6e 0d 0a 20 20 20 20 77 68 69 6c 65 20 28 6a 6e 74 6a 20 3c 20 7a 6a 29 20 61 6e 64 20   ┆egin      while (jntj < zj) and ┆
0x05d300…05d320            28 69 6c 69 6e 65 5b 6a 6e 74 6a 5d 20 3c 20 27 41 27 29 20 64 6f 20 6a 6e 74 6a 3a 3d 6a 6e 74   ┆(ilineÆjntjÅ < 'A') do jntj:=jnt┆
0x05d320…05d340            6a 2b 31 3b 0d 0a 20 20 20 20 61 3a 3d 27 20 20 20 20 20 20 20 20 20 20 27 3b 0d 0a 20 20 20 20   ┆j+1;      a:='          ';      ┆
0x05d340…05d360            69 6e 74 6a 3a 3d 61 6a 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 28 6a 6e 74 6a 20 3c 20 7a 6a 29   ┆intj:=aj;      while (jntj < zj)┆
0x05d360…05d380            20 61 6e 64 20 28 69 6e 74 6a 20 3c 20 7a 61 29 20 61 6e 64 20 28 69 6c 69 6e 65 5b 6a 6e 74 6a   ┆ and (intj < za) and (ilineÆjntj┆
0x05d380…05d3a0            5d 20 69 6e 20 5b 27 41 27 2e 2e 27 5a 27 5d 29 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a   ┆Å in Æ'A'..'Z'Å) do      begin  ┆
0x05d3a0…05d3c0            20 20 20 20 20 20 61 5b 69 6e 74 6a 5d 3a 3d 69 6c 69 6e 65 5b 6a 6e 74 6a 5d 3b 0d 0a 20 20 20   ┆      aÆintjÅ:=ilineÆjntjÅ;     ┆
0x05d3c0…05d3e0            20 20 20 69 6e 74 6a 3a 3d 69 6e 74 6a 2b 31 3b 0d 0a 20 20 20 20 20 20 6a 6e 74 6a 3a 3d 6a 6e   ┆   intj:=intj+1;        jntj:=jn┆
0x05d3e0…05d400            74 6a 2b 31 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 72 64 72 67 6e 74 3a 3d 69 6e 74   ┆tj+1;      end;      rdrgnt:=int┆
0x05d400…05d420 (23, 0, 6) 6a 20 3c 3e 20 61 6a 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 69 6c 69 6e 65 5b 6a 6e 74 6a 5d 20   ┆j <> aj;      while ilineÆjntjÅ ┆
0x05d420…05d440            69 6e 20 5b 27 41 27 2e 2e 27 5a 27 5d 20 64 6f 20 6a 6e 74 6a 3a 3d 6a 6e 74 6a 2b 31 3b 0d 0a   ┆in Æ'A'..'Z'Å do jntj:=jntj+1;  ┆
0x05d440…05d460            20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 72 64 72 73 66 74 3b 09 09 28 2a 20   ┆  end;    procedure rdrsft;  (* ┆
0x05d460…05d480            73 6b 69 70 20 66 69 72 73 74 20 74 6f 6b 65 6e 20 69 6e 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65   ┆skip first token in command line┆
0x05d480…05d4a0            20 2a 29 0d 0a 20 20 76 61 72 0d 0a 20 20 20 20 69 6e 72 61 20 3a 20 72 61 3b 0d 0a 20 20 20 20   ┆ *)    var      inra : ra;      ┆
0x05d4a0…05d4c0            69 6e 74 62 20 3a 20 74 62 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 6a 6e 74 6a 3a 3d 61   ┆intb : tb;    begin      jntj:=a┆
0x05d4c0…05d4e0            6a 3b 0d 0a 20 20 20 20 69 6e 74 62 3a 3d 72 64 72 67 6e 74 28 69 6e 72 61 29 3b 0d 0a 20 20 65   ┆j;      intb:=rdrgnt(inra);    e┆
0x05d4e0…05d500            6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 72 64 6c 69 6e 65 3b 09 09 28 2a 20 67 65 74   ┆nd;    procedure rdline;  (* get┆
0x05d500…05d520            20 6e 65 78 74 20 69 6e 70 75 74 20 6c 69 6e 65 20 66 72 6f 6d 20 75 73 65 72 20 2a 29 0d 0a 20   ┆ next input line from user *)   ┆
0x05d520…05d540            20 76 61 72 20 69 6e 74 6a 20 3a 20 74 6a 3b 20 69 6e 74 63 20 3a 20 74 63 3b 0d 0a 20 20 62 65   ┆ var intj : tj; intc : tc;    be┆
0x05d540…05d560            67 69 6e 0d 0a 20 20 20 20 69 6e 74 6a 3a 3d 61 6a 3b 0d 0a 20 20 20 20 72 65 61 64 6c 6e 3b 0d   ┆gin      intj:=aj;      readln; ┆
0x05d560…05d580            0a 20 20 20 20 77 68 69 6c 65 20 6e 6f 74 20 65 6f 6c 6e 28 69 6e 70 75 74 29 20 61 6e 64 20 28   ┆     while not eoln(input) and (┆
0x05d580…05d5a0            69 6e 74 6a 20 3c 20 7a 6a 29 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20   ┆intj < zj) do      begin        ┆
0x05d5a0…05d5c0            72 65 61 64 28 69 6e 74 63 29 3b 20 69 63 61 72 64 5b 69 6e 74 6a 5d 3a 3d 69 6e 74 63 3b 0d 0a   ┆read(intc); icardÆintjÅ:=intc;  ┆
0x05d5c0…05d5e0            20 20 20 20 20 20 69 6e 74 6a 3a 3d 69 6e 74 6a 2b 31 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20   ┆      intj:=intj+1;      end;   ┆
0x05d5e0…05d600            20 20 20 77 68 69 6c 65 20 69 6e 74 6a 20 3c 20 7a 6a 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e   ┆   while intj < zj do      begin┆
0x05d600…05d620            0d 0a 20 20 20 20 20 20 69 63 61 72 64 5b 69 6e 74 6a 5d 3a 3d 27 20 27 3b 0d 0a 20 20 20 20 20   ┆        icardÆintjÅ:=' ';       ┆
0x05d620…05d640            20 69 6e 74 6a 3a 3d 69 6e 74 6a 2b 31 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 66 6f   ┆ intj:=intj+1;      end;      fo┆
0x05d640…05d660            72 20 69 6e 74 6a 20 3a 3d 61 6a 20 74 6f 20 7a 6a 2d 31 20 64 6f 0d 0a 20 20 20 20 20 20 69 66   ┆r intj :=aj to zj-1 do        if┆
0x05d660…05d680            20 69 63 61 72 64 5b 69 6e 74 6a 5d 20 69 6e 20 5b 27 61 27 2e 2e 27 7a 27 5d 20 74 68 65 6e 0d   ┆ icardÆintjÅ in Æ'a'..'z'Å then ┆
0x05d680…05d6a0            0a 20 20 20 20 20 20 20 20 69 63 61 72 64 5b 69 6e 74 6a 5d 3a 3d 63 68 72 28 6f 72 64 28 69 63   ┆         icardÆintjÅ:=chr(ord(ic┆
0x05d6a0…05d6c0            61 72 64 5b 69 6e 74 6a 5d 29 2d 6f 72 64 28 27 20 27 29 29 3b 0d 0a 20 20 20 20 69 63 61 72 64   ┆ardÆintjÅ)-ord(' '));      icard┆
0x05d6c0…05d6e0            5b 7a 6a 5d 3a 3d 27 3b 27 3b 0d 0a 20 20 20 20 6a 6d 74 6a 3a 3d 61 6a 3b 0d 0a 20 20 65 6e 64   ┆ÆzjÅ:=';';      jmtj:=aj;    end┆
0x05d6e0…05d700            3b 0d 0a 20 20 66 75 6e 63 74 69 6f 6e 20 72 64 72 6d 6f 76 3a 20 74 62 3b 09 09 28 2a 20 65 78   ┆;    function rdrmov: tb;  (* ex┆
0x05d700…05d720            74 72 61 63 74 20 6e 65 78 74 20 63 6f 6d 6d 61 6e 64 20 66 72 6f 6d 20 69 6e 70 75 74 20 6c 69   ┆tract next command from input li┆
0x05d720…05d740            6e 65 20 2a 29 0d 0a 20 20 76 61 72 20 69 6d 74 6a 20 3a 20 74 6a 3b 0d 0a 20 20 62 65 67 69 6e   ┆ne *)    var imtj : tj;    begin┆
0x05d740…05d760            0d 0a 20 20 20 20 77 68 69 6c 65 20 28 6a 6d 74 6a 20 3c 20 7a 6a 29 20 61 6e 64 20 28 69 63 61   ┆      while (jmtj < zj) and (ica┆
0x05d760…05d780            72 64 5b 6a 6d 74 6a 5d 20 3d 20 27 20 27 29 20 64 6f 20 6a 6d 74 6a 3a 3d 6a 6d 74 6a 2b 31 3b   ┆rdÆjmtjÅ = ' ') do jmtj:=jmtj+1;┆
0x05d780…05d7a0            0d 0a 20 20 20 20 69 6d 74 6a 3a 3d 61 6a 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 28 6a 6d 74 6a   ┆      imtj:=aj;      while (jmtj┆
0x05d7a0…05d7c0            20 3c 20 7a 6a 29 20 61 6e 64 20 28 69 63 61 72 64 5b 6a 6d 74 6a 5d 20 3c 3e 20 27 3b 27 29 20   ┆ < zj) and (icardÆjmtjÅ <> ';') ┆
0x05d7c0…05d7e0            64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 6c 69 6e 65 5b 69 6d 74 6a 5d   ┆do      begin        ilineÆimtjÅ┆
0x05d7e0…05d800            3a 3d 69 63 61 72 64 5b 6a 6d 74 6a 5d 3b 0d 0a 20 20 20 20 20 20 69 6d 74 6a 3a 3d 69 6d 74 6a   ┆:=icardÆjmtjÅ;        imtj:=imtj┆
0x05d800…05d820 (23, 0, 7) 2b 31 3b 0d 0a 20 20 20 20 20 20 6a 6d 74 6a 3a 3d 6a 6d 74 6a 2b 31 3b 0d 0a 20 20 20 20 65 6e   ┆+1;        jmtj:=jmtj+1;      en┆
0x05d820…05d840            64 3b 0d 0a 20 20 20 20 69 66 20 28 69 63 61 72 64 5b 6a 6d 74 6a 5d 20 3d 20 27 3b 27 29 20 61   ┆d;      if (icardÆjmtjÅ = ';') a┆
0x05d840…05d860            6e 64 20 28 6a 6d 74 6a 20 3c 20 7a 6a 29 20 74 68 65 6e 20 6a 6d 74 6a 3a 3d 6a 6d 74 6a 2b 31   ┆nd (jmtj < zj) then jmtj:=jmtj+1┆
0x05d860…05d880            3b 0d 0a 20 20 20 20 72 64 72 6d 6f 76 3a 3d 69 6d 74 6a 20 3c 3e 20 61 6a 3b 0d 0a 20 20 20 20   ┆;      rdrmov:=imtj <> aj;      ┆
0x05d880…05d8a0            77 68 69 6c 65 20 69 6d 74 6a 20 3c 20 7a 6a 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20   ┆while imtj < zj do      begin   ┆
0x05d8a0…05d8c0            20 20 20 20 20 69 6c 69 6e 65 5b 69 6d 74 6a 5d 3a 3d 27 20 27 3b 0d 0a 20 20 20 20 20 20 69 6d   ┆     ilineÆimtjÅ:=' ';        im┆
0x05d8c0…05d8e0            74 6a 3a 3d 69 6d 74 6a 2b 31 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 69 6c 69 6e 65   ┆tj:=imtj+1;      end;      iline┆
0x05d8e0…05d900            5b 7a 6a 5d 3a 3d 27 3b 27 3b 0d 0a 20 20 20 20 6a 6e 74 6a 3a 3d 61 6a 3b 0d 0a 20 20 65 6e 64   ┆ÆzjÅ:=';';      jntj:=aj;    end┆
0x05d900…05d920            3b 0d 0a 20 20 66 75 6e 63 74 69 6f 6e 20 72 64 72 6e 75 6d 3a 20 74 69 3b 09 09 28 2a 20 63 72   ┆;    function rdrnum: ti;  (* cr┆
0x05d920…05d940            61 63 6b 20 6e 75 6d 62 65 72 20 66 72 6f 6d 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 2a 29 0d   ┆ack number from command line *) ┆
0x05d940…05d960            0a 20 20 76 61 72 0d 0a 20 20 20 20 69 6e 74 62 20 3a 20 74 62 3b 0d 0a 20 20 20 20 69 6e 74 69   ┆   var      intb : tb;      inti┆
0x05d960…05d980            20 3a 20 74 69 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 77 68 69 6c 65 20 28 6a 6e 74 6a   ┆ : ti;    begin      while (jntj┆
0x05d980…05d9a0            20 3c 20 7a 6a 29 20 61 6e 64 20 28 69 6c 69 6e 65 5b 6a 6e 74 6a 5d 20 3d 20 27 20 27 29 20 64   ┆ < zj) and (ilineÆjntjÅ = ' ') d┆
0x05d9a0…05d9c0            6f 20 6a 6e 74 6a 3a 3d 6a 6e 74 6a 2b 31 3b 0d 0a 20 20 20 20 69 66 20 69 6c 69 6e 65 5b 6a 6e   ┆o jntj:=jntj+1;      if ilineÆjn┆
0x05d9c0…05d9e0            74 6a 5d 20 3d 20 27 2d 27 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20   ┆tjÅ = '-' then      begin       ┆
0x05d9e0…05da00            20 69 6e 74 62 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 6a 6e 74 6a 3a 3d 6a 6e 74 6a 2b 31   ┆ intb:=true;        jntj:=jntj+1┆
0x05da00…05da20            3b 0d 0a 20 20 20 20 65 6e 64 20 65 6c 73 65 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20   ┆;      end else      begin      ┆
0x05da20…05da40            20 20 69 6e 74 62 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 69 66 20 69 6c 69 6e 65 5b 6a   ┆  intb:=false;        if ilineÆj┆
0x05da40…05da60            6e 74 6a 5d 20 3d 20 27 2b 27 20 74 68 65 6e 20 6a 6e 74 6a 3a 3d 6a 6e 74 6a 2b 31 3b 0d 0a 20   ┆ntjÅ = '+' then jntj:=jntj+1;   ┆
0x05da60…05da80            20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 69 6e 74 69 3a 3d 30 3b 0d 0a 20 20 20 20 77 68 69 6c 65   ┆   end;      inti:=0;      while┆
0x05da80…05daa0            20 69 6c 69 6e 65 5b 6a 6e 74 6a 5d 20 69 6e 20 5b 27 30 27 2e 2e 27 39 27 5d 20 64 6f 0d 0a 20   ┆ ilineÆjntjÅ in Æ'0'..'9'Å do   ┆
0x05daa0…05dac0            20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 74 69 20 3c 20 6d 61 78 69 6e 74   ┆   begin        if inti < maxint┆
0x05dac0…05dae0            20 64 69 76 20 31 30 20 74 68 65 6e 20 69 6e 74 69 3a 3d 31 30 2a 69 6e 74 69 2b 6f 72 64 28 69   ┆ div 10 then inti:=10*inti+ord(i┆
0x05dae0…05db00            6c 69 6e 65 5b 6a 6e 74 6a 5d 29 2d 6f 72 64 28 27 30 27 29 0d 0a 20 20 20 20 20 20 20 20 65 6c   ┆lineÆjntjÅ)-ord('0')          el┆
0x05db00…05db20            73 65 20 72 64 72 65 72 72 28 27 20 4e 55 4d 42 45 52 20 54 4f 4f 20 4c 41 52 47 45 20 20 20 20   ┆se rdrerr(' NUMBER TOO LARGE    ┆
0x05db20…05db40            20 20 20 20 20 20 20 20 20 27 29 3b 0d 0a 20 20 20 20 20 20 6a 6e 74 6a 3a 3d 6a 6e 74 6a 2b 31   ┆         ');        jntj:=jntj+1┆
0x05db40…05db60            3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 69 66 20 6f 6b 20 61 6e 64 20 28 69 6c 69 6e   ┆;      end;      if ok and (ilin┆
0x05db60…05db80            65 5b 6a 6e 74 6a 5d 20 69 6e 20 5b 27 41 27 2e 2e 27 5a 27 5d 29 20 74 68 65 6e 0d 0a 20 20 20   ┆eÆjntjÅ in Æ'A'..'Z'Å) then     ┆
0x05db80…05dba0            20 20 20 72 64 72 65 72 72 28 27 20 44 49 47 49 54 20 45 58 50 45 43 54 45 44 20 20 20 20 20 20   ┆   rdrerr(' DIGIT EXPECTED      ┆
0x05dba0…05dbc0            20 20 20 20 20 20 20 20 20 27 29 3b 0d 0a 20 20 20 20 69 66 20 69 6e 74 62 20 74 68 65 6e 20 69   ┆         ');      if intb then i┆
0x05dbc0…05dbe0            6e 74 69 3a 3d 2d 69 6e 74 69 3b 0d 0a 20 20 20 20 72 64 72 6e 75 6d 3a 3d 69 6e 74 69 3b 0d 0a   ┆nti:=-inti;      rdrnum:=inti;  ┆
0x05dbe0…05dc00            20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 62 6f 61 63 6d 64 3b 09 28 2a 20 63   ┆  end;    procedure boacmd; (* c┆
0x05dc00…05dc20 (23, 0, 8) 6f 6d 6d 61 6e 64 20 2d 20 73 65 74 20 75 70 20 70 6f 73 69 74 69 6f 6e 20 2a 29 0d 0a 20 20 76   ┆ommand - set up position *)    v┆
0x05dc20…05dc40            61 72 0d 0a 20 20 20 20 69 6e 74 6d 20 3a 20 74 6d 3b 0d 0a 20 20 20 20 69 6e 74 73 20 3a 20 74   ┆ar      intm : tm;      ints : t┆
0x05dc40…05dc60            73 3b 0d 0a 20 20 20 20 70 72 6f 63 65 64 75 72 65 20 62 6f 61 61 64 76 28 61 3a 20 74 69 29 3b   ┆s;      procedure boaadv(a: ti);┆
0x05dc60…05dc80            0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 74 73 2b 61 20 3c 20 7a   ┆      begin        if ints+a < z┆
0x05dc80…05dca0            73 20 74 68 65 6e 20 69 6e 74 73 3a 3d 69 6e 74 73 2b 61 20 65 6c 73 65 20 69 6e 74 73 3a 3d 7a   ┆s then ints:=ints+a else ints:=z┆
0x05dca0…05dcc0            73 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 70 72 6f 63 65 64 75 72 65 20 62 6f 61 73   ┆s;      end;      procedure boas┆
0x05dcc0…05dce0            74 6f 28 61 3a 20 74 70 29 3b 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 62 6f 61   ┆to(a: tp);      begin        boa┆
0x05dce0…05dd00            72 64 2e 72 62 69 73 5b 69 6e 74 73 5d 3a 3d 61 3b 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 74 73   ┆rd.rbisÆintsÅ:=a;        if ints┆
0x05dd00…05dd20            20 3c 20 7a 73 20 74 68 65 6e 20 69 6e 74 73 3a 3d 69 6e 74 73 2b 31 3b 0d 0a 20 20 20 20 65 6e   ┆ < zs then ints:=ints+1;      en┆
0x05dd20…05dd40            64 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 63 6c 73 74 61 74 3b 0d 0a 20 20 20 20 6c 73   ┆d;    begin      clstat;      ls┆
0x05dd40…05dd60            74 6d 76 3a 3d 6e 75 6c 6d 76 3b 0d 0a 20 20 20 20 66 6f 72 20 69 6e 74 73 3a 3d 61 73 20 74 6f   ┆tmv:=nulmv;      for ints:=as to┆
0x05dd60…05dd80            20 7a 73 20 64 6f 20 62 6f 61 72 64 2e 72 62 69 73 5b 69 6e 74 73 5d 3a 3d 6d 74 3b 0d 0a 20 20   ┆ zs do board.rbisÆintsÅ:=mt;    ┆
0x05dd80…05dda0            20 20 69 6e 74 6d 3a 3d 6c 69 74 65 3b 0d 0a 20 20 20 20 69 6e 74 73 3a 3d 30 3b 0d 0a 20 20 20   ┆  intm:=lite;      ints:=0;     ┆
0x05dda0…05ddc0            20 72 65 70 65 61 74 0d 0a 20 20 20 20 20 20 69 66 20 69 6c 69 6e 65 5b 6a 6e 74 6a 5d 20 69 6e   ┆ repeat        if ilineÆjntjÅ in┆
0x05ddc0…05dde0            20 5b 27 50 27 2c 27 52 27 2c 27 4e 27 2c 27 42 27 2c 27 51 27 2c 27 4b 27 2c 27 4c 27 2c 27 44   ┆ Æ'P','R','N','B','Q','K','L','D┆
0x05dde0…05de00            27 2c 27 31 27 2e 2e 27 38 27 5d 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 63 61 73 65 20 69 6c 69   ┆','1'..'8'Å then        case ili┆
0x05de00…05de20            6e 65 5b 6a 6e 74 6a 5d 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 27 50 27 3a 20 62 6f 61 73 74 6f   ┆neÆjntjÅ of          'P': boasto┆
0x05de20…05de40            28 78 74 75 6d 70 5b 65 70 2c 69 6e 74 6d 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 27 52 27 3a 20   ┆(xtumpÆep,intmÅ);          'R': ┆
0x05de40…05de60            62 6f 61 73 74 6f 28 78 74 75 6d 70 5b 65 72 2c 69 6e 74 6d 5d 29 3b 0d 0a 20 20 20 20 20 20 20   ┆boasto(xtumpÆer,intmÅ);         ┆
0x05de60…05de80            20 27 4e 27 3a 20 62 6f 61 73 74 6f 28 78 74 75 6d 70 5b 65 6e 2c 69 6e 74 6d 5d 29 3b 0d 0a 20   ┆ 'N': boasto(xtumpÆen,intmÅ);   ┆
0x05de80…05dea0            20 20 20 20 20 20 20 27 42 27 3a 20 62 6f 61 73 74 6f 28 78 74 75 6d 70 5b 65 62 2c 69 6e 74 6d   ┆       'B': boasto(xtumpÆeb,intm┆
0x05dea0…05dec0            5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 27 51 27 3a 20 62 6f 61 73 74 6f 28 78 74 75 6d 70 5b 65   ┆Å);          'Q': boasto(xtumpÆe┆
0x05dec0…05dee0            71 2c 69 6e 74 6d 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 27 4b 27 3a 20 62 6f 61 73 74 6f 28 78   ┆q,intmÅ);          'K': boasto(x┆
0x05dee0…05df00            74 75 6d 70 5b 65 6b 2c 69 6e 74 6d 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 27 4c 27 3a 20 69 6e   ┆tumpÆek,intmÅ);          'L': in┆
0x05df00…05df20            74 6d 3a 3d 6c 69 74 65 3b 0d 0a 20 20 20 20 20 20 20 20 27 44 27 3a 20 69 6e 74 6d 3a 3d 64 61   ┆tm:=lite;          'D': intm:=da┆
0x05df20…05df40            72 6b 3b 0d 0a 20 20 20 20 20 20 20 20 27 31 27 2c 27 32 27 2c 27 33 27 2c 27 34 27 2c 27 35 27   ┆rk;          '1','2','3','4','5'┆
0x05df40…05df60            2c 27 36 27 2c 27 37 27 2c 27 38 27 3a 20 62 6f 61 61 64 76 28 6f 72 64 28 69 6c 69 6e 65 5b 6a   ┆,'6','7','8': boaadv(ord(ilineÆj┆
0x05df60…05df80            6e 74 6a 5d 29 2d 6f 72 64 28 27 30 27 29 29 3b 0d 0a 20 20 20 20 20 20 65 6e 64 0d 0a 20 20 20   ┆ntjÅ)-ord('0'));        end     ┆
0x05df80…05dfa0            20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6c 69 6e 65 5b 6a 6e 74 6a 5d 20   ┆   else          if ilineÆjntjÅ ┆
0x05dfa0…05dfc0            69 6e 20 5b 27 41 27 2e 2e 27 39 27 5d 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 62 65 67 69   ┆in Æ'A'..'9'Å then          begi┆
0x05dfc0…05dfe0            6e 0d 0a 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 69 6e 74 73 3a 3d 61 73 20 74 6f 20 7a 73 20   ┆n            for ints:=as to zs ┆
0x05dfe0…05e000            64 6f 20 62 6f 61 72 64 2e 72 62 69 73 5b 69 6e 74 73 5d 3a 3d 6d 74 3b 0d 0a 20 20 20 20 20 20   ┆do board.rbisÆintsÅ:=mt;        ┆
0x05e000…05e020 (23, 1, 1) 20 20 20 20 63 6c 73 74 61 74 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 72 64 72 65 72 72 28 27 20   ┆    clstat;            rdrerr(' ┆
0x05e020…05e040            49 4c 4c 45 47 41 4c 20 42 4f 41 52 44 20 4f 50 54 49 4f 4e 20 20 20 20 20 20 20 20 20 27 29 3b   ┆ILLEGAL BOARD OPTION         ');┆
0x05e040…05e060            0d 0a 20 20 20 20 20 20 20 20 20 20 6a 6e 74 6a 3a 3d 7a 6a 2d 31 3b 0d 0a 20 20 20 20 20 20 20   ┆            jntj:=zj-1;         ┆
0x05e060…05e080            20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 6a 6e 74 6a 3a 3d 6a 6e 74 6a 2b 31 3b 0d 0a 20 20 20 20   ┆ end;        jntj:=jntj+1;      ┆
0x05e080…05e0a0            75 6e 74 69 6c 20 6a 6e 74 6a 20 3d 20 7a 6a 3b 0d 0a 20 20 20 20 6c 73 74 6d 6f 76 3b 0d 0a 20   ┆until jntj = zj;      lstmov;   ┆
0x05e0a0…05e0c0            20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 65 6e 64 63 6d 64 3b 09 28 2a 20 63 6f   ┆ end;    procedure endcmd; (* co┆
0x05e0c0…05e0e0            6d 6d 61 6e 64 20 2d 20 65 6e 64 20 70 72 6f 67 72 61 6d 20 2a 29 0d 0a 20 20 62 65 67 69 6e 20   ┆mmand - end program *)    begin ┆
0x05e0e0…05e100            63 6f 6d 3a 3d 39 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 67 6f 6e 63 6d 64 3b   ┆com:=9 end;    procedure goncmd;┆
0x05e100…05e120            09 28 2a 20 63 6f 6d 6d 61 6e 64 20 2d 20 67 6f 20 6e 20 6d 6f 76 65 73 20 2a 29 0d 0a 20 20 62   ┆ (* command - go n moves *)    b┆
0x05e120…05e140            65 67 69 6e 0d 0a 20 20 20 20 67 6f 69 6e 67 3a 3d 72 64 72 6e 75 6d 3b 0d 0a 20 20 20 20 69 66   ┆egin      going:=rdrnum;      if┆
0x05e140…05e160            20 6f 6b 20 74 68 65 6e 20 63 6f 6d 3a 3d 32 3b 0d 0a 20 20 20 20 69 66 20 67 6f 69 6e 67 20 3c   ┆ ok then com:=2;      if going <┆
0x05e160…05e180            3d 20 30 20 74 68 65 6e 20 67 6f 69 6e 67 3a 3d 31 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 72   ┆= 0 then going:=1;    end;    pr┆
0x05e180…05e1a0            6f 63 65 64 75 72 65 20 69 6e 69 63 6d 64 3b 09 28 2a 20 63 6f 6d 6d 61 6e 64 20 2d 20 69 6e 69   ┆ocedure inicmd; (* command - ini┆
0x05e1a0…05e1c0            74 69 61 6c 69 7a 65 20 66 6f 72 20 61 20 6e 65 77 20 67 61 6d 65 20 2a 29 0d 0a 20 20 62 65 67   ┆tialize for a new game *)    beg┆
0x05e1c0…05e1e0            69 6e 20 63 6f 6d 3a 3d 31 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 6c 65 74 63   ┆in com:=1 end;    procedure letc┆
0x05e1e0…05e200            6d 64 3b 09 28 2a 20 63 6f 6d 6d 61 6e 64 20 2d 20 63 68 61 6e 67 65 20 76 61 72 69 61 62 6c 65   ┆md; (* command - change variable┆
0x05e200…05e220            20 2a 29 0d 0a 20 20 76 61 72 20 69 6e 74 69 20 3a 20 74 69 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a   ┆ *)    var inti : ti;    begin  ┆
0x05e220…05e240            20 20 20 20 77 68 69 6c 65 20 72 64 72 67 6e 74 28 69 6e 72 61 29 20 64 6f 0d 0a 20 20 20 20 62   ┆    while rdrgnt(inra) do      b┆
0x05e240…05e260            65 67 69 6e 0d 0a 20 20 20 20 20 20 69 6e 74 69 3a 3d 72 64 72 6e 75 6d 3b 0d 0a 20 20 20 20 20   ┆egin        inti:=rdrnum;       ┆
0x05e260…05e280            20 69 66 20 6f 6b 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 28 2a 20 20 20 20   ┆ if ok then        begin  (*    ┆
0x05e280…05e2a0            20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 4b 50 53 48 44 20 20 20 20 27 20 74 68 65 6e 20   ┆    if inra = 'FKPSHD    ' then ┆
0x05e2a0…05e2c0            66 6b 70 73 68 64 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e   ┆fkpshd:=inti else          if in┆
0x05e2c0…05e2e0            72 61 20 3d 20 27 46 4b 53 41 4e 51 20 20 20 20 27 20 74 68 65 6e 20 66 6b 73 61 6e 71 3a 3d 69   ┆ra = 'FKSANQ    ' then fksanq:=i┆
0x05e2e0…05e300            6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 4d 41   ┆nti else          if inra = 'FMA┆
0x05e300…05e320            58 4d 54 20 20 20 20 27 20 74 68 65 6e 20 66 6d 61 78 6d 74 3a 3d 69 6e 74 69 20 65 6c 73 65 0d   ┆XMT    ' then fmaxmt:=inti else ┆
0x05e320…05e340            0a 2a 29 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 53 54 41 47 45 53 20 20 20 20   ┆ *)        if inra = 'STAGES    ┆
0x05e340…05e360            27 20 74 68 65 6e 20 73 74 61 67 65 73 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 28 2a 20 20 20 20   ┆' then stages:=inti else  (*    ┆
0x05e360…05e380            20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 41 44 51 52 20 20 20 20 27 20 74 68 65 6e 20   ┆    if inra = 'FPADQR    ' then ┆
0x05e380…05e3a0            66 70 61 64 63 72 5b 66 31 5d 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69   ┆fpadcrÆf1Å:=inti else          i┆
0x05e3a0…05e3c0            66 20 69 6e 72 61 20 3d 20 27 46 50 41 44 51 4e 20 20 20 20 27 20 74 68 65 6e 20 66 70 61 64 63   ┆f inra = 'FPADQN    ' then fpadc┆
0x05e3c0…05e3e0            72 5b 66 32 5d 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72   ┆rÆf2Å:=inti else          if inr┆
0x05e3e0…05e400            61 20 3d 20 27 46 50 41 44 51 42 20 20 20 20 27 20 74 68 65 6e 20 66 70 61 64 63 72 5b 66 33 5d   ┆a = 'FPADQB    ' then fpadcrÆf3Å┆
0x05e400…05e420 (23, 1, 2) 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27   ┆:=inti else          if inra = '┆
0x05e420…05e440            46 50 41 44 51 46 20 20 20 20 27 20 74 68 65 6e 20 66 70 61 64 63 72 5b 66 34 5d 3a 3d 69 6e 74   ┆FPADQF    ' then fpadcrÆf4Å:=int┆
0x05e440…05e460            69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 41 44 4b   ┆i else          if inra = 'FPADK┆
0x05e460…05e480            46 20 20 20 20 27 20 74 68 65 6e 20 66 70 61 64 63 72 5b 66 35 5d 3a 3d 69 6e 74 69 20 65 6c 73   ┆F    ' then fpadcrÆf5Å:=inti els┆
0x05e480…05e4a0            65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 41 44 4b 42 20 20 20 20   ┆e          if inra = 'FPADKB    ┆
0x05e4a0…05e4c0            27 20 74 68 65 6e 20 66 70 61 64 63 72 5b 66 36 5d 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20   ┆' then fpadcrÆf6Å:=inti else    ┆
0x05e4c0…05e4e0            20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 41 44 4b 4e 20 20 20 20 27 20 74 68 65   ┆      if inra = 'FPADKN    ' the┆
0x05e4e0…05e500            6e 20 66 70 61 64 63 72 5b 66 37 5d 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20   ┆n fpadcrÆf7Å:=inti else         ┆
0x05e500…05e520            20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 41 44 4b 52 20 20 20 20 27 20 74 68 65 6e 20 66 70 61   ┆ if inra = 'FPADKR    ' then fpa┆
0x05e520…05e540            64 63 72 5b 66 38 5d 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69   ┆dcrÆf8Å:=inti else          if i┆
0x05e540…05e560            6e 72 61 20 3d 20 27 46 50 42 4c 4f 4b 20 20 20 20 27 20 74 68 65 6e 20 66 70 62 6c 6f 6b 3a 3d   ┆nra = 'FPBLOK    ' then fpblok:=┆
0x05e560…05e580            69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50   ┆inti else          if inra = 'FP┆
0x05e580…05e5a0            43 4f 4e 4e 20 20 20 20 27 20 74 68 65 6e 20 66 70 63 6f 6e 6e 3a 3d 69 6e 74 69 20 65 6c 73 65   ┆CONN    ' then fpconn:=inti else┆
0x05e5a0…05e5c0            0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 46 4c 4e 58 20 20 20 20 27   ┆          if inra = 'FPFLNX    '┆
0x05e5c0…05e5e0            20 74 68 65 6e 20 66 70 66 6c 6e 78 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20   ┆ then fpflnx:=inti else         ┆
0x05e5e0…05e600            20 69 66 20 69 6e 72 61 20 3d 20 27 46 52 44 55 42 4c 20 20 20 20 27 20 74 68 65 6e 20 66 72 64   ┆ if inra = 'FRDUBL    ' then frd┆
0x05e600…05e620            75 62 6c 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20   ┆ubl:=inti else          if inra ┆
0x05e620…05e640            3d 20 27 46 52 4b 37 54 48 20 20 20 20 27 20 74 68 65 6e 20 66 72 6b 37 74 68 3a 3d 69 6e 74 69   ┆= 'FRK7TH    ' then frk7th:=inti┆
0x05e640…05e660            20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 54 52 41 44 45   ┆ else          if inra = 'FTRADE┆
0x05e660…05e680            20 20 20 20 27 20 74 68 65 6e 20 66 74 72 61 64 65 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20   ┆    ' then ftrade:=inti else    ┆
0x05e680…05e6a0            20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 54 52 44 53 4c 20 20 20 20 27 20 74 68 65   ┆      if inra = 'FTRDSL    ' the┆
0x05e6a0…05e6c0            6e 20 66 74 72 64 73 6c 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20   ┆n ftrdsl:=inti else          if ┆
0x05e6c0…05e6e0            69 6e 72 61 20 3d 20 27 46 54 52 50 4f 4b 20 20 20 20 27 20 74 68 65 6e 20 66 74 72 70 6f 6b 3a   ┆inra = 'FTRPOK    ' then ftrpok:┆
0x05e6e0…05e700            3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46   ┆=inti else          if inra = 'F┆
0x05e700…05e720            54 52 50 57 4e 20 20 20 20 27 20 74 68 65 6e 20 66 74 72 70 77 6e 3a 3d 69 6e 74 69 20 65 6c 73   ┆TRPWN    ' then ftrpwn:=inti els┆
0x05e720…05e740            65 0d 0a 2a 29 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 57 4b 49 4e 47 20 20   ┆e  *)        if inra = 'FWKING  ┆
0x05e740…05e760            20 20 27 20 74 68 65 6e 20 66 77 6b 69 6e 67 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20   ┆  ' then fwking:=inti else      ┆
0x05e760…05e780            20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 57 4d 41 4a 4d 20 20 20 20 27 20 74 68 65 6e 20   ┆    if inra = 'FWMAJM    ' then ┆
0x05e780…05e7a0            66 77 6d 61 6a 6d 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e   ┆fwmajm:=inti else          if in┆
0x05e7a0…05e7c0            72 61 20 3d 20 27 46 57 4d 49 4e 4d 20 20 20 20 27 20 74 68 65 6e 20 66 77 6d 69 6e 6d 3a 3d 69   ┆ra = 'FWMINM    ' then fwminm:=i┆
0x05e7c0…05e7e0            6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 57 50   ┆nti else          if inra = 'FWP┆
0x05e7e0…05e800            41 57 4e 20 20 20 20 27 20 74 68 65 6e 20 66 77 70 61 77 6e 3a 3d 69 6e 74 69 20 65 6c 73 65 0d   ┆AWN    ' then fwpawn:=inti else ┆
0x05e800…05e820 (23, 1, 3) 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 57 52 4f 4f 4b 20 20 20 20 27 20   ┆         if inra = 'FWROOK    ' ┆
0x05e820…05e840            74 68 65 6e 20 66 77 72 6f 6f 6b 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20   ┆then fwrook:=inti else          ┆
0x05e840…05e860            69 66 20 69 6e 72 61 20 3d 20 27 46 43 48 45 43 4b 20 20 20 20 27 20 74 68 65 6e 20 66 63 68 65   ┆if inra = 'FCHECK    ' then fche┆
0x05e860…05e880            63 6b 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d   ┆ck:=inti else          if inra =┆
0x05e880…05e8a0            20 27 46 57 41 54 54 4b 20 20 20 20 27 20 74 68 65 6e 20 66 77 61 74 74 6b 3a 3d 69 6e 74 69 20   ┆ 'FWATTK    ' then fwattk:=inti ┆
0x05e8a0…05e8c0            65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 41 4b 49 4e 47 20   ┆else          if inra = 'FAKING ┆
0x05e8c0…05e8e0            20 20 20 27 20 74 68 65 6e 20 66 61 6b 69 6e 67 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20   ┆   ' then faking:=inti else     ┆
0x05e8e0…05e900            20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 43 46 52 45 45 20 20 20 20 27 20 74 68 65 6e   ┆     if inra = 'FCFREE    ' then┆
0x05e900…05e920            20 66 63 66 72 65 65 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69   ┆ fcfree:=inti else          if i┆
0x05e920…05e940            6e 72 61 20 3d 20 27 57 49 4e 44 4f 57 20 20 20 20 27 20 74 68 65 6e 20 77 69 6e 64 6f 77 3a 3d   ┆nra = 'WINDOW    ' then window:=┆
0x05e940…05e960            69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 72 64 72 65 72 72 28 27 20 49 4c 4c 45   ┆inti else          rdrerr(' ILLE┆
0x05e960…05e980            47 41 4c 20 4c 45 54 20 56 41 52 49 41 42 4c 45 20 4e 41 4d 45 20 20 20 20 27 29 3b 0d 0a 20 20   ┆GAL LET VARIABLE NAME    ');    ┆
0x05e980…05e9a0            20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 69 66 20 6f 6b 20 74 68   ┆    end;      end;      if ok th┆
0x05e9a0…05e9c0            65 6e 20 77 72 69 74 65 6c 6e 28 27 4f 4b 27 29 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f   ┆en writeln('OK');    end;    pro┆
0x05e9c0…05e9e0            63 65 64 75 72 65 20 70 6c 65 63 6d 64 3b 09 28 2a 20 63 6f 6d 6d 61 6e 64 20 2d 20 70 72 69 6e   ┆cedure plecmd; (* command - prin┆
0x05e9e0…05ea00            74 20 76 61 72 69 61 62 6c 65 20 2a 29 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 77 68 69 6c   ┆t variable *)    begin      whil┆
0x05ea00…05ea20            65 20 72 64 72 67 6e 74 28 69 6e 72 61 29 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 28 2a   ┆e rdrgnt(inra) do      begin  (*┆
0x05ea20…05ea40            20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 4b 50 53 48 44 20 20 20 20 27 20 74 68 65   ┆      if inra = 'FKPSHD    ' the┆
0x05ea40…05ea60            6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 6b 70 73 68 64 29 20 65 6c 73   ┆n writeln(inra,'= ', fkpshd) els┆
0x05ea60…05ea80            65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 4b 53 41 4e 51 20 20 20 20 27 20   ┆e        if inra = 'FKSANQ    ' ┆
0x05ea80…05eaa0            74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 6b 73 61 6e 71 29 20   ┆then writeln(inra,'= ', fksanq) ┆
0x05eaa0…05eac0            65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 4d 41 58 4d 54 20 20 20   ┆else        if inra = 'FMAXMT   ┆
0x05eac0…05eae0            20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 6d 61 78 6d   ┆ ' then writeln(inra,'= ', fmaxm┆
0x05eae0…05eb00            74 29 20 65 6c 73 65 0d 0a 2a 29 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 53 54 41 47   ┆t) else  *)      if inra = 'STAG┆
0x05eb00…05eb20            45 53 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20   ┆ES    ' then writeln(inra,'= ', ┆
0x05eb20…05eb40            73 74 61 67 65 73 29 20 65 6c 73 65 0d 0a 28 2a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20   ┆stages) else  (*      if inra = ┆
0x05eb40…05eb60            27 46 50 41 44 51 52 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27   ┆'FPADQR    ' then writeln(inra,'┆
0x05eb60…05eb80            3d 20 27 2c 20 66 70 61 64 63 72 5b 66 31 5d 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20   ┆= ', fpadcrÆf1Å) else        if ┆
0x05eb80…05eba0            69 6e 72 61 20 3d 20 27 46 50 41 44 51 4e 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e   ┆inra = 'FPADQN    ' then writeln┆
0x05eba0…05ebc0            28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 70 61 64 63 72 5b 66 32 5d 29 20 65 6c 73 65 0d 0a 20 20   ┆(inra,'= ', fpadcrÆf2Å) else    ┆
0x05ebc0…05ebe0            20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 41 44 51 42 20 20 20 20 27 20 74 68 65 6e 20   ┆    if inra = 'FPADQB    ' then ┆
0x05ebe0…05ec00            77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 70 61 64 63 72 5b 66 33 5d 29 20 65   ┆writeln(inra,'= ', fpadcrÆf3Å) e┆
0x05ec00…05ec20 (23, 1, 4) 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 41 44 51 46 20 20 20 20   ┆lse        if inra = 'FPADQF    ┆
0x05ec20…05ec40            27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 70 61 64 63 72   ┆' then writeln(inra,'= ', fpadcr┆
0x05ec40…05ec60            5b 66 34 5d 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 41   ┆Æf4Å) else        if inra = 'FPA┆
0x05ec60…05ec80            44 4b 46 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c   ┆DKF    ' then writeln(inra,'= ',┆
0x05ec80…05eca0            20 66 70 61 64 63 72 5b 66 35 5d 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61   ┆ fpadcrÆf5Å) else        if inra┆
0x05eca0…05ecc0            20 3d 20 27 46 50 41 44 4b 42 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72   ┆ = 'FPADKB    ' then writeln(inr┆
0x05ecc0…05ece0            61 2c 27 3d 20 27 2c 20 66 70 61 64 63 72 5b 66 36 5d 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20   ┆a,'= ', fpadcrÆf6Å) else        ┆
0x05ece0…05ed00            69 66 20 69 6e 72 61 20 3d 20 27 46 50 41 44 4b 4e 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74   ┆if inra = 'FPADKN    ' then writ┆
0x05ed00…05ed20            65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 70 61 64 63 72 5b 66 37 5d 29 20 65 6c 73 65 0d   ┆eln(inra,'= ', fpadcrÆf7Å) else ┆
0x05ed20…05ed40            0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 41 44 4b 52 20 20 20 20 27 20 74 68   ┆       if inra = 'FPADKR    ' th┆
0x05ed40…05ed60            65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 70 61 64 63 72 5b 66 38 5d   ┆en writeln(inra,'= ', fpadcrÆf8Å┆
0x05ed60…05ed80            29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 42 4c 4f 4b 20   ┆) else        if inra = 'FPBLOK ┆
0x05ed80…05eda0            20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 70 62   ┆   ' then writeln(inra,'= ', fpb┆
0x05eda0…05edc0            6c 6f 6b 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 43 4f   ┆lok) else        if inra = 'FPCO┆
0x05edc0…05ede0            4e 4e 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20   ┆NN    ' then writeln(inra,'= ', ┆
0x05ede0…05ee00            66 70 63 6f 6e 6e 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46   ┆fpconn) else        if inra = 'F┆
0x05ee00…05ee20            50 46 4c 4e 58 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20   ┆PFLNX    ' then writeln(inra,'= ┆
0x05ee20…05ee40            27 2c 20 66 70 66 6c 6e 78 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d   ┆', fpflnx) else        if inra =┆
0x05ee40…05ee60            20 27 46 52 44 55 42 4c 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c   ┆ 'FRDUBL    ' then writeln(inra,┆
0x05ee60…05ee80            27 3d 20 27 2c 20 66 72 64 75 62 6c 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72   ┆'= ', frdubl) else        if inr┆
0x05ee80…05eea0            61 20 3d 20 27 46 52 4b 37 54 48 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e   ┆a = 'FRK7TH    ' then writeln(in┆
0x05eea0…05eec0            72 61 2c 27 3d 20 27 2c 20 66 72 6b 37 74 68 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20   ┆ra,'= ', frk7th) else        if ┆
0x05eec0…05eee0            69 6e 72 61 20 3d 20 27 46 54 52 41 44 45 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e   ┆inra = 'FTRADE    ' then writeln┆
0x05eee0…05ef00            28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 74 72 61 64 65 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20   ┆(inra,'= ', ftrade) else        ┆
0x05ef00…05ef20            69 66 20 69 6e 72 61 20 3d 20 27 46 54 52 44 53 4c 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74   ┆if inra = 'FTRDSL    ' then writ┆
0x05ef20…05ef40            65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 74 72 64 73 6c 29 20 65 6c 73 65 0d 0a 20 20 20   ┆eln(inra,'= ', ftrdsl) else     ┆
0x05ef40…05ef60            20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 54 52 50 4f 4b 20 20 20 20 27 20 74 68 65 6e 20 77   ┆   if inra = 'FTRPOK    ' then w┆
0x05ef60…05ef80            72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 74 72 70 6f 6b 29 20 65 6c 73 65 0d 0a   ┆riteln(inra,'= ', ftrpok) else  ┆
0x05ef80…05efa0            20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 54 52 50 57 4e 20 20 20 20 27 20 74 68 65   ┆      if inra = 'FTRPWN    ' the┆
0x05efa0…05efc0            6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 74 72 70 77 6e 29 20 65 6c 73   ┆n writeln(inra,'= ', ftrpwn) els┆
0x05efc0…05efe0            65 0d 0a 2a 29 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 57 4b 49 4e 47 20 20 20 20   ┆e  *)      if inra = 'FWKING    ┆
0x05efe0…05f000            27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 77 6b 69 6e 67   ┆' then writeln(inra,'= ', fwking┆
0x05f000…05f020 (23, 1, 5) 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 57 4d 41 4a 4d 20   ┆) else        if inra = 'FWMAJM ┆
0x05f020…05f040            20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 77 6d   ┆   ' then writeln(inra,'= ', fwm┆
0x05f040…05f060            61 6a 6d 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 57 4d 49   ┆ajm) else        if inra = 'FWMI┆
0x05f060…05f080            4e 4d 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20   ┆NM    ' then writeln(inra,'= ', ┆
0x05f080…05f0a0            66 77 6d 69 6e 6d 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46   ┆fwminm) else        if inra = 'F┆
0x05f0a0…05f0c0            57 50 41 57 4e 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20   ┆WPAWN    ' then writeln(inra,'= ┆
0x05f0c0…05f0e0            27 2c 20 66 77 70 61 77 6e 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d   ┆', fwpawn) else        if inra =┆
0x05f0e0…05f100            20 27 46 57 52 4f 4f 4b 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c   ┆ 'FWROOK    ' then writeln(inra,┆
0x05f100…05f120            27 3d 20 27 2c 20 66 77 72 6f 6f 6b 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72   ┆'= ', fwrook) else        if inr┆
0x05f120…05f140            61 20 3d 20 27 46 43 48 45 43 4b 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e   ┆a = 'FCHECK    ' then writeln(in┆
0x05f140…05f160            72 61 2c 27 3d 20 27 2c 20 66 63 68 65 63 6b 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20   ┆ra,'= ', fcheck) else        if ┆
0x05f160…05f180            69 6e 72 61 20 3d 20 27 46 57 41 54 54 4b 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e   ┆inra = 'FWATTK    ' then writeln┆
0x05f180…05f1a0            28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 77 61 74 74 6b 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20   ┆(inra,'= ', fwattk) else        ┆
0x05f1a0…05f1c0            69 66 20 69 6e 72 61 20 3d 20 27 46 41 4b 49 4e 47 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74   ┆if inra = 'FAKING    ' then writ┆
0x05f1c0…05f1e0            65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 61 6b 69 6e 67 29 20 65 6c 73 65 0d 0a 20 20 20   ┆eln(inra,'= ', faking) else     ┆
0x05f1e0…05f200            20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 43 46 52 45 45 20 20 20 20 27 20 74 68 65 6e 20 77   ┆   if inra = 'FCFREE    ' then w┆
0x05f200…05f220            72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 63 66 72 65 65 29 20 65 6c 73 65 0d 0a   ┆riteln(inra,'= ', fcfree) else  ┆
0x05f220…05f240            20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 57 49 4e 44 4f 57 20 20 20 20 27 20 74 68 65   ┆      if inra = 'WINDOW    ' the┆
0x05f240…05f260            6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 77 69 6e 64 6f 77 29 20 65 6c 73   ┆n writeln(inra,'= ', window) els┆
0x05f260…05f280            65 0d 0a 20 20 20 20 20 20 20 20 72 64 72 65 72 72 28 27 20 49 4c 4c 45 47 41 4c 20 56 41 52 49   ┆e          rdrerr(' ILLEGAL VARI┆
0x05f280…05f2a0            41 42 4c 45 20 4e 41 4d 45 20 20 20 20 20 20 20 20 27 29 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a   ┆ABLE NAME        ');      end;  ┆
0x05f2a0…05f2c0            20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 70 72 69 63 6d 64 3b 09 28 2a 20 63   ┆  end;    procedure pricmd; (* c┆
0x05f2c0…05f2e0            6f 6d 6d 61 6e 64 20 2d 20 70 72 69 6e 74 20 62 6f 61 72 64 20 2a 29 0d 0a 20 20 62 65 67 69 6e   ┆ommand - print board *)    begin┆
0x05f2e0…05f300            0d 0a 20 20 20 20 69 66 20 72 64 72 67 6e 74 28 69 6e 72 61 29 20 74 68 65 6e 20 70 72 69 6e 74   ┆      if rdrgnt(inra) then print┆
0x05f300…05f320            62 28 6e 62 6f 72 64 29 20 65 6c 73 65 20 70 72 69 6e 74 62 28 62 6f 61 72 64 2e 72 62 69 73 29   ┆b(nbord) else printb(board.rbis)┆
0x05f320…05f340            3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 70 61 6d 63 6d 64 3b 09 28   ┆;    end;    procedure pamcmd; (┆
0x05f340…05f360            2a 20 63 6f 6d 6d 61 6e 64 20 2d 20 70 72 69 6e 74 20 61 74 74 61 63 6b 20 6d 61 70 20 2a 29 0d   ┆* command - print attack map *) ┆
0x05f360…05f380            0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 77 68 69 6c 65 20 72 64 72 67 6e 74 28 69 6e 72 61 29   ┆   begin      while rdrgnt(inra)┆
0x05f380…05f3a0            20 64 6f 0d 0a 20 20 20 20 69 66 20 69 6e 72 61 5b 61 61 5d 20 3d 20 27 54 27 20 74 68 65 6e 20   ┆ do      if inraÆaaÅ = 'T' then ┆
0x05f3a0…05f3c0            70 72 69 6e 61 6d 28 61 74 6b 74 6f 29 0d 0a 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69   ┆prinam(atkto)      else        i┆
0x05f3c0…05f3e0            66 20 69 6e 72 61 5b 61 61 5d 20 3d 20 27 46 27 20 74 68 65 6e 20 70 72 69 6e 61 6d 28 61 74 6b   ┆f inraÆaaÅ = 'F' then prinam(atk┆
0x05f3e0…05f400            66 72 29 0d 0a 20 20 20 20 20 20 65 6c 73 65 20 72 64 72 65 72 72 28 27 20 41 54 54 41 43 4b 20   ┆fr)        else rdrerr(' ATTACK ┆
0x05f400…05f420 (23, 1, 6) 4d 41 50 20 4e 4f 54 20 22 54 4f 22 20 4f 52 20 22 46 52 4f 4d 22 27 29 3b 0d 0a 20 20 20 20 77   ┆MAP NOT "TO" OR "FROM"');      w┆
0x05f420…05f440            72 69 74 65 6c 6e 28 27 20 4c 49 54 45 27 29 3b 0d 0a 20 20 20 20 70 72 69 6e 62 62 28 61 6c 61   ┆riteln(' LITE');      prinbb(ala┆
0x05f440…05f460            74 6b 5b 6c 69 74 65 5d 29 3b 0d 0a 20 20 20 20 77 72 69 74 65 6c 6e 28 27 20 44 41 52 4b 27 29   ┆tkÆliteÅ);      writeln(' DARK')┆
0x05f460…05f480            3b 0d 0a 20 20 20 20 70 72 69 6e 62 62 28 61 6c 61 74 6b 5b 64 61 72 6b 5d 29 3b 0d 0a 20 20 65   ┆;      prinbb(alatkÆdarkÅ);    e┆
0x05f480…05f4a0            6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 70 6f 70 63 6d 64 3b 09 28 2a 20 63 6f 6d 6d   ┆nd;    procedure popcmd; (* comm┆
0x05f4a0…05f4c0            61 6e 64 20 2d 20 70 72 69 6e 74 20 6f 74 68 65 72 20 73 74 75 66 66 20 2a 29 0d 0a 20 20 76 61   ┆and - print other stuff *)    va┆
0x05f4c0…05f4e0            72 20 69 6e 74 71 20 3a 20 74 71 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 77 69 74 68 20   ┆r intq : tq;    begin      with ┆
0x05f4e0…05f500            62 6f 61 72 64 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 77 72 69 74 65   ┆board do      begin        write┆
0x05f500…05f520            6c 6e 28 78 74 6d 61 5b 72 62 74 6d 5d 2c 27 20 54 4f 20 4d 4f 56 45 2e 27 29 3b 0d 0a 20 20 20   ┆ln(xtmaÆrbtmÅ,' TO MOVE.');     ┆
0x05f520…05f540            20 20 20 77 72 69 74 65 6c 6e 28 72 62 74 73 2c 27 20 45 4e 50 41 53 53 41 4e 54 2e 27 29 3b 0d   ┆   writeln(rbts,' ENPASSANT.'); ┆
0x05f540…05f560            0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 28 27 4d 4f 56 45 20 4e 55 4d 42 45 52 20 27 2c 72 62   ┆       writeln('MOVE NUMBER ',rb┆
0x05f560…05f580            74 69 3a 30 29 3b 0d 0a 20 20 20 20 20 20 66 6f 72 20 69 6e 74 71 3a 3d 6c 73 20 74 6f 20 64 6c   ┆ti:0);        for intq:=ls to dl┆
0x05f580…05f5a0            20 64 6f 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 74 71 20 69 6e 20 72 62 73 71 20 74 68 65   ┆ do          if intq in rbsq the┆
0x05f5a0…05f5c0            6e 20 77 72 69 74 65 6c 6e 28 78 74 71 61 5b 69 6e 74 71 5d 2c 27 20 53 49 44 45 20 43 41 53 54   ┆n writeln(xtqaÆintqÅ,' SIDE CAST┆
0x05f5c0…05f5e0            4c 45 20 4c 45 47 41 4c 2e 27 29 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 65 6e 64 3b 0d 0a   ┆LE LEGAL.');      end;    end;  ┆
0x05f5e0…05f600            20 20 70 72 6f 63 65 64 75 72 65 20 70 6d 76 63 6d 64 3b 09 28 2a 20 63 6f 6d 6d 61 6e 64 20 2d   ┆  procedure pmvcmd; (* command -┆
0x05f600…05f620            20 70 72 69 6e 74 20 6d 6f 76 65 20 6c 69 73 74 20 2a 29 0d 0a 20 20 76 61 72 20 69 6e 74 77 20   ┆ print move list *)    var intw ┆
0x05f620…05f640            3a 20 74 77 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 66 6f 72 20 69 6e 74 77 3a 3d 61 77   ┆: tw;    begin      for intw:=aw┆
0x05f640…05f660            2b 31 20 74 6f 20 6a 6e 74 77 2d 31 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20   ┆+1 to jntw-1 do      begin      ┆
0x05f660…05f680            20 20 77 72 69 74 65 28 69 6e 74 77 3a 34 2c 27 20 27 29 3b 0d 0a 20 20 20 20 20 20 70 72 69 6d   ┆  write(intw:4,' ');        prim┆
0x05f680…05f6a0            6f 76 28 6d 6f 76 65 73 5b 69 6e 74 77 5d 29 3b 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 74 77 2f   ┆ov(movesÆintwÅ);        if intw/┆
0x05f6a0…05f6c0            6c 70 70 20 3d 20 69 6e 74 77 20 64 69 76 20 6c 70 70 20 74 68 65 6e 20 70 61 75 73 65 72 3b 0d   ┆lpp = intw div lpp then pauser; ┆
0x05f6c0…05f6e0            0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 73   ┆     end;    end;    procedure s┆
0x05f6e0…05f700            77 69 63 6d 64 3b 09 28 2a 20 63 6f 6d 6d 61 6e 64 20 2d 20 66 6c 69 70 20 73 77 69 74 63 68 20   ┆wicmd; (* command - flip switch ┆
0x05f700…05f720            2a 29 0d 0a 20 20 20 20 70 72 6f 63 65 64 75 72 65 20 73 77 69 6f 6e 65 28 76 61 72 20 62 3a 20   ┆*)      procedure swione(var b: ┆
0x05f720…05f740            74 62 29 3b 0d 0a 20 20 20 20 76 61 72 0d 0a 20 20 20 20 20 20 61 20 20 20 20 3a 20 72 61 3b 0d   ┆tb);      var        a    : ra; ┆
0x05f740…05f760            0a 20 20 20 20 20 20 69 6d 74 6a 20 3a 20 74 6a 3b 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20   ┆       imtj : tj;      begin    ┆
0x05f760…05f780            20 20 20 20 69 6d 74 6a 3a 3d 6a 6e 74 6a 3b 0d 0a 20 20 20 20 20 20 61 3a 3d 69 6e 72 61 3b 0d   ┆    imtj:=jntj;        a:=inra; ┆
0x05f780…05f7a0            0a 20 20 20 20 20 20 69 66 20 72 64 72 67 6e 74 28 69 6e 72 61 29 20 74 68 65 6e 0d 0a 20 20 20   ┆       if rdrgnt(inra) then     ┆
0x05f7a0…05f7c0            20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 4f 4e 20   ┆   begin          if inra = 'ON ┆
0x05f7c0…05f7e0            20 20 20 20 20 20 20 27 20 74 68 65 6e 20 62 3a 3d 74 72 75 65 0d 0a 20 20 20 20 20 20 20 20 65   ┆       ' then b:=true          e┆
0x05f7e0…05f800            6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 4f 46 46 20 20 20   ┆lse            if inra = 'OFF   ┆
0x05f800…05f820 (23, 1, 7) 20 20 20 20 27 20 74 68 65 6e 20 62 3a 3d 66 61 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 65   ┆    ' then b:=false            e┆
0x05f820…05f840            6c 73 65 20 6a 6e 74 6a 3a 3d 69 6d 74 6a 3b 0d 0a 20 20 20 20 20 20 20 20 70 72 69 73 77 69 28   ┆lse jntj:=imtj;          priswi(┆
0x05f840…05f860            61 2c 62 29 3b 0d 0a 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 20 70 72 69 73 77 69 28 61 2c 62   ┆a,b);        end else priswi(a,b┆
0x05f860…05f880            29 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 77 68 69 6c 65   ┆);      end;    begin      while┆
0x05f880…05f8a0            20 72 64 72 67 6e 74 28 69 6e 72 61 29 20 61 6e 64 20 6f 6b 20 64 6f 0d 0a 20 20 20 20 62 65 67   ┆ rdrgnt(inra) and ok do      beg┆
0x05f8a0…05f8c0            69 6e 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 45 43 20 20 20 20 20 20 20 20 27   ┆in        if inra = 'EC        '┆
0x05f8c0…05f8e0            20 74 68 65 6e 20 73 77 69 6f 6e 65 28 73 77 65 63 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69   ┆ then swione(swec) else        i┆
0x05f8e0…05f900            66 20 69 6e 72 61 20 3d 20 27 50 41 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 77 69 6f 6e   ┆f inra = 'PA        ' then swion┆
0x05f900…05f920            65 28 73 77 70 61 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 50   ┆e(swpa) else        if inra = 'P┆
0x05f920…05f940            53 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 77 69 6f 6e 65 28 73 77 70 73 29 20 65 6c 73   ┆S        ' then swione(swps) els┆
0x05f940…05f960            65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 52 45 20 20 20 20 20 20 20 20 27 20   ┆e        if inra = 'RE        ' ┆
0x05f960…05f980            74 68 65 6e 20 73 77 69 6f 6e 65 28 73 77 72 65 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66   ┆then swione(swre) else        if┆
0x05f980…05f9a0            20 69 6e 72 61 20 3d 20 27 53 55 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 77 69 6f 6e 65   ┆ inra = 'SU        ' then swione┆
0x05f9a0…05f9c0            28 73 77 73 75 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 54 52   ┆(swsu) else        if inra = 'TR┆
0x05f9c0…05f9e0            20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 77 69 6f 6e 65 28 73 77 74 72 29 20 65 6c 73 65   ┆        ' then swione(swtr) else┆
0x05f9e0…05fa00            0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 50 52 20 20 20 20 20 20 20 20 27 20 74   ┆        if inra = 'PR        ' t┆
0x05fa00…05fa20            68 65 6e 20 73 77 69 6f 6e 65 28 73 77 70 72 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20   ┆hen swione(swpr) else        if ┆
0x05fa20…05fa40            69 6e 72 61 20 3d 20 27 42 4d 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 77 69 6f 6e 65 28   ┆inra = 'BM        ' then swione(┆
0x05fa40…05fa60            73 77 62 6d 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 72 64 72 65 72 72 28 27 20 49 4e 56 41 4c   ┆swbm) else        rdrerr(' INVAL┆
0x05fa60…05fa80            49 44 20 53 57 49 54 43 48 20 4f 50 54 49 4f 4e 20 20 20 20 20 20 20 20 27 29 3b 0d 0a 20 20 20   ┆ID SWITCH OPTION        ');     ┆
0x05fa80…05faa0            20 65 6e 64 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 77 68 61 63 6d   ┆ end;    end;    procedure whacm┆
0x05faa0…05fac0            64 3b 09 28 2a 20 63 6f 6d 6d 61 6e 64 20 2d 20 70 72 69 6e 74 20 6c 61 73 74 20 6d 65 73 73 61   ┆d; (* command - print last messa┆
0x05fac0…05fae0            67 65 20 2a 29 0d 0a 20 20 62 65 67 69 6e 20 77 72 69 74 65 6c 6e 28 6d 6f 76 6d 73 29 20 65 6e   ┆ge *)    begin writeln(movms) en┆
0x05fae0…05fb00            64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 73 74 61 63 6d 64 3b 09 28 2a 20 63 6f 6d 6d 61   ┆d;    procedure stacmd; (* comma┆
0x05fb00…05fb20            6e 64 20 2d 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 73 20 2a 29 0d 0a 20 20 76 61 72 0d 0a 20   ┆nd - status changes *)    var   ┆
0x05fb20…05fb40            20 20 20 69 6e 72 61 20 3a 20 72 61 3b 0d 0a 20 20 20 20 69 6e 74 6d 20 3a 20 74 6d 3b 0d 0a 20   ┆   inra : ra;      intm : tm;   ┆
0x05fb40…05fb60            20 20 20 70 72 6f 63 65 64 75 72 65 20 73 74 61 65 70 66 28 62 3a 20 74 66 29 3b 09 28 2a 20 70   ┆   procedure staepf(b: tf); (* p┆
0x05fb60…05fb80            72 6f 63 65 73 73 20 65 70 20 66 69 6c 65 20 2a 29 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20   ┆rocess ep file *)      begin    ┆
0x05fb80…05fba0            20 20 20 20 69 66 20 69 6e 74 6d 20 3d 20 6c 69 74 65 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20   ┆    if intm = lite then         ┆
0x05fba0…05fbc0            20 62 6f 61 72 64 2e 72 62 74 73 3a 3d 78 74 72 66 73 5b 72 36 2c 62 5d 0d 0a 20 20 20 20 20 20   ┆ board.rbts:=xtrfsÆr6,bÅ        ┆
0x05fbc0…05fbe0            65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 62 6f 61 72 64 2e 72 62 74 73 3a 3d 78 74 72 66 73 5b   ┆else          board.rbts:=xtrfsÆ┆
0x05fbe0…05fc00            72 33 2c 62 5d 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 70 72 6f 63 65 64 75 72 65 20   ┆r3,bÅ;      end;      procedure ┆
0x05fc00…05fc20 (23, 1, 8) 73 74 61 63 61 6b 3b 09 28 2a 20 61 6c 6c 6f 77 20 63 61 73 74 6c 65 20 6b 69 6e 67 20 73 69 64   ┆stacak; (* allow castle king sid┆
0x05fc20…05fc40            65 20 2a 29 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 74 6d 20 3d   ┆e *)      begin        if intm =┆
0x05fc40…05fc60            20 6c 69 74 65 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 62 6f 61 72 64 2e 72 62 73 71 3a 3d   ┆ lite then          board.rbsq:=┆
0x05fc60…05fc80            62 6f 61 72 64 2e 72 62 73 71 20 2b 20 5b 6c 73 5d 0d 0a 20 20 20 20 20 20 65 6c 73 65 0d 0a 20   ┆board.rbsq + ÆlsÅ        else   ┆
0x05fc80…05fca0            20 20 20 20 20 20 20 62 6f 61 72 64 2e 72 62 73 71 3a 3d 62 6f 61 72 64 2e 72 62 73 71 20 2b 20   ┆       board.rbsq:=board.rbsq + ┆
0x05fca0…05fcc0            5b 64 73 5d 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 70 72 6f 63 65 64 75 72 65 20 73   ┆ÆdsÅ;      end;      procedure s┆
0x05fcc0…05fce0            74 61 63 61 71 3b 09 28 2a 20 61 6c 6c 6f 77 20 63 61 73 74 6c 65 20 71 75 65 65 6e 20 73 69 64   ┆tacaq; (* allow castle queen sid┆
0x05fce0…05fd00            65 20 2a 29 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 74 6d 20 3d   ┆e *)      begin        if intm =┆
0x05fd00…05fd20            20 6c 69 74 65 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 62 6f 61 72 64 2e 72 62 73 71 3a 3d   ┆ lite then          board.rbsq:=┆
0x05fd20…05fd40            62 6f 61 72 64 2e 72 62 73 71 20 2b 20 5b 6c 6c 5d 0d 0a 20 20 20 20 20 20 65 6c 73 65 0d 0a 20   ┆board.rbsq + ÆllÅ        else   ┆
0x05fd40…05fd60            20 20 20 20 20 20 20 62 6f 61 72 64 2e 72 62 73 71 3a 3d 62 6f 61 72 64 2e 72 62 73 71 20 2b 20   ┆       board.rbsq:=board.rbsq + ┆
0x05fd60…05fd80            5b 64 6c 5d 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 70 72 6f 63 65 64 75 72 65 20 73   ┆ÆdlÅ;      end;      procedure s┆
0x05fd80…05fda0            74 61 65 6e 70 3b 09 28 2a 20 73 65 74 20 65 6e 70 61 73 73 61 6e 74 20 66 69 6c 65 20 2a 29 0d   ┆taenp; (* set enpassant file *) ┆
0x05fda0…05fdc0            0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 66 20 6e 6f 74 20 72 64 72 67 6e 74 28   ┆     begin        if not rdrgnt(┆
0x05fdc0…05fde0            69 6e 72 61 29 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20   ┆inra) then        begin         ┆
0x05fde0…05fe00            20 63 6c 73 74 61 74 3b 0d 0a 20 20 20 20 20 20 20 20 72 64 72 65 72 72 28 27 20 45 4e 50 41 53   ┆ clstat;          rdrerr(' ENPAS┆
0x05fe00…05fe20            53 41 4e 54 20 46 49 4c 45 20 4f 4d 49 54 54 45 44 20 20 20 20 20 20 20 27 29 3b 0d 0a 20 20 20   ┆SANT FILE OMITTED       ');     ┆
0x05fe20…05fe40            20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 51 52 20 20 20 20   ┆   end;        if inra = 'QR    ┆
0x05fe40…05fe60            20 20 20 20 27 20 74 68 65 6e 20 73 74 61 65 70 66 28 66 31 29 20 65 6c 73 65 0d 0a 20 20 20 20   ┆    ' then staepf(f1) else      ┆
0x05fe60…05fe80            20 20 69 66 20 69 6e 72 61 20 3d 20 27 51 4e 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 74   ┆  if inra = 'QN        ' then st┆
0x05fe80…05fea0            61 65 70 66 28 66 32 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27   ┆aepf(f2) else        if inra = '┆
0x05fea0…05fec0            51 42 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 74 61 65 70 66 28 66 33 29 20 65 6c 73 65   ┆QB        ' then staepf(f3) else┆
0x05fec0…05fee0            0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 51 20 20 20 20 20 20 20 20 20 27 20 74   ┆        if inra = 'Q         ' t┆
0x05fee0…05ff00            68 65 6e 20 73 74 61 65 70 66 28 66 34 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e   ┆hen staepf(f4) else        if in┆
0x05ff00…05ff20            72 61 20 3d 20 27 4b 20 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 74 61 65 70 66 28 66 35   ┆ra = 'K         ' then staepf(f5┆
0x05ff20…05ff40            29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 4b 42 20 20 20 20 20   ┆) else        if inra = 'KB     ┆
0x05ff40…05ff60            20 20 20 27 20 74 68 65 6e 20 73 74 61 65 70 66 28 66 36 29 20 65 6c 73 65 0d 0a 20 20 20 20 20   ┆   ' then staepf(f6) else       ┆
0x05ff60…05ff80            20 69 66 20 69 6e 72 61 20 3d 20 27 4b 4e 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 74 61   ┆ if inra = 'KN        ' then sta┆
0x05ff80…05ffa0            65 70 66 28 66 37 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 4b   ┆epf(f7) else        if inra = 'K┆
0x05ffa0…05ffc0            52 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 74 61 65 70 66 28 66 38 29 20 65 6c 73 65 0d   ┆R        ' then staepf(f8) else ┆
0x05ffc0…05ffe0            0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 63 6c 73 74 61 74 3b 0d 0a 20   ┆       begin          clstat;   ┆
0x05ffe0…060000            20 20 20 20 20 20 20 72 64 72 65 72 72 28 27 20 49 4c 4c 45 47 41 4c 20 45 4e 50 41 53 53 41 4e   ┆       rdrerr(' ILLEGAL ENPASSAN┆
0x060000…060020 (24, 0, 1) 54 20 46 49 4c 45 20 20 20 20 20 20 20 27 29 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20   ┆T FILE       ');        end;    ┆
0x060020…060040            20 20 65 6e 64 3b 0d 0a 20 20 20 20 70 72 6f 63 65 64 75 72 65 20 73 74 61 67 6f 73 3b 09 28 2a   ┆  end;      procedure stagos; (*┆
0x060040…060060            20 73 65 74 20 73 69 64 65 20 74 6f 20 6d 6f 76 65 20 2a 29 0d 0a 20 20 20 20 62 65 67 69 6e 0d   ┆ set side to move *)      begin ┆
0x060060…060080            0a 20 20 20 20 20 20 62 6f 61 72 64 2e 72 62 74 6d 3a 3d 69 6e 74 6d 3b 0d 0a 20 20 20 20 20 20   ┆       board.rbtm:=intm;        ┆
0x060080…0600a0            6a 6e 74 6d 3a 3d 69 6e 74 6d 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 62 65 67 69 6e 09 28   ┆jntm:=intm;      end;    begin (┆
0x0600a0…0600c0            2a 20 73 74 61 63 6d 64 20 2a 29 0d 0a 20 20 20 20 63 6c 73 74 61 74 3b 0d 0a 20 20 20 20 69 6e   ┆* stacmd *)      clstat;      in┆
0x0600c0…0600e0            74 6d 3a 3d 6c 69 74 65 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 72 64 72 67 6e 74 28 69 6e 72 61   ┆tm:=lite;      while rdrgnt(inra┆
0x0600e0…060100            29 20 61 6e 64 20 6f 6b 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 66   ┆) and ok do      begin        if┆
0x060100…060120            20 69 6e 72 61 20 3d 20 27 44 20 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 69 6e 74 6d 3a 3d   ┆ inra = 'D         ' then intm:=┆
0x060120…060140            64 61 72 6b 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 45 50 20 20   ┆dark else        if inra = 'EP  ┆
0x060140…060160            20 20 20 20 20 20 27 20 74 68 65 6e 20 73 74 61 65 6e 70 20 65 6c 73 65 0d 0a 20 20 20 20 20 20   ┆      ' then staenp else        ┆
0x060160…060180            69 66 20 69 6e 72 61 20 3d 20 27 47 20 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 74 61 67   ┆if inra = 'G         ' then stag┆
0x060180…0601a0            6f 73 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 4c 20 20 20 20 20   ┆os else        if inra = 'L     ┆
0x0601a0…0601c0            20 20 20 20 27 20 74 68 65 6e 20 69 6e 74 6d 3a 3d 6c 69 74 65 20 65 6c 73 65 0d 0a 20 20 20 20   ┆    ' then intm:=lite else      ┆
0x0601c0…0601e0            20 20 69 66 20 69 6e 72 61 20 3d 20 27 4e 20 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 62 6f   ┆  if inra = 'N         ' then bo┆
0x0601e0…060200            61 72 64 2e 72 62 74 69 3a 3d 72 64 72 6e 75 6d 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20   ┆ard.rbti:=rdrnum else        if ┆
0x060200…060220            69 6e 72 61 20 3d 20 27 4f 4f 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 74 61 63 61 6b 20   ┆inra = 'OO        ' then stacak ┆
0x060220…060240            65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 4f 4f 4f 20 20 20 20 20 20   ┆else        if inra = 'OOO      ┆
0x060240…060260            20 27 20 74 68 65 6e 20 73 74 61 63 61 71 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 62 65 67 69 6e   ┆ ' then stacaq else        begin┆
0x060260…060280            0d 0a 20 20 20 20 20 20 20 20 63 6c 73 74 61 74 3b 0d 0a 20 20 20 20 20 20 20 20 72 64 72 65 72   ┆          clstat;          rdrer┆
0x060280…0602a0            72 28 27 20 49 4e 56 41 4c 49 44 20 53 54 41 54 55 53 20 4f 50 54 49 4f 4e 20 20 20 20 20 20 20   ┆r(' INVALID STATUS OPTION       ┆
0x0602a0…0602c0            20 27 29 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20   ┆ ');        end;      end;      ┆
0x0602c0…0602e0            6c 73 74 6d 6f 76 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 0d 0a 62 65 67 69 6e 0d 0a 20 20 63 6f   ┆lstmov;    end;      begin    co┆
0x0602e0…060300            6d 3a 3d 30 3b 0d 0a 20 20 72 65 70 65 61 74 0d 0a 20 20 20 20 6f 6b 3a 3d 74 72 75 65 3b 0d 0a   ┆m:=0;    repeat      ok:=true;  ┆
0x060300…060320            20 20 20 20 77 68 69 6c 65 20 6e 6f 74 20 72 64 72 6d 6f 76 20 64 6f 20 72 64 6c 69 6e 65 3b 0d   ┆    while not rdrmov do rdline; ┆
0x060320…060340            0a 20 20 20 20 69 66 20 73 77 65 63 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20   ┆     if swec then      begin    ┆
0x060340…060360            20 20 20 20 77 72 69 74 65 28 27 20 27 29 3b 0d 0a 20 20 20 20 20 20 66 6f 72 20 69 6e 74 6a 3a   ┆    write(' ');        for intj:┆
0x060360…060380            3d 61 6a 20 74 6f 20 7a 6a 2d 31 20 64 6f 20 77 72 69 74 65 28 69 6c 69 6e 65 5b 69 6e 74 6a 5d   ┆=aj to zj-1 do write(ilineÆintjÅ┆
0x060380…0603a0            29 3b 0d 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20   ┆);        writeln;      end;    ┆
0x0603a0…0603c0            20 20 69 66 20 69 6c 69 6e 65 5b 61 6a 2b 31 5d 20 69 6e 20 5b 27 41 27 2e 2e 27 57 27 2c 27 59   ┆  if ilineÆaj+1Å in Æ'A'..'W','Y┆
0x0603c0…0603e0            27 2e 2e 27 5a 27 5d 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69   ┆'..'Z'Å then      begin        i┆
0x0603e0…060400            6e 72 61 3a 3d 27 20 20 20 20 20 20 20 20 20 20 27 3b 0d 0a 20 20 20 20 20 20 69 6e 72 61 5b 61   ┆nra:='          ';        inraÆa┆
0x060400…060420 (24, 0, 2) 61 5d 3a 3d 69 6c 69 6e 65 5b 61 6a 5d 3b 0d 0a 20 20 20 20 20 20 69 6e 72 61 5b 61 61 2b 31 5d   ┆aÅ:=ilineÆajÅ;        inraÆaa+1Å┆
0x060420…060440            3a 3d 69 6c 69 6e 65 5b 61 6a 2b 31 5d 3b 0d 0a 20 20 20 20 20 20 72 64 72 73 66 74 3b 0d 0a 20   ┆:=ilineÆaj+1Å;        rdrsft;   ┆
0x060440…060460            20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 42 4f 20 20 20 20 20 20 20 20 27 20 74 68 65 6e   ┆     if inra = 'BO        ' then┆
0x060460…060480            20 62 6f 61 63 6d 64 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 45   ┆ boacmd else        if inra = 'E┆
0x060480…0604a0            4e 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 65 6e 64 63 6d 64 20 65 6c 73 65 0d 0a 20 20 20   ┆N        ' then endcmd else     ┆
0x0604a0…0604c0            20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 47 4f 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 67   ┆   if inra = 'GO        ' then g┆
0x0604c0…0604e0            6f 6e 63 6d 64 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 49 4e 20   ┆oncmd else        if inra = 'IN ┆
0x0604e0…060500            20 20 20 20 20 20 20 27 20 74 68 65 6e 20 69 6e 69 63 6d 64 20 65 6c 73 65 0d 0a 20 20 20 20 20   ┆       ' then inicmd else       ┆
0x060500…060520            20 69 66 20 69 6e 72 61 20 3d 20 27 4c 45 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 6c 65 74   ┆ if inra = 'LE        ' then let┆
0x060520…060540            63 6d 64 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 50 4c 20 20 20   ┆cmd else        if inra = 'PL   ┆
0x060540…060560            20 20 20 20 20 27 20 74 68 65 6e 20 70 6c 65 63 6d 64 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69   ┆     ' then plecmd else        i┆
0x060560…060580            66 20 69 6e 72 61 20 3d 20 27 50 52 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 70 72 69 63 6d   ┆f inra = 'PR        ' then pricm┆
0x060580…0605a0            64 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 50 41 20 20 20 20 20   ┆d else        if inra = 'PA     ┆
0x0605a0…0605c0            20 20 20 27 20 74 68 65 6e 20 70 61 6d 63 6d 64 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20   ┆   ' then pamcmd else        if ┆
0x0605c0…0605e0            69 6e 72 61 20 3d 20 27 50 4f 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 70 6f 70 63 6d 64 20   ┆inra = 'PO        ' then popcmd ┆
0x0605e0…060600            65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 50 4d 20 20 20 20 20 20 20   ┆else        if inra = 'PM       ┆
0x060600…060620            20 27 20 74 68 65 6e 20 70 6d 76 63 6d 64 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e   ┆ ' then pmvcmd else        if in┆
0x060620…060640            72 61 20 3d 20 27 53 57 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 77 69 63 6d 64 20 65 6c   ┆ra = 'SW        ' then swicmd el┆
0x060640…060660            73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 57 48 20 20 20 20 20 20 20 20 27   ┆se        if inra = 'WH        '┆
0x060660…060680            20 74 68 65 6e 20 77 68 61 63 6d 64 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61   ┆ then whacmd else        if inra┆
0x060680…0606a0            20 3d 20 27 53 54 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 74 61 63 6d 64 20 65 6c 73 65   ┆ = 'ST        ' then stacmd else┆
0x0606a0…0606c0            0d 0a 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 72 64 72 65 72 72 28 27 20 49 4e 56 41 4c 49 44   ┆                rdrerr(' INVALID┆
0x0606c0…0606e0            20 43 4f 4d 4d 41 4e 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 29 3b 0d 0a 20 20 20 20 65   ┆ COMMAND              ');      e┆
0x0606e0…060700            6e 64 3b 0d 0a 20 20 75 6e 74 69 6c 20 28 63 6f 6d 20 3e 20 30 29 20 6f 72 20 6e 6f 74 28 69 6c   ┆nd;    until (com > 0) or not(il┆
0x060700…060720            69 6e 65 5b 61 6a 2b 31 5d 20 69 6e 20 5b 27 41 27 2e 2e 27 57 27 2c 27 59 27 2c 27 5a 27 5d 29   ┆ineÆaj+1Å in Æ'A'..'W','Y','Z'Å)┆
0x060720…060740            3b 0d 0a 65 6e 64 3b 09 28 2a 20 72 65 61 64 65 72 20 2a 29 0d 0a 0d 0a 28 2a 63 68 65 73 73 2e   ┆;  end; (* reader *)    (*chess.┆
0x060740…060760            70 30 32 20 2a 29 0d 0a 70 72 6f 63 65 64 75 72 65 20 69 6e 69 63 6f 6e 3b 0d 0a 76 61 72 0d 0a   ┆p02 *)  procedure inicon;  var  ┆
0x060760…060780            20 20 69 6e 74 64 09 3a 20 74 64 3b 0d 0a 20 20 69 6e 74 65 09 3a 20 74 65 3b 0d 0a 20 20 69 6e   ┆  intd : td;    inte : te;    in┆
0x060780…0607a0            74 66 09 3a 20 74 66 3b 0d 0a 20 20 69 6e 74 69 09 3a 20 74 69 3b 0d 0a 20 20 69 6e 74 6c 09 3a   ┆tf : tf;    inti : ti;    intl :┆
0x0607a0…0607c0            20 74 6c 3b 0d 0a 20 20 69 6e 74 71 09 3a 20 74 71 3b 0d 0a 20 20 69 6e 74 72 09 3a 20 74 72 3b   ┆ tl;    intq : tq;    intr : tr;┆
0x0607c0…0607e0            0d 0a 20 20 69 6e 74 74 09 3a 20 74 74 3b 0d 0a 20 20 69 6e 74 78 09 3a 20 74 78 3b 0d 0a 20 20   ┆    intt : tt;    intx : tx;    ┆
0x0607e0…060800            69 6e 74 79 09 3a 20 74 79 3b 0d 0a 20 20 69 6d 74 69 09 3a 20 74 69 3b 0d 0a 20 20 78 2c 73 75   ┆inty : ty;    imti : ti;    x,su┆
0x060800…060820 (24, 0, 3) 6d 20 3a 20 74 69 3b 0d 0a 20 20 69 6e 72 73 09 3a 20 72 73 3b 0d 0a 20 20 0d 0a 20 20 70 72 6f   ┆m : ti;    inrs : rs;        pro┆
0x060820…060840            63 65 64 75 72 65 20 69 6e 69 73 79 6e 28 61 3a 20 72 61 29 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a   ┆cedure inisyn(a: ra);    begin  ┆
0x060840…060860            20 20 20 20 77 69 74 68 20 73 79 6e 74 78 5b 69 6e 74 69 5d 20 64 6f 0d 0a 20 20 20 20 62 65 67   ┆    with syntxÆintiÅ do      beg┆
0x060860…060880            69 6e 0d 0a 20 20 20 20 20 20 77 69 74 68 20 72 79 6c 73 20 64 6f 0d 0a 20 20 20 20 20 20 62 65   ┆in        with ryls do        be┆
0x060880…0608a0            67 69 6e 0d 0a 20 20 20 20 20 20 20 20 72 64 70 63 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 20 20   ┆gin          rdpc:=true;        ┆
0x0608a0…0608c0            20 20 72 64 73 6c 3a 3d 61 5b 61 61 2b 30 5d 20 3c 3e 20 27 20 27 3b 0d 0a 20 20 20 20 20 20 20   ┆  rdsl:=aÆaa+0Å <> ' ';         ┆
0x0608c0…0608e0            20 72 64 6b 71 3a 3d 61 5b 61 61 2b 31 5d 20 3c 3e 20 27 20 27 3b 0d 0a 20 20 20 20 20 20 20 20   ┆ rdkq:=aÆaa+1Å <> ' ';          ┆
0x0608e0…060900            72 64 6e 62 3a 3d 61 5b 61 61 2b 32 5d 20 3c 3e 20 27 20 27 3b 0d 0a 20 20 20 20 20 20 20 20 72   ┆rdnb:=aÆaa+2Å <> ' ';          r┆
0x060900…060920            64 72 6b 3a 3d 61 5b 61 61 2b 33 5d 20 3c 3e 20 27 20 27 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b   ┆drk:=aÆaa+3Å <> ' ';        end;┆
0x060920…060940            0d 0a 20 20 20 20 20 20 72 79 63 68 3a 3d 61 5b 61 61 2b 34 5d 3b 0d 0a 20 20 20 20 20 20 77 69   ┆        rych:=aÆaa+4Å;        wi┆
0x060940…060960            74 68 20 72 79 72 73 20 64 6f 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20   ┆th ryrs do        begin         ┆
0x060960…060980            20 72 64 70 63 3a 3d 61 5b 61 61 2b 35 5d 20 3c 3e 20 27 20 27 3b 0d 0a 20 20 20 20 20 20 20 20   ┆ rdpc:=aÆaa+5Å <> ' ';          ┆
0x060980…0609a0            72 64 73 6c 3a 3d 61 5b 61 61 2b 36 5d 20 3c 3e 20 27 20 27 3b 0d 0a 20 20 20 20 20 20 20 20 72   ┆rdsl:=aÆaa+6Å <> ' ';          r┆
0x0609a0…0609c0            64 6b 71 3a 3d 61 5b 61 61 2b 37 5d 20 3c 3e 20 27 20 27 3b 0d 0a 20 20 20 20 20 20 20 20 72 64   ┆dkq:=aÆaa+7Å <> ' ';          rd┆
0x0609c0…0609e0            6e 62 3a 3d 61 5b 61 61 2b 38 5d 20 3c 3e 20 27 20 27 3b 0d 0a 20 20 20 20 20 20 20 20 72 64 72   ┆nb:=aÆaa+8Å <> ' ';          rdr┆
0x0609e0…060a00            6b 3a 3d 61 5b 61 61 2b 39 5d 20 3c 3e 20 27 20 27 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a   ┆k:=aÆaa+9Å <> ' ';        end;  ┆
0x060a00…060a20            20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 69 6e 74 69 3a 3d 69 6e 74 69 2b 31 3b 0d 0a 20 20 65   ┆    end;      inti:=inti+1;    e┆
0x060a20…060a40            6e 64 3b 0d 0a 20 20 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 69 6e 69 78 74 70 28 61 3a 74 70   ┆nd;        procedure inixtp(a:tp┆
0x060a40…060a60            3b 20 62 3a 74 63 3b 20 63 3a 74 6d 3b 20 64 3a 74 75 3b 20 65 3a 74 62 3b 20 66 3a 74 65 3b 20   ┆; b:tc; c:tm; d:tu; e:tb; f:te; ┆
0x060a60…060a80            67 3a 74 65 3b 20 68 3a 74 76 29 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 78 74 70 63 5b   ┆g:te; h:tv);    begin      xtpcÆ┆
0x060a80…060aa0            61 5d 3a 3d 62 3b 0d 0a 20 20 20 20 78 74 70 6d 5b 61 5d 3a 3d 63 3b 0d 0a 20 20 20 20 78 73 70   ┆aÅ:=b;      xtpmÆaÅ:=c;      xsp┆
0x060aa0…060ac0            62 5b 61 5d 3a 3d 65 3b 0d 0a 20 20 20 20 78 66 70 65 5b 61 5d 3a 3d 66 3b 0d 0a 20 20 20 20 78   ┆bÆaÅ:=e;      xfpeÆaÅ:=f;      x┆
0x060ac0…060ae0            6c 70 65 5b 61 5d 3a 3d 67 3b 0d 0a 20 20 20 20 78 74 70 75 5b 61 5d 3a 3d 64 3b 0d 0a 20 20 20   ┆lpeÆaÅ:=g;      xtpuÆaÅ:=d;     ┆
0x060ae0…060b00            20 78 74 70 76 5b 61 5d 3a 3d 68 3b 0d 0a 20 20 20 20 69 66 20 61 20 3c 3e 20 6d 74 20 74 68 65   ┆ xtpvÆaÅ:=h;      if a <> mt the┆
0x060b00…060b20            6e 20 78 74 75 6d 70 5b 64 2c 63 5d 3a 3d 61 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 0d 0a 62 65   ┆n xtumpÆd,cÅ:=a;    end;      be┆
0x060b20…060b40            67 69 6e 0d 0a 20 20 69 6e 69 78 74 70 28 6c 70 2c 27 50 27 2c 6c 69 74 65 2c 65 70 2c 66 61 6c   ┆gin    inixtp(lp,'P',lite,ep,fal┆
0x060b40…060b60            73 65 2c 62 31 2c 62 32 2c 31 2a 36 34 29 3b 0d 0a 20 20 69 6e 69 78 74 70 28 6c 72 2c 27 52 27   ┆se,b1,b2,1*64);    inixtp(lr,'R'┆
0x060b60…060b80            2c 6c 69 74 65 2c 65 72 2c 74 72 75 65 20 2c 73 31 2c 73 34 2c 35 2a 36 34 29 3b 0d 0a 20 20 69   ┆,lite,er,true ,s1,s4,5*64);    i┆
0x060b80…060ba0            6e 69 78 74 70 28 6c 6e 2c 27 4e 27 2c 6c 69 74 65 2c 65 6e 2c 66 61 6c 73 65 2c 6e 31 2c 6e 38   ┆nixtp(ln,'N',lite,en,false,n1,n8┆
0x060ba0…060bc0            2c 33 2a 36 34 29 3b 0d 0a 20 20 69 6e 69 78 74 70 28 6c 62 2c 27 42 27 2c 6c 69 74 65 2c 65 62   ┆,3*64);    inixtp(lb,'B',lite,eb┆
0x060bc0…060be0            2c 74 72 75 65 20 2c 62 31 2c 62 34 2c 33 2a 36 34 29 3b 0d 0a 20 20 69 6e 69 78 74 70 28 6c 71   ┆,true ,b1,b4,3*64);    inixtp(lq┆
0x060be0…060c00            2c 27 51 27 2c 6c 69 74 65 2c 65 71 2c 74 72 75 65 20 2c 62 31 2c 73 34 2c 39 2a 36 34 29 3b 0d   ┆,'Q',lite,eq,true ,b1,s4,9*64); ┆
0x060c00…060c20 (24, 0, 4) 0a 20 20 69 6e 69 78 74 70 28 6c 6b 2c 27 4b 27 2c 6c 69 74 65 2c 65 6b 2c 66 61 6c 73 65 2c 62   ┆   inixtp(lk,'K',lite,ek,false,b┆
0x060c20…060c40            31 2c 73 34 2c 30 29 3b 0d 0a 20 20 69 6e 69 78 74 70 28 64 70 2c 27 50 27 2c 64 61 72 6b 2c 65   ┆1,s4,0);    inixtp(dp,'P',dark,e┆
0x060c40…060c60            70 2c 66 61 6c 73 65 2c 62 33 2c 62 34 2c 2d 31 2a 36 34 29 3b 0d 0a 20 20 69 6e 69 78 74 70 28   ┆p,false,b3,b4,-1*64);    inixtp(┆
0x060c60…060c80            64 72 2c 27 52 27 2c 64 61 72 6b 2c 65 72 2c 74 72 75 65 20 2c 73 31 2c 73 34 2c 2d 35 2a 36 34   ┆dr,'R',dark,er,true ,s1,s4,-5*64┆
0x060c80…060ca0            29 3b 0d 0a 20 20 69 6e 69 78 74 70 28 64 6e 2c 27 4e 27 2c 64 61 72 6b 2c 65 6e 2c 66 61 6c 73   ┆);    inixtp(dn,'N',dark,en,fals┆
0x060ca0…060cc0            65 2c 6e 31 2c 6e 38 2c 2d 33 2a 36 34 29 3b 0d 0a 20 20 69 6e 69 78 74 70 28 64 62 2c 27 42 27   ┆e,n1,n8,-3*64);    inixtp(db,'B'┆
0x060cc0…060ce0            2c 64 61 72 6b 2c 65 62 2c 74 72 75 65 20 2c 62 31 2c 62 34 2c 2d 33 2a 36 34 29 3b 0d 0a 20 20   ┆,dark,eb,true ,b1,b4,-3*64);    ┆
0x060ce0…060d00            69 6e 69 78 74 70 28 64 71 2c 27 51 27 2c 64 61 72 6b 2c 65 71 2c 74 72 75 65 20 2c 62 31 2c 73   ┆inixtp(dq,'Q',dark,eq,true ,b1,s┆
0x060d00…060d20            34 2c 2d 39 2a 36 34 29 3b 0d 0a 20 20 69 6e 69 78 74 70 28 64 6b 2c 27 4b 27 2c 64 61 72 6b 2c   ┆4,-9*64);    inixtp(dk,'K',dark,┆
0x060d20…060d40            65 6b 2c 66 61 6c 73 65 2c 62 31 2c 73 34 2c 30 29 3b 0d 0a 20 20 69 6e 69 78 74 70 28 6d 74 2c   ┆ek,false,b1,s4,0);    inixtp(mt,┆
0x060d40…060d60            27 2e 27 2c 6e 6f 6e 65 2c 65 70 2c 66 61 6c 73 65 2c 62 32 2c 62 31 2c 30 29 3b 0d 0a 20 20 0d   ┆'.',none,ep,false,b2,b1,0);     ┆
0x060d60…060d80            0a 20 20 78 74 67 6d 70 5b 70 71 2c 6c 69 74 65 5d 3a 3d 6c 71 3b 20 78 74 67 6d 70 5b 70 71 2c   ┆   xtgmpÆpq,liteÅ:=lq; xtgmpÆpq,┆
0x060d80…060da0            64 61 72 6b 5d 3a 3d 64 71 3b 20 78 74 67 63 5b 70 71 5d 3a 3d 27 51 27 3b 0d 0a 20 20 78 74 67   ┆darkÅ:=dq; xtgcÆpqÅ:='Q';    xtg┆
0x060da0…060dc0            6d 70 5b 70 72 2c 6c 69 74 65 5d 3a 3d 6c 72 3b 20 78 74 67 6d 70 5b 70 72 2c 64 61 72 6b 5d 3a   ┆mpÆpr,liteÅ:=lr; xtgmpÆpr,darkÅ:┆
0x060dc0…060de0            3d 64 72 3b 20 78 74 67 63 5b 70 72 5d 3a 3d 27 52 27 3b 0d 0a 20 20 78 74 67 6d 70 5b 70 6e 2c   ┆=dr; xtgcÆprÅ:='R';    xtgmpÆpn,┆
0x060de0…060e00            6c 69 74 65 5d 3a 3d 6c 6e 3b 20 78 74 67 6d 70 5b 70 6e 2c 64 61 72 6b 5d 3a 3d 64 6e 3b 20 78   ┆liteÅ:=ln; xtgmpÆpn,darkÅ:=dn; x┆
0x060e00…060e20            74 67 63 5b 70 6e 5d 3a 3d 27 4e 27 3b 0d 0a 20 20 78 74 67 6d 70 5b 70 62 2c 6c 69 74 65 5d 3a   ┆tgcÆpnÅ:='N';    xtgmpÆpb,liteÅ:┆
0x060e20…060e40            3d 6c 62 3b 20 78 74 67 6d 70 5b 70 62 2c 64 61 72 6b 5d 3a 3d 64 62 3b 20 78 74 67 63 5b 70 62   ┆=lb; xtgmpÆpb,darkÅ:=db; xtgcÆpb┆
0x060e40…060e60            5d 3a 3d 27 42 27 3b 0d 0a 20 20 0d 0a 20 20 78 74 75 63 5b 65 6b 5d 3a 3d 27 4b 27 3b 0d 0a 20   ┆Å:='B';        xtucÆekÅ:='K';   ┆
0x060e60…060e80            20 78 74 75 63 5b 65 71 5d 3a 3d 27 51 27 3b 0d 0a 20 20 78 74 75 63 5b 65 72 5d 3a 3d 27 52 27   ┆ xtucÆeqÅ:='Q';    xtucÆerÅ:='R'┆
0x060e80…060ea0            3b 0d 0a 20 20 78 74 75 63 5b 65 6e 5d 3a 3d 27 4e 27 3b 0d 0a 20 20 78 74 75 63 5b 65 62 5d 3a   ┆;    xtucÆenÅ:='N';    xtucÆebÅ:┆
0x060ea0…060ec0            3d 27 42 27 3b 0d 0a 20 20 78 74 75 63 5b 65 70 5d 3a 3d 27 50 27 3b 0d 0a 20 20 0d 0a 20 20 28   ┆='B';    xtucÆepÅ:='P';        (┆
0x060ec0…060ee0            2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 6f 74 68 65 72 20 63 6f 6e 73 74 61 6e 74 73 20 2a 29 0d   ┆* initialize other constants *) ┆
0x060ee0…060f00            0a 20 20 78 74 62 63 5b 66 61 6c 73 65 5d 3a 3d 27 2d 27 3b 0d 0a 20 20 78 74 62 63 5b 74 72 75   ┆   xtbcÆfalseÅ:='-';    xtbcÆtru┆
0x060f00…060f20            65 20 5d 3a 3d 27 2a 27 3b 0d 0a 20 20 0d 0a 20 20 6f 74 68 65 72 5b 6c 69 74 65 5d 3a 3d 64 61   ┆e Å:='*';        otherÆliteÅ:=da┆
0x060f20…060f40            72 6b 3b 20 78 74 6d 76 5b 6c 69 74 65 5d 3a 3d 20 31 3b 0d 0a 20 20 6f 74 68 65 72 5b 64 61 72   ┆rk; xtmvÆliteÅ:= 1;    otherÆdar┆
0x060f40…060f60            6b 5d 3a 3d 6c 69 74 65 3b 20 78 74 6d 76 5b 64 61 72 6b 5d 3a 3d 2d 31 3b 0d 0a 20 20 6f 74 68   ┆kÅ:=lite; xtmvÆdarkÅ:=-1;    oth┆
0x060f60…060f80            65 72 5b 6e 6f 6e 65 5d 3a 3d 6e 6f 6e 65 3b 0d 0a 20 20 0d 0a 20 20 78 74 6d 61 5b 6c 69 74 65   ┆erÆnoneÅ:=none;        xtmaÆlite┆
0x060f80…060fa0            5d 3a 3d 27 20 20 20 20 57 48 49 54 45 20 27 3b 0d 0a 20 20 78 74 6d 61 5b 64 61 72 6b 5d 3a 3d   ┆Å:='    WHITE ';    xtmaÆdarkÅ:=┆
0x060fa0…060fc0            27 20 20 20 20 42 4c 41 43 4b 20 27 3b 0d 0a 20 20 78 74 6d 61 5b 6e 6f 6e 65 5d 3a 3d 27 20 20   ┆'    BLACK ';    xtmaÆnoneÅ:='  ┆
0x060fc0…060fe0            20 4e 4f 20 4f 4e 45 20 27 3b 0d 0a 20 20 0d 0a 20 20 78 74 71 61 5b 6c 73 5d 3a 3d 27 57 48 49   ┆ NO ONE ';        xtqaÆlsÅ:='WHI┆
0x060fe0…061000            54 45 20 4b 49 4e 47 27 3b 0d 0a 20 20 78 74 71 61 5b 6c 6c 5d 3a 3d 27 57 48 49 54 45 20 4c 4f   ┆TE KING';    xtqaÆllÅ:='WHITE LO┆
0x061000…061020 (24, 0, 5) 4e 47 27 3b 0d 0a 20 20 78 74 71 61 5b 64 73 5d 3a 3d 27 42 4c 41 43 4b 20 4b 49 4e 47 27 3b 0d   ┆NG';    xtqaÆdsÅ:='BLACK KING'; ┆
0x061020…061040            0a 20 20 78 74 71 61 5b 64 6c 5d 3a 3d 27 42 4c 41 43 4b 20 4c 4f 4e 47 27 3b 0d 0a 20 20 0d 0a   ┆   xtqaÆdlÅ:='BLACK LONG';      ┆
0x061040…061060            20 20 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 31 30 58 31 32 20 74 6f 20 38 58 38 20 61 6e 64   ┆  (* initialize 10X12 to 8X8 and┆
0x061060…061080            20 38 58 38 20 74 6f 20 31 30 58 31 32 20 74 72 61 6e 73 6c 61 74 69 6f 6e 20 74 61 62 6c 65 73   ┆ 8X8 to 10X12 translation tables┆
0x061080…0610a0            20 2a 29 0d 0a 20 20 66 6f 72 20 69 6e 74 6c 3a 3d 61 6c 20 74 6f 20 7a 6c 20 64 6f 20 78 74 6c   ┆ *)    for intl:=al to zl do xtl┆
0x0610a0…0610c0            73 5b 69 6e 74 6c 5d 3a 3d 2d 31 3b 0d 0a 20 20 69 6e 74 6c 3a 3d 32 31 3b 0d 0a 20 20 69 6e 74   ┆sÆintlÅ:=-1;    intl:=21;    int┆
0x0610c0…0610e0            74 3a 3d 2d 31 3b 0d 0a 20 20 66 6f 72 20 69 6e 74 72 3a 3d 72 31 20 74 6f 20 72 38 20 64 6f 0d   ┆t:=-1;    for intr:=r1 to r8 do ┆
0x0610e0…061100            0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 66 6f 72 20 69 6e 74 66 3a 3d 66 31 20 74 6f 20 66 38   ┆   begin      for intf:=f1 to f8┆
0x061100…061120            20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 6e 74 74 3a 3d 69 6e 74 74   ┆ do      begin        intt:=intt┆
0x061120…061140            2b 31 3b 0d 0a 20 20 20 20 20 20 78 74 72 66 73 5b 69 6e 74 72 2c 69 6e 74 66 5d 3a 3d 69 6e 74   ┆+1;        xtrfsÆintr,intfÅ:=int┆
0x061140…061160            74 3b 0d 0a 20 20 20 20 20 20 78 74 6c 73 5b 69 6e 74 6c 5d 3a 3d 69 6e 74 74 3b 0d 0a 20 20 20   ┆t;        xtlsÆintlÅ:=intt;     ┆
0x061160…061180            20 20 20 78 74 73 6c 5b 69 6e 74 74 5d 3a 3d 69 6e 74 6c 3b 0d 0a 20 20 20 20 20 20 78 74 73 72   ┆   xtslÆinttÅ:=intl;        xtsr┆
0x061180…0611a0            5b 69 6e 74 74 5d 3a 3d 69 6e 74 72 3b 0d 0a 20 20 20 20 20 20 78 74 73 66 5b 69 6e 74 74 5d 3a   ┆ÆinttÅ:=intr;        xtsfÆinttÅ:┆
0x0611a0…0611c0            3d 69 6e 74 66 3b 0d 0a 20 20 20 20 20 20 69 6e 74 6c 3a 3d 69 6e 74 6c 2b 31 3b 0d 0a 20 20 20   ┆=intf;        intl:=intl+1;     ┆
0x0611c0…0611e0            20 65 6e 64 3b 0d 0a 20 20 20 20 69 6e 74 6c 3a 3d 69 6e 74 6c 2b 32 3b 0d 0a 20 20 65 6e 64 3b   ┆ end;      intl:=intl+2;    end;┆
0x0611e0…061200            0d 0a 20 20 0d 0a 20 20 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 38 58 38 20 74 6f 20 62 69 74   ┆        (* initialize 8X8 to bit┆
0x061200…061220            20 62 6f 61 72 64 20 74 61 62 6c 65 73 20 2a 29 0d 0a 20 20 69 6e 74 74 3a 3d 2d 31 3b 0d 0a 20   ┆ board tables *)    intt:=-1;   ┆
0x061220…061240            20 66 6f 72 20 69 6e 74 79 3a 3d 61 79 20 74 6f 20 61 79 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d   ┆ for inty:=ay to ay do    begin ┆
0x061240…061260            0a 20 20 20 20 66 6f 72 20 69 6e 74 78 3a 3d 61 78 20 74 6f 20 7a 78 20 64 6f 0d 0a 20 20 20 20   ┆     for intx:=ax to zx do      ┆
0x061260…061280            62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 6e 74 74 3a 3d 69 6e 74 74 2b 31 3b 0d 0a 20 20 20 20   ┆begin        intt:=intt+1;      ┆
0x061280…0612a0            20 20 78 74 73 78 5b 69 6e 74 74 5d 3a 3d 69 6e 74 78 3b 0d 0a 20 20 20 20 20 20 78 74 73 79 5b   ┆  xtsxÆinttÅ:=intx;        xtsyÆ┆
0x0612a0…0612c0            69 6e 74 74 5d 3a 3d 69 6e 74 79 3b 0d 0a 20 20 20 20 20 20 78 73 73 78 5b 69 6e 74 74 5d 3a 3d   ┆inttÅ:=inty;        xssxÆinttÅ:=┆
0x0612c0…0612e0            5b 69 6e 74 78 5d 3b 0d 0a 20 20 20 20 20 20 6e 65 77 72 73 28 78 72 73 73 5b 69 6e 74 74 5d 29   ┆ÆintxÅ;        newrs(xrssÆinttÅ)┆
0x0612e0…061300            3b 0d 0a 20 20 20 20 20 20 78 72 73 73 5b 69 6e 74 74 5d 2e 72 73 73 73 3a 3d 5b 69 6e 74 78 5d   ┆;        xrssÆinttÅ.rsss:=ÆintxÅ┆
0x061300…061320            3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 0d 0a 20 20 28 2a 20 69 6e   ┆;      end;    end;        (* in┆
0x061320…061340            69 74 69 61 6c 69 7a 65 20 63 6f 6e 73 74 61 6e 74 20 62 69 74 20 62 6f 61 72 64 73 20 2a 29 0d   ┆itialize constant bit boards *) ┆
0x061340…061360            0a 20 20 66 6f 72 20 69 6e 74 72 3a 3d 72 31 20 74 6f 20 72 38 20 64 6f 20 6e 65 77 72 73 28 78   ┆   for intr:=r1 to r8 do newrs(x┆
0x061360…061380            72 72 73 5b 69 6e 74 72 5d 29 3b 0d 0a 20 20 66 6f 72 20 69 6e 74 66 3a 3d 66 31 20 74 6f 20 66   ┆rrsÆintrÅ);    for intf:=f1 to f┆
0x061380…0613a0            38 20 64 6f 20 6e 65 77 72 73 28 78 72 66 73 5b 69 6e 74 66 5d 29 3b 0d 0a 20 20 66 6f 72 20 69   ┆8 do newrs(xrfsÆintfÅ);    for i┆
0x0613a0…0613c0            6e 74 72 3a 3d 72 31 20 74 6f 20 72 38 20 64 6f 0d 0a 20 20 20 20 66 6f 72 20 69 6e 74 66 3a 3d   ┆ntr:=r1 to r8 do      for intf:=┆
0x0613c0…0613e0            66 31 20 74 6f 20 66 38 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 73 65   ┆f1 to f8 do      begin        se┆
0x0613e0…061400            74 72 73 28 78 72 72 73 5b 69 6e 74 72 5d 2c 78 74 72 66 73 5b 69 6e 74 72 2c 69 6e 74 66 5d 29   ┆trs(xrrsÆintrÅ,xtrfsÆintr,intfÅ)┆
0x061400…061420 (24, 0, 6) 3b 0d 0a 20 20 20 20 20 20 73 65 74 72 73 28 78 72 66 73 5b 69 6e 74 66 5d 2c 78 74 72 66 73 5b   ┆;        setrs(xrfsÆintfÅ,xtrfsÆ┆
0x061420…061440            69 6e 74 72 2c 69 6e 74 66 5d 29 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 66 6f 72 20 69 6e   ┆intr,intfÅ);      end;    for in┆
0x061440…061460            74 66 3a 3d 66 31 20 74 6f 20 66 38 20 64 6f 20 6e 6f 74 72 73 28 78 6e 66 73 5b 69 6e 74 66 5d   ┆tf:=f1 to f8 do notrs(xnfsÆintfÅ┆
0x061460…061480            2c 78 72 66 73 5b 69 6e 74 66 5d 29 3b 0d 0a 20 20 66 6f 72 20 69 6e 74 72 3a 3d 72 31 20 74 6f   ┆,xrfsÆintfÅ);    for intr:=r1 to┆
0x061480…0614a0            20 72 38 20 64 6f 20 6e 6f 74 72 73 28 78 6e 72 73 5b 69 6e 74 72 5d 2c 78 72 72 73 5b 69 6e 74   ┆ r8 do notrs(xnrsÆintrÅ,xrrsÆint┆
0x0614a0…0614c0            72 5d 29 3b 0d 0a 20 20 0d 0a 20 20 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 65 64 67 65 73 20   ┆rÅ);        (* initialize edges ┆
0x0614c0…0614e0            2a 29 0d 0a 20 20 65 64 67 65 5b 73 31 5d 3a 3d 78 72 66 73 5b 66 31 5d 3b 0d 0a 20 20 65 64 67   ┆*)    edgeÆs1Å:=xrfsÆf1Å;    edg┆
0x0614e0…061500            65 5b 73 32 5d 3a 3d 78 72 72 73 5b 72 38 5d 3b 0d 0a 20 20 65 64 67 65 5b 73 33 5d 3a 3d 78 72   ┆eÆs2Å:=xrrsÆr8Å;    edgeÆs3Å:=xr┆
0x061500…061520            66 73 5b 66 38 5d 3b 0d 0a 20 20 65 64 67 65 5b 73 34 5d 3a 3d 78 72 72 73 5b 72 31 5d 3b 0d 0a   ┆fsÆf8Å;    edgeÆs4Å:=xrrsÆr1Å;  ┆
0x061520…061540            20 20 69 6f 72 72 73 28 65 64 67 65 5b 62 31 5d 2c 65 64 67 65 5b 73 31 5d 2c 65 64 67 65 5b 73   ┆  iorrs(edgeÆb1Å,edgeÆs1Å,edgeÆs┆
0x061540…061560            32 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 65 64 67 65 5b 62 32 5d 2c 65 64 67 65 5b 73 32 5d 2c   ┆2Å);    iorrs(edgeÆb2Å,edgeÆs2Å,┆
0x061560…061580            65 64 67 65 5b 73 33 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 65 64 67 65 5b 62 33 5d 2c 65 64 67   ┆edgeÆs3Å);    iorrs(edgeÆb3Å,edg┆
0x061580…0615a0            65 5b 73 33 5d 2c 65 64 67 65 5b 73 34 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 65 64 67 65 5b 62   ┆eÆs3Å,edgeÆs4Å);    iorrs(edgeÆb┆
0x0615a0…0615c0            34 5d 2c 65 64 67 65 5b 73 34 5d 2c 65 64 67 65 5b 73 31 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28   ┆4Å,edgeÆs4Å,edgeÆs1Å);    iorrs(┆
0x0615c0…0615e0            65 64 67 65 5b 6e 31 5d 2c 65 64 67 65 5b 62 31 5d 2c 78 72 72 73 5b 72 37 5d 29 3b 0d 0a 20 20   ┆edgeÆn1Å,edgeÆb1Å,xrrsÆr7Å);    ┆
0x0615e0…061600            69 6f 72 72 73 28 65 64 67 65 5b 6e 32 5d 2c 65 64 67 65 5b 62 32 5d 2c 78 72 72 73 5b 72 37 5d   ┆iorrs(edgeÆn2Å,edgeÆb2Å,xrrsÆr7Å┆
0x061600…061620            29 3b 0d 0a 20 20 69 6f 72 72 73 28 65 64 67 65 5b 6e 33 5d 2c 65 64 67 65 5b 62 32 5d 2c 78 72   ┆);    iorrs(edgeÆn3Å,edgeÆb2Å,xr┆
0x061620…061640            66 73 5b 66 37 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 65 64 67 65 5b 6e 34 5d 2c 65 64 67 65 5b   ┆fsÆf7Å);    iorrs(edgeÆn4Å,edgeÆ┆
0x061640…061660            62 33 5d 2c 78 72 66 73 5b 66 37 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 65 64 67 65 5b 6e 35 5d   ┆b3Å,xrfsÆf7Å);    iorrs(edgeÆn5Å┆
0x061660…061680            2c 65 64 67 65 5b 62 33 5d 2c 78 72 72 73 5b 72 32 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 65 64   ┆,edgeÆb3Å,xrrsÆr2Å);    iorrs(ed┆
0x061680…0616a0            67 65 5b 6e 36 5d 2c 65 64 67 65 5b 62 34 5d 2c 78 72 72 73 5b 72 32 5d 29 3b 0d 0a 20 20 69 6f   ┆geÆn6Å,edgeÆb4Å,xrrsÆr2Å);    io┆
0x0616a0…0616c0            72 72 73 28 65 64 67 65 5b 6e 37 5d 2c 65 64 67 65 5b 62 34 5d 2c 78 72 66 73 5b 66 32 5d 29 3b   ┆rrs(edgeÆn7Å,edgeÆb4Å,xrfsÆf2Å);┆
0x0616c0…0616e0            0d 0a 20 20 69 6f 72 72 73 28 65 64 67 65 5b 6e 38 5d 2c 65 64 67 65 5b 62 31 5d 2c 78 72 66 73   ┆    iorrs(edgeÆn8Å,edgeÆb1Å,xrfs┆
0x0616e0…061700            5b 66 32 5d 29 3b 0d 0a 20 20 0d 0a 20 20 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 72 6e   ┆Æf2Å);        (* initialize corn┆
0x061700…061720            65 72 20 6d 61 73 6b 20 2a 29 0d 0a 20 20 69 6f 72 72 73 28 69 6e 72 73 2c 78 72 72 73 5b 72 31   ┆er mask *)    iorrs(inrs,xrrsÆr1┆
0x061720…061740            5d 2c 78 72 72 73 5b 72 32 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 69 6e 72 73 2c 69 6e 72 73 2c   ┆Å,xrrsÆr2Å);    iorrs(inrs,inrs,┆
0x061740…061760            78 72 72 73 5b 72 37 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 69 6e 72 73 2c 69 6e 72 73 2c 78 72   ┆xrrsÆr7Å);    iorrs(inrs,inrs,xr┆
0x061760…061780            72 73 5b 72 38 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 63 6f 72 6e 72 2c 78 72 66 73 5b 66 31 5d   ┆rsÆr8Å);    iorrs(cornr,xrfsÆf1Å┆
0x061780…0617a0            2c 78 72 66 73 5b 66 32 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 63 6f 72 6e 72 2c 63 6f 72 6e 72   ┆,xrfsÆf2Å);    iorrs(cornr,cornr┆
0x0617a0…0617c0            2c 78 72 66 73 5b 66 37 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 63 6f 72 6e 72 2c 63 6f 72 6e 72   ┆,xrfsÆf7Å);    iorrs(cornr,cornr┆
0x0617c0…0617e0            2c 78 72 66 73 5b 66 38 5d 29 3b 0d 0a 20 20 61 6e 64 72 73 28 63 6f 72 6e 72 2c 63 6f 72 6e 72   ┆,xrfsÆf8Å);    andrs(cornr,cornr┆
0x0617e0…061800            2c 69 6e 72 73 29 3b 0d 0a 20 20 0d 0a 20 20 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 64 69 72   ┆,inrs);        (* initialize dir┆
0x061800…061820 (24, 0, 7) 65 63 74 69 6f 6e 20 74 61 62 6c 65 20 2a 29 0d 0a 20 20 78 74 65 64 5b 6e 31 5d 3a 3d 20 31 39   ┆ection table *)    xtedÆn1Å:= 19┆
0x061820…061840            3b 20 78 74 65 64 5b 6e 32 5d 3a 3d 20 32 31 3b 0d 0a 20 20 78 74 65 64 5b 6e 38 5d 3a 3d 20 20   ┆; xtedÆn2Å:= 21;    xtedÆn8Å:=  ┆
0x061840…061860            38 3b 20 78 74 65 64 5b 62 31 5d 3a 3d 20 20 39 3b 0d 0a 20 20 78 74 65 64 5b 73 32 5d 3a 3d 20   ┆8; xtedÆb1Å:=  9;    xtedÆs2Å:= ┆
0x061860…061880            31 30 3b 20 78 74 65 64 5b 62 32 5d 3a 3d 20 31 31 3b 0d 0a 20 20 78 74 65 64 5b 6e 33 5d 3a 3d   ┆10; xtedÆb2Å:= 11;    xtedÆn3Å:=┆
0x061880…0618a0            20 31 32 3b 20 78 74 65 64 5b 73 31 5d 3a 3d 20 2d 31 3b 0d 0a 20 20 78 74 65 64 5b 73 33 5d 3a   ┆ 12; xtedÆs1Å:= -1;    xtedÆs3Å:┆
0x0618a0…0618c0            3d 20 20 31 3b 20 78 74 65 64 5b 6e 37 5d 3a 3d 2d 31 32 3b 0d 0a 20 20 78 74 65 64 5b 62 34 5d   ┆=  1; xtedÆn7Å:=-12;    xtedÆb4Å┆
0x0618c0…0618e0            3a 3d 2d 31 31 3b 20 78 74 65 64 5b 73 34 5d 3a 3d 2d 31 30 3b 0d 0a 20 20 78 74 65 64 5b 62 33   ┆:=-11; xtedÆs4Å:=-10;    xtedÆb3┆
0x0618e0…061900            5d 3a 3d 20 2d 39 3b 20 78 74 65 64 5b 6e 34 5d 3a 3d 20 2d 38 3b 0d 0a 20 20 78 74 65 64 5b 6e   ┆Å:= -9; xtedÆn4Å:= -8;    xtedÆn┆
0x061900…061920            36 5d 3a 3d 2d 32 31 3b 20 78 74 65 64 5b 6e 35 5d 3a 3d 2d 31 39 3b 0d 0a 20 20 0d 0a 20 20 28   ┆6Å:=-21; xtedÆn5Å:=-19;        (┆
0x061920…061940            2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 73 71 75 61 72 65 20 64 69 66 66 65 72 65 6e 63 65 20 74   ┆* initialize square difference t┆
0x061940…061960            6f 20 64 69 72 65 63 74 69 6f 6e 20 74 61 62 6c 65 20 2a 29 0d 0a 20 20 66 6f 72 20 69 6e 74 69   ┆o direction table *)    for inti┆
0x061960…061980            3a 3d 61 7a 6c 20 74 6f 20 7a 61 6c 20 64 6f 20 78 6c 6c 64 5b 69 6e 74 69 5d 3a 3d 30 3b 0d 0a   ┆:=azl to zal do xlldÆintiÅ:=0;  ┆
0x061980…0619a0            20 20 66 6f 72 20 69 6e 74 65 3a 3d 62 31 20 74 6f 20 73 34 20 64 6f 0d 0a 20 20 62 65 67 69 6e   ┆  for inte:=b1 to s4 do    begin┆
0x0619a0…0619c0            0d 0a 20 20 20 20 69 6e 74 64 3a 3d 78 74 65 64 5b 69 6e 74 65 5d 3b 0d 0a 20 20 20 20 66 6f 72   ┆      intd:=xtedÆinteÅ;      for┆
0x0619c0…0619e0            20 69 6d 74 69 3a 3d 31 20 74 6f 20 37 20 64 6f 20 78 6c 6c 64 5b 69 6d 74 69 2a 69 6e 74 64 5d   ┆ imti:=1 to 7 do xlldÆimti*intdÅ┆
0x0619e0…061a00            3a 3d 69 6e 74 64 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 66 6f 72 20 69 6e 74 65 3a 3d 6e 31 20   ┆:=intd;    end;    for inte:=n1 ┆
0x061a00…061a20            74 6f 20 6e 38 20 64 6f 20 78 6c 6c 64 5b 78 74 65 64 5b 69 6e 74 65 5d 5d 3a 3d 78 74 65 64 5b   ┆to n8 do xlldÆxtedÆinteÅÅ:=xtedÆ┆
0x061a20…061a40            69 6e 74 65 5d 3b 0d 0a 20 20 0d 0a 20 20 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 63 61 73 74   ┆inteÅ;        (* initialize cast┆
0x061a40…061a60            6c 69 6e 67 20 74 72 61 6e 73 6c 61 74 69 6f 6e 20 74 61 62 6c 65 73 20 2a 29 0d 0a 20 20 69 6f   ┆ling translation tables *)    io┆
0x061a60…061a80            72 72 73 28 78 73 71 73 5b 6c 73 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 31 2c 66 38 5d 5d 2c   ┆rrs(xsqsÆlsÅ,xrssÆxtrfsÆr1,f8ÅÅ,┆
0x061a80…061aa0            78 72 73 73 5b 78 74 72 66 73 5b 72 31 2c 66 35 5d 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 78 73   ┆xrssÆxtrfsÆr1,f5ÅÅ);    iorrs(xs┆
0x061aa0…061ac0            71 73 5b 6c 6c 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 31 2c 66 31 5d 5d 2c 78 72 73 73 5b 78   ┆qsÆllÅ,xrssÆxtrfsÆr1,f1ÅÅ,xrssÆx┆
0x061ac0…061ae0            74 72 66 73 5b 72 31 2c 66 35 5d 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 78 73 71 73 5b 64 73 5d   ┆trfsÆr1,f5ÅÅ);    iorrs(xsqsÆdsÅ┆
0x061ae0…061b00            2c 78 72 73 73 5b 78 74 72 66 73 5b 72 38 2c 66 38 5d 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72   ┆,xrssÆxtrfsÆr8,f8ÅÅ,xrssÆxtrfsÆr┆
0x061b00…061b20            38 2c 66 35 5d 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 78 73 71 73 5b 64 6c 5d 2c 78 72 73 73 5b   ┆8,f5ÅÅ);    iorrs(xsqsÆdlÅ,xrssÆ┆
0x061b20…061b40            78 74 72 66 73 5b 72 38 2c 66 31 5d 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 38 2c 66 35 5d 5d   ┆xtrfsÆr8,f1ÅÅ,xrssÆxtrfsÆr8,f5ÅÅ┆
0x061b40…061b60            29 3b 0d 0a 20 20 0d 0a 20 20 69 6f 72 72 73 28 78 72 71 73 6f 5b 6c 73 5d 2c 78 72 73 73 5b 78   ┆);        iorrs(xrqsoÆlsÅ,xrssÆx┆
0x061b60…061b80            74 72 66 73 5b 72 31 2c 66 36 5d 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 31 2c 66 37 5d 5d 29   ┆trfsÆr1,f6ÅÅ,xrssÆxtrfsÆr1,f7ÅÅ)┆
0x061b80…061ba0            3b 0d 0a 20 20 69 6f 72 72 73 28 78 72 71 73 6f 5b 6c 6c 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b   ┆;    iorrs(xrqsoÆllÅ,xrssÆxtrfsÆ┆
0x061ba0…061bc0            72 31 2c 66 34 5d 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 31 2c 66 33 5d 5d 29 3b 0d 0a 20 20   ┆r1,f4ÅÅ,xrssÆxtrfsÆr1,f3ÅÅ);    ┆
0x061bc0…061be0            69 6f 72 72 73 28 78 72 71 73 61 5b 6c 73 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 31 2c 66 35   ┆iorrs(xrqsaÆlsÅ,xrssÆxtrfsÆr1,f5┆
0x061be0…061c00            5d 5d 2c 78 72 71 73 6f 5b 6c 73 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 78 72 71 73 61 5b 6c 6c   ┆ÅÅ,xrqsoÆlsÅ);    iorrs(xrqsaÆll┆
0x061c00…061c20 (24, 0, 8) 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 31 2c 66 35 5d 5d 2c 78 72 71 73 6f 5b 6c 6c 5d 29 3b   ┆Å,xrssÆxtrfsÆr1,f5ÅÅ,xrqsoÆllÅ);┆
0x061c20…061c40            0d 0a 20 20 69 6f 72 72 73 28 78 72 71 73 6f 5b 6c 6c 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72   ┆    iorrs(xrqsoÆllÅ,xrssÆxtrfsÆr┆
0x061c40…061c60            31 2c 66 32 5d 5d 2c 78 72 71 73 6f 5b 6c 6c 5d 29 3b 0d 0a 20 20 0d 0a 20 20 69 6f 72 72 73 28   ┆1,f2ÅÅ,xrqsoÆllÅ);        iorrs(┆
0x061c60…061c80            78 72 71 73 6f 5b 64 73 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 38 2c 66 36 5d 5d 2c 78 72 73   ┆xrqsoÆdsÅ,xrssÆxtrfsÆr8,f6ÅÅ,xrs┆
0x061c80…061ca0            73 5b 78 74 72 66 73 5b 72 38 2c 66 37 5d 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 78 72 71 73 6f   ┆sÆxtrfsÆr8,f7ÅÅ);    iorrs(xrqso┆
0x061ca0…061cc0            5b 64 6c 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 38 2c 66 34 5d 5d 2c 78 72 73 73 5b 78 74 72   ┆ÆdlÅ,xrssÆxtrfsÆr8,f4ÅÅ,xrssÆxtr┆
0x061cc0…061ce0            66 73 5b 72 38 2c 66 33 5d 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 78 72 71 73 61 5b 64 73 5d 2c   ┆fsÆr8,f3ÅÅ);    iorrs(xrqsaÆdsÅ,┆
0x061ce0…061d00            78 72 73 73 5b 78 74 72 66 73 5b 72 38 2c 66 35 5d 5d 2c 78 72 71 73 6f 5b 64 73 5d 29 3b 0d 0a   ┆xrssÆxtrfsÆr8,f5ÅÅ,xrqsoÆdsÅ);  ┆
0x061d00…061d20            20 20 69 6f 72 72 73 28 78 72 71 73 61 5b 64 6c 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 38 2c   ┆  iorrs(xrqsaÆdlÅ,xrssÆxtrfsÆr8,┆
0x061d20…061d40            66 35 5d 5d 2c 78 72 71 73 6f 5b 64 6c 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 78 72 71 73 6f 5b   ┆f5ÅÅ,xrqsoÆdlÅ);    iorrs(xrqsoÆ┆
0x061d40…061d60            64 6c 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 38 2c 66 32 5d 5d 2c 78 72 71 73 6f 5b 64 6c 5d   ┆dlÅ,xrssÆxtrfsÆr8,f2ÅÅ,xrqsoÆdlÅ┆
0x061d60…061d80            29 3b 0d 0a 20 20 0d 0a 20 20 66 6f 72 20 69 6e 74 71 3a 3d 6c 73 20 74 6f 20 64 6c 20 64 6f 0d   ┆);        for intq:=ls to dl do ┆
0x061d80…061da0            0a 20 20 20 20 77 69 74 68 20 78 72 71 6d 5b 69 6e 74 71 5d 20 64 6f 0d 0a 20 20 20 20 62 65 67   ┆     with xrqmÆintqÅ do      beg┆
0x061da0…061dc0            69 6e 0d 0a 20 20 20 20 20 20 72 6d 63 70 3a 3d 6d 74 3b 0d 0a 20 20 20 20 20 20 72 6d 63 61 3a   ┆in        rmcp:=mt;        rmca:┆
0x061dc0…061de0            3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 72 6d 61 63 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20   ┆=false;        rmac:=true;      ┆
0x061de0…061e00            20 20 72 6d 63 68 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 72 6d 6d 74 3a 3d 66 61 6c 73   ┆  rmch:=false;        rmmt:=fals┆
0x061e00…061e20            65 3b 0d 0a 20 20 20 20 20 20 72 6d 69 6c 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 72 6d   ┆e;        rmil:=false;        rm┆
0x061e20…061e40            73 75 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 72 6d 70 72 3a 3d 66 61 6c 73 65 3b 0d 0a   ┆su:=false;        rmpr:=false;  ┆
0x061e40…061e60            20 20 20 20 20 20 72 6d 6f 6f 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 78   ┆      rmoo:=true;      end;    x┆
0x061e60…061e80            72 71 6d 5b 6c 73 5d 2e 72 6d 66 72 3a 3d 78 74 72 66 73 5b 72 31 2c 66 35 5d 3b 20 78 72 71 6d   ┆rqmÆlsÅ.rmfr:=xtrfsÆr1,f5Å; xrqm┆
0x061e80…061ea0            5b 6c 73 5d 2e 72 6d 74 6f 3a 3d 78 74 72 66 73 5b 72 31 2c 66 37 5d 3b 0d 0a 20 20 78 72 71 6d   ┆ÆlsÅ.rmto:=xtrfsÆr1,f7Å;    xrqm┆
0x061ea0…061ec0            5b 6c 6c 5d 2e 72 6d 66 72 3a 3d 78 74 72 66 73 5b 72 31 2c 66 35 5d 3b 20 78 72 71 6d 5b 6c 6c   ┆ÆllÅ.rmfr:=xtrfsÆr1,f5Å; xrqmÆll┆
0x061ec0…061ee0            5d 2e 72 6d 74 6f 3a 3d 78 74 72 66 73 5b 72 31 2c 66 33 5d 3b 0d 0a 20 20 78 72 71 6d 5b 64 73   ┆Å.rmto:=xtrfsÆr1,f3Å;    xrqmÆds┆
0x061ee0…061f00            5d 2e 72 6d 66 72 3a 3d 78 74 72 66 73 5b 72 38 2c 66 35 5d 3b 20 78 72 71 6d 5b 64 73 5d 2e 72   ┆Å.rmfr:=xtrfsÆr8,f5Å; xrqmÆdsÅ.r┆
0x061f00…061f20            6d 74 6f 3a 3d 78 74 72 66 73 5b 72 38 2c 66 37 5d 3b 0d 0a 20 20 78 72 71 6d 5b 64 6c 5d 2e 72   ┆mto:=xtrfsÆr8,f7Å;    xrqmÆdlÅ.r┆
0x061f20…061f40            6d 66 72 3a 3d 78 74 72 66 73 5b 72 38 2c 66 35 5d 3b 20 78 72 71 6d 5b 64 6c 5d 2e 72 6d 74 6f   ┆mfr:=xtrfsÆr8,f5Å; xrqmÆdlÅ.rmto┆
0x061f40…061f60            3a 3d 78 74 72 66 73 5b 72 38 2c 66 33 5d 3b 0d 0a 20 20 0d 0a 20 20 78 72 71 6d 5b 6c 73 5d 2e   ┆:=xtrfsÆr8,f3Å;        xrqmÆlsÅ.┆
0x061f60…061f80            72 6d 71 73 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 78 72 71 6d 5b 6c 6c 5d 2e 72 6d 71 73 3a 3d 74   ┆rmqs:=false;    xrqmÆllÅ.rmqs:=t┆
0x061f80…061fa0            72 75 65 3b 0d 0a 20 20 78 72 71 6d 5b 64 73 5d 2e 72 6d 71 73 3a 3d 66 61 6c 73 65 3b 0d 0a 20   ┆rue;    xrqmÆdsÅ.rmqs:=false;   ┆
0x061fa0…061fc0            20 78 72 71 6d 5b 64 6c 5d 2e 72 6d 71 73 3a 3d 74 72 75 65 3b 0d 0a 20 20 0d 0a 20 20 78 74 6d   ┆ xrqmÆdlÅ.rmqs:=true;        xtm┆
0x061fc0…061fe0            71 5b 6c 69 74 65 5d 3a 3d 6c 73 3b 0d 0a 20 20 78 74 6d 71 5b 64 61 72 6b 5d 3a 3d 64 73 3b 0d   ┆qÆliteÅ:=ls;    xtmqÆdarkÅ:=ds; ┆
0x061fe0…062000            0a 20 20 0d 0a 20 20 78 74 71 73 5b 6c 73 5d 3a 3d 78 74 72 66 73 5b 72 31 2c 66 38 5d 3b 0d 0a   ┆       xtqsÆlsÅ:=xtrfsÆr1,f8Å;  ┆
0x062000…062020 (24, 1, 1) 20 20 78 74 71 73 5b 6c 6c 5d 3a 3d 78 74 72 66 73 5b 72 31 2c 66 31 5d 3b 0d 0a 20 20 78 74 71   ┆  xtqsÆllÅ:=xtrfsÆr1,f1Å;    xtq┆
0x062020…062040            73 5b 64 73 5d 3a 3d 78 74 72 66 73 5b 72 38 2c 66 38 5d 3b 0d 0a 20 20 78 74 71 73 5b 64 6c 5d   ┆sÆdsÅ:=xtrfsÆr8,f8Å;    xtqsÆdlÅ┆
0x062040…062060            3a 3d 78 74 72 66 73 5b 72 38 2c 66 31 5d 3b 0d 0a 20 20 0d 0a 20 20 28 2a 20 69 6e 69 74 69 61   ┆:=xtrfsÆr8,f1Å;        (* initia┆
0x062060…062080            6c 69 7a 65 20 6e 75 6c 6c 20 6d 6f 76 65 20 2a 29 0d 0a 20 20 77 69 74 68 20 6e 75 6c 6d 76 20   ┆lize null move *)    with nulmv ┆
0x062080…0620a0            64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 72 6d 66 72 3a 3d 61 73 3b 0d 0a 20 20 20 20   ┆do    begin      rmfr:=as;      ┆
0x0620a0…0620c0            72 6d 74 6f 3a 3d 61 73 3b 0d 0a 20 20 20 20 72 6d 63 70 3a 3d 6d 74 3b 0d 0a 20 20 20 20 72 6d   ┆rmto:=as;      rmcp:=mt;      rm┆
0x0620c0…0620e0            63 61 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 72 6d 61 63 3a 3d 74 72 75 65 3b 0d 0a 20 20 20   ┆ca:=false;      rmac:=true;     ┆
0x0620e0…062100            20 72 6d 63 68 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 72 6d 6d 74 3a 3d 66 61 6c 73 65 3b 0d   ┆ rmch:=false;      rmmt:=false; ┆
0x062100…062120            0a 20 20 20 20 72 6d 69 6c 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 72 6d 73 75 3a 3d 66 61 6c   ┆     rmil:=false;      rmsu:=fal┆
0x062120…062140            73 65 3b 0d 0a 20 20 20 20 72 6d 70 72 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 72 6d 70 70 3a 3d   ┆se;      rmpr:=true;      rmpp:=┆
0x062140…062160            70 62 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 0d 0a 20 20 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65   ┆pb;    end;        (* initialize┆
0x062160…062180            20 63 6f 75 6e 74 62 69 74 20 74 61 62 6c 65 20 2a 29 0d 0a 20 20 66 6f 72 20 69 6e 74 69 3a 3d   ┆ countbit table *)    for inti:=┆
0x062180…0621a0            30 20 74 6f 20 32 35 35 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 73 75 6d 3a 3d 30   ┆0 to 255 do    begin      sum:=0┆
0x0621a0…0621c0            3b 0d 0a 20 20 20 20 78 3a 3d 31 32 38 3b 0d 0a 20 20 20 20 69 6d 74 69 3a 3d 69 6e 74 69 3b 0d   ┆;      x:=128;      imti:=inti; ┆
0x0621c0…0621e0            0a 20 20 20 20 77 68 69 6c 65 20 69 6d 74 69 20 3e 20 30 20 64 6f 0d 0a 20 20 20 20 62 65 67 69   ┆     while imti > 0 do      begi┆
0x0621e0…062200            6e 0d 0a 20 20 20 20 20 20 69 66 20 69 6d 74 69 2d 78 20 3e 3d 20 30 20 74 68 65 6e 0d 0a 20 20   ┆n        if imti-x >= 0 then    ┆
0x062200…062220            20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 73 75 6d 3a 3d 73 75 6d 2b 31 3b 0d 0a   ┆    begin          sum:=sum+1;  ┆
0x062220…062240            20 20 20 20 20 20 20 20 69 6d 74 69 3a 3d 69 6d 74 69 2d 78 3b 0d 0a 20 20 20 20 20 20 65 6e 64   ┆        imti:=imti-x;        end┆
0x062240…062260            3b 0d 0a 20 20 20 20 20 20 78 3a 3d 78 20 64 69 76 20 32 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a   ┆;        x:=x div 2;      end;  ┆
0x062260…062280            20 20 20 20 63 74 5b 69 6e 74 69 5d 3a 3d 73 75 6d 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 0d 0a 20 20   ┆    ctÆintiÅ:=sum;    end;      ┆
0x062280…0622a0            28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 20 70 72 6f 63 65 73 73 69 6e 67   ┆(* initialize command processing┆
0x0622a0…0622c0            20 76 61 72 69 61 62 6c 65 20 2a 29 0d 0a 20 20 6a 6d 74 6a 3a 3d 7a 6a 3b 0d 0a 20 20 69 63 61   ┆ variable *)    jmtj:=zj;    ica┆
0x0622c0…0622e0            72 64 5b 7a 6a 5d 3a 3d 27 3b 27 3b 0d 0a 20 20 69 6c 69 6e 65 5b 7a 6a 5d 3a 3d 27 3b 27 3b 0d   ┆rdÆzjÅ:=';';    ilineÆzjÅ:=';'; ┆
0x0622e0…062300            0a 20 20 0d 0a 20 20 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 6d 6f 76 65 73 20 73 79 6e 74 61   ┆       (* initialize moves synta┆
0x062300…062320            78 20 74 61 62 6c 65 20 2a 29 0d 0a 20 20 69 6e 74 69 3a 3d 73 79 6e 63 66 3b 0d 0a 20 20 69 6e   ┆x table *)    inti:=syncf;    in┆
0x062320…062340            69 73 79 6e 28 27 20 20 20 20 2a 50 20 20 20 20 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 20   ┆isyn('    *P    ');    inisyn(' ┆
0x062340…062360            20 20 20 2a 50 2f 20 20 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 20 31 2a 50 20 20   ┆   *P/  1');    inisyn('/  1*P  ┆
0x062360…062380            20 20 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 20 20 20 20 2a 50 2f 20 52 20 27 29 3b 0d 0a   ┆  ');    inisyn('    *P/ R ');  ┆
0x062380…0623a0            20 20 69 6e 69 73 79 6e 28 27 2f 20 52 20 2a 50 20 20 20 20 27 29 3b 0d 0a 20 20 69 6e 69 73 79   ┆  inisyn('/ R *P    ');    inisy┆
0x0623a0…0623c0            6e 28 27 20 20 20 20 2a 50 2f 20 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 52 31   ┆n('    *P/ R1');    inisyn('/ R1┆
0x0623c0…0623e0            2a 50 20 20 20 20 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 20 20 20 20 2a 50 2f 20 4b 52 27   ┆*P    ');    inisyn('    *P/ KR'┆
0x0623e0…062400            29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 4b 52 2a 50 20 20 20 20 27 29 3b 0d 0a 20 20 69   ┆);    inisyn('/ KR*P    ');    i┆
0x062400…062420 (24, 1, 2) 6e 69 73 79 6e 28 27 20 20 20 20 2a 50 2f 4b 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27   ┆nisyn('    *P/KR1');    inisyn('┆
0x062420…062440            2f 4b 52 31 2a 50 2f 20 20 20 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 20 31 2a 50 2f   ┆/KR1*P/   ');    inisyn('/  1*P/┆
0x062440…062460            20 20 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 52 20 2a 50 2f 20 52 20 27 29 3b 0d   ┆  1');    inisyn('/ R *P/ R '); ┆
0x062460…062480            0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 20 31 2a 50 2f 20 52 20 27 29 3b 0d 0a 20 20 69 6e 69 73   ┆   inisyn('/  1*P/ R ');    inis┆
0x062480…0624a0            79 6e 28 27 2f 20 52 20 2a 50 2f 20 20 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 52   ┆yn('/ R *P/  1');    inisyn('/ R┆
0x0624a0…0624c0            31 2a 50 2f 20 20 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 20 31 2a 50 2f 20 52 31   ┆1*P/  1');    inisyn('/  1*P/ R1┆
0x0624c0…0624e0            27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 52 31 2a 50 2f 20 52 20 27 29 3b 0d 0a 20 20   ┆');    inisyn('/ R1*P/ R ');    ┆
0x0624e0…062500            69 6e 69 73 79 6e 28 27 2f 20 52 20 2a 50 2f 20 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28   ┆inisyn('/ R *P/ R1');    inisyn(┆
0x062500…062520            27 2f 4b 52 20 2a 50 2f 20 20 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 20 31 2a 50   ┆'/KR *P/  1');    inisyn('/  1*P┆
0x062520…062540            2f 4b 52 20 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 4b 52 20 2a 50 2f 20 52 20 27 29 3b   ┆/KR ');    inisyn('/KR *P/ R ');┆
0x062540…062560            0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 52 20 2a 50 2f 4b 52 20 27 29 3b 0d 0a 20 20 69 6e 69   ┆    inisyn('/ R *P/KR ');    ini┆
0x062560…062580            73 79 6e 28 27 2f 20 20 31 2a 50 2f 4b 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 4b   ┆syn('/  1*P/KR1');    inisyn('/K┆
0x062580…0625a0            52 31 2a 50 2f 20 20 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 52 20 2a 50 2f 4b 52   ┆R1*P/  1');    inisyn('/ R *P/KR┆
0x0625a0…0625c0            31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 4b 52 31 2a 50 2f 20 52 20 27 29 3b 0d 0a 20   ┆1');    inisyn('/KR1*P/ R ');   ┆
0x0625c0…0625e0            20 69 6e 69 73 79 6e 28 27 2f 20 52 31 2a 50 2f 20 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e   ┆ inisyn('/ R1*P/ R1');    inisyn┆
0x0625e0…062600            28 27 2f 4b 52 20 2a 50 2f 20 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 52 31 2a   ┆('/KR *P/ R1');    inisyn('/ R1*┆
0x062600…062620            50 2f 4b 52 20 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 4b 52 20 2a 50 2f 4b 52 20 27 29   ┆P/KR ');    inisyn('/KR *P/KR ')┆
0x062620…062640            3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 4b 52 31 2a 50 2f 20 52 31 27 29 3b 0d 0a 20 20 69 6e   ┆;    inisyn('/KR1*P/ R1');    in┆
0x062640…062660            69 73 79 6e 28 27 2f 20 52 31 2a 50 2f 4b 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f   ┆isyn('/ R1*P/KR1');    inisyn('/┆
0x062660…062680            4b 52 31 2a 50 2f 4b 52 20 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 4b 52 20 2a 50 2f 4b   ┆KR1*P/KR ');    inisyn('/KR *P/K┆
0x062680…0626a0            52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 4b 52 31 2a 50 2f 4b 52 31 27 29 3b 0d 0a   ┆R1');    inisyn('/KR1*P/KR1');  ┆
0x0626a0…0626c0            0d 0a 20 20 69 6e 69 73 79 6e 28 27 20 20 20 20 2d 20 20 20 52 31 27 29 3b 0d 0a 20 20 69 6e 69   ┆    inisyn('    -   R1');    ini┆
0x0626c0…0626e0            73 79 6e 28 27 20 20 20 20 2d 20 20 4b 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20   ┆syn('    -  KR1');    inisyn('/ ┆
0x0626e0…062700            20 31 2d 20 20 20 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 52 20 2d 20 20 20 52   ┆ 1-   R1');    inisyn('/ R -   R┆
0x062700…062720            31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 20 31 2d 20 20 4b 52 31 27 29 3b 0d 0a 20   ┆1');    inisyn('/  1-  KR1');   ┆
0x062720…062740            20 69 6e 69 73 79 6e 28 27 2f 20 52 20 2d 20 20 4b 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e   ┆ inisyn('/ R -  KR1');    inisyn┆
0x062740…062760            28 27 2f 20 52 31 2d 20 20 20 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 4b 52 20 2d   ┆('/ R1-   R1');    inisyn('/KR -┆
0x062760…062780            20 20 20 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 52 31 2d 20 20 4b 52 31 27 29   ┆   R1');    inisyn('/ R1-  KR1')┆
0x062780…0627a0            3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 4b 52 20 2d 20 20 4b 52 31 27 29 3b 0d 0a 20 20 69 6e   ┆;    inisyn('/KR -  KR1');    in┆
0x0627a0…0627c0            69 73 79 6e 28 27 2f 4b 52 31 2d 20 20 4b 52 31 27 29 3b 0d 0a 20 20 0d 0a 20 20 28 2a 20 69 6e   ┆isyn('/KR1-  KR1');        (* in┆
0x0627c0…0627e0            69 74 69 61 6c 69 7a 65 20 6c 65 74 73 20 2a 29 0d 0a 20 20 66 6b 70 73 68 64 3a 3d 31 30 3b 0d   ┆itialize lets *)    fkpshd:=10; ┆
0x0627e0…062800            0a 20 20 66 6d 61 78 6d 74 3a 3d 32 30 34 38 3b 0d 0a 20 20 73 74 61 67 65 73 3a 3d 32 3b 0d 0a   ┆   fmaxmt:=2048;    stages:=2;  ┆
0x062800…062820 (24, 1, 3) 20 20 66 70 61 64 63 72 5b 66 31 5d 3a 3d 31 3b 0d 0a 20 20 66 70 61 64 63 72 5b 66 32 5d 3a 3d   ┆  fpadcrÆf1Å:=1;    fpadcrÆf2Å:=┆
0x062820…062840            32 3b 0d 0a 20 20 66 70 61 64 63 72 5b 66 33 5d 3a 3d 34 3b 0d 0a 20 20 66 70 61 64 63 72 5b 66   ┆2;    fpadcrÆf3Å:=4;    fpadcrÆf┆
0x062840…062860            34 5d 3a 3d 36 3b 0d 0a 20 20 66 70 61 64 63 72 5b 66 35 5d 3a 3d 37 3b 0d 0a 20 20 66 70 61 64   ┆4Å:=6;    fpadcrÆf5Å:=7;    fpad┆
0x062860…062880            63 72 5b 66 36 5d 3a 3d 34 3b 0d 0a 20 20 66 70 61 64 63 72 5b 66 37 5d 3a 3d 32 3b 0d 0a 20 20   ┆crÆf6Å:=4;    fpadcrÆf7Å:=2;    ┆
0x062880…0628a0            66 70 61 64 63 72 5b 66 38 5d 3a 3d 31 3b 0d 0a 20 20 66 70 62 6c 6f 6b 3a 3d 31 30 3b 0d 0a 20   ┆fpadcrÆf8Å:=1;    fpblok:=10;   ┆
0x0628a0…0628c0            20 66 70 63 6f 6e 6e 3a 3d 35 3b 0d 0a 20 20 66 70 66 6c 6e 78 3a 3d 33 3b 0d 0a 20 20 66 72 64   ┆ fpconn:=5;    fpflnx:=3;    frd┆
0x0628c0…0628e0            75 62 6c 3a 3d 36 30 3b 0d 0a 20 20 66 72 6b 37 74 68 3a 3d 31 32 30 3b 0d 0a 20 20 66 74 72 61   ┆ubl:=60;    frk7th:=120;    ftra┆
0x0628e0…062900            64 65 3a 3d 33 36 3b 0d 0a 20 20 66 74 72 64 73 6c 3a 3d 35 31 35 36 3b 0d 0a 20 20 66 74 72 70   ┆de:=36;    ftrdsl:=5156;    ftrp┆
0x062900…062920            6f 6b 3a 3d 32 3b 0d 0a 20 20 66 74 72 70 77 6e 3a 3d 38 3b 0d 0a 20 20 66 77 6b 69 6e 67 3a 3d   ┆ok:=2;    ftrpwn:=8;    fwking:=┆
0x062920…062940            32 30 3b 0d 0a 20 20 66 77 6d 61 6a 6d 3a 3d 36 34 3b 0d 0a 20 20 66 77 6d 69 6e 6d 3a 3d 31 32   ┆20;    fwmajm:=64;    fwminm:=12┆
0x062940…062960            38 3b 0d 0a 20 20 66 77 70 61 77 6e 3a 3d 36 34 3b 0d 0a 20 20 66 77 72 6f 6f 6b 3a 3d 32 3b 0d   ┆8;    fwpawn:=64;    fwrook:=2; ┆
0x062960…062980            0a 20 20 66 63 68 65 63 6b 3a 3d 33 32 3b 0d 0a 20 20 66 77 61 74 74 6b 3a 3d 31 36 3b 0d 0a 20   ┆   fcheck:=32;    fwattk:=16;   ┆
0x062980…0629a0            20 66 6b 73 61 6e 71 3a 3d 36 34 3b 0d 0a 20 20 66 63 66 72 65 65 3a 3d 34 3b 0d 0a 20 20 66 61   ┆ fksanq:=64;    fcfree:=4;    fa┆
0x0629a0…0629c0            6b 69 6e 67 3a 3d 32 35 3b 0d 0a 20 20 77 69 6e 64 6f 77 3a 3d 31 30 30 3b 0d 0a 20 20 0d 0a 20   ┆king:=25;    window:=100;       ┆
0x0629c0…0629e0            20 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 73 77 69 74 63 68 65 73 20 2a 29 0d 0a 20 20 73 77   ┆ (* initialize switches *)    sw┆
0x0629e0…062a00            65 63 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 73 77 70 61 3a 3d 74 72 75 65 3b 0d 0a 20 20 73 77 70   ┆ec:=false;    swpa:=true;    swp┆
0x062a00…062a20            73 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 73 77 72 65 3a 3d 74 72 75 65 3b 0d 0a 20 20 73 77 73 75   ┆s:=false;    swre:=true;    swsu┆
0x062a20…062a40            3a 3d 74 72 75 65 3b 0d 0a 20 20 73 77 74 72 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 73 77 70 72 3a   ┆:=true;    swtr:=false;    swpr:┆
0x062a40…062a60            3d 66 61 6c 73 65 3b 0d 0a 20 20 73 77 62 6d 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 0d 0a 20 20 67   ┆=false;    swbm:=false;        g┆
0x062a60…062a80            6f 69 6e 67 3a 3d 30 3b 0d 0a 65 6e 64 3b 09 28 2a 20 69 6e 69 63 6f 6e 20 2a 29 0d 0a 0d 0a 28   ┆oing:=0;  end; (* inicon *)    (┆
0x062a80…062aa0            2a 20 63 68 65 73 73 2e 70 30 38 20 2a 29 0d 0a 70 72 6f 63 65 64 75 72 65 20 6d 69 6e 65 6e 67   ┆* chess.p08 *)  procedure mineng┆
0x062aa0…062ac0            28 61 3a 20 72 6d 3b 20 62 3a 20 72 61 29 3b 09 28 2a 20 67 65 6e 65 72 61 74 65 20 6d 69 6e 69   ┆(a: rm; b: ra); (* generate mini┆
0x062ac0…062ae0            6d 75 6d 20 65 6e 67 6c 69 73 68 20 6e 6f 74 61 74 69 6f 6e 20 2a 29 0d 0a 76 61 72 20 69 6e 74   ┆mum english notation *)  var int┆
0x062ae0…062b00            6e 20 3a 20 74 6e 6e 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 61 64 64 63 68 72 28 61 3a 20   ┆n : tnn;    procedure addchr(a: ┆
0x062b00…062b20            74 63 29 3b 09 28 2a 20 61 64 64 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 6d 65 73 73 61 67 65   ┆tc); (* add character to message┆
0x062b20…062b40            20 2a 29 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 6d 6f 76 6d 73 5b 69 6e 74 6e 5d 3a 3d 61   ┆ *)    begin      movmsÆintnÅ:=a┆
0x062b40…062b60            3b 0d 0a 20 20 20 20 69 66 20 69 6e 74 6e 20 3c 20 7a 6e 6e 20 74 68 65 6e 20 69 6e 74 6e 3a 3d   ┆;      if intn < znn then intn:=┆
0x062b60…062b80            69 6e 74 6e 2b 31 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 61 64 64   ┆intn+1;    end;    procedure add┆
0x062b80…062ba0            73 71 72 28 61 3a 20 74 73 3b 20 62 3a 20 72 64 29 3b 09 28 2a 20 61 64 64 20 73 71 75 61 72 65   ┆sqr(a: ts; b: rd); (* add square┆
0x062ba0…062bc0            20 74 6f 20 6d 65 73 73 61 67 65 20 2a 29 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 77 69 74   ┆ to message *)    begin      wit┆
0x062bc0…062be0            68 20 62 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 66 20 72 64 70 63   ┆h b do      begin        if rdpc┆
0x062be0…062c00            20 74 68 65 6e 20 61 64 64 63 68 72 28 78 74 75 63 5b 78 74 70 75 5b 6e 62 6f 72 64 5b 61 5d 5d   ┆ then addchr(xtucÆxtpuÆnbordÆaÅÅ┆
0x062c00…062c20 (24, 1, 4) e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x1f…]
0x063000…063020 (24, 1, 5) 65 63 75 74 65 20 6d 61 63 68 69 6e 65 73 20 6d 6f 76 65 20 2a 29 0d 0a 20 20 20 20 20 20 6d 79   ┆ecute machines move *)        my┆
0x063020…063040            6d 6f 76 65 3b 0d 0a 20 20 20 20 20 20 69 66 20 67 6f 69 6e 67 20 3e 20 30 20 74 68 65 6e 20 67   ┆move;        if going > 0 then g┆
0x063040…063060            6f 69 6e 67 3a 3d 67 6f 69 6e 67 2d 31 3b 0d 0a 20 20 20 20 75 6e 74 69 6c 20 67 6f 69 6e 67 20   ┆oing:=going-1;      until going ┆
0x063060…063080            3d 20 30 3b 0d 0a 20 20 75 6e 74 69 6c 20 66 61 6c 73 65 3b 0d 0a 39 3a 0d 0a 65 6e 64 2e 0d 0a   ┆= 0;    until false;  9:  end.  ┆
0x063080…0630a0            66 0d 0a 20 20 20 20 20 20 20 20 31 3a 20 67 6f 74 6f 20 31 3b 0d 0a 20 20 20 20 20 20 20 20 32   ┆f          1: goto 1;          2┆
0x0630a0…0630c0            3a 20 67 6f 74 6f 20 32 3b 0d 0a 20 20 20 20 20 20 20 20 39 3a 20 67 6f 74 6f 20 39 3b 0d 0a 20   ┆: goto 2;          9: goto 9;   ┆
0x0630c0…0630e0            20 20 20 20 20 20 20 30 3a 20 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 75 6e 74   ┆       0: ;        end;      unt┆
0x0630e0…063100            69 6c 20 73 77 72 65 3b 0d 0a 32 3a 0d 0a 20 20 20 20 72 65 70 65 61 74 09 09 09 28 2a 20 65 78   ┆il swre;  2:      repeat   (* ex┆
0x063100…063120            20 30 2e 35 27 29 3b 0d 0a 20 20 69 6e 69 63 6f 6e 3b 0d 0a 31 3a 0d 0a 20 20 69 6e 69 74 61 6c   ┆ 0.5');    inicon;  1:    inital┆
0x063120…063140            28 62 6f 61 72 64 29 3b 09 09 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 66 6f 72 20 61 20 6e 65   ┆(board);  (* initialize for a ne┆
0x063140…063160            77 20 67 61 6d 65 20 2a 29 0d 0a 20 20 72 65 70 65 61 74 0d 0a 20 20 20 20 72 65 70 65 61 74 0d   ┆w game *)    repeat      repeat ┆
0x063160…063180            0a 20 20 20 20 20 20 79 72 6d 6f 76 65 3b 0d 0a 20 20 20 20 20 20 63 61 73 65 20 63 6f 6d 20 6f   ┆       yrmove;        case com o┆
0x063180…0631a0            20 20 77 72 69 74 65 6c 6e 3b 0d 0a 20 20 20 20 69 66 20 73 77 65 63 20 74 68 65 6e 20 77 72 69   ┆  writeln;      if swec then wri┆
0x0631a0…0631c0            74 65 6c 6e 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 69 66 20 73 77 70 72 20 74 68 65 6e 20 70 72   ┆teln;    end;    if swpr then pr┆
0x0631c0…0631e0            69 6e 74 62 28 62 6f 61 72 64 2e 72 62 69 73 29 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 62 65 67 69 6e   ┆intb(board.rbis);  end;    begin┆
0x0631e0…063200            0d 0a 20 20 77 72 69 74 65 6c 6e 28 27 20 48 49 2e 20 20 54 48 49 53 20 49 53 20 43 48 45 53 53   ┆    writeln(' HI.  THIS IS CHESS┆
0x063200…063220            73 74 76 6c 5b 61 6b 5d 3a 34 2c 27 20 20 27 2c 6e 6f 64 65 73 3a 30 2c 27 20 6e 6f 64 65 73 2e   ┆stvlÆakÅ:4,'  ',nodes:0,' nodes.┆
0x063220…063240            20 20 27 29 3b 0d 0a 20 20 20 20 20 20 77 72 69 74 65 28 27 20 20 20 27 2c 62 6f 61 72 64 2e 72   ┆  ');        write('   ',board.r┆
0x063240…063260            62 74 69 3a 30 2c 27 2e 20 20 27 2c 62 73 74 76 6c 5b 61 6b 5d 3a 34 2c 27 20 20 27 2c 6e 6f 64   ┆bti:0,'.  ',bstvlÆakÅ:4,'  ',nod┆
0x063260…063280            65 73 3a 30 2c 27 20 6e 6f 64 65 73 2e 20 20 27 29 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20   ┆es:0,' nodes.  ');      end;    ┆
0x063280…0632a0            20 20 20 74 68 65 6d 6f 76 28 69 6e 72 6d 29 3b 09 09 28 2a 20 6d 61 6b 65 20 74 68 65 20 6d 6f   ┆   themov(inrm);  (* make the mo┆
0x0632a0…0632c0            76 65 20 2a 29 0d 0a 20 20 20 20 69 66 20 73 77 73 75 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67   ┆ve *)      if swsu then      beg┆
0x0632c0…0632e0            69 6e 0d 0a 20 20 20 20 20 20 69 66 20 73 77 65 63 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20   ┆in        if swec then          ┆
0x0632e0…063300            77 72 69 74 65 28 27 20 20 20 27 2c 62 6f 61 72 64 2e 72 62 74 69 3a 30 2c 27 2e 20 20 27 2c 62   ┆write('   ',board.rbti:0,'.  ',b┆
0x063300…063320            20 65 6e 67 6c 69 73 68 20 2a 29 0d 0a 20 20 20 20 77 72 69 74 65 28 6d 6f 76 6d 73 29 3b 09 09   ┆ english *)      write(movms);  ┆
0x063320…063340            28 2a 20 74 65 6c 6c 20 74 68 65 20 70 6c 61 79 65 72 20 2a 29 0d 0a 20 20 20 20 66 6f 72 20 69   ┆(* tell the player *)      for i┆
0x063340…063360            6e 74 69 3a 3d 31 20 74 6f 20 37 20 64 6f 20 77 72 69 74 65 28 63 68 72 28 37 29 29 3b 0d 0a 20   ┆nti:=1 to 7 do write(chr(7));   ┆
0x063360…063380            20 20 20 69 66 20 73 77 65 63 20 74 68 65 6e 20 77 72 69 74 65 28 6d 6f 76 6d 73 29 3b 0d 0a 20   ┆   if swec then write(movms);   ┆
0x063380…0633a0            0d 0a 20 20 20 20 20 20 65 6c 73 65 20 77 72 69 74 65 6c 6e 28 27 20 44 52 41 57 4e 2e 27 29 3b   ┆        else writeln(' DRAWN.');┆
0x0633a0…0633c0            09 09 09 20 20 20 20 28 2a 20 73 74 61 6c 65 6d 61 74 65 20 2a 29 0d 0a 20 20 65 6e 64 20 65 6c   ┆       (* stalemate *)    end el┆
0x0633c0…0633e0            73 65 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 6d 69 6e 65 6e 67 28 69 6e 72 6d 2c 27 20 20   ┆se    begin      mineng(inrm,'  ┆
0x0633e0…063400            4d 59 20 4d 4f 56 45 20 27 29 3b 09 28 2a 20 74 72 61 6e 73 6c 61 74 65 20 6d 6f 76 65 20 74 6f   ┆MY MOVE '); (* translate move to┆
0x063400…063420 (24, 1, 6) 72 6d 2e 72 6d 69 6c 20 74 68 65 6e 0d 0a 20 20 62 65 67 69 6e 09 09 09 09 28 2a 20 6e 6f 20 6d   ┆rm.rmil then    begin    (* no m┆
0x063420…063440            6f 76 65 20 66 6f 75 6e 64 20 2a 29 0d 0a 20 20 20 20 67 6f 69 6e 67 3a 3d 30 3b 0d 0a 20 20 20   ┆ove found *)      going:=0;     ┆
0x063440…063460            20 69 66 20 6c 73 74 6d 76 2e 72 6d 63 68 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 27 20 43 4f   ┆ if lstmv.rmch then writeln(' CO┆
0x063460…063480            4e 47 52 41 54 55 4c 41 54 49 4f 4e 53 2e 27 29 20 28 2a 20 63 68 65 63 6b 6d 61 74 65 20 2a 29   ┆NGRATULATIONS.') (* checkmate *)┆
0x063480…0634a0            69 6e 74 69 20 3a 20 74 69 3b 0d 0a 20 20 69 6e 72 6d 20 3a 20 72 6d 3b 0d 0a 62 65 67 69 6e 0d   ┆inti : ti;    inrm : rm;  begin ┆
0x0634a0…0634c0            0a 20 20 63 72 65 61 74 65 3b 09 09 09 28 2a 20 69 6e 69 74 61 6c 69 7a 65 20 64 61 74 61 20 62   ┆   create;   (* initalize data b┆
0x0634c0…0634e0            61 73 65 20 2a 29 0d 0a 20 20 69 6e 72 6d 3a 3d 6d 6f 76 65 73 5b 73 65 61 72 63 68 5d 3b 09 28   ┆ase *)    inrm:=movesÆsearchÅ; (┆
0x0634e0…063500            2a 20 66 69 6e 64 20 74 68 65 20 62 65 73 74 20 6d 6f 76 65 20 2a 29 0d 0a 20 20 69 66 20 69 6e   ┆* find the best move *)    if in┆
0x063500…063520            0d 0a 20 20 20 20 69 66 20 73 77 65 63 20 74 68 65 6e 20 77 72 69 74 65 28 6d 6f 76 6d 73 29 3b   ┆      if swec then write(movms);┆
0x063520…063540            0d 0a 20 20 20 20 74 68 65 6d 6f 76 28 69 6e 72 6d 29 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 39 39 3a   ┆      themov(inrm);    end;  99:┆
0x063540…063560            20 20 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70 72 6f 63 65 64 75 72 65 20 6d 79 6d 6f 76 65 3b 09 09 28   ┆    end;    procedure mymove;  (┆
0x063560…063580            2a 20 6d 61 6b 65 20 6d 61 63 68 69 6e 65 73 20 6d 6f 76 65 20 2a 29 0d 0a 76 61 72 0d 0a 20 20   ┆* make machines move *)  var    ┆
0x063580…0635a0            72 3b 0d 0a 20 20 20 20 69 66 20 63 6f 6d 20 3e 20 30 20 74 68 65 6e 20 67 6f 74 6f 20 39 39 3b   ┆r;      if com > 0 then goto 99;┆
0x0635a0…0635c0            0d 0a 20 20 75 6e 74 69 6c 20 79 72 6d 28 69 6e 72 6d 29 3b 0d 0a 20 20 69 66 20 6a 66 6d 76 20   ┆    until yrm(inrm);    if jfmv ┆
0x0635c0…0635e0            74 68 65 6e 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 6d 69 6e 65 6e 67 28 69 6e 72 6d 2c 27   ┆then    begin      mineng(inrm,'┆
0x0635e0…063600            59 4f 55 52 20 4d 4f 56 45 20 27 29 3b 0d 0a 20 20 20 20 77 72 69 74 65 28 6d 6f 76 6d 73 29 3b   ┆YOUR MOVE ');      write(movms);┆
0x063600…063620            69 74 20 2a 29 0d 0a 20 20 79 72 6d 3a 3d 69 6e 74 62 3b 0d 0a 65 6e 64 3b 0d 0a 0d 0a 70 72 6f   ┆it *)    yrm:=intb;  end;    pro┆
0x063620…063640            63 65 64 75 72 65 20 79 72 6d 6f 76 65 3b 0d 0a 6c 61 62 65 6c 20 39 39 3b 0d 0a 76 61 72 20 69   ┆cedure yrmove;  label 99;  var i┆
0x063640…063660            6e 72 6d 20 3a 20 72 6d 3b 0d 0a 62 65 67 69 6e 0d 0a 20 20 6a 66 6d 76 3a 3d 66 61 6c 73 65 3b   ┆nrm : rm;  begin    jfmv:=false;┆
0x063660…063680            0d 0a 20 20 6c 73 74 6d 6f 76 3b 0d 0a 20 20 72 65 70 65 61 74 0d 0a 20 20 20 20 72 65 61 64 65   ┆    lstmov;    repeat      reade┆
0x063680…0636a0            6a 66 6d 76 3a 3d 74 72 75 65 0d 0a 20 20 20 20 65 6e 64 20 65 6c 73 65 20 77 72 69 74 65 6c 6e   ┆jfmv:=true      end else writeln┆
0x0636a0…0636c0            28 27 20 49 4c 4c 45 47 41 4c 20 4d 4f 56 45 2e 27 29 3b 0d 0a 20 20 67 6f 74 6f 20 31 38 3b 0d   ┆(' ILLEGAL MOVE.');    goto 18; ┆
0x0636c0…0636e0            0a 31 36 3a 09 28 2a 20 73 79 6e 74 61 78 20 65 72 72 6f 72 20 2a 29 0d 0a 20 20 77 72 69 74 65   ┆ 16: (* syntax error *)    write┆
0x0636e0…063700            6c 6e 28 27 20 53 59 4e 54 41 58 20 45 52 52 4f 52 2e 27 29 3b 0d 0a 31 38 3a 09 28 2a 20 65 78   ┆ln(' SYNTAX ERROR.');  18: (* ex┆
0x063700…063720            20 20 20 20 20 20 20 20 20 20 20 20 20 79 72 6d 63 6f 6d 3b 0d 0a 20 20 20 20 20 20 69 6e 74 77   ┆             yrmcom;        intw┆
0x063720…063740            3a 3d 69 6e 74 77 2b 31 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 69 66 20 6e 6f 74 20 65 72   ┆:=intw+1;      end;    if not er┆
0x063740…063760            72 6f 72 20 74 68 65 6e 0d 0a 20 20 20 20 69 66 20 69 66 6d 76 20 74 68 65 6e 0d 0a 20 20 20 20   ┆ror then      if ifmv then      ┆
0x063760…063780            62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 6e 74 62 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 20 20   ┆begin        intb:=true;        ┆
0x063780…0637a0            65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 72 6d 6f 6f 20 74 68 65 6e 0d 0a 20 20   ┆en              if rmoo then    ┆
0x0637a0…0637c0            20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 72 6d 71 73 20 3d 20 69 66 71 73 20 74 68 65 6e 0d   ┆            if rmqs = ifqs then ┆
0x0637c0…0637e0            0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 79 72 6d 68 69 74 0d 0a 20 20 20 20 20 20 20   ┆                 yrmhit         ┆
0x0637e0…063800            20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20   ┆       else              else   ┆
0x063800…063820 (24, 1, 7) 20 20 20 20 20 20 69 66 20 72 6d 70 72 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 69 66   ┆      if rmpr then            if┆
0x063820…063840            20 72 6d 70 70 20 3d 20 69 6e 74 67 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 79   ┆ rmpp = intg then              y┆
0x063840…063860            72 6d 63 6f 6d 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 65   ┆rmcom            else          e┆
0x063860…063880            6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 72 6d 6f 6f 20 3d 20 69 66 6f 6f 20 74 68   ┆lse            if rmoo = ifoo th┆
0x063880…0638a0            3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 69 6e 74 77 3a 3d 61 77 3b 0d 0a 20 20 77 68 69 6c 65 20 28   ┆:=false;    intw:=aw;    while (┆
0x0638a0…0638c0            69 6e 74 77 20 3c 20 6a 6e 74 77 29 20 61 6e 64 20 6e 6f 74 20 65 72 72 6f 72 20 64 6f 0d 0a 20   ┆intw < jntw) and not error do   ┆
0x0638c0…0638e0            20 20 20 77 69 74 68 20 6d 6f 76 65 73 5b 69 6e 74 77 5d 20 64 6f 0d 0a 20 20 20 20 62 65 67 69   ┆   with movesÆintwÅ do      begi┆
0x0638e0…063900            6e 0d 0a 20 20 20 20 20 20 69 66 20 72 6d 70 72 20 3d 20 69 66 70 72 20 74 68 65 6e 0d 0a 20 20   ┆n        if rmpr = ifpr then    ┆
0x063900…063920            2a 29 0d 0a 20 20 65 78 69 74 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 69 66 20 69 66 72 66 20 61 6e   ┆*)    exit:=false;    if ifrf an┆
0x063920…063940            64 20 6e 6f 74 20 69 66 72 64 20 74 68 65 6e 20 69 6e 72 66 3a 3d 69 6e 72 66 20 2a 20 5b 66 34   ┆d not ifrd then inrf:=inrf * Æf4┆
0x063940…063960            2c 66 35 5d 3b 0d 0a 20 20 69 66 20 69 66 6c 66 20 61 6e 64 20 6e 6f 74 20 69 66 6c 64 20 74 68   ┆,f5Å;    if iflf and not ifld th┆
0x063960…063980            65 6e 20 69 6e 6c 66 3a 3d 69 6e 6c 66 20 2a 20 5b 66 34 2c 66 35 5d 3b 0d 0a 20 20 69 66 6d 76   ┆en inlf:=inlf * Æf4,f5Å;    ifmv┆
0x063980…0639a0            20 32 29 20 74 68 65 6e 20 67 6f 74 6f 20 31 36 3b 0d 0a 20 20 69 66 09 20 6e 63 68 69 6e 28 5b   ┆ 2) then goto 16;    if  nchin(Æ┆
0x0639a0…0639c0            27 2d 27 5d 09 09 09 20 20 2c 20 34 29 20 74 68 65 6e 20 67 6f 74 6f 20 31 35 3b 0d 0a 20 20 69   ┆'-'Å     , 4) then goto 15;    i┆
0x0639c0…0639e0            66 09 20 6e 63 68 69 6e 28 5b 27 30 27 2c 27 4f 27 5d 09 09 20 20 2c 20 38 29 20 74 68 65 6e 20   ┆f  nchin(Æ'0','O'Å    , 8) then ┆
0x0639e0…063a00            67 6f 74 6f 20 31 36 3b 0d 0a 31 35 3a 09 28 2a 20 73 79 6e 74 61 78 20 63 6f 72 72 65 63 74 20   ┆goto 16;  15: (* syntax correct ┆
0x063a00…063a20            2a 20 63 61 73 74 6c 69 6e 67 20 2a 29 0d 0a 20 20 69 66 09 20 6e 63 68 69 6e 28 5b 27 30 27 2c   ┆* castling *)    if  nchin(Æ'0',┆
0x063a20…063a40            27 4f 27 5d 09 09 20 20 2c 20 38 29 20 74 68 65 6e 20 67 6f 74 6f 20 31 36 3b 0d 0a 20 20 69 66   ┆'O'Å    , 8) then goto 16;    if┆
0x063a40…063a60            09 20 6e 63 68 69 6e 28 5b 27 2d 27 5d 09 09 09 20 20 2c 20 38 29 20 74 68 65 6e 20 67 6f 74 6f   ┆  nchin(Æ'-'Å     , 8) then goto┆
0x063a60…063a80            20 31 36 3b 0d 0a 20 20 69 66 09 20 6e 63 68 69 6e 28 5b 27 30 27 2c 27 4f 27 5d 09 09 20 20 2c   ┆ 16;    if  nchin(Æ'0','O'Å    ,┆
0x063a80…063aa0            2a 29 0d 0a 20 20 69 66 09 20 6e 63 68 69 6e 28 5b 27 3d 27 5d 09 09 09 20 20 2c 20 38 29 20 74   ┆*)    if  nchin(Æ'='Å     , 8) t┆
0x063aa0…063ac0            68 65 6e 20 67 6f 74 6f 20 31 35 3b 0d 0a 20 20 69 66 09 20 6e 63 68 69 6e 28 5b 27 52 27 2c 27   ┆hen goto 15;    if  nchin(Æ'R','┆
0x063ac0…063ae0            4e 27 2c 27 42 27 2c 27 51 27 5d 09 20 20 2c 31 30 29 20 74 68 65 6e 20 67 6f 74 6f 20 31 36 3b   ┆N','B','Q'Å   ,10) then goto 16;┆
0x063ae0…063b00            0d 0a 20 20 69 66 20 65 78 69 74 20 74 68 65 6e 20 67 6f 74 6f 20 31 35 3b 0d 0a 31 34 3a 09 28   ┆    if exit then goto 15;  14: (┆
0x063b00…063b20            6e 20 3b 0d 0a 20 20 69 66 09 20 6e 63 68 69 6e 28 5b 27 52 27 2c 27 4e 27 2c 27 42 27 5d 09 09   ┆n ;    if  nchin(Æ'R','N','B'Å  ┆
0x063b20…063b40            20 20 2c 31 32 29 20 74 68 65 6e 20 3b 0d 0a 20 20 69 66 09 20 6e 63 68 69 6e 28 5b 27 31 27 2e   ┆  ,12) then ;    if  nchin(Æ'1'.┆
0x063b40…063b60            2e 27 38 27 5d 09 09 20 20 2c 31 33 29 20 74 68 65 6e 20 3b 0d 0a 20 20 69 66 20 65 78 69 74 20   ┆.'8'Å    ,13) then ;    if exit ┆
0x063b60…063b80            74 68 65 6e 20 67 6f 74 6f 20 31 35 3b 0d 0a 31 33 3a 09 28 2a 20 70 72 6f 6d 6f 74 69 6f 6e 20   ┆then goto 15;  13: (* promotion ┆
0x063b80…063ba0            5d 09 20 20 2c 20 33 29 20 74 68 65 6e 20 67 6f 74 6f 20 31 36 3b 0d 0a 20 20 69 66 09 20 6e 63   ┆Å   , 3) then goto 16;    if  nc┆
0x063ba0…063bc0            68 69 6e 28 5b 27 2f 27 5d 09 09 09 20 20 2c 20 38 29 20 74 68 65 6e 20 67 6f 74 6f 20 31 33 3b   ┆hin(Æ'/'Å     , 8) then goto 13;┆
0x063bc0…063be0            0d 0a 31 32 3a 09 28 2a 20 72 69 67 68 74 20 73 69 64 65 20 73 71 75 61 72 65 20 2a 29 0d 0a 20   ┆  12: (* right side square *)   ┆
0x063be0…063c00            20 69 66 09 20 6e 63 68 69 6e 28 5b 27 4b 27 2c 27 51 27 5d 09 09 20 20 2c 31 31 29 20 74 68 65   ┆ if  nchin(Æ'K','Q'Å    ,11) the┆
0x063c00…063c20 (24, 1, 8) 65 20 2a 29 0d 0a 20 20 69 66 20 6e 6f 74 20 6e 63 68 69 6e 28 5b 27 2d 27 5d 09 09 09 20 20 2c   ┆e *)    if not nchin(Æ'-'Å     ,┆
0x063c20…063c40            20 38 29 20 74 68 65 6e 20 67 6f 74 6f 20 31 32 3b 0d 0a 20 20 69 66 09 20 6e 63 68 69 6e 28 5b   ┆ 8) then goto 12;    if  nchin(Æ┆
0x063c40…063c60            27 2a 27 2c 27 58 27 5d 09 09 20 20 2c 20 31 29 20 74 68 65 6e 20 67 6f 74 6f 20 31 36 3b 0d 0a   ┆'*','X'Å    , 1) then goto 16;  ┆
0x063c60…063c80            20 20 69 66 09 20 6e 63 68 69 6e 28 5b 27 50 27 2c 27 52 27 2c 27 4e 27 2c 27 42 27 2c 27 51 27   ┆  if  nchin(Æ'P','R','N','B','Q'┆
0x063c80…063ca0            0d 0a 20 20 69 66 09 20 6e 63 68 69 6e 28 5b 27 52 27 2c 27 4e 27 2c 27 42 27 5d 09 09 20 20 2c   ┆    if  nchin(Æ'R','N','B'Å    ,┆
0x063ca0…063cc0            20 36 29 20 74 68 65 6e 20 3b 0d 0a 20 20 69 66 09 20 6e 63 68 69 6e 28 5b 27 31 27 2e 2e 27 38   ┆ 6) then ;    if  nchin(Æ'1'..'8┆
0x063cc0…063ce0            27 5d 09 09 20 20 2c 20 37 29 20 74 68 65 6e 20 3b 0d 0a 20 20 69 66 20 65 78 69 74 20 74 68 65   ┆'Å    , 7) then ;    if exit the┆
0x063ce0…063d00            6e 20 67 6f 74 6f 20 31 35 3b 0d 0a 31 31 3a 09 28 2a 20 6c 65 66 74 20 73 69 64 65 20 64 6f 6e   ┆n goto 15;  11: (* left side don┆
0x063d00…063d20            27 50 27 2c 27 52 27 2c 27 4e 27 2c 27 42 27 2c 27 51 27 2c 27 4b 27 5d 2c 20 39 29 20 74 68 65   ┆'P','R','N','B','Q','K'Å, 9) the┆
0x063d20…063d40            6e 20 67 6f 74 6f 20 31 34 3b 0d 0a 20 20 69 66 20 20 20 20 20 6e 63 68 69 6e 28 5b 27 2f 27 5d   ┆n goto 14;    if     nchin(Æ'/'Å┆
0x063d40…063d60            09 09 09 20 20 2c 20 38 29 20 74 68 65 6e 20 67 6f 74 6f 20 31 31 3b 0d 0a 20 20 69 66 20 20 20   ┆     , 8) then goto 11;    if   ┆
0x063d60…063d80            20 20 6e 63 68 69 6e 28 5b 27 4b 27 2c 27 51 27 5d 09 09 20 20 2c 20 35 29 20 74 68 65 6e 20 3b   ┆  nchin(Æ'K','Q'Å    , 5) then ;┆
0x063d80…063da0            2e 27 48 27 5d 09 09 20 20 2c 31 36 29 20 74 68 65 6e 20 67 6f 74 6f 20 31 36 3b 0d 0a 20 20 20   ┆.'H'Å    ,16) then goto 16;     ┆
0x063da0…063dc0            20 69 66 20 6e 6f 74 20 6e 63 68 69 6e 28 5b 27 31 27 2e 2e 27 38 27 5d 09 09 20 20 2c 31 37 29   ┆ if not nchin(Æ'1'..'8'Å    ,17)┆
0x063dc0…063de0            20 74 68 65 6e 20 67 6f 74 6f 20 31 35 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 31 30 3a 09 28 2a 20 6e   ┆ then goto 15;    end;  10: (* n┆
0x063de0…063e00            6f 74 20 73 74 61 6e 64 61 72 64 20 2a 29 0d 0a 20 20 69 66 20 20 20 20 20 6e 63 68 69 6e 28 5b   ┆ot standard *)    if     nchin(Æ┆
0x063e00…063e20            20 38 29 20 74 68 65 6e 20 67 6f 74 6f 20 20 39 3b 0d 0a 20 20 20 20 69 66 20 20 20 20 20 6e 63   ┆ 8) then goto  9;      if     nc┆
0x063e20…063e40            68 69 6e 28 5b 27 2a 27 2c 27 58 27 5d 09 09 20 20 2c 31 38 29 20 74 68 65 6e 20 67 6f 74 6f 20   ┆hin(Æ'*','X'Å    ,18) then goto ┆
0x063e40…063e60            31 36 3b 0d 0a 20 20 20 39 3a 09 28 2a 20 73 74 61 6e 64 61 72 64 20 73 79 6e 74 61 78 20 66 72   ┆16;     9: (* standard syntax fr┆
0x063e60…063e80            6f 6d 20 6f 6b 20 2a 29 0d 0a 20 20 20 20 69 66 20 20 20 20 20 6e 63 68 69 6e 28 5b 27 41 27 2e   ┆om ok *)      if     nchin(Æ'A'.┆
0x063e80…063ea0            0a 20 20 20 20 69 66 20 20 20 20 20 6e 63 68 69 6e 28 5b 27 41 27 2e 2e 27 48 27 5d 09 09 20 20   ┆     if     nchin(Æ'A'..'H'Å    ┆
0x063ea0…063ec0            2c 31 34 29 20 74 68 65 6e 20 67 6f 74 6f 20 31 30 3b 0d 0a 20 20 20 20 69 66 09 20 6e 63 68 69   ┆,14) then goto 10;      if  nchi┆
0x063ec0…063ee0            6e 28 5b 27 31 27 2e 2e 27 38 27 5d 09 09 20 20 2c 31 35 29 20 74 68 65 6e 20 67 6f 74 6f 20 31   ┆n(Æ'1'..'8'Å    ,15) then goto 1┆
0x063ee0…063f00            36 3b 0d 0a 20 20 20 20 69 66 20 6e 6f 74 20 6e 63 68 69 6e 28 5b 27 2d 27 5d 09 09 09 20 20 2c   ┆6;      if not nchin(Æ'-'Å     ,┆
0x063f00…063f20            2e 72 38 5d 3b 0d 0a 20 20 69 6e 72 72 3a 3d 5b 72 31 2e 2e 72 38 5d 3b 0d 0a 20 20 65 78 69 74   ┆.r8Å;    inrr:=Ær1..r8Å;    exit┆
0x063f20…063f40            3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 65 72 72 6f 72 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 69 6e 74   ┆:=false;    error:=false;    int┆
0x063f40…063f60            63 3a 3d 69 6c 69 6e 65 5b 6a 6e 74 6a 5d 3b 0d 0a 20 20 69 66 20 69 6c 69 6e 65 5b 6a 6e 74 6a   ┆c:=ilineÆjntjÅ;    if ilineÆjntj┆
0x063f60…063f80            2b 31 5d 20 69 6e 20 5b 27 31 27 2e 2e 27 38 27 5d 20 74 68 65 6e 0d 0a 20 20 62 65 67 69 6e 0d   ┆+1Å in Æ'1'..'8'Å then    begin ┆
0x063f80…063fa0            65 3b 0d 0a 20 20 69 66 6c 66 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 69 66 72 64 3a 3d 66 61 6c 73   ┆e;    iflf:=false;    ifrd:=fals┆
0x063fa0…063fc0            65 3b 0d 0a 20 20 69 66 72 66 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 69 6e 74 70 3a 3d 6d 74 3b 0d   ┆e;    ifrf:=false;    intp:=mt; ┆
0x063fc0…063fe0            0a 20 20 69 6e 63 70 3a 3d 6d 74 3b 0d 0a 20 20 69 6e 6c 66 3a 3d 5b 66 31 2e 2e 66 38 5d 3b 0d   ┆   incp:=mt;    inlf:=Æf1..f8Å; ┆
0x063fe0…064000            0a 20 20 69 6e 72 66 3a 3d 5b 66 31 2e 2e 66 38 5d 3b 0d 0a 20 20 69 6e 6c 72 3a 3d 5b 72 31 2e   ┆   inrf:=Æf1..f8Å;    inlr:=Ær1.┆
0x064000…064020 (25, 0, 1) 20 20 20 20 20 20 20 65 6c 73 65 20 79 72 6d 68 69 74 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 62 65 67   ┆       else yrmhit;    end;  beg┆
0x064020…064040            69 6e 0d 0a 20 20 69 6e 74 62 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 69 66 63 61 3a 3d 66 61 6c 73   ┆in    intb:=false;    ifca:=fals┆
0x064040…064060            65 3b 0d 0a 20 20 69 66 70 72 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 69 66 6f 6f 3a 3d 66 61 6c 73   ┆e;    ifpr:=false;    ifoo:=fals┆
0x064060…064080            65 3b 0d 0a 20 20 69 66 71 73 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 69 66 6c 64 3a 3d 66 61 6c 73   ┆e;    ifqs:=false;    ifld:=fals┆
0x064080…0640a0            20 20 20 20 20 20 20 69 66 20 72 6d 63 61 20 3d 20 69 66 63 61 20 74 68 65 6e 0d 0a 20 20 20 20   ┆       if rmca = ifca then      ┆
0x0640a0…0640c0            20 20 20 20 20 20 69 66 20 72 6d 63 61 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   ┆      if rmca then              ┆
0x0640c0…0640e0            69 66 20 72 6d 63 70 20 3d 20 69 6e 63 70 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20   ┆if rmcp = incp then             ┆
0x0640e0…064100            20 20 20 79 72 6d 68 69 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 20 20   ┆   yrmhit              else     ┆
0x064100…064120            0a 20 20 20 20 20 20 20 20 20 28 78 74 73 72 5b 72 6d 74 6f 5d 20 69 6e 20 69 6e 72 72 29 20 61   ┆          (xtsrÆrmtoÅ in inrr) a┆
0x064120…064140            6e 64 0d 0a 20 20 20 20 20 20 20 20 20 28 78 74 73 66 5b 72 6d 74 6f 5d 20 69 6e 20 69 6e 72 66   ┆nd           (xtsfÆrmtoÅ in inrf┆
0x064140…064160            29 20 61 6e 64 0d 0a 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 72 6d 69 6c 29 20 61 6e 64 20 28   ┆) and           (not rmil) and (┆
0x064160…064180            62 6f 61 72 64 2e 72 62 69 73 5b 72 6d 66 72 5d 20 3d 20 69 6e 74 70 29 20 74 68 65 6e 0d 0a 20   ┆board.rbisÆrmfrÅ = intp) then   ┆
0x064180…0641a0            3b 09 28 2a 20 63 6f 6d 70 61 72 65 20 73 71 75 61 72 65 73 20 2a 29 0d 0a 20 20 62 65 67 69 6e   ┆; (* compare squares *)    begin┆
0x0641a0…0641c0            0d 0a 20 20 20 20 77 69 74 68 20 6d 6f 76 65 73 5b 69 6e 74 77 5d 20 64 6f 0d 0a 20 20 20 20 20   ┆      with movesÆintwÅ do       ┆
0x0641c0…0641e0            20 69 66 20 28 78 74 73 72 5b 72 6d 66 72 5d 20 69 6e 20 69 6e 6c 72 29 20 61 6e 64 0d 0a 20 20   ┆ if (xtsrÆrmfrÅ in inlr) and    ┆
0x0641e0…064200            20 20 20 20 20 20 20 28 78 74 73 66 5b 72 6d 66 72 5d 20 69 6e 20 69 6e 6c 66 29 20 61 6e 64 0d   ┆       (xtsfÆrmfrÅ in inlf) and ┆
0x064200…064220            27 20 41 4d 42 49 47 55 4f 55 53 20 4d 4f 56 45 2e 27 29 3b 0d 0a 20 20 20 20 65 6e 64 20 65 6c   ┆' AMBIGUOUS MOVE.');      end el┆
0x064220…064240            73 65 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 66 6d 76 3a 3d 74 72 75 65 3b   ┆se      begin        ifmv:=true;┆
0x064240…064260            0d 0a 20 20 20 20 20 20 69 6e 72 6d 3a 3d 6d 6f 76 65 73 5b 69 6e 74 77 5d 3b 0d 0a 20 20 20 20   ┆        inrm:=movesÆintwÅ;      ┆
0x064260…064280            65 6e 64 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 79 72 6d 63 6f 6d   ┆end;    end;    procedure yrmcom┆
0x064280…0642a0            74 3b 09 28 2a 20 66 6f 75 6e 64 20 61 20 6d 6f 76 65 20 2a 29 0d 0a 20 20 62 65 67 69 6e 0d 0a   ┆t; (* found a move *)    begin  ┆
0x0642a0…0642c0            20 20 20 20 69 66 20 69 66 6d 76 20 74 68 65 6e 09 28 2a 20 73 65 63 6f 6e 64 20 70 6f 73 73 69   ┆    if ifmv then (* second possi┆
0x0642c0…0642e0            62 6c 65 20 6d 6f 76 65 20 66 6f 75 6e 64 20 2a 29 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20   ┆ble move found *)      begin    ┆
0x0642e0…064300            20 20 20 20 65 72 72 6f 72 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 28   ┆    error:=true;        writeln(┆
0x064300…064320            6e 74 63 3a 3d 69 6c 69 6e 65 5b 6a 6e 74 6a 5d 3b 0d 0a 20 20 20 20 20 20 69 66 20 28 69 6e 74   ┆ntc:=ilineÆjntjÅ;        if (int┆
0x064320…064340            63 20 3d 20 27 2e 27 29 20 6f 72 20 28 69 6e 74 63 20 3d 20 27 3b 27 29 20 74 68 65 6e 20 65 78   ┆c = '.') or (intc = ';') then ex┆
0x064340…064360            69 74 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 6e 63 68 69 6e 3a 3d   ┆it:=true;      end;      nchin:=┆
0x064360…064380            69 6e 74 62 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 79 72 6d 68 69   ┆intb;    end;    procedure yrmhi┆
0x064380…0643a0            20 20 20 20 20 31 38 3a 20 69 66 63 61 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b   ┆     18: ifca:=true;        end;┆
0x0643a0…0643c0            0d 0a 20 20 20 20 20 20 6a 6e 74 6a 3a 3d 6a 6e 74 6a 2b 31 3b 0d 0a 20 20 20 20 20 20 77 68 69   ┆        jntj:=jntj+1;        whi┆
0x0643c0…0643e0            6c 65 20 28 6a 6e 74 6a 20 3c 20 7a 6a 29 20 61 6e 64 20 28 69 6c 69 6e 65 5b 6a 6e 74 6a 5d 20   ┆le (jntj < zj) and (ilineÆjntjÅ ┆
0x0643e0…064400            3d 20 27 20 27 29 20 64 6f 20 6a 6e 74 6a 3a 3d 6a 6e 74 6a 2b 31 3b 0d 0a 20 20 20 20 20 20 69   ┆= ' ') do jntj:=jntj+1;        i┆
0x064400…064420 (25, 0, 2) 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20   ┆;              end;             ┆
0x064420…064440            20 69 6e 63 70 3a 3d 62 6f 61 72 64 2e 72 62 69 73 5b 78 74 72 66 73 5b 69 6e 74 72 2c 69 6e 74   ┆ incp:=board.rbisÆxtrfsÆintr,int┆
0x064440…064460            66 5d 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 72 66 3a 3d 5b 69 6e 74 66 5d 3b 20   ┆fÅÅ;              inrf:=ÆintfÅ; ┆
0x064460…064480            69 6e 72 72 3a 3d 5b 69 6e 74 72 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20   ┆inrr:=ÆintrÅ;            end;   ┆
0x064480…0644a0            34 27 3a 20 69 6e 74 72 3a 3d 72 34 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 35 27 3a   ┆4': intr:=r4;               '5':┆
0x0644a0…0644c0            20 69 6e 74 72 3a 3d 72 35 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 36 27 3a 20 69 6e   ┆ intr:=r5;               '6': in┆
0x0644c0…0644e0            74 72 3a 3d 72 36 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 37 27 3a 20 69 6e 74 72 3a   ┆tr:=r6;               '7': intr:┆
0x0644e0…064500            3d 72 37 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 38 27 3a 20 69 6e 74 72 3a 3d 72 38   ┆=r7;               '8': intr:=r8┆
0x064500…064520            0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 69 6e 74 63 20 6f 66 0d 0a 20 20 20 20 20   ┆             case intc of       ┆
0x064520…064540            20 20 20 20 20 20 20 20 27 31 27 3a 20 69 6e 74 72 3a 3d 72 31 3b 0d 0a 20 20 20 20 20 20 20 20   ┆        '1': intr:=r1;          ┆
0x064540…064560            20 20 20 20 20 27 32 27 3a 20 69 6e 74 72 3a 3d 72 32 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20   ┆     '2': intr:=r2;             ┆
0x064560…064580            20 20 27 33 27 3a 20 69 6e 74 72 3a 3d 72 33 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27   ┆  '3': intr:=r3;               '┆
0x064580…0645a0            45 27 3a 20 69 6e 74 66 3a 3d 66 35 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 27 46 27 3a 20 69   ┆E': intf:=f5;             'F': i┆
0x0645a0…0645c0            6e 74 66 3a 3d 66 36 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 27 47 27 3a 20 69 6e 74 66 3a 3d   ┆ntf:=f6;             'G': intf:=┆
0x0645c0…0645e0            66 37 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 27 48 27 3a 20 69 6e 74 66 3a 3d 66 38 3b 0d 0a   ┆f7;             'H': intf:=f8;  ┆
0x0645e0…064600            20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 31 37 3a 20 62 65 67 69 6e 0d   ┆          end;        17: begin ┆
0x064600…064620            6e 74 63 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 20 20 20 27 41 27 3a 20 69 6e 74 66 3a 3d 66 31   ┆ntc of             'A': intf:=f1┆
0x064620…064640            3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 27 42 27 3a 20 69 6e 74 66 3a 3d 66 32 3b 0d 0a 20 20   ┆;             'B': intf:=f2;    ┆
0x064640…064660            20 20 20 20 20 20 20 20 20 27 43 27 3a 20 69 6e 74 66 3a 3d 66 33 3b 0d 0a 20 20 20 20 20 20 20   ┆         'C': intf:=f3;         ┆
0x064660…064680            20 20 20 20 27 44 27 3a 20 69 6e 74 66 3a 3d 66 34 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 27   ┆    'D': intf:=f4;             '┆
0x064680…0646a0            6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 70 3a 3d 62 6f 61 72 64 2e 72 62 69   ┆nd;              intp:=board.rbi┆
0x0646a0…0646c0            73 5b 78 74 72 66 73 5b 69 6e 74 72 2c 69 6e 74 66 5d 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆sÆxtrfsÆintr,intfÅÅ;            ┆
0x0646c0…0646e0            20 20 69 6e 6c 66 3a 3d 5b 69 6e 74 66 5d 3b 20 69 6e 6c 72 3a 3d 5b 69 6e 74 72 5d 3b 0d 0a 20   ┆  inlf:=ÆintfÅ; inlr:=ÆintrÅ;   ┆
0x0646e0…064700            20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 31 36 3a 20 63 61 73 65 20 69   ┆          end;        16: case i┆
0x064700…064720            20 20 20 20 20 20 20 20 20 20 20 20 27 35 27 3a 20 69 6e 74 72 3a 3d 72 35 3b 0d 0a 20 20 20 20   ┆            '5': intr:=r5;      ┆
0x064720…064740            20 20 20 20 20 20 20 20 20 27 36 27 3a 20 69 6e 74 72 3a 3d 72 36 3b 0d 0a 20 20 20 20 20 20 20   ┆         '6': intr:=r6;         ┆
0x064740…064760            20 20 20 20 20 20 27 37 27 3a 20 69 6e 74 72 3a 3d 72 37 3b 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆      '7': intr:=r7;            ┆
0x064760…064780            20 20 20 27 38 27 3a 20 69 6e 74 72 3a 3d 72 38 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65   ┆   '8': intr:=r8;              e┆
0x064780…0647a0            65 20 69 6e 74 63 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 31 27 3a 20 69 6e 74   ┆e intc of               '1': int┆
0x0647a0…0647c0            72 3a 3d 72 31 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 32 27 3a 20 69 6e 74 72 3a 3d   ┆r:=r1;               '2': intr:=┆
0x0647c0…0647e0            72 32 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 33 27 3a 20 69 6e 74 72 3a 3d 72 33 3b   ┆r2;               '3': intr:=r3;┆
0x0647e0…064800            0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 34 27 3a 20 69 6e 74 72 3a 3d 72 34 3b 0d 0a 20   ┆               '4': intr:=r4;   ┆
0x064800…064820 (25, 0, 3) 20 20 20 20 20 20 20 20 20 20 27 46 27 3a 20 69 6e 74 66 3a 3d 66 36 3b 0d 0a 20 20 20 20 20 20   ┆          'F': intf:=f6;        ┆
0x064820…064840            20 20 20 20 20 27 47 27 3a 20 69 6e 74 66 3a 3d 66 37 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20   ┆     'G': intf:=f7;             ┆
0x064840…064860            27 48 27 3a 20 69 6e 74 66 3a 3d 66 38 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a   ┆'H': intf:=f8;            end;  ┆
0x064860…064880            20 20 20 20 20 20 31 35 3a 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73   ┆      15: begin              cas┆
0x064880…0648a0            20 20 20 27 41 27 3a 20 69 6e 74 66 3a 3d 66 31 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 27 42   ┆   'A': intf:=f1;             'B┆
0x0648a0…0648c0            27 3a 20 69 6e 74 66 3a 3d 66 32 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 27 43 27 3a 20 69 6e   ┆': intf:=f2;             'C': in┆
0x0648c0…0648e0            74 66 3a 3d 66 33 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 27 44 27 3a 20 69 6e 74 66 3a 3d 66   ┆tf:=f3;             'D': intf:=f┆
0x0648e0…064900            34 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 27 45 27 3a 20 69 6e 74 66 3a 3d 66 35 3b 0d 0a 20   ┆4;             'E': intf:=f5;   ┆
0x064900…064920            27 3a 20 69 6e 72 72 3a 3d 5b 72 33 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 37 27   ┆': inrr:=Ær3Å;               '7'┆
0x064920…064940            3a 20 69 6e 72 72 3a 3d 5b 72 32 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 38 27 3a   ┆: inrr:=Ær2Å;               '8':┆
0x064940…064960            20 69 6e 72 72 3a 3d 5b 72 31 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a   ┆ inrr:=Ær1Å;              end;  ┆
0x064960…064980            20 20 20 20 20 20 31 34 3a 20 63 61 73 65 20 69 6e 74 63 20 6f 66 0d 0a 20 20 20 20 20 20 20 20   ┆      14: case intc of          ┆
0x064980…0649a0            20 20 27 32 27 3a 20 69 6e 72 72 3a 3d 5b 72 37 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   ┆  '2': inrr:=Ær7Å;              ┆
0x0649a0…0649c0            20 27 33 27 3a 20 69 6e 72 72 3a 3d 5b 72 36 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ '3': inrr:=Ær6Å;               ┆
0x0649c0…0649e0            27 34 27 3a 20 69 6e 72 72 3a 3d 5b 72 35 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27   ┆'4': inrr:=Ær5Å;               '┆
0x0649e0…064a00            35 27 3a 20 69 6e 72 72 3a 3d 5b 72 34 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 36   ┆5': inrr:=Ær4Å;               '6┆
0x064a00…064a20            20 20 20 20 20 20 20 20 20 27 38 27 3a 20 69 6e 72 72 3a 3d 5b 72 38 5d 3b 0d 0a 20 20 20 20 20   ┆         '8': inrr:=Ær8Å;       ┆
0x064a20…064a40            20 20 20 20 20 20 20 65 6e 64 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20   ┆       end            else      ┆
0x064a40…064a60            20 20 20 20 20 20 20 20 63 61 73 65 20 69 6e 74 63 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆        case intc of            ┆
0x064a60…064a80            20 20 20 27 31 27 3a 20 69 6e 72 72 3a 3d 5b 72 38 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20   ┆   '1': inrr:=Ær8Å;             ┆
0x064a80…064aa0            20 20 20 20 20 20 20 20 20 20 20 20 20 27 34 27 3a 20 69 6e 72 72 3a 3d 5b 72 34 5d 3b 0d 0a 20   ┆             '4': inrr:=Ær4Å;   ┆
0x064aa0…064ac0            20 20 20 20 20 20 20 20 20 20 20 20 27 35 27 3a 20 69 6e 72 72 3a 3d 5b 72 35 5d 3b 0d 0a 20 20   ┆            '5': inrr:=Ær5Å;    ┆
0x064ac0…064ae0            20 20 20 20 20 20 20 20 20 20 20 27 36 27 3a 20 69 6e 72 72 3a 3d 5b 72 36 5d 3b 0d 0a 20 20 20   ┆           '6': inrr:=Ær6Å;     ┆
0x064ae0…064b00            20 20 20 20 20 20 20 20 20 20 27 37 27 3a 20 69 6e 72 72 3a 3d 5b 72 37 5d 3b 0d 0a 20 20 20 20   ┆          '7': inrr:=Ær7Å;      ┆
0x064b00…064b20            69 67 74 68 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 69 6e 74 63 20 6f   ┆igth *)              case intc o┆
0x064b20…064b40            66 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 31 27 3a 20 69 6e 72 72 3a 3d 5b 72 31 5d 3b   ┆f               '1': inrr:=Ær1Å;┆
0x064b40…064b60            0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 32 27 3a 20 69 6e 72 72 3a 3d 5b 72 32 5d 3b 0d   ┆               '2': inrr:=Ær2Å; ┆
0x064b60…064b80            0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 33 27 3a 20 69 6e 72 72 3a 3d 5b 72 33 5d 3b 0d 0a   ┆              '3': inrr:=Ær3Å;  ┆
0x064b80…064ba0            36 5d 2a 69 6e 72 66 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20   ┆6Å*inrf;              end;      ┆
0x064ba0…064bc0            20 20 20 20 20 20 20 20 69 66 72 64 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65   ┆        ifrd:=true;            e┆
0x064bc0…064be0            6e 64 3b 0d 0a 20 20 20 20 20 20 31 33 3a 20 69 66 20 6a 6e 74 6d 20 3d 20 6c 69 74 65 20 74 68   ┆nd;        13: if jntm = lite th┆
0x064be0…064c00            65 6e 09 28 2a 20 79 72 6d 72 72 6b 20 73 65 6d 61 6e 74 69 63 73 20 72 61 6e 6b 20 6f 6e 20 72   ┆en (* yrmrrk semantics rank on r┆
0x064c00…064c20 (25, 0, 4) 20 20 20 20 20 20 20 63 61 73 65 20 69 6e 74 63 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 20 20 20   ┆       case intc of             ┆
0x064c20…064c40            20 20 27 52 27 3a 20 69 6e 72 66 3a 3d 5b 66 31 2c 66 38 5d 2a 69 6e 72 66 3b 0d 0a 20 20 20 20   ┆  'R': inrf:=Æf1,f8Å*inrf;      ┆
0x064c40…064c60            20 20 20 20 20 20 20 20 20 27 4e 27 3a 20 69 6e 72 66 3a 3d 5b 66 32 2c 66 37 5d 2a 69 6e 72 66   ┆         'N': inrf:=Æf2,f7Å*inrf┆
0x064c60…064c80            3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 42 27 3a 20 69 6e 72 66 3a 3d 5b 66 33 2c 66   ┆;               'B': inrf:=Æf3,f┆
0x064c80…064ca0            0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   ┆              end;              ┆
0x064ca0…064cc0            69 66 72 66 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20   ┆ifrf:=true;            end;     ┆
0x064cc0…064ce0            20 20 20 31 32 3a 20 62 65 67 69 6e 09 09 28 2a 20 79 72 6d 72 72 62 20 73 65 6d 61 6e 74 69 63   ┆   12: begin  (* yrmrrb semantic┆
0x064ce0…064d00            73 20 2d 20 52 2c 20 4e 20 6f 72 20 42 20 6f 6e 20 72 69 67 74 68 20 2a 29 0d 0a 20 20 20 20 20   ┆s - R, N or B on rigth *)       ┆
0x064d00…064d20            73 20 2d 20 4b 20 6f 72 20 51 20 6f 6e 20 72 69 67 74 68 20 2a 29 0d 0a 20 20 20 20 20 20 20 20   ┆s - K or Q on rigth *)          ┆
0x064d20…064d40            20 20 20 20 63 61 73 65 20 69 6e 74 63 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27   ┆    case intc of               '┆
0x064d40…064d60            4b 27 3a 20 69 6e 72 66 3a 3d 5b 66 35 2e 2e 66 38 5d 2a 69 6e 72 66 3b 0d 0a 20 20 20 20 20 20   ┆K': inrf:=Æf5..f8Å*inrf;        ┆
0x064d60…064d80            20 20 20 20 20 20 20 27 51 27 3a 20 69 6e 72 66 3a 3d 5b 66 31 2e 2e 66 34 5d 2a 69 6e 72 66 3b   ┆       'Q': inrf:=Æf1..f4Å*inrf;┆
0x064d80…064da0            70 62 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 51 27 3a 20 69 6e 74 67 3a 3d 70 71 3b   ┆pb;               'Q': intg:=pq;┆
0x064da0…064dc0            0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   ┆              end;              ┆
0x064dc0…064de0            69 66 70 72 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20   ┆ifpr:=true;            end;     ┆
0x064de0…064e00            20 20 20 31 31 3a 20 62 65 67 69 6e 09 09 28 2a 20 79 72 6d 72 6b 71 20 73 65 6d 61 6e 74 69 63   ┆   11: begin  (* yrmrkq semantic┆
0x064e00…064e20            69 63 73 20 2d 20 70 72 6f 6d 6f 74 69 6f 6e 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   ┆ics - promotion *)              ┆
0x064e20…064e40            63 61 73 65 20 69 6e 74 63 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 52 27 3a 20   ┆case intc of               'R': ┆
0x064e40…064e60            69 6e 74 67 3a 3d 70 72 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 4e 27 3a 20 69 6e 74   ┆intg:=pr;               'N': int┆
0x064e60…064e80            67 3a 3d 70 6e 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 42 27 3a 20 69 6e 74 67 3a 3d   ┆g:=pn;               'B': intg:=┆
0x064e80…064ea0            0a 20 20 20 20 20 20 20 20 20 20 20 27 51 27 3a 20 69 6e 74 70 3a 3d 78 74 75 6d 70 5b 65 71 2c   ┆            'Q': intp:=xtumpÆeq,┆
0x064ea0…064ec0            6a 6e 74 6d 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 27 4b 27 3a 20 69 6e 74 70 3a 3d 78 74   ┆jntmÅ;             'K': intp:=xt┆
0x064ec0…064ee0            75 6d 70 5b 65 6b 2c 6a 6e 74 6d 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20   ┆umpÆek,jntmÅ;            end;   ┆
0x064ee0…064f00            20 20 20 20 20 31 30 3a 20 62 65 67 69 6e 09 09 28 2a 20 79 72 6d 70 72 6f 20 73 65 6d 61 6e 74   ┆     10: begin  (* yrmpro semant┆
0x064f00…064f20            5b 65 70 2c 6a 6e 74 6d 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 27 52 27 3a 20 69 6e 74 70   ┆Æep,jntmÅ;             'R': intp┆
0x064f20…064f40            3a 3d 78 74 75 6d 70 5b 65 72 2c 6a 6e 74 6d 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 27 4e   ┆:=xtumpÆer,jntmÅ;             'N┆
0x064f40…064f60            27 3a 20 69 6e 74 70 3a 3d 78 74 75 6d 70 5b 65 6e 2c 6a 6e 74 6d 5d 3b 0d 0a 20 20 20 20 20 20   ┆': intp:=xtumpÆen,jntmÅ;        ┆
0x064f60…064f80            20 20 20 20 20 27 42 27 3a 20 69 6e 74 70 3a 3d 78 74 75 6d 70 5b 65 62 2c 6a 6e 74 6d 5d 3b 0d   ┆     'B': intp:=xtumpÆeb,jntmÅ; ┆
0x064f80…064fa0            20 20 20 38 3a 20 3b 09 09 28 2a 20 79 72 6d 6e 75 6c 20 73 65 6d 61 6e 74 69 63 73 20 2d 20 6e   ┆   8: ;  (* yrmnul semantics - n┆
0x064fa0…064fc0            75 6c 6c 20 2a 29 0d 0a 20 20 20 20 20 20 20 39 3a 20 63 61 73 65 20 69 6e 74 63 20 6f 66 09 28   ┆ull *)         9: case intc of (┆
0x064fc0…064fe0            2a 20 79 72 6d 70 63 6d 20 73 65 6d 61 6e 74 69 63 73 20 2d 20 70 69 65 63 65 20 6d 6f 76 65 64   ┆* yrmpcm semantics - piece moved┆
0x064fe0…065000            20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 27 50 27 3a 20 69 6e 74 70 3a 3d 78 74 75 6d 70   ┆ *)             'P': intp:=xtump┆
0x065000…065020 (25, 0, 5) 69 6e 6c 72 3a 3d 5b 72 34 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 36 27 3a 20 69   ┆inlr:=Ær4Å;               '6': i┆
0x065020…065040            6e 6c 72 3a 3d 5b 72 33 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 37 27 3a 20 69 6e   ┆nlr:=Ær3Å;               '7': in┆
0x065040…065060            6c 72 3a 3d 5b 72 32 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 38 27 3a 20 69 6e 6c   ┆lr:=Ær2Å;               '8': inl┆
0x065060…065080            72 3a 3d 5b 72 31 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20   ┆r:=Ær1Å;              end;      ┆
0x065080…0650a0            31 27 3a 20 69 6e 6c 72 3a 3d 5b 72 38 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 32   ┆1': inlr:=Ær8Å;               '2┆
0x0650a0…0650c0            27 3a 20 69 6e 6c 72 3a 3d 5b 72 37 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 33 27   ┆': inlr:=Ær7Å;               '3'┆
0x0650c0…0650e0            3a 20 69 6e 6c 72 3a 3d 5b 72 36 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 34 27 3a   ┆: inlr:=Ær6Å;               '4':┆
0x0650e0…065100            20 69 6e 6c 72 3a 3d 5b 72 35 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 35 27 3a 20   ┆ inlr:=Ær5Å;               '5': ┆
0x065100…065120            20 20 20 20 20 20 27 37 27 3a 20 69 6e 6c 72 3a 3d 5b 72 37 5d 3b 0d 0a 20 20 20 20 20 20 20 20   ┆      '7': inlr:=Ær7Å;          ┆
0x065120…065140            20 20 20 20 20 27 38 27 3a 20 69 6e 6c 72 3a 3d 5b 72 38 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20   ┆     '8': inlr:=Ær8Å;           ┆
0x065140…065160            20 20 20 65 6e 64 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20   ┆   end            else          ┆
0x065160…065180            20 20 20 20 63 61 73 65 20 69 6e 74 63 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27   ┆    case intc of               '┆
0x065180…0651a0            20 20 20 20 20 20 20 20 20 20 27 33 27 3a 20 69 6e 6c 72 3a 3d 5b 72 33 5d 3b 0d 0a 20 20 20 20   ┆          '3': inlr:=Ær3Å;      ┆
0x0651a0…0651c0            20 20 20 20 20 20 20 20 20 27 34 27 3a 20 69 6e 6c 72 3a 3d 5b 72 34 5d 3b 0d 0a 20 20 20 20 20   ┆         '4': inlr:=Ær4Å;       ┆
0x0651c0…0651e0            20 20 20 20 20 20 20 20 27 35 27 3a 20 69 6e 6c 72 3a 3d 5b 72 35 5d 3b 0d 0a 20 20 20 20 20 20   ┆        '5': inlr:=Ær5Å;        ┆
0x0651e0…065200            20 20 20 20 20 20 20 27 36 27 3a 20 69 6e 6c 72 3a 3d 5b 72 36 5d 3b 0d 0a 20 20 20 20 20 20 20   ┆       '6': inlr:=Ær6Å;         ┆
0x065200…065220            28 2a 20 79 72 6d 6c 72 6b 20 73 65 6d 61 6e 74 69 63 73 20 72 61 6e 6b 20 6f 6e 20 6c 65 66 74   ┆(* yrmlrk semantics rank on left┆
0x065220…065240            20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 69 6e 74 63 20 6f 66 0d 0a 20   ┆ *)              case intc of   ┆
0x065240…065260            20 20 20 20 20 20 20 20 20 20 20 20 27 31 27 3a 20 69 6e 6c 72 3a 3d 5b 72 31 5d 3b 0d 0a 20 20   ┆            '1': inlr:=Ær1Å;    ┆
0x065260…065280            20 20 20 20 20 20 20 20 20 20 20 27 32 27 3a 20 69 6e 6c 72 3a 3d 5b 72 32 5d 3b 0d 0a 20 20 20   ┆           '2': inlr:=Ær2Å;     ┆
0x065280…0652a0            20 20 20 20 20 20 20 20 20 20 20 20 20 27 42 27 3a 20 69 6e 6c 66 3a 3d 5b 66 33 2c 66 36 5d 2a   ┆             'B': inlf:=Æf3,f6Å*┆
0x0652a0…0652c0            69 6e 6c 66 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 20   ┆inlf;              end;         ┆
0x0652c0…0652e0            20 20 20 20 20 69 66 6c 64 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b   ┆     ifld:=true;            end;┆
0x0652e0…065300            0d 0a 20 20 20 20 20 20 20 37 3a 20 69 66 20 6a 6e 74 6d 20 3d 20 6c 69 74 65 20 74 68 65 6e 09   ┆         7: if jntm = lite then ┆
0x065300…065320            2d 20 52 2c 20 4e 20 6f 72 20 42 20 6f 6e 20 6c 65 66 74 20 2a 29 0d 0a 20 20 20 20 20 20 20 20   ┆- R, N or B on left *)          ┆
0x065320…065340            20 20 20 20 63 61 73 65 20 69 6e 74 63 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27   ┆    case intc of               '┆
0x065340…065360            52 27 3a 20 69 6e 6c 66 3a 3d 5b 66 31 2c 66 38 5d 2a 69 6e 6c 66 3b 0d 0a 20 20 20 20 20 20 20   ┆R': inlf:=Æf1,f8Å*inlf;         ┆
0x065360…065380            20 20 20 20 20 20 27 4e 27 3a 20 69 6e 6c 66 3a 3d 5b 66 32 2c 66 37 5d 2a 69 6e 6c 66 3b 0d 0a   ┆      'N': inlf:=Æf2,f7Å*inlf;  ┆
0x065380…0653a0            20 20 20 20 20 27 51 27 3a 20 69 6e 6c 66 3a 3d 5b 66 31 2e 2e 66 34 5d 2a 69 6e 6c 66 3b 0d 0a   ┆     'Q': inlf:=Æf1..f4Å*inlf;  ┆
0x0653a0…0653c0            20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66   ┆            end;              if┆
0x0653c0…0653e0            6c 66 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20   ┆lf:=true;            end;       ┆
0x0653e0…065400            20 20 36 3a 20 62 65 67 69 6e 09 09 28 2a 20 79 72 6d 6c 72 62 20 73 65 6d 61 6e 74 69 63 73 20   ┆  6: begin  (* yrmlrb semantics ┆
0x065400…065420 (25, 0, 6) 20 20 20 35 3a 20 62 65 67 69 6e 09 09 28 2a 20 79 72 6d 6c 6b 71 20 73 65 6d 61 6e 74 69 63 73   ┆   5: begin  (* yrmlkq semantics┆
0x065420…065440            20 2d 20 4b 20 6f 72 20 51 20 6f 6e 20 6c 65 66 74 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆ - K or Q on left *)            ┆
0x065440…065460            20 20 63 61 73 65 20 69 6e 74 63 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 4b 27   ┆  case intc of               'K'┆
0x065460…065480            3a 20 69 6e 6c 66 3a 3d 5b 66 35 2e 2e 66 38 5d 2a 69 6e 6c 66 3b 0d 0a 20 20 20 20 20 20 20 20   ┆: inlf:=Æf5..f8Å*inlf;          ┆
0x065480…0654a0            0d 0a 20 20 20 20 20 20 20 20 20 20 20 27 51 27 3a 20 69 6e 63 70 3a 3d 78 74 75 6d 70 5b 65 71   ┆             'Q': incp:=xtumpÆeq┆
0x0654a0…0654c0            2c 6f 74 68 65 72 5b 6a 6e 74 6d 5d 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a   ┆,otherÆjntmÅÅ;            end;  ┆
0x0654c0…0654e0            20 20 20 20 20 20 20 34 3a 20 69 66 71 73 3a 3d 74 72 75 65 3b 09 28 2a 20 79 72 6d 63 71 73 20   ┆       4: ifqs:=true; (* yrmcqs ┆
0x0654e0…065500            73 65 6d 61 6e 74 69 63 73 20 2d 20 63 61 73 74 6c 65 20 6c 6f 6e 67 20 2a 29 0d 0a 20 20 20 20   ┆semantics - castle long *)      ┆
0x065500…065520            20 20 20 27 52 27 3a 20 69 6e 63 70 3a 3d 78 74 75 6d 70 5b 65 72 2c 6f 74 68 65 72 5b 6a 6e 74   ┆   'R': incp:=xtumpÆer,otherÆjnt┆
0x065520…065540            6d 5d 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 27 4e 27 3a 20 69 6e 63 70 3a 3d 78 74 75 6d   ┆mÅÅ;             'N': incp:=xtum┆
0x065540…065560            70 5b 65 6e 2c 6f 74 68 65 72 5b 6a 6e 74 6d 5d 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 27   ┆pÆen,otherÆjntmÅÅ;             '┆
0x065560…065580            42 27 3a 20 69 6e 63 70 3a 3d 78 74 75 6d 70 5b 65 62 2c 6f 74 68 65 72 5b 6a 6e 74 6d 5d 5d 3b   ┆B': incp:=xtumpÆeb,otherÆjntmÅÅ;┆
0x065580…0655a0            61 73 74 6c 65 20 2a 29 0d 0a 20 20 20 20 20 20 20 33 3a 20 63 61 73 65 20 69 6e 74 63 20 6f 66   ┆astle *)         3: case intc of┆
0x0655a0…0655c0            09 28 2a 20 79 72 6d 63 70 63 20 73 65 6d 61 6e 74 69 63 73 20 2d 20 63 61 70 74 75 72 65 64 20   ┆ (* yrmcpc semantics - captured ┆
0x0655c0…0655e0            70 69 65 63 65 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 27 50 27 3a 20 69 6e 63 70 3a 3d   ┆piece *)             'P': incp:=┆
0x0655e0…065600            78 74 75 6d 70 5b 65 70 2c 6f 74 68 65 72 5b 6a 6e 74 6d 5d 5d 3b 0d 0a 20 20 20 20 20 20 20 20   ┆xtumpÆep,otherÆjntmÅÅ;          ┆
0x065600…065620            20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 63 61 73 65 20 62 20 6f 66 0d 0a 20 20 20 20 20   ┆   begin        case b of       ┆
0x065620…065640            20 20 31 3a 20 69 66 63 61 3a 3d 74 72 75 65 3b 09 28 2a 20 79 72 6d 63 61 70 20 73 65 6d 61 6e   ┆  1: ifca:=true; (* yrmcap seman┆
0x065640…065660            74 69 63 73 20 2d 20 63 61 70 74 75 72 65 20 2a 29 0d 0a 20 20 20 20 20 20 20 32 3a 20 69 66 6f   ┆tics - capture *)         2: ifo┆
0x065660…065680            6f 3a 3d 74 72 75 65 3b 09 28 2a 20 79 72 6d 63 61 73 20 73 65 6d 61 6e 74 69 63 73 20 2d 20 63   ┆o:=true; (* yrmcas semantics - c┆
0x065680…0656a0            20 6e 65 78 74 20 69 6e 70 75 74 20 2a 29 0d 0a 20 20 76 61 72 20 69 6e 74 62 20 3a 20 74 62 3b   ┆ next input *)    var intb : tb;┆
0x0656a0…0656c0            09 09 20 20 20 28 2a 20 63 68 61 72 20 69 73 20 6e 6f 74 20 69 6e 20 61 20 67 69 76 65 6e 20 73   ┆     (* char is not in a given s┆
0x0656c0…0656e0            65 74 20 2a 29 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 69 6e 74 62 3a 3d 6e 6f 74 28 69 6e 74 63   ┆et *)    begin    intb:=not(intc┆
0x0656e0…065700            20 69 6e 20 61 29 3b 0d 0a 20 20 20 20 69 66 20 6e 6f 74 20 69 6e 74 62 20 74 68 65 6e 0d 0a 20   ┆ in a);      if not intb then   ┆
0x065700…065720            3b 0d 0a 20 20 69 6e 6c 72 09 3a 20 73 72 3b 0d 0a 20 20 69 6e 72 66 09 3a 20 73 66 3b 0d 0a 20   ┆;    inlr : sr;    inrf : sf;   ┆
0x065720…065740            20 69 6e 72 72 09 3a 20 73 72 3b 0d 0a 20 20 65 78 69 74 09 3a 20 74 62 3b 0d 0a 20 20 65 72 72   ┆ inrr : sr;    exit : tb;    err┆
0x065740…065760            6f 72 09 3a 20 74 62 3b 0d 0a 20 20 0d 0a 20 20 66 75 6e 63 74 69 6f 6e 20 6e 63 68 69 6e 28 61   ┆or : tb;        function nchin(a┆
0x065760…065780            3a 20 73 63 3b 20 62 3a 20 74 69 29 3a 74 62 3b 20 28 2a 20 64 65 74 65 72 6d 69 6e 65 20 69 66   ┆: sc; b: ti):tb; (* determine if┆
0x065780…0657a0            74 62 3b 0d 0a 20 20 69 6e 74 67 09 3a 20 74 67 3b 0d 0a 20 20 69 66 6d 76 09 3a 20 74 62 3b 0d   ┆tb;    intg : tg;    ifmv : tb; ┆
0x0657a0…0657c0            0a 20 20 69 66 6c 64 09 3a 20 74 62 3b 0d 0a 20 20 69 66 6c 66 09 3a 20 74 62 3b 0d 0a 20 20 69   ┆   ifld : tb;    iflf : tb;    i┆
0x0657c0…0657e0            66 72 64 09 3a 20 74 62 3b 0d 0a 20 20 69 66 72 66 09 3a 20 74 62 3b 0d 0a 20 20 69 6e 74 66 09   ┆frd : tb;    ifrf : tb;    intf ┆
0x0657e0…065800            3a 20 74 66 3b 0d 0a 20 20 69 6e 74 72 09 3a 20 74 72 3b 0d 0a 20 20 69 6e 6c 66 09 3a 20 73 66   ┆: tf;    intr : tr;    inlf : sf┆
0x065800…065820 (25, 0, 7) 0d 0a 76 61 72 0d 0a 20 20 69 6e 74 62 09 3a 20 74 62 3b 0d 0a 20 20 69 6e 74 63 09 3a 20 74 63   ┆  var    intb : tb;    intc : tc┆
0x065820…065840            3b 0d 0a 20 20 69 6e 74 77 09 3a 20 74 77 3b 0d 0a 20 20 69 6e 74 70 09 3a 20 74 70 3b 0d 0a 20   ┆;    intw : tw;    intp : tp;   ┆
0x065840…065860            20 69 6e 63 70 09 3a 20 74 70 3b 0d 0a 20 20 69 66 63 61 09 3a 20 74 62 3b 0d 0a 20 20 69 66 70   ┆ incp : tp;    ifca : tb;    ifp┆
0x065860…065880            72 09 3a 20 74 62 3b 0d 0a 20 20 69 66 6f 6f 09 3a 20 74 62 3b 0d 0a 20 20 69 66 71 73 09 3a 20   ┆r : tb;    ifoo : tb;    ifqs : ┆
0x065880…0658a0            6d 6d 74 20 74 68 65 6e 20 61 64 64 77 72 64 28 27 53 54 41 4c 45 4d 41 54 45 2e 27 2c 31 30 29   ┆mmt then addwrd('STALEMATE.',10)┆
0x0658a0…0658c0            3b 0d 0a 20 20 65 6e 64 3b 0d 0a 65 6e 64 3b 09 28 2a 20 6d 69 6e 65 6e 67 20 2a 29 0d 0a 0d 0a   ┆;    end;  end; (* mineng *)    ┆
0x0658c0…0658e0            66 75 6e 63 74 69 6f 6e 20 79 72 6d 28 76 61 72 20 69 6e 72 6d 3a 20 72 6d 29 3a 74 62 3b 0d 0a   ┆function yrm(var inrm: rm):tb;  ┆
0x0658e0…065900            6c 61 62 65 6c 20 39 2c 31 30 2c 31 31 2c 31 32 2c 31 33 2c 31 34 2c 31 35 2c 31 36 2c 31 38 3b   ┆label 9,10,11,12,13,14,15,16,18;┆
0x065900…065920            20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 61 64 64 77 72 64 28 27 43 48 45 43 4b 20 20 20 20   ┆  begin        addwrd('CHECK    ┆
0x065920…065940            20 27 2c 35 29 3b 0d 0a 20 20 20 20 20 20 69 66 20 72 6d 6d 74 20 74 68 65 6e 20 61 64 64 77 72   ┆ ',5);        if rmmt then addwr┆
0x065940…065960            64 28 27 4d 41 54 45 20 20 20 20 20 20 27 2c 34 29 3b 0d 0a 20 20 20 20 20 20 61 64 64 63 68 72   ┆d('MATE      ',4);        addchr┆
0x065960…065980            28 27 2e 27 29 3b 0d 0a 20 20 20 20 65 6e 64 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 72   ┆('.');      end else        if r┆
0x065980…0659a0            72 6d 70 72 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 61 64 64 63   ┆rmpr then      begin        addc┆
0x0659a0…0659c0            68 72 28 27 3d 27 29 3b 0d 0a 20 20 20 20 20 20 61 64 64 63 68 72 28 78 74 67 63 5b 72 6d 70 70   ┆hr('=');        addchr(xtgcÆrmpp┆
0x0659c0…0659e0            5d 29 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 61 64 64 77 72 64 28 27 2e 20 20 20 20   ┆Å);      end;      addwrd('.    ┆
0x0659e0…065a00            20 20 20 20 20 27 2c 33 29 3b 0d 0a 20 20 20 20 69 66 20 72 6d 63 68 20 74 68 65 6e 0d 0a 20 20   ┆     ',3);      if rmch then    ┆
0x065a00…065a20            66 20 72 6d 71 73 20 74 68 65 6e 20 61 64 64 77 72 64 28 27 2d 30 20 20 20 20 20 20 20 20 27 2c   ┆f rmqs then addwrd('-0        ',┆
0x065a20…065a40            32 29 3b 0d 0a 20 20 20 20 65 6e 64 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 72 6d 63 61   ┆2);      end else        if rmca┆
0x065a40…065a60            20 74 68 65 6e 20 6d 69 6e 67 65 6e 28 61 2c 73 79 6e 63 66 2c 73 79 6e 63 6c 29 20 65 6c 73 65   ┆ then mingen(a,syncf,syncl) else┆
0x065a60…065a80            20 6d 69 6e 67 65 6e 28 61 2c 73 79 6e 6d 66 2c 73 79 6e 6d 6c 29 3b 0d 0a 20 20 20 20 69 66 20   ┆ mingen(a,synmf,synml);      if ┆
0x065a80…065aa0            72 28 63 68 72 28 72 6d 74 6f 20 64 69 76 20 38 20 2b 20 6f 72 64 28 27 31 27 29 29 29 3b 0d 0a   ┆r(chr(rmto div 8 + ord('1')));  ┆
0x065aa0…065ac0            20 20 20 20 61 64 64 77 72 64 28 27 20 3d 20 20 20 20 20 20 20 20 27 2c 33 29 3b 0d 0a 20 20 20   ┆    addwrd(' =        ',3);     ┆
0x065ac0…065ae0            20 69 66 20 72 6d 6f 6f 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20   ┆ if rmoo then      begin        ┆
0x065ae0…065b00            61 64 64 77 72 64 28 27 30 2d 30 20 20 20 20 20 20 20 27 2c 33 29 3b 0d 0a 20 20 20 20 20 20 69   ┆addwrd('0-0       ',3);        i┆
0x065b00…065b20            63 68 72 28 72 6d 66 72 20 64 69 76 20 38 20 2b 20 6f 72 64 28 27 31 27 29 29 29 3b 0d 0a 20 20   ┆chr(rmfr div 8 + ord('1')));    ┆
0x065b20…065b40            20 20 69 66 20 72 6d 63 61 20 74 68 65 6e 20 61 64 64 63 68 72 28 27 2a 27 29 20 65 6c 73 65 20   ┆  if rmca then addchr('*') else ┆
0x065b40…065b60            61 64 64 63 68 72 28 27 2d 27 29 3b 0d 0a 20 20 20 20 61 64 64 63 68 72 28 63 68 72 28 72 6d 74   ┆addchr('-');      addchr(chr(rmt┆
0x065b60…065b80            6f 20 6d 6f 64 20 38 20 2b 20 6f 72 64 28 27 41 27 29 29 29 3b 0d 0a 20 20 20 20 61 64 64 63 68   ┆o mod 8 + ord('A')));      addch┆
0x065b80…065ba0            6e 3a 3d 61 77 2b 31 3b 0d 0a 20 20 61 64 64 77 72 64 28 62 2c 7a 61 29 3b 0d 0a 20 20 61 64 64   ┆n:=aw+1;    addwrd(b,za);    add┆
0x065ba0…065bc0            77 72 64 28 27 2d 20 20 20 20 20 20 20 20 20 27 2c 32 29 3b 0d 0a 20 20 77 69 74 68 20 61 20 64   ┆wrd('-         ',2);    with a d┆
0x065bc0…065be0            6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 61 64 64 63 68 72 28 63 68 72 28 72 6d 66 72 20   ┆o    begin      addchr(chr(rmfr ┆
0x065be0…065c00            6d 6f 64 20 38 20 2b 20 6f 72 64 28 27 41 27 29 29 29 3b 0d 0a 20 20 20 20 61 64 64 63 68 72 28   ┆mod 8 + ord('A')));      addchr(┆
0x065c00…065c20 (25, 0, 8) 0d 0a 20 20 20 20 20 20 69 6e 74 69 3a 3d 69 6e 74 69 2b 31 3b 0d 0a 20 20 20 20 75 6e 74 69 6c   ┆        inti:=inti+1;      until┆
0x065c20…065c40            20 28 69 6e 74 69 20 3d 20 63 29 20 6f 72 20 65 78 69 74 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 62 65   ┆ (inti = c) or exit;    end;  be┆
0x065c40…065c60            67 69 6e 0d 0a 20 20 6d 6f 76 6d 73 3a 3d 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆gin    movms:='                 ┆
0x065c60…065c80            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 3b 0d 0a 20 20 69 6e 74   ┆                       ';    int┆
0x065c80…065ca0            20 20 61 64 64 73 71 72 28 61 2e 72 6d 66 72 2c 72 79 6c 73 29 3b 0d 0a 20 20 20 20 20 20 20 20   ┆  addsqr(a.rmfr,ryls);          ┆
0x065ca0…065cc0            20 20 61 64 64 63 68 72 28 72 79 63 68 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 61 64 64 73 71   ┆  addchr(rych);            addsq┆
0x065cc0…065ce0            72 28 61 2e 72 6d 74 6f 2c 72 79 72 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 78 69 74 3a   ┆r(a.rmto,ryrs);            exit:┆
0x065ce0…065d00            3d 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b   ┆=true;          end;        end;┆
0x065d00…065d20            0d 0a 20 20 20 20 20 20 20 20 75 6e 74 69 6c 20 28 69 6e 74 77 20 3d 20 6a 6e 74 77 2d 31 29 20   ┆          until (intw = jntw-1) ┆
0x065d20…065d40            6f 72 20 6e 6f 74 20 66 6f 75 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 66 6f 75 6e 64 20   ┆or not found;          if found ┆
0x065d40…065d60            74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 09 28 2a 20 6e 6f 20 6f 74 68 65 72 20   ┆then          begin (* no other ┆
0x065d60…065d80            6d 6f 76 65 20 6c 6f 6f 6b 73 20 74 68 65 20 73 61 6d 65 20 2a 29 0d 0a 20 20 20 20 20 20 20 20   ┆move looks the same *)          ┆
0x065d80…065da0            78 74 73 66 5b 72 6d 74 6f 5d 20 69 6e 20 69 6e 72 66 29 20 61 6e 64 0d 0a 20 20 20 20 20 20 20   ┆xtsfÆrmtoÅ in inrf) and         ┆
0x065da0…065dc0            20 20 20 20 20 20 20 20 20 20 20 20 28 28 72 6d 70 72 20 61 6e 64 20 28 69 6e 74 67 20 3d 20 72   ┆            ((rmpr and (intg = r┆
0x065dc0…065de0            6d 70 70 29 29 20 6f 72 20 28 6e 6f 74 20 72 6d 70 72 29 29 20 74 68 65 6e 20 66 6f 75 6e 64 3a   ┆mpp)) or (not rmpr)) then found:┆
0x065de0…065e00            3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 69 6e 74 77 3a 3d 69 6e 74 77 2b 31 3b   ┆=false;            intw:=intw+1;┆
0x065e00…065e20            65 73 5b 69 6e 74 77 5d 20 64 6f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20   ┆esÆintwÅ do                  if ┆
0x065e20…065e40            28 78 74 73 72 5b 72 6d 66 72 5d 20 69 6e 20 69 6e 6c 72 29 20 61 6e 64 20 28 78 74 73 72 5b 72   ┆(xtsrÆrmfrÅ in inlr) and (xtsrÆr┆
0x065e40…065e60            6d 74 6f 5d 20 69 6e 20 69 6e 72 72 29 20 61 6e 64 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆mtoÅ in inrr) and               ┆
0x065e60…065e80            20 20 20 20 20 20 28 78 74 73 66 5b 72 6d 66 72 5d 20 69 6e 20 69 6e 6c 66 29 20 61 6e 64 20 28   ┆      (xtsfÆrmfrÅ in inlf) and (┆
0x065e80…065ea0            20 20 20 20 20 20 20 20 69 66 20 28 6e 62 6f 72 64 5b 61 2e 72 6d 66 72 5d 20 3d 20 6e 62 6f 72   ┆        if (nbordÆa.rmfrÅ = nbor┆
0x065ea0…065ec0            64 5b 6d 6f 76 65 73 5b 69 6e 74 77 5d 2e 72 6d 66 72 5d 29 20 61 6e 64 0d 0a 20 20 20 20 20 20   ┆dÆmovesÆintwÅ.rmfrÅ) and        ┆
0x065ec0…065ee0            20 20 20 20 20 20 20 20 28 61 2e 72 6d 63 70 20 3d 20 6d 6f 76 65 73 5b 69 6e 74 77 5d 2e 72 6d   ┆        (a.rmcp = movesÆintwÅ.rm┆
0x065ee0…065f00            63 70 29 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 69 74 68 20 6d 6f 76   ┆cp) then                with mov┆
0x065f00…065f20            2e 72 6d 74 6f 2c 72 79 72 73 2c 69 6e 72 72 2c 69 6e 72 66 29 3b 0d 0a 20 20 20 20 20 20 20 20   ┆.rmto,ryrs,inrr,inrf);          ┆
0x065f20…065f40            66 6f 75 6e 64 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 77 3a 3d 61 77 2b 31   ┆found:=true;          intw:=aw+1┆
0x065f40…065f60            3b 0d 0a 20 20 20 20 20 20 20 20 72 65 70 65 61 74 0d 0a 20 20 20 20 20 20 20 20 20 20 69 66 20   ┆;          repeat            if ┆
0x065f60…065f80            64 69 66 66 65 72 28 6d 6f 76 65 73 5b 69 6e 74 77 5d 2c 61 29 20 74 68 65 6e 0d 0a 20 20 20 20   ┆differ(movesÆintwÅ,a) then      ┆
0x065f80…065fa0            69 5d 20 64 6f 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 69 66 20 61   ┆iÅ do        begin          if a┆
0x065fa0…065fc0            2e 72 6d 70 72 20 74 68 65 6e 20 69 6e 74 67 3a 3d 61 2e 72 6d 70 70 20 65 6c 73 65 20 69 6e 74   ┆.rmpr then intg:=a.rmpp else int┆
0x065fc0…065fe0            67 3a 3d 70 62 3b 0d 0a 20 20 20 20 20 20 20 20 73 65 74 73 71 64 28 61 2e 72 6d 66 72 2c 72 79   ┆g:=pb;          setsqd(a.rmfr,ry┆
0x065fe0…066000            6c 73 2c 69 6e 6c 72 2c 69 6e 6c 66 29 3b 0d 0a 20 20 20 20 20 20 20 20 73 65 74 73 71 64 28 61   ┆ls,inlr,inlf);          setsqd(a┆
0x066000…066020 (25, 1, 1) 3a 20 73 66 3b 0d 0a 20 20 20 20 69 6e 72 66 20 3a 20 73 66 3b 0d 0a 20 20 20 20 65 78 69 74 20   ┆: sf;      inrf : sf;      exit ┆
0x066020…066040            3a 20 74 62 3b 0d 0a 20 20 20 20 66 6f 75 6e 64 3a 20 74 62 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a   ┆: tb;      found: tb;    begin  ┆
0x066040…066060            20 20 20 20 65 78 69 74 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 69 6e 74 69 3a 3d 62 3b 0d 0a   ┆    exit:=false;      inti:=b;  ┆
0x066060…066080            20 20 20 20 72 65 70 65 61 74 0d 0a 20 20 20 20 20 20 77 69 74 68 20 73 79 6e 74 78 5b 69 6e 74   ┆    repeat        with syntxÆint┆
0x066080…0660a0            64 75 63 65 20 6d 69 6e 69 6d 75 6d 20 65 6e 67 6c 2e 20 6e 6f 74 61 74 69 6f 6e 20 2a 29 0d 0a   ┆duce minimum engl. notation *)  ┆
0x0660a0…0660c0            20 20 76 61 72 0d 0a 20 20 20 20 69 6e 74 67 20 3a 20 74 67 3b 0d 0a 20 20 20 20 69 6e 74 69 20   ┆  var      intg : tg;      inti ┆
0x0660c0…0660e0            3a 20 74 69 3b 0d 0a 20 20 20 20 69 6e 74 77 20 3a 20 74 77 3b 0d 0a 20 20 20 20 69 6e 6c 72 20   ┆: ti;      intw : tw;      inlr ┆
0x0660e0…066100            3a 20 73 72 3b 0d 0a 20 20 20 20 69 6e 72 72 20 3a 20 73 72 3b 0d 0a 20 20 20 20 69 6e 6c 66 20   ┆: sr;      inrr : sr;      inlf ┆
0x066100…066120            20 20 20 20 20 66 35 20 20 20 3a 20 64 3a 3d 5b 66 35 5d 3b 0d 0a 20 20 20 20 20 20 20 20 65 6e   ┆     f5   : d:=Æf5Å;          en┆
0x066120…066140            64 3b 0d 0a 20 20 20 20 20 20 69 66 20 72 64 72 6b 20 74 68 65 6e 20 63 3a 3d 5b 78 74 73 72 5b   ┆d;        if rdrk then c:=ÆxtsrÆ┆
0x066140…066160            61 5d 5d 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64   ┆aÅÅ;      end;    end;    proced┆
0x066160…066180            75 72 65 20 6d 69 6e 67 65 6e 28 61 3a 72 6d 3b 20 62 2c 63 3a 74 69 29 3b 09 28 2a 20 70 72 6f   ┆ure mingen(a:rm; b,c:ti); (* pro┆
0x066180…0661a0            5d 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 20 20 66 31 2c 66 38 3a 20 64 3a 3d 5b 66 31 2c 66 38   ┆Å of            f1,f8: d:=Æf1,f8┆
0x0661a0…0661c0            5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 66 32 2c 66 37 3a 20 64 3a 3d 5b 66 32 2c 66 37 5d 3b   ┆Å;            f2,f7: d:=Æf2,f7Å;┆
0x0661c0…0661e0            0d 0a 20 20 20 20 20 20 20 20 20 20 66 33 2c 66 36 3a 20 64 3a 3d 5b 66 33 2c 66 36 5d 3b 0d 0a   ┆            f3,f6: d:=Æf3,f6Å;  ┆
0x0661e0…066200            20 20 20 20 20 20 20 20 20 20 66 34 20 20 20 3a 20 64 3a 3d 5b 66 34 5d 3b 0d 0a 20 20 20 20 20   ┆          f4   : d:=Æf4Å;       ┆
0x066200…066220            38 5d 3b 0d 0a 20 20 20 20 77 69 74 68 20 62 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20   ┆8Å;      with b do      begin   ┆
0x066220…066240            20 20 20 20 20 69 66 20 72 64 6b 71 20 61 6e 64 20 72 64 6e 62 20 74 68 65 6e 20 64 3a 3d 5b 78   ┆     if rdkq and rdnb then d:=Æx┆
0x066240…066260            74 73 66 5b 61 5d 5d 3b 0d 0a 20 20 20 20 20 20 69 66 20 28 6e 6f 74 20 72 64 6b 71 29 20 61 6e   ┆tsfÆaÅÅ;        if (not rdkq) an┆
0x066260…066280            64 20 72 64 6e 62 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 63 61 73 65 20 78 74 73 66 5b 61   ┆d rdnb then          case xtsfÆa┆
0x066280…0662a0            64 28 61 3a 74 73 3b 20 62 3a 72 64 3b 20 76 61 72 20 63 3a 73 72 3b 20 76 61 72 20 64 3a 73 66   ┆d(a:ts; b:rd; var c:sr; var d:sf┆
0x0662a0…0662c0            29 3b 09 28 2a 20 64 65 66 69 6e 65 20 73 70 65 63 69 66 69 63 20 2a 29 0d 0a 20 20 62 65 67 69   ┆); (* define specific *)    begi┆
0x0662c0…0662e0            6e 09 09 09 09 09 09 09 28 2a 20 73 71 75 61 72 65 20 64 65 73 63 72 69 70 74 6f 72 20 2a 29 0d   ┆n       (* square descriptor *) ┆
0x0662e0…066300            0a 20 20 20 20 63 3a 3d 5b 72 31 2e 2e 72 38 5d 3b 0d 0a 20 20 20 20 64 3a 3d 5b 66 31 2e 2e 66   ┆     c:=Ær1..r8Å;      d:=Æf1..f┆
0x066300…066320            6f 72 20 28 61 2e 72 6d 71 73 20 3c 3e 20 62 2e 72 6d 71 73 29 0d 0a 20 20 20 20 20 20 20 20 20   ┆or (a.rmqs <> b.rmqs)           ┆
0x066320…066340            20 65 6c 73 65 20 64 69 66 66 65 72 3a 3d 69 6e 74 62 0d 0a 20 20 20 20 20 20 20 20 65 6c 73 65   ┆ else differ:=intb          else┆
0x066340…066360            20 64 69 66 66 65 72 3a 3d 74 72 75 65 0d 0a 20 20 20 20 65 6c 73 65 20 64 69 66 66 65 72 3a 3d   ┆ differ:=true      else differ:=┆
0x066360…066380            74 72 75 65 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 73 65 74 73 71   ┆true;    end;    procedure setsq┆
0x066380…0663a0            6d 70 72 20 74 68 65 6e 20 64 69 66 66 65 72 3a 3d 69 6e 74 62 20 6f 72 20 28 61 2e 72 6d 70 70   ┆mpr then differ:=intb or (a.rmpp┆
0x0663a0…0663c0            20 3c 3e 20 62 2e 72 6d 70 70 29 0d 0a 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20   ┆ <> b.rmpp)        else         ┆
0x0663c0…0663e0            20 69 66 20 61 2e 72 6d 6f 6f 20 3d 20 62 2e 72 6d 6f 6f 20 74 68 65 6e 0d 0a 20 20 20 20 20 20   ┆ if a.rmoo = b.rmoo then        ┆
0x0663e0…066400            20 20 20 20 69 66 20 61 2e 72 6d 6f 6f 20 74 68 65 6e 20 64 69 66 66 65 72 3a 3d 69 6e 74 62 20   ┆    if a.rmoo then differ:=intb ┆
0x066400…066420 (25, 1, 2) 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 69 6e 74 62 3a 3d 28 61 2e 72 6d 66 72 20 3c 3e   ┆;    begin      intb:=(a.rmfr <>┆
0x066420…066440            20 62 2e 72 6d 66 72 29 20 6f 72 20 28 61 2e 72 6d 74 6f 20 3c 3e 20 62 2e 72 6d 74 6f 29 20 6f   ┆ b.rmfr) or (a.rmto <> b.rmto) o┆
0x066440…066460            72 20 28 61 2e 72 6d 63 70 20 3c 3e 20 62 2e 72 6d 63 70 29 3b 0d 0a 20 20 20 20 69 66 20 61 2e   ┆r (a.rmcp <> b.rmcp);      if a.┆
0x066460…066480            72 6d 70 72 20 3d 20 62 2e 72 6d 70 72 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 69 66 20 61 2e 72   ┆rmpr = b.rmpr then        if a.r┆
0x066480…0664a0            61 3a 3d 61 61 20 74 6f 20 62 20 64 6f 20 61 64 64 63 68 72 28 61 5b 69 6e 74 61 5d 29 3b 0d 0a   ┆a:=aa to b do addchr(aÆintaÅ);  ┆
0x0664a0…0664c0            20 20 65 6e 64 3b 0d 0a 20 20 66 75 6e 63 74 69 6f 6e 20 64 69 66 66 65 72 28 61 2c 62 3a 20 72   ┆  end;    function differ(a,b: r┆
0x0664c0…0664e0            6d 29 3a 20 74 62 3b 09 09 28 2a 20 63 6f 6d 70 61 72 65 20 6d 6f 76 65 73 2c 20 74 72 75 65 20   ┆m): tb;  (* compare moves, true ┆
0x0664e0…066500            69 66 20 64 69 66 66 65 72 65 6e 74 20 2a 29 0d 0a 20 20 76 61 72 20 69 6e 74 62 20 3a 20 74 62   ┆if different *)    var intb : tb┆
0x066500…066520            20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20   ┆      end;      end;    end;    ┆
0x066520…066540            70 72 6f 63 65 64 75 72 65 20 61 64 64 77 72 64 28 61 3a 72 61 3b 20 62 3a 20 74 61 29 3b 09 28   ┆procedure addwrd(a:ra; b: ta); (┆
0x066540…066560            2a 20 61 64 64 20 77 6f 72 64 20 74 6f 20 6d 65 73 73 61 67 65 20 2a 29 0d 0a 20 20 76 61 72 20   ┆* add word to message *)    var ┆
0x066560…066580            69 6e 74 61 20 3a 20 74 61 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 66 6f 72 20 69 6e 74   ┆inta : ta;    begin      for int┆
0x066580…0665a0            29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 35 3a 20 61 64 64 63 68 72 28 27 34 27 29 3b   ┆);              r5: addchr('4');┆
0x0665a0…0665c0            0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 36 3a 20 61 64 64 63 68 72 28 27 33 27 29 3b 0d 0a   ┆              r6: addchr('3');  ┆
0x0665c0…0665e0            20 20 20 20 20 20 20 20 20 20 20 20 72 37 3a 20 61 64 64 63 68 72 28 27 32 27 29 3b 0d 0a 20 20   ┆            r7: addchr('2');    ┆
0x0665e0…066600            20 20 20 20 20 20 20 20 20 20 72 38 3a 20 61 64 64 63 68 72 28 27 31 27 29 3b 0d 0a 20 20 20 20   ┆          r8: addchr('1');      ┆
0x066600…066620            78 74 73 72 5b 61 5d 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 31 3a 20 61 64 64 63   ┆xtsrÆaÅ of              r1: addc┆
0x066620…066640            68 72 28 27 38 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 32 3a 20 61 64 64 63 68 72   ┆hr('8');              r2: addchr┆
0x066640…066660            28 27 37 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 33 3a 20 61 64 64 63 68 72 28 27   ┆('7');              r3: addchr('┆
0x066660…066680            36 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 34 3a 20 61 64 64 63 68 72 28 27 35 27   ┆6');              r4: addchr('5'┆
0x066680…0666a0            20 20 20 20 20 20 72 36 3a 20 61 64 64 63 68 72 28 27 36 27 29 3b 0d 0a 20 20 20 20 20 20 20 20   ┆      r6: addchr('6');          ┆
0x0666a0…0666c0            20 20 20 20 72 37 3a 20 61 64 64 63 68 72 28 27 37 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆    r7: addchr('7');            ┆
0x0666c0…0666e0            20 20 72 38 3a 20 61 64 64 63 68 72 28 27 38 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e   ┆  r8: addchr('8');            en┆
0x0666e0…066700            64 0d 0a 20 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20   ┆d          else            case ┆
0x066700…066720            0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 32 3a 20 61 64 64 63 68 72 28 27 32 27 29 3b 0d 0a   ┆              r2: addchr('2');  ┆
0x066720…066740            20 20 20 20 20 20 20 20 20 20 20 20 72 33 3a 20 61 64 64 63 68 72 28 27 33 27 29 3b 0d 0a 20 20   ┆            r3: addchr('3');    ┆
0x066740…066760            20 20 20 20 20 20 20 20 20 20 72 34 3a 20 61 64 64 63 68 72 28 27 34 27 29 3b 0d 0a 20 20 20 20   ┆          r4: addchr('4');      ┆
0x066760…066780            20 20 20 20 20 20 20 20 72 35 3a 20 61 64 64 63 68 72 28 27 35 27 29 3b 0d 0a 20 20 20 20 20 20   ┆        r5: addchr('5');        ┆
0x066780…0667a0            68 72 28 27 4b 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 69 66   ┆hr('K');          end;        if┆
0x0667a0…0667c0            20 72 64 72 6b 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 69 66 20 6a 6e 74 6d 20 3d 20 6c 69   ┆ rdrk then          if jntm = li┆
0x0667c0…0667e0            74 65 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 78 74 73 72 5b 61 5d 20   ┆te then            case xtsrÆaÅ ┆
0x0667e0…066800            6f 66 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 31 3a 20 61 64 64 63 68 72 28 27 31 27 29 3b   ┆of              r1: addchr('1');┆
0x066800…066820 (25, 1, 3) 61 64 64 63 68 72 28 27 52 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 66 32 2c 66 37 3a 20 61   ┆addchr('R');            f2,f7: a┆
0x066820…066840            64 64 63 68 72 28 27 4e 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 66 33 2c 66 36 3a 20 61 64   ┆ddchr('N');            f3,f6: ad┆
0x066840…066860            64 63 68 72 28 27 42 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 66 34 20 20 20 3a 20 61 64 64   ┆dchr('B');            f4   : add┆
0x066860…066880            63 68 72 28 27 51 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 66 35 20 20 20 3a 20 61 64 64 63   ┆chr('Q');            f5   : addc┆
0x066880…0668a0            20 20 20 20 20 20 20 69 66 20 78 74 73 66 5b 61 5d 20 69 6e 20 5b 66 31 2e 2e 66 34 5d 20 74 68   ┆       if xtsfÆaÅ in Æf1..f4Å th┆
0x0668a0…0668c0            65 6e 20 61 64 64 63 68 72 28 27 51 27 29 20 65 6c 73 65 20 61 64 64 63 68 72 28 27 4b 27 29 3b   ┆en addchr('Q') else addchr('K');┆
0x0668c0…0668e0            0d 0a 20 20 20 20 20 20 69 66 20 72 64 6e 62 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 63 61   ┆        if rdnb then          ca┆
0x0668e0…066900            73 65 20 78 74 73 66 5b 61 5d 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 20 20 66 31 2c 66 38 3a 20   ┆se xtsfÆaÅ of            f1,f8: ┆
0x066900…066920            20 20 77 69 74 68 20 62 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 66   ┆  with b do      begin        if┆
0x066920…066940            20 72 64 70 63 20 74 68 65 6e 20 61 64 64 63 68 72 28 78 74 75 63 5b 78 74 70 75 5b 6e 62 6f 72   ┆ rdpc then addchr(xtucÆxtpuÆnbor┆
0x066940…066960            64 5b 61 5d 5d 5d 29 3b 0d 0a 20 20 20 20 20 20 69 66 20 72 64 73 6c 20 74 68 65 6e 20 61 64 64   ┆dÆaÅÅÅ);        if rdsl then add┆
0x066960…066980            63 68 72 28 27 2f 27 29 3b 0d 0a 20 20 20 20 20 20 69 66 20 72 64 6b 71 20 74 68 65 6e 0d 0a 20   ┆chr('/');        if rdkq then   ┆
0x066980…0669a0            6e 5d 3a 3d 61 3b 0d 0a 20 20 20 20 69 66 20 69 6e 74 6e 20 3c 20 7a 6e 6e 20 74 68 65 6e 20 69   ┆nÅ:=a;      if intn < znn then i┆
0x0669a0…0669c0            6e 74 6e 3a 3d 69 6e 74 6e 2b 31 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72   ┆ntn:=intn+1;    end;    procedur┆
0x0669c0…0669e0            65 20 61 64 64 73 71 72 28 61 3a 20 74 73 3b 20 62 3a 20 72 64 29 3b 09 28 2a 20 61 64 64 20 73   ┆e addsqr(a: ts; b: rd); (* add s┆
0x0669e0…066a00            71 75 61 72 65 20 74 6f 20 6d 65 73 73 61 67 65 20 2a 29 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20   ┆quare to message *)    begin    ┆
0x066a00…066a20            20 6d 69 6e 69 6d 75 6d 20 65 6e 67 6c 69 73 68 20 6e 6f 74 61 74 69 6f 6e 20 2a 29 0d 0a 76 61   ┆ minimum english notation *)  va┆
0x066a20…066a40            72 20 69 6e 74 6e 20 3a 20 74 6e 6e 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 61 64 64 63 68   ┆r intn : tnn;    procedure addch┆
0x066a40…066a60            72 28 61 3a 20 74 63 29 3b 09 28 2a 20 61 64 64 20 63 68 61 72 61 63 74 65 72 20 74 6f 20 6d 65   ┆r(a: tc); (* add character to me┆
0x066a60…066a80            73 73 61 67 65 20 2a 29 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 6d 6f 76 6d 73 5b 69 6e 74   ┆ssage *)    begin      movmsÆint┆
0x066a80…066aa0            73 77 70 72 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 73 77 62 6d 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20   ┆swpr:=false;    swbm:=false;    ┆
0x066aa0…066ac0            0d 0a 20 20 67 6f 69 6e 67 3a 3d 30 3b 0d 0a 65 6e 64 3b 09 28 2a 20 69 6e 69 63 6f 6e 20 2a 29   ┆    going:=0;  end; (* inicon *)┆
0x066ac0…066ae0            0d 0a 0d 0a 28 2a 20 63 68 65 73 73 2e 70 30 38 20 2a 29 0d 0a 70 72 6f 63 65 64 75 72 65 20 6d   ┆    (* chess.p08 *)  procedure m┆
0x066ae0…066b00            69 6e 65 6e 67 28 61 3a 20 72 6d 3b 20 62 3a 20 72 61 29 3b 09 28 2a 20 67 65 6e 65 72 61 74 65   ┆ineng(a: rm; b: ra); (* generate┆
0x066b00…066b20            20 20 0d 0a 20 20 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 73 77 69 74 63 68 65 73 20 2a 29 0d   ┆      (* initialize switches *) ┆
0x066b20…066b40            0a 20 20 73 77 65 63 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 73 77 70 61 3a 3d 74 72 75 65 3b 0d 0a   ┆   swec:=false;    swpa:=true;  ┆
0x066b40…066b60            20 20 73 77 70 73 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 73 77 72 65 3a 3d 74 72 75 65 3b 0d 0a 20   ┆  swps:=false;    swre:=true;   ┆
0x066b60…066b80            20 73 77 73 75 3a 3d 74 72 75 65 3b 0d 0a 20 20 73 77 74 72 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20   ┆ swsu:=true;    swtr:=false;    ┆
0x066b80…066ba0            6d 3a 3d 31 32 38 3b 0d 0a 20 20 66 77 70 61 77 6e 3a 3d 36 34 3b 0d 0a 20 20 66 77 72 6f 6f 6b   ┆m:=128;    fwpawn:=64;    fwrook┆
0x066ba0…066bc0            3a 3d 32 3b 0d 0a 20 20 66 63 68 65 63 6b 3a 3d 33 32 3b 0d 0a 20 20 66 77 61 74 74 6b 3a 3d 31   ┆:=2;    fcheck:=32;    fwattk:=1┆
0x066bc0…066be0            36 3b 0d 0a 20 20 66 6b 73 61 6e 71 3a 3d 36 34 3b 0d 0a 20 20 66 63 66 72 65 65 3a 3d 34 3b 0d   ┆6;    fksanq:=64;    fcfree:=4; ┆
0x066be0…066c00            0a 20 20 66 61 6b 69 6e 67 3a 3d 32 35 3b 0d 0a 20 20 77 69 6e 64 6f 77 3a 3d 31 30 30 3b 0d 0a   ┆   faking:=25;    window:=100;  ┆
0x066c00…066c20 (25, 1, 4) 20 20 66 72 64 75 62 6c 3a 3d 36 30 3b 0d 0a 20 20 66 72 6b 37 74 68 3a 3d 31 32 30 3b 0d 0a 20   ┆  frdubl:=60;    frk7th:=120;   ┆
0x066c20…066c40            20 66 74 72 61 64 65 3a 3d 33 36 3b 0d 0a 20 20 66 74 72 64 73 6c 3a 3d 35 31 35 36 3b 0d 0a 20   ┆ ftrade:=36;    ftrdsl:=5156;   ┆
0x066c40…066c60            20 66 74 72 70 6f 6b 3a 3d 32 3b 0d 0a 20 20 66 74 72 70 77 6e 3a 3d 38 3b 0d 0a 20 20 66 77 6b   ┆ ftrpok:=2;    ftrpwn:=8;    fwk┆
0x066c60…066c80            69 6e 67 3a 3d 32 30 3b 0d 0a 20 20 66 77 6d 61 6a 6d 3a 3d 36 34 3b 0d 0a 20 20 66 77 6d 69 6e   ┆ing:=20;    fwmajm:=64;    fwmin┆
0x066c80…066ca0            64 63 72 5b 66 34 5d 3a 3d 36 3b 0d 0a 20 20 66 70 61 64 63 72 5b 66 35 5d 3a 3d 37 3b 0d 0a 20   ┆dcrÆf4Å:=6;    fpadcrÆf5Å:=7;   ┆
0x066ca0…066cc0            20 66 70 61 64 63 72 5b 66 36 5d 3a 3d 34 3b 0d 0a 20 20 66 70 61 64 63 72 5b 66 37 5d 3a 3d 32   ┆ fpadcrÆf6Å:=4;    fpadcrÆf7Å:=2┆
0x066cc0…066ce0            3b 0d 0a 20 20 66 70 61 64 63 72 5b 66 38 5d 3a 3d 31 3b 0d 0a 20 20 66 70 62 6c 6f 6b 3a 3d 31   ┆;    fpadcrÆf8Å:=1;    fpblok:=1┆
0x066ce0…066d00            30 3b 0d 0a 20 20 66 70 63 6f 6e 6e 3a 3d 35 3b 0d 0a 20 20 66 70 66 6c 6e 78 3a 3d 33 3b 0d 0a   ┆0;    fpconn:=5;    fpflnx:=3;  ┆
0x066d00…066d20            28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 6c 65 74 73 20 2a 29 0d 0a 20 20 66 6b 70 73 68 64 3a   ┆(* initialize lets *)    fkpshd:┆
0x066d20…066d40            3d 31 30 3b 0d 0a 20 20 66 6d 61 78 6d 74 3a 3d 32 30 34 38 3b 0d 0a 20 20 73 74 61 67 65 73 3a   ┆=10;    fmaxmt:=2048;    stages:┆
0x066d40…066d60            3d 32 3b 0d 0a 20 20 66 70 61 64 63 72 5b 66 31 5d 3a 3d 31 3b 0d 0a 20 20 66 70 61 64 63 72 5b   ┆=2;    fpadcrÆf1Å:=1;    fpadcrÆ┆
0x066d60…066d80            66 32 5d 3a 3d 32 3b 0d 0a 20 20 66 70 61 64 63 72 5b 66 33 5d 3a 3d 34 3b 0d 0a 20 20 66 70 61   ┆f2Å:=2;    fpadcrÆf3Å:=4;    fpa┆
0x066d80…066da0            6e 69 73 79 6e 28 27 2f 20 52 31 2d 20 20 20 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27   ┆nisyn('/ R1-   R1');    inisyn('┆
0x066da0…066dc0            2f 4b 52 20 2d 20 20 20 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 52 31 2d 20 20   ┆/KR -   R1');    inisyn('/ R1-  ┆
0x066dc0…066de0            4b 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 4b 52 20 2d 20 20 4b 52 31 27 29 3b 0d   ┆KR1');    inisyn('/KR -  KR1'); ┆
0x066de0…066e00            0a 20 20 69 6e 69 73 79 6e 28 27 2f 4b 52 31 2d 20 20 4b 52 31 27 29 3b 0d 0a 20 20 0d 0a 20 20   ┆   inisyn('/KR1-  KR1');        ┆
0x066e00…066e20            20 20 69 6e 69 73 79 6e 28 27 20 20 20 20 2d 20 20 4b 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79   ┆  inisyn('    -  KR1');    inisy┆
0x066e20…066e40            6e 28 27 2f 20 20 31 2d 20 20 20 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 52 20   ┆n('/  1-   R1');    inisyn('/ R ┆
0x066e40…066e60            2d 20 20 20 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 20 31 2d 20 20 4b 52 31 27   ┆-   R1');    inisyn('/  1-  KR1'┆
0x066e60…066e80            29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 52 20 2d 20 20 4b 52 31 27 29 3b 0d 0a 20 20 69   ┆);    inisyn('/ R -  KR1');    i┆
0x066e80…066ea0            0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 52 31 2a 50 2f 4b 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73   ┆   inisyn('/ R1*P/KR1');    inis┆
0x066ea0…066ec0            79 6e 28 27 2f 4b 52 31 2a 50 2f 4b 52 20 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 4b 52   ┆yn('/KR1*P/KR ');    inisyn('/KR┆
0x066ec0…066ee0            20 2a 50 2f 4b 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 4b 52 31 2a 50 2f 4b 52 31   ┆ *P/KR1');    inisyn('/KR1*P/KR1┆
0x066ee0…066f00            27 29 3b 0d 0a 0d 0a 20 20 69 6e 69 73 79 6e 28 27 20 20 20 20 2d 20 20 20 52 31 27 29 3b 0d 0a   ┆');      inisyn('    -   R1');  ┆
0x066f00…066f20            29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 52 31 2a 50 2f 20 52 31 27 29 3b 0d 0a 20 20 69   ┆);    inisyn('/ R1*P/ R1');    i┆
0x066f20…066f40            6e 69 73 79 6e 28 27 2f 4b 52 20 2a 50 2f 20 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27   ┆nisyn('/KR *P/ R1');    inisyn('┆
0x066f40…066f60            2f 20 52 31 2a 50 2f 4b 52 20 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 4b 52 20 2a 50 2f   ┆/ R1*P/KR ');    inisyn('/KR *P/┆
0x066f60…066f80            4b 52 20 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 4b 52 31 2a 50 2f 20 52 31 27 29 3b 0d   ┆KR ');    inisyn('/KR1*P/ R1'); ┆
0x066f80…066fa0            52 20 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 52 20 2a 50 2f 4b 52 20 27 29 3b 0d 0a   ┆R ');    inisyn('/ R *P/KR ');  ┆
0x066fa0…066fc0            20 20 69 6e 69 73 79 6e 28 27 2f 20 20 31 2a 50 2f 4b 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79   ┆  inisyn('/  1*P/KR1');    inisy┆
0x066fc0…066fe0            6e 28 27 2f 4b 52 31 2a 50 2f 20 20 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 52 20   ┆n('/KR1*P/  1');    inisyn('/ R ┆
0x066fe0…067000            2a 50 2f 4b 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 4b 52 31 2a 50 2f 20 52 20 27   ┆*P/KR1');    inisyn('/KR1*P/ R '┆
0x067000…067020 (25, 1, 5) 50 2f 20 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 52 31 2a 50 2f 20 52 20 27 29   ┆P/ R1');    inisyn('/ R1*P/ R ')┆
0x067020…067040            3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 52 20 2a 50 2f 20 52 31 27 29 3b 0d 0a 20 20 69 6e   ┆;    inisyn('/ R *P/ R1');    in┆
0x067040…067060            69 73 79 6e 28 27 2f 4b 52 20 2a 50 2f 20 20 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f   ┆isyn('/KR *P/  1');    inisyn('/┆
0x067060…067080            20 20 31 2a 50 2f 4b 52 20 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 4b 52 20 2a 50 2f 20   ┆  1*P/KR ');    inisyn('/KR *P/ ┆
0x067080…0670a0            20 31 2a 50 2f 20 20 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 52 20 2a 50 2f 20 52   ┆ 1*P/  1');    inisyn('/ R *P/ R┆
0x0670a0…0670c0            20 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 20 31 2a 50 2f 20 52 20 27 29 3b 0d 0a 20   ┆ ');    inisyn('/  1*P/ R ');   ┆
0x0670c0…0670e0            20 69 6e 69 73 79 6e 28 27 2f 20 52 20 2a 50 2f 20 20 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e   ┆ inisyn('/ R *P/  1');    inisyn┆
0x0670e0…067100            28 27 2f 20 52 31 2a 50 2f 20 20 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 20 31 2a   ┆('/ R1*P/  1');    inisyn('/  1*┆
0x067100…067120            27 2f 20 52 31 2a 50 20 20 20 20 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 20 20 20 20 2a 50   ┆'/ R1*P    ');    inisyn('    *P┆
0x067120…067140            2f 20 4b 52 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 4b 52 2a 50 20 20 20 20 27 29 3b   ┆/ KR');    inisyn('/ KR*P    ');┆
0x067140…067160            0d 0a 20 20 69 6e 69 73 79 6e 28 27 20 20 20 20 2a 50 2f 4b 52 31 27 29 3b 0d 0a 20 20 69 6e 69   ┆    inisyn('    *P/KR1');    ini┆
0x067160…067180            73 79 6e 28 27 2f 4b 52 31 2a 50 2f 20 20 20 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20   ┆syn('/KR1*P/   ');    inisyn('/ ┆
0x067180…0671a0            79 6e 28 27 20 20 20 20 2a 50 2f 20 20 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 20   ┆yn('    *P/  1');    inisyn('/  ┆
0x0671a0…0671c0            31 2a 50 20 20 20 20 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 20 20 20 20 2a 50 2f 20 52 20   ┆1*P    ');    inisyn('    *P/ R ┆
0x0671c0…0671e0            27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28 27 2f 20 52 20 2a 50 20 20 20 20 27 29 3b 0d 0a 20 20   ┆');    inisyn('/ R *P    ');    ┆
0x0671e0…067200            69 6e 69 73 79 6e 28 27 20 20 20 20 2a 50 2f 20 52 31 27 29 3b 0d 0a 20 20 69 6e 69 73 79 6e 28   ┆inisyn('    *P/ R1');    inisyn(┆
0x067200…067220            20 20 69 63 61 72 64 5b 7a 6a 5d 3a 3d 27 3b 27 3b 0d 0a 20 20 69 6c 69 6e 65 5b 7a 6a 5d 3a 3d   ┆  icardÆzjÅ:=';';    ilineÆzjÅ:=┆
0x067220…067240            27 3b 27 3b 0d 0a 20 20 0d 0a 20 20 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 6d 6f 76 65 73 20   ┆';';        (* initialize moves ┆
0x067240…067260            73 79 6e 74 61 78 20 74 61 62 6c 65 20 2a 29 0d 0a 20 20 69 6e 74 69 3a 3d 73 79 6e 63 66 3b 0d   ┆syntax table *)    inti:=syncf; ┆
0x067260…067280            0a 20 20 69 6e 69 73 79 6e 28 27 20 20 20 20 2a 50 20 20 20 20 27 29 3b 0d 0a 20 20 69 6e 69 73   ┆   inisyn('    *P    ');    inis┆
0x067280…0672a0            20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 78 3a 3d 78 20 64 69 76 20 32 3b 0d 0a 20 20 20 20 65   ┆  end;        x:=x div 2;      e┆
0x0672a0…0672c0            6e 64 3b 0d 0a 20 20 20 20 63 74 5b 69 6e 74 69 5d 3a 3d 73 75 6d 3b 0d 0a 20 20 65 6e 64 3b 0d   ┆nd;      ctÆintiÅ:=sum;    end; ┆
0x0672c0…0672e0            0a 0d 0a 20 20 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6d 6d 61 6e 64 20 70 72 6f 63 65   ┆     (* initialize command proce┆
0x0672e0…067300            73 73 69 6e 67 20 76 61 72 69 61 62 6c 65 20 2a 29 0d 0a 20 20 6a 6d 74 6a 3a 3d 7a 6a 3b 0d 0a   ┆ssing variable *)    jmtj:=zj;  ┆
0x067300…067320            6e 74 69 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 69 6d 74 69 20 3e 20 30 20 64 6f 0d 0a 20 20 20   ┆nti;      while imti > 0 do     ┆
0x067320…067340            20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 66 20 69 6d 74 69 2d 78 20 3e 3d 20 30 20 74 68 65   ┆ begin        if imti-x >= 0 the┆
0x067340…067360            6e 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 73 75 6d 3a 3d 73 75 6d   ┆n        begin          sum:=sum┆
0x067360…067380            2b 31 3b 0d 0a 20 20 20 20 20 20 20 20 69 6d 74 69 3a 3d 69 6d 74 69 2d 78 3b 0d 0a 20 20 20 20   ┆+1;          imti:=imti-x;      ┆
0x067380…0673a0            6d 70 70 3a 3d 70 62 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 0d 0a 20 20 28 2a 20 69 6e 69 74 69   ┆mpp:=pb;    end;        (* initi┆
0x0673a0…0673c0            61 6c 69 7a 65 20 63 6f 75 6e 74 62 69 74 20 74 61 62 6c 65 20 2a 29 0d 0a 20 20 66 6f 72 20 69   ┆alize countbit table *)    for i┆
0x0673c0…0673e0            6e 74 69 3a 3d 30 20 74 6f 20 32 35 35 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 73   ┆nti:=0 to 255 do    begin      s┆
0x0673e0…067400            75 6d 3a 3d 30 3b 0d 0a 20 20 20 20 78 3a 3d 31 32 38 3b 0d 0a 20 20 20 20 69 6d 74 69 3a 3d 69   ┆um:=0;      x:=128;      imti:=i┆
0x067400…067420 (25, 1, 6) 20 20 20 72 6d 63 61 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 72 6d 61 63 3a 3d 74 72 75 65 3b   ┆   rmca:=false;      rmac:=true;┆
0x067420…067440            0d 0a 20 20 20 20 72 6d 63 68 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 72 6d 6d 74 3a 3d 66 61   ┆      rmch:=false;      rmmt:=fa┆
0x067440…067460            6c 73 65 3b 0d 0a 20 20 20 20 72 6d 69 6c 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 72 6d 73 75   ┆lse;      rmil:=false;      rmsu┆
0x067460…067480            3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 72 6d 70 72 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 72   ┆:=false;      rmpr:=true;      r┆
0x067480…0674a0            73 5b 64 6c 5d 3a 3d 78 74 72 66 73 5b 72 38 2c 66 31 5d 3b 0d 0a 20 20 0d 0a 20 20 28 2a 20 69   ┆sÆdlÅ:=xtrfsÆr8,f1Å;        (* i┆
0x0674a0…0674c0            6e 69 74 69 61 6c 69 7a 65 20 6e 75 6c 6c 20 6d 6f 76 65 20 2a 29 0d 0a 20 20 77 69 74 68 20 6e   ┆nitialize null move *)    with n┆
0x0674c0…0674e0            75 6c 6d 76 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 72 6d 66 72 3a 3d 61 73 3b 0d   ┆ulmv do    begin      rmfr:=as; ┆
0x0674e0…067500            0a 20 20 20 20 72 6d 74 6f 3a 3d 61 73 3b 0d 0a 20 20 20 20 72 6d 63 70 3a 3d 6d 74 3b 0d 0a 20   ┆     rmto:=as;      rmcp:=mt;   ┆
0x067500…067520            20 20 78 74 6d 71 5b 6c 69 74 65 5d 3a 3d 6c 73 3b 0d 0a 20 20 78 74 6d 71 5b 64 61 72 6b 5d 3a   ┆  xtmqÆliteÅ:=ls;    xtmqÆdarkÅ:┆
0x067520…067540            3d 64 73 3b 0d 0a 20 20 0d 0a 20 20 78 74 71 73 5b 6c 73 5d 3a 3d 78 74 72 66 73 5b 72 31 2c 66   ┆=ds;        xtqsÆlsÅ:=xtrfsÆr1,f┆
0x067540…067560            38 5d 3b 0d 0a 20 20 78 74 71 73 5b 6c 6c 5d 3a 3d 78 74 72 66 73 5b 72 31 2c 66 31 5d 3b 0d 0a   ┆8Å;    xtqsÆllÅ:=xtrfsÆr1,f1Å;  ┆
0x067560…067580            20 20 78 74 71 73 5b 64 73 5d 3a 3d 78 74 72 66 73 5b 72 38 2c 66 38 5d 3b 0d 0a 20 20 78 74 71   ┆  xtqsÆdsÅ:=xtrfsÆr8,f8Å;    xtq┆
0x067580…0675a0            2e 72 6d 74 6f 3a 3d 78 74 72 66 73 5b 72 38 2c 66 33 5d 3b 0d 0a 20 20 0d 0a 20 20 78 72 71 6d   ┆.rmto:=xtrfsÆr8,f3Å;        xrqm┆
0x0675a0…0675c0            5b 6c 73 5d 2e 72 6d 71 73 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 78 72 71 6d 5b 6c 6c 5d 2e 72 6d   ┆ÆlsÅ.rmqs:=false;    xrqmÆllÅ.rm┆
0x0675c0…0675e0            71 73 3a 3d 74 72 75 65 3b 0d 0a 20 20 78 72 71 6d 5b 64 73 5d 2e 72 6d 71 73 3a 3d 66 61 6c 73   ┆qs:=true;    xrqmÆdsÅ.rmqs:=fals┆
0x0675e0…067600            65 3b 0d 0a 20 20 78 72 71 6d 5b 64 6c 5d 2e 72 6d 71 73 3a 3d 74 72 75 65 3b 0d 0a 20 20 0d 0a   ┆e;    xrqmÆdlÅ.rmqs:=true;      ┆
0x067600…067620            71 6d 5b 6c 6c 5d 2e 72 6d 74 6f 3a 3d 78 74 72 66 73 5b 72 31 2c 66 33 5d 3b 0d 0a 20 20 78 72   ┆qmÆllÅ.rmto:=xtrfsÆr1,f3Å;    xr┆
0x067620…067640            71 6d 5b 64 73 5d 2e 72 6d 66 72 3a 3d 78 74 72 66 73 5b 72 38 2c 66 35 5d 3b 20 78 72 71 6d 5b   ┆qmÆdsÅ.rmfr:=xtrfsÆr8,f5Å; xrqmÆ┆
0x067640…067660            64 73 5d 2e 72 6d 74 6f 3a 3d 78 74 72 66 73 5b 72 38 2c 66 37 5d 3b 0d 0a 20 20 78 72 71 6d 5b   ┆dsÅ.rmto:=xtrfsÆr8,f7Å;    xrqmÆ┆
0x067660…067680            64 6c 5d 2e 72 6d 66 72 3a 3d 78 74 72 66 73 5b 72 38 2c 66 35 5d 3b 20 78 72 71 6d 5b 64 6c 5d   ┆dlÅ.rmfr:=xtrfsÆr8,f5Å; xrqmÆdlÅ┆
0x067680…0676a0            73 65 3b 0d 0a 20 20 20 20 20 20 72 6d 6f 6f 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 65 6e 64 3b   ┆se;        rmoo:=true;      end;┆
0x0676a0…0676c0            0d 0a 20 20 78 72 71 6d 5b 6c 73 5d 2e 72 6d 66 72 3a 3d 78 74 72 66 73 5b 72 31 2c 66 35 5d 3b   ┆    xrqmÆlsÅ.rmfr:=xtrfsÆr1,f5Å;┆
0x0676c0…0676e0            20 78 72 71 6d 5b 6c 73 5d 2e 72 6d 74 6f 3a 3d 78 74 72 66 73 5b 72 31 2c 66 37 5d 3b 0d 0a 20   ┆ xrqmÆlsÅ.rmto:=xtrfsÆr1,f7Å;   ┆
0x0676e0…067700            20 78 72 71 6d 5b 6c 6c 5d 2e 72 6d 66 72 3a 3d 78 74 72 66 73 5b 72 31 2c 66 35 5d 3b 20 78 72   ┆ xrqmÆllÅ.rmfr:=xtrfsÆr1,f5Å; xr┆
0x067700…067720            72 6d 63 61 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 72 6d 61 63 3a 3d 74 72 75 65 3b 0d   ┆rmca:=false;        rmac:=true; ┆
0x067720…067740            0a 20 20 20 20 20 20 72 6d 63 68 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 72 6d 6d 74 3a   ┆       rmch:=false;        rmmt:┆
0x067740…067760            3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 72 6d 69 6c 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20   ┆=false;        rmil:=false;     ┆
0x067760…067780            20 20 20 72 6d 73 75 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 72 6d 70 72 3a 3d 66 61 6c   ┆   rmsu:=false;        rmpr:=fal┆
0x067780…0677a0            72 71 73 6f 5b 64 6c 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 38 2c 66 32 5d 5d 2c 78 72 71 73   ┆rqsoÆdlÅ,xrssÆxtrfsÆr8,f2ÅÅ,xrqs┆
0x0677a0…0677c0            6f 5b 64 6c 5d 29 3b 0d 0a 20 20 0d 0a 20 20 66 6f 72 20 69 6e 74 71 3a 3d 6c 73 20 74 6f 20 64   ┆oÆdlÅ);        for intq:=ls to d┆
0x0677c0…0677e0            6c 20 64 6f 0d 0a 20 20 20 20 77 69 74 68 20 78 72 71 6d 5b 69 6e 74 71 5d 20 64 6f 0d 0a 20 20   ┆l do      with xrqmÆintqÅ do    ┆
0x0677e0…067800            20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 72 6d 63 70 3a 3d 6d 74 3b 0d 0a 20 20 20 20 20 20   ┆  begin        rmcp:=mt;        ┆
0x067800…067820 (25, 1, 7) 73 5b 78 74 72 66 73 5b 72 38 2c 66 33 5d 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 78 72 71 73 61   ┆sÆxtrfsÆr8,f3ÅÅ);    iorrs(xrqsa┆
0x067820…067840            5b 64 73 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 38 2c 66 35 5d 5d 2c 78 72 71 73 6f 5b 64 73   ┆ÆdsÅ,xrssÆxtrfsÆr8,f5ÅÅ,xrqsoÆds┆
0x067840…067860            5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 78 72 71 73 61 5b 64 6c 5d 2c 78 72 73 73 5b 78 74 72 66   ┆Å);    iorrs(xrqsaÆdlÅ,xrssÆxtrf┆
0x067860…067880            73 5b 72 38 2c 66 35 5d 5d 2c 78 72 71 73 6f 5b 64 6c 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 78   ┆sÆr8,f5ÅÅ,xrqsoÆdlÅ);    iorrs(x┆
0x067880…0678a0            72 66 73 5b 72 31 2c 66 32 5d 5d 2c 78 72 71 73 6f 5b 6c 6c 5d 29 3b 0d 0a 20 20 0d 0a 20 20 69   ┆rfsÆr1,f2ÅÅ,xrqsoÆllÅ);        i┆
0x0678a0…0678c0            6f 72 72 73 28 78 72 71 73 6f 5b 64 73 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 38 2c 66 36 5d   ┆orrs(xrqsoÆdsÅ,xrssÆxtrfsÆr8,f6Å┆
0x0678c0…0678e0            5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 38 2c 66 37 5d 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28   ┆Å,xrssÆxtrfsÆr8,f7ÅÅ);    iorrs(┆
0x0678e0…067900            78 72 71 73 6f 5b 64 6c 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 38 2c 66 34 5d 5d 2c 78 72 73   ┆xrqsoÆdlÅ,xrssÆxtrfsÆr8,f4ÅÅ,xrs┆
0x067900…067920            3b 0d 0a 20 20 69 6f 72 72 73 28 78 72 71 73 61 5b 6c 73 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b   ┆;    iorrs(xrqsaÆlsÅ,xrssÆxtrfsÆ┆
0x067920…067940            72 31 2c 66 35 5d 5d 2c 78 72 71 73 6f 5b 6c 73 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 78 72 71   ┆r1,f5ÅÅ,xrqsoÆlsÅ);    iorrs(xrq┆
0x067940…067960            73 61 5b 6c 6c 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 31 2c 66 35 5d 5d 2c 78 72 71 73 6f 5b   ┆saÆllÅ,xrssÆxtrfsÆr1,f5ÅÅ,xrqsoÆ┆
0x067960…067980            6c 6c 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 78 72 71 73 6f 5b 6c 6c 5d 2c 78 72 73 73 5b 78 74   ┆llÅ);    iorrs(xrqsoÆllÅ,xrssÆxt┆
0x067980…0679a0            2c 66 35 5d 5d 29 3b 0d 0a 20 20 0d 0a 20 20 69 6f 72 72 73 28 78 72 71 73 6f 5b 6c 73 5d 2c 78   ┆,f5ÅÅ);        iorrs(xrqsoÆlsÅ,x┆
0x0679a0…0679c0            72 73 73 5b 78 74 72 66 73 5b 72 31 2c 66 36 5d 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 31 2c   ┆rssÆxtrfsÆr1,f6ÅÅ,xrssÆxtrfsÆr1,┆
0x0679c0…0679e0            66 37 5d 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 78 72 71 73 6f 5b 6c 6c 5d 2c 78 72 73 73 5b 78   ┆f7ÅÅ);    iorrs(xrqsoÆllÅ,xrssÆx┆
0x0679e0…067a00            74 72 66 73 5b 72 31 2c 66 34 5d 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 31 2c 66 33 5d 5d 29   ┆trfsÆr1,f4ÅÅ,xrssÆxtrfsÆr1,f3ÅÅ)┆
0x067a00…067a20            72 73 73 5b 78 74 72 66 73 5b 72 31 2c 66 35 5d 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 78 73 71   ┆rssÆxtrfsÆr1,f5ÅÅ);    iorrs(xsq┆
0x067a20…067a40            73 5b 64 73 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 38 2c 66 38 5d 5d 2c 78 72 73 73 5b 78 74   ┆sÆdsÅ,xrssÆxtrfsÆr8,f8ÅÅ,xrssÆxt┆
0x067a40…067a60            72 66 73 5b 72 38 2c 66 35 5d 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 78 73 71 73 5b 64 6c 5d 2c   ┆rfsÆr8,f5ÅÅ);    iorrs(xsqsÆdlÅ,┆
0x067a60…067a80            78 72 73 73 5b 78 74 72 66 73 5b 72 38 2c 66 31 5d 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 38   ┆xrssÆxtrfsÆr8,f1ÅÅ,xrssÆxtrfsÆr8┆
0x067a80…067aa0            20 63 61 73 74 6c 69 6e 67 20 74 72 61 6e 73 6c 61 74 69 6f 6e 20 74 61 62 6c 65 73 20 2a 29 0d   ┆ castling translation tables *) ┆
0x067aa0…067ac0            0a 20 20 69 6f 72 72 73 28 78 73 71 73 5b 6c 73 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 31 2c   ┆   iorrs(xsqsÆlsÅ,xrssÆxtrfsÆr1,┆
0x067ac0…067ae0            66 38 5d 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 31 2c 66 35 5d 5d 29 3b 0d 0a 20 20 69 6f 72   ┆f8ÅÅ,xrssÆxtrfsÆr1,f5ÅÅ);    ior┆
0x067ae0…067b00            72 73 28 78 73 71 73 5b 6c 6c 5d 2c 78 72 73 73 5b 78 74 72 66 73 5b 72 31 2c 66 31 5d 5d 2c 78   ┆rs(xsqsÆllÅ,xrssÆxtrfsÆr1,f1ÅÅ,x┆
0x067b00…067b20            20 20 66 6f 72 20 69 6d 74 69 3a 3d 31 20 74 6f 20 37 20 64 6f 20 78 6c 6c 64 5b 69 6d 74 69 2a   ┆  for imti:=1 to 7 do xlldÆimti*┆
0x067b20…067b40            69 6e 74 64 5d 3a 3d 69 6e 74 64 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 66 6f 72 20 69 6e 74 65   ┆intdÅ:=intd;    end;    for inte┆
0x067b40…067b60            3a 3d 6e 31 20 74 6f 20 6e 38 20 64 6f 20 78 6c 6c 64 5b 78 74 65 64 5b 69 6e 74 65 5d 5d 3a 3d   ┆:=n1 to n8 do xlldÆxtedÆinteÅÅ:=┆
0x067b60…067b80            78 74 65 64 5b 69 6e 74 65 5d 3b 0d 0a 20 20 0d 0a 20 20 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65   ┆xtedÆinteÅ;        (* initialize┆
0x067b80…067ba0            6e 63 65 20 74 6f 20 64 69 72 65 63 74 69 6f 6e 20 74 61 62 6c 65 20 2a 29 0d 0a 20 20 66 6f 72   ┆nce to direction table *)    for┆
0x067ba0…067bc0            20 69 6e 74 69 3a 3d 61 7a 6c 20 74 6f 20 7a 61 6c 20 64 6f 20 78 6c 6c 64 5b 69 6e 74 69 5d 3a   ┆ inti:=azl to zal do xlldÆintiÅ:┆
0x067bc0…067be0            3d 30 3b 0d 0a 20 20 66 6f 72 20 69 6e 74 65 3a 3d 62 31 20 74 6f 20 73 34 20 64 6f 0d 0a 20 20   ┆=0;    for inte:=b1 to s4 do    ┆
0x067be0…067c00            62 65 67 69 6e 0d 0a 20 20 20 20 69 6e 74 64 3a 3d 78 74 65 64 5b 69 6e 74 65 5d 3b 0d 0a 20 20   ┆begin      intd:=xtedÆinteÅ;    ┆
0x067c00…067c20 (25, 1, 8) 64 5b 62 34 5d 3a 3d 2d 31 31 3b 20 78 74 65 64 5b 73 34 5d 3a 3d 2d 31 30 3b 0d 0a 20 20 78 74   ┆dÆb4Å:=-11; xtedÆs4Å:=-10;    xt┆
0x067c20…067c40            65 64 5b 62 33 5d 3a 3d 20 2d 39 3b 20 78 74 65 64 5b 6e 34 5d 3a 3d 20 2d 38 3b 0d 0a 20 20 78   ┆edÆb3Å:= -9; xtedÆn4Å:= -8;    x┆
0x067c40…067c60            74 65 64 5b 6e 36 5d 3a 3d 2d 32 31 3b 20 78 74 65 64 5b 6e 35 5d 3a 3d 2d 31 39 3b 0d 0a 20 20   ┆tedÆn6Å:=-21; xtedÆn5Å:=-19;    ┆
0x067c60…067c80            0d 0a 20 20 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 73 71 75 61 72 65 20 64 69 66 66 65 72 65   ┆    (* initialize square differe┆
0x067c80…067ca0            5d 3a 3d 20 20 38 3b 20 78 74 65 64 5b 62 31 5d 3a 3d 20 20 39 3b 0d 0a 20 20 78 74 65 64 5b 73   ┆Å:=  8; xtedÆb1Å:=  9;    xtedÆs┆
0x067ca0…067cc0            32 5d 3a 3d 20 31 30 3b 20 78 74 65 64 5b 62 32 5d 3a 3d 20 31 31 3b 0d 0a 20 20 78 74 65 64 5b   ┆2Å:= 10; xtedÆb2Å:= 11;    xtedÆ┆
0x067cc0…067ce0            6e 33 5d 3a 3d 20 31 32 3b 20 78 74 65 64 5b 73 31 5d 3a 3d 20 2d 31 3b 0d 0a 20 20 78 74 65 64   ┆n3Å:= 12; xtedÆs1Å:= -1;    xted┆
0x067ce0…067d00            5b 73 33 5d 3a 3d 20 20 31 3b 20 78 74 65 64 5b 6e 37 5d 3a 3d 2d 31 32 3b 0d 0a 20 20 78 74 65   ┆Æs3Å:=  1; xtedÆn7Å:=-12;    xte┆
0x067d00…067d20            63 6f 72 6e 72 2c 78 72 66 73 5b 66 38 5d 29 3b 0d 0a 20 20 61 6e 64 72 73 28 63 6f 72 6e 72 2c   ┆cornr,xrfsÆf8Å);    andrs(cornr,┆
0x067d20…067d40            63 6f 72 6e 72 2c 69 6e 72 73 29 3b 0d 0a 20 20 0d 0a 20 20 28 2a 20 69 6e 69 74 69 61 6c 69 7a   ┆cornr,inrs);        (* initializ┆
0x067d40…067d60            65 20 64 69 72 65 63 74 69 6f 6e 20 74 61 62 6c 65 20 2a 29 0d 0a 20 20 78 74 65 64 5b 6e 31 5d   ┆e direction table *)    xtedÆn1Å┆
0x067d60…067d80            3a 3d 20 31 39 3b 20 78 74 65 64 5b 6e 32 5d 3a 3d 20 32 31 3b 0d 0a 20 20 78 74 65 64 5b 6e 38   ┆:= 19; xtedÆn2Å:= 21;    xtedÆn8┆
0x067d80…067da0            69 6e 72 73 2c 78 72 72 73 5b 72 37 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 69 6e 72 73 2c 69 6e   ┆inrs,xrrsÆr7Å);    iorrs(inrs,in┆
0x067da0…067dc0            72 73 2c 78 72 72 73 5b 72 38 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 63 6f 72 6e 72 2c 78 72 66   ┆rs,xrrsÆr8Å);    iorrs(cornr,xrf┆
0x067dc0…067de0            73 5b 66 31 5d 2c 78 72 66 73 5b 66 32 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 63 6f 72 6e 72 2c   ┆sÆf1Å,xrfsÆf2Å);    iorrs(cornr,┆
0x067de0…067e00            63 6f 72 6e 72 2c 78 72 66 73 5b 66 37 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 63 6f 72 6e 72 2c   ┆cornr,xrfsÆf7Å);    iorrs(cornr,┆
0x067e00…067e20            66 32 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 65 64 67 65 5b 6e 38 5d 2c 65 64 67 65 5b 62 31 5d   ┆f2Å);    iorrs(edgeÆn8Å,edgeÆb1Å┆
0x067e20…067e40            2c 78 72 66 73 5b 66 32 5d 29 3b 0d 0a 20 20 0d 0a 20 20 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65   ┆,xrfsÆf2Å);        (* initialize┆
0x067e40…067e60            20 63 6f 72 6e 65 72 20 6d 61 73 6b 20 2a 29 0d 0a 20 20 69 6f 72 72 73 28 69 6e 72 73 2c 78 72   ┆ corner mask *)    iorrs(inrs,xr┆
0x067e60…067e80            72 73 5b 72 31 5d 2c 78 72 72 73 5b 72 32 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 69 6e 72 73 2c   ┆rsÆr1Å,xrrsÆr2Å);    iorrs(inrs,┆
0x067e80…067ea0            65 64 67 65 5b 62 33 5d 2c 78 72 66 73 5b 66 37 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 65 64 67   ┆edgeÆb3Å,xrfsÆf7Å);    iorrs(edg┆
0x067ea0…067ec0            65 5b 6e 35 5d 2c 65 64 67 65 5b 62 33 5d 2c 78 72 72 73 5b 72 32 5d 29 3b 0d 0a 20 20 69 6f 72   ┆eÆn5Å,edgeÆb3Å,xrrsÆr2Å);    ior┆
0x067ec0…067ee0            72 73 28 65 64 67 65 5b 6e 36 5d 2c 65 64 67 65 5b 62 34 5d 2c 78 72 72 73 5b 72 32 5d 29 3b 0d   ┆rs(edgeÆn6Å,edgeÆb4Å,xrrsÆr2Å); ┆
0x067ee0…067f00            0a 20 20 69 6f 72 72 73 28 65 64 67 65 5b 6e 37 5d 2c 65 64 67 65 5b 62 34 5d 2c 78 72 66 73 5b   ┆   iorrs(edgeÆn7Å,edgeÆb4Å,xrfsÆ┆
0x067f00…067f20            6f 72 72 73 28 65 64 67 65 5b 6e 31 5d 2c 65 64 67 65 5b 62 31 5d 2c 78 72 72 73 5b 72 37 5d 29   ┆orrs(edgeÆn1Å,edgeÆb1Å,xrrsÆr7Å)┆
0x067f20…067f40            3b 0d 0a 20 20 69 6f 72 72 73 28 65 64 67 65 5b 6e 32 5d 2c 65 64 67 65 5b 62 32 5d 2c 78 72 72   ┆;    iorrs(edgeÆn2Å,edgeÆb2Å,xrr┆
0x067f40…067f60            73 5b 72 37 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 65 64 67 65 5b 6e 33 5d 2c 65 64 67 65 5b 62   ┆sÆr7Å);    iorrs(edgeÆn3Å,edgeÆb┆
0x067f60…067f80            32 5d 2c 78 72 66 73 5b 66 37 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 65 64 67 65 5b 6e 34 5d 2c   ┆2Å,xrfsÆf7Å);    iorrs(edgeÆn4Å,┆
0x067f80…067fa0            64 67 65 5b 73 32 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 65 64 67 65 5b 62 32 5d 2c 65 64 67 65   ┆dgeÆs2Å);    iorrs(edgeÆb2Å,edge┆
0x067fa0…067fc0            5b 73 32 5d 2c 65 64 67 65 5b 73 33 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 65 64 67 65 5b 62 33   ┆Æs2Å,edgeÆs3Å);    iorrs(edgeÆb3┆
0x067fc0…067fe0            5d 2c 65 64 67 65 5b 73 33 5d 2c 65 64 67 65 5b 73 34 5d 29 3b 0d 0a 20 20 69 6f 72 72 73 28 65   ┆Å,edgeÆs3Å,edgeÆs4Å);    iorrs(e┆
0x067fe0…068000            64 67 65 5b 62 34 5d 2c 65 64 67 65 5b 73 34 5d 2c 65 64 67 65 5b 73 31 5d 29 3b 0d 0a 20 20 69   ┆dgeÆb4Å,edgeÆs4Å,edgeÆs1Å);    i┆
0x068000…068020 (26, 0, 1) 64 67 65 73 20 2a 29 0d 0a 20 20 65 64 67 65 5b 73 31 5d 3a 3d 78 72 66 73 5b 66 31 5d 3b 0d 0a   ┆dges *)    edgeÆs1Å:=xrfsÆf1Å;  ┆
0x068020…068040            20 20 65 64 67 65 5b 73 32 5d 3a 3d 78 72 72 73 5b 72 38 5d 3b 0d 0a 20 20 65 64 67 65 5b 73 33   ┆  edgeÆs2Å:=xrrsÆr8Å;    edgeÆs3┆
0x068040…068060            5d 3a 3d 78 72 66 73 5b 66 38 5d 3b 0d 0a 20 20 65 64 67 65 5b 73 34 5d 3a 3d 78 72 72 73 5b 72   ┆Å:=xrfsÆf8Å;    edgeÆs4Å:=xrrsÆr┆
0x068060…068080            31 5d 3b 0d 0a 20 20 69 6f 72 72 73 28 65 64 67 65 5b 62 31 5d 2c 65 64 67 65 5b 73 31 5d 2c 65   ┆1Å;    iorrs(edgeÆb1Å,edgeÆs1Å,e┆
0x068080…0680a0            6f 72 20 69 6e 74 66 3a 3d 66 31 20 74 6f 20 66 38 20 64 6f 20 6e 6f 74 72 73 28 78 6e 66 73 5b   ┆or intf:=f1 to f8 do notrs(xnfsÆ┆
0x0680a0…0680c0            69 6e 74 66 5d 2c 78 72 66 73 5b 69 6e 74 66 5d 29 3b 0d 0a 20 20 66 6f 72 20 69 6e 74 72 3a 3d   ┆intfÅ,xrfsÆintfÅ);    for intr:=┆
0x0680c0…0680e0            72 31 20 74 6f 20 72 38 20 64 6f 20 6e 6f 74 72 73 28 78 6e 72 73 5b 69 6e 74 72 5d 2c 78 72 72   ┆r1 to r8 do notrs(xnrsÆintrÅ,xrr┆
0x0680e0…068100            73 5b 69 6e 74 72 5d 29 3b 0d 0a 20 20 0d 0a 20 20 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 65   ┆sÆintrÅ);        (* initialize e┆
0x068100…068120            6e 74 66 3a 3d 66 31 20 74 6f 20 66 38 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20   ┆ntf:=f1 to f8 do      begin     ┆
0x068120…068140            20 20 20 73 65 74 72 73 28 78 72 72 73 5b 69 6e 74 72 5d 2c 78 74 72 66 73 5b 69 6e 74 72 2c 69   ┆   setrs(xrrsÆintrÅ,xtrfsÆintr,i┆
0x068140…068160            6e 74 66 5d 29 3b 0d 0a 20 20 20 20 20 20 73 65 74 72 73 28 78 72 66 73 5b 69 6e 74 66 5d 2c 78   ┆ntfÅ);        setrs(xrfsÆintfÅ,x┆
0x068160…068180            74 72 66 73 5b 69 6e 74 72 2c 69 6e 74 66 5d 29 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 66   ┆trfsÆintr,intfÅ);      end;    f┆
0x068180…0681a0            73 20 2a 29 0d 0a 20 20 66 6f 72 20 69 6e 74 72 3a 3d 72 31 20 74 6f 20 72 38 20 64 6f 20 6e 65   ┆s *)    for intr:=r1 to r8 do ne┆
0x0681a0…0681c0            77 72 73 28 78 72 72 73 5b 69 6e 74 72 5d 29 3b 0d 0a 20 20 66 6f 72 20 69 6e 74 66 3a 3d 66 31   ┆wrs(xrrsÆintrÅ);    for intf:=f1┆
0x0681c0…0681e0            20 74 6f 20 66 38 20 64 6f 20 6e 65 77 72 73 28 78 72 66 73 5b 69 6e 74 66 5d 29 3b 0d 0a 20 20   ┆ to f8 do newrs(xrfsÆintfÅ);    ┆
0x0681e0…068200            66 6f 72 20 69 6e 74 72 3a 3d 72 31 20 74 6f 20 72 38 20 64 6f 0d 0a 20 20 20 20 66 6f 72 20 69   ┆for intr:=r1 to r8 do      for i┆
0x068200…068220            74 74 5d 3a 3d 5b 69 6e 74 78 5d 3b 0d 0a 20 20 20 20 20 20 6e 65 77 72 73 28 78 72 73 73 5b 69   ┆ttÅ:=ÆintxÅ;        newrs(xrssÆi┆
0x068220…068240            6e 74 74 5d 29 3b 0d 0a 20 20 20 20 20 20 78 72 73 73 5b 69 6e 74 74 5d 2e 72 73 73 73 3a 3d 5b   ┆nttÅ);        xrssÆinttÅ.rsss:=Æ┆
0x068240…068260            69 6e 74 78 5d 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 0d 0a 20 20   ┆intxÅ;      end;    end;        ┆
0x068260…068280            28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 63 6f 6e 73 74 61 6e 74 20 62 69 74 20 62 6f 61 72 64   ┆(* initialize constant bit board┆
0x068280…0682a0            65 67 69 6e 0d 0a 20 20 20 20 66 6f 72 20 69 6e 74 78 3a 3d 61 78 20 74 6f 20 7a 78 20 64 6f 0d   ┆egin      for intx:=ax to zx do ┆
0x0682a0…0682c0            0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 6e 74 74 3a 3d 69 6e 74 74 2b 31 3b 0d   ┆     begin        intt:=intt+1; ┆
0x0682c0…0682e0            0a 20 20 20 20 20 20 78 74 73 78 5b 69 6e 74 74 5d 3a 3d 69 6e 74 78 3b 0d 0a 20 20 20 20 20 20   ┆       xtsxÆinttÅ:=intx;        ┆
0x0682e0…068300            78 74 73 79 5b 69 6e 74 74 5d 3a 3d 69 6e 74 79 3b 0d 0a 20 20 20 20 20 20 78 73 73 78 5b 69 6e   ┆xtsyÆinttÅ:=inty;        xssxÆin┆
0x068300…068320            0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 69 6e 74 6c 3a 3d 69 6e 74 6c 2b 32 3b 0d 0a 20   ┆      end;      intl:=intl+2;   ┆
0x068320…068340            20 65 6e 64 3b 0d 0a 20 20 0d 0a 20 20 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 38 58 38 20 74   ┆ end;        (* initialize 8X8 t┆
0x068340…068360            6f 20 62 69 74 20 62 6f 61 72 64 20 74 61 62 6c 65 73 20 2a 29 0d 0a 20 20 69 6e 74 74 3a 3d 2d   ┆o bit board tables *)    intt:=-┆
0x068360…068380            31 3b 0d 0a 20 20 66 6f 72 20 69 6e 74 79 3a 3d 61 79 20 74 6f 20 61 79 20 64 6f 0d 0a 20 20 62   ┆1;    for inty:=ay to ay do    b┆
0x068380…0683a0            3a 3d 69 6e 74 74 3b 0d 0a 20 20 20 20 20 20 78 74 6c 73 5b 69 6e 74 6c 5d 3a 3d 69 6e 74 74 3b   ┆:=intt;        xtlsÆintlÅ:=intt;┆
0x0683a0…0683c0            0d 0a 20 20 20 20 20 20 78 74 73 6c 5b 69 6e 74 74 5d 3a 3d 69 6e 74 6c 3b 0d 0a 20 20 20 20 20   ┆        xtslÆinttÅ:=intl;       ┆
0x0683c0…0683e0            20 78 74 73 72 5b 69 6e 74 74 5d 3a 3d 69 6e 74 72 3b 0d 0a 20 20 20 20 20 20 78 74 73 66 5b 69   ┆ xtsrÆinttÅ:=intr;        xtsfÆi┆
0x0683e0…068400            6e 74 74 5d 3a 3d 69 6e 74 66 3b 0d 0a 20 20 20 20 20 20 69 6e 74 6c 3a 3d 69 6e 74 6c 2b 31 3b   ┆nttÅ:=intf;        intl:=intl+1;┆
0x068400…068420 (26, 0, 2) 20 20 69 6e 74 74 3a 3d 2d 31 3b 0d 0a 20 20 66 6f 72 20 69 6e 74 72 3a 3d 72 31 20 74 6f 20 72   ┆  intt:=-1;    for intr:=r1 to r┆
0x068420…068440            38 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 66 6f 72 20 69 6e 74 66 3a 3d 66 31 20   ┆8 do    begin      for intf:=f1 ┆
0x068440…068460            74 6f 20 66 38 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 6e 74 74 3a   ┆to f8 do      begin        intt:┆
0x068460…068480            3d 69 6e 74 74 2b 31 3b 0d 0a 20 20 20 20 20 20 78 74 72 66 73 5b 69 6e 74 72 2c 69 6e 74 66 5d   ┆=intt+1;        xtrfsÆintr,intfÅ┆
0x068480…0684a0            0a 20 20 0d 0a 20 20 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 31 30 58 31 32 20 74 6f 20 38 58   ┆       (* initialize 10X12 to 8X┆
0x0684a0…0684c0            38 20 61 6e 64 20 38 58 38 20 74 6f 20 31 30 58 31 32 20 74 72 61 6e 73 6c 61 74 69 6f 6e 20 74   ┆8 and 8X8 to 10X12 translation t┆
0x0684c0…0684e0            61 62 6c 65 73 20 2a 29 0d 0a 20 20 66 6f 72 20 69 6e 74 6c 3a 3d 61 6c 20 74 6f 20 7a 6c 20 64   ┆ables *)    for intl:=al to zl d┆
0x0684e0…068500            6f 20 78 74 6c 73 5b 69 6e 74 6c 5d 3a 3d 2d 31 3b 0d 0a 20 20 69 6e 74 6c 3a 3d 32 31 3b 0d 0a   ┆o xtlsÆintlÅ:=-1;    intl:=21;  ┆
0x068500…068520            3a 3d 27 20 20 20 4e 4f 20 4f 4e 45 20 27 3b 0d 0a 20 20 0d 0a 20 20 78 74 71 61 5b 6c 73 5d 3a   ┆:='   NO ONE ';        xtqaÆlsÅ:┆
0x068520…068540            3d 27 57 48 49 54 45 20 4b 49 4e 47 27 3b 0d 0a 20 20 78 74 71 61 5b 6c 6c 5d 3a 3d 27 57 48 49   ┆='WHITE KING';    xtqaÆllÅ:='WHI┆
0x068540…068560            54 45 20 4c 4f 4e 47 27 3b 0d 0a 20 20 78 74 71 61 5b 64 73 5d 3a 3d 27 42 4c 41 43 4b 20 4b 49   ┆TE LONG';    xtqaÆdsÅ:='BLACK KI┆
0x068560…068580            4e 47 27 3b 0d 0a 20 20 78 74 71 61 5b 64 6c 5d 3a 3d 27 42 4c 41 43 4b 20 4c 4f 4e 47 27 3b 0d   ┆NG';    xtqaÆdlÅ:='BLACK LONG'; ┆
0x068580…0685a0            72 5b 64 61 72 6b 5d 3a 3d 6c 69 74 65 3b 20 78 74 6d 76 5b 64 61 72 6b 5d 3a 3d 2d 31 3b 0d 0a   ┆rÆdarkÅ:=lite; xtmvÆdarkÅ:=-1;  ┆
0x0685a0…0685c0            20 20 6f 74 68 65 72 5b 6e 6f 6e 65 5d 3a 3d 6e 6f 6e 65 3b 0d 0a 20 20 0d 0a 20 20 78 74 6d 61   ┆  otherÆnoneÅ:=none;        xtma┆
0x0685c0…0685e0            5b 6c 69 74 65 5d 3a 3d 27 20 20 20 20 57 48 49 54 45 20 27 3b 0d 0a 20 20 78 74 6d 61 5b 64 61   ┆ÆliteÅ:='    WHITE ';    xtmaÆda┆
0x0685e0…068600            72 6b 5d 3a 3d 27 20 20 20 20 42 4c 41 43 4b 20 27 3b 0d 0a 20 20 78 74 6d 61 5b 6e 6f 6e 65 5d   ┆rkÅ:='    BLACK ';    xtmaÆnoneÅ┆
0x068600…068620            0d 0a 20 20 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 6f 74 68 65 72 20 63 6f 6e 73 74 61 6e 74   ┆    (* initialize other constant┆
0x068620…068640            73 20 2a 29 0d 0a 20 20 78 74 62 63 5b 66 61 6c 73 65 5d 3a 3d 27 2d 27 3b 0d 0a 20 20 78 74 62   ┆s *)    xtbcÆfalseÅ:='-';    xtb┆
0x068640…068660            63 5b 74 72 75 65 20 5d 3a 3d 27 2a 27 3b 0d 0a 20 20 0d 0a 20 20 6f 74 68 65 72 5b 6c 69 74 65   ┆cÆtrue Å:='*';        otherÆlite┆
0x068660…068680            5d 3a 3d 64 61 72 6b 3b 20 78 74 6d 76 5b 6c 69 74 65 5d 3a 3d 20 31 3b 0d 0a 20 20 6f 74 68 65   ┆Å:=dark; xtmvÆliteÅ:= 1;    othe┆
0x068680…0686a0            67 63 5b 70 62 5d 3a 3d 27 42 27 3b 0d 0a 20 20 0d 0a 20 20 78 74 75 63 5b 65 6b 5d 3a 3d 27 4b   ┆gcÆpbÅ:='B';        xtucÆekÅ:='K┆
0x0686a0…0686c0            27 3b 0d 0a 20 20 78 74 75 63 5b 65 71 5d 3a 3d 27 51 27 3b 0d 0a 20 20 78 74 75 63 5b 65 72 5d   ┆';    xtucÆeqÅ:='Q';    xtucÆerÅ┆
0x0686c0…0686e0            3a 3d 27 52 27 3b 0d 0a 20 20 78 74 75 63 5b 65 6e 5d 3a 3d 27 4e 27 3b 0d 0a 20 20 78 74 75 63   ┆:='R';    xtucÆenÅ:='N';    xtuc┆
0x0686e0…068700            5b 65 62 5d 3a 3d 27 42 27 3b 0d 0a 20 20 78 74 75 63 5b 65 70 5d 3a 3d 27 50 27 3b 0d 0a 20 20   ┆ÆebÅ:='B';    xtucÆepÅ:='P';    ┆
0x068700…068720            61 72 6b 5d 3a 3d 64 72 3b 20 78 74 67 63 5b 70 72 5d 3a 3d 27 52 27 3b 0d 0a 20 20 78 74 67 6d   ┆arkÅ:=dr; xtgcÆprÅ:='R';    xtgm┆
0x068720…068740            70 5b 70 6e 2c 6c 69 74 65 5d 3a 3d 6c 6e 3b 20 78 74 67 6d 70 5b 70 6e 2c 64 61 72 6b 5d 3a 3d   ┆pÆpn,liteÅ:=ln; xtgmpÆpn,darkÅ:=┆
0x068740…068760            64 6e 3b 20 78 74 67 63 5b 70 6e 5d 3a 3d 27 4e 27 3b 0d 0a 20 20 78 74 67 6d 70 5b 70 62 2c 6c   ┆dn; xtgcÆpnÅ:='N';    xtgmpÆpb,l┆
0x068760…068780            69 74 65 5d 3a 3d 6c 62 3b 20 78 74 67 6d 70 5b 70 62 2c 64 61 72 6b 5d 3a 3d 64 62 3b 20 78 74   ┆iteÅ:=lb; xtgmpÆpb,darkÅ:=db; xt┆
0x068780…0687a0            70 28 6d 74 2c 27 2e 27 2c 6e 6f 6e 65 2c 65 70 2c 66 61 6c 73 65 2c 62 32 2c 62 31 2c 30 29 3b   ┆p(mt,'.',none,ep,false,b2,b1,0);┆
0x0687a0…0687c0            0d 0a 20 20 0d 0a 20 20 78 74 67 6d 70 5b 70 71 2c 6c 69 74 65 5d 3a 3d 6c 71 3b 20 78 74 67 6d   ┆        xtgmpÆpq,liteÅ:=lq; xtgm┆
0x0687c0…0687e0            70 5b 70 71 2c 64 61 72 6b 5d 3a 3d 64 71 3b 20 78 74 67 63 5b 70 71 5d 3a 3d 27 51 27 3b 0d 0a   ┆pÆpq,darkÅ:=dq; xtgcÆpqÅ:='Q';  ┆
0x0687e0…068800            20 20 78 74 67 6d 70 5b 70 72 2c 6c 69 74 65 5d 3a 3d 6c 72 3b 20 78 74 67 6d 70 5b 70 72 2c 64   ┆  xtgmpÆpr,liteÅ:=lr; xtgmpÆpr,d┆
0x068800…068820 (26, 0, 3) 62 2c 27 42 27 2c 64 61 72 6b 2c 65 62 2c 74 72 75 65 20 2c 62 31 2c 62 34 2c 2d 33 2a 36 34 29   ┆b,'B',dark,eb,true ,b1,b4,-3*64)┆
0x068820…068840            3b 0d 0a 20 20 69 6e 69 78 74 70 28 64 71 2c 27 51 27 2c 64 61 72 6b 2c 65 71 2c 74 72 75 65 20   ┆;    inixtp(dq,'Q',dark,eq,true ┆
0x068840…068860            2c 62 31 2c 73 34 2c 2d 39 2a 36 34 29 3b 0d 0a 20 20 69 6e 69 78 74 70 28 64 6b 2c 27 4b 27 2c   ┆,b1,s4,-9*64);    inixtp(dk,'K',┆
0x068860…068880            64 61 72 6b 2c 65 6b 2c 66 61 6c 73 65 2c 62 31 2c 73 34 2c 30 29 3b 0d 0a 20 20 69 6e 69 78 74   ┆dark,ek,false,b1,s4,0);    inixt┆
0x068880…0688a0            61 72 6b 2c 65 70 2c 66 61 6c 73 65 2c 62 33 2c 62 34 2c 2d 31 2a 36 34 29 3b 0d 0a 20 20 69 6e   ┆ark,ep,false,b3,b4,-1*64);    in┆
0x0688a0…0688c0            69 78 74 70 28 64 72 2c 27 52 27 2c 64 61 72 6b 2c 65 72 2c 74 72 75 65 20 2c 73 31 2c 73 34 2c   ┆ixtp(dr,'R',dark,er,true ,s1,s4,┆
0x0688c0…0688e0            2d 35 2a 36 34 29 3b 0d 0a 20 20 69 6e 69 78 74 70 28 64 6e 2c 27 4e 27 2c 64 61 72 6b 2c 65 6e   ┆-5*64);    inixtp(dn,'N',dark,en┆
0x0688e0…068900            2c 66 61 6c 73 65 2c 6e 31 2c 6e 38 2c 2d 33 2a 36 34 29 3b 0d 0a 20 20 69 6e 69 78 74 70 28 64   ┆,false,n1,n8,-3*64);    inixtp(d┆
0x068900…068920            74 65 2c 65 62 2c 74 72 75 65 20 2c 62 31 2c 62 34 2c 33 2a 36 34 29 3b 0d 0a 20 20 69 6e 69 78   ┆te,eb,true ,b1,b4,3*64);    inix┆
0x068920…068940            74 70 28 6c 71 2c 27 51 27 2c 6c 69 74 65 2c 65 71 2c 74 72 75 65 20 2c 62 31 2c 73 34 2c 39 2a   ┆tp(lq,'Q',lite,eq,true ,b1,s4,9*┆
0x068940…068960            36 34 29 3b 0d 0a 20 20 69 6e 69 78 74 70 28 6c 6b 2c 27 4b 27 2c 6c 69 74 65 2c 65 6b 2c 66 61   ┆64);    inixtp(lk,'K',lite,ek,fa┆
0x068960…068980            6c 73 65 2c 62 31 2c 73 34 2c 30 29 3b 0d 0a 20 20 69 6e 69 78 74 70 28 64 70 2c 27 50 27 2c 64   ┆lse,b1,s4,0);    inixtp(dp,'P',d┆
0x068980…0689a0            70 2c 66 61 6c 73 65 2c 62 31 2c 62 32 2c 31 2a 36 34 29 3b 0d 0a 20 20 69 6e 69 78 74 70 28 6c   ┆p,false,b1,b2,1*64);    inixtp(l┆
0x0689a0…0689c0            72 2c 27 52 27 2c 6c 69 74 65 2c 65 72 2c 74 72 75 65 20 2c 73 31 2c 73 34 2c 35 2a 36 34 29 3b   ┆r,'R',lite,er,true ,s1,s4,5*64);┆
0x0689c0…0689e0            0d 0a 20 20 69 6e 69 78 74 70 28 6c 6e 2c 27 4e 27 2c 6c 69 74 65 2c 65 6e 2c 66 61 6c 73 65 2c   ┆    inixtp(ln,'N',lite,en,false,┆
0x0689e0…068a00            6e 31 2c 6e 38 2c 33 2a 36 34 29 3b 0d 0a 20 20 69 6e 69 78 74 70 28 6c 62 2c 27 42 27 2c 6c 69   ┆n1,n8,3*64);    inixtp(lb,'B',li┆
0x068a00…068a20            20 20 20 20 78 6c 70 65 5b 61 5d 3a 3d 67 3b 0d 0a 20 20 20 20 78 74 70 75 5b 61 5d 3a 3d 64 3b   ┆    xlpeÆaÅ:=g;      xtpuÆaÅ:=d;┆
0x068a20…068a40            0d 0a 20 20 20 20 78 74 70 76 5b 61 5d 3a 3d 68 3b 0d 0a 20 20 20 20 69 66 20 61 20 3c 3e 20 6d   ┆      xtpvÆaÅ:=h;      if a <> m┆
0x068a40…068a60            74 20 74 68 65 6e 20 78 74 75 6d 70 5b 64 2c 63 5d 3a 3d 61 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20   ┆t then xtumpÆd,cÅ:=a;    end;   ┆
0x068a60…068a80            20 0d 0a 62 65 67 69 6e 0d 0a 20 20 69 6e 69 78 74 70 28 6c 70 2c 27 50 27 2c 6c 69 74 65 2c 65   ┆   begin    inixtp(lp,'P',lite,e┆
0x068a80…068aa0            28 61 3a 74 70 3b 20 62 3a 74 63 3b 20 63 3a 74 6d 3b 20 64 3a 74 75 3b 20 65 3a 74 62 3b 20 66   ┆(a:tp; b:tc; c:tm; d:tu; e:tb; f┆
0x068aa0…068ac0            3a 74 65 3b 20 67 3a 74 65 3b 20 68 3a 74 76 29 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20   ┆:te; g:te; h:tv);    begin      ┆
0x068ac0…068ae0            78 74 70 63 5b 61 5d 3a 3d 62 3b 0d 0a 20 20 20 20 78 74 70 6d 5b 61 5d 3a 3d 63 3b 0d 0a 20 20   ┆xtpcÆaÅ:=b;      xtpmÆaÅ:=c;    ┆
0x068ae0…068b00            20 20 78 73 70 62 5b 61 5d 3a 3d 65 3b 0d 0a 20 20 20 20 78 66 70 65 5b 61 5d 3a 3d 66 3b 0d 0a   ┆  xspbÆaÅ:=e;      xfpeÆaÅ:=f;  ┆
0x068b00…068b20            20 20 20 72 64 6e 62 3a 3d 61 5b 61 61 2b 38 5d 20 3c 3e 20 27 20 27 3b 0d 0a 20 20 20 20 20 20   ┆   rdnb:=aÆaa+8Å <> ' ';        ┆
0x068b20…068b40            20 20 72 64 72 6b 3a 3d 61 5b 61 61 2b 39 5d 20 3c 3e 20 27 20 27 3b 0d 0a 20 20 20 20 20 20 65   ┆  rdrk:=aÆaa+9Å <> ' ';        e┆
0x068b40…068b60            6e 64 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 69 6e 74 69 3a 3d 69 6e 74 69 2b 31 3b   ┆nd;      end;      inti:=inti+1;┆
0x068b60…068b80            0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 69 6e 69 78 74 70   ┆    end;        procedure inixtp┆
0x068b80…068ba0            20 20 20 77 69 74 68 20 72 79 72 73 20 64 6f 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20   ┆   with ryrs do        begin    ┆
0x068ba0…068bc0            20 20 20 20 20 20 72 64 70 63 3a 3d 61 5b 61 61 2b 35 5d 20 3c 3e 20 27 20 27 3b 0d 0a 20 20 20   ┆      rdpc:=aÆaa+5Å <> ' ';     ┆
0x068bc0…068be0            20 20 20 20 20 72 64 73 6c 3a 3d 61 5b 61 61 2b 36 5d 20 3c 3e 20 27 20 27 3b 0d 0a 20 20 20 20   ┆     rdsl:=aÆaa+6Å <> ' ';      ┆
0x068be0…068c00            20 20 20 20 72 64 6b 71 3a 3d 61 5b 61 61 2b 37 5d 20 3c 3e 20 27 20 27 3b 0d 0a 20 20 20 20 20   ┆    rdkq:=aÆaa+7Å <> ' ';       ┆
0x068c00…068c20 (26, 0, 4) 20 20 20 20 20 20 72 64 6b 71 3a 3d 61 5b 61 61 2b 31 5d 20 3c 3e 20 27 20 27 3b 0d 0a 20 20 20   ┆      rdkq:=aÆaa+1Å <> ' ';     ┆
0x068c20…068c40            20 20 20 20 20 72 64 6e 62 3a 3d 61 5b 61 61 2b 32 5d 20 3c 3e 20 27 20 27 3b 0d 0a 20 20 20 20   ┆     rdnb:=aÆaa+2Å <> ' ';      ┆
0x068c40…068c60            20 20 20 20 72 64 72 6b 3a 3d 61 5b 61 61 2b 33 5d 20 3c 3e 20 27 20 27 3b 0d 0a 20 20 20 20 20   ┆    rdrk:=aÆaa+3Å <> ' ';       ┆
0x068c60…068c80            20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 72 79 63 68 3a 3d 61 5b 61 61 2b 34 5d 3b 0d 0a 20 20 20   ┆ end;        rych:=aÆaa+4Å;     ┆
0x068c80…068ca0            67 69 6e 0d 0a 20 20 20 20 77 69 74 68 20 73 79 6e 74 78 5b 69 6e 74 69 5d 20 64 6f 0d 0a 20 20   ┆gin      with syntxÆintiÅ do    ┆
0x068ca0…068cc0            20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 77 69 74 68 20 72 79 6c 73 20 64 6f 0d 0a 20 20 20   ┆  begin        with ryls do     ┆
0x068cc0…068ce0            20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 72 64 70 63 3a 3d 74 72 75 65 3b 0d 0a 20   ┆   begin          rdpc:=true;   ┆
0x068ce0…068d00            20 20 20 20 20 20 20 72 64 73 6c 3a 3d 61 5b 61 61 2b 30 5d 20 3c 3e 20 27 20 27 3b 0d 0a 20 20   ┆       rdsl:=aÆaa+0Å <> ' ';    ┆
0x068d00…068d20            3a 20 74 72 3b 0d 0a 20 20 69 6e 74 74 09 3a 20 74 74 3b 0d 0a 20 20 69 6e 74 78 09 3a 20 74 78   ┆: tr;    intt : tt;    intx : tx┆
0x068d20…068d40            3b 0d 0a 20 20 69 6e 74 79 09 3a 20 74 79 3b 0d 0a 20 20 69 6d 74 69 09 3a 20 74 69 3b 0d 0a 20   ┆;    inty : ty;    imti : ti;   ┆
0x068d40…068d60            20 78 2c 73 75 6d 20 3a 20 74 69 3b 0d 0a 20 20 69 6e 72 73 09 3a 20 72 73 3b 0d 0a 20 20 0d 0a   ┆ x,sum : ti;    inrs : rs;      ┆
0x068d60…068d80            20 20 70 72 6f 63 65 64 75 72 65 20 69 6e 69 73 79 6e 28 61 3a 20 72 61 29 3b 0d 0a 20 20 62 65   ┆  procedure inisyn(a: ra);    be┆
0x068d80…068da0            68 65 73 73 2e 70 30 32 20 2a 29 0d 0a 70 72 6f 63 65 64 75 72 65 20 69 6e 69 63 6f 6e 3b 0d 0a   ┆hess.p02 *)  procedure inicon;  ┆
0x068da0…068dc0            76 61 72 0d 0a 20 20 69 6e 74 64 09 3a 20 74 64 3b 0d 0a 20 20 69 6e 74 65 09 3a 20 74 65 3b 0d   ┆var    intd : td;    inte : te; ┆
0x068dc0…068de0            0a 20 20 69 6e 74 66 09 3a 20 74 66 3b 0d 0a 20 20 69 6e 74 69 09 3a 20 74 69 3b 0d 0a 20 20 69   ┆   intf : tf;    inti : ti;    i┆
0x068de0…068e00            6e 74 6c 09 3a 20 74 6c 3b 0d 0a 20 20 69 6e 74 71 09 3a 20 74 71 3b 0d 0a 20 20 69 6e 74 72 09   ┆ntl : tl;    intq : tq;    intr ┆
0x068e00…068e20            56 41 4c 49 44 20 43 4f 4d 4d 41 4e 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 29 3b 0d 0a   ┆VALID COMMAND              ');  ┆
0x068e20…068e40            20 20 20 20 65 6e 64 3b 0d 0a 20 20 75 6e 74 69 6c 20 28 63 6f 6d 20 3e 20 30 29 20 6f 72 20 6e   ┆    end;    until (com > 0) or n┆
0x068e40…068e60            6f 74 28 69 6c 69 6e 65 5b 61 6a 2b 31 5d 20 69 6e 20 5b 27 41 27 2e 2e 27 57 27 2c 27 59 27 2c   ┆ot(ilineÆaj+1Å in Æ'A'..'W','Y',┆
0x068e60…068e80            27 5a 27 5d 29 3b 0d 0a 65 6e 64 3b 09 28 2a 20 72 65 61 64 65 72 20 2a 29 0d 0a 0d 0a 28 2a 63   ┆'Z'Å);  end; (* reader *)    (*c┆
0x068e80…068ea0            6d 64 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 57 48 20 20 20 20   ┆md else        if inra = 'WH    ┆
0x068ea0…068ec0            20 20 20 20 27 20 74 68 65 6e 20 77 68 61 63 6d 64 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66   ┆    ' then whacmd else        if┆
0x068ec0…068ee0            20 69 6e 72 61 20 3d 20 27 53 54 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 74 61 63 6d 64   ┆ inra = 'ST        ' then stacmd┆
0x068ee0…068f00            20 65 6c 73 65 0d 0a 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 72 64 72 65 72 72 28 27 20 49 4e   ┆ else                rdrerr(' IN┆
0x068f00…068f20            20 20 69 66 20 69 6e 72 61 20 3d 20 27 50 4f 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 70 6f   ┆  if inra = 'PO        ' then po┆
0x068f20…068f40            70 63 6d 64 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 50 4d 20 20   ┆pcmd else        if inra = 'PM  ┆
0x068f40…068f60            20 20 20 20 20 20 27 20 74 68 65 6e 20 70 6d 76 63 6d 64 20 65 6c 73 65 0d 0a 20 20 20 20 20 20   ┆      ' then pmvcmd else        ┆
0x068f60…068f80            69 66 20 69 6e 72 61 20 3d 20 27 53 57 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 77 69 63   ┆if inra = 'SW        ' then swic┆
0x068f80…068fa0            50 4c 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 70 6c 65 63 6d 64 20 65 6c 73 65 0d 0a 20 20   ┆PL        ' then plecmd else    ┆
0x068fa0…068fc0            20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 50 52 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20   ┆    if inra = 'PR        ' then ┆
0x068fc0…068fe0            70 72 69 63 6d 64 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 50 41   ┆pricmd else        if inra = 'PA┆
0x068fe0…069000            20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 70 61 6d 63 6d 64 20 65 6c 73 65 0d 0a 20 20 20 20   ┆        ' then pamcmd else      ┆
0x069000…069020 (26, 0, 5) 68 65 6e 20 67 6f 6e 63 6d 64 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d   ┆hen goncmd else        if inra =┆
0x069020…069040            20 27 49 4e 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 69 6e 69 63 6d 64 20 65 6c 73 65 0d 0a   ┆ 'IN        ' then inicmd else  ┆
0x069040…069060            20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 4c 45 20 20 20 20 20 20 20 20 27 20 74 68 65   ┆      if inra = 'LE        ' the┆
0x069060…069080            6e 20 6c 65 74 63 6d 64 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27   ┆n letcmd else        if inra = '┆
0x069080…0690a0            74 3b 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 42 4f 20 20 20 20 20 20 20 20 27   ┆t;        if inra = 'BO        '┆
0x0690a0…0690c0            20 74 68 65 6e 20 62 6f 61 63 6d 64 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61   ┆ then boacmd else        if inra┆
0x0690c0…0690e0            20 3d 20 27 45 4e 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 65 6e 64 63 6d 64 20 65 6c 73 65   ┆ = 'EN        ' then endcmd else┆
0x0690e0…069100            0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 47 4f 20 20 20 20 20 20 20 20 27 20 74   ┆        if inra = 'GO        ' t┆
0x069100…069120            57 27 2c 27 59 27 2e 2e 27 5a 27 5d 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20   ┆W','Y'..'Z'Å then      begin    ┆
0x069120…069140            20 20 20 20 69 6e 72 61 3a 3d 27 20 20 20 20 20 20 20 20 20 20 27 3b 0d 0a 20 20 20 20 20 20 69   ┆    inra:='          ';        i┆
0x069140…069160            6e 72 61 5b 61 61 5d 3a 3d 69 6c 69 6e 65 5b 61 6a 5d 3b 0d 0a 20 20 20 20 20 20 69 6e 72 61 5b   ┆nraÆaaÅ:=ilineÆajÅ;        inraÆ┆
0x069160…069180            61 61 2b 31 5d 3a 3d 69 6c 69 6e 65 5b 61 6a 2b 31 5d 3b 0d 0a 20 20 20 20 20 20 72 64 72 73 66   ┆aa+1Å:=ilineÆaj+1Å;        rdrsf┆
0x069180…0691a0            6e 0d 0a 20 20 20 20 20 20 77 72 69 74 65 28 27 20 27 29 3b 0d 0a 20 20 20 20 20 20 66 6f 72 20   ┆n        write(' ');        for ┆
0x0691a0…0691c0            69 6e 74 6a 3a 3d 61 6a 20 74 6f 20 7a 6a 2d 31 20 64 6f 20 77 72 69 74 65 28 69 6c 69 6e 65 5b   ┆intj:=aj to zj-1 do write(ilineÆ┆
0x0691c0…0691e0            69 6e 74 6a 5d 29 3b 0d 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 3b 0d 0a 20 20 20 20 65 6e 64   ┆intjÅ);        writeln;      end┆
0x0691e0…069200            3b 0d 0a 20 20 20 20 69 66 20 69 6c 69 6e 65 5b 61 6a 2b 31 5d 20 69 6e 20 5b 27 41 27 2e 2e 27   ┆;      if ilineÆaj+1Å in Æ'A'..'┆
0x069200…069220            0a 20 20 20 20 6c 73 74 6d 6f 76 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 0d 0a 62 65 67 69 6e 0d   ┆     lstmov;    end;      begin ┆
0x069220…069240            0a 20 20 63 6f 6d 3a 3d 30 3b 0d 0a 20 20 72 65 70 65 61 74 0d 0a 20 20 20 20 6f 6b 3a 3d 74 72   ┆   com:=0;    repeat      ok:=tr┆
0x069240…069260            75 65 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 6e 6f 74 20 72 64 72 6d 6f 76 20 64 6f 20 72 64 6c   ┆ue;      while not rdrmov do rdl┆
0x069260…069280            69 6e 65 3b 0d 0a 20 20 20 20 69 66 20 73 77 65 63 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69   ┆ine;      if swec then      begi┆
0x069280…0692a0            20 20 20 20 20 20 27 20 74 68 65 6e 20 73 74 61 63 61 71 20 65 6c 73 65 0d 0a 20 20 20 20 20 20   ┆      ' then stacaq else        ┆
0x0692a0…0692c0            62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 63 6c 73 74 61 74 3b 0d 0a 20 20 20 20 20 20 20 20   ┆begin          clstat;          ┆
0x0692c0…0692e0            72 64 72 65 72 72 28 27 20 49 4e 56 41 4c 49 44 20 53 54 41 54 55 53 20 4f 50 54 49 4f 4e 20 20   ┆rdrerr(' INVALID STATUS OPTION  ┆
0x0692e0…069300            20 20 20 20 20 20 27 29 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d   ┆      ');        end;      end; ┆
0x069300…069320            0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 4e 20 20 20 20 20 20 20 20 20 27 20 74 68   ┆       if inra = 'N         ' th┆
0x069320…069340            65 6e 20 62 6f 61 72 64 2e 72 62 74 69 3a 3d 72 64 72 6e 75 6d 20 65 6c 73 65 0d 0a 20 20 20 20   ┆en board.rbti:=rdrnum else      ┆
0x069340…069360            20 20 69 66 20 69 6e 72 61 20 3d 20 27 4f 4f 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 74   ┆  if inra = 'OO        ' then st┆
0x069360…069380            61 63 61 6b 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 4f 4f 4f 20   ┆acak else        if inra = 'OOO ┆
0x069380…0693a0            27 45 50 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 74 61 65 6e 70 20 65 6c 73 65 0d 0a 20   ┆'EP        ' then staenp else   ┆
0x0693a0…0693c0            20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 47 20 20 20 20 20 20 20 20 20 27 20 74 68 65 6e   ┆     if inra = 'G         ' then┆
0x0693c0…0693e0            20 73 74 61 67 6f 73 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 4c   ┆ stagos else        if inra = 'L┆
0x0693e0…069400            20 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 69 6e 74 6d 3a 3d 6c 69 74 65 20 65 6c 73 65 0d   ┆         ' then intm:=lite else ┆
0x069400…069420 (26, 0, 6) 20 20 20 69 6e 74 6d 3a 3d 6c 69 74 65 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 72 64 72 67 6e 74   ┆   intm:=lite;      while rdrgnt┆
0x069420…069440            28 69 6e 72 61 29 20 61 6e 64 20 6f 6b 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20   ┆(inra) and ok do      begin     ┆
0x069440…069460            20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 44 20 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 69   ┆   if inra = 'D         ' then i┆
0x069460…069480            6e 74 6d 3a 3d 64 61 72 6b 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20   ┆ntm:=dark else        if inra = ┆
0x069480…0694a0            73 3b 09 28 2a 20 73 65 74 20 73 69 64 65 20 74 6f 20 6d 6f 76 65 20 2a 29 0d 0a 20 20 20 20 62   ┆s; (* set side to move *)      b┆
0x0694a0…0694c0            65 67 69 6e 0d 0a 20 20 20 20 20 20 62 6f 61 72 64 2e 72 62 74 6d 3a 3d 69 6e 74 6d 3b 0d 0a 20   ┆egin        board.rbtm:=intm;   ┆
0x0694c0…0694e0            20 20 20 20 20 6a 6e 74 6d 3a 3d 69 6e 74 6d 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 62 65   ┆     jntm:=intm;      end;    be┆
0x0694e0…069500            67 69 6e 09 28 2a 20 73 74 61 63 6d 64 20 2a 29 0d 0a 20 20 20 20 63 6c 73 74 61 74 3b 0d 0a 20   ┆gin (* stacmd *)      clstat;   ┆
0x069500…069520            65 6c 73 65 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 63 6c 73 74 61   ┆else        begin          clsta┆
0x069520…069540            74 3b 0d 0a 20 20 20 20 20 20 20 20 72 64 72 65 72 72 28 27 20 49 4c 4c 45 47 41 4c 20 45 4e 50   ┆t;          rdrerr(' ILLEGAL ENP┆
0x069540…069560            41 53 53 41 4e 54 20 46 49 4c 45 20 20 20 20 20 20 20 27 29 3b 0d 0a 20 20 20 20 20 20 65 6e 64   ┆ASSANT FILE       ');        end┆
0x069560…069580            3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 70 72 6f 63 65 64 75 72 65 20 73 74 61 67 6f   ┆;      end;      procedure stago┆
0x069580…0695a0            20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 74 61 65 70 66 28 66 36 29 20 65 6c 73 65 0d 0a   ┆        ' then staepf(f6) else  ┆
0x0695a0…0695c0            20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 4b 4e 20 20 20 20 20 20 20 20 27 20 74 68 65   ┆      if inra = 'KN        ' the┆
0x0695c0…0695e0            6e 20 73 74 61 65 70 66 28 66 37 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61   ┆n staepf(f7) else        if inra┆
0x0695e0…069600            20 3d 20 27 4b 52 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 74 61 65 70 66 28 66 38 29 20   ┆ = 'KR        ' then staepf(f8) ┆
0x069600…069620            20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 51 20 20 20 20 20 20 20   ┆ else        if inra = 'Q       ┆
0x069620…069640            20 20 27 20 74 68 65 6e 20 73 74 61 65 70 66 28 66 34 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20   ┆  ' then staepf(f4) else        ┆
0x069640…069660            69 66 20 69 6e 72 61 20 3d 20 27 4b 20 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 74 61 65   ┆if inra = 'K         ' then stae┆
0x069660…069680            70 66 28 66 35 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 4b 42   ┆pf(f5) else        if inra = 'KB┆
0x069680…0696a0            52 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 74 61 65 70 66 28 66 31 29 20 65 6c 73 65 0d   ┆R        ' then staepf(f1) else ┆
0x0696a0…0696c0            0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 51 4e 20 20 20 20 20 20 20 20 27 20 74 68   ┆       if inra = 'QN        ' th┆
0x0696c0…0696e0            65 6e 20 73 74 61 65 70 66 28 66 32 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72   ┆en staepf(f2) else        if inr┆
0x0696e0…069700            61 20 3d 20 27 51 42 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 74 61 65 70 66 28 66 33 29   ┆a = 'QB        ' then staepf(f3)┆
0x069700…069720            72 67 6e 74 28 69 6e 72 61 29 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20   ┆rgnt(inra) then        begin    ┆
0x069720…069740            20 20 20 20 20 20 63 6c 73 74 61 74 3b 0d 0a 20 20 20 20 20 20 20 20 72 64 72 65 72 72 28 27 20   ┆      clstat;          rdrerr(' ┆
0x069740…069760            45 4e 50 41 53 53 41 4e 54 20 46 49 4c 45 20 4f 4d 49 54 54 45 44 20 20 20 20 20 20 20 27 29 3b   ┆ENPASSANT FILE OMITTED       ');┆
0x069760…069780            0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 51   ┆        end;        if inra = 'Q┆
0x069780…0697a0            73 65 0d 0a 20 20 20 20 20 20 20 20 62 6f 61 72 64 2e 72 62 73 71 3a 3d 62 6f 61 72 64 2e 72 62   ┆se          board.rbsq:=board.rb┆
0x0697a0…0697c0            73 71 20 2b 20 5b 64 6c 5d 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 70 72 6f 63 65 64   ┆sq + ÆdlÅ;      end;      proced┆
0x0697c0…0697e0            75 72 65 20 73 74 61 65 6e 70 3b 09 28 2a 20 73 65 74 20 65 6e 70 61 73 73 61 6e 74 20 66 69 6c   ┆ure staenp; (* set enpassant fil┆
0x0697e0…069800            65 20 2a 29 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 66 20 6e 6f 74 20 72 64   ┆e *)      begin        if not rd┆
0x069800…069820 (26, 0, 7) 75 72 65 20 73 74 61 63 61 71 3b 09 28 2a 20 61 6c 6c 6f 77 20 63 61 73 74 6c 65 20 71 75 65 65   ┆ure stacaq; (* allow castle quee┆
0x069820…069840            6e 20 73 69 64 65 20 2a 29 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 66 20 69   ┆n side *)      begin        if i┆
0x069840…069860            6e 74 6d 20 3d 20 6c 69 74 65 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 62 6f 61 72 64 2e 72   ┆ntm = lite then          board.r┆
0x069860…069880            62 73 71 3a 3d 62 6f 61 72 64 2e 72 62 73 71 20 2b 20 5b 6c 6c 5d 0d 0a 20 20 20 20 20 20 65 6c   ┆bsq:=board.rbsq + ÆllÅ        el┆
0x069880…0698a0            6e 74 6d 20 3d 20 6c 69 74 65 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 62 6f 61 72 64 2e 72   ┆ntm = lite then          board.r┆
0x0698a0…0698c0            62 73 71 3a 3d 62 6f 61 72 64 2e 72 62 73 71 20 2b 20 5b 6c 73 5d 0d 0a 20 20 20 20 20 20 65 6c   ┆bsq:=board.rbsq + ÆlsÅ        el┆
0x0698c0…0698e0            73 65 0d 0a 20 20 20 20 20 20 20 20 62 6f 61 72 64 2e 72 62 73 71 3a 3d 62 6f 61 72 64 2e 72 62   ┆se          board.rbsq:=board.rb┆
0x0698e0…069900            73 71 20 2b 20 5b 64 73 5d 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 70 72 6f 63 65 64   ┆sq + ÆdsÅ;      end;      proced┆
0x069900…069920            20 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 62 6f 61 72 64 2e 72 62 74 73 3a 3d 78   ┆     else          board.rbts:=x┆
0x069920…069940            74 72 66 73 5b 72 33 2c 62 5d 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 70 72 6f 63 65   ┆trfsÆr3,bÅ;      end;      proce┆
0x069940…069960            64 75 72 65 20 73 74 61 63 61 6b 3b 09 28 2a 20 61 6c 6c 6f 77 20 63 61 73 74 6c 65 20 6b 69 6e   ┆dure stacak; (* allow castle kin┆
0x069960…069980            67 20 73 69 64 65 20 2a 29 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 66 20 69   ┆g side *)      begin        if i┆
0x069980…0699a0            6d 3b 0d 0a 20 20 20 20 70 72 6f 63 65 64 75 72 65 20 73 74 61 65 70 66 28 62 3a 20 74 66 29 3b   ┆m;      procedure staepf(b: tf);┆
0x0699a0…0699c0            09 28 2a 20 70 72 6f 63 65 73 73 20 65 70 20 66 69 6c 65 20 2a 29 0d 0a 20 20 20 20 62 65 67 69   ┆ (* process ep file *)      begi┆
0x0699c0…0699e0            6e 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 74 6d 20 3d 20 6c 69 74 65 20 74 68 65 6e 0d 0a 20 20   ┆n        if intm = lite then    ┆
0x0699e0…069a00            20 20 20 20 20 20 62 6f 61 72 64 2e 72 62 74 73 3a 3d 78 74 72 66 73 5b 72 36 2c 62 5d 0d 0a 20   ┆      board.rbts:=xtrfsÆr6,bÅ   ┆
0x069a00…069a20            6d 65 73 73 61 67 65 20 2a 29 0d 0a 20 20 62 65 67 69 6e 20 77 72 69 74 65 6c 6e 28 6d 6f 76 6d   ┆message *)    begin writeln(movm┆
0x069a20…069a40            73 29 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 73 74 61 63 6d 64 3b 09 28 2a 20   ┆s) end;    procedure stacmd; (* ┆
0x069a40…069a60            63 6f 6d 6d 61 6e 64 20 2d 20 73 74 61 74 75 73 20 63 68 61 6e 67 65 73 20 2a 29 0d 0a 20 20 76   ┆command - status changes *)    v┆
0x069a60…069a80            61 72 0d 0a 20 20 20 20 69 6e 72 61 20 3a 20 72 61 3b 0d 0a 20 20 20 20 69 6e 74 6d 20 3a 20 74   ┆ar      inra : ra;      intm : t┆
0x069a80…069aa0            69 6f 6e 65 28 73 77 62 6d 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 72 64 72 65 72 72 28 27 20   ┆ione(swbm) else        rdrerr(' ┆
0x069aa0…069ac0            49 4e 56 41 4c 49 44 20 53 57 49 54 43 48 20 4f 50 54 49 4f 4e 20 20 20 20 20 20 20 20 27 29 3b   ┆INVALID SWITCH OPTION        ');┆
0x069ac0…069ae0            0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20   ┆      end;    end;    procedure ┆
0x069ae0…069b00            77 68 61 63 6d 64 3b 09 28 2a 20 63 6f 6d 6d 61 6e 64 20 2d 20 70 72 69 6e 74 20 6c 61 73 74 20   ┆whacmd; (* command - print last ┆
0x069b00…069b20            3d 20 27 54 52 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 77 69 6f 6e 65 28 73 77 74 72 29   ┆= 'TR        ' then swione(swtr)┆
0x069b20…069b40            20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 50 52 20 20 20 20 20 20   ┆ else        if inra = 'PR      ┆
0x069b40…069b60            20 20 27 20 74 68 65 6e 20 73 77 69 6f 6e 65 28 73 77 70 72 29 20 65 6c 73 65 0d 0a 20 20 20 20   ┆  ' then swione(swpr) else      ┆
0x069b60…069b80            20 20 69 66 20 69 6e 72 61 20 3d 20 27 42 4d 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 77   ┆  if inra = 'BM        ' then sw┆
0x069b80…069ba0            29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 52 45 20 20 20 20 20   ┆) else        if inra = 'RE     ┆
0x069ba0…069bc0            20 20 20 27 20 74 68 65 6e 20 73 77 69 6f 6e 65 28 73 77 72 65 29 20 65 6c 73 65 0d 0a 20 20 20   ┆   ' then swione(swre) else     ┆
0x069bc0…069be0            20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 53 55 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73   ┆   if inra = 'SU        ' then s┆
0x069be0…069c00            77 69 6f 6e 65 28 73 77 73 75 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20   ┆wione(swsu) else        if inra ┆
0x069c00…069c20 (26, 0, 8) 20 20 20 20 27 20 74 68 65 6e 20 73 77 69 6f 6e 65 28 73 77 65 63 29 20 65 6c 73 65 0d 0a 20 20   ┆    ' then swione(swec) else    ┆
0x069c20…069c40            20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 50 41 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20   ┆    if inra = 'PA        ' then ┆
0x069c40…069c60            73 77 69 6f 6e 65 28 73 77 70 61 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61   ┆swione(swpa) else        if inra┆
0x069c60…069c80            20 3d 20 27 50 53 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 73 77 69 6f 6e 65 28 73 77 70 73   ┆ = 'PS        ' then swione(swps┆
0x069c80…069ca0            69 73 77 69 28 61 2c 62 29 3b 0d 0a 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 20 70 72 69 73 77   ┆iswi(a,b);        end else prisw┆
0x069ca0…069cc0            69 28 61 2c 62 29 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20   ┆i(a,b);      end;    begin      ┆
0x069cc0…069ce0            77 68 69 6c 65 20 72 64 72 67 6e 74 28 69 6e 72 61 29 20 61 6e 64 20 6f 6b 20 64 6f 0d 0a 20 20   ┆while rdrgnt(inra) and ok do    ┆
0x069ce0…069d00            20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 45 43 20 20 20 20   ┆  begin        if inra = 'EC    ┆
0x069d00…069d20            20 27 4f 4e 20 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 62 3a 3d 74 72 75 65 0d 0a 20 20 20 20   ┆ 'ON        ' then b:=true      ┆
0x069d20…069d40            20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 4f   ┆    else            if inra = 'O┆
0x069d40…069d60            46 46 20 20 20 20 20 20 20 27 20 74 68 65 6e 20 62 3a 3d 66 61 6c 73 65 0d 0a 20 20 20 20 20 20   ┆FF       ' then b:=false        ┆
0x069d60…069d80            20 20 20 20 65 6c 73 65 20 6a 6e 74 6a 3a 3d 69 6d 74 6a 3b 0d 0a 20 20 20 20 20 20 20 20 70 72   ┆    else jntj:=imtj;          pr┆
0x069d80…069da0            20 72 61 3b 0d 0a 20 20 20 20 20 20 69 6d 74 6a 20 3a 20 74 6a 3b 0d 0a 20 20 20 20 62 65 67 69   ┆ ra;        imtj : tj;      begi┆
0x069da0…069dc0            6e 0d 0a 20 20 20 20 20 20 69 6d 74 6a 3a 3d 6a 6e 74 6a 3b 0d 0a 20 20 20 20 20 20 61 3a 3d 69   ┆n        imtj:=jntj;        a:=i┆
0x069dc0…069de0            6e 72 61 3b 0d 0a 20 20 20 20 20 20 69 66 20 72 64 72 67 6e 74 28 69 6e 72 61 29 20 74 68 65 6e   ┆nra;        if rdrgnt(inra) then┆
0x069de0…069e00            0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d   ┆        begin          if inra =┆
0x069e00…069e20            73 65 72 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64   ┆ser;      end;    end;    proced┆
0x069e20…069e40            75 72 65 20 73 77 69 63 6d 64 3b 09 28 2a 20 63 6f 6d 6d 61 6e 64 20 2d 20 66 6c 69 70 20 73 77   ┆ure swicmd; (* command - flip sw┆
0x069e40…069e60            69 74 63 68 20 2a 29 0d 0a 20 20 20 20 70 72 6f 63 65 64 75 72 65 20 73 77 69 6f 6e 65 28 76 61   ┆itch *)      procedure swione(va┆
0x069e60…069e80            72 20 62 3a 20 74 62 29 3b 0d 0a 20 20 20 20 76 61 72 0d 0a 20 20 20 20 20 20 61 20 20 20 20 3a   ┆r b: tb);      var        a    :┆
0x069e80…069ea0            77 3a 3d 61 77 2b 31 20 74 6f 20 6a 6e 74 77 2d 31 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d   ┆w:=aw+1 to jntw-1 do      begin ┆
0x069ea0…069ec0            0a 20 20 20 20 20 20 77 72 69 74 65 28 69 6e 74 77 3a 34 2c 27 20 27 29 3b 0d 0a 20 20 20 20 20   ┆       write(intw:4,' ');       ┆
0x069ec0…069ee0            20 70 72 69 6d 6f 76 28 6d 6f 76 65 73 5b 69 6e 74 77 5d 29 3b 0d 0a 20 20 20 20 20 20 69 66 20   ┆ primov(movesÆintwÅ);        if ┆
0x069ee0…069f00            69 6e 74 77 2f 6c 70 70 20 3d 20 69 6e 74 77 20 64 69 76 20 6c 70 70 20 74 68 65 6e 20 70 61 75   ┆intw/lpp = intw div lpp then pau┆
0x069f00…069f20            20 43 41 53 54 4c 45 20 4c 45 47 41 4c 2e 27 29 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 65   ┆ CASTLE LEGAL.');      end;    e┆
0x069f20…069f40            6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 70 6d 76 63 6d 64 3b 09 28 2a 20 63 6f 6d 6d   ┆nd;    procedure pmvcmd; (* comm┆
0x069f40…069f60            61 6e 64 20 2d 20 70 72 69 6e 74 20 6d 6f 76 65 20 6c 69 73 74 20 2a 29 0d 0a 20 20 76 61 72 20   ┆and - print move list *)    var ┆
0x069f60…069f80            69 6e 74 77 20 3a 20 74 77 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 66 6f 72 20 69 6e 74   ┆intw : tw;    begin      for int┆
0x069f80…069fa0            2e 27 29 3b 0d 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 28 27 4d 4f 56 45 20 4e 55 4d 42 45 52   ┆.');        writeln('MOVE NUMBER┆
0x069fa0…069fc0            20 27 2c 72 62 74 69 3a 30 29 3b 0d 0a 20 20 20 20 20 20 66 6f 72 20 69 6e 74 71 3a 3d 6c 73 20   ┆ ',rbti:0);        for intq:=ls ┆
0x069fc0…069fe0            74 6f 20 64 6c 20 64 6f 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 74 71 20 69 6e 20 72 62 73   ┆to dl do          if intq in rbs┆
0x069fe0…06a000            71 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 78 74 71 61 5b 69 6e 74 71 5d 2c 27 20 53 49 44 45   ┆q then writeln(xtqaÆintqÅ,' SIDE┆
0x06a000…06a020 (26, 1, 1) 0a 20 20 76 61 72 20 69 6e 74 71 20 3a 20 74 71 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20   ┆   var intq : tq;    begin      ┆
0x06a020…06a040            77 69 74 68 20 62 6f 61 72 64 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20   ┆with board do      begin        ┆
0x06a040…06a060            77 72 69 74 65 6c 6e 28 78 74 6d 61 5b 72 62 74 6d 5d 2c 27 20 54 4f 20 4d 4f 56 45 2e 27 29 3b   ┆writeln(xtmaÆrbtmÅ,' TO MOVE.');┆
0x06a060…06a080            0d 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 28 72 62 74 73 2c 27 20 45 4e 50 41 53 53 41 4e 54   ┆        writeln(rbts,' ENPASSANT┆
0x06a080…06a0a0            62 28 61 6c 61 74 6b 5b 6c 69 74 65 5d 29 3b 0d 0a 20 20 20 20 77 72 69 74 65 6c 6e 28 27 20 44   ┆b(alatkÆliteÅ);      writeln(' D┆
0x06a0a0…06a0c0            41 52 4b 27 29 3b 0d 0a 20 20 20 20 70 72 69 6e 62 62 28 61 6c 61 74 6b 5b 64 61 72 6b 5d 29 3b   ┆ARK');      prinbb(alatkÆdarkÅ);┆
0x06a0c0…06a0e0            0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 70 6f 70 63 6d 64 3b 09 28 2a   ┆    end;    procedure popcmd; (*┆
0x06a0e0…06a100            20 63 6f 6d 6d 61 6e 64 20 2d 20 70 72 69 6e 74 20 6f 74 68 65 72 20 73 74 75 66 66 20 2a 29 0d   ┆ command - print other stuff *) ┆
0x06a100…06a120            20 20 20 20 69 66 20 69 6e 72 61 5b 61 61 5d 20 3d 20 27 46 27 20 74 68 65 6e 20 70 72 69 6e 61   ┆    if inraÆaaÅ = 'F' then prina┆
0x06a120…06a140            6d 28 61 74 6b 66 72 29 0d 0a 20 20 20 20 20 20 65 6c 73 65 20 72 64 72 65 72 72 28 27 20 41 54   ┆m(atkfr)        else rdrerr(' AT┆
0x06a140…06a160            54 41 43 4b 20 4d 41 50 20 4e 4f 54 20 22 54 4f 22 20 4f 52 20 22 46 52 4f 4d 22 27 29 3b 0d 0a   ┆TACK MAP NOT "TO" OR "FROM"');  ┆
0x06a160…06a180            20 20 20 20 77 72 69 74 65 6c 6e 28 27 20 4c 49 54 45 27 29 3b 0d 0a 20 20 20 20 70 72 69 6e 62   ┆    writeln(' LITE');      prinb┆
0x06a180…06a1a0            6d 64 3b 09 28 2a 20 63 6f 6d 6d 61 6e 64 20 2d 20 70 72 69 6e 74 20 61 74 74 61 63 6b 20 6d 61   ┆md; (* command - print attack ma┆
0x06a1a0…06a1c0            70 20 2a 29 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 77 68 69 6c 65 20 72 64 72 67 6e 74 28   ┆p *)    begin      while rdrgnt(┆
0x06a1c0…06a1e0            69 6e 72 61 29 20 64 6f 0d 0a 20 20 20 20 69 66 20 69 6e 72 61 5b 61 61 5d 20 3d 20 27 54 27 20   ┆inra) do      if inraÆaaÅ = 'T' ┆
0x06a1e0…06a200            74 68 65 6e 20 70 72 69 6e 61 6d 28 61 74 6b 74 6f 29 0d 0a 20 20 20 20 65 6c 73 65 0d 0a 20 20   ┆then prinam(atkto)      else    ┆
0x06a200…06a220            09 28 2a 20 63 6f 6d 6d 61 6e 64 20 2d 20 70 72 69 6e 74 20 62 6f 61 72 64 20 2a 29 0d 0a 20 20   ┆ (* command - print board *)    ┆
0x06a220…06a240            62 65 67 69 6e 0d 0a 20 20 20 20 69 66 20 72 64 72 67 6e 74 28 69 6e 72 61 29 20 74 68 65 6e 20   ┆begin      if rdrgnt(inra) then ┆
0x06a240…06a260            70 72 69 6e 74 62 28 6e 62 6f 72 64 29 20 65 6c 73 65 20 70 72 69 6e 74 62 28 62 6f 61 72 64 2e   ┆printb(nbord) else printb(board.┆
0x06a260…06a280            72 62 69 73 29 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 70 61 6d 63   ┆rbis);    end;    procedure pamc┆
0x06a280…06a2a0            27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 77 69 6e 64 6f 77   ┆' then writeln(inra,'= ', window┆
0x06a2a0…06a2c0            29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 72 64 72 65 72 72 28 27 20 49 4c 4c 45 47 41 4c   ┆) else          rdrerr(' ILLEGAL┆
0x06a2c0…06a2e0            20 56 41 52 49 41 42 4c 45 20 4e 41 4d 45 20 20 20 20 20 20 20 20 27 29 3b 0d 0a 20 20 20 20 65   ┆ VARIABLE NAME        ');      e┆
0x06a2e0…06a300            6e 64 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 70 72 69 63 6d 64 3b   ┆nd;    end;    procedure pricmd;┆
0x06a300…06a320            20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 61 6b 69 6e 67 29 20 65 6c 73 65   ┆ writeln(inra,'= ', faking) else┆
0x06a320…06a340            0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 43 46 52 45 45 20 20 20 20 27 20 74   ┆        if inra = 'FCFREE    ' t┆
0x06a340…06a360            68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 63 66 72 65 65 29 20 65   ┆hen writeln(inra,'= ', fcfree) e┆
0x06a360…06a380            6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 57 49 4e 44 4f 57 20 20 20 20   ┆lse        if inra = 'WINDOW    ┆
0x06a380…06a3a0            6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 63 68 65 63 6b 29 20 65 6c 73 65 0d 0a 20 20 20 20   ┆ln(inra,'= ', fcheck) else      ┆
0x06a3a0…06a3c0            20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 57 41 54 54 4b 20 20 20 20 27 20 74 68 65 6e 20 77 72   ┆  if inra = 'FWATTK    ' then wr┆
0x06a3c0…06a3e0            69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 77 61 74 74 6b 29 20 65 6c 73 65 0d 0a 20   ┆iteln(inra,'= ', fwattk) else   ┆
0x06a3e0…06a400            20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 41 4b 49 4e 47 20 20 20 20 27 20 74 68 65 6e   ┆     if inra = 'FAKING    ' then┆
0x06a400…06a420 (26, 1, 2) 61 2c 27 3d 20 27 2c 20 66 77 70 61 77 6e 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69   ┆a,'= ', fwpawn) else        if i┆
0x06a420…06a440            6e 72 61 20 3d 20 27 46 57 52 4f 4f 4b 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28   ┆nra = 'FWROOK    ' then writeln(┆
0x06a440…06a460            69 6e 72 61 2c 27 3d 20 27 2c 20 66 77 72 6f 6f 6b 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69   ┆inra,'= ', fwrook) else        i┆
0x06a460…06a480            66 20 69 6e 72 61 20 3d 20 27 46 43 48 45 43 4b 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65   ┆f inra = 'FCHECK    ' then write┆
0x06a480…06a4a0            2c 20 66 77 6d 61 6a 6d 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20   ┆, fwmajm) else        if inra = ┆
0x06a4a0…06a4c0            27 46 57 4d 49 4e 4d 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27   ┆'FWMINM    ' then writeln(inra,'┆
0x06a4c0…06a4e0            3d 20 27 2c 20 66 77 6d 69 6e 6d 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61   ┆= ', fwminm) else        if inra┆
0x06a4e0…06a500            20 3d 20 27 46 57 50 41 57 4e 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72   ┆ = 'FWPAWN    ' then writeln(inr┆
0x06a500…06a520            29 20 65 6c 73 65 0d 0a 2a 29 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 57 4b 49 4e   ┆) else  *)      if inra = 'FWKIN┆
0x06a520…06a540            47 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66   ┆G    ' then writeln(inra,'= ', f┆
0x06a540…06a560            77 6b 69 6e 67 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 57   ┆wking) else        if inra = 'FW┆
0x06a560…06a580            4d 41 4a 4d 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27   ┆MAJM    ' then writeln(inra,'= '┆
0x06a580…06a5a0            0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 54 52 50 4f 4b 20 20 20 20 27 20 74   ┆        if inra = 'FTRPOK    ' t┆
0x06a5a0…06a5c0            68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 74 72 70 6f 6b 29 20 65   ┆hen writeln(inra,'= ', ftrpok) e┆
0x06a5c0…06a5e0            6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 54 52 50 57 4e 20 20 20 20   ┆lse        if inra = 'FTRPWN    ┆
0x06a5e0…06a600            27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 74 72 70 77 6e   ┆' then writeln(inra,'= ', ftrpwn┆
0x06a600…06a620            20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 54 52 41 44 45 20 20 20 20 27 20 74 68 65 6e 20 77 72   ┆  if inra = 'FTRADE    ' then wr┆
0x06a620…06a640            69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 74 72 61 64 65 29 20 65 6c 73 65 0d 0a 20   ┆iteln(inra,'= ', ftrade) else   ┆
0x06a640…06a660            20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 54 52 44 53 4c 20 20 20 20 27 20 74 68 65 6e   ┆     if inra = 'FTRDSL    ' then┆
0x06a660…06a680            20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 74 72 64 73 6c 29 20 65 6c 73 65   ┆ writeln(inra,'= ', ftrdsl) else┆
0x06a680…06a6a0            6e 72 61 20 3d 20 27 46 52 44 55 42 4c 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28   ┆nra = 'FRDUBL    ' then writeln(┆
0x06a6a0…06a6c0            69 6e 72 61 2c 27 3d 20 27 2c 20 66 72 64 75 62 6c 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69   ┆inra,'= ', frdubl) else        i┆
0x06a6c0…06a6e0            66 20 69 6e 72 61 20 3d 20 27 46 52 4b 37 54 48 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65   ┆f inra = 'FRK7TH    ' then write┆
0x06a6e0…06a700            6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 72 6b 37 74 68 29 20 65 6c 73 65 0d 0a 20 20 20 20   ┆ln(inra,'= ', frk7th) else      ┆
0x06a700…06a720            27 46 50 43 4f 4e 4e 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27   ┆'FPCONN    ' then writeln(inra,'┆
0x06a720…06a740            3d 20 27 2c 20 66 70 63 6f 6e 6e 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61   ┆= ', fpconn) else        if inra┆
0x06a740…06a760            20 3d 20 27 46 50 46 4c 4e 58 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72   ┆ = 'FPFLNX    ' then writeln(inr┆
0x06a760…06a780            61 2c 27 3d 20 27 2c 20 66 70 66 6c 6e 78 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69   ┆a,'= ', fpflnx) else        if i┆
0x06a780…06a7a0            20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 70 61 64 63   ┆ ' then writeln(inra,'= ', fpadc┆
0x06a7a0…06a7c0            72 5b 66 38 5d 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50   ┆rÆf8Å) else        if inra = 'FP┆
0x06a7c0…06a7e0            42 4c 4f 4b 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27   ┆BLOK    ' then writeln(inra,'= '┆
0x06a7e0…06a800            2c 20 66 70 62 6c 6f 6b 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20   ┆, fpblok) else        if inra = ┆
0x06a800…06a820 (26, 1, 3) 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 70 61 64 63 72 5b 66 36 5d 29 20 65 6c 73 65 0d 0a 20   ┆n(inra,'= ', fpadcrÆf6Å) else   ┆
0x06a820…06a840            20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 41 44 4b 4e 20 20 20 20 27 20 74 68 65 6e   ┆     if inra = 'FPADKN    ' then┆
0x06a840…06a860            20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 70 61 64 63 72 5b 66 37 5d 29 20   ┆ writeln(inra,'= ', fpadcrÆf7Å) ┆
0x06a860…06a880            65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 41 44 4b 52 20 20 20   ┆else        if inra = 'FPADKR   ┆
0x06a880…06a8a0            70 61 64 63 72 5b 66 34 5d 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d   ┆padcrÆf4Å) else        if inra =┆
0x06a8a0…06a8c0            20 27 46 50 41 44 4b 46 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c   ┆ 'FPADKF    ' then writeln(inra,┆
0x06a8c0…06a8e0            27 3d 20 27 2c 20 66 70 61 64 63 72 5b 66 35 5d 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66   ┆'= ', fpadcrÆf5Å) else        if┆
0x06a8e0…06a900            20 69 6e 72 61 20 3d 20 27 46 50 41 44 4b 42 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c   ┆ inra = 'FPADKB    ' then writel┆
0x06a900…06a920            65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 41 44 51 42 20 20 20 20 27 20   ┆e        if inra = 'FPADQB    ' ┆
0x06a920…06a940            74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 70 61 64 63 72 5b 66   ┆then writeln(inra,'= ', fpadcrÆf┆
0x06a940…06a960            33 5d 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 41 44 51   ┆3Å) else        if inra = 'FPADQ┆
0x06a960…06a980            46 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66   ┆F    ' then writeln(inra,'= ', f┆
0x06a980…06a9a0            72 61 20 3d 20 27 46 50 41 44 51 52 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69   ┆ra = 'FPADQR    ' then writeln(i┆
0x06a9a0…06a9c0            6e 72 61 2c 27 3d 20 27 2c 20 66 70 61 64 63 72 5b 66 31 5d 29 20 65 6c 73 65 0d 0a 20 20 20 20   ┆nra,'= ', fpadcrÆf1Å) else      ┆
0x06a9c0…06a9e0            20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 41 44 51 4e 20 20 20 20 27 20 74 68 65 6e 20 77 72   ┆  if inra = 'FPADQN    ' then wr┆
0x06a9e0…06aa00            69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 70 61 64 63 72 5b 66 32 5d 29 20 65 6c 73   ┆iteln(inra,'= ', fpadcrÆf2Å) els┆
0x06aa00…06aa20            4d 54 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20   ┆MT    ' then writeln(inra,'= ', ┆
0x06aa20…06aa40            66 6d 61 78 6d 74 29 20 65 6c 73 65 0d 0a 2a 29 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20   ┆fmaxmt) else  *)      if inra = ┆
0x06aa40…06aa60            27 53 54 41 47 45 53 20 20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27   ┆'STAGES    ' then writeln(inra,'┆
0x06aa60…06aa80            3d 20 27 2c 20 73 74 61 67 65 73 29 20 65 6c 73 65 0d 0a 28 2a 20 20 20 20 20 20 69 66 20 69 6e   ┆= ', stages) else  (*      if in┆
0x06aa80…06aaa0            27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 6b 70 73 68 64   ┆' then writeln(inra,'= ', fkpshd┆
0x06aaa0…06aac0            29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 4b 53 41 4e 51 20   ┆) else        if inra = 'FKSANQ ┆
0x06aac0…06aae0            20 20 20 27 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 69 6e 72 61 2c 27 3d 20 27 2c 20 66 6b 73   ┆   ' then writeln(inra,'= ', fks┆
0x06aae0…06ab00            61 6e 71 29 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 4d 41 58   ┆anq) else        if inra = 'FMAX┆
0x06ab00…06ab20            20 20 70 72 6f 63 65 64 75 72 65 20 70 6c 65 63 6d 64 3b 09 28 2a 20 63 6f 6d 6d 61 6e 64 20 2d   ┆  procedure plecmd; (* command -┆
0x06ab20…06ab40            20 70 72 69 6e 74 20 76 61 72 69 61 62 6c 65 20 2a 29 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20   ┆ print variable *)    begin     ┆
0x06ab40…06ab60            20 77 68 69 6c 65 20 72 64 72 67 6e 74 28 69 6e 72 61 29 20 64 6f 0d 0a 20 20 20 20 62 65 67 69   ┆ while rdrgnt(inra) do      begi┆
0x06ab60…06ab80            6e 0d 0a 28 2a 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 4b 50 53 48 44 20 20 20 20   ┆n  (*      if inra = 'FKPSHD    ┆
0x06ab80…06aba0            64 6f 77 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 72 64 72 65 72 72 28 27   ┆dow:=inti else          rdrerr('┆
0x06aba0…06abc0            20 49 4c 4c 45 47 41 4c 20 4c 45 54 20 56 41 52 49 41 42 4c 45 20 4e 41 4d 45 20 20 20 20 27 29   ┆ ILLEGAL LET VARIABLE NAME    ')┆
0x06abc0…06abe0            3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 69 66 20   ┆;        end;      end;      if ┆
0x06abe0…06ac00            6f 6b 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 27 4f 4b 27 29 3b 0d 0a 20 20 65 6e 64 3b 0d 0a   ┆ok then writeln('OK');    end;  ┆
0x06ac00…06ac20 (26, 1, 4) 4b 49 4e 47 20 20 20 20 27 20 74 68 65 6e 20 66 61 6b 69 6e 67 3a 3d 69 6e 74 69 20 65 6c 73 65   ┆KING    ' then faking:=inti else┆
0x06ac20…06ac40            0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 43 46 52 45 45 20 20 20 20 27   ┆          if inra = 'FCFREE    '┆
0x06ac40…06ac60            20 74 68 65 6e 20 66 63 66 72 65 65 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20   ┆ then fcfree:=inti else         ┆
0x06ac60…06ac80            20 69 66 20 69 6e 72 61 20 3d 20 27 57 49 4e 44 4f 57 20 20 20 20 27 20 74 68 65 6e 20 77 69 6e   ┆ if inra = 'WINDOW    ' then win┆
0x06ac80…06aca0            20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 43 48 45 43 4b 20 20 20 20 27 20 74 68 65 6e   ┆     if inra = 'FCHECK    ' then┆
0x06aca0…06acc0            20 66 63 68 65 63 6b 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69   ┆ fcheck:=inti else          if i┆
0x06acc0…06ace0            6e 72 61 20 3d 20 27 46 57 41 54 54 4b 20 20 20 20 27 20 74 68 65 6e 20 66 77 61 74 74 6b 3a 3d   ┆nra = 'FWATTK    ' then fwattk:=┆
0x06ace0…06ad00            69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 41   ┆inti else          if inra = 'FA┆
0x06ad00…06ad20            6e 6d 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d   ┆nm:=inti else          if inra =┆
0x06ad20…06ad40            20 27 46 57 50 41 57 4e 20 20 20 20 27 20 74 68 65 6e 20 66 77 70 61 77 6e 3a 3d 69 6e 74 69 20   ┆ 'FWPAWN    ' then fwpawn:=inti ┆
0x06ad40…06ad60            65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 57 52 4f 4f 4b 20   ┆else          if inra = 'FWROOK ┆
0x06ad60…06ad80            20 20 20 27 20 74 68 65 6e 20 66 77 72 6f 6f 6b 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20   ┆   ' then fwrook:=inti else     ┆
0x06ad80…06ada0            49 4e 47 20 20 20 20 27 20 74 68 65 6e 20 66 77 6b 69 6e 67 3a 3d 69 6e 74 69 20 65 6c 73 65 0d   ┆ING    ' then fwking:=inti else ┆
0x06ada0…06adc0            0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 57 4d 41 4a 4d 20 20 20 20 27 20   ┆         if inra = 'FWMAJM    ' ┆
0x06adc0…06ade0            74 68 65 6e 20 66 77 6d 61 6a 6d 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20   ┆then fwmajm:=inti else          ┆
0x06ade0…06ae00            69 66 20 69 6e 72 61 20 3d 20 27 46 57 4d 49 4e 4d 20 20 20 20 27 20 74 68 65 6e 20 66 77 6d 69   ┆if inra = 'FWMINM    ' then fwmi┆
0x06ae00…06ae20            20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 54 52 50 4f 4b 20 20 20 20 27 20 74 68 65 6e 20 66 74   ┆  if inra = 'FTRPOK    ' then ft┆
0x06ae20…06ae40            72 70 6f 6b 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61   ┆rpok:=inti else          if inra┆
0x06ae40…06ae60            20 3d 20 27 46 54 52 50 57 4e 20 20 20 20 27 20 74 68 65 6e 20 66 74 72 70 77 6e 3a 3d 69 6e 74   ┆ = 'FTRPWN    ' then ftrpwn:=int┆
0x06ae60…06ae80            69 20 65 6c 73 65 0d 0a 2a 29 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 57 4b   ┆i else  *)        if inra = 'FWK┆
0x06ae80…06aea0            3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46   ┆=inti else          if inra = 'F┆
0x06aea0…06aec0            54 52 41 44 45 20 20 20 20 27 20 74 68 65 6e 20 66 74 72 61 64 65 3a 3d 69 6e 74 69 20 65 6c 73   ┆TRADE    ' then ftrade:=inti els┆
0x06aec0…06aee0            65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 54 52 44 53 4c 20 20 20 20   ┆e          if inra = 'FTRDSL    ┆
0x06aee0…06af00            27 20 74 68 65 6e 20 66 74 72 64 73 6c 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20   ┆' then ftrdsl:=inti else        ┆
0x06af00…06af20            20 20 20 20 27 20 74 68 65 6e 20 66 70 66 6c 6e 78 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20   ┆    ' then fpflnx:=inti else    ┆
0x06af20…06af40            20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 52 44 55 42 4c 20 20 20 20 27 20 74 68 65   ┆      if inra = 'FRDUBL    ' the┆
0x06af40…06af60            6e 20 66 72 64 75 62 6c 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20   ┆n frdubl:=inti else          if ┆
0x06af60…06af80            69 6e 72 61 20 3d 20 27 46 52 4b 37 54 48 20 20 20 20 27 20 74 68 65 6e 20 66 72 6b 37 74 68 3a   ┆inra = 'FRK7TH    ' then frk7th:┆
0x06af80…06afa0            20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 42 4c 4f 4b 20 20 20 20 27 20 74 68 65 6e 20 66 70 62   ┆ if inra = 'FPBLOK    ' then fpb┆
0x06afa0…06afc0            6c 6f 6b 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20   ┆lok:=inti else          if inra ┆
0x06afc0…06afe0            3d 20 27 46 50 43 4f 4e 4e 20 20 20 20 27 20 74 68 65 6e 20 66 70 63 6f 6e 6e 3a 3d 69 6e 74 69   ┆= 'FPCONN    ' then fpconn:=inti┆
0x06afe0…06b000            20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 46 4c 4e 58   ┆ else          if inra = 'FPFLNX┆
0x06b000…06b020 (26, 1, 5) 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 41 44 4b 4e 20 20 20 20   ┆e          if inra = 'FPADKN    ┆
0x06b020…06b040            27 20 74 68 65 6e 20 66 70 61 64 63 72 5b 66 37 5d 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20   ┆' then fpadcrÆf7Å:=inti else    ┆
0x06b040…06b060            20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 41 44 4b 52 20 20 20 20 27 20 74 68 65   ┆      if inra = 'FPADKR    ' the┆
0x06b060…06b080            6e 20 66 70 61 64 63 72 5b 66 38 5d 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20   ┆n fpadcrÆf8Å:=inti else         ┆
0x06b080…06b0a0            3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27   ┆:=inti else          if inra = '┆
0x06b0a0…06b0c0            46 50 41 44 4b 46 20 20 20 20 27 20 74 68 65 6e 20 66 70 61 64 63 72 5b 66 35 5d 3a 3d 69 6e 74   ┆FPADKF    ' then fpadcrÆf5Å:=int┆
0x06b0c0…06b0e0            69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 41 44 4b   ┆i else          if inra = 'FPADK┆
0x06b0e0…06b100            42 20 20 20 20 27 20 74 68 65 6e 20 66 70 61 64 63 72 5b 66 36 5d 3a 3d 69 6e 74 69 20 65 6c 73   ┆B    ' then fpadcrÆf6Å:=inti els┆
0x06b100…06b120            66 70 61 64 63 72 5b 66 32 5d 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69   ┆fpadcrÆf2Å:=inti else          i┆
0x06b120…06b140            66 20 69 6e 72 61 20 3d 20 27 46 50 41 44 51 42 20 20 20 20 27 20 74 68 65 6e 20 66 70 61 64 63   ┆f inra = 'FPADQB    ' then fpadc┆
0x06b140…06b160            72 5b 66 33 5d 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72   ┆rÆf3Å:=inti else          if inr┆
0x06b160…06b180            61 20 3d 20 27 46 50 41 44 51 46 20 20 20 20 27 20 74 68 65 6e 20 66 70 61 64 63 72 5b 66 34 5d   ┆a = 'FPADQF    ' then fpadcrÆf4Å┆
0x06b180…06b1a0            53 20 20 20 20 27 20 74 68 65 6e 20 73 74 61 67 65 73 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 28   ┆S    ' then stages:=inti else  (┆
0x06b1a0…06b1c0            2a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 41 44 51 52 20 20 20 20 27 20   ┆*        if inra = 'FPADQR    ' ┆
0x06b1c0…06b1e0            74 68 65 6e 20 66 70 61 64 63 72 5b 66 31 5d 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20   ┆then fpadcrÆf1Å:=inti else      ┆
0x06b1e0…06b200            20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 50 41 44 51 4e 20 20 20 20 27 20 74 68 65 6e 20   ┆    if inra = 'FPADQN    ' then ┆
0x06b200…06b220            69 66 20 69 6e 72 61 20 3d 20 27 46 4b 53 41 4e 51 20 20 20 20 27 20 74 68 65 6e 20 66 6b 73 61   ┆if inra = 'FKSANQ    ' then fksa┆
0x06b220…06b240            6e 71 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d   ┆nq:=inti else          if inra =┆
0x06b240…06b260            20 27 46 4d 41 58 4d 54 20 20 20 20 27 20 74 68 65 6e 20 66 6d 61 78 6d 74 3a 3d 69 6e 74 69 20   ┆ 'FMAXMT    ' then fmaxmt:=inti ┆
0x06b260…06b280            65 6c 73 65 0d 0a 2a 29 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 53 54 41 47 45   ┆else  *)        if inra = 'STAGE┆
0x06b280…06b2a0            20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 6e 74 69 3a 3d 72 64 72 6e 75 6d 3b 0d 0a   ┆    begin        inti:=rdrnum;  ┆
0x06b2a0…06b2c0            20 20 20 20 20 20 69 66 20 6f 6b 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 28   ┆      if ok then        begin  (┆
0x06b2c0…06b2e0            2a 20 20 20 20 20 20 20 20 69 66 20 69 6e 72 61 20 3d 20 27 46 4b 50 53 48 44 20 20 20 20 27 20   ┆*        if inra = 'FKPSHD    ' ┆
0x06b2e0…06b300            74 68 65 6e 20 66 6b 70 73 68 64 3a 3d 69 6e 74 69 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20   ┆then fkpshd:=inti else          ┆
0x06b300…06b320            20 20 62 65 67 69 6e 20 63 6f 6d 3a 3d 31 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65   ┆  begin com:=1 end;    procedure┆
0x06b320…06b340            20 6c 65 74 63 6d 64 3b 09 28 2a 20 63 6f 6d 6d 61 6e 64 20 2d 20 63 68 61 6e 67 65 20 76 61 72   ┆ letcmd; (* command - change var┆
0x06b340…06b360            69 61 62 6c 65 20 2a 29 0d 0a 20 20 76 61 72 20 69 6e 74 69 20 3a 20 74 69 3b 0d 0a 20 20 62 65   ┆iable *)    var inti : ti;    be┆
0x06b360…06b380            67 69 6e 0d 0a 20 20 20 20 77 68 69 6c 65 20 72 64 72 67 6e 74 28 69 6e 72 61 29 20 64 6f 0d 0a   ┆gin      while rdrgnt(inra) do  ┆
0x06b380…06b3a0            20 20 20 69 66 20 6f 6b 20 74 68 65 6e 20 63 6f 6d 3a 3d 32 3b 0d 0a 20 20 20 20 69 66 20 67 6f   ┆   if ok then com:=2;      if go┆
0x06b3a0…06b3c0            69 6e 67 20 3c 3d 20 30 20 74 68 65 6e 20 67 6f 69 6e 67 3a 3d 31 3b 0d 0a 20 20 65 6e 64 3b 0d   ┆ing <= 0 then going:=1;    end; ┆
0x06b3c0…06b3e0            0a 20 20 70 72 6f 63 65 64 75 72 65 20 69 6e 69 63 6d 64 3b 09 28 2a 20 63 6f 6d 6d 61 6e 64 20   ┆   procedure inicmd; (* command ┆
0x06b3e0…06b400            2d 20 69 6e 69 74 69 61 6c 69 7a 65 20 66 6f 72 20 61 20 6e 65 77 20 67 61 6d 65 20 2a 29 0d 0a   ┆- initialize for a new game *)  ┆
0x06b400…06b420 (26, 1, 6) 28 2a 20 63 6f 6d 6d 61 6e 64 20 2d 20 65 6e 64 20 70 72 6f 67 72 61 6d 20 2a 29 0d 0a 20 20 62   ┆(* command - end program *)    b┆
0x06b420…06b440            65 67 69 6e 20 63 6f 6d 3a 3d 39 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 67 6f   ┆egin com:=9 end;    procedure go┆
0x06b440…06b460            6e 63 6d 64 3b 09 28 2a 20 63 6f 6d 6d 61 6e 64 20 2d 20 67 6f 20 6e 20 6d 6f 76 65 73 20 2a 29   ┆ncmd; (* command - go n moves *)┆
0x06b460…06b480            0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 67 6f 69 6e 67 3a 3d 72 64 72 6e 75 6d 3b 0d 0a 20   ┆    begin      going:=rdrnum;   ┆
0x06b480…06b4a0            20 20 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 6a 6e 74 6a 3a 3d 7a 6a 2d 31 3b 0d 0a 20 20   ┆  ');            jntj:=zj-1;    ┆
0x06b4a0…06b4c0            20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 6a 6e 74 6a 3a 3d 6a 6e 74 6a 2b 31 3b 0d   ┆      end;        jntj:=jntj+1; ┆
0x06b4c0…06b4e0            0a 20 20 20 20 75 6e 74 69 6c 20 6a 6e 74 6a 20 3d 20 7a 6a 3b 0d 0a 20 20 20 20 6c 73 74 6d 6f   ┆     until jntj = zj;      lstmo┆
0x06b4e0…06b500            76 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 65 6e 64 63 6d 64 3b 09   ┆v;    end;    procedure endcmd; ┆
0x06b500…06b520            20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 69 6e 74 73 3a 3d 61 73 20 74   ┆ begin            for ints:=as t┆
0x06b520…06b540            6f 20 7a 73 20 64 6f 20 62 6f 61 72 64 2e 72 62 69 73 5b 69 6e 74 73 5d 3a 3d 6d 74 3b 0d 0a 20   ┆o zs do board.rbisÆintsÅ:=mt;   ┆
0x06b540…06b560            20 20 20 20 20 20 20 20 20 63 6c 73 74 61 74 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 72 64 72 65   ┆         clstat;            rdre┆
0x06b560…06b580            72 72 28 27 20 49 4c 4c 45 47 41 4c 20 42 4f 41 52 44 20 4f 50 54 49 4f 4e 20 20 20 20 20 20 20   ┆rr(' ILLEGAL BOARD OPTION       ┆
0x06b580…06b5a0            27 2c 27 35 27 2c 27 36 27 2c 27 37 27 2c 27 38 27 3a 20 62 6f 61 61 64 76 28 6f 72 64 28 69 6c   ┆','5','6','7','8': boaadv(ord(il┆
0x06b5a0…06b5c0            69 6e 65 5b 6a 6e 74 6a 5d 29 2d 6f 72 64 28 27 30 27 29 29 3b 0d 0a 20 20 20 20 20 20 65 6e 64   ┆ineÆjntjÅ)-ord('0'));        end┆
0x06b5c0…06b5e0            0d 0a 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 20 69 6c 69 6e 65 5b 6a   ┆        else          if ilineÆj┆
0x06b5e0…06b600            6e 74 6a 5d 20 69 6e 20 5b 27 41 27 2e 2e 27 39 27 5d 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20   ┆ntjÅ in Æ'A'..'9'Å then         ┆
0x06b600…06b620            75 6d 70 5b 65 71 2c 69 6e 74 6d 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 27 4b 27 3a 20 62 6f 61   ┆umpÆeq,intmÅ);          'K': boa┆
0x06b620…06b640            73 74 6f 28 78 74 75 6d 70 5b 65 6b 2c 69 6e 74 6d 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 27 4c   ┆sto(xtumpÆek,intmÅ);          'L┆
0x06b640…06b660            27 3a 20 69 6e 74 6d 3a 3d 6c 69 74 65 3b 0d 0a 20 20 20 20 20 20 20 20 27 44 27 3a 20 69 6e 74   ┆': intm:=lite;          'D': int┆
0x06b660…06b680            6d 3a 3d 64 61 72 6b 3b 0d 0a 20 20 20 20 20 20 20 20 27 31 27 2c 27 32 27 2c 27 33 27 2c 27 34   ┆m:=dark;          '1','2','3','4┆
0x06b680…06b6a0            27 52 27 3a 20 62 6f 61 73 74 6f 28 78 74 75 6d 70 5b 65 72 2c 69 6e 74 6d 5d 29 3b 0d 0a 20 20   ┆'R': boasto(xtumpÆer,intmÅ);    ┆
0x06b6a0…06b6c0            20 20 20 20 20 20 27 4e 27 3a 20 62 6f 61 73 74 6f 28 78 74 75 6d 70 5b 65 6e 2c 69 6e 74 6d 5d   ┆      'N': boasto(xtumpÆen,intmÅ┆
0x06b6c0…06b6e0            29 3b 0d 0a 20 20 20 20 20 20 20 20 27 42 27 3a 20 62 6f 61 73 74 6f 28 78 74 75 6d 70 5b 65 62   ┆);          'B': boasto(xtumpÆeb┆
0x06b6e0…06b700            2c 69 6e 74 6d 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 27 51 27 3a 20 62 6f 61 73 74 6f 28 78 74   ┆,intmÅ);          'Q': boasto(xt┆
0x06b700…06b720            6a 5d 20 69 6e 20 5b 27 50 27 2c 27 52 27 2c 27 4e 27 2c 27 42 27 2c 27 51 27 2c 27 4b 27 2c 27   ┆jÅ in Æ'P','R','N','B','Q','K','┆
0x06b720…06b740            4c 27 2c 27 44 27 2c 27 31 27 2e 2e 27 38 27 5d 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 63 61 73   ┆L','D','1'..'8'Å then        cas┆
0x06b740…06b760            65 20 69 6c 69 6e 65 5b 6a 6e 74 6a 5d 20 6f 66 0d 0a 20 20 20 20 20 20 20 20 27 50 27 3a 20 62   ┆e ilineÆjntjÅ of          'P': b┆
0x06b760…06b780            6f 61 73 74 6f 28 78 74 75 6d 70 5b 65 70 2c 69 6e 74 6d 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20   ┆oasto(xtumpÆep,intmÅ);          ┆
0x06b780…06b7a0            20 20 20 6c 73 74 6d 76 3a 3d 6e 75 6c 6d 76 3b 0d 0a 20 20 20 20 66 6f 72 20 69 6e 74 73 3a 3d   ┆   lstmv:=nulmv;      for ints:=┆
0x06b7a0…06b7c0            61 73 20 74 6f 20 7a 73 20 64 6f 20 62 6f 61 72 64 2e 72 62 69 73 5b 69 6e 74 73 5d 3a 3d 6d 74   ┆as to zs do board.rbisÆintsÅ:=mt┆
0x06b7c0…06b7e0            3b 0d 0a 20 20 20 20 69 6e 74 6d 3a 3d 6c 69 74 65 3b 0d 0a 20 20 20 20 69 6e 74 73 3a 3d 30 3b   ┆;      intm:=lite;      ints:=0;┆
0x06b7e0…06b800            0d 0a 20 20 20 20 72 65 70 65 61 74 0d 0a 20 20 20 20 20 20 69 66 20 69 6c 69 6e 65 5b 6a 6e 74   ┆      repeat        if ilineÆjnt┆
0x06b800…06b820 (26, 1, 7) 20 62 6f 61 73 74 6f 28 61 3a 20 74 70 29 3b 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20   ┆ boasto(a: tp);      begin      ┆
0x06b820…06b840            20 20 62 6f 61 72 64 2e 72 62 69 73 5b 69 6e 74 73 5d 3a 3d 61 3b 0d 0a 20 20 20 20 20 20 69 66   ┆  board.rbisÆintsÅ:=a;        if┆
0x06b840…06b860            20 69 6e 74 73 20 3c 20 7a 73 20 74 68 65 6e 20 69 6e 74 73 3a 3d 69 6e 74 73 2b 31 3b 0d 0a 20   ┆ ints < zs then ints:=ints+1;   ┆
0x06b860…06b880            20 20 20 65 6e 64 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 63 6c 73 74 61 74 3b 0d 0a 20   ┆   end;    begin      clstat;   ┆
0x06b880…06b8a0            73 20 3a 20 74 73 3b 0d 0a 20 20 20 20 70 72 6f 63 65 64 75 72 65 20 62 6f 61 61 64 76 28 61 3a   ┆s : ts;      procedure boaadv(a:┆
0x06b8a0…06b8c0            20 74 69 29 3b 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 74 73 2b   ┆ ti);      begin        if ints+┆
0x06b8c0…06b8e0            61 20 3c 20 7a 73 20 74 68 65 6e 20 69 6e 74 73 3a 3d 69 6e 74 73 2b 61 20 65 6c 73 65 20 69 6e   ┆a < zs then ints:=ints+a else in┆
0x06b8e0…06b900            74 73 3a 3d 7a 73 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 70 72 6f 63 65 64 75 72 65   ┆ts:=zs;      end;      procedure┆
0x06b900…06b920            68 65 6e 20 69 6e 74 69 3a 3d 2d 69 6e 74 69 3b 0d 0a 20 20 20 20 72 64 72 6e 75 6d 3a 3d 69 6e   ┆hen inti:=-inti;      rdrnum:=in┆
0x06b920…06b940            74 69 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 62 6f 61 63 6d 64 3b   ┆ti;    end;    procedure boacmd;┆
0x06b940…06b960            09 28 2a 20 63 6f 6d 6d 61 6e 64 20 2d 20 73 65 74 20 75 70 20 70 6f 73 69 74 69 6f 6e 20 2a 29   ┆ (* command - set up position *)┆
0x06b960…06b980            0d 0a 20 20 76 61 72 0d 0a 20 20 20 20 69 6e 74 6d 20 3a 20 74 6d 3b 0d 0a 20 20 20 20 69 6e 74   ┆    var      intm : tm;      int┆
0x06b980…06b9a0            6e 74 6a 2b 31 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 69 66 20 6f 6b 20 61 6e 64 20   ┆ntj+1;      end;      if ok and ┆
0x06b9a0…06b9c0            28 69 6c 69 6e 65 5b 6a 6e 74 6a 5d 20 69 6e 20 5b 27 41 27 2e 2e 27 5a 27 5d 29 20 74 68 65 6e   ┆(ilineÆjntjÅ in Æ'A'..'Z'Å) then┆
0x06b9c0…06b9e0            0d 0a 20 20 20 20 20 20 72 64 72 65 72 72 28 27 20 44 49 47 49 54 20 45 58 50 45 43 54 45 44 20   ┆        rdrerr(' DIGIT EXPECTED ┆
0x06b9e0…06ba00            20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 29 3b 0d 0a 20 20 20 20 69 66 20 69 6e 74 62 20 74   ┆              ');      if intb t┆
0x06ba00…06ba20            61 78 69 6e 74 20 64 69 76 20 31 30 20 74 68 65 6e 20 69 6e 74 69 3a 3d 31 30 2a 69 6e 74 69 2b   ┆axint div 10 then inti:=10*inti+┆
0x06ba20…06ba40            6f 72 64 28 69 6c 69 6e 65 5b 6a 6e 74 6a 5d 29 2d 6f 72 64 28 27 30 27 29 0d 0a 20 20 20 20 20   ┆ord(ilineÆjntjÅ)-ord('0')       ┆
0x06ba40…06ba60            20 20 20 65 6c 73 65 20 72 64 72 65 72 72 28 27 20 4e 55 4d 42 45 52 20 54 4f 4f 20 4c 41 52 47   ┆   else rdrerr(' NUMBER TOO LARG┆
0x06ba60…06ba80            45 20 20 20 20 20 20 20 20 20 20 20 20 20 27 29 3b 0d 0a 20 20 20 20 20 20 6a 6e 74 6a 3a 3d 6a   ┆E             ');        jntj:=j┆
0x06ba80…06baa0            69 6e 65 5b 6a 6e 74 6a 5d 20 3d 20 27 2b 27 20 74 68 65 6e 20 6a 6e 74 6a 3a 3d 6a 6e 74 6a 2b   ┆ineÆjntjÅ = '+' then jntj:=jntj+┆
0x06baa0…06bac0            31 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 69 6e 74 69 3a 3d 30 3b 0d 0a 20 20 20 20   ┆1;      end;      inti:=0;      ┆
0x06bac0…06bae0            77 68 69 6c 65 20 69 6c 69 6e 65 5b 6a 6e 74 6a 5d 20 69 6e 20 5b 27 30 27 2e 2e 27 39 27 5d 20   ┆while ilineÆjntjÅ in Æ'0'..'9'Å ┆
0x06bae0…06bb00            64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 66 20 69 6e 74 69 20 3c 20 6d   ┆do      begin        if inti < m┆
0x06bb00…06bb20            6e 65 5b 6a 6e 74 6a 5d 20 3d 20 27 2d 27 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a   ┆neÆjntjÅ = '-' then      begin  ┆
0x06bb20…06bb40            20 20 20 20 20 20 69 6e 74 62 3a 3d 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 6a 6e 74 6a 3a 3d 6a   ┆      intb:=true;        jntj:=j┆
0x06bb40…06bb60            6e 74 6a 2b 31 3b 0d 0a 20 20 20 20 65 6e 64 20 65 6c 73 65 0d 0a 20 20 20 20 62 65 67 69 6e 0d   ┆ntj+1;      end else      begin ┆
0x06bb60…06bb80            0a 20 20 20 20 20 20 69 6e 74 62 3a 3d 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 69 66 20 69 6c   ┆       intb:=false;        if il┆
0x06bb80…06bba0            65 20 2a 29 0d 0a 20 20 76 61 72 0d 0a 20 20 20 20 69 6e 74 62 20 3a 20 74 62 3b 0d 0a 20 20 20   ┆e *)    var      intb : tb;     ┆
0x06bba0…06bbc0            20 69 6e 74 69 20 3a 20 74 69 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 77 68 69 6c 65 20   ┆ inti : ti;    begin      while ┆
0x06bbc0…06bbe0            28 6a 6e 74 6a 20 3c 20 7a 6a 29 20 61 6e 64 20 28 69 6c 69 6e 65 5b 6a 6e 74 6a 5d 20 3d 20 27   ┆(jntj < zj) and (ilineÆjntjÅ = '┆
0x06bbe0…06bc00            20 27 29 20 64 6f 20 6a 6e 74 6a 3a 3d 6a 6e 74 6a 2b 31 3b 0d 0a 20 20 20 20 69 66 20 69 6c 69   ┆ ') do jntj:=jntj+1;      if ili┆
0x06bc00…06bc20 (26, 1, 8) 20 20 20 69 6d 74 6a 3a 3d 69 6d 74 6a 2b 31 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20   ┆   imtj:=imtj+1;      end;      ┆
0x06bc20…06bc40            69 6c 69 6e 65 5b 7a 6a 5d 3a 3d 27 3b 27 3b 0d 0a 20 20 20 20 6a 6e 74 6a 3a 3d 61 6a 3b 0d 0a   ┆ilineÆzjÅ:=';';      jntj:=aj;  ┆
0x06bc40…06bc60            20 20 65 6e 64 3b 0d 0a 20 20 66 75 6e 63 74 69 6f 6e 20 72 64 72 6e 75 6d 3a 20 74 69 3b 09 09   ┆  end;    function rdrnum: ti;  ┆
0x06bc60…06bc80            28 2a 20 63 72 61 63 6b 20 6e 75 6d 62 65 72 20 66 72 6f 6d 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e   ┆(* crack number from command lin┆
0x06bc80…06bca0            3b 27 29 20 61 6e 64 20 28 6a 6d 74 6a 20 3c 20 7a 6a 29 20 74 68 65 6e 20 6a 6d 74 6a 3a 3d 6a   ┆;') and (jmtj < zj) then jmtj:=j┆
0x06bca0…06bcc0            6d 74 6a 2b 31 3b 0d 0a 20 20 20 20 72 64 72 6d 6f 76 3a 3d 69 6d 74 6a 20 3c 3e 20 61 6a 3b 0d   ┆mtj+1;      rdrmov:=imtj <> aj; ┆
0x06bcc0…06bce0            0a 20 20 20 20 77 68 69 6c 65 20 69 6d 74 6a 20 3c 20 7a 6a 20 64 6f 0d 0a 20 20 20 20 62 65 67   ┆     while imtj < zj do      beg┆
0x06bce0…06bd00            69 6e 0d 0a 20 20 20 20 20 20 69 6c 69 6e 65 5b 69 6d 74 6a 5d 3a 3d 27 20 27 3b 0d 0a 20 20 20   ┆in        ilineÆimtjÅ:=' ';     ┆
0x06bd00…06bd20            27 3b 27 29 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 6c 69 6e 65 5b   ┆';') do      begin        ilineÆ┆
0x06bd20…06bd40            69 6d 74 6a 5d 3a 3d 69 63 61 72 64 5b 6a 6d 74 6a 5d 3b 0d 0a 20 20 20 20 20 20 69 6d 74 6a 3a   ┆imtjÅ:=icardÆjmtjÅ;        imtj:┆
0x06bd40…06bd60            3d 69 6d 74 6a 2b 31 3b 0d 0a 20 20 20 20 20 20 6a 6d 74 6a 3a 3d 6a 6d 74 6a 2b 31 3b 0d 0a 20   ┆=imtj+1;        jmtj:=jmtj+1;   ┆
0x06bd60…06bd80            20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 69 66 20 28 69 63 61 72 64 5b 6a 6d 74 6a 5d 20 3d 20 27   ┆   end;      if (icardÆjmtjÅ = '┆
0x06bd80…06bda0            62 65 67 69 6e 0d 0a 20 20 20 20 77 68 69 6c 65 20 28 6a 6d 74 6a 20 3c 20 7a 6a 29 20 61 6e 64   ┆begin      while (jmtj < zj) and┆
0x06bda0…06bdc0            20 28 69 63 61 72 64 5b 6a 6d 74 6a 5d 20 3d 20 27 20 27 29 20 64 6f 20 6a 6d 74 6a 3a 3d 6a 6d   ┆ (icardÆjmtjÅ = ' ') do jmtj:=jm┆
0x06bdc0…06bde0            74 6a 2b 31 3b 0d 0a 20 20 20 20 69 6d 74 6a 3a 3d 61 6a 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20   ┆tj+1;      imtj:=aj;      while ┆
0x06bde0…06be00            28 6a 6d 74 6a 20 3c 20 7a 6a 29 20 61 6e 64 20 28 69 63 61 72 64 5b 6a 6d 74 6a 5d 20 3c 3e 20   ┆(jmtj < zj) and (icardÆjmtjÅ <> ┆
0x06be00…06be20            69 63 61 72 64 5b 7a 6a 5d 3a 3d 27 3b 27 3b 0d 0a 20 20 20 20 6a 6d 74 6a 3a 3d 61 6a 3b 0d 0a   ┆icardÆzjÅ:=';';      jmtj:=aj;  ┆
0x06be20…06be40            20 20 65 6e 64 3b 0d 0a 20 20 66 75 6e 63 74 69 6f 6e 20 72 64 72 6d 6f 76 3a 20 74 62 3b 09 09   ┆  end;    function rdrmov: tb;  ┆
0x06be40…06be60            28 2a 20 65 78 74 72 61 63 74 20 6e 65 78 74 20 63 6f 6d 6d 61 6e 64 20 66 72 6f 6d 20 69 6e 70   ┆(* extract next command from inp┆
0x06be60…06be80            75 74 20 6c 69 6e 65 20 2a 29 0d 0a 20 20 76 61 72 20 69 6d 74 6a 20 3a 20 74 6a 3b 0d 0a 20 20   ┆ut line *)    var imtj : tj;    ┆
0x06be80…06bea0            20 20 20 66 6f 72 20 69 6e 74 6a 20 3a 3d 61 6a 20 74 6f 20 7a 6a 2d 31 20 64 6f 0d 0a 20 20 20   ┆   for intj :=aj to zj-1 do     ┆
0x06bea0…06bec0            20 20 20 69 66 20 69 63 61 72 64 5b 69 6e 74 6a 5d 20 69 6e 20 5b 27 61 27 2e 2e 27 7a 27 5d 20   ┆   if icardÆintjÅ in Æ'a'..'z'Å ┆
0x06bec0…06bee0            74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 69 63 61 72 64 5b 69 6e 74 6a 5d 3a 3d 63 68 72 28 6f   ┆then          icardÆintjÅ:=chr(o┆
0x06bee0…06bf00            72 64 28 69 63 61 72 64 5b 69 6e 74 6a 5d 29 2d 6f 72 64 28 27 20 27 29 29 3b 0d 0a 20 20 20 20   ┆rd(icardÆintjÅ)-ord(' '));      ┆
0x06bf00…06bf20            74 63 3b 0d 0a 20 20 20 20 20 20 69 6e 74 6a 3a 3d 69 6e 74 6a 2b 31 3b 0d 0a 20 20 20 20 65 6e   ┆tc;        intj:=intj+1;      en┆
0x06bf20…06bf40            64 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 69 6e 74 6a 20 3c 20 7a 6a 20 64 6f 0d 0a 20 20 20 20   ┆d;      while intj < zj do      ┆
0x06bf40…06bf60            62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 63 61 72 64 5b 69 6e 74 6a 5d 3a 3d 27 20 27 3b 0d 0a   ┆begin        icardÆintjÅ:=' ';  ┆
0x06bf60…06bf80            20 20 20 20 20 20 69 6e 74 6a 3a 3d 69 6e 74 6a 2b 31 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20   ┆      intj:=intj+1;      end;   ┆
0x06bf80…06bfa0            0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 69 6e 74 6a 3a 3d 61 6a 3b 0d 0a 20 20 20 20 72 65 61   ┆   begin      intj:=aj;      rea┆
0x06bfa0…06bfc0            64 6c 6e 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 6e 6f 74 20 65 6f 6c 6e 28 69 6e 70 75 74 29 20   ┆dln;      while not eoln(input) ┆
0x06bfc0…06bfe0            61 6e 64 20 28 69 6e 74 6a 20 3c 20 7a 6a 29 20 64 6f 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20   ┆and (intj < zj) do      begin   ┆
0x06bfe0…06c000            20 20 20 20 20 72 65 61 64 28 69 6e 74 63 29 3b 20 69 63 61 72 64 5b 69 6e 74 6a 5d 3a 3d 69 6e   ┆     read(intc); icardÆintjÅ:=in┆
0x06c000…06c020 (27, 0, 1) 74 6a 3a 3d 61 6a 3b 0d 0a 20 20 20 20 69 6e 74 62 3a 3d 72 64 72 67 6e 74 28 69 6e 72 61 29 3b   ┆tj:=aj;      intb:=rdrgnt(inra);┆
0x06c020…06c040            0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 72 64 6c 69 6e 65 3b 09 09 28   ┆    end;    procedure rdline;  (┆
0x06c040…06c060            2a 20 67 65 74 20 6e 65 78 74 20 69 6e 70 75 74 20 6c 69 6e 65 20 66 72 6f 6d 20 75 73 65 72 20   ┆* get next input line from user ┆
0x06c060…06c080            2a 29 0d 0a 20 20 76 61 72 20 69 6e 74 6a 20 3a 20 74 6a 3b 20 69 6e 74 63 20 3a 20 74 63 3b 0d   ┆*)    var intj : tj; intc : tc; ┆
0x06c080…06c0a0            2b 31 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 70 72 6f 63 65 64 75 72 65 20 72 64 72 73 66 74 3b   ┆+1;    end;    procedure rdrsft;┆
0x06c0a0…06c0c0            09 09 28 2a 20 73 6b 69 70 20 66 69 72 73 74 20 74 6f 6b 65 6e 20 69 6e 20 63 6f 6d 6d 61 6e 64   ┆  (* skip first token in command┆
0x06c0c0…06c0e0            20 6c 69 6e 65 20 2a 29 0d 0a 20 20 76 61 72 0d 0a 20 20 20 20 69 6e 72 61 20 3a 20 72 61 3b 0d   ┆ line *)    var      inra : ra; ┆
0x06c0e0…06c100            0a 20 20 20 20 69 6e 74 62 20 3a 20 74 62 3b 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 6a 6e   ┆     intb : tb;    begin      jn┆
0x06c100…06c120            0d 0a 20 20 20 20 20 20 69 6e 74 6a 3a 3d 69 6e 74 6a 2b 31 3b 0d 0a 20 20 20 20 20 20 6a 6e 74   ┆        intj:=intj+1;        jnt┆
0x06c120…06c140            6a 3a 3d 6a 6e 74 6a 2b 31 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 72 64 72 67 6e 74   ┆j:=jntj+1;      end;      rdrgnt┆
0x06c140…06c160            3a 3d 69 6e 74 6a 20 3c 3e 20 61 6a 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 69 6c 69 6e 65 5b 6a   ┆:=intj <> aj;      while ilineÆj┆
0x06c160…06c180            6e 74 6a 5d 20 69 6e 20 5b 27 41 27 2e 2e 27 5a 27 5d 20 64 6f 20 6a 6e 74 6a 3a 3d 6a 6e 74 6a   ┆ntjÅ in Æ'A'..'Z'Å do jntj:=jntj┆
0x06c180…06c1a0            0a 20 20 20 20 69 6e 74 6a 3a 3d 61 6a 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20 28 6a 6e 74 6a 20   ┆     intj:=aj;      while (jntj ┆
0x06c1a0…06c1c0            3c 20 7a 6a 29 20 61 6e 64 20 28 69 6e 74 6a 20 3c 20 7a 61 29 20 61 6e 64 20 28 69 6c 69 6e 65   ┆< zj) and (intj < za) and (iline┆
0x06c1c0…06c1e0            5b 6a 6e 74 6a 5d 20 69 6e 20 5b 27 41 27 2e 2e 27 5a 27 5d 29 20 64 6f 0d 0a 20 20 20 20 62 65   ┆ÆjntjÅ in Æ'A'..'Z'Å) do      be┆
0x06c1e0…06c200            67 69 6e 0d 0a 20 20 20 20 20 20 61 5b 69 6e 74 6a 5d 3a 3d 69 6c 69 6e 65 5b 6a 6e 74 6a 5d 3b   ┆gin        aÆintjÅ:=ilineÆjntjÅ;┆
0x06c200…06c220            72 6f 6d 20 63 6f 6d 6d 61 6e 64 20 2a 29 0d 0a 20 20 76 61 72 20 69 6e 74 6a 20 3a 20 74 6a 3b   ┆rom command *)    var intj : tj;┆
0x06c220…06c240            0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 77 68 69 6c 65 20 28 6a 6e 74 6a 20 3c 20 7a 6a 29   ┆    begin      while (jntj < zj)┆
0x06c240…06c260            20 61 6e 64 20 28 69 6c 69 6e 65 5b 6a 6e 74 6a 5d 20 3c 20 27 41 27 29 20 64 6f 20 6a 6e 74 6a   ┆ and (ilineÆjntjÅ < 'A') do jntj┆
0x06c260…06c280            3a 3d 6a 6e 74 6a 2b 31 3b 0d 0a 20 20 20 20 61 3a 3d 27 20 20 20 20 20 20 20 20 20 20 27 3b 0d   ┆:=jntj+1;      a:='          '; ┆
0x06c280…06c2a0            72 20 69 6e 74 6e 3a 3d 61 6e 20 74 6f 20 7a 6e 20 64 6f 20 77 72 69 74 65 28 61 5b 69 6e 74 6e   ┆r intn:=an to zn do write(aÆintn┆
0x06c2a0…06c2c0            5d 29 3b 0d 0a 20 20 20 20 77 72 69 74 65 6c 6e 3b 0d 0a 20 20 20 20 6f 6b 3a 3d 66 61 6c 73 65   ┆Å);      writeln;      ok:=false┆
0x06c2c0…06c2e0            3b 0d 0a 20 20 65 6e 64 3b 0d 0a 20 20 66 75 6e 63 74 69 6f 6e 20 72 64 72 67 6e 74 28 76 61 72   ┆;    end;    function rdrgnt(var┆
0x06c2e0…06c300            20 61 3a 20 72 61 29 3a 20 74 62 3b 09 28 2a 20 67 65 74 20 6e 65 78 74 20 74 6f 6b 65 6e 20 66   ┆ a: ra): tb; (* get next token f┆
0x06c300…06c320            65 5b 69 6e 74 6a 5d 29 3b 0d 0a 20 20 20 20 20 20 77 72 69 74 65 6c 6e 3b 0d 0a 20 20 20 20 65   ┆eÆintjÅ);        writeln;      e┆
0x06c320…06c340            6e 64 3b 0d 0a 20 20 20 20 66 6f 72 20 69 6e 74 6a 3a 3d 61 6a 20 74 6f 20 6a 6e 74 6a 2d 31 20   ┆nd;      for intj:=aj to jntj-1 ┆
0x06c340…06c360            64 6f 20 77 72 69 74 65 28 27 20 27 29 3b 0d 0a 20 20 20 20 77 72 69 74 65 6c 6e 28 27 60 27 29   ┆do write(' ');      writeln('`')┆
0x06c360…06c380            3b 09 28 2a 20 70 6f 69 6e 74 65 72 20 74 6f 20 65 72 72 6f 72 20 2a 29 0d 0a 20 20 20 20 66 6f   ┆; (* pointer to error *)      fo┆
0x06c380…06c3a0            6e 74 6a 20 3a 20 74 6a 3b 0d 0a 20 20 20 20 69 6e 74 6e 20 3a 20 74 6e 3b 0d 0a 20 20 62 65 67   ┆ntj : tj;      intn : tn;    beg┆
0x06c3a0…06c3c0            69 6e 0d 0a 20 20 20 20 69 66 20 6e 6f 74 20 73 77 65 63 20 74 68 65 6e 0d 0a 20 20 20 20 62 65   ┆in      if not swec then      be┆
0x06c3c0…06c3e0            67 69 6e 0d 0a 20 20 20 20 20 20 77 72 69 74 65 28 27 20 27 29 3b 0d 0a 20 20 20 20 20 20 66 6f   ┆gin        write(' ');        fo┆
0x06c3e0…06c400            72 20 69 6e 74 6a 3a 3d 61 6a 20 74 6f 20 7a 6a 2d 31 20 64 6f 20 77 72 69 74 65 28 69 6c 69 6e   ┆r intj:=aj to zj-1 do write(ilin┆
0x06c400…06c420 (27, 0, 2) 6d 20 75 73 65 72 20 2a 29 0d 0a 76 61 72 0d 0a 20 20 69 6e 72 61 09 3a 20 72 61 3b 0d 0a 20 20   ┆m user *)  var    inra : ra;    ┆
0x06c420…06c440            69 6e 74 6a 09 3a 20 74 6a 3b 0d 0a 20 20 6f 6b 09 3a 20 74 62 3b 0d 0a 20 20 70 72 6f 63 65 64   ┆intj : tj;    ok : tb;    proced┆
0x06c440…06c460            75 72 65 20 72 64 72 65 72 72 28 61 3a 20 72 6e 29 3b 09 28 2a 20 70 72 69 6e 74 20 64 69 61 67   ┆ure rdrerr(a: rn); (* print diag┆
0x06c460…06c480            6e 6f 73 74 69 63 20 61 6e 64 20 65 78 69 74 20 2a 29 0d 0a 20 20 76 61 72 0d 0a 20 20 20 20 69   ┆nostic and exit *)    var      i┆
0x06c480…06c4a0            0d 0a 20 20 65 6e 64 3b 0d 0a 31 36 3a 09 28 2a 20 65 78 69 74 20 73 65 61 72 63 68 20 2a 29 0d   ┆    end;  16: (* exit search *) ┆
0x06c4a0…06c4c0            0a 20 20 73 65 61 72 63 68 3a 3d 62 73 74 6d 76 5b 61 6b 5d 3b 0d 0a 65 6e 64 3b 09 28 2a 20 73   ┆   search:=bstmvÆakÅ;  end; (* s┆
0x06c4c0…06c4e0            65 61 72 63 68 20 2a 29 0d 0a 0d 0a 28 2a 20 63 68 65 73 73 2e 70 30 37 20 2a 29 0d 0a 70 72 6f   ┆earch *)    (* chess.p07 *)  pro┆
0x06c4e0…06c500            63 65 64 75 72 65 20 72 65 61 64 65 72 3b 09 28 2a 20 72 65 61 64 20 69 6e 70 75 74 20 66 72 6f   ┆cedure reader; (* read input fro┆
0x06c500…06c520            20 20 65 6e 64 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 62 73 74 76 6c 5b 61 6b 2d 32   ┆  end;      end;      bstvlÆak-2┆
0x06c520…06c540            5d 3a 3d 62 73 74 76 6c 5b 61 6b 5d 2d 77 69 6e 64 6f 77 3b 0d 0a 20 20 20 20 62 73 74 76 6c 5b   ┆Å:=bstvlÆakÅ-window;      bstvlÆ┆
0x06c540…06c560            61 6b 2d 31 5d 3a 3d 2d 62 73 74 76 6c 5b 61 6b 5d 2d 77 69 6e 64 6f 77 3b 0d 0a 20 20 20 20 6a   ┆ak-1Å:=-bstvlÆakÅ-window;      j┆
0x06c560…06c580            6d 74 6b 3a 3d 6a 6d 74 6b 2b 31 3b 0d 0a 20 20 20 20 73 72 63 68 6d 5b 61 6b 5d 3a 3d 68 37 3b   ┆mtk:=jmtk+1;      srchmÆakÅ:=h7;┆
0x06c580…06c5a0            62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 62 73 74 76 6c 5b 61 6b 2d 32 5d 3a 3d 2d 7a 76 3b   ┆begin          bstvlÆak-2Å:=-zv;┆
0x06c5a0…06c5c0            0d 0a 20 20 20 20 20 20 20 20 62 73 74 76 6c 5b 61 6b 2d 31 5d 3a 3d 2d 7a 76 3b 0d 0a 20 20 20   ┆          bstvlÆak-1Å:=-zv;     ┆
0x06c5c0…06c5e0            20 20 20 20 20 73 72 63 68 6d 5b 61 6b 5d 3a 3d 68 37 3b 0d 0a 20 20 20 20 20 20 20 20 6a 6e 74   ┆     srchmÆakÅ:=h7;          jnt┆
0x06c5e0…06c600            77 3a 3d 61 6b 2b 31 3b 0d 0a 20 20 20 20 20 20 20 20 67 6f 74 6f 20 31 31 3b 0d 0a 20 20 20 20   ┆w:=ak+1;          goto 11;      ┆
0x06c600…06c620            09 28 2a 20 6e 6f 20 6d 6f 76 65 20 66 6f 75 6e 64 20 2a 29 0d 0a 20 20 20 20 20 20 69 66 20 6d   ┆ (* no move found *)        if m┆
0x06c620…06c640            76 73 65 6c 5b 61 6b 5d 20 3d 20 30 20 74 68 65 6e 20 67 6f 74 6f 20 31 36 3b 09 28 2a 20 6e 6f   ┆vselÆakÅ = 0 then goto 16; (* no┆
0x06c640…06c660            20 6c 65 67 61 6c 20 6d 6f 76 65 73 20 2d 20 67 69 76 65 20 75 70 20 2a 29 0d 0a 20 20 20 20 20   ┆ legal moves - give up *)       ┆
0x06c660…06c680            20 69 66 20 73 74 61 67 65 73 2d 31 20 3d 20 6a 6d 74 6b 20 74 68 65 6e 0d 0a 20 20 20 20 20 20   ┆ if stages-1 = jmtk then        ┆
0x06c680…06c6a0            6f 20 31 33 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 28 2a 20 64 6f 6e 65 20 77 69 74   ┆o 13;      end;      (* done wit┆
0x06c6a0…06c6c0            68 20 69 74 65 72 61 74 69 6f 6e 20 2a 29 0d 0a 20 20 20 20 69 66 20 28 62 73 74 76 6c 5b 61 6b   ┆h iteration *)      if (bstvlÆak┆
0x06c6c0…06c6e0            5d 20 3c 3d 20 62 73 74 76 6c 5b 61 6b 2d 32 5d 29 20 6f 72 20 28 62 73 74 76 6c 5b 61 6b 5d 20   ┆Å <= bstvlÆak-2Å) or (bstvlÆakÅ ┆
0x06c6e0…06c700            3e 3d 20 2d 62 73 74 76 6c 5b 61 6b 2d 31 5d 29 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e   ┆>= -bstvlÆak-1Å) then      begin┆
0x06c700…06c720            0a 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 65 6e 64 3b 0d 0a 31 35 3a 09 28 2a 20   ┆         end;      end;  15: (* ┆
0x06c720…06c740            62 61 63 6b 20 75 70 20 61 20 70 6c 79 20 2a 29 0d 0a 20 20 20 20 69 66 20 6a 6e 74 6b 20 3e 20   ┆back up a ply *)      if jntk > ┆
0x06c740…06c760            61 6b 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 64 6e 64 61 74 65   ┆ak then      begin        dndate┆
0x06c760…06c780            28 6d 6f 76 65 73 5b 69 6e 64 65 78 5b 6a 6e 74 6b 5d 5d 29 3b 0d 0a 20 20 20 20 20 20 67 6f 74   ┆(movesÆindexÆjntkÅÅ);        got┆
0x06c780…06c7a0            20 20 20 20 69 66 20 75 70 64 61 74 65 28 6d 6f 76 65 73 5b 69 6e 64 65 78 5b 6a 6e 74 6b 2b 31   ┆    if update(movesÆindexÆjntk+1┆
0x06c7a0…06c7c0            5d 5d 29 20 74 68 65 6e 20 67 6f 74 6f 20 31 31 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 62   ┆ÅÅ) then goto 11 else          b┆
0x06c7c0…06c7e0            65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 64 6e 64 61 74 65 28 6d 6f 76 65 73 5b 69 6e 64   ┆egin            dndate(movesÆind┆
0x06c7e0…06c800            65 78 5b 6a 6e 74 6b 5d 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 67 6f 74 6f 20 31 34 3b 0d   ┆exÆjntkÅÅ);            goto 14; ┆
0x06c800…06c820 (27, 0, 3) 28 2a 20 66 6c 6f 61 74 20 76 61 6c 75 65 20 62 61 63 6b 20 2a 29 0d 0a 20 20 20 20 20 20 69 66   ┆(* float value back *)        if┆
0x06c820…06c840            20 6d 69 6e 6d 61 78 28 6a 6e 74 6b 29 20 74 68 65 6e 20 67 6f 74 6f 20 31 35 3b 0d 0a 31 34 3a   ┆ minmax(jntk) then goto 15;  14:┆
0x06c840…06c860            09 28 2a 20 66 69 6e 64 20 61 6e 6f 74 68 65 72 20 6d 6f 76 65 20 61 74 20 74 68 69 73 20 70 6c   ┆ (* find another move at this pl┆
0x06c860…06c880            79 20 2a 29 0d 0a 20 20 20 20 20 20 69 66 20 73 65 6c 65 63 74 20 74 68 65 6e 0d 0a 20 20 20 20   ┆y *)        if select then      ┆
0x06c880…06c8a0            74 65 28 6d 6f 76 65 73 5b 69 6e 64 65 78 5b 6a 6e 74 6b 2b 31 5d 5d 29 20 74 68 65 6e 20 67 6f   ┆te(movesÆindexÆjntk+1ÅÅ) then go┆
0x06c8a0…06c8c0            74 6f 20 31 31 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20   ┆to 11 else        begin         ┆
0x06c8c0…06c8e0            20 64 6e 64 61 74 65 28 6d 6f 76 65 73 5b 69 6e 64 65 78 5b 6a 6e 74 6b 5d 5d 29 3b 0d 0a 20 20   ┆ dndate(movesÆindexÆjntkÅÅ);    ┆
0x06c8e0…06c900            20 20 20 20 20 20 67 6f 74 6f 20 31 32 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a 31 33 3a 09   ┆      goto 12;        end;  13: ┆
0x06c900…06c920            20 6e 6f 74 20 73 65 6c 65 63 74 20 74 68 65 6e 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20   ┆ not select then      begin     ┆
0x06c920…06c940            20 20 20 62 73 74 76 6c 5b 6a 6e 74 6b 5d 3a 3d 76 61 6c 75 75 5b 69 6e 64 65 78 5b 6a 6e 74 6b   ┆   bstvlÆjntkÅ:=valuuÆindexÆjntk┆
0x06c940…06c960            5d 5d 3b 0d 0a 20 20 20 20 20 20 6e 65 77 62 73 74 28 6a 6e 74 6b 29 3b 0d 0a 20 20 20 20 65 6e   ┆ÅÅ;        newbst(jntk);      en┆
0x06c960…06c980            64 20 65 6c 73 65 0d 0a 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 69 66 20 75 70 64 61   ┆d else      begin        if upda┆
0x06c980…06c9a0            61 78 28 7a 6b 20 64 69 76 20 32 2c 7a 6b 2d 38 29 29 20 64 6f 0d 0a 20 20 62 65 67 69 6e 0d 0a   ┆ax(zk div 2,zk-8)) do    begin  ┆
0x06c9a0…06c9c0            31 31 3a 09 28 2a 20 73 74 61 72 74 20 6e 65 77 20 70 6c 79 20 2a 29 0d 0a 20 20 20 20 62 73 74   ┆11: (* start new ply *)      bst┆
0x06c9c0…06c9e0            76 6c 5b 6a 6e 74 6b 5d 3a 3d 62 73 74 76 6c 5b 6a 6e 74 6b 2d 32 5d 3b 0d 0a 31 32 3a 09 28 2a   ┆vlÆjntkÅ:=bstvlÆjntk-2Å;  12: (*┆
0x06c9e0…06ca00            20 64 69 66 66 65 72 65 6e 74 20 66 69 72 73 74 20 6d 6f 76 65 20 2a 29 0d 0a 20 20 20 20 69 66   ┆ different first move *)      if┆
0x06ca00…06ca20            20 65 6e 64 3b 0d 0a 20 20 62 73 74 76 6c 5b 61 6b 2d 32 5d 3a 3d 76 61 6c 75 75 5b 61 77 5d 2d   ┆ end;    bstvlÆak-2Å:=valuuÆawÅ-┆
0x06ca20…06ca40            77 69 6e 64 6f 77 3b 0d 0a 20 20 62 73 74 76 6c 5b 61 6b 2d 31 5d 3a 3d 2d 76 61 6c 75 75 5b 61   ┆window;    bstvlÆak-1Å:=-valuuÆa┆
0x06ca40…06ca60            77 5d 2d 77 69 6e 64 6f 77 3b 0d 0a 20 20 6a 6d 74 6b 3a 3d 61 6b 2b 31 3b 0d 0a 20 20 77 68 69   ┆wÅ-window;    jmtk:=ak+1;    whi┆
0x06ca60…06ca80            6c 65 20 28 6a 6d 74 6b 20 3c 20 73 74 61 67 65 73 29 20 61 6e 64 20 28 6a 6e 74 6b 20 3c 20 6d   ┆le (jmtk < stages) and (jntk < m┆
0x06ca80…06caa0            72 62 74 69 3a 30 2c 27 2e 20 20 27 2c 2d 76 61 6c 75 75 5b 61 77 5d 3a 34 29 3b 0d 0a 20 20 20   ┆rbti:0,'.  ',-valuuÆawÅ:4);     ┆
0x06caa0…06cac0            20 77 72 69 74 65 6c 6e 28 27 20 20 20 27 2c 62 6f 61 72 64 2e 72 62 74 69 3a 30 2c 27 2e 20 20   ┆ writeln('   ',board.rbti:0,'.  ┆
0x06cac0…06cae0            27 2c 2d 76 61 6c 75 75 5b 61 77 5d 3a 34 29 3b 0d 0a 20 20 65 6e 64 20 65 6c 73 65 20 62 65 67   ┆',-valuuÆawÅ:4);    end else beg┆
0x06cae0…06cb00            69 6e 20 77 72 69 74 65 6c 6e 3b 20 69 66 20 73 77 65 63 20 74 68 65 6e 20 77 72 69 74 65 6c 6e   ┆in writeln; if swec then writeln┆
0x06cb00…06cb20            78 5b 6a 6e 74 6b 5d 3a 3d 61 77 3b 0d 0a 20 20 6d 6f 76 65 73 5b 61 77 5d 3a 3d 6c 73 74 6d 76   ┆xÆjntkÅ:=aw;    movesÆawÅ:=lstmv┆
0x06cb20…06cb40            3b 0d 0a 20 20 62 73 74 76 6c 5b 61 6b 2d 32 5d 3a 3d 61 76 3b 0d 0a 20 20 65 76 61 6c 75 38 3b   ┆;    bstvlÆak-2Å:=av;    evalu8;┆
0x06cb40…06cb60            0d 0a 20 20 69 66 20 73 77 73 75 20 74 68 65 6e 0d 0a 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 69   ┆    if swsu then    begin      i┆
0x06cb60…06cb80            66 20 73 77 65 63 20 74 68 65 6e 20 77 72 69 74 65 6c 6e 28 27 20 20 20 27 2c 62 6f 61 72 64 2e   ┆f swec then writeln('   ',board.┆
0x06cb80…06cba0            20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 75 6e 74 69 6c 20   ┆    end;        end;      until ┆
0x06cba0…06cbc0            65 78 69 74 3b 09 28 2a 20 73 65 6c 65 63 74 20 65 78 69 74 20 2a 29 0d 0a 20 20 20 20 73 65 6c   ┆exit; (* select exit *)      sel┆
0x06cbc0…06cbe0            65 63 74 3a 3d 69 6e 74 62 3b 0d 0a 20 20 65 6e 64 3b 0d 0a 62 65 67 69 6e 09 28 2a 20 73 65 61   ┆ect:=intb;    end;  begin (* sea┆
0x06cbe0…06cc00            72 63 68 20 2a 29 0d 0a 20 20 62 73 74 6d 76 5b 61 6b 5d 3a 3d 61 77 3b 0d 0a 20 20 69 6e 64 65   ┆rch *)    bstmvÆakÅ:=aw;    inde┆
0x06cc00…06cc20 (27, 0, 4) 74 72 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 6c 6e 28 27   ┆tr then                writeln('┆
0x06cc20…06cc40            20 27 3a 6a 6e 74 6b 2a 32 2c 27 20 52 45 44 4f 20 27 2c 6a 6e 74 6b 3a 30 2c 27 20 27 2c 62 73   ┆ ':jntk*2,' REDO ',jntk:0,' ',bs┆
0x06cc40…06cc60            74 76 6c 5b 61 6b 2d 32 5d 3a 30 2c 27 20 27 2c 62 73 74 76 6c 5b 61 6b 2d 31 5d 3a 30 29 3b 0d   ┆tvlÆak-2Å:0,' ',bstvlÆak-1Å:0); ┆
0x06cc60…06cc80            0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 6e 78 74 28 68 36 29 3b 0d 0a 20 20 20 20 20 20   ┆             selnxt(h6);        ┆
0x06cc80…06cca0            20 20 20 20 20 65 6c 73 65 20 77 72 69 74 65 28 6a 6d 74 6b 3a 30 2c 27 2e 20 53 54 41 47 45 53   ┆     else write(jmtk:0,'. STAGES┆
0x06cca0…06ccc0            20 20 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 72 69 74 65 28 6e 6f 64 65 73 3a 30   ┆  ');              write(nodes:0┆
0x06ccc0…06cce0            2c 27 20 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6d 6f 76 28 6d 6f 76 65 73   ┆,' ');              primov(moves┆
0x06cce0…06cd00            5b 62 73 74 6d 76 5b 61 6b 5d 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 73 77   ┆ÆbstmvÆakÅÅ);              if sw┆
0x06cd00…06cd20            0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 69 6e 74 77 3a 3d 61 77 2b 31 20 74 6f 20 6a   ┆             for intw:=aw+1 to j┆
0x06cd20…06cd40            6e 74 77 2d 31 20 64 6f 20 6d 6f 76 65 73 5b 69 6e 74 77 5d 2e 72 6d 73 75 3a 3d 66 61 6c 73 65   ┆ntw-1 do movesÆintwÅ.rmsu:=false┆
0x06cd40…06cd60            3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6a 6d 74 6b 20 3d 20 61 6b 2b 31 20 74 68   ┆;              if jmtk = ak+1 th┆
0x06cd60…06cd80            65 6e 20 77 72 69 74 65 28 27 2a 2a 20 52 45 44 4f 20 20 27 29 0d 0a 20 20 20 20 20 20 20 20 20   ┆en write('** REDO  ')           ┆
0x06cd80…06cda0            20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20   ┆      end;            end;      ┆
0x06cda0…06cdc0            20 20 68 37 3a 20 62 65 67 69 6e 09 28 2a 20 72 65 73 65 61 72 63 68 20 66 69 72 73 74 20 70 6c   ┆  h7: begin (* research first pl┆
0x06cdc0…06cde0            79 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6a 6e 74 77 3a 3d 6c 69 6e 64 78 5b 61 6b   ┆y *)              jntw:=lindxÆak┆
0x06cde0…06ce00            2b 31 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 76 73 65 6c 5b 61 6b 5d 3a 3d 30 3b 0d   ┆+1Å;              mvselÆakÅ:=0; ┆
0x06ce00…06ce20            3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 65 78 69 74 20 74 68 65 6e 0d   ┆;              if not exit then ┆
0x06ce20…06ce40            0a 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   ┆             begin              ┆
0x06ce40…06ce60            20 20 69 66 20 6d 76 73 65 6c 5b 6a 6e 74 6b 5d 20 3d 20 30 20 74 68 65 6e 20 73 63 6f 72 65 6d   ┆  if mvselÆjntkÅ = 0 then scorem┆
0x06ce60…06ce80            3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 64 6f 6e 3b 0d 0a 20 20 20 20 20 20   ┆;                seldon;        ┆
0x06ce80…06cea0            20 20 20 20 73 65 6c 6e 78 74 28 68 36 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64   ┆    selnxt(h6);              end┆
0x06cea0…06cec0            3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 68 36 3a 20 62 65 67   ┆;            end;        h6: beg┆
0x06cec0…06cee0            69 6e 09 28 2a 20 66 75 6c 6c 20 77 69 64 74 68 20 73 65 61 72 63 68 20 2d 20 72 65 6d 61 69 6e   ┆in (* full width search - remain┆
0x06cee0…06cf00            64 69 6e 67 20 6d 6f 76 65 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 61 6e 79   ┆ding move *)              selany┆
0x06cf00…06cf20            20 73 65 61 72 63 68 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 61 6e 79 3b 0d   ┆ search *)              selany; ┆
0x06cf20…06cf40            0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 65 78 69 74 20 74 68 65 6e 0d 0a 20   ┆             if not exit then   ┆
0x06cf40…06cf60            20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆           begin                ┆
0x06cf60…06cf80            67 65 6e 66 73 6c 28 61 6c 6c 6f 63 5b 6a 6e 74 6b 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆genfsl(allocÆjntkÅ);            ┆
0x06cf80…06cfa0            6c 65 20 26 20 6f 74 68 65 72 20 6d 6f 76 65 73 20 62 79 20 6b 69 6c 6c 65 72 20 70 69 65 63 65   ┆le & other moves by killer piece┆
0x06cfa0…06cfc0            20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 65 6e 63 61 73 3b 0d 0a 20 20 20 20 20 20   ┆ *)              gencas;        ┆
0x06cfc0…06cfe0            20 20 20 20 20 20 73 65 6c 6e 78 74 28 68 35 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64   ┆      selnxt(h5);            end┆
0x06cfe0…06d000            3b 0d 0a 20 20 20 20 20 20 68 35 3a 20 62 65 67 69 6e 09 28 2a 20 66 75 6c 6c 20 77 69 64 74 68   ┆;        h5: begin (* full width┆
0x06d000…06d020 (27, 0, 5) 69 6d 74 77 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20   ┆imtw);                end;      ┆
0x06d020…06d040            20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 65 78 69 74 20 74 68 65 6e 20 73 65 6c 6e 78 74 28   ┆        if not exit then selnxt(┆
0x06d040…06d060            68 34 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 68 34 3a 20   ┆h4);            end;        h4: ┆
0x06d060…06d080            62 65 67 69 6e 09 28 2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 73 63 61 6e 20 6f 66 20 63 61 73 74   ┆begin (* initialize scan of cast┆
0x06d080…06d0a0            20 20 20 20 20 67 65 6e 6b 69 6c 6c 72 28 6b 69 6c 6c 72 5b 6a 6e 74 6b 5d 2e 72 6d 66 72 2c 6b   ┆     genkillr(killrÆjntkÅ.rmfr,k┆
0x06d0a0…06d0c0            69 6c 6c 72 5b 6a 6e 74 6b 5d 2e 72 6d 74 6f 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆illrÆjntkÅ.rmto);               ┆
0x06d0c0…06d0e0            20 20 20 73 72 63 68 6d 5b 6a 6e 74 6b 5d 3a 3d 68 34 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20   ┆   srchmÆjntkÅ:=h4;             ┆
0x06d0e0…06d100            20 20 20 20 20 69 66 20 6a 6e 74 77 20 3e 20 69 6d 74 77 20 74 68 65 6e 20 73 65 6c 6d 6f 76 28   ┆     if jntw > imtw then selmov(┆
0x06d100…06d120            0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   ┆              else              ┆
0x06d120…06d140            20 20 69 66 20 6e 6f 74 20 6e 75 6c 6d 76 62 28 6b 69 6c 6c 72 5b 6a 6e 74 6b 5d 29 20 74 68 65   ┆  if not nulmvb(killrÆjntkÅ) the┆
0x06d140…06d160            6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20   ┆n                begin          ┆
0x06d160…06d180            20 20 20 20 20 20 20 20 69 6d 74 77 3a 3d 6a 6e 74 77 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20   ┆        imtw:=jntw;             ┆
0x06d180…06d1a0            74 70 76 5b 72 6d 63 70 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆tpvÆrmcpÅ);                     ┆
0x06d1a0…06d1c0            20 69 6e 74 77 3a 3d 69 6d 74 77 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆ intw:=imtw;                    ┆
0x06d1c0…06d1e0            65 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 69 6e 74 77 20 3c 3e 20 61 77 20   ┆end;              if intw <> aw ┆
0x06d1e0…06d200            74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 6d 6f 76 28 69 6e 74 77 29   ┆then                selmov(intw)┆
0x06d200…06d220            20 20 20 20 69 66 20 6e 6f 74 20 72 6d 73 75 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆    if not rmsu then            ┆
0x06d220…06d240            20 20 20 20 20 20 20 20 69 66 20 61 62 73 28 78 74 70 76 5b 72 6d 63 70 5d 29 20 3e 20 69 6e 74   ┆        if abs(xtpvÆrmcpÅ) > int┆
0x06d240…06d260            76 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d   ┆v then                    begin ┆
0x06d260…06d280            0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 76 3a 3d 61 62 73 28 78   ┆                     intv:=abs(x┆
0x06d280…06d2a0            6e 74 77 3a 3d 61 77 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 76 3a 3d 61 76 3b 0d   ┆ntw:=aw;              intv:=av; ┆
0x06d2a0…06d2c0            0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 69 6d 74 77 3a 3d 6c 69 6e 64 78 5b 6a 6e 74   ┆             for imtw:=lindxÆjnt┆
0x06d2c0…06d2e0            6b 5d 20 74 6f 20 6a 6e 74 77 2d 31 20 64 6f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77   ┆kÅ to jntw-1 do                w┆
0x06d2e0…06d300            69 74 68 20 6d 6f 76 65 73 5b 69 6d 74 77 5d 20 64 6f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   ┆ith movesÆimtwÅ do              ┆
0x06d300…06d320            20 20 69 66 20 69 6e 74 77 20 3c 3e 20 61 77 20 74 68 65 6e 20 73 65 6c 6d 6f 76 28 69 6e 74 77   ┆  if intw <> aw then selmov(intw┆
0x06d320…06d340            29 20 65 6c 73 65 20 73 65 6c 64 6f 6e 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a   ┆) else seldon;            end;  ┆
0x06d340…06d360            20 20 20 20 20 20 68 33 3a 20 62 65 67 69 6e 09 28 2a 20 66 75 6c 6c 20 77 69 64 74 68 20 73 65   ┆      h3: begin (* full width se┆
0x06d360…06d380            61 72 63 68 20 2d 20 63 61 70 74 75 72 65 20 2a 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69   ┆arch - capture *)              i┆
0x06d380…06d3a0            20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆          begin                 ┆
0x06d3a0…06d3c0            20 20 20 20 20 69 6e 74 76 3a 3d 61 62 73 28 78 74 70 76 5b 72 6d 63 70 5d 29 3b 0d 0a 20 20 20   ┆     intv:=abs(xtpvÆrmcpÅ);     ┆
0x06d3c0…06d3e0            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 77 3a 3d 69 6d 74 77 3b 0d 0a 20 20   ┆                 intw:=imtw;    ┆
0x06d3e0…06d400            20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆                end;            ┆
0x06d400…06d420 (27, 0, 6) 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 69 74 68 20 6d 6f 76 65 73 5b 69 6d 74 77 5d 20   ┆               with movesÆimtwÅ ┆
0x06d420…06d440            64 6f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 72 6d 73 75 20   ┆do                  if not rmsu ┆
0x06d440…06d460            74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 61 62 73 28 78   ┆then                    if abs(x┆
0x06d460…06d480            74 70 76 5b 72 6d 63 70 5d 29 20 3e 20 69 6e 74 76 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20   ┆tpvÆrmcpÅ) > intv then          ┆
0x06d480…06d4a0            20 20 20 68 32 3a 20 62 65 67 69 6e 09 28 2a 20 63 61 70 74 75 72 65 20 73 65 61 72 63 68 20 2a   ┆   h2: begin (* capture search *┆
0x06d4a0…06d4c0            29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 77 3a 3d 61 77 3b 0d 0a 20 20 20 20 20 20   ┆)              intw:=aw;        ┆
0x06d4c0…06d4e0            20 20 20 20 20 20 69 6e 74 76 3a 3d 61 76 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72   ┆      intv:=av;              for┆
0x06d4e0…06d500            20 69 6d 74 77 3a 3d 6c 69 6e 64 78 5b 6a 6e 74 6b 5d 20 74 6f 20 6a 6e 74 77 2d 31 20 64 6f 0d   ┆ imtw:=lindxÆjntkÅ to jntw-1 do ┆
0x06d500…06d520            74 20 65 78 69 74 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a   ┆t exit then              begin  ┆
0x06d520…06d540            20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 65 6e 63 61 70 3b 0d 0a 20 20 20 20 20 20 20 20 20   ┆              gencap;           ┆
0x06d540…06d560            20 20 20 20 20 73 65 6c 6e 78 74 28 73 72 63 68 6d 5b 6a 6e 74 6b 5d 29 3b 0d 0a 20 20 20 20 20   ┆     selnxt(srchmÆjntkÅ);       ┆
0x06d560…06d580            20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20   ┆       end;            end;     ┆
0x06d580…06d5a0            0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 65 78 69 74 20 74 68 65   ┆                 if not exit the┆
0x06d5a0…06d5c0            6e 20 73 72 63 68 6d 5b 6a 6e 74 6b 5d 3a 3d 68 32 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   ┆n srchmÆjntkÅ:=h2;              ┆
0x06d5c0…06d5e0            20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 20 73 72 63   ┆  end;              end else src┆
0x06d5e0…06d600            68 6d 5b 6a 6e 74 6b 5d 3a 3d 68 33 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f   ┆hmÆjntkÅ:=h3;              if no┆
0x06d600…06d620            20 20 20 20 20 20 20 20 20 20 73 72 63 68 6d 5b 6a 6e 74 6b 5d 3a 3d 68 33 0d 0a 20 20 20 20 20   ┆          srchmÆjntkÅ:=h3       ┆
0x06d620…06d640            20 20 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67   ┆         else                beg┆
0x06d640…06d660            69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6d 69 6e 6d 61 78 28 6a 6e   ┆in                  if minmax(jn┆
0x06d660…06d680            74 6b 29 20 6f 72 20 28 6a 6e 74 6b 20 3d 20 7a 6b 29 20 74 68 65 6e 20 73 65 6c 64 6f 6e 3b 0d   ┆tk) or (jntk = zk) then seldon; ┆
0x06d680…06d6a0            5d 3a 3d 61 77 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 73 74 76 6c 5b 6a 6e 74 6b   ┆Å:=aw;                bstvlÆjntk┆
0x06d6a0…06d6c0            2b 31 5d 3a 3d 2d 76 61 6c 75 75 5b 69 6e 64 65 78 5b 6a 6e 74 6b 5d 5d 3b 0d 0a 20 20 20 20 20   ┆+1Å:=-valuuÆindexÆjntkÅÅ;       ┆
0x06d6c0…06d6e0            20 20 20 20 20 20 20 20 20 69 66 20 6d 6f 76 65 73 5b 69 6e 64 65 78 5b 6a 6e 74 6b 5d 5d 2e 72   ┆         if movesÆindexÆjntkÅÅ.r┆
0x06d6e0…06d700            6d 63 68 20 61 6e 64 20 28 6a 6e 74 6b 20 3c 20 7a 6b 29 20 74 68 65 6e 0d 0a 20 20 20 20 20 20   ┆mch and (jntk < zk) then        ┆
0x06d700…06d720            20 20 20 20 20 20 20 20 20 20 6d 76 73 65 6c 5b 6a 6e 74 6b 5d 3a 3d 30 3b 0d 0a 20 20 20 20 20   ┆          mvselÆjntkÅ:=0;       ┆
0x06d720…06d740            20 20 20 20 20 20 20 69 66 20 6a 6e 74 6b 20 3e 20 6a 6d 74 6b 20 74 68 65 6e 0d 0a 20 20 20 20   ┆       if jntk > jmtk then      ┆
0x06d740…06d760            20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 76 61   ┆        begin                eva┆
0x06d760…06d780            6c 75 38 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 64 65 78 5b 6a 6e 74 6b 2b 31   ┆lu8;                indexÆjntk+1┆
0x06d780…06d7a0            6c 70 70 20 74 68 65 6e 20 70 61 75 73 65 72 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆lpp then pauser;                ┆
0x06d7a0…06d7c0            65 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 6e 78 74 28 68 36 29 3b 0d 0a 20   ┆end;              selnxt(h6);   ┆
0x06d7c0…06d7e0            20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 68 31 3a 20 62 65 67 69 6e 09 28   ┆         end;        h1: begin (┆
0x06d7e0…06d800            2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 61 74 20 6e 65 77 20 64 65 70 74 68 20 2a 29 0d 0a 20 20   ┆* initialize at new depth *)    ┆
0x06d800…06d820 (27, 0, 7) 20 20 20 20 20 20 77 72 69 74 65 28 27 20 50 52 45 4c 49 4d 20 27 2c 69 6e 74 77 3a 30 2c 27 20   ┆      write(' PRELIM ',intw:0,' ┆
0x06d820…06d840            27 2c 76 61 6c 75 75 5b 69 6e 74 77 5d 3a 30 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆',valuuÆintwÅ:0);               ┆
0x06d840…06d860            20 20 20 70 72 69 6d 6f 76 28 6d 6f 76 65 73 5b 69 6e 74 77 5d 29 3b 0d 0a 20 20 20 20 20 20 20   ┆   primov(movesÆintwÅ);         ┆
0x06d860…06d880            20 20 20 20 20 20 20 20 20 69 66 20 69 6e 74 77 2f 6c 70 70 20 3d 20 69 6e 74 77 20 64 69 76 20   ┆         if intw/lpp = intw div ┆
0x06d880…06d8a0            69 6c 6c 72 5b 69 6e 74 6b 5d 3a 3d 6e 75 6c 6d 76 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   ┆illrÆintkÅ:=nulmv;              ┆
0x06d8a0…06d8c0            69 66 20 73 77 74 72 20 6f 72 20 73 77 70 73 20 74 68 65 6e 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆if swtr or swps then            ┆
0x06d8c0…06d8e0            20 20 20 20 66 6f 72 20 69 6e 74 77 3a 3d 61 77 2b 31 20 74 6f 20 6a 6e 74 77 2d 31 20 64 6f 0d   ┆    for intw:=aw+1 to jntw-1 do ┆
0x06d8e0…06d900            0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20   ┆               begin            ┆
0x06d900…06d920            20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 73   ┆            end;              bs┆
0x06d920…06d940            74 76 6c 5b 6a 6e 74 6b 2d 32 5d 3a 3d 69 6e 74 76 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   ┆tvlÆjntk-2Å:=intv;              ┆
0x06d940…06d960            73 6f 72 74 69 74 28 76 61 6c 75 75 2c 6d 6f 76 65 73 2c 6a 6e 74 77 2d 31 29 3b 0d 0a 20 20 20   ┆sortit(valuu,moves,jntw-1);     ┆
0x06d960…06d980            20 20 20 20 20 20 20 20 20 66 6f 72 20 69 6e 74 6b 3a 3d 61 6b 20 74 6f 20 7a 6b 20 64 6f 20 6b   ┆         for intk:=ak to zk do k┆
0x06d980…06d9a0            0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 65 78 69 74 20 74 68 65   ┆                 if not exit the┆
0x06d9a0…06d9c0            6e 20 73 72 63 68 6d 5b 6a 6e 74 6b 5d 3a 3d 68 32 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   ┆n srchmÆjntkÅ:=h2;              ┆
0x06d9c0…06d9e0            20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 65 6c 73 65 20 73 72 63   ┆  end;              end else src┆
0x06d9e0…06da00            68 6d 5b 6a 6e 74 6b 5d 3a 3d 68 33 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f   ┆hmÆjntkÅ:=h3;              if no┆
0x06da00…06da20            20 20 20 20 20 20 20 20 20 20 73 72 63 68 6d 5b 6a 6e 74 6b 5d 3a 3d 68 33 0d 0a 20 20 20 20 20   ┆          srchmÆjntkÅ:=h3       ┆
0x06da20…06da40            20 20 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67   ┆         else                beg┆
0x06da40…06da60            69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6d 69 6e 6d 61 78 28 6a 6e   ┆in                  if minmax(jn┆
0x06da60…06da80            74 6b 29 20 6f 72 20 28 6a 6e 74 6b 20 3d 20 7a 6b 29 20 74 68 65 6e 20 73 65 6c 64 6f 6e 3b 0d   ┆tk) or (jntk = zk) then seldon; ┆
0x06da80…06daa0            5d 3a 3d 61 77 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 73 74 76 6c 5b 6a 6e 74 6b   ┆Å:=aw;                bstvlÆjntk┆
0x06daa0…06dac0            2b 31 5d 3a 3d 2d 76 61 6c 75 75 5b 69 6e 64 65 78 5b 6a 6e 74 6b 5d 5d 3b 0d 0a 20 20 20 20 20   ┆+1Å:=-valuuÆindexÆjntkÅÅ;       ┆
0x06dac0…06dae0            20 20 20 20 20 20 20 20 20 69 66 20 6d 6f 76 65 73 5b 69 6e 64 65 78 5b 6a 6e 74 6b 5d 5d 2e 72   ┆         if movesÆindexÆjntkÅÅ.r┆
0x06dae0…06db00            6d 63 68 20 61 6e 64 20 28 6a 6e 74 6b 20 3c 20 7a 6b 29 20 74 68 65 6e 0d 0a 20 20 20 20 20 20   ┆mch and (jntk < zk) then        ┆
0x06db00…06db20            20 20 20 20 20 20 20 20 20 20 6d 76 73 65 6c 5b 6a 6e 74 6b 5d 3a 3d 30 3b 0d 0a 20 20 20 20 20   ┆          mvselÆjntkÅ:=0;       ┆
0x06db20…06db40            20 20 20 20 20 20 20 69 66 20 6a 6e 74 6b 20 3e 20 6a 6d 74 6b 20 74 68 65 6e 0d 0a 20 20 20 20   ┆       if jntk > jmtk then      ┆
0x06db40…06db60            20 20 20 20 20 20 20 20 62 65 67 69 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 76 61   ┆        begin                eva┆
0x06db60…06db80            6c 75 38 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 64 65 78 5b 6a 6e 74 6b 2b 31   ┆lu8;                indexÆjntk+1┆
0x06db80…06dba0            6c 70 70 20 74 68 65 6e 20 70 61 75 73 65 72 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20   ┆lpp then pauser;                ┆
0x06dba0…06dbc0            65 6e 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 6e 78 74 28 68 36 29 3b 0d 0a 20   ┆end;              selnxt(h6);   ┆
0x06dbc0…06dbe0            20 20 20 20 20 20 20 20 20 65 6e 64 3b 0d 0a 20 20 20 20 20 20 68 31 3a 20 62 65 67 69 6e 09 28   ┆         end;        h1: begin (┆
0x06dbe0…06dc00            2a 20 69 6e 69 74 69 61 6c 69 7a 65 20 61 74 20 6e 65 77 20 64 65 70 74 68 20 2a 29 0d 0a 20 20   ┆* initialize at new depth *)    ┆
0x06dc00…06dc20 (27, 0, 8) e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5 e5   ┆                                ┆
          […0x631f…]