?login_element?

Subversion Repositories NedoOS

Rev

Rev 1532 | Rev 1596 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.         device zxspectrum128
  2.         include "../../_sdk/sys_h.asm"
  3.  
  4. ;FIX=1
  5.         include "settings.ast"
  6.  
  7. INTSTACK=0x4000
  8.  
  9. ROM_START       equ     0
  10.  
  11. SCREEN          equ     #4000
  12. SCR_ATTRS       equ     #5800
  13.  
  14. bas_LAST_K      equ     #5C08
  15. bas_5C3A        equ     #5C3A
  16.  
  17. bas_FLAGS       equ     #5C3B
  18. off_FLAGS       equ     bas_FLAGS-bas_5C3A
  19.  
  20. bas_ERRSP       equ     #5C3D
  21. bas_5C78        equ     #5C78   ;increments every 50 Hz by basic interrupt handler
  22. word_5CC3       equ     #5CC3
  23.  
  24. bit_NEW_KEY     equ     5
  25. bit_CAPS_LOCK   equ     3
  26.  
  27. EGA=0
  28.  
  29. _K=0x01
  30. _Q=0x09
  31. _R=0x11
  32. _B=0x21
  33. _N=0x31
  34. ;_P=0x41
  35.  
  36.                 MACRO   EOS
  37.                 org     $-1
  38.                 db      {b $}|#80
  39.                 ENDM
  40.  
  41.         org PROGSTART
  42. begin
  43.         OS_HIDEFROMPARENT
  44.  
  45.         ld e,3+0x80 ;6912+keep
  46.         ;ld e,0+0x80 ;EGA+keep
  47.         OS_SETGFX ;e=0:EGA, e=2:MC, e=3:6912, e=6:text ;+SET FOCUS ;e=-1: disable gfx (out: e=old gfxmode)
  48.         ;call setgfx
  49.  
  50.         ld e,0 ;color byte
  51.         OS_CLS
  52.  
  53.         OS_GETMAINPAGES
  54. ;dehl=pages in 0000,4000,8000,c000
  55.         ld a,e
  56.         ;ld (pgmain4000),a
  57.         ld a,h
  58.         ;ld (pgmain8000),a
  59.         ld a,l
  60.         ;ld (pgspr),a  
  61.  
  62.         ld a,(user_scr0_high) ;ok
  63.         SETPG4000
  64.        
  65.         ld hl,scr
  66.         ld de,0x4000
  67.         ld bc,0x1b00
  68.         ldir
  69.        
  70.         YIELDGETKEYLOOP
  71.        
  72.         ld de,pal
  73.         OS_SETPAL
  74.  
  75.         YIELD
  76.  
  77.  
  78.         ld hl,font
  79.         ld bc,0x300
  80. boldfont0
  81.         ld a,(hl)
  82.         rrca
  83.         or (hl)
  84.         ld (hl),a
  85.         cpi
  86.         jp pe,boldfont0
  87.  
  88.         call swapimer
  89.        
  90.         ld sp,0x8000
  91.         ld iy,23610
  92.         jp START_POINT
  93.  
  94. pal
  95. ;DDp palette: %grbG11RB(low),%grbG11RB(high), inverted
  96.         ;dw 0xffff,0xfefe,0xfdfd,0xfcfc,0xefef,0xeeee,0xeded,0xecec
  97.         ;dw 0xffff,0xdede,0xbdbd,0x9c9c,0x6f6f,0x4e4e,0x2d2d,0x0c0c
  98.         dw 0xffff,0xfefe,0xfdfd,0xfcfc,0x7d7d,0xeeee,0x8d8d,0x0c0c
  99.         dw 0xffff,0xdede,0xbdbd,0x9c9c,0x6f6f,0x4e4e,0x2d2d,0x0c0c
  100.  
  101. keymatrix
  102.         ds 8,0xff
  103.  
  104.         include "int.asm"
  105.         include "rst38.asm"
  106. rst10
  107.         push af
  108.         push bc
  109.         push de
  110.         push hl
  111.  
  112. rst10_phase=$+1
  113.         ld b,0 ;0=code, 1=X, 2=Y
  114.         djnz rst10_noATY
  115.         ld (rst10_y),a
  116.         ld a,2
  117.         ld (rst10_phase),a
  118.         jr rst10_q
  119. rst10_noATY
  120.         djnz rst10_noATX
  121.         ld (rst10_x),a
  122.         xor a
  123.         ld (rst10_phase),a
  124.         call rst10_countscr
  125.         jr rst10_q
  126. rst10_noATX
  127.  
  128.         cp 22 ;AT
  129.         jr z,rst10_AT
  130.              
  131. rst10_scr=$+1
  132.         ld de,0x4000
  133.              
  134.         ld l,a
  135.         ld h,0
  136.         add hl,hl
  137.         add hl,hl
  138.         add hl,hl
  139.         ld bc,font-256
  140.         add hl,bc
  141.         ld b,0
  142. prchar0
  143.         ld a,(hl)
  144.         ld (de),a
  145.         inc hl
  146.         inc d
  147.         djnz prchar0
  148.  
  149.         ld hl,rst10_scr
  150.         inc (hl)
  151.         ld hl,rst10_x
  152.         inc (hl)
  153.         ld a,(hl)
  154.         cp 32
  155.         jr nz,rst10_q
  156.         ld (hl),0
  157.         ld hl,rst10_y
  158.         inc (hl)
  159.         ld a,(hl)
  160.         cp 24
  161.         jr nz,$+4
  162.         ld (hl),0
  163.         call rst10_countscr
  164. rst10_q
  165.         pop hl
  166.         pop de
  167.         pop bc
  168.         pop af
  169.         ret
  170.        
  171. rst10_AT
  172.         ld a,1
  173.         ld (rst10_phase),a
  174.         jr rst10_q
  175.        
  176. rst10_countscr
  177. rst10_x=$+1
  178. rst10_y=$+2
  179.         ld bc,0
  180.         ld a,b ;a = Y = 0b000TTYYY
  181.         LD L,A
  182.         and 0b00011000
  183.         add a,0x40;screen/256
  184.         LD H,A
  185.         ld a,l
  186.         rrca
  187.         rrca
  188.         rrca
  189.         and 0b11100000
  190.         add a,c ;x
  191.         LD L,A
  192.         ld (rst10_scr),hl
  193.         ret
  194.  
  195.        if FIX
  196. RandomizeSetup
  197.         ld hl,starting_setup
  198.         ld de,starting_setup+1
  199.         ld bc,8-1
  200.         ld (hl),0
  201.         ldir
  202.  
  203.         call goodrnd
  204.         and 6
  205.         call RandomizeSetup_HLplaceA
  206.         ld (hl),_B
  207.         call goodrnd
  208.         and 6
  209.         inc a
  210.         call RandomizeSetup_HLplaceA
  211.         ld (hl),_B
  212.  
  213.         call goodrnd
  214.         add a,6
  215.         jr nc,$-2
  216. ;a=0..9
  217.         call RandomizeSetup_HLemptyplaceA
  218.         ld (hl),_Q
  219.  
  220.        if 1
  221. ;должны равновероятно выбираться 10 вариантов расстановки коней в 5 свободных клетках
  222.         call goodrnd
  223.         add a,10
  224.         jr nc,$-2
  225. ;a=0..9
  226.         add a,a
  227.         ld c,a
  228.         ld b,0
  229.         ld hl,knightsetups
  230.         add hl,bc
  231.         ex de,hl
  232.         ld a,(de)
  233.         inc de
  234.         call RandomizeSetup_HLemptyplaceA
  235.         ld (hl),_N
  236.         ld a,(de)
  237.         call RandomizeSetup_HLemptyplaceA
  238.         ld (hl),_N
  239.        else
  240. ;так распределение коней неравномерно
  241.         call goodrnd
  242.         and 3
  243.         call RandomizeSetup_HLemptyplaceA
  244.         ld (hl),_N
  245.         call goodrnd
  246.         and 3
  247.         call RandomizeSetup_HLemptyplaceA
  248.         ld (hl),_N
  249.        endif
  250.  
  251.         ld hl,starting_setup-1
  252.         call RandomizeSetup_findempty
  253.         ld (hl),_R
  254.         call RandomizeSetup_findempty
  255.         ld (hl),_K
  256.         call RandomizeSetup_findempty
  257.         ld (hl),_R
  258.         ret
  259.        
  260. RandomizeSetup_HLplaceA
  261.         ld c,a
  262.         ld b,0
  263.         ld hl,starting_setup
  264.         add hl,bc
  265.         ret
  266.  
  267. RandomizeSetup_findempty
  268. RandomizeSetup_findempty0
  269.         inc hl
  270.         ld a,(hl)
  271.         or a
  272.         jr nz,RandomizeSetup_findempty0
  273.         ret
  274.  
  275. RandomizeSetup_HLemptyplaceA
  276.         inc a
  277.         ld b,a
  278.         ld hl,starting_setup-1
  279. RandomizeSetup_HLemptyplaceA0
  280.         call RandomizeSetup_findempty
  281.         djnz RandomizeSetup_HLemptyplaceA0
  282.         ret
  283.        
  284. knightsetups
  285.         db 0,0
  286.         db 0,1
  287.         db 0,2
  288.         db 0,3
  289.         db 1,1
  290.         db 1,2
  291.         db 1,3
  292.         db 2,2
  293.         db 2,3
  294.         db 3,3
  295.  
  296. memorizernd
  297.         ld hl,(rndseed1)
  298.         ld (oldrndseed1),hl
  299.         ld hl,(rndseed2)
  300.         ld (oldrndseed2),hl
  301.         ret
  302.        
  303. setoldrnd
  304. oldrndseed1=$+1
  305.         ld hl,0
  306.         ld (rndseed1),hl
  307. oldrndseed2=$+1
  308.         ld hl,0
  309.         ld (rndseed2),hl
  310.         ret
  311.  
  312. goodrnd:
  313.         PUSH de
  314.         PUSH HL
  315. ;Patrik Rak
  316. rndseed1=$+1
  317.         ld  hl,0xA280   ; xz -> yw
  318. rndseed2=$+1
  319.         ld  de,0xC0DE   ; yw -> zt
  320.         ld  (rndseed1),de  ; x = y, z = w
  321.         ld  a,e         ; w = w ^ ( w << 3 )
  322.         add a,a
  323.         add a,a
  324.         add a,a
  325.         xor e
  326.         ld  e,a
  327.         ld  a,h         ; t = x ^ (x << 1)
  328.         add a,a
  329.         xor h
  330.         ld  d,a
  331.         rra             ; t = t ^ (t >> 1) ^ w
  332.         xor d
  333.         xor e
  334.         ld  h,l         ; y = z
  335.         ld  l,a         ; w = t
  336.         ld  (rndseed2),hl
  337.         ld b,a
  338.         POP HL
  339.         POP de
  340.         ret ;b=rnd
  341.  
  342.        endif
  343.  
  344. font
  345.         incbin "font.bin"
  346.  
  347. scr
  348.         incbin "CyrusII.scr"
  349.  
  350.                 ds 0x637c-$
  351.                
  352. unk_637C:       ds 1                    ; DATA XREF: sub_A262+4
  353. txt_buf_6:      ds 6                    ; DATA XREF: sub_9FB2+33
  354.                 ds 3
  355. buf_10bytes:    ds 10                   ; DATA XREF: sub_8977   sub_8977+17 ... ;сюда пишется название хода
  356.                 ds 1
  357. CLK_1:          ds 8                    ; DATA XREF: sub_9018+15
  358.                                         ; INIT_PRINT_CLOCKS+3   ...
  359. CLK_2:          ds 8                    ; DATA XREF: sub_9018+1D
  360.                                         ; INIT_PRINT_CLOCKS+E   ...
  361. TAPE_header:    ds 17                   ; DATA XREF: sub_8EA7+7 sub_8EFB ...
  362.                 ds 3
  363. byte_63B5:      ds 1                    ; DATA XREF: sub_8C20+19F9
  364. byte_63B6:      ds 9                    ; DATA XREF: sub_8C20+1A09
  365.                                         ; sub_8C20+1A14 ...
  366. unk_63BF:       ds 65                   ; DATA XREF: sub_8C20+1A0F
  367.  
  368.  
  369.  
  370.                 ds 0x6400-$
  371. SCR_BUF_6400:   ds      #1b00           ; up to 7EFF
  372.  
  373.                 ; 7F00..7FFF free
  374.  
  375.  
  376.  
  377.  
  378.  
  379.                 ds 0x8000-$
  380. START_POINT:
  381.  
  382. ; FUNCTION CHUNK AT 8067 SIZE 00000033 BYTES
  383.  
  384.                 jr      loc_8032
  385.  
  386. ; ---------------------------------------------------------------------------
  387. aCopyright1986I:db      'COPYRIGHT (1986) INTELLIGENT CHESS SOFTWARE LTD.'
  388. ; ---------------------------------------------------------------------------
  389.  
  390. loc_8032:
  391.                 di
  392.                 ld      (save_SP), sp
  393.                 exx
  394.                 ld      (save_HLtick), hl
  395.  
  396.                 ld      hl, (bas_ERRSP)
  397.                 ld      (save_ERRSP), hl
  398.                if !FIX
  399.                 ld      hl, INT_VEC
  400.                 ld      (hl), INT_PROC&255
  401.                 inc     hl
  402.                 ld      (hl), INT_PROC/256
  403.                 ld      a, INT_VEC/256
  404.                 ds 2 ;ld        i, a
  405.                 ds 2 ;im        2
  406.                endif
  407.                 jp      loc_8067
  408.  
  409.  
  410. ; =============== S U B R O U T I N E =======================================
  411.  
  412.  
  413. INT_PROC:                               ; DATA XREF: RAM:8044   RAM:8047
  414.                 push    af
  415.                 push    hl
  416.                 push    iy
  417.                 ld      hl, DECREMENT_50HZ
  418.                 dec     (hl)
  419.                 ld      iy, bas_5C3A
  420.                 call    L0038;ROM_START+#38
  421.  
  422.                 pop     iy
  423.                 pop     hl
  424.                 pop     af
  425.                 ei
  426.                 ret
  427.  
  428. ; End of function INT_PROC
  429.  
  430. ; ---------------------------------------------------------------------------
  431. ; START OF FUNCTION CHUNK FOR START_POINT
  432.  
  433. loc_8067:                               ; CODE XREF: RAM:804F
  434.                 ld      sp, RAM_END_D800
  435.                 di
  436.                 ld      hl, BRD_88_0
  437.                 ld      b, 0
  438.                 ld      a, RAM_END_D800/256
  439.  
  440.  
  441. loc_8072:                               ; CODE XREF: START_POINT+75
  442.                 ld      (hl), b
  443.                 inc     hl
  444.                 cp      h
  445.                 jp      nz, loc_8072
  446.  
  447.                 res     bit_NEW_KEY, (iy+off_FLAGS)     ; clear keypressed bit
  448.                 res     bit_CAPS_LOCK, (iy+#30) ; CAPS LOCK off
  449.                 xor     a
  450.                 ld      (SEL_SCRorBUF), a
  451.                 call    CLR_SCR_OR_BUF
  452.  
  453.                 call    CLR_BOARD ;??? потом ещё раз
  454.  
  455.                 call    PRT_DETECT
  456.  
  457.                 ld      a, 1
  458.                 ld      (curlevel), a
  459.                 ld      a, #FF
  460.                 ld      (stk_1bvalue), a
  461.                 ld      (byte_D0F0), a
  462.  
  463. ; END OF FUNCTION CHUNK FOR START_POINT
  464. ; START OF FUNCTION CHUNK FOR sub_92D7
  465.  
  466. loc_809A:                               ; CODE XREF: sub_92D7+35
  467.                 xor     a
  468.                 ld      (byte_D0B4), a ;visible board?
  469.                 call    sub_9EE6 ;print Cyrus II, level, space to see board
  470.  
  471. ; END OF FUNCTION CHUNK FOR sub_92D7
  472. ; START OF FUNCTION CHUNK FOR sub_8C20
  473.  
  474. NEW_GAME:                               ; CODE XREF: sub_8C20-3
  475.         if FIX
  476.          call memorizernd
  477.         endif
  478.                 call    sub_96A6
  479.  
  480.                 call    CLR_BOARD
  481.  
  482.                 call    INIT_PRINT_CLOCKS
  483.  
  484.                 call    BEEP_start
  485.  
  486.                 ei
  487.                 ld      a, (byte_D20C) ;oldmove #?
  488.                 dec     a
  489.                 jr      z, loc_80B9
  490.  
  491.                 ld      a, #FF
  492.                 ld      (stk_1bvalue), a
  493.  
  494.  
  495. loc_80B9:                               ; CODE XREF: sub_8C20-B6E
  496.                 xor     a
  497.                 ld      (byte_D0B3), a ;d3=swap board
  498.                 inc     a
  499.                 ld      (byte_D049), a ;move # ;бесполезно - 875B тоже туда пишет
  500.                 scf
  501.                 call    sub_A915
  502.  
  503.                 ld      hl, 0
  504.                 ld      (word_D09F), hl
  505.  
  506.  
  507. loc_80CB:                               ; CODE XREF: sub_8C20-1DA
  508.                 call    InitBoard_ClearMoves
  509.  
  510.  
  511. loc_80CE:                               ; CODE XREF: sub_8C20-511
  512.                                         ; sub_8C20-186
  513.                 call    sub_A262
  514.  
  515.                 ld      a, (CFG_BITS)
  516.                 and     #30
  517.                 jr      z, loc_80F5
  518.  
  519.                 call    sub_A43C
  520.  
  521.                 ld      b,#1E
  522.  
  523.  
  524. loc_80DD:                               ; CODE XREF: sub_8C20-B3C
  525.                 push    bc
  526.                 ld      a,#3D
  527.                 call    loc_A476
  528.  
  529.                 pop     bc
  530.                 djnz    loc_80DD
  531.  
  532.                 call    sub_A43C
  533.  
  534.                 ld      a, (byte_D049) ;move #
  535.                 dec     a
  536.                 jr      z, loc_80F5 ;first move
  537.  
  538.                 call    sub_939F
  539.  
  540.                 call    sub_94C4
  541.  
  542.  
  543. loc_80F5:                               ; CODE XREF: sub_8C20-B4A
  544.                                         ; sub_8C20-B33
  545.                 ld      hl, #F7F7
  546.                 ld      (word_D240), hl
  547.                 xor     a
  548.                 ld      (byte_D04D), a
  549.                 ld      l, a
  550.                 ld      h, a
  551.                 ld      (word_D0F7), hl
  552.  
  553.  
  554. loc_8104:                               ; CODE XREF: sub_8C20-507
  555.                                         ; sub_8C20-BD
  556.                 ld      hl, 0
  557.                 ld      (word_D25A), hl
  558.  
  559.  
  560. loc_810A:                               ; CODE XREF: sub_8C20:loc_82E8
  561.                                         ; sub_8C20-852 ...
  562.                 ld      hl,  word_D240+1
  563.                 call    sub_B976
  564.  
  565.                 jr      c, loc_811C
  566.  
  567.                 bit     3, (hl)
  568.                 jp      nz, loc_8B9B
  569.  
  570.                 ld      hl,  word_D240+1
  571.                 set     3, (hl)
  572.  
  573.  
  574. loc_811C:                               ; CODE XREF: sub_8C20-B10
  575.                 ld      hl, (word_D09F)
  576.                 ld      a, l
  577.                 or      h
  578.                 jp      nz, loc_8AE8
  579.  
  580.                 ld      hl, CFG_BITS
  581.                 res     5, (hl)
  582.                 call    PrintMoveNumber
  583.  
  584.                 call    UnDrawMoveAndCursors
  585.  
  586.                 call    sub_954C
  587.  
  588.                 ld      hl, byte_D0B4
  589.                 bit     5, (hl)
  590.                 jr      nz, loc_8142 ;invisible board?
  591.  
  592.                 ld      sp, RAM_END_D800
  593.                 call    sub_8C2D
  594.  
  595.                 call    sub_93A4
  596.  
  597.  
  598. loc_8142:                               ; CODE XREF: sub_8C20-AE9
  599.                 ld      a, (byte_D00A)
  600.                 cp      100
  601.                 jp      nc, loc_8B9B
  602.  
  603.                 ld      a, (byte_D02D)
  604.                 or      #80
  605.                 ld      (byte_D0BF), a
  606.                 rra
  607.                 ld      a, (byte_D0B2)
  608.                 jr      nc, loc_815E
  609.  
  610.                 or      a
  611.                 jr      z, loc_8162
  612.  
  613.                 jp      loc_82EB
  614.  
  615. ; ---------------------------------------------------------------------------
  616.  
  617. loc_815E:                               ; CODE XREF: sub_8C20-ACA
  618.                 or      a
  619.                 jp      z, loc_82EB
  620.  
  621.  
  622. loc_8162:                               ; CODE XREF: sub_8C20-AC7
  623.                 ld      a, #BE
  624.                 ld      (byte_D0E3), a
  625.                 ld      (byte_D0F3), a
  626.                 ld      hl, 0
  627.                 ld      (INC_SECONDS), hl
  628.                 ld      (word_D02B), hl
  629.                 xor     a
  630.                 ld      (bas_5C78), a
  631.                 ld      (byte_D0DF), a
  632.                 ld      hl, byte_D0B4
  633.                 bit     0, (hl)
  634.                 jp      nz, loc_8CE9 ;move?
  635.  
  636.                 ld      a, (hl)
  637.                 or      #40
  638.                 and     #6F
  639.                 ld      (hl), a
  640.                 bit     5, a
  641.                 jr      z, loc_818F
  642.                 call    DrawMoveAndCursors
  643. loc_818F:                               ; CODE XREF: sub_8C20-A96
  644.                 call    sub_9F0D ;show state and help
  645.  
  646.                 ld      ix, word_D059
  647.                 call    sub_A903
  648.  
  649.                 call    sub_A90F
  650.  
  651.                 jr      nz, loc_81A1
  652.  
  653.                 scf
  654.                 jr      loc_81B7
  655.  
  656. ; ---------------------------------------------------------------------------
  657.  
  658. loc_81A1:                               ; CODE XREF: sub_8C20-A84
  659.                 ld      hl, byte_D0B6
  660.                 res     2, (hl)
  661.                 call    sub_A900
  662.  
  663.                 push    af
  664.  
  665.  
  666. loc_81AA:                               ; CODE XREF: sub_8C20-A6C
  667.                 ld      hl, byte_D0DF
  668.                 bit     0, (hl)
  669.                 jr      z, loc_81B6
  670.  
  671.                 call    sub_8F4D
  672.  
  673.                 jr      loc_81AA
  674.  
  675. ; ---------------------------------------------------------------------------
  676.  
  677. loc_81B6:                               ; CODE XREF: sub_8C20-A71
  678.                 pop     af
  679.  
  680.  
  681. loc_81B7:                               ; CODE XREF: sub_8C20-A81
  682.                 ex      af, af' ;'
  683.                 ld      hl, 0
  684.                 ld      (word_D09F), hl
  685.                 ld      hl, byte_D0B4
  686.                 ld      a, (hl)
  687.                 ld      b, a
  688.                 and     #9F
  689.                 ld      (hl), a
  690.                 bit     5, b
  691.                 jp      nz, loc_8520 ;invisible board?
  692.  
  693.                 ex      af, af' ;'
  694.                 jp      c, loc_8B8D
  695.  
  696.                 call    BEEP_move
  697.  
  698.                 ld      a, (byte_D09E)
  699.                 or      a
  700.                 jr      z, loc_81E0
  701. ;end of opening?
  702.                 ld      a, (byte_D0B6)
  703.                 bit     2, a
  704.                 call    nz, sub_A684
  705.  
  706.  
  707. loc_81E0:                               ; CODE XREF: sub_8C20-A4A
  708.                                         ; sub_8C20-8BE
  709.                 ld      h, (ix+0)
  710.                 res     7, h
  711.                 ld      l, (ix+1)
  712.                 res     7, l
  713.                 push    hl
  714.                 ld      ix, word_D059
  715.                 call    sub_A903
  716.  
  717.                 ld      ix, RAM_END_D800
  718.                 ld      bc, 3
  719.                 pop     hl
  720.  
  721.  
  722. loc_81FA:                               ; CODE XREF: sub_8C20-A20
  723.                                         ; sub_8C20-A1A
  724.                 add     ix, bc
  725.                 ld      a, (ix+0)
  726.                 cp      h
  727.                 jr      nz, loc_81FA
  728.  
  729.                 ld      a, (ix+1)
  730.                 cp      l
  731.                 jr      nz, loc_81FA
  732.  
  733.                 ld      a, (ix+0)
  734.                 ld      (byte_D0C4), a
  735.                 call    sub_9FF5
  736.  
  737.                 ld      (byte_D0C2), a
  738.                 ld      a, (ix+1)
  739.                 ld      (byte_D0C5), a
  740.                 call    sub_9FF5
  741.  
  742.                 ld      (byte_D0C3), a
  743.                 call    sub_A906
  744.  
  745.                 call    sub_BC00
  746.  
  747.  
  748. loc_8226:                               ; CODE XREF: sub_8C20-703
  749.                 call    sub_939F
  750.  
  751.                 push    ix
  752.                 pop     hl
  753.                 ld      bc, RAM_END_D800
  754.                 xor     a
  755.                 ld      e, a
  756.                 sbc     hl, bc
  757.                 ld      bc, 3
  758.  
  759.  
  760. loc_8236:                               ; CODE XREF: sub_8C20-9E7
  761.                 inc     e
  762.                 sbc     hl, bc
  763.                 jr      nz, loc_8236
  764.  
  765.                 dec     e
  766.                 ld      hl, (word_D0F7)
  767.                 inc     hl
  768.                 ld      (word_D0F7), hl
  769.                 ld      a, (ix+2)
  770.                 and     #80 ; '?'
  771.                 or      e
  772.                 ld      hl, (ptr_stk_1bvalue)
  773.                 ld      (hl), a
  774.                 inc     hl
  775.                 ld      (ptr_stk_1bvalue), hl
  776.                 ld      (hl), #FF
  777.  
  778.  
  779. loc_8253:                               ; CODE XREF: sub_8C20-E5
  780.                 ld      hl, byte_D00A
  781.                 ld      a, (hl)
  782.                 ld      (byte_D029), a
  783.                 inc     (hl)
  784.                 pop     af
  785.                 push    af
  786.                 jp      po, loc_8279
  787.  
  788.                 push    hl
  789.                 ld      l, (ix+1)
  790.                 ld      h, #D0  ; 'Р'
  791.                 ld      l, (hl)
  792.                 res     2, l
  793.                 inc     l
  794.                 inc     h
  795.                 ld      e, (hl)
  796.                 ld      hl, (ptr_stk_1bvalue)
  797.                 ld      (hl), e
  798.                 inc     hl
  799.                 ld      (ptr_stk_1bvalue), hl
  800.                 ld      (hl), #FF
  801.                 pop     hl
  802.                 jr      loc_8281
  803.  
  804. ; ---------------------------------------------------------------------------
  805.  
  806. loc_8279:                               ; CODE XREF: sub_8C20-9C3
  807.                 jp      p, loc_8281
  808.  
  809.                 and     #F
  810.                 dec     a
  811.                 jr      nz, loc_8283
  812.  
  813.  
  814. loc_8281:                               ; CODE XREF: sub_8C20-9A9
  815.                                         ; sub_8C20:loc_8279
  816.                 xor     a
  817.                 ld      (hl), a
  818.  
  819.  
  820. loc_8283:                               ; CODE XREF: sub_8C20-9A1
  821.                                         ; sub_8C20-CB
  822.                 call    sub_8977 ;вывод хода в buf_10bytes
  823.  
  824.                 call    sub_8B66
  825.  
  826.                 ld      hl, (word_D09F)
  827.                 ld      a, h
  828.                 or      l
  829.                 jr      nz, loc_82B2
  830.  
  831.                 ld      hl, byte_D0B4
  832.                 bit     5, (hl)
  833.                 jr      nz, loc_82B2 ;invisible board?
  834.  
  835.                 call    sub_8D9E
  836.  
  837. loc_829A:                               ; CODE XREF: sub_8C20-97E
  838.                 call    sub_8F4D
  839.  
  840.                 ld      hl, byte_D0DF
  841.                 bit     0, (hl)
  842.                 jr      nz, loc_829A
  843.  
  844.                 call    ShowBOARD2
  845.  
  846.                 ld      hl, BOARD2
  847.                 ld      de, BOARD
  848.                 ld      bc,#40  ; '@'
  849.                 ldir
  850.  
  851.  
  852. loc_82B2:                               ; CODE XREF: sub_8C20-992
  853.                                         ; sub_8C20-98B
  854.                 ld      hl, (word_D09F)
  855.                 ld      de, (word_D0F7)
  856.                 sbc     hl, de
  857.                 jr      c, loc_82CD
  858.  
  859.                 ld      a, (CFG_BITS)
  860.                 bit     5, a
  861.                 jr      nz, loc_82CD
  862.  
  863.                 ld      a, h
  864.                 or      a
  865.                 jr      nz, loc_82D7
  866.  
  867.                 ld      a, l
  868.                 cp      9
  869.                 jr      nc, loc_82D7
  870.  
  871.  
  872. loc_82CD:                               ; CODE XREF: sub_8C20-965
  873.                                         ; sub_8C20-95E
  874.                 ld      hl, byte_D0B4
  875.                 bit     5, (hl)
  876.                 jr      nz, loc_82D7 ;invisible board?
  877.                 call    sub_9FB2 ;добавление хода на экране со скроллом?
  878. loc_82D7:                               ; CODE XREF: sub_8C20-95A
  879.                                         ; sub_8C20-955 ...
  880.                 ld      hl, byte_D02D
  881.                 ld      a, (hl)
  882.                 xor     1
  883.                 ld      (hl), a
  884.                 ld      (byte_D0BF), a
  885.                 rra
  886.                 jr      nc, loc_82E8
  887.  
  888.                 ld      hl, byte_D049 ;move #
  889.                 inc     (hl)
  890.  
  891. loc_82E8:                               ; CODE XREF: sub_8C20-93E
  892.                 jp      loc_810A
  893.  
  894. ; ---------------------------------------------------------------------------
  895.  
  896. loc_82EB:                               ; CODE XREF: sub_8C20-AC5
  897.                                         ; sub_8C20-AC1 ...
  898.                 ld      hl, byte_D0B4
  899.                 ld      a, (hl)
  900.                 bit     1, a
  901.                 jr      z, loc_82F9
  902.  
  903.                 call    sub_A6E4
  904.  
  905.                 jp      loc_8CE9 ;move?
  906.  
  907. ; ---------------------------------------------------------------------------
  908.  
  909. loc_82F9:                               ; CODE XREF: sub_8C20-92F
  910.                 and     #9F ; '?'
  911.                 ld      (hl), a
  912.                 ld      ix, word_D059
  913.                 call    sub_A903
  914.  
  915.                 call    sub_A90F
  916.  
  917.                 jp      z, loc_8B8D
  918.  
  919.                 call    sub_8446
  920.  
  921.                 xor     a
  922.                 ld      hl, 0
  923.                 ld      (INC_SECONDS), hl
  924.                 ld      a, (byte_D09E)
  925.                 or      a
  926.                 jr      z, loc_8365
  927. ;end of opening?
  928.                 ld      a, (byte_D0B4)
  929.                 rra
  930.                 jr      c, loc_8365
  931.  
  932.                 ld      hl, (word_D25A)
  933.                 res     7, l
  934.                 ld      d, l
  935.                 res     7, h
  936.                 ld      e, h
  937.                 ld      hl, RAM_END_D800
  938.                 call    _FindMove_D_E
  939.  
  940.                 jr      c, loc_8365
  941.  
  942.                 push    hl
  943.                 pop     ix
  944.                 call    sub_A906
  945.  
  946.                 call    sub_939F
  947.  
  948.                 ld      hl, byte_D0B4
  949.                 set     5, (hl) ;invisible board?
  950.                 ld      a, (byte_D02D)
  951.                 ld      hl, byte_D0B3 ;d3=swap board
  952.                 res     1, (hl)
  953.                 rra ;???
  954.                 jr      z, loc_834B ;???
  955.                 set     1, (hl)
  956. loc_834B:                               ; CODE XREF: sub_8C20-8D9
  957.                 ld      h, (ix+0)
  958.                 ld      l, (ix+1)
  959.                 ld      (word_D0DA), hl
  960.                 pop     af
  961.                 push    af
  962.                 ld      a, 1
  963.                 jp      po, loc_835C ;???
  964.                 dec     a
  965. loc_835C:                               ; CODE XREF: sub_8C20-8C8
  966.                 ld      (byte_D0DC), a
  967.                 call    sub_A909
  968.  
  969.                 jp      loc_81E0
  970.  
  971. ; ---------------------------------------------------------------------------
  972.  
  973. loc_8365:                               ; CODE XREF: sub_8C20-909
  974.                                         ; sub_8C20-903 ...
  975.                 ld      hl, (tbl_D803)
  976.                 ld      (word_D25A), hl
  977.                 ld      hl, (word_D059)
  978.                 ld      (word_D05C), hl
  979.                 ld      ix, word_D059
  980.                 call    sub_A903
  981.  
  982. loc_8378:                               ; CODE XREF: sub_8C20-216
  983.                 call    sub_9F0D ;show state and help
  984.  
  985.                 ld      b, 0
  986.                 ld      a, (byte_D02D)
  987.                 rra
  988.                 jr      nc, loc_8385
  989.                 ld      b,#70
  990. loc_8385:                               ; CODE XREF: sub_8C20-89F
  991.                 ld      a, b
  992.                 ld      (needdrawcursor1), a
  993.                 ld      a, #FF
  994.                 ld      (needdrawcursorfrom), a
  995.                 ld      (byte_D0CD), a
  996.                 call    DrawMoveAndCursors
  997.  
  998. loc_8394:                               ; CODE XREF: sub_8C20-83A
  999.                                         ; sub_8C20-82D ...
  1000.                 ld      hl, byte_D0DF
  1001.                 ld      a, 2
  1002.                 ld      (hl), a
  1003.                 xor     a
  1004.                 ld      (keycodeformenu), a
  1005. loc_839E:                               ; CODE XREF: sub_8C20-87A
  1006.                                         ; sub_8C20-86E
  1007.                 call    sub_8F4D
  1008. loc_83A1:                               ; CODE XREF: sub_8C20-68E
  1009.                 ld      hl, byte_D0DF
  1010.                 bit     0, (hl)
  1011.                 jr      nz, loc_839E
  1012.  
  1013.                 bit     4, (hl)
  1014.                 jp      nz, loc_845D
  1015.  
  1016.                 ld      hl, keycodeformenu
  1017.                 ld      a, (hl)
  1018.                 or      a
  1019.                 jr      z, loc_839E
  1020.  
  1021.                 ld      (hl), 0
  1022.                 cp      'C'
  1023.                 jp      z, loc_A4F4
  1024.  
  1025.                 cp      'P'
  1026.                 jp      z, loc_A29F
  1027.  
  1028.                 cp      'I'
  1029.                 jr      nz, loc_83D1
  1030.  
  1031.                 call    UnDrawMoveAndCursors
  1032.  
  1033.                 ld      hl, byte_D0B3
  1034.                 ld      a, (hl)
  1035.                 xor     8
  1036.                 ld      (hl), a ;d3=swap board
  1037.                 jp      loc_810A
  1038.  
  1039. ; ---------------------------------------------------------------------------
  1040.  
  1041. loc_83D1:                               ; CODE XREF: sub_8C20-85E
  1042.                 call    ChangeLevel_ifL
  1043.  
  1044.                 jr      nc, loc_83E8
  1045.  
  1046.                 cp      #48 ; 'H'
  1047.                 jr      nz, loc_83F6
  1048.  
  1049.                 call    UnDrawMoveAndCursors
  1050.  
  1051.                 ld      hl, (word_D25A)
  1052.                 call    ShowHintMove
  1053.  
  1054.                 call    DrawMoveAndCursors
  1055.  
  1056.                 jr      loc_8394
  1057.  
  1058. ; ---------------------------------------------------------------------------
  1059.  
  1060. loc_83E8:                               ; CODE XREF: sub_8C20-84C
  1061.                 call    BEEP_start
  1062.  
  1063.                 ld      a, (byte_D02D)
  1064.                 or      #80
  1065.                 ld      (byte_D0BF), a
  1066.                 jp      loc_8394
  1067.  
  1068. ; ---------------------------------------------------------------------------
  1069.  
  1070. loc_83F6:                               ; CODE XREF: sub_8C20-848
  1071.                 push    af
  1072.                 call    sub_A6E4
  1073.  
  1074.                 pop     af
  1075.                 cp      #41 ; 'A' - analysis
  1076.                 jp      z, loc_841F
  1077.  
  1078.                 cp      #4D ; 'M' - move
  1079.                 jp      z, loc_8CDA
  1080.  
  1081.                 cp      #44 ; 'D' - demo
  1082.                 jp      z, loc_8CD5
  1083.  
  1084.                 cp      #42 ; 'B' - back
  1085.                 jp      z, loc_8443
  1086.  
  1087.                 cp      #46 ; 'F' - forward
  1088.                 jp      z, loc_8A9D
  1089.  
  1090.                 cp      #53 ; 'S' - set position
  1091.                 jp      z, loc_8595
  1092.  
  1093.  
  1094. loc_8419:                               ; CODE XREF: sub_8C20-7AF
  1095.                 call    BEEP_3
  1096.  
  1097.                 jp      loc_8394
  1098.  
  1099. ; ---------------------------------------------------------------------------
  1100.  
  1101. loc_841F:                               ; CODE XREF: sub_8C20-823
  1102. ;'A' - analysis
  1103.                 ld      hl, loc_8394
  1104.                 push    hl
  1105.                 ld      hl, byte_D0B6
  1106.                 ld      a, (hl)
  1107.                 xor     1
  1108.                 and     1
  1109.                 ld      (hl), a
  1110.  
  1111. ; END OF FUNCTION CHUNK FOR sub_8C20
  1112.  
  1113. ; =============== S U B R O U T I N E =======================================
  1114.  
  1115.  
  1116. sub_842C:                               ; CODE XREF: sub_9F0D
  1117.                 ld      hl, byte_D0B6
  1118.                 ld      a, (hl)
  1119.                 or      a
  1120.                 ld      hl, #D00
  1121.                 ld      (scr_XY), hl
  1122.                 ld      hl, a_8spaces   ; "       "
  1123.                 jr      z, loc_843F
  1124.  
  1125.                 ld      hl, aAnalysis   ; "ANALYSI"
  1126.  
  1127.  
  1128. loc_843F:                               ; CODE XREF: sub_842C+E
  1129.                 call    PRINT_STR_FF
  1130.  
  1131.                 ret
  1132.  
  1133. ; End of function sub_842C
  1134.  
  1135. ; ---------------------------------------------------------------------------
  1136. ; START OF FUNCTION CHUNK FOR sub_8C20
  1137.  
  1138. loc_8443:                               ; CODE XREF: sub_8C20-814
  1139. ;'B' - back
  1140.                 jp      loc_8A0D
  1141.  
  1142. ; END OF FUNCTION CHUNK FOR sub_8C20
  1143.  
  1144. ; =============== S U B R O U T I N E =======================================
  1145.  
  1146.  
  1147. sub_8446:                               ; CODE XREF: sub_8C20-917
  1148.                 ld      hl, tbl_D803
  1149.                 ld      de, unk_F000
  1150.  
  1151.  
  1152. loc_844C:                               ; CODE XREF: sub_8446+13
  1153.                 ld      a, (hl)
  1154.                 cp      #FF
  1155.                 jr      z, loc_845B
  1156.  
  1157.                 ld      b, 3
  1158.  
  1159.  
  1160. loc_8453:                               ; CODE XREF: sub_8446+11
  1161.                 ld      a, (hl)
  1162.                 ld      (de), a
  1163.                 inc     hl
  1164.                 inc     de
  1165.                 djnz    loc_8453
  1166.  
  1167.                 jr      loc_844C
  1168.  
  1169. ; ---------------------------------------------------------------------------
  1170.  
  1171. loc_845B:                               ; CODE XREF: sub_8446+9
  1172.                 ld      (de), a
  1173.                 ret
  1174.  
  1175. ; End of function sub_8446
  1176.  
  1177. ; ---------------------------------------------------------------------------
  1178. ; START OF FUNCTION CHUNK FOR sub_8C20
  1179.  
  1180. loc_845D:                               ; CODE XREF: sub_8C20-876
  1181.                 call    sub_8C2D
  1182.  
  1183.                 ld      a, (needdrawcursorfrom)
  1184.                 ld      b, a
  1185.                 ld      a, (needdrawcursor1)
  1186.                 ld      c, a
  1187.                 ld      hl, RAM_END_D800
  1188.  
  1189.  
  1190. loc_846B:                               ; CODE XREF: sub_8C20-7AB
  1191.                                         ; sub_8C20-7A5
  1192.                 inc     hl
  1193.                 inc     hl
  1194.                 inc     hl
  1195.                 ld      a, (hl)
  1196.                 cp      #FF
  1197.                 jp      z, loc_8419
  1198.  
  1199.                 cp      b
  1200.                 jr      nz, loc_846B
  1201.  
  1202.                 inc     hl
  1203.                 ld      a, (hl)
  1204.                 dec     hl
  1205.                 cp      c
  1206.                 jr      nz, loc_846B
  1207.  
  1208.                 push    hl
  1209.                 call    sub_A6E4
  1210.  
  1211.                 call    UnDrawMoveAndCursors
  1212.  
  1213.                 call    BEEP_move
  1214.  
  1215.                 pop     ix
  1216.                 ld      a, (ix+0)
  1217.                 ld      (byte_D0C4), a
  1218.                 call    sub_9FF5
  1219.  
  1220.                 ld      (byte_D0C2), a
  1221.                 ld      a, (ix+1)
  1222.                 ld      (byte_D0C5), a
  1223.                 call    sub_9FF5
  1224.  
  1225.                 ld      (byte_D0C3), a
  1226.                 call    sub_A906
  1227.  
  1228.                 call    sub_BC00
  1229.  
  1230.                 pop     af
  1231.                 push    af
  1232.                 jp      po, loc_8515
  1233.  
  1234.                 ld      hl, byte_D0DF
  1235.                 bit     7, (hl)
  1236.                 res     7, (hl)
  1237.                 ld      a, (byte_D0DC)
  1238.                 jp      nz, loc_84DF
  1239.  
  1240.                 ld      (hl), 8
  1241.                 xor     a
  1242.                 ld      (keycodeformenu), a
  1243.  
  1244.  
  1245. loc_84BF:                               ; CODE XREF: sub_8C20-743
  1246.                 call    sub_93A4
  1247.  
  1248.                 ld      a,#14
  1249.                 call    halt_A_frames
  1250.  
  1251.                 call    sub_8F4D
  1252.  
  1253.                 jr      nz, loc_84DF
  1254.  
  1255.                 call    sub_A909
  1256.  
  1257.                 call    sub_93A4
  1258.  
  1259.                 call    sub_A906
  1260.  
  1261.                 ld      a,#14
  1262.                 call    halt_A_frames
  1263.  
  1264.                 call    sub_8F4D
  1265.  
  1266.                 jr      z, loc_84BF
  1267.  
  1268.  
  1269. loc_84DF:                               ; CODE XREF: sub_8C20-76A
  1270.                                         ; sub_8C20-756
  1271.                 ld      (byte_D0DC), a
  1272.                 call    sub_A909
  1273.  
  1274.                 call    sub_93A4
  1275.  
  1276.                 call    sub_A906
  1277.  
  1278.                 ld      a, (byte_D0DC)
  1279.                 ld      b, 5
  1280.                 cp      #52 ; 'R'
  1281.                 jr      z, loc_8500
  1282.  
  1283.                 ld      b, 3
  1284.                 cp      #4E ; 'N'
  1285.                 jr      z, loc_8500
  1286.  
  1287.                 ld      b,#83 ; '?'
  1288.                 cp      #42 ; 'B'
  1289.                 jr      nz, loc_8512
  1290.  
  1291.  
  1292. loc_8500:                               ; CODE XREF: sub_8C20-72E
  1293.                                         ; sub_8C20-728
  1294.                 ld      l, (ix+1)
  1295.                 ld      h, BRD_88_0/256
  1296.                 ld      l, (hl)
  1297.                 res     2, l
  1298.                 inc     l
  1299.                 inc     h               ; h=word_D100/256
  1300.                 ld      (hl), b
  1301.                 res     7, (ix+2)
  1302.                 call    sub_BC00
  1303.  
  1304.  
  1305. loc_8512:                               ; CODE XREF: sub_8C20-722
  1306.                 call    BEEP_move
  1307.  
  1308.  
  1309. loc_8515:                               ; CODE XREF: sub_8C20-777
  1310.                 ld      a, (curlevel)
  1311.                 cp      #A
  1312.                 call    z, sub_8D6A
  1313.  
  1314.                 jp      loc_8226
  1315.  
  1316. ; ---------------------------------------------------------------------------
  1317.  
  1318. loc_8520:                               ; CODE XREF: sub_8C20-A58
  1319.                                         ; sub_8C20-7D
  1320.                 ld      hl, byte_D0DF
  1321.                 res     5, (hl)
  1322.                 pop     af
  1323.                 push    af
  1324.                 jp      po, loc_8533
  1325.  
  1326.                 ld      hl, (ptr_stk_1bvalue)
  1327.                 dec     hl
  1328.                 ld      (ptr_stk_1bvalue), hl
  1329.                 ld      (hl), #FF
  1330.  
  1331.  
  1332. loc_8533:                               ; CODE XREF: sub_8C20-6F9
  1333.                 ld      hl, (word_D0F7)
  1334.                 dec     hl
  1335.                 ld      (word_D0F7), hl
  1336.                 ld      hl, (ptr_stk_1bvalue)
  1337.                 dec     hl
  1338.                 ld      (ptr_stk_1bvalue), hl
  1339.                 ld      (hl), #FF
  1340.                 call    sub_A909
  1341.  
  1342.                 ld      hl, (word_D059)
  1343.                 ld      (word_D25A), hl
  1344.                 ld      hl, (word_D05C)
  1345.                 ld      a, (byte_D05E)
  1346.                 ld      (word_D059), hl
  1347.                 ld      (byte_D05B), a
  1348.                 ld      a, (byte_D029)
  1349.                 ld      (byte_D00A), a
  1350.                 ld      hl,word_D240-1
  1351.                 ld      de,word_D240+1
  1352.                 ld      bc,#17
  1353.                 lddr
  1354.                 ld      hl, byte_D02D
  1355.                 ld      a, (hl)
  1356.                 xor     1
  1357.                 ld      (hl), a
  1358.                 or      #80
  1359.                 ld      (byte_D0BF), a
  1360.                 rra
  1361.                 jr      c, loc_857C
  1362.  
  1363.                 ld      hl, byte_D049 ;move #
  1364.                 dec     (hl)
  1365.  
  1366. loc_857C:                               ; CODE XREF: sub_8C20-6AA
  1367.                 ld      hl, (word_D059)
  1368.                 ld      (word_D05C), hl
  1369.                 ld      ix, word_D059
  1370.                 call    sub_A903
  1371.  
  1372.                 ld      hl, curkey_D0D9
  1373.                 ld      a, (hl)
  1374.                 ld      (hl), 0
  1375.                 ld      (keycodeformenu), a
  1376.                 jp      loc_83A1
  1377.  
  1378. ; ---------------------------------------------------------------------------
  1379.  
  1380. loc_8595:                               ; CODE XREF: sub_8C20-80A
  1381.                                         ; sub_8C20-24
  1382. ;'S' - set position
  1383.                 xor     a
  1384.                 ld      (byte_D0B7), a
  1385.                 call    UnDrawMoveAndCursors
  1386.  
  1387.                 ld      a, #FF
  1388.                 ld      (needdrawcursorfrom), a
  1389.                 call    DrawMoveAndCursors
  1390.  
  1391.                 call    restore_6_spaces
  1392.  
  1393.                 call    PrintMoveText
  1394.  
  1395.                 call    sub_A150
  1396.  
  1397.                 ld      hl,#1200
  1398.                 jr      nc, loc_85B4
  1399.  
  1400.                 ld      h, #A
  1401.  
  1402.  
  1403. loc_85B4:                               ; CODE XREF: sub_8C20-670
  1404.                 ld      (scr_XY), hl
  1405.                 ld      hl, aSIXbuf     ; "     "
  1406.                 call    PRINT_STR_scr0
  1407.  
  1408.                 ld      a,#40
  1409.                 ld      (byte_D08E), a
  1410.                 ld      a, (byte_D02D)
  1411.                 rra
  1412.                 ld      a, 6
  1413.                 rra
  1414.                 ld      (byte_D08D), a
  1415.                 ld      hl, byte_D04D
  1416.                 set     0, (hl)
  1417.                 ld      hl, byte_D0B4
  1418.                 set     0, (hl)
  1419.                 set     3, (hl)
  1420.  
  1421.  
  1422. loc_85D8:                               ; CODE XREF: sub_8C20-608
  1423.                                         ; sub_8C20-5E4 ...
  1424.                 call    BEEP_move
  1425.  
  1426.                 jr      loc_85E0
  1427.  
  1428. ; ---------------------------------------------------------------------------
  1429.  
  1430. loc_85DD:                               ; CODE XREF: sub_8C20-4D5
  1431.                 call    BEEP_3
  1432.  
  1433.  
  1434. loc_85E0:                               ; CODE XREF: sub_8C20-645
  1435.                 call    sub_9F0D ;show state and help
  1436.  
  1437.                 ld      hl, #1601
  1438.                 ld      (scr_XY), hl
  1439.                 ld      hl, aWhite      ; "WHIT"
  1440.                 ld      a, (byte_D08D)
  1441.                 rlca
  1442.                 jr      c, loc_85F5
  1443.  
  1444.                 ld      hl, aBlack      ; "BLAC"
  1445.  
  1446.  
  1447. loc_85F5:                               ; CODE XREF: sub_8C20-630
  1448.                 call    PRINT_STR_scr0
  1449.  
  1450.                 ld      hl, byte_D0DF
  1451.                 ld      (hl), 4
  1452.  
  1453. loc_85FD:                               ; CODE XREF: sub_8C20+A
  1454.                 call    DrawMoveAndCursors
  1455.  
  1456. loc_8600:                               ; CODE XREF: sub_8C20-618
  1457.                 call    sub_8F4D
  1458.  
  1459.                 ld      hl, keycodeformenu
  1460.                 ld      a, (hl)
  1461.                 or      a
  1462.                 jr      z, loc_8600
  1463.  
  1464.                 ld      (hl), 0
  1465.                 push    af
  1466.                 call    sub_8C2D
  1467.  
  1468.                 pop     af
  1469.                 cp      'Z'
  1470.                 jr      nz, loc_863F
  1471.  
  1472.                 call    INIT_PRINT_CLOCKS
  1473.  
  1474.                 jr      loc_85D8
  1475.  
  1476. ; ---------------------------------------------------------------------------
  1477.  
  1478. loc_861A:                               ; CODE XREF: sub_8C20-4C8
  1479.                 ld      a, (byte_D08D)
  1480.                 add     a, b
  1481.  
  1482. loc_861E:                               ; CODE XREF: sub_8C20-4DE
  1483.                 ld      c, (hl)
  1484.                 ld      (hl), a
  1485.                 bit     0, c
  1486.                 jr      nz, loc_862E
  1487.                 bit     2, c
  1488.                 jr      z, loc_862E
  1489.                 res     2, c
  1490.                 ld      l, c
  1491.                 inc     h
  1492.                 set     7, (hl)
  1493. loc_862E:                               ; CODE XREF: sub_8C20-5FE
  1494.                                         ; sub_8C20-5FA ...
  1495.                 ld      sp, RAM_END_D800
  1496.                 ld      a, 3
  1497.                 ld      (byte_D04D), a
  1498.                 call    sub_93A4
  1499.  
  1500.                 call    sub_96A6
  1501.  
  1502.                 jp      loc_85D8
  1503.  
  1504. ; ---------------------------------------------------------------------------
  1505.  
  1506. loc_863F:                               ; CODE XREF: sub_8C20-60D
  1507.                 call    ChangeLevel_ifL
  1508.  
  1509.                 jp      nc, loc_85D8
  1510.  
  1511.                 cp      'C'
  1512.                 jr      nz, loc_864E
  1513.  
  1514.                 call    sub_87CD
  1515.  
  1516.                 jr      loc_862E
  1517.  
  1518. ; ---------------------------------------------------------------------------
  1519.  
  1520. loc_864E:                               ; CODE XREF: sub_8C20-5D9
  1521.                 cp      'M'
  1522.                 jr      z, loc_865C
  1523.  
  1524.                 cp      'S'
  1525.                 jp      nz, loc_871C
  1526.  
  1527.                 ld      hl, byte_D0B4
  1528.                 res     0, (hl)
  1529.  
  1530. loc_865C:                               ; CODE XREF: sub_8C20-5D0
  1531. ;"Move"
  1532.                 ld      hl, #1600
  1533.                 ld      (scr_XY), hl
  1534.                 ld      hl, a_8spaces   ; "       "
  1535.                 call    PRINT_STR_scr0
  1536.  
  1537.                 call    restore_6_spaces
  1538.  
  1539.                 ld      hl, byte_D0DF
  1540.                 res     2, (hl)
  1541.                 ld      a, (byte_D08D)
  1542.                 ld      hl, byte_D02D
  1543.                 ld      b, (hl)
  1544.                 res     0, b
  1545.                 sub     3
  1546.                 ld      (byte_D0B2), a
  1547.                 jr      z, loc_8682
  1548.                 set     0, b
  1549. loc_8682:                               ; CODE XREF: sub_8C20-5A2
  1550.                 ld      a, b
  1551.                 cp      (hl)
  1552.                 jr      z, loc_868C
  1553.                 ld      (hl), b
  1554.                 ld      a, 3
  1555.                 ld      (byte_D04D), a
  1556. loc_868C:                               ; CODE XREF: sub_8C20-59C
  1557.                 ld      a, (byte_D04D)
  1558.                 and     2
  1559.                 jr      z, loc_8712
  1560.  
  1561.                 call    sub_881D
  1562.                 ld      a, #A ;??? сюда никогда не попадаем?
  1563.                 ld      (byte_D049), a ;move #
  1564.                 call    sub_A915
  1565.  
  1566.                 xor     a
  1567.                 ld      (byte_D00A), a
  1568.                 ld      hl, word_D059
  1569.                 ld      b, 6
  1570.  
  1571.  
  1572. loc_86A7:                               ; CODE XREF: sub_8C20-577
  1573.                 ld      (hl), a
  1574.                 inc     l
  1575.                 djnz    loc_86A7
  1576.  
  1577.                 xor     a
  1578.                 ld      (word_D00D), a
  1579.                 ld      ix, word_D059
  1580.                 ld      hl, byte_D02D
  1581.                 inc     (hl)
  1582.                 push    hl
  1583.                 call    sub_BC00
  1584.  
  1585.                 pop     hl
  1586.                 dec     (hl)
  1587.                 or      a
  1588.                 call    z, sub_8C20
  1589.  
  1590.                 ld      a, #FF
  1591.                 ld      (stk_1bvalue), a
  1592.                 ld      hl, #F7F7
  1593.                 ld      (word_D240), hl
  1594.                 ld      hl, byte_D02D
  1595.                 ld      a, (hl)
  1596.                 and     1
  1597.                 ld      b, a
  1598.                 ld      a, (ix+2)
  1599.                 and     #FE
  1600.                 or      b
  1601.                 ld      (byte_D301), a
  1602.                 ld      a, (ix+1)
  1603.                 ld      (byte_D300), a
  1604.                 ld      a, (byte_D00A)
  1605.                 ld      (byte_D302), a
  1606.                 ld      a, (byte_D049) ;move #
  1607.                 ld      (byte_D20C), a ;oldmove #?
  1608.                 ld      hl, word_D100
  1609.                 ld      de, array_64bytes
  1610.                 ld      b, #20 ; ' '
  1611. loc_86F6:                               ; CODE XREF: sub_8C20-51F
  1612.                 ld      a, (hl)
  1613.                 ld      (de), a
  1614.                 inc     hl
  1615.                 inc     de
  1616.                 ld      a, (hl)
  1617.                 ld      (de), a
  1618.                 inc     de
  1619.                 ld      a, l
  1620.                 add     a, 7
  1621.                 ld      l, a
  1622.                 djnz    loc_86F6
  1623.  
  1624.                 ld      hl, stk_1bvalue
  1625.                 ld      (ptr_stk_1bvalue), hl
  1626.                 call    BEEP_move
  1627.  
  1628.                 call    sub_96A6
  1629.  
  1630.                 jp      loc_80CE
  1631.  
  1632. ; ---------------------------------------------------------------------------
  1633.  
  1634. loc_8712:                               ; CODE XREF: sub_8C20-58F
  1635.                 xor     a
  1636.                 ld      (byte_D04D), a
  1637.                 call    BEEP_move
  1638.  
  1639.                 jp      loc_8104
  1640.  
  1641. ; ---------------------------------------------------------------------------
  1642.  
  1643. loc_871C:                               ; CODE XREF: sub_8C20-5CC
  1644.                 cp      #58 ; 'X'
  1645.                 jr      nz, loc_8737
  1646.  
  1647.                 call    restore_6_spaces
  1648.  
  1649.                 ld      hl, byte_D08D
  1650.                 ld      a, (hl)
  1651.                 xor     #80
  1652.                 ld      (hl), a
  1653.                 ld      hl, byte_D0BF
  1654.                 ld      a, (hl)
  1655.                 xor     1
  1656.                 ld      (hl), a
  1657.                 call    PrepareAndPrintMoveText
  1658.  
  1659.                 jp      loc_85D8
  1660.  
  1661. ; ---------------------------------------------------------------------------
  1662.  
  1663. loc_8737:                               ; CODE XREF: sub_8C20-502
  1664.                 cp      #45 ; 'E'
  1665.                 jr      nz, loc_8745
  1666.  
  1667.                 ld      h, #D0
  1668.                 ld      a, (needdrawcursor1)
  1669.                 ld      l, a
  1670.                 xor     a
  1671.                 jp      loc_861E
  1672.  
  1673. ; ---------------------------------------------------------------------------
  1674.  
  1675. loc_8745:                               ; CODE XREF: sub_8C20-4E7
  1676.                 ld      hl, KING
  1677.                 call    sub_8CF7 ;поиск класса фигуры по имени
  1678.  
  1679.                 jp      c, loc_85DD
  1680.  
  1681.                 inc     hl
  1682.                 inc     hl
  1683.                 ld      a, (hl)
  1684.                 ld      b, a
  1685.                 ld      a, (needdrawcursor1)
  1686.                 ld      l, a
  1687.                 ld      h, BRD_88_0/256
  1688.                 jp      loc_861A
  1689.  
  1690. ; END OF FUNCTION CHUNK FOR sub_8C20
  1691.  
  1692. ; =============== S U B R O U T I N E =======================================
  1693.  
  1694.  
  1695. InitBoard_ClearMoves:                           ; CODE XREF: sub_8C20:loc_80CB
  1696.        if FIX
  1697.         call RandomizeSetup
  1698.        endif
  1699.                 xor     a
  1700.                 ld      (byte_D0FF), a
  1701.                 ld      hl, array_D200
  1702.                 ld      b, #A
  1703. loc_8764:                               ; CODE XREF: InitBoard_ClearMoves+B
  1704.                 ld      (hl), a
  1705.                 inc     l
  1706.                 djnz    loc_8764
  1707.  
  1708.                 ld      (hl), #FF
  1709.                 ld      c, a
  1710.                 ld      b, a
  1711.                 ld      hl, array_D200
  1712. loc_876F:                               ; CODE XREF: InitBoard_ClearMoves+16
  1713.                 dec     hl
  1714.                 ld      (hl), a
  1715.                 djnz    loc_876F
  1716.  
  1717.                 ld      hl, unk_D080
  1718.                 ld      b, #80
  1719. loc_8778:                               ; CODE XREF: InitBoard_ClearMoves+1F
  1720.                 dec     hl
  1721.                 ld      (hl), a
  1722.                 djnz    loc_8778
  1723.  
  1724.                 call    Copy_starting_setup
  1725.  
  1726.                 ld      de, word_D100 ;пустышка (а потом там будет положение короля?)
  1727.                 ld      c, #41
  1728.                 call    sub_87BF ;копирует ряд de по |c в hl
  1729.  
  1730.                 ld      l, #60
  1731.                 ld      c, #C1
  1732.                 call    sub_87BF ;копирует ряд de по |c в hl
  1733.  
  1734.                 ld      c, #81
  1735.                 call    Copy_starting_setup
  1736.  
  1737.        if !FIX
  1738.                 xor     a
  1739.                 ld      (byte_D09E), a
  1740.                 inc     a
  1741.        else
  1742.         ld a,1
  1743.         ld (byte_D09E), a ;end of opening?
  1744.        endif
  1745.                 ld      (byte_D0B2), a
  1746.                 ld      (byte_D02D), a
  1747.                 ld      (byte_D0BF), a
  1748.                 ld      (byte_D049), a ;move #
  1749.                 ld      (byte_D097), a
  1750.                 ld      (byte_D20C), a ;oldmove #?
  1751.                 ld      hl, stk_1bvalue
  1752.                 ld      (ptr_stk_1bvalue), hl
  1753.                 ld      hl, RAM_END_D800
  1754.                 ld      (word_D099), hl
  1755.                 call    sub_87DE
  1756.  
  1757.                 jp      loc_8828
  1758.  
  1759. ; End of function InitBoard_ClearMoves
  1760.  
  1761.  
  1762. ; =============== S U B R O U T I N E =======================================
  1763.  
  1764. Copy_starting_setup:                            ; CODE XREF: InitBoard_ClearMoves+21 InitBoard_ClearMoves+35
  1765.                 ld      de, starting_setup
  1766. ; End of function Copy_starting_setup
  1767. ; =============== S U B R O U T I N E =======================================
  1768. sub_87BF:                               ; CODE XREF: InitBoard_ClearMoves+29 InitBoard_ClearMoves+30
  1769.                 ld      b, 8
  1770. loc_87C1:                               ; CODE XREF: sub_87BF+7
  1771.                 ld      a, (de)
  1772.                 or      c
  1773.                 ld      (hl), a
  1774.                 inc     l
  1775.                 inc     de
  1776.                 djnz    loc_87C1
  1777.  
  1778.                 ld      a, 8
  1779.                 add     a, l
  1780.                 ld      l, a
  1781.                 ret
  1782.  
  1783. ; End of function sub_87BF
  1784.  
  1785.  
  1786. ; =============== S U B R O U T I N E =======================================
  1787.  
  1788.  
  1789. sub_87CD:                               ; CODE XREF: sub_8C20-5D7
  1790.                                         ; sub_8C20-1D7
  1791.                 call    sub_A262
  1792.  
  1793.                 xor     a
  1794.                 ld      hl, BRD_88_0
  1795. loc_87D4:                               ; CODE XREF: sub_87CD+B
  1796.                 ld      (hl), a
  1797. loc_87D5:                               ; CODE XREF: sub_87CD+F
  1798.                 inc     l
  1799.                 bit     3, l
  1800.                 jr      z, loc_87D4
  1801.                 bit     7, l
  1802.                 jr      z, loc_87D5
  1803.  
  1804. ; End of function sub_87CD
  1805.  
  1806.  
  1807. ; =============== S U B R O U T I N E =======================================
  1808.  
  1809. sub_87DE:                               ; CODE XREF: InitBoard_ClearMoves+5B
  1810.                 ld      hl, word_D100
  1811.                 xor     a
  1812. loc_87E2:                               ; CODE XREF: sub_87DE+9
  1813.                 set     7, (hl)
  1814.                 add     a, 8
  1815.                 ld      l, a
  1816.                 jr      nc, loc_87E2
  1817.                 ret
  1818.  
  1819. ; End of function sub_87DE
  1820.  
  1821.  
  1822. ; =============== S U B R O U T I N E =======================================
  1823.  
  1824.  
  1825. sub_87EA:                               ; CODE XREF: sub_87EA+30 sub_881D+3     ...
  1826.                 ld      d, (hl)
  1827.                 bit     7, d
  1828.                 jr      nz, loc_8814
  1829.  
  1830.                 inc     l
  1831.                 ld      b, (hl)
  1832.                 dec     l
  1833.                 ld      a, b
  1834.                 and     #F
  1835.                 dec     a
  1836.                 jr      z, loc_8814
  1837.  
  1838.                 set     7, (hl)
  1839.                 ld      a, l
  1840.                 and     #80
  1841.                 or      3
  1842.                 ld      e, a
  1843.                 ld      a, b
  1844.                 and     #8F
  1845.                 push    hl
  1846.                 ld      hl, KING-1
  1847.                 call    sub_8CF7 ;поиск класса фигуры по цене
  1848.  
  1849.                 inc     hl
  1850.                 inc     hl
  1851.                 inc     hl
  1852.                 ld      a, (hl)
  1853.                 or      e
  1854.                 ld      h, #D0  ; 'Р'
  1855.                 ld      l, d
  1856.                 ld      (hl), a
  1857.                 pop     hl
  1858.  
  1859.  
  1860. loc_8814:                               ; CODE XREF: sub_87EA+3 sub_87EA+C
  1861.                 ld      a, l
  1862.                 add     a, 8
  1863.                 ld      l, a
  1864.                 bit     6, a
  1865.                 jr      nz, sub_87EA
  1866.  
  1867.                 ret
  1868.  
  1869. ; End of function sub_87EA
  1870.  
  1871.  
  1872. ; =============== S U B R O U T I N E =======================================
  1873.  
  1874.  
  1875. sub_881D:                               ; CODE XREF: sub_8C20-58D
  1876.                 ld      hl, unk_D140
  1877.                 call    sub_87EA
  1878.  
  1879.                 ld      l, #C0          ; word_D1C0&255
  1880.                 call    sub_87EA
  1881.  
  1882.  
  1883. loc_8828:                               ; CODE XREF: InitBoard_ClearMoves+5E
  1884.                 ld      de, BRD_88_0
  1885.                 ld      h, word_D100/256
  1886.  
  1887.  
  1888. loc_882D:                               ; CODE XREF: sub_881D+1A sub_881D+22
  1889.                 ld      a, (de)         ; bytes from D000 are pointers into D100 table
  1890.                 bit     0, a
  1891.                 call    nz, sub_8853
  1892.  
  1893.                 ld      a, #10
  1894.                 add     a, e
  1895.                 ld      e, a
  1896.                 jp      p, loc_882D
  1897.  
  1898.                 res     7, e
  1899.                 inc     e
  1900.                 bit     3, a
  1901.                 jr      z, loc_882D
  1902.  
  1903.                 ld      l, 0            ; word_D100&255
  1904.                 call    sub_884D
  1905.  
  1906.                 ld      l, #80          ; word_D180&255
  1907.                 ld      a, b
  1908.                 or      (hl)
  1909.                 jp      m, sub_8C20     ; illegal setup
  1910.  
  1911. ; End of function sub_881D
  1912.  
  1913.  
  1914. ; =============== S U B R O U T I N E =======================================
  1915.  
  1916.  
  1917. sub_884D:                               ; CODE XREF: sub_881D+26
  1918.  
  1919. ; FUNCTION CHUNK AT A912 SIZE 00000003 BYTES
  1920.  
  1921.                 ld      b, (hl)
  1922.                 inc     l
  1923.                 ld      a, (hl)
  1924.                 jp      loc_A912
  1925.  
  1926. ; End of function sub_884D
  1927.  
  1928.  
  1929. ; =============== S U B R O U T I N E =======================================
  1930.  
  1931.  
  1932. sub_8853:                               ; CODE XREF: sub_881D+13
  1933.                 ld      l, a
  1934.                 dec     l
  1935.                 bit     6, l
  1936.                 jr      z, loc_8879
  1937.  
  1938.                 ld      a, #70 ; 'p'
  1939.                 and     e
  1940.                 jr      z, loc_88D7
  1941.  
  1942.                 cp      #70 ; 'p'
  1943.                 jr      z, loc_88D7
  1944.  
  1945.                 ld      b, 1
  1946.                 ld      a, #80
  1947.                 and     l
  1948.                 xor     #80
  1949.                 scf
  1950.                 rra
  1951.                 ld      c, a
  1952.                 ld      a, e
  1953.                 and     7
  1954.                 cp      3
  1955.                 jr      z, loc_88DB
  1956.  
  1957.                 cp      4
  1958.                 jr      z, loc_88DB
  1959.  
  1960.                 jr      loc_88BB
  1961.  
  1962. ; ---------------------------------------------------------------------------
  1963.  
  1964. loc_8879:                               ; CODE XREF: sub_8853+4
  1965.                 ld      a, #78 ; 'x'
  1966.                 and     l
  1967.                 jr      nz, loc_888D
  1968.  
  1969.                 ld      c, 1
  1970.                 ld      b, 0
  1971.                 bit     1, l
  1972.                 jr      z, loc_8888
  1973.  
  1974.                 ld      b, #30 ; '0'
  1975.  
  1976.  
  1977. loc_8888:                               ; CODE XREF: sub_8853+31
  1978.                 call    sub_88E9
  1979.  
  1980.                 jr      loc_88D7
  1981.  
  1982. ; ---------------------------------------------------------------------------
  1983.  
  1984. loc_888D:                               ; CODE XREF: sub_8853+29
  1985.                 cp      #10
  1986.                 ld      c, #E
  1987.                 ld      b, 9
  1988.                 jr      c, loc_88B2
  1989.  
  1990.                 jr      nz, loc_88A3
  1991.  
  1992.                 ld      c, 8
  1993.                 ld      b, 5
  1994.                 bit     1, l
  1995.                 jr      z, loc_88AF
  1996.  
  1997.                 ld      b, #15
  1998.                 jr      loc_88AF
  1999.  
  2000. ; ---------------------------------------------------------------------------
  2001.  
  2002. loc_88A3:                               ; CODE XREF: sub_8853+42
  2003.                 ld      b, 3
  2004.                 ld      c, 0
  2005.                 cp      #20 ; ' '
  2006.                 jr      nz, loc_88AF
  2007.  
  2008.                 ld      b, #83 ; '?'
  2009.                 ld      c, 4
  2010.  
  2011.  
  2012. loc_88AF:                               ; CODE XREF: sub_8853+4A sub_8853+4E ...
  2013.                 call    sub_88E9
  2014.  
  2015.  
  2016. loc_88B2:                               ; CODE XREF: sub_8853+40
  2017.                 call    sub_88E9
  2018.  
  2019.  
  2020. loc_88B5:                               ; CODE XREF: sub_8853+94
  2021.                 ld      a, #82 ; '''
  2022.                 and     l
  2023.                 set     6, a
  2024.                 ld      l, a
  2025.  
  2026.  
  2027. loc_88BB:                               ; CODE XREF: sub_8853+24 sub_8853+77
  2028.                 call    sub_88E9
  2029.  
  2030.                 call    sub_88E9
  2031.  
  2032.                 call    sub_88E9
  2033.  
  2034.                 ld      a, l
  2035.                 add     a, #10
  2036.                 ld      l, a
  2037.                 bit     6, a
  2038.                 jr      nz, loc_88BB
  2039.  
  2040.                 xor     #80
  2041.                 or      #58
  2042.                 ld      l, a
  2043.                 call    sub_88E9
  2044.  
  2045.                 call    sub_88E9
  2046.  
  2047.  
  2048. loc_88D7:                               ; CODE XREF: sub_8853+9 sub_8853+D ...
  2049.                 pop     hl
  2050.                 jp      sub_8C20
  2051.  
  2052. ; ---------------------------------------------------------------------------
  2053.  
  2054. loc_88DB:                               ; CODE XREF: sub_8853+1E sub_8853+22
  2055.                 ld      a, l
  2056.                 and     #82
  2057.                 or      #58
  2058.                 ld      l, a
  2059.                 call    sub_88E9
  2060.  
  2061.                 call    sub_88E9
  2062.  
  2063.                 jr      loc_88B5
  2064.  
  2065. ; End of function sub_8853
  2066.  
  2067.  
  2068. ; =============== S U B R O U T I N E =======================================
  2069.  
  2070.  
  2071. sub_88E9:                               ; CODE XREF: sub_8853:loc_8888
  2072.                                         ; sub_8853:loc_88AF ...
  2073.                 res     1, l
  2074.                 ld      a, (hl)
  2075.                 rla
  2076.                 jr      c, loc_88F4
  2077.  
  2078.                 ld      a, 8
  2079.                 add     a, l
  2080.                 ld      l, a
  2081.                 ret
  2082.  
  2083. ; ---------------------------------------------------------------------------
  2084.  
  2085. loc_88F4:                               ; CODE XREF: sub_88E9+4
  2086.                 ld      (hl), e         ; D000 (hl) and D100 (de) point to each other here
  2087.                 ld      a, l
  2088.                 set     2, a
  2089.                 ld      (de), a
  2090.                 inc     l
  2091.                 ld      (hl), b
  2092.                 set     2, l
  2093.                 inc     l
  2094.                 ld      (hl), c
  2095.                 pop     bc
  2096.                 ret
  2097.  
  2098. ; End of function sub_88E9
  2099.  
  2100. ; ---------------------------------------------------------------------------
  2101. starting_setup:
  2102.         ;db     #11,#31,#21,#09,#01,#21,#31,#11
  2103.         db      _R,_N,_B,_Q,_K,_B,_N,_R
  2104.  
  2105. aSIXbuf:        db      '      '
  2106.                 EOS
  2107.  
  2108. ; =============== S U B R O U T I N E =======================================
  2109.  
  2110. PrintMoveText:                          ; CODE XREF: sub_8C20-679
  2111.                                         ; restore_6_spaces+D ...
  2112.                 ld      hl, #61A
  2113.                 ld      (scr_XY), hl
  2114.                 ld      hl, aSIXbuf     ; "     "
  2115.                 call    PRINT_STR_FF
  2116.  
  2117.                 ld      hl, #1700
  2118.                 ld      (scr_XY), hl
  2119.                 ld      hl, aSIXbuf     ; "     "
  2120.                 call    PRINT_STR_scr0
  2121.                 ret
  2122. ; End of function PrintMoveText
  2123. ; =============== S U B R O U T I N E =======================================
  2124. restore_6_spaces:                       ; CODE XREF: sub_8C20-67C
  2125.                                         ; sub_8C20-5B8 ...
  2126.                 ld      hl, aSIXbuf     ; "     "
  2127.                 ld      b, 5
  2128.                 ld      a, #20 ; ' '
  2129. loc_892F:                               ; CODE XREF: restore_6_spaces+9
  2130.                 ld      (hl), a
  2131.                 inc     hl
  2132.                 djnz    loc_892F
  2133.                 ld      (hl),' '|#80
  2134.                 call    PrintMoveText
  2135.                 ret
  2136. ; End of function restore_6_spaces
  2137. ; =============== S U B R O U T I N E =======================================
  2138.  
  2139. PrepareAndPrintMoveText:                                ; CODE XREF: sub_8C20-4EF
  2140.                                         ; sub_9128+37   ...
  2141.                 call    restore_6_spaces
  2142.                 ld      hl, aSIXbuf     ; "     "
  2143.                 ld      a, (needdrawcursorfrom)
  2144.                 cp      #FF
  2145.                 jr      nz, loc_8949
  2146.                 ld      a, (needdrawcursor1)
  2147. loc_8949:                               ; CODE XREF: PrepareAndPrintMoveText+B
  2148.                 call    sub_8960 ;вывод имени поля A в hl
  2149.  
  2150.                 ld      a, (needdrawcursorfrom)
  2151.                 cp      #FF
  2152.                 jr      z, loc_895C
  2153.  
  2154.                 ld      (hl),'-'
  2155.                 inc     hl
  2156.                 ld      a, (needdrawcursor1)
  2157.                 call    sub_8960 ;вывод имени поля A в hl
  2158. loc_895C:                               ; CODE XREF: PrepareAndPrintMoveText+18
  2159.                 call    PrintMoveText
  2160.                 ret
  2161. ; End of function PrepareAndPrintMoveText
  2162. ; =============== S U B R O U T I N E =======================================
  2163. sub_8960:                               ; CODE XREF: PrepareAndPrintMoveText:loc_8949
  2164. ;вывод имени поля A в hl                                        ; PrepareAndPrintMoveText+20    ...
  2165.                 ld      b, a
  2166.                 and     #F
  2167.                 add     a,'a'
  2168.                 ld      (hl), a
  2169.                 inc     hl
  2170.                 ld      a, b
  2171.                 and     #F0
  2172.                 rlca
  2173.                 rlca
  2174.                 rlca
  2175.                 rlca
  2176.                 neg
  2177.                 add     a, 7
  2178.                 add     a,'1'
  2179.                 ld      (hl), a
  2180.                 inc     hl
  2181.                 ret
  2182. ; End of function sub_8960
  2183. ; =============== S U B R O U T I N E =======================================
  2184.  
  2185. sub_8977:                               ; CODE XREF: sub_8C20:loc_8283
  2186. ;вывод хода в buf_10bytes
  2187. ;(ix+0)=откуда ходим
  2188. ;(ix+1)=куда ходим (при рокировке записан ход короля)
  2189. ;(ix+2)D3=съедение
  2190. ;(ix+2)D4=рокировка, (ix+1)D2=короткая (годится и для Chess960)
  2191. ;(ix+2)D7=шах
  2192.                 ld      hl, buf_10bytes
  2193.                 ld      b, #A
  2194. loc_897C:                               ; CODE XREF: sub_8977+8
  2195.                 ld      (hl), #20 ; ' '
  2196.                 inc     hl
  2197.                 djnz    loc_897C
  2198.  
  2199.                 xor     a
  2200.                 ld      (byte_D0DC), a
  2201.  
  2202.                 bit     4, (ix+2)
  2203.                 jr      z, loc_89A4 ;не рокировка
  2204.                 ld      hl, aOOO        ; "O-O-O"
  2205.                 ld      de, buf_10bytes+1
  2206.                 ld      c, 5
  2207.                 bit     2, (ix+1)
  2208.                 jr      z, loc_899E ;рокируем в левую половину доски
  2209.                 inc     hl
  2210.                 inc     hl ;"O-O"
  2211.                 inc     de
  2212.                 ld      c, 3
  2213. loc_899E:                               ; CODE XREF: sub_8977+20
  2214.                 ldir
  2215.                 ex      de, hl
  2216.                 dec     hl
  2217.                 jr      loc_89FB
  2218.  
  2219. ; ---------------------------------------------------------------------------
  2220.  
  2221. loc_89A4:                               ; CODE XREF: sub_8977+12
  2222.                 ld      hl, buf_10bytes
  2223.                 ld      a, (byte_D0C2)
  2224.                 ld      (hl), a
  2225.                 inc     hl
  2226.                 ld      a, (ix+0)
  2227.                 call    sub_8960 ;вывод имени поля A в hl
  2228.  
  2229.                 ld      (hl),'-'
  2230.                 bit     3, (ix+2)
  2231.                 jr      z, loc_89BC ;просто ход
  2232.                 ld      (hl),'x' ;съедение
  2233. loc_89BC:                               ; CODE XREF: sub_8977+41
  2234.                 inc     hl
  2235.                 ld      a, (ix+1)
  2236.                 call    sub_8960 ;вывод имени поля A в hl
  2237.  
  2238.                 dec     hl
  2239.                 pop     de
  2240.                 pop     af
  2241.                 push    af
  2242.                 push    de
  2243.                 jp      po, loc_89F3 ;not promotion
  2244.  
  2245.                 inc     hl
  2246.                 ld      (hl), '/'
  2247.                 inc     hl
  2248.                 push    hl
  2249.                 ld      hl, (ptr_stk_1bvalue)
  2250.                 dec     hl
  2251.                 ld      a, (hl)
  2252.                 and     #8F
  2253.                 pop     hl
  2254.                 ld      b, 'Q'
  2255.                 cp      9
  2256.                 jr      z, loc_89EC
  2257.                 ld      b, 'R'
  2258.                 cp      5
  2259.                 jr      z, loc_89EC
  2260.                 ld      b, 'B'
  2261.                 cp      #83
  2262.                 jr      z, loc_89EC
  2263.                 ld      b, 'N'
  2264. loc_89EC:                               ; CODE XREF: sub_8977+65 sub_8977+6B ...
  2265.                 ld      a, b
  2266.                 ld      (hl), a
  2267.                 ld      (byte_D0DC), a
  2268.                 jr      loc_89FB
  2269.  
  2270. ; ---------------------------------------------------------------------------
  2271.  
  2272. loc_89F3:                               ; CODE XREF: sub_8977+51
  2273.                 jr      nc, loc_89FB
  2274.  
  2275.                 inc     hl
  2276.                 ld      (hl), #65 ; 'e'
  2277.                 inc     hl
  2278.                 ld      (hl), #70 ; 'p'
  2279.  
  2280.  
  2281. loc_89FB:                               ; CODE XREF: sub_8977+2B sub_8977+7A ...
  2282.                 bit     7, (ix+2)
  2283.                 jr      z, loc_8A04
  2284.  
  2285.                 inc     hl
  2286.                 ld      (hl), '+'
  2287.  
  2288.  
  2289. loc_8A04:                               ; CODE XREF: sub_8977+88
  2290.                 set     7, (hl)
  2291.                 ret
  2292.  
  2293. ; End of function sub_8977
  2294.  
  2295. ; ---------------------------------------------------------------------------
  2296. ; START OF FUNCTION CHUNK FOR sub_8C20
  2297.  
  2298. loc_8A07:                               ; CODE XREF: sub_8C20-204
  2299.                                         ; sub_8C20-167
  2300.                 call    BEEP_3
  2301.  
  2302.                 jp      loc_8378
  2303.  
  2304. ; ---------------------------------------------------------------------------
  2305.  
  2306. loc_8A0D:                               ; CODE XREF: sub_8C20:loc_8443
  2307. ;'B' - back
  2308.         if FIX
  2309.          call setoldrnd
  2310.         endif
  2311.                 call    UnDrawMoveAndCursors
  2312.  
  2313.                 ld      a, (needdrawcursorfrom)
  2314.                 or      a
  2315.                 call    p, UnDrawCursor
  2316.  
  2317.                 ld      hl, (word_D0F7)
  2318.                 ld      a, l
  2319.                 or      h
  2320.                 jp      z, loc_8A07
  2321.  
  2322.                 ld      a, (timeformove)
  2323.                 ld      c, a
  2324.                 ld      b, 0
  2325.                 ld      hl, (word_D088)
  2326.                 sbc     hl, bc
  2327.                 jr      nc, loc_8A2F
  2328.  
  2329.                 ld      hl, 0
  2330.  
  2331.  
  2332. loc_8A2F:                               ; CODE XREF: sub_8C20-1F6
  2333.                 ld      (word_D088), hl
  2334.  
  2335.  
  2336. loc_8A32:                               ; CODE XREF: sub_8C20-11
  2337.                                         ; sub_8C20+172A ...
  2338.                 call    BEEP_move
  2339.  
  2340.                 call    sub_96A6
  2341.  
  2342.                 ld      hl, (word_D0F7)
  2343.                 dec     hl
  2344.                 ld      (word_D09F), hl
  2345.                 ld      a, (byte_D20C) ;oldmove #
  2346.                 ld      (byte_D049), a ;move #
  2347.                 dec     a
  2348.                 jp      z, loc_80CB
  2349.  
  2350.                 call    sub_87CD
  2351.  
  2352.                 ld      de, array_64bytes
  2353.                 ld      a, (byte_D300)
  2354.                 ld      (word_D059+1), a
  2355.                 ld      a, (byte_D301)
  2356.                 ld      (byte_D05B), a
  2357.                 ld      (byte_D02D), a
  2358.                 and     1
  2359.                 ld      (byte_D0B2), a
  2360.                 ld      (byte_D0BF), a
  2361.                 ld      a, (byte_D302)
  2362.                 ld      (byte_D00A), a
  2363.                 ld      hl, word_D100
  2364.                 ld      b, #20 ; ' '
  2365.  
  2366.  
  2367. loc_8A71:                               ; CODE XREF: sub_8C20-1A4
  2368.                 ld      a, (de)
  2369.                 ld      (hl), a
  2370.                 inc     hl
  2371.                 inc     de
  2372.                 ld      a, (de)
  2373.                 ld      (hl), a
  2374.                 inc     de
  2375.                 ld      a, l
  2376.                 add     a, 7
  2377.                 ld      l, a
  2378.                 djnz    loc_8A71
  2379.  
  2380.                 ld      hl, word_D100
  2381.                 ld      de, BRD_88_0
  2382.  
  2383.  
  2384. loc_8A84:                               ; CODE XREF: sub_8C20-18E
  2385.                 ld      a, (hl)
  2386.                 or      a
  2387.                 jp      m, loc_8A8E
  2388.  
  2389.                 ld      e, a
  2390.                 ld      a, l
  2391.                 or      4
  2392.                 ld      (de), a
  2393.  
  2394.  
  2395. loc_8A8E:                               ; CODE XREF: sub_8C20-19A
  2396.                 ld      a, l
  2397.                 add     a, 8
  2398.                 ld      l, a
  2399.                 jr      nc, loc_8A84
  2400.  
  2401.                 ld      hl, stk_1bvalue
  2402.                 ld      (ptr_stk_1bvalue), hl
  2403.                 jp      loc_80CE
  2404.  
  2405. ; ---------------------------------------------------------------------------
  2406.  
  2407. loc_8A9D:                               ; CODE XREF: sub_8C20-80F
  2408. ;'F' - forward
  2409.                 call    UnDrawMoveAndCursors
  2410.  
  2411.                 ld      a, (needdrawcursorfrom)
  2412.                 or      a
  2413.                 call    p, UnDrawCursor
  2414.  
  2415.                 ld      a, (timeformove)
  2416.                 ld      c, a
  2417.                 ld      b, 0
  2418.                 ld      hl, (word_D088)
  2419.                 add     hl, bc
  2420.                 ld      (word_D088), hl ; add byte D0F4 to word D088
  2421.                 ld      hl, (ptr_stk_1bvalue)
  2422.                 ld      a, (hl)
  2423.                 inc     a
  2424.                 jp      z, loc_8A07     ; check gor end mark on stack
  2425.  
  2426.                 ld      hl, (word_D0F7)
  2427.                 inc     hl
  2428.                 ld      (word_D09F), hl
  2429.                 call    BEEP_move
  2430.  
  2431.                 jp      loc_810A
  2432.  
  2433. ; ---------------------------------------------------------------------------
  2434.  
  2435. loc_8AC9:                               ; CODE XREF: sub_8C20-119
  2436.                 ld      hl, 0
  2437.                 ld      (word_D09F), hl
  2438.                 ld      a, (byte_D02D)
  2439.                 and     1
  2440.                 ld      (byte_D0B2), a
  2441.                 ld      hl, (ptr_stk_1bvalue)
  2442.                 dec     hl
  2443.                 ld      (ptr_stk_1bvalue), hl
  2444.                 ld      hl, (word_D0F7)
  2445.                 dec     hl
  2446.                 ld      (word_D0F7), hl
  2447.                 jp      loc_82EB
  2448.  
  2449. ; ---------------------------------------------------------------------------
  2450.  
  2451. loc_8AE8:                               ; CODE XREF: sub_8C20-AFF
  2452.                 ld      sp, RAM_END_D800
  2453.                 ld      de, (word_D0F7)
  2454.                 or      a
  2455.                 sbc     hl, de
  2456.                 jp      z, loc_8B58
  2457.  
  2458.                 inc     de
  2459.                 ld      (word_D0F7), de
  2460.                 ld      hl, (ptr_stk_1bvalue)
  2461.                 ld      c, (hl)
  2462.                 ld      b, 0
  2463.                 inc     hl
  2464.                 ld      (ptr_stk_1bvalue), hl
  2465.                 ld      a, c
  2466.                 cp      #FF
  2467.                 jr      z, loc_8AC9     ; if end mark
  2468.  
  2469.                 res     7, c
  2470.                 ld      hl, tbl_D803    ; index into 3byte structs array
  2471.                 add     hl, bc
  2472.                 add     hl, bc
  2473.                 add     hl, bc
  2474.                 push    af
  2475.                 push    hl
  2476.                 ld      ix, word_D059
  2477.                 call    sub_A903
  2478.  
  2479.                 pop     ix
  2480.                 pop     af
  2481.                 rla
  2482.                 jr      nc, loc_8B24
  2483.  
  2484.                 set     7, (ix+2)
  2485.  
  2486.  
  2487. loc_8B24:                               ; CODE XREF: sub_8C20-102
  2488.                 ld      a, (ix+0)
  2489.                 call    sub_9FF5
  2490.  
  2491.                 ld      (byte_D0C2), a
  2492.                 ld      a, (ix+1)
  2493.                 call    sub_9FF5
  2494.  
  2495.                 ld      (byte_D0C3), a
  2496.                 call    sub_A906
  2497.  
  2498.                 pop     af
  2499.                 push    af
  2500.                 jp      po, loc_8253
  2501.  
  2502.                 ld      hl, (ptr_stk_1bvalue)
  2503.                 ld      b, (hl)
  2504.                 inc     hl
  2505.                 ld      (ptr_stk_1bvalue), hl
  2506.                 ld      l, (ix+1)
  2507.                 ld      h, BRD_88_0/256
  2508.                 ld      l, (hl)
  2509.                 res     2, l
  2510.                 inc     l
  2511.                 inc     h               ; word_D100/256
  2512.                 ld      (hl), b
  2513.                 xor     a
  2514.                 ld      (byte_D00A), a
  2515.                 jp      loc_8283
  2516.  
  2517. ; ---------------------------------------------------------------------------
  2518.  
  2519. loc_8B58:                               ; CODE XREF: sub_8C20-12E
  2520.                 ld      (word_D09F), hl
  2521.                 ld      a, (byte_D02D)
  2522.                 and     1
  2523.                 ld      (byte_D0B2), a
  2524.                 jp      loc_8104
  2525.  
  2526. ; END OF FUNCTION CHUNK FOR sub_8C20
  2527.  
  2528. ; =============== S U B R O U T I N E =======================================
  2529.  
  2530.  
  2531. sub_8B66:                               ; CODE XREF: sub_8C20-99A
  2532.                 ld      hl, (word_D059)
  2533.                 ld      (word_D05C), hl
  2534.                 ld      a, (byte_D05B)
  2535.                 ld      (byte_D05E), a
  2536.                 ld      l, (ix+0)
  2537.                 ld      h, (ix+1)
  2538.                 ld      a, (ix+2)
  2539.                 ld      (word_D059), hl
  2540.                 ld      (byte_D05B), a
  2541.                 ld      hl, unk_D22B
  2542.                 ld      de, unk_D229
  2543.                 ld      bc, #19         ; 25
  2544.                 ldir
  2545.                 ret
  2546.  
  2547. ; End of function sub_8B66
  2548.  
  2549. ; ---------------------------------------------------------------------------
  2550. ; START OF FUNCTION CHUNK FOR sub_8C20
  2551.  
  2552. loc_8B8D:                               ; CODE XREF: sub_8C20-A54
  2553.                                         ; sub_8C20-91A
  2554.                 ld      hl, aCheckmate  ; "CHECKMAT"
  2555.                 ld      a, (byte_D05B)
  2556.                 rla
  2557.                 jr      c, loc_8B9E ;конец игры
  2558.  
  2559.                 ld      hl, aStalemate  ; "STALEMAT"
  2560.                 jr      loc_8B9E ;конец игры
  2561.  
  2562. ; ---------------------------------------------------------------------------
  2563.  
  2564. loc_8B9B:                               ; CODE XREF: sub_8C20-B0C
  2565.                                         ; sub_8C20-AD9
  2566.                 ld      hl, aDraw       ; "DRA"
  2567.  
  2568. loc_8B9E:                               ; CODE XREF: sub_8C20-8C sub_8C20-87
  2569. ;конец игры
  2570. ;hl=msg
  2571.                 ld      a, (byte_D0B4)
  2572.                 bit     5, a
  2573.                 jp      nz, loc_8520 ;invisible board?
  2574.  
  2575.                 xor     a
  2576.                 ld      (byte_D0BF), a
  2577.         push hl
  2578.                 call    sub_A43C
  2579.  
  2580.                 call    sub_A45A
  2581.  
  2582.                 call    sub_A43C
  2583.  
  2584.         pop hl ;msg
  2585.                 call    PrintStrF00
  2586.  
  2587.                 ld      hl, aBBackSSetPosn_ ; "B - Back          S - Set posn. G - new"...
  2588.                 ld      de, #1000
  2589.                 call    PrintGameState
  2590.  
  2591.                 call    sub_9939
  2592.  
  2593.                 ld      a, (byte_D02D)
  2594.                 ld      hl, word_D100
  2595.                 rra
  2596.                 jr      nc, loc_8BCF
  2597.                 ld      l, #80
  2598. loc_8BCF:                               ; CODE XREF: sub_8C20-55
  2599.                 ld      b, #30
  2600.                 ld      d, 0
  2601.                 ld      l, (hl)
  2602.                 dec     h               ; BRD_88_0/256
  2603.                 ld      e, (hl)
  2604.                 ld      c, e
  2605.                 or      a
  2606. loc_8BD8:                               ; CODE XREF: sub_8C20-8 sub_8C20-5
  2607.                 ld      a, e
  2608.                 ld      e, d
  2609.                 ld      d, a
  2610.                 ld      (hl), e
  2611.                 push    bc
  2612.                 push    hl
  2613.                 push    de
  2614.                 call    c, BEEP_move
  2615.  
  2616.                 call    sub_93A4
  2617.  
  2618.                 ld      hl, byte_D0DF
  2619.                 ld      (hl), 8
  2620.                 ld      a, #A
  2621.                 call    sub_8C34
  2622.  
  2623.                 pop     de
  2624.                 pop     hl
  2625.                 pop     bc
  2626.                 ld      (hl), c
  2627.                 jr      z, loc_8C13
  2628.  
  2629.                 cp      #53 ; 'S'
  2630.                 jr      nz, loc_8BFF
  2631.  
  2632.                 call    sub_93A4
  2633.  
  2634.                 jp      loc_8595
  2635.  
  2636. ; ---------------------------------------------------------------------------
  2637.  
  2638. loc_8BFF:                               ; CODE XREF: sub_8C20-29
  2639.                 cp      #42 ; 'B'
  2640.                 jr      nz, loc_8C12
  2641.  
  2642.                 push    hl
  2643.                 ld      hl, byte_D0B4
  2644.                 res     1, (hl)
  2645.                 ld      hl, (word_D0F7)
  2646.                 ld      a, l
  2647.                 or      h
  2648.                 pop     hl
  2649.                 jp      nz, loc_8A32
  2650.  
  2651. loc_8C12:                               ; CODE XREF: sub_8C20-1F
  2652.                 scf
  2653.  
  2654. loc_8C13:                               ; CODE XREF: sub_8C20-2D
  2655.                 ld      a, (byte_D0B4)
  2656.                 bit     1, a
  2657.                 jp      z, loc_8BD8
  2658.  
  2659.                 djnz    loc_8BD8
  2660.  
  2661.                 jp      NEW_GAME
  2662.  
  2663. ; END OF FUNCTION CHUNK FOR sub_8C20
  2664.  
  2665. ; =============== S U B R O U T I N E =======================================
  2666.  
  2667.  
  2668. sub_8C20:                               ; CODE XREF: sub_8C20-562
  2669.                                         ; sub_881D+2D   ...
  2670.  
  2671. ; FUNCTION CHUNK AT 80A1 SIZE 0000038B BYTES
  2672. ; FUNCTION CHUNK AT 8443 SIZE 00000003 BYTES
  2673. ; FUNCTION CHUNK AT 845D SIZE 000002FE BYTES
  2674. ; FUNCTION CHUNK AT 8A07 SIZE 0000015F BYTES
  2675. ; FUNCTION CHUNK AT 8B8D SIZE 00000093 BYTES
  2676. ; FUNCTION CHUNK AT 8CD5 SIZE 00000022 BYTES
  2677. ; FUNCTION CHUNK AT A29F SIZE 00000112 BYTES
  2678. ; FUNCTION CHUNK AT A4F4 SIZE 00000035 BYTES
  2679. ; FUNCTION CHUNK AT A596 SIZE 000000EE BYTES
  2680.  
  2681.                 pop     hl
  2682.                 ld      hl, aIllegalSetup ; "ILLEGAL SETU"
  2683.                 call    PrintStrF00
  2684.  
  2685.                 call    BEEP_3
  2686.  
  2687.                 jp      loc_85FD
  2688.  
  2689. ; End of function sub_8C20
  2690.  
  2691.  
  2692. ; =============== S U B R O U T I N E =======================================
  2693.  
  2694.  
  2695. sub_8C2D:                               ; CODE XREF: sub_8C20-AE4
  2696.                                         ; sub_8C20:loc_845D ...
  2697.                 ld      hl, a_32spaces  ; "                        "
  2698.                 call    PrintStrF00
  2699.  
  2700.                 ret
  2701.  
  2702. ; End of function sub_8C2D
  2703.  
  2704.  
  2705. ; =============== S U B R O U T I N E =======================================
  2706.  
  2707.  
  2708. sub_8C34:                               ; CODE XREF: sub_8C20-34 ShowHintMove+3D ...
  2709.                 xor     a
  2710.                 ld      (keycodeformenu), a
  2711.  
  2712. loc_8C38:
  2713.                 ld      a, #A
  2714.  
  2715.  
  2716. loc_8C3A:                               ; CODE XREF: sub_8C34+8
  2717.                 halt
  2718.                 dec     a
  2719.                 jr      nz, loc_8C3A
  2720.  
  2721.                 call    sub_8F4D
  2722.  
  2723.                 ld      a, (keycodeformenu)
  2724.                 push    af
  2725.                 xor     a
  2726.                 ld      (keycodeformenu), a
  2727.                 pop     af
  2728.                 or      a
  2729.                 ret
  2730.  
  2731. ; End of function sub_8C34
  2732.  
  2733. ; ---------------------------------------------------------------------------
  2734.         if !FIX
  2735.                 ld      c, #A
  2736. loc_8C4E:                               ; CODE XREF: RAM:8C56
  2737.                 ld      a, #25 ; '%'
  2738. loc_8C50:                               ; CODE XREF: RAM:loc_8C50 RAM:8C53
  2739.                 djnz    $
  2740.                 dec     a
  2741.                 jr      nz, loc_8C50
  2742.                 dec     c
  2743.                 jr      nz, loc_8C4E
  2744.                 ret
  2745.  
  2746. ; ---------------------------------------------------------------------------
  2747.                 ld      a, (byte_D0B3) ;d3=swap board
  2748.                 bit     4, a
  2749.                 ret     z
  2750.                 bit     6, a
  2751.                 ret     nz
  2752.                 ld      hl, byte_D0B4
  2753.                 bit     5, (hl)
  2754.                 ret     nz
  2755.                 ld      hl, (tbl_D803)
  2756.         endif
  2757.  
  2758. ; =============== S U B R O U T I N E =======================================
  2759.  
  2760.  
  2761. ShowHintMove:                           ; CODE XREF: sub_8C20-840
  2762. ;l=from, h=to?                                  ; sub_8FC1+37
  2763.                 ld      a, l
  2764.                 or      h
  2765.                 ret     z
  2766.                 ld      a, l
  2767.                 call    sub_8CC1 ;a = 0yyy0xxx -> 00yyyxxx с учётом swap board
  2768.                 ld      c, a
  2769.                 ld      a, h
  2770.                 call    sub_8CC1 ;a = 0yyy0xxx -> 00yyyxxx с учётом swap board
  2771.                 ld      b, 0
  2772.                 ld      hl, BOARD
  2773.                 add     hl, bc
  2774.                 ld      e, (hl)
  2775.                 ld      b, a ;00yyyxxx
  2776.                 ld      hl, BOARD
  2777.                 add     a, l
  2778.                 ld      l, a
  2779.                 ld      a, 0
  2780.                 adc     a, h
  2781.                 ld      h, a
  2782.                 ld      d, (hl)
  2783.                 ld      hl, byte_D0B3 ;d3=swap board
  2784.                 bit     3, (hl)
  2785.                 jr      z, loc_8C98
  2786.                 ld      a, b
  2787.                 xor     #3F
  2788.                 ld      b, a
  2789.                 ld      a, c
  2790.                 xor     #3F
  2791.                 ld      c, a
  2792. loc_8C98:                               ; CODE XREF: ShowHintMove+23
  2793.                 push    de ;e=from fig, d=to fig?
  2794.                  push   bc ;c=from pos, b=to pos?
  2795.                 ld      c, e
  2796.                 ld      a, b
  2797.                 call    SHOW_FIG_POS ;show to
  2798.                  pop    bc
  2799.                  push   bc
  2800.                 ld      a, c
  2801.                 call    SH_EMPT_POS ;show from
  2802.  
  2803.                 call    BEEP_move
  2804.  
  2805.                 call    sub_8C34
  2806.                 call    sub_8C34
  2807.  
  2808.                  pop    bc
  2809.                 pop     de
  2810.                 push    de ;e=from fig, d=to fig?
  2811.                  push   bc ;c=from pos, b=to pos?
  2812.                 ld      a, c
  2813.                 ld      c, e
  2814.                 call    SHOW_FIG_POS ;show old from
  2815.                  pop    bc
  2816.                 pop     de
  2817.                 ld      a, b
  2818.                 ld      c, d
  2819.                 call    SHOW_FIG_POS ;show old to
  2820.  
  2821.                 or      1
  2822.                 ret
  2823.  
  2824. ; End of function ShowHintMove
  2825.  
  2826.  
  2827. ; =============== S U B R O U T I N E =======================================
  2828.  
  2829.  
  2830. sub_8CC1:                               ; CODE XREF: ShowHintMove+4 ShowHintMove+9
  2831. ;a = 0yyy0xxx -> 00yyyxxx с учётом swap board
  2832.                 push    af
  2833.                 and     7
  2834.                 ld      b, a
  2835.                 pop     af
  2836.                 rra
  2837.                 and     #38
  2838.                 add     a, b
  2839.                 push    hl
  2840.                 ld      hl, byte_D0B3 ;d3=swap board
  2841.                 bit     3, (hl)
  2842.                 pop     hl
  2843.                 ret     z
  2844.                 xor     #3F
  2845.                 ret
  2846.  
  2847. ; End of function sub_8CC1
  2848.  
  2849. ; ---------------------------------------------------------------------------
  2850. ; START OF FUNCTION CHUNK FOR sub_8C20
  2851.  
  2852. loc_8CD5:                               ; CODE XREF: sub_8C20-819
  2853. ;'D' - demo
  2854.                 ld      hl, byte_D0B4
  2855.                 set     1, (hl)
  2856.  
  2857. loc_8CDA:                               ; CODE XREF: sub_8C20-81E
  2858. ;'M' - move
  2859.                 call    BEEP_move
  2860.  
  2861.                 ld      a, (needdrawcursorfrom)
  2862.                 or      a
  2863.                 call    p, UnDrawCursor
  2864.  
  2865.                 ld      hl, byte_D0B4
  2866.                 res     0, (hl)
  2867.  
  2868.  
  2869. loc_8CE9:                               ; CODE XREF: sub_8C20-AA1
  2870.                                         ; sub_8C20-92A
  2871.                 ld      hl, byte_D0B2
  2872.                 ld      a, (hl)
  2873.                 or      a
  2874.                 ld      a, #16
  2875.                 jr      z, loc_8CF3
  2876.  
  2877.                 xor     a
  2878.  
  2879.  
  2880. loc_8CF3:                               ; CODE XREF: sub_8C20+D0
  2881.                 ld      (hl), a
  2882.                 jp      loc_810A
  2883.  
  2884. ; END OF FUNCTION CHUNK FOR sub_8C20
  2885.  
  2886. ; =============== S U B R O U T I N E =======================================
  2887.  
  2888.  
  2889. sub_8CF7:                               ; CODE XREF: sub_8C20-4D8
  2890. ;поиск класса фигуры по номеру, коду, имени                                     ; sub_87EA+1D   ...
  2891.                 ld      b, 6
  2892.  
  2893.  
  2894. loc_8CF9:                               ; CODE XREF: sub_8CF7+8
  2895.                 cp      (hl)
  2896.                 ret     z
  2897.                 inc     hl
  2898.                 inc     hl
  2899.                 inc     hl
  2900.                 inc     hl
  2901.                 djnz    loc_8CF9
  2902.  
  2903.                 scf
  2904.                 ret
  2905.  
  2906. ; End of function sub_8CF7
  2907.  
  2908. ; ---------------------------------------------------------------------------
  2909.                 db    0    ;цена K              ; DATA XREF: sub_87EA+1A sub_9FF5+20
  2910. KING:           db  'K'    ;имя K                         ; DATA XREF: sub_8C20:loc_8745
  2911.                 db    6    ;номер K             ; DATA XREF: sub_94C9:loc_94FF
  2912.                 db    0    ;код K
  2913.                 db    9    ;цена Q
  2914.                 db  'Q'    ;имя Q
  2915.                 db    5    ;номер Q
  2916.                 db    8    ;код Q
  2917.                 db    5    ;цена R
  2918.                 db  'R'    ;имя R
  2919.                 db    4    ;номер R
  2920.                 db  #10    ;код R
  2921.                 db  #83    ;цена B
  2922.                 db  'B'    ;имя B
  2923.                 db    3    ;номер B
  2924.                 db  #20    ;код B
  2925.                 db    3    ;цена N
  2926.                 db  'N'    ;имя N
  2927.                 db    2    ;номер N
  2928.                 db  #30    ;код N
  2929.                 db    1    ;цена P
  2930.                 db  'P'    ;имя P
  2931.                 db    1    ;номер P
  2932.                 db  #40    ;код P
  2933.  
  2934. ; =============== S U B R O U T I N E =======================================
  2935.  
  2936. ChangeLevel_ifL:                                ; CODE XREF: sub_8C20:loc_83D1
  2937.                                         ; sub_8C20:loc_863F
  2938.                 cp      'L'
  2939.                 scf
  2940.                 ret     nz
  2941.                 ld      a, (curlevel)
  2942. loc_8D22:                               ; CODE XREF: ChangeLevel_ifL+8 ChangeLevel_ifL+C
  2943.                 inc     a
  2944.                 jr      z, loc_8D22
  2945.                 cp      #D
  2946.                 jr      nc, loc_8D22
  2947.                 ld      (curlevel), a
  2948. ; End of function ChangeLevel_ifL
  2949. ; =============== S U B R O U T I N E =======================================
  2950. PrintCurLevel:                          ; CODE XREF: sub_9EE6+23
  2951.                 ld      a, (curlevel)
  2952.                 push    af
  2953.                 or      a
  2954.                 call    sub_A915
  2955.  
  2956.                 ld      a, #FF
  2957.                 ld      (NEED_SCR2BUF), a
  2958.                 pop     af
  2959.                 ld      de, #41B
  2960.                 ld      (scr_XY), de
  2961.                 cp      #A
  2962.                 jr      nc, loc_8D56
  2963.  
  2964.                 push    af
  2965.                 ld      a, ' '
  2966.                 call    PRINT_LETTER
  2967.                 pop     af
  2968.                 add     a, '0'
  2969.                 call    PRINT_LETTER
  2970.  
  2971.                 ld      hl,  a_8spaces+5
  2972.                 jr      loc_8D65
  2973. ; ---------------------------------------------------------------------------
  2974. loc_8D56:                               ; CODE XREF: PrintCurLevel+17
  2975.                 ld      hl, a_ADAP      ; "ADA"
  2976.                 jr      z, loc_8D65
  2977.                 ld      hl, a_INF       ; "INF"
  2978.                 cp      #B
  2979.                 jr      z, loc_8D65
  2980.                 ld      hl, aProb       ; "PRO"
  2981. loc_8D65:                               ; CODE XREF: PrintCurLevel+28 PrintCurLevel+2D ...
  2982.                 call    PRINT_STR_FF
  2983.                 xor     a
  2984.                 ret
  2985.  
  2986. ; End of function PrintCurLevel
  2987.  
  2988.  
  2989. ; =============== S U B R O U T I N E =======================================
  2990.  
  2991.  
  2992. sub_8D6A:                               ; CODE XREF: sub_8C20-706
  2993.                                         ; sub_8DE9+68
  2994.                 ld      a, (timeformove)
  2995.                 ld      c, a
  2996.                 ld      b, 0
  2997.                 ld      h, b
  2998.                 ld      l, c
  2999.                 add     hl, hl
  3000.                 add     hl, hl ;*4
  3001.                 add     hl, bc
  3002.                 add     hl, bc
  3003.                 add     hl, bc ;*7
  3004.                 ld      bc, (INC_SECONDS)
  3005.                 dec     bc
  3006.                 dec     bc
  3007.                 bit     7, b
  3008.                 jr      z, loc_8D84
  3009.                 ld      bc, 0
  3010. loc_8D84:                               ; CODE XREF: sub_8D6A+15
  3011.                 add     hl, bc
  3012.                 ld      b, 3
  3013. loc_8D87:                               ; CODE XREF: sub_8D6A+21
  3014.                 srl     h
  3015.                 rr      l
  3016.                 djnz    loc_8D87 ;*7/8
  3017.  
  3018.                 ld      a, h
  3019.                 or      a
  3020.                 jr      z, loc_8D93
  3021.                 ld      l, #FE
  3022. loc_8D93:                               ; CODE XREF: sub_8D6A+25
  3023.                 ld      a, l
  3024.                 cp      2
  3025.                 jr      nc, loc_8D9A
  3026.                 ld      a, 2
  3027. loc_8D9A:                               ; CODE XREF: sub_8D6A+2C
  3028.                 ld      (timeformove), a
  3029.                 ret
  3030.  
  3031. ; End of function sub_8D6A
  3032.  
  3033.  
  3034. ; =============== S U B R O U T I N E =======================================
  3035.  
  3036.  
  3037. sub_8D9E:                               ; CODE XREF: sub_8C20-989
  3038.                                         ; sub_9128+10E ...
  3039.                 push    ix
  3040.                 push    hl
  3041.                 push    de
  3042.                 push    bc
  3043.                 ld      hl, byte_D0B4
  3044.                 bit     5, (hl)
  3045.                 jr      z, loc_8DB0 ;visible board?
  3046.  
  3047.                 call    BEEP_move
  3048.  
  3049.                 call    sub_8C2D
  3050.  
  3051. loc_8DB0:                               ; CODE XREF: sub_8D9E+A
  3052.                 ld      a, (SEL_SCRorBUF)
  3053.                 or      a
  3054.                 jr      z, loc_8DBC
  3055.  
  3056.                 call    ShowBOARD2
  3057.  
  3058.                 jp      loc_8E2C
  3059.  
  3060. ; ---------------------------------------------------------------------------
  3061.  
  3062. loc_8DBC:                               ; CODE XREF: sub_8D9E+16
  3063.                 ld      a, (byte_D0C4) ;a=0b0YYY0XXX
  3064.                 call    sub_96F7 ;count scr_XY, scr_pix_addr, scr_attr_addr with swap board
  3065.  
  3066.                 ld      hl, (scr_XY)
  3067.                 ld      (word_D0C6), hl
  3068.                 ld      a, (byte_D0C5) ;a=0b0YYY0XXX
  3069.                 call    sub_96F7 ;count scr_XY, scr_pix_addr, scr_attr_addr with swap board
  3070.  
  3071.                 ld      hl, (scr_XY)
  3072.                 ld      (word_D0C8), hl
  3073.                 ld      bc, (word_D0C6)
  3074.                 call    sub_8EFB ;write bc=scr_XY, scr_pix_addr, scr_attr_addr to TAPE_header+...
  3075.  
  3076.                 call    sub_8E81
  3077.  
  3078.                 ld      hl, byte_D0DF
  3079.                 set     0, (hl)
  3080.                 xor     a
  3081.                 ld      (DECREMENT_50HZ), a
  3082.                 jr      loc_8DF3
  3083.  
  3084. ; End of function sub_8D9E
  3085.  
  3086.  
  3087. ; =============== S U B R O U T I N E =======================================
  3088.  
  3089.  
  3090. sub_8DE9:                               ; CODE XREF: sub_8F4D:loc_8FBC
  3091.                 ld      a, (DECREMENT_50HZ)
  3092.                 or      a
  3093.                 ret     p
  3094.                 push    ix
  3095.                 push    hl
  3096.                 push    de
  3097.                 push    bc
  3098.  
  3099.  
  3100. loc_8DF3:                               ; CODE XREF: sub_8D9E+49
  3101.                 call    sub_8EA7
  3102.  
  3103.                 ld      hl, (word_D0C6)
  3104.                 ld      de, (word_D0C8)
  3105.                 ld      a, h
  3106.                 cp      d
  3107.                 jr      z, loc_8E06
  3108.  
  3109.                 inc     h
  3110.                 jr      c, loc_8E06
  3111.  
  3112.                 dec     h
  3113.                 dec     h
  3114.  
  3115.  
  3116. loc_8E06:                               ; CODE XREF: sub_8DE9+16 sub_8DE9+19
  3117.                 ld      a, l
  3118.                 cp      e
  3119.                 jr      z, loc_8E0F
  3120.  
  3121.                 inc     l
  3122.                 jr      c, loc_8E0F
  3123.  
  3124.                 dec     l
  3125.                 dec     l
  3126.  
  3127.  
  3128. loc_8E0F:                               ; CODE XREF: sub_8DE9+1F sub_8DE9+22
  3129.                 ld      (word_D0C6), hl
  3130.                 or      a
  3131.                 sbc     hl, de
  3132.                 push    af
  3133.                 ld      bc, (word_D0C6)
  3134.                 call    sub_8EFB ;write bc=scr_XY, scr_pix_addr, scr_attr_addr to TAPE_header+...
  3135.  
  3136.                 call    sub_8EA3
  3137.  
  3138.                 pop     af
  3139.                 jr      z, loc_8E2C
  3140.  
  3141.                 ld      hl, DECREMENT_50HZ
  3142.                 ld      a, (hl)
  3143.                 add     a, 8            ; figure move speed
  3144.                 ld      (hl), a
  3145.                 jr      loc_8E7B
  3146.  
  3147. ; ---------------------------------------------------------------------------
  3148.  
  3149. loc_8E2C:                               ; CODE XREF: sub_8D9E+1B sub_8DE9+38
  3150.                 ld      hl, byte_D0B4
  3151.                 bit     5, (hl)
  3152.                 jr      z, loc_8E73 ;visible board?
  3153.  
  3154.                 call    sub_A6E4
  3155.  
  3156.                 call    sub_9FB2 ;добавление хода на экране со скроллом?
  3157.  
  3158.                 ld      a, (byte_D0B6)
  3159.                 bit     2, a
  3160.                 call    nz, sub_A684
  3161.  
  3162.                 ld      hl, BOARD2
  3163.                 ld      de, BOARD
  3164.                 ld      bc, #40
  3165.                 ldir
  3166.                 ld      a, (curlevel)
  3167.                 cp      #A
  3168.                 call    z, sub_8D6A
  3169.  
  3170.                 ld      hl, (INC_SECONDS)
  3171.                 ld      (word_D02B), hl
  3172.                 ld      hl, 0
  3173.                 ld      (INC_SECONDS), hl
  3174.                 call    ShowBOARD
  3175.  
  3176.                 ld      hl, byte_D0B3 ;d3=swap board
  3177.                 bit     5, (hl)
  3178.                 ld      hl, byte_D0B4
  3179.                 jr      z, loc_8E71
  3180.                 set     7, (hl)
  3181.                 res     1, (hl)
  3182.  
  3183. loc_8E71:                               ; CODE XREF: sub_8DE9+82
  3184.                 res     5, (hl) ;visible board?
  3185.  
  3186. loc_8E73:                               ; CODE XREF: sub_8DE9+48
  3187.                 ld      hl, byte_D0DF
  3188.                 res     0, (hl)
  3189.                 call    sub_9F0D ;show state and help
  3190.  
  3191. loc_8E7B:                               ; CODE XREF: sub_8DE9+41
  3192.                 pop     bc
  3193.                 pop     de
  3194.                 pop     hl
  3195.                 pop     ix
  3196.                 ret
  3197.  
  3198. ; End of function sub_8DE9
  3199.  
  3200.  
  3201. ; =============== S U B R O U T I N E =======================================
  3202.  
  3203.  
  3204. sub_8E81:                               ; CODE XREF: sub_8D9E+3D
  3205.                 ld      c, 3
  3206.                 ld      hl,  TAPE_header+2
  3207.  
  3208.  
  3209. loc_8E86:                               ; CODE XREF: sub_8E81+1A
  3210.                 ld      b, #18
  3211.                 xor     a
  3212.  
  3213.  
  3214. loc_8E89:                               ; CODE XREF: sub_8E81+A
  3215.                 ld      (hl), a
  3216.                 inc     hl
  3217.                 djnz    loc_8E89
  3218.  
  3219.                 ld      e, (hl)
  3220.                 inc     hl
  3221.                 ld      d, (hl)
  3222.                 inc     hl
  3223.                 ld      b, 3
  3224.                 ld      a, (de)
  3225.  
  3226.  
  3227. loc_8E94:                               ; CODE XREF: sub_8E81+15
  3228.                 ld      (hl), a
  3229.                 inc     hl
  3230.                 djnz    loc_8E94
  3231.  
  3232.                 inc     hl
  3233.                 inc     hl
  3234.                 dec     c
  3235.                 jr      nz, loc_8E86
  3236.  
  3237.                 and     7
  3238.                 ld      (byte_D0CB), a
  3239.                 ret
  3240.  
  3241. ; End of function sub_8E81
  3242.  
  3243.  
  3244. ; =============== S U B R O U T I N E =======================================
  3245.  
  3246.  
  3247. sub_8EA3:                               ; CODE XREF: sub_8DE9+34
  3248.                 ld      a, 1
  3249.                 jr      loc_8EA8
  3250.  
  3251. ; End of function sub_8EA3
  3252.  
  3253.  
  3254. ; =============== S U B R O U T I N E =======================================
  3255.  
  3256.  
  3257. sub_8EA7:                               ; CODE XREF: sub_8DE9:loc_8DF3
  3258.                 xor     a
  3259.  
  3260.  
  3261. loc_8EA8:                               ; CODE XREF: sub_8EA3+2
  3262.                 ld      (byte_D0CC), a
  3263.                 ld      b, 3
  3264.                 exx
  3265.                 ld      hl, TAPE_header
  3266.  
  3267.  
  3268. loc_8EB1:                               ; CODE XREF: sub_8EA7+3B sub_8EA7+51
  3269.                 ld      e, (hl)
  3270.                 inc     hl
  3271.                 ld      d, (hl)
  3272.                 inc     hl
  3273.                 ld      c, 8
  3274.  
  3275.  
  3276. loc_8EB7:                               ; CODE XREF: sub_8EA7+20
  3277.                 push    de
  3278.                 ld      b, 3
  3279.  
  3280.  
  3281. loc_8EBA:                               ; CODE XREF: sub_8EA7+1B
  3282.                 ld      a, (de)
  3283.                 ex      af, af' ;'
  3284.                 ld      a, (hl)
  3285.                 ld      (de), a
  3286.                 ex      af, af' ;'
  3287.                 ld      (hl), a
  3288.                 inc     de
  3289.                 inc     hl
  3290.                 djnz    loc_8EBA
  3291.  
  3292.                 pop     de
  3293.                 inc     d
  3294.                 dec     c
  3295.                 jr      nz, loc_8EB7
  3296.  
  3297.                 ld      e, (hl)
  3298.                 inc     hl
  3299.                 ld      d, (hl)
  3300.                 inc     hl
  3301.                 ld      a, (byte_D0CC)
  3302.                 or      a
  3303.                 jr      nz, loc_8EE5
  3304.  
  3305.                 ld      b, 3
  3306.  
  3307.  
  3308. loc_8ED5:                               ; CODE XREF: sub_8EA7+36
  3309.                 ld      a, (de)
  3310.                 ex      af, af' ;'
  3311.                 ld      a, (hl)
  3312.                 ld      (de), a
  3313.                 ex      af, af' ;'
  3314.                 ld      (hl), a
  3315.                 inc     hl
  3316.                 inc     de
  3317.                 djnz    loc_8ED5
  3318.  
  3319.                 exx
  3320.                 dec     b
  3321.                 exx
  3322.                 jr      nz, loc_8EB1
  3323.  
  3324.                 ret
  3325.  
  3326. ; ---------------------------------------------------------------------------
  3327.  
  3328. loc_8EE5:                               ; CODE XREF: sub_8EA7+2A
  3329.                 ld      a, (byte_D0CB)
  3330.                 ld      c, a
  3331.                 ld      b, 3
  3332.  
  3333.  
  3334. loc_8EEB:                               ; CODE XREF: sub_8EA7+4C
  3335.                 ld      a, (de)
  3336.                 ld      (hl), a
  3337.                 and     #F8 ; 'ш'
  3338.                 or      c
  3339.                 ld      (de), a
  3340.                 inc     hl
  3341.                 inc     de
  3342.                 djnz    loc_8EEB
  3343.  
  3344.                 exx
  3345.                 dec     b
  3346.                 exx
  3347.                 jr      nz, loc_8EB1
  3348.  
  3349.                 ret
  3350.  
  3351. ; End of function sub_8EA7
  3352.  
  3353.  
  3354. ; =============== S U B R O U T I N E =======================================
  3355. ;write bc=scr_XY, scr_pix_addr, scr_attr_addr to TAPE_header+...
  3356.  
  3357. sub_8EFB:                               ; CODE XREF: sub_8D9E+3A sub_8DE9+31
  3358.                 ld      ix, TAPE_header
  3359.                 ld      (scr_XY), bc
  3360.                 call    CALC_SCR_ADDRS ;scr_XY to scr_pix_addr, scr_attr_addr
  3361.  
  3362.                 ld      hl, (scr_pix_addr)
  3363.                 ld      (ix+0), l
  3364.                 ld      (ix+1), h
  3365.                 ld      hl, (scr_attr_addr)
  3366.                 ld      (ix+#1A), l
  3367.                 ld      (ix+#1B), h
  3368.                 inc     b
  3369.                 ld      (scr_XY), bc
  3370.                 call    CALC_SCR_ADDRS ;scr_XY to scr_pix_addr, scr_attr_addr
  3371.  
  3372.                 ld      hl, (scr_pix_addr)
  3373.                 ld      (ix+#1F), l
  3374.                 ld      (ix+#20), h
  3375.                 ld      hl, (scr_attr_addr)
  3376.                 ld      (ix+#39), l
  3377.                 ld      (ix+#3A), h
  3378.                 inc     b
  3379.                 ld      (scr_XY), bc
  3380.                 call    CALC_SCR_ADDRS ;scr_XY to scr_pix_addr, scr_attr_addr
  3381.  
  3382.                 ld      hl, (scr_pix_addr)
  3383.                 ld      (ix+#3E), l
  3384.                 ld      (ix+#3F), h
  3385.                 ld      hl, (scr_attr_addr)
  3386.                 ld      (ix+#58), l
  3387.                 ld      (ix+#59), h
  3388.                 ret
  3389.  
  3390. ; End of function sub_8EFB
  3391.  
  3392.  
  3393. ; =============== S U B R O U T I N E =======================================
  3394.  
  3395.  
  3396. sub_8F4D:                               ; CODE XREF: sub_8C20-A6F
  3397.                                         ; sub_8C20:loc_829A ...
  3398.                 push    ix
  3399.                 push    iy
  3400.                 ld      hl, bas_5C78
  3401.                 ld      a, (hl)
  3402.                 cp      50
  3403.                 jr      c, loc_8F9B
  3404.                 sub     50
  3405.                 ld      (hl), a
  3406.  
  3407.                 ;1 second passed
  3408.                 ld      hl, (INC_SECONDS)
  3409.                 inc     hl
  3410.                 ld      (INC_SECONDS), hl
  3411.  
  3412.                 ld      a, (byte_D0B4)
  3413.                 bit     5, a
  3414.                 jr      nz, loc_8F94 ;invisible board?
  3415.  
  3416.                 bit     6, a
  3417.                 jr      z, loc_8F94
  3418.  
  3419.                 ld      a, (timeformove)
  3420.                 inc     a
  3421.                 jr      z, loc_8F94
  3422.  
  3423.                 push    bc
  3424.                 ld      a, (byte_D0F3)
  3425.                 ld      b, 0
  3426.                 add     a, a
  3427.                 rl      b
  3428.                 cp      l
  3429.                 jr      nz, loc_8F93
  3430.  
  3431.                 ld      a, b
  3432.                 cp      h
  3433.                 jr      nz, loc_8F93
  3434.  
  3435.                 ld      hl, byte_D0B4
  3436.                 set     7, (hl)
  3437.                 ld      hl, timenorm
  3438.                 dec     (hl)
  3439.                 ld      a, (hl)
  3440.                 and     #F0
  3441.                 jr      nz, loc_8F93
  3442.                 inc     (hl)
  3443. loc_8F93:                               ; CODE XREF: sub_8F4D+31 sub_8F4D+35 ...
  3444.                 pop     bc
  3445.  
  3446.  
  3447. loc_8F94:                               ; CODE XREF: sub_8F4D+1B sub_8F4D+1F ...
  3448.                 ld      a, (byte_D0DF)
  3449.                 rra
  3450.                 call    nc, sub_9018
  3451.  
  3452.  
  3453. loc_8F9B:                               ; CODE XREF: sub_8F4D+A
  3454.                 ld      a, (byte_D0DF)
  3455.                 rra
  3456.                 jr      c, loc_8FBC
  3457.  
  3458.                 call    KEY_SCAN
  3459.                 push    af
  3460.                 ld      hl, byte_D0DF
  3461.                 bit     5, (hl)
  3462.                 jr      z, loc_8FB2
  3463.  
  3464.                 pop     af
  3465.                 call    sub_924C
  3466.  
  3467.                 jr      loc_8FB6
  3468.  
  3469. ; ---------------------------------------------------------------------------
  3470.  
  3471. loc_8FB2:                               ; CODE XREF: sub_8F4D+5D
  3472.                 pop     af
  3473.                 call    c, sub_8FC1
  3474.  
  3475.  
  3476. loc_8FB6:                               ; CODE XREF: sub_8F4D+63 sub_8F4D+72
  3477.                 pop     iy
  3478.                 pop     ix
  3479.                 or      a
  3480.                 ret
  3481.  
  3482. ; ---------------------------------------------------------------------------
  3483.  
  3484. loc_8FBC:                               ; CODE XREF: sub_8F4D+52
  3485.                 call    sub_8DE9
  3486.  
  3487.                 jr      loc_8FB6
  3488.  
  3489. ; End of function sub_8F4D
  3490.  
  3491.  
  3492. ; =============== S U B R O U T I N E =======================================
  3493.  
  3494.  
  3495. sub_8FC1:                               ; CODE XREF: sub_8F4D+66
  3496.  
  3497. ; FUNCTION CHUNK AT 90E1 SIZE 00000007 BYTES
  3498.  
  3499.                 ld      hl, keycodeformenu
  3500.                 ld      a, (hl)
  3501.                 ld      (hl), 0
  3502.                 cp      ' '
  3503.                 jp      z, sub_95C5
  3504.  
  3505.                 cp      'G'
  3506.                 call    z, sub_92D7
  3507.  
  3508.                 ld      (hl), a
  3509.                 ld      hl, byte_D0B4
  3510.                 bit     6, (hl)
  3511.                 jr      z, loc_8FFC
  3512.  
  3513.                 ld      a, (keycodeformenu)
  3514.                 cp      'M'
  3515.                 ld      hl, byte_D0B4
  3516.                 jr      nz, loc_8FE7
  3517.  
  3518.                 set     7, (hl)
  3519.                 res     1, (hl)
  3520.  
  3521. loc_8FE7:                               ; CODE XREF: sub_8FC1+20
  3522.                 bit     5, (hl)
  3523.                 jp      nz, loc_90E1 ;invisible board?
  3524.  
  3525.                 ld      hl, keycodeformenu
  3526.                 ld      a, (hl)
  3527.                 ld      (hl), 0
  3528.                 cp      'H'
  3529.                 ret     nz
  3530.                 ld      hl, (tbl_D803)
  3531.                 call    ShowHintMove
  3532.                 ret
  3533.  
  3534. ; ---------------------------------------------------------------------------
  3535.  
  3536. loc_8FFC:                               ; CODE XREF: sub_8FC1+16
  3537.                 ld      hl, keycodeformenu
  3538.                 ld      a, (hl)
  3539.                 ld      hl, byte_D0DF
  3540.                 bit     3, (hl)
  3541.                 jr      z, loc_9008
  3542.                 ret
  3543. ; ---------------------------------------------------------------------------
  3544. loc_9008:                               ; CODE XREF: sub_8FC1+44
  3545.                 or      a
  3546.                 ret     nz
  3547.                 call    sub_9128 ;ввод имени поля?
  3548.                 ret
  3549.  
  3550. ; End of function sub_8FC1
  3551.  
  3552. ; ---------------------------------------------------------------------------
  3553. ; START OF FUNCTION CHUNK FOR HotKeys
  3554.  
  3555. HotKeys_keepkey_pop_ret:                                ; CODE XREF: HotKeys+A HotKeys+F ...
  3556.                 ld      (curkey_D0D9), a
  3557.                 ld      hl, byte_D0B4
  3558.                 set     7, (hl)
  3559.                 pop     af
  3560.                 ret
  3561.  
  3562. ; END OF FUNCTION CHUNK FOR HotKeys
  3563.  
  3564. ; =============== S U B R O U T I N E =======================================
  3565.  
  3566.  
  3567. sub_9018:                               ; CODE XREF: sub_8F4D+4B
  3568.                 ld      a, (byte_D04D)
  3569.                 rra
  3570.                 ret     c
  3571.                 ld      a, (byte_D0BF)
  3572.                 or      a
  3573.                 ret     p
  3574.                 push    iy
  3575.                 push    bc
  3576.                 push    de
  3577.                 ld      hl, (scr_XY)
  3578.                 push    hl
  3579.                 call    sub_A164
  3580.  
  3581.                 ld      de, CLK_1
  3582.                 ld      hl, #405
  3583.                 jr      c, loc_903A
  3584.  
  3585.                 ld      de, CLK_2
  3586.                 ld      l, #F
  3587.  
  3588.  
  3589. loc_903A:                               ; CODE XREF: sub_9018+1B
  3590.                 ld      (scr_XY), hl
  3591.                 push    de
  3592.                 ex      de, hl
  3593.                 ld      de, 7
  3594.                 add     hl, de
  3595.                 push    hl
  3596.                 res     7, (hl)
  3597.  
  3598.  
  3599. loc_9046:                               ; CODE XREF: sub_9018+41
  3600.                 inc     (hl)
  3601.                 ld      a, (hl)
  3602.                 cp      #3A ; ':'
  3603.                 jr      c, loc_905B
  3604.  
  3605.                 ld      (hl), #30 ; '0'
  3606.                 dec     hl
  3607.                 inc     (hl)
  3608.                 ld      a, (hl)
  3609.                 cp      #36 ; '6'
  3610.                 jr      c, loc_905B
  3611.  
  3612.                 ld      (hl), #30 ; '0'
  3613.                 dec     hl
  3614.                 dec     hl
  3615.                 jr      loc_9046
  3616.  
  3617. ; ---------------------------------------------------------------------------
  3618.  
  3619. loc_905B:                               ; CODE XREF: sub_9018+32 sub_9018+3B
  3620.                 pop     hl
  3621.                 set     7, (hl)
  3622.                 pop     hl
  3623.                 push    hl
  3624.                 call    PRINT_STR_FF
  3625.  
  3626.                 call    sub_A150
  3627.  
  3628.                 ld      hl, #1100
  3629.                 jr      c, loc_906D
  3630.  
  3631.                 ld      h, 9
  3632.  
  3633.  
  3634. loc_906D:                               ; CODE XREF: sub_9018+51
  3635.                 ld      (scr_XY), hl
  3636.                 pop     hl
  3637.                 inc     hl
  3638.                 call    PRINT_STR_scr0
  3639.  
  3640.                 pop     hl
  3641.                 ld      (scr_XY), hl
  3642.                 pop     de
  3643.                 pop     bc
  3644.                 pop     iy
  3645.                 ret
  3646.  
  3647. ; End of function sub_9018
  3648.  
  3649.  
  3650. ; =============== S U B R O U T I N E =======================================
  3651.  
  3652.  
  3653. sub_907E:                               ; CODE XREF: sub_8C20:loc_A2DA
  3654.                                         ; sub_8C20+175A ...
  3655.                 push    hl
  3656.                 ld      hl, bas_FLAGS
  3657.  
  3658.  
  3659. loc_9082:                               ; CODE XREF: sub_907E+E sub_907E+1F
  3660.                 ld      a, #7F
  3661.                 in      a, (#FE)
  3662.                 rra
  3663.                 ccf
  3664.                 jr      c, space_pressed
  3665.  
  3666.                 bit     bit_NEW_KEY, (hl)               ; keypressed bit
  3667.                 jr      z, loc_9082
  3668.  
  3669.                 res     bit_NEW_KEY, (hl)
  3670.                 ld      a, (bas_LAST_K)
  3671.                 cp      #C
  3672.                 jr      z, space_pressed
  3673.  
  3674.                 cp      #D
  3675.                 jr      z, space_pressed
  3676.  
  3677.                 cp      #21 ; '!'
  3678.                 jr      c, loc_9082
  3679.  
  3680.                 or      a
  3681.  
  3682.  
  3683. space_pressed:                          ; CODE XREF: sub_907E+A sub_907E+17     ...
  3684.                 push    af
  3685.                 call    BEEP_4
  3686.  
  3687.                 pop     af
  3688.                 pop     hl
  3689.                 ret
  3690.  
  3691. ; End of function sub_907E
  3692.  
  3693.  
  3694.  
  3695.  
  3696. KEY_SCAN:
  3697.                 xor     a                       ;CY=0
  3698.                 ld      hl, bas_FLAGS
  3699.                 bit     bit_NEW_KEY, (hl)
  3700.                 ret     z                       ;return with CY=0 if nothing pressed
  3701.                 res     bit_NEW_KEY, (hl)
  3702.                 ld      (keycode), a
  3703.                 ld      (keycodeformenu), a
  3704.                 ld      a, (bas_LAST_K)
  3705.                 cp      'I'
  3706.                 jr      nc, loc_90D6    ; >='I'
  3707.                 cp      'A'
  3708.                 jr      nc, loc_90D1    ; >='A'
  3709.                 cp      '9'
  3710.                 jr      nc, loc_90D6    ; >='9'
  3711.                 cp      '1'
  3712.                 jr      nc, loc_90D1    ; >='1'
  3713.                 cp      8
  3714.                 ccf
  3715.                 ret     nc      ;report scancodes 0..7 as non-keypresses
  3716.                 cp      #E
  3717.                 jr      nc, loc_90D6    ; >=#0E
  3718. loc_90D1:
  3719.                 ; when scancode copied here:
  3720.                 ;  'A'<=SCANCODE<='H'
  3721.                 ;  '1'<=SCANCODE<='8'
  3722.                 ;  8<=SCANCODE<#0E
  3723.                 ; 8-LEFT,9-RIGHT,10-DOWN,11-UP
  3724.                 ld      (keycode), a
  3725.                 scf                     ;CY=1 was keypress
  3726.                 ret
  3727. loc_90D6:
  3728.                 cp      'A'
  3729.                 jr      c, loc_90DC     ; <'A'
  3730.                 and     #5F             ;uppercase letters
  3731. loc_90DC:
  3732.                 ; when scancode copied here:
  3733.                 ;  SCANCODE>='I', 'a'..'z' are uppercased
  3734.                 ;  '9'<=SCANCODE<'A'
  3735.                 ;  #0E<=SCANCODE<'1'
  3736.                 ld      (keycodeformenu), a
  3737.                 scf                     ;CY=1 was keypress
  3738.                 ret
  3739.  
  3740. ; End of function KEY_SCAN
  3741.  
  3742. ; ---------------------------------------------------------------------------
  3743. ; START OF FUNCTION CHUNK FOR sub_8FC1
  3744.  
  3745. loc_90E1:                               ; CODE XREF: sub_8FC1+28
  3746.                 call    HotKeys
  3747.  
  3748.                 call    sub_9128 ;ввод имени поля?
  3749.  
  3750.                 ret
  3751.  
  3752. ; END OF FUNCTION CHUNK FOR sub_8FC1
  3753.  
  3754. ; =============== S U B R O U T I N E =======================================
  3755.  
  3756.  
  3757. HotKeys:                                ; CODE XREF: sub_8FC1:loc_90E1
  3758.  
  3759. ; FUNCTION CHUNK AT 900E SIZE 0000000A BYTES
  3760. ; FUNCTION CHUNK AT 92CB SIZE 0000000C BYTES
  3761. ; FUNCTION CHUNK AT 9326 SIZE 00000032 BYTES
  3762. ; FUNCTION CHUNK AT 935D SIZE 00000003 BYTES
  3763.  
  3764.                 ld      hl, keycodeformenu
  3765.                 ld      a, (hl)
  3766.                 or      a
  3767.                 ret     z
  3768.                 ld      (hl), 0
  3769.                 cp      #4D ; 'M'
  3770.                 jp      z, HotKeys_keepkey_pop_ret
  3771.  
  3772.                 cp      #42 ; 'B'
  3773.                 jp      z, HotKeys_keepkey_pop_ret
  3774.  
  3775.                 cp      #46 ; 'F'
  3776.                 jp      z, loc_92CB ;F=Forward
  3777.  
  3778.                 cp      #48 ; 'H'
  3779.                 jp      z, loc_9340
  3780.  
  3781.                 cp      #49 ; 'I'
  3782.                 jp      z, loc_9326
  3783.  
  3784.                 cp      #44 ; 'D'
  3785.                 jp      z, HotKeys_keepkey_pop_ret
  3786.  
  3787.                 cp      #41 ; 'A'
  3788.                 jp      z, HotKeys_keepkey_pop_ret
  3789.  
  3790.                 cp      #53 ; 'S'
  3791.                 jp      z, HotKeys_keepkey_pop_ret
  3792.  
  3793.                 cp      #4C ; 'L'
  3794.                 jp      z, loc_935D ;L=Level
  3795.  
  3796.                 cp      #43 ; 'C'
  3797.                 jp      z, HotKeys_keepkey_pop_ret
  3798.  
  3799.                 cp      #50 ; 'P'
  3800.                 jp      z, HotKeys_keepkey_pop_ret
  3801.  
  3802.                 ret
  3803.  
  3804. ; End of function HotKeys
  3805.  
  3806.  
  3807. ; =============== S U B R O U T I N E =======================================
  3808.  
  3809.  
  3810. sub_9128:                               ; CODE XREF: sub_8FC1+49
  3811. ;ввод имени поля?                                       ; sub_8FC1+123
  3812.  
  3813. ; FUNCTION CHUNK AT 9290 SIZE 00000010 BYTES
  3814.  
  3815.                 ld      hl, keycode
  3816.                 ld      a, (hl)
  3817.                 or      a
  3818.                 ret     z
  3819.                 ld      (hl), 0
  3820.                 ld      bc, (needdrawcursorfrom)
  3821.                 cp      #D
  3822.                 jp      z, loc_91CE
  3823.  
  3824.                 cp      #C
  3825.                 jp      z, loc_9290
  3826.  
  3827.                 jp      loc_9163 ;ввод символьного имени поля
  3828.  
  3829. ; ---------------------------------------------------------------------------
  3830.  
  3831. ReDrawMoveAndCursors:                           ; CODE XREF: sub_9128+50 sub_9128+70 ...
  3832.                 push    bc
  3833.                 ld      a, b
  3834.                 cp      #FF
  3835.                 call    nz, UnDrawCursor
  3836.  
  3837.                 pop     bc
  3838.                 ld      a, c
  3839.                 cp      #FF
  3840.                 call    nz, UnDrawCursor
  3841.  
  3842.                 ld      a, (needdrawcursor1)
  3843.                 cp      #FF
  3844.                 call    nz, DrawCursor
  3845.  
  3846.                 ld      a, (needdrawcursorfrom)
  3847.                 cp      #FF
  3848.                 call    nz, DrawCursorFrom
  3849.  
  3850.                 call    PrepareAndPrintMoveText
  3851.                 ret
  3852.  
  3853. ; ---------------------------------------------------------------------------
  3854.  
  3855. loc_9163:                               ; CODE XREF: sub_9128+16
  3856.                 cp      #41 ; 'A'
  3857.                 jr      c, loc_917B
  3858.  
  3859.                 cp      #49 ; 'H'+1
  3860.                 jr      nc, loc_917B
  3861.  
  3862.                 push    bc
  3863.                 sub     #41 ; 'A'
  3864.                 ld      b, a
  3865.                 ld      hl,  needdrawcursor1
  3866.                 ld      a, (hl)
  3867.                 and     #F0
  3868.                 or      b
  3869.                 ld      (hl), a
  3870.                 pop     bc
  3871.                 jp      ReDrawMoveAndCursors
  3872.  
  3873. ; ---------------------------------------------------------------------------
  3874.  
  3875. loc_917B:                               ; CODE XREF: sub_9128+3D sub_9128+41
  3876.                 cp      #31 ; '1'
  3877.                 jr      c, loc_919B
  3878.  
  3879.                 cp      #39 ; '9'
  3880.                 jr      nc, loc_919B
  3881.  
  3882.                 push    bc
  3883.                 sub     #31
  3884.                 neg
  3885.                 add     a, 7
  3886.                 rlca
  3887.                 rlca
  3888.                 rlca
  3889.                 rlca
  3890.                 ld      b, a
  3891.                 ld      hl,  needdrawcursor1
  3892.                 ld      a, (hl)
  3893.                 and     #F
  3894.                 or      b
  3895.                 ld      (hl), a
  3896.                 pop     bc
  3897.                 jp      ReDrawMoveAndCursors
  3898.  
  3899. ; ---------------------------------------------------------------------------
  3900.  
  3901. loc_919B:                               ; CODE XREF: sub_9128+55 sub_9128+59
  3902.                 push    bc
  3903.                 ld      hl, byte_D0B3 ;d3=swap board
  3904.                 bit     3, (hl)
  3905.                 jr      z, loc_91A5
  3906.                 xor     1
  3907. loc_91A5:                               ; CODE XREF: sub_9128+79
  3908.                 ld      b, a
  3909.                 xor     a
  3910.                 bit     1, b
  3911.                 jr      nz, loc_91B5
  3912.  
  3913.                 bit     0, b
  3914.                 jr      z, loc_91B2
  3915.  
  3916.                 inc     a
  3917.                 jr      loc_91BF
  3918.  
  3919. ; ---------------------------------------------------------------------------
  3920.  
  3921. loc_91B2:                               ; CODE XREF: sub_9128+85
  3922.                 dec     a
  3923.                 jr      loc_91BF
  3924.  
  3925. ; ---------------------------------------------------------------------------
  3926.  
  3927. loc_91B5:                               ; CODE XREF: sub_9128+81
  3928.                 bit     0, b
  3929.                 jr      nz, loc_91BD
  3930.  
  3931.                 add     a, #10
  3932.                 jr      loc_91BF
  3933.  
  3934. ; ---------------------------------------------------------------------------
  3935.  
  3936. loc_91BD:                               ; CODE XREF: sub_9128+8F
  3937.                 sub     #10
  3938. loc_91BF:                               ; CODE XREF: sub_9128+88 sub_9128+8B ...
  3939.                 ld      hl,  needdrawcursor1
  3940.                 add     a, (hl)
  3941.                 ld      b, a
  3942.                 and     #77
  3943.                 cp      b
  3944.                 jr      nz, loc_91CA
  3945.                 ld      (hl), a
  3946. loc_91CA:                               ; CODE XREF: sub_9128+9F
  3947.                 pop     bc
  3948.                 jp      ReDrawMoveAndCursors
  3949.  
  3950. ; ---------------------------------------------------------------------------
  3951.  
  3952. loc_91CE:                               ; CODE XREF: sub_9128+E
  3953.                 ld      a, (byte_D0DF)
  3954.                 bit     2, a
  3955.                 ret     nz
  3956.                 ld      a, c
  3957.                 cp      b
  3958.                 jr      nz, loc_91E0
  3959.  
  3960.                 ld      a, #FF
  3961.                 ld      (needdrawcursorfrom), a
  3962.                 jp      ReDrawMoveAndCursors
  3963. ; ---------------------------------------------------------------------------
  3964. loc_91E0:                               ; CODE XREF: sub_9128+AE
  3965.                 inc     a
  3966.                 jr      nz, loc_91F0
  3967.  
  3968.                 call    sub_92A0
  3969.                 jp      nz, ReDrawMoveAndCursors
  3970.                 ld      a, b
  3971.                 ld      (needdrawcursorfrom), a
  3972.                 jp      ReDrawMoveAndCursors
  3973. ; ---------------------------------------------------------------------------
  3974. loc_91F0:                               ; CODE XREF: sub_9128+B9
  3975.                 call    sub_92B6
  3976.  
  3977.                 jp      nz, ReDrawMoveAndCursors
  3978.  
  3979.                 push    bc
  3980.                 push    hl
  3981.                 ld      a, (needdrawcursorfrom)
  3982.                 ld      (byte_D0C4), a
  3983.                 ld      a, (needdrawcursor1)
  3984.                 ld      (byte_D0C5), a
  3985.                 call    UnDrawMoveAndCursors
  3986.  
  3987.                 pop     ix
  3988.                 ld      hl, byte_D0B4
  3989.                 bit     5, (hl)
  3990.                 jr      z, loc_922A ;visible board?
  3991.  
  3992.                 ld      d, (ix+0)
  3993.                 ld      e, (ix+1)
  3994.                 ld      hl, (word_D0DA)
  3995.                 or      a
  3996.                 sbc     hl, de
  3997.                 jr      z, loc_9231
  3998.  
  3999.                 pop     bc
  4000.  
  4001. loc_921F:                               ; CODE XREF: sub_924C+22
  4002.                 ld      hl, byte_D0B4
  4003.                 set     7, (hl)
  4004.                 ld      hl, byte_D0DF
  4005.                 set     4, (hl)
  4006.                 ret
  4007.  
  4008. ; ---------------------------------------------------------------------------
  4009.  
  4010. loc_922A:                               ; CODE XREF: sub_9128+E6
  4011.                 ld      hl, byte_D0DF
  4012.                 set     4, (hl)
  4013.                 pop     bc
  4014.                 ret
  4015.  
  4016. ; ---------------------------------------------------------------------------
  4017.  
  4018. loc_9231:                               ; CODE XREF: sub_9128+F4
  4019.                 pop     bc
  4020.                 ld      a, (byte_D0DC)
  4021.                 or      a
  4022.                 jp      z, sub_8D9E
  4023.  
  4024.                 ld      hl, byte_D0DF
  4025.                 ld      a, (hl)
  4026.                 or      #E0
  4027.                 ld      (hl), a
  4028.                 call    UnDrawMoveAndCursors
  4029.  
  4030.                 call    ShowBOARD2
  4031.  
  4032.                 ld      a, #14
  4033.                 ld      (DECREMENT_50HZ), a
  4034.                 ret
  4035.  
  4036. ; End of function sub_9128
  4037.  
  4038.  
  4039. ; =============== S U B R O U T I N E =======================================
  4040.  
  4041.  
  4042. sub_924C:                               ; CODE XREF: sub_8F4D+60
  4043.                 ld      hl, keycodeformenu
  4044.                 ld      a, (hl)
  4045.                 or      a
  4046.                 jr      z, loc_9279
  4047.  
  4048.                 ld      (hl), 0
  4049.                 cp      #20 ; ' '
  4050.                 jp      z, sub_95C5
  4051.  
  4052.                 ld      (byte_D0DC), a
  4053.                 ld      hl, byte_D0DF
  4054.                 bit     6, (hl)
  4055.                 res     6, (hl)
  4056.                 res     5, (hl)
  4057.                 call    nz, ShowBOARD
  4058.  
  4059.                 ld      a, (byte_D0DC)
  4060.                 cp      #51 ; 'Q'
  4061.                 jp      nz, loc_921F
  4062.  
  4063.                 ld      hl, byte_D0DF
  4064.                 res     7, (hl)
  4065.                 jp      sub_8D9E
  4066.  
  4067. ; ---------------------------------------------------------------------------
  4068.  
  4069. loc_9279:                               ; CODE XREF: sub_924C+5
  4070.                 ld      hl, DECREMENT_50HZ
  4071.                 ld      a, (hl)
  4072.                 or      a
  4073.                 ret     p
  4074.                 ld      (hl), #14
  4075.                 ld      hl, byte_D0DF
  4076.                 ld      a, (hl)
  4077.                 xor     #40
  4078.                 ld      (hl), a
  4079.                 and     #40
  4080.                 jp      nz, ShowBOARD2
  4081.  
  4082.                 jp      ShowBOARD
  4083.  
  4084. ; End of function sub_924C
  4085.  
  4086. ; ---------------------------------------------------------------------------
  4087. ; START OF FUNCTION CHUNK FOR sub_9128
  4088.  
  4089. loc_9290:                               ; CODE XREF: sub_9128+13
  4090.                 ld      a, #FF
  4091.                 cp      c
  4092.                 ret     z
  4093.                 ld      a, #FF
  4094.                 ld      (needdrawcursorfrom), a
  4095.                 ld      a, c
  4096.                 ld      (needdrawcursor1), a
  4097.                 jp      ReDrawMoveAndCursors
  4098.  
  4099. ; END OF FUNCTION CHUNK FOR sub_9128
  4100.  
  4101. ; =============== S U B R O U T I N E =======================================
  4102.  
  4103.  
  4104. sub_92A0:                               ; CODE XREF: sub_9128+BB
  4105.                 ld      hl, unk_F000
  4106.  
  4107.  
  4108. loc_92A3:                               ; CODE XREF: sub_92A0+D
  4109.                 ld      a, (hl)
  4110.                 cp      #FF
  4111.                 jr      z, loc_92AF
  4112.  
  4113.                 cp      b
  4114.                 ret     z
  4115.                 inc     hl
  4116.                 inc     hl
  4117.                 inc     hl
  4118.                 jr      loc_92A3
  4119.  
  4120. ; ---------------------------------------------------------------------------
  4121.  
  4122. loc_92AF:                               ; CODE XREF: sub_92A0+6 sub_92B6+6
  4123.                 push    af
  4124.                 call    BEEP_3
  4125.  
  4126.                 pop     af
  4127.                 or      a
  4128.                 ret
  4129.  
  4130. ; End of function sub_92A0
  4131.  
  4132.  
  4133. ; =============== S U B R O U T I N E =======================================
  4134.  
  4135.  
  4136. sub_92B6:                               ; CODE XREF: sub_9128:loc_91F0
  4137.                 ld      hl, unk_F000
  4138.  
  4139.  
  4140. loc_92B9:                               ; CODE XREF: sub_92B6+13
  4141.                 ld      a, (hl)
  4142.                 cp      #FF
  4143.                 jr      z, loc_92AF
  4144.  
  4145.                 cp      c
  4146.                 jr      nz, loc_92C6
  4147.  
  4148.                 inc     hl
  4149.                 ld      a, (hl)
  4150.                 dec     hl
  4151.                 cp      b
  4152.                 ret     z
  4153.  
  4154.  
  4155. loc_92C6:                               ; CODE XREF: sub_92B6+9
  4156.                 inc     hl
  4157.                 inc     hl
  4158.                 inc     hl
  4159.                 jr      loc_92B9
  4160.  
  4161. ; End of function sub_92B6
  4162.  
  4163. ; ---------------------------------------------------------------------------
  4164. ; START OF FUNCTION CHUNK FOR HotKeys
  4165.  
  4166. loc_92CB:                               ; CODE XREF: HotKeys+14
  4167. ;F=Forward
  4168.                 ld      hl, (ptr_stk_1bvalue)
  4169.                 ld      l, (hl)
  4170.                 inc     l
  4171.                 jp      nz, HotKeys_keepkey_pop_ret     ; if not #FF
  4172.  
  4173.                 call    BEEP_3
  4174.  
  4175.                 ret
  4176.  
  4177. ; END OF FUNCTION CHUNK FOR HotKeys
  4178.  
  4179. ; =============== S U B R O U T I N E =======================================
  4180.  
  4181.  
  4182. sub_92D7:                               ; CODE XREF: sub_8FC1+D
  4183.  
  4184. ; FUNCTION CHUNK AT 809A SIZE 00000007 BYTES
  4185.  
  4186.                 push    af
  4187.                 push    bc
  4188.                 push    de
  4189.                 push    hl
  4190.                 call    sub_9933
  4191.  
  4192.                 ld      hl, #1500
  4193.                 ld      (scr_XY), hl
  4194.                 ld      hl, aNew        ; " NEW "
  4195.                 call    PRINT_STR_scr0
  4196.  
  4197.                 ld      de, #C00
  4198.                 ld      (scr_XY), de
  4199.                 ld      hl, aNewGameYN  ; "NEW GAME (Y/N)?"
  4200.                 call    PRINT_STR_FF
  4201.  
  4202.  
  4203. loc_92F7:
  4204.                 call    KEY_SCAN
  4205.                 jr      nc, loc_92F7
  4206.  
  4207.                 push    af
  4208.                 ld      hl, #1500
  4209.                 ld      (scr_XY), hl
  4210.                 ld      hl, a_8spaces   ; "       "
  4211.                 call    PRINT_STR_scr0
  4212.  
  4213.                 pop     af
  4214.                 cp      'Y'
  4215.                 jp      z, loc_809A ;9EE6 + NEW_GAME
  4216.  
  4217.                 call    BEEP_move
  4218.  
  4219.                 ld      hl,  a_32spaces+#C
  4220.                 ld      de, #C00
  4221.                 ld      (scr_XY), de
  4222.                 call    PRINT_STR_FF
  4223.  
  4224.                 pop     hl
  4225.                 ld      (hl), 0
  4226.                 pop     de
  4227.                 pop     bc
  4228.                 pop     af
  4229.                 ret
  4230.  
  4231. ; End of function sub_92D7
  4232.  
  4233. ; ---------------------------------------------------------------------------
  4234. ; START OF FUNCTION CHUNK FOR HotKeys
  4235.  
  4236. loc_9326:                               ; CODE XREF: HotKeys+1E
  4237.                 call    UnDrawMoveAndCursors
  4238.  
  4239.                 ld      hl, byte_D0B3
  4240.                 ld      a, (hl)
  4241.                 xor     8
  4242.                 ld      (hl), a ;d3=swap board
  4243.                 call    RotateBOARD
  4244.  
  4245.                 call    ShowBOARD
  4246.  
  4247.                 call    RotateBOARD2
  4248.  
  4249.                 call    DrawMoveAndCursors
  4250.  
  4251.                 call    sub_A177
  4252.  
  4253.                 ret
  4254.  
  4255. ; ---------------------------------------------------------------------------
  4256.  
  4257. loc_9340:                               ; CODE XREF: HotKeys+19
  4258.                 ld      hl, (word_D25A)
  4259.                 call    UnDrawMoveAndCursors
  4260.  
  4261.                 call    ShowBOARD2
  4262.  
  4263.                 call    BEEP_move
  4264.  
  4265.                 ld      a, #14
  4266.                 call    halt_A_frames
  4267.  
  4268.                 call    ShowBOARD
  4269.  
  4270.                 call    DrawMoveAndCursors
  4271.  
  4272.                 ret
  4273.  
  4274. ; END OF FUNCTION CHUNK FOR HotKeys
  4275.  
  4276.  
  4277.  
  4278. halt_A_frames:
  4279.  
  4280.                 halt
  4281.                 dec     a
  4282.                 ret     z
  4283.                 jr      halt_A_frames
  4284.  
  4285.  
  4286. ; ---------------------------------------------------------------------------
  4287. ; START OF FUNCTION CHUNK FOR HotKeys
  4288.  
  4289. loc_935D:                               ; CODE XREF: HotKeys+32
  4290. ;L=Level
  4291.                 jp      HotKeys_keepkey_pop_ret
  4292.  
  4293. ; END OF FUNCTION CHUNK FOR HotKeys
  4294.  
  4295. ; =============== S U B R O U T I N E =======================================
  4296.  
  4297.  
  4298. RotateBOARD:                            ; CODE XREF: HotKeys+248
  4299.                 ld      hl, BOARD
  4300.                 ld      de,  BOARD+#3F
  4301.                 jp      loc_936F
  4302. ; End of function RotateBOARD
  4303. ; =============== S U B R O U T I N E =======================================
  4304. RotateBOARD2:                           ; CODE XREF: HotKeys+24E
  4305.                 ld      hl, BOARD2
  4306.                 ld      de, BOARD2+63
  4307. loc_936F:                               ; CODE XREF: RotateBOARD+6
  4308.                 ld      b, #20 ; ' '
  4309. _loc_9371:                              ; CODE XREF: RotateBOARD2+F
  4310.                 ld      c, (hl)
  4311.                 ld      a, (de)
  4312.                 ld      (hl), a
  4313.                 ld      a, c
  4314.                 ld      (de), a
  4315.                 inc     hl
  4316.                 dec     de
  4317.                 djnz    _loc_9371
  4318.                 ret
  4319.  
  4320. ; End of function RotateBOARD2
  4321.  
  4322.  
  4323. ; =============== S U B R O U T I N E =======================================
  4324.  
  4325.  
  4326. ShowBOARD2:                             ; CODE XREF: sub_8C20-97C
  4327.                                         ; sub_8D9E+18   ...
  4328.                 ld      hl,  BOARD2+#3F
  4329.                 jr      loc_9383
  4330. ; End of function ShowBOARD2
  4331. ; =============== S U B R O U T I N E =======================================
  4332. ShowBOARD:                              ; CODE XREF: sub_8DE9+77 sub_924C+1A ...
  4333.                 ld      hl,  BOARD+#3F
  4334. loc_9383:                               ; CODE XREF: ShowBOARD2+3
  4335.                 ld      b, #40
  4336. _loc_9385:                              ; CODE XREF: ShowBOARD+1C
  4337.                 ld      a, (hl)
  4338.                 push    bc
  4339.                 push    de
  4340.                 push    hl
  4341.                 ld      c, a
  4342.                 ld      a, b
  4343.                 dec     a
  4344.                 ld      hl, byte_D0B3 ;d3=swap board
  4345.                 bit     3, (hl)
  4346.                 jr      z, _loc_9395
  4347.                 xor     #3F
  4348. _loc_9395:                              ; CODE XREF: ShowBOARD+11
  4349.                 call    SHOW_FIG_POS
  4350.  
  4351.                 pop     hl
  4352.                 pop     de
  4353.                 pop     bc
  4354.                 dec     hl
  4355.                 djnz    _loc_9385
  4356.                 ret
  4357. ; End of function ShowBOARD
  4358.  
  4359.  
  4360. ; =============== S U B R O U T I N E =======================================
  4361.  
  4362.  
  4363. sub_939F:                               ; CODE XREF: sub_8C20-B31
  4364.                                         ; sub_8C20:loc_8226 ...
  4365.                 ld      hl, BOARD2
  4366.                 jr      loc_93A7
  4367.  
  4368. ; End of function sub_939F
  4369.  
  4370.  
  4371. ; =============== S U B R O U T I N E =======================================
  4372.  
  4373.  
  4374. sub_93A4:                               ; CODE XREF: sub_8C20-AE1
  4375.                                         ; sub_8C20:loc_84BF ...
  4376.                 ld      hl, BOARD
  4377.  
  4378.  
  4379. loc_93A7:                               ; CODE XREF: sub_939F+3
  4380.                 ld      (TMP_BOARD_PTR), hl
  4381.                 ld      b, 0
  4382.                 ld      hl, BRD_88_0
  4383.  
  4384.  
  4385. loc_93AF:                               ; CODE XREF: sub_93A4+78 sub_93A4+81
  4386.                 push    hl
  4387.                 ld      a, (hl)
  4388.                 and     #43 ; 'C'
  4389.                 cp      #43 ; 'C'
  4390.                 ld      a, (hl)
  4391.                 jr      nz, loc_93C3
  4392.  
  4393.                 ld      c, 1
  4394.                 bit     7, (hl)
  4395.                 jr      nz, loc_93C0
  4396.  
  4397.                 set     3, c
  4398.  
  4399.  
  4400. loc_93C0:                               ; CODE XREF: sub_93A4+18
  4401.                 jp      loc_93F2
  4402.  
  4403. ; ---------------------------------------------------------------------------
  4404.  
  4405. loc_93C3:                               ; CODE XREF: sub_93A4+12
  4406.                 ld      c, 0
  4407.                 or      a
  4408.                 jr      z, loc_93F2
  4409.  
  4410.                 and     #F8 ; 'ш'
  4411.                 inc     a
  4412.                 ld      l, a
  4413.                 inc     h
  4414.                 ld      c, 6
  4415.                 ld      a, #F
  4416.                 and     (hl)
  4417.                 jr      z, loc_93EC
  4418.  
  4419.                 ld      c, 1
  4420.                 cp      1
  4421.                 jr      z, loc_93EC
  4422.  
  4423.                 ld      c, 4
  4424.                 cp      5
  4425.                 jr      z, loc_93EC
  4426.  
  4427.                 ld      c, 5
  4428.                 jr      nc, loc_93EC
  4429.  
  4430.                 ld      c, 2
  4431.                 bit     7, (hl)
  4432.                 jr      z, loc_93EC
  4433.  
  4434.                 ld      c, 3
  4435.  
  4436.  
  4437. loc_93EC:                               ; CODE XREF: sub_93A4+2E sub_93A4+34 ...
  4438.                 bit     7, l
  4439.                 jr      nz, loc_93F2
  4440.  
  4441.                 set     3, c
  4442.  
  4443.  
  4444. loc_93F2:                               ; CODE XREF: sub_93A4:loc_93C0
  4445.                                         ; sub_93A4+22   ...
  4446.                 ld      a, b
  4447.                 ld      hl, byte_D0B3
  4448.                 bit     3, (hl) ;d3=swap board
  4449.                 jr      z, loc_93FC
  4450.  
  4451.                 xor     #3F ; '?'
  4452.  
  4453.  
  4454. loc_93FC:                               ; CODE XREF: sub_93A4+54
  4455.                 ld      hl, (TMP_BOARD_PTR)
  4456.                 ld      e, a
  4457.                 ld      d, 0
  4458.                 add     hl, de
  4459.                 ld      a, c
  4460.                 cp      (hl)
  4461.                 jr      z, loc_9417
  4462.  
  4463.                 ld      (hl), a
  4464.                 push    bc
  4465.                 ld      hl, (TMP_BOARD_PTR)
  4466.                 ld      de, BOARD2
  4467.                 or      a
  4468.                 sbc     hl, de
  4469.                 ld      a, b
  4470.                 call    nz, SHOW_FIG_POS
  4471.  
  4472.                 pop     bc
  4473.  
  4474.  
  4475. loc_9417:                               ; CODE XREF: sub_93A4+61
  4476.                 pop     hl
  4477.                 inc     hl
  4478.                 inc     b
  4479.                 bit     3, l
  4480.                 jp      z, loc_93AF
  4481.  
  4482.                 ld      de, 8
  4483.                 add     hl, de
  4484.                 bit     7, l
  4485.                 jp      z, loc_93AF
  4486.  
  4487.                 ret
  4488.  
  4489. ; End of function sub_93A4
  4490.  
  4491.  
  4492. ; =============== S U B R O U T I N E =======================================
  4493.  
  4494.  
  4495. CLR_BOARD:                              ; CODE XREF: START_POINT+87
  4496.                                         ; sub_8C20-B7C
  4497.                 di
  4498.                 ld      hl, BOARD
  4499.                 ld      b, #40 ; '@'
  4500.                 xor     a
  4501.  
  4502.  
  4503. loc_9430:                               ; CODE XREF: CLR_BOARD+9
  4504.                 ld      (hl), a
  4505.                 inc     hl
  4506.                 djnz    loc_9430
  4507.  
  4508.                 xor     a
  4509.                 ld      c, a
  4510.  
  4511.  
  4512. loc_9436:                               ; CODE XREF: CLR_BOARD+15
  4513.                 push    af
  4514.                 call    SH_EMPT_POS ;show square
  4515.                 pop     af
  4516.                 inc     a
  4517.                 cp      #40 ; '@'
  4518.                 jr      nz, loc_9436
  4519.  
  4520.                 ei
  4521.                 ret
  4522.  
  4523. ; End of function CLR_BOARD
  4524.  
  4525.  
  4526. ; =============== S U B R O U T I N E =======================================
  4527.  
  4528.  
  4529. SH_EMPT_POS:                            ; CODE XREF: ShowHintMove+37 CLR_BOARD+E
  4530.                 ld      c, 0
  4531.  
  4532. ; End of function SH_EMPT_POS
  4533.  
  4534.  
  4535. ; =============== S U B R O U T I N E =======================================
  4536.  
  4537. ; A - position (0..63)
  4538. ; C - figure:
  4539. ; 0..6: empty,pawn,knight,bishop,rook,queen,king ; 0..6 white, 8..E black
  4540.  
  4541. SHOW_FIG_POS:                           ; CODE XREF: ShowHintMove+31 ShowHintMove+49 ...
  4542.                 ld      b, a           
  4543.                 ld      d, #34 ; '4' ;attr: paper=6, ink=4
  4544.                 and     9
  4545.                 jr      z, loc_9451
  4546.                 cp      9
  4547.                 jr      z, loc_9451
  4548.                 ld      d, #26 ; '&' ;attr: paper=4, ink=6
  4549. loc_9451:                               ; CODE XREF: SHOW_FIG_POS+5
  4550.                                         ; SHOW_FIG_POS+9
  4551.                 dec     c
  4552.                 inc     c
  4553.                 jr      z, loc_9463 ;empty figure - use default attr
  4554.  
  4555.                 ld      a, d
  4556.                 and     #F8
  4557.                 ld      d, a ;attr=paper
  4558.                 ld      a, 0
  4559.                 bit     3, c
  4560.                 jr      nz, loc_9461 ;nz=black
  4561.                 ld      a, 7 ;white
  4562. loc_9461:                               ; CODE XREF: SHOW_FIG_POS+19
  4563.                 or      d
  4564.                 ld      d, a ;attr
  4565.  
  4566. loc_9463:                               ; CODE XREF: SHOW_FIG_POS+F
  4567.                 push    bc
  4568.                 push    de
  4569.                 ld      a, b ;position (0..63)
  4570.                 call    sub_95FA ;out: a=0b0YYY0XXX
  4571.  
  4572.                 call    sub_9703 ;calc scr_XY, scr_pix_addr, scr_attr_addr
  4573.  
  4574.                 call    CALC_SCR_ADDRS ;scr_XY to scr_pix_addr, scr_attr_addr
  4575.  
  4576.                 call    sub_9609 ;recount scr_pix_addr, scr_attr_addr to scrbuf if needed
  4577.  
  4578.                 ld      hl, (scr_attr_addr)
  4579.                 pop     de
  4580.                 ld      b, 3
  4581. loc_9478:                               ; CODE XREF: SHOW_FIG_POS:loc_9484
  4582.                 ld      (hl), d ;attr
  4583.                 inc     hl
  4584.                 ld      (hl), d ;attr
  4585.                 inc     hl
  4586.                 ld      (hl), d ;attr
  4587.                 ld      a, #1E
  4588.                 add     a, l
  4589.                 ld      l, a
  4590.                 jr      nc, loc_9484
  4591.                 inc     h
  4592. loc_9484:                               ; CODE XREF: SHOW_FIG_POS+3D
  4593.                 djnz    loc_9478 ;set attr for figure
  4594.  
  4595.                 pop     bc
  4596.                 ld      hl, (scr_pix_addr)
  4597.                 push    hl
  4598.                 ld      a, c
  4599.                 and     7
  4600.                 ld      b, a
  4601.                 add     a, a
  4602.                 add     a, a
  4603.                 add     a, a
  4604.                 add     a, b
  4605.                 ld      l, a
  4606.                 ld      h, 0
  4607.                 add     hl, hl
  4608.                 add     hl, hl
  4609.                 add     hl, hl
  4610.                 ld      de, FIG_sprites
  4611.                 add     hl, de
  4612.                 ex      de, hl
  4613.                 pop     hl
  4614.                 ld      a, 3
  4615.                 ex      af, af' ;'
  4616. loc_94A2:                               ; CODE XREF: SHOW_FIG_POS+78
  4617.                                         ; SHOW_FIG_POS+7E
  4618.                 push    hl
  4619.                 ld      c, 3
  4620. loc_94A5:                               ; CODE XREF: SHOW_FIG_POS+6D
  4621.                 push    hl
  4622.                 ld      b, 8
  4623. loc_94A8:                               ; CODE XREF: SHOW_FIG_POS+68
  4624.                 ld      a, (de)
  4625.                 ld      (hl), a
  4626.                 inc     de
  4627.                 inc     h
  4628.                 djnz    loc_94A8
  4629.  
  4630.                 pop     hl
  4631.                 inc     hl
  4632.                 dec     c
  4633.                 jr      nz, loc_94A5
  4634.  
  4635.                 pop     hl
  4636.                 ex      af, af' ;'
  4637.                 dec     a
  4638.                 ret     z
  4639.                 ex      af, af' ;'
  4640.                 ld      a, #20 ; ' '
  4641.                 add     a, l
  4642.                 ld      l, a
  4643.                 jr      nc, loc_94A2
  4644.  
  4645.                 ld      a, h
  4646.                 add     a, 8
  4647.                 ld      h, a
  4648.                 jr      loc_94A2
  4649.  
  4650. ; End of function SHOW_FIG_POS
  4651.  
  4652.  
  4653. ; =============== S U B R O U T I N E =======================================
  4654.  
  4655.  
  4656. sub_94C4:                               ; CODE XREF: sub_8C20-B2E
  4657.                 ld      hl, BOARD2
  4658.                 jr      loc_94CC
  4659.  
  4660. ; End of function sub_94C4
  4661.  
  4662.  
  4663. ; =============== S U B R O U T I N E =======================================
  4664.  
  4665.  
  4666. sub_94C9:                               ; CODE XREF: sub_8C20+16ED
  4667.                 ld      hl, BOARD
  4668.  
  4669.  
  4670. loc_94CC:                               ; CODE XREF: sub_94C4+3
  4671.                 push    hl
  4672.                 call    sub_A43C
  4673.  
  4674.                 call    sub_A43C
  4675.  
  4676.                 pop     hl
  4677.                 ld      b, 8
  4678.                 ld      d, #FF
  4679.                 ld      e, #39 ; '9'
  4680.                 ld      a, (byte_D0B3) ;d3=swap board
  4681.                 bit     3, a
  4682.                 jr      z, loc_94E5
  4683.  
  4684.                 ld      d, 1
  4685.                 ld      e, #30 ; '0'
  4686.  
  4687.  
  4688. loc_94E5:                               ; CODE XREF: sub_94C9+16 sub_94C9+59
  4689.                 ld      c, 8
  4690.                 ld      a, e
  4691.                 add     a, d
  4692.                 ld      e, a
  4693.                 call    loc_A476
  4694.  
  4695.                 ld      a, #20 ; ' '
  4696.                 call    loc_A476
  4697.  
  4698.  
  4699. loc_94F2:                               ; CODE XREF: sub_94C9+51
  4700.                 ld      a, (hl)
  4701.                 push    hl
  4702.                 push    de
  4703.                 push    bc
  4704.                 ld      c, a
  4705.                 and     7
  4706.                 jr      nz, loc_94FF
  4707.  
  4708.                 ld      a, #2E ; '.'
  4709.                 jr      loc_950D
  4710.  
  4711. ; ---------------------------------------------------------------------------
  4712.  
  4713. loc_94FF:                               ; CODE XREF: sub_94C9+30
  4714.                 ld      hl, KING+1
  4715.                 call    sub_8CF7 ;поиск класса фигуры по номеру
  4716.  
  4717.                 dec     hl
  4718.                 ld      a, (hl)
  4719.                 bit     3, c
  4720.                 jr      z, loc_950D
  4721.  
  4722.                 or      #20 ; ' '
  4723.  
  4724.  
  4725. loc_950D:                               ; CODE XREF: sub_94C9+34 sub_94C9+40
  4726.                 call    loc_A476
  4727.  
  4728.                 ld      a, #20 ; ' '
  4729.                 call    loc_A476
  4730.  
  4731.                 pop     bc
  4732.                 pop     de
  4733.                 pop     hl
  4734.                 inc     hl
  4735.                 dec     c
  4736.                 jr      nz, loc_94F2
  4737.  
  4738.                 call    sub_A43C
  4739.  
  4740.                 call    sub_A43C
  4741.  
  4742.                 djnz    loc_94E5
  4743.  
  4744.                 ld      a, d
  4745.                 neg
  4746.                 ld      d, a
  4747.                 ld      a, e
  4748.                 add     a, #30 ; '0'
  4749.                 ld      e, a
  4750.                 ld      b, 2
  4751.  
  4752.  
  4753. loc_952E:                               ; CODE XREF: sub_94C9+6A
  4754.                 ld      a, #20 ; ' '
  4755.                 call    loc_A476
  4756.  
  4757.                 djnz    loc_952E
  4758.  
  4759.                 ld      b, 8
  4760.  
  4761.  
  4762. loc_9537:                               ; CODE XREF: sub_94C9+7A
  4763.                 ld      a, e
  4764.                 call    loc_A476
  4765.  
  4766.                 ld      a, #20 ; ' '
  4767.                 call    loc_A476
  4768.  
  4769.                 ld      a, e
  4770.                 add     a, d
  4771.                 ld      e, a
  4772.                 djnz    loc_9537
  4773.  
  4774.                 call    sub_A43C
  4775.  
  4776.                 call    sub_A43C
  4777.  
  4778.                 ret
  4779.  
  4780. ; End of function sub_94C9
  4781.  
  4782.  
  4783. ; =============== S U B R O U T I N E =======================================
  4784.  
  4785. sub_954C:                               ; CODE XREF: sub_8C20-AF1
  4786.                 call    sub_A164
  4787.                 ld      a, #70 ; 'p'
  4788.                 jr      c, loc_9554
  4789.                 xor     a
  4790. loc_9554:                               ; CODE XREF: sub_954C+5
  4791.                 ld      (needdrawcursor1), a
  4792.                 ld      a, #FF
  4793.                 ld      (needdrawcursorfrom), a
  4794.                 ret
  4795.  
  4796. ; End of function sub_954C
  4797.  
  4798.  
  4799. ; =============== S U B R O U T I N E =======================================
  4800. DrawMoveAndCursors:                             ; CODE XREF: sub_8C20-A94
  4801.                                         ; sub_8C20-88F ...
  4802.                 ld      a, (needdrawcursor1)
  4803.                 cp      #FF
  4804.                 call    nz, DrawCursor
  4805.                 ld      a, (needdrawcursorfrom)
  4806.                 cp      #FF
  4807.                 call    nz, DrawCursorFrom
  4808.                 call    PrepareAndPrintMoveText
  4809.                 ret
  4810. ; End of function DrawMoveAndCursors
  4811. ; =============== S U B R O U T I N E =======================================
  4812. UnDrawMoveAndCursors:                           ; CODE XREF: sub_8C20-AF4
  4813.                                         ; sub_8C20-85C ...
  4814.                 ld      a, (needdrawcursor1)
  4815.                 cp      #FF
  4816.                 call    nz, UnDrawCursor
  4817.                 ld      a, (needdrawcursorfrom)
  4818.                 cp      #FF
  4819.                 call    nz, UnDrawCursor
  4820.                 call    restore_6_spaces
  4821.                 ret
  4822. ; End of function UnDrawMoveAndCursors
  4823. ; =============== S U B R O U T I N E =======================================
  4824.  
  4825. DrawCursor:                             ; CODE XREF: sub_9128+2C DrawMoveAndCursors+5
  4826. ;A=номер поля?=0b0YYY0XXX
  4827.                 push    af
  4828.                 ld      a, (byte_D04D)
  4829.                 or      a
  4830.                 ld      d, 0   ;and
  4831.                 ld      e, #A9 ;or
  4832.                 jr      z, loc_9592
  4833.                 ld      e, #AA ;or
  4834. loc_9592:                               ; CODE XREF: DrawCursor+9
  4835.                 pop     af
  4836.                 jr      loc_959B
  4837. ; End of function DrawCursor
  4838. ; =============== S U B R O U T I N E =======================================
  4839. UnDrawCursor:                           ; CODE XREF: sub_8C20-20C
  4840.                                         ; sub_8C20-17C ...
  4841. ;A=номер поля?=0b0YYY0XXX
  4842.                 ld      d, #FF ;and
  4843.                 ld      e, 0   ;or
  4844.                 jr      loc_959B ;???
  4845. ; ---------------------------------------------------------------------------
  4846. loc_959B:                               ; CODE XREF: DrawCursor+E UnDrawCursor+4 ...
  4847. ;A=номер поля?=0b0YYY0XXX
  4848.                 push    hl
  4849.                 push    af
  4850.                 push    de
  4851.                 call    sub_95AE
  4852.                 pop     de
  4853.                 and     d
  4854.                 or      e
  4855.                 ld      (hl), a
  4856.                 pop     af
  4857.                 pop     hl
  4858.                 ret
  4859. ; End of function UnDrawCursor
  4860. ; =============== S U B R O U T I N E =======================================
  4861.  
  4862. DrawCursorFrom:                         ; CODE XREF: sub_9128+34 DrawMoveAndCursors+D
  4863.                 ld      d, 0   ;and
  4864.                 ld      e, #29 ;or
  4865.                 jr      loc_959B
  4866. ; End of function DrawCursorFrom
  4867. ; =============== S U B R O U T I N E =======================================
  4868.  
  4869. sub_95AE:                               ; CODE XREF: UnDrawCursor+9
  4870. ;A=номер поля?=0b0YYY0XXX
  4871.                 and     #77
  4872.                 ld      hl, byte_D0B3 ;d3=swap board
  4873.                 bit     3, (hl)
  4874.                 jr      z, loc_95B9
  4875.                 xor     #77
  4876. loc_95B9:                               ; CODE XREF: sub_95AE+7
  4877.                 call    sub_9703 ;calc scr_XY, scr_pix_addr, scr_attr_addr
  4878.  
  4879.                 ld      hl, (scr_attr_addr)
  4880.                 ld      a, (hl) ;нормальный цвет из угла клетки
  4881.                 ld      de, #21
  4882.                 add     hl, de ;позиция курсора на клетке
  4883.                 ret
  4884. ; End of function sub_95AE
  4885. ; =============== S U B R O U T I N E =======================================
  4886.  
  4887. sub_95C5:                               ; CODE XREF: sub_8FC1+8 sub_924C+B ...
  4888.                 ld      hl, SEL_SCRorBUF
  4889.                 ld      a, (hl)
  4890.                 cpl
  4891.                 ld      (hl), a
  4892.                 call    SET_BRD_COLOR
  4893.  
  4894.                 ld      hl, SCREEN
  4895.                 ld      de, SCR_BUF_6400
  4896.                 ld      c, #1B
  4897.                 ld      b, 0
  4898. loc_95D8:                               ; CODE XREF: sub_95C5+1B sub_95C5+1E
  4899.                 ld      a, (hl)
  4900.                 ex      af, af' ;'
  4901.                 ld      a, (de)
  4902.                 ld      (hl), a
  4903.                 ex      af, af' ;'
  4904.                 ld      (de), a
  4905.                 inc     hl
  4906.                 inc     de
  4907.                 djnz    loc_95D8
  4908.                 dec     c
  4909.                 jr      nz, loc_95D8
  4910.                 ret
  4911.  
  4912. ; End of function sub_95C5
  4913.  
  4914.                 ;unused data???
  4915.                 db      #47,#1F,#E6,#38,#4F,#78,#E6,#07,#81
  4916.  
  4917. ; =============== S U B R O U T I N E =======================================
  4918.  
  4919.  
  4920. sub_95EF:                               ; CODE XREF: sub_95FA+1
  4921.                 push    hl
  4922.                 ld      hl, byte_D0B3 ;d3=swap board
  4923.                 bit     3, (hl) ;swap board?
  4924.                 pop     hl
  4925.                 ret     z
  4926.                 xor     #3F
  4927.                 ret
  4928.  
  4929. ; End of function sub_95EF
  4930.  
  4931.  
  4932. ; =============== S U B R O U T I N E =======================================
  4933.  
  4934.  
  4935. sub_95FA:                               ; CODE XREF: SHOW_FIG_POS+22
  4936. ;a=position (0..63)
  4937.                 push    bc
  4938.                 call    sub_95EF ;swap board if needed
  4939.                 ld      b, a
  4940.                 and     #38
  4941.                 rlca
  4942.                 ld      c, a ;c=0b0YYY0000
  4943.                 ld      a, b
  4944.                 and     7
  4945.                 or      c    ;a=0b0YYY0XXX
  4946.                 pop     bc
  4947.                 ret
  4948.  
  4949. ; End of function sub_95FA
  4950.  
  4951.  
  4952. ; =============== S U B R O U T I N E =======================================
  4953. ;recount scr_pix_addr, scr_attr_addr to scrbuf if needed
  4954.  
  4955. sub_9609:                               ; CODE XREF: SHOW_FIG_POS+2B
  4956.                 ld      a, (SEL_SCRorBUF)
  4957.                 or      a
  4958.                 ret     z
  4959.                 jr      loc_9615
  4960.  
  4961. ; ---------------------------------------------------------------------------
  4962.                 ld      a, (SEL_SCRorBUF)
  4963.                 or      a
  4964.                 ret     nz
  4965.  
  4966.  
  4967. loc_9615:                               ; CODE XREF: sub_9609+5
  4968.                 push    de
  4969.                 push    hl
  4970.                 ld      de, #2400
  4971.                 ld      hl, (scr_pix_addr)
  4972.                 add     hl, de
  4973.                 ld      (scr_pix_addr), hl
  4974.                 ld      hl, (scr_attr_addr)
  4975.                 add     hl, de
  4976.                 ld      (scr_attr_addr), hl
  4977.                 pop     hl
  4978.                 pop     de
  4979.                 ret
  4980.  
  4981. ; End of function sub_9609
  4982.  
  4983.  
  4984. ; =============== S U B R O U T I N E =======================================
  4985.  
  4986.  
  4987. CLR_SCR_OR_BUF:                         ; CODE XREF: START_POINT+84
  4988.                 di
  4989.                 ld      hl, SCREEN
  4990.                 ld      a, (SEL_SCRorBUF)
  4991.                 or      a
  4992.                 jr      z, loc_9638
  4993.  
  4994.                 ld      hl, SCR_BUF_6400
  4995. loc_9638:                               ; CODE XREF: CLR_SCR_OR_BUF+8
  4996.                 ld      a, h
  4997.                 add     a, #18
  4998.                 ld      b, 0
  4999. loc_963D:                               ; CODE XREF: CLR_SCR_OR_BUF+15
  5000.                 ld      (hl), b
  5001.                 inc     hl
  5002.                 cp      h
  5003.                 jr      nz, loc_963D
  5004.  
  5005.                 ld      b, #28    ; ink=0, paper=5
  5006.                 add     a, 3
  5007. loc_9646:                               ; CODE XREF: CLR_SCR_OR_BUF+1E
  5008.                 ld      (hl), b
  5009.                 inc     hl
  5010.                 cp      h
  5011.                 jr      nz, loc_9646
  5012.  
  5013. ; End of function CLR_SCR_OR_BUF
  5014.  
  5015.  
  5016. ; =============== S U B R O U T I N E =======================================
  5017.  
  5018.  
  5019. SET_BRD_COLOR:                          ; CODE XREF: sub_95C5+6 FillAttrsAndBorder+30   ...
  5020.                 ld      a, (SEL_SCRorBUF)
  5021.                 or      a
  5022.                 ld      a, 5
  5023.                 jr      nz, loc_9655
  5024.                 ld      a, 5 ;???
  5025. loc_9655:                               ; CODE XREF: SET_BRD_COLOR+6
  5026.                 ld      (BRD_COLOR), a
  5027.                 out     (#FE),  a
  5028.                 ei
  5029.                 ret
  5030.  
  5031. ; End of function SET_BRD_COLOR
  5032.  
  5033.  
  5034. ; =============== S U B R O U T I N E =======================================
  5035.  
  5036.  
  5037. FillAttrsAndBorder:                             ; CODE XREF: sub_9EE6
  5038.                 di
  5039.                 ld      hl, 0
  5040.                 ld      (gamestatemsgaddr), hl
  5041.                 ld      hl, SCR_BUF_6400
  5042.                 ld      a, (SEL_SCRorBUF)
  5043.                 or      a
  5044.                 jr      z, loc_966F
  5045.                 ld      hl, SCREEN
  5046. loc_966F:                               ; CODE XREF: FillAttrsAndBorder+E
  5047.                 ld      a, h
  5048.                 add     a, #18
  5049.                 ld      b, 0
  5050. loc_9674:                               ; CODE XREF: FillAttrsAndBorder+1B
  5051.                 ld      (hl), b
  5052.                 inc     hl
  5053.                 cp      h
  5054.                 jr      nz, loc_9674
  5055.  
  5056.                 ld      c, #18
  5057.                 ld      de, fill_attrs
  5058. loc_967E:                               ; CODE XREF: FillAttrsAndBorder+2D
  5059.                 ld      b, #20 ; ' '
  5060.                 ld      a, (de)
  5061. loc_9681:                               ; CODE XREF: FillAttrsAndBorder+27
  5062.                 ld      (hl), a
  5063.                 inc     hl
  5064.                 djnz    loc_9681
  5065.                 dec     c
  5066.                 jr      z, loc_968B
  5067.                 inc     de
  5068.                 jr      loc_967E
  5069. ; ---------------------------------------------------------------------------
  5070. loc_968B:                               ; CODE XREF: FillAttrsAndBorder+2A
  5071.                 ei
  5072.                 jr      SET_BRD_COLOR
  5073.  
  5074. ; End of function FillAttrsAndBorder
  5075.  
  5076. ; ---------------------------------------------------------------------------
  5077. fill_attrs:     db  #3A,#3A,#29,#29,#29,#29,#29,#29
  5078.                 db  #29,#29,#29,#29,#29,#29,#29,#29
  5079.                 db  #32,#32,#32,#32,#32,#32,#32,#32
  5080.  
  5081. ; =============== S U B R O U T I N E =======================================
  5082.  
  5083.  
  5084. sub_96A6:                               ; CODE XREF: sub_8C20:NEW_GAME
  5085.                                         ; sub_8C20-5E7 ...
  5086.                 ld      hl, #600
  5087.                 ld      (scr_XY), hl
  5088.  
  5089.  
  5090. loc_96AC:                               ; CODE XREF: sub_96A6+11
  5091.                 ld      hl, a_32spaces  ; "                        "
  5092.                 call    PRINT_STR_FF
  5093.  
  5094.                 ld      a, (scr_XY+1)
  5095.                 cp      #D
  5096.                 jr      nz, loc_96AC
  5097.  
  5098.                 xor     a
  5099.                 ld      (byte_D0C0), a
  5100.                 ret
  5101.  
  5102. ; End of function sub_96A6
  5103.  
  5104.  
  5105. ; =============== S U B R O U T I N E =======================================
  5106.  
  5107.  
  5108. CALC_SCR_ADDRS:                         ; CODE XREF: sub_8EFB+8 sub_8EFB+22     ...
  5109.                 push    bc
  5110.                 push    de
  5111.                 push    hl
  5112.                 ld      bc, (scr_XY)
  5113.                 ld      a, b
  5114.                 ld      hl, SCREEN
  5115.                 ld      de, #800
  5116. loc_96CC:                               ; CODE XREF: CALC_SCR_ADDRS+15
  5117.                 cp      8
  5118.                 jr      c, loc_96D5
  5119.                 sub     8
  5120.                 add     hl, de
  5121.                 jr      loc_96CC
  5122. loc_96D5:                               ; CODE XREF: CALC_SCR_ADDRS+10
  5123.                 rrca
  5124.                 rrca
  5125.                 rrca
  5126.                 add     a, c
  5127.                 ld      e, a
  5128.                 ld      d, 0
  5129.                 add     hl, de
  5130.                 ld      (scr_pix_addr), hl
  5131.                 ld      l, b
  5132.                 ld      h, 0
  5133.                 add     hl, hl
  5134.                 add     hl, hl
  5135.                 add     hl, hl
  5136.                 add     hl, hl
  5137.                 add     hl, hl
  5138.                 ld      de, SCR_ATTRS
  5139.                 add     hl, de
  5140.                 ld      e, c
  5141.                 ld      d, 0
  5142.                 add     hl, de
  5143.                 ld      (scr_attr_addr), hl
  5144.                 pop     hl
  5145.                 pop     de
  5146.                 pop     bc
  5147.                 ret
  5148.  
  5149. ; End of function CALC_SCR_ADDRS
  5150.  
  5151.  
  5152. ; =============== S U B R O U T I N E =======================================
  5153.  
  5154.  
  5155. sub_96F7:                               ; CODE XREF: sub_8D9E+21 sub_8D9E+2D
  5156. ;a=0b0YYY0XXX
  5157.                 push    hl
  5158.                 ld      hl, byte_D0B3 ;d3=swap board
  5159.                 bit     3, (hl)
  5160.                 jr      z, loc_9704
  5161.  
  5162.                 xor     #77 ;swap board
  5163.                 jr      loc_9704
  5164.  
  5165. ; End of function sub_96F7
  5166.  
  5167.  
  5168. ; =============== S U B R O U T I N E =======================================
  5169. ;count scr_XY, scr_pix_addr, scr_attr_addr
  5170.  
  5171. sub_9703:                               ; CODE XREF: SHOW_FIG_POS+25
  5172.                                         ; sub_95AE:loc_95B9
  5173. ;a=0b0YYY0XXX
  5174.                 push    hl
  5175.  
  5176.  
  5177. loc_9704:                               ; CODE XREF: sub_96F7+6 sub_96F7+A
  5178. ;a=0b0YYY0XXX
  5179.                 push    de
  5180.                 push    bc
  5181.                 ld      c, a
  5182.                 and     #F0 ; 'р'
  5183.                 rlca
  5184.                 rlca
  5185.                 rlca
  5186.                 rlca
  5187.                 ld      b, a
  5188.                 add     a, a
  5189.                 add     a, b
  5190.                 ld      h, a
  5191.                 ld      a, c
  5192.                 and     #F
  5193.                 ld      b, a
  5194.                 add     a, a
  5195.                 add     a, b
  5196.                 add     a, 8
  5197.                 ld      l, a
  5198.                 ld      (scr_XY), hl
  5199.                 call    CALC_SCR_ADDRS ;scr_XY to scr_pix_addr, scr_attr_addr
  5200.  
  5201.                 ld      a, (SEL_SCRorBUF)
  5202.                 or      a
  5203.                 jr      z, loc_9737
  5204.  
  5205.                 ld      de, #2400
  5206.                 ld      hl, (scr_pix_addr)
  5207.                 add     hl, de
  5208.                 ld      (scr_pix_addr), hl
  5209.                 ld      hl, (scr_attr_addr)
  5210.                 add     hl, de
  5211.                 ld      (scr_attr_addr), hl
  5212.  
  5213. loc_9737:                               ; CODE XREF: sub_9703+21
  5214.                 pop     bc
  5215.                 pop     de
  5216.                 pop     hl
  5217.                 ret
  5218.  
  5219. ; End of function sub_9703
  5220.  
  5221. ; ---------------------------------------------------------------------------
  5222.  
  5223.  
  5224.         ;following table could be placed anywhere without alignment
  5225.  
  5226.                 ;--empty--
  5227. FIG_sprites:    db  #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00 ; 72 bytes (24x24 pix) each,
  5228.                 db  #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00 ; empty, pawn, knight, bishop,
  5229.                 db  #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00 ; rook, queen, king.
  5230.                 ;pawn
  5231.                 db  #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #00, #3C, #7E, #FF, #FF, #FF, #00, #00, #00, #00, #00, #00, #00, #00
  5232.                 db  #00, #00, #01, #00, #00, #00, #00, #00, #FF, #7E, #FF, #7E, #3C, #3C, #3C, #7E, #00, #00, #80, #00, #00, #00, #00, #00
  5233.                 db  #00, #00, #00, #03, #07, #07, #03, #00, #7E, #7E, #FF, #81, #FF, #FF, #FF, #00, #00, #00, #00, #C0, #E0, #E0, #C0, #00
  5234.                 ;knight
  5235.                 db  #00, #00, #00, #00, #01, #07, #1F, #1F, #00, #03, #1F, #7F, #BF, #FF, #FF, #FF, #00, #80, #80, #00, #00, #80, #80, #80
  5236.                 db  #07, #0F, #00, #00, #01, #03, #07, #07, #FF, #BF, #7F, #FF, #FF, #FF, #FF, #FF, #C0, #C0, #C0, #E0, #E0, #E0, #E0, #E0
  5237.                 db  #03, #00, #01, #03, #0F, #0F, #07, #00, #FF, #FF, #FF, #00, #FF, #FF, #FF, #00, #C0, #00, #80, #C0, #F0, #F0, #E0, #00
  5238.                 ;bishop
  5239.                 db  #00, #00, #00, #00, #00, #00, #01, #03, #00, #18, #3C, #3C, #26, #9F, #CF, #E7, #00, #00, #00, #00, #00, #00, #80, #C0
  5240.                 db  #03, #07, #07, #07, #07, #03, #01, #00, #F7, #FF, #FF, #FF, #FF, #FF, #FF, #FF, #C0, #E0, #E0, #E0, #E0, #C0, #80, #00
  5241.                 db  #00, #01, #03, #07, #0F, #0F, #07, #00, #FF, #FF, #FF, #00, #FF, #FF, #FF, #00, #00, #80, #C0, #E0, #F0, #F0, #E0, #00
  5242.                 ;rook
  5243.                 db  #00, #00, #00, #0F, #0F, #0F, #0F, #0F, #00, #00, #00, #3C, #3C, #3C, #FF, #FF, #00, #00, #00, #F0, #F0, #F0, #F0, #F0
  5244.                 db  #07, #02, #03, #03, #03, #03, #03, #03, #FF, #00, #FF, #FF, #FF, #FF, #FF, #FF, #E0, #40, #C0, #C0, #C0, #C0, #C0, #C0
  5245.                 db  #03, #03, #07, #0E, #1F, #1F, #0F, #00, #FF, #FF, #FF, #00, #FF, #FF, #FF, #00, #C0, #C0, #E0, #70, #F8, #F8, #F0, #00
  5246.                 ;queen
  5247.                 db  #00, #00, #00, #00, #00, #01, #47, #5E, #00, #18, #3C, #3C, #66, #FF, #7E, #3C, #00, #00, #00, #00, #00, #80, #E2, #7A
  5248.                 db  #4C, #61, #3F, #1F, #0F, #07, #03, #02, #99, #C3, #FF, #FF, #FF, #FF, #FF, #FF, #32, #86, #FC, #F8, #F0, #E0, #C0, #40
  5249.                 db  #0F, #0B, #1F, #18, #3F, #3F, #1F, #00, #FF, #66, #FF, #00, #FF, #FF, #FF, #00, #F0, #D0, #F8, #18, #FC, #FC, #F8, #00
  5250.                 ;king
  5251.                 db  #00, #00, #00, #00, #1E, #33, #61, #4C, #00, #7E, #66, #5A, #5A, #66, #FF, #66, #00, #00, #00, #00, #78, #CC, #86, #32
  5252.                 db  #5F, #5F, #4F, #67, #37, #13, #1B, #08, #66, #3C, #99, #DB, #DB, #DB, #DB, #00, #FA, #FA, #F2, #E6, #EC, #C8, #D8, #10
  5253.                 db  #0F, #0B, #1F, #18, #3F, #3F, #1F, #00, #FF, #66, #FF, #00, #FF, #FF, #FF, #00, #F0, #D0, #F8, #18, #FC, #FC, #F8, #00
  5254.  
  5255. ; =============== S U B R O U T I N E =======================================
  5256.  
  5257.  
  5258. sub_9933:                               ; CODE XREF: sub_92D7+4
  5259.                 call    BEEP_move
  5260.  
  5261.                 jp      BEEP_start
  5262.  
  5263. ; End of function sub_9933
  5264.  
  5265.  
  5266. ; =============== S U B R O U T I N E =======================================
  5267.  
  5268.  
  5269. sub_9939:                               ; CODE XREF: sub_8C20-5F
  5270.                 call    BEEP_start
  5271.  
  5272.                 call    BEEP_move
  5273.  
  5274. ; End of function sub_9939
  5275.  
  5276.  
  5277. ; =============== S U B R O U T I N E =======================================
  5278.  
  5279.  
  5280. BEEP_start:                             ; CODE XREF: sub_8C20-B76
  5281.                                         ; sub_8C20:loc_83E8 ...
  5282.                 push    hl
  5283.                 push    de
  5284.                 ld      hl, #511
  5285.                 ld      de, #A5 ; '?'
  5286.                 jr      BEEP_common
  5287.  
  5288. ; End of function BEEP_start
  5289.  
  5290.  
  5291. ; =============== S U B R O U T I N E =======================================
  5292.  
  5293.  
  5294. BEEP_move:                              ; CODE XREF: sub_8C20-A51
  5295.                                         ; sub_8C20-79C ...
  5296.                 push    hl
  5297.                 push    de
  5298.                 ld      hl, #43E
  5299.                 ld      de, #C4
  5300.                 jr      BEEP_common
  5301.  
  5302. ; End of function BEEP_move
  5303.  
  5304.  
  5305. ; =============== S U B R O U T I N E =======================================
  5306.  
  5307.  
  5308. BEEP_3:                                 ; CODE XREF: sub_8C20:loc_8419
  5309.                                         ; sub_8C20:loc_85DD ...
  5310.                 push    hl
  5311.                 push    de
  5312.                 ld      hl, #66A
  5313.                 ld      de, #83
  5314.                 jr      BEEP_common
  5315.  
  5316. ; End of function BEEP_3
  5317.  
  5318.  
  5319. ; =============== S U B R O U T I N E =======================================
  5320.  
  5321.  
  5322. BEEP_4:                                 ; CODE XREF: sub_907E+23
  5323.                 push    hl
  5324.                 push    de
  5325.                 ld      hl, #326
  5326.                 ld      de, #34
  5327.                 jr      BEEP_common
  5328.  
  5329. ; ---------------------------------------------------------------------------
  5330.                 push    hl
  5331.                 push    de
  5332.                 ld      hl, #326
  5333.                 ld      de, #105
  5334.  
  5335. BEEP_common:                            ; CODE XREF: BEEP_start+8
  5336.                                         ; BEEP_move+8   ...
  5337.                 di
  5338.                 call    BEEP_routine
  5339.                 ei
  5340.                 pop     de
  5341.                 pop     hl
  5342.                 ret
  5343.  
  5344. ; End of function BEEP_4
  5345.  
  5346.  
  5347. ; =============== S U B R O U T I N E =======================================
  5348.  
  5349.  
  5350. BEEP_routine:                           ; CODE XREF: BEEP_4+13
  5351.                 di
  5352.                 push    ix
  5353.                 push    bc
  5354.                 ld      a, l
  5355.                 srl     l
  5356.                 srl     l
  5357.                 cpl
  5358.                 and     3
  5359.                 ld      c, a
  5360.                 ld      b, 0
  5361.                 ld      ix, BEEP_loop
  5362.                 add     ix, bc
  5363.                 ld      a, (BRD_COLOR)
  5364.                 or      8
  5365. BEEP_loop:                              ; DATA XREF: BEEP_routine+F
  5366.                 nop
  5367.                 nop
  5368.                 nop
  5369.                 inc     b
  5370.                 inc     c
  5371. BEEP_wait:                              ; CODE XREF: BEEP_routine+20
  5372.                                         ; BEEP_routine+25
  5373.                 dec     c
  5374.                 jr      nz, BEEP_wait
  5375.                 ld      c, #3F
  5376.                 dec     b
  5377.                 jp      nz, BEEP_wait
  5378.                 xor     #10
  5379.                 out     (#FE),  a
  5380.                 ld      b, h
  5381.                 ld      c, a
  5382.                 bit     4, a
  5383.                 jr      nz, BEEP_smth
  5384.  
  5385.                 ld      a, d
  5386.                 or      e
  5387.                 jr      z, BEEP_exit
  5388.  
  5389.                 ld      a, c
  5390.                 ld      c, l
  5391.                 dec     de
  5392.                 jp      (ix)
  5393.  
  5394. ; ---------------------------------------------------------------------------
  5395.  
  5396. BEEP_smth:                              ; CODE XREF: BEEP_routine+30
  5397.                 ld      c, l
  5398.                 inc     c
  5399.                 jp      (ix)
  5400. ; ---------------------------------------------------------------------------
  5401. BEEP_exit:                              ; CODE XREF: BEEP_routine+34
  5402.                 pop     bc
  5403.                 pop     ix
  5404.                 ei
  5405.                 ret
  5406.  
  5407. ; End of function BEEP_routine
  5408.  
  5409. ; ---------------------------------------------------------------------------
  5410. aCyrusIi:       db 'CYRUS II     ',#7F
  5411.                 db ' 1986',#0D
  5412.                 db ' INTELLIGENT CHESS SOFTWARE LTD'
  5413.                 EOS
  5414.  
  5415.                 db '  LEVEL' ;печатается вместе с предыдущим
  5416.                 EOS
  5417.  
  5418.                 db      'Press <SPACE> to see board' ;печатается вместе с предыдущим
  5419.                 EOS
  5420.  
  5421. aPress:         db ' PRESS',#0D
  5422.                 db '<SPACE>',#0D
  5423.                 db '  for',#0D
  5424.                 db ' MENU'
  5425.                 EOS
  5426.  
  5427.  
  5428. aOOO:           db 'O-O-O'          ; DATA XREF: sub_8977+14
  5429.  
  5430.  
  5431. aNewGameYN:     db 'NEW GAME (Y/N)? ' ; DATA XREF: sub_92D7+1A
  5432.                 EOS
  5433.  
  5434. aNew:           db ' NEW ?'          ; DATA XREF: sub_92D7+D
  5435.                 EOS
  5436.  
  5437. aCyrus:         db 'CYRUS '          ; DATA XREF: sub_9F73 sub_A177+86 ...
  5438.                 EOS
  5439.  
  5440. a_PLAYER:       db 'PLAYER'          ; DATA XREF: sub_9F73+5 sub_A177+8D ...
  5441.                 EOS
  5442.  
  5443. a_ADAP:         db 'ADAP'            ; DATA XREF: PrintCurLevel:loc_8D56
  5444.                 EOS
  5445.  
  5446. a_INF:          db 'INF '            ; DATA XREF: PrintCurLevel+2F
  5447.                 EOS
  5448.  
  5449. aProb:          db 'PROB'            ; DATA XREF: PrintCurLevel+36
  5450.                 EOS
  5451.  
  5452. aAnalysis:      db 'ANALYSIS'        ; DATA XREF: sub_842C+10
  5453.                 EOS
  5454.  
  5455. aPrinter:       db 'PRINTER'
  5456.                 EOS
  5457.  
  5458. aNoMateIn:      db 'NO MATE IN '     ; DATA XREF: sub_A6F7:loc_A725
  5459.                 EOS
  5460.  
  5461. aIllegalSetup:  db 'ILLEGAL SETUP'   ; DATA XREF: sub_8C20+1
  5462.                 EOS
  5463.  
  5464. aStalemate:     db 'STALEMATE'       ; DATA XREF: sub_8C20-8A
  5465.                 EOS
  5466.  
  5467. aCheckmate:     db 'CHECKMATE'       ; DATA XREF: sub_8C20:loc_8B8D
  5468.                 EOS
  5469.                
  5470. aDraw:          db 'DRAW'            ; DATA XREF: sub_8C20:loc_8B9B
  5471.                 EOS
  5472.  
  5473. aBlack:         db 'BLACK'           ; DATA XREF: sub_8C20-62E
  5474.                                         ; sub_9F0D+61
  5475.                 EOS
  5476.  
  5477. aWhite:         db 'WHITE'           ; DATA XREF: sub_8C20-637
  5478.                                         ; sub_9F0D+58
  5479.                 EOS
  5480.  
  5481. aInitClk:       db '00:00:00'        ; DATA XREF: INIT_PRINT_CLOCKS
  5482.                                         ; INIT_PRINT_CLOCKS+B   ...
  5483.                 EOS
  5484.  
  5485.  
  5486. a_32spaces:     db '                        '
  5487. a_8spaces:      db '        '
  5488.                 EOS
  5489.  
  5490. aSetUpPosition: db 'SET UP POSITION',#0D ; DATA XREF: sub_9F0D+6
  5491.                 db 'C - Clear board M - Multi-move  E - Empty squ.  S - exit Setup  '
  5492.                 db 'G - new Game    X - swap colour L - Level       Z - Zero clocks '
  5493.                 db  #0D
  5494.                 db '   P,N,B,R,Q,K - piece to add'
  5495.                 EOS
  5496.  
  5497. aThinking:      db 'THINKING',#0D       ; DATA XREF: sub_9F0D+32
  5498.                 db  #0D
  5499.                 db 'M - Move now      H - Hint',#0D
  5500.                 db 'G - new Game'
  5501.                 EOS
  5502.  
  5503. aYourMove:      db 'YOUR MOVE',#0D
  5504.                 db 'A - Analysis      B - Back',#0D
  5505.                 db 'C - Cassette      D - Demo',#0D
  5506.                 db 'F - Forward       G - new Game',#0D
  5507.                 db 'H - Hint          I - Invert',#0D
  5508.                 db 'L - Level         M - Move',#0D
  5509.                 db      'P - Printer       S - Set posn.'
  5510.                 EOS
  5511.  
  5512. aBBackSSetPosn_:db 'B - Back          S - Set posn. G - new Game'
  5513.                 EOS
  5514.  
  5515. aSSaveRecordLLo:db 'S- Save record   L- Load record',#0D
  5516.                 db  #0D
  5517.                 db '  PRESS ANY OTHER KEY TO ABORT'
  5518.                 EOS
  5519.  
  5520. aNotAGameRecord:db 'NOT A '
  5521. aGameRecord:    db 'GAME RECORD : ' ; DATA XREF: sub_8C20+1A03
  5522.                 EOS
  5523.  
  5524. aLoadAGameRecor:db '      LOAD A GAME RECORD',#0D
  5525.                 db 'ENTER FILENAME; <BREAK> TO ABORT'
  5526.                 EOS
  5527.  
  5528. aSaveTheGameRec:db '      SAVE THE GAME RECORD',#0D
  5529.                 db 'ENTER FILENAME; <BREAK> TO ABORT'
  5530.                 EOS
  5531.  
  5532. aStartTapeAndPr:db '  START TAPE AND PRESS ANY KEY'
  5533.                 EOS
  5534.  
  5535. aZZxPrinterPSer:db ' Z-ZX PRINTER    P-SERIAL',#0D
  5536.                 db ' G-GAME RECORD   B-BOARD',#0D
  5537.                 db ' C-CONTINUOUS    O-OPTIONS',#0D
  5538.                 db  #0D
  5539.                 db '  PRESS ANY OTHER KEY TO ABORT'
  5540.                 EOS
  5541.  
  5542. aSelectBaudRate:db 'SELECT BAUD RATE:-',#0D
  5543.                 db '1=50  2=110  3=300  4=600 5=12006=2400  7=4800  8=9600  9=19200 ',#0D
  5544.                 db '            C=CR+LF',#0D
  5545.                 db  #0D
  5546.                 db '  PRESS ANY OTHER KEY TO ABORT'
  5547.                 EOS
  5548. ; ---------------------------------------------------------------------------
  5549.  
  5550. PRINT_STR_scr0:                         ; CODE XREF: sub_8C20-666
  5551.                                         ; sub_8C20:loc_85F5 ...
  5552.                 xor     a
  5553.                 jr      PRINT_STR_A
  5554.  
  5555.  
  5556. ; =============== S U B R O U T I N E =======================================
  5557.  
  5558.  
  5559. PrintStrF00:                            ; CODE XREF: sub_8C20-6B sub_8C20+4     ...
  5560.                 ld      de, #F00
  5561.                 ld      (scr_XY), de
  5562.                 call    PRINT_STR_FF
  5563.  
  5564.                 ret
  5565.  
  5566. ; End of function PrintStrF00
  5567.  
  5568.  
  5569. ; =============== S U B R O U T I N E =======================================
  5570.  
  5571.  
  5572. PRINT_STR_FF:                           ; CODE XREF: sub_842C:loc_843F
  5573.                                         ; PrintMoveText+9 ...
  5574.                 ld      a, #FF
  5575.  
  5576. PRINT_STR_A:                            ; CODE XREF: RAM:9E66
  5577.                 ld      (NEED_SCR2BUF), a
  5578.  
  5579. loc_9E78:                               ; CODE XREF: PRINT_STR_FF+14
  5580.                                         ; PRINT_STR_FF+1F
  5581.                 ld      a, (hl)
  5582.                 inc     hl
  5583.                 cp      #D
  5584.                 jr      nz, loc_9E89
  5585.  
  5586.                 push    hl
  5587.                 ld      hl, scr_XY
  5588.                 ld      (hl), 0
  5589.                 inc     hl
  5590.                 inc     (hl)
  5591.                 pop     hl
  5592.                 jr      loc_9E78
  5593.  
  5594. ; ---------------------------------------------------------------------------
  5595.  
  5596. loc_9E89:                               ; CODE XREF: PRINT_STR_FF+9
  5597.                 push    af
  5598.                 and     #7F
  5599.                 call    PRINT_LETTER
  5600.  
  5601.                 pop     af
  5602.                 bit     7, a
  5603.                 jr      z, loc_9E78
  5604.  
  5605.                 ret
  5606.  
  5607. ; End of function PRINT_STR_FF
  5608.  
  5609.  
  5610. ; =============== S U B R O U T I N E =======================================
  5611.  
  5612.  
  5613. PRINT_LETTER:                           ; CODE XREF: PrintCurLevel+1C PrintCurLevel+22 ...
  5614.                 push    hl
  5615.                 push    de
  5616.                 push    bc
  5617.                 push    af
  5618.                 call    CALC_SCR_ADDRS
  5619.  
  5620.                 ld      hl, (scr_pix_addr)
  5621.                 call    ADDR_SCR2BUF
  5622.  
  5623.                 add     hl, de
  5624.                 pop     af
  5625.                 cp      '0'
  5626.                 jr      nz, loc_9EAA
  5627.                 ld      a,'O'
  5628. loc_9EAA:                               ; CODE XREF: PRINT_LETTER+11
  5629.                 push    hl
  5630.                 ld      de,font-256 ;#3C00      ; ROM FONT
  5631.                 ld      l, a
  5632.                 ld      h, 0
  5633.                 add     hl, hl
  5634.                 add     hl, hl
  5635.                 add     hl, hl
  5636.                 add     hl, de
  5637.                 ex      de, hl
  5638.                 pop     hl
  5639.                 ld      b, 8
  5640. loc_9EB9:                               ; CODE XREF: PRINT_LETTER+28
  5641.                 ld      a, (de)
  5642.                 ld      (hl), a
  5643.                 inc     de
  5644.                 inc     h
  5645.                 djnz    loc_9EB9
  5646.  
  5647.                 ld      hl, (scr_XY)
  5648.                 ld      a, l
  5649.                 inc     a
  5650.                 cp      #20
  5651.                 jr      nz, loc_9ECA
  5652.                 xor     a
  5653.                 inc     h
  5654. loc_9ECA:                               ; CODE XREF: PRINT_LETTER+31
  5655.                 ld      l, a
  5656.                 ld      (scr_XY), hl
  5657.                 pop     bc
  5658.                 pop     de
  5659.                 pop     hl
  5660.                 ret
  5661.  
  5662. ; End of function PRINT_LETTER
  5663.  
  5664.  
  5665. ; =============== S U B R O U T I N E =======================================
  5666.  
  5667.  
  5668. ADDR_SCR2BUF:                           ; CODE XREF: PRINT_LETTER+A
  5669.                 push    af
  5670.                 push    hl
  5671.                 ld      a, (SEL_SCRorBUF)
  5672.                 ld      hl, NEED_SCR2BUF
  5673.                 cp      (hl)
  5674.                 ld      de, SCR_BUF_6400-#4000  ; addition to move to SCR_BUF=#6400
  5675.                 jr      nz, loc_9EE3
  5676.                 ld      de, 0
  5677. loc_9EE3:                               ; CODE XREF: ADDR_SCR2BUF+C
  5678.                 pop     hl
  5679.                 pop     af
  5680.                 ret
  5681.  
  5682. ; End of function ADDR_SCR2BUF
  5683.  
  5684.  
  5685. ; =============== S U B R O U T I N E =======================================
  5686.  
  5687.  
  5688. sub_9EE6:                               ; CODE XREF: sub_92D7-1239
  5689.                                         ; sub_8C20+1A5B
  5690.                 call    FillAttrsAndBorder
  5691.  
  5692.                 ld      hl, #C
  5693.                 ld      (scr_XY), hl
  5694.                 ld      hl, aCyrusIi    ; "CYRUS II     "
  5695.                 call    PRINT_STR_FF
  5696.  
  5697.                 ld      de, #318
  5698.                 ld      (scr_XY), de
  5699.                 call    PRINT_STR_FF
  5700.  
  5701.                 ld      de, #1703
  5702.                 ld      (scr_XY), de
  5703.                 call    PRINT_STR_FF
  5704.  
  5705.                 call    PrintCurLevel
  5706.  
  5707.                 ret
  5708.  
  5709. ; End of function sub_9EE6
  5710.  
  5711.  
  5712. ; =============== S U B R O U T I N E =======================================
  5713.  
  5714.  
  5715. sub_9F0D:                               ; CODE XREF: sub_8C20:loc_818F
  5716.                                         ; sub_8C20:loc_8378 ...
  5717. ;show state and help
  5718. ; FUNCTION CHUNK AT 9F5B SIZE 00000018 BYTES
  5719.  
  5720.                 call    sub_842C
  5721.  
  5722.                 ld      de, #1000
  5723.                 ld      hl, aSetUpPosition ; "SET UP POSITION"
  5724.                 ld      a, (byte_D04D)
  5725.                 rra
  5726.                 jr      c, loc_9F5B
  5727.  
  5728.                 push    de
  5729.                 ld      de, #306
  5730.                 call    sub_9F8B
  5731.  
  5732.                 bit     1, b
  5733.                 call    sub_9F73
  5734.  
  5735.                 bit     0, b
  5736.                 call    sub_9F73
  5737.  
  5738.                 call    sub_A177
  5739.  
  5740.                 pop     de
  5741.                 ld      hl, aYourMove   ; "YOUR MOVE"
  5742.                 ld      a, (byte_D0B4)
  5743.                 bit     5, a
  5744.                 jr      nz, PrintGameState ;invisible board?
  5745.  
  5746.                 bit     6, a
  5747.                 jr      z, PrintGameState
  5748.  
  5749.                 ld      hl, aThinking   ; "THINKING"
  5750.  
  5751. ; End of function sub_9F0D
  5752.  
  5753.  
  5754. ; =============== S U B R O U T I N E =======================================
  5755.  
  5756.  
  5757. PrintGameState:                         ; CODE XREF: sub_8C20-62 sub_9F0D+2C ...
  5758.                 ld      bc, (gamestatemsgaddr)
  5759.                 ld      (gamestatemsgaddr), hl
  5760.                 or      a
  5761.                 sbc     hl, bc
  5762.                 ret     z ;не перепечатываем
  5763.                 call    PrintClear1000
  5764.                 ld      hl, (gamestatemsgaddr)
  5765. loc_9F53:                               ; CODE XREF: sub_9F0D+5F sub_9F0D+64
  5766.                 ld      (scr_XY), de
  5767.                 call    PRINT_STR_FF
  5768.  
  5769.                 ret
  5770.  
  5771. ; End of function PrintGameState
  5772.  
  5773. ; ---------------------------------------------------------------------------
  5774. ; START OF FUNCTION CHUNK FOR sub_9F0D
  5775.  
  5776. loc_9F5B:                               ; CODE XREF: sub_9F0D+D
  5777.                 ld      (scr_XY), de
  5778.                 call    PrintGameState
  5779.  
  5780.                 ld      de, #1019
  5781.                 ld      hl, aWhite      ; "WHIT"
  5782.                 ld      a, (byte_D08D)
  5783.                 rla
  5784.                 jr      c, loc_9F53
  5785.  
  5786.                 ld      hl, aBlack      ; "BLAC"
  5787.                 jr      loc_9F53
  5788.  
  5789. ; END OF FUNCTION CHUNK FOR sub_9F0D
  5790.  
  5791. ; =============== S U B R O U T I N E =======================================
  5792.  
  5793.  
  5794. sub_9F73:                               ; CODE XREF: sub_9F0D+18 sub_9F0D+1D
  5795.                 ld      hl, aCyrus      ; "CYRUS"
  5796.                 jr      nz, loc_9F7B
  5797.  
  5798.                 ld      hl, a_PLAYER    ; "PLAYE"
  5799.  
  5800.  
  5801. loc_9F7B:                               ; CODE XREF: sub_9F73+3
  5802.                 ld      (scr_XY), de
  5803.                 call    PRINT_STR_FF
  5804.  
  5805.                 ld      de, (scr_XY)
  5806.                 inc     de
  5807.                 inc     de
  5808.                 inc     de
  5809.                 inc     de
  5810.                 ret
  5811.  
  5812. ; End of function sub_9F73
  5813.  
  5814.  
  5815. ; =============== S U B R O U T I N E =======================================
  5816.  
  5817.  
  5818. sub_9F8B:                               ; CODE XREF: sub_9F0D+13 sub_A177+83
  5819.                 ld      a, (byte_D0B4)
  5820.                 ld      b, 0
  5821.                 rra
  5822.                 ret     c
  5823.                 ld      b, 3
  5824.                 rra
  5825.                 ret     c
  5826.                 dec     b
  5827.                 ld      a, (byte_D0B2)
  5828.                 or      a
  5829.                 ret     z
  5830.                 dec     b
  5831.                 ret
  5832.  
  5833. ; End of function sub_9F8B
  5834.  
  5835.  
  5836. ; =============== S U B R O U T I N E =======================================
  5837.  
  5838.  
  5839. PrintClear1000:                         ; CODE XREF: PrintGameState+B
  5840. ;clear game state on screen
  5841.                 ld      hl, #1000
  5842.                 ld      (scr_XY), hl
  5843. loc_9FA4:                               ; CODE XREF: PrintClear1000+12
  5844.                 ld      hl, a_32spaces  ; "                        "
  5845.                 call    PRINT_STR_FF
  5846.                 ld      a, (scr_XY+1)
  5847.                 cp      #17
  5848.                 ret     z
  5849.                 jr      loc_9FA4
  5850.  
  5851. ; End of function PrintClear1000
  5852. ; =============== S U B R O U T I N E =======================================
  5853.  
  5854.  
  5855. sub_9FB2:                               ; CODE XREF: sub_8C20-94C
  5856. ;добавление хода на экране со скроллом? ; sub_8DE9+4D
  5857.                 ld      a, #FF
  5858.                 ld      (NEED_SCR2BUF), a
  5859.                 call    PrintMoveNumber
  5860.  
  5861.                 ld      l, 6
  5862.                 call    sub_A164
  5863.  
  5864.                 ld      a, (byte_D0C0)
  5865.                 jr      c, loc_9FCB
  5866.  
  5867.                 ld      l, #10
  5868.                 inc     a
  5869.                 ld      (byte_D0C0), a
  5870.                 dec     a
  5871.  
  5872. loc_9FCB:                               ; CODE XREF: sub_9FB2+10
  5873.                 add     a, 6
  5874.                 ld      h, a
  5875.                 push    hl
  5876.                 ld      (scr_XY), hl
  5877.                 ld      hl, buf_10bytes
  5878.                 call    PRINT_STR_FF
  5879.  
  5880.                 pop     hl
  5881.                 ld      de, #B10
  5882.                 or      a
  5883.                 sbc     hl, de
  5884.                 call    z, SCROLL_UP
  5885.  
  5886.                 ld      hl, buf_10bytes
  5887.                 ld      de, txt_buf_6
  5888.                 ld      bc, 6
  5889.                 ldir
  5890.                 ex      de, hl
  5891.                 dec     hl
  5892.                 set     7, (hl)
  5893.                 call    sub_A3D0
  5894.  
  5895.                 ret
  5896.  
  5897. ; End of function sub_9FB2
  5898.  
  5899.  
  5900. ; =============== S U B R O U T I N E =======================================
  5901.  
  5902.  
  5903. sub_9FF5:                               ; CODE XREF: sub_8C20-A12
  5904.                                         ; sub_8C20-A06 ...
  5905.                 push    hl
  5906.                 push    bc
  5907.                 ld      b, #20 ; ' '
  5908.                 ld      l, a
  5909.                 ld      h, BRD_88_0/256
  5910.                 ld      a, (hl)
  5911.                 or      a
  5912.                 jr      z, loc_A01D
  5913.  
  5914.                 ld      l, a
  5915.                 res     2, l
  5916.                 inc     l
  5917.                 inc     h               ; word_D100
  5918.                 ld      a, (hl)
  5919.                 and     #F
  5920.                 ld      b, #4B ; 'K'
  5921.                 jr      z, loc_A01D
  5922.  
  5923.                 ld      b, #20 ; ' '
  5924.                 cp      1
  5925.                 jr      z, loc_A01D
  5926.  
  5927.                 ld      a, (hl)
  5928.                 and     #8F
  5929.                 ld      hl, KING-1
  5930.                 call    sub_8CF7 ;поиск класса фигуры по цене
  5931.  
  5932.                 inc     hl
  5933.                 ld      b, (hl)
  5934.  
  5935.  
  5936. loc_A01D:                               ; CODE XREF: sub_9FF5+9 sub_9FF5+15     ...
  5937.                 ld      a, b
  5938.                 pop     bc
  5939.                 pop     hl
  5940.                 ret
  5941.  
  5942. ; End of function sub_9FF5
  5943.  
  5944.  
  5945. ; =============== S U B R O U T I N E =======================================
  5946.  
  5947.  
  5948. sub_A021:                               ; CODE XREF: sub_A684+36 sub_A684+42
  5949.                 ld      b, a
  5950.                 and     7
  5951.                 add     a, #61 ; 'a'
  5952.                 call    PRINT_LETTER
  5953.  
  5954.                 ld      a, #70 ; 'p'
  5955.                 and     b
  5956.                 rra
  5957.                 rra
  5958.                 rra
  5959.                 rra
  5960.                 neg
  5961.                 add     a, #38 ; '8'
  5962.                 call    PRINT_LETTER
  5963.  
  5964.                 ret
  5965.  
  5966. ; End of function sub_A021
  5967.  
  5968.  
  5969. ; =============== S U B R O U T I N E =======================================
  5970.  
  5971.  
  5972. INIT_PRINT_CLOCKS:                      ; CODE XREF: sub_8C20-B79
  5973.                                         ; sub_8C20-60B ...
  5974.                 ld      hl, aInitClk    ; "00:00:0"
  5975.                 ld      de, CLK_1
  5976.                 ld      bc, 8
  5977.                 ldir
  5978.                 ld      hl, aInitClk    ; "00:00:0"
  5979.                 ld      de, CLK_2
  5980.                 ld      bc, 8
  5981.                 ldir
  5982.                 ld      hl, #405
  5983.                 ld      (scr_XY), hl
  5984.                 ld      hl, aInitClk    ; "00:00:0"
  5985.                 call    PRINT_STR_FF
  5986.  
  5987.                 ld      hl, #40F
  5988.                 ld      (scr_XY), hl
  5989.                 ld      hl, aInitClk    ; "00:00:0"
  5990.                 call    PRINT_STR_FF
  5991.  
  5992.                 call    sub_A228
  5993.  
  5994.                 ret
  5995.  
  5996. ; End of function INIT_PRINT_CLOCKS
  5997.  
  5998.  
  5999. ; =============== S U B R O U T I N E =======================================
  6000.  
  6001.  
  6002. PRINT_CLOCKS_SWAP:                      ; CODE XREF: sub_8C20+1A5E
  6003.                 ld      hl, #405
  6004.                 ld      (scr_XY), hl
  6005.                 ld      hl, CLK_2
  6006.                 ld      de, CLK_1
  6007.                 ld      a, (byte_D0B3) ;d3=swap board
  6008.                 and     8
  6009.                 jr      z, loc_A07E
  6010.  
  6011.                 ex      de, hl
  6012.  
  6013.  
  6014. loc_A07E:                               ; CODE XREF: PRINT_CLOCKS_SWAP+11
  6015.                 push    de
  6016.                 call    PRINT_STR_FF
  6017.  
  6018.                 ld      hl,#40F
  6019.                 ld      (scr_XY), hl
  6020.                 pop     hl
  6021.                 call    PRINT_STR_FF
  6022.  
  6023.                 ret
  6024.  
  6025. ; End of function PRINT_CLOCKS_SWAP
  6026.  
  6027.  
  6028. ; =============== S U B R O U T I N E =======================================
  6029.  
  6030. PrintMoveNumber:                                ; CODE XREF: sub_8C20-AF7 sub_9FB2+5
  6031.                 ld      a, #FF          ; print move # in decimal???
  6032.                 ld      (NEED_SCR2BUF), a
  6033.                 ld      a, (byte_D0C0)
  6034.                 add     a, 6
  6035.                 ld      h, a
  6036.                 ld      l, 0
  6037.                 ld      (scr_XY), hl
  6038.                 ld      a, (byte_D049) ;move #
  6039.                 ld      b, a
  6040.                 ld      a, (byte_D0B4)
  6041.                 bit     5, a
  6042.                 jr      z, loc_A0AF ;visible board?
  6043.  
  6044.                 ld      a, (byte_D0BF)
  6045.                 rra
  6046.                 jr      nc, loc_A0AF
  6047.                 dec     b
  6048. loc_A0AF:                               ; CODE XREF: PrintMoveNumber+19 PrintMoveNumber+1F
  6049.                 ld      a, (byte_D0B7)
  6050.                 cp      b
  6051.                 ret     z
  6052.                 ld      a, b
  6053.                 ld      (byte_D0B7), a
  6054.                 ld      bc, #3000
  6055. loc_A0BB:                               ; CODE XREF: PrintMoveNumber+36
  6056.                 cp      100
  6057.                 jr      c, loc_A0C5
  6058.                 inc     b
  6059.                 inc     c
  6060.                 sub     100
  6061.                 jr      loc_A0BB
  6062. ; ---------------------------------------------------------------------------
  6063. loc_A0C5:                               ; CODE XREF: PrintMoveNumber+30
  6064.                 ex      af, af' ;'
  6065.                 ld      a, b
  6066.                 cp      '0'
  6067.                 jr      nz, loc_A0D3
  6068.  
  6069.                 ld      a, c
  6070.                 or      a
  6071.                 ld      a, '0'
  6072.                 jr      nz, loc_A0D3
  6073.                 ld      a, ' '
  6074. loc_A0D3:                               ; CODE XREF: PrintMoveNumber+3C PrintMoveNumber+42
  6075.                 call    sub_A0F7
  6076.                 ex      af, af' ;'
  6077.                 ld      b, '0'
  6078. loc_A0D9:                               ; CODE XREF: PrintMoveNumber+54
  6079.                 cp      10
  6080.                 jr      c, loc_A0E3
  6081.                 inc     b
  6082.                 inc     c
  6083.                 sub     10
  6084.                 jr      loc_A0D9
  6085. ; ---------------------------------------------------------------------------
  6086. loc_A0E3:                               ; CODE XREF: PrintMoveNumber+4E
  6087.                 ex      af, af' ;'
  6088.                 ld      a, b
  6089.                 cp      '0'
  6090.                 jr      nz, loc_A0F1
  6091.                 ld      a, c
  6092.                 or      a
  6093.                 ld      a, '0'
  6094.                 jr      nz, loc_A0F1
  6095.                 ld      a, ' '
  6096. loc_A0F1:                               ; CODE XREF: PrintMoveNumber+5A PrintMoveNumber+60
  6097.                 call    sub_A0F7
  6098.                 ex      af, af' ;'
  6099.                 add     a, '0'
  6100. ; End of function PrintMoveNumber
  6101. ; =============== S U B R O U T I N E =======================================
  6102. sub_A0F7:                               ; CODE XREF: PrintMoveNumber:loc_A0D3
  6103.                                         ; PrintMoveNumber:loc_A0F1
  6104.                 push    af
  6105.                 call    PRINT_LETTER
  6106.  
  6107.                 ld      a, (byte_D0E1)
  6108.                 cp      3
  6109.                 jr      nc, loc_A102 ;???
  6110. loc_A102:                               ; CODE XREF: sub_A0F7+9
  6111.                 pop     af
  6112.                 ret
  6113. ; End of function sub_A0F7
  6114. ; =============== S U B R O U T I N E =======================================
  6115.  
  6116.  
  6117. SCROLL_UP:                              ; CODE XREF: sub_9FB2+2D
  6118.                 di
  6119.                 ld      hl,  SCR_BUF_6400+#C0
  6120.                 ld      a, (SEL_SCRorBUF)
  6121.                 or      a
  6122.                 jr      z, loc_A111
  6123.                 ld      hl,  SCREEN+#C0
  6124. loc_A111:                               ; CODE XREF: SCROLL_UP+8
  6125.                 ld      a, 5
  6126.                 ex      af, af' ;'
  6127.  
  6128. loc_A114:                               ; CODE XREF: SCROLL_UP+34
  6129.                 ld      a, #20 ; ' '
  6130.                 add     a, l
  6131.                 ld      e, a
  6132.                 ld      a, h
  6133.                 jr      nc, loc_A11D
  6134.                 add     a, 8
  6135. loc_A11D:                               ; CODE XREF: SCROLL_UP+15
  6136.                 ld      d, a            ; DE is 1 char lower than HL
  6137.                 push    de
  6138.                 ld      c, 8
  6139. loc_A121:                               ; CODE XREF: SCROLL_UP+2C
  6140.                 push    hl
  6141.                 push    de
  6142.                 ld      b, #20
  6143. loc_A125:                               ; CODE XREF: SCROLL_UP+25
  6144.                 ld      a, (de)
  6145.                 ld      (hl), a
  6146.                 inc     hl
  6147.                 inc     de
  6148.                 djnz    loc_A125
  6149.  
  6150.                 pop     de
  6151.                 pop     hl
  6152.                 inc     h
  6153.                 inc     d
  6154.                 dec     c
  6155.                 jr      nz, loc_A121
  6156.  
  6157.                 pop     hl
  6158.                 ex      af, af' ;'
  6159.                 dec     a
  6160.                 jr      z, loc_A13A
  6161.  
  6162.                 ex      af, af' ;'
  6163.                 jr      loc_A114
  6164.  
  6165. ; ---------------------------------------------------------------------------
  6166.  
  6167. loc_A13A:                               ; CODE XREF: SCROLL_UP+31
  6168.                 ld      c, 8
  6169. loc_A13C:                               ; CODE XREF: SCROLL_UP+43
  6170.                 push    hl
  6171.                 ld      b, #20
  6172.                 xor     a
  6173. loc_A140:                               ; CODE XREF: SCROLL_UP+3E
  6174.                 ld      (hl), a
  6175.                 inc     hl
  6176.                 djnz    loc_A140
  6177.  
  6178.                 pop     hl
  6179.                 inc     h
  6180.                 dec     c
  6181.                 jr      nz, loc_A13C
  6182.  
  6183.                 ld      a, 5
  6184.                 ld      (byte_D0C0), a
  6185.                 ei
  6186.                 ret
  6187.  
  6188. ; End of function SCROLL_UP
  6189.  
  6190.  
  6191. ; =============== S U B R O U T I N E =======================================
  6192.  
  6193.  
  6194. sub_A150:                               ; CODE XREF: sub_8C20-676
  6195.                                         ; sub_9018+4B
  6196.                 call    sub_A164
  6197.  
  6198.                 ld      a, (byte_D0B3) ;d3=swap board
  6199.                 jr      c, loc_A15E
  6200.  
  6201.                 and     8
  6202.                 jr      nz, loc_A162
  6203.  
  6204.  
  6205. loc_A15C:                               ; CODE XREF: sub_A150+10
  6206.                 or      a
  6207.                 ret
  6208.  
  6209. ; ---------------------------------------------------------------------------
  6210.  
  6211. loc_A15E:                               ; CODE XREF: sub_A150+6
  6212.                 and     8
  6213.                 jr      nz, loc_A15C
  6214.  
  6215.  
  6216. loc_A162:                               ; CODE XREF: sub_A150+A
  6217.                 scf
  6218.                 ret
  6219.  
  6220. ; End of function sub_A150
  6221.  
  6222.  
  6223. ; =============== S U B R O U T I N E =======================================
  6224.  
  6225.  
  6226. sub_A164:                               ; CODE XREF: sub_9018+12 sub_954C ...
  6227.                 ld      a, (byte_D0BF)
  6228.                 rra
  6229.                 ld      a, (byte_D0B4)
  6230.                 bit     5, a
  6231.                 jr      c, loc_A173
  6232.  
  6233.                 jr      nz, loc_A175 ;invisible board?
  6234.  
  6235. loc_A171:                               ; CODE XREF: sub_A164:loc_A173
  6236.                 or      a
  6237.                 ret
  6238.  
  6239. ; ---------------------------------------------------------------------------
  6240.  
  6241. loc_A173:                               ; CODE XREF: sub_A164+9
  6242.                 jr      nz, loc_A171
  6243.  
  6244.  
  6245. loc_A175:                               ; CODE XREF: sub_A164+B
  6246.                 scf
  6247.                 ret
  6248.  
  6249. ; End of function sub_A164
  6250.  
  6251.  
  6252. ; =============== S U B R O U T I N E =======================================
  6253.  
  6254.  
  6255. sub_A177:                               ; CODE XREF: HotKeys+254
  6256.                                         ; sub_9F0D+20
  6257.  
  6258. ; FUNCTION CHUNK AT A1F1 SIZE 00000037 BYTES
  6259.  
  6260.                 call    SHOW_LOGO
  6261.  
  6262.                 ld      hl, #B00
  6263.                 ld      (scr_XY), hl
  6264.                 ld      hl, aPress      ; " PRESS"
  6265.                 call    PRINT_STR_scr0
  6266.  
  6267.                 ld      hl, SCR_ATTRS
  6268.                 ld      a, (SEL_SCRorBUF)
  6269.                 or      a
  6270.                 jr      z, loc_A193
  6271.  
  6272.                 ld      de, #2400
  6273.                 add     hl, de
  6274.  
  6275.  
  6276. loc_A193:                               ; CODE XREF: sub_A177+16
  6277.                 ld      e, 1
  6278.                 call    sub_A24B
  6279.  
  6280.                 ld      hl,  SCR_ATTRS+#100
  6281.                 ld      a, (SEL_SCRorBUF)
  6282.                 or      a
  6283.                 jr      z, loc_A1A5
  6284.  
  6285.                 ld      de, #2400
  6286.                 add     hl, de
  6287.  
  6288.  
  6289. loc_A1A5:                               ; CODE XREF: sub_A177+28
  6290.                 ld      a, (byte_D0B3) ;d3=swap board
  6291.                 ld      e, 0
  6292.                 and     8
  6293.                 jr      z, loc_A1B0
  6294.  
  6295.                 ld      e, 7
  6296.  
  6297.  
  6298. loc_A1B0:                               ; CODE XREF: sub_A177+35
  6299.                 call    sub_A24B
  6300.  
  6301.                 ld      hl,  SCR_ATTRS+#200
  6302.                 ld      a, (SEL_SCRorBUF)
  6303.                 or      a
  6304.                 jr      z, loc_A1C0
  6305.  
  6306.                 ld      de, #2400
  6307.                 add     hl, de
  6308.  
  6309.  
  6310. loc_A1C0:                               ; CODE XREF: sub_A177+43
  6311.                 ld      a, (byte_D0B3) ;d3=swap board
  6312.                 ld      e, 7
  6313.                 and     8
  6314.                 jr      z, loc_A1CB
  6315.  
  6316.                 ld      e, 0
  6317.  
  6318.  
  6319. loc_A1CB:                               ; CODE XREF: sub_A177+50
  6320.                 call    sub_A24B
  6321.  
  6322.                 ld      hl, #800
  6323.                 ld      b, 3
  6324.                 call    sub_A1E0
  6325.  
  6326.                 ld      hl, #1000
  6327.                 ld      b, 3
  6328.                 call    sub_A1E0
  6329.  
  6330.                 jr      loc_A1F1
  6331.  
  6332. ; End of function sub_A177
  6333.  
  6334.  
  6335. ; =============== S U B R O U T I N E =======================================
  6336.  
  6337.  
  6338. sub_A1E0:                               ; CODE XREF: sub_A177+5C sub_A177+64 ...
  6339.                 push    bc
  6340.                 push    hl
  6341.                 ld      (scr_XY), hl
  6342.                 ld      hl, a_8spaces   ; "       "
  6343.                 call    PRINT_STR_scr0
  6344.  
  6345.                 pop     hl
  6346.                 inc     h
  6347.                 pop     bc
  6348.                 djnz    sub_A1E0
  6349.  
  6350.                 ret
  6351.  
  6352. ; End of function sub_A1E0
  6353.  
  6354. ; ---------------------------------------------------------------------------
  6355. ; START OF FUNCTION CHUNK FOR sub_A177
  6356.  
  6357. loc_A1F1:                               ; CODE XREF: sub_A177+67
  6358.                 call    sub_A228
  6359.  
  6360.                 ld      hl, #801
  6361.                 ld      (scr_XY), hl
  6362.                 call    sub_9F8B
  6363.  
  6364.                 ld      hl, aCyrus      ; "CYRUS"
  6365.                 bit     1, b
  6366.                 jr      nz, loc_A207
  6367.  
  6368.                 ld      hl, a_PLAYER    ; "PLAYE"
  6369.  
  6370.  
  6371. loc_A207:                               ; CODE XREF: sub_A177+8B
  6372.                 ld      de, aCyrus      ; "CYRUS"
  6373.                 bit     0, b
  6374.                 jr      nz, loc_A211
  6375.  
  6376.                 ld      de, a_PLAYER    ; "PLAYE"
  6377.  
  6378.  
  6379. loc_A211:                               ; CODE XREF: sub_A177+95
  6380.                 ld      a, (byte_D0B3) ;d3=swap board
  6381.                 and     8
  6382.                 jr      nz, loc_A219
  6383.  
  6384.                 ex      de, hl
  6385.  
  6386.  
  6387. loc_A219:                               ; CODE XREF: sub_A177+9F
  6388.                 push    de
  6389.                 call    PRINT_STR_scr0
  6390.  
  6391.                 ld      hl, #1001
  6392.                 ld      (scr_XY), hl
  6393.                 pop     hl
  6394.                 call    PRINT_STR_scr0
  6395.  
  6396.                 ret
  6397.  
  6398. ; END OF FUNCTION CHUNK FOR sub_A177
  6399.  
  6400. ; =============== S U B R O U T I N E =======================================
  6401.  
  6402.  
  6403. sub_A228:                               ; CODE XREF: INIT_PRINT_CLOCKS+2E
  6404.                                         ; sub_A177:loc_A1F1
  6405.                 ld      hl, #900
  6406.                 ld      (scr_XY), hl
  6407.                 ld      hl,  CLK_2+1
  6408.                 ld      de,  CLK_1+1
  6409.                 ld      a, (byte_D0B3) ;d3=swap board
  6410.                 and     8
  6411.                 jr      z, loc_A23C
  6412.  
  6413.                 ex      de, hl
  6414.  
  6415.  
  6416. loc_A23C:                               ; CODE XREF: sub_A228+11
  6417.                 push    de
  6418.                 call    PRINT_STR_scr0
  6419.  
  6420.                 ld      hl, #1100
  6421.                 ld      (scr_XY), hl
  6422.                 pop     hl
  6423.                 call    PRINT_STR_scr0
  6424.  
  6425.                 ret
  6426.  
  6427. ; End of function sub_A228
  6428.  
  6429.  
  6430. ; =============== S U B R O U T I N E =======================================
  6431.  
  6432.  
  6433. sub_A24B:                               ; CODE XREF: sub_A177+1E
  6434.                                         ; sub_A177:loc_A1B0 ...
  6435.                 ld      b, 3
  6436.  
  6437.  
  6438. loc_A24D:                               ; CODE XREF: sub_A24B:loc_A25F
  6439.                 ld      c, 8
  6440.  
  6441.  
  6442. loc_A24F:                               ; CODE XREF: sub_A24B+B
  6443.                 ld      a, (hl)
  6444.                 and     #F8 ; 'ш'
  6445.                 or      e
  6446.                 ld      (hl), a
  6447.                 inc     hl
  6448.                 dec     c
  6449.                 jr      nz, loc_A24F
  6450.  
  6451.                 ld      a, #18
  6452.                 add     a, l
  6453.                 ld      l, a
  6454.                 jr      nc, loc_A25F
  6455.  
  6456.                 inc     h
  6457.  
  6458.  
  6459. loc_A25F:                               ; CODE XREF: sub_A24B+11
  6460.                 djnz    loc_A24D
  6461.  
  6462.                 ret
  6463.  
  6464. ; End of function sub_A24B
  6465.  
  6466.  
  6467. ; =============== S U B R O U T I N E =======================================
  6468.  
  6469.  
  6470. sub_A262:                               ; CODE XREF: sub_8C20:loc_80CE
  6471.                                         ; sub_87CD
  6472.                 ld      a, #20 ; ' '
  6473.                 ld      b, 8
  6474.                 ld      hl, unk_637C
  6475.  
  6476.  
  6477. loc_A269:                               ; CODE XREF: sub_A262+9
  6478.                 inc     hl
  6479.                 ld      (hl), a
  6480.                 djnz    loc_A269
  6481.  
  6482.                 set     7, (hl)
  6483.                 ret
  6484.  
  6485. ; End of function sub_A262
  6486.  
  6487.  
  6488. ; =============== S U B R O U T I N E =======================================
  6489.  
  6490.  
  6491. PRT_DETECT:                             ; CODE XREF: START_POINT+8A
  6492.                 xor     a
  6493.                 ld      (byte_D0E1), a
  6494.                 ld      hl, PRTD_no_serial
  6495.                 push    hl
  6496.                 ld      (bas_ERRSP), sp
  6497.  
  6498.                 ;rst    8               ; somehow jumps to pushed address (loc_A28E)
  6499.                 ;db     #31
  6500.                  call PRTD_no_serial
  6501.  
  6502.                 ld      hl, #C
  6503.                 ld      (word_5CC3), hl
  6504.                 ld      a, #39 ; '9'
  6505.                 ld      (baudrate_NUM), a
  6506.                 pop     af
  6507.                 ld      a, 4            ; serial printer bit
  6508.                  ret ;jr        loc_A28F
  6509.  
  6510. ; ---------------------------------------------------------------------------
  6511.  
  6512. PRTD_no_serial:                         ; DATA XREF: PRT_DETECT+4
  6513.                 xor     a
  6514.  
  6515. loc_A28F:                               ; CODE XREF: PRT_DETECT+1C
  6516.                 ld      hl, CFG_BITS
  6517.                 ld      (hl), a
  6518.                 ld      b, 0
  6519.  
  6520. PRTD_detect_zxprt:                      ; CODE XREF: PRT_DETECT+2A
  6521.                 ld a,0xff;in    a, (#FB)
  6522.                 and     #40 ; '@'       ; D6=0 -- zx printer is present
  6523.                 ret     nz
  6524.                 djnz    PRTD_detect_zxprt
  6525.  
  6526.                 set     3, (hl)         ; zx printer bit
  6527.                 ret
  6528.  
  6529. ; End of function PRT_DETECT
  6530.  
  6531. ; ---------------------------------------------------------------------------
  6532. ; START OF FUNCTION CHUNK FOR sub_8C20
  6533.  
  6534. loc_A29F:                               ; CODE XREF: sub_8C20-863
  6535.                                         ; sub_8C20+16FA ...
  6536.                 call    UnDrawMoveAndCursors
  6537.  
  6538.                 ld      a, #FF
  6539.                 ld      (NEED_SCR2BUF), a
  6540.                 ld      a, (SEL_SCRorBUF)
  6541.                 or      a
  6542.                 call    z, sub_95C5
  6543.  
  6544.                 ld      a, (CFG_BITS)
  6545.                 and     #C
  6546.                 jp      z, loc_82EB
  6547.  
  6548.                 ld      de, #1000
  6549.                 ld      hl, aZZxPrinterPSer ; " Z-ZX PRINTER    P-SERIAL"
  6550.                 call    PrintGameState
  6551.  
  6552.                 ld      a, (CFG_BITS)
  6553.                 ld      c, a
  6554.                 ld      hl, #1000
  6555.                 bit     0, c
  6556.                 call    sub_A3C3
  6557.  
  6558.                 ld      l, #10
  6559.                 bit     1, c
  6560.                 call    sub_A3C3
  6561.  
  6562.                 ld      hl, #1200
  6563.                 bit     4, c
  6564.                 call    sub_A3C3
  6565.  
  6566.  
  6567. loc_A2DA:                               ; CODE XREF: sub_8C20+16E9
  6568.                                         ; sub_8C20+16F5 ...
  6569.                 call    sub_907E
  6570.  
  6571.                 jp      c, loc_82EB
  6572.  
  6573.                 res     5, a
  6574.                 ld      hl, CFG_BITS
  6575.                 cp      #5A ; 'Z'
  6576.                 jp      z, loc_A318
  6577.  
  6578.                 cp      #50 ; 'P'
  6579.                 jp      z, loc_A325
  6580.  
  6581.                 cp      #4F ; 'O'
  6582.                 jp      z, loc_A35A
  6583.  
  6584.                 cp      #47 ; 'G'
  6585.                 jp      z, loc_A33C
  6586.  
  6587.                 cp      #42 ; 'B'
  6588.                 jp      z, loc_A306
  6589.  
  6590.                 cp      #43 ; 'C'
  6591.                 jp      z, loc_A34D
  6592.  
  6593.                 jp      loc_82EB
  6594.  
  6595. ; ---------------------------------------------------------------------------
  6596.  
  6597. loc_A306:                               ; CODE XREF: sub_8C20+16DB
  6598.                 ld      a, (hl)
  6599.                 and     3
  6600.                 jr      z, loc_A2DA
  6601.  
  6602.                 set     5, (hl)
  6603.                 call    sub_94C9
  6604.  
  6605.                 ld      hl, CFG_BITS
  6606.                 res     5, (hl)
  6607.                 jp      loc_A2DA
  6608.  
  6609. ; ---------------------------------------------------------------------------
  6610.  
  6611. loc_A318:                               ; CODE XREF: sub_8C20+16C7
  6612.                 bit     3, (hl)
  6613.                 jp      z, loc_A29F
  6614.  
  6615.                 ld      a, (hl)
  6616.                 and     #FD ; 'э'
  6617.                 xor     1
  6618.                 ld      (hl), a
  6619.                 jr      loc_A330
  6620.  
  6621. ; ---------------------------------------------------------------------------
  6622.  
  6623. loc_A325:                               ; CODE XREF: sub_8C20+16CC
  6624.                 bit     2, (hl)
  6625.                 jp      z, loc_A29F
  6626.  
  6627.                 ld      a, (hl)
  6628.                 and     #FE ; 'ю'
  6629.                 xor     2
  6630.                 ld      (hl), a
  6631.  
  6632.  
  6633. loc_A330:                               ; CODE XREF: sub_8C20+1703
  6634.                 and     3
  6635.                 jp      nz, loc_A29F
  6636.  
  6637.                 ld      a, (hl)
  6638.                 and     #CF ; 'П'
  6639.                 ld      (hl), a
  6640.                 jp      loc_A29F
  6641.  
  6642. ; ---------------------------------------------------------------------------
  6643.  
  6644. loc_A33C:                               ; CODE XREF: sub_8C20+16D6
  6645.                 ld      a, (hl)
  6646.                 and     3
  6647.                 jr      z, loc_A2DA
  6648.  
  6649.                 set     5, (hl)
  6650.                 ld      hl, (word_D0F7)
  6651.                 inc     hl
  6652.                 ld      (word_D0F7), hl
  6653.                 jp      loc_8A32
  6654.  
  6655. ; ---------------------------------------------------------------------------
  6656.  
  6657. loc_A34D:                               ; CODE XREF: sub_8C20+16E0
  6658.                 ld      a, (hl)
  6659.                 and     3
  6660.                 jp      z, loc_A29F
  6661.  
  6662.                 ld      a, (hl)
  6663.                 xor     #10
  6664.                 ld      (hl), a
  6665.                 jp      loc_A29F
  6666.  
  6667. ; ---------------------------------------------------------------------------
  6668.  
  6669. loc_A35A:                               ; CODE XREF: sub_8C20+16D1
  6670.                                         ; sub_8C20+1777 ...
  6671.                 ld      hl, aSelectBaudRate ; "SELECT BAUD RATE:-"
  6672.                 ld      de, #1000
  6673.                 call    PrintGameState
  6674.  
  6675.                 ld      a, (CFG_BITS)
  6676.                 ld      hl,#140B
  6677.                 and     #40 ; '@'
  6678.                 call    sub_A3C3
  6679.  
  6680.                 ld      hl, #1014
  6681.                 ld      (scr_XY), hl
  6682.                 ld      a, (baudrate_NUM)
  6683.                 call    PRINT_LETTER
  6684.  
  6685.                 call    sub_907E
  6686.  
  6687.                 jp      c, loc_A29F
  6688.  
  6689.                 cp      #31 ; '1'
  6690.                 jp      c, loc_A29F
  6691.  
  6692.                 cp      #3A ; ':'
  6693.                 jr      c, loc_A399
  6694.  
  6695.                 res     5, a
  6696.                 cp      #43 ; 'C'
  6697.                 jp      nz, loc_A29F
  6698.  
  6699.                 ld      hl, CFG_BITS
  6700.                 ld      a, (hl)
  6701.                 xor     #40 ; '@'
  6702.                 ld      (hl), a
  6703.                 jr      loc_A35A
  6704.  
  6705. ; ---------------------------------------------------------------------------
  6706.  
  6707. loc_A399:                               ; CODE XREF: sub_8C20+1767
  6708.                 ld      (baudrate_NUM), a
  6709.                 sub     #31 ; '1'
  6710.                 add     a, a
  6711.                 ld      hl, baud_rates
  6712.                 add     a, l
  6713.                 ld      l, a
  6714.                 jr      nc, loc_A3A7
  6715.  
  6716.                 inc     h
  6717.  
  6718.  
  6719. loc_A3A7:                               ; CODE XREF: sub_8C20+1784
  6720.                 ld      e, (hl)
  6721.                 inc     hl
  6722.                 ld      d, (hl)
  6723.                 ld      (word_5CC3), de
  6724.                 jp      loc_A35A
  6725.  
  6726. ; END OF FUNCTION CHUNK FOR sub_8C20
  6727. ; ---------------------------------------------------------------------------
  6728. baud_rates:     dw #A82         ; DATA XREF: sub_8C20+177F
  6729.                 dw #4C5
  6730.                 dw #1BE
  6731.                 dw #DE
  6732.                 dw #6E
  6733.                 dw #36
  6734.                 dw #1A
  6735.                 dw #C
  6736.                 dw 5
  6737.  
  6738. ; =============== S U B R O U T I N E =======================================
  6739.  
  6740.  
  6741. sub_A3C3:                               ; CODE XREF: sub_8C20+16A8
  6742.                                         ; sub_8C20+16AF ...
  6743.                 ld      (scr_XY), hl
  6744.                 ld      a, #20 ; ' '
  6745.                 jr      z, loc_A3CC
  6746.  
  6747.                 ld      a, #2A ; '*'
  6748.  
  6749.  
  6750. loc_A3CC:                               ; CODE XREF: sub_A3C3+5
  6751.                 call    PRINT_LETTER
  6752.  
  6753.                 ret
  6754.  
  6755. ; End of function sub_A3C3
  6756.  
  6757.  
  6758. ; =============== S U B R O U T I N E =======================================
  6759.  
  6760.  
  6761. sub_A3D0:                               ; CODE XREF: sub_9FB2+3F
  6762.                 call    sub_A4C2
  6763.  
  6764.                 ret     nc
  6765.                 ld      c, 6
  6766.                 call    sub_A164
  6767.  
  6768.                 jr      c, loc_A3E0
  6769.  
  6770.                 ld      c, #10
  6771.                 jp      loc_A437
  6772.  
  6773. ; ---------------------------------------------------------------------------
  6774.  
  6775. loc_A3E0:                               ; CODE XREF: sub_A3D0+9
  6776.                 ld      a, (byte_D049) ;move #
  6777.                 ld      b, a
  6778.                 ld      a, (byte_D0B4)
  6779.                 bit     5, a
  6780.                 jr      z, loc_A3F2 ;visible board?
  6781.  
  6782.                 ld      a, (byte_D0BF)
  6783.                 rra
  6784.                 jr      nc, loc_A3F2
  6785.  
  6786.                 dec     b
  6787.  
  6788. loc_A3F2:                               ; CODE XREF: sub_A3D0+19 sub_A3D0+1F
  6789.                 push    bc
  6790.                 ld      a, b
  6791.                 ld      bc, #3000
  6792.  
  6793.  
  6794. loc_A3F7:                               ; CODE XREF: sub_A3D0+2F
  6795.                 cp      #64 ; 'd'
  6796.                 jr      c, loc_A401
  6797.  
  6798.                 inc     b
  6799.                 inc     c
  6800.                 sub     #64 ; 'd'
  6801.                 jr      loc_A3F7
  6802.  
  6803. ; ---------------------------------------------------------------------------
  6804.  
  6805. loc_A401:                               ; CODE XREF: sub_A3D0+29
  6806.                 ex      af, af' ;'
  6807.                 ld      a, b
  6808.                 cp      #30 ; '0'
  6809.                 jr      nz, loc_A40F
  6810.  
  6811.                 ld      a, c
  6812.                 or      a
  6813.                 ld      a, #30 ; '0'
  6814.                 jr      nz, loc_A40F
  6815.  
  6816.                 ld      a, #20 ; ' '
  6817.  
  6818.  
  6819. loc_A40F:                               ; CODE XREF: sub_A3D0+35 sub_A3D0+3B
  6820.                 call    loc_A476
  6821.  
  6822.                 ex      af, af' ;'
  6823.                 ld      b, #30 ; '0'
  6824.  
  6825.  
  6826. loc_A415:                               ; CODE XREF: sub_A3D0+4D
  6827.                 cp      #A
  6828.                 jr      c, loc_A41F
  6829.  
  6830.                 inc     b
  6831.                 inc     c
  6832.                 sub     #A
  6833.                 jr      loc_A415
  6834.  
  6835. ; ---------------------------------------------------------------------------
  6836.  
  6837. loc_A41F:                               ; CODE XREF: sub_A3D0+47
  6838.                 ex      af, af' ;'
  6839.                 ld      a, b
  6840.                 cp      #30 ; '0'
  6841.                 jr      nz, loc_A42D
  6842.  
  6843.                 ld      a, c
  6844.                 or      a
  6845.                 ld      a, #30 ; '0'
  6846.                 jr      nz, loc_A42D
  6847.  
  6848.                 ld      a, #20 ; ' '
  6849.  
  6850.  
  6851. loc_A42D:                               ; CODE XREF: sub_A3D0+53 sub_A3D0+59
  6852.                 call    loc_A476
  6853.  
  6854.                 ex      af, af' ;'
  6855.                 add     a, #30 ; '0'
  6856.                 call    loc_A476
  6857.  
  6858.                 pop     bc
  6859.  
  6860.  
  6861. loc_A437:                               ; CODE XREF: sub_A3D0+D
  6862.                 call    sub_A454
  6863.  
  6864.                 jr      sub_A43C
  6865.  
  6866. ; End of function sub_A3D0
  6867.  
  6868.  
  6869. ; =============== S U B R O U T I N E =======================================
  6870.  
  6871.  
  6872. sub_A43C:                               ; CODE XREF: sub_8C20-B48
  6873.                                         ; sub_8C20-B3A ...
  6874.                 ld      a, #D
  6875.                 call    loc_A476
  6876.  
  6877.                 xor     a
  6878.                 ld      (byte_D0E1), a
  6879.                 ld      a, (CFG_BITS)
  6880.                 bit     6, a
  6881.                 ret     z
  6882.                 bit     0, a
  6883.                 ld      a, #A
  6884.                 ret     nz
  6885.                 call    loc_A476
  6886.  
  6887.                 ret
  6888.  
  6889. ; End of function sub_A43C
  6890.  
  6891.  
  6892. ; =============== S U B R O U T I N E =======================================
  6893.  
  6894.  
  6895. sub_A454:                               ; CODE XREF: sub_A3D0:loc_A437
  6896.                 call    sub_A466
  6897.  
  6898.                 ld      hl, buf_10bytes
  6899.  
  6900. ; End of function sub_A454
  6901.  
  6902.  
  6903. ; =============== S U B R O U T I N E =======================================
  6904.  
  6905.  
  6906. sub_A45A:                               ; CODE XREF: sub_8C20-72 sub_A45A+9
  6907.                 ld      a, (hl)
  6908.                 and     #7F ; ''
  6909.                 call    loc_A476
  6910.  
  6911.                 bit     7, (hl)
  6912.                 inc     hl
  6913.                 jr      z, sub_A45A
  6914.  
  6915.                 ret
  6916.  
  6917. ; End of function sub_A45A
  6918.  
  6919.  
  6920. ; =============== S U B R O U T I N E =======================================
  6921.  
  6922.  
  6923. sub_A466:                               ; CODE XREF: sub_A454
  6924.                 call    sub_A4C2
  6925.  
  6926.                 ret     nc
  6927.  
  6928.  
  6929. loc_A46A:                               ; CODE XREF: sub_A466+E
  6930.                 ld      a, (byte_D0E1)
  6931.                 cp      c
  6932.                 ret     z
  6933.                 ld      a, #20 ; ' '
  6934.                 call    loc_A476
  6935.  
  6936.                 jr      loc_A46A
  6937.  
  6938. ; End of function sub_A466
  6939.  
  6940. ; ---------------------------------------------------------------------------
  6941.  
  6942. loc_A476:                               ; CODE XREF: sub_8C20-B40
  6943.                                         ; sub_94C9+21   ...
  6944.                 call    sub_A4C2
  6945.  
  6946.                 ret     nc
  6947.                 push    bc
  6948.                 push    de
  6949.                 push    hl
  6950.                 ld      hl, byte_D0E1
  6951.                 inc     (hl)
  6952.                 exx
  6953.                 push    bc
  6954.                 push    de
  6955.                 push    hl
  6956.                 push    ix
  6957.                 push    iy
  6958.                 ex      af, af' ;'
  6959.                 push    af
  6960.                 ex      af, af' ;'
  6961.                 ld      hl, loc_A4A7
  6962.                 push    hl
  6963.                 ld      (bas_ERRSP), sp
  6964.                 ld      iy, #5C3A
  6965.                 ld      hl, CFG_BITS
  6966.                 bit     0, (hl)
  6967.                 ;jr     nz, loc_A4A3
  6968.  
  6969.                 ;rst    8 ;to printer?
  6970.                 ;db     #1E,#18,#01
  6971.                 ds 4
  6972.  
  6973. loc_A4A3:                               ; CODE XREF: RAM:A49D
  6974.                 call rst10 ;rst #10 ;to screen
  6975.  
  6976.                 pop     hl
  6977.                 jr      loc_A4B1
  6978.  
  6979. ; ---------------------------------------------------------------------------
  6980.  
  6981. loc_A4A7:                               ; DATA XREF: RAM:A48C
  6982.                 ld      a, (CFG_BITS)
  6983.                 res     4, a
  6984.                 res     5, a
  6985.                 ld      (CFG_BITS), a
  6986.  
  6987.  
  6988. loc_A4B1:                               ; CODE XREF: RAM:A4A5
  6989.                 call    SET_BRD_COLOR
  6990.  
  6991.                 pop     af
  6992.                 ex      af, af' ;'
  6993.                 pop     iy
  6994.                 pop     ix
  6995.                 pop     hl
  6996.                 pop     de
  6997.                 pop     bc
  6998.                 exx
  6999.                 pop     hl
  7000.                 pop     de
  7001.                 pop     bc
  7002.                 ret
  7003.  
  7004.  
  7005. ; =============== S U B R O U T I N E =======================================
  7006.  
  7007.  
  7008. sub_A4C2:                               ; CODE XREF: sub_A3D0   sub_A466 ...
  7009.                 push    af
  7010.                 push    de
  7011.                 push    hl
  7012.                 ld      a, (CFG_BITS)
  7013.                 and     #30 ; '0'
  7014.                 jr      z, loc_A4EA
  7015.  
  7016.                 ld      a, (byte_D0B4)
  7017.                 bit     5, a
  7018.                 jr      nz, loc_A4EF ;invisible board?
  7019.  
  7020.                 ld      hl, (word_D09F)
  7021.                 ld      a, h
  7022.                 or      l
  7023.                 jr      z, loc_A4EF
  7024.  
  7025.                 ld      de, (word_D0F7)
  7026.                 or      a
  7027.                 sbc     hl, de
  7028.                 jr      z, loc_A4EF
  7029.  
  7030.                 ld      a, (CFG_BITS)
  7031.                 bit     5, a
  7032.                 jr      nz, loc_A4EF
  7033.  
  7034.  
  7035. loc_A4EA:                               ; CODE XREF: sub_A4C2+8
  7036.                 pop     hl
  7037.                 pop     de
  7038.                 pop     af
  7039.                 or      a
  7040.                 ret
  7041.  
  7042. ; ---------------------------------------------------------------------------
  7043.  
  7044. loc_A4EF:                               ; CODE XREF: sub_A4C2+F sub_A4C2+16     ...
  7045.                 pop     hl
  7046.                 pop     de
  7047.                 pop     af
  7048.                 scf
  7049.                 ret
  7050.  
  7051. ; End of function sub_A4C2
  7052.  
  7053. ; ---------------------------------------------------------------------------
  7054. ; START OF FUNCTION CHUNK FOR sub_8C20
  7055.  
  7056. loc_A4F4:                               ; CODE XREF: sub_8C20-868
  7057.                 call    UnDrawMoveAndCursors
  7058.  
  7059.                 ld      a, #FF
  7060.                 ld      (NEED_SCR2BUF), a
  7061.                 ld      a, (SEL_SCRorBUF)
  7062.                 or      a
  7063.                 call    z, sub_95C5
  7064.  
  7065.                 ld      de, #1000
  7066.                 ld      hl, aSSaveRecordLLo ; "S- Save record   L- Load record"
  7067.                 call    PrintGameState
  7068.  
  7069.                 ld      hl, loc_A671
  7070.                 push    hl
  7071.                 ld      (bas_ERRSP), sp
  7072.                 call    sub_907E
  7073.  
  7074.                 jr      c, loc_A525
  7075.  
  7076.                 and     #5F
  7077.                 cp      'L'
  7078.                 jp      z, loc_A5D9 ;Load
  7079.  
  7080.                 cp      'S'
  7081.                 jp      z, loc_A596 ;Save
  7082.  
  7083. loc_A525:                               ; CODE XREF: sub_8C20+18F7
  7084.                 pop     hl
  7085.                 jp      loc_82EB
  7086.  
  7087. ; END OF FUNCTION CHUNK FOR sub_8C20
  7088.  
  7089. ; =============== S U B R O U T I N E =======================================
  7090.  
  7091.  
  7092. SAVE_RECORD:                            ; CODE XREF: sub_8C20+197F
  7093.                                         ; sub_8C20:fool_name
  7094.                 ld      a, #FF
  7095.                 ld      (SEL_SCRorBUF), a
  7096.                 ld      hl, #1305
  7097.                 ld      (scr_XY), hl
  7098.                 ld      hl,  TAPE_header+#10
  7099.                 ld      b, #10
  7100.  
  7101.  
  7102. loc_A539:                               ; CODE XREF: SAVE_RECORD+13
  7103.                 ld      (hl), #20 ; ' '
  7104.                 dec     hl
  7105.                 djnz    loc_A539
  7106.  
  7107.                 ld      (hl), 9
  7108.  
  7109.  
  7110. loc_A540:                               ; CODE XREF: SAVE_RECORD+28
  7111.                                         ; SAVE_RECORD+42 ...
  7112.                 call    sub_907E
  7113.  
  7114.                 ret     c
  7115.                 cp      #D
  7116.                 jr      z, loc_A56E
  7117.  
  7118.                 cp      #C
  7119.                 jr      nz, loc_A57B
  7120.  
  7121.                 ld      a, (scr_XY)
  7122.                 sub     5
  7123.                 jr      z, loc_A540
  7124.  
  7125.                 ld      hl,  TAPE_header+1
  7126.                 add     a, l
  7127.                 ld      l, a
  7128.                 jr      nc, loc_A55B
  7129.  
  7130.                 inc     h
  7131.  
  7132.  
  7133. loc_A55B:                               ; CODE XREF: SAVE_RECORD+2F
  7134.                 dec     hl
  7135.                 ld      (hl), #20 ; ' '
  7136.                 ld      hl, scr_XY
  7137.                 dec     (hl)
  7138.                 ld      a, #20 ; ' '
  7139.                 call    PRINT_LETTER
  7140.  
  7141.                 ld      hl, scr_XY
  7142.                 dec     (hl)
  7143.                 jp      loc_A540
  7144.  
  7145. ; ---------------------------------------------------------------------------
  7146.  
  7147. loc_A56E:                               ; CODE XREF: SAVE_RECORD+1D
  7148.                 ld      a, (scr_XY)
  7149.                 cp      5
  7150.                 ret     nz
  7151.                 ld      hl,  TAPE_header+1
  7152.                 ld      (hl), #FF
  7153.                 or      a
  7154.                 ret
  7155.  
  7156. ; ---------------------------------------------------------------------------
  7157.  
  7158. loc_A57B:                               ; CODE XREF: SAVE_RECORD+21
  7159.                 ld      e, a
  7160.                 ld      a, (scr_XY)
  7161.                 cp      #F
  7162.                 jp      nc, loc_A540
  7163.  
  7164.                 ld      hl,  TAPE_header+1
  7165.                 sub     5
  7166.                 add     a, l
  7167.                 ld      l, a
  7168.                 jr      nc, loc_A58E
  7169.  
  7170.                 inc     h
  7171.  
  7172.  
  7173. loc_A58E:                               ; CODE XREF: SAVE_RECORD+62
  7174.                 ld      (hl), e
  7175.                 ld      a, e
  7176.                 call    PRINT_LETTER
  7177.  
  7178.                 jp      loc_A540
  7179.  
  7180. ; End of function SAVE_RECORD
  7181.  
  7182. ; ---------------------------------------------------------------------------
  7183. ; START OF FUNCTION CHUNK FOR sub_8C20
  7184.  
  7185. loc_A596:                               ; CODE XREF: sub_8C20+1902
  7186. ;Save
  7187.                 ld      de, #1000
  7188.                 ld      hl, aSaveTheGameRec ; "      SAVE THE GAME RECORD"
  7189.                 call    PrintGameState
  7190.  
  7191.                 call    SAVE_RECORD
  7192.  
  7193.                 jr      c, loc_A5D2
  7194.  
  7195.                 ld      hl, #1500
  7196.                 ld      (scr_XY), hl
  7197.                 ld      hl, aStartTapeAndPr ; "  START TAPE AND PRESS ANY KE"
  7198.                 call    PRINT_STR_FF
  7199.  
  7200.                 call    sub_907E
  7201.  
  7202.                 jr      c, loc_A5D2
  7203.  
  7204.                 ld      ix, TAPE_header
  7205.                 ld      de, #11
  7206.                 xor     a
  7207.                 call    ROM_START+#4C2
  7208.  
  7209.                 ld      a, #32 ; '2'
  7210.  
  7211.  
  7212. loc_A5C2:                               ; CODE XREF: sub_8C20+19A4
  7213.                 halt
  7214.                 dec     a
  7215.                 jr      nz, loc_A5C2
  7216.  
  7217.                 ld      ix, BRD_88_0
  7218.                 ld      de, #3FF
  7219.                 ld      a, #FF
  7220.                 call    ROM_START+#4C2
  7221.  
  7222.  
  7223. loc_A5D2:                               ; CODE XREF: sub_8C20+1982
  7224.                                         ; sub_8C20+1993 ...
  7225.                 pop     hl
  7226.                 call    SET_BRD_COLOR
  7227.  
  7228.                 jp      loc_82EB
  7229.  
  7230. ; ---------------------------------------------------------------------------
  7231.  
  7232. loc_A5D9:                               ; CODE XREF: sub_8C20+18FD
  7233. ;Load
  7234.                 ld      de, #1000
  7235.                 ld      hl, aLoadAGameRecor ; "      LOAD A GAME RECORD"
  7236.                 call    PrintGameState
  7237.  
  7238.  
  7239. fool_name:
  7240.                 call    SAVE_RECORD
  7241.  
  7242.                 jr      c, loc_A5D2
  7243.  
  7244.                 ld      hl, #1500
  7245.                 ld      (scr_XY), hl
  7246.                 ld      hl, #9D53
  7247.                 call    PRINT_STR_FF
  7248.  
  7249.                 call    sub_907E
  7250.  
  7251.                 jr      c, loc_A5D2
  7252.  
  7253.  
  7254. loc_A5F8:                               ; CODE XREF: sub_8C20+19E4
  7255.                                         ; sub_8C20+1A2C
  7256.                 ld      ix, #63B5
  7257.                 ld      de, #11
  7258.                 xor     a
  7259.                 scf
  7260.                 call    ROM_START+#556
  7261.  
  7262.                 jp      nc, loc_A5F8
  7263.  
  7264.                 ld      hl, #1300
  7265.                 ld      (scr_XY), hl
  7266.                 ld      hl, a_32spaces  ; "                        "
  7267.                 call    PRINT_STR_FF
  7268.  
  7269.                 ld      hl, #1300
  7270.                 ld      (scr_XY), hl
  7271.                 ld      a, (byte_63B5)
  7272.                 ld      hl,  aGameRecord
  7273.                 cp      9
  7274.                 jr      z, loc_A626
  7275.  
  7276.                 ld      hl, aNotAGameRecord ; "NOT A GAME RECORD :"
  7277.  
  7278.  
  7279. loc_A626:                               ; CODE XREF: sub_8C20+1A01
  7280.                 call    PRINT_STR_FF
  7281.  
  7282.                 ld      a, (byte_63B6)
  7283.                 inc     a
  7284.                 jr      z, loc_A640
  7285.  
  7286.                 ld      hl, unk_63BF
  7287.                 set     7, (hl)
  7288.                 ld      hl, byte_63B6
  7289.                 call    PRINT_STR_FF
  7290.  
  7291.                 ld      a, (TAPE_header+1)
  7292.                 inc     a
  7293.                 jr      z, loc_A652
  7294.  
  7295.  
  7296. loc_A640:                               ; CODE XREF: sub_8C20+1A0D
  7297.                 ld      de,  TAPE_header+1
  7298.                 ld      hl, byte_63B6
  7299.                 ld      b, #A
  7300.  
  7301.  
  7302. loc_A648:                               ; CODE XREF: sub_8C20+1A30
  7303.                 ld      a, (de)
  7304.                 res     7, (hl)
  7305.                 cp      (hl)
  7306.                 jr      nz, loc_A5F8
  7307.  
  7308.                 inc     hl
  7309.                 inc     de
  7310.                 djnz    loc_A648
  7311.  
  7312.  
  7313. loc_A652:                               ; CODE XREF: sub_8C20+1A1E
  7314.                 ld      ix, RAM_END_D800
  7315.                 ld      de, #3FF
  7316.                 ld      a, #FF
  7317.                 scf
  7318.                 call    ROM_START+#556
  7319.  
  7320.                 jp      nc, loc_A670
  7321.  
  7322.                 ld      hl, RAM_END_D800
  7323.                 ld      de, BRD_88_0
  7324.                 ld      bc, #3FF
  7325.                 ldir
  7326.                 call    INIT_PRINT_CLOCKS
  7327.  
  7328.  
  7329. loc_A670:                               ; CODE XREF: sub_8C20+1A3F
  7330.                 pop     hl
  7331.  
  7332.  
  7333. loc_A671:                               ; DATA XREF: sub_8C20+18EC
  7334.                 ld      hl, (word_D0F7)
  7335.                 inc     hl
  7336.                 ld      (word_D0F7), hl
  7337.                 call    SET_BRD_COLOR
  7338.  
  7339.                 call    sub_9EE6 ;print Cyrus II, level, space to see board
  7340.  
  7341.                 call    PRINT_CLOCKS_SWAP
  7342.  
  7343.                 jp      loc_8A32
  7344.  
  7345. ; END OF FUNCTION CHUNK FOR sub_8C20
  7346.  
  7347. ; =============== S U B R O U T I N E =======================================
  7348.  
  7349.  
  7350. sub_A684:                               ; CODE XREF: sub_8C20-A43
  7351.                                         ; sub_8DE9+55   ...
  7352.                 ld      a, (byte_D0B4)
  7353.                 bit     5, a
  7354.                 ret     nz ;invisible board?
  7355.                 ld      a, (byte_D0DF)
  7356.                 rra
  7357.                 ret     c
  7358.                 push    bc
  7359.                 push    de
  7360.                 push    hl
  7361.                 push    ix
  7362.                 push    iy
  7363.                 exx
  7364.                 push    bc
  7365.                 push    de
  7366.                 push    hl
  7367.                 ld      a, #FF
  7368.                 ld      (NEED_SCR2BUF), a
  7369.                 ld      hl, #D08
  7370.                 ld      (scr_XY), hl
  7371.                 ld      b, 7
  7372.                 ld      hl, byte_D258
  7373.  
  7374. loc_A6AA:                               ; CODE XREF: sub_A684+48
  7375.                 ld      a, (hl)
  7376.                 cp      #FF
  7377.                 jr      z, loc_A6D0
  7378.  
  7379.                 push    bc
  7380.                 push    hl
  7381.                 ld      hl,  a_8spaces+5
  7382.                 call    PRINT_STR_FF
  7383.  
  7384.                 pop     hl
  7385.                 push    hl
  7386.                 ld      a, (hl)
  7387.                 call    sub_A021
  7388.  
  7389.                 ld      a, '-'
  7390.                 call    PRINT_LETTER
  7391.  
  7392.                 pop     hl
  7393.                 inc     hl
  7394.                 push    hl
  7395.                 ld      a, (hl)
  7396.                 call    sub_A021
  7397.  
  7398.                 pop     hl
  7399.                 inc     hl
  7400.                 pop     bc
  7401.                 djnz    loc_A6AA
  7402.  
  7403.                 jr      loc_A6D8
  7404.  
  7405. ; ---------------------------------------------------------------------------
  7406.  
  7407. loc_A6D0:                               ; CODE XREF: sub_A684+29 sub_A684+52
  7408.                 ld      hl, a_8spaces   ; "       "
  7409.                 call    PRINT_STR_FF
  7410.  
  7411.                 djnz    loc_A6D0
  7412.  
  7413. loc_A6D8:                               ; CODE XREF: sub_A684+4A sub_A6F7+3E
  7414.                 pop     hl
  7415.                 pop     de
  7416.                 pop     bc
  7417.                 exx
  7418.                 pop     iy
  7419.                 pop     ix
  7420.                 pop     hl
  7421.                 pop     de
  7422.                 pop     bc
  7423.                 ret
  7424.  
  7425. ; End of function sub_A684
  7426.  
  7427.  
  7428. ; =============== S U B R O U T I N E =======================================
  7429.  
  7430.  
  7431. sub_A6E4:                               ; CODE XREF: sub_8C20-92D
  7432.                                         ; sub_8C20-829 ...
  7433.                 ld      hl, #D08
  7434.                 ld      (scr_XY), hl
  7435.                 ld      hl,  a_32spaces+8
  7436.                 call    PRINT_STR_FF
  7437.  
  7438.                 ld      hl, a_32spaces  ; "                        "
  7439.                 call    PRINT_STR_FF
  7440.  
  7441.                 ret
  7442.  
  7443. ; End of function sub_A6E4
  7444.  
  7445.  
  7446. ; =============== S U B R O U T I N E =======================================
  7447.  
  7448.  
  7449. sub_A6F7:                               ; CODE XREF: sub_AFC5+C7
  7450.                 ld      a, (byte_D0B4)
  7451.                 bit     5, a
  7452.                 ret     nz ;invisible board?
  7453.                 push    bc
  7454.                 push    de
  7455.                 push    hl
  7456.                 push    ix
  7457.                 push    iy
  7458.                 exx
  7459.                 push    bc
  7460.                 push    de
  7461.                 push    hl
  7462.                 exx
  7463.                 ld      de, #F00
  7464.                 ld      (scr_XY), de
  7465.                 ld      a, #FF
  7466.                 ld      (NEED_SCR2BUF), a
  7467.                 ld      a, (hl)
  7468.                 cp      #FE
  7469.                 jr      c, loc_A725
  7470.  
  7471.                 ld      hl,  a_8spaces+5
  7472.                 call    PRINT_STR_FF
  7473.  
  7474.                 ld      hl,  aNoMateIn+3
  7475.                 jr      loc_A728
  7476.  
  7477. ; ---------------------------------------------------------------------------
  7478.  
  7479. loc_A725:                               ; CODE XREF: sub_A6F7+21
  7480.                 ld      hl, aNoMateIn   ; "NO MATE IN"
  7481.  
  7482.  
  7483. loc_A728:                               ; CODE XREF: sub_A6F7+2C
  7484.                 call    PRINT_STR_FF
  7485.  
  7486.                 ld      a, (byte_D098)
  7487.                 srl     a
  7488.                 add     a, '1'
  7489.                 call    PRINT_LETTER
  7490.  
  7491.                 jp      loc_A6D8
  7492.  
  7493. ; End of function sub_A6F7
  7494.  
  7495. ; ---------------------------------------------------------------------------
  7496.  
  7497.  
  7498.         ;cyrus logo, 128 bytes.
  7499.         ;no alignment
  7500.  
  7501. CYRUS_LOGO_spr: db  #00,#00,#00,#00,#00,#00,#00,#00
  7502.                 db  #00,#00,#00,#00,#00,#00,#00,#00
  7503.                 db  #3E,#7D,#F7,#E3,#DE,#3C,#1F,#FC
  7504.                 db  #7F,#7D,#F7,#F3,#DE,#7E,#1F,#FC
  7505.                 db  #F7,#B8,#E3,#39,#8C,#E7,#06,#30
  7506.                 db  #E3,#9D,#C3,#39,#8C,#E7,#06,#30
  7507.                 db  #C0,#0D,#83,#39,#8C,#E0,#06,#30
  7508.                 db  #C0,#0F,#83,#F1,#8C,#FE,#06,#30
  7509.                 db  #C0,#07,#03,#E1,#8C,#7F,#06,#30
  7510.                 db  #C0,#07,#03,#71,#8C,#07,#06,#30
  7511.                 db  #E3,#87,#03,#39,#8C,#E7,#06,#30
  7512.                 db  #F7,#87,#03,#19,#DC,#E7,#06,#30
  7513.                 db  #7F,#0F,#87,#BC,#F8,#7E,#1F,#FC
  7514.                 db  #3E,#0F,#87,#BC,#70,#3C,#1F,#FC
  7515.                 db  #00,#00,#00,#00,#00,#00,#00,#00
  7516.                 db  #00,#00,#00,#00,#00,#00,#00,#00
  7517.  
  7518.  
  7519.  
  7520. ; =============== S U B R O U T I N E =======================================
  7521.  
  7522. ; show CYRUS II logo in upper left part of screen or scrbuf
  7523.  
  7524. SHOW_LOGO:                              ; CODE XREF: sub_A177
  7525.                 push    hl
  7526.                 push    de
  7527.                 push    bc
  7528.                 ld      hl, SCREEN
  7529.                 ld      a, (SEL_SCRorBUF)
  7530.                 or      a
  7531.                 jr      z, loc_A7C8
  7532.  
  7533.                 ld      de, #2400
  7534.                 add     hl, de          ; step to SCR_BUF_6400
  7535.  
  7536.  
  7537. loc_A7C8:                               ; CODE XREF: SHOW_LOGO+A
  7538.                 push    hl
  7539.                 ld      de, CYRUS_LOGO_spr
  7540.                 ld      b, 8
  7541.  
  7542.  
  7543. loc_A7CE:                               ; CODE XREF: SHOW_LOGO+22
  7544.                 ld      c, 8
  7545.                 push    hl
  7546.  
  7547.  
  7548. loc_A7D1:                               ; CODE XREF: SHOW_LOGO+1E
  7549.                 ld      a, (de)
  7550.                 ld      (hl), a
  7551.                 inc     hl
  7552.                 inc     de
  7553.                 dec     c
  7554.                 jr      nz, loc_A7D1
  7555.  
  7556.                 pop     hl
  7557.                 inc     h
  7558.                 djnz    loc_A7CE
  7559.  
  7560.                 pop     hl
  7561.                 ld      a, #20 ; ' '
  7562.                 add     a, l
  7563.                 ld      l, a
  7564.                 ld      b, 8
  7565.  
  7566.  
  7567. loc_A7E3:                               ; CODE XREF: SHOW_LOGO+37
  7568.                 ld      c, 8
  7569.                 push    hl
  7570.  
  7571.  
  7572. loc_A7E6:                               ; CODE XREF: SHOW_LOGO+33
  7573.                 ld      a, (de)
  7574.                 ld      (hl), a
  7575.                 inc     hl
  7576.                 inc     de
  7577.                 dec     c
  7578.                 jr      nz, loc_A7E6
  7579.  
  7580.                 pop     hl
  7581.                 inc     h
  7582.                 djnz    loc_A7E3
  7583.  
  7584.                 pop     bc
  7585.                 pop     de
  7586.                 pop     hl
  7587.                 ret
  7588.  
  7589. ; End of function SHOW_LOGO
  7590.  
  7591. ; ---------------------------------------------------------------------------
  7592.  
  7593.        if !FIX
  7594.         ;unneeded space???
  7595.                 ds      267
  7596.        endif
  7597.  
  7598.  
  7599.  
  7600.  
  7601.  
  7602.  
  7603.  
  7604.  
  7605.  
  7606.         ;following jump table is unneeded???
  7607.  
  7608. sub_A900:
  7609.                 jp      sub_AFC5
  7610. sub_A903:
  7611.                 jp      loc_A961
  7612. sub_A906:
  7613.                 jp      sub_AD40
  7614. sub_A909:
  7615.                 jp      sub_AF81
  7616. _FindMove_D_E:
  7617.                 jp      FindMove_D_E
  7618. sub_A90F:
  7619.                 jp      sub_AB4C
  7620. loc_A912:
  7621.                 jp      loc_AF68
  7622. sub_A915:
  7623.                 jp      sub_B8B2
  7624.  
  7625.  
  7626.  
  7627.  
  7628.  
  7629. ; ---------------------------------------------------------------------------
  7630.        if FIX
  7631.                 align 8
  7632.        endif
  7633.  
  7634.                 ;must be inside 256b page
  7635. byte_A918:      db #0E,#12,#1F,#21,#F2,#EE,#E1,#DF ;8 bytes ;knight moves?
  7636.  
  7637. byte_A920:      db #0F                  ; DATA XREF: sub_A94F+42 ;sub_AAF8:loc_AAFA ... ;8 bytes ;bishop moves (then rook moves)
  7638.                 db #11
  7639.                 db #EF
  7640.                 db #F1
  7641. byte_A924:      db #01                  ; DATA XREF: sub_AAC9:loc_AACB ;4 bytes ;rook moves?
  7642.                 db #FF
  7643.                 db #10
  7644.                 db #F0                 
  7645.  
  7646. byte_A928: ; DATA XREF: sub_AFC5:loc_B00D
  7647. ;any place?
  7648.                 db #80
  7649.                 db #00
  7650.                 db #34
  7651.                 db #02
  7652.                 db #28
  7653.                 db #06
  7654.                 db #19
  7655.                 db #0E
  7656.                 db #00
  7657.                 db #1E
  7658.  
  7659. ; =============== S U B R O U T I N E =======================================
  7660.  
  7661.  
  7662. sub_A932:                               ; CODE XREF: sub_AFC5+30 sub_AFC5+36
  7663.                 ld      c, 0
  7664.                 ld      b, #F
  7665. loc_A936:                               ; CODE XREF: sub_A932+1A
  7666.                 bit     7, (hl)
  7667.                 jr      nz, loc_A948
  7668.  
  7669.                 inc     l
  7670.                 ld      a, (hl)
  7671.                 and     #F
  7672.                 cp      1
  7673.                 jr      nz, loc_A945
  7674.                 ld      (byte_D04C), a
  7675. loc_A945:                               ; CODE XREF: sub_A932+E
  7676.                 add     a, c
  7677.                 ld      c, a
  7678.                 dec     l
  7679.  
  7680. loc_A948:                               ; CODE XREF: sub_A932+6
  7681.                 ld      a, 8
  7682.                 add     a, l
  7683.                 ld      l, a
  7684.                 djnz    loc_A936
  7685.  
  7686.                 ret
  7687.  
  7688. ; End of function sub_A932
  7689.  
  7690.  
  7691. ; =============== S U B R O U T I N E =======================================
  7692.  
  7693.  
  7694. sub_A94F:                               ; CODE XREF: sub_AFC5+4 sub_B47F-77
  7695.                 call    sub_8F4D
  7696.  
  7697.                 ld      a, (ix+2)
  7698.                 and     #C9
  7699.                 jr      z, loc_A961
  7700.  
  7701.                 ld      hl,  word_D00D+1
  7702.                 jp      p, loc_A960
  7703.                 inc     (hl)
  7704. loc_A960:                               ; CODE XREF: sub_A94F+D
  7705.                 inc     (hl)
  7706. loc_A961:                               ; CODE XREF: sub_A903   sub_A94F+8
  7707.                 ld      hl, byte_D097
  7708.                 ld      a, (hl)
  7709.                 add     a, a
  7710.                 add     a, l
  7711.                 ld      l, a
  7712.                 ld      e, (hl)
  7713.                 inc     l
  7714.                 ld      d, (hl)
  7715.                 inc     l
  7716.                 inc     de
  7717.                 push    de
  7718.                 inc     de
  7719.                 inc     de
  7720.                 push    hl
  7721.                 ld      h, BRD_88_0/256
  7722.                 ld      iy, word_D100
  7723.                 ld      a, (byte_D02D)
  7724.                 exx
  7725.                 rrca
  7726.                 ld      c, a
  7727.                 exx
  7728.                 jr      nc, loc_A984
  7729.                 ld      iy, word_D180
  7730. loc_A984:                               ; CODE XREF: sub_A94F+2F
  7731.                 ld      b, (iy+0)
  7732.                 bit     4, (iy+1)
  7733.                 call    z, sub_AB0A ;проверяем и пишем рокировки в список ходов?
  7734.  
  7735.                 ld      c, #88
  7736.                 exx
  7737.                 ld      de, byte_A920 ;bishop moves (then rook moves)
  7738.                 call    sub_AAA7 ;8 moves (queen?)
  7739.  
  7740.                 ld      a, (iy+8)
  7741.                 or      a
  7742.                 call    p, sub_AB00 ;составляем список ходов от поля A для ферзя?
  7743.  
  7744.                 ld      a, (iy+#10)
  7745.                 or      a
  7746.                 call    p, sub_AAC9 ;составляем список ходов от поля A для ладьи
  7747.  
  7748.                 ld      a, (iy+#18)
  7749.                 or      a
  7750.                 call    p, sub_AAC9 ;составляем список ходов от поля A для ладьи
  7751.  
  7752.                 ld      a, (iy+#20)
  7753.                 or      a
  7754.                 call    p, sub_AAF8 ;составляем список ходов от поля A для слона?
  7755.  
  7756.                 ld      a, (iy+#28)
  7757.                 or      a
  7758.                 call    p, sub_AAF8 ;составляем список ходов от поля A для слона?
  7759.  
  7760.                 ld      a, (iy+#30)
  7761.                 ld      c, #88
  7762.                 or      a
  7763.                 call    p, sub_AAA2 ;составляем список ходов от поля A для коня?
  7764.  
  7765.                 ld      a, (iy+#38)
  7766.                 or      a
  7767.                 call    p, sub_AAA2 ;составляем список ходов от поля A для коня?
  7768.  
  7769.                 ld      c, #11
  7770.                 exx
  7771.                 ld      hl, unk_D140
  7772.                 bit     7, c
  7773.                 jr      z, loc_A9DA
  7774.  
  7775.                 ld      l, #C0  ; word_D1C0&255
  7776.                 exx
  7777.                 ld      c, #F1
  7778.                 exx
  7779.  
  7780. loc_A9DA:                               ; CODE XREF: sub_A94F+83 sub_A94F+F2
  7781.                 ld      a, (hl)
  7782.                 rla
  7783.                 jr      c, loc_AA3B
  7784.  
  7785.                 inc     l
  7786.                 ld      a, (hl)
  7787.                 dec     l
  7788.                 and     #E
  7789.                 ld      a, (hl)
  7790.                 exx
  7791.                 ld      b, a
  7792.                 jr      nz, loc_AA54
  7793.  
  7794.                 add     a, c
  7795.                 ld      l, a
  7796.                 xor     a
  7797.                 or      (hl) ;впереди справа?
  7798.                 jp      z, loc_A9F6
  7799.  
  7800.                 exx
  7801.                 xor     c
  7802.                 exx
  7803.                 call    m, sub_AB41 ;пишем ход B-L, флаги A=8=съедение
  7804.                 xor     a
  7805.  
  7806. loc_A9F6:                               ; CODE XREF: sub_A94F+9D
  7807.                 dec     l
  7808.                 dec     l
  7809.                 or      (hl) ;впереди слева?
  7810.                 jp      z, loc_AA03
  7811.  
  7812.                 exx
  7813.                 xor     c
  7814.                 exx
  7815.                 call    m, sub_AB41 ;пишем ход B-L, флаги A=8=съедение
  7816.                 xor     a
  7817.  
  7818. loc_AA03:                               ; CODE XREF: sub_A94F+AA
  7819.                 inc     l
  7820.                 or      (hl)
  7821.                 jr      nz, loc_AA33
  7822.  
  7823.                 ex      de, hl
  7824.                 ld      (hl), b ;откуда
  7825.                 inc     hl
  7826.                 ld      (hl), e ;куда
  7827.                 inc     hl
  7828.                 ld      (hl), a ;флаги=0
  7829.                 inc     hl
  7830.                 ex      de, hl
  7831.                 ld      a, b
  7832.                 add     a, #20 ; ' '
  7833.                 bit     6, a
  7834.                 jr      nz, loc_AA33
  7835.  
  7836.                 ld      a, c
  7837.                 dec     a
  7838.                 add     a, l
  7839.                 jp      m, loc_AA3A
  7840.  
  7841.                 ld      l, a
  7842.                 xor     a
  7843.                 or      (hl)
  7844.                 jr      nz, loc_AA3A
  7845.  
  7846.                 call    sub_AB43 ;пишем ход B-L, флаги A=0
  7847.  
  7848.                 dec     l
  7849.                 or      (hl)
  7850.                 call    nz, sub_AA8B
  7851.  
  7852.                 inc     l
  7853.                 inc     l
  7854.                 ld      a, (hl)
  7855.                 or      a
  7856.                 call    nz, sub_AA8B
  7857.  
  7858.                 jp      loc_AA3A
  7859.  
  7860. ; ---------------------------------------------------------------------------
  7861.  
  7862. loc_AA33:                               ; CODE XREF: sub_A94F+B6 sub_A94F+C5
  7863.                 bit     5, (ix+2)
  7864.                 call    nz, sub_AA71
  7865.  
  7866. loc_AA3A:                               ; CODE XREF: sub_A94F+CA sub_A94F+D0 ...
  7867.                 exx
  7868.  
  7869. loc_AA3B:                               ; CODE XREF: sub_A94F+8D
  7870.                 ld      a, 8
  7871.                 add     a, l
  7872.                 ld      l, a
  7873.                 bit     6, a
  7874.                 jp      nz, loc_A9DA
  7875.  
  7876.                 exx
  7877.                 ld      a, #FF
  7878.                 ld      (de), a
  7879.                 pop     hl
  7880.                 ld      (hl), e
  7881.                 inc     l
  7882.                 ld      (hl), d
  7883.                 pop     hl
  7884.                 ld      (hl), a
  7885.                 inc     hl
  7886.                 ld      a, (ix+2)
  7887.                 ld      (hl), a
  7888.                 ret
  7889.  
  7890. ; ---------------------------------------------------------------------------
  7891.  
  7892. loc_AA54:                               ; CODE XREF: sub_A94F+97
  7893.                 push    bc
  7894.                 ld      c, #88
  7895.                 exx
  7896.                 inc     l
  7897.                 ld      a, (hl)
  7898.                 dec     l
  7899.                 ld      de, byte_AA6D
  7900.                 push    de
  7901.                 or      a
  7902.                 jp      m, loc_AAFA
  7903.  
  7904.                 rra
  7905.                 rra
  7906.                 jr      c, loc_AAA4
  7907.  
  7908.                 rra
  7909.                 jr      c, loc_AACB
  7910.  
  7911.                 jp      loc_AB02
  7912.  
  7913. ; End of function sub_A94F
  7914.  
  7915. ; ---------------------------------------------------------------------------
  7916. byte_AA6D:      db  #C1,#D9,#18,#CA ; DATA      XREF: sub_A94F+10C
  7917.  
  7918. ; =============== S U B R O U T I N E =======================================
  7919.  
  7920.  
  7921. sub_AA71:                               ; CODE XREF: sub_A94F+E8
  7922.                 bit     3, (ix+2)
  7923.                 ret     nz
  7924.                 ld      a, (ix+1)
  7925.                 and     #7F
  7926.                 inc     a
  7927.                 cp      b
  7928.                 jr      z, loc_AA85
  7929.  
  7930.                 dec     a
  7931.                 dec     a
  7932.                 cp      b
  7933.                 ret     nz
  7934.                 inc     l
  7935.                 inc     l
  7936.  
  7937.  
  7938. loc_AA85:                               ; CODE XREF: sub_AA71+C
  7939.                 dec     l
  7940.                 ld      a, #28
  7941.                 jp      sub_AB43 ;пишем ход B-L, флаги A
  7942.  
  7943. ; End of function sub_AA71
  7944.  
  7945.  
  7946. ; =============== S U B R O U T I N E =======================================
  7947.  
  7948.  
  7949. sub_AA8B:                               ; CODE XREF: sub_A94F+D7 sub_A94F+DE
  7950.                 exx
  7951.                 xor     c
  7952.                 exx
  7953.                 ret     p
  7954.                 ld      a, (hl)
  7955.                 exx
  7956.                 ld      b, l
  7957.                 sub     3
  7958.                 ld      l, a
  7959.                 ld      a, (hl)
  7960.                 ld      l, b
  7961.                 exx
  7962.                 and     #F
  7963.                 dec     a
  7964.                 ret     nz
  7965.                 ld      a, #20 ; ' '
  7966.                 dec     de
  7967.                 ld      (de), a
  7968.                 inc     de
  7969.                 ret
  7970.  
  7971. ; End of function sub_AA8B
  7972.  
  7973.  
  7974. ; =============== S U B R O U T I N E =======================================
  7975.  
  7976.  
  7977. sub_AAA2:                               ; CODE XREF: sub_A94F+71 sub_A94F+78
  7978.                 ld      b, a
  7979.                 exx
  7980.  
  7981.  
  7982. loc_AAA4:                               ; CODE XREF: sub_A94F+116
  7983.                 ld      de, byte_A918 ;knight moves?
  7984.  
  7985. ; End of function sub_AAA2
  7986.  
  7987.  
  7988. ; =============== S U B R O U T I N E =======================================
  7989.  
  7990.  
  7991. sub_AAA7:                               ; CODE XREF: sub_A94F+45
  7992.                 ld      b, 8
  7993.  
  7994. loc_AAA9:                               ; CODE XREF: sub_AAA7:loc_AAC5
  7995.                 ld      a, (de) ;сдвиг фигуры
  7996.                 inc     e
  7997.                 exx
  7998.                 add     a, b ;+откуда
  7999.                 ld      l, a ;куда
  8000.                 and     c
  8001.                 jr      nz, loc_AAC4
  8002.  
  8003.                 or      (hl)
  8004.                 jr      z, loc_AABC
  8005.  
  8006.                 exx
  8007.                 xor     c
  8008.                 jp      p, loc_AAC5 ;не можем съесть свою фигуру
  8009.                 exx
  8010.                 ld      a, 8 ;съедение?
  8011.  
  8012. loc_AABC:                               ; CODE XREF: sub_AAA7+B
  8013.                 ex      de, hl
  8014.                 ld      (hl), b ;откуда
  8015.                 inc     hl
  8016.                 ld      (hl), e ;куда
  8017.                 inc     hl
  8018.                 ld      (hl), a ;флаги=0/8
  8019.                 inc     hl
  8020.                 ex      de, hl
  8021.  
  8022. loc_AAC4:                               ; CODE XREF: sub_AAA7+8
  8023.                 exx
  8024.  
  8025. loc_AAC5:                               ; CODE XREF: sub_AAA7+F
  8026.                 djnz    loc_AAA9
  8027.  
  8028.                 exx
  8029.                 ret
  8030.  
  8031. ; End of function sub_AAA7
  8032.  
  8033.  
  8034. ; =============== S U B R O U T I N E =======================================
  8035.  
  8036.  
  8037. sub_AAC9:                               ; CODE XREF: sub_A94F+53 sub_A94F+5A
  8038. ;составляем список ходов от поля A для ладьи
  8039.                 ld      b, a
  8040.                 exx
  8041.  
  8042. loc_AACB:                               ; CODE XREF: sub_A94F+119
  8043.                 ld      de, byte_A924 ;rook moves?
  8044.  
  8045. loc_AACE:                               ; CODE XREF: sub_AAF8+5
  8046.                 ld      b, 4
  8047.  
  8048. loc_AAD0:                               ; CODE XREF: sub_AAC9:loc_AAF4
  8049.                                         ; sub_AB00+7
  8050.                 ld      a, (de)
  8051.                 inc     e
  8052.                 exx
  8053.                 ld      c, a
  8054.                 ld      l, b ;откуда
  8055.  
  8056. loc_AAD5:                               ; CODE XREF: sub_AAC9+1E
  8057.                 ld      a, l
  8058.                 add     a, c
  8059.                 ld      l, a ;куда
  8060.                 and     #88
  8061.                 jr      nz, loc_AAF3 ;вышли за пределы доски
  8062.  
  8063.                 or      (hl)
  8064.                 jr      nz, loc_AAEA ;на занятое поле
  8065.  
  8066.                 ex      de, hl
  8067.                 ld      (hl), b ;откуда
  8068.                 inc     hl
  8069.                 ld      (hl), e ;куда
  8070.                 inc     hl
  8071.                 ld      (hl), a ;флаги=0
  8072.                 inc     hl
  8073.                 ex      de, hl
  8074.                 jp      loc_AAD5
  8075.  
  8076. ; ---------------------------------------------------------------------------
  8077.  
  8078. loc_AAEA:                               ; CODE XREF: sub_AAC9+14
  8079.                 exx
  8080.                 xor     c
  8081.                 jp      p, loc_AAF4 ;не можем съесть свою фигуру
  8082.                 exx
  8083.  
  8084.                 call    sub_AB41 ;пишем ход B-L, флаги A=8=съедение
  8085. loc_AAF3:                               ; CODE XREF: sub_AAC9+11
  8086.  
  8087.                 exx
  8088. loc_AAF4:                               ; CODE XREF: sub_AAC9+23
  8089.                 djnz    loc_AAD0
  8090.                 exx
  8091.                 ret
  8092.  
  8093. ; End of function sub_AAC9
  8094.  
  8095.  
  8096. ; =============== S U B R O U T I N E =======================================
  8097.  
  8098.  
  8099. sub_AAF8:                               ; CODE XREF: sub_A94F+61 sub_A94F+68
  8100.                 ld      b, a
  8101.                 exx
  8102. loc_AAFA:                               ; CODE XREF: sub_A94F+111
  8103.                 ld      de, byte_A920 ;bishop moves (then rook moves)
  8104.                 jp      loc_AACE ;4 moves (bishop)
  8105.  
  8106. ; End of function sub_AAF8
  8107.  
  8108.  
  8109. ; =============== S U B R O U T I N E =======================================
  8110.  
  8111.  
  8112. sub_AB00:                               ; CODE XREF: sub_A94F+4C
  8113.                 ld      b, a
  8114.                 exx
  8115.  
  8116. loc_AB02:                               ; CODE XREF: sub_A94F+11B
  8117.                 ld      de, byte_A920 ;bishop moves (then rook moves)
  8118.                 ld      b, 8
  8119.                 jp      loc_AAD0
  8120.  
  8121. ; End of function sub_AB00
  8122.  
  8123.  
  8124. ; =============== S U B R O U T I N E =======================================
  8125.  
  8126.  
  8127. sub_AB0A:                               ; CODE XREF: sub_A94F+3C
  8128. ;проверяем и пишем рокировки в список ходов?
  8129.         if FIX
  8130.         ret ;TODO
  8131.         endif
  8132.                 bit     7, (ix+2)
  8133.                 ret     nz ;король уже ходил? или это шах?
  8134.                 bit     4, (iy+#19)
  8135.                 jr      nz, gencastlingRfail;loc_AB26 ;ладья уже ходила?
  8136.                 bit     7, (iy+#18)
  8137.                 jr      nz, gencastlingRfail;loc_AB26 ;ладья мертва?
  8138.  
  8139.        if FIX
  8140. ;в Chess960 проверять сколько надо полей (от короля или Е (смотря что левее) вплоть до края доски, кроме короля и самой ладьи)
  8141.         ld a,b
  8142.         and 7
  8143.         cp 4 ;E
  8144.         jr c,$+4 ;король левее E
  8145.          ld a,4 ;E
  8146.         xor b
  8147.         and 7
  8148.         xor b
  8149.         ld l,a ;от короля или Е (смотря что левее)
  8150.        
  8151. gencastlingR0
  8152.         ld a,(hl)
  8153.         or a
  8154.         jr z,gencastlingR0ok
  8155.         and 0x38
  8156.         cp _K&0x38
  8157.         jr z,gencastlingR0ok
  8158.         ld a,(hl)
  8159.         and 0x30
  8160.         cp _R&0x30
  8161.         jr nz,gencastlingRfail
  8162. gencastlingR0ok
  8163.         inc l
  8164.         bit 3,l
  8165.         jr z,gencastlingR0
  8166.        
  8167.         ld a,b
  8168.         and 0xf8
  8169.         or 6
  8170.         ld l,a
  8171.         call sub_AB3C ;пишем ход B-L, флаги A=#10=рокировка
  8172.  
  8173.        else
  8174.                 xor     a
  8175.                 ld      l, b
  8176.                 inc     l
  8177.                 or      (hl) ;справа пусто?
  8178.                 jr      nz, gencastlingRfail;loc_AB26
  8179.  
  8180.                 inc     l
  8181.                 or      (hl) ;ещё правее пусто?
  8182.                 call    z, sub_AB3C ;пишем ход B-L, флаги A=#10=рокировка
  8183.        endif
  8184.  
  8185. gencastlingRfail;loc_AB26:                              ; CODE XREF: sub_AB0A+9 sub_AB0A+F ...
  8186.  
  8187.                 bit     4, (iy+#11)
  8188.                 ret     nz ;ладья уже ходила?
  8189.                 bit     7, (iy+#10)
  8190.                 ret     nz ;ладья мертва?
  8191.                 ld      l, b
  8192.                 xor     a
  8193.                 dec     l
  8194.                 or      (hl) ;слева пусто?
  8195.                 ret     nz
  8196.                 dec     l
  8197.                 or      (hl) ;ещё левее пусто?
  8198.                 ret     nz
  8199.                 dec     l
  8200.                 or      (hl) ;ещё левее пусто? TODO в Chess960 проверять сколько надо полей (от короля или Е (смотря что правее) вплоть до левого края доски, кроме короля и самой ладьи)
  8201.                 ret     nz
  8202.                 inc     l
  8203. ;пишем ход B-L, флаги A=#10=рокировка?
  8204. ; =============== S U B R O U T I N E =======================================
  8205. sub_AB3C:                               ; CODE XREF: sub_AB0A+19
  8206.                 ld      a, #10 ;рокировка?
  8207.                 jp      sub_AB43 ;пишем ход B-L, флаги A
  8208. ; =============== S U B R O U T I N E =======================================
  8209. sub_AB41:                               ; CODE XREF: sub_A94F+A3 sub_A94F+B0 ...
  8210.                 ld      a, 8 ;съедение
  8211. ; =============== S U B R O U T I N E =======================================
  8212. sub_AB43:                               ; CODE XREF: sub_A94F+D2 sub_AA71+17 ...
  8213.                 ex      de, hl
  8214.                 ld      (hl), b ;откуда
  8215.                 inc     hl
  8216.                 ld      (hl), e ;куда
  8217.                 inc     hl
  8218.                 ld      (hl), a ;флаги
  8219.                 inc     hl
  8220.                 ex      de, hl
  8221.                 ret
  8222.  
  8223. ; End of function sub_AB43
  8224.  
  8225.  
  8226. ; =============== S U B R O U T I N E =======================================
  8227.  
  8228.  
  8229. sub_AB4C:                               ; CODE XREF: sub_A90F   sub_AFC5+66
  8230.                 ld      de, XOR_A
  8231. ; End of function sub_AB4C
  8232.  
  8233.                 ld      (JP_ADDR), de
  8234.  
  8235.  
  8236. ; =============== S U B R O U T I N E =======================================
  8237.  
  8238.  
  8239. sub_AB53:                               ; CODE XREF: sub_B47F-4C
  8240.                 ld      a, (hl)
  8241.                 ld      (byte_D01D), a
  8242.                 inc     hl
  8243.                 push    hl
  8244.                 pop     ix
  8245.                 ld      (word_D04A), hl
  8246.                 ld      (word_D069), hl
  8247.                 xor     a
  8248.                 ld      hl, unk_D0E6
  8249.                 ld      b, #A
  8250.  
  8251.  
  8252. loc_AB67:                               ; CODE XREF: sub_AB53+16
  8253.                 ld      (hl), a
  8254.                 inc     hl
  8255.                 djnz    loc_AB67
  8256.  
  8257.                 ld      (byte_D04E), a
  8258.                 jp      loc_ABC6
  8259.  
  8260. ; ---------------------------------------------------------------------------
  8261.  
  8262. loc_AB71:                               ; CODE XREF: sub_AB53+77
  8263.                 inc     a
  8264.                 jr      z, loc_AB81
  8265.  
  8266.                 ld      a, (ix+1)
  8267.                 inc     a
  8268.                 jr      z, loc_ABC1
  8269.  
  8270.                 ld      a, 1
  8271.                 ld      (byte_D04E), a
  8272.                 jr      loc_ABC1
  8273.  
  8274. ; ---------------------------------------------------------------------------
  8275.  
  8276. loc_AB81:                               ; CODE XREF: sub_AB53+1F
  8277.                 xor     a
  8278.                 ld      (word_D04A+1), a
  8279.                 ld      a, (byte_D0EF)
  8280.                 ld      hl, (word_D069)
  8281.                 or      a
  8282.                 jr      nz, loc_ABA6
  8283.  
  8284.                 ld      a, (byte_D04E)
  8285.                 or      a
  8286.                 jr      z, loc_ABA6
  8287.  
  8288.                 cp      1
  8289.                 jr      z, loc_ABA6
  8290.  
  8291.                 ld      de, (word_D086)
  8292.                 ld      b, 3
  8293.  
  8294.  
  8295. loc_AB9E:                               ; CODE XREF: sub_AB53+4F
  8296.                 ld      a, (de)
  8297.                 ld      (hl), a
  8298.                 inc     de
  8299.                 inc     hl
  8300.                 djnz    loc_AB9E
  8301.  
  8302.                 ld      a, 6
  8303.  
  8304.  
  8305. loc_ABA6:                               ; CODE XREF: sub_AB53+39 sub_AB53+3F ...
  8306.                 ld      (hl), #FF
  8307.                 or      a
  8308.                 ret
  8309.  
  8310. ; ---------------------------------------------------------------------------
  8311.  
  8312. loc_ABAA:                               ; CODE XREF: sub_AB53+89
  8313.                 ld      a, 0
  8314.                 ld      (word_D04A+1), a
  8315.                 ret
  8316.  
  8317. ; ---------------------------------------------------------------------------
  8318.  
  8319. loc_ABB0:                               ; CODE XREF: sub_AB53+8B
  8320.                 ld      a, (byte_D04E)
  8321.                 cp      c
  8322.                 jr      nc, loc_ABC1
  8323.  
  8324.                 dec     a
  8325.                 jr      z, loc_ABC1
  8326.  
  8327.                 ld      a, c
  8328.                 ld      (byte_D04E), a
  8329.                 ld      (word_D086), ix
  8330.  
  8331.  
  8332. loc_ABC1:                               ; CODE XREF: sub_AB53+25 sub_AB53+2C ...
  8333.                 ld      de, 3
  8334.                 add     ix, de
  8335.  
  8336.  
  8337. loc_ABC6:                               ; CODE XREF: sub_AB53+1B
  8338.                 ld      a, (ix+0)
  8339.                 rlca
  8340.                 jr      c, loc_AB71
  8341.  
  8342.                 call    sub_AD40
  8343.  
  8344.                 call    sub_BC00
  8345.  
  8346.                 call    sub_AF81
  8347.  
  8348.                 ld      a, c
  8349.                 or      a
  8350.                 jr      z, loc_ABC1
  8351.  
  8352.                 call    sub_B79D
  8353.  
  8354.                 jr      c, loc_ABAA
  8355.  
  8356.                 jr      nz, loc_ABB0
  8357.  
  8358.                 ld      a, (ix+2)
  8359.                 and     #88 ; '?'
  8360.                 ld      a, c
  8361.                 jr      z, loc_ABEF
  8362.  
  8363.                 add     a, 4
  8364.                 jr      nc, loc_ABEE
  8365.  
  8366.                 ld      a, #FF
  8367.  
  8368.  
  8369. loc_ABEE:                               ; CODE XREF: sub_AB53+97
  8370.                 ld      c, a
  8371.  
  8372.  
  8373. loc_ABEF:                               ; CODE XREF: sub_AB53+93
  8374.                 ld      hl, unk_D0E6
  8375.                 cp      (hl)
  8376.                 jr      nc, loc_AC0F
  8377.  
  8378.                 ld      hl, (word_D069)
  8379.                 ld      a, (ix+0)
  8380.                 ld      (hl), a
  8381.                 inc     hl
  8382.                 ld      a, (ix+1)
  8383.                 ld      (hl), a
  8384.                 inc     hl
  8385.                 ld      a, (ix+2)
  8386.                 res     6, a
  8387.                 ld      (hl), a
  8388.                 inc     hl
  8389.                 ld      (word_D069), hl
  8390.                 jp      loc_ABC1
  8391.  
  8392. ; ---------------------------------------------------------------------------
  8393.  
  8394. loc_AC0F:                               ; CODE XREF: sub_AB53+A0
  8395.                 ld      b, 9
  8396.                 ld      d, h
  8397.                 ld      e, l
  8398.                 jp      loc_AC19
  8399.  
  8400. ; ---------------------------------------------------------------------------
  8401.  
  8402. loc_AC16:                               ; CODE XREF: sub_AB53+C9
  8403.                 ld      (de), a
  8404.                 inc     e
  8405.                 dec     b
  8406.  
  8407.  
  8408. loc_AC19:                               ; CODE XREF: sub_AB53+C0
  8409.                 inc     l
  8410.                 ld      a, (hl)
  8411.                 cp      c
  8412.                 jr      c, loc_AC16
  8413.  
  8414.                 ld      a, c
  8415.                 ld      (de), a
  8416.                 ld      de, (word_D04A)
  8417.                 ld      hl, (word_D069)
  8418.                 ld      a, b
  8419.                 add     a, a
  8420.                 add     a, b
  8421.                 sbc     hl, de
  8422.                 ld      c, a
  8423.                 ld      b, 0
  8424.                 sbc     hl, bc
  8425.                 ld      b, h
  8426.                 ld      c, l
  8427.                 ld      a, (ix+0)
  8428.                 ld      d, (ix+1)
  8429.                 ld      e, (ix+2)
  8430.                 push    de
  8431.                 ld      hl, (word_D069)
  8432.                 ld      d, h
  8433.                 ld      e, l
  8434.                 dec     hl
  8435.                 inc     de
  8436.                 inc     de
  8437.                 inc     de
  8438.                 ld      (word_D069), de
  8439.                 dec     de
  8440.                 jr      z, loc_AC4F
  8441.  
  8442.                 lddr
  8443.  
  8444.  
  8445. loc_AC4F:                               ; CODE XREF: sub_AB53+F8
  8446.                 inc     hl
  8447.                 ld      (hl), a
  8448.                 pop     de
  8449.                 inc     hl
  8450.                 ld      (hl), d
  8451.                 inc     hl
  8452.                 ld      (hl), e
  8453.                 jp      loc_ABC1
  8454.  
  8455. ; End of function sub_AB53
  8456.  
  8457.  
  8458. ; =============== S U B R O U T I N E =======================================
  8459. FindMove_D_E:                           ; CODE XREF: _FindMove_D_E
  8460.                 ld      bc, 3
  8461. loc_AC5C:                               ; CODE XREF: FindMove_D_E_continue+5 FindMove_D_E_continue+F
  8462.                 add     hl, bc
  8463. ; End of function FindMove_D_E
  8464. ; =============== S U B R O U T I N E =======================================
  8465. FindMove_D_E_continue:                          ; CODE XREF: FindMoveAndSwap+48 FindMoveAndSwap+52
  8466.                 ld      a, (hl)
  8467.                 cp      d
  8468.                 jr      z, loc_AC67 ;from совпало
  8469.                 inc     a
  8470.                 jp      nz, loc_AC5C
  8471.                 scf ;не совпало
  8472.                 ret
  8473. ; ---------------------------------------------------------------------------
  8474. loc_AC67:                               ; CODE XREF: FindMove_D_E_continue+2
  8475.                 inc     hl
  8476.                 ld      a, (hl)
  8477.                 dec     hl
  8478.                 cp      e
  8479.                 ret     z ;to совпало
  8480.                 jp      loc_AC5C
  8481. ; End of function FindMove_D_E_continue
  8482. ; ---------------------------------------------------------------------------
  8483. ; START OF FUNCTION CHUNK FOR sub_AC74
  8484.  
  8485. loc_AC6F:                               ; CODE XREF: sub_AC74+37
  8486.                 ld      a, #FF ;end of opening?
  8487.                 ld      (byte_D09E), a
  8488. ; END OF FUNCTION CHUNK FOR sub_AC74
  8489. ; =============== S U B R O U T I N E =======================================
  8490. sub_AC74:                               ; CODE XREF: sub_AFC5+B
  8491. ; FUNCTION CHUNK AT AC6F SIZE 00000005 BYTES
  8492.                 ld      a, (byte_D09E)
  8493.                 or      a
  8494.                 ret     nz ;end of opening?
  8495.                 ld      a, (byte_D20C) ;oldmove #?
  8496.                 dec     a
  8497.                 ret     nz
  8498.                 call    GEN_RANDBYTE ;b=rnd
  8499.  
  8500.                 ld      hl, #FFFF
  8501. loc_AC84:                               ; CODE XREF: sub_AC74+33
  8502.                 inc     hl ;hl=opening chunk
  8503.                 ld      a, (word_D0F7)
  8504.                 ld      c, a
  8505.                 ld      a, (byte_D09E)
  8506.                 inc     a
  8507.                 ld      (byte_D09E), a
  8508.                 dec     a
  8509.                 cp      c
  8510.                 jr      z, loc_ACB2
  8511.  
  8512.                 ld      bc, stk_1bvalue
  8513.                 add     a, c
  8514.                 ld      c, a
  8515.                 jr      nc, loc_AC9C
  8516.                 inc     b
  8517. loc_AC9C:                               ; CODE XREF: sub_AC74+25
  8518.                 ld      a, (bc)
  8519.                 and     #7F
  8520.                 ld      c, a
  8521.                 call    sub_AD01
  8522.  
  8523. loc_ACA3:                               ; CODE XREF: sub_AC74+3C
  8524.                 ld      b, a
  8525.                 res     6, a
  8526.                 cp      c
  8527.                 jr      z, loc_AC84
  8528.                 bit     6, b
  8529.                 jr      z, loc_AC6F ;end of opening?
  8530.                 call    sub_ACF6 ;find opening in loop
  8531.                 jr      loc_ACA3
  8532. ; ---------------------------------------------------------------------------
  8533.  
  8534. loc_ACB2:                               ; CODE XREF: sub_AC74+1E
  8535.                 call    GEN_RANDBYTE ;b=rnd
  8536.  
  8537.                 call    sub_AD01
  8538.  
  8539.                 ld      c, a
  8540.                 bit     6, a
  8541.                 jr      z, loc_ACDD
  8542.  
  8543.                 ld      a, 1
  8544.                 rla
  8545.                 and     b
  8546.                 jr      nz, loc_ACDD
  8547.  
  8548.  
  8549. loc_ACC3:                               ; CODE XREF: sub_AC74+60
  8550.                 push    hl
  8551.                 call    GEN_RANDBYTE ;b=rnd
  8552.  
  8553.                 call    sub_ACF6 ;find opening in loop
  8554.  
  8555.                 jr      c, loc_ACD8
  8556.  
  8557.                 pop     de
  8558.                 ld      c, a
  8559.                 bit     6, a
  8560.                 jr      z, loc_ACDD
  8561.  
  8562.                 rr      b
  8563.                 jr      c, loc_ACC3
  8564.  
  8565.                 jr      loc_ACDD
  8566.  
  8567. ; ---------------------------------------------------------------------------
  8568.  
  8569. loc_ACD8:                               ; CODE XREF: sub_AC74+56
  8570.                 pop     hl
  8571.                 call    sub_AD01
  8572.                 ld      c, a
  8573. loc_ACDD:                               ; CODE XREF: sub_AC74+47 sub_AC74+4D ...
  8574.                 ld      a, c
  8575.                 and     #3F
  8576.                 ld      d, a
  8577.                 rla
  8578.                 add     a, d
  8579.                 ld      e, a
  8580.                 ld      d, 0
  8581.                 ld      ix, tbl_D803
  8582.                 add     ix, de
  8583.                 xor     a
  8584.                 bit     7, c
  8585.                 jr      nz, loc_ACF4
  8586.                 ld      (byte_D09E), a
  8587. loc_ACF4:                               ; CODE XREF: sub_AC74+7B
  8588.                 xor     a
  8589.                 ret
  8590.  
  8591. ; End of function sub_AC74
  8592. ; =============== S U B R O U T I N E =======================================
  8593.  
  8594. sub_ACF6:                               ; CODE XREF: sub_AC74+39 sub_AC74+53
  8595. ;hl=opening chunk
  8596.                 ld      de, #FFFF
  8597. loc_ACF9:                               ; CODE XREF: sub_ACF6+9
  8598. ;hl=opening chunk
  8599.                 call    sub_AD01
  8600.                 inc     hl
  8601.                 bit     7, d
  8602.                 jr      z, loc_ACF9
  8603. ; End of function sub_ACF6
  8604. ; =============== S U B R O U T I N E =======================================
  8605.  
  8606. sub_AD01:                               ; CODE XREF: sub_AC74+2C sub_AC74+41 ...
  8607. ;hl=opening chunk
  8608.                 call    OPENING_SEARCH
  8609.                 bit     7, a
  8610.                 jr      z, loc_AD09
  8611.                 dec     de
  8612. loc_AD09:                               ; CODE XREF: sub_AD01+5
  8613.                 bit     6, a
  8614.                 ret     z
  8615.                 inc     de
  8616.                 ret
  8617.  
  8618. ; End of function sub_AD01
  8619. ; =============== S U B R O U T I N E =======================================
  8620.  
  8621. OPENING_SEARCH:
  8622.                 push    bc              ; get any 8 bits from 9-byte chunks? HL=index into them, 0..63 into first chunk, 64..127 into next, etc.
  8623.                 push    hl
  8624.                 ld      a, l
  8625.                 srl     h
  8626.                 rra
  8627.                 srl     h
  8628.                 rra
  8629.                 srl     h
  8630.                 rra
  8631.                 ld      b, h
  8632.                 ld      c, a            ; BC=HL/8
  8633.                 pop     hl
  8634.                 push    hl
  8635.                 ld      a, 7
  8636.                 and     l
  8637.                 add     hl, bc          ; HL=HL*1.125
  8638.                 ld      bc, Openings
  8639.                 add     hl, bc
  8640.                 ld      b, a
  8641.                 inc     b
  8642.                 ld      a, (hl)
  8643.                 inc     hl
  8644.                 ld      c, (hl)
  8645. loc_AD2B:
  8646.                 rl      c
  8647.                 rla
  8648.                 djnz    loc_AD2B
  8649.                 pop     hl
  8650.                 pop     bc              ; output is A (8 bits from a word) + CY (9th bit)
  8651.                 ret
  8652. ; End of function OPENING_SEARCH
  8653. ; =============== S U B R O U T I N E =======================================
  8654.  
  8655. GEN_RANDBYTE:                           ; CODE XREF: sub_AC74+A
  8656.                                         ; sub_AC74:loc_ACB2 ...
  8657.                 ld      a, r
  8658.                 ld      b, a
  8659.                 ld      a, (RAND_SEED)
  8660.                 xor     b
  8661.                 rra
  8662.                 ld      (RAND_SEED), a
  8663.                 ld      b, a
  8664.                 ret ;b=rnd
  8665. ; End of function GEN_RANDBYTE
  8666. ; =============== S U B R O U T I N E =======================================
  8667.  
  8668. sub_AD40:                               ; CODE XREF: sub_A906   sub_AB53+79 ...
  8669.                 pop     hl
  8670.                 exx ;hl'=return addr
  8671.                 ld      hl, (word_D00D)
  8672.                 push    hl
  8673.                 ld      hl, byte_D03B
  8674.                 res     7, (hl)
  8675.                 ld      hl,  word_D240+1
  8676.                 ld      a, (byte_D097)
  8677.                 add     a, a
  8678.                 add     a, l
  8679.                 ld      l, a
  8680.                 ld      c, (ix+1)
  8681.                 res     7, c
  8682.                 ld      (hl), c
  8683.                 ld      (word_D03D), hl
  8684.                 dec     l
  8685.                 ld      b, (ix+0)
  8686.                 res     7, b
  8687.                 ld      (hl), b
  8688.                 dec     l
  8689.                 bit     7, (hl)
  8690.                 jr      nz, loc_ADA9
  8691.  
  8692.                 dec     l
  8693.                 dec     l
  8694.                 ld      a, (hl)
  8695.                 and     #F7
  8696.                 cp      b
  8697.                 jr      nz, loc_ADA9
  8698.  
  8699.                 dec     l
  8700.                 ld      a, (hl)
  8701.                 and     #77
  8702.                 cp      c
  8703.                 jr      nz, loc_ADA9
  8704.  
  8705.                 dec     l
  8706.                 ld      a, (hl)
  8707.                 and     #F7
  8708.                 jp      m, loc_ADA2
  8709.  
  8710.                 push    bc
  8711.                 ld      b, a
  8712.                 dec     l
  8713.                 ld      a, (hl)
  8714.                 and     #77
  8715.                 ld      c, a
  8716.                 inc     l
  8717.                 inc     l
  8718.                 inc     l
  8719.                 inc     l
  8720.                 ld      a, (hl)
  8721.                 and     #77
  8722.                 cp      b
  8723.                 jr      nz, loc_ADA1
  8724.  
  8725.                 inc     l
  8726.                 ld      a, (hl)
  8727.                 and     #77
  8728.                 cp      c
  8729.                 jr      nz, loc_ADA1
  8730.  
  8731.                 ld      hl, byte_D03B
  8732.                 set     7, (hl)
  8733.                 set     6, (hl)
  8734.                 pop     bc
  8735.                 jr      loc_ADA9
  8736.  
  8737. ; ---------------------------------------------------------------------------
  8738.  
  8739. loc_ADA1:                               ; CODE XREF: sub_AD40+4E sub_AD40+55
  8740.                 pop     bc
  8741.  
  8742.  
  8743. loc_ADA2:                               ; CODE XREF: sub_AD40+3C
  8744.                 ld      hl, byte_D03B
  8745.                 set     7, (hl)
  8746.                 res     6, (hl)
  8747.  
  8748.  
  8749. loc_ADA9:                               ; CODE XREF: sub_AD40+27 sub_AD40+2F ...
  8750.                 ld      h, BRD_88_0/256
  8751.                 ld      l, b
  8752.                 ld      e, (hl)
  8753.                 ld      d, l
  8754.                 push    de
  8755.                 ld      (hl), 0
  8756.                 ld      l, c
  8757.                 ld      c, (hl)
  8758.                 ld      (hl), e ;переместили короля при рокировке?
  8759.                 ld      b, l
  8760.                 inc     h               ; word_D100
  8761.                 res     2, e
  8762.                 ld      l, e
  8763.                 ld      (hl), b
  8764.                 inc     l
  8765.                 ld      e, d
  8766.                 ld      d, (hl)
  8767.                 ld      a, #F
  8768.                 and     d
  8769.                 jp      z, loc_AF1F
  8770.  
  8771.                 dec     a
  8772.                 jr      z, loc_ADF5
  8773.  
  8774.                 set     4, (hl)
  8775.                 dec     c
  8776.                 inc     c
  8777.                 jr      nz, loc_ADD1
  8778.  
  8779.  
  8780. loc_ADCC:                               ; CODE XREF: sub_AD40+1E7
  8781. ;hl'=return addr
  8782.                 ld      e, #80
  8783.                 push    de
  8784.                 exx
  8785.                 jp      (hl)
  8786.  
  8787. ; ---------------------------------------------------------------------------
  8788.  
  8789. loc_ADD1:                               ; CODE XREF: sub_AD40+8A
  8790.                                         ; sub_AD40+1BD ...
  8791.                 ld      e, 0
  8792. loc_ADD3:                               ; CODE XREF: sub_AD40+1AE
  8793.                                         ; sub_AD40+1D2
  8794.                 push    bc
  8795.                 res     2, c
  8796.                 ld      l, c
  8797.                 set     7, (hl)
  8798.                 inc     l
  8799.                 ld      a, #F
  8800.                 and     (hl)
  8801.                 bit     7, l
  8802.                 jr      z, loc_ADE3
  8803.                 neg
  8804. loc_ADE3:                               ; CODE XREF: sub_AD40+9F
  8805. ;hl'=return addr
  8806.                 ld      hl, word_D00D
  8807.                 add     a, (hl)
  8808.                 ld      (hl), a
  8809.                 ld      hl, byte_D03B
  8810.                 res     7, (hl)
  8811.                 ld      hl, (word_D03D)
  8812.                 set     7, (hl)
  8813.                 push    de
  8814.                 exx
  8815.                 jp      (hl)
  8816.  
  8817. ; ---------------------------------------------------------------------------
  8818.  
  8819. loc_ADF5:                               ; CODE XREF: sub_AD40+84
  8820.                 ld      a, b
  8821.                 cp      e
  8822.                 jr      c, loc_AE66
  8823.  
  8824.                 rla
  8825.                 rla
  8826.                 jr      nc, loc_AE45
  8827.  
  8828.                 rl      a
  8829.                 jr      c, loc_AE4D
  8830.  
  8831.                 jp      m, loc_AE2D
  8832.  
  8833.                 ld      (hl), #21 ; '!'
  8834.                 ld      e, l
  8835.                 dec     h
  8836.                 ld      a, b
  8837.                 add     a, #10
  8838.                 ld      l, a
  8839.                 ld      a, (hl) ;впереди
  8840.                 cp      #C0
  8841.                 jr      nc, loc_AE59
  8842.  
  8843.                 ld      a, l
  8844.                 add     a, #F
  8845.                 ld      l, a
  8846.                 ld      a, (hl) ;ещё впереди слева
  8847.                 cp      #C0
  8848.                 jr      nc, loc_AE59
  8849.  
  8850.                 inc     l
  8851.                 ld      a, (hl) ;ещё впереди
  8852.                 cp      #C0
  8853.                 jr      nc, loc_AE59
  8854.  
  8855.                 inc     l
  8856.                 ld      a, (hl) ;ещё впереди справа
  8857.                 cp      #C0
  8858.                 jr      nc, loc_AE59
  8859.  
  8860.                 ld      l, e
  8861.                 inc     h
  8862.                 ld      (hl), #51 ; 'Q'
  8863.                 jp      loc_AEF3
  8864.  
  8865. ; ---------------------------------------------------------------------------
  8866.  
  8867. loc_AE2D:                               ; CODE XREF: sub_AD40+C1
  8868.                 ld      (hl), #41 ; 'A'
  8869.                 ld      e, l
  8870.                 dec     h
  8871.                 ld      a, b
  8872.                 add     a, #10
  8873.                 ld      l, a
  8874.                 ld      a, (hl) ;впереди
  8875.                 cp      #C0
  8876.                 jr      nc, loc_AE59
  8877.  
  8878.                 ld      l, e
  8879.                 inc     h
  8880.                 ld      (hl), #71 ; 'q'
  8881.                 set     0, (ix+2)
  8882.                 jp      loc_AEF3
  8883.  
  8884. ; ---------------------------------------------------------------------------
  8885.  
  8886. loc_AE45:                               ; CODE XREF: sub_AD40+BB
  8887.                 cp      #C0
  8888.                 jp      nc, loc_AEF1
  8889.  
  8890.                 jp      loc_AEF3
  8891.  
  8892. ; ---------------------------------------------------------------------------
  8893.  
  8894. loc_AE4D:                               ; CODE XREF: sub_AD40+BF
  8895.                 jp      m, loc_AECF
  8896.  
  8897.                 ld      (hl), #A1
  8898.                 set     0, (ix+2)
  8899.                 jp      loc_AEF3
  8900.  
  8901. ; ---------------------------------------------------------------------------
  8902.  
  8903. loc_AE59:                               ; CODE XREF: sub_AD40+CF sub_AD40+D8 ...
  8904.                 ld      a, (ix+2)
  8905.                 bit     3, a
  8906.                 jp      z, loc_AF15
  8907.  
  8908.                 ld      l, e
  8909.                 inc     h
  8910.                 jp      loc_AEFB
  8911.  
  8912. ; ---------------------------------------------------------------------------
  8913.  
  8914. loc_AE66:                               ; CODE XREF: sub_AD40+B7
  8915.                 rla
  8916.                 rla
  8917.                 jr      c, loc_AEBC
  8918.  
  8919.                 rl      a
  8920.                 jr      nc, loc_AEC3
  8921.  
  8922.                 jp      p, loc_AEA2
  8923.  
  8924.                 ld      (hl), #21 ; '!'
  8925.                 ld      e, l
  8926.                 dec     h
  8927.                 ld      a, b
  8928.                 sub     #10
  8929.                 ld      l, a
  8930.                 ld      a, (hl) ;выше
  8931.                 and     #C0
  8932.                 cp      #40
  8933.                 jr      nc, loc_AE59
  8934.  
  8935.                 ld      a, l
  8936.                 sub     #11
  8937.                 ld      l, a
  8938.                 ld      a, (hl) ;ещё выше левее
  8939.                 and     #C0
  8940.                 cp      #40
  8941.                 jr      z, loc_AE59
  8942.  
  8943.                 inc     l
  8944.                 ld      a, (hl) ;ещё выше
  8945.                 and     #C0
  8946.                 cp      #40
  8947.                 jr      z, loc_AE59
  8948.  
  8949.                 inc     l
  8950.                 ld      a, (hl) ;ещё выше правее
  8951.                 and     #C0
  8952.                 cp      #40
  8953.                 jr      z, loc_AE59
  8954.  
  8955.                 ld      l, e
  8956.                 inc     h
  8957.                 ld      (hl), #51 ; 'Q'
  8958.                 jp      loc_AEF3
  8959.  
  8960. ; ---------------------------------------------------------------------------
  8961.  
  8962. loc_AEA2:                               ; CODE XREF: sub_AD40+12E
  8963.                 ld      (hl), #41 ; 'A'
  8964.                 ld      e, l
  8965.                 dec     h
  8966.                 ld      a, b
  8967.                 sub     #10
  8968.                 ld      l, a
  8969.                 ld      a, (hl) ;выше
  8970.                 and     #C0
  8971.                 cp      #40
  8972.                 jr      z, loc_AE59
  8973.  
  8974.                 ld      l, e
  8975.                 inc     h
  8976.                 ld      (hl), #71 ; 'q'
  8977.                 set     0, (ix+2)
  8978.                 jp      loc_AEF3
  8979.  
  8980. ; ---------------------------------------------------------------------------
  8981.  
  8982. loc_AEBC:                               ; CODE XREF: sub_AD40+128
  8983.                 and     #C0
  8984.                 jr      z, loc_AEF1
  8985.  
  8986.                 jp      loc_AEF3
  8987.  
  8988. ; ---------------------------------------------------------------------------
  8989.  
  8990. loc_AEC3:                               ; CODE XREF: sub_AD40+12C
  8991.                 jp      p, loc_AECF
  8992.  
  8993.                 ld      (hl), #A1
  8994.                 set     0, (ix+2)
  8995.                 jp      loc_AEF3
  8996.  
  8997. ; ---------------------------------------------------------------------------
  8998.  
  8999. loc_AECF:                               ; CODE XREF: sub_AD40:loc_AE4D
  9000.                                         ; sub_AD40:loc_AEC3
  9001.                 set     6, (ix+2)
  9002.                 ld      (hl), #19
  9003.                 ld      a, (word_D00D)
  9004.                 bit     7, l
  9005.                 jr      z, loc_AEDE
  9006.                 add     a, #10
  9007. loc_AEDE:                               ; CODE XREF: sub_AD40+19A
  9008.                 sub     8
  9009.                 ld      (word_D00D), a
  9010.                 ld      e, #84
  9011.                 bit     3, (ix+2)
  9012.                 jp      z, loc_AF17
  9013.  
  9014.                 ld      e, 4
  9015.                 jp      loc_ADD3
  9016.  
  9017. ; ---------------------------------------------------------------------------
  9018.  
  9019. loc_AEF1:                               ; CODE XREF: sub_AD40+107
  9020.                                         ; sub_AD40+17E
  9021.                 ld      (hl), #11
  9022.  
  9023. loc_AEF3:                               ; CODE XREF: sub_AD40+EA
  9024.                                         ; sub_AD40+102 ...
  9025.                 ld      a, (ix+2)
  9026.                 bit     3, a
  9027.                 jp      z, loc_AF15
  9028.  
  9029. loc_AEFB:                               ; CODE XREF: sub_AD40+123
  9030.                 bit     5, a
  9031.                 jp      z, loc_ADD1
  9032.  
  9033.                 ld      a, b
  9034.                 bit     7, l
  9035.                 jr      z, loc_AF07
  9036.                 add     a, #20 ; ' '
  9037. loc_AF07:                               ; CODE XREF: sub_AD40+1C3
  9038.                 sub     #10
  9039.                 dec     h
  9040.                 ld      l, a ;выше?
  9041.                 ld      c, (hl)
  9042.                 ld      (hl), 0
  9043.                 inc     h
  9044.                 ld      b, l
  9045.                 ld      e, 1
  9046.                 jp      loc_ADD3
  9047.  
  9048. ; ---------------------------------------------------------------------------
  9049.  
  9050. loc_AF15:                               ; CODE XREF: sub_AD40+11E
  9051.                                         ; sub_AD40+1B8
  9052.                 ld      e, #80
  9053.  
  9054. loc_AF17:                               ; CODE XREF: sub_AD40+1A9
  9055.                 push    de
  9056.                 ld      hl, (word_D03D)
  9057.                 set     7, (hl)
  9058.                 exx
  9059.                 jp      (hl)
  9060.  
  9061. ; ---------------------------------------------------------------------------
  9062.  
  9063. loc_AF1F:                               ; CODE XREF: sub_AD40+80
  9064.                 call    sub_AF65
  9065.  
  9066.                 ld      a, (ix+2)
  9067.                 and     #18
  9068.                 jp      z, loc_ADCC
  9069.  
  9070.                 and     8
  9071.                 jp      nz, loc_ADD1
  9072.  
  9073.                 set     5, (hl)
  9074.                 dec     h
  9075.                 bit     2, b ;b=позиция короля после рокировки
  9076.                 jr      z, loc_AF40
  9077. ;ладья при рокировке вправо?
  9078.                if FIX ;TODO Chess960 найти позицию ладьи до рокировки (самая правая фигура, не считая короля, но король мог её затереть!!!)
  9079.                 ld l,b ;b=позиция короля после рокировки
  9080.                 ;inc l ;TODO
  9081.                 ld c,0x9c
  9082.                 ld a,l
  9083.                 cp b
  9084.                 jr z,$+4 ;король затёр ладью
  9085.                 ld (hl),0 ;снимаем ладью
  9086.                else
  9087.                 inc     b
  9088.                 ld      l, b
  9089.                 ld      c,(hl)
  9090.                 ld      (hl), 0 ;снимаем ладью
  9091.                endif
  9092.                if FIX
  9093.                ld l,b ;b=позиция короля после рокировки
  9094.                dec l
  9095.                else
  9096.                 dec     l
  9097.                 dec     l
  9098.                endif
  9099.                 jp      loc_AF49
  9100.  
  9101. ; ---------------------------------------------------------------------------
  9102.  
  9103. loc_AF40:                               ; CODE XREF: sub_AD40+1F4
  9104. ;ладья при рокировке влево?
  9105.                if FIX ;TODO Chess960 найти позицию ладьи до рокировки (самая левая фигура, не считая короля, но король мог её затереть!!!)
  9106.                 ld l,b ;b=позиция короля после рокировки
  9107.                 ;dec l
  9108.                 ;dec l ;TODO
  9109.                 ld c,0x94; (hl)
  9110.                 ld a,l
  9111.                 cp b
  9112.                 jr z,$+4 ;король затёр ладью
  9113.                 ld (hl),0 ;снимаем ладью
  9114.                else
  9115.                 dec     b
  9116.                 dec     b
  9117.                 ld      l, b
  9118.                 ld      c, (hl)
  9119.                 ld      (hl), 0 ;снимаем ладью
  9120.                endif
  9121.                if FIX
  9122.                ld l,b ;b=позиция короля после рокировки
  9123.                inc l
  9124.                else
  9125.                 inc     l
  9126.                 inc     l
  9127.                 inc     l
  9128.                endif
  9129.  
  9130. loc_AF49:                               ; CODE XREF: sub_AD40+1FD
  9131.                 ld      (hl), c ;ставим ладью на новое место?
  9132.                 ld      a, (word_D04A+1)
  9133.                 or      a
  9134.                 jr      z, loc_AF54
  9135.  
  9136.                 ld      a, #84
  9137.                 and     c
  9138.                 ld      (hl), a
  9139.  
  9140. loc_AF54:                               ; CODE XREF: sub_AD40+20E
  9141.                 push    bc
  9142.                 res     2, c
  9143.                 ld      b, word_D100/256
  9144.                 ld      a, l
  9145.                 ld      (bc), a
  9146.                 ld      e, #40
  9147.                 ld      hl, (word_D03D)
  9148.                 set     7, (hl)
  9149.                 push    de
  9150.                 exx
  9151.                 jp      (hl)
  9152.  
  9153. ; End of function sub_AD40
  9154.  
  9155.  
  9156. ; =============== S U B R O U T I N E =======================================
  9157.  
  9158.  
  9159. sub_AF65:                               ; CODE XREF: sub_AD40:loc_AF1F
  9160.                 ld      a, d
  9161.                 or      #10
  9162.  
  9163.  
  9164. loc_AF68:                               ; CODE XREF: sub_884D:loc_A912
  9165.                 and     #3F
  9166.                 ld      e, #11
  9167.  
  9168. loc_AF6C:                               ; CODE XREF: sub_AF65+19
  9169.                 ld      (hl), a
  9170.                 ld      a, b
  9171.                 add     a, e
  9172.                 and     #88
  9173.                 ret     nz
  9174.                 ld      a, b
  9175.                 sub     e
  9176.                 and     #88
  9177.                 ret     nz
  9178.                 ld      a, #11
  9179.                 add     a, e
  9180.                 ld      e, a
  9181.                 ld      a, #40
  9182.                 add     a, (hl)
  9183.                 jp      loc_AF6C
  9184.  
  9185. ; End of function sub_AF65
  9186.  
  9187.  
  9188. ; =============== S U B R O U T I N E =======================================
  9189.  
  9190.  
  9191. sub_AF81:                               ; CODE XREF: sub_A909   sub_AB53+7F ...
  9192.                 pop     hl
  9193.                 exx
  9194.                 pop     af
  9195.                 pop     hl
  9196.                 ld      c, a
  9197.                 ld      a, 0
  9198.                 ld      d, BRD_88_0/256
  9199.                 jp      m, loc_AF9A
  9200.  
  9201.                 jr      z, loc_AFB6
  9202.  
  9203.                 jr      c, loc_AFAF
  9204.  
  9205.                 ld      b, l
  9206.  
  9207.  
  9208. loc_AF92:                               ; CODE XREF: sub_AF81+32
  9209.                 res     2, l
  9210.                 ld      h, word_D100/256
  9211.                 res     7, (hl)
  9212.                 ld      a, b
  9213.  
  9214. loc_AF99:                               ; CODE XREF: sub_AF81+41
  9215.                 pop     hl
  9216.  
  9217. loc_AF9A:                               ; CODE XREF: sub_AF81+9
  9218.                 ld      e, h
  9219.                 ex      de, hl
  9220.                 ld      (hl), e
  9221.                 ex      de, hl
  9222.                 res     2, l
  9223.                 ld      h, word_D100/256
  9224.                 ld      b, (hl)
  9225.                 ld      (hl), e
  9226.                 inc     l
  9227.                 ld      (hl), c
  9228.                 ld      l, b
  9229.                 dec     h               ; BRD_88_0/256
  9230.                 ld      (hl), a ;вернули ход назад?
  9231.                 pop     hl
  9232.                 ld      (word_D00D), hl
  9233.                 exx
  9234.                 jp      (hl)
  9235.  
  9236. ; ---------------------------------------------------------------------------
  9237.  
  9238. loc_AFAF:                               ; CODE XREF: sub_AF81+E
  9239.                 ld      e, h
  9240.                 ld      b, a
  9241.                 ld      a, l
  9242.                 ld      (de), a
  9243.                 jp      loc_AF92
  9244.  
  9245. ; ---------------------------------------------------------------------------
  9246.  
  9247. loc_AFB6:                               ; CODE XREF: sub_AF81+C
  9248.                 ld      e, h ;???
  9249.                 ld      a, l ;???
  9250.                 ld      (de), a
  9251.                 res     2, l
  9252.                 ld      h, word_D100/256
  9253.                 ld      b, (hl) ;???
  9254.                 ld      (hl), e
  9255.                 xor     a
  9256.                 ld      e, b
  9257.                 ld      (de), a ;стираем ладью при отмене рокировки?
  9258.                 jp      loc_AF99
  9259.  
  9260. ; End of function sub_AF81
  9261.  
  9262.  
  9263. ; =============== S U B R O U T I N E =======================================
  9264.  
  9265.  
  9266. sub_AFC5:                               ; CODE XREF: sub_A900
  9267.                 ld      ix, word_D059
  9268.                 call    sub_A94F
  9269.  
  9270.                 dec     hl
  9271.                 dec     hl
  9272.                 ld      (hl), #FF
  9273.                 call    sub_AC74
  9274.  
  9275.                 jp      z, loc_B0B7
  9276.  
  9277.                 ld      a, (byte_D0B4)
  9278.                 bit     5, a
  9279.                 jr      z, loc_AFE0 ;visible board?
  9280.  
  9281.                 call    nz, sub_B2E2
  9282.  
  9283.  
  9284. loc_AFE0:                               ; CODE XREF: sub_AFC5+16
  9285.                 call    sub_B2D1 ;копирует 14 координат полей с маской 0yyy0xxx из byte_D258 в byte_D20D
  9286.  
  9287.                 call    sub_B2F1
  9288.  
  9289.                 call    sub_B1EB
  9290.  
  9291.                 ld      hl, byte_D0B3 ;d3=swap board
  9292.                 res     5, (hl)
  9293.                 ld      hl, byte_D108
  9294.                 xor     a
  9295.                 ld      (byte_D04C), a
  9296.                 call    sub_A932
  9297.  
  9298.                 ld      e, c
  9299.                 ld      l, #88
  9300.                 call    sub_A932
  9301.  
  9302.                 ld      a, c
  9303.                 sub     e
  9304.                 ld      (byte_D02E), a
  9305.                 ld      a, (byte_D049) ;move #
  9306.                 cp      8
  9307.                 cpl
  9308.                 jr      c, loc_B00D
  9309.                 ld      a, c
  9310.                 add     a, e
  9311. loc_B00D:                               ; CODE XREF: sub_AFC5+44
  9312.                 ld      hl, byte_A928-1
  9313.  
  9314. loc_B010:                               ; CODE XREF: sub_AFC5+4E
  9315.                 inc     hl
  9316.                 cp      (hl)
  9317.                 inc     hl
  9318.                 jr      c, loc_B010
  9319.  
  9320.                 ld      b, (hl)
  9321.                 ld      hl, byte_D02D
  9322.                 ld      a, (hl)
  9323.                 and     1
  9324.                 or      b
  9325.                 ld      (hl), a
  9326.                 xor     a
  9327.                 ld      (word_D00D), a
  9328.                 ld      a, #FE
  9329.                 ld      (byte_D098), a
  9330.                 call    sub_B2B9
  9331.  
  9332.                 push    hl
  9333.                 call    sub_AB4C
  9334.  
  9335.                 pop     ix
  9336.                 scf
  9337.                 ret     z
  9338.                 ld      a, (byte_D0EF)
  9339.                 ld      (byte_D08B), a
  9340.                 inc     ix
  9341.                 xor     a
  9342.                 ld      (word_D00D+1), a
  9343.                 inc     a
  9344.                 ld      (byte_D03B), a
  9345.                 ld      a, (curlevel)
  9346.                 cp      #B
  9347.                 call    nc, sub_B8B2
  9348.  
  9349.                 ld      a, (timenorm)
  9350.                 ld      (byte_D0F2), a
  9351.  
  9352.  
  9353. loc_B050:                               ; CODE XREF: sub_AFC5+EF
  9354.                 call    sub_8F4D
  9355.  
  9356.                 call    loc_B819
  9357.  
  9358.                 jr      c, loc_B0B7
  9359.  
  9360.                 push    ix
  9361.                 call    sub_B19C
  9362.  
  9363. loc_B05D:                               ; CODE XREF: sub_AFC5:loc_B182
  9364.                 ld      a, (curlevel)
  9365.                 cp      #C
  9366.                 jr      nz, loc_B07A
  9367.  
  9368.                 xor     a
  9369.                 ld      (byte_D08A), a
  9370.                 ld      (byte_D08C), a
  9371.                 ld      (byte_D00B), a
  9372.                 ld      (byte_D01C), a
  9373.                 inc     a
  9374.                 ld      (byte_D08B), a
  9375.                 ld      a, #80
  9376.                 ld      (byte_D019), a
  9377.  
  9378. loc_B07A:                               ; CODE XREF: sub_AFC5+9D
  9379.                 call    sub_B47F
  9380.  
  9381.                 call    sub_B2D1 ;копирует 14 координат полей с маской 0yyy0xxx из byte_D258 в byte_D20D
  9382.  
  9383.                 ld      hl, byte_D08B
  9384.                 pop     ix
  9385.                 ld      a, (curlevel)
  9386.                 cp      #C
  9387.                 jr      nz, loc_B091
  9388.  
  9389.                 call    sub_A6F7
  9390.  
  9391.                 jr      loc_B097
  9392.  
  9393. ; ---------------------------------------------------------------------------
  9394.  
  9395. loc_B091:                               ; CODE XREF: sub_AFC5+C5
  9396.                 ld      a, (ix+3)
  9397.                 inc     a
  9398.                 jr      z, loc_B09C
  9399.  
  9400. loc_B097:                               ; CODE XREF: sub_AFC5+CA
  9401.                 ld      a, (hl)
  9402.                 cp      #FE
  9403.                 jr      c, loc_B0A3
  9404.  
  9405. loc_B09C:                               ; CODE XREF: sub_AFC5+D0
  9406.                 ld      a, (byte_D0B4)
  9407.                 bit     5, a
  9408.                 jr      z, loc_B0B7 ;visible board?
  9409.  
  9410. loc_B0A3:                               ; CODE XREF: sub_AFC5+D5
  9411.                 ld      a, (byte_D0B4)
  9412.                 rla
  9413.                 jr      c, loc_B0B7
  9414.  
  9415.                 push    ix
  9416.                 ld      a, (byte_D00B)
  9417.                 cp      (hl)
  9418.                 jp      z, loc_B175
  9419.  
  9420.                 pop     ix
  9421.                 jp      loc_B050
  9422.  
  9423. ; ---------------------------------------------------------------------------
  9424.  
  9425. loc_B0B7:                               ; CODE XREF: sub_AFC5+E sub_AFC5+91     ...
  9426.                 ld      a, (byte_D0B4)
  9427.                 bit     5, a
  9428.                 jp      nz, loc_B164 ;invisible board?
  9429.  
  9430.                 ld      bc, (INC_SECONDS)
  9431.                 ld      hl, (word_D088)
  9432.                 add     hl, bc
  9433.                 ld      (word_D088), hl
  9434.                 ld      a, (byte_D049) ;move #
  9435.                 cp      9
  9436.                 jp      c, loc_B164
  9437.  
  9438.                 ld      h, b
  9439.                 ld      l, c
  9440.                 ld      a, (byte_D03C)
  9441.                 cp      4
  9442.                 jr      nc, loc_B0E9
  9443.  
  9444.                 push    af
  9445.                 ld      a, (byte_D0B3) ;d3=swap board
  9446.                 bit     5, a
  9447.                 jr      nz, loc_B0E8
  9448.  
  9449.                 ld      bc, (word_D02B)
  9450.                 add     hl, bc
  9451.  
  9452. loc_B0E8:                               ; CODE XREF: sub_AFC5+11C
  9453.                 pop     af
  9454.  
  9455. loc_B0E9:                               ; CODE XREF: sub_AFC5+114
  9456.                 cp      6
  9457.                 ld      a, (byte_D02A)
  9458.                 ld      c, a
  9459.                 ld      b, 0
  9460.                 jr      c, loc_B0FE
  9461.  
  9462.                 ld      a, c
  9463.                 rra
  9464.                 rra
  9465.                 and     #3F
  9466.                 add     a, c
  9467.                 ld      c, a
  9468.                 ld      a, 0
  9469.                 adc     a, b
  9470.                 ld      b, a
  9471.  
  9472. loc_B0FE:                               ; CODE XREF: sub_AFC5+12C
  9473.                 ld      a, 4
  9474.  
  9475. loc_B100:                               ; CODE XREF: sub_AFC5+140
  9476.                 dec     a
  9477.                 jr      z, loc_B107
  9478.  
  9479.                 sbc     hl, bc
  9480.                 jr      nc, loc_B100
  9481.  
  9482. loc_B107:                               ; CODE XREF: sub_AFC5+13C
  9483.                 sub     2
  9484.                 jr      z, loc_B120
  9485.  
  9486.                 jr      c, loc_B11D
  9487.  
  9488.                 ld      a, (byte_D03C)
  9489.                 cp      3
  9490.                 jr      nc, loc_B11B
  9491.  
  9492.                 ld      a, (byte_D0B3) ;d3=swap board
  9493.                 bit     5, a
  9494.                 jr      nz, loc_B120
  9495.  
  9496. loc_B11B:                               ; CODE XREF: sub_AFC5+14D
  9497.                 ld      a, 1
  9498.  
  9499. loc_B11D:                               ; CODE XREF: sub_AFC5+146
  9500.                 call    IncreaseTimeNorm_A
  9501.  
  9502. loc_B120:                               ; CODE XREF: sub_AFC5+144
  9503.                                         ; sub_AFC5+154
  9504.                 ld      a, (curlevel)
  9505.                 cp      #A
  9506.                 jr      z, loc_B14F
  9507.  
  9508.                 ld      a, (byte_D02D)
  9509.                 bit     2, a
  9510.                 jr      nz, loc_B14F
  9511.  
  9512.                 ld      a, (timeformove)
  9513.                 cp      #9B
  9514.                 jr      c, loc_B164
  9515.  
  9516.                 ld      a, (curlevel)
  9517.                 add     a, a
  9518.                 ld      hl, tbl_B8DD-2
  9519.                 add     a, l
  9520.                 ld      l, a
  9521.                 ld      a, 0
  9522.                 adc     a, h
  9523.                 ld      h, a
  9524.                 ld      a, (timenorm)
  9525.                 sub     3
  9526.                 sub     (hl)
  9527.                 neg
  9528.                 call    m, IncreaseTimeNorm_A
  9529.  
  9530.                 jr      loc_B164
  9531.  
  9532. ; ---------------------------------------------------------------------------
  9533.  
  9534. loc_B14F:                               ; CODE XREF: sub_AFC5+160
  9535.                                         ; sub_AFC5+167
  9536.                 ld      a, (timenorm)
  9537.                 add     a, 4
  9538.                 ld      hl, byte_D0F2
  9539.                 cp      (hl)
  9540.                 ld      a, 2
  9541.                 jr      nc, loc_B164
  9542.  
  9543.                 ld      hl, byte_D0B3 ;d3=swap board
  9544.                 bit     5, (hl)
  9545.                 call    z, IncreaseTimeNorm_A
  9546.  
  9547.  
  9548. loc_B164:                               ; CODE XREF: sub_AFC5+F7
  9549.                                         ; sub_AFC5+10A ...
  9550.                 xor     a
  9551.                 ret
  9552.  
  9553. ; ---------------------------------------------------------------------------
  9554.  
  9555. loc_B166:                               ; CODE XREF: sub_B47F+CA
  9556.                 xor     a
  9557.                 ld      (byte_D08A), a
  9558.                 ld      (byte_D08C), a
  9559.                 ld      a, (byte_D00B)
  9560.                 ld      (byte_D08B), a
  9561.                 jr      loc_B182
  9562.  
  9563. ; ---------------------------------------------------------------------------
  9564.  
  9565. loc_B175:                               ; CODE XREF: sub_AFC5+EA
  9566.                 ld      a, (byte_D08A)
  9567.                 ld      (byte_D08C), a
  9568.                 xor     a
  9569.                 ld      (byte_D00B), a
  9570.                 ld      (byte_D08B), a
  9571.  
  9572.  
  9573. loc_B182:                               ; CODE XREF: sub_AFC5+1AE
  9574.                 jp      loc_B05D
  9575.  
  9576. ; End of function sub_AFC5
  9577.  
  9578.  
  9579. ; =============== S U B R O U T I N E =======================================
  9580.  
  9581.  
  9582. IncreaseTimeNorm_A:                             ; CODE XREF: sub_AFC5:loc_B11D
  9583.                                         ; sub_AFC5+185 ...
  9584.                 ld      d, a
  9585.                 ld      a, (timenorm) ;в начале партии #0C, после 1 хода за белых #10, потом с 9 хода за белых увеличивается на 1 с каждым ходом. Take Back не влияет, даже если уйти с линии
  9586.                 add     a, d
  9587.                 ld      d, a
  9588.                 and     #F0
  9589.                 jr      nz, loc_B191 ;>=#10
  9590.                 ld      d, #10 ;=#10
  9591. loc_B191:                               ; CODE XREF: IncreaseTimeNorm_A+8
  9592.                 cp      #50
  9593.                 jr      c, loc_B197 ;<#50
  9594.                 ld      d, #4F ;=#4F
  9595. loc_B197:                               ; CODE XREF: IncreaseTimeNorm_A+E
  9596.                 ld      a, d
  9597.                 ld      (timenorm), a
  9598.                 ret
  9599.  
  9600. ; End of function IncreaseTimeNorm_A
  9601.  
  9602.  
  9603. ; =============== S U B R O U T I N E =======================================
  9604.  
  9605.  
  9606. sub_B19C:                               ; CODE XREF: sub_AFC5+95
  9607.                 ld      a, (byte_D08B)
  9608.                 ld      c, a
  9609.                 add     a, #84
  9610.                 sra     a
  9611.                 sra     a
  9612.                 sra     a
  9613.                 ld      b, a
  9614.                 ld      a, (byte_D0B2)
  9615.                 or      a
  9616.                 ld      a, b
  9617.                 jr      nz, loc_B1B2
  9618.                 neg
  9619. loc_B1B2:                               ; CODE XREF: sub_B19C+12
  9620.                 ld      hl, word_D00D
  9621.                 add     a, (hl)
  9622.                 ld      (hl), a
  9623.                 neg
  9624.                 ld      hl, byte_D02E
  9625.                 add     a, (hl)
  9626.                 cp      #F
  9627.                 jr      c, loc_B1CC
  9628.  
  9629.                 cp      #F2
  9630.                 jr      nc, loc_B1CC
  9631.  
  9632.                 rla
  9633.                 ld      a, #E
  9634.                 jr      nc, loc_B1CC
  9635.                 ld      a, #F2
  9636. loc_B1CC:                               ; CODE XREF: sub_B19C+23 sub_B19C+27 ...
  9637.                 add     a, a
  9638.                 add     a, a
  9639.                 add     a, a
  9640.                 ld      (byte_D01E), a
  9641.                 ld      a, b
  9642.                 add     a, a
  9643.                 add     a, a
  9644.                 add     a, a
  9645.                 neg
  9646.                 add     a, c
  9647.                 sub     8
  9648.                 ld      (byte_D00B), a
  9649.                 ld      (byte_D08B), a
  9650.                 ld      (byte_D08A), a
  9651.                 ld      (byte_D08C), a
  9652.                 ret
  9653.  
  9654. ; End of function sub_B19C
  9655.  
  9656. ; ---------------------------------------------------------------------------
  9657. ; START OF FUNCTION CHUNK FOR sub_B1EB
  9658.  
  9659. loc_B1E8:                               ; CODE XREF: sub_B1EB+46
  9660.                 call    sub_B8B2
  9661.  
  9662. ; END OF FUNCTION CHUNK FOR sub_B1EB
  9663.  
  9664. ; =============== S U B R O U T I N E =======================================
  9665.  
  9666.  
  9667. sub_B1EB:                               ; CODE XREF: sub_AFC5+21
  9668.  
  9669. ; FUNCTION CHUNK AT B1E8 SIZE 00000003 BYTES
  9670.  
  9671.                 ld      a, (curlevel)
  9672.                 cp      #A
  9673.                 ld      a, (timeformove)
  9674.                 jr      nz, loc_B205
  9675.  
  9676.                 or      a
  9677.                 ld      (byte_D0F3), a
  9678.                 rr      a
  9679.                 inc     a
  9680.                 ld      (byte_D02A), a
  9681.                 ld      a, #A
  9682.                 ld      (byte_D03C), a
  9683.                 ret
  9684. ; ---------------------------------------------------------------------------
  9685. loc_B205:                               ; CODE XREF: sub_B1EB+8
  9686.                 ld      e, a
  9687.                 xor     a
  9688.                 ld      d, a
  9689.                 ld      b, #A
  9690.                 ld      hl, 0
  9691. loc_B20D:                               ; CODE XREF: sub_B1EB+24
  9692.                 adc     hl, de          ; mul E by 10, why ADC???
  9693.                 djnz    loc_B20D
  9694.  
  9695.                 ld      a, (byte_D049) ;move #
  9696.                 dec     a
  9697.                 ld      b, 0
  9698.                 ld      c, #A
  9699. loc_B219:                               ; CODE XREF: sub_B1EB+30
  9700.                 inc     b
  9701.                 sub     c
  9702.                 jr      nc, loc_B219
  9703.  
  9704.                 neg
  9705.                 ld      d, h
  9706.                 ld      e, l
  9707.                 or      a
  9708.                 jr      loc_B226
  9709. ; ---------------------------------------------------------------------------
  9710. loc_B224:                               ; CODE XREF: sub_B1EB:loc_B226
  9711.                 adc     hl, de          ; E*10*floor(byte_D049/10)
  9712. loc_B226:                               ; CODE XREF: sub_B1EB+37
  9713.                 djnz    loc_B224
  9714.  
  9715.                 ld      de, (word_D088)
  9716.                 or      a
  9717.                 sbc     hl, de
  9718.                 bit     7, h
  9719.                 jr      nz, loc_B1E8
  9720.  
  9721.                 ld      c, a
  9722.                 push    hl
  9723.                 ld      a, (timeformove)
  9724.                 ld      d, 0
  9725.                 ld      e, a
  9726.                 xor     a
  9727.                 ld      (byte_D03C), a
  9728.                 dec     a
  9729. loc_B240:                               ; CODE XREF: sub_B1EB+58
  9730.                 inc     a
  9731.                 sbc     hl, de
  9732.                 jr      nc, loc_B240
  9733.  
  9734.                 sub     c
  9735.                 jr      c, loc_B24B
  9736.                 ld      (byte_D03C), a
  9737. loc_B24B:                               ; CODE XREF: sub_B1EB+5B
  9738.                 pop     hl
  9739.                 ld      a, #FE
  9740.                 ld      (byte_D0F3), a
  9741.                 ld      (byte_D02A), a
  9742.                 ld      a, h
  9743.                 srl     a
  9744.                 jr      nz, loc_B26A
  9745.  
  9746.                 ld      a, l
  9747.                 rra
  9748.                 dec     c
  9749.                 jr      z, loc_B260
  9750.                 srl     a
  9751. loc_B260:                               ; CODE XREF: sub_B1EB+71
  9752.                 inc     c
  9753.                 sub     2
  9754.                 jr      nc, loc_B266
  9755.                 xor     a
  9756. loc_B266:                               ; CODE XREF: sub_B1EB+78
  9757.                 inc     a
  9758.                 ld      (byte_D0F3), a
  9759. loc_B26A:                               ; CODE XREF: sub_B1EB+6C
  9760.                 xor     a               ; HL=HL/C ?
  9761.                 ld      b, #11
  9762. loc_B26D:                               ; CODE XREF: sub_B1EB+8C
  9763.                 rl      l               ; ADC HL,HL?
  9764.                 rl      h
  9765.                 rla
  9766.                 cp      c
  9767.                 jr      c, loc_B276
  9768.                 sub     c
  9769. loc_B276:                               ; CODE XREF: sub_B1EB+88
  9770.                 ccf
  9771.                 djnz    loc_B26D
  9772.  
  9773.                 ld      a, h
  9774.                 srl     a
  9775.                 jr      nz, loc_B29C
  9776.  
  9777.                 ld      a, l
  9778.                 rra
  9779.                 or      a
  9780.                 jr      nz, loc_B284
  9781.                 inc     a
  9782. loc_B284:                               ; CODE XREF: sub_B1EB+96
  9783.                 ld      (byte_D02A), a
  9784.                 rla
  9785.                 jr      c, loc_B29C
  9786.  
  9787.                 ld      a, (timeformove)
  9788.                 cp      l
  9789.                 jr      c, loc_B29F
  9790.  
  9791.                 ld      a, (byte_D0B4)
  9792.                 bit     5, a
  9793.                 jr      nz, loc_B29C ;invisible board?
  9794.  
  9795.                 ld      a, #FF
  9796.                 call    IncreaseTimeNorm_A
  9797.  
  9798. loc_B29C:                               ; CODE XREF: sub_B1EB+91 sub_B1EB+9D ...
  9799.                 ld      a, (timeformove)
  9800. loc_B29F:                               ; CODE XREF: sub_B1EB+A3
  9801.                 ld      hl, byte_D02A
  9802.                 cp      (hl)
  9803.                 jr      nc, loc_B2A6
  9804.                 ld      (hl), a
  9805. loc_B2A6:                               ; CODE XREF: sub_B1EB+B8
  9806.                 ld      a, (byte_D02A)
  9807.                 ld      b, a
  9808.                 add     a, a
  9809.                 ret     c
  9810.                 add     a, b
  9811.                 ret     c
  9812.                 ld      b, a
  9813.                 ld      a, (byte_D0F3)
  9814.                 cp      b
  9815.                 ret     c
  9816.                 ld      a, b
  9817.                 ld      (byte_D0F3), a
  9818.                 ret
  9819.  
  9820. ; End of function sub_B1EB
  9821.  
  9822.  
  9823. ; =============== S U B R O U T I N E =======================================
  9824.  
  9825.  
  9826. sub_B2B9:                               ; CODE XREF: sub_AFC5+62 sub_B47F-50 ...
  9827.                 ld      hl, byte_D097
  9828.                 ld      a, (hl)
  9829.                 add     a, a
  9830.                 add     a, l
  9831.                 ld      l, a
  9832.                 ld      e, (hl)
  9833.                 inc     l
  9834.                 ld      d, (hl)
  9835.                 ex      de, hl
  9836.                 inc     hl
  9837.                 inc     hl
  9838.                 ret
  9839.  
  9840. ; End of function sub_B2B9
  9841.  
  9842. ; ---------------------------------------------------------------------------
  9843.  
  9844.                 ; no alignment
  9845.  
  9846.                 ; low parts of addresses in D2xx region
  9847. tbl_B2C7:       db #58
  9848.                 db #66
  9849.                 db #72
  9850.                 db #7C
  9851.                 db #84
  9852.                 db #8A
  9853.                 db #8E
  9854.                 db #90
  9855.                 db #90
  9856.                 db #8E
  9857.  
  9858. ; =============== S U B R O U T I N E =======================================
  9859.  
  9860.  
  9861. sub_B2D1:                               ; CODE XREF: sub_AFC5:loc_AFE0
  9862.                                         ; sub_AFC5+B8
  9863.                 ld      hl, byte_D258
  9864.                 ld      de, byte_D20D
  9865.                 ld      b, #E
  9866. loc_B2D9:                               ; CODE XREF: sub_B2D1+E
  9867.                 ld      a, (hl)
  9868.                 and     #77 ;маска поля 0yyy0xxx
  9869.                 ld      (de), a
  9870.                 inc     e
  9871.                 inc     l
  9872.                 djnz    loc_B2D9
  9873.                 ret
  9874.  
  9875. ; End of function sub_B2D1
  9876.  
  9877.  
  9878. ; =============== S U B R O U T I N E =======================================
  9879.  
  9880.  
  9881. sub_B2E2:                               ; CODE XREF: sub_AFC5+18
  9882.                 ld      hl, byte_D25C
  9883.                 ld      de, byte_D258
  9884.                 ld      b, #A
  9885.  
  9886.  
  9887. loc_B2EA:                               ; CODE XREF: sub_B2E2+C
  9888.                 ld      a, (hl)
  9889.                 ld      (de), a
  9890.                 inc     e
  9891.                 inc     l
  9892.                 djnz    loc_B2EA
  9893.  
  9894.                 ret
  9895.  
  9896. ; End of function sub_B2E2
  9897.  
  9898.  
  9899. ; =============== S U B R O U T I N E =======================================
  9900.  
  9901.  
  9902. sub_B2F1:                               ; CODE XREF: sub_AFC5+1E
  9903.                                         ; sub_B47F:loc_B405 ...
  9904.                 ld      a, (byte_D097)
  9905.                 cp      7
  9906.                 ret     nc              ; only 0..6
  9907.                 ld      e, a
  9908.                 ld      hl, tbl_B2C7
  9909.                 ld      d, 0
  9910.                 add     hl, de
  9911.                 ld      e, (hl)
  9912.                 inc     hl
  9913.                 ld      l, (hl)
  9914.                 ld      h, array_D200/256
  9915.                 ld      d, h
  9916.                 ld      a, #FF
  9917.                 ld      (hl), a
  9918.                 ld      (de), a
  9919.                 ret
  9920.  
  9921. ; End of function sub_B2F1
  9922.  
  9923.  
  9924. ; =============== S U B R O U T I N E =======================================
  9925.  
  9926.  
  9927. sub_B309:                               ; CODE XREF: sub_B47F+9D
  9928.                                         ; sub_B47F+228 ...
  9929.                 ld      a, (byte_D097)
  9930.                 ld      e, a
  9931.                 sub     8
  9932.                 jr      nc, sub_B34B
  9933.  
  9934.                 cpl
  9935.                 ld      b, a
  9936.                 ld      hl, tbl_B2C7-1
  9937.                 ld      d, 0
  9938.                 add     hl, de
  9939.                 ld      e, (hl)
  9940.                 inc     hl
  9941.                 ld      l, (hl)
  9942.                 ld      h, array_D200/256
  9943.                 ld      d, h
  9944.                 ld      a, (ix+0)
  9945.                 ld      (de), a
  9946.                 inc     e
  9947.                 ld      a, (ix+1)
  9948.                 ld      (de), a
  9949.                 dec     b
  9950.                 jp      m, loc_B337
  9951.  
  9952.                 inc     b
  9953.  
  9954.  
  9955. loc_B32D:                               ; CODE XREF: sub_B309+2C
  9956.                 inc     e
  9957.                 ld      a, (hl)
  9958.                 ld      (de), a
  9959.                 inc     l
  9960.                 inc     e
  9961.                 ld      a, (hl)
  9962.                 ld      (de), a
  9963.                 inc     l
  9964.                 djnz    loc_B32D
  9965.  
  9966.  
  9967. loc_B337:                               ; CODE XREF: sub_B309+20
  9968.                 ld      hl, byte_D0B6
  9969.                 bit     0, (hl)
  9970.                 jr      z, sub_B34B
  9971.  
  9972.                 ld      a, (byte_D097)
  9973.                 dec     a
  9974.                 jr      nz, loc_B346
  9975.  
  9976.                 set     2, (hl)
  9977.  
  9978.  
  9979. loc_B346:                               ; CODE XREF: sub_B309+39
  9980.                 bit     2, (hl)
  9981.                 call    nz, sub_A684
  9982.  
  9983. ; End of function sub_B309
  9984.  
  9985.  
  9986. ; =============== S U B R O U T I N E =======================================
  9987.  
  9988.  
  9989. sub_B34B:                               ; CODE XREF: sub_B309+6 sub_B309+33     ...
  9990.                 ld      c, (ix+1)
  9991.                 bit     7, c
  9992.                 ret     nz
  9993.                 ld      hl, unk_D20B    ; D20D-2 ?
  9994.                 ld      a, (byte_D097)
  9995.                 add     a, a
  9996.                 add     a, l
  9997.                 ld      l, a
  9998.                 ld      a, (ix+0)
  9999.                 and     #77 ; 'w'
  10000.                 ld      (hl), a
  10001.                 inc     l
  10002.                 ld      (hl), c
  10003.                 bit     3, (ix+2)
  10004.                 ret     z
  10005.                 dec     l
  10006.                 set     7, (hl)
  10007.                 ret
  10008.  
  10009. ; End of function sub_B34B
  10010.  
  10011.  
  10012. ; =============== S U B R O U T I N E =======================================
  10013.  
  10014.  
  10015. FindMoveAndSwap:                                ; CODE XREF: sub_B47F-71
  10016.                 inc     hl
  10017.                 inc     hl
  10018.                 inc     hl
  10019.                 push    hl
  10020.                 ld      a, (ix+2)
  10021.                 and     6
  10022.                 jp      z, loc_B39E
  10023.                 ld      b, (ix+1)
  10024.                 and     4
  10025.                 jr      nz, loc_B385
  10026.  
  10027.                 ld      a, (byte_D07A)
  10028.                 ld      b, a
  10029.                 rla
  10030.                 jr      c, loc_B39E
  10031. loc_B385:                               ; CODE XREF: FindMoveAndSwap+11
  10032.                 ex      de, hl
  10033.                 inc     hl
  10034.                 ld      de, #FFFD       ; -3
  10035.                 res     7, b
  10036. loc_B38C:                               ; CODE XREF: FindMoveAndSwap+27
  10037.                 add     hl, de
  10038.                 ld      a, (hl)
  10039.                 cp      b
  10040.                 jr      z, loc_B397
  10041.                 inc     a
  10042.                 jp      nz, loc_B38C
  10043.                 jr      loc_B39E
  10044. ; ---------------------------------------------------------------------------
  10045. loc_B397:                               ; CODE XREF: FindMoveAndSwap+24
  10046.                 pop     de
  10047.                 dec     hl
  10048.                 call    SwapMove_HL_DE
  10049.                 inc     de
  10050.                 push    de
  10051. loc_B39E:                               ; CODE XREF: FindMoveAndSwap+9 FindMoveAndSwap+18       ...
  10052.                 ld      hl, unk_D20B    ; D20D-2 ?
  10053.                 ld      a, (byte_D097)
  10054.                 add     a, a
  10055.                 add     a, l
  10056.                 ld      l, a
  10057.                 ld      d, (hl)
  10058.                 inc     l
  10059.                 ld      e, (hl)
  10060.                 ld      bc, 3
  10061.                 pop     hl
  10062.                 push    hl
  10063.                 bit     7, d
  10064.                 jr      nz, loc_B3BB
  10065.                 call    FindMove_D_E_continue
  10066. loc_B3B6:                               ; CODE XREF: FindMoveAndSwap+5B
  10067.                 pop     de
  10068.                 call    nc, SwapMove_HL_DE
  10069.                 ret
  10070. ; ---------------------------------------------------------------------------
  10071. loc_B3BB:                               ; CODE XREF: FindMoveAndSwap+46
  10072.                 res     7, d
  10073.                 call    FindMove_D_E_continue
  10074.                 inc     hl
  10075.                 inc     hl
  10076.                 bit     3, (hl)
  10077.                 dec     hl
  10078.                 dec     hl
  10079.                 jr      nz, loc_B3B6
  10080.                 pop     de
  10081.                 ret
  10082. ; End of function FindMoveAndSwap
  10083. ; =============== S U B R O U T I N E =======================================
  10084. SwapMove_HL_DE:                         ; CODE XREF: FindMoveAndSwap+2E FindMoveAndSwap+4C
  10085.                 ld      c, (hl)
  10086.                 ld      a, (de)
  10087.                 ld      (hl), a
  10088.                 ld      a, c
  10089.                 or      #80 ;???
  10090.                 ld      (de), a
  10091.                 inc     de
  10092.                 inc     hl
  10093.                 ld      c, (hl)
  10094.                 ld      a, (de)
  10095.                 ld      (hl), a
  10096.                 ld      a, c
  10097.                 or      #80 ;???
  10098.                 ld      (de), a
  10099.                 inc     de
  10100.                 inc     hl
  10101.                 ld      c, (hl)
  10102.                 ld      a, (de)
  10103.                 ld      (hl), a
  10104.                 ld      a, c
  10105.                 ld      (de), a
  10106.                 ret
  10107. ; End of function SwapMove_HL_DE
  10108. ; =============== S U B R O U T I N E =======================================
  10109.  
  10110. InsertMove_EndIX_NMovesAX:                              ; CODE XREF: sub_B47F+A7 sub_B47F+C2
  10111.                 push    ix
  10112.                 pop     hl
  10113.                 ld      a, (hl)
  10114.                 ld      d, h
  10115.                 ld      e, l
  10116.                 inc     hl
  10117.                 ld      b, (hl)
  10118.                 inc     hl
  10119.                 ld      c, (hl)
  10120.                 ex      af, af' ;'
  10121. loc_B3ED:                               ; CODE XREF: InsertMove_EndIX_NMovesAX+18
  10122.                 dec     de
  10123.                 ld      a, (de)
  10124.                 ld      (hl), a
  10125.                 dec     de
  10126.                 dec     hl
  10127.                 ld      a, (de)
  10128.                 ld      (hl), a
  10129.                 dec     de
  10130.                 dec     hl
  10131.                 ld      a, (de)
  10132.                 ld      (hl), a
  10133.                 dec     hl
  10134.                 inc     a
  10135.                 jp      nz, loc_B3ED
  10136.                 inc     hl
  10137.                 ex      af, af' ;'
  10138.                 ld      (hl), a
  10139.                 inc     hl
  10140.                 ld      (hl), b
  10141.                 inc     hl
  10142.                 ld      (hl), c
  10143.                 ret
  10144.  
  10145. ; End of function InsertMove_EndIX_NMovesAX
  10146.  
  10147. ; ---------------------------------------------------------------------------
  10148. ; START OF FUNCTION CHUNK FOR sub_B47F
  10149.  
  10150. loc_B405:                               ; CODE XREF: sub_B47F+3D
  10151.                 call    sub_B2F1
  10152.  
  10153.                 call    sub_A94F
  10154.  
  10155.                 dec     hl
  10156.                 dec     hl
  10157.                 push    hl
  10158.                 call    FindMoveAndSwap
  10159.  
  10160.                 pop     ix
  10161.  
  10162.  
  10163. loc_B413:                               ; CODE XREF: sub_B47F+96 sub_B47F+99 ...
  10164.                 ld      a, (byte_D098)
  10165.                 inc     a
  10166.                 ld      d, a
  10167.                 ld      a, (byte_D097)
  10168.                 cp      d
  10169.                 jp      nc, loc_B5A3
  10170.  
  10171.                 bit     7, (ix+0)
  10172.                 jp      z, loc_B47A
  10173.  
  10174.                 call    sub_B75A
  10175.  
  10176.  
  10177. loc_B429:                               ; CODE XREF: sub_B47F-12 sub_B47F-7
  10178.                 bit     7, (ix+3)
  10179.                 jr      nz, loc_B442
  10180.  
  10181.                 call    sub_B2B9
  10182.  
  10183.                 push    hl
  10184.                 call    sub_AB53
  10185.  
  10186.                 jp      c, loc_B531
  10187.  
  10188.                 pop     ix
  10189.                 jp      z, loc_B571
  10190.  
  10191.                 inc     ix
  10192.                 jr      sub_B47F
  10193.  
  10194. ; ---------------------------------------------------------------------------
  10195.  
  10196. loc_B442:                               ; CODE XREF: sub_B47F-52
  10197.                 ld      de, 3
  10198.                 add     ix, de
  10199.                 ld      a, (ix+0)
  10200.                 inc     a
  10201.                 jp      z, loc_B4E7
  10202.  
  10203.                 call    sub_B2B9
  10204.  
  10205.                 ld      a, (hl)
  10206.                 ld      (byte_D01D), a
  10207.                 push    ix
  10208.                 call    sub_AD40
  10209.  
  10210.                 call    sub_BC00
  10211.  
  10212.                 or      a
  10213.                 jr      z, loc_B46F
  10214.  
  10215.                 call    sub_B79D
  10216.  
  10217.                 jp      c, loc_B535
  10218.  
  10219.                 jr      z, loc_B4A6
  10220.  
  10221.                 call    sub_AF81
  10222.  
  10223.                 pop     ix
  10224.                 jr      loc_B429
  10225.  
  10226. ; ---------------------------------------------------------------------------
  10227.  
  10228. loc_B46F:                               ; CODE XREF: sub_B47F-21
  10229.                 ld      (ix+1), #FF
  10230.                 call    sub_AF81
  10231.  
  10232.                 pop     ix
  10233.                 jr      loc_B429
  10234.  
  10235. ; ---------------------------------------------------------------------------
  10236.  
  10237. loc_B47A:                               ; CODE XREF: sub_B47F-5C
  10238.                 ld      de, 3
  10239.                 add     ix, de
  10240.  
  10241. ; END OF FUNCTION CHUNK FOR sub_B47F
  10242.  
  10243. ; =============== S U B R O U T I N E =======================================
  10244.  
  10245.  
  10246. sub_B47F:                               ; CODE XREF: sub_AFC5:loc_B07A
  10247.                                         ; sub_B47F-3F
  10248.  
  10249. ; FUNCTION CHUNK AT B405 SIZE 0000007A BYTES
  10250. ; FUNCTION CHUNK AT B5D1 SIZE 00000189 BYTES
  10251.  
  10252.                 ld      a, #FF
  10253.                 ld      (byte_D07A), a
  10254.                 ld      a, (ix+0)
  10255.                 inc     a
  10256.                 jr      z, loc_B4E7
  10257.  
  10258.                 push    ix
  10259.                 call    sub_AD40
  10260.  
  10261.                 call    sub_B96D
  10262.  
  10263.                 jp      c, loc_B4A6
  10264.  
  10265.                 ld      b, 0
  10266.                 ld      hl, byte_D097
  10267.                 inc     (hl)
  10268.                 ld      a, (byte_D02D)
  10269.                 xor     1
  10270.                 ld      (byte_D02D), a
  10271.                 jp      loc_B576
  10272.  
  10273. ; ---------------------------------------------------------------------------
  10274.  
  10275. loc_B4A6:                               ; CODE XREF: sub_B47F-19 sub_B47F+13 ...
  10276.                 ld      a, (byte_D02D)
  10277.                 xor     1
  10278.                 ld      (byte_D02D), a
  10279.                 ld      hl, byte_D097
  10280.                 ld      a, (hl)
  10281.                 inc     (hl)
  10282.                 ld      hl,  word_D088+1
  10283.                 add     a, l
  10284.                 ld      l, a
  10285.                 ld      a, (hl)
  10286.                 inc     l
  10287.                 inc     l
  10288.                 ld      (hl), a
  10289.                 jp      loc_B405
  10290.  
  10291. ; ---------------------------------------------------------------------------
  10292.  
  10293. loc_B4BF:                               ; CODE XREF: sub_B47F+54
  10294.                 ld      hl, byte_D097
  10295.                 dec     (hl)
  10296.                 ld      a, (byte_D02D)
  10297.                 xor     1
  10298.                 ld      (byte_D02D), a
  10299.                 jp      loc_B535
  10300.  
  10301. ; ---------------------------------------------------------------------------
  10302.  
  10303. loc_B4CE:                               ; CODE XREF: sub_B47F+261
  10304.                 rra
  10305.                 jp      c, loc_B4D5
  10306.  
  10307.                 rra
  10308.                 jr      nc, loc_B4BF
  10309.  
  10310.  
  10311. loc_B4D5:                               ; CODE XREF: sub_B47F+50
  10312.                                         ; sub_B47F+15B ...
  10313.                 ld      de, #FFFD       ; -3
  10314.  
  10315.  
  10316. loc_B4D8:                               ; CODE XREF: sub_B47F+66
  10317.                 add     ix, de
  10318.                 ld      a, (ix+0)
  10319.                 inc     a
  10320.                 jp      z, loc_B563
  10321.  
  10322.                 ld      a, (ix+1)
  10323.                 inc     a
  10324.                 jr      z, loc_B4D8
  10325.  
  10326.  
  10327. loc_B4E7:                               ; CODE XREF: sub_B47F-34 sub_B47F+9     ...
  10328.                 ld      a, (byte_D097)
  10329.                 dec     a
  10330.                 ret     z
  10331.                 ld      (byte_D097), a
  10332.                 call    sub_AF81
  10333.  
  10334.                 pop     ix
  10335.  
  10336.  
  10337. loc_B4F4:                               ; CODE XREF: sub_B47F+111
  10338.                 ld      a, (byte_D02D)
  10339.                 xor     1
  10340.                 ld      (byte_D02D), a
  10341.                 ld      a, (byte_D0B4)
  10342.                 and     #90
  10343.                 jr      nz, loc_B4E7
  10344.  
  10345.                 ld      a, (byte_D097)
  10346.                 ld      hl, byte_D08B
  10347.                 add     a, l
  10348.                 ld      l, a
  10349.                 ld      a, (hl)
  10350.                 dec     a
  10351.                 dec     l
  10352.                 dec     l
  10353.                 cp      (hl)
  10354.                 jr      c, loc_B53A
  10355.  
  10356.                 cpl
  10357.                 inc     l
  10358.                 cp      (hl)
  10359.                 jp      c, loc_B413
  10360.  
  10361.                 jp      z, loc_B413
  10362.  
  10363.                 ld      (hl), a
  10364.                 call    sub_B309
  10365.  
  10366.                 ld      a, (byte_D097)
  10367.                 dec     a
  10368.                 jp      nz, loc_B413
  10369.  
  10370.                 call    InsertMove_EndIX_NMovesAX
  10371.  
  10372.                 ld      a, (byte_D08B)
  10373.                 inc     a
  10374.                 ret     z
  10375.                 jp      loc_B413
  10376.  
  10377. ; ---------------------------------------------------------------------------
  10378.  
  10379. loc_B531:                               ; CODE XREF: sub_B47F-49
  10380.                 pop     hl
  10381.                 jp      loc_B53A
  10382.  
  10383. ; ---------------------------------------------------------------------------
  10384.  
  10385. loc_B535:                               ; CODE XREF: sub_B47F-1C sub_B47F+4C ...
  10386.                 call    sub_AF81
  10387.  
  10388.                 pop     ix
  10389.  
  10390.  
  10391. loc_B53A:                               ; CODE XREF: sub_B47F+91 sub_B47F+B3
  10392.                 ld      a, (byte_D097)
  10393.                 dec     a
  10394.                 jp      nz, loc_B54C
  10395.  
  10396.                 call    InsertMove_EndIX_NMovesAX
  10397.  
  10398.                 pop     hl
  10399.                 pop     ix
  10400.                 push    ix
  10401.                 jp      loc_B166
  10402.  
  10403. ; ---------------------------------------------------------------------------
  10404.  
  10405. loc_B54C:                               ; CODE XREF: sub_B47F+BF
  10406.                 call    sub_B34B
  10407.  
  10408.                 call    sub_AF81
  10409.  
  10410.                 pop     ix
  10411.                 ld      hl, byte_D097
  10412.                 dec     (hl)
  10413.                 ld      a, (byte_D02D)
  10414.                 xor     1
  10415.                 ld      (byte_D02D), a
  10416.                 jp      loc_B413
  10417.  
  10418. ; ---------------------------------------------------------------------------
  10419.  
  10420. loc_B563:                               ; CODE XREF: sub_B47F+5F
  10421.                 ld      b, (ix+2)
  10422.                 ld      a, (curlevel)
  10423.                 cp      #C
  10424.                 jr      z, loc_B574
  10425.  
  10426.                 ld      c, 2
  10427.                 jr      loc_B576
  10428.  
  10429. ; ---------------------------------------------------------------------------
  10430.  
  10431. loc_B571:                               ; CODE XREF: sub_B47F-44
  10432.                 ld      b, (ix+0)
  10433.  
  10434.  
  10435. loc_B574:                               ; CODE XREF: sub_B47F+EC
  10436.                 ld      c, 1
  10437.  
  10438.  
  10439. loc_B576:                               ; CODE XREF: sub_B47F+24 sub_B47F+F0
  10440.                 ld      hl, byte_D08A
  10441.                 ld      a, (byte_D097)
  10442.                 add     a, l
  10443.                 ld      l, a
  10444.                 bit     7, b
  10445.                 jr      z, loc_B593
  10446.  
  10447.                 ld      (hl), c
  10448.                 ld      hl, byte_D097
  10449.                 dec     (hl)
  10450.                 call    sub_AF81
  10451.  
  10452.                 pop     ix
  10453.                 ld      (ix+3), #FF
  10454.                 jp      loc_B4F4
  10455.  
  10456. ; ---------------------------------------------------------------------------
  10457.  
  10458. loc_B593:                               ; CODE XREF: sub_B47F+101
  10459.                 ld      a, (byte_D02D)
  10460.                 rra
  10461.                 ld      a, (byte_D01E)
  10462.                 jr      nc, loc_B59D
  10463.  
  10464.                 cpl
  10465.  
  10466.  
  10467. loc_B59D:                               ; CODE XREF: sub_B47F+11B
  10468.                 add     a, #84 ; '"'
  10469.                 ld      (hl), a
  10470.                 jp      loc_B4E7
  10471.  
  10472. ; ---------------------------------------------------------------------------
  10473.  
  10474. loc_B5A3:                               ; CODE XREF: sub_B47F-63
  10475.                 call    sub_B2B9
  10476.  
  10477.                 ld      a, (hl)
  10478.                 ld      (byte_D01D), a
  10479.                 ld      a, (byte_D097)
  10480.                 ld      e, a
  10481.                 ld      hl,  word_D088+1
  10482.                 add     a, l
  10483.                 ld      l, a
  10484.                 ld      (word_D06D), hl
  10485.                 ld      a, (byte_D098)
  10486.                 add     a, 2
  10487.                 sub     e
  10488.                 jp      m, loc_B72D
  10489.  
  10490.                 jp      z, loc_B6D4
  10491.  
  10492.                 ld      (byte_D03B), a
  10493.                 jp      loc_B5D1
  10494.  
  10495. ; ---------------------------------------------------------------------------
  10496.  
  10497. loc_B5C8:                               ; CODE XREF: sub_B47F+167
  10498.                 ld      (ix+1), #FF
  10499.  
  10500.  
  10501. loc_B5CC:                               ; CODE XREF: sub_B47F+1DF
  10502.                                         ; sub_B47F+1F2 ...
  10503.                 call    sub_AF81
  10504.  
  10505.                 pop     ix
  10506.  
  10507. ; End of function sub_B47F
  10508.  
  10509. ; START OF FUNCTION CHUNK FOR sub_B47F
  10510.  
  10511. loc_B5D1:                               ; CODE XREF: sub_B47F+146
  10512.                 ld      de, 3
  10513.                 add     ix, de
  10514.                 ld      a, (ix+0)
  10515.                 inc     a
  10516.                 jp      z, loc_B4D5
  10517.  
  10518.                 push    ix
  10519.                 call    sub_AD40
  10520.  
  10521.                 call    sub_BC00
  10522.  
  10523.                 or      a
  10524.                 jr      z, loc_B5C8
  10525.  
  10526.                 cpl
  10527.                 ld      hl, (word_D06D)
  10528.                 cp      (hl)
  10529.                 jp      nc, loc_B645
  10530.  
  10531.                 ld      a, (byte_D01D)
  10532.                 and     #CD
  10533.                 jp      z, loc_B535
  10534.  
  10535.                 cp      8
  10536.                 jr      z, loc_B620
  10537.  
  10538.                 ld      a, (byte_D097)
  10539.                 ld      d, a
  10540.                 ld      a, (word_D00D+1)
  10541.                 add     a, a
  10542.                 cp      d
  10543.                 jr      c, loc_B620
  10544.  
  10545.                 ld      a, (byte_D019)
  10546.                 and     #7F
  10547.                 jp      z, loc_B535
  10548.  
  10549.                 bit     3, a
  10550.                 jp      nz, loc_B4A6
  10551.  
  10552.                 bit     2, a
  10553.                 jr      z, loc_B623
  10554.  
  10555.                 ld      hl, byte_D03B
  10556.                 ld      (hl), 0
  10557.                 jp      loc_B4A6
  10558.  
  10559. ; ---------------------------------------------------------------------------
  10560.  
  10561. loc_B620:                               ; CODE XREF: sub_B47F+17B
  10562.                                         ; sub_B47F+186
  10563.                 ld      a, (byte_D019)
  10564. loc_B623:                               ; CODE XREF: sub_B47F+197
  10565.                 and     3
  10566.                 jp      z, loc_B535
  10567.  
  10568.                 ld      d, 6
  10569.                 rra
  10570.                 jp      c, loc_B630
  10571.                 ld      d, #C
  10572. loc_B630:                               ; CODE XREF: sub_B47F+1AC
  10573.                 ld      a, (byte_D01D)
  10574.                 and     #8D
  10575.                 jp      z, loc_B535
  10576.  
  10577.                 rla
  10578.                 jr      c, loc_B63D
  10579.                 sra     d
  10580. loc_B63D:                               ; CODE XREF: sub_B47F+1BA
  10581.                 ld      a, d
  10582.                 sub     c
  10583.                 jr      nc, loc_B645
  10584.                 cp      (hl)
  10585.                 jp      c, loc_B535
  10586. loc_B645:                               ; CODE XREF: sub_B47F+16E
  10587.                                         ; sub_B47F+1C0
  10588.                 inc     l
  10589.                 ld      a, (ix+2)
  10590.                 ld      d, a
  10591.                 rla
  10592.                 jp      nc, loc_B65B
  10593.  
  10594.                 bit     2, d
  10595.                 jp      z, loc_B4A6
  10596.  
  10597.                 ld      a, (curlevel)
  10598.                 cp      #C
  10599.                 jp      z, loc_B4A6
  10600.  
  10601.  
  10602. loc_B65B:                               ; CODE XREF: sub_B47F+1CC
  10603.                 ld      a, b
  10604.                 dec     b
  10605.                 cp      (hl)
  10606.                 jp      c, loc_B5CC
  10607.  
  10608.                 ld      a, (byte_D01C)
  10609.                 or      a
  10610.                 jr      z, loc_B69B
  10611.  
  10612.                 jp      m, loc_B4A6
  10613.  
  10614.                 bit     2, a
  10615.                 jr      nz, loc_B6AD
  10616.  
  10617.                 ld      e, a
  10618.                 ld      a, c
  10619.                 cp      (hl)
  10620.                 jp      c, loc_B5CC
  10621.  
  10622.                 jp      z, loc_B5CC
  10623.  
  10624.                 bit     6, e
  10625.                 jp      nz, loc_B4A6
  10626.  
  10627.                 ld      a, d
  10628.                 and     #CB
  10629.                 jr      nz, loc_B688
  10630.  
  10631.                 ld      a, (byte_D01D)
  10632.                 and     #C9
  10633.                 jr      z, loc_B6A3
  10634.  
  10635. loc_B688:                               ; CODE XREF: sub_B47F+200
  10636.                 bit     1, e
  10637.                 jp      nz, loc_B4A6
  10638.  
  10639.                 ld      a, (byte_D097)
  10640.                 ld      d, a
  10641.                 ld      a, (word_D00D+1)
  10642.                 add     a, a
  10643.                 cp      d
  10644.                 jr      c, loc_B6A3
  10645.  
  10646.                 jp      loc_B4A6
  10647.  
  10648. ; ---------------------------------------------------------------------------
  10649.  
  10650. loc_B69B:                               ; CODE XREF: sub_B47F+1E6
  10651.                 ld      a, c
  10652.                 cp      (hl)
  10653.                 jp      c, loc_B5CC
  10654.  
  10655.                 jp      z, loc_B5CC
  10656.  
  10657.  
  10658. loc_B6A3:                               ; CODE XREF: sub_B47F+207
  10659.                                         ; sub_B47F+217
  10660.                 ld      (hl), c
  10661.                 call    sub_B2F1
  10662.  
  10663.                 call    sub_B309
  10664.  
  10665.                 jp      loc_B5CC
  10666.  
  10667. ; ---------------------------------------------------------------------------
  10668.  
  10669. loc_B6AD:                               ; CODE XREF: sub_B47F+1ED
  10670.                 ld      a, c
  10671.                 cp      (hl)
  10672.                 jr      c, loc_B6B4
  10673.  
  10674.                 jp      nz, loc_B4A6
  10675.  
  10676.  
  10677. loc_B6B4:                               ; CODE XREF: sub_B47F+230
  10678.                 ld      a, (byte_D097)
  10679.                 ld      d, a
  10680.                 ld      a, (word_D00D+1)
  10681.                 add     a, a
  10682.                 cp      d
  10683.                 jp      nc, loc_B4A6
  10684.  
  10685.                 jp      loc_B5CC
  10686.  
  10687. ; ---------------------------------------------------------------------------
  10688.  
  10689. loc_B6C3:                               ; CODE XREF: sub_B47F+265
  10690.                 bit     3, (ix+2)
  10691.                 jr      z, loc_B6D4
  10692.  
  10693.                 jr      loc_B6E6
  10694.  
  10695. ; ---------------------------------------------------------------------------
  10696.  
  10697. loc_B6CB:                               ; CODE XREF: sub_B47F+270
  10698.                 ld      (ix+1), #FF
  10699.  
  10700.  
  10701. loc_B6CF:                               ; CODE XREF: sub_B47F+29B
  10702.                 call    sub_AF81
  10703.  
  10704.                 pop     ix
  10705.  
  10706.  
  10707. loc_B6D4:                               ; CODE XREF: sub_B47F+140
  10708.                                         ; sub_B47F+248
  10709.                 ld      de, 3
  10710.                 add     ix, de
  10711.                 ld      a, (ix+0)
  10712.                 inc     a
  10713.                 ld      a, (byte_D03B)
  10714.                 jp      z, loc_B4CE
  10715.  
  10716.                 rra
  10717.                 jr      nc, loc_B6C3
  10718.  
  10719.  
  10720. loc_B6E6:                               ; CODE XREF: sub_B47F+24A
  10721.                 push    ix
  10722.                 call    sub_AD40
  10723.  
  10724.                 call    sub_BC00
  10725.  
  10726.                 or      a
  10727.                 jr      z, loc_B6CB
  10728.  
  10729.                 ld      a, (byte_D019)
  10730.                 and     #83
  10731.                 jp      m, loc_B535
  10732.  
  10733.                 sub     c
  10734.                 ld      hl, (word_D06D)
  10735.                 cp      (hl)
  10736.                 jp      c, loc_B535
  10737.  
  10738.                 ld      a, (ix+2)
  10739.                 ld      d, a
  10740.                 and     #C0
  10741.                 jr      z, loc_B711
  10742.  
  10743.                 bit     3, d
  10744.                 jr      nz, loc_B71C
  10745.  
  10746.                 bit     2, d
  10747.                 jr      z, loc_B71C
  10748.  
  10749.  
  10750. loc_B711:                               ; CODE XREF: sub_B47F+288
  10751.                 inc     l
  10752.                 ld      a, (byte_D01A)
  10753.                 add     a, a
  10754.                 add     a, b
  10755.                 jr      c, loc_B71C
  10756.  
  10757.                 cp      (hl)
  10758.                 jr      c, loc_B6CF
  10759.  
  10760.  
  10761. loc_B71C:                               ; CODE XREF: sub_B47F+28C
  10762.                                         ; sub_B47F+290 ...
  10763.                 ld      hl, byte_D03B
  10764.                 set     1, (hl)
  10765.                 jp      loc_B4A6
  10766.  
  10767. ; ---------------------------------------------------------------------------
  10768.  
  10769. loc_B724:                               ; CODE XREF: sub_B47F+2C3
  10770.                 ld      (ix+1), #FF
  10771.  
  10772.  
  10773. loc_B728:                               ; CODE XREF: sub_B47F+2D0
  10774.                                         ; sub_B47F+2D2 ...
  10775.                 call    sub_AF81
  10776.  
  10777.                 pop     ix
  10778.  
  10779.  
  10780. loc_B72D:                               ; CODE XREF: sub_B47F+13D
  10781.                 ld      de, 3
  10782.                 add     ix, de
  10783.                 ld      a, (ix+0)
  10784.                 inc     a
  10785.                 jp      z, loc_B4D5
  10786.  
  10787.                 push    ix
  10788.                 call    sub_AD40
  10789.  
  10790.                 call    sub_BC00
  10791.  
  10792.                 or      a
  10793.                 jr      z, loc_B724
  10794.  
  10795.                 cpl
  10796.                 ld      hl, (word_D06D)
  10797.                 cp      (hl)
  10798.                 jp      c, loc_B535
  10799.  
  10800.                 inc     l
  10801.                 ld      a, c
  10802.                 cp      (hl)
  10803.                 jr      c, loc_B728
  10804.  
  10805.                 jr      z, loc_B728
  10806.  
  10807.                 ld      (hl), a
  10808.                 call    sub_B309
  10809.  
  10810.                 jp      loc_B728
  10811.  
  10812. ; END OF FUNCTION CHUNK FOR sub_B47F
  10813.  
  10814. ; =============== S U B R O U T I N E =======================================
  10815.  
  10816.  
  10817. sub_B75A:                               ; CODE XREF: sub_B47F-59
  10818.                 ld      a, (byte_D097)
  10819.                 ld      e, a
  10820.                 ld      hl,  word_D088+1
  10821.                 add     a, l
  10822.                 ld      l, a
  10823.                 ld      (word_D06D), hl
  10824.                 ld      a, (curlevel)
  10825.                 cp      #C
  10826.                 jr      z, loc_B796
  10827.  
  10828.                 ld      a, e
  10829.                 inc     a
  10830.                 ld      hl, byte_D098
  10831.                 sub     (hl)
  10832.                 jr      c, loc_B78B
  10833.  
  10834.                 ld      hl, byte_D01A
  10835.                 ld      a, (word_D00D+1)
  10836.                 add     a, (hl)
  10837.                 bit     0, e
  10838.                 jr      nz, loc_B781
  10839.  
  10840.                 add     a, (hl)
  10841.  
  10842.  
  10843. loc_B781:                               ; CODE XREF: sub_B75A+24
  10844.                 ld      (byte_D009), a
  10845.                 ld      hl, loc_B7A1
  10846.                 ld      (JP_ADDR), hl
  10847.                 ret
  10848.  
  10849. ; ---------------------------------------------------------------------------
  10850.  
  10851. loc_B78B:                               ; CODE XREF: sub_B75A+19
  10852.                 ld      hl, loc_B7CA
  10853.                 add     a, 2
  10854.                 jr      nc, loc_B796
  10855.  
  10856.                 ld      (JP_ADDR), hl
  10857.                 ret
  10858.  
  10859. ; ---------------------------------------------------------------------------
  10860.  
  10861. loc_B796:                               ; CODE XREF: sub_B75A+11 sub_B75A+36
  10862.                 ld      hl, XOR_A
  10863.                 ld      (JP_ADDR), hl
  10864.                 ret
  10865.  
  10866. ; End of function sub_B75A
  10867.  
  10868.  
  10869. ; =============== S U B R O U T I N E =======================================
  10870.  
  10871.  
  10872. sub_B79D:                               ; CODE XREF: sub_AB53+86 sub_B47F-1F
  10873.                 ld      hl, (JP_ADDR)
  10874.                 jp      (hl)
  10875.  
  10876. ; End of function sub_B79D
  10877.  
  10878. ; ---------------------------------------------------------------------------
  10879.  
  10880. loc_B7A1:                               ; DATA XREF: sub_B75A+2A
  10881.                 ld      a, (byte_D097)
  10882.                 rra
  10883.                 ld      hl, (word_D06D)
  10884.                 jr      c, loc_B7F1
  10885.  
  10886.                 ld      a, (byte_D009)
  10887.                 sub     c
  10888.                 jr      nc, loc_B7F1
  10889.  
  10890.                 cp      (hl)
  10891.                 jr      nc, loc_B7F1
  10892.  
  10893.                 ld      a, (byte_D01D)
  10894.                 ld      d, a
  10895.                 ld      a, (byte_D01B)
  10896.                 and     d
  10897.                 scf
  10898.                 ret     z
  10899.                 and     #C
  10900.                 cp      #C
  10901.                 jr      z, loc_B7F1
  10902.  
  10903.                 bit     2, a
  10904.                 scf
  10905.                 ret     nz
  10906.                 jp      loc_B7F1
  10907.  
  10908. ; ---------------------------------------------------------------------------
  10909.  
  10910. loc_B7CA:                               ; DATA XREF: sub_B75A:loc_B78B
  10911.                 ld      hl, (word_D06D)
  10912.                 ld      a, (byte_D03B)
  10913.                 rla
  10914.                 call    c, sub_B80F ;может выходить отсюда
  10915.  
  10916.                 bit     2, (ix+2)
  10917.                 jr      z, loc_B7E5
  10918.  
  10919.                 ld      a, #17
  10920.  
  10921. loc_B7DC:                               ; CODE XREF: RAM:B805
  10922.                 add     a, c
  10923.  
  10924. loc_B7DD:                               ; CODE XREF: RAM:B80C
  10925.                 jr      c, loc_B7E5
  10926.  
  10927.                 inc     l
  10928.                 cp      (hl)
  10929.                 jr      c, loc_B7E7
  10930.  
  10931.                 jr      z, loc_B7E7
  10932.  
  10933. loc_B7E5:                               ; CODE XREF: RAM:B7D8   RAM:loc_B7DD ...
  10934.                 xor     a
  10935.                 ret
  10936.  
  10937. ; ---------------------------------------------------------------------------
  10938.  
  10939. loc_B7E7:                               ; CODE XREF: RAM:B7E1   RAM:B7E3
  10940.                 ld      a, (ix+2)
  10941.                 and     #C9
  10942.                 jr      nz, loc_B7E5
  10943.  
  10944.                 ld      a, c
  10945.                 or      a
  10946.                 ret
  10947.  
  10948. ; ---------------------------------------------------------------------------
  10949.  
  10950. loc_B7F1:                               ; CODE XREF: RAM:B7A8   RAM:B7AE ...
  10951.                 ld      a, (byte_D03B)
  10952.                 rla
  10953.                 call    c, sub_B80F ;может выходить отсюда
  10954.  
  10955.                 ld      a, (byte_D009)
  10956.                 bit     2, (ix+2)
  10957.                 jr      z, loc_B809
  10958.  
  10959.                 bit     3, (ix+2)
  10960.                 jr      z, loc_B7DC
  10961.  
  10962.                 xor     a
  10963.                 ret
  10964.  
  10965. ; ---------------------------------------------------------------------------
  10966.  
  10967. loc_B809:                               ; CODE XREF: RAM:B7FF
  10968.                 add     a, #F
  10969.                 add     a, c
  10970.                 jp      loc_B7DD
  10971.  
  10972.  
  10973. ; =============== S U B R O U T I N E =======================================
  10974.  
  10975.  
  10976. sub_B80F:                               ; CODE XREF: RAM:B7D1   RAM:B7F5
  10977.                 inc     l
  10978.                 ld      a, c
  10979.                 cp      (hl)
  10980.                 dec     l
  10981.                 ret     nc
  10982.                 pop     hl
  10983.                 or      a
  10984.                 ret
  10985.  
  10986. ; End of function sub_B80F
  10987.  
  10988. ; ---------------------------------------------------------------------------
  10989.  
  10990. XOR_A:                                  ; DATA XREF: sub_AB4C
  10991.                                         ; sub_B75A:loc_B796
  10992.                 xor     a
  10993.                 ret
  10994.  
  10995. ; ---------------------------------------------------------------------------
  10996.  
  10997. loc_B819:                               ; CODE XREF: sub_AFC5+8E
  10998.                 ld      a, (byte_D098)
  10999.                 ld      c, a
  11000.                 or      a
  11001.                 jp      p, loc_B841
  11002.  
  11003.                 ld      b, 2
  11004.                 ld      a, (curlevel)
  11005.                 cp      #C
  11006.                 jp      z, loc_B8A0
  11007.  
  11008.                 ld      b, #C
  11009.                 dec     a
  11010.                 jr      z, loc_B8A0
  11011.  
  11012.                 ld      a, (byte_D0F2)
  11013.                 and     #F
  11014.                 cp      9
  11015.                 ld      b, a
  11016.                 jr      nc, loc_B8A0
  11017.  
  11018.                 ld      hl, byte_D098
  11019.                 inc     (hl)
  11020.                 inc     (hl)
  11021.                 jr      loc_B8A0
  11022.  
  11023. ; ---------------------------------------------------------------------------
  11024.  
  11025. loc_B841:                               ; CODE XREF: RAM:B81E
  11026.                 ld      a, (curlevel)
  11027.                 dec     a
  11028.                 jr      z, loc_B877
  11029.  
  11030.                 ld      a, (timenorm)
  11031.                 rra
  11032.                 rra
  11033.                 rra
  11034.                 and     #1E
  11035.                 jr      z, loc_B877 ;так не бывает? начинается с #0C
  11036.  
  11037.                 inc     c
  11038.                 cp      c
  11039.                 ld      a, (byte_D0F2)
  11040.                 ld      b, a
  11041.                 jr      nc, loc_B8A0
  11042.  
  11043.                 ld      hl, (INC_SECONDS)
  11044.                 ld      de, (word_D02B)
  11045.                 add     hl, de
  11046.                 ld      a, h
  11047.                 or      a
  11048.                 jr      nz, loc_B877
  11049.  
  11050.                 ld      a, (byte_D02A)
  11051.                 srl     a
  11052.                 srl     a
  11053.                 cp      l
  11054.                 jr      c, loc_B877
  11055.  
  11056.                 ld      a, (byte_D02A)
  11057.                 ld      (byte_D0F3), a
  11058.                 jr      loc_B88A
  11059.  
  11060. ; ---------------------------------------------------------------------------
  11061.  
  11062. loc_B877:                               ; CODE XREF: RAM:B845   RAM:B84F ...
  11063.                 ld      a, (curlevel)
  11064.                 cp      #B
  11065.                 jr      z, loc_B88A
  11066.  
  11067.                 ld      a, (byte_D0B4)
  11068.                 bit     5, a
  11069.                 scf
  11070.                 ret     z ;visible board?
  11071.                 ld      hl, byte_D0B3 ;d3=swap board
  11072.                 set     5, (hl)
  11073.  
  11074. loc_B88A:                               ; CODE XREF: RAM:B875   RAM:B87C
  11075.                 ld      a, (byte_D0F2)
  11076.                 push    af
  11077.                 and     #F0
  11078.                 ld      b, a
  11079.                 pop     af
  11080.                 add     a, 7
  11081.                 ld      (byte_D0F2), a
  11082.                 and     #F0
  11083.                 cp      b
  11084.                 jr      z, loc_B8AD
  11085.  
  11086.                 ld      (byte_D0F2), a
  11087.                 ld      b, a
  11088.  
  11089.  
  11090. loc_B8A0:                               ; CODE XREF: RAM:B828   RAM:B82E ...
  11091.                 ld      hl, byte_D098
  11092.                 ld      a, (hl)
  11093.                 cp      8
  11094.                 ld      a, #F
  11095.                 jr      z, loc_B8AD
  11096.  
  11097.                 inc     (hl)
  11098.                 inc     (hl)
  11099.                 ld      a, b
  11100.  
  11101. loc_B8AD:                               ; CODE XREF: RAM:B89A   RAM:B8A8
  11102.                 call    sub_B943 ;берёт [a] из таблицы по 3 байта и раскладывает в byte_D019..C
  11103.  
  11104.                 or      a
  11105.                 ret
  11106.  
  11107.  
  11108. ; =============== S U B R O U T I N E =======================================
  11109.  
  11110.  
  11111. sub_B8B2:                               ; CODE XREF: sub_A915   sub_AFC5+82 ...
  11112.                 ld      a, (curlevel)
  11113.                 add     a, a
  11114.                 ld      hl, tbl_B8DD-2
  11115.                 add     a, l
  11116.                 ld      l, a
  11117.                 jr      nc, loc_B8BE
  11118.  
  11119.                 inc     h
  11120.  
  11121.  
  11122. loc_B8BE:                               ; CODE XREF: sub_B8B2+9
  11123.                 ld      a, (hl)
  11124.                 ld      (timenorm), a
  11125.                 inc     hl
  11126.                 ld      a, (hl)
  11127.                 ld      (timeformove), a
  11128.                 ld      e, a
  11129.                 ld      d, 0
  11130.                 ld      hl, 0
  11131.                 ld      a, (byte_D049) ;move #
  11132.                 dec     a
  11133.                 jr      z, loc_B8D9
  11134.  
  11135.                 ld      b, a
  11136.                 sbc     hl, de
  11137.  
  11138.  
  11139. loc_B8D6:                               ; CODE XREF: sub_B8B2+25
  11140.                 add     hl, de
  11141.                 djnz    loc_B8D6
  11142.  
  11143. ; End of function sub_B8B2
  11144.  
  11145.  
  11146. loc_B8D9:                               ; CODE XREF: sub_B8B2+1F
  11147.                 ld      (word_D088), hl
  11148.                 ret
  11149.  
  11150. ; ---------------------------------------------------------------------------
  11151.  
  11152.                 ; no alignment
  11153. tbl_B8DD:       db  #0C, #02
  11154.                 db  #11, #06
  11155.                 db  #16, #0F
  11156.                 db  #1A, #1E
  11157.                 db  #1F, #2D
  11158.                 db  #20, #3C
  11159.                 db  #24, #6E
  11160.                 db  #28, #AA
  11161.                 db  #2C, #D2
  11162.                 db  #16, #0F
  11163.                 db  #4F, #FF
  11164.                 db  #42, #FF
  11165.                 db  #34, #F6
  11166.                 db  #07, #97
  11167.                 db  #27, #96
  11168.                 db  #76, #86
  11169.                 db  #47, #94
  11170.                 db  #E6, #47
  11171.                 db  #56, #C6
  11172.                 db  #C6, #96
  11173.                 db  #76, #56
  11174.                 db  #E6, #47
  11175.                 db  #35, #F6
  11176.                 db  #66, #47
  11177.                 db  #77, #16
  11178.                 db  #27, #56
  11179.                 db  #83, #33
  11180.  
  11181.  
  11182.                 ; no alignment
  11183. tbl_B913:       db  #00, #85, #00
  11184.                 db  #02, #85, #00
  11185.                 db  #41, #85, #03
  11186.                 db  #42, #85, #03
  11187.                 db  #42, #8D, #03
  11188.                 db  #42, #85, #01
  11189.                 db  #43, #8D, #01
  11190.                 db  #84, #89, #01
  11191.                 db  #83, #8D, #40
  11192.                 db  #83, #89, #40
  11193.                 db  #94, #89, #40
  11194.                 db  #93, #89, #07
  11195.                 db  #94, #C9, #07
  11196.                 db  #A5, #C9, #07
  11197.                 db  #A5, #C9, #80
  11198.                 db  #A6, #C9, #80
  11199.  
  11200. ; =============== S U B R O U T I N E =======================================
  11201.  
  11202.  
  11203. sub_B943:                               ; CODE XREF: RAM:loc_B8AD
  11204. ;a=?
  11205.                 and     #F
  11206.                 ld      hl, tbl_B913
  11207.                 ld      c, a
  11208.                 add     a, a ;*2
  11209.                 add     a, c ;*3
  11210.                 add     a, l
  11211.                 ld      l, a
  11212.                 jr      nc, loc_B950
  11213.                 inc     h
  11214. loc_B950:                               ; CODE XREF: sub_B943+A
  11215.                 ld      a, (hl)
  11216.                 ld      c, a
  11217.                 and     #F
  11218.                 ld      (byte_D01A), a
  11219.                 ld      a, c
  11220.                 rra
  11221.                 rra
  11222.                 rra
  11223.                 rra
  11224.                 and     #F
  11225.                 ld      (byte_D019), a
  11226.                 inc     hl
  11227.                 ld      a, (hl)
  11228.                 ld      (byte_D01B), a
  11229.                 inc     hl
  11230.                 ld      a, (hl)
  11231.                 ld      (byte_D01C), a
  11232.                 or      a
  11233.                 ret
  11234.  
  11235. ; End of function sub_B943
  11236.  
  11237.  
  11238. ; =============== S U B R O U T I N E =======================================
  11239.  
  11240.  
  11241. sub_B96D:                               ; CODE XREF: sub_B47F+10
  11242.                 ld      a, (byte_D097)
  11243.                 add     a, a
  11244.                 ld      hl,  word_D240+1
  11245.                 add     a, l
  11246.                 ld      l, a
  11247.  
  11248. ; End of function sub_B96D
  11249.  
  11250.  
  11251. ; =============== S U B R O U T I N E =======================================
  11252.  
  11253.  
  11254. sub_B976:                               ; CODE XREF: sub_8C20-B13
  11255.                 ld      e, l
  11256.                 ld      b, #B
  11257.  
  11258. loc_B979:                               ; CODE XREF: sub_B976+1B
  11259.                 bit     7, (hl)
  11260.                 jr      nz, loc_B994
  11261.  
  11262.                 dec     l
  11263.                 ld      a, (hl)
  11264.                 and     #77
  11265.                 or      #80
  11266.                 ld      (hl), a
  11267.                 dec     l
  11268.                 dec     b
  11269.                 bit     7, (hl)
  11270.                 jr      nz, loc_B994
  11271.  
  11272.                 dec     l
  11273.                 ld      a, (hl)
  11274.                 and     #77
  11275.                 ld      (hl), a
  11276.                 dec     l
  11277.                 dec     b
  11278.                 jp      p, loc_B979
  11279.  
  11280. loc_B994:                               ; CODE XREF: sub_B976+5 sub_B976+12
  11281.                 ld      a, #C
  11282.                 sub     b
  11283.                 cp      5
  11284.                 ret     c
  11285.                 ld      d, a
  11286.  
  11287. loc_B99B:                               ; CODE XREF: sub_B976+58 sub_B976+74 ...
  11288.                 ld      l, e
  11289.                 scf
  11290.  
  11291. loc_B99D:                               ; CODE XREF: sub_B976+33
  11292.                 ld      b, d
  11293.                 dec     d
  11294.                 ret     z
  11295.                 ld      c, (hl)
  11296.                 dec     l
  11297.                 ld      a, (hl)
  11298.                 dec     l
  11299.                 bit     3, a
  11300.                 jr      z, loc_B9AD
  11301.  
  11302.                 rla
  11303.                 jp      c, loc_B99D
  11304.  
  11305.                 ret
  11306.  
  11307. ; ---------------------------------------------------------------------------
  11308.  
  11309. loc_B9AD:                               ; CODE XREF: sub_B976+30
  11310.                 ld      e, l
  11311.                 sra     b
  11312.                 push    de
  11313.                 and     #77
  11314.                 ld      e, a
  11315.                 ld      a, c
  11316.                 and     #77
  11317.                 ld      c, a
  11318.                 ld      d, 0
  11319.  
  11320.  
  11321. loc_B9BA:                               ; CODE XREF: sub_B976+52 sub_B976+71
  11322.                 dec     l
  11323.                 set     7, (hl)
  11324.                 dec     l
  11325.                 ld      a, (hl)
  11326.                 dec     l
  11327.                 and     #77
  11328.                 cp      e
  11329.                 jr      z, loc_B9D1
  11330.  
  11331.                 set     7, (hl)
  11332.  
  11333. loc_B9C7:                               ; CODE XREF: sub_B976+66
  11334.                 dec     l
  11335.                 djnz    loc_B9BA
  11336.  
  11337.                 scf
  11338.                 dec     d
  11339.                 pop     de
  11340.                 ret     m
  11341.                 jp      loc_B99B
  11342.  
  11343. ; ---------------------------------------------------------------------------
  11344.  
  11345. loc_B9D1:                               ; CODE XREF: sub_B976+4D
  11346.                 set     3, (hl)
  11347.                 ld      a, (hl)
  11348.                 and     #77
  11349.                 cp      c
  11350.                 jr      z, loc_B9F7
  11351.  
  11352.                 set     7, (hl)
  11353.                 ld      e, a
  11354.                 jp      loc_B9C7
  11355.  
  11356. ; ---------------------------------------------------------------------------
  11357.  
  11358. loc_B9DF:                               ; CODE XREF: sub_B976+7F
  11359.                 ld      a, (hl)
  11360.                 or      #88
  11361.                 ld      (hl), a
  11362.                 and     #77
  11363.                 ld      e, a
  11364.                 dec     l
  11365.                 djnz    loc_B9BA
  11366.  
  11367.                 pop     de
  11368.                 jp      loc_B99B
  11369.  
  11370. ; ---------------------------------------------------------------------------
  11371.  
  11372. loc_B9ED:                               ; CODE XREF: sub_B976+82
  11373.                 inc     d
  11374.                 dec     l
  11375.                 dec     l
  11376.                 ld      a, (hl)
  11377.                 and     #77
  11378.                 dec     l
  11379.                 cp      c
  11380.                 jr      z, loc_B9DF
  11381.  
  11382. loc_B9F7:                               ; CODE XREF: sub_B976+61
  11383.                 dec     l
  11384.                 djnz    loc_B9ED
  11385.  
  11386.                 pop     de
  11387.                 jp      loc_B99B
  11388.  
  11389. ; End of function sub_B976
  11390.  
  11391. ; ---------------------------------------------------------------------------
  11392.                 db    0 ;unused?
  11393.                 db    0 ;unused?
  11394.  
  11395.  
  11396.         align 256
  11397.                 ;must be 256-aligned ;какие-то константы для оценки позиции?
  11398. tbl_BA00:       db    0,   1,   1,  #D,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11399.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11400.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11401.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11402.                 db    9,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11403.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11404.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11405.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11406.                 db    9,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11407.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11408.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11409.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11410.                 db    9,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11411.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11412.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11413.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11414.                 ;must be after tbl_BA00
  11415. tbl_BB00:       db    0,   0,   1,   0,   0,   4,   5,   6,   4,   8,   9,  #A,   8,  #C,  #D,  #E
  11416.                 db    0, #10, #11, #12, #10, #14, #15, #16, #14, #18, #19, #1A, #18, #1C, #1D, #1E
  11417.                 db  #10, #20, #21, #22, #20, #24, #25, #26, #24, #28, #29, #2A, #28, #2C, #2D, #2E
  11418.                 db  #20, #30, #31, #32, #30, #34, #35, #36, #34, #38, #39, #3A, #38, #3C, #3D, #3E
  11419.                 db    0, #40, #41, #42, #40, #44, #45, #46, #44, #48, #49, #4A, #48, #4C, #4D, #4E
  11420.                 db  #40, #50, #51, #52, #50, #54, #55, #56, #54, #58, #59, #5A, #58, #5C, #5D, #5E
  11421.                 db  #50, #60, #61, #62, #60, #64, #65, #66, #64, #68, #69, #6A, #68, #6C, #6D, #6E
  11422.                 db  #60, #70, #71, #72, #70, #74, #75, #76, #74, #78, #79, #7A, #78, #7C, #7D, #7E
  11423.                 db  #40, #80, #81, #82, #80, #84, #85, #86, #84, #88, #89, #8A, #88, #8C, #8D, #8E
  11424.                 db  #80, #90, #91, #92, #90, #94, #95, #96, #94, #98, #99, #9A, #98, #9C, #9D, #9E
  11425.                 db  #90, #A0, #A1, #A2, #A0, #A4, #A5, #A6, #A4, #A8, #A9, #AA, #A8, #AC, #AD, #AE
  11426.                 db  #A0, #B0, #B1, #B2, #B0, #B4, #B5, #B6, #B4, #B8, #B9, #BA, #B8, #BC, #BD, #BE
  11427.                 db  #80, #C0, #C1, #C2, #C0, #C4, #C5, #C6, #C4, #C8, #C9, #CA, #C8, #CC, #CD, #CE
  11428.                 db  #C0, #D0, #D1, #D2, #D0, #D4, #D5, #D6, #D4, #D8, #D9, #DA, #D8, #DC, #DD, #DE
  11429.                 db  #D0, #E0, #E1, #E2, #E0, #E4, #E5, #E6, #E4, #E8, #E9, #EA, #E8, #EC, #ED, #EE
  11430.                 db  #E0, #F0, #F1, #F2, #F0, #F4, #F5, #F6, #F4, #F8, #F9, #FA, #F8, #FC, #FD, #FE
  11431.  
  11432. ; =============== S U B R O U T I N E =======================================
  11433.  
  11434.  
  11435. sub_BC00:                               ; CODE XREF: sub_8C20-9FD
  11436.                                         ; sub_8C20-77C ...
  11437.  
  11438. ; FUNCTION CHUNK AT C0A0 SIZE 000000AA BYTES
  11439.  
  11440.                 call    sub_8F4D
  11441.  
  11442.                 ld      (word_D03D), sp
  11443.                 xor     a
  11444.                 ld      e, a
  11445.                 ex      af, af' ;'
  11446.                 ld      h, BRD_88_0/256
  11447.                 exx
  11448.                 ld      h, word_D100/256
  11449.                 ld      a, (byte_D02D)
  11450.                 rrca
  11451.                 ld      iy, loc_C313
  11452.                 bit     1, a
  11453.                 jr      z, loc_BC27
  11454.  
  11455.                 ld      iy, loc_C303
  11456.                 bit     2, a
  11457.                 jr      z, loc_BC27
  11458.  
  11459.                 ld      iy, loc_C2A6
  11460.  
  11461.  
  11462. loc_BC27:                               ; CODE XREF: sub_BC00+19 sub_BC00+21
  11463.                 add     a, #80
  11464.                 ld      b, a
  11465.                 exx
  11466.                 jp      c, loc_C0AE
  11467.  
  11468.  
  11469. loc_BC2E:                               ; CODE XREF: sub_BC00+547
  11470.                 ld      d, #88
  11471.                 ld      a, (byte_D188)
  11472.                 or      a
  11473.                 call    p, sub_C48D ;проверяем поля по ходу ферзя?
  11474.  
  11475.                 ld      a, (byte_D190)
  11476.                 or      a
  11477.                 call    p, sub_C498 ;что-то делаем и проверяем поля по ходу ладьи?
  11478.  
  11479.                 ld      a, (byte_D198)
  11480.                 or      a
  11481.                 call    p, sub_C498 ;что-то делаем и проверяем поля по ходу ладьи?
  11482.  
  11483.                 ld      a, (byte_D1A0)
  11484.                 or      a
  11485.                 call    p, sub_C5CF ;что-то делаем и проверяем поля по ходу слона
  11486.  
  11487.                 ld      a, (byte_D1A8)
  11488.                 or      a
  11489.                 call    p, sub_C5CF ;что-то делаем и проверяем поля по ходу слона
  11490.  
  11491.                 ld      a, (byte_D1B0)
  11492.                 or      a
  11493.                 call    p, sub_C505 ;что-то делаем и проверяем поля по ходу коня
  11494.  
  11495.                 ld      a, (byte_D1B8)
  11496.                 or      a
  11497.                 call    p, sub_C505 ;что-то делаем и проверяем поля по ходу коня
  11498.  
  11499.                 ld      d, #F1
  11500.                 ld      b, array_D200/256
  11501.                 ld      hl, (word_D1C0)
  11502.                 bit     7, l
  11503.                 call    z, sub_C2F2
  11504.  
  11505.                 ld      hl, (word_D1C8)
  11506.                 bit     7, l
  11507.                 call    z, sub_C2F2
  11508.  
  11509.                 ld      hl, (word_D1D0)
  11510.                 bit     7, l
  11511.                 call    z, sub_C2F2
  11512.  
  11513.                 ld      hl, (word_D1D8)
  11514.                 bit     7, l
  11515.                 call    z, sub_C2EA
  11516.  
  11517.                 ld      hl, (word_D1E0)
  11518.                 bit     7, l
  11519.                 call    z, sub_C2EA
  11520.  
  11521.                 ld      hl, (word_D1E8)
  11522.                 bit     7, l
  11523.                 call    z, sub_C2F2
  11524.  
  11525.                 ld      hl, (word_D1F0)
  11526.                 bit     7, l
  11527.                 call    z, sub_C2F2
  11528.  
  11529.                 ld      hl, (word_D1F8)
  11530.                 bit     7, l
  11531.                 call    z, sub_C2F2
  11532.  
  11533.                 call    sub_C06D
  11534.  
  11535.                 exx
  11536.                 bit     4, b
  11537.                 jp      z, loc_C0A0
  11538.  
  11539.  
  11540. loc_BCAE:                               ; CODE XREF: sub_BC00+541
  11541.                 bit     6, b
  11542.                 jr      nz, loc_BCC1
  11543.  
  11544.                 ld      l, (ix+1)
  11545.                 res     7, l
  11546.                 dec     h
  11547.                 ld      l, (hl)
  11548.                 inc     h
  11549.                 bit     2, l
  11550.                 jr      z, loc_BCC1
  11551.  
  11552.                 inc     l
  11553.                 set     1, (hl)
  11554.  
  11555.  
  11556. loc_BCC1:                               ; CODE XREF: sub_BC00+B0 sub_BC00+BC
  11557.                 bit     3, b
  11558.                 jp      z, loc_BCD2
  11559.  
  11560.                 exx
  11561.                 ld      a, (byte_D04C)
  11562.                 or      a
  11563.                 jr      nz, loc_BCCF
  11564.  
  11565.                 sra     e
  11566.  
  11567.  
  11568. loc_BCCF:                               ; CODE XREF: sub_BC00+CB
  11569.                 sra     e
  11570.                 exx
  11571.  
  11572.  
  11573. loc_BCD2:                               ; CODE XREF: sub_BC00+C3
  11574.                 bit     5, b
  11575.                 exx
  11576.                 call    nz, sub_C6C4
  11577.  
  11578.                 ex      af, af' ;'
  11579.                 sra     a
  11580.                 sra     a
  11581.                 add     a, e
  11582.                 ld      e, a
  11583.                 ld      hl, 0
  11584.                 ld      (word_D039), hl
  11585.                 ld      hl, (word_D18A)
  11586.                 ld      a, h
  11587.                 or      l
  11588.                 jr      z, loc_BCF8
  11589.  
  11590.                 ld      bc, (word_D18C)
  11591.                 ld      a, 9
  11592.                 call    sub_C3A3
  11593.  
  11594.                 ld      (word_D18A), hl
  11595.  
  11596.  
  11597. loc_BCF8:                               ; CODE XREF: sub_BC00+EA
  11598.                 ld      (word_D18C), hl
  11599.                 ld      hl, (word_D192)
  11600.                 ld      a, h
  11601.                 or      l
  11602.                 jr      z, loc_BD0E
  11603.  
  11604.                 ld      bc, (word_D194)
  11605.                 ld      a, 5
  11606.                 call    sub_C3A3
  11607.  
  11608.                 ld      (word_D192), hl
  11609.  
  11610.  
  11611. loc_BD0E:                               ; CODE XREF: sub_BC00+100
  11612.                 ld      (word_D194), hl
  11613.                 ld      hl, (word_D19A)
  11614.                 ld      a, h
  11615.                 or      l
  11616.                 jr      z, loc_BD24
  11617.  
  11618.                 ld      bc, (word_D19C)
  11619.                 ld      a, 5
  11620.                 call    sub_C3A3
  11621.  
  11622.                 ld      (word_D19A), hl
  11623.  
  11624.  
  11625. loc_BD24:                               ; CODE XREF: sub_BC00+116
  11626.                 ld      (word_D19C), hl
  11627.                 ld      hl, (word_D1A2)
  11628.                 ld      a, h
  11629.                 or      l
  11630.                 jr      z, loc_BD3A
  11631.  
  11632.                 ld      bc, (word_D1A4)
  11633.                 ld      a, 3
  11634.                 call    sub_C3A3
  11635.  
  11636.                 ld      (word_D1A2), hl
  11637.  
  11638.  
  11639. loc_BD3A:                               ; CODE XREF: sub_BC00+12C
  11640.                 ld      (word_D1A4), hl
  11641.                 ld      hl, (word_D1AA)
  11642.                 ld      a, h
  11643.                 or      l
  11644.                 jr      z, loc_BD50
  11645.  
  11646.                 ld      bc, (word_D1AC)
  11647.                 ld      a, 3
  11648.                 call    sub_C3A3
  11649.  
  11650.                 ld      (word_D1AA), hl
  11651.  
  11652.  
  11653. loc_BD50:                               ; CODE XREF: sub_BC00+142
  11654.                 ld      (word_D1AC), hl
  11655.                 ld      hl, (word_D1B2)
  11656.                 ld      a, h
  11657.                 or      l
  11658.                 jr      z, loc_BD66
  11659.  
  11660.                 ld      bc, (word_D1B4)
  11661.                 ld      a, 3
  11662.                 call    sub_C3A3
  11663.  
  11664.                 ld      (word_D1B2), hl
  11665.  
  11666.  
  11667. loc_BD66:                               ; CODE XREF: sub_BC00+158
  11668.                 ld      (word_D1B4), hl
  11669.                 ld      hl, (word_D1BA)
  11670.                 ld      a, h
  11671.                 or      l
  11672.                 jr      z, loc_BD7C
  11673.  
  11674.                 ld      bc, (word_D1BC)
  11675.                 ld      a, 3
  11676.                 call    sub_C3A3
  11677.  
  11678.                 ld      (word_D1BA), hl
  11679.  
  11680.  
  11681. loc_BD7C:                               ; CODE XREF: sub_BC00+16E
  11682.                 ld      (word_D1BC), hl
  11683.                 ld      hl, (word_D1C2)
  11684.                 ld      a, h
  11685.                 or      l
  11686.                 jr      z, loc_BD93
  11687.  
  11688.                 ld      bc, (word_D1C4)
  11689.                 ld      a, (word_D1C0+1)
  11690.                 call    sub_C3A1
  11691.  
  11692.                 ld      (word_D1C2), hl
  11693.  
  11694.  
  11695. loc_BD93:                               ; CODE XREF: sub_BC00+184
  11696.                 ld      (word_D1C4), hl
  11697.                 ld      hl, (word_D1CA)
  11698.                 ld      a, h
  11699.                 or      l
  11700.                 jr      z, loc_BDAA
  11701.  
  11702.                 ld      bc, (word_D1CC)
  11703.                 ld      a, (word_D1C8+1)
  11704.                 call    sub_C3A1
  11705.  
  11706.                 ld      (word_D1CA), hl
  11707.  
  11708.  
  11709. loc_BDAA:                               ; CODE XREF: sub_BC00+19B
  11710.                 ld      (word_D1CC), hl
  11711.                 ld      hl, (word_D1D2)
  11712.                 ld      a, h
  11713.                 or      l
  11714.                 jr      z, loc_BDC1
  11715.  
  11716.                 ld      bc, (word_D1D4)
  11717.                 ld      a, (word_D1D0+1)
  11718.                 call    sub_C3A1
  11719.  
  11720.                 ld      (word_D1D2), hl
  11721.  
  11722.  
  11723. loc_BDC1:                               ; CODE XREF: sub_BC00+1B2
  11724.                 ld      (word_D1D4), hl
  11725.                 ld      hl, (word_D1DA)
  11726.                 ld      a, h
  11727.                 or      l
  11728.                 jr      z, loc_BDD8
  11729.  
  11730.                 ld      bc, (word_D1DC)
  11731.                 ld      a, (word_D1D8+1)
  11732.                 call    sub_C3A1
  11733.  
  11734.                 ld      (word_D1DA), hl
  11735.  
  11736.  
  11737. loc_BDD8:                               ; CODE XREF: sub_BC00+1C9
  11738.                 ld      (word_D1DC), hl
  11739.                 ld      hl, (word_D1E2)
  11740.                 ld      a, h
  11741.                 or      l
  11742.                 jr      z, loc_BDEF
  11743.  
  11744.                 ld      bc, (word_D1E4)
  11745.                 ld      a, (word_D1E0+1)
  11746.                 call    sub_C3A1
  11747.  
  11748.                 ld      (word_D1E2), hl
  11749.  
  11750.  
  11751. loc_BDEF:                               ; CODE XREF: sub_BC00+1E0
  11752.                 ld      (word_D1E4), hl
  11753.                 ld      hl, (word_D1EA)
  11754.                 ld      a, h
  11755.                 or      l
  11756.                 jr      z, loc_BE06
  11757.  
  11758.                 ld      bc, (word_D1EC)
  11759.                 ld      a, (word_D1E8+1)
  11760.                 call    sub_C3A1
  11761.  
  11762.                 ld      (word_D1EA), hl
  11763.  
  11764.  
  11765. loc_BE06:                               ; CODE XREF: sub_BC00+1F7
  11766.                 ld      (word_D1EC), hl
  11767.                 ld      hl, (word_D1F2)
  11768.                 ld      a, h
  11769.                 or      l
  11770.                 jr      z, loc_BE1D
  11771.  
  11772.                 ld      bc, (word_D1F4)
  11773.                 ld      a, (word_D1F0+1)
  11774.                 call    sub_C3A1
  11775.  
  11776.                 ld      (word_D1F2), hl
  11777.  
  11778.  
  11779. loc_BE1D:                               ; CODE XREF: sub_BC00+20E
  11780.                 ld      (word_D1F4), hl
  11781.                 ld      hl, (word_D1FA)
  11782.                 ld      a, h
  11783.                 or      l
  11784.                 jr      z, loc_BE34
  11785.  
  11786.                 ld      bc, (word_D1FC)
  11787.                 ld      a, (word_D1F8+1)
  11788.                 call    sub_C3A1
  11789.  
  11790.                 ld      (word_D1FA), hl
  11791.  
  11792.  
  11793. loc_BE34:                               ; CODE XREF: sub_BC00+225
  11794.                 ld      (word_D1FC), hl
  11795.                 xor     a
  11796.                 sub     e
  11797.                 ld      e, a
  11798.                 ld      hl, (word_D039)
  11799.                 push    hl
  11800.                 ld      hl, 0
  11801.                 ld      (word_D039), hl
  11802.                 ld      hl, (word_D10A)
  11803.                 ld      a, h
  11804.                 or      l
  11805.                 jr      z, loc_BE57
  11806.  
  11807.                 ld      bc, (word_D10C)
  11808.                 ld      a, 9
  11809.                 call    sub_C3A3
  11810.  
  11811.                 ld      (word_D10A), hl
  11812.  
  11813.  
  11814. loc_BE57:                               ; CODE XREF: sub_BC00+249
  11815.                 ld      (word_D10C), hl
  11816.                 ld      hl, (word_D112)
  11817.                 ld      a, h
  11818.                 or      l
  11819.                 jr      z, loc_BE6D
  11820.  
  11821.                 ld      bc, (word_D114)
  11822.                 ld      a, 5
  11823.                 call    sub_C3A3
  11824.  
  11825.                 ld      (word_D112), hl
  11826.  
  11827.  
  11828. loc_BE6D:                               ; CODE XREF: sub_BC00+25F
  11829.                 ld      (word_D114), hl
  11830.                 ld      hl, (word_D11A)
  11831.                 ld      a, h
  11832.                 or      l
  11833.                 jr      z, loc_BE83
  11834.  
  11835.                 ld      bc, (word_D11C)
  11836.                 ld      a, 5
  11837.                 call    sub_C3A3
  11838.  
  11839.                 ld      (word_D11A), hl
  11840.  
  11841.  
  11842. loc_BE83:                               ; CODE XREF: sub_BC00+275
  11843.                 ld      (word_D11C), hl
  11844.                 ld      hl, (word_D122)
  11845.                 ld      a, h
  11846.                 or      l
  11847.                 jr      z, loc_BE99
  11848.  
  11849.                 ld      bc, (word_D124)
  11850.                 ld      a, 3
  11851.                 call    sub_C3A3
  11852.  
  11853.                 ld      (word_D122), hl
  11854.  
  11855.  
  11856. loc_BE99:                               ; CODE XREF: sub_BC00+28B
  11857.                 ld      (word_D124), hl
  11858.                 ld      hl, (word_D12A)
  11859.                 ld      a, h
  11860.                 or      l
  11861.                 jr      z, loc_BEAF
  11862.  
  11863.                 ld      bc, (word_D12C)
  11864.                 ld      a, 3
  11865.                 call    sub_C3A3
  11866.  
  11867.                 ld      (word_D12A), hl
  11868.  
  11869.  
  11870. loc_BEAF:                               ; CODE XREF: sub_BC00+2A1
  11871.                 ld      (word_D12C), hl
  11872.                 ld      hl, (word_D132)
  11873.                 ld      a, h
  11874.                 or      l
  11875.                 jr      z, loc_BEC5
  11876.  
  11877.                 ld      bc, (word_D134)
  11878.                 ld      a, 3
  11879.                 call    sub_C3A3
  11880.  
  11881.                 ld      (word_D132), hl
  11882.  
  11883.  
  11884. loc_BEC5:                               ; CODE XREF: sub_BC00+2B7
  11885.                 ld      (word_D134), hl
  11886.                 ld      hl, (word_D13A)
  11887.                 ld      a, h
  11888.                 or      l
  11889.                 jr      z, loc_BEDB
  11890.  
  11891.                 ld      bc, (word_D13C)
  11892.                 ld      a, 3
  11893.                 call    sub_C3A3
  11894.  
  11895.                 ld      (word_D13A), hl
  11896.  
  11897.  
  11898. loc_BEDB:                               ; CODE XREF: sub_BC00+2CD
  11899.                 ld      (word_D13C), hl
  11900.                 ld      hl, (word_D142)
  11901.                 ld      a, h
  11902.                 or      l
  11903.                 jr      z, loc_BEF2
  11904.  
  11905.                 ld      bc, (word_D144)
  11906.                 ld      a, (byte_D141)
  11907.                 call    sub_C3A1
  11908.  
  11909.                 ld      (word_D142), hl
  11910.  
  11911.  
  11912. loc_BEF2:                               ; CODE XREF: sub_BC00+2E3
  11913.                 ld      (word_D144), hl
  11914.                 ld      hl, (word_D14A)
  11915.                 ld      a, h
  11916.                 or      l
  11917.                 jr      z, loc_BF09
  11918.  
  11919.                 ld      bc, (word_D14C)
  11920.                 ld      a, (byte_D149)
  11921.                 call    sub_C3A1
  11922.  
  11923.                 ld      (word_D14A), hl
  11924.  
  11925.  
  11926. loc_BF09:                               ; CODE XREF: sub_BC00+2FA
  11927.                 ld      (word_D14C), hl
  11928.                 ld      hl, (word_D152)
  11929.                 ld      a, h
  11930.                 or      l
  11931.                 jr      z, loc_BF20
  11932.  
  11933.                 ld      bc, (word_D154)
  11934.                 ld      a, (byte_D151)
  11935.                 call    sub_C3A1
  11936.  
  11937.                 ld      (word_D152), hl
  11938.  
  11939.  
  11940. loc_BF20:                               ; CODE XREF: sub_BC00+311
  11941.                 ld      (word_D154), hl
  11942.                 ld      hl, (word_D15A)
  11943.                 ld      a, h
  11944.                 or      l
  11945.                 jr      z, loc_BF37
  11946.  
  11947.                 ld      bc, (word_D15C)
  11948.                 ld      a, (byte_D159)
  11949.                 call    sub_C3A1
  11950.  
  11951.                 ld      (word_D15A), hl
  11952.  
  11953.  
  11954. loc_BF37:                               ; CODE XREF: sub_BC00+328
  11955.                 ld      (word_D15C), hl
  11956.                 ld      hl, (word_D162)
  11957.                 ld      a, h
  11958.                 or      l
  11959.                 jr      z, loc_BF4E
  11960.  
  11961.                 ld      bc, (word_D164)
  11962.                 ld      a, (byte_D161)
  11963.                 call    sub_C3A1
  11964.  
  11965.                 ld      (word_D162), hl
  11966.  
  11967.  
  11968. loc_BF4E:                               ; CODE XREF: sub_BC00+33F
  11969.                 ld      (word_D164), hl
  11970.                 ld      hl, (word_D16A)
  11971.                 ld      a, h
  11972.                 or      l
  11973.                 jr      z, loc_BF65
  11974.  
  11975.                 ld      bc, (word_D16C)
  11976.                 ld      a, (byte_D169)
  11977.                 call    sub_C3A1
  11978.  
  11979.                 ld      (word_D16A), hl
  11980.  
  11981.  
  11982. loc_BF65:                               ; CODE XREF: sub_BC00+356
  11983.                 ld      (word_D16C), hl
  11984.                 ld      hl, (word_D172)
  11985.                 ld      a, h
  11986.                 or      l
  11987.                 jr      z, loc_BF7C
  11988.  
  11989.                 ld      bc, (word_D174)
  11990.                 ld      a, (byte_D171)
  11991.                 call    sub_C3A1
  11992.  
  11993.                 ld      (word_D172), hl
  11994.  
  11995.  
  11996. loc_BF7C:                               ; CODE XREF: sub_BC00+36D
  11997.                 ld      (word_D174), hl
  11998.                 ld      hl, (word_D17A)
  11999.                 ld      a, h
  12000.                 or      l
  12001.                 jr      z, loc_BF93
  12002.  
  12003.                 ld      bc, (word_D17C)
  12004.                 ld      a, (byte_D179)
  12005.                 call    sub_C3A1
  12006.  
  12007.                 ld      (word_D17A), hl
  12008.  
  12009.  
  12010. loc_BF93:                               ; CODE XREF: sub_BC00+384
  12011.                 ld      (word_D17C), hl
  12012.                 ld      b, e
  12013.                 pop     de
  12014.                 ld      hl, (word_D039)
  12015.                 ld      a, (byte_D02D)
  12016.                 rra
  12017.                 jr      nc, loc_BFAB
  12018.  
  12019.                 xor     a
  12020.                 sub     b
  12021.                 ld      b, a
  12022.                 ex      de, hl
  12023.                 ld      a, (word_D00D)
  12024.                 jp      loc_BFB0
  12025.  
  12026. ; ---------------------------------------------------------------------------
  12027.  
  12028. loc_BFAB:                               ; CODE XREF: sub_BC00+39F
  12029.                 ld      a, (word_D00D)
  12030.                 neg
  12031.  
  12032.  
  12033. loc_BFB0:                               ; CODE XREF: sub_BC00+3A8
  12034.                 sub     l
  12035.                 add     a, a
  12036.                 dec     l
  12037.                 jp      m, loc_BFD4
  12038.  
  12039.                 set     1, (ix+2)
  12040.                 ex      af, af' ;'
  12041.                 ld      a, l
  12042.                 inc     a
  12043.                 sub     e
  12044.                 jp      m, loc_BFCC
  12045.  
  12046.                 ld      a, (byte_D07A)
  12047.                 sub     2
  12048.                 push    hl
  12049.                 ld      l, a
  12050.                 ld      h, word_D100/256
  12051.                 ld      a, (hl)
  12052.                 pop     hl
  12053.  
  12054.  
  12055. loc_BFCC:                               ; CODE XREF: sub_BC00+3BE
  12056.                 ld      (byte_D07A), a
  12057.                 ex      af, af' ;'
  12058.                 jr      z, loc_BFD3
  12059.  
  12060.                 dec     a
  12061.  
  12062.  
  12063. loc_BFD3:                               ; CODE XREF: sub_BC00+3D0
  12064.                 sub     h
  12065.  
  12066.  
  12067. loc_BFD4:                               ; CODE XREF: sub_BC00+3B3
  12068.                 inc     l
  12069.                 dec     e
  12070.                 jp      m, loc_C002
  12071.  
  12072.                 ex      af, af' ;'
  12073.                 ld      a, (byte_D01D)
  12074.                 bit     1, a
  12075.                 jr      nz, loc_BFE5
  12076.  
  12077.                 set     6, (ix+2)
  12078.  
  12079.  
  12080. loc_BFE5:                               ; CODE XREF: sub_BC00+3DF
  12081.                 bit     2, (ix+2)
  12082.                 jr      nz, loc_C001
  12083.  
  12084.                 inc     b
  12085.                 inc     b
  12086.                 dec     d
  12087.                 jp      m, loc_C001
  12088.  
  12089.                 and     #C9 ; 'Й'
  12090.                 jr      z, loc_BFF9
  12091.  
  12092.                 set     6, (ix+2)
  12093.  
  12094.  
  12095. loc_BFF9:                               ; CODE XREF: sub_BC00+3F3
  12096.                 inc     b
  12097.                 inc     b
  12098.                 dec     d
  12099.                 jp      m, loc_C001
  12100.  
  12101.                 inc     b
  12102.                 inc     b
  12103.  
  12104.  
  12105. loc_C001:                               ; CODE XREF: sub_BC00+3E9
  12106.                                         ; sub_BC00+3EE ...
  12107.                 ex      af, af' ;'
  12108.  
  12109.  
  12110. loc_C002:                               ; CODE XREF: sub_BC00+3D6
  12111.                 cp      #18
  12112.                 jr      c, loc_C016
  12113.  
  12114.                 cp      #E9 ; 'й'
  12115.                 jp      nc, loc_C016
  12116.  
  12117.                 rla
  12118.                 ld      a, 3
  12119.                 ld      b, a
  12120.                 ld      c, a
  12121.                 ret     c
  12122.                 ld      a, #FC  ; 'ь'
  12123.                 ld      b, a
  12124.                 ld      c, a
  12125.                 ret
  12126.  
  12127. ; ---------------------------------------------------------------------------
  12128.  
  12129. loc_C016:                               ; CODE XREF: sub_BC00+404
  12130.                                         ; sub_BC00+408
  12131.                 add     a, a
  12132.                 add     a, a
  12133.                 ld      c, a
  12134.                 ld      a, b
  12135.                 sra     a
  12136.                 cp      #22 ; '"'
  12137.                 jr      c, loc_C02B
  12138.  
  12139.                 cp      #DF ; 'Я'
  12140.                 jr      nc, loc_C02B
  12141.  
  12142.                 rla
  12143.                 ld      a, #21 ; '!'
  12144.                 jr      nc, loc_C02B
  12145.  
  12146.                 ld      a, #DF  ; 'Я'
  12147.  
  12148.  
  12149. loc_C02B:                               ; CODE XREF: sub_BC00+41E
  12150.                                         ; sub_BC00+422 ...
  12151.                 add     a, c
  12152.                 add     a, #80 ; '?'
  12153.                 ld      c, a
  12154.                 ld      b, a
  12155.                 ld      a, (byte_D03B)
  12156.                 rla
  12157.                 jr      c, loc_C049
  12158.  
  12159.  
  12160. loc_C036:                               ; CODE XREF: sub_BC00+459
  12161.                 ld      a, c
  12162.                 bit     6, (ix+2)
  12163.                 ret     z
  12164.                 inc     e
  12165.                 ret     z
  12166.                 rlc     e
  12167.                 rl      e
  12168.                 add     a, e
  12169.                 ld      b, a
  12170.                 ld      a, c
  12171.                 ret     nc
  12172.                 ld      b, #FE  ; 'ю'
  12173.                 ret
  12174.  
  12175. ; ---------------------------------------------------------------------------
  12176.  
  12177. loc_C049:                               ; CODE XREF: sub_BC00+434
  12178.                 rla
  12179.                 ld      a, (byte_D02D)
  12180.                 jr      c, loc_C062
  12181.  
  12182.                 rra
  12183.                 ld      a, (byte_D01E)
  12184.                 jr      nc, loc_C056
  12185.  
  12186.                 cpl
  12187.  
  12188.  
  12189. loc_C056:                               ; CODE XREF: sub_BC00+453
  12190.                 adc     a, #80 ; '?'
  12191.                 cp      c
  12192.                 jr      nc, loc_C036
  12193.  
  12194.  
  12195. loc_C05B:                               ; CODE XREF: sub_BC00+46B
  12196.                 ld      c, a
  12197.                 ld      b, a
  12198.                 res     6, (ix+2)
  12199.                 ret
  12200.  
  12201. ; ---------------------------------------------------------------------------
  12202.  
  12203. loc_C062:                               ; CODE XREF: sub_BC00+44D
  12204.                 rra
  12205.                 ld      a, (byte_D01E)
  12206.                 jr      nc, loc_C069
  12207.  
  12208.                 cpl
  12209.  
  12210.  
  12211. loc_C069:                               ; CODE XREF: sub_BC00+466
  12212.                 adc     a, #80 ; '?'
  12213.                 jr      loc_C05B
  12214.  
  12215. ; End of function sub_BC00
  12216.  
  12217.  
  12218. ; =============== S U B R O U T I N E =======================================
  12219.  
  12220.  
  12221. sub_C06D:                               ; CODE XREF: sub_BC00+A5
  12222.                                         ; sub_BC00+525
  12223.                 ld      hl, array_D200
  12224.                 xor     a
  12225.                 ld      c, a
  12226.  
  12227.  
  12228. loc_C072:                               ; CODE XREF: sub_C06D+7 sub_C06D+27     ...
  12229.                 inc     l
  12230.                 or      (hl)
  12231.                 jr      z, loc_C072
  12232.  
  12233.                 ret     m
  12234.                 ld      (hl), c
  12235.  
  12236.  
  12237. loc_C078:                               ; CODE XREF: sub_C06D+12
  12238.                 dec     a
  12239.                 jp      z, loc_C082
  12240.  
  12241.                 dec     e
  12242.                 dec     e
  12243.                 dec     e
  12244.                 jp      loc_C078
  12245.  
  12246. ; ---------------------------------------------------------------------------
  12247.  
  12248. loc_C082:                               ; CODE XREF: sub_C06D+C
  12249.                 inc     l
  12250.                 or      (hl)
  12251.                 jr      z, loc_C09A
  12252.  
  12253.                 ret     m
  12254.  
  12255.  
  12256. loc_C087:                               ; CODE XREF: sub_C06D+29
  12257.                 ld      (hl), c
  12258.  
  12259.  
  12260. loc_C088:                               ; CODE XREF: sub_C06D+22
  12261.                 dec     a
  12262.                 jp      z, loc_C092
  12263.  
  12264.                 dec     e
  12265.                 dec     e
  12266.                 dec     e
  12267.                 jp      loc_C088
  12268.  
  12269. ; ---------------------------------------------------------------------------
  12270.  
  12271. loc_C092:                               ; CODE XREF: sub_C06D+1C
  12272.                 inc     l
  12273.                 or      (hl)
  12274.                 jr      z, loc_C072
  12275.  
  12276.                 jp      p, loc_C087
  12277.  
  12278.                 ret
  12279.  
  12280. ; ---------------------------------------------------------------------------
  12281.  
  12282. loc_C09A:                               ; CODE XREF: sub_C06D+17
  12283.                 dec     e
  12284.                 dec     e
  12285.                 dec     e
  12286.                 jp      loc_C072
  12287.  
  12288. ; End of function sub_C06D
  12289.  
  12290. ; ---------------------------------------------------------------------------
  12291. ; START OF FUNCTION CHUNK FOR sub_BC00
  12292.  
  12293. loc_C0A0:                               ; CODE XREF: sub_BC00+AB
  12294.                 ld      a, #90 ; '?'
  12295.                 add     a, b
  12296.                 ld      b, a
  12297.                 exx
  12298.                 xor     a
  12299.                 sub     e
  12300.                 ld      e, a
  12301.                 ld      h, BRD_88_0/256
  12302.                 ex      af, af' ;'
  12303.                 neg
  12304.                 ex      af, af' ;'
  12305.  
  12306.  
  12307. loc_C0AE:                               ; CODE XREF: sub_BC00+2B
  12308.                 ld      a, (byte_D108)
  12309.                 ld      d, #88
  12310.                 or      a
  12311.                 call    p, sub_C48D ;проверяем поля по ходу ферзя?
  12312.  
  12313.                 ld      a, (byte_D110)
  12314.                 or      a
  12315.                 call    p, sub_C498 ;что-то делаем и проверяем поля по ходу ладьи?
  12316.  
  12317.                 ld      a, (byte_D118)
  12318.                 or      a
  12319.                 call    p, sub_C498 ;что-то делаем и проверяем поля по ходу ладьи?
  12320.  
  12321.                 ld      a, (byte_D120)
  12322.                 or      a
  12323.                 call    p, sub_C5C4 ;что-то делаем и проверяем поля по ходу слона?
  12324.  
  12325.                 ld      a, (byte_D128)
  12326.                 or      a
  12327.                 call    p, sub_C5C4 ;что-то делаем и проверяем поля по ходу слона?
  12328.  
  12329.                 ld      a, (byte_D130)
  12330.                 or      a
  12331.                 call    p, sub_C512 ;что-то делаем и проверяем поля по ходу коня
  12332.  
  12333.                 ld      a, (byte_D138)
  12334.                 or      a
  12335.                 call    p, sub_C512 ;что-то делаем и проверяем поля по ходу коня
  12336.  
  12337.                 ld      d, #11
  12338.                 ld      b, array_D200/256
  12339.                 ld      hl, (unk_D140)
  12340.                 bit     7, l
  12341.                 call    z, sub_C2F2
  12342.  
  12343.                 ld      hl, (unk_D148)
  12344.                 bit     7, l
  12345.                 call    z, sub_C2F2
  12346.  
  12347.                 ld      hl, (unk_D150)
  12348.                 bit     7, l
  12349.                 call    z, sub_C2F2
  12350.  
  12351.                 ld      hl, (unk_D158)
  12352.                 bit     7, l
  12353.                 call    z, sub_C2EA
  12354.  
  12355.                 ld      hl, (unk_D160)
  12356.                 bit     7, l
  12357.                 call    z, sub_C2EA
  12358.  
  12359.                 ld      hl, (unk_D168)
  12360.                 bit     7, l
  12361.                 call    z, sub_C2F2
  12362.  
  12363.                 ld      hl, (unk_D170)
  12364.                 bit     7, l
  12365.                 call    z, sub_C2F2
  12366.  
  12367.                 ld      hl, (unk_D178)
  12368.                 bit     7, l
  12369.                 call    z, sub_C2F2
  12370.  
  12371.                 call    sub_C06D
  12372.  
  12373.                 ld      hl, (word_D100)
  12374.                 call    sub_C1EF ;что-то делаем и проверяем поля вокруг ;out: Z=пусто, A' прибавляет 12 на каждом занятом
  12375.  
  12376.                 ex      af, af' ;'
  12377.                 neg
  12378.                 ex      af, af' ;'
  12379.                 xor     a
  12380.                 sub     e
  12381.                 ld      e, a
  12382.                 ld      hl, (word_D180)
  12383.                 exx
  12384.                 set     7, b
  12385.                 call    sub_C1F4 ;что-то делаем и проверяем поля вокруг ;out: Z=пусто, A' прибавляет 12 на каждом занятом
  12386.  
  12387.                 exx
  12388.                 bit     4, b
  12389.                 jp      nz, loc_BCAE
  12390.  
  12391.                 set     4, b
  12392.                 exx
  12393.                 jp      loc_BC2E
  12394.  
  12395. ; END OF FUNCTION CHUNK FOR sub_BC00
  12396. ; ---------------------------------------------------------------------------
  12397. ; START OF FUNCTION CHUNK FOR sub_C1F4
  12398.  
  12399. loc_C14A:                               ; CODE XREF: sub_C1F4-1B
  12400.                 or      a
  12401.                 jp      nz, loc_C1E6
  12402.  
  12403.                 ld      a, d
  12404.                 or      a
  12405.                 jr      nz, loc_C155
  12406.  
  12407.                 sub     #A
  12408.                 ld      d, a
  12409.  
  12410.  
  12411. loc_C155:                               ; CODE XREF: sub_C1F4-A4
  12412.                 ld      a, 7
  12413.                 and     l
  12414.                 inc     a
  12415.                 rra
  12416.                 cp      2
  12417.                 jr      z, loc_C169
  12418.  
  12419.                 ld      a, #70 ; 'p'
  12420.                 and     l
  12421.                 cp      #30 ; '0'
  12422.                 jr      z, loc_C169
  12423.  
  12424.                 cp      #40 ; '@'
  12425.                 jr      nz, loc_C16F
  12426.  
  12427.  
  12428. loc_C169:                               ; CODE XREF: sub_C1F4-98 sub_C1F4-91
  12429.                 ex      af, af' ;'
  12430.                 add     a, #10
  12431.                 jp      loc_C1E7
  12432.  
  12433. ; ---------------------------------------------------------------------------
  12434.  
  12435. loc_C16F:                               ; CODE XREF: sub_C1F4-8D
  12436.                 ld      a, 7
  12437.                 and     l
  12438.                 cp      2
  12439.                 jr      z, loc_C185
  12440.  
  12441.                 cp      5
  12442.                 jr      z, loc_C185
  12443.  
  12444.                 ld      a, #70 ; 'p'
  12445.                 and     l
  12446.                 cp      #20 ; ' '
  12447.                 jr      z, loc_C185
  12448.  
  12449.                 cp      #50 ; 'P'
  12450.                 jr      nz, loc_C1E6
  12451.  
  12452.  
  12453. loc_C185:                               ; CODE XREF: sub_C1F4-80 sub_C1F4-7C ...
  12454.                 ex      af, af' ;'
  12455.                 add     a, 8
  12456.                 jp      loc_C1E7
  12457.  
  12458. ; END OF FUNCTION CHUNK FOR sub_C1F4
  12459. ; ---------------------------------------------------------------------------
  12460. ; START OF FUNCTION CHUNK FOR sub_C1EF
  12461.  
  12462. loc_C18B:                               ; CODE XREF: sub_C1EF+3
  12463. ;что-то делаем и проверяем поля вокруг ;out: Z=пусто, A' прибавляет 12 на каждом занятом
  12464.                 ld      a, (byte_D049) ;move #
  12465.                 cpl
  12466.                 add     a, #B
  12467.                 exx
  12468.                 ld      c, a
  12469.                 ld      a, (byte_D189)
  12470.                 bit     4, a
  12471.                 jr      z, loc_C1A4
  12472.  
  12473.                 ld      a, (byte_D188)
  12474.                 or      a
  12475.                 jp      m, loc_C1A4
  12476.  
  12477.                 ld      a, e
  12478.                 add     a, c
  12479.                 ld      e, a
  12480.  
  12481.  
  12482. loc_C1A4:                               ; CODE XREF: sub_C1EF-57 sub_C1EF-51
  12483.                 ld      a, (byte_D109)
  12484.                 bit     4, a
  12485.                 jr      z, loc_C1B5
  12486.  
  12487.                 ld      a, (byte_D108)
  12488.                 or      a
  12489.                 jp      m, loc_C1B5
  12490.  
  12491.                 ld      a, e
  12492.                 sub     c
  12493.                 ld      e, a
  12494.  
  12495.  
  12496. loc_C1B5:                               ; CODE XREF: sub_C1EF-46 sub_C1EF-40
  12497.                 exx
  12498.                 jp      sub_C1F4 ;что-то делаем и проверяем поля вокруг ;out: Z=пусто, A' прибавляет 12 на каждом занятом
  12499.  
  12500. ; END OF FUNCTION CHUNK FOR sub_C1EF
  12501. ; ---------------------------------------------------------------------------
  12502. ; START OF FUNCTION CHUNK FOR sub_C1F4
  12503.  
  12504. loc_C1B9:                               ; CODE XREF: sub_C1F4+4
  12505.                 bit     3, a
  12506.                 jr      nz, loc_C1C5
  12507.  
  12508.                 ld      h, BRD_88_0/256
  12509.                 ld      b, l
  12510.                 ld      c, 8
  12511.                 jp      loc_C21E ;проверяем поля вокруг
  12512.  
  12513. ; ---------------------------------------------------------------------------
  12514.  
  12515. loc_C1C5:                               ; CODE XREF: sub_C1F4-39
  12516.                 ld      b, a
  12517.                 ld      c, 4
  12518.                 ld      a, #C0  ; 'А'
  12519.                 and     h
  12520.                 rra
  12521.                 rra
  12522.                 rra
  12523.                 ld      d, a
  12524.                 ld      a, (byte_D01E)
  12525.                 or      a
  12526.                 jr      z, loc_C1DC
  12527.  
  12528.                 xor     b
  12529.                 ld      a, (byte_D04C)
  12530.                 jp      p, loc_C14A
  12531.  
  12532.  
  12533. loc_C1DC:                               ; CODE XREF: sub_C1F4-21
  12534.                 rr      d
  12535.                 or      a
  12536.                 jr      nz, loc_C1E6
  12537.  
  12538.                 ld      a, #C0  ; 'А'
  12539.                 and     h
  12540.                 jr      nz, loc_C185
  12541.  
  12542.  
  12543. loc_C1E6:                               ; CODE XREF: sub_C1F4-A9 sub_C1F4-71 ...
  12544.                 ex      af, af' ;'
  12545.  
  12546.  
  12547. loc_C1E7:                               ; CODE XREF: sub_C1F4-88 sub_C1F4-6C
  12548.                 add     a, d
  12549.                 ex      af, af' ;'
  12550.                 ld      h, BRD_88_0/256
  12551.                 ld      b, l
  12552.                 jp      loc_C21E ;проверяем поля вокруг
  12553.  
  12554. ; END OF FUNCTION CHUNK FOR sub_C1F4
  12555.  
  12556. ; =============== S U B R O U T I N E =======================================
  12557.  
  12558.  
  12559. sub_C1EF:                               ; CODE XREF: sub_BC00+52B
  12560.  
  12561. ; FUNCTION CHUNK AT C18B SIZE 0000002E BYTES
  12562.  
  12563.                 exx
  12564.                 bit     0, b
  12565.                 jr      z, loc_C18B ;что-то делаем и проверяем поля вокруг ;out: Z=пусто, A' прибавляет 12 на каждом занятом
  12566.  
  12567. ; End of function sub_C1EF
  12568.  
  12569.  
  12570. ; =============== S U B R O U T I N E =======================================
  12571.  
  12572.  
  12573. sub_C1F4:                               ; CODE XREF: sub_BC00+53B
  12574.                                         ; sub_C1EF-39
  12575. ;L' = поле
  12576. ;B = ?
  12577. ; FUNCTION CHUNK AT C14A SIZE 00000041 BYTES
  12578. ; FUNCTION CHUNK AT C1B9 SIZE 00000036 BYTES
  12579. ; FUNCTION CHUNK AT C26D SIZE 0000001F BYTES
  12580. ; FUNCTION CHUNK AT C28F SIZE 00000006 BYTES
  12581. ; FUNCTION CHUNK AT C298 SIZE 0000000E BYTES
  12582.  
  12583.                 ld      a, b
  12584.                 exx
  12585.                 bit     2, a
  12586.                 jr      nz, loc_C1B9
  12587.  
  12588.                 bit     5, h
  12589.                 jp      z, loc_C27F
  12590.  
  12591.                 ld      a, #C0  ; 'А'
  12592.                 and     h
  12593.                 jr      nz, loc_C26D
  12594.  
  12595.                 ld      c, #C
  12596.                 ld      b, l
  12597.                 ld      h, BRD_88_0/256
  12598.                 ld      a, #1F
  12599.                 add     a, b
  12600.                 jp      p, loc_C211
  12601.  
  12602.                 sub     #40 ; '@'
  12603.  
  12604.  
  12605. loc_C211:                               ; CODE XREF: sub_C1F4+18
  12606.                 ld      l, a
  12607.                 ld      a, (hl)
  12608.                 inc     l
  12609.                 or      (hl)
  12610.                 inc     l
  12611.                 or      (hl)
  12612.                 bit     6, a
  12613.                 jr      nz, loc_C21D
  12614.  
  12615.                 dec     e
  12616.                 dec     e
  12617.  
  12618.  
  12619. loc_C21D:                               ; CODE XREF: sub_C1F4+25
  12620.                 ld      l, b
  12621.  
  12622.  
  12623. loc_C21E:                               ; CODE XREF: sub_C1F4-32 sub_C1F4-8     ...
  12624. ;проверяем поля вокруг ;out: Z=пусто, A' прибавляет C на каждом занятом
  12625.                 dec     l
  12626.                 xor     a
  12627.                 or      (hl) ;левее
  12628.                 call    nz, sub_C254
  12629.  
  12630.                 inc     l
  12631.                 inc     l
  12632.                 or      (hl) ;правее
  12633.                 call    nz, sub_C254
  12634.  
  12635.                 ld      a, #10
  12636.                 add     a, b
  12637.                 jp      m, loc_C241 ;не смотрим ниже
  12638.  
  12639.                 ld      l, a
  12640.                 xor     a
  12641.                 or      (hl) ;ниже?
  12642.                 call    nz, sub_C254
  12643.  
  12644.                 inc     l
  12645.                 or      (hl) ;ниже правее?
  12646.                 call    nz, sub_C254
  12647.  
  12648.                 dec     l
  12649.                 dec     l
  12650.                 or      (hl) ;ниже левее?
  12651.                 call    nz, sub_C254
  12652.  
  12653.  
  12654. loc_C241:                               ; CODE XREF: sub_C1F4+39
  12655.                 ld      a, #F0  ; 'р'
  12656.                 add     a, b
  12657.                 ret     m ;не смотрим выше
  12658.                 ld      l, a
  12659.                 xor     a
  12660.                 or      (hl) ;выше?
  12661.                 call    nz, sub_C254
  12662.  
  12663.                 inc     l
  12664.                 or      (hl) ;выше левее?
  12665.                 call    nz, sub_C254
  12666.  
  12667.                 dec     l
  12668.                 dec     l
  12669.                 or      (hl) ;выше правее?
  12670.                 ret     z
  12671.  
  12672. ; End of function sub_C1F4
  12673.  
  12674.  
  12675. ; =============== S U B R O U T I N E =======================================
  12676.  
  12677.  
  12678. sub_C254:                               ; CODE XREF: sub_C1F4+2D sub_C1F4+33 ...
  12679.  
  12680. ; FUNCTION CHUNK AT C471 SIZE 0000001C BYTES
  12681.  
  12682.                 exx
  12683.                 ld      l, a ;код найденной фигуры?
  12684.                 inc     l
  12685.                 xor     b ;цвет фигур?
  12686.                 jp      p, loc_C263
  12687.  
  12688.                 ld      a, #78 ; 'x'
  12689.                 and     l
  12690.                 jp      z, loc_C471
  12691.  
  12692.                 dec     l
  12693.                 dec     l
  12694.  
  12695.  
  12696. loc_C263:                               ; CODE XREF: sub_C254+4
  12697.                 inc     (hl)
  12698.                 xor     a
  12699.                 bit     6, l
  12700.                 exx
  12701.                 ret     z
  12702.                 ex      af, af' ;'
  12703.                 add     a, c  ;0/4/8/12
  12704.                 ex      af, af' ;'
  12705.                 ret
  12706.  
  12707. ; End of function sub_C254
  12708.  
  12709. ; ---------------------------------------------------------------------------
  12710. ; START OF FUNCTION CHUNK FOR sub_C1F4
  12711.  
  12712. loc_C26D:                               ; CODE XREF: sub_C1F4+E sub_C1F4+AA
  12713.                 ld      c, 4
  12714.                 bit     7, h
  12715.                 jp      z, loc_C276
  12716.  
  12717.                 dec     e
  12718.                 dec     e
  12719.  
  12720.  
  12721. loc_C276:                               ; CODE XREF: sub_C1F4+7D
  12722.                 dec     e
  12723.                 dec     e
  12724.                 dec     e
  12725.                 ld      b, l
  12726.                 ld      h, BRD_88_0/256
  12727.                 jp      loc_C21E ;проверяем поля вокруг
  12728.  
  12729. ; ---------------------------------------------------------------------------
  12730.  
  12731. loc_C27F:                               ; CODE XREF: sub_C1F4+8
  12732.                 bit     4, h
  12733.                 jr      nz, loc_C28F
  12734.  
  12735.                 ld      h, BRD_88_0/256
  12736.                 ld      b, l
  12737.                 ld      c, 0
  12738.                 inc     e
  12739.                 jp      loc_C21E ;проверяем поля вокруг
  12740.                
  12741.  
  12742. ; END OF FUNCTION CHUNK FOR sub_C1F4
  12743. ; ---------------------------------------------------------------------------
  12744.                 rra                     ; dead code???
  12745.                 jr      nc, loc_C295
  12746.  
  12747. ; START OF FUNCTION CHUNK FOR sub_C1F4
  12748.  
  12749. loc_C28F:                               ; CODE XREF: sub_C1F4+8D
  12750.                 ld      a, e
  12751.                 sub     #C
  12752.                 jp      loc_C298        ;  jr???
  12753.  
  12754. ; END OF FUNCTION CHUNK FOR sub_C1F4
  12755. ; ---------------------------------------------------------------------------
  12756.  
  12757. loc_C295:                               ; CODE XREF: RAM:C28D
  12758.                 ld      a, e
  12759.                 sub     8
  12760.  
  12761. ; START OF FUNCTION CHUNK FOR sub_C1F4
  12762.  
  12763. loc_C298:                               ; CODE XREF: sub_C1F4+9E
  12764.                 ld      e, a
  12765.                 ld      c, 8
  12766.                 ld      a, #C0  ; 'А'
  12767.                 and     h
  12768.                 jr      nz, loc_C26D
  12769.  
  12770.                 ld      h, BRD_88_0/256
  12771.                 ld      b, l
  12772.                 jp      loc_C21E ;проверяем поля вокруг
  12773.  
  12774. ; END OF FUNCTION CHUNK FOR sub_C1F4
  12775. ; ---------------------------------------------------------------------------
  12776.  
  12777. loc_C2A6:                               ; DATA XREF: sub_BC00+23
  12778.                 srl     h
  12779.                 srl     h
  12780.                 ex      af, af' ;'
  12781.                 add     a, h
  12782.                 ex      af, af' ;'
  12783.                 bit     5, h
  12784.                 jp      z, loc_C313
  12785.  
  12786. ; START OF FUNCTION CHUNK FOR sub_C2F2
  12787.  
  12788. loc_C2B2:                               ; CODE XREF: sub_C2F2+1E
  12789.                 ld      h, BRD_88_0/256
  12790.                 dec     l
  12791.                 ld      a, (hl)
  12792.                 inc     l
  12793.                 or      a
  12794.                 jp      nz, loc_C315
  12795.  
  12796.                 set     6, (ix+2)
  12797.                 set     0, (ix+2)
  12798.                 ex      af, af' ;'
  12799.                 exx
  12800.                 bit     4, b
  12801.                 exx
  12802.                 jr      nz, loc_C2CC
  12803.  
  12804.                 add     a, #16
  12805.  
  12806.  
  12807. loc_C2CC:                               ; CODE XREF: sub_C2F2-2A
  12808.                 add     a, #E
  12809.                 ex      af, af' ;'
  12810.                 jp      loc_C315
  12811.  
  12812. ; END OF FUNCTION CHUNK FOR sub_C2F2
  12813. ; ---------------------------------------------------------------------------
  12814. ; START OF FUNCTION CHUNK FOR sub_C2EA
  12815.  
  12816. loc_C2D2:                               ; CODE XREF: sub_C2EA+5
  12817.                 ld      a, #E
  12818.                 and     h
  12819.                 jr      nz, loc_C33E
  12820.  
  12821.                 dec     e
  12822.                 ld      a, d
  12823.                 add     a, l
  12824.                 ld      l, a
  12825.                 dec     l
  12826.                 push    hl
  12827.                 ld      h, BRD_88_0/256
  12828.                 ld      a, (hl)
  12829.                 pop     hl
  12830.                 inc     l
  12831.                 or      a
  12832.                 ld      a, l
  12833.                 jr      z, loc_C2FB
  12834.  
  12835.                 dec     e
  12836.                 dec     e
  12837.                 jr      loc_C2FB
  12838.  
  12839. ; END OF FUNCTION CHUNK FOR sub_C2EA
  12840.  
  12841. ; =============== S U B R O U T I N E =======================================
  12842.  
  12843.  
  12844. sub_C2EA:                               ; CODE XREF: sub_BC00+82 sub_BC00+8A ...
  12845.  
  12846. ; FUNCTION CHUNK AT C2D2 SIZE 00000018 BYTES
  12847.  
  12848.                 ld      a, l
  12849.                 add     a, #20 ; ' '
  12850.                 bit     6, a
  12851.                 jr      z, loc_C2D2
  12852.  
  12853.                 inc     e
  12854.  
  12855. ; End of function sub_C2EA
  12856.  
  12857.  
  12858. ; =============== S U B R O U T I N E =======================================
  12859.  
  12860.  
  12861. sub_C2F2:                               ; CODE XREF: sub_BC00+6A sub_BC00+72 ...
  12862.  
  12863. ; FUNCTION CHUNK AT C2B2 SIZE 00000020 BYTES
  12864. ; FUNCTION CHUNK AT C362 SIZE 0000000C BYTES
  12865. ; FUNCTION CHUNK AT C467 SIZE 0000000A BYTES
  12866.  
  12867.                 inc     e
  12868.                 ld      a, #E
  12869.                 and     h
  12870.                 jr      nz, loc_C33E
  12871.  
  12872.                 ld      a, d
  12873.                 add     a, l
  12874.                 ld      l, a
  12875.  
  12876.  
  12877. loc_C2FB:                               ; CODE XREF: sub_C2EA-6 sub_C2EA-2
  12878.                 and     #F
  12879.                 ld      c, a
  12880.                 ld      a, (bc)
  12881.                 inc     a
  12882.                 ld      (bc), a
  12883.                 jp      (iy)
  12884.  
  12885. ; ---------------------------------------------------------------------------
  12886.  
  12887. loc_C303:                               ; DATA XREF: sub_BC00+1B
  12888.                 srl     h
  12889.                 jr      z, loc_C313
  12890.  
  12891.                 srl     h
  12892.                 srl     h
  12893.                 ex      af, af' ;'
  12894.                 add     a, h
  12895.                 ex      af, af' ;'
  12896.                 bit     4, h
  12897.                 jp      nz, loc_C2B2
  12898.  
  12899.  
  12900. loc_C313:                               ; CODE XREF: RAM:C2AF   sub_C2F2+13
  12901.                                         ; DATA XREF: ...
  12902.                 ld      h, BRD_88_0/256
  12903.  
  12904.  
  12905. loc_C315:                               ; CODE XREF: sub_C2F2-3A sub_C2F2-23
  12906.                 ld      a, (hl)
  12907.                 or      a
  12908.                 jp      z, loc_C32A
  12909.  
  12910.                 exx
  12911.                 ld      l, a
  12912.                 xor     b
  12913.                 jp      p, loc_C327
  12914.  
  12915.                 ld      a, #78 ; 'x'
  12916.                 and     l
  12917.                 jr      z, loc_C362
  12918.  
  12919.                 dec     l
  12920.                 dec     l
  12921.  
  12922.  
  12923. loc_C327:                               ; CODE XREF: sub_C2F2+2B
  12924.                 inc     (hl)
  12925.                 exx
  12926.                 xor     a
  12927.  
  12928.  
  12929. loc_C32A:                               ; CODE XREF: sub_C2F2+25
  12930.                 dec     l
  12931.                 dec     l
  12932.                 or      (hl)
  12933.                 ret     z
  12934.                 exx
  12935.                 ld      l, a
  12936.                 xor     b
  12937.                 jp      p, loc_C33B
  12938.  
  12939.                 ld      a, #78 ; 'x'
  12940.                 and     l
  12941.                 jr      z, loc_C362
  12942.  
  12943.                 dec     l
  12944.                 dec     l
  12945.  
  12946.  
  12947. loc_C33B:                               ; CODE XREF: sub_C2F2+3F
  12948.                 inc     (hl)
  12949.                 exx
  12950.                 ret
  12951.  
  12952. ; ---------------------------------------------------------------------------
  12953.  
  12954. loc_C33E:                               ; CODE XREF: sub_C2EA-15 sub_C2F2+4
  12955.                 push    bc
  12956.                 push    de
  12957.                 ld      bc, ret_C35D
  12958.                 push    bc
  12959.                 ld      c, h
  12960.                 ld      h, BRD_88_0/256
  12961.                 ld      d, #88
  12962.                 ld      a, l
  12963.                 bit     3, c
  12964.                 jp      nz, sub_C48D ;проверяем поля по ходу ферзя?
  12965.  
  12966.                 bit     2, c
  12967.                 jp      nz, sub_C498 ;что-то делаем и проверяем поля по ходу ладьи?
  12968.  
  12969.                 bit     7, c
  12970.                 ld      b, a
  12971.                 jp      nz, loc_C5D5
  12972.  
  12973.                 jp      loc_C517
  12974.  
  12975. ; End of function sub_C2F2
  12976.  
  12977. ; ---------------------------------------------------------------------------
  12978.  
  12979. ret_C35D:                               ; DATA XREF: sub_C2F2+4E
  12980.                 ld      l, e
  12981.                 pop     de
  12982.                 ld      e, l
  12983.                 pop     bc
  12984.                 ret
  12985.  
  12986. ; ---------------------------------------------------------------------------
  12987. ; START OF FUNCTION CHUNK FOR sub_C2F2
  12988.  
  12989. loc_C362:                               ; CODE XREF: sub_C2F2+31 sub_C2F2+45
  12990.                 bit     4, b
  12991.                 jp      z, loc_C467
  12992.  
  12993.                 set     7, (ix+2)
  12994.                 exx
  12995.                 inc     e
  12996.                 ret
  12997.  
  12998. ; END OF FUNCTION CHUNK FOR sub_C2F2
  12999. ; ---------------------------------------------------------------------------
  13000. ; START OF FUNCTION CHUNK FOR sub_C3A3
  13001.  
  13002. loc_C36E:                               ; CODE XREF: sub_C3A3+A
  13003.                 ld      a, b
  13004.                 and     #FD ; 'э'
  13005.                 jr      nz, loc_C377
  13006.  
  13007.                 ex      af, af' ;'
  13008.                 jp      loc_C432
  13009.  
  13010. ; ---------------------------------------------------------------------------
  13011.  
  13012. loc_C377:                               ; CODE XREF: sub_C3A3-32
  13013.                 ld      a, b
  13014.                 ld      d, a
  13015.                 and     3
  13016.                 ld      b, a
  13017.                 ld      a, d
  13018.                 and     #FC ; 'ь'
  13019.                 jr      nz, loc_C3AF
  13020.  
  13021.                 dec     e
  13022.                 res     0, b
  13023.                 ld      a, 3
  13024.                 jp      loc_C3AF
  13025.  
  13026. ; ---------------------------------------------------------------------------
  13027.  
  13028. loc_C389:                               ; CODE XREF: sub_C3A3+3
  13029.                 bit     0, h
  13030.                 jr      nz, loc_C390
  13031.  
  13032.                 ld      h, 0
  13033.                 ret
  13034.  
  13035. ; ---------------------------------------------------------------------------
  13036.  
  13037. loc_C390:                               ; CODE XREF: sub_C3A3-18
  13038.                 ld      a, h
  13039.                 ld      d, h
  13040.                 and     3
  13041.                 ld      h, a
  13042.                 ld      a, d
  13043.                 and     #FC ; 'ь'
  13044.                 jr      nz, loc_C3A8
  13045.  
  13046.                 ld      a, 3
  13047.                 res     0, h
  13048.                 jp      loc_C3A8
  13049.  
  13050. ; END OF FUNCTION CHUNK FOR sub_C3A3
  13051.  
  13052. ; =============== S U B R O U T I N E =======================================
  13053.  
  13054.  
  13055. sub_C3A1:                               ; CODE XREF: sub_BC00+18D
  13056.                                         ; sub_BC00+1A4 ...
  13057.                 and     #F
  13058.  
  13059. ; End of function sub_C3A1
  13060.  
  13061.  
  13062. ; =============== S U B R O U T I N E =======================================
  13063. ;a=0..15 (реально 9,5,3)? попадёт в max?
  13064. ;l=? попадёт в индекс таблицы для вычитания
  13065. ;c=? попадёт в индекс таблицы для сложения
  13066. ;b=?
  13067. ;h=?
  13068. ;out: hl в том же формате, что bc
  13069.  
  13070. sub_C3A3:                               ; CODE XREF: sub_BC00+F2
  13071.                                         ; sub_BC00+108 ...
  13072.  
  13073. ; FUNCTION CHUNK AT C36E SIZE 00000033 BYTES
  13074.  
  13075.                 ex      af, af' ;'
  13076.                 ld      a, l
  13077.                 or      a
  13078.                 jr      z, loc_C389
  13079.  
  13080. loc_C3A8:                               ; CODE XREF: sub_C3A3-B sub_C3A3-5
  13081.                 exx
  13082.                 ld      b, a
  13083.                 exx
  13084.                 ld      a, c
  13085.                 or      a
  13086.                 jr      z, loc_C36E
  13087.  
  13088. loc_C3AF:                               ; CODE XREF: sub_C3A3-24 sub_C3A3-1D
  13089.                 exx
  13090.                 ld      c, a
  13091.                 ex      af, af' ;'
  13092.                 ld      d, a ;max?
  13093.                 ld      e, #FF ;min?
  13094.                 ld      h, tbl_BA00/256 ;какие-то константы для оценки позиции?
  13095.  
  13096. loc_C3B7:                               ; CODE XREF: sub_C3A3+36 sub_C3A3+49 ...
  13097.                 ld      l, b
  13098.                 sub     (hl)
  13099.                 cp      e
  13100.                 jp      m, loc_C3C2 ;value<max?
  13101.                 cp      d
  13102.                 jp      p, loc_C420 ;value>min?
  13103. ;max<=value<=min???
  13104.                 ld      e, a ;new max?
  13105. loc_C3C2:                               ; CODE XREF: sub_C3A3+17
  13106.                 inc     h               ; tbl_BB00
  13107.                 ld      b, (hl)
  13108.                 inc     b
  13109.                 dec     b
  13110.                 jr      z, loc_C3FD
  13111.  
  13112. loc_C3C8:                               ; CODE XREF: sub_C3A3+6A sub_C3A3+79
  13113.                 dec     h
  13114.                 ld      l, c
  13115.                 add     a, (hl)
  13116.                 cp      d
  13117.                 jp      p, loc_C3D4 ;value>min?
  13118.                 cp      e
  13119.                 jp      m, loc_C42A ;value<max?
  13120. ;max<=value<=min???
  13121.                 ld      d, a ;new min?
  13122. loc_C3D4:                               ; CODE XREF: sub_C3A3+29
  13123.                 inc     h
  13124.                 ld      c, (hl)
  13125.                 dec     h
  13126.                 inc     c
  13127.                 dec     c
  13128.                 jp      nz, loc_C3B7
  13129.  
  13130.                 exx
  13131.                 ex      af, af' ;'
  13132.                 ld      a, b ;изначально передано в процедуру в b
  13133.                 and     #FC ; 'ь'
  13134.                 jr      z, loc_C3EF
  13135.  
  13136.                 ld      d, a
  13137.                 ld      a, b
  13138.                 and     3
  13139.                 ld      b, a
  13140.                 ld      a, d
  13141.                 exx
  13142.                 ld      c, a
  13143.                 ex      af, af' ;'
  13144.                 jp      loc_C3B7
  13145.  
  13146. ; ---------------------------------------------------------------------------
  13147.  
  13148. loc_C3EF:                               ; CODE XREF: sub_C3A3+3E
  13149.                 bit     0, b
  13150.                 jr      z, loc_C41F
  13151.  
  13152.                 res     0, b
  13153.                 ld      a, 3
  13154.                 exx
  13155.                 ld      c, a
  13156.                 ex      af, af' ;'
  13157.                 jp      loc_C3B7
  13158.  
  13159. ; ---------------------------------------------------------------------------
  13160.  
  13161. loc_C3FD:                               ; CODE XREF: sub_C3A3+23
  13162.                 exx
  13163.                 ex      af, af' ;'
  13164.                 ld      a, h
  13165.                 and     #FC ; 'ь'
  13166.                 jr      z, loc_C410
  13167.  
  13168.                 ld      d, a
  13169.                 ld      a, h
  13170.                 and     3
  13171.                 ld      h, a
  13172.                 ld      a, d
  13173.                 exx
  13174.                 ld      b, a
  13175.                 ex      af, af' ;'
  13176.                 jp      loc_C3C8
  13177.  
  13178. ; ---------------------------------------------------------------------------
  13179.  
  13180. loc_C410:                               ; CODE XREF: sub_C3A3+5F
  13181.                 bit     0, h
  13182.                 jr      z, loc_C429
  13183.  
  13184.                 res     0, h
  13185.                 ld      a, 3
  13186.                 dec     e
  13187.                 exx
  13188.                 ld      b, a
  13189.                 ex      af, af' ;'
  13190.                 jp      loc_C3C8
  13191.  
  13192. ; ---------------------------------------------------------------------------
  13193.  
  13194. loc_C41F:                               ; CODE XREF: sub_C3A3+4E
  13195.                 exx
  13196.  
  13197.  
  13198. loc_C420:                               ; CODE XREF: sub_C3A3+1B
  13199.                 ld      a, d
  13200.                 or      a
  13201.                 exx
  13202.                 jp      p, loc_C430
  13203.  
  13204.                 jp      loc_C459
  13205.  
  13206. ; ---------------------------------------------------------------------------
  13207.  
  13208. loc_C429:                               ; CODE XREF: sub_C3A3+6F
  13209.                 exx
  13210.  
  13211.  
  13212. loc_C42A:                               ; CODE XREF: sub_C3A3+2D
  13213.                 ld      a, e
  13214.                 or      a
  13215.                 exx
  13216.                 jp      m, loc_C459
  13217.  
  13218.  
  13219. loc_C430:                               ; CODE XREF: sub_C3A3+80
  13220.                 jr      z, loc_C454
  13221.  
  13222.  
  13223. loc_C432:                               ; CODE XREF: sub_C3A3-2F
  13224.                 ld      hl, word_D039
  13225.                 cp      (hl)
  13226.                 jr      c, loc_C44F
  13227.  
  13228.                 ld      c, a
  13229.                 ld      d, (hl)
  13230.                 ld      (hl), c
  13231.                 pop     iy
  13232.                 push    iy
  13233.                 ld      a, (byte_D02D)
  13234.                 rrca
  13235.                 ld      c, (iy+1)
  13236.                 xor     c
  13237.                 jp      m, loc_C44E
  13238.  
  13239.                 ld      a, c
  13240.                 ld      (byte_D07A), a
  13241.  
  13242.  
  13243. loc_C44E:                               ; CODE XREF: sub_C3A3+A4
  13244.                 ld      a, d
  13245.  
  13246.  
  13247. loc_C44F:                               ; CODE XREF: sub_C3A3+93
  13248.                 inc     l
  13249.                 cp      (hl)
  13250.                 jr      c, loc_C454
  13251.  
  13252.                 ld      (hl), a
  13253.  
  13254.  
  13255. loc_C454:                               ; CODE XREF: sub_C3A3:loc_C430
  13256.                                         ; sub_C3A3+AE
  13257.                 dec     e
  13258.                 bit     1, b
  13259.                 jr      nz, loc_C45D
  13260.  
  13261.  
  13262. loc_C459:                               ; CODE XREF: sub_C3A3+83 sub_C3A3+8A
  13263.                 ld      hl, 0
  13264.                 ret
  13265.  
  13266. ; ---------------------------------------------------------------------------
  13267.  
  13268. loc_C45D:                               ; CODE XREF: sub_C3A3+B4
  13269.                 set     2, (ix+2)
  13270.                 ld      hl, 0
  13271.                 dec     e
  13272.                 dec     e
  13273.                 ret
  13274.  
  13275. ; End of function sub_C3A3
  13276.  
  13277. ; ---------------------------------------------------------------------------
  13278. ; START OF FUNCTION CHUNK FOR sub_C2F2
  13279.  
  13280. loc_C467:                               ; CODE XREF: sub_C2F2+72
  13281.                 xor     a
  13282.                 ld      b, 8
  13283.                 ld      hl,  array_D200+1
  13284.  
  13285.  
  13286. loc_C46D:                               ; CODE XREF: sub_C2F2+17D
  13287.                 ld      (hl), a
  13288.                 inc     l
  13289.                 djnz    loc_C46D
  13290.  
  13291. ; END OF FUNCTION CHUNK FOR sub_C2F2
  13292. ; START OF FUNCTION CHUNK FOR sub_C254
  13293.  
  13294. loc_C471:                               ; CODE XREF: sub_C254+A sub_C563+17     ...
  13295.                 xor     a
  13296.                 ld      (byte_D079), a
  13297.                 ld      b, #1F
  13298.                 ld      de, 5
  13299.                 ld      hl, word_D10A
  13300.  
  13301.  
  13302. loc_C47D:                               ; CODE XREF: sub_C254+231
  13303.                 ld      (hl), a
  13304.                 inc     l
  13305.                 ld      (hl), a
  13306.                 inc     l
  13307.                 ld      (hl), a
  13308.                 inc     l
  13309.                 ld      (hl), a
  13310.                 add     hl, de
  13311.                 djnz    loc_C47D
  13312.  
  13313.                 ld      c, a
  13314.                 ld      sp, (word_D03D)
  13315.                 ret
  13316.  
  13317. ; END OF FUNCTION CHUNK FOR sub_C254
  13318.  
  13319. ; =============== S U B R O U T I N E =======================================
  13320.  
  13321.  
  13322. sub_C48D:                               ; CODE XREF: sub_BC00+34
  13323.                                         ; sub_BC00+4B4 ...
  13324. ;проверяем поля по ходу ферзя?
  13325.                 ld      b, a
  13326.                 exx
  13327.                 ld      c, #40
  13328.                 call    sub_C49C ;проверяем поля по ходу ладьи?
  13329.  
  13330.                 exx
  13331.                 jp      loc_C5D9 ;проверяем поля по ходу слона
  13332.  
  13333. ; End of function sub_C48D
  13334.  
  13335.  
  13336. ; =============== S U B R O U T I N E =======================================
  13337.  
  13338.  
  13339. sub_C498:                               ; CODE XREF: sub_BC00+3B sub_BC00+42 ...
  13340.                 ld      b, a
  13341.                 exx
  13342.                 ld      c, #10
  13343.  
  13344. ; End of function sub_C498
  13345.  
  13346.  
  13347. ; =============== S U B R O U T I N E =======================================
  13348.  
  13349.  
  13350. sub_C49C:                               ; CODE XREF: sub_C48D+4
  13351. ;проверяем поля по ходу ладьи?
  13352.                 ld      e, 8
  13353.                 exx
  13354.                 ld      l, b
  13355.                 xor     a
  13356. loc_C4A1:                               ; CODE XREF: sub_C49C+B
  13357.                 inc     l
  13358.                 bit     3, l
  13359.                 jr      nz, loc_C4AF
  13360.                 or      (hl)
  13361.                 jr      z, loc_C4A1
  13362.  
  13363.                 ld      c, 1
  13364.                 call    sub_C4E2 ;проверяем поля справа?
  13365.                 xor     a
  13366.  
  13367. loc_C4AF:                               ; CODE XREF: sub_C49C+8
  13368.                 ld      l, b
  13369.  
  13370.  
  13371. loc_C4B0:                               ; CODE XREF: sub_C49C+1A
  13372.                 dec     l
  13373.                 bit     3, l
  13374.                 jr      nz, loc_C4BD
  13375.  
  13376.                 or      (hl)
  13377.                 jr      z, loc_C4B0
  13378.  
  13379.                 ld      c, #FF
  13380.                 call    sub_C4E2 ;проверяем поля слева?
  13381.  
  13382.  
  13383. loc_C4BD:                               ; CODE XREF: sub_C49C+17
  13384.                 ld      c, #10
  13385.                 ld      a, b
  13386.                 add     a, c
  13387.                 call    p, sub_C4CA ;проверяем поля снизу?
  13388.  
  13389.                 ld      c, #F0  ; 'р'
  13390.                 ld      l, b
  13391.                                     ;проверяем поля сверху?
  13392.  
  13393. loc_C4C7:                               ; CODE XREF: sub_C4CA+4
  13394.                 ld      a, l
  13395.                 add     a, c
  13396.                 ret     m
  13397.  
  13398. ; End of function sub_C49C
  13399.  
  13400.  
  13401. ; =============== S U B R O U T I N E =======================================
  13402.  
  13403.  
  13404. sub_C4CA:                               ; CODE XREF: sub_C49C+25
  13405.                 ld      l, a
  13406.                 inc     e
  13407.                 xor     a
  13408.                 or      (hl)
  13409.                 jr      z, loc_C4C7
  13410.  
  13411.                 exx
  13412.                 ld      l, a
  13413.                 xor     b
  13414.                 jp      m, loc_C609
  13415.  
  13416.                 ld      a, c
  13417.                 add     a, (hl)
  13418.                 ld      (hl), a
  13419.                 set     1, l
  13420.                 ld      a, (hl)
  13421.                 and     e
  13422.                 exx
  13423.                 ret     z
  13424.                 jp      loc_C648
  13425.  
  13426. ; End of function sub_C4CA
  13427.  
  13428.  
  13429. ; =============== S U B R O U T I N E =======================================
  13430.  
  13431.  
  13432. sub_C4E2:                               ; CODE XREF: sub_C49C+F sub_C49C+1E
  13433.                 exx
  13434.                 ld      l, a
  13435.                 xor     b
  13436.                 jp      m, loc_C609
  13437.  
  13438.                 ld      a, c
  13439.                 add     a, (hl)
  13440.                 ld      (hl), a
  13441.                 set     1, l
  13442.                 ld      a, (hl)
  13443.                 and     e
  13444.                 exx
  13445.                 ret     z
  13446.  
  13447.  
  13448. loc_C4F1:                               ; CODE XREF: sub_C4E2+15
  13449.                 ld      a, l
  13450.                 add     a, c
  13451.                 ld      l, a
  13452.                 and     d
  13453.                 ret     nz
  13454.                 or      (hl)
  13455.                 jr      z, loc_C4F1
  13456.  
  13457.                 exx
  13458.                 ld      l, a
  13459.                 xor     b
  13460.                 jp      m, loc_C657
  13461.  
  13462.                 inc     l
  13463.                 ld      a, c
  13464.                 add     a, (hl)
  13465.                 ld      (hl), a
  13466.                 exx
  13467.                 ret
  13468.  
  13469. ; End of function sub_C4E2
  13470.  
  13471.  
  13472. ; =============== S U B R O U T I N E =======================================
  13473.  
  13474.  
  13475. sub_C505:                               ; CODE XREF: sub_BC00+57 sub_BC00+5E
  13476.                 ld      b, a
  13477.                 or      #70 ; 'p'
  13478.                 cp      b
  13479.                 jp      nz, loc_C517
  13480.  
  13481.  
  13482. loc_C50C:                               ; CODE XREF: sub_C512+3
  13483.                 ld      a, e
  13484.                 sub     6
  13485.                 jp      loc_C51A
  13486.  
  13487. ; End of function sub_C505
  13488.  
  13489.  
  13490. ; =============== S U B R O U T I N E =======================================
  13491.  
  13492.  
  13493. sub_C512:                               ; CODE XREF: sub_BC00+4D7
  13494.                                         ; sub_BC00+4DE
  13495.                 ld      b, a
  13496.                 and     #70 ; 'p'
  13497.                 jr      z, loc_C50C
  13498.  
  13499.  
  13500. loc_C517:                               ; CODE XREF: sub_C2F2+68 sub_C505+4
  13501.                 ld      a, e
  13502.                 sub     5
  13503.  
  13504.  
  13505. loc_C51A:                               ; CODE XREF: sub_C505+A
  13506.                 ld      e, a
  13507.                 exx
  13508.                 ld      c, 4
  13509.                 exx
  13510.  
  13511.  
  13512. loc_C51F:                               ; CODE XREF: sub_C6C4+5E
  13513. ;проверяем поля по ходу коня
  13514.                 ld      a, #E
  13515.                 add     a, b
  13516.                 jp      m, loc_C542
  13517.  
  13518.                 ld      l, a
  13519.                 and     d
  13520.                 call    z, sub_C563
  13521.  
  13522.                 ld      a, #12
  13523.                 add     a, b
  13524.                 ld      l, a
  13525.                 and     d
  13526.                 call    z, sub_C563
  13527.  
  13528.                 ld      a, #1F
  13529.                 add     a, b
  13530.                 ld      l, a
  13531.                 and     d
  13532.                 call    z, sub_C562
  13533.  
  13534.                 ld      a, #21 ; '!'
  13535.                 add     a, b
  13536.                 ld      l, a
  13537.                 and     d
  13538.                 call    z, sub_C562
  13539.  
  13540.  
  13541. loc_C542:                               ; CODE XREF: sub_C512+10
  13542.                 ld      a, #F2  ; 'т'
  13543.                 add     a, b
  13544.                 ret     m
  13545.                 ld      l, a
  13546.                 and     d
  13547.                 call    z, sub_C563
  13548.  
  13549.                 ld      a, #EE  ; 'о'
  13550.                 add     a, b
  13551.                 ld      l, a
  13552.                 and     d
  13553.                 call    z, sub_C563
  13554.  
  13555.                 ld      a, #E1  ; 'б'
  13556.                 add     a, b
  13557.                 ret     m
  13558.                 ld      l, a
  13559.                 and     d
  13560.                 call    z, sub_C562
  13561.  
  13562.                 ld      a, #DF  ; 'Я'
  13563.                 add     a, b
  13564.                 ld      l, a
  13565.                 and     d
  13566.                 ret     nz
  13567.  
  13568. ; End of function sub_C512
  13569.  
  13570.  
  13571. ; =============== S U B R O U T I N E =======================================
  13572.  
  13573.  
  13574. sub_C562:                               ; CODE XREF: sub_C512+25 sub_C512+2D ...
  13575.                 inc     e
  13576.  
  13577. ; End of function sub_C562
  13578.  
  13579.  
  13580. ; =============== S U B R O U T I N E =======================================
  13581.  
  13582.  
  13583. sub_C563:                               ; CODE XREF: sub_C512+15 sub_C512+1D ...
  13584.                 inc     e
  13585.                 or      (hl)
  13586.                 ret     z
  13587.                 exx
  13588.                 ld      l, a
  13589.                 xor     b
  13590.                 jp      p, loc_C573
  13591.  
  13592.                 ld      a, #78 ; 'x'
  13593.                 and     l
  13594.                 jr      z, loc_C578
  13595.  
  13596.                 dec     l
  13597.                 dec     l
  13598.  
  13599.  
  13600. loc_C573:                               ; CODE XREF: sub_C563+6
  13601.                 ld      a, c
  13602.                 add     a, (hl)
  13603.                 ld      (hl), a
  13604.                 exx
  13605.                 ret
  13606.  
  13607. ; ---------------------------------------------------------------------------
  13608.  
  13609. loc_C578:                               ; CODE XREF: sub_C563+C
  13610.                 bit     4, b
  13611.                 jp      z, loc_C471
  13612.  
  13613.                 set     7, (ix+2)
  13614.                 bit     6, b
  13615.                 set     6, b
  13616.                 exx
  13617.                 jr      nz, loc_C592
  13618.  
  13619.                 ld      l, b
  13620.                 ld      l, (hl)
  13621.                 inc     l
  13622.                 inc     h
  13623.                 set     1, (hl)
  13624.                 dec     h
  13625.                 inc     e
  13626.                 inc     e
  13627.                 ret
  13628.  
  13629. ; ---------------------------------------------------------------------------
  13630.  
  13631. loc_C592:                               ; CODE XREF: sub_C563+23
  13632.                 set     6, (ix+2)
  13633.                 ex      af, af' ;'
  13634.                 add     a, #14
  13635.                 ex      af, af' ;'
  13636.                 ret
  13637.  
  13638. ; End of function sub_C563
  13639.  
  13640. ; ---------------------------------------------------------------------------
  13641. ; START OF FUNCTION CHUNK FOR sub_C5FF
  13642.  
  13643. loc_C59B:                               ; CODE XREF: sub_C5FF+D
  13644.                 bit     4, b
  13645.                 jp      z, loc_C471
  13646.  
  13647.                 set     7, (ix+2)
  13648.                 bit     6, b
  13649.                 set     6, b
  13650.                 exx
  13651.                 jr      nz, loc_C5B9
  13652.  
  13653.                 ld      a, l
  13654.                 ld      l, b
  13655.                 ld      l, (hl)
  13656.                 inc     l
  13657.                 inc     h
  13658.                 set     1, (hl)
  13659.                 dec     h
  13660.                 ld      l, a
  13661.                 inc     e
  13662.                 inc     e
  13663.                 jp      loc_C5FA ;проверяем поля по какому-то направлению C
  13664.  
  13665. ; ---------------------------------------------------------------------------
  13666.  
  13667. loc_C5B9:                               ; CODE XREF: sub_C5FF-56
  13668.                 set     6, (ix+2)
  13669.                 ex      af, af' ;'
  13670.                 add     a, #14
  13671.                 ex      af, af' ;'
  13672.                 jp      loc_C5FA ;проверяем поля по какому-то направлению C
  13673.  
  13674. ; END OF FUNCTION CHUNK FOR sub_C5FF
  13675.  
  13676. ; =============== S U B R O U T I N E =======================================
  13677.  
  13678.  
  13679. sub_C5C4:                               ; CODE XREF: sub_BC00+4C9
  13680.                                         ; sub_BC00+4D0
  13681.                 ld      b, a
  13682.                 and     #70 ; 'p'
  13683.                 jp      nz, loc_C5D5
  13684.  
  13685.  
  13686. loc_C5CA:                               ; CODE XREF: sub_C5CF+4
  13687.                 dec     e
  13688.                 dec     e
  13689.                 jp      loc_C5D6
  13690.  
  13691. ; End of function sub_C5C4
  13692.  
  13693.  
  13694. ; =============== S U B R O U T I N E =======================================
  13695.  
  13696.  
  13697. sub_C5CF:                               ; CODE XREF: sub_BC00+49 sub_BC00+50
  13698.                 ld      b, a
  13699.                 or      #70 ; 'p'
  13700.                 cp      b
  13701.                 jr      z, loc_C5CA
  13702.  
  13703.  
  13704. loc_C5D5:                               ; CODE XREF: sub_C2F2+65 sub_C5C4+3
  13705.                 inc     e
  13706.  
  13707.  
  13708. loc_C5D6:                               ; CODE XREF: sub_C5C4+8
  13709.                 exx
  13710.                 ld      c, 4
  13711.  
  13712.  
  13713. loc_C5D9:                               ; CODE XREF: sub_C48D+8
  13714. ;проверяем поля по ходу слона
  13715.                 ld      e, #C4  ; 'Д'
  13716.                 exx
  13717.                 ld      c, #F
  13718.                 ld      a, b
  13719.                 add     a, c
  13720.                 ld      l, a ;ниже левее? (и далее по этому направлению)
  13721.                 and     d
  13722.                 call    z, sub_C5FF
  13723.  
  13724.                 ld      c, #11
  13725.                 ld      a, b
  13726.                 add     a, c
  13727.                 ld      l, a ;ниже правее? (и далее по этому направлению)
  13728.                 and     d
  13729.                 call    z, sub_C5FF
  13730.  
  13731.                 ld      c, #EF  ; 'п'
  13732.                 ld      a, b
  13733.                 add     a, c
  13734.                 ld      l, a ;выше левее? (и далее по этому направлению)
  13735.                 and     d
  13736.                 call    z, sub_C5FF
  13737.  
  13738.                 ld      c, #F1  ; 'с'
  13739.                 ld      l, b
  13740.                              ;выше правее? (и далее по этому направлению)
  13741.  
  13742. loc_C5FA:                               ; CODE XREF: sub_C5FF-49 sub_C5FF-3E ...
  13743. ;проверяем поля по какому-то направлению C
  13744.                 ld      a, l
  13745.                 add     a, c
  13746.                 ld      l, a
  13747.                 and     d
  13748.                 ret     nz
  13749.  
  13750. ; End of function sub_C5CF
  13751.  
  13752.  
  13753. ; =============== S U B R O U T I N E =======================================
  13754.  
  13755.  
  13756. sub_C5FF:                               ; CODE XREF: sub_C5CF+13 sub_C5CF+1C ...
  13757.  
  13758. ; FUNCTION CHUNK AT C59B SIZE 00000029 BYTES
  13759.  
  13760.                 inc     e
  13761.                 or      (hl)
  13762.                 jr      z, loc_C5FA ;проверяем поля по какому-то направлению C
  13763.  
  13764.                 exx
  13765.                 ld      l, a
  13766.                 xor     b
  13767.                 jp      p, loc_C63C
  13768.  
  13769.  
  13770. loc_C609:                               ; CODE XREF: sub_C4CA+9 sub_C4E2+3
  13771.                 ld      a, #78 ; 'x'
  13772.                 and     l
  13773.                 jr      z, loc_C59B
  13774.  
  13775.                 dec     l
  13776.                 dec     l
  13777.                 ld      a, c
  13778.                 add     a, (hl)
  13779.                 ld      (hl), a
  13780.                 set     2, l
  13781.                 ld      a, (hl)
  13782.                 and     e
  13783.                 jr      z, loc_C669
  13784.  
  13785.                 jp      m, loc_C669
  13786.  
  13787.                 exx
  13788.  
  13789.  
  13790. loc_C61D:                               ; CODE XREF: sub_C5FF+24
  13791.                 ld      a, l
  13792.                 add     a, c
  13793.                 ld      l, a
  13794.                 and     d
  13795.                 ret     nz
  13796.                 or      (hl)
  13797.                 jr      z, loc_C61D
  13798.  
  13799.                 exx
  13800.                 ld      d, l
  13801.                 ld      l, a
  13802.                 xor     b
  13803.                 jp      p, loc_C665
  13804.  
  13805.                 dec     l
  13806.                 ld      a, c
  13807.                 add     a, (hl)
  13808.                 ld      (hl), a
  13809.                 inc     l
  13810.  
  13811.  
  13812. loc_C631:                               ; CODE XREF: sub_C5FF+77
  13813.                 inc     l
  13814.                 inc     l
  13815.                 ld      a, (hl)
  13816.                 rra
  13817.                 jr      c, loc_C67F
  13818.  
  13819.                 rra
  13820.                 jr      c, loc_C67B
  13821.  
  13822.                 exx
  13823.                 ret
  13824.  
  13825. ; ---------------------------------------------------------------------------
  13826.  
  13827. loc_C63C:                               ; CODE XREF: sub_C5FF+7
  13828.                 ld      a, c
  13829.                 add     a, (hl)
  13830.                 ld      (hl), a
  13831.  
  13832.  
  13833. loc_C63F:                               ; CODE XREF: sub_C5FF+63
  13834.                 set     1, l
  13835.                 ld      a, (hl)
  13836.                 and     e
  13837.                 exx
  13838.                 ret     z
  13839.                 jp      m, loc_C6AC
  13840.  
  13841.  
  13842. loc_C648:                               ; CODE XREF: sub_C4CA+15 sub_C5FF+50
  13843.                 ld      a, l
  13844.                 add     a, c
  13845.                 ld      l, a
  13846.                 and     d
  13847.                 ret     nz
  13848.                 inc     e
  13849.                 or      (hl)
  13850.                 jr      z, loc_C648
  13851.  
  13852.                 exx
  13853.                 ld      l, a
  13854.                 xor     b
  13855.                 jp      p, loc_C65D
  13856.  
  13857.  
  13858. loc_C657:                               ; CODE XREF: sub_C4E2+1A
  13859.                 dec     l
  13860.  
  13861.  
  13862. loc_C658:                               ; CODE XREF: sub_C5FF+67
  13863.                 ld      a, c
  13864.                 add     a, (hl)
  13865.                 ld      (hl), a
  13866.                 exx
  13867.                 ret
  13868.  
  13869. ; ---------------------------------------------------------------------------
  13870.  
  13871. loc_C65D:                               ; CODE XREF: sub_C5FF+55
  13872.                 inc     l
  13873.                 ld      a, c
  13874.                 add     a, (hl)
  13875.                 ld      (hl), a
  13876.                 dec     l
  13877.                 jp      loc_C63F
  13878.  
  13879. ; ---------------------------------------------------------------------------
  13880.  
  13881. loc_C665:                               ; CODE XREF: sub_C5FF+2A
  13882.                 inc     l
  13883.                 jp      loc_C658
  13884.  
  13885. ; ---------------------------------------------------------------------------
  13886.  
  13887. loc_C669:                               ; CODE XREF: sub_C5FF+18 sub_C5FF+1A
  13888.                 exx
  13889.  
  13890.  
  13891. loc_C66A:                               ; CODE XREF: sub_C5FF+71
  13892.                 ld      a, l
  13893.                 add     a, c
  13894.                 ld      l, a
  13895.                 and     d
  13896.                 ret     nz
  13897.                 or      (hl)
  13898.                 jr      z, loc_C66A
  13899.  
  13900.                 exx
  13901.                 ld      d, l
  13902.                 ld      l, a
  13903.                 xor     b
  13904.                 jp      m, loc_C631
  13905.  
  13906.                 exx
  13907.                 ret
  13908.  
  13909. ; ---------------------------------------------------------------------------
  13910.  
  13911. loc_C67B:                               ; CODE XREF: sub_C5FF+39
  13912.                 bit     6, c
  13913.                 jr      nz, loc_C6A8
  13914.  
  13915.  
  13916. loc_C67F:                               ; CODE XREF: sub_C5FF+36
  13917.                 res     1, d
  13918.                 res     2, d
  13919.                 ld      hl, byte_D079
  13920.  
  13921.  
  13922. loc_C686:                               ; CODE XREF: sub_C5FF+8E
  13923.                 ld      a, (hl)
  13924.                 or      a
  13925.                 jr      z, loc_C697
  13926.  
  13927.                 inc     l
  13928.                 inc     l
  13929.                 cp      d
  13930.                 jp      nz, loc_C686
  13931.  
  13932.                 dec     l
  13933.                 ld      (hl), 0
  13934.                 inc     h
  13935.                 exx
  13936.                 inc     e
  13937.                 ret
  13938.  
  13939. ; ---------------------------------------------------------------------------
  13940.  
  13941. loc_C697:                               ; CODE XREF: sub_C5FF+89
  13942.                 ld      a, l
  13943.                 cp      #84 ; '"'
  13944.                 jr      nc, loc_C6A7
  13945.  
  13946.                 ld      (hl), d
  13947.                 inc     l
  13948.                 exx
  13949.                 ld      a, c
  13950.                 exx
  13951.                 ld      (hl), a
  13952.                 inc     l
  13953.                 ld      (hl), 0
  13954.                 set     5, b
  13955.  
  13956.  
  13957. loc_C6A7:                               ; CODE XREF: sub_C5FF+9B
  13958.                 inc     h
  13959.  
  13960.  
  13961. loc_C6A8:                               ; CODE XREF: sub_C5FF+7E
  13962.                 exx
  13963.                 inc     e
  13964.                 inc     e
  13965.                 ret
  13966.  
  13967. ; ---------------------------------------------------------------------------
  13968.  
  13969. loc_C6AC:                               ; CODE XREF: sub_C5FF+46
  13970.                 rla
  13971.                 xor     c
  13972.                 ret     p
  13973.                 ld      a, l
  13974.                 add     a, c
  13975.                 ld      l, a
  13976.                 and     d
  13977.                 ret     nz
  13978.                 or      (hl)
  13979.                 ret     z
  13980.                 exx
  13981.                 ld      l, a
  13982.                 inc     l
  13983.                 xor     b
  13984.                 jp      p, loc_C6BF
  13985.  
  13986.                 dec     l
  13987.                 dec     l
  13988.  
  13989.  
  13990. loc_C6BF:                               ; CODE XREF: sub_C5FF+BB
  13991.                 ld      a, c
  13992.                 add     a, (hl)
  13993.                 ld      (hl), a
  13994.                 exx
  13995.                 ret
  13996.  
  13997. ; End of function sub_C5FF
  13998.  
  13999.  
  14000. ; =============== S U B R O U T I N E =======================================
  14001.  
  14002.  
  14003. sub_C6C4:                               ; CODE XREF: sub_BC00+D5
  14004.  
  14005. ; FUNCTION CHUNK AT C719 SIZE 0000000E BYTES
  14006. ; FUNCTION CHUNK AT C734 SIZE 00000010 BYTES
  14007.  
  14008.                 ld      iy, byte_D079
  14009.                 push    de
  14010.                 ld      h, BRD_88_0/256
  14011.                 exx
  14012.                 ld      l, (iy+0)
  14013.  
  14014.  
  14015. loc_C6CF:                               ; CODE XREF: RAM:C777
  14016.                 ld      bc, loc_C76B
  14017.                 push    bc
  14018.                 ld      a, l
  14019.                 and     #80 ; '?'
  14020.                 ld      b, a
  14021.                 ld      e, (hl)
  14022.                 inc     l
  14023.                 ld      a, (hl)
  14024.                 and     #8E ; '?'
  14025.                 jr      z, loc_C6EF
  14026.  
  14027.                 jp      m, loc_C734
  14028.  
  14029.                 cp      4
  14030.                 jr      c, loc_C719
  14031.  
  14032.                 jr      z, loc_C725
  14033.  
  14034.                 ld      c, #C0  ; 'А'
  14035.                 call    sub_C727
  14036.  
  14037.                 jp      loc_C73D
  14038.  
  14039. ; ---------------------------------------------------------------------------
  14040.  
  14041. loc_C6EF:                               ; CODE XREF: sub_C6C4+18 sub_C6C4+72
  14042.                 bit     7, b
  14043.                 ld      a, e
  14044.                 exx
  14045.                 ld      b, a
  14046.                 ld      c, #F
  14047.                 jr      z, loc_C6FA
  14048.  
  14049.                 ld      c, #EF  ; 'п'
  14050.  
  14051.  
  14052. loc_C6FA:                               ; CODE XREF: sub_C6C4+32
  14053.                 call    sub_C6FF
  14054.  
  14055.                 inc     c
  14056.                 inc     c
  14057.  
  14058. ; End of function sub_C6C4
  14059.  
  14060.  
  14061. ; =============== S U B R O U T I N E =======================================
  14062.  
  14063.  
  14064. sub_C6FF:                               ; CODE XREF: sub_C6C4:loc_C6FA
  14065.                 ld      a, (iy+1)
  14066.                 cp      c
  14067.                 ret     z
  14068.                 neg
  14069.                 cp      c
  14070.                 ret     z
  14071.                 ld      a, c
  14072.                 add     a, b
  14073.                 ld      l, a
  14074.                 xor     a
  14075.                 or      (hl)
  14076.                 ret     z
  14077.                 exx
  14078.                 ld      l, a
  14079.                 xor     b
  14080.                 jp      p, loc_C716
  14081.  
  14082.                 dec     l
  14083.                 dec     l
  14084.  
  14085.  
  14086. loc_C716:                               ; CODE XREF: sub_C6FF+12
  14087.                 dec     (hl)
  14088.                 exx
  14089.                 ret
  14090.  
  14091. ; End of function sub_C6FF
  14092.  
  14093. ; ---------------------------------------------------------------------------
  14094. ; START OF FUNCTION CHUNK FOR sub_C6C4
  14095.  
  14096. loc_C719:                               ; CODE XREF: sub_C6C4+1F
  14097.                 ld      c, #FC
  14098.                 set     4, b
  14099.                 ld      a, e
  14100.                 exx
  14101.                 ld      d, #88
  14102.                 ld      b, a
  14103.                 jp      loc_C51F ;проверяем поля по ходу коня
  14104.  
  14105. ; ---------------------------------------------------------------------------
  14106.  
  14107. loc_C725:                               ; CODE XREF: sub_C6C4+21
  14108.                 ld      c, #F0
  14109.  
  14110. ; END OF FUNCTION CHUNK FOR sub_C6C4
  14111.  
  14112. ; =============== S U B R O U T I N E =======================================
  14113.  
  14114.  
  14115. sub_C727:                               ; CODE XREF: sub_C6C4+25
  14116.                 ld      a, e
  14117.                 exx
  14118.                 ld      c, 1
  14119.                 ld      b, a
  14120.                 call    sub_C744
  14121.  
  14122.                 ld      c, #10
  14123.                 jp      sub_C744
  14124.  
  14125. ; End of function sub_C727
  14126.  
  14127. ; ---------------------------------------------------------------------------
  14128. ; START OF FUNCTION CHUNK FOR sub_C6C4
  14129.  
  14130. loc_C734:                               ; CODE XREF: sub_C6C4+1A
  14131.                 and     2
  14132.                 jr      z, loc_C6EF
  14133.  
  14134.                 ld      c, #FC  ; 'ь'
  14135.                 ld      a, e
  14136.                 exx
  14137.                 ld      b, a
  14138.  
  14139.  
  14140. loc_C73D:                               ; CODE XREF: sub_C6C4+28
  14141.                 ld      c, #F
  14142.                 call    sub_C744
  14143.  
  14144.                 ld      c, #11
  14145.  
  14146. ; END OF FUNCTION CHUNK FOR sub_C6C4
  14147.  
  14148. ; =============== S U B R O U T I N E =======================================
  14149.  
  14150.  
  14151. sub_C744:                               ; CODE XREF: sub_C727+5 sub_C727+A ...
  14152.                 ld      a, (iy+1)
  14153.                 cp      c
  14154.                 ret     z
  14155.                 neg
  14156.                 cp      c
  14157.                 ret     z
  14158.                 ld      d, #88 ; '?'
  14159.                 call    sub_C755
  14160.  
  14161.                 xor     a
  14162.                 sub     c
  14163.                 ld      c, a
  14164.  
  14165. ; End of function sub_C744
  14166.  
  14167.  
  14168. ; =============== S U B R O U T I N E =======================================
  14169.  
  14170.  
  14171. sub_C755:                               ; CODE XREF: sub_C744+B
  14172.                 ld      l, b
  14173.  
  14174.  
  14175. loc_C756:                               ; CODE XREF: sub_C755+7
  14176.                 ld      a, l
  14177.                 add     a, c
  14178.                 ld      l, a
  14179.                 and     d
  14180.                 ret     nz
  14181.                 or      (hl)
  14182.                 jr      z, loc_C756
  14183.  
  14184.                 exx
  14185.                 ld      l, a
  14186.                 xor     b
  14187.                 jp      p, loc_C766
  14188.  
  14189.                 dec     l
  14190.                 dec     l
  14191.  
  14192.  
  14193. loc_C766:                               ; CODE XREF: sub_C755+C
  14194.                 ld      a, c
  14195.                 add     a, (hl)
  14196.                 ld      (hl), a
  14197.                 exx
  14198.                 ret
  14199.  
  14200. ; End of function sub_C755
  14201.  
  14202. ; ---------------------------------------------------------------------------
  14203.  
  14204. loc_C76B:                               ; DATA XREF: sub_C6C4:loc_C6CF
  14205.                 ld      a, (iy+2)
  14206.                 or      a
  14207.                 jr      z, loc_C77A
  14208.  
  14209.                 inc     iy
  14210.                 inc     iy
  14211.                 exx
  14212.                 ld      l, a
  14213.                 jp      loc_C6CF
  14214.  
  14215. ; ---------------------------------------------------------------------------
  14216.  
  14217. loc_C77A:                               ; CODE XREF: RAM:C76F
  14218.                 pop     de
  14219.                 ld      (byte_D079), a
  14220.                 ret
  14221.  
  14222. ; ---------------------------------------------------------------------------
  14223.        if !FIX
  14224.                 db    0 ;unneeded???
  14225.        endif
  14226.  
  14227.  
  14228.                 ;might be at any address
  14229. Openings:      
  14230.                 db #26,#92,#69,#C4,#CA,#B0,#4C,#2E,#0D
  14231.                 db #0A,#16,#49,#E8,#91,#32,#30,#B6,#4B
  14232.                 db #05,#94,#90,#02,#84,#01,#3D,#17,#26
  14233.                 db #05,#88,#82,#81,#00,#40,#A0,#34,#21
  14234.                 db #08,#08,#C0,#C1,#C4,#00,#50,#9A,#18
  14235.                 db #15,#A2,#89,#E9,#92,#5A,#64,#CC,#99
  14236.                 db #08,#86,#02,#41,#50,#02,#2C,#0C,#4A
  14237.                 db #40,#13,#13,#00,#50,#68,#15,#00,#44
  14238.                 db #AB,#03,#C2,#E4,#90,#A1,#4C,#9A,#1C
  14239.                 db #04,#15,#D0,#00,#A4,#01,#44,#39,#4E
  14240.                 db #45,#14,#91,#40,#04,#50,#3C,#3A,#5A
  14241.                 db #50,#86,#51,#C5,#52,#E9,#28,#3E,#8B
  14242.                 db #2D,#03,#D3,#70,#90,#E2,#04,#BE,#93
  14243.                 db #A7,#A2,#A4,#E1,#B4,#A0,#58,#BA,#59
  14244.                 db #28,#26,#83,#09,#48,#E8,#71,#13,#59
  14245.                 db #45,#56,#91,#55,#B4,#55,#71,#37,#1F
  14246.                 db #49,#94,#4B,#41,#A5,#14,#50,#2E,#5F
  14247.                 db #49,#92,#D2,#E4,#C4,#E0,#3D,#2C,#55
  14248.                 db #31,#11,#01,#A8,#F0,#58,#51,#2A,#14
  14249.                 db #02,#02,#C1,#E5,#44,#21,#88,#22,#28
  14250.                 db #08,#1A,#D2,#61,#34,#79,#A0,#00,#06
  14251.                 db #4C,#1A,#53,#05,#C4,#00,#48,#00,#68
  14252.                 db #4B,#91,#53,#00,#04,#C0,#48,#B4,#56
  14253.                 db #0D,#82,#C1,#44,#64,#94,#15,#27,#19
  14254.                 db #11,#24,#2B,#81,#30,#A2,#2A,#B2,#1B
  14255.                 db #04,#A2,#EB,#01,#40,#92,#26,#AC,#94
  14256.                 db #8B,#A2,#C0,#C4,#92,#68,#20,#3A,#0A
  14257.                 db #0B,#A1,#CB,#84,#A0,#6A,#42,#1A,#0C
  14258.                 db #08,#A0,#20,#69,#52,#89,#00,#22,#15
  14259.                 db #07,#01,#D2,#A4,#C0,#80,#00,#1A,#11
  14260.                 db #43,#83,#4A,#20,#00,#70,#28,#0C,#94
  14261.                 db #27,#00,#02,#41,#24,#69,#48,#00,#07
  14262.                 db #05,#24,#40,#20,#D0,#58,#59,#29,#55
  14263.                 db #0C,#12,#D0,#C4,#44,#E1,#04,#20,#07
  14264.                 db #40,#13,#41,#E0,#E4,#A0,#48,#0A,#19
  14265.                 db #0B,#25,#A8,#09,#8A,#08,#54,#28,#00
  14266.                 db #09,#06,#52,#54,#70,#90,#24,#2E,#06
  14267.                 db #47,#C2,#C1,#84,#84,#88,#31,#30,#4E
  14268.                 db #0B,#04,#C2,#E5,#00,#A5,#24,#3A,#14
  14269.                 db #02,#05,#44,#C1,#20,#D8,#38,#32,#05
  14270.                 db #52,#85,#89,#E9,#33,#32,#4E,#50,#8C
  14271.                 db #27,#06,#83,#40,#E2,#D2,#34,#1C,#89
  14272.                 db #09,#15,#00,#28,#F2,#7A,#3A,#44,#10
  14273.                 db #0A,#22,#A0,#E1,#30,#2A,#60,#94,#04
  14274.                 db #2E,#05,#81,#60,#40,#B2,#5C,#36,#12
  14275.                 db #09,#86,#81,#01,#50,#F2,#5C,#A6,#45
  14276.                 db #0C,#01,#82,#E1,#14,#F8,#34,#30,#06
  14277.                 db #0B,#88,#83,#29,#82,#C8,#38,#1E,#95
  14278.                 db #8B,#02,#C3,#A0,#B0,#D0,#10,#42,#91
  14279.                 db #26,#D3,#89,#64,#62,#9D,#18,#A6,#40
  14280.                 db #22,#80,#C2,#E0,#62,#C0,#4C,#00,#59
  14281.                 db #26,#22,#0A,#A9,#82,#42,#5E,#20,#98
  14282.                 db #0B,#02,#8B,#C9,#01,#02,#26,#8C,#13
  14283.                 db #4E,#40,#0A,#C9,#82,#90,#14,#AE,#8D
  14284.                 db #86,#A3,#C2,#61,#70,#A9,#5D,#22,#1F
  14285.                 db #0A,#A7,#0A,#41,#42,#E8,#2C,#3E,#1A
  14286.                 db #06,#90,#52,#61,#A4,#99,#81,#0D,#08
  14287.                 db #40,#86,#08,#C9,#48,#8A,#1C,#90,#13
  14288.                 db #09,#A4,#4A,#C5,#A0,#00,#14,#3A,#12
  14289.                 db #2A,#A4,#40,#C9,#88,#90,#11,#45,#49
  14290.                 db #02,#92,#52,#80,#00,#B8,#15,#31,#03
  14291.                 db #0B,#82,#D1,#05,#82,#99,#24,#2E,#97
  14292.                 db #8E,#86,#11,#85,#60,#D0,#39,#24,#48
  14293.                 db #09,#85,#12,#E5,#40,#60,#69,#19,#00
  14294.                 db #06,#05,#92,#44,#92,#00,#64,#22,#8E
  14295.                 db #09,#87,#41,#08,#2A,#D8,#58,#36,#21
  14296.                 db #45,#45,#C0,#C0,#D0,#BA,#64,#18,#53
  14297.                 db #20,#11,#C2,#49,#E2,#F8,#49,#1B,#11
  14298.                 db #0A,#0A,#42,#60,#34,#39,#4D,#28,#54
  14299.                 db #0E,#81,#D1,#20,#60,#F8,#59,#35,#10
  14300.                 db #0A,#05,#10,#E5,#60,#D8,#20,#AC,#1B
  14301.                 db #0F,#25,#A4,#69,#B2,#68,#48,#2A,#00
  14302.                 db #08,#82,#01,#E4,#14,#B0,#19,#2C,#48
  14303.                 db #2C,#05,#80,#00,#00,#CA,#22,#26,#13
  14304.                 db #05,#21,#2A,#20,#00,#80,#60,#0E,#01
  14305.                 db #4C,#46,#43,#41,#91,#00,#48,#00,#97
  14306.                 db #22,#92,#0B,#44,#20,#E8,#34,#00,#95
  14307.                 db #2B,#07,#43,#C2,#74,#3C,#70,#3A,#1F
  14308.                 db #13,#A3,#8B,#61,#60,#A0,#78,#18,#A5
  14309.                 db #A0,#05,#83,#20,#90,#D2,#26,#32,#07
  14310.                 db #0D,#02,#43,#A9,#40,#89,#50,#B0,#1E
  14311.                 db #09,#03,#43,#A2,#01,#09,#31,#4C,#44
  14312.                 db #45,#C2,#54,#D0,#60,#88,#08,#14,#8A
  14313.                 db #2E,#06,#48,#05,#00,#32,#78,#0C,#22
  14314.                 db #4E,#19,#83,#01,#34,#BD,#7C,#30,#24
  14315.                 db #41,#47,#82,#24,#74,#08,#65,#01,#0F
  14316.                 db #43,#15,#83,#25,#72,#10,#69,#2A,#52
  14317.                 db #0A,#01,#C3,#E9,#52,#40,#28,#06,#22
  14318.                 db #50,#01,#02,#E0,#A4,#79,#38,#10,#1F
  14319.                 db #09,#88,#13,#11,#E2,#C8,#60,#30,#14
  14320.                 db #44,#96,#04,#40,#81,#02,#74,#34,#0F
  14321.                 db #4C,#12,#02,#25,#84,#38,#1D,#16,#13
  14322.                 db #2C,#00,#C3,#21,#94,#68,#44,#2E,#19
  14323.                 db #11,#03,#83,#E9,#D2,#69,#58,#AE,#20
  14324.                 db #06,#01,#43,#82,#90,#D1,#79,#20,#63
  14325.                 db #48,#46,#D1,#F0,#C0,#60,#70,#34,#0F
  14326.                 db #40,#13,#8A,#A1,#00,#81,#58,#3C,#0C
  14327.                 db #47,#00,#40,#41,#64,#C4,#30,#02,#01
  14328.                 db #05,#05,#05,#49,#A8,#28,#30,#1E,#13
  14329.                 db #0D,#25,#8A,#A1,#62,#68,#35,#24,#51
  14330.                 db #08,#82,#C1,#C0,#40,#02,#02,#38,#0D
  14331.                 db #0C,#87,#CB,#40,#74,#00,#6C,#0E,#A1
  14332.                 db #AC,#03,#80,#61,#C0,#F8,#58,#3A,#8E
  14333.                 db #8B,#05,#C3,#E0,#12,#10,#34,#18,#11
  14334.                 db #50,#88,#82,#C1,#50,#DA,#78,#94,#4D
  14335.                 db #0D,#05,#83,#61,#42,#A0,#38,#32,#80
  14336.                 db #A1,#85,#42,#A9,#A8,#C8,#58,#28,#9C
  14337.                 db #05,#92,#02,#21,#C0,#38,#30,#3C,#11
  14338.                 db #45,#46,#81,#01,#A0,#F0,#68,#10,#13
  14339.                 db #4C,#11,#C1,#A1,#A0,#B8,#74,#AC,#24
  14340.                 db #07,#88,#10,#90,#C0,#38,#4C,#36,#83
  14341.                 db #2B,#05,#C9,#00,#B0,#21,#48,#A6,#98
  14342.                 db #2D,#01,#C2,#28,#09,#28,#48,#26,#9D
  14343.                 db #C4,#C7,#50,#31,#80,#38,#3C,#22,#54
  14344.                 db #4F,#06,#03,#C1,#74,#41,#30,#AC,#16
  14345.                 db #29,#16,#43,#21,#B2,#48,#50,#2C,#92
  14346.                 db #09,#07,#40,#89,#72,#90,#64,#24,#07
  14347.                 db #0B,#07,#51,#85,#02,#88,#58,#2E,#16
  14348.                 db #05,#21,#C2,#C1,#D0,#D8,#20,#2A,#A8
  14349.                 db #0D,#03,#82,#81,#80,#CA,#28,#A6,#4C
  14350.                 db #2F,#87,#03,#84,#E0,#C1,#41,#2E,#03
  14351.                 db #0B,#A4,#09,#E2,#02,#C0,#11,#24,#19
  14352.                 db #0D,#A5,#83,#41,#F4,#B9,#3C,#38,#1F
  14353.                 db #06,#02,#52,#A5,#B0,#58,#60,#2C,#04
  14354.                 db #48,#52,#43,#A0,#30,#50,#01,#53,#5E
  14355.                 db #0F,#00,#D0,#74,#40,#A8,#3C,#0E,#04
  14356.                 db #44,#C6,#03,#A1,#20,#88,#35,#24,#52
  14357.                 db #26,#11,#C4,#A1,#32,#92,#0E,#56,#92
  14358.                 db #25,#09,#04,#00,#E4,#60,#68,#34,#09
  14359.                 db #08,#A3,#A4,#01,#21,#08,#58,#3C,#8D
  14360.                 db #8D,#05,#42,#81,#80,#CA,#28,#BE,#19
  14361.                 db #2E,#04,#03,#20,#32,#72,#5A,#1E,#9B
  14362.                 db #2B,#86,#00,#A1,#30,#4A,#84,#88,#10
  14363.                 db #10,#05,#44,#88,#F0,#F0,#44,#32,#0F
  14364.                 db #07,#29,#A3,#C1,#B0,#70,#50,#B2,#8F
  14365.                 db #0D,#A3,#22,#A1,#60,#68,#48,#32,#1A
  14366.                 db #0B,#A7,#C9,#05,#60,#61,#4C,#28,#15
  14367.                 db #25,#05,#02,#26,#44,#D8,#41,#2E,#4D
  14368.                 db #2E,#02,#42,#49,#30,#80,#24,#36,#93
  14369.                 db #07,#96,#0A,#A1,#04,#80,#60,#26,#8C
  14370.                 db #0A,#03,#93,#25,#E0,#A1,#74,#1C,#13
  14371.                 db #47,#03,#91,#A5,#F0,#41,#38,#10,#88
  14372.                 db #0A,#86,#51,#B1,#24,#A1,#28,#18,#12
  14373.                 db #04,#A7,#2A,#80,#C0,#B8,#50,#26,#91
  14374.                 db #87,#23,#08,#45,#70,#19,#58,#1E,#57
  14375.                 db #03,#02,#C1,#A0,#04,#F4,#3C,#20,#0E
  14376.                 db #4A,#15,#01,#05,#50,#51,#84,#26,#1D
  14377.                 db #4A,#87,#82,#A8,#C0,#98,#0C,#1A,#0F
  14378.                 db #09,#24,#41,#40,#52,#9A,#2C,#20,#8B
  14379.                 db #85,#03,#C3,#48,#F2,#58,#5C,#98,#56
  14380.                 db #06,#87,#4A,#2A,#20,#80,#5C,#12,#8E
  14381.                 db #04,#01,#40,#E0,#70,#C0,#21,#14,#83
  14382.                 db #20,#85,#89,#A1,#30,#A2,#80,#1E,#1E
  14383.                 db #06,#03,#83,#49,#9A,#80,#58,#00,#13
  14384.                 db #08,#18,#82,#E9,#D2,#D0,#19,#18,#10
  14385.                 db #08,#20,#E1,#41,#60,#50,#4C,#34,#5A
  14386.                 db #04,#23,#09,#40,#81,#20,#01,#0C,#62
  14387.                 db #04,#06,#08,#09,#E0,#DA,#78,#98,#08
  14388.                 db #44,#04,#01,#01,#F0,#00,#11,#0E,#4B
  14389.                 db #25,#D4,#8A,#25,#40,#A0,#3C,#1C,#0D
  14390.                 db #07,#02,#93,#64,#C0,#68,#48,#30,#5D
  14391.                 db #0C,#88,#52,#41,#80,#58,#71,#42,#0F
  14392.                 db #06,#83,#4B,#21,#D4,#78,#60,#30,#0B
  14393.                 db #0E,#28,#49,#44,#C2,#70,#28,#20,#1D
  14394.                 db #48,#05,#02,#E0,#A0,#18,#44,#32,#91
  14395.                 db #27,#81,#C8,#60,#70,#D0,#4C,#2C,#8F
  14396.                 db #2C,#02,#02,#60,#D0,#6A,#58,#34,#9A
  14397.                 db #CA,#14,#E9,#E4,#D0,#C8,#6C,#18,#1C
  14398.                 db #00,#25,#C9,#E1,#A0,#48,#40,#2E,#00
  14399.                 db #4A,#C4,#82,#A1,#50,#D0,#08,#2C,#97
  14400.                 db #26,#05,#83,#01,#90,#A2,#4A,#AC,#17
  14401.                 db #0C,#08,#52,#31,#50,#B8,#38,#40,#21
  14402.                 db #49,#05,#29,#85,#20,#51,#1C,#3C,#00
  14403.                 db #0E,#A2,#81,#81,#E0,#A8,#89,#36,#19
  14404.                 db #0B,#86,#C2,#41,#40,#F0,#69,#1A,#14
  14405.                 db #0D,#83,#02,#C8,#92,#60,#2C,#2E,#17
  14406.                 db #04,#06,#43,#C0,#E4,#B0,#24,#16,#07
  14407.                 db #24,#95,#02,#60,#C0,#90,#65,#38,#44
  14408.                 db #07,#8A,#02,#00,#E4,#98,#6C,#1C,#1A
  14409.                 db #09,#08,#D2,#84,#60,#62,#5C,#AA,#0C
  14410.                 db #49,#96,#91,#81,#60,#62,#60,#84,#52
  14411.                 db #28,#53,#08,#C5,#82,#B1,#39,#0C,#15
  14412.                 db #23,#A3,#C0,#C9,#12,#00,#38,#30,#1D
  14413.                 db #0D,#00,#0B,#48,#D0,#78,#71,#18,#59
  14414.                 db #2A,#86,#42,#28,#E0,#70,#34,#3A,#8B
  14415.                 db #27,#05,#43,#A1,#14,#80,#6D,#30,#53
  14416.                 db #03,#84,#08,#01,#54,#91,#48,#2A,#96
  14417.                 db #07,#85,#51,#24,#A0,#F0,#38,#36,#98
  14418.                 db #20,#86,#43,#A8,#02,#92,#64,#84,#19
  14419.                 db #0B,#A3,#83,#41,#B0,#9A,#3E,#28,#18
  14420.                 db #0A,#14,#41,#48,#70,#C8,#50,#30,#1C
  14421.                 db #2E,#A3,#8C,#88,#E0,#9A,#38,#1F,#51
  14422.                 db #24,#80,#C3,#E8,#A0,#E0,#0C,#18,#0A
  14423.                 db #00,#20,#00,#C0,#70,#18,#64,#00,#0C
  14424.                 db #44,#94,#89,#84,#12,#D0,#4C,#B4,#00
  14425.                 db #07,#87,#28,#04,#E0,#F0,#40,#A6,#9A
  14426.                 db #2E,#24,#02,#89,#30,#60,#79,#10,#61
  14427.                 db #4B,#48,#13,#65,#10,#00,#2C,#B2,#22
  14428.                 db #4E,#87,#41,#89,#D3,#10,#00,#16,#5C
  14429.                 db #2D,#26,#44,#49,#92,#68,#69,#2E,#18
  14430.                 db #4A,#08,#C0,#01,#80,#C9,#35,#36,#1E
  14431.                 db #4D,#C4,#82,#61,#F0,#00,#35,#16,#11
  14432.                 db #2B,#83,#C3,#01,#00,#D8,#2C,#2A,#00
  14433.                 db #0E,#96,#50,#05,#34,#00,#09,#00,#52
  14434.                 db #04,#90,#83,#80,#54,#01,#75,#00,#0A
  14435.                 db #40,#12,#41,#22,#04,#00,#28,#1E,#0E
  14436.                 db #07,#04,#91,#34,#F4,#0C,#69,#02,#4D
  14437.                 db #0A,#94,#01,#A1,#40,#C8,#50,#B0,#1C
  14438.                 db #2E,#A3,#8C,#88,#E0,#9A,#38,#36,#1C
  14439.                 db #06,#A3,#81,#C1,#20,#78,#38,#1E,#18
  14440.                 db #43,#C4,#42,#A4,#D4,#98,#30,#26,#0C
  14441.                 db #48,#52,#41,#E0,#70,#49,#50,#26,#0C
  14442.                 db #09,#06,#53,#85,#B0,#70,#68,#24,#23
  14443.                 db #4A,#01,#01,#E2,#80,#80,#39,#27,#4C
  14444.                 db #28,#21,#89,#E8,#60,#6A,#66,#0C,#05
  14445.                 db #04,#06,#02,#61,#80,#88,#28,#24,#81
  14446.                 db #A4,#85,#09,#80,#A0,#C2,#54,#1C,#17
  14447.                 db #0A,#27,#A1,#E5,#20,#18,#68,#22,#0B
  14448.                 db #02,#05,#C0,#00,#04,#B0,#24,#06,#87
  14449.                 db #24,#93,#40,#64,#D2,#51,#24,#B0,#07
  14450.                 db #05,#07,#42,#00,#B0,#2A,#78,#2C,#07
  14451.                 db #00,#80,#02,#88,#48,#B8,#34,#22,#16
  14452.                 db #0C,#26,#82,#C5,#60,#88,#50,#08,#9B
  14453.                 db #23,#01,#00,#01,#20,#18,#01,#36,#13
  14454.                 db #46,#05,#49,#49,#C0,#B0,#45,#08,#49
  14455.                 db #23,#01,#40,#80,#50,#A0,#4C,#2C,#95
  14456.                 db #01,#81,#02,#A1,#50,#20,#10,#24,#12
  14457.                 db #02,#21,#00,#40,#30,#80,#4C,#A8,#19
  14458.                 db #07,#06,#42,#60,#B4,#70,#58,#38,#1B
  14459.                 db #0D,#05,#C2,#08,#32,#19,#2C,#1A,#54
  14460.                 db #08,#82,#C2,#A0,#E0,#60,#10,#16,#A3
  14461.                 db #28,#83,#41,#A0,#24,#4C,#4D,#0A,#42
  14462.                 db #09,#04,#80,#20,#10,#00,#00,#22,#12
  14463.                 db #04,#27,#21,#25,#24,#68,#29,#1B,#46
  14464.                 db #26,#80,#11,#60,#B0,#02,#2E,#1E,#0B
  14465.                 db #22,#02,#C2,#28,#70,#68,#2C,#1E,#87
  14466.                 db #22,#16,#0C,#26,#82,#C5,#60,#88,#50
  14467.                 db #08,#9B,#23,#01,#00,#01,#20,#18,#01
  14468.                 db #36,#13,#46,#05,#49,#49,#C0,#B0,#45
  14469.                 db #08,#49,#23,#01,#40,#80,#50,#A0,#4C
  14470.                 db #2C,#95,#01,#81,#02,#A1,#50,#20,#10
  14471.                 db #24,#12,#02,#21,#00,#40,#30
  14472.  
  14473.                 ;^^^ that table ends exactly at #CFFF !!!!
  14474. end
  14475.  
  14476.  
  14477.                 ; below is only data memory (tables and variables), zeroed at start
  14478.  
  14479.                 ds 0xD000-$
  14480.  
  14481. BRD_88_0:       ds 8            ; DATA XREF: START_POINT+6B
  14482.                                         ; sub_8C20-71D ...
  14483.                 db    0
  14484. byte_D009:      db 0                    ; DATA XREF: sub_B75A:loc_B781
  14485.                                         ; RAM:B7AA ...
  14486. byte_D00A:      db 0                    ; DATA XREF: sub_8C20:loc_8142
  14487.                                         ; sub_8C20:loc_8253 ...
  14488. byte_D00B:      db 0                    ; DATA XREF: sub_AFC5+A6 sub_AFC5+E6 ...
  14489.                 db    0
  14490. word_D00D:      dw 0                    ; DATA XREF: sub_8C20-574 sub_AD40+2 ...
  14491.                 db    0
  14492. BRD_88_1:       ds 8
  14493.                 db    0
  14494. byte_D019:      db 0                    ; DATA XREF: sub_AFC5+B2
  14495.                                         ; sub_B47F+188 ...
  14496. byte_D01A:      db 0                    ; DATA XREF: sub_B47F+293
  14497.                                         ; sub_B75A+1B   ...
  14498. byte_D01B:      db 0                    ; DATA XREF: RAM:B7B7   sub_B943+20
  14499. byte_D01C:      db 0                    ; DATA XREF: sub_AFC5+A9
  14500.                                         ; sub_B47F+1E2 ...
  14501. byte_D01D:      db 0                    ; DATA XREF: sub_AB53+1 sub_B47F-2D     ...
  14502. byte_D01E:      db 0                    ; DATA XREF: sub_B19C+33
  14503.                                         ; sub_B47F+118 ...
  14504.                 db    0
  14505. BRD_88_2:       ds 8
  14506.                 db    0
  14507. byte_D029:      db 0                    ; DATA XREF: sub_8C20-9C9
  14508.                                         ; sub_8C20-6C8
  14509. byte_D02A:      db 0                    ; DATA XREF: sub_AFC5+126
  14510.                                         ; sub_B1EB+11   ...
  14511. word_D02B:      dw 0                    ; DATA XREF: sub_8C20-AB0
  14512.                                         ; sub_8DE9+6E   ...
  14513. byte_D02D:      db 0                    ; DATA XREF: sub_8C20-AD6
  14514.                                         ; sub_8C20:loc_82D7 ...
  14515. byte_D02E:      db 0                    ; DATA XREF: sub_AFC5+3B sub_B19C+1D
  14516.                 db    0
  14517. BRD_88_3:       ds 8
  14518.                 db    0
  14519. word_D039:      dw 0                    ; DATA XREF: sub_BC00+E2
  14520.                                         ; sub_BC00+23A ...
  14521. byte_D03B:      db 0                    ; DATA XREF: sub_AD40+6 sub_AD40+57     ...
  14522. byte_D03C:      db 0                    ; DATA XREF: sub_AFC5+10F
  14523.                                         ; sub_AFC5+148 ...
  14524. word_D03D:      dw 0                    ; DATA XREF: sub_AD40+1A sub_AD40+AD ...
  14525.                 db    0
  14526. BRD_88_4:       ds 8
  14527.                 db    0
  14528. byte_D049:      db 0                    ; DATA XREF: sub_8C20-B62 ;move # (1..N)
  14529.                                         ; sub_8C20-B37 ...
  14530. word_D04A:      dw 0                    ; DATA XREF: sub_AB53+8 sub_AB53+CD     ...
  14531. byte_D04C:      db 0                    ; DATA XREF: sub_A932+10 sub_AFC5+2D ...
  14532. byte_D04D:      db 0                    ; DATA XREF: sub_8C20-B24
  14533.                                         ; sub_8C20-654 ...
  14534. byte_D04E:      db 0                    ; DATA XREF: sub_AB53+18 sub_AB53+29 ...
  14535.                 db    0
  14536. BRD_88_5:       ds 8
  14537.                 db    0
  14538. word_D059:      dw 0                    ; DATA XREF: sub_8C20-A8E
  14539.                                         ; sub_8C20-A35 ...
  14540. byte_D05B:      db 0                    ; DATA XREF: sub_8C20-6CB
  14541.                                         ; sub_8C20-1C8 ...
  14542. word_D05C:      dw 0                    ; DATA XREF: sub_8C20-8B2
  14543.                                         ; sub_8C20-6D4 ...
  14544. byte_D05E:      db 0                    ; DATA XREF: sub_8C20-6D1 sub_8B66+9
  14545.                 db    0
  14546. BRD_88_6:       ds 8
  14547.                 db    0
  14548. word_D069:      dw 0                    ; DATA XREF: sub_AB53+B sub_AB53+35     ...
  14549. JP_ADDR:        dw 0                    ; DATA XREF: RAM:AB4F   sub_B75A+2D ...
  14550. word_D06D:      dw 0                    ; DATA XREF: sub_B47F+134
  14551.                                         ; sub_B47F+16A ...
  14552.                 db    0
  14553. BRD_88_7:       ds 8
  14554.                 db    0
  14555. byte_D079:      db 0                    ; DATA XREF: sub_C254+21E
  14556.                                         ; sub_C5FF+84   ...
  14557. byte_D07A:      db 0                    ; DATA XREF: FindMoveAndSwap+13 sub_B47F+2      ...
  14558.                 db    0
  14559.                 db    0
  14560.                 db    0
  14561.                 db    0
  14562.                 db    0
  14563. unk_D080:       db    0                 ; DATA XREF: InitBoard_ClearMoves+18
  14564.                 db    0
  14565.                 db    0
  14566.                 db    0
  14567.                 db    0
  14568.                 db    0
  14569. word_D086:      dw 0                    ; DATA XREF: sub_AB53+45 sub_AB53+6A
  14570. word_D088:      dw 0                    ; DATA XREF: sub_8C20-1FB
  14571.                                         ; sub_8C20:loc_8A2F ...
  14572. byte_D08A:      db 0                    ; DATA XREF: sub_AFC5+A0
  14573.                                         ; sub_AFC5+1A2 ...
  14574. byte_D08B:      db 0                    ; DATA XREF: sub_AFC5+70 sub_AFC5+AD ...
  14575. byte_D08C:      db 0                    ; DATA XREF: sub_AFC5+A3
  14576.                                         ; sub_AFC5+1A5 ...
  14577. byte_D08D:      db 0                    ; DATA XREF: sub_8C20-657
  14578.                                         ; sub_8C20-634 ...
  14579. byte_D08E:      db 0                    ; DATA XREF: sub_8C20-661
  14580.                 db    0
  14581.                 db    0
  14582.                 db    0
  14583.                 db    0
  14584. RAND_SEED:      db 0                    ; DATA XREF: GEN_RANDBYTE+3
  14585.                                         ; GEN_RANDBYTE+8
  14586.                 db    0
  14587.                 db    0
  14588.                 db    0
  14589. byte_D097:      db 0                    ; DATA XREF: InitBoard_ClearMoves+49
  14590.                                         ; sub_A94F:loc_A961 ...
  14591. byte_D098:      db 0                    ; DATA XREF: sub_A6F7+34 sub_AFC5+5F ...
  14592. word_D099:      dw 0                    ; DATA XREF: InitBoard_ClearMoves+58
  14593.                 db    0
  14594.                 db    0
  14595.                 db    0
  14596. byte_D09E:      db 0                    ; DATA XREF: sub_8C20-A4E ;end of opening?
  14597.                                         ; sub_8C20-90D ...
  14598. word_D09F:      dw 0                    ; DATA XREF: sub_8C20-B58
  14599.                                         ; sub_8C20:loc_811C ...
  14600.                 db    0
  14601.                 db    0
  14602.                 db    0
  14603.                 db    0
  14604.                 db    0
  14605.                 db    0
  14606.                 db    0
  14607.                 db    0
  14608.                 db    0
  14609.                 db    0
  14610.                 db    0
  14611.                 db    0
  14612.                 db    0
  14613.                 db    0
  14614.                 db    0
  14615.                 db    0
  14616. curlevel:       db 0                    ; DATA XREF: START_POINT+8F
  14617.                                         ; sub_8C20:loc_8515 ...
  14618. byte_D0B2:      db 0                    ; DATA XREF: sub_8C20-ACD
  14619.                                         ; sub_8C20-5A5 ...
  14620. byte_D0B3:      db 0                    ; DATA XREF: sub_8C20-B66
  14621.                                         ; sub_8C20-8DF ...
  14622.                                         ; bit 3 -- swap clocks ;d3=swap board
  14623. byte_D0B4:      db 0                    ; DATA XREF: sub_92D7-123C ;d5=invisible board?
  14624.                                         ; sub_8C20-AEE ...
  14625.                 db    0
  14626. byte_D0B6:      db 0                    ; DATA XREF: sub_8C20:loc_81A1
  14627.                                         ; sub_8C20-A48 ...
  14628. byte_D0B7:      db 0                    ; DATA XREF: sub_8C20-68A
  14629.                                         ; PrintMoveNumber:loc_A0AF ...
  14630. keycodeformenu: db 0                    ; DATA XREF: sub_8C20-885
  14631.                                         ; sub_8C20-873 ...
  14632.                 db    0
  14633.                 db    0
  14634. needdrawcursorfrom: db 0                        ; DATA XREF: sub_8C20-895
  14635. needdrawcursor1: db 0
  14636.                                         ; sub_8C20-7C0 ...
  14637. keycode:        db 0                    ; DATA XREF: KEY_SCAN+9
  14638.                                         ; KEY_SCAN:loc_90D1 ...
  14639. SEL_SCRorBUF:   db 0                    ; DATA XREF: START_POINT+81
  14640.                                         ; sub_8D9E:loc_8DB0 ...
  14641. byte_D0BF:      db 0                    ; DATA XREF: sub_8C20-AD1
  14642.                                         ; sub_8C20-942 ...
  14643. byte_D0C0:      db 0                    ; DATA XREF: sub_96A6+14 sub_9FB2+D     ...
  14644.                 db    0
  14645. byte_D0C2:      db 0                    ; DATA XREF: sub_8C20-A0F
  14646.                                         ; sub_8C20-78E ...
  14647. byte_D0C3:      db 0                    ; DATA XREF: sub_8C20-A03
  14648.                                         ; sub_8C20-782 ...
  14649. byte_D0C4:      db 0                    ; DATA XREF: sub_8C20-A15
  14650.                                         ; sub_8C20-794 ...
  14651. byte_D0C5:      db 0                    ; DATA XREF: sub_8C20-A09
  14652.                                         ; sub_8C20-788 ...
  14653. word_D0C6:      dw 0                    ; DATA XREF: sub_8D9E+27 sub_8D9E+36 ...
  14654. word_D0C8:      dw 0                    ; DATA XREF: sub_8D9E+33 sub_8DE9+10
  14655. BRD_COLOR:      db 0                    ; DATA XREF: SET_BRD_COLOR:loc_9655
  14656.                                         ; BEEP_routine+15
  14657. byte_D0CB:      db 0                    ; DATA XREF: sub_8E81+1E
  14658.                                         ; sub_8EA7:loc_8EE5
  14659. byte_D0CC:      db 0                    ; DATA XREF: sub_8EA7:loc_8EA8
  14660.                                         ; sub_8EA7+26
  14661. byte_D0CD:      db 0                    ; DATA XREF: sub_8C20-892
  14662. scr_XY:         dw 0                    ; DATA XREF: sub_842C+8
  14663.                                         ; sub_8C20:loc_85B4 ...
  14664. scr_pix_addr:   dw 0                    ; DATA XREF: sub_8EFB+B sub_8EFB+25     ...
  14665. scr_attr_addr:  dw 0                    ; DATA XREF: sub_8EFB+14 sub_8EFB+2E ...
  14666. NEED_SCR2BUF:   db 0                    ; DATA XREF: PrintCurLevel+A
  14667.                                         ; PRINT_STR_FF:PRINT_STR_A ...
  14668. gamestatemsgaddr:       dw 0                    ; DATA XREF: FillAttrsAndBorder+4 PrintGameState ...
  14669. TMP_BOARD_PTR:  dw 0                    ; DATA XREF: sub_93A4:loc_93A7
  14670.                                         ; sub_93A4:loc_93FC ...
  14671. curkey_D0D9:    db 0                    ; DATA XREF: sub_8C20-697
  14672.                                         ; HotKeys:HotKeys_keepkey_pop_ret
  14673. word_D0DA:      dw 0                    ; DATA XREF: sub_8C20-8CF
  14674.                                         ; sub_9128+EE
  14675. byte_D0DC:      db 0                    ; DATA XREF: sub_8C20:loc_835C
  14676.                                         ; sub_8C20-76D ...
  14677. DECREMENT_50HZ: db 0                    ; DATA XREF: INT_PROC+4 sub_8D9E+46     ...
  14678.                 db    0
  14679. byte_D0DF:      db 0                    ; DATA XREF: sub_8C20-AA9
  14680.                                         ; sub_8C20:loc_81AA ...
  14681. CFG_BITS:       db 0                    ; DATA XREF: sub_8C20-B4F
  14682.                                         ; sub_8C20-AFC ...
  14683.                                         ; bit2=1 -- there is serial printer
  14684.                                         ; bit3=1 -- there is zx printer
  14685. byte_D0E1:      db 0                    ; DATA XREF: sub_A0F7+4 PRT_DETECT+1 ...
  14686. baudrate_NUM:   db 0                    ; DATA XREF: PRT_DETECT+16
  14687.                                         ; sub_8C20+1754 ...
  14688. byte_D0E3:      db 0                    ; DATA XREF: sub_8C20-ABC
  14689. INC_SECONDS:    dw 0                    ; DATA XREF: sub_8C20-AB3
  14690.                                         ; sub_8C20-910 ...
  14691. unk_D0E6:       db    0                 ; DATA XREF: sub_AB53+F
  14692.                                         ; sub_AB53:loc_ABEF
  14693.                 db    0
  14694.                 db    0
  14695.                 db    0
  14696.                 db    0
  14697.                 db    0
  14698.                 db    0
  14699.                 db    0
  14700.                 db    0
  14701. byte_D0EF:      db 0                    ; DATA XREF: sub_AB53+32 sub_AFC5+6D
  14702. byte_D0F0:      db 0                    ; DATA XREF: START_POINT+97
  14703. timenorm:       db 0                    ; DATA XREF: sub_8F4D+3C sub_AFC5+85 ... ;норма времени на ход? в начале партии #0C, после 1 хода за белых #10, потом с 9 хода за белых увеличивается на 1 с каждым ходом. Take Back не влияет, даже если уйти с линии
  14704. byte_D0F2:      db 0                    ; DATA XREF: sub_AFC5+88
  14705.                                         ; sub_AFC5+18F ...
  14706. byte_D0F3:      db 0                    ; DATA XREF: sub_8C20-AB9
  14707.                                         ; sub_8F4D+28   ...
  14708. timeformove:    db 0                    ; DATA XREF: sub_8C20-201
  14709.                                         ; sub_8C20-179 ...
  14710. ptr_stk_1bvalue:dw 0                    ; DATA XREF: sub_8C20-9D7
  14711.                                         ; sub_8C20-9D2 ...
  14712. word_D0F7:      dw 0                    ; DATA XREF: sub_8C20-B1F
  14713.                                         ; sub_8C20-9E4 ...
  14714.                 db    0
  14715.                 db    0
  14716.                 db    0
  14717.                 db    0
  14718.                 db    0
  14719.                 db    0
  14720. byte_D0FF:      db 0                    ; DATA XREF: InitBoard_ClearMoves+1
  14721. word_D100:      dw 0                    ; DATA XREF: sub_8C20-532
  14722.                                         ; InitBoard_ClearMoves+24       ...
  14723.                 db    0
  14724.                 db    0
  14725.                 db    0
  14726.                 db    0
  14727.                 db    0
  14728.                 db    0
  14729. byte_D108:      db 0                    ; DATA XREF: sub_AFC5+29
  14730.                                         ; sub_BC00:loc_C0AE ...
  14731. byte_D109:      db 0                    ; DATA XREF: sub_C1EF:loc_C1A4
  14732. word_D10A:      dw 0                    ; DATA XREF: sub_BC00+244
  14733.                                         ; sub_BC00+254 ...
  14734. word_D10C:      dw 0                    ; DATA XREF: sub_BC00+24B
  14735.                                         ; sub_BC00:loc_BE57
  14736.                 db    0
  14737.                 db    0
  14738. byte_D110:      db 0                    ; DATA XREF: sub_BC00+4B7
  14739.                 db    0
  14740. word_D112:      dw 0                    ; DATA XREF: sub_BC00+25A
  14741.                                         ; sub_BC00+26A
  14742. word_D114:      dw 0                    ; DATA XREF: sub_BC00+261
  14743.                                         ; sub_BC00:loc_BE6D
  14744.                 db    0
  14745.                 db    0
  14746. byte_D118:      db 0                    ; DATA XREF: sub_BC00+4BE
  14747.                 db    0
  14748. word_D11A:      dw 0                    ; DATA XREF: sub_BC00+270
  14749.                                         ; sub_BC00+280
  14750. word_D11C:      dw 0                    ; DATA XREF: sub_BC00+277
  14751.                                         ; sub_BC00:loc_BE83
  14752.                 db    0
  14753.                 db    0
  14754. byte_D120:      db 0                    ; DATA XREF: sub_BC00+4C5
  14755.                 db    0
  14756. word_D122:      dw 0                    ; DATA XREF: sub_BC00+286
  14757.                                         ; sub_BC00+296
  14758. word_D124:      dw 0                    ; DATA XREF: sub_BC00+28D
  14759.                                         ; sub_BC00:loc_BE99
  14760.                 db    0
  14761.                 db    0
  14762. byte_D128:      db 0                    ; DATA XREF: sub_BC00+4CC
  14763.                 db    0
  14764. word_D12A:      dw 0                    ; DATA XREF: sub_BC00+29C
  14765.                                         ; sub_BC00+2AC
  14766. word_D12C:      dw 0                    ; DATA XREF: sub_BC00+2A3
  14767.                                         ; sub_BC00:loc_BEAF
  14768.                 db    0
  14769.                 db    0
  14770. byte_D130:      db 0                    ; DATA XREF: sub_BC00+4D3
  14771.                 db    0
  14772. word_D132:      dw 0                    ; DATA XREF: sub_BC00+2B2
  14773.                                         ; sub_BC00+2C2
  14774. word_D134:      dw 0                    ; DATA XREF: sub_BC00+2B9
  14775.                                         ; sub_BC00:loc_BEC5
  14776.                 db    0
  14777.                 db    0
  14778. byte_D138:      db 0                    ; DATA XREF: sub_BC00+4DA
  14779.                 db    0
  14780. word_D13A:      dw 0                    ; DATA XREF: sub_BC00+2C8
  14781.                                         ; sub_BC00+2D8
  14782. word_D13C:      dw 0                    ; DATA XREF: sub_BC00+2CF
  14783.                                         ; sub_BC00:loc_BEDB
  14784.                 db    0
  14785.                 db    0
  14786. unk_D140:       db    0                 ; DATA XREF: sub_881D   sub_A94F+7E ...
  14787. byte_D141:      db 0                    ; DATA XREF: sub_BC00+2E9
  14788. word_D142:      dw 0                    ; DATA XREF: sub_BC00+2DE
  14789.                                         ; sub_BC00+2EF
  14790. word_D144:      dw 0                    ; DATA XREF: sub_BC00+2E5
  14791.                                         ; sub_BC00:loc_BEF2
  14792.                 db    0
  14793.                 db    0
  14794. unk_D148:       db    0                 ; DATA XREF: sub_BC00+4ED
  14795. byte_D149:      db 0                    ; DATA XREF: sub_BC00+300
  14796. word_D14A:      dw 0                    ; DATA XREF: sub_BC00+2F5
  14797.                                         ; sub_BC00+306
  14798. word_D14C:      dw 0                    ; DATA XREF: sub_BC00+2FC
  14799.                                         ; sub_BC00:loc_BF09
  14800.                 db    0
  14801.                 db    0
  14802. unk_D150:       db    0                 ; DATA XREF: sub_BC00+4F5
  14803. byte_D151:      db 0                    ; DATA XREF: sub_BC00+317
  14804. word_D152:      dw 0                    ; DATA XREF: sub_BC00+30C
  14805.                                         ; sub_BC00+31D
  14806. word_D154:      dw 0                    ; DATA XREF: sub_BC00+313
  14807.                                         ; sub_BC00:loc_BF20
  14808.                 db    0
  14809.                 db    0
  14810. unk_D158:       db    0                 ; DATA XREF: sub_BC00+4FD
  14811. byte_D159:      db 0                    ; DATA XREF: sub_BC00+32E
  14812. word_D15A:      dw 0                    ; DATA XREF: sub_BC00+323
  14813.                                         ; sub_BC00+334
  14814. word_D15C:      dw 0                    ; DATA XREF: sub_BC00+32A
  14815.                                         ; sub_BC00:loc_BF37
  14816.                 db    0
  14817.                 db    0
  14818. unk_D160:       db    0                 ; DATA XREF: sub_BC00+505
  14819. byte_D161:      db 0                    ; DATA XREF: sub_BC00+345
  14820. word_D162:      dw 0                    ; DATA XREF: sub_BC00+33A
  14821.                                         ; sub_BC00+34B
  14822. word_D164:      dw 0                    ; DATA XREF: sub_BC00+341
  14823.                                         ; sub_BC00:loc_BF4E
  14824.                 db    0
  14825.                 db    0
  14826. unk_D168:       db    0                 ; DATA XREF: sub_BC00+50D
  14827. byte_D169:      db 0                    ; DATA XREF: sub_BC00+35C
  14828. word_D16A:      dw 0                    ; DATA XREF: sub_BC00+351
  14829.                                         ; sub_BC00+362
  14830. word_D16C:      dw 0                    ; DATA XREF: sub_BC00+358
  14831.                                         ; sub_BC00:loc_BF65
  14832.                 db    0
  14833.                 db    0
  14834. unk_D170:       db    0                 ; DATA XREF: sub_BC00+515
  14835. byte_D171:      db 0                    ; DATA XREF: sub_BC00+373
  14836. word_D172:      dw 0                    ; DATA XREF: sub_BC00+368
  14837.                                         ; sub_BC00+379
  14838. word_D174:      dw 0                    ; DATA XREF: sub_BC00+36F
  14839.                                         ; sub_BC00:loc_BF7C
  14840.                 db    0
  14841.                 db    0
  14842. unk_D178:       db    0                 ; DATA XREF: sub_BC00+51D
  14843. byte_D179:      db 0                    ; DATA XREF: sub_BC00+38A
  14844. word_D17A:      dw 0                    ; DATA XREF: sub_BC00+37F
  14845.                                         ; sub_BC00+390
  14846. word_D17C:      dw 0                    ; DATA XREF: sub_BC00+386
  14847.                                         ; sub_BC00:loc_BF93
  14848.                 db    0
  14849.                 db    0
  14850. word_D180:      dw 0                    ; DATA XREF: sub_A94F+31
  14851.                                         ; sub_BC00+535
  14852.                 db    0
  14853.                 db    0
  14854.                 db    0
  14855.                 db    0
  14856.                 db    0
  14857.                 db    0
  14858. byte_D188:      db 0                    ; DATA XREF: sub_BC00+30 sub_C1EF-55
  14859. byte_D189:      db 0                    ; DATA XREF: sub_C1EF-5C
  14860. word_D18A:      dw 0                    ; DATA XREF: sub_BC00+E5 sub_BC00+F5
  14861. word_D18C:      dw 0                    ; DATA XREF: sub_BC00+EC
  14862.                                         ; sub_BC00:loc_BCF8
  14863.                 db    0
  14864.                 db    0
  14865. byte_D190:      db 0                    ; DATA XREF: sub_BC00+37
  14866.                 db    0
  14867. word_D192:      dw 0                    ; DATA XREF: sub_BC00+FB
  14868.                                         ; sub_BC00+10B
  14869. word_D194:      dw 0                    ; DATA XREF: sub_BC00+102
  14870.                                         ; sub_BC00:loc_BD0E
  14871.                 db    0
  14872.                 db    0
  14873. byte_D198:      db 0                    ; DATA XREF: sub_BC00+3E
  14874.                 db    0
  14875. word_D19A:      dw 0                    ; DATA XREF: sub_BC00+111
  14876.                                         ; sub_BC00+121
  14877. word_D19C:      dw 0                    ; DATA XREF: sub_BC00+118
  14878.                                         ; sub_BC00:loc_BD24
  14879.                 db    0
  14880.                 db    0
  14881. byte_D1A0:      db 0                    ; DATA XREF: sub_BC00+45
  14882.                 db    0
  14883. word_D1A2:      dw 0                    ; DATA XREF: sub_BC00+127
  14884.                                         ; sub_BC00+137
  14885. word_D1A4:      dw 0                    ; DATA XREF: sub_BC00+12E
  14886.                                         ; sub_BC00:loc_BD3A
  14887.                 db    0
  14888.                 db    0
  14889. byte_D1A8:      db 0                    ; DATA XREF: sub_BC00+4C
  14890.                 db    0
  14891. word_D1AA:      dw 0                    ; DATA XREF: sub_BC00+13D
  14892.                                         ; sub_BC00+14D
  14893. word_D1AC:      dw 0                    ; DATA XREF: sub_BC00+144
  14894.                                         ; sub_BC00:loc_BD50
  14895.                 db    0
  14896.                 db    0
  14897. byte_D1B0:      db 0                    ; DATA XREF: sub_BC00+53
  14898.                 db    0
  14899. word_D1B2:      dw 0                    ; DATA XREF: sub_BC00+153
  14900.                                         ; sub_BC00+163
  14901. word_D1B4:      dw 0                    ; DATA XREF: sub_BC00+15A
  14902.                                         ; sub_BC00:loc_BD66
  14903.                 db    0
  14904.                 db    0
  14905. byte_D1B8:      db 0                    ; DATA XREF: sub_BC00+5A
  14906.                 db    0
  14907. word_D1BA:      dw 0                    ; DATA XREF: sub_BC00+169
  14908.                                         ; sub_BC00+179
  14909. word_D1BC:      dw 0                    ; DATA XREF: sub_BC00+170
  14910.                                         ; sub_BC00:loc_BD7C
  14911.                 db    0
  14912.                 db    0
  14913. ;block 0
  14914. word_D1C0:      dw 0                    ; DATA XREF: sub_BC00+65
  14915.                                         ; sub_BC00+18A
  14916. word_D1C2:      dw 0                    ; DATA XREF: sub_BC00+17F
  14917.                                         ; sub_BC00+190
  14918. word_D1C4:      dw 0                    ; DATA XREF: sub_BC00+186
  14919.                                         ; sub_BC00:loc_BD93
  14920.                 db    0
  14921.                 db    0
  14922. ;block 1
  14923. word_D1C8:      dw 0                    ; DATA XREF: sub_BC00+6D
  14924.                                         ; sub_BC00+1A1
  14925. word_D1CA:      dw 0                    ; DATA XREF: sub_BC00+196
  14926.                                         ; sub_BC00+1A7
  14927. word_D1CC:      dw 0                    ; DATA XREF: sub_BC00+19D
  14928.                                         ; sub_BC00:loc_BDAA
  14929.                 db    0
  14930.                 db    0
  14931. ;block 2
  14932. word_D1D0:      dw 0                    ; DATA XREF: sub_BC00+75
  14933.                                         ; sub_BC00+1B8
  14934. word_D1D2:      dw 0                    ; DATA XREF: sub_BC00+1AD
  14935.                                         ; sub_BC00+1BE
  14936. word_D1D4:      dw 0                    ; DATA XREF: sub_BC00+1B4
  14937.                                         ; sub_BC00:loc_BDC1
  14938.                 db    0
  14939.                 db    0
  14940. ;block 3
  14941. word_D1D8:      dw 0                    ; DATA XREF: sub_BC00+7D
  14942.                                         ; sub_BC00+1CF
  14943. word_D1DA:      dw 0                    ; DATA XREF: sub_BC00+1C4
  14944.                                         ; sub_BC00+1D5
  14945. word_D1DC:      dw 0                    ; DATA XREF: sub_BC00+1CB
  14946.                                         ; sub_BC00:loc_BDD8
  14947.                 db    0
  14948.                 db    0
  14949. ;block 4
  14950. word_D1E0:      dw 0                    ; DATA XREF: sub_BC00+85
  14951.                                         ; sub_BC00+1E6
  14952. word_D1E2:      dw 0                    ; DATA XREF: sub_BC00+1DB
  14953.                                         ; sub_BC00+1EC
  14954. word_D1E4:      dw 0                    ; DATA XREF: sub_BC00+1E2
  14955.                                         ; sub_BC00:loc_BDEF
  14956.                 db    0
  14957.                 db    0
  14958. ;block 5
  14959. word_D1E8:      dw 0                    ; DATA XREF: sub_BC00+8D
  14960.                                         ; sub_BC00+1FD
  14961. word_D1EA:      dw 0                    ; DATA XREF: sub_BC00+1F2
  14962.                                         ; sub_BC00+203
  14963. word_D1EC:      dw 0                    ; DATA XREF: sub_BC00+1F9
  14964.                                         ; sub_BC00:loc_BE06
  14965.                 db    0
  14966.                 db    0
  14967. ;block 6
  14968. word_D1F0:      dw 0                    ; DATA XREF: sub_BC00+95
  14969.                                         ; sub_BC00+214
  14970. word_D1F2:      dw 0                    ; DATA XREF: sub_BC00+209
  14971.                                         ; sub_BC00+21A
  14972. word_D1F4:      dw 0                    ; DATA XREF: sub_BC00+210
  14973.                                         ; sub_BC00:loc_BE1D
  14974.                 db    0
  14975.                 db    0
  14976. ;block 7
  14977. word_D1F8:      dw 0                    ; DATA XREF: sub_BC00+9D
  14978.                                         ; sub_BC00+22B
  14979. word_D1FA:      dw 0                    ; DATA XREF: sub_BC00+220
  14980.                                         ; sub_BC00+231
  14981. word_D1FC:      dw 0                    ; DATA XREF: sub_BC00+227
  14982.                                         ; sub_BC00:loc_BE34
  14983.                 db    0
  14984.                 db    0
  14985.  
  14986. array_D200:     db    0,   0,   0,   0,   0,   0,   0,   0 ; DATA XREF: InitBoard_ClearMoves+4
  14987.                                         ; InitBoard_ClearMoves+11       ...
  14988.                 ds 1                    ; still
  14989.                 ds 1                    ; array
  14990.                 ds 1                    ; D200
  14991. unk_D20B:       ds 1                    ; DATA XREF: sub_B34B+6
  14992.                                         ; FindMoveAndSwap:loc_B39E
  14993. byte_D20C:      ds 1                    ; DATA XREF: sub_8C20-B72 ;oldmove #?
  14994.                                         ; sub_8C20-535 ...
  14995. byte_D20D:      ds #E                   ; DATA XREF: sub_B2D1+3 ;sub_B2D1 копирует 14 координат полей с маской 0yyy0xxx из byte_D258 в byte_D20D
  14996.                                         ; array of 14 bytes
  14997.                 ds 1
  14998.                 ds 1
  14999.                 ds 1
  15000.                 ds 1
  15001.                 ds 1
  15002.                 ds 1
  15003.                 ds 1
  15004.                 ds 1
  15005.                 ds 1
  15006.                 ds 1
  15007.                 ds 1
  15008.                 ds 1
  15009.                 ds 1
  15010.                 ds 1
  15011. unk_D229:       ds 1                    ; DATA XREF: sub_8B66+1E
  15012.                 ds 1
  15013. unk_D22B:       ds 1                    ; DATA XREF: sub_8B66+1B
  15014.                 ds 1
  15015.                 ds 1
  15016.                 ds 1
  15017.                 ds 1
  15018.                 ds 1
  15019.                 ds 1
  15020.                 ds 1
  15021.                 ds 1
  15022.                 ds 1
  15023.                 ds 1
  15024.                 ds 1
  15025.                 ds 1
  15026.                 ds 1
  15027.                 ds 1
  15028.                 ds 1
  15029.                 ds 1
  15030.                 ds 1
  15031.                 ds 1
  15032.                 ds 1
  15033.                 ds 1
  15034. word_D240:      ds 2                    ; DATA XREF: sub_8C20-B28
  15035.                                         ; sub_8C20-6C2 ...
  15036.                 ds 1
  15037.                 ds 1
  15038.                 ds 1
  15039.                 ds 1
  15040.                 ds 1
  15041.                 ds 1
  15042.                 ds 1
  15043.                 ds 1
  15044.                 ds 1
  15045.                 ds 1
  15046.                 ds 1
  15047.                 ds 1
  15048.                 ds 1
  15049.                 ds 1
  15050.                 ds 1
  15051.                 ds 1
  15052.                 ds 1
  15053.                 ds 1
  15054.                 ds 1
  15055.                 ds 1
  15056.                 ds 1
  15057.                 ds 1
  15058. byte_D258:      ds 1                    ; DATA XREF: sub_A684+23 sub_B2D1 ...
  15059.                                         ; array of 14 bytes
  15060.                 ds 1
  15061. word_D25A:      ds 2                    ; DATA XREF: sub_8C20-B19
  15062.                                         ; sub_8C20-901 ...
  15063. byte_D25C:      ds #A                   ; DATA XREF: sub_B2E2
  15064.  
  15065.  
  15066.  
  15067.  
  15068.                 ds 0xD300-$
  15069.  
  15070. byte_D300:      ds 1                    ; DATA XREF: sub_8C20-541
  15071.                                         ; sub_8C20-1D1
  15072. byte_D301:      ds 1                    ; DATA XREF: sub_8C20-547
  15073.                                         ; sub_8C20-1CB
  15074. byte_D302:      ds 1                    ; DATA XREF: sub_8C20-53B
  15075.                                         ; sub_8C20-1BA
  15076. array_64bytes:  ds #40                  ; DATA XREF: sub_8C20-52F
  15077.                                         ; sub_8C20-1D4
  15078. stk_1bvalue:    ds 1                    ; DATA XREF: START_POINT+94
  15079.                                         ; sub_8C20-B6A ...
  15080.  
  15081.  
  15082.  
  15083.  
  15084.  
  15085.                 ds 0xD800-$
  15086.                 ;stack is upwards
  15087. RAM_END_D800:                           ; DATA XREF: START_POINT:loc_8067
  15088.                                         ; START_POINT+70 ...
  15089.                    
  15090.                 ds 0xD803-$
  15091. tbl_D803:                               ; DATA XREF: sub_8C20:loc_8365
  15092.                                         ; sub_8446 ...
  15093.                                         ; some 3byte structs, #FF -- end mark
  15094.                                         ; sized kilobyte or more
  15095.  
  15096.  
  15097.  
  15098.  
  15099.                 ds 0xF000-$
  15100. unk_F000:                               ; DATA XREF: sub_8446+3 sub_92A0 ...
  15101.                        
  15102.  
  15103.  
  15104.                 ds 0xF300-$
  15105.  
  15106.                 ds 1
  15107.  
  15108. BOARD:          ds #40                  ; DATA XREF: sub_8C20-976 ShowHintMove+E ...
  15109.                
  15110.                 ds 6
  15111.  
  15112. BOARD2:         ds #40                  ; DATA XREF: sub_8C20-979
  15113.                                         ; sub_8DE9+58   ...
  15114.                 ds 6
  15115.  
  15116. save_SP:        ds 2                    ; DATA XREF: START_POINT+33
  15117. save_HLtick:    ds 2                    ; DATA XREF: START_POINT+38
  15118. save_ERRSP:     ds 2                    ; DATA XREF: RAM:803E
  15119.  
  15120.  
  15121.  
  15122.  
  15123.                 ds 0xFEFF-$
  15124. INT_VEC:        ds 2
  15125.  
  15126.  
  15127.  
  15128.  
  15129.                 ;savebin "cyrus2_compilable.bin",#8000,#5000
  15130.                 ;labelslist "cyrus2_compilable.lab"
  15131.                 ;end
  15132.        if FIX
  15133.         savebin "cyrus960.com",begin,end-begin
  15134.        else
  15135.         savebin "cyrus2.com",begin,end-begin
  15136.        endif
  15137.         LABELSLIST "../../../us/user.l",1
  15138.