|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
topIndex: ┃ 5 C I S T ┃
Length: 1261568 (0x134000) Description: Bits:30005835 RC Chess 750 source code Types: 5¼" Floppy Disk, CP/M Filesystem - Piccoline, CpmFileSystem_Piccoline, ImdContainer
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 |
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…]