Subversion Repositories NedoOS

Rev

Rev 1528 | Rev 1530 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download

  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.         call swapimer
  79.        
  80.         ld sp,0x8000
  81.         ld iy,23610
  82.         jp START_POINT
  83.  
  84. pal
  85. ;DDp palette: %grbG11RB(low),%grbG11RB(high), inverted
  86.         ;dw 0xffff,0xfefe,0xfdfd,0xfcfc,0xefef,0xeeee,0xeded,0xecec
  87.         ;dw 0xffff,0xdede,0xbdbd,0x9c9c,0x6f6f,0x4e4e,0x2d2d,0x0c0c
  88.         dw 0xffff,0xfefe,0xfdfd,0xfcfc,0xefef,0xeeee,0x6d6d,0xecec
  89.         dw 0xffff,0xdede,0xbdbd,0x9c9c,0x6f6f,0x4e4e,0x2d2d,0x0c0c
  90.  
  91. keymatrix
  92.         ds 8,0xff
  93.  
  94.         include "int.asm"
  95.         include "rst38.asm"
  96. rst10
  97.         push af
  98.         push bc
  99.         push de
  100.         push hl
  101.  
  102. rst10_phase=$+1
  103.         ld b,0 ;0=code, 1=X, 2=Y
  104.         djnz rst10_noATY
  105.         ld (rst10_y),a
  106.         ld a,2
  107.         ld (rst10_phase),a
  108.         jr rst10_q
  109. rst10_noATY
  110.         djnz rst10_noATX
  111.         ld (rst10_x),a
  112.         xor a
  113.         ld (rst10_phase),a
  114.         call rst10_countscr
  115.         jr rst10_q
  116. rst10_noATX
  117.  
  118.         cp 22 ;AT
  119.         jr z,rst10_AT
  120.              
  121. rst10_scr=$+1
  122.         ld de,0x4000
  123.              
  124.         ld l,a
  125.         ld h,0
  126.         add hl,hl
  127.         add hl,hl
  128.         add hl,hl
  129.         ld bc,font-256
  130.         add hl,bc
  131.         ld b,0
  132. prchar0
  133.         ld a,(hl)
  134.         ld (de),a
  135.         inc hl
  136.         inc d
  137.         djnz prchar0
  138.  
  139.         ld hl,rst10_scr
  140.         inc (hl)
  141.         ld hl,rst10_x
  142.         inc (hl)
  143.         ld a,(hl)
  144.         cp 32
  145.         jr nz,rst10_q
  146.         ld (hl),0
  147.         ld hl,rst10_y
  148.         inc (hl)
  149.         ld a,(hl)
  150.         cp 24
  151.         jr nz,$+4
  152.         ld (hl),0
  153.         call rst10_countscr
  154. rst10_q
  155.         pop hl
  156.         pop de
  157.         pop bc
  158.         pop af
  159.         ret
  160.        
  161. rst10_AT
  162.         ld a,1
  163.         ld (rst10_phase),a
  164.         jr rst10_q
  165.        
  166. rst10_countscr
  167. rst10_x=$+1
  168. rst10_y=$+2
  169.         ld bc,0
  170.         ld a,b ;a = Y = 0b000TTYYY
  171.         LD L,A
  172.         and 0b00011000
  173.         add a,0x40;screen/256
  174.         LD H,A
  175.         ld a,l
  176.         rrca
  177.         rrca
  178.         rrca
  179.         and 0b11100000
  180.         add a,c ;x
  181.         LD L,A
  182.         ld (rst10_scr),hl
  183.         ret
  184.  
  185.        if FIX
  186. RandomizeSetup
  187.         ld hl,starting_setup
  188.         ld de,starting_setup+1
  189.         ld bc,8-1
  190.         ld (hl),0
  191.         ldir
  192.  
  193.         call goodrnd
  194.         and 6
  195.         call RandomizeSetup_HLplaceA
  196.         ld (hl),_B
  197.         call goodrnd
  198.         and 6
  199.         inc a
  200.         call RandomizeSetup_HLplaceA
  201.         ld (hl),_B
  202.  
  203.         call goodrnd
  204.         add a,6
  205.         jr nc,$-2
  206. ;a=0..9
  207.         call RandomizeSetup_HLemptyplaceA
  208.         ld (hl),_Q
  209.  
  210.        if 1
  211. ;должны равновероятно выбираться 10 вариантов расстановки коней в 5 свободных клетках
  212.         call goodrnd
  213.         add a,10
  214.         jr nc,$-2
  215. ;a=0..9
  216.         add a,a
  217.         ld c,a
  218.         ld b,0
  219.         ld hl,knightsetups
  220.         add hl,bc
  221.         ex de,hl
  222.         ld a,(de)
  223.         inc de
  224.         call RandomizeSetup_HLemptyplaceA
  225.         ld (hl),_N
  226.         ld a,(de)
  227.         call RandomizeSetup_HLemptyplaceA
  228.         ld (hl),_N
  229.        else
  230. ;так распределение коней неравномерно
  231.         call goodrnd
  232.         and 3
  233.         call RandomizeSetup_HLemptyplaceA
  234.         ld (hl),_N
  235.         call goodrnd
  236.         and 3
  237.         call RandomizeSetup_HLemptyplaceA
  238.         ld (hl),_N
  239.        endif
  240.  
  241.         ld hl,starting_setup-1
  242.         call RandomizeSetup_findempty
  243.         ld (hl),_R
  244.         call RandomizeSetup_findempty
  245.         ld (hl),_K
  246.         call RandomizeSetup_findempty
  247.         ld (hl),_R
  248.         ret
  249.        
  250. RandomizeSetup_HLplaceA
  251.         ld c,a
  252.         ld b,0
  253.         ld hl,starting_setup
  254.         add hl,bc
  255.         ret
  256.  
  257. RandomizeSetup_findempty
  258. RandomizeSetup_findempty0
  259.         inc hl
  260.         ld a,(hl)
  261.         or a
  262.         jr nz,RandomizeSetup_findempty0
  263.         ret
  264.  
  265. RandomizeSetup_HLemptyplaceA
  266.         inc a
  267.         ld b,a
  268.         ld hl,starting_setup-1
  269. RandomizeSetup_HLemptyplaceA0
  270.         call RandomizeSetup_findempty
  271.         djnz RandomizeSetup_HLemptyplaceA0
  272.         ret
  273.        
  274. knightsetups
  275.         db 0,0
  276.         db 0,1
  277.         db 0,2
  278.         db 0,3
  279.         db 1,1
  280.         db 1,2
  281.         db 1,3
  282.         db 2,2
  283.         db 2,3
  284.         db 3,3
  285.  
  286. memorizernd
  287.         ld hl,(rndseed1)
  288.         ld (oldrndseed1),hl
  289.         ld hl,(rndseed2)
  290.         ld (oldrndseed2),hl
  291.         ret
  292.        
  293. setoldrnd
  294. oldrndseed1=$+1
  295.         ld hl,0
  296.         ld (rndseed1),hl
  297. oldrndseed2=$+1
  298.         ld hl,0
  299.         ld (rndseed2),hl
  300.         ret
  301.  
  302. goodrnd:
  303.         PUSH de
  304.         PUSH HL
  305. ;Patrik Rak
  306. rndseed1=$+1
  307.         ld  hl,0xA280   ; xz -> yw
  308. rndseed2=$+1
  309.         ld  de,0xC0DE   ; yw -> zt
  310.         ld  (rndseed1),de  ; x = y, z = w
  311.         ld  a,e         ; w = w ^ ( w << 3 )
  312.         add a,a
  313.         add a,a
  314.         add a,a
  315.         xor e
  316.         ld  e,a
  317.         ld  a,h         ; t = x ^ (x << 1)
  318.         add a,a
  319.         xor h
  320.         ld  d,a
  321.         rra             ; t = t ^ (t >> 1) ^ w
  322.         xor d
  323.         xor e
  324.         ld  h,l         ; y = z
  325.         ld  l,a         ; w = t
  326.         ld  (rndseed2),hl
  327.         ld b,a
  328.         POP HL
  329.         POP de
  330.         ret ;b=rnd
  331.  
  332.        endif
  333.  
  334. font
  335.         incbin "font.bin"
  336.  
  337. scr
  338.         incbin "CyrusII.scr"
  339.  
  340.                 ds 0x637c-$
  341.                
  342. unk_637C:       ds 1                    ; DATA XREF: sub_A262+4
  343. txt_buf_6:      ds 6                    ; DATA XREF: sub_9FB2+33
  344.                 ds 3
  345. buf_10bytes:    ds 10                   ; DATA XREF: sub_8977   sub_8977+17 ... ;сюда пишется название хода
  346.                 ds 1
  347. CLK_1:          ds 8                    ; DATA XREF: sub_9018+15
  348.                                         ; INIT_PRINT_CLOCKS+3   ...
  349. CLK_2:          ds 8                    ; DATA XREF: sub_9018+1D
  350.                                         ; INIT_PRINT_CLOCKS+E   ...
  351. TAPE_header:    ds 17                   ; DATA XREF: sub_8EA7+7 sub_8EFB ...
  352.                 ds 3
  353. byte_63B5:      ds 1                    ; DATA XREF: sub_8C20+19F9
  354. byte_63B6:      ds 9                    ; DATA XREF: sub_8C20+1A09
  355.                                         ; sub_8C20+1A14 ...
  356. unk_63BF:       ds 65                   ; DATA XREF: sub_8C20+1A0F
  357.  
  358.  
  359.  
  360.                 ds 0x6400-$
  361. SCR_BUF_6400:   ds      #1b00           ; up to 7EFF
  362.  
  363.                 ; 7F00..7FFF free
  364.  
  365.  
  366.  
  367.  
  368.  
  369.                 ds 0x8000-$
  370. START_POINT:
  371.  
  372. ; FUNCTION CHUNK AT 8067 SIZE 00000033 BYTES
  373.  
  374.                 jr      loc_8032
  375.  
  376. ; ---------------------------------------------------------------------------
  377. aCopyright1986I:db      'COPYRIGHT (1986) INTELLIGENT CHESS SOFTWARE LTD.'
  378. ; ---------------------------------------------------------------------------
  379.  
  380. loc_8032:
  381.                 di
  382.                 ld      (save_SP), sp
  383.                 exx
  384.                 ld      (save_HLtick), hl
  385.  
  386.                 ld      hl, (bas_ERRSP)
  387.                 ld      (save_ERRSP), hl
  388.                if !FIX
  389.                 ld      hl, INT_VEC
  390.                 ld      (hl), INT_PROC&255
  391.                 inc     hl
  392.                 ld      (hl), INT_PROC/256
  393.                 ld      a, INT_VEC/256
  394.                 ds 2 ;ld        i, a
  395.                 ds 2 ;im        2
  396.                endif
  397.                 jp      loc_8067
  398.  
  399.  
  400. ; =============== S U B R O U T I N E =======================================
  401.  
  402.  
  403. INT_PROC:                               ; DATA XREF: RAM:8044   RAM:8047
  404.                 push    af
  405.                 push    hl
  406.                 push    iy
  407.                 ld      hl, DECREMENT_50HZ
  408.                 dec     (hl)
  409.                 ld      iy, bas_5C3A
  410.                 call    L0038;ROM_START+#38
  411.  
  412.                 pop     iy
  413.                 pop     hl
  414.                 pop     af
  415.                 ei
  416.                 ret
  417.  
  418. ; End of function INT_PROC
  419.  
  420. ; ---------------------------------------------------------------------------
  421. ; START OF FUNCTION CHUNK FOR START_POINT
  422.  
  423. loc_8067:                               ; CODE XREF: RAM:804F
  424.                 ld      sp, RAM_END_D800
  425.                 di
  426.                 ld      hl, BRD_88_0
  427.                 ld      b, 0
  428.                 ld      a, RAM_END_D800/256
  429.  
  430.  
  431. loc_8072:                               ; CODE XREF: START_POINT+75
  432.                 ld      (hl), b
  433.                 inc     hl
  434.                 cp      h
  435.                 jp      nz, loc_8072
  436.  
  437.                 res     bit_NEW_KEY, (iy+off_FLAGS)     ; clear keypressed bit
  438.                 res     bit_CAPS_LOCK, (iy+#30) ; CAPS LOCK off
  439.                 xor     a
  440.                 ld      (SEL_SCRorBUF), a
  441.                 call    CLR_SCR_OR_BUF
  442.  
  443.                 call    CLR_BOARD ;??? потом ещё раз
  444.  
  445.                 call    PRT_DETECT
  446.  
  447.                 ld      a, 1
  448.                 ld      (byte_D0B1), a
  449.                 ld      a, #FF
  450.                 ld      (stk_1bvalue), a
  451.                 ld      (byte_D0F0), a
  452.  
  453. ; END OF FUNCTION CHUNK FOR START_POINT
  454. ; START OF FUNCTION CHUNK FOR sub_92D7
  455.  
  456. loc_809A:                               ; CODE XREF: sub_92D7+35
  457.                 xor     a
  458.                 ld      (byte_D0B4), a
  459.                 call    sub_9EE6
  460.  
  461. ; END OF FUNCTION CHUNK FOR sub_92D7
  462. ; START OF FUNCTION CHUNK FOR sub_8C20
  463.  
  464. NEW_GAME:                               ; CODE XREF: sub_8C20-3
  465.         if FIX
  466.          call memorizernd
  467.         endif
  468.                 call    sub_96A6
  469.  
  470.                 call    CLR_BOARD
  471.  
  472.                 call    INIT_PRINT_CLOCKS
  473.  
  474.                 call    BEEP_start
  475.  
  476.                 ei
  477.                 ld      a, (byte_D20C) ;oldmove #?
  478.                 dec     a
  479.                 jr      z, loc_80B9
  480.  
  481.                 ld      a, #FF
  482.                 ld      (stk_1bvalue), a
  483.  
  484.  
  485. loc_80B9:                               ; CODE XREF: sub_8C20-B6E
  486.                 xor     a
  487.                 ld      (byte_D0B3), a ;d3=swap board
  488.                 inc     a
  489.                 ld      (byte_D049), a ;move # ;бесполезно - 875B тоже туда пишет
  490.                 scf
  491.                 call    sub_A915
  492.  
  493.                 ld      hl, 0
  494.                 ld      (word_D09F), hl
  495.  
  496.  
  497. loc_80CB:                               ; CODE XREF: sub_8C20-1DA
  498.                 call    InitBoard_ClearMoves
  499.  
  500.  
  501. loc_80CE:                               ; CODE XREF: sub_8C20-511
  502.                                         ; sub_8C20-186
  503.                 call    sub_A262
  504.  
  505.                 ld      a, (CFG_BITS)
  506.                 and     #30
  507.                 jr      z, loc_80F5
  508.  
  509.                 call    sub_A43C
  510.  
  511.                 ld      b,#1E
  512.  
  513.  
  514. loc_80DD:                               ; CODE XREF: sub_8C20-B3C
  515.                 push    bc
  516.                 ld      a,#3D
  517.                 call    loc_A476
  518.  
  519.                 pop     bc
  520.                 djnz    loc_80DD
  521.  
  522.                 call    sub_A43C
  523.  
  524.                 ld      a, (byte_D049) ;move #
  525.                 dec     a
  526.                 jr      z, loc_80F5 ;first move
  527.  
  528.                 call    sub_939F
  529.  
  530.                 call    sub_94C4
  531.  
  532.  
  533. loc_80F5:                               ; CODE XREF: sub_8C20-B4A
  534.                                         ; sub_8C20-B33
  535.                 ld      hl, #F7F7
  536.                 ld      (word_D240), hl
  537.                 xor     a
  538.                 ld      (byte_D04D), a
  539.                 ld      l, a
  540.                 ld      h, a
  541.                 ld      (word_D0F7), hl
  542.  
  543.  
  544. loc_8104:                               ; CODE XREF: sub_8C20-507
  545.                                         ; sub_8C20-BD
  546.                 ld      hl, 0
  547.                 ld      (word_D25A), hl
  548.  
  549.  
  550. loc_810A:                               ; CODE XREF: sub_8C20:loc_82E8
  551.                                         ; sub_8C20-852 ...
  552.                 ld      hl,  word_D240+1
  553.                 call    sub_B976
  554.  
  555.                 jr      c, loc_811C
  556.  
  557.                 bit     3, (hl)
  558.                 jp      nz, loc_8B9B
  559.  
  560.                 ld      hl,  word_D240+1
  561.                 set     3, (hl)
  562.  
  563.  
  564. loc_811C:                               ; CODE XREF: sub_8C20-B10
  565.                 ld      hl, (word_D09F)
  566.                 ld      a, l
  567.                 or      h
  568.                 jp      nz, loc_8AE8
  569.  
  570.                 ld      hl, CFG_BITS
  571.                 res     5, (hl)
  572.                 call    sub_A08D
  573.  
  574.                 call    sub_9571
  575.  
  576.                 call    sub_954C
  577.  
  578.                 ld      hl, byte_D0B4
  579.                 bit     5, (hl)
  580.                 jr      nz, loc_8142
  581.  
  582.                 ld      sp, RAM_END_D800
  583.                 call    sub_8C2D
  584.  
  585.                 call    sub_93A4
  586.  
  587.  
  588. loc_8142:                               ; CODE XREF: sub_8C20-AE9
  589.                 ld      a, (byte_D00A)
  590.                 cp      100
  591.                 jp      nc, loc_8B9B
  592.  
  593.                 ld      a, (byte_D02D)
  594.                 or      #80
  595.                 ld      (byte_D0BF), a
  596.                 rra
  597.                 ld      a, (byte_D0B2)
  598.                 jr      nc, loc_815E
  599.  
  600.                 or      a
  601.                 jr      z, loc_8162
  602.  
  603.                 jp      loc_82EB
  604.  
  605. ; ---------------------------------------------------------------------------
  606.  
  607. loc_815E:                               ; CODE XREF: sub_8C20-ACA
  608.                 or      a
  609.                 jp      z, loc_82EB
  610.  
  611.  
  612. loc_8162:                               ; CODE XREF: sub_8C20-AC7
  613.                 ld      a, #BE
  614.                 ld      (byte_D0E3), a
  615.                 ld      (byte_D0F3), a
  616.                 ld      hl, 0
  617.                 ld      (INC_SECONDS), hl
  618.                 ld      (word_D02B), hl
  619.                 xor     a
  620.                 ld      (bas_5C78), a
  621.                 ld      (byte_D0DF), a
  622.                 ld      hl, byte_D0B4
  623.                 bit     0, (hl)
  624.                 jp      nz, loc_8CE9 ;move?
  625.  
  626.                 ld      a, (hl)
  627.                 or      #40
  628.                 and     #6F
  629.                 ld      (hl), a
  630.                 bit     5, a
  631.                 jr      z, loc_818F
  632.                 call    sub_955D
  633. loc_818F:                               ; CODE XREF: sub_8C20-A96
  634.                 call    sub_9F0D ;show state and help
  635.  
  636.                 ld      ix, word_D059
  637.                 call    sub_A903
  638.  
  639.                 call    sub_A90F
  640.  
  641.                 jr      nz, loc_81A1
  642.  
  643.                 scf
  644.                 jr      loc_81B7
  645.  
  646. ; ---------------------------------------------------------------------------
  647.  
  648. loc_81A1:                               ; CODE XREF: sub_8C20-A84
  649.                 ld      hl, byte_D0B6
  650.                 res     2, (hl)
  651.                 call    sub_A900
  652.  
  653.                 push    af
  654.  
  655.  
  656. loc_81AA:                               ; CODE XREF: sub_8C20-A6C
  657.                 ld      hl, byte_D0DF
  658.                 bit     0, (hl)
  659.                 jr      z, loc_81B6
  660.  
  661.                 call    sub_8F4D
  662.  
  663.                 jr      loc_81AA
  664.  
  665. ; ---------------------------------------------------------------------------
  666.  
  667. loc_81B6:                               ; CODE XREF: sub_8C20-A71
  668.                 pop     af
  669.  
  670.  
  671. loc_81B7:                               ; CODE XREF: sub_8C20-A81
  672.                 ex      af, af' ;'
  673.                 ld      hl, 0
  674.                 ld      (word_D09F), hl
  675.                 ld      hl, byte_D0B4
  676.                 ld      a, (hl)
  677.                 ld      b, a
  678.                 and     #9F
  679.                 ld      (hl), a
  680.                 bit     5, b
  681.                 jp      nz, loc_8520
  682.  
  683.                 ex      af, af' ;'
  684.                 jp      c, loc_8B8D
  685.  
  686.                 call    BEEP_move
  687.  
  688.                 ld      a, (byte_D09E)
  689.                 or      a
  690.                 jr      z, loc_81E0
  691. ;end of opening?
  692.                 ld      a, (byte_D0B6)
  693.                 bit     2, a
  694.                 call    nz, sub_A684
  695.  
  696.  
  697. loc_81E0:                               ; CODE XREF: sub_8C20-A4A
  698.                                         ; sub_8C20-8BE
  699.                 ld      h, (ix+0)
  700.                 res     7, h
  701.                 ld      l, (ix+1)
  702.                 res     7, l
  703.                 push    hl
  704.                 ld      ix, word_D059
  705.                 call    sub_A903
  706.  
  707.                 ld      ix, RAM_END_D800
  708.                 ld      bc, 3
  709.                 pop     hl
  710.  
  711.  
  712. loc_81FA:                               ; CODE XREF: sub_8C20-A20
  713.                                         ; sub_8C20-A1A
  714.                 add     ix, bc
  715.                 ld      a, (ix+0)
  716.                 cp      h
  717.                 jr      nz, loc_81FA
  718.  
  719.                 ld      a, (ix+1)
  720.                 cp      l
  721.                 jr      nz, loc_81FA
  722.  
  723.                 ld      a, (ix+0)
  724.                 ld      (byte_D0C4), a
  725.                 call    sub_9FF5
  726.  
  727.                 ld      (byte_D0C2), a
  728.                 ld      a, (ix+1)
  729.                 ld      (byte_D0C5), a
  730.                 call    sub_9FF5
  731.  
  732.                 ld      (byte_D0C3), a
  733.                 call    sub_A906
  734.  
  735.                 call    sub_BC00
  736.  
  737.  
  738. loc_8226:                               ; CODE XREF: sub_8C20-703
  739.                 call    sub_939F
  740.  
  741.                 push    ix
  742.                 pop     hl
  743.                 ld      bc, RAM_END_D800
  744.                 xor     a
  745.                 ld      e, a
  746.                 sbc     hl, bc
  747.                 ld      bc, 3
  748.  
  749.  
  750. loc_8236:                               ; CODE XREF: sub_8C20-9E7
  751.                 inc     e
  752.                 sbc     hl, bc
  753.                 jr      nz, loc_8236
  754.  
  755.                 dec     e
  756.                 ld      hl, (word_D0F7)
  757.                 inc     hl
  758.                 ld      (word_D0F7), hl
  759.                 ld      a, (ix+2)
  760.                 and     #80 ; '?'
  761.                 or      e
  762.                 ld      hl, (ptr_stk_1bvalue)
  763.                 ld      (hl), a
  764.                 inc     hl
  765.                 ld      (ptr_stk_1bvalue), hl
  766.                 ld      (hl), #FF
  767.  
  768.  
  769. loc_8253:                               ; CODE XREF: sub_8C20-E5
  770.                 ld      hl, byte_D00A
  771.                 ld      a, (hl)
  772.                 ld      (byte_D029), a
  773.                 inc     (hl)
  774.                 pop     af
  775.                 push    af
  776.                 jp      po, loc_8279
  777.  
  778.                 push    hl
  779.                 ld      l, (ix+1)
  780.                 ld      h, #D0  ; 'Р'
  781.                 ld      l, (hl)
  782.                 res     2, l
  783.                 inc     l
  784.                 inc     h
  785.                 ld      e, (hl)
  786.                 ld      hl, (ptr_stk_1bvalue)
  787.                 ld      (hl), e
  788.                 inc     hl
  789.                 ld      (ptr_stk_1bvalue), hl
  790.                 ld      (hl), #FF
  791.                 pop     hl
  792.                 jr      loc_8281
  793.  
  794. ; ---------------------------------------------------------------------------
  795.  
  796. loc_8279:                               ; CODE XREF: sub_8C20-9C3
  797.                 jp      p, loc_8281
  798.  
  799.                 and     #F
  800.                 dec     a
  801.                 jr      nz, loc_8283
  802.  
  803.  
  804. loc_8281:                               ; CODE XREF: sub_8C20-9A9
  805.                                         ; sub_8C20:loc_8279
  806.                 xor     a
  807.                 ld      (hl), a
  808.  
  809.  
  810. loc_8283:                               ; CODE XREF: sub_8C20-9A1
  811.                                         ; sub_8C20-CB
  812.                 call    sub_8977 ;вывод хода в buf_10bytes
  813.  
  814.                 call    sub_8B66
  815.  
  816.                 ld      hl, (word_D09F)
  817.                 ld      a, h
  818.                 or      l
  819.                 jr      nz, loc_82B2
  820.  
  821.                 ld      hl, byte_D0B4
  822.                 bit     5, (hl)
  823.                 jr      nz, loc_82B2
  824.  
  825.                 call    sub_8D9E
  826.  
  827. loc_829A:                               ; CODE XREF: sub_8C20-97E
  828.                 call    sub_8F4D
  829.  
  830.                 ld      hl, byte_D0DF
  831.                 bit     0, (hl)
  832.                 jr      nz, loc_829A
  833.  
  834.                 call    ShowBOARD2
  835.  
  836.                 ld      hl, BOARD2
  837.                 ld      de, BOARD
  838.                 ld      bc,#40  ; '@'
  839.                 ldir
  840.  
  841.  
  842. loc_82B2:                               ; CODE XREF: sub_8C20-992
  843.                                         ; sub_8C20-98B
  844.                 ld      hl, (word_D09F)
  845.                 ld      de, (word_D0F7)
  846.                 sbc     hl, de
  847.                 jr      c, loc_82CD
  848.  
  849.                 ld      a, (CFG_BITS)
  850.                 bit     5, a
  851.                 jr      nz, loc_82CD
  852.  
  853.                 ld      a, h
  854.                 or      a
  855.                 jr      nz, loc_82D7
  856.  
  857.                 ld      a, l
  858.                 cp      9
  859.                 jr      nc, loc_82D7
  860.  
  861.  
  862. loc_82CD:                               ; CODE XREF: sub_8C20-965
  863.                                         ; sub_8C20-95E
  864.                 ld      hl, byte_D0B4
  865.                 bit     5, (hl)
  866.                 jr      nz, loc_82D7 ;invisible board?
  867.                 call    sub_9FB2
  868. loc_82D7:                               ; CODE XREF: sub_8C20-95A
  869.                                         ; sub_8C20-955 ...
  870.                 ld      hl, byte_D02D
  871.                 ld      a, (hl)
  872.                 xor     1
  873.                 ld      (hl), a
  874.                 ld      (byte_D0BF), a
  875.                 rra
  876.                 jr      nc, loc_82E8
  877.  
  878.                 ld      hl, byte_D049 ;move #
  879.                 inc     (hl)
  880.  
  881. loc_82E8:                               ; CODE XREF: sub_8C20-93E
  882.                 jp      loc_810A
  883.  
  884. ; ---------------------------------------------------------------------------
  885.  
  886. loc_82EB:                               ; CODE XREF: sub_8C20-AC5
  887.                                         ; sub_8C20-AC1 ...
  888.                 ld      hl, byte_D0B4
  889.                 ld      a, (hl)
  890.                 bit     1, a
  891.                 jr      z, loc_82F9
  892.  
  893.                 call    sub_A6E4
  894.  
  895.                 jp      loc_8CE9 ;move?
  896.  
  897. ; ---------------------------------------------------------------------------
  898.  
  899. loc_82F9:                               ; CODE XREF: sub_8C20-92F
  900.                 and     #9F ; '?'
  901.                 ld      (hl), a
  902.                 ld      ix, word_D059
  903.                 call    sub_A903
  904.  
  905.                 call    sub_A90F
  906.  
  907.                 jp      z, loc_8B8D
  908.  
  909.                 call    sub_8446
  910.  
  911.                 xor     a
  912.                 ld      hl, 0
  913.                 ld      (INC_SECONDS), hl
  914.                 ld      a, (byte_D09E)
  915.                 or      a
  916.                 jr      z, loc_8365
  917. ;end of opening?
  918.                 ld      a, (byte_D0B4)
  919.                 rra
  920.                 jr      c, loc_8365
  921.  
  922.                 ld      hl, (word_D25A)
  923.                 res     7, l
  924.                 ld      d, l
  925.                 res     7, h
  926.                 ld      e, h
  927.                 ld      hl, RAM_END_D800
  928.                 call    sub_A90C
  929.  
  930.                 jr      c, loc_8365
  931.  
  932.                 push    hl
  933.                 pop     ix
  934.                 call    sub_A906
  935.  
  936.                 call    sub_939F
  937.  
  938.                 ld      hl, byte_D0B4
  939.                 set     5, (hl)
  940.                 ld      a, (byte_D02D)
  941.                 ld      hl, byte_D0B3 ;d3=swap board
  942.                 res     1, (hl)
  943.                 rra ;???
  944.                 jr      z, loc_834B ;???
  945.                 set     1, (hl)
  946. loc_834B:                               ; CODE XREF: sub_8C20-8D9
  947.                 ld      h, (ix+0)
  948.                 ld      l, (ix+1)
  949.                 ld      (word_D0DA), hl
  950.                 pop     af
  951.                 push    af
  952.                 ld      a, 1
  953.                 jp      po, loc_835C ;???
  954.                 dec     a
  955. loc_835C:                               ; CODE XREF: sub_8C20-8C8
  956.                 ld      (byte_D0DC), a
  957.                 call    sub_A909
  958.  
  959.                 jp      loc_81E0
  960.  
  961. ; ---------------------------------------------------------------------------
  962.  
  963. loc_8365:                               ; CODE XREF: sub_8C20-909
  964.                                         ; sub_8C20-903 ...
  965.                 ld      hl, (tbl_D803)
  966.                 ld      (word_D25A), hl
  967.                 ld      hl, (word_D059)
  968.                 ld      (word_D05C), hl
  969.                 ld      ix, word_D059
  970.                 call    sub_A903
  971.  
  972.  
  973. loc_8378:                               ; CODE XREF: sub_8C20-216
  974.                 call    sub_9F0D ;show state and help
  975.  
  976.                 ld      b, 0
  977.                 ld      a, (byte_D02D)
  978.                 rra
  979.                 jr      nc, loc_8385
  980.  
  981.                 ld      b,#70
  982.  
  983.  
  984. loc_8385:                               ; CODE XREF: sub_8C20-89F
  985.                 ld      a, b
  986.                 ld      (word_D0BB+1), a
  987.                 ld      a, #FF
  988.                 ld      (word_D0BB), a
  989.                 ld      (byte_D0CD), a
  990.                 call    sub_955D
  991.  
  992.  
  993. loc_8394:                               ; CODE XREF: sub_8C20-83A
  994.                                         ; sub_8C20-82D ...
  995.                 ld      hl, byte_D0DF
  996.                 ld      a, 2
  997.                 ld      (hl), a
  998.                 xor     a
  999.                 ld      (byte_D0B8), a
  1000.  
  1001.  
  1002. loc_839E:                               ; CODE XREF: sub_8C20-87A
  1003.                                         ; sub_8C20-86E
  1004.                 call    sub_8F4D
  1005.  
  1006.  
  1007. loc_83A1:                               ; CODE XREF: sub_8C20-68E
  1008.                 ld      hl, byte_D0DF
  1009.                 bit     0, (hl)
  1010.                 jr      nz, loc_839E
  1011.  
  1012.                 bit     4, (hl)
  1013.                 jp      nz, loc_845D
  1014.  
  1015.                 ld      hl, byte_D0B8
  1016.                 ld      a, (hl)
  1017.                 or      a
  1018.                 jr      z, loc_839E
  1019.  
  1020.                 ld      (hl), 0
  1021.                 cp      #43 ; 'C'
  1022.                 jp      z, loc_A4F4
  1023.  
  1024.                 cp      #50 ; 'P'
  1025.                 jp      z, loc_A29F
  1026.  
  1027.                 cp      #49 ; 'I'
  1028.                 jr      nz, loc_83D1
  1029.  
  1030.                 call    sub_9571
  1031.  
  1032.                 ld      hl, byte_D0B3
  1033.                 ld      a, (hl)
  1034.                 xor     8
  1035.                 ld      (hl), a ;d3=swap board
  1036.                 jp      loc_810A
  1037.  
  1038. ; ---------------------------------------------------------------------------
  1039.  
  1040. loc_83D1:                               ; CODE XREF: sub_8C20-85E
  1041.                 call    ChangeLevel_ifL
  1042.  
  1043.                 jr      nc, loc_83E8
  1044.  
  1045.                 cp      #48 ; 'H'
  1046.                 jr      nz, loc_83F6
  1047.  
  1048.                 call    sub_9571
  1049.  
  1050.                 ld      hl, (word_D25A)
  1051.                 call    sub_8C6B
  1052.  
  1053.                 call    sub_955D
  1054.  
  1055.                 jr      loc_8394
  1056.  
  1057. ; ---------------------------------------------------------------------------
  1058.  
  1059. loc_83E8:                               ; CODE XREF: sub_8C20-84C
  1060.                 call    BEEP_start
  1061.  
  1062.                 ld      a, (byte_D02D)
  1063.                 or      #80
  1064.                 ld      (byte_D0BF), a
  1065.                 jp      loc_8394
  1066.  
  1067. ; ---------------------------------------------------------------------------
  1068.  
  1069. loc_83F6:                               ; CODE XREF: sub_8C20-848
  1070.                 push    af
  1071.                 call    sub_A6E4
  1072.  
  1073.                 pop     af
  1074.                 cp      #41 ; 'A' - analysis
  1075.                 jp      z, loc_841F
  1076.  
  1077.                 cp      #4D ; 'M' - move
  1078.                 jp      z, loc_8CDA
  1079.  
  1080.                 cp      #44 ; 'D' - demo
  1081.                 jp      z, loc_8CD5
  1082.  
  1083.                 cp      #42 ; 'B' - back
  1084.                 jp      z, loc_8443
  1085.  
  1086.                 cp      #46 ; 'F' - forward
  1087.                 jp      z, loc_8A9D
  1088.  
  1089.                 cp      #53 ; 'S' - set position
  1090.                 jp      z, loc_8595
  1091.  
  1092.  
  1093. loc_8419:                               ; CODE XREF: sub_8C20-7AF
  1094.                 call    BEEP_3
  1095.  
  1096.                 jp      loc_8394
  1097.  
  1098. ; ---------------------------------------------------------------------------
  1099.  
  1100. loc_841F:                               ; CODE XREF: sub_8C20-823
  1101. ;'A' - analysis
  1102.                 ld      hl, loc_8394
  1103.                 push    hl
  1104.                 ld      hl, byte_D0B6
  1105.                 ld      a, (hl)
  1106.                 xor     1
  1107.                 and     1
  1108.                 ld      (hl), a
  1109.  
  1110. ; END OF FUNCTION CHUNK FOR sub_8C20
  1111.  
  1112. ; =============== S U B R O U T I N E =======================================
  1113.  
  1114.  
  1115. sub_842C:                               ; CODE XREF: sub_9F0D
  1116.                 ld      hl, byte_D0B6
  1117.                 ld      a, (hl)
  1118.                 or      a
  1119.                 ld      hl, #D00
  1120.                 ld      (scr_XY), hl
  1121.                 ld      hl, a_8spaces   ; "       "
  1122.                 jr      z, loc_843F
  1123.  
  1124.                 ld      hl, aAnalysis   ; "ANALYSI"
  1125.  
  1126.  
  1127. loc_843F:                               ; CODE XREF: sub_842C+E
  1128.                 call    PRINT_STR_FF
  1129.  
  1130.                 ret
  1131.  
  1132. ; End of function sub_842C
  1133.  
  1134. ; ---------------------------------------------------------------------------
  1135. ; START OF FUNCTION CHUNK FOR sub_8C20
  1136.  
  1137. loc_8443:                               ; CODE XREF: sub_8C20-814
  1138. ;'B' - back
  1139.                 jp      loc_8A0D
  1140.  
  1141. ; END OF FUNCTION CHUNK FOR sub_8C20
  1142.  
  1143. ; =============== S U B R O U T I N E =======================================
  1144.  
  1145.  
  1146. sub_8446:                               ; CODE XREF: sub_8C20-917
  1147.                 ld      hl, tbl_D803
  1148.                 ld      de, unk_F000
  1149.  
  1150.  
  1151. loc_844C:                               ; CODE XREF: sub_8446+13
  1152.                 ld      a, (hl)
  1153.                 cp      #FF
  1154.                 jr      z, loc_845B
  1155.  
  1156.                 ld      b, 3
  1157.  
  1158.  
  1159. loc_8453:                               ; CODE XREF: sub_8446+11
  1160.                 ld      a, (hl)
  1161.                 ld      (de), a
  1162.                 inc     hl
  1163.                 inc     de
  1164.                 djnz    loc_8453
  1165.  
  1166.                 jr      loc_844C
  1167.  
  1168. ; ---------------------------------------------------------------------------
  1169.  
  1170. loc_845B:                               ; CODE XREF: sub_8446+9
  1171.                 ld      (de), a
  1172.                 ret
  1173.  
  1174. ; End of function sub_8446
  1175.  
  1176. ; ---------------------------------------------------------------------------
  1177. ; START OF FUNCTION CHUNK FOR sub_8C20
  1178.  
  1179. loc_845D:                               ; CODE XREF: sub_8C20-876
  1180.                 call    sub_8C2D
  1181.  
  1182.                 ld      a, (word_D0BB)
  1183.                 ld      b, a
  1184.                 ld      a, (word_D0BB+1)
  1185.                 ld      c, a
  1186.                 ld      hl, RAM_END_D800
  1187.  
  1188.  
  1189. loc_846B:                               ; CODE XREF: sub_8C20-7AB
  1190.                                         ; sub_8C20-7A5
  1191.                 inc     hl
  1192.                 inc     hl
  1193.                 inc     hl
  1194.                 ld      a, (hl)
  1195.                 cp      #FF
  1196.                 jp      z, loc_8419
  1197.  
  1198.                 cp      b
  1199.                 jr      nz, loc_846B
  1200.  
  1201.                 inc     hl
  1202.                 ld      a, (hl)
  1203.                 dec     hl
  1204.                 cp      c
  1205.                 jr      nz, loc_846B
  1206.  
  1207.                 push    hl
  1208.                 call    sub_A6E4
  1209.  
  1210.                 call    sub_9571
  1211.  
  1212.                 call    BEEP_move
  1213.  
  1214.                 pop     ix
  1215.                 ld      a, (ix+0)
  1216.                 ld      (byte_D0C4), a
  1217.                 call    sub_9FF5
  1218.  
  1219.                 ld      (byte_D0C2), a
  1220.                 ld      a, (ix+1)
  1221.                 ld      (byte_D0C5), a
  1222.                 call    sub_9FF5
  1223.  
  1224.                 ld      (byte_D0C3), a
  1225.                 call    sub_A906
  1226.  
  1227.                 call    sub_BC00
  1228.  
  1229.                 pop     af
  1230.                 push    af
  1231.                 jp      po, loc_8515
  1232.  
  1233.                 ld      hl, byte_D0DF
  1234.                 bit     7, (hl)
  1235.                 res     7, (hl)
  1236.                 ld      a, (byte_D0DC)
  1237.                 jp      nz, loc_84DF
  1238.  
  1239.                 ld      (hl), 8
  1240.                 xor     a
  1241.                 ld      (byte_D0B8), a
  1242.  
  1243.  
  1244. loc_84BF:                               ; CODE XREF: sub_8C20-743
  1245.                 call    sub_93A4
  1246.  
  1247.                 ld      a,#14
  1248.                 call    halt_A_frames
  1249.  
  1250.                 call    sub_8F4D
  1251.  
  1252.                 jr      nz, loc_84DF
  1253.  
  1254.                 call    sub_A909
  1255.  
  1256.                 call    sub_93A4
  1257.  
  1258.                 call    sub_A906
  1259.  
  1260.                 ld      a,#14
  1261.                 call    halt_A_frames
  1262.  
  1263.                 call    sub_8F4D
  1264.  
  1265.                 jr      z, loc_84BF
  1266.  
  1267.  
  1268. loc_84DF:                               ; CODE XREF: sub_8C20-76A
  1269.                                         ; sub_8C20-756
  1270.                 ld      (byte_D0DC), a
  1271.                 call    sub_A909
  1272.  
  1273.                 call    sub_93A4
  1274.  
  1275.                 call    sub_A906
  1276.  
  1277.                 ld      a, (byte_D0DC)
  1278.                 ld      b, 5
  1279.                 cp      #52 ; 'R'
  1280.                 jr      z, loc_8500
  1281.  
  1282.                 ld      b, 3
  1283.                 cp      #4E ; 'N'
  1284.                 jr      z, loc_8500
  1285.  
  1286.                 ld      b,#83 ; '?'
  1287.                 cp      #42 ; 'B'
  1288.                 jr      nz, loc_8512
  1289.  
  1290.  
  1291. loc_8500:                               ; CODE XREF: sub_8C20-72E
  1292.                                         ; sub_8C20-728
  1293.                 ld      l, (ix+1)
  1294.                 ld      h, BRD_88_0/256
  1295.                 ld      l, (hl)
  1296.                 res     2, l
  1297.                 inc     l
  1298.                 inc     h               ; h=word_D100/256
  1299.                 ld      (hl), b
  1300.                 res     7, (ix+2)
  1301.                 call    sub_BC00
  1302.  
  1303.  
  1304. loc_8512:                               ; CODE XREF: sub_8C20-722
  1305.                 call    BEEP_move
  1306.  
  1307.  
  1308. loc_8515:                               ; CODE XREF: sub_8C20-777
  1309.                 ld      a, (byte_D0B1)
  1310.                 cp      #A
  1311.                 call    z, sub_8D6A
  1312.  
  1313.                 jp      loc_8226
  1314.  
  1315. ; ---------------------------------------------------------------------------
  1316.  
  1317. loc_8520:                               ; CODE XREF: sub_8C20-A58
  1318.                                         ; sub_8C20-7D
  1319.                 ld      hl, byte_D0DF
  1320.                 res     5, (hl)
  1321.                 pop     af
  1322.                 push    af
  1323.                 jp      po, loc_8533
  1324.  
  1325.                 ld      hl, (ptr_stk_1bvalue)
  1326.                 dec     hl
  1327.                 ld      (ptr_stk_1bvalue), hl
  1328.                 ld      (hl), #FF
  1329.  
  1330.  
  1331. loc_8533:                               ; CODE XREF: sub_8C20-6F9
  1332.                 ld      hl, (word_D0F7)
  1333.                 dec     hl
  1334.                 ld      (word_D0F7), hl
  1335.                 ld      hl, (ptr_stk_1bvalue)
  1336.                 dec     hl
  1337.                 ld      (ptr_stk_1bvalue), hl
  1338.                 ld      (hl), #FF
  1339.                 call    sub_A909
  1340.  
  1341.                 ld      hl, (word_D059)
  1342.                 ld      (word_D25A), hl
  1343.                 ld      hl, (word_D05C)
  1344.                 ld      a, (byte_D05E)
  1345.                 ld      (word_D059), hl
  1346.                 ld      (byte_D05B), a
  1347.                 ld      a, (byte_D029)
  1348.                 ld      (byte_D00A), a
  1349.                 ld      hl,word_D240-1
  1350.                 ld      de,word_D240+1
  1351.                 ld      bc,#17
  1352.                 lddr
  1353.                 ld      hl, byte_D02D
  1354.                 ld      a, (hl)
  1355.                 xor     1
  1356.                 ld      (hl), a
  1357.                 or      #80
  1358.                 ld      (byte_D0BF), a
  1359.                 rra
  1360.                 jr      c, loc_857C
  1361.  
  1362.                 ld      hl, byte_D049 ;move #
  1363.                 dec     (hl)
  1364.  
  1365. loc_857C:                               ; CODE XREF: sub_8C20-6AA
  1366.                 ld      hl, (word_D059)
  1367.                 ld      (word_D05C), hl
  1368.                 ld      ix, word_D059
  1369.                 call    sub_A903
  1370.  
  1371.                 ld      hl, curkey_D0D9
  1372.                 ld      a, (hl)
  1373.                 ld      (hl), 0
  1374.                 ld      (byte_D0B8), a
  1375.                 jp      loc_83A1
  1376.  
  1377. ; ---------------------------------------------------------------------------
  1378.  
  1379. loc_8595:                               ; CODE XREF: sub_8C20-80A
  1380.                                         ; sub_8C20-24
  1381. ;'S' - set position
  1382.                 xor     a
  1383.                 ld      (byte_D0B7), a
  1384.                 call    sub_9571
  1385.  
  1386.                 ld      a, #FF
  1387.                 ld      (word_D0BB), a
  1388.                 call    sub_955D
  1389.  
  1390.                 call    restore_6_spaces
  1391.  
  1392.                 call    sub_890F
  1393.  
  1394.                 call    sub_A150
  1395.  
  1396.                 ld      hl,#1200
  1397.                 jr      nc, loc_85B4
  1398.  
  1399.                 ld      h, #A
  1400.  
  1401.  
  1402. loc_85B4:                               ; CODE XREF: sub_8C20-670
  1403.                 ld      (scr_XY), hl
  1404.                 ld      hl, aSIXbuf     ; "     "
  1405.                 call    PRINT_STR_scr0
  1406.  
  1407.                 ld      a,#40
  1408.                 ld      (byte_D08E), a
  1409.                 ld      a, (byte_D02D)
  1410.                 rra
  1411.                 ld      a, 6
  1412.                 rra
  1413.                 ld      (byte_D08D), a
  1414.                 ld      hl, byte_D04D
  1415.                 set     0, (hl)
  1416.                 ld      hl, byte_D0B4
  1417.                 set     0, (hl)
  1418.                 set     3, (hl)
  1419.  
  1420.  
  1421. loc_85D8:                               ; CODE XREF: sub_8C20-608
  1422.                                         ; sub_8C20-5E4 ...
  1423.                 call    BEEP_move
  1424.  
  1425.                 jr      loc_85E0
  1426.  
  1427. ; ---------------------------------------------------------------------------
  1428.  
  1429. loc_85DD:                               ; CODE XREF: sub_8C20-4D5
  1430.                 call    BEEP_3
  1431.  
  1432.  
  1433. loc_85E0:                               ; CODE XREF: sub_8C20-645
  1434.                 call    sub_9F0D ;show state and help
  1435.  
  1436.                 ld      hl, #1601
  1437.                 ld      (scr_XY), hl
  1438.                 ld      hl, aWhite      ; "WHIT"
  1439.                 ld      a, (byte_D08D)
  1440.                 rlca
  1441.                 jr      c, loc_85F5
  1442.  
  1443.                 ld      hl, aBlack      ; "BLAC"
  1444.  
  1445.  
  1446. loc_85F5:                               ; CODE XREF: sub_8C20-630
  1447.                 call    PRINT_STR_scr0
  1448.  
  1449.                 ld      hl, byte_D0DF
  1450.                 ld      (hl), 4
  1451.  
  1452.  
  1453. loc_85FD:                               ; CODE XREF: sub_8C20+A
  1454.                 call    sub_955D
  1455.  
  1456.  
  1457. loc_8600:                               ; CODE XREF: sub_8C20-618
  1458.                 call    sub_8F4D
  1459.  
  1460.                 ld      hl, byte_D0B8
  1461.                 ld      a, (hl)
  1462.                 or      a
  1463.                 jr      z, loc_8600
  1464.  
  1465.                 ld      (hl), 0
  1466.                 push    af
  1467.                 call    sub_8C2D
  1468.  
  1469.                 pop     af
  1470.                 cp      #5A ; 'Z'
  1471.                 jr      nz, loc_863F
  1472.  
  1473.                 call    INIT_PRINT_CLOCKS
  1474.  
  1475.                 jr      loc_85D8
  1476.  
  1477. ; ---------------------------------------------------------------------------
  1478.  
  1479. loc_861A:                               ; CODE XREF: sub_8C20-4C8
  1480.                 ld      a, (byte_D08D)
  1481.                 add     a, b
  1482.  
  1483.  
  1484. loc_861E:                               ; CODE XREF: sub_8C20-4DE
  1485.                 ld      c, (hl)
  1486.                 ld      (hl), a
  1487.                 bit     0, c
  1488.                 jr      nz, loc_862E
  1489.  
  1490.                 bit     2, c
  1491.                 jr      z, loc_862E
  1492.  
  1493.                 res     2, c
  1494.                 ld      l, c
  1495.                 inc     h
  1496.                 set     7, (hl)
  1497.  
  1498.  
  1499. loc_862E:                               ; CODE XREF: sub_8C20-5FE
  1500.                                         ; sub_8C20-5FA ...
  1501.                 ld      sp, RAM_END_D800
  1502.                 ld      a, 3
  1503.                 ld      (byte_D04D), a
  1504.                 call    sub_93A4
  1505.  
  1506.                 call    sub_96A6
  1507.  
  1508.                 jp      loc_85D8
  1509.  
  1510. ; ---------------------------------------------------------------------------
  1511.  
  1512. loc_863F:                               ; CODE XREF: sub_8C20-60D
  1513.                 call    ChangeLevel_ifL
  1514.  
  1515.                 jp      nc, loc_85D8
  1516.  
  1517.                 cp      #43 ; 'C'
  1518.                 jr      nz, loc_864E
  1519.  
  1520.                 call    sub_87CD
  1521.  
  1522.                 jr      loc_862E
  1523.  
  1524. ; ---------------------------------------------------------------------------
  1525.  
  1526. loc_864E:                               ; CODE XREF: sub_8C20-5D9
  1527.                 cp      #4D ; 'M'
  1528.                 jr      z, loc_865C
  1529.  
  1530.                 cp      #53 ; 'S'
  1531.                 jp      nz, loc_871C
  1532.  
  1533.                 ld      hl, byte_D0B4
  1534.                 res     0, (hl)
  1535.  
  1536.  
  1537. loc_865C:                               ; CODE XREF: sub_8C20-5D0
  1538.                 ld      hl, #1600
  1539.                 ld      (scr_XY), hl
  1540.                 ld      hl, a_8spaces   ; "       "
  1541.                 call    PRINT_STR_scr0
  1542.  
  1543.                 call    restore_6_spaces
  1544.  
  1545.                 ld      hl, byte_D0DF
  1546.                 res     2, (hl)
  1547.                 ld      a, (byte_D08D)
  1548.                 ld      hl, byte_D02D
  1549.                 ld      b, (hl)
  1550.                 res     0, b
  1551.                 sub     3
  1552.                 ld      (byte_D0B2), a
  1553.                 jr      z, loc_8682
  1554.  
  1555.                 set     0, b
  1556.  
  1557.  
  1558. loc_8682:                               ; CODE XREF: sub_8C20-5A2
  1559.                 ld      a, b
  1560.                 cp      (hl)
  1561.                 jr      z, loc_868C
  1562.  
  1563.                 ld      (hl), b
  1564.                 ld      a, 3
  1565.                 ld      (byte_D04D), a
  1566.  
  1567.  
  1568. loc_868C:                               ; CODE XREF: sub_8C20-59C
  1569.                 ld      a, (byte_D04D)
  1570.                 and     2
  1571.                 jr      z, loc_8712
  1572.  
  1573.                 call    sub_881D
  1574.                 ld      a, #A ;??? сюда никогда не попадаем?
  1575.                 ld      (byte_D049), a ;move #
  1576.                 call    sub_A915
  1577.  
  1578.                 xor     a
  1579.                 ld      (byte_D00A), a
  1580.                 ld      hl, word_D059
  1581.                 ld      b, 6
  1582.  
  1583.  
  1584. loc_86A7:                               ; CODE XREF: sub_8C20-577
  1585.                 ld      (hl), a
  1586.                 inc     l
  1587.                 djnz    loc_86A7
  1588.  
  1589.                 xor     a
  1590.                 ld      (word_D00D), a
  1591.                 ld      ix, word_D059
  1592.                 ld      hl, byte_D02D
  1593.                 inc     (hl)
  1594.                 push    hl
  1595.                 call    sub_BC00
  1596.  
  1597.                 pop     hl
  1598.                 dec     (hl)
  1599.                 or      a
  1600.                 call    z, sub_8C20
  1601.  
  1602.                 ld      a, #FF
  1603.                 ld      (stk_1bvalue), a
  1604.                 ld      hl, #F7F7
  1605.                 ld      (word_D240), hl
  1606.                 ld      hl, byte_D02D
  1607.                 ld      a, (hl)
  1608.                 and     1
  1609.                 ld      b, a
  1610.                 ld      a, (ix+2)
  1611.                 and     #FE
  1612.                 or      b
  1613.                 ld      (byte_D301), a
  1614.                 ld      a, (ix+1)
  1615.                 ld      (byte_D300), a
  1616.                 ld      a, (byte_D00A)
  1617.                 ld      (byte_D302), a
  1618.                 ld      a, (byte_D049) ;move #
  1619.                 ld      (byte_D20C), a ;oldmove #?
  1620.                 ld      hl, word_D100
  1621.                 ld      de, array_64bytes
  1622.                 ld      b, #20 ; ' '
  1623. loc_86F6:                               ; CODE XREF: sub_8C20-51F
  1624.                 ld      a, (hl)
  1625.                 ld      (de), a
  1626.                 inc     hl
  1627.                 inc     de
  1628.                 ld      a, (hl)
  1629.                 ld      (de), a
  1630.                 inc     de
  1631.                 ld      a, l
  1632.                 add     a, 7
  1633.                 ld      l, a
  1634.                 djnz    loc_86F6
  1635.  
  1636.                 ld      hl, stk_1bvalue
  1637.                 ld      (ptr_stk_1bvalue), hl
  1638.                 call    BEEP_move
  1639.  
  1640.                 call    sub_96A6
  1641.  
  1642.                 jp      loc_80CE
  1643.  
  1644. ; ---------------------------------------------------------------------------
  1645.  
  1646. loc_8712:                               ; CODE XREF: sub_8C20-58F
  1647.                 xor     a
  1648.                 ld      (byte_D04D), a
  1649.                 call    BEEP_move
  1650.  
  1651.                 jp      loc_8104
  1652.  
  1653. ; ---------------------------------------------------------------------------
  1654.  
  1655. loc_871C:                               ; CODE XREF: sub_8C20-5CC
  1656.                 cp      #58 ; 'X'
  1657.                 jr      nz, loc_8737
  1658.  
  1659.                 call    restore_6_spaces
  1660.  
  1661.                 ld      hl, byte_D08D
  1662.                 ld      a, (hl)
  1663.                 xor     #80
  1664.                 ld      (hl), a
  1665.                 ld      hl, byte_D0BF
  1666.                 ld      a, (hl)
  1667.                 xor     1
  1668.                 ld      (hl), a
  1669.                 call    sub_8939
  1670.  
  1671.                 jp      loc_85D8
  1672.  
  1673. ; ---------------------------------------------------------------------------
  1674.  
  1675. loc_8737:                               ; CODE XREF: sub_8C20-502
  1676.                 cp      #45 ; 'E'
  1677.                 jr      nz, loc_8745
  1678.  
  1679.                 ld      h, #D0
  1680.                 ld      a, (word_D0BB+1)
  1681.                 ld      l, a
  1682.                 xor     a
  1683.                 jp      loc_861E
  1684.  
  1685. ; ---------------------------------------------------------------------------
  1686.  
  1687. loc_8745:                               ; CODE XREF: sub_8C20-4E7
  1688.                 ld      hl, KING
  1689.                 call    sub_8CF7 ;поиск класса фигуры по имени
  1690.  
  1691.                 jp      c, loc_85DD
  1692.  
  1693.                 inc     hl
  1694.                 inc     hl
  1695.                 ld      a, (hl)
  1696.                 ld      b, a
  1697.                 ld      a, (word_D0BB+1)
  1698.                 ld      l, a
  1699.                 ld      h, BRD_88_0/256
  1700.                 jp      loc_861A
  1701.  
  1702. ; END OF FUNCTION CHUNK FOR sub_8C20
  1703.  
  1704. ; =============== S U B R O U T I N E =======================================
  1705.  
  1706.  
  1707. InitBoard_ClearMoves:                           ; CODE XREF: sub_8C20:loc_80CB
  1708.        if FIX
  1709.         call RandomizeSetup
  1710.        endif
  1711.                 xor     a
  1712.                 ld      (byte_D0FF), a
  1713.                 ld      hl, array_D200
  1714.                 ld      b, #A
  1715. loc_8764:                               ; CODE XREF: InitBoard_ClearMoves+B
  1716.                 ld      (hl), a
  1717.                 inc     l
  1718.                 djnz    loc_8764
  1719.  
  1720.                 ld      (hl), #FF
  1721.                 ld      c, a
  1722.                 ld      b, a
  1723.                 ld      hl, array_D200
  1724. loc_876F:                               ; CODE XREF: InitBoard_ClearMoves+16
  1725.                 dec     hl
  1726.                 ld      (hl), a
  1727.                 djnz    loc_876F
  1728.  
  1729.                 ld      hl, unk_D080
  1730.                 ld      b, #80
  1731. loc_8778:                               ; CODE XREF: InitBoard_ClearMoves+1F
  1732.                 dec     hl
  1733.                 ld      (hl), a
  1734.                 djnz    loc_8778
  1735.  
  1736.                 call    Copy_starting_setup
  1737.  
  1738.                 ld      de, word_D100 ;пустышка (а потом там будет положение короля?)
  1739.                 ld      c, #41
  1740.                 call    sub_87BF ;копирует ряд de по |c в hl
  1741.  
  1742.                 ld      l, #60
  1743.                 ld      c, #C1
  1744.                 call    sub_87BF ;копирует ряд de по |c в hl
  1745.  
  1746.                 ld      c, #81
  1747.                 call    Copy_starting_setup
  1748.  
  1749.        if !FIX
  1750.                 xor     a
  1751.                 ld      (byte_D09E), a
  1752.                 inc     a
  1753.        else
  1754.         ld a,1
  1755.         ld (byte_D09E), a ;end of opening?
  1756.        endif
  1757.                 ld      (byte_D0B2), a
  1758.                 ld      (byte_D02D), a
  1759.                 ld      (byte_D0BF), a
  1760.                 ld      (byte_D049), a ;move #
  1761.                 ld      (byte_D097), a
  1762.                 ld      (byte_D20C), a ;oldmove #?
  1763.                 ld      hl, stk_1bvalue
  1764.                 ld      (ptr_stk_1bvalue), hl
  1765.                 ld      hl, RAM_END_D800
  1766.                 ld      (word_D099), hl
  1767.                 call    sub_87DE
  1768.  
  1769.                 jp      loc_8828
  1770.  
  1771. ; End of function InitBoard_ClearMoves
  1772.  
  1773.  
  1774. ; =============== S U B R O U T I N E =======================================
  1775.  
  1776. Copy_starting_setup:                            ; CODE XREF: InitBoard_ClearMoves+21 InitBoard_ClearMoves+35
  1777.                 ld      de, starting_setup
  1778. ; End of function Copy_starting_setup
  1779. ; =============== S U B R O U T I N E =======================================
  1780. sub_87BF:                               ; CODE XREF: InitBoard_ClearMoves+29 InitBoard_ClearMoves+30
  1781.                 ld      b, 8
  1782. loc_87C1:                               ; CODE XREF: sub_87BF+7
  1783.                 ld      a, (de)
  1784.                 or      c
  1785.                 ld      (hl), a
  1786.                 inc     l
  1787.                 inc     de
  1788.                 djnz    loc_87C1
  1789.  
  1790.                 ld      a, 8
  1791.                 add     a, l
  1792.                 ld      l, a
  1793.                 ret
  1794.  
  1795. ; End of function sub_87BF
  1796.  
  1797.  
  1798. ; =============== S U B R O U T I N E =======================================
  1799.  
  1800.  
  1801. sub_87CD:                               ; CODE XREF: sub_8C20-5D7
  1802.                                         ; sub_8C20-1D7
  1803.                 call    sub_A262
  1804.  
  1805.                 xor     a
  1806.                 ld      hl, BRD_88_0
  1807. loc_87D4:                               ; CODE XREF: sub_87CD+B
  1808.                 ld      (hl), a
  1809. loc_87D5:                               ; CODE XREF: sub_87CD+F
  1810.                 inc     l
  1811.                 bit     3, l
  1812.                 jr      z, loc_87D4
  1813.                 bit     7, l
  1814.                 jr      z, loc_87D5
  1815.  
  1816. ; End of function sub_87CD
  1817.  
  1818.  
  1819. ; =============== S U B R O U T I N E =======================================
  1820.  
  1821. sub_87DE:                               ; CODE XREF: InitBoard_ClearMoves+5B
  1822.                 ld      hl, word_D100
  1823.                 xor     a
  1824. loc_87E2:                               ; CODE XREF: sub_87DE+9
  1825.                 set     7, (hl)
  1826.                 add     a, 8
  1827.                 ld      l, a
  1828.                 jr      nc, loc_87E2
  1829.                 ret
  1830.  
  1831. ; End of function sub_87DE
  1832.  
  1833.  
  1834. ; =============== S U B R O U T I N E =======================================
  1835.  
  1836.  
  1837. sub_87EA:                               ; CODE XREF: sub_87EA+30 sub_881D+3     ...
  1838.                 ld      d, (hl)
  1839.                 bit     7, d
  1840.                 jr      nz, loc_8814
  1841.  
  1842.                 inc     l
  1843.                 ld      b, (hl)
  1844.                 dec     l
  1845.                 ld      a, b
  1846.                 and     #F
  1847.                 dec     a
  1848.                 jr      z, loc_8814
  1849.  
  1850.                 set     7, (hl)
  1851.                 ld      a, l
  1852.                 and     #80
  1853.                 or      3
  1854.                 ld      e, a
  1855.                 ld      a, b
  1856.                 and     #8F
  1857.                 push    hl
  1858.                 ld      hl, KING-1
  1859.                 call    sub_8CF7 ;поиск класса фигуры по цене
  1860.  
  1861.                 inc     hl
  1862.                 inc     hl
  1863.                 inc     hl
  1864.                 ld      a, (hl)
  1865.                 or      e
  1866.                 ld      h, #D0  ; 'Р'
  1867.                 ld      l, d
  1868.                 ld      (hl), a
  1869.                 pop     hl
  1870.  
  1871.  
  1872. loc_8814:                               ; CODE XREF: sub_87EA+3 sub_87EA+C
  1873.                 ld      a, l
  1874.                 add     a, 8
  1875.                 ld      l, a
  1876.                 bit     6, a
  1877.                 jr      nz, sub_87EA
  1878.  
  1879.                 ret
  1880.  
  1881. ; End of function sub_87EA
  1882.  
  1883.  
  1884. ; =============== S U B R O U T I N E =======================================
  1885.  
  1886.  
  1887. sub_881D:                               ; CODE XREF: sub_8C20-58D
  1888.                 ld      hl, unk_D140
  1889.                 call    sub_87EA
  1890.  
  1891.                 ld      l, #C0          ; word_D1C0&255
  1892.                 call    sub_87EA
  1893.  
  1894.  
  1895. loc_8828:                               ; CODE XREF: InitBoard_ClearMoves+5E
  1896.                 ld      de, BRD_88_0
  1897.                 ld      h, word_D100/256
  1898.  
  1899.  
  1900. loc_882D:                               ; CODE XREF: sub_881D+1A sub_881D+22
  1901.                 ld      a, (de)         ; bytes from D000 are pointers into D100 table
  1902.                 bit     0, a
  1903.                 call    nz, sub_8853
  1904.  
  1905.                 ld      a, #10
  1906.                 add     a, e
  1907.                 ld      e, a
  1908.                 jp      p, loc_882D
  1909.  
  1910.                 res     7, e
  1911.                 inc     e
  1912.                 bit     3, a
  1913.                 jr      z, loc_882D
  1914.  
  1915.                 ld      l, 0            ; word_D100&255
  1916.                 call    sub_884D
  1917.  
  1918.                 ld      l, #80          ; word_D180&255
  1919.                 ld      a, b
  1920.                 or      (hl)
  1921.                 jp      m, sub_8C20     ; illegal setup
  1922.  
  1923. ; End of function sub_881D
  1924.  
  1925.  
  1926. ; =============== S U B R O U T I N E =======================================
  1927.  
  1928.  
  1929. sub_884D:                               ; CODE XREF: sub_881D+26
  1930.  
  1931. ; FUNCTION CHUNK AT A912 SIZE 00000003 BYTES
  1932.  
  1933.                 ld      b, (hl)
  1934.                 inc     l
  1935.                 ld      a, (hl)
  1936.                 jp      loc_A912
  1937.  
  1938. ; End of function sub_884D
  1939.  
  1940.  
  1941. ; =============== S U B R O U T I N E =======================================
  1942.  
  1943.  
  1944. sub_8853:                               ; CODE XREF: sub_881D+13
  1945.                 ld      l, a
  1946.                 dec     l
  1947.                 bit     6, l
  1948.                 jr      z, loc_8879
  1949.  
  1950.                 ld      a, #70 ; 'p'
  1951.                 and     e
  1952.                 jr      z, loc_88D7
  1953.  
  1954.                 cp      #70 ; 'p'
  1955.                 jr      z, loc_88D7
  1956.  
  1957.                 ld      b, 1
  1958.                 ld      a, #80
  1959.                 and     l
  1960.                 xor     #80
  1961.                 scf
  1962.                 rra
  1963.                 ld      c, a
  1964.                 ld      a, e
  1965.                 and     7
  1966.                 cp      3
  1967.                 jr      z, loc_88DB
  1968.  
  1969.                 cp      4
  1970.                 jr      z, loc_88DB
  1971.  
  1972.                 jr      loc_88BB
  1973.  
  1974. ; ---------------------------------------------------------------------------
  1975.  
  1976. loc_8879:                               ; CODE XREF: sub_8853+4
  1977.                 ld      a, #78 ; 'x'
  1978.                 and     l
  1979.                 jr      nz, loc_888D
  1980.  
  1981.                 ld      c, 1
  1982.                 ld      b, 0
  1983.                 bit     1, l
  1984.                 jr      z, loc_8888
  1985.  
  1986.                 ld      b, #30 ; '0'
  1987.  
  1988.  
  1989. loc_8888:                               ; CODE XREF: sub_8853+31
  1990.                 call    sub_88E9
  1991.  
  1992.                 jr      loc_88D7
  1993.  
  1994. ; ---------------------------------------------------------------------------
  1995.  
  1996. loc_888D:                               ; CODE XREF: sub_8853+29
  1997.                 cp      #10
  1998.                 ld      c, #E
  1999.                 ld      b, 9
  2000.                 jr      c, loc_88B2
  2001.  
  2002.                 jr      nz, loc_88A3
  2003.  
  2004.                 ld      c, 8
  2005.                 ld      b, 5
  2006.                 bit     1, l
  2007.                 jr      z, loc_88AF
  2008.  
  2009.                 ld      b, #15
  2010.                 jr      loc_88AF
  2011.  
  2012. ; ---------------------------------------------------------------------------
  2013.  
  2014. loc_88A3:                               ; CODE XREF: sub_8853+42
  2015.                 ld      b, 3
  2016.                 ld      c, 0
  2017.                 cp      #20 ; ' '
  2018.                 jr      nz, loc_88AF
  2019.  
  2020.                 ld      b, #83 ; '?'
  2021.                 ld      c, 4
  2022.  
  2023.  
  2024. loc_88AF:                               ; CODE XREF: sub_8853+4A sub_8853+4E ...
  2025.                 call    sub_88E9
  2026.  
  2027.  
  2028. loc_88B2:                               ; CODE XREF: sub_8853+40
  2029.                 call    sub_88E9
  2030.  
  2031.  
  2032. loc_88B5:                               ; CODE XREF: sub_8853+94
  2033.                 ld      a, #82 ; '''
  2034.                 and     l
  2035.                 set     6, a
  2036.                 ld      l, a
  2037.  
  2038.  
  2039. loc_88BB:                               ; CODE XREF: sub_8853+24 sub_8853+77
  2040.                 call    sub_88E9
  2041.  
  2042.                 call    sub_88E9
  2043.  
  2044.                 call    sub_88E9
  2045.  
  2046.                 ld      a, l
  2047.                 add     a, #10
  2048.                 ld      l, a
  2049.                 bit     6, a
  2050.                 jr      nz, loc_88BB
  2051.  
  2052.                 xor     #80
  2053.                 or      #58
  2054.                 ld      l, a
  2055.                 call    sub_88E9
  2056.  
  2057.                 call    sub_88E9
  2058.  
  2059.  
  2060. loc_88D7:                               ; CODE XREF: sub_8853+9 sub_8853+D ...
  2061.                 pop     hl
  2062.                 jp      sub_8C20
  2063.  
  2064. ; ---------------------------------------------------------------------------
  2065.  
  2066. loc_88DB:                               ; CODE XREF: sub_8853+1E sub_8853+22
  2067.                 ld      a, l
  2068.                 and     #82
  2069.                 or      #58
  2070.                 ld      l, a
  2071.                 call    sub_88E9
  2072.  
  2073.                 call    sub_88E9
  2074.  
  2075.                 jr      loc_88B5
  2076.  
  2077. ; End of function sub_8853
  2078.  
  2079.  
  2080. ; =============== S U B R O U T I N E =======================================
  2081.  
  2082.  
  2083. sub_88E9:                               ; CODE XREF: sub_8853:loc_8888
  2084.                                         ; sub_8853:loc_88AF ...
  2085.                 res     1, l
  2086.                 ld      a, (hl)
  2087.                 rla
  2088.                 jr      c, loc_88F4
  2089.  
  2090.                 ld      a, 8
  2091.                 add     a, l
  2092.                 ld      l, a
  2093.                 ret
  2094.  
  2095. ; ---------------------------------------------------------------------------
  2096.  
  2097. loc_88F4:                               ; CODE XREF: sub_88E9+4
  2098.                 ld      (hl), e         ; D000 (hl) and D100 (de) point to each other here
  2099.                 ld      a, l
  2100.                 set     2, a
  2101.                 ld      (de), a
  2102.                 inc     l
  2103.                 ld      (hl), b
  2104.                 set     2, l
  2105.                 inc     l
  2106.                 ld      (hl), c
  2107.                 pop     bc
  2108.                 ret
  2109.  
  2110. ; End of function sub_88E9
  2111.  
  2112. ; ---------------------------------------------------------------------------
  2113. starting_setup:
  2114.         ;db     #11,#31,#21,#09,#01,#21,#31,#11
  2115.         db      _R,_N,_B,_Q,_K,_B,_N,_R
  2116.  
  2117. aSIXbuf:        db      '      '
  2118.                 EOS
  2119.  
  2120. ; =============== S U B R O U T I N E =======================================
  2121.  
  2122.  
  2123. sub_890F:                               ; CODE XREF: sub_8C20-679
  2124.                                         ; restore_6_spaces+D ...
  2125.                 ld      hl, #61A
  2126.                 ld      (scr_XY), hl
  2127.                 ld      hl, aSIXbuf     ; "     "
  2128.                 call    PRINT_STR_FF
  2129.  
  2130.                 ld      hl, #1700
  2131.                 ld      (scr_XY), hl
  2132.                 ld      hl, aSIXbuf     ; "     "
  2133.                 call    PRINT_STR_scr0
  2134.  
  2135.                 ret
  2136.  
  2137. ; End of function sub_890F
  2138.  
  2139.  
  2140. ; =============== S U B R O U T I N E =======================================
  2141.  
  2142.  
  2143. restore_6_spaces:                       ; CODE XREF: sub_8C20-67C
  2144.                                         ; sub_8C20-5B8 ...
  2145.                 ld      hl, aSIXbuf     ; "     "
  2146.                 ld      b, 5
  2147.                 ld      a, #20 ; ' '
  2148.  
  2149.  
  2150. loc_892F:                               ; CODE XREF: restore_6_spaces+9
  2151.                 ld      (hl), a
  2152.                 inc     hl
  2153.                 djnz    loc_892F
  2154.  
  2155.                 ld      (hl),' '|#80
  2156.                 call    sub_890F
  2157.  
  2158.                 ret
  2159.  
  2160. ; End of function restore_6_spaces
  2161.  
  2162.  
  2163. ; =============== S U B R O U T I N E =======================================
  2164.  
  2165.  
  2166. sub_8939:                               ; CODE XREF: sub_8C20-4EF
  2167.                                         ; sub_9128+37   ...
  2168.                 call    restore_6_spaces
  2169.  
  2170.                 ld      hl, aSIXbuf     ; "     "
  2171.                 ld      a, (word_D0BB)
  2172.                 cp      #FF
  2173.                 jr      nz, loc_8949
  2174.  
  2175.                 ld      a, (word_D0BB+1)
  2176.  
  2177.  
  2178. loc_8949:                               ; CODE XREF: sub_8939+B
  2179.                 call    sub_8960 ;вывод имени поля A в hl
  2180.  
  2181.                 ld      a, (word_D0BB)
  2182.                 cp      #FF
  2183.                 jr      z, loc_895C
  2184.  
  2185.                 ld      (hl),'-'
  2186.                 inc     hl
  2187.                 ld      a, (word_D0BB+1)
  2188.                 call    sub_8960 ;вывод имени поля A в hl
  2189.  
  2190.  
  2191. loc_895C:                               ; CODE XREF: sub_8939+18
  2192.                 call    sub_890F
  2193.  
  2194.                 ret
  2195.  
  2196. ; End of function sub_8939
  2197.  
  2198.  
  2199. ; =============== S U B R O U T I N E =======================================
  2200.  
  2201.  
  2202. sub_8960:                               ; CODE XREF: sub_8939:loc_8949
  2203. ;вывод имени поля A в hl                                        ; sub_8939+20   ...
  2204.                 ld      b, a
  2205.                 and     #F
  2206.                 add     a,'a'
  2207.                 ld      (hl), a
  2208.                 inc     hl
  2209.                 ld      a, b
  2210.                 and     #F0
  2211.                 rlca
  2212.                 rlca
  2213.                 rlca
  2214.                 rlca
  2215.                 neg
  2216.                 add     a, 7
  2217.                 add     a,'1'
  2218.                 ld      (hl), a
  2219.                 inc     hl
  2220.                 ret
  2221.  
  2222. ; End of function sub_8960
  2223.  
  2224.  
  2225. ; =============== S U B R O U T I N E =======================================
  2226.  
  2227.  
  2228. sub_8977:                               ; CODE XREF: sub_8C20:loc_8283
  2229. ;вывод хода в buf_10bytes
  2230. ;(ix+0)=откуда ходим
  2231. ;(ix+1)=куда ходим (при рокировке записан ход короля)
  2232. ;(ix+2)D3=съедение
  2233. ;(ix+2)D4=рокировка, (ix+1)D2=короткая (годится и для Chess960)
  2234. ;(ix+2)D7=шах
  2235.                 ld      hl, buf_10bytes
  2236.                 ld      b, #A
  2237. loc_897C:                               ; CODE XREF: sub_8977+8
  2238.                 ld      (hl), #20 ; ' '
  2239.                 inc     hl
  2240.                 djnz    loc_897C
  2241.  
  2242.                 xor     a
  2243.                 ld      (byte_D0DC), a
  2244.  
  2245.                 bit     4, (ix+2)
  2246.                 jr      z, loc_89A4 ;не рокировка
  2247.                 ld      hl, aOOO        ; "O-O-O"
  2248.                 ld      de, buf_10bytes+1
  2249.                 ld      c, 5
  2250.                 bit     2, (ix+1)
  2251.                 jr      z, loc_899E ;рокируем в левую половину доски
  2252.                 inc     hl
  2253.                 inc     hl ;"O-O"
  2254.                 inc     de
  2255.                 ld      c, 3
  2256. loc_899E:                               ; CODE XREF: sub_8977+20
  2257.                 ldir
  2258.                 ex      de, hl
  2259.                 dec     hl
  2260.                 jr      loc_89FB
  2261.  
  2262. ; ---------------------------------------------------------------------------
  2263.  
  2264. loc_89A4:                               ; CODE XREF: sub_8977+12
  2265.                 ld      hl, buf_10bytes
  2266.                 ld      a, (byte_D0C2)
  2267.                 ld      (hl), a
  2268.                 inc     hl
  2269.                 ld      a, (ix+0)
  2270.                 call    sub_8960 ;вывод имени поля A в hl
  2271.  
  2272.                 ld      (hl),'-'
  2273.                 bit     3, (ix+2)
  2274.                 jr      z, loc_89BC ;просто ход
  2275.                 ld      (hl),'x' ;съедение
  2276. loc_89BC:                               ; CODE XREF: sub_8977+41
  2277.                 inc     hl
  2278.                 ld      a, (ix+1)
  2279.                 call    sub_8960 ;вывод имени поля A в hl
  2280.  
  2281.                 dec     hl
  2282.                 pop     de
  2283.                 pop     af
  2284.                 push    af
  2285.                 push    de
  2286.                 jp      po, loc_89F3 ;not promotion
  2287.  
  2288.                 inc     hl
  2289.                 ld      (hl), '/'
  2290.                 inc     hl
  2291.                 push    hl
  2292.                 ld      hl, (ptr_stk_1bvalue)
  2293.                 dec     hl
  2294.                 ld      a, (hl)
  2295.                 and     #8F
  2296.                 pop     hl
  2297.                 ld      b, 'Q'
  2298.                 cp      9
  2299.                 jr      z, loc_89EC
  2300.                 ld      b, 'R'
  2301.                 cp      5
  2302.                 jr      z, loc_89EC
  2303.                 ld      b, 'B'
  2304.                 cp      #83
  2305.                 jr      z, loc_89EC
  2306.                 ld      b, 'N'
  2307. loc_89EC:                               ; CODE XREF: sub_8977+65 sub_8977+6B ...
  2308.                 ld      a, b
  2309.                 ld      (hl), a
  2310.                 ld      (byte_D0DC), a
  2311.                 jr      loc_89FB
  2312.  
  2313. ; ---------------------------------------------------------------------------
  2314.  
  2315. loc_89F3:                               ; CODE XREF: sub_8977+51
  2316.                 jr      nc, loc_89FB
  2317.  
  2318.                 inc     hl
  2319.                 ld      (hl), #65 ; 'e'
  2320.                 inc     hl
  2321.                 ld      (hl), #70 ; 'p'
  2322.  
  2323.  
  2324. loc_89FB:                               ; CODE XREF: sub_8977+2B sub_8977+7A ...
  2325.                 bit     7, (ix+2)
  2326.                 jr      z, loc_8A04
  2327.  
  2328.                 inc     hl
  2329.                 ld      (hl), '+'
  2330.  
  2331.  
  2332. loc_8A04:                               ; CODE XREF: sub_8977+88
  2333.                 set     7, (hl)
  2334.                 ret
  2335.  
  2336. ; End of function sub_8977
  2337.  
  2338. ; ---------------------------------------------------------------------------
  2339. ; START OF FUNCTION CHUNK FOR sub_8C20
  2340.  
  2341. loc_8A07:                               ; CODE XREF: sub_8C20-204
  2342.                                         ; sub_8C20-167
  2343.                 call    BEEP_3
  2344.  
  2345.                 jp      loc_8378
  2346.  
  2347. ; ---------------------------------------------------------------------------
  2348.  
  2349. loc_8A0D:                               ; CODE XREF: sub_8C20:loc_8443
  2350. ;'B' - back
  2351.         if FIX
  2352.          call setoldrnd
  2353.         endif
  2354.                 call    sub_9571
  2355.  
  2356.                 ld      a, (word_D0BB)
  2357.                 or      a
  2358.                 call    p, sub_9595
  2359.  
  2360.                 ld      hl, (word_D0F7)
  2361.                 ld      a, l
  2362.                 or      h
  2363.                 jp      z, loc_8A07
  2364.  
  2365.                 ld      a, (byte_D0F4)
  2366.                 ld      c, a
  2367.                 ld      b, 0
  2368.                 ld      hl, (word_D088)
  2369.                 sbc     hl, bc
  2370.                 jr      nc, loc_8A2F
  2371.  
  2372.                 ld      hl, 0
  2373.  
  2374.  
  2375. loc_8A2F:                               ; CODE XREF: sub_8C20-1F6
  2376.                 ld      (word_D088), hl
  2377.  
  2378.  
  2379. loc_8A32:                               ; CODE XREF: sub_8C20-11
  2380.                                         ; sub_8C20+172A ...
  2381.                 call    BEEP_move
  2382.  
  2383.                 call    sub_96A6
  2384.  
  2385.                 ld      hl, (word_D0F7)
  2386.                 dec     hl
  2387.                 ld      (word_D09F), hl
  2388.                 ld      a, (byte_D20C) ;oldmove #
  2389.                 ld      (byte_D049), a ;move #
  2390.                 dec     a
  2391.                 jp      z, loc_80CB
  2392.  
  2393.                 call    sub_87CD
  2394.  
  2395.                 ld      de, array_64bytes
  2396.                 ld      a, (byte_D300)
  2397.                 ld      (word_D059+1), a
  2398.                 ld      a, (byte_D301)
  2399.                 ld      (byte_D05B), a
  2400.                 ld      (byte_D02D), a
  2401.                 and     1
  2402.                 ld      (byte_D0B2), a
  2403.                 ld      (byte_D0BF), a
  2404.                 ld      a, (byte_D302)
  2405.                 ld      (byte_D00A), a
  2406.                 ld      hl, word_D100
  2407.                 ld      b, #20 ; ' '
  2408.  
  2409.  
  2410. loc_8A71:                               ; CODE XREF: sub_8C20-1A4
  2411.                 ld      a, (de)
  2412.                 ld      (hl), a
  2413.                 inc     hl
  2414.                 inc     de
  2415.                 ld      a, (de)
  2416.                 ld      (hl), a
  2417.                 inc     de
  2418.                 ld      a, l
  2419.                 add     a, 7
  2420.                 ld      l, a
  2421.                 djnz    loc_8A71
  2422.  
  2423.                 ld      hl, word_D100
  2424.                 ld      de, BRD_88_0
  2425.  
  2426.  
  2427. loc_8A84:                               ; CODE XREF: sub_8C20-18E
  2428.                 ld      a, (hl)
  2429.                 or      a
  2430.                 jp      m, loc_8A8E
  2431.  
  2432.                 ld      e, a
  2433.                 ld      a, l
  2434.                 or      4
  2435.                 ld      (de), a
  2436.  
  2437.  
  2438. loc_8A8E:                               ; CODE XREF: sub_8C20-19A
  2439.                 ld      a, l
  2440.                 add     a, 8
  2441.                 ld      l, a
  2442.                 jr      nc, loc_8A84
  2443.  
  2444.                 ld      hl, stk_1bvalue
  2445.                 ld      (ptr_stk_1bvalue), hl
  2446.                 jp      loc_80CE
  2447.  
  2448. ; ---------------------------------------------------------------------------
  2449.  
  2450. loc_8A9D:                               ; CODE XREF: sub_8C20-80F
  2451. ;'F' - forward
  2452.                 call    sub_9571
  2453.  
  2454.                 ld      a, (word_D0BB)
  2455.                 or      a
  2456.                 call    p, sub_9595
  2457.  
  2458.                 ld      a, (byte_D0F4)
  2459.                 ld      c, a
  2460.                 ld      b, 0
  2461.                 ld      hl, (word_D088)
  2462.                 add     hl, bc
  2463.                 ld      (word_D088), hl ; add byte D0F4 to word D088
  2464.                 ld      hl, (ptr_stk_1bvalue)
  2465.                 ld      a, (hl)
  2466.                 inc     a
  2467.                 jp      z, loc_8A07     ; check gor end mark on stack
  2468.  
  2469.                 ld      hl, (word_D0F7)
  2470.                 inc     hl
  2471.                 ld      (word_D09F), hl
  2472.                 call    BEEP_move
  2473.  
  2474.                 jp      loc_810A
  2475.  
  2476. ; ---------------------------------------------------------------------------
  2477.  
  2478. loc_8AC9:                               ; CODE XREF: sub_8C20-119
  2479.                 ld      hl, 0
  2480.                 ld      (word_D09F), hl
  2481.                 ld      a, (byte_D02D)
  2482.                 and     1
  2483.                 ld      (byte_D0B2), a
  2484.                 ld      hl, (ptr_stk_1bvalue)
  2485.                 dec     hl
  2486.                 ld      (ptr_stk_1bvalue), hl
  2487.                 ld      hl, (word_D0F7)
  2488.                 dec     hl
  2489.                 ld      (word_D0F7), hl
  2490.                 jp      loc_82EB
  2491.  
  2492. ; ---------------------------------------------------------------------------
  2493.  
  2494. loc_8AE8:                               ; CODE XREF: sub_8C20-AFF
  2495.                 ld      sp, RAM_END_D800
  2496.                 ld      de, (word_D0F7)
  2497.                 or      a
  2498.                 sbc     hl, de
  2499.                 jp      z, loc_8B58
  2500.  
  2501.                 inc     de
  2502.                 ld      (word_D0F7), de
  2503.                 ld      hl, (ptr_stk_1bvalue)
  2504.                 ld      c, (hl)
  2505.                 ld      b, 0
  2506.                 inc     hl
  2507.                 ld      (ptr_stk_1bvalue), hl
  2508.                 ld      a, c
  2509.                 cp      #FF
  2510.                 jr      z, loc_8AC9     ; if end mark
  2511.  
  2512.                 res     7, c
  2513.                 ld      hl, tbl_D803    ; index into 3byte structs array
  2514.                 add     hl, bc
  2515.                 add     hl, bc
  2516.                 add     hl, bc
  2517.                 push    af
  2518.                 push    hl
  2519.                 ld      ix, word_D059
  2520.                 call    sub_A903
  2521.  
  2522.                 pop     ix
  2523.                 pop     af
  2524.                 rla
  2525.                 jr      nc, loc_8B24
  2526.  
  2527.                 set     7, (ix+2)
  2528.  
  2529.  
  2530. loc_8B24:                               ; CODE XREF: sub_8C20-102
  2531.                 ld      a, (ix+0)
  2532.                 call    sub_9FF5
  2533.  
  2534.                 ld      (byte_D0C2), a
  2535.                 ld      a, (ix+1)
  2536.                 call    sub_9FF5
  2537.  
  2538.                 ld      (byte_D0C3), a
  2539.                 call    sub_A906
  2540.  
  2541.                 pop     af
  2542.                 push    af
  2543.                 jp      po, loc_8253
  2544.  
  2545.                 ld      hl, (ptr_stk_1bvalue)
  2546.                 ld      b, (hl)
  2547.                 inc     hl
  2548.                 ld      (ptr_stk_1bvalue), hl
  2549.                 ld      l, (ix+1)
  2550.                 ld      h, BRD_88_0/256
  2551.                 ld      l, (hl)
  2552.                 res     2, l
  2553.                 inc     l
  2554.                 inc     h               ; word_D100/256
  2555.                 ld      (hl), b
  2556.                 xor     a
  2557.                 ld      (byte_D00A), a
  2558.                 jp      loc_8283
  2559.  
  2560. ; ---------------------------------------------------------------------------
  2561.  
  2562. loc_8B58:                               ; CODE XREF: sub_8C20-12E
  2563.                 ld      (word_D09F), hl
  2564.                 ld      a, (byte_D02D)
  2565.                 and     1
  2566.                 ld      (byte_D0B2), a
  2567.                 jp      loc_8104
  2568.  
  2569. ; END OF FUNCTION CHUNK FOR sub_8C20
  2570.  
  2571. ; =============== S U B R O U T I N E =======================================
  2572.  
  2573.  
  2574. sub_8B66:                               ; CODE XREF: sub_8C20-99A
  2575.                 ld      hl, (word_D059)
  2576.                 ld      (word_D05C), hl
  2577.                 ld      a, (byte_D05B)
  2578.                 ld      (byte_D05E), a
  2579.                 ld      l, (ix+0)
  2580.                 ld      h, (ix+1)
  2581.                 ld      a, (ix+2)
  2582.                 ld      (word_D059), hl
  2583.                 ld      (byte_D05B), a
  2584.                 ld      hl, unk_D22B
  2585.                 ld      de, unk_D229
  2586.                 ld      bc, #19         ; 25
  2587.                 ldir
  2588.                 ret
  2589.  
  2590. ; End of function sub_8B66
  2591.  
  2592. ; ---------------------------------------------------------------------------
  2593. ; START OF FUNCTION CHUNK FOR sub_8C20
  2594.  
  2595. loc_8B8D:                               ; CODE XREF: sub_8C20-A54
  2596.                                         ; sub_8C20-91A
  2597.                 ld      hl, aCheckmate  ; "CHECKMAT"
  2598.                 ld      a, (byte_D05B)
  2599.                 rla
  2600.                 jr      c, loc_8B9E
  2601.  
  2602.                 ld      hl, aStalemate  ; "STALEMAT"
  2603.                 jr      loc_8B9E
  2604.  
  2605. ; ---------------------------------------------------------------------------
  2606.  
  2607. loc_8B9B:                               ; CODE XREF: sub_8C20-B0C
  2608.                                         ; sub_8C20-AD9
  2609.                 ld      hl, aDraw       ; "DRA"
  2610.  
  2611.  
  2612. loc_8B9E:                               ; CODE XREF: sub_8C20-8C sub_8C20-87
  2613.                 ld      a, (byte_D0B4)
  2614.                 bit     5, a
  2615.                 jp      nz, loc_8520
  2616.  
  2617.                 xor     a
  2618.                 ld      (byte_D0BF), a
  2619.                 push    hl
  2620.                 call    sub_A43C
  2621.  
  2622.                 call    sub_A45A
  2623.  
  2624.                 call    sub_A43C
  2625.  
  2626.                 pop     hl
  2627.                 call    sub_9E68
  2628.  
  2629.                 ld      hl, aBBackSSetPosn_ ; "B - Back          S - Set posn. G - new"...
  2630.                 ld      de, #1000
  2631.                 call    sub_9F42
  2632.  
  2633.                 call    sub_9939
  2634.  
  2635.                 ld      a, (byte_D02D)
  2636.                 ld      hl, word_D100
  2637.                 rra
  2638.                 jr      nc, loc_8BCF
  2639.  
  2640.                 ld      l, #80 ; '?'
  2641.  
  2642.  
  2643. loc_8BCF:                               ; CODE XREF: sub_8C20-55
  2644.                 ld      b, #30 ; '0'
  2645.                 ld      d, 0
  2646.                 ld      l, (hl)
  2647.                 dec     h               ; BRD_88_0/256
  2648.                 ld      e, (hl)
  2649.                 ld      c, e
  2650.                 or      a
  2651.  
  2652.  
  2653. loc_8BD8:                               ; CODE XREF: sub_8C20-8 sub_8C20-5
  2654.                 ld      a, e
  2655.                 ld      e, d
  2656.                 ld      d, a
  2657.                 ld      (hl), e
  2658.                 push    bc
  2659.                 push    hl
  2660.                 push    de
  2661.                 call    c, BEEP_move
  2662.  
  2663.                 call    sub_93A4
  2664.  
  2665.                 ld      hl, byte_D0DF
  2666.                 ld      (hl), 8
  2667.                 ld      a, #A
  2668.                 call    sub_8C34
  2669.  
  2670.                 pop     de
  2671.                 pop     hl
  2672.                 pop     bc
  2673.                 ld      (hl), c
  2674.                 jr      z, loc_8C13
  2675.  
  2676.                 cp      #53 ; 'S'
  2677.                 jr      nz, loc_8BFF
  2678.  
  2679.                 call    sub_93A4
  2680.  
  2681.                 jp      loc_8595
  2682.  
  2683. ; ---------------------------------------------------------------------------
  2684.  
  2685. loc_8BFF:                               ; CODE XREF: sub_8C20-29
  2686.                 cp      #42 ; 'B'
  2687.                 jr      nz, loc_8C12
  2688.  
  2689.                 push    hl
  2690.                 ld      hl, byte_D0B4
  2691.                 res     1, (hl)
  2692.                 ld      hl, (word_D0F7)
  2693.                 ld      a, l
  2694.                 or      h
  2695.                 pop     hl
  2696.                 jp      nz, loc_8A32
  2697.  
  2698.  
  2699. loc_8C12:                               ; CODE XREF: sub_8C20-1F
  2700.                 scf
  2701.  
  2702.  
  2703. loc_8C13:                               ; CODE XREF: sub_8C20-2D
  2704.                 ld      a, (byte_D0B4)
  2705.                 bit     1, a
  2706.                 jp      z, loc_8BD8
  2707.  
  2708.                 djnz    loc_8BD8
  2709.  
  2710.                 jp      NEW_GAME
  2711.  
  2712. ; END OF FUNCTION CHUNK FOR sub_8C20
  2713.  
  2714. ; =============== S U B R O U T I N E =======================================
  2715.  
  2716.  
  2717. sub_8C20:                               ; CODE XREF: sub_8C20-562
  2718.                                         ; sub_881D+2D   ...
  2719.  
  2720. ; FUNCTION CHUNK AT 80A1 SIZE 0000038B BYTES
  2721. ; FUNCTION CHUNK AT 8443 SIZE 00000003 BYTES
  2722. ; FUNCTION CHUNK AT 845D SIZE 000002FE BYTES
  2723. ; FUNCTION CHUNK AT 8A07 SIZE 0000015F BYTES
  2724. ; FUNCTION CHUNK AT 8B8D SIZE 00000093 BYTES
  2725. ; FUNCTION CHUNK AT 8CD5 SIZE 00000022 BYTES
  2726. ; FUNCTION CHUNK AT A29F SIZE 00000112 BYTES
  2727. ; FUNCTION CHUNK AT A4F4 SIZE 00000035 BYTES
  2728. ; FUNCTION CHUNK AT A596 SIZE 000000EE BYTES
  2729.  
  2730.                 pop     hl
  2731.                 ld      hl, aIllegalSetup ; "ILLEGAL SETU"
  2732.                 call    sub_9E68
  2733.  
  2734.                 call    BEEP_3
  2735.  
  2736.                 jp      loc_85FD
  2737.  
  2738. ; End of function sub_8C20
  2739.  
  2740.  
  2741. ; =============== S U B R O U T I N E =======================================
  2742.  
  2743.  
  2744. sub_8C2D:                               ; CODE XREF: sub_8C20-AE4
  2745.                                         ; sub_8C20:loc_845D ...
  2746.                 ld      hl, a_32spaces  ; "                        "
  2747.                 call    sub_9E68
  2748.  
  2749.                 ret
  2750.  
  2751. ; End of function sub_8C2D
  2752.  
  2753.  
  2754. ; =============== S U B R O U T I N E =======================================
  2755.  
  2756.  
  2757. sub_8C34:                               ; CODE XREF: sub_8C20-34 sub_8C6B+3D ...
  2758.                 xor     a
  2759.                 ld      (byte_D0B8), a
  2760.  
  2761. loc_8C38:
  2762.                 ld      a, #A
  2763.  
  2764.  
  2765. loc_8C3A:                               ; CODE XREF: sub_8C34+8
  2766.                 halt
  2767.                 dec     a
  2768.                 jr      nz, loc_8C3A
  2769.  
  2770.                 call    sub_8F4D
  2771.  
  2772.                 ld      a, (byte_D0B8)
  2773.                 push    af
  2774.                 xor     a
  2775.                 ld      (byte_D0B8), a
  2776.                 pop     af
  2777.                 or      a
  2778.                 ret
  2779.  
  2780. ; End of function sub_8C34
  2781.  
  2782. ; ---------------------------------------------------------------------------
  2783.         if !FIX
  2784.                 ld      c, #A
  2785. loc_8C4E:                               ; CODE XREF: RAM:8C56
  2786.                 ld      a, #25 ; '%'
  2787. loc_8C50:                               ; CODE XREF: RAM:loc_8C50 RAM:8C53
  2788.                 djnz    $
  2789.                 dec     a
  2790.                 jr      nz, loc_8C50
  2791.                 dec     c
  2792.                 jr      nz, loc_8C4E
  2793.                 ret
  2794.  
  2795. ; ---------------------------------------------------------------------------
  2796.                 ld      a, (byte_D0B3) ;d3=swap board
  2797.                 bit     4, a
  2798.                 ret     z
  2799.                 bit     6, a
  2800.                 ret     nz
  2801.                 ld      hl, byte_D0B4
  2802.                 bit     5, (hl)
  2803.                 ret     nz
  2804.                 ld      hl, (tbl_D803)
  2805.         endif
  2806.  
  2807. ; =============== S U B R O U T I N E =======================================
  2808.  
  2809.  
  2810. sub_8C6B:                               ; CODE XREF: sub_8C20-840
  2811.                                         ; sub_8FC1+37
  2812.                 ld      a, l
  2813.                 or      h
  2814.                 ret     z
  2815.                 ld      a, l
  2816.                 call    sub_8CC1
  2817.  
  2818.                 ld      c, a
  2819.                 ld      a, h
  2820.                 call    sub_8CC1
  2821.  
  2822.                 ld      b, 0
  2823.                 ld      hl, BOARD
  2824.                 add     hl, bc
  2825.                 ld      e, (hl)
  2826.                 ld      b, a
  2827.                 ld      hl, BOARD
  2828.                 add     a, l
  2829.                 ld      l, a
  2830.                 ld      a, 0
  2831.                 adc     a, h
  2832.                 ld      h, a
  2833.                 ld      d, (hl)
  2834.                 ld      hl, byte_D0B3 ;d3=swap board
  2835.                 bit     3, (hl)
  2836.                 jr      z, loc_8C98
  2837.  
  2838.                 ld      a, b
  2839.                 xor     #3F ; '?'
  2840.                 ld      b, a
  2841.                 ld      a, c
  2842.                 xor     #3F ; '?'
  2843.                 ld      c, a
  2844.  
  2845.  
  2846. loc_8C98:                               ; CODE XREF: sub_8C6B+23
  2847.                 push    de
  2848.                 push    bc
  2849.                 ld      c, e
  2850.                 ld      a, b
  2851.                 call    SHOW_FIG_POS
  2852.  
  2853.                 pop     bc
  2854.                 push    bc
  2855.                 ld      a, c
  2856.                 call    SH_EMPT_POS
  2857.  
  2858.                 call    BEEP_move
  2859.  
  2860.                 call    sub_8C34
  2861.  
  2862.                 call    sub_8C34
  2863.  
  2864.                 pop     bc
  2865.                 pop     de
  2866.                 push    de
  2867.                 push    bc
  2868.                 ld      a, c
  2869.                 ld      c, e
  2870.                 call    SHOW_FIG_POS
  2871.  
  2872.                 pop     bc
  2873.                 pop     de
  2874.                 ld      a, b
  2875.                 ld      c, d
  2876.                 call    SHOW_FIG_POS
  2877.  
  2878.                 or      1
  2879.                 ret
  2880.  
  2881. ; End of function sub_8C6B
  2882.  
  2883.  
  2884. ; =============== S U B R O U T I N E =======================================
  2885.  
  2886.  
  2887. sub_8CC1:                               ; CODE XREF: sub_8C6B+4 sub_8C6B+9
  2888.                 push    af
  2889.                 and     7
  2890.                 ld      b, a
  2891.                 pop     af
  2892.                 rra
  2893.                 and     #38 ; '8'
  2894.                 add     a, b
  2895.                 push    hl
  2896.                 ld      hl, byte_D0B3 ;d3=swap board
  2897.                 bit     3, (hl)
  2898.                 pop     hl
  2899.                 ret     z
  2900.                 xor     #3F ; '?'
  2901.                 ret
  2902.  
  2903. ; End of function sub_8CC1
  2904.  
  2905. ; ---------------------------------------------------------------------------
  2906. ; START OF FUNCTION CHUNK FOR sub_8C20
  2907.  
  2908. loc_8CD5:                               ; CODE XREF: sub_8C20-819
  2909. ;'D' - demo
  2910.                 ld      hl, byte_D0B4
  2911.                 set     1, (hl)
  2912.  
  2913.  
  2914. loc_8CDA:                               ; CODE XREF: sub_8C20-81E
  2915. ;'M' - move
  2916.                 call    BEEP_move
  2917.  
  2918.                 ld      a, (word_D0BB)
  2919.                 or      a
  2920.                 call    p, sub_9595
  2921.  
  2922.                 ld      hl, byte_D0B4
  2923.                 res     0, (hl)
  2924.  
  2925.  
  2926. loc_8CE9:                               ; CODE XREF: sub_8C20-AA1
  2927.                                         ; sub_8C20-92A
  2928.                 ld      hl, byte_D0B2
  2929.                 ld      a, (hl)
  2930.                 or      a
  2931.                 ld      a, #16
  2932.                 jr      z, loc_8CF3
  2933.  
  2934.                 xor     a
  2935.  
  2936.  
  2937. loc_8CF3:                               ; CODE XREF: sub_8C20+D0
  2938.                 ld      (hl), a
  2939.                 jp      loc_810A
  2940.  
  2941. ; END OF FUNCTION CHUNK FOR sub_8C20
  2942.  
  2943. ; =============== S U B R O U T I N E =======================================
  2944.  
  2945.  
  2946. sub_8CF7:                               ; CODE XREF: sub_8C20-4D8
  2947. ;поиск класса фигуры по номеру, коду, имени                                     ; sub_87EA+1D   ...
  2948.                 ld      b, 6
  2949.  
  2950.  
  2951. loc_8CF9:                               ; CODE XREF: sub_8CF7+8
  2952.                 cp      (hl)
  2953.                 ret     z
  2954.                 inc     hl
  2955.                 inc     hl
  2956.                 inc     hl
  2957.                 inc     hl
  2958.                 djnz    loc_8CF9
  2959.  
  2960.                 scf
  2961.                 ret
  2962.  
  2963. ; End of function sub_8CF7
  2964.  
  2965. ; ---------------------------------------------------------------------------
  2966.                 db    0    ;цена K              ; DATA XREF: sub_87EA+1A sub_9FF5+20
  2967. KING:           db  'K'    ;имя K                         ; DATA XREF: sub_8C20:loc_8745
  2968.                 db    6    ;номер K             ; DATA XREF: sub_94C9:loc_94FF
  2969.                 db    0    ;код K
  2970.                 db    9    ;цена Q
  2971.                 db  'Q'    ;имя Q
  2972.                 db    5    ;номер Q
  2973.                 db    8    ;код Q
  2974.                 db    5    ;цена R
  2975.                 db  'R'    ;имя R
  2976.                 db    4    ;номер R
  2977.                 db  #10    ;код R
  2978.                 db  #83    ;цена B
  2979.                 db  'B'    ;имя B
  2980.                 db    3    ;номер B
  2981.                 db  #20    ;код B
  2982.                 db    3    ;цена N
  2983.                 db  'N'    ;имя N
  2984.                 db    2    ;номер N
  2985.                 db  #30    ;код N
  2986.                 db    1    ;цена P
  2987.                 db  'P'    ;имя P
  2988.                 db    1    ;номер P
  2989.                 db  #40    ;код P
  2990.  
  2991. ; =============== S U B R O U T I N E =======================================
  2992.  
  2993.  
  2994. ChangeLevel_ifL:                                ; CODE XREF: sub_8C20:loc_83D1
  2995.                                         ; sub_8C20:loc_863F
  2996.                 cp      #4C ; 'L'
  2997.                 scf
  2998.                 ret     nz
  2999.                 ld      a, (byte_D0B1)
  3000.  
  3001.  
  3002. loc_8D22:                               ; CODE XREF: ChangeLevel_ifL+8 ChangeLevel_ifL+C
  3003.                 inc     a
  3004.                 jr      z, loc_8D22
  3005.  
  3006.                 cp      #D
  3007.                 jr      nc, loc_8D22
  3008.  
  3009.                 ld      (byte_D0B1), a
  3010.  
  3011. ; End of function ChangeLevel_ifL
  3012.  
  3013.  
  3014. ; =============== S U B R O U T I N E =======================================
  3015.  
  3016.  
  3017. sub_8D2C:                               ; CODE XREF: sub_9EE6+23
  3018.                 ld      a, (byte_D0B1)
  3019.                 push    af
  3020.                 or      a
  3021.                 call    sub_A915
  3022.  
  3023.                 ld      a, #FF
  3024.                 ld      (NEED_SCR2BUF), a
  3025.                 pop     af
  3026.                 ld      de, #41B
  3027.                 ld      (scr_XY), de
  3028.                 cp      #A
  3029.                 jr      nc, loc_8D56
  3030.  
  3031.                 push    af
  3032.                 ld      a, #20 ; ' '
  3033.                 call    PRINT_LETTER
  3034.  
  3035.                 pop     af
  3036.                 add     a, #30 ; '0'
  3037.                 call    PRINT_LETTER
  3038.  
  3039.                 ld      hl,  a_8spaces+5
  3040.                 jr      loc_8D65
  3041.  
  3042. ; ---------------------------------------------------------------------------
  3043.  
  3044. loc_8D56:                               ; CODE XREF: sub_8D2C+17
  3045.                 ld      hl, a_ADAP      ; "ADA"
  3046.                 jr      z, loc_8D65
  3047.  
  3048.                 ld      hl, a_INF       ; "INF"
  3049.                 cp      #B
  3050.                 jr      z, loc_8D65
  3051.  
  3052.                 ld      hl, aProb       ; "PRO"
  3053.  
  3054.  
  3055. loc_8D65:                               ; CODE XREF: sub_8D2C+28 sub_8D2C+2D ...
  3056.                 call    PRINT_STR_FF
  3057.  
  3058.                 xor     a
  3059.                 ret
  3060.  
  3061. ; End of function sub_8D2C
  3062.  
  3063.  
  3064. ; =============== S U B R O U T I N E =======================================
  3065.  
  3066.  
  3067. sub_8D6A:                               ; CODE XREF: sub_8C20-706
  3068.                                         ; sub_8DE9+68
  3069.                 ld      a, (byte_D0F4)
  3070.                 ld      c, a
  3071.                 ld      b, 0
  3072.                 ld      h, b
  3073.                 ld      l, c
  3074.                 add     hl, hl
  3075.                 add     hl, hl
  3076.                 add     hl, bc
  3077.                 add     hl, bc
  3078.                 add     hl, bc
  3079.                 ld      bc, (INC_SECONDS)
  3080.                 dec     bc
  3081.                 dec     bc
  3082.                 bit     7, b
  3083.                 jr      z, loc_8D84
  3084.  
  3085.                 ld      bc, 0
  3086.  
  3087.  
  3088. loc_8D84:                               ; CODE XREF: sub_8D6A+15
  3089.                 add     hl, bc
  3090.                 ld      b, 3
  3091.  
  3092.  
  3093. loc_8D87:                               ; CODE XREF: sub_8D6A+21
  3094.                 srl     h
  3095.                 rr      l
  3096.                 djnz    loc_8D87
  3097.  
  3098.                 ld      a, h
  3099.                 or      a
  3100.                 jr      z, loc_8D93
  3101.  
  3102.                 ld      l, #FE  ; 'ю'
  3103.  
  3104.  
  3105. loc_8D93:                               ; CODE XREF: sub_8D6A+25
  3106.                 ld      a, l
  3107.                 cp      2
  3108.                 jr      nc, loc_8D9A
  3109.  
  3110.                 ld      a, 2
  3111.  
  3112.  
  3113. loc_8D9A:                               ; CODE XREF: sub_8D6A+2C
  3114.                 ld      (byte_D0F4), a
  3115.                 ret
  3116.  
  3117. ; End of function sub_8D6A
  3118.  
  3119.  
  3120. ; =============== S U B R O U T I N E =======================================
  3121.  
  3122.  
  3123. sub_8D9E:                               ; CODE XREF: sub_8C20-989
  3124.                                         ; sub_9128+10E ...
  3125.                 push    ix
  3126.                 push    hl
  3127.                 push    de
  3128.                 push    bc
  3129.                 ld      hl, byte_D0B4
  3130.                 bit     5, (hl)
  3131.                 jr      z, loc_8DB0
  3132.  
  3133.                 call    BEEP_move
  3134.  
  3135.                 call    sub_8C2D
  3136.  
  3137.  
  3138. loc_8DB0:                               ; CODE XREF: sub_8D9E+A
  3139.                 ld      a, (SEL_SCRorBUF)
  3140.                 or      a
  3141.                 jr      z, loc_8DBC
  3142.  
  3143.                 call    ShowBOARD2
  3144.  
  3145.                 jp      loc_8E2C
  3146.  
  3147. ; ---------------------------------------------------------------------------
  3148.  
  3149. loc_8DBC:                               ; CODE XREF: sub_8D9E+16
  3150.                 ld      a, (byte_D0C4) ;a=0b0YYY0XXX
  3151.                 call    sub_96F7 ;count scr_XY, scr_pix_addr, scr_attr_addr with swap board
  3152.  
  3153.                 ld      hl, (scr_XY)
  3154.                 ld      (word_D0C6), hl
  3155.                 ld      a, (byte_D0C5) ;a=0b0YYY0XXX
  3156.                 call    sub_96F7 ;count scr_XY, scr_pix_addr, scr_attr_addr with swap board
  3157.  
  3158.                 ld      hl, (scr_XY)
  3159.                 ld      (word_D0C8), hl
  3160.                 ld      bc, (word_D0C6)
  3161.                 call    sub_8EFB ;write bc=scr_XY, scr_pix_addr, scr_attr_addr to TAPE_header+...
  3162.  
  3163.                 call    sub_8E81
  3164.  
  3165.                 ld      hl, byte_D0DF
  3166.                 set     0, (hl)
  3167.                 xor     a
  3168.                 ld      (DECREMENT_50HZ), a
  3169.                 jr      loc_8DF3
  3170.  
  3171. ; End of function sub_8D9E
  3172.  
  3173.  
  3174. ; =============== S U B R O U T I N E =======================================
  3175.  
  3176.  
  3177. sub_8DE9:                               ; CODE XREF: sub_8F4D:loc_8FBC
  3178.                 ld      a, (DECREMENT_50HZ)
  3179.                 or      a
  3180.                 ret     p
  3181.                 push    ix
  3182.                 push    hl
  3183.                 push    de
  3184.                 push    bc
  3185.  
  3186.  
  3187. loc_8DF3:                               ; CODE XREF: sub_8D9E+49
  3188.                 call    sub_8EA7
  3189.  
  3190.                 ld      hl, (word_D0C6)
  3191.                 ld      de, (word_D0C8)
  3192.                 ld      a, h
  3193.                 cp      d
  3194.                 jr      z, loc_8E06
  3195.  
  3196.                 inc     h
  3197.                 jr      c, loc_8E06
  3198.  
  3199.                 dec     h
  3200.                 dec     h
  3201.  
  3202.  
  3203. loc_8E06:                               ; CODE XREF: sub_8DE9+16 sub_8DE9+19
  3204.                 ld      a, l
  3205.                 cp      e
  3206.                 jr      z, loc_8E0F
  3207.  
  3208.                 inc     l
  3209.                 jr      c, loc_8E0F
  3210.  
  3211.                 dec     l
  3212.                 dec     l
  3213.  
  3214.  
  3215. loc_8E0F:                               ; CODE XREF: sub_8DE9+1F sub_8DE9+22
  3216.                 ld      (word_D0C6), hl
  3217.                 or      a
  3218.                 sbc     hl, de
  3219.                 push    af
  3220.                 ld      bc, (word_D0C6)
  3221.                 call    sub_8EFB ;write bc=scr_XY, scr_pix_addr, scr_attr_addr to TAPE_header+...
  3222.  
  3223.                 call    sub_8EA3
  3224.  
  3225.                 pop     af
  3226.                 jr      z, loc_8E2C
  3227.  
  3228.                 ld      hl, DECREMENT_50HZ
  3229.                 ld      a, (hl)
  3230.                 add     a, 8            ; figure move speed
  3231.                 ld      (hl), a
  3232.                 jr      loc_8E7B
  3233.  
  3234. ; ---------------------------------------------------------------------------
  3235.  
  3236. loc_8E2C:                               ; CODE XREF: sub_8D9E+1B sub_8DE9+38
  3237.                 ld      hl, byte_D0B4
  3238.                 bit     5, (hl)
  3239.                 jr      z, loc_8E73
  3240.  
  3241.                 call    sub_A6E4
  3242.  
  3243.                 call    sub_9FB2
  3244.  
  3245.                 ld      a, (byte_D0B6)
  3246.                 bit     2, a
  3247.                 call    nz, sub_A684
  3248.  
  3249.                 ld      hl, BOARD2
  3250.                 ld      de, BOARD
  3251.                 ld      bc, #40
  3252.                 ldir
  3253.                 ld      a, (byte_D0B1)
  3254.                 cp      #A
  3255.                 call    z, sub_8D6A
  3256.  
  3257.                 ld      hl, (INC_SECONDS)
  3258.                 ld      (word_D02B), hl
  3259.                 ld      hl, 0
  3260.                 ld      (INC_SECONDS), hl
  3261.                 call    ShowBOARD
  3262.  
  3263.                 ld      hl, byte_D0B3 ;d3=swap board
  3264.                 bit     5, (hl)
  3265.                 ld      hl, byte_D0B4
  3266.                 jr      z, loc_8E71
  3267.  
  3268.                 set     7, (hl)
  3269.                 res     1, (hl)
  3270.  
  3271.  
  3272. loc_8E71:                               ; CODE XREF: sub_8DE9+82
  3273.                 res     5, (hl)
  3274.  
  3275.  
  3276. loc_8E73:                               ; CODE XREF: sub_8DE9+48
  3277.                 ld      hl, byte_D0DF
  3278.                 res     0, (hl)
  3279.                 call    sub_9F0D ;show state and help
  3280.  
  3281.  
  3282. loc_8E7B:                               ; CODE XREF: sub_8DE9+41
  3283.                 pop     bc
  3284.                 pop     de
  3285.                 pop     hl
  3286.                 pop     ix
  3287.                 ret
  3288.  
  3289. ; End of function sub_8DE9
  3290.  
  3291.  
  3292. ; =============== S U B R O U T I N E =======================================
  3293.  
  3294.  
  3295. sub_8E81:                               ; CODE XREF: sub_8D9E+3D
  3296.                 ld      c, 3
  3297.                 ld      hl,  TAPE_header+2
  3298.  
  3299.  
  3300. loc_8E86:                               ; CODE XREF: sub_8E81+1A
  3301.                 ld      b, #18
  3302.                 xor     a
  3303.  
  3304.  
  3305. loc_8E89:                               ; CODE XREF: sub_8E81+A
  3306.                 ld      (hl), a
  3307.                 inc     hl
  3308.                 djnz    loc_8E89
  3309.  
  3310.                 ld      e, (hl)
  3311.                 inc     hl
  3312.                 ld      d, (hl)
  3313.                 inc     hl
  3314.                 ld      b, 3
  3315.                 ld      a, (de)
  3316.  
  3317.  
  3318. loc_8E94:                               ; CODE XREF: sub_8E81+15
  3319.                 ld      (hl), a
  3320.                 inc     hl
  3321.                 djnz    loc_8E94
  3322.  
  3323.                 inc     hl
  3324.                 inc     hl
  3325.                 dec     c
  3326.                 jr      nz, loc_8E86
  3327.  
  3328.                 and     7
  3329.                 ld      (byte_D0CB), a
  3330.                 ret
  3331.  
  3332. ; End of function sub_8E81
  3333.  
  3334.  
  3335. ; =============== S U B R O U T I N E =======================================
  3336.  
  3337.  
  3338. sub_8EA3:                               ; CODE XREF: sub_8DE9+34
  3339.                 ld      a, 1
  3340.                 jr      loc_8EA8
  3341.  
  3342. ; End of function sub_8EA3
  3343.  
  3344.  
  3345. ; =============== S U B R O U T I N E =======================================
  3346.  
  3347.  
  3348. sub_8EA7:                               ; CODE XREF: sub_8DE9:loc_8DF3
  3349.                 xor     a
  3350.  
  3351.  
  3352. loc_8EA8:                               ; CODE XREF: sub_8EA3+2
  3353.                 ld      (byte_D0CC), a
  3354.                 ld      b, 3
  3355.                 exx
  3356.                 ld      hl, TAPE_header
  3357.  
  3358.  
  3359. loc_8EB1:                               ; CODE XREF: sub_8EA7+3B sub_8EA7+51
  3360.                 ld      e, (hl)
  3361.                 inc     hl
  3362.                 ld      d, (hl)
  3363.                 inc     hl
  3364.                 ld      c, 8
  3365.  
  3366.  
  3367. loc_8EB7:                               ; CODE XREF: sub_8EA7+20
  3368.                 push    de
  3369.                 ld      b, 3
  3370.  
  3371.  
  3372. loc_8EBA:                               ; CODE XREF: sub_8EA7+1B
  3373.                 ld      a, (de)
  3374.                 ex      af, af' ;'
  3375.                 ld      a, (hl)
  3376.                 ld      (de), a
  3377.                 ex      af, af' ;'
  3378.                 ld      (hl), a
  3379.                 inc     de
  3380.                 inc     hl
  3381.                 djnz    loc_8EBA
  3382.  
  3383.                 pop     de
  3384.                 inc     d
  3385.                 dec     c
  3386.                 jr      nz, loc_8EB7
  3387.  
  3388.                 ld      e, (hl)
  3389.                 inc     hl
  3390.                 ld      d, (hl)
  3391.                 inc     hl
  3392.                 ld      a, (byte_D0CC)
  3393.                 or      a
  3394.                 jr      nz, loc_8EE5
  3395.  
  3396.                 ld      b, 3
  3397.  
  3398.  
  3399. loc_8ED5:                               ; CODE XREF: sub_8EA7+36
  3400.                 ld      a, (de)
  3401.                 ex      af, af' ;'
  3402.                 ld      a, (hl)
  3403.                 ld      (de), a
  3404.                 ex      af, af' ;'
  3405.                 ld      (hl), a
  3406.                 inc     hl
  3407.                 inc     de
  3408.                 djnz    loc_8ED5
  3409.  
  3410.                 exx
  3411.                 dec     b
  3412.                 exx
  3413.                 jr      nz, loc_8EB1
  3414.  
  3415.                 ret
  3416.  
  3417. ; ---------------------------------------------------------------------------
  3418.  
  3419. loc_8EE5:                               ; CODE XREF: sub_8EA7+2A
  3420.                 ld      a, (byte_D0CB)
  3421.                 ld      c, a
  3422.                 ld      b, 3
  3423.  
  3424.  
  3425. loc_8EEB:                               ; CODE XREF: sub_8EA7+4C
  3426.                 ld      a, (de)
  3427.                 ld      (hl), a
  3428.                 and     #F8 ; 'ш'
  3429.                 or      c
  3430.                 ld      (de), a
  3431.                 inc     hl
  3432.                 inc     de
  3433.                 djnz    loc_8EEB
  3434.  
  3435.                 exx
  3436.                 dec     b
  3437.                 exx
  3438.                 jr      nz, loc_8EB1
  3439.  
  3440.                 ret
  3441.  
  3442. ; End of function sub_8EA7
  3443.  
  3444.  
  3445. ; =============== S U B R O U T I N E =======================================
  3446. ;write bc=scr_XY, scr_pix_addr, scr_attr_addr to TAPE_header+...
  3447.  
  3448. sub_8EFB:                               ; CODE XREF: sub_8D9E+3A sub_8DE9+31
  3449.                 ld      ix, TAPE_header
  3450.                 ld      (scr_XY), bc
  3451.                 call    CALC_SCR_ADDRS ;scr_XY to scr_pix_addr, scr_attr_addr
  3452.  
  3453.                 ld      hl, (scr_pix_addr)
  3454.                 ld      (ix+0), l
  3455.                 ld      (ix+1), h
  3456.                 ld      hl, (scr_attr_addr)
  3457.                 ld      (ix+#1A), l
  3458.                 ld      (ix+#1B), h
  3459.                 inc     b
  3460.                 ld      (scr_XY), bc
  3461.                 call    CALC_SCR_ADDRS ;scr_XY to scr_pix_addr, scr_attr_addr
  3462.  
  3463.                 ld      hl, (scr_pix_addr)
  3464.                 ld      (ix+#1F), l
  3465.                 ld      (ix+#20), h
  3466.                 ld      hl, (scr_attr_addr)
  3467.                 ld      (ix+#39), l
  3468.                 ld      (ix+#3A), h
  3469.                 inc     b
  3470.                 ld      (scr_XY), bc
  3471.                 call    CALC_SCR_ADDRS ;scr_XY to scr_pix_addr, scr_attr_addr
  3472.  
  3473.                 ld      hl, (scr_pix_addr)
  3474.                 ld      (ix+#3E), l
  3475.                 ld      (ix+#3F), h
  3476.                 ld      hl, (scr_attr_addr)
  3477.                 ld      (ix+#58), l
  3478.                 ld      (ix+#59), h
  3479.                 ret
  3480.  
  3481. ; End of function sub_8EFB
  3482.  
  3483.  
  3484. ; =============== S U B R O U T I N E =======================================
  3485.  
  3486.  
  3487. sub_8F4D:                               ; CODE XREF: sub_8C20-A6F
  3488.                                         ; sub_8C20:loc_829A ...
  3489.                 push    ix
  3490.                 push    iy
  3491.                 ld      hl, bas_5C78
  3492.                 ld      a, (hl)
  3493.                 cp      50
  3494.                 jr      c, loc_8F9B
  3495.                 sub     50
  3496.                 ld      (hl), a
  3497.  
  3498.                 ;1 second passed
  3499.                 ld      hl, (INC_SECONDS)
  3500.                 inc     hl
  3501.                 ld      (INC_SECONDS), hl
  3502.  
  3503.                 ld      a, (byte_D0B4)
  3504.                 bit     5, a
  3505.                 jr      nz, loc_8F94
  3506.  
  3507.                 bit     6, a
  3508.                 jr      z, loc_8F94
  3509.  
  3510.                 ld      a, (byte_D0F4)
  3511.                 inc     a
  3512.                 jr      z, loc_8F94
  3513.  
  3514.                 push    bc
  3515.                 ld      a, (byte_D0F3)
  3516.                 ld      b, 0
  3517.                 add     a, a
  3518.                 rl      b
  3519.                 cp      l
  3520.                 jr      nz, loc_8F93
  3521.  
  3522.                 ld      a, b
  3523.                 cp      h
  3524.                 jr      nz, loc_8F93
  3525.  
  3526.                 ld      hl, byte_D0B4
  3527.                 set     7, (hl)
  3528.                 ld      hl, byte_D0F1
  3529.                 dec     (hl)
  3530.                 ld      a, (hl)
  3531.                 and     #F0
  3532.                 jr      nz, loc_8F93
  3533.  
  3534.                 inc     (hl)
  3535.  
  3536.  
  3537. loc_8F93:                               ; CODE XREF: sub_8F4D+31 sub_8F4D+35 ...
  3538.                 pop     bc
  3539.  
  3540.  
  3541. loc_8F94:                               ; CODE XREF: sub_8F4D+1B sub_8F4D+1F ...
  3542.                 ld      a, (byte_D0DF)
  3543.                 rra
  3544.                 call    nc, sub_9018
  3545.  
  3546.  
  3547. loc_8F9B:                               ; CODE XREF: sub_8F4D+A
  3548.                 ld      a, (byte_D0DF)
  3549.                 rra
  3550.                 jr      c, loc_8FBC
  3551.  
  3552.                 call    KEY_SCAN
  3553.                 push    af
  3554.                 ld      hl, byte_D0DF
  3555.                 bit     5, (hl)
  3556.                 jr      z, loc_8FB2
  3557.  
  3558.                 pop     af
  3559.                 call    sub_924C
  3560.  
  3561.                 jr      loc_8FB6
  3562.  
  3563. ; ---------------------------------------------------------------------------
  3564.  
  3565. loc_8FB2:                               ; CODE XREF: sub_8F4D+5D
  3566.                 pop     af
  3567.                 call    c, sub_8FC1
  3568.  
  3569.  
  3570. loc_8FB6:                               ; CODE XREF: sub_8F4D+63 sub_8F4D+72
  3571.                 pop     iy
  3572.                 pop     ix
  3573.                 or      a
  3574.                 ret
  3575.  
  3576. ; ---------------------------------------------------------------------------
  3577.  
  3578. loc_8FBC:                               ; CODE XREF: sub_8F4D+52
  3579.                 call    sub_8DE9
  3580.  
  3581.                 jr      loc_8FB6
  3582.  
  3583. ; End of function sub_8F4D
  3584.  
  3585.  
  3586. ; =============== S U B R O U T I N E =======================================
  3587.  
  3588.  
  3589. sub_8FC1:                               ; CODE XREF: sub_8F4D+66
  3590.  
  3591. ; FUNCTION CHUNK AT 90E1 SIZE 00000007 BYTES
  3592.  
  3593.                 ld      hl, byte_D0B8
  3594.                 ld      a, (hl)
  3595.                 ld      (hl), 0
  3596.                 cp      #20 ; ' '
  3597.                 jp      z, sub_95C5
  3598.  
  3599.                 cp      #47 ; 'G'
  3600.                 call    z, sub_92D7
  3601.  
  3602.                 ld      (hl), a
  3603.                 ld      hl, byte_D0B4
  3604.                 bit     6, (hl)
  3605.                 jr      z, loc_8FFC
  3606.  
  3607.                 ld      a, (byte_D0B8)
  3608.                 cp      #4D ; 'M'
  3609.                 ld      hl, byte_D0B4
  3610.                 jr      nz, loc_8FE7
  3611.  
  3612.                 set     7, (hl)
  3613.                 res     1, (hl)
  3614.  
  3615. loc_8FE7:                               ; CODE XREF: sub_8FC1+20
  3616.                 bit     5, (hl)
  3617.                 jp      nz, loc_90E1
  3618.  
  3619.                 ld      hl, byte_D0B8
  3620.                 ld      a, (hl)
  3621.                 ld      (hl), 0
  3622.                 cp      #48 ; 'H'
  3623.                 ret     nz
  3624.                 ld      hl, (tbl_D803)
  3625.                 call    sub_8C6B
  3626.                 ret
  3627.  
  3628. ; ---------------------------------------------------------------------------
  3629.  
  3630. loc_8FFC:                               ; CODE XREF: sub_8FC1+16
  3631.                 ld      hl, byte_D0B8
  3632.                 ld      a, (hl)
  3633.                 ld      hl, byte_D0DF
  3634.                 bit     3, (hl)
  3635.                 jr      z, loc_9008
  3636.                 ret
  3637. ; ---------------------------------------------------------------------------
  3638. loc_9008:                               ; CODE XREF: sub_8FC1+44
  3639.                 or      a
  3640.                 ret     nz
  3641.                 call    sub_9128 ;ввод имени поля?
  3642.                 ret
  3643.  
  3644. ; End of function sub_8FC1
  3645.  
  3646. ; ---------------------------------------------------------------------------
  3647. ; START OF FUNCTION CHUNK FOR HotKeys
  3648.  
  3649. HotKeys_keepkey_pop_ret:                                ; CODE XREF: HotKeys+A HotKeys+F ...
  3650.                 ld      (curkey_D0D9), a
  3651.                 ld      hl, byte_D0B4
  3652.                 set     7, (hl)
  3653.                 pop     af
  3654.                 ret
  3655.  
  3656. ; END OF FUNCTION CHUNK FOR HotKeys
  3657.  
  3658. ; =============== S U B R O U T I N E =======================================
  3659.  
  3660.  
  3661. sub_9018:                               ; CODE XREF: sub_8F4D+4B
  3662.                 ld      a, (byte_D04D)
  3663.                 rra
  3664.                 ret     c
  3665.                 ld      a, (byte_D0BF)
  3666.                 or      a
  3667.                 ret     p
  3668.                 push    iy
  3669.                 push    bc
  3670.                 push    de
  3671.                 ld      hl, (scr_XY)
  3672.                 push    hl
  3673.                 call    sub_A164
  3674.  
  3675.                 ld      de, CLK_1
  3676.                 ld      hl, #405
  3677.                 jr      c, loc_903A
  3678.  
  3679.                 ld      de, CLK_2
  3680.                 ld      l, #F
  3681.  
  3682.  
  3683. loc_903A:                               ; CODE XREF: sub_9018+1B
  3684.                 ld      (scr_XY), hl
  3685.                 push    de
  3686.                 ex      de, hl
  3687.                 ld      de, 7
  3688.                 add     hl, de
  3689.                 push    hl
  3690.                 res     7, (hl)
  3691.  
  3692.  
  3693. loc_9046:                               ; CODE XREF: sub_9018+41
  3694.                 inc     (hl)
  3695.                 ld      a, (hl)
  3696.                 cp      #3A ; ':'
  3697.                 jr      c, loc_905B
  3698.  
  3699.                 ld      (hl), #30 ; '0'
  3700.                 dec     hl
  3701.                 inc     (hl)
  3702.                 ld      a, (hl)
  3703.                 cp      #36 ; '6'
  3704.                 jr      c, loc_905B
  3705.  
  3706.                 ld      (hl), #30 ; '0'
  3707.                 dec     hl
  3708.                 dec     hl
  3709.                 jr      loc_9046
  3710.  
  3711. ; ---------------------------------------------------------------------------
  3712.  
  3713. loc_905B:                               ; CODE XREF: sub_9018+32 sub_9018+3B
  3714.                 pop     hl
  3715.                 set     7, (hl)
  3716.                 pop     hl
  3717.                 push    hl
  3718.                 call    PRINT_STR_FF
  3719.  
  3720.                 call    sub_A150
  3721.  
  3722.                 ld      hl, #1100
  3723.                 jr      c, loc_906D
  3724.  
  3725.                 ld      h, 9
  3726.  
  3727.  
  3728. loc_906D:                               ; CODE XREF: sub_9018+51
  3729.                 ld      (scr_XY), hl
  3730.                 pop     hl
  3731.                 inc     hl
  3732.                 call    PRINT_STR_scr0
  3733.  
  3734.                 pop     hl
  3735.                 ld      (scr_XY), hl
  3736.                 pop     de
  3737.                 pop     bc
  3738.                 pop     iy
  3739.                 ret
  3740.  
  3741. ; End of function sub_9018
  3742.  
  3743.  
  3744. ; =============== S U B R O U T I N E =======================================
  3745.  
  3746.  
  3747. sub_907E:                               ; CODE XREF: sub_8C20:loc_A2DA
  3748.                                         ; sub_8C20+175A ...
  3749.                 push    hl
  3750.                 ld      hl, bas_FLAGS
  3751.  
  3752.  
  3753. loc_9082:                               ; CODE XREF: sub_907E+E sub_907E+1F
  3754.                 ld      a, #7F
  3755.                 in      a, (#FE)
  3756.                 rra
  3757.                 ccf
  3758.                 jr      c, space_pressed
  3759.  
  3760.                 bit     bit_NEW_KEY, (hl)               ; keypressed bit
  3761.                 jr      z, loc_9082
  3762.  
  3763.                 res     bit_NEW_KEY, (hl)
  3764.                 ld      a, (bas_LAST_K)
  3765.                 cp      #C
  3766.                 jr      z, space_pressed
  3767.  
  3768.                 cp      #D
  3769.                 jr      z, space_pressed
  3770.  
  3771.                 cp      #21 ; '!'
  3772.                 jr      c, loc_9082
  3773.  
  3774.                 or      a
  3775.  
  3776.  
  3777. space_pressed:                          ; CODE XREF: sub_907E+A sub_907E+17     ...
  3778.                 push    af
  3779.                 call    BEEP_4
  3780.  
  3781.                 pop     af
  3782.                 pop     hl
  3783.                 ret
  3784.  
  3785. ; End of function sub_907E
  3786.  
  3787.  
  3788.  
  3789.  
  3790. KEY_SCAN:
  3791.                 xor     a                       ;CY=0
  3792.                 ld      hl, bas_FLAGS
  3793.                 bit     bit_NEW_KEY, (hl)
  3794.                 ret     z                       ;return with CY=0 if nothing pressed
  3795.                 res     bit_NEW_KEY, (hl)
  3796.                 ld      (byte_D0BD), a
  3797.                 ld      (byte_D0B8), a
  3798.                 ld      a, (bas_LAST_K)
  3799.                 cp      'I'
  3800.                 jr      nc, loc_90D6    ; >='I'
  3801.                 cp      'A'
  3802.                 jr      nc, loc_90D1    ; >='A'
  3803.                 cp      '9'
  3804.                 jr      nc, loc_90D6    ; >='9'
  3805.                 cp      '1'
  3806.                 jr      nc, loc_90D1    ; >='1'
  3807.                 cp      8
  3808.                 ccf
  3809.                 ret     nc      ;report scancodes 0..7 as non-keypresses
  3810.                 cp      #E
  3811.                 jr      nc, loc_90D6    ; >=#0E
  3812. loc_90D1:
  3813.                 ; when scancode copied here:
  3814.                 ;  'A'<=SCANCODE<='H'
  3815.                 ;  '1'<=SCANCODE<='8'
  3816.                 ;  8<=SCANCODE<#0E
  3817.                 ; 8-LEFT,9-RIGHT,10-DOWN,11-UP
  3818.                 ld      (byte_D0BD), a
  3819.                 scf                     ;CY=1 was keypress
  3820.                 ret
  3821. loc_90D6:
  3822.                 cp      'A'
  3823.                 jr      c, loc_90DC     ; <'A'
  3824.                 and     #5F             ;uppercase letters
  3825. loc_90DC:
  3826.                 ; when scancode copied here:
  3827.                 ;  SCANCODE>='I', 'a'..'z' are uppercased
  3828.                 ;  '9'<=SCANCODE<'A'
  3829.                 ;  #0E<=SCANCODE<'1'
  3830.                 ld      (byte_D0B8), a
  3831.                 scf                     ;CY=1 was keypress
  3832.                 ret
  3833.  
  3834. ; End of function KEY_SCAN
  3835.  
  3836. ; ---------------------------------------------------------------------------
  3837. ; START OF FUNCTION CHUNK FOR sub_8FC1
  3838.  
  3839. loc_90E1:                               ; CODE XREF: sub_8FC1+28
  3840.                 call    HotKeys
  3841.  
  3842.                 call    sub_9128 ;ввод имени поля?
  3843.  
  3844.                 ret
  3845.  
  3846. ; END OF FUNCTION CHUNK FOR sub_8FC1
  3847.  
  3848. ; =============== S U B R O U T I N E =======================================
  3849.  
  3850.  
  3851. HotKeys:                                ; CODE XREF: sub_8FC1:loc_90E1
  3852.  
  3853. ; FUNCTION CHUNK AT 900E SIZE 0000000A BYTES
  3854. ; FUNCTION CHUNK AT 92CB SIZE 0000000C BYTES
  3855. ; FUNCTION CHUNK AT 9326 SIZE 00000032 BYTES
  3856. ; FUNCTION CHUNK AT 935D SIZE 00000003 BYTES
  3857.  
  3858.                 ld      hl, byte_D0B8
  3859.                 ld      a, (hl)
  3860.                 or      a
  3861.                 ret     z
  3862.                 ld      (hl), 0
  3863.                 cp      #4D ; 'M'
  3864.                 jp      z, HotKeys_keepkey_pop_ret
  3865.  
  3866.                 cp      #42 ; 'B'
  3867.                 jp      z, HotKeys_keepkey_pop_ret
  3868.  
  3869.                 cp      #46 ; 'F'
  3870.                 jp      z, loc_92CB ;F=Forward
  3871.  
  3872.                 cp      #48 ; 'H'
  3873.                 jp      z, loc_9340
  3874.  
  3875.                 cp      #49 ; 'I'
  3876.                 jp      z, loc_9326
  3877.  
  3878.                 cp      #44 ; 'D'
  3879.                 jp      z, HotKeys_keepkey_pop_ret
  3880.  
  3881.                 cp      #41 ; 'A'
  3882.                 jp      z, HotKeys_keepkey_pop_ret
  3883.  
  3884.                 cp      #53 ; 'S'
  3885.                 jp      z, HotKeys_keepkey_pop_ret
  3886.  
  3887.                 cp      #4C ; 'L'
  3888.                 jp      z, loc_935D ;L=Level
  3889.  
  3890.                 cp      #43 ; 'C'
  3891.                 jp      z, HotKeys_keepkey_pop_ret
  3892.  
  3893.                 cp      #50 ; 'P'
  3894.                 jp      z, HotKeys_keepkey_pop_ret
  3895.  
  3896.                 ret
  3897.  
  3898. ; End of function HotKeys
  3899.  
  3900.  
  3901. ; =============== S U B R O U T I N E =======================================
  3902.  
  3903.  
  3904. sub_9128:                               ; CODE XREF: sub_8FC1+49
  3905. ;ввод имени поля?                                       ; sub_8FC1+123
  3906.  
  3907. ; FUNCTION CHUNK AT 9290 SIZE 00000010 BYTES
  3908.  
  3909.                 ld      hl, byte_D0BD
  3910.                 ld      a, (hl)
  3911.                 or      a
  3912.                 ret     z
  3913.                 ld      (hl), 0
  3914.                 ld      bc, (word_D0BB)
  3915.                 cp      #D
  3916.                 jp      z, loc_91CE
  3917.  
  3918.                 cp      #C
  3919.                 jp      z, loc_9290
  3920.  
  3921.                 jp      loc_9163 ;ввод символьного имени поля
  3922.  
  3923. ; ---------------------------------------------------------------------------
  3924.  
  3925. loc_9141:                               ; CODE XREF: sub_9128+50 sub_9128+70 ...
  3926.                 push    bc
  3927.                 ld      a, b
  3928.                 cp      #FF
  3929.                 call    nz, sub_9595
  3930.  
  3931.                 pop     bc
  3932.                 ld      a, c
  3933.                 cp      #FF
  3934.                 call    nz, sub_9595
  3935.  
  3936.                 ld      a, (word_D0BB+1)
  3937.                 cp      #FF
  3938.                 call    nz, sub_9585
  3939.  
  3940.                 ld      a, (word_D0BB)
  3941.                 cp      #FF
  3942.                 call    nz, sub_95A8
  3943.  
  3944.                 call    sub_8939
  3945.  
  3946.                 ret
  3947.  
  3948. ; ---------------------------------------------------------------------------
  3949.  
  3950. loc_9163:                               ; CODE XREF: sub_9128+16
  3951.                 cp      #41 ; 'A'
  3952.                 jr      c, loc_917B
  3953.  
  3954.                 cp      #49 ; 'H'+1
  3955.                 jr      nc, loc_917B
  3956.  
  3957.                 push    bc
  3958.                 sub     #41 ; 'A'
  3959.                 ld      b, a
  3960.                 ld      hl,  word_D0BB+1
  3961.                 ld      a, (hl)
  3962.                 and     #F0
  3963.                 or      b
  3964.                 ld      (hl), a
  3965.                 pop     bc
  3966.                 jp      loc_9141
  3967.  
  3968. ; ---------------------------------------------------------------------------
  3969.  
  3970. loc_917B:                               ; CODE XREF: sub_9128+3D sub_9128+41
  3971.                 cp      #31 ; '1'
  3972.                 jr      c, loc_919B
  3973.  
  3974.                 cp      #39 ; '9'
  3975.                 jr      nc, loc_919B
  3976.  
  3977.                 push    bc
  3978.                 sub     #31
  3979.                 neg
  3980.                 add     a, 7
  3981.                 rlca
  3982.                 rlca
  3983.                 rlca
  3984.                 rlca
  3985.                 ld      b, a
  3986.                 ld      hl,  word_D0BB+1
  3987.                 ld      a, (hl)
  3988.                 and     #F
  3989.                 or      b
  3990.                 ld      (hl), a
  3991.                 pop     bc
  3992.                 jp      loc_9141
  3993.  
  3994. ; ---------------------------------------------------------------------------
  3995.  
  3996. loc_919B:                               ; CODE XREF: sub_9128+55 sub_9128+59
  3997.                 push    bc
  3998.                 ld      hl, byte_D0B3 ;d3=swap board
  3999.                 bit     3, (hl)
  4000.                 jr      z, loc_91A5
  4001.                 xor     1
  4002. loc_91A5:                               ; CODE XREF: sub_9128+79
  4003.                 ld      b, a
  4004.                 xor     a
  4005.                 bit     1, b
  4006.                 jr      nz, loc_91B5
  4007.  
  4008.                 bit     0, b
  4009.                 jr      z, loc_91B2
  4010.  
  4011.                 inc     a
  4012.                 jr      loc_91BF
  4013.  
  4014. ; ---------------------------------------------------------------------------
  4015.  
  4016. loc_91B2:                               ; CODE XREF: sub_9128+85
  4017.                 dec     a
  4018.                 jr      loc_91BF
  4019.  
  4020. ; ---------------------------------------------------------------------------
  4021.  
  4022. loc_91B5:                               ; CODE XREF: sub_9128+81
  4023.                 bit     0, b
  4024.                 jr      nz, loc_91BD
  4025.  
  4026.                 add     a, #10
  4027.                 jr      loc_91BF
  4028.  
  4029. ; ---------------------------------------------------------------------------
  4030.  
  4031. loc_91BD:                               ; CODE XREF: sub_9128+8F
  4032.                 sub     #10
  4033. loc_91BF:                               ; CODE XREF: sub_9128+88 sub_9128+8B ...
  4034.                 ld      hl,  word_D0BB+1
  4035.                 add     a, (hl)
  4036.                 ld      b, a
  4037.                 and     #77
  4038.                 cp      b
  4039.                 jr      nz, loc_91CA
  4040.                 ld      (hl), a
  4041. loc_91CA:                               ; CODE XREF: sub_9128+9F
  4042.                 pop     bc
  4043.                 jp      loc_9141
  4044.  
  4045. ; ---------------------------------------------------------------------------
  4046.  
  4047. loc_91CE:                               ; CODE XREF: sub_9128+E
  4048.                 ld      a, (byte_D0DF)
  4049.                 bit     2, a
  4050.                 ret     nz
  4051.                 ld      a, c
  4052.                 cp      b
  4053.                 jr      nz, loc_91E0
  4054.  
  4055.                 ld      a, #FF
  4056.                 ld      (word_D0BB), a
  4057.                 jp      loc_9141
  4058. ; ---------------------------------------------------------------------------
  4059. loc_91E0:                               ; CODE XREF: sub_9128+AE
  4060.                 inc     a
  4061.                 jr      nz, loc_91F0
  4062.  
  4063.                 call    sub_92A0
  4064.                 jp      nz, loc_9141
  4065.                 ld      a, b
  4066.                 ld      (word_D0BB), a
  4067.                 jp      loc_9141
  4068. ; ---------------------------------------------------------------------------
  4069. loc_91F0:                               ; CODE XREF: sub_9128+B9
  4070.                 call    sub_92B6
  4071.  
  4072.                 jp      nz, loc_9141
  4073.  
  4074.                 push    bc
  4075.                 push    hl
  4076.                 ld      a, (word_D0BB)
  4077.                 ld      (byte_D0C4), a
  4078.                 ld      a, (word_D0BB+1)
  4079.                 ld      (byte_D0C5), a
  4080.                 call    sub_9571
  4081.  
  4082.                 pop     ix
  4083.                 ld      hl, byte_D0B4
  4084.                 bit     5, (hl)
  4085.                 jr      z, loc_922A
  4086.  
  4087.                 ld      d, (ix+0)
  4088.                 ld      e, (ix+1)
  4089.                 ld      hl, (word_D0DA)
  4090.                 or      a
  4091.                 sbc     hl, de
  4092.                 jr      z, loc_9231
  4093.  
  4094.                 pop     bc
  4095.  
  4096. loc_921F:                               ; CODE XREF: sub_924C+22
  4097.                 ld      hl, byte_D0B4
  4098.                 set     7, (hl)
  4099.                 ld      hl, byte_D0DF
  4100.                 set     4, (hl)
  4101.                 ret
  4102.  
  4103. ; ---------------------------------------------------------------------------
  4104.  
  4105. loc_922A:                               ; CODE XREF: sub_9128+E6
  4106.                 ld      hl, byte_D0DF
  4107.                 set     4, (hl)
  4108.                 pop     bc
  4109.                 ret
  4110.  
  4111. ; ---------------------------------------------------------------------------
  4112.  
  4113. loc_9231:                               ; CODE XREF: sub_9128+F4
  4114.                 pop     bc
  4115.                 ld      a, (byte_D0DC)
  4116.                 or      a
  4117.                 jp      z, sub_8D9E
  4118.  
  4119.                 ld      hl, byte_D0DF
  4120.                 ld      a, (hl)
  4121.                 or      #E0
  4122.                 ld      (hl), a
  4123.                 call    sub_9571
  4124.  
  4125.                 call    ShowBOARD2
  4126.  
  4127.                 ld      a, #14
  4128.                 ld      (DECREMENT_50HZ), a
  4129.                 ret
  4130.  
  4131. ; End of function sub_9128
  4132.  
  4133.  
  4134. ; =============== S U B R O U T I N E =======================================
  4135.  
  4136.  
  4137. sub_924C:                               ; CODE XREF: sub_8F4D+60
  4138.                 ld      hl, byte_D0B8
  4139.                 ld      a, (hl)
  4140.                 or      a
  4141.                 jr      z, loc_9279
  4142.  
  4143.                 ld      (hl), 0
  4144.                 cp      #20 ; ' '
  4145.                 jp      z, sub_95C5
  4146.  
  4147.                 ld      (byte_D0DC), a
  4148.                 ld      hl, byte_D0DF
  4149.                 bit     6, (hl)
  4150.                 res     6, (hl)
  4151.                 res     5, (hl)
  4152.                 call    nz, ShowBOARD
  4153.  
  4154.                 ld      a, (byte_D0DC)
  4155.                 cp      #51 ; 'Q'
  4156.                 jp      nz, loc_921F
  4157.  
  4158.                 ld      hl, byte_D0DF
  4159.                 res     7, (hl)
  4160.                 jp      sub_8D9E
  4161.  
  4162. ; ---------------------------------------------------------------------------
  4163.  
  4164. loc_9279:                               ; CODE XREF: sub_924C+5
  4165.                 ld      hl, DECREMENT_50HZ
  4166.                 ld      a, (hl)
  4167.                 or      a
  4168.                 ret     p
  4169.                 ld      (hl), #14
  4170.                 ld      hl, byte_D0DF
  4171.                 ld      a, (hl)
  4172.                 xor     #40
  4173.                 ld      (hl), a
  4174.                 and     #40
  4175.                 jp      nz, ShowBOARD2
  4176.  
  4177.                 jp      ShowBOARD
  4178.  
  4179. ; End of function sub_924C
  4180.  
  4181. ; ---------------------------------------------------------------------------
  4182. ; START OF FUNCTION CHUNK FOR sub_9128
  4183.  
  4184. loc_9290:                               ; CODE XREF: sub_9128+13
  4185.                 ld      a, #FF
  4186.                 cp      c
  4187.                 ret     z
  4188.                 ld      a, #FF
  4189.                 ld      (word_D0BB), a
  4190.                 ld      a, c
  4191.                 ld      (word_D0BB+1), a
  4192.                 jp      loc_9141
  4193.  
  4194. ; END OF FUNCTION CHUNK FOR sub_9128
  4195.  
  4196. ; =============== S U B R O U T I N E =======================================
  4197.  
  4198.  
  4199. sub_92A0:                               ; CODE XREF: sub_9128+BB
  4200.                 ld      hl, unk_F000
  4201.  
  4202.  
  4203. loc_92A3:                               ; CODE XREF: sub_92A0+D
  4204.                 ld      a, (hl)
  4205.                 cp      #FF
  4206.                 jr      z, loc_92AF
  4207.  
  4208.                 cp      b
  4209.                 ret     z
  4210.                 inc     hl
  4211.                 inc     hl
  4212.                 inc     hl
  4213.                 jr      loc_92A3
  4214.  
  4215. ; ---------------------------------------------------------------------------
  4216.  
  4217. loc_92AF:                               ; CODE XREF: sub_92A0+6 sub_92B6+6
  4218.                 push    af
  4219.                 call    BEEP_3
  4220.  
  4221.                 pop     af
  4222.                 or      a
  4223.                 ret
  4224.  
  4225. ; End of function sub_92A0
  4226.  
  4227.  
  4228. ; =============== S U B R O U T I N E =======================================
  4229.  
  4230.  
  4231. sub_92B6:                               ; CODE XREF: sub_9128:loc_91F0
  4232.                 ld      hl, unk_F000
  4233.  
  4234.  
  4235. loc_92B9:                               ; CODE XREF: sub_92B6+13
  4236.                 ld      a, (hl)
  4237.                 cp      #FF
  4238.                 jr      z, loc_92AF
  4239.  
  4240.                 cp      c
  4241.                 jr      nz, loc_92C6
  4242.  
  4243.                 inc     hl
  4244.                 ld      a, (hl)
  4245.                 dec     hl
  4246.                 cp      b
  4247.                 ret     z
  4248.  
  4249.  
  4250. loc_92C6:                               ; CODE XREF: sub_92B6+9
  4251.                 inc     hl
  4252.                 inc     hl
  4253.                 inc     hl
  4254.                 jr      loc_92B9
  4255.  
  4256. ; End of function sub_92B6
  4257.  
  4258. ; ---------------------------------------------------------------------------
  4259. ; START OF FUNCTION CHUNK FOR HotKeys
  4260.  
  4261. loc_92CB:                               ; CODE XREF: HotKeys+14
  4262. ;F=Forward
  4263.                 ld      hl, (ptr_stk_1bvalue)
  4264.                 ld      l, (hl)
  4265.                 inc     l
  4266.                 jp      nz, HotKeys_keepkey_pop_ret     ; if not #FF
  4267.  
  4268.                 call    BEEP_3
  4269.  
  4270.                 ret
  4271.  
  4272. ; END OF FUNCTION CHUNK FOR HotKeys
  4273.  
  4274. ; =============== S U B R O U T I N E =======================================
  4275.  
  4276.  
  4277. sub_92D7:                               ; CODE XREF: sub_8FC1+D
  4278.  
  4279. ; FUNCTION CHUNK AT 809A SIZE 00000007 BYTES
  4280.  
  4281.                 push    af
  4282.                 push    bc
  4283.                 push    de
  4284.                 push    hl
  4285.                 call    sub_9933
  4286.  
  4287.                 ld      hl, #1500
  4288.                 ld      (scr_XY), hl
  4289.                 ld      hl, aNew        ; " NEW "
  4290.                 call    PRINT_STR_scr0
  4291.  
  4292.                 ld      de, #C00
  4293.                 ld      (scr_XY), de
  4294.                 ld      hl, aNewGameYN  ; "NEW GAME (Y/N)?"
  4295.                 call    PRINT_STR_FF
  4296.  
  4297.  
  4298. loc_92F7:
  4299.                 call    KEY_SCAN
  4300.                 jr      nc, loc_92F7
  4301.  
  4302.                 push    af
  4303.                 ld      hl, #1500
  4304.                 ld      (scr_XY), hl
  4305.                 ld      hl, a_8spaces   ; "       "
  4306.                 call    PRINT_STR_scr0
  4307.  
  4308.                 pop     af
  4309.                 cp      'Y'
  4310.                 jp      z, loc_809A ;9EE6 + NEW_GAME
  4311.  
  4312.                 call    BEEP_move
  4313.  
  4314.                 ld      hl,  a_32spaces+#C
  4315.                 ld      de, #C00
  4316.                 ld      (scr_XY), de
  4317.                 call    PRINT_STR_FF
  4318.  
  4319.                 pop     hl
  4320.                 ld      (hl), 0
  4321.                 pop     de
  4322.                 pop     bc
  4323.                 pop     af
  4324.                 ret
  4325.  
  4326. ; End of function sub_92D7
  4327.  
  4328. ; ---------------------------------------------------------------------------
  4329. ; START OF FUNCTION CHUNK FOR HotKeys
  4330.  
  4331. loc_9326:                               ; CODE XREF: HotKeys+1E
  4332.                 call    sub_9571
  4333.  
  4334.                 ld      hl, byte_D0B3
  4335.                 ld      a, (hl)
  4336.                 xor     8
  4337.                 ld      (hl), a ;d3=swap board
  4338.                 call    RotateBOARD
  4339.  
  4340.                 call    ShowBOARD
  4341.  
  4342.                 call    RotateBOARD2
  4343.  
  4344.                 call    sub_955D
  4345.  
  4346.                 call    sub_A177
  4347.  
  4348.                 ret
  4349.  
  4350. ; ---------------------------------------------------------------------------
  4351.  
  4352. loc_9340:                               ; CODE XREF: HotKeys+19
  4353.                 ld      hl, (word_D25A)
  4354.                 call    sub_9571
  4355.  
  4356.                 call    ShowBOARD2
  4357.  
  4358.                 call    BEEP_move
  4359.  
  4360.                 ld      a, #14
  4361.                 call    halt_A_frames
  4362.  
  4363.                 call    ShowBOARD
  4364.  
  4365.                 call    sub_955D
  4366.  
  4367.                 ret
  4368.  
  4369. ; END OF FUNCTION CHUNK FOR HotKeys
  4370.  
  4371.  
  4372.  
  4373. halt_A_frames:
  4374.  
  4375.                 halt
  4376.                 dec     a
  4377.                 ret     z
  4378.                 jr      halt_A_frames
  4379.  
  4380.  
  4381. ; ---------------------------------------------------------------------------
  4382. ; START OF FUNCTION CHUNK FOR HotKeys
  4383.  
  4384. loc_935D:                               ; CODE XREF: HotKeys+32
  4385. ;L=Level
  4386.                 jp      HotKeys_keepkey_pop_ret
  4387.  
  4388. ; END OF FUNCTION CHUNK FOR HotKeys
  4389.  
  4390. ; =============== S U B R O U T I N E =======================================
  4391.  
  4392.  
  4393. RotateBOARD:                            ; CODE XREF: HotKeys+248
  4394.                 ld      hl, BOARD
  4395.                 ld      de,  BOARD+#3F
  4396.                 jp      loc_936F
  4397. ; End of function RotateBOARD
  4398. ; =============== S U B R O U T I N E =======================================
  4399. RotateBOARD2:                           ; CODE XREF: HotKeys+24E
  4400.                 ld      hl, BOARD2
  4401.                 ld      de, BOARD2+63
  4402. loc_936F:                               ; CODE XREF: RotateBOARD+6
  4403.                 ld      b, #20 ; ' '
  4404. _loc_9371:                              ; CODE XREF: RotateBOARD2+F
  4405.                 ld      c, (hl)
  4406.                 ld      a, (de)
  4407.                 ld      (hl), a
  4408.                 ld      a, c
  4409.                 ld      (de), a
  4410.                 inc     hl
  4411.                 dec     de
  4412.                 djnz    _loc_9371
  4413.                 ret
  4414.  
  4415. ; End of function RotateBOARD2
  4416.  
  4417.  
  4418. ; =============== S U B R O U T I N E =======================================
  4419.  
  4420.  
  4421. ShowBOARD2:                             ; CODE XREF: sub_8C20-97C
  4422.                                         ; sub_8D9E+18   ...
  4423.                 ld      hl,  BOARD2+#3F
  4424.                 jr      loc_9383
  4425. ; End of function ShowBOARD2
  4426. ; =============== S U B R O U T I N E =======================================
  4427. ShowBOARD:                              ; CODE XREF: sub_8DE9+77 sub_924C+1A ...
  4428.                 ld      hl,  BOARD+#3F
  4429. loc_9383:                               ; CODE XREF: ShowBOARD2+3
  4430.                 ld      b, #40
  4431. _loc_9385:                              ; CODE XREF: ShowBOARD+1C
  4432.                 ld      a, (hl)
  4433.                 push    bc
  4434.                 push    de
  4435.                 push    hl
  4436.                 ld      c, a
  4437.                 ld      a, b
  4438.                 dec     a
  4439.                 ld      hl, byte_D0B3 ;d3=swap board
  4440.                 bit     3, (hl)
  4441.                 jr      z, _loc_9395
  4442.                 xor     #3F
  4443. _loc_9395:                              ; CODE XREF: ShowBOARD+11
  4444.                 call    SHOW_FIG_POS
  4445.  
  4446.                 pop     hl
  4447.                 pop     de
  4448.                 pop     bc
  4449.                 dec     hl
  4450.                 djnz    _loc_9385
  4451.                 ret
  4452. ; End of function ShowBOARD
  4453.  
  4454.  
  4455. ; =============== S U B R O U T I N E =======================================
  4456.  
  4457.  
  4458. sub_939F:                               ; CODE XREF: sub_8C20-B31
  4459.                                         ; sub_8C20:loc_8226 ...
  4460.                 ld      hl, BOARD2
  4461.                 jr      loc_93A7
  4462.  
  4463. ; End of function sub_939F
  4464.  
  4465.  
  4466. ; =============== S U B R O U T I N E =======================================
  4467.  
  4468.  
  4469. sub_93A4:                               ; CODE XREF: sub_8C20-AE1
  4470.                                         ; sub_8C20:loc_84BF ...
  4471.                 ld      hl, BOARD
  4472.  
  4473.  
  4474. loc_93A7:                               ; CODE XREF: sub_939F+3
  4475.                 ld      (TMP_BOARD_PTR), hl
  4476.                 ld      b, 0
  4477.                 ld      hl, BRD_88_0
  4478.  
  4479.  
  4480. loc_93AF:                               ; CODE XREF: sub_93A4+78 sub_93A4+81
  4481.                 push    hl
  4482.                 ld      a, (hl)
  4483.                 and     #43 ; 'C'
  4484.                 cp      #43 ; 'C'
  4485.                 ld      a, (hl)
  4486.                 jr      nz, loc_93C3
  4487.  
  4488.                 ld      c, 1
  4489.                 bit     7, (hl)
  4490.                 jr      nz, loc_93C0
  4491.  
  4492.                 set     3, c
  4493.  
  4494.  
  4495. loc_93C0:                               ; CODE XREF: sub_93A4+18
  4496.                 jp      loc_93F2
  4497.  
  4498. ; ---------------------------------------------------------------------------
  4499.  
  4500. loc_93C3:                               ; CODE XREF: sub_93A4+12
  4501.                 ld      c, 0
  4502.                 or      a
  4503.                 jr      z, loc_93F2
  4504.  
  4505.                 and     #F8 ; 'ш'
  4506.                 inc     a
  4507.                 ld      l, a
  4508.                 inc     h
  4509.                 ld      c, 6
  4510.                 ld      a, #F
  4511.                 and     (hl)
  4512.                 jr      z, loc_93EC
  4513.  
  4514.                 ld      c, 1
  4515.                 cp      1
  4516.                 jr      z, loc_93EC
  4517.  
  4518.                 ld      c, 4
  4519.                 cp      5
  4520.                 jr      z, loc_93EC
  4521.  
  4522.                 ld      c, 5
  4523.                 jr      nc, loc_93EC
  4524.  
  4525.                 ld      c, 2
  4526.                 bit     7, (hl)
  4527.                 jr      z, loc_93EC
  4528.  
  4529.                 ld      c, 3
  4530.  
  4531.  
  4532. loc_93EC:                               ; CODE XREF: sub_93A4+2E sub_93A4+34 ...
  4533.                 bit     7, l
  4534.                 jr      nz, loc_93F2
  4535.  
  4536.                 set     3, c
  4537.  
  4538.  
  4539. loc_93F2:                               ; CODE XREF: sub_93A4:loc_93C0
  4540.                                         ; sub_93A4+22   ...
  4541.                 ld      a, b
  4542.                 ld      hl, byte_D0B3
  4543.                 bit     3, (hl) ;d3=swap board
  4544.                 jr      z, loc_93FC
  4545.  
  4546.                 xor     #3F ; '?'
  4547.  
  4548.  
  4549. loc_93FC:                               ; CODE XREF: sub_93A4+54
  4550.                 ld      hl, (TMP_BOARD_PTR)
  4551.                 ld      e, a
  4552.                 ld      d, 0
  4553.                 add     hl, de
  4554.                 ld      a, c
  4555.                 cp      (hl)
  4556.                 jr      z, loc_9417
  4557.  
  4558.                 ld      (hl), a
  4559.                 push    bc
  4560.                 ld      hl, (TMP_BOARD_PTR)
  4561.                 ld      de, BOARD2
  4562.                 or      a
  4563.                 sbc     hl, de
  4564.                 ld      a, b
  4565.                 call    nz, SHOW_FIG_POS
  4566.  
  4567.                 pop     bc
  4568.  
  4569.  
  4570. loc_9417:                               ; CODE XREF: sub_93A4+61
  4571.                 pop     hl
  4572.                 inc     hl
  4573.                 inc     b
  4574.                 bit     3, l
  4575.                 jp      z, loc_93AF
  4576.  
  4577.                 ld      de, 8
  4578.                 add     hl, de
  4579.                 bit     7, l
  4580.                 jp      z, loc_93AF
  4581.  
  4582.                 ret
  4583.  
  4584. ; End of function sub_93A4
  4585.  
  4586.  
  4587. ; =============== S U B R O U T I N E =======================================
  4588.  
  4589.  
  4590. CLR_BOARD:                              ; CODE XREF: START_POINT+87
  4591.                                         ; sub_8C20-B7C
  4592.                 di
  4593.                 ld      hl, BOARD
  4594.                 ld      b, #40 ; '@'
  4595.                 xor     a
  4596.  
  4597.  
  4598. loc_9430:                               ; CODE XREF: CLR_BOARD+9
  4599.                 ld      (hl), a
  4600.                 inc     hl
  4601.                 djnz    loc_9430
  4602.  
  4603.                 xor     a
  4604.                 ld      c, a
  4605.  
  4606.  
  4607. loc_9436:                               ; CODE XREF: CLR_BOARD+15
  4608.                 push    af
  4609.                 call    SH_EMPT_POS ;show square
  4610.                 pop     af
  4611.                 inc     a
  4612.                 cp      #40 ; '@'
  4613.                 jr      nz, loc_9436
  4614.  
  4615.                 ei
  4616.                 ret
  4617.  
  4618. ; End of function CLR_BOARD
  4619.  
  4620.  
  4621. ; =============== S U B R O U T I N E =======================================
  4622.  
  4623.  
  4624. SH_EMPT_POS:                            ; CODE XREF: sub_8C6B+37 CLR_BOARD+E
  4625.                 ld      c, 0
  4626.  
  4627. ; End of function SH_EMPT_POS
  4628.  
  4629.  
  4630. ; =============== S U B R O U T I N E =======================================
  4631.  
  4632. ; A - position (0..63)
  4633. ; C - figure:
  4634. ; 0..6: empty,pawn,knight,bishop,rook,queen,king ; 0..6 white, 8..E black
  4635.  
  4636. SHOW_FIG_POS:                           ; CODE XREF: sub_8C6B+31 sub_8C6B+49 ...
  4637.                 ld      b, a           
  4638.                 ld      d, #34 ; '4' ;attr: paper=6, ink=4
  4639.                 and     9
  4640.                 jr      z, loc_9451
  4641.                 cp      9
  4642.                 jr      z, loc_9451
  4643.                 ld      d, #26 ; '&' ;attr: paper=4, ink=6
  4644. loc_9451:                               ; CODE XREF: SHOW_FIG_POS+5
  4645.                                         ; SHOW_FIG_POS+9
  4646.                 dec     c
  4647.                 inc     c
  4648.                 jr      z, loc_9463 ;empty figure - use default attr
  4649.  
  4650.                 ld      a, d
  4651.                 and     #F8
  4652.                 ld      d, a ;attr=paper
  4653.                 ld      a, 0
  4654.                 bit     3, c
  4655.                 jr      nz, loc_9461 ;nz=black
  4656.                 ld      a, 7 ;white
  4657. loc_9461:                               ; CODE XREF: SHOW_FIG_POS+19
  4658.                 or      d
  4659.                 ld      d, a ;attr
  4660.  
  4661. loc_9463:                               ; CODE XREF: SHOW_FIG_POS+F
  4662.                 push    bc
  4663.                 push    de
  4664.                 ld      a, b ;position (0..63)
  4665.                 call    sub_95FA ;out: a=0b0YYY0XXX
  4666.  
  4667.                 call    sub_9703 ;calc scr_XY, scr_pix_addr, scr_attr_addr
  4668.  
  4669.                 call    CALC_SCR_ADDRS ;scr_XY to scr_pix_addr, scr_attr_addr
  4670.  
  4671.                 call    sub_9609 ;recount scr_pix_addr, scr_attr_addr to scrbuf if needed
  4672.  
  4673.                 ld      hl, (scr_attr_addr)
  4674.                 pop     de
  4675.                 ld      b, 3
  4676. loc_9478:                               ; CODE XREF: SHOW_FIG_POS:loc_9484
  4677.                 ld      (hl), d ;attr
  4678.                 inc     hl
  4679.                 ld      (hl), d ;attr
  4680.                 inc     hl
  4681.                 ld      (hl), d ;attr
  4682.                 ld      a, #1E
  4683.                 add     a, l
  4684.                 ld      l, a
  4685.                 jr      nc, loc_9484
  4686.                 inc     h
  4687. loc_9484:                               ; CODE XREF: SHOW_FIG_POS+3D
  4688.                 djnz    loc_9478 ;set attr for figure
  4689.  
  4690.                 pop     bc
  4691.                 ld      hl, (scr_pix_addr)
  4692.                 push    hl
  4693.                 ld      a, c
  4694.                 and     7
  4695.                 ld      b, a
  4696.                 add     a, a
  4697.                 add     a, a
  4698.                 add     a, a
  4699.                 add     a, b
  4700.                 ld      l, a
  4701.                 ld      h, 0
  4702.                 add     hl, hl
  4703.                 add     hl, hl
  4704.                 add     hl, hl
  4705.                 ld      de, FIG_sprites
  4706.                 add     hl, de
  4707.                 ex      de, hl
  4708.                 pop     hl
  4709.                 ld      a, 3
  4710.                 ex      af, af' ;'
  4711. loc_94A2:                               ; CODE XREF: SHOW_FIG_POS+78
  4712.                                         ; SHOW_FIG_POS+7E
  4713.                 push    hl
  4714.                 ld      c, 3
  4715. loc_94A5:                               ; CODE XREF: SHOW_FIG_POS+6D
  4716.                 push    hl
  4717.                 ld      b, 8
  4718. loc_94A8:                               ; CODE XREF: SHOW_FIG_POS+68
  4719.                 ld      a, (de)
  4720.                 ld      (hl), a
  4721.                 inc     de
  4722.                 inc     h
  4723.                 djnz    loc_94A8
  4724.  
  4725.                 pop     hl
  4726.                 inc     hl
  4727.                 dec     c
  4728.                 jr      nz, loc_94A5
  4729.  
  4730.                 pop     hl
  4731.                 ex      af, af' ;'
  4732.                 dec     a
  4733.                 ret     z
  4734.                 ex      af, af' ;'
  4735.                 ld      a, #20 ; ' '
  4736.                 add     a, l
  4737.                 ld      l, a
  4738.                 jr      nc, loc_94A2
  4739.  
  4740.                 ld      a, h
  4741.                 add     a, 8
  4742.                 ld      h, a
  4743.                 jr      loc_94A2
  4744.  
  4745. ; End of function SHOW_FIG_POS
  4746.  
  4747.  
  4748. ; =============== S U B R O U T I N E =======================================
  4749.  
  4750.  
  4751. sub_94C4:                               ; CODE XREF: sub_8C20-B2E
  4752.                 ld      hl, BOARD2
  4753.                 jr      loc_94CC
  4754.  
  4755. ; End of function sub_94C4
  4756.  
  4757.  
  4758. ; =============== S U B R O U T I N E =======================================
  4759.  
  4760.  
  4761. sub_94C9:                               ; CODE XREF: sub_8C20+16ED
  4762.                 ld      hl, BOARD
  4763.  
  4764.  
  4765. loc_94CC:                               ; CODE XREF: sub_94C4+3
  4766.                 push    hl
  4767.                 call    sub_A43C
  4768.  
  4769.                 call    sub_A43C
  4770.  
  4771.                 pop     hl
  4772.                 ld      b, 8
  4773.                 ld      d, #FF
  4774.                 ld      e, #39 ; '9'
  4775.                 ld      a, (byte_D0B3) ;d3=swap board
  4776.                 bit     3, a
  4777.                 jr      z, loc_94E5
  4778.  
  4779.                 ld      d, 1
  4780.                 ld      e, #30 ; '0'
  4781.  
  4782.  
  4783. loc_94E5:                               ; CODE XREF: sub_94C9+16 sub_94C9+59
  4784.                 ld      c, 8
  4785.                 ld      a, e
  4786.                 add     a, d
  4787.                 ld      e, a
  4788.                 call    loc_A476
  4789.  
  4790.                 ld      a, #20 ; ' '
  4791.                 call    loc_A476
  4792.  
  4793.  
  4794. loc_94F2:                               ; CODE XREF: sub_94C9+51
  4795.                 ld      a, (hl)
  4796.                 push    hl
  4797.                 push    de
  4798.                 push    bc
  4799.                 ld      c, a
  4800.                 and     7
  4801.                 jr      nz, loc_94FF
  4802.  
  4803.                 ld      a, #2E ; '.'
  4804.                 jr      loc_950D
  4805.  
  4806. ; ---------------------------------------------------------------------------
  4807.  
  4808. loc_94FF:                               ; CODE XREF: sub_94C9+30
  4809.                 ld      hl, KING+1
  4810.                 call    sub_8CF7 ;поиск класса фигуры по номеру
  4811.  
  4812.                 dec     hl
  4813.                 ld      a, (hl)
  4814.                 bit     3, c
  4815.                 jr      z, loc_950D
  4816.  
  4817.                 or      #20 ; ' '
  4818.  
  4819.  
  4820. loc_950D:                               ; CODE XREF: sub_94C9+34 sub_94C9+40
  4821.                 call    loc_A476
  4822.  
  4823.                 ld      a, #20 ; ' '
  4824.                 call    loc_A476
  4825.  
  4826.                 pop     bc
  4827.                 pop     de
  4828.                 pop     hl
  4829.                 inc     hl
  4830.                 dec     c
  4831.                 jr      nz, loc_94F2
  4832.  
  4833.                 call    sub_A43C
  4834.  
  4835.                 call    sub_A43C
  4836.  
  4837.                 djnz    loc_94E5
  4838.  
  4839.                 ld      a, d
  4840.                 neg
  4841.                 ld      d, a
  4842.                 ld      a, e
  4843.                 add     a, #30 ; '0'
  4844.                 ld      e, a
  4845.                 ld      b, 2
  4846.  
  4847.  
  4848. loc_952E:                               ; CODE XREF: sub_94C9+6A
  4849.                 ld      a, #20 ; ' '
  4850.                 call    loc_A476
  4851.  
  4852.                 djnz    loc_952E
  4853.  
  4854.                 ld      b, 8
  4855.  
  4856.  
  4857. loc_9537:                               ; CODE XREF: sub_94C9+7A
  4858.                 ld      a, e
  4859.                 call    loc_A476
  4860.  
  4861.                 ld      a, #20 ; ' '
  4862.                 call    loc_A476
  4863.  
  4864.                 ld      a, e
  4865.                 add     a, d
  4866.                 ld      e, a
  4867.                 djnz    loc_9537
  4868.  
  4869.                 call    sub_A43C
  4870.  
  4871.                 call    sub_A43C
  4872.  
  4873.                 ret
  4874.  
  4875. ; End of function sub_94C9
  4876.  
  4877.  
  4878. ; =============== S U B R O U T I N E =======================================
  4879.  
  4880.  
  4881. sub_954C:                               ; CODE XREF: sub_8C20-AF1
  4882.                 call    sub_A164
  4883.  
  4884.                 ld      a, #70 ; 'p'
  4885.                 jr      c, loc_9554
  4886.  
  4887.                 xor     a
  4888.  
  4889.  
  4890. loc_9554:                               ; CODE XREF: sub_954C+5
  4891.                 ld      (word_D0BB+1), a
  4892.                 ld      a, #FF
  4893.                 ld      (word_D0BB), a
  4894.                 ret
  4895.  
  4896. ; End of function sub_954C
  4897.  
  4898.  
  4899. ; =============== S U B R O U T I N E =======================================
  4900.  
  4901.  
  4902. sub_955D:                               ; CODE XREF: sub_8C20-A94
  4903.                                         ; sub_8C20-88F ...
  4904.                 ld      a, (word_D0BB+1)
  4905.                 cp      #FF
  4906.                 call    nz, sub_9585
  4907.  
  4908.                 ld      a, (word_D0BB)
  4909.                 cp      #FF
  4910.                 call    nz, sub_95A8
  4911.  
  4912.                 call    sub_8939
  4913.  
  4914.                 ret
  4915.  
  4916. ; End of function sub_955D
  4917.  
  4918.  
  4919. ; =============== S U B R O U T I N E =======================================
  4920.  
  4921.  
  4922. sub_9571:                               ; CODE XREF: sub_8C20-AF4
  4923.                                         ; sub_8C20-85C ...
  4924.                 ld      a, (word_D0BB+1)
  4925.                 cp      #FF
  4926.                 call    nz, sub_9595
  4927.  
  4928.                 ld      a, (word_D0BB)
  4929.                 cp      #FF
  4930.                 call    nz, sub_9595
  4931.  
  4932.                 call    restore_6_spaces
  4933.  
  4934.                 ret
  4935.  
  4936. ; End of function sub_9571
  4937.  
  4938.  
  4939. ; =============== S U B R O U T I N E =======================================
  4940.  
  4941.  
  4942. sub_9585:                               ; CODE XREF: sub_9128+2C sub_955D+5
  4943. ;A=номер поля?=0b0YYY0XXX
  4944.                 push    af
  4945.                 ld      a, (byte_D04D)
  4946.                 or      a
  4947.                 ld      d, 0   ;and
  4948.                 ld      e, #A9 ;or
  4949.                 jr      z, loc_9592
  4950.                 ld      e, #AA ;or
  4951. loc_9592:                               ; CODE XREF: sub_9585+9
  4952.                 pop     af
  4953.                 jr      loc_959B
  4954.  
  4955. ; End of function sub_9585
  4956.  
  4957.  
  4958. ; =============== S U B R O U T I N E =======================================
  4959.  
  4960.  
  4961. sub_9595:                               ; CODE XREF: sub_8C20-20C
  4962.                                         ; sub_8C20-17C ...
  4963. ;A=номер поля?=0b0YYY0XXX
  4964.                 ld      d, #FF ;and
  4965.                 ld      e, 0   ;or
  4966.                 jr      loc_959B ;???
  4967.  
  4968. ; ---------------------------------------------------------------------------
  4969.  
  4970. loc_959B:                               ; CODE XREF: sub_9585+E sub_9595+4 ...
  4971. ;A=номер поля?=0b0YYY0XXX
  4972.                 push    hl
  4973.                 push    af
  4974.                 push    de
  4975.                 call    sub_95AE
  4976.  
  4977.                 pop     de
  4978.                 and     d
  4979.                 or      e
  4980.                 ld      (hl), a
  4981.                 pop     af
  4982.                 pop     hl
  4983.                 ret
  4984.  
  4985. ; End of function sub_9595
  4986.  
  4987.  
  4988. ; =============== S U B R O U T I N E =======================================
  4989.  
  4990.  
  4991. sub_95A8:                               ; CODE XREF: sub_9128+34 sub_955D+D
  4992.                 ld      d, 0   ;and
  4993.                 ld      e, #29 ;or
  4994.                 jr      loc_959B
  4995.  
  4996. ; End of function sub_95A8
  4997.  
  4998.  
  4999. ; =============== S U B R O U T I N E =======================================
  5000.  
  5001.  
  5002. sub_95AE:                               ; CODE XREF: sub_9595+9
  5003. ;A=номер поля?=0b0YYY0XXX
  5004.                 and     #77
  5005.                 ld      hl, byte_D0B3 ;d3=swap board
  5006.                 bit     3, (hl)
  5007.                 jr      z, loc_95B9
  5008.                 xor     #77
  5009. loc_95B9:                               ; CODE XREF: sub_95AE+7
  5010.                 call    sub_9703 ;calc scr_XY, scr_pix_addr, scr_attr_addr
  5011.  
  5012.                 ld      hl, (scr_attr_addr)
  5013.                 ld      a, (hl)
  5014.                 ld      de, #21
  5015.                 add     hl, de
  5016.                 ret
  5017.  
  5018. ; End of function sub_95AE
  5019.  
  5020.  
  5021. ; =============== S U B R O U T I N E =======================================
  5022.  
  5023.  
  5024. sub_95C5:                               ; CODE XREF: sub_8FC1+8 sub_924C+B ...
  5025.                 ld      hl, SEL_SCRorBUF
  5026.                 ld      a, (hl)
  5027.                 cpl
  5028.                 ld      (hl), a
  5029.                 call    SET_BRD_COLOR
  5030.  
  5031.                 ld      hl, SCREEN
  5032.                 ld      de, SCR_BUF_6400
  5033.                 ld      c, #1B
  5034.                 ld      b, 0
  5035. loc_95D8:                               ; CODE XREF: sub_95C5+1B sub_95C5+1E
  5036.                 ld      a, (hl)
  5037.                 ex      af, af' ;'
  5038.                 ld      a, (de)
  5039.                 ld      (hl), a
  5040.                 ex      af, af' ;'
  5041.                 ld      (de), a
  5042.                 inc     hl
  5043.                 inc     de
  5044.                 djnz    loc_95D8
  5045.                 dec     c
  5046.                 jr      nz, loc_95D8
  5047.                 ret
  5048.  
  5049. ; End of function sub_95C5
  5050.  
  5051.                 ;unused data???
  5052.                 db      #47,#1F,#E6,#38,#4F,#78,#E6,#07,#81
  5053.  
  5054. ; =============== S U B R O U T I N E =======================================
  5055.  
  5056.  
  5057. sub_95EF:                               ; CODE XREF: sub_95FA+1
  5058.                 push    hl
  5059.                 ld      hl, byte_D0B3 ;d3=swap board
  5060.                 bit     3, (hl) ;swap board?
  5061.                 pop     hl
  5062.                 ret     z
  5063.                 xor     #3F
  5064.                 ret
  5065.  
  5066. ; End of function sub_95EF
  5067.  
  5068.  
  5069. ; =============== S U B R O U T I N E =======================================
  5070.  
  5071.  
  5072. sub_95FA:                               ; CODE XREF: SHOW_FIG_POS+22
  5073. ;a=position (0..63)
  5074.                 push    bc
  5075.                 call    sub_95EF ;swap board if needed
  5076.                 ld      b, a
  5077.                 and     #38
  5078.                 rlca
  5079.                 ld      c, a ;c=0b0YYY0000
  5080.                 ld      a, b
  5081.                 and     7
  5082.                 or      c    ;a=0b0YYY0XXX
  5083.                 pop     bc
  5084.                 ret
  5085.  
  5086. ; End of function sub_95FA
  5087.  
  5088.  
  5089. ; =============== S U B R O U T I N E =======================================
  5090. ;recount scr_pix_addr, scr_attr_addr to scrbuf if needed
  5091.  
  5092. sub_9609:                               ; CODE XREF: SHOW_FIG_POS+2B
  5093.                 ld      a, (SEL_SCRorBUF)
  5094.                 or      a
  5095.                 ret     z
  5096.                 jr      loc_9615
  5097.  
  5098. ; ---------------------------------------------------------------------------
  5099.                 ld      a, (SEL_SCRorBUF)
  5100.                 or      a
  5101.                 ret     nz
  5102.  
  5103.  
  5104. loc_9615:                               ; CODE XREF: sub_9609+5
  5105.                 push    de
  5106.                 push    hl
  5107.                 ld      de, #2400
  5108.                 ld      hl, (scr_pix_addr)
  5109.                 add     hl, de
  5110.                 ld      (scr_pix_addr), hl
  5111.                 ld      hl, (scr_attr_addr)
  5112.                 add     hl, de
  5113.                 ld      (scr_attr_addr), hl
  5114.                 pop     hl
  5115.                 pop     de
  5116.                 ret
  5117.  
  5118. ; End of function sub_9609
  5119.  
  5120.  
  5121. ; =============== S U B R O U T I N E =======================================
  5122.  
  5123.  
  5124. CLR_SCR_OR_BUF:                         ; CODE XREF: START_POINT+84
  5125.                 di
  5126.                 ld      hl, SCREEN
  5127.                 ld      a, (SEL_SCRorBUF)
  5128.                 or      a
  5129.                 jr      z, loc_9638
  5130.  
  5131.                 ld      hl, SCR_BUF_6400
  5132. loc_9638:                               ; CODE XREF: CLR_SCR_OR_BUF+8
  5133.                 ld      a, h
  5134.                 add     a, #18
  5135.                 ld      b, 0
  5136. loc_963D:                               ; CODE XREF: CLR_SCR_OR_BUF+15
  5137.                 ld      (hl), b
  5138.                 inc     hl
  5139.                 cp      h
  5140.                 jr      nz, loc_963D
  5141.  
  5142.                 ld      b, #28    ; ink=0, paper=5
  5143.                 add     a, 3
  5144. loc_9646:                               ; CODE XREF: CLR_SCR_OR_BUF+1E
  5145.                 ld      (hl), b
  5146.                 inc     hl
  5147.                 cp      h
  5148.                 jr      nz, loc_9646
  5149.  
  5150. ; End of function CLR_SCR_OR_BUF
  5151.  
  5152.  
  5153. ; =============== S U B R O U T I N E =======================================
  5154.  
  5155.  
  5156. SET_BRD_COLOR:                          ; CODE XREF: sub_95C5+6 sub_965C+30     ...
  5157.                 ld      a, (SEL_SCRorBUF)
  5158.                 or      a
  5159.                 ld      a, 5
  5160.                 jr      nz, loc_9655
  5161.                 ld      a, 5 ;???
  5162. loc_9655:                               ; CODE XREF: SET_BRD_COLOR+6
  5163.                 ld      (BRD_COLOR), a
  5164.                 out     (#FE),  a
  5165.                 ei
  5166.                 ret
  5167.  
  5168. ; End of function SET_BRD_COLOR
  5169.  
  5170.  
  5171. ; =============== S U B R O U T I N E =======================================
  5172.  
  5173.  
  5174. sub_965C:                               ; CODE XREF: sub_9EE6
  5175.                 di
  5176.                 ld      hl, 0
  5177.                 ld      (word_D0D5), hl
  5178.                 ld      hl, SCR_BUF_6400
  5179.                 ld      a, (SEL_SCRorBUF)
  5180.                 or      a
  5181.                 jr      z, loc_966F
  5182.                 ld      hl, SCREEN
  5183. loc_966F:                               ; CODE XREF: sub_965C+E
  5184.                 ld      a, h
  5185.                 add     a, #18
  5186.                 ld      b, 0
  5187. loc_9674:                               ; CODE XREF: sub_965C+1B
  5188.                 ld      (hl), b
  5189.                 inc     hl
  5190.                 cp      h
  5191.                 jr      nz, loc_9674
  5192.  
  5193.                 ld      c, #18
  5194.                 ld      de, fill_attrs
  5195. loc_967E:                               ; CODE XREF: sub_965C+2D
  5196.                 ld      b, #20 ; ' '
  5197.                 ld      a, (de)
  5198. loc_9681:                               ; CODE XREF: sub_965C+27
  5199.                 ld      (hl), a
  5200.                 inc     hl
  5201.                 djnz    loc_9681
  5202.                 dec     c
  5203.                 jr      z, loc_968B
  5204.                 inc     de
  5205.                 jr      loc_967E
  5206.  
  5207. ; ---------------------------------------------------------------------------
  5208.  
  5209. loc_968B:                               ; CODE XREF: sub_965C+2A
  5210.                 ei
  5211.                 jr      SET_BRD_COLOR
  5212.  
  5213. ; End of function sub_965C
  5214.  
  5215. ; ---------------------------------------------------------------------------
  5216. fill_attrs:     db  #3A,#3A,#29,#29,#29,#29,#29,#29
  5217.                 db  #29,#29,#29,#29,#29,#29,#29,#29
  5218.                 db  #32,#32,#32,#32,#32,#32,#32,#32
  5219.  
  5220. ; =============== S U B R O U T I N E =======================================
  5221.  
  5222.  
  5223. sub_96A6:                               ; CODE XREF: sub_8C20:NEW_GAME
  5224.                                         ; sub_8C20-5E7 ...
  5225.                 ld      hl, #600
  5226.                 ld      (scr_XY), hl
  5227.  
  5228.  
  5229. loc_96AC:                               ; CODE XREF: sub_96A6+11
  5230.                 ld      hl, a_32spaces  ; "                        "
  5231.                 call    PRINT_STR_FF
  5232.  
  5233.                 ld      a, (scr_XY+1)
  5234.                 cp      #D
  5235.                 jr      nz, loc_96AC
  5236.  
  5237.                 xor     a
  5238.                 ld      (byte_D0C0), a
  5239.                 ret
  5240.  
  5241. ; End of function sub_96A6
  5242.  
  5243.  
  5244. ; =============== S U B R O U T I N E =======================================
  5245.  
  5246.  
  5247. CALC_SCR_ADDRS:                         ; CODE XREF: sub_8EFB+8 sub_8EFB+22     ...
  5248.                 push    bc
  5249.                 push    de
  5250.                 push    hl
  5251.                 ld      bc, (scr_XY)
  5252.                 ld      a, b
  5253.                 ld      hl, SCREEN
  5254.                 ld      de, #800
  5255. loc_96CC:                               ; CODE XREF: CALC_SCR_ADDRS+15
  5256.                 cp      8
  5257.                 jr      c, loc_96D5
  5258.                 sub     8
  5259.                 add     hl, de
  5260.                 jr      loc_96CC
  5261. loc_96D5:                               ; CODE XREF: CALC_SCR_ADDRS+10
  5262.                 rrca
  5263.                 rrca
  5264.                 rrca
  5265.                 add     a, c
  5266.                 ld      e, a
  5267.                 ld      d, 0
  5268.                 add     hl, de
  5269.                 ld      (scr_pix_addr), hl
  5270.                 ld      l, b
  5271.                 ld      h, 0
  5272.                 add     hl, hl
  5273.                 add     hl, hl
  5274.                 add     hl, hl
  5275.                 add     hl, hl
  5276.                 add     hl, hl
  5277.                 ld      de, SCR_ATTRS
  5278.                 add     hl, de
  5279.                 ld      e, c
  5280.                 ld      d, 0
  5281.                 add     hl, de
  5282.                 ld      (scr_attr_addr), hl
  5283.                 pop     hl
  5284.                 pop     de
  5285.                 pop     bc
  5286.                 ret
  5287.  
  5288. ; End of function CALC_SCR_ADDRS
  5289.  
  5290.  
  5291. ; =============== S U B R O U T I N E =======================================
  5292.  
  5293.  
  5294. sub_96F7:                               ; CODE XREF: sub_8D9E+21 sub_8D9E+2D
  5295. ;a=0b0YYY0XXX
  5296.                 push    hl
  5297.                 ld      hl, byte_D0B3 ;d3=swap board
  5298.                 bit     3, (hl)
  5299.                 jr      z, loc_9704
  5300.  
  5301.                 xor     #77 ;swap board
  5302.                 jr      loc_9704
  5303.  
  5304. ; End of function sub_96F7
  5305.  
  5306.  
  5307. ; =============== S U B R O U T I N E =======================================
  5308. ;count scr_XY, scr_pix_addr, scr_attr_addr
  5309.  
  5310. sub_9703:                               ; CODE XREF: SHOW_FIG_POS+25
  5311.                                         ; sub_95AE:loc_95B9
  5312. ;a=0b0YYY0XXX
  5313.                 push    hl
  5314.  
  5315.  
  5316. loc_9704:                               ; CODE XREF: sub_96F7+6 sub_96F7+A
  5317. ;a=0b0YYY0XXX
  5318.                 push    de
  5319.                 push    bc
  5320.                 ld      c, a
  5321.                 and     #F0 ; 'р'
  5322.                 rlca
  5323.                 rlca
  5324.                 rlca
  5325.                 rlca
  5326.                 ld      b, a
  5327.                 add     a, a
  5328.                 add     a, b
  5329.                 ld      h, a
  5330.                 ld      a, c
  5331.                 and     #F
  5332.                 ld      b, a
  5333.                 add     a, a
  5334.                 add     a, b
  5335.                 add     a, 8
  5336.                 ld      l, a
  5337.                 ld      (scr_XY), hl
  5338.                 call    CALC_SCR_ADDRS ;scr_XY to scr_pix_addr, scr_attr_addr
  5339.  
  5340.                 ld      a, (SEL_SCRorBUF)
  5341.                 or      a
  5342.                 jr      z, loc_9737
  5343.  
  5344.                 ld      de, #2400
  5345.                 ld      hl, (scr_pix_addr)
  5346.                 add     hl, de
  5347.                 ld      (scr_pix_addr), hl
  5348.                 ld      hl, (scr_attr_addr)
  5349.                 add     hl, de
  5350.                 ld      (scr_attr_addr), hl
  5351.  
  5352. loc_9737:                               ; CODE XREF: sub_9703+21
  5353.                 pop     bc
  5354.                 pop     de
  5355.                 pop     hl
  5356.                 ret
  5357.  
  5358. ; End of function sub_9703
  5359.  
  5360. ; ---------------------------------------------------------------------------
  5361.  
  5362.  
  5363.         ;following table could be placed anywhere without alignment
  5364.  
  5365.                 ;--empty--
  5366. 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,
  5367.                 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,
  5368.                 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.
  5369.                 ;pawn
  5370.                 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
  5371.                 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
  5372.                 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
  5373.                 ;knight
  5374.                 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
  5375.                 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
  5376.                 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
  5377.                 ;bishop
  5378.                 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
  5379.                 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
  5380.                 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
  5381.                 ;rook
  5382.                 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
  5383.                 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
  5384.                 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
  5385.                 ;queen
  5386.                 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
  5387.                 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
  5388.                 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
  5389.                 ;king
  5390.                 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
  5391.                 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
  5392.                 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
  5393.  
  5394. ; =============== S U B R O U T I N E =======================================
  5395.  
  5396.  
  5397. sub_9933:                               ; CODE XREF: sub_92D7+4
  5398.                 call    BEEP_move
  5399.  
  5400.                 jp      BEEP_start
  5401.  
  5402. ; End of function sub_9933
  5403.  
  5404.  
  5405. ; =============== S U B R O U T I N E =======================================
  5406.  
  5407.  
  5408. sub_9939:                               ; CODE XREF: sub_8C20-5F
  5409.                 call    BEEP_start
  5410.  
  5411.                 call    BEEP_move
  5412.  
  5413. ; End of function sub_9939
  5414.  
  5415.  
  5416. ; =============== S U B R O U T I N E =======================================
  5417.  
  5418.  
  5419. BEEP_start:                             ; CODE XREF: sub_8C20-B76
  5420.                                         ; sub_8C20:loc_83E8 ...
  5421.                 push    hl
  5422.                 push    de
  5423.                 ld      hl, #511
  5424.                 ld      de, #A5 ; '?'
  5425.                 jr      BEEP_common
  5426.  
  5427. ; End of function BEEP_start
  5428.  
  5429.  
  5430. ; =============== S U B R O U T I N E =======================================
  5431.  
  5432.  
  5433. BEEP_move:                              ; CODE XREF: sub_8C20-A51
  5434.                                         ; sub_8C20-79C ...
  5435.                 push    hl
  5436.                 push    de
  5437.                 ld      hl, #43E
  5438.                 ld      de, #C4
  5439.                 jr      BEEP_common
  5440.  
  5441. ; End of function BEEP_move
  5442.  
  5443.  
  5444. ; =============== S U B R O U T I N E =======================================
  5445.  
  5446.  
  5447. BEEP_3:                                 ; CODE XREF: sub_8C20:loc_8419
  5448.                                         ; sub_8C20:loc_85DD ...
  5449.                 push    hl
  5450.                 push    de
  5451.                 ld      hl, #66A
  5452.                 ld      de, #83
  5453.                 jr      BEEP_common
  5454.  
  5455. ; End of function BEEP_3
  5456.  
  5457.  
  5458. ; =============== S U B R O U T I N E =======================================
  5459.  
  5460.  
  5461. BEEP_4:                                 ; CODE XREF: sub_907E+23
  5462.                 push    hl
  5463.                 push    de
  5464.                 ld      hl, #326
  5465.                 ld      de, #34
  5466.                 jr      BEEP_common
  5467.  
  5468. ; ---------------------------------------------------------------------------
  5469.                 push    hl
  5470.                 push    de
  5471.                 ld      hl, #326
  5472.                 ld      de, #105
  5473.  
  5474. BEEP_common:                            ; CODE XREF: BEEP_start+8
  5475.                                         ; BEEP_move+8   ...
  5476.                 di
  5477.                 call    BEEP_routine
  5478.                 ei
  5479.                 pop     de
  5480.                 pop     hl
  5481.                 ret
  5482.  
  5483. ; End of function BEEP_4
  5484.  
  5485.  
  5486. ; =============== S U B R O U T I N E =======================================
  5487.  
  5488.  
  5489. BEEP_routine:                           ; CODE XREF: BEEP_4+13
  5490.                 di
  5491.                 push    ix
  5492.                 push    bc
  5493.                 ld      a, l
  5494.                 srl     l
  5495.                 srl     l
  5496.                 cpl
  5497.                 and     3
  5498.                 ld      c, a
  5499.                 ld      b, 0
  5500.                 ld      ix, BEEP_loop
  5501.                 add     ix, bc
  5502.                 ld      a, (BRD_COLOR)
  5503.                 or      8
  5504. BEEP_loop:                              ; DATA XREF: BEEP_routine+F
  5505.                 nop
  5506.                 nop
  5507.                 nop
  5508.                 inc     b
  5509.                 inc     c
  5510. BEEP_wait:                              ; CODE XREF: BEEP_routine+20
  5511.                                         ; BEEP_routine+25
  5512.                 dec     c
  5513.                 jr      nz, BEEP_wait
  5514.                 ld      c, #3F
  5515.                 dec     b
  5516.                 jp      nz, BEEP_wait
  5517.                 xor     #10
  5518.                 out     (#FE),  a
  5519.                 ld      b, h
  5520.                 ld      c, a
  5521.                 bit     4, a
  5522.                 jr      nz, BEEP_smth
  5523.  
  5524.                 ld      a, d
  5525.                 or      e
  5526.                 jr      z, BEEP_exit
  5527.  
  5528.                 ld      a, c
  5529.                 ld      c, l
  5530.                 dec     de
  5531.                 jp      (ix)
  5532.  
  5533. ; ---------------------------------------------------------------------------
  5534.  
  5535. BEEP_smth:                              ; CODE XREF: BEEP_routine+30
  5536.                 ld      c, l
  5537.                 inc     c
  5538.                 jp      (ix)
  5539. ; ---------------------------------------------------------------------------
  5540. BEEP_exit:                              ; CODE XREF: BEEP_routine+34
  5541.                 pop     bc
  5542.                 pop     ix
  5543.                 ei
  5544.                 ret
  5545.  
  5546. ; End of function BEEP_routine
  5547.  
  5548. ; ---------------------------------------------------------------------------
  5549. aCyrusIi:       db 'CYRUS II     ',#7F
  5550.                 db ' 1986',#0D
  5551.                 db ' INTELLIGENT CHESS SOFTWARE LTD'
  5552.                 EOS
  5553.  
  5554.                 db '  LEVEL'
  5555.                 EOS
  5556.  
  5557.                 db      'Press <SPACE> to see board'
  5558.                 EOS
  5559.  
  5560. aPress:         db ' PRESS',#0D
  5561.                 db '<SPACE>',#0D
  5562.                 db '  for',#0D
  5563.                 db ' MENU'
  5564.                 EOS
  5565.  
  5566.  
  5567. aOOO:           db 'O-O-O'          ; DATA XREF: sub_8977+14
  5568.  
  5569.  
  5570. aNewGameYN:     db 'NEW GAME (Y/N)? ' ; DATA XREF: sub_92D7+1A
  5571.                 EOS
  5572.  
  5573. aNew:           db ' NEW ?'          ; DATA XREF: sub_92D7+D
  5574.                 EOS
  5575.  
  5576. aCyrus:         db 'CYRUS '          ; DATA XREF: sub_9F73 sub_A177+86 ...
  5577.                 EOS
  5578.  
  5579. a_PLAYER:       db 'PLAYER'          ; DATA XREF: sub_9F73+5 sub_A177+8D ...
  5580.                 EOS
  5581.  
  5582. a_ADAP:         db 'ADAP'            ; DATA XREF: sub_8D2C:loc_8D56
  5583.                 EOS
  5584.  
  5585. a_INF:          db 'INF '            ; DATA XREF: sub_8D2C+2F
  5586.                 EOS
  5587.  
  5588. aProb:          db 'PROB'            ; DATA XREF: sub_8D2C+36
  5589.                 EOS
  5590.  
  5591. aAnalysis:      db 'ANALYSIS'        ; DATA XREF: sub_842C+10
  5592.                 EOS
  5593.  
  5594. aPrinter:       db 'PRINTER'
  5595.                 EOS
  5596.  
  5597. aNoMateIn:      db 'NO MATE IN '     ; DATA XREF: sub_A6F7:loc_A725
  5598.                 EOS
  5599.  
  5600. aIllegalSetup:  db 'ILLEGAL SETUP'   ; DATA XREF: sub_8C20+1
  5601.                 EOS
  5602.  
  5603. aStalemate:     db 'STALEMATE'       ; DATA XREF: sub_8C20-8A
  5604.                 EOS
  5605.  
  5606. aCheckmate:     db 'CHECKMATE'       ; DATA XREF: sub_8C20:loc_8B8D
  5607.                 EOS
  5608.                
  5609. aDraw:          db 'DRAW'            ; DATA XREF: sub_8C20:loc_8B9B
  5610.                 EOS
  5611.  
  5612. aBlack:         db 'BLACK'           ; DATA XREF: sub_8C20-62E
  5613.                                         ; sub_9F0D+61
  5614.                 EOS
  5615.  
  5616. aWhite:         db 'WHITE'           ; DATA XREF: sub_8C20-637
  5617.                                         ; sub_9F0D+58
  5618.                 EOS
  5619.  
  5620. aInitClk:       db '00:00:00'        ; DATA XREF: INIT_PRINT_CLOCKS
  5621.                                         ; INIT_PRINT_CLOCKS+B   ...
  5622.                 EOS
  5623.  
  5624.  
  5625. a_32spaces:     db '                        '
  5626. a_8spaces:      db '        '
  5627.                 EOS
  5628.  
  5629. aSetUpPosition: db 'SET UP POSITION',#0D ; DATA XREF: sub_9F0D+6
  5630.                 db 'C - Clear board M - Multi-move  E - Empty squ.  S - exit Setup  '
  5631.                 db 'G - new Game    X - swap colour L - Level       Z - Zero clocks '
  5632.                 db  #0D
  5633.                 db '   P,N,B,R,Q,K - piece to add'
  5634.                 EOS
  5635.  
  5636. aThinking:      db 'THINKING',#0D       ; DATA XREF: sub_9F0D+32
  5637.                 db  #0D
  5638.                 db 'M - Move now      H - Hint',#0D
  5639.                 db 'G - new Game'
  5640.                 EOS
  5641.  
  5642. aYourMove:      db 'YOUR MOVE',#0D
  5643.                 db 'A - Analysis      B - Back',#0D
  5644.                 db 'C - Cassette      D - Demo',#0D
  5645.                 db 'F - Forward       G - new Game',#0D
  5646.                 db 'H - Hint          I - Invert',#0D
  5647.                 db 'L - Level         M - Move',#0D
  5648.                 db      'P - Printer       S - Set posn.'
  5649.                 EOS
  5650.  
  5651. aBBackSSetPosn_:db 'B - Back          S - Set posn. G - new Game'
  5652.                 EOS
  5653.  
  5654. aSSaveRecordLLo:db 'S- Save record   L- Load record',#0D
  5655.                 db  #0D
  5656.                 db '  PRESS ANY OTHER KEY TO ABORT'
  5657.                 EOS
  5658.  
  5659. aNotAGameRecord:db 'NOT A '
  5660. aGameRecord:    db 'GAME RECORD : ' ; DATA XREF: sub_8C20+1A03
  5661.                 EOS
  5662.  
  5663. aLoadAGameRecor:db '      LOAD A GAME RECORD',#0D
  5664.                 db 'ENTER FILENAME; <BREAK> TO ABORT'
  5665.                 EOS
  5666.  
  5667. aSaveTheGameRec:db '      SAVE THE GAME RECORD',#0D
  5668.                 db 'ENTER FILENAME; <BREAK> TO ABORT'
  5669.                 EOS
  5670.  
  5671. aStartTapeAndPr:db '  START TAPE AND PRESS ANY KEY'
  5672.                 EOS
  5673.  
  5674. aZZxPrinterPSer:db ' Z-ZX PRINTER    P-SERIAL',#0D
  5675.                 db ' G-GAME RECORD   B-BOARD',#0D
  5676.                 db ' C-CONTINUOUS    O-OPTIONS',#0D
  5677.                 db  #0D
  5678.                 db '  PRESS ANY OTHER KEY TO ABORT'
  5679.                 EOS
  5680.  
  5681. aSelectBaudRate:db 'SELECT BAUD RATE:-',#0D
  5682.                 db '1=50  2=110  3=300  4=600 5=12006=2400  7=4800  8=9600  9=19200 ',#0D
  5683.                 db '            C=CR+LF',#0D
  5684.                 db  #0D
  5685.                 db '  PRESS ANY OTHER KEY TO ABORT'
  5686.                 EOS
  5687. ; ---------------------------------------------------------------------------
  5688.  
  5689. PRINT_STR_scr0:                         ; CODE XREF: sub_8C20-666
  5690.                                         ; sub_8C20:loc_85F5 ...
  5691.                 xor     a
  5692.                 jr      PRINT_STR_A
  5693.  
  5694.  
  5695. ; =============== S U B R O U T I N E =======================================
  5696.  
  5697.  
  5698. sub_9E68:                               ; CODE XREF: sub_8C20-6B sub_8C20+4     ...
  5699.                 ld      de, #F00
  5700.                 ld      (scr_XY), de
  5701.                 call    PRINT_STR_FF
  5702.  
  5703.                 ret
  5704.  
  5705. ; End of function sub_9E68
  5706.  
  5707.  
  5708. ; =============== S U B R O U T I N E =======================================
  5709.  
  5710.  
  5711. PRINT_STR_FF:                           ; CODE XREF: sub_842C:loc_843F
  5712.                                         ; sub_890F+9 ...
  5713.                 ld      a, #FF
  5714.  
  5715.  
  5716. PRINT_STR_A:                            ; CODE XREF: RAM:9E66
  5717.                 ld      (NEED_SCR2BUF), a
  5718.  
  5719.  
  5720. loc_9E78:                               ; CODE XREF: PRINT_STR_FF+14
  5721.                                         ; PRINT_STR_FF+1F
  5722.                 ld      a, (hl)
  5723.                 inc     hl
  5724.                 cp      #D
  5725.                 jr      nz, loc_9E89
  5726.  
  5727.                 push    hl
  5728.                 ld      hl, scr_XY
  5729.                 ld      (hl), 0
  5730.                 inc     hl
  5731.                 inc     (hl)
  5732.                 pop     hl
  5733.                 jr      loc_9E78
  5734.  
  5735. ; ---------------------------------------------------------------------------
  5736.  
  5737. loc_9E89:                               ; CODE XREF: PRINT_STR_FF+9
  5738.                 push    af
  5739.                 and     #7F ; ''
  5740.                 call    PRINT_LETTER
  5741.  
  5742.                 pop     af
  5743.                 bit     7, a
  5744.                 jr      z, loc_9E78
  5745.  
  5746.                 ret
  5747.  
  5748. ; End of function PRINT_STR_FF
  5749.  
  5750.  
  5751. ; =============== S U B R O U T I N E =======================================
  5752.  
  5753.  
  5754. PRINT_LETTER:                           ; CODE XREF: sub_8D2C+1C sub_8D2C+22 ...
  5755.                 push    hl
  5756.                 push    de
  5757.                 push    bc
  5758.                 push    af
  5759.                 call    CALC_SCR_ADDRS
  5760.  
  5761.                 ld      hl, (scr_pix_addr)
  5762.                 call    ADDR_SCR2BUF
  5763.  
  5764.                 add     hl, de
  5765.                 pop     af
  5766.                 cp      #30
  5767.                 jr      nz, loc_9EAA
  5768.  
  5769.                 ld      a, #4F ; 'O'
  5770.  
  5771.  
  5772. loc_9EAA:                               ; CODE XREF: PRINT_LETTER+11
  5773.                 push    hl
  5774.                 ld      de,font-256 ;#3C00      ; ROM FONT
  5775.                 ld      l, a
  5776.                 ld      h, 0
  5777.                 add     hl, hl
  5778.                 add     hl, hl
  5779.                 add     hl, hl
  5780.                 add     hl, de
  5781.                 ex      de, hl
  5782.                 pop     hl
  5783.                 ld      b, 8
  5784.  
  5785.  
  5786. loc_9EB9:                               ; CODE XREF: PRINT_LETTER+28
  5787.                 ld      a, (de)
  5788.                 ld      (hl), a
  5789.                 inc     de
  5790.                 inc     h
  5791.                 djnz    loc_9EB9
  5792.  
  5793.                 ld      hl, (scr_XY)
  5794.                 ld      a, l
  5795.                 inc     a
  5796.                 cp      #20 ; ' '
  5797.                 jr      nz, loc_9ECA
  5798.  
  5799.                 xor     a
  5800.                 inc     h
  5801.  
  5802.  
  5803. loc_9ECA:                               ; CODE XREF: PRINT_LETTER+31
  5804.                 ld      l, a
  5805.                 ld      (scr_XY), hl
  5806.                 pop     bc
  5807.                 pop     de
  5808.                 pop     hl
  5809.                 ret
  5810.  
  5811. ; End of function PRINT_LETTER
  5812.  
  5813.  
  5814. ; =============== S U B R O U T I N E =======================================
  5815.  
  5816.  
  5817. ADDR_SCR2BUF:                           ; CODE XREF: PRINT_LETTER+A
  5818.                 push    af
  5819.                 push    hl
  5820.                 ld      a, (SEL_SCRorBUF)
  5821.                 ld      hl, NEED_SCR2BUF
  5822.                 cp      (hl)
  5823.                 ld      de, #2400       ; addition to move to SCR_BUF=#6400
  5824.                 jr      nz, loc_9EE3
  5825.  
  5826.                 ld      de, 0
  5827.  
  5828.  
  5829. loc_9EE3:                               ; CODE XREF: ADDR_SCR2BUF+C
  5830.                 pop     hl
  5831.                 pop     af
  5832.                 ret
  5833.  
  5834. ; End of function ADDR_SCR2BUF
  5835.  
  5836.  
  5837. ; =============== S U B R O U T I N E =======================================
  5838.  
  5839.  
  5840. sub_9EE6:                               ; CODE XREF: sub_92D7-1239
  5841.                                         ; sub_8C20+1A5B
  5842.                 call    sub_965C
  5843.  
  5844.                 ld      hl, #C
  5845.                 ld      (scr_XY), hl
  5846.                 ld      hl, aCyrusIi    ; "CYRUS II     "
  5847.                 call    PRINT_STR_FF
  5848.  
  5849.                 ld      de, #318
  5850.                 ld      (scr_XY), de
  5851.                 call    PRINT_STR_FF
  5852.  
  5853.                 ld      de, #1703
  5854.                 ld      (scr_XY), de
  5855.                 call    PRINT_STR_FF
  5856.  
  5857.                 call    sub_8D2C
  5858.  
  5859.                 ret
  5860.  
  5861. ; End of function sub_9EE6
  5862.  
  5863.  
  5864. ; =============== S U B R O U T I N E =======================================
  5865.  
  5866.  
  5867. sub_9F0D:                               ; CODE XREF: sub_8C20:loc_818F
  5868.                                         ; sub_8C20:loc_8378 ...
  5869. ;show state and help
  5870. ; FUNCTION CHUNK AT 9F5B SIZE 00000018 BYTES
  5871.  
  5872.                 call    sub_842C
  5873.  
  5874.                 ld      de, #1000
  5875.                 ld      hl, aSetUpPosition ; "SET UP POSITION"
  5876.                 ld      a, (byte_D04D)
  5877.                 rra
  5878.                 jr      c, loc_9F5B
  5879.  
  5880.                 push    de
  5881.                 ld      de, #306
  5882.                 call    sub_9F8B
  5883.  
  5884.                 bit     1, b
  5885.                 call    sub_9F73
  5886.  
  5887.                 bit     0, b
  5888.                 call    sub_9F73
  5889.  
  5890.                 call    sub_A177
  5891.  
  5892.                 pop     de
  5893.                 ld      hl, aYourMove   ; "YOUR MOVE"
  5894.                 ld      a, (byte_D0B4)
  5895.                 bit     5, a
  5896.                 jr      nz, sub_9F42
  5897.  
  5898.                 bit     6, a
  5899.                 jr      z, sub_9F42
  5900.  
  5901.                 ld      hl, aThinking   ; "THINKING"
  5902.  
  5903. ; End of function sub_9F0D
  5904.  
  5905.  
  5906. ; =============== S U B R O U T I N E =======================================
  5907.  
  5908.  
  5909. sub_9F42:                               ; CODE XREF: sub_8C20-62 sub_9F0D+2C ...
  5910.                 ld      bc, (word_D0D5)
  5911.                 ld      (word_D0D5), hl
  5912.                 or      a
  5913.                 sbc     hl, bc
  5914.                 ret     z
  5915.                 call    sub_9F9E
  5916.  
  5917.                 ld      hl, (word_D0D5)
  5918.  
  5919.  
  5920. loc_9F53:                               ; CODE XREF: sub_9F0D+5F sub_9F0D+64
  5921.                 ld      (scr_XY), de
  5922.                 call    PRINT_STR_FF
  5923.  
  5924.                 ret
  5925.  
  5926. ; End of function sub_9F42
  5927.  
  5928. ; ---------------------------------------------------------------------------
  5929. ; START OF FUNCTION CHUNK FOR sub_9F0D
  5930.  
  5931. loc_9F5B:                               ; CODE XREF: sub_9F0D+D
  5932.                 ld      (scr_XY), de
  5933.                 call    sub_9F42
  5934.  
  5935.                 ld      de, #1019
  5936.                 ld      hl, aWhite      ; "WHIT"
  5937.                 ld      a, (byte_D08D)
  5938.                 rla
  5939.                 jr      c, loc_9F53
  5940.  
  5941.                 ld      hl, aBlack      ; "BLAC"
  5942.                 jr      loc_9F53
  5943.  
  5944. ; END OF FUNCTION CHUNK FOR sub_9F0D
  5945.  
  5946. ; =============== S U B R O U T I N E =======================================
  5947.  
  5948.  
  5949. sub_9F73:                               ; CODE XREF: sub_9F0D+18 sub_9F0D+1D
  5950.                 ld      hl, aCyrus      ; "CYRUS"
  5951.                 jr      nz, loc_9F7B
  5952.  
  5953.                 ld      hl, a_PLAYER    ; "PLAYE"
  5954.  
  5955.  
  5956. loc_9F7B:                               ; CODE XREF: sub_9F73+3
  5957.                 ld      (scr_XY), de
  5958.                 call    PRINT_STR_FF
  5959.  
  5960.                 ld      de, (scr_XY)
  5961.                 inc     de
  5962.                 inc     de
  5963.                 inc     de
  5964.                 inc     de
  5965.                 ret
  5966.  
  5967. ; End of function sub_9F73
  5968.  
  5969.  
  5970. ; =============== S U B R O U T I N E =======================================
  5971.  
  5972.  
  5973. sub_9F8B:                               ; CODE XREF: sub_9F0D+13 sub_A177+83
  5974.                 ld      a, (byte_D0B4)
  5975.                 ld      b, 0
  5976.                 rra
  5977.                 ret     c
  5978.                 ld      b, 3
  5979.                 rra
  5980.                 ret     c
  5981.                 dec     b
  5982.                 ld      a, (byte_D0B2)
  5983.                 or      a
  5984.                 ret     z
  5985.                 dec     b
  5986.                 ret
  5987.  
  5988. ; End of function sub_9F8B
  5989.  
  5990.  
  5991. ; =============== S U B R O U T I N E =======================================
  5992.  
  5993.  
  5994. sub_9F9E:                               ; CODE XREF: sub_9F42+B
  5995.                 ld      hl, #1000
  5996.                 ld      (scr_XY), hl
  5997.  
  5998.  
  5999. loc_9FA4:                               ; CODE XREF: sub_9F9E+12
  6000.                 ld      hl, a_32spaces  ; "                        "
  6001.                 call    PRINT_STR_FF
  6002.  
  6003.                 ld      a, (scr_XY+1)
  6004.                 cp      #17
  6005.                 ret     z
  6006.                 jr      loc_9FA4
  6007.  
  6008. ; End of function sub_9F9E
  6009.  
  6010.  
  6011. ; =============== S U B R O U T I N E =======================================
  6012.  
  6013.  
  6014. sub_9FB2:                               ; CODE XREF: sub_8C20-94C
  6015.                                         ; sub_8DE9+4D
  6016.                 ld      a, #FF
  6017.                 ld      (NEED_SCR2BUF), a
  6018.                 call    sub_A08D
  6019.  
  6020.                 ld      l, 6
  6021.                 call    sub_A164
  6022.  
  6023.                 ld      a, (byte_D0C0)
  6024.                 jr      c, loc_9FCB
  6025.  
  6026.                 ld      l, #10
  6027.                 inc     a
  6028.                 ld      (byte_D0C0), a
  6029.                 dec     a
  6030.  
  6031.  
  6032. loc_9FCB:                               ; CODE XREF: sub_9FB2+10
  6033.                 add     a, 6
  6034.                 ld      h, a
  6035.                 push    hl
  6036.                 ld      (scr_XY), hl
  6037.                 ld      hl, buf_10bytes
  6038.                 call    PRINT_STR_FF
  6039.  
  6040.                 pop     hl
  6041.                 ld      de, #B10
  6042.                 or      a
  6043.                 sbc     hl, de
  6044.                 call    z, SCROLL_UP
  6045.  
  6046.                 ld      hl, buf_10bytes
  6047.                 ld      de, txt_buf_6
  6048.                 ld      bc, 6
  6049.                 ldir
  6050.                 ex      de, hl
  6051.                 dec     hl
  6052.                 set     7, (hl)
  6053.                 call    sub_A3D0
  6054.  
  6055.                 ret
  6056.  
  6057. ; End of function sub_9FB2
  6058.  
  6059.  
  6060. ; =============== S U B R O U T I N E =======================================
  6061.  
  6062.  
  6063. sub_9FF5:                               ; CODE XREF: sub_8C20-A12
  6064.                                         ; sub_8C20-A06 ...
  6065.                 push    hl
  6066.                 push    bc
  6067.                 ld      b, #20 ; ' '
  6068.                 ld      l, a
  6069.                 ld      h, BRD_88_0/256
  6070.                 ld      a, (hl)
  6071.                 or      a
  6072.                 jr      z, loc_A01D
  6073.  
  6074.                 ld      l, a
  6075.                 res     2, l
  6076.                 inc     l
  6077.                 inc     h               ; word_D100
  6078.                 ld      a, (hl)
  6079.                 and     #F
  6080.                 ld      b, #4B ; 'K'
  6081.                 jr      z, loc_A01D
  6082.  
  6083.                 ld      b, #20 ; ' '
  6084.                 cp      1
  6085.                 jr      z, loc_A01D
  6086.  
  6087.                 ld      a, (hl)
  6088.                 and     #8F
  6089.                 ld      hl, KING-1
  6090.                 call    sub_8CF7 ;поиск класса фигуры по цене
  6091.  
  6092.                 inc     hl
  6093.                 ld      b, (hl)
  6094.  
  6095.  
  6096. loc_A01D:                               ; CODE XREF: sub_9FF5+9 sub_9FF5+15     ...
  6097.                 ld      a, b
  6098.                 pop     bc
  6099.                 pop     hl
  6100.                 ret
  6101.  
  6102. ; End of function sub_9FF5
  6103.  
  6104.  
  6105. ; =============== S U B R O U T I N E =======================================
  6106.  
  6107.  
  6108. sub_A021:                               ; CODE XREF: sub_A684+36 sub_A684+42
  6109.                 ld      b, a
  6110.                 and     7
  6111.                 add     a, #61 ; 'a'
  6112.                 call    PRINT_LETTER
  6113.  
  6114.                 ld      a, #70 ; 'p'
  6115.                 and     b
  6116.                 rra
  6117.                 rra
  6118.                 rra
  6119.                 rra
  6120.                 neg
  6121.                 add     a, #38 ; '8'
  6122.                 call    PRINT_LETTER
  6123.  
  6124.                 ret
  6125.  
  6126. ; End of function sub_A021
  6127.  
  6128.  
  6129. ; =============== S U B R O U T I N E =======================================
  6130.  
  6131.  
  6132. INIT_PRINT_CLOCKS:                      ; CODE XREF: sub_8C20-B79
  6133.                                         ; sub_8C20-60B ...
  6134.                 ld      hl, aInitClk    ; "00:00:0"
  6135.                 ld      de, CLK_1
  6136.                 ld      bc, 8
  6137.                 ldir
  6138.                 ld      hl, aInitClk    ; "00:00:0"
  6139.                 ld      de, CLK_2
  6140.                 ld      bc, 8
  6141.                 ldir
  6142.                 ld      hl, #405
  6143.                 ld      (scr_XY), hl
  6144.                 ld      hl, aInitClk    ; "00:00:0"
  6145.                 call    PRINT_STR_FF
  6146.  
  6147.                 ld      hl, #40F
  6148.                 ld      (scr_XY), hl
  6149.                 ld      hl, aInitClk    ; "00:00:0"
  6150.                 call    PRINT_STR_FF
  6151.  
  6152.                 call    sub_A228
  6153.  
  6154.                 ret
  6155.  
  6156. ; End of function INIT_PRINT_CLOCKS
  6157.  
  6158.  
  6159. ; =============== S U B R O U T I N E =======================================
  6160.  
  6161.  
  6162. PRINT_CLOCKS_SWAP:                      ; CODE XREF: sub_8C20+1A5E
  6163.                 ld      hl, #405
  6164.                 ld      (scr_XY), hl
  6165.                 ld      hl, CLK_2
  6166.                 ld      de, CLK_1
  6167.                 ld      a, (byte_D0B3) ;d3=swap board
  6168.                 and     8
  6169.                 jr      z, loc_A07E
  6170.  
  6171.                 ex      de, hl
  6172.  
  6173.  
  6174. loc_A07E:                               ; CODE XREF: PRINT_CLOCKS_SWAP+11
  6175.                 push    de
  6176.                 call    PRINT_STR_FF
  6177.  
  6178.                 ld      hl,#40F
  6179.                 ld      (scr_XY), hl
  6180.                 pop     hl
  6181.                 call    PRINT_STR_FF
  6182.  
  6183.                 ret
  6184.  
  6185. ; End of function PRINT_CLOCKS_SWAP
  6186.  
  6187.  
  6188. ; =============== S U B R O U T I N E =======================================
  6189.  
  6190.  
  6191. sub_A08D:                               ; CODE XREF: sub_8C20-AF7 sub_9FB2+5
  6192.                 ld      a, #FF          ; print move # in decimal???
  6193.                 ld      (NEED_SCR2BUF), a
  6194.                 ld      a, (byte_D0C0)
  6195.                 add     a, 6
  6196.                 ld      h, a
  6197.                 ld      l, 0
  6198.                 ld      (scr_XY), hl
  6199.                 ld      a, (byte_D049) ;move #
  6200.                 ld      b, a
  6201.                 ld      a, (byte_D0B4)
  6202.                 bit     5, a
  6203.                 jr      z, loc_A0AF
  6204.  
  6205.                 ld      a, (byte_D0BF)
  6206.                 rra
  6207.                 jr      nc, loc_A0AF
  6208.  
  6209.                 dec     b
  6210.  
  6211.  
  6212. loc_A0AF:                               ; CODE XREF: sub_A08D+19 sub_A08D+1F
  6213.                 ld      a, (byte_D0B7)
  6214.                 cp      b
  6215.                 ret     z
  6216.                 ld      a, b
  6217.                 ld      (byte_D0B7), a
  6218.                 ld      bc, #3000
  6219.  
  6220.  
  6221. loc_A0BB:                               ; CODE XREF: sub_A08D+36
  6222.                 cp      #64 ; 'd'
  6223.                 jr      c, loc_A0C5
  6224.  
  6225.                 inc     b
  6226.                 inc     c
  6227.                 sub     #64 ; 'd'
  6228.                 jr      loc_A0BB
  6229.  
  6230. ; ---------------------------------------------------------------------------
  6231.  
  6232. loc_A0C5:                               ; CODE XREF: sub_A08D+30
  6233.                 ex      af, af' ;'
  6234.                 ld      a, b
  6235.                 cp      #30 ; '0'
  6236.                 jr      nz, loc_A0D3
  6237.  
  6238.                 ld      a, c
  6239.                 or      a
  6240.                 ld      a, #30 ; '0'
  6241.                 jr      nz, loc_A0D3
  6242.  
  6243.                 ld      a, #20 ; ' '
  6244.  
  6245.  
  6246. loc_A0D3:                               ; CODE XREF: sub_A08D+3C sub_A08D+42
  6247.                 call    sub_A0F7
  6248.  
  6249.                 ex      af, af' ;'
  6250.                 ld      b, #30 ; '0'
  6251.  
  6252.  
  6253. loc_A0D9:                               ; CODE XREF: sub_A08D+54
  6254.                 cp      #A
  6255.                 jr      c, loc_A0E3
  6256.  
  6257.                 inc     b
  6258.                 inc     c
  6259.                 sub     #A
  6260.                 jr      loc_A0D9
  6261.  
  6262. ; ---------------------------------------------------------------------------
  6263.  
  6264. loc_A0E3:                               ; CODE XREF: sub_A08D+4E
  6265.                 ex      af, af' ;'
  6266.                 ld      a, b
  6267.                 cp      #30 ; '0'
  6268.                 jr      nz, loc_A0F1
  6269.  
  6270.                 ld      a, c
  6271.                 or      a
  6272.                 ld      a, #30 ; '0'
  6273.                 jr      nz, loc_A0F1
  6274.  
  6275.                 ld      a, #20 ; ' '
  6276.  
  6277.  
  6278. loc_A0F1:                               ; CODE XREF: sub_A08D+5A sub_A08D+60
  6279.                 call    sub_A0F7
  6280.  
  6281.                 ex      af, af' ;'
  6282.                 add     a, #30 ; '0'
  6283.  
  6284. ; End of function sub_A08D
  6285.  
  6286.  
  6287. ; =============== S U B R O U T I N E =======================================
  6288.  
  6289.  
  6290. sub_A0F7:                               ; CODE XREF: sub_A08D:loc_A0D3
  6291.                                         ; sub_A08D:loc_A0F1
  6292.                 push    af
  6293.                 call    PRINT_LETTER
  6294.  
  6295.                 ld      a, (byte_D0E1)
  6296.                 cp      3
  6297.                 jr      nc, loc_A102
  6298.  
  6299.  
  6300. loc_A102:                               ; CODE XREF: sub_A0F7+9
  6301.                 pop     af
  6302.                 ret
  6303.  
  6304. ; End of function sub_A0F7
  6305.  
  6306.  
  6307. ; =============== S U B R O U T I N E =======================================
  6308.  
  6309.  
  6310. SCROLL_UP:                              ; CODE XREF: sub_9FB2+2D
  6311.                 di
  6312.                 ld      hl,  SCR_BUF_6400+#C0
  6313.                 ld      a, (SEL_SCRorBUF)
  6314.                 or      a
  6315.                 jr      z, loc_A111
  6316.  
  6317.                 ld      hl,  SCREEN+#C0
  6318.  
  6319.  
  6320. loc_A111:                               ; CODE XREF: SCROLL_UP+8
  6321.                 ld      a, 5
  6322.                 ex      af, af' ;'
  6323.  
  6324.  
  6325. loc_A114:                               ; CODE XREF: SCROLL_UP+34
  6326.                 ld      a, #20 ; ' '
  6327.                 add     a, l
  6328.                 ld      e, a
  6329.                 ld      a, h
  6330.                 jr      nc, loc_A11D
  6331.  
  6332.                 add     a, 8
  6333.  
  6334.  
  6335. loc_A11D:                               ; CODE XREF: SCROLL_UP+15
  6336.                 ld      d, a            ; DE is 1 char lower than HL
  6337.                 push    de
  6338.                 ld      c, 8
  6339.  
  6340.  
  6341. loc_A121:                               ; CODE XREF: SCROLL_UP+2C
  6342.                 push    hl
  6343.                 push    de
  6344.                 ld      b, #20 ; ' '
  6345.  
  6346.  
  6347. loc_A125:                               ; CODE XREF: SCROLL_UP+25
  6348.                 ld      a, (de)
  6349.                 ld      (hl), a
  6350.                 inc     hl
  6351.                 inc     de
  6352.                 djnz    loc_A125
  6353.  
  6354.                 pop     de
  6355.                 pop     hl
  6356.                 inc     h
  6357.                 inc     d
  6358.                 dec     c
  6359.                 jr      nz, loc_A121
  6360.  
  6361.                 pop     hl
  6362.                 ex      af, af' ;'
  6363.                 dec     a
  6364.                 jr      z, loc_A13A
  6365.  
  6366.                 ex      af, af' ;'
  6367.                 jr      loc_A114
  6368.  
  6369. ; ---------------------------------------------------------------------------
  6370.  
  6371. loc_A13A:                               ; CODE XREF: SCROLL_UP+31
  6372.                 ld      c, 8
  6373.  
  6374.  
  6375. loc_A13C:                               ; CODE XREF: SCROLL_UP+43
  6376.                 push    hl
  6377.                 ld      b, #20 ; ' '
  6378.                 xor     a
  6379.  
  6380.  
  6381. loc_A140:                               ; CODE XREF: SCROLL_UP+3E
  6382.                 ld      (hl), a
  6383.                 inc     hl
  6384.                 djnz    loc_A140
  6385.  
  6386.                 pop     hl
  6387.                 inc     h
  6388.                 dec     c
  6389.                 jr      nz, loc_A13C
  6390.  
  6391.                 ld      a, 5
  6392.                 ld      (byte_D0C0), a
  6393.                 ei
  6394.                 ret
  6395.  
  6396. ; End of function SCROLL_UP
  6397.  
  6398.  
  6399. ; =============== S U B R O U T I N E =======================================
  6400.  
  6401.  
  6402. sub_A150:                               ; CODE XREF: sub_8C20-676
  6403.                                         ; sub_9018+4B
  6404.                 call    sub_A164
  6405.  
  6406.                 ld      a, (byte_D0B3) ;d3=swap board
  6407.                 jr      c, loc_A15E
  6408.  
  6409.                 and     8
  6410.                 jr      nz, loc_A162
  6411.  
  6412.  
  6413. loc_A15C:                               ; CODE XREF: sub_A150+10
  6414.                 or      a
  6415.                 ret
  6416.  
  6417. ; ---------------------------------------------------------------------------
  6418.  
  6419. loc_A15E:                               ; CODE XREF: sub_A150+6
  6420.                 and     8
  6421.                 jr      nz, loc_A15C
  6422.  
  6423.  
  6424. loc_A162:                               ; CODE XREF: sub_A150+A
  6425.                 scf
  6426.                 ret
  6427.  
  6428. ; End of function sub_A150
  6429.  
  6430.  
  6431. ; =============== S U B R O U T I N E =======================================
  6432.  
  6433.  
  6434. sub_A164:                               ; CODE XREF: sub_9018+12 sub_954C ...
  6435.                 ld      a, (byte_D0BF)
  6436.                 rra
  6437.                 ld      a, (byte_D0B4)
  6438.                 bit     5, a
  6439.                 jr      c, loc_A173
  6440.  
  6441.                 jr      nz, loc_A175
  6442.  
  6443.  
  6444. loc_A171:                               ; CODE XREF: sub_A164:loc_A173
  6445.                 or      a
  6446.                 ret
  6447.  
  6448. ; ---------------------------------------------------------------------------
  6449.  
  6450. loc_A173:                               ; CODE XREF: sub_A164+9
  6451.                 jr      nz, loc_A171
  6452.  
  6453.  
  6454. loc_A175:                               ; CODE XREF: sub_A164+B
  6455.                 scf
  6456.                 ret
  6457.  
  6458. ; End of function sub_A164
  6459.  
  6460.  
  6461. ; =============== S U B R O U T I N E =======================================
  6462.  
  6463.  
  6464. sub_A177:                               ; CODE XREF: HotKeys+254
  6465.                                         ; sub_9F0D+20
  6466.  
  6467. ; FUNCTION CHUNK AT A1F1 SIZE 00000037 BYTES
  6468.  
  6469.                 call    SHOW_LOGO
  6470.  
  6471.                 ld      hl, #B00
  6472.                 ld      (scr_XY), hl
  6473.                 ld      hl, aPress      ; " PRESS"
  6474.                 call    PRINT_STR_scr0
  6475.  
  6476.                 ld      hl, SCR_ATTRS
  6477.                 ld      a, (SEL_SCRorBUF)
  6478.                 or      a
  6479.                 jr      z, loc_A193
  6480.  
  6481.                 ld      de, #2400
  6482.                 add     hl, de
  6483.  
  6484.  
  6485. loc_A193:                               ; CODE XREF: sub_A177+16
  6486.                 ld      e, 1
  6487.                 call    sub_A24B
  6488.  
  6489.                 ld      hl,  SCR_ATTRS+#100
  6490.                 ld      a, (SEL_SCRorBUF)
  6491.                 or      a
  6492.                 jr      z, loc_A1A5
  6493.  
  6494.                 ld      de, #2400
  6495.                 add     hl, de
  6496.  
  6497.  
  6498. loc_A1A5:                               ; CODE XREF: sub_A177+28
  6499.                 ld      a, (byte_D0B3) ;d3=swap board
  6500.                 ld      e, 0
  6501.                 and     8
  6502.                 jr      z, loc_A1B0
  6503.  
  6504.                 ld      e, 7
  6505.  
  6506.  
  6507. loc_A1B0:                               ; CODE XREF: sub_A177+35
  6508.                 call    sub_A24B
  6509.  
  6510.                 ld      hl,  SCR_ATTRS+#200
  6511.                 ld      a, (SEL_SCRorBUF)
  6512.                 or      a
  6513.                 jr      z, loc_A1C0
  6514.  
  6515.                 ld      de, #2400
  6516.                 add     hl, de
  6517.  
  6518.  
  6519. loc_A1C0:                               ; CODE XREF: sub_A177+43
  6520.                 ld      a, (byte_D0B3) ;d3=swap board
  6521.                 ld      e, 7
  6522.                 and     8
  6523.                 jr      z, loc_A1CB
  6524.  
  6525.                 ld      e, 0
  6526.  
  6527.  
  6528. loc_A1CB:                               ; CODE XREF: sub_A177+50
  6529.                 call    sub_A24B
  6530.  
  6531.                 ld      hl, #800
  6532.                 ld      b, 3
  6533.                 call    sub_A1E0
  6534.  
  6535.                 ld      hl, #1000
  6536.                 ld      b, 3
  6537.                 call    sub_A1E0
  6538.  
  6539.                 jr      loc_A1F1
  6540.  
  6541. ; End of function sub_A177
  6542.  
  6543.  
  6544. ; =============== S U B R O U T I N E =======================================
  6545.  
  6546.  
  6547. sub_A1E0:                               ; CODE XREF: sub_A177+5C sub_A177+64 ...
  6548.                 push    bc
  6549.                 push    hl
  6550.                 ld      (scr_XY), hl
  6551.                 ld      hl, a_8spaces   ; "       "
  6552.                 call    PRINT_STR_scr0
  6553.  
  6554.                 pop     hl
  6555.                 inc     h
  6556.                 pop     bc
  6557.                 djnz    sub_A1E0
  6558.  
  6559.                 ret
  6560.  
  6561. ; End of function sub_A1E0
  6562.  
  6563. ; ---------------------------------------------------------------------------
  6564. ; START OF FUNCTION CHUNK FOR sub_A177
  6565.  
  6566. loc_A1F1:                               ; CODE XREF: sub_A177+67
  6567.                 call    sub_A228
  6568.  
  6569.                 ld      hl, #801
  6570.                 ld      (scr_XY), hl
  6571.                 call    sub_9F8B
  6572.  
  6573.                 ld      hl, aCyrus      ; "CYRUS"
  6574.                 bit     1, b
  6575.                 jr      nz, loc_A207
  6576.  
  6577.                 ld      hl, a_PLAYER    ; "PLAYE"
  6578.  
  6579.  
  6580. loc_A207:                               ; CODE XREF: sub_A177+8B
  6581.                 ld      de, aCyrus      ; "CYRUS"
  6582.                 bit     0, b
  6583.                 jr      nz, loc_A211
  6584.  
  6585.                 ld      de, a_PLAYER    ; "PLAYE"
  6586.  
  6587.  
  6588. loc_A211:                               ; CODE XREF: sub_A177+95
  6589.                 ld      a, (byte_D0B3) ;d3=swap board
  6590.                 and     8
  6591.                 jr      nz, loc_A219
  6592.  
  6593.                 ex      de, hl
  6594.  
  6595.  
  6596. loc_A219:                               ; CODE XREF: sub_A177+9F
  6597.                 push    de
  6598.                 call    PRINT_STR_scr0
  6599.  
  6600.                 ld      hl, #1001
  6601.                 ld      (scr_XY), hl
  6602.                 pop     hl
  6603.                 call    PRINT_STR_scr0
  6604.  
  6605.                 ret
  6606.  
  6607. ; END OF FUNCTION CHUNK FOR sub_A177
  6608.  
  6609. ; =============== S U B R O U T I N E =======================================
  6610.  
  6611.  
  6612. sub_A228:                               ; CODE XREF: INIT_PRINT_CLOCKS+2E
  6613.                                         ; sub_A177:loc_A1F1
  6614.                 ld      hl, #900
  6615.                 ld      (scr_XY), hl
  6616.                 ld      hl,  CLK_2+1
  6617.                 ld      de,  CLK_1+1
  6618.                 ld      a, (byte_D0B3) ;d3=swap board
  6619.                 and     8
  6620.                 jr      z, loc_A23C
  6621.  
  6622.                 ex      de, hl
  6623.  
  6624.  
  6625. loc_A23C:                               ; CODE XREF: sub_A228+11
  6626.                 push    de
  6627.                 call    PRINT_STR_scr0
  6628.  
  6629.                 ld      hl, #1100
  6630.                 ld      (scr_XY), hl
  6631.                 pop     hl
  6632.                 call    PRINT_STR_scr0
  6633.  
  6634.                 ret
  6635.  
  6636. ; End of function sub_A228
  6637.  
  6638.  
  6639. ; =============== S U B R O U T I N E =======================================
  6640.  
  6641.  
  6642. sub_A24B:                               ; CODE XREF: sub_A177+1E
  6643.                                         ; sub_A177:loc_A1B0 ...
  6644.                 ld      b, 3
  6645.  
  6646.  
  6647. loc_A24D:                               ; CODE XREF: sub_A24B:loc_A25F
  6648.                 ld      c, 8
  6649.  
  6650.  
  6651. loc_A24F:                               ; CODE XREF: sub_A24B+B
  6652.                 ld      a, (hl)
  6653.                 and     #F8 ; 'ш'
  6654.                 or      e
  6655.                 ld      (hl), a
  6656.                 inc     hl
  6657.                 dec     c
  6658.                 jr      nz, loc_A24F
  6659.  
  6660.                 ld      a, #18
  6661.                 add     a, l
  6662.                 ld      l, a
  6663.                 jr      nc, loc_A25F
  6664.  
  6665.                 inc     h
  6666.  
  6667.  
  6668. loc_A25F:                               ; CODE XREF: sub_A24B+11
  6669.                 djnz    loc_A24D
  6670.  
  6671.                 ret
  6672.  
  6673. ; End of function sub_A24B
  6674.  
  6675.  
  6676. ; =============== S U B R O U T I N E =======================================
  6677.  
  6678.  
  6679. sub_A262:                               ; CODE XREF: sub_8C20:loc_80CE
  6680.                                         ; sub_87CD
  6681.                 ld      a, #20 ; ' '
  6682.                 ld      b, 8
  6683.                 ld      hl, unk_637C
  6684.  
  6685.  
  6686. loc_A269:                               ; CODE XREF: sub_A262+9
  6687.                 inc     hl
  6688.                 ld      (hl), a
  6689.                 djnz    loc_A269
  6690.  
  6691.                 set     7, (hl)
  6692.                 ret
  6693.  
  6694. ; End of function sub_A262
  6695.  
  6696.  
  6697. ; =============== S U B R O U T I N E =======================================
  6698.  
  6699.  
  6700. PRT_DETECT:                             ; CODE XREF: START_POINT+8A
  6701.                 xor     a
  6702.                 ld      (byte_D0E1), a
  6703.                 ld      hl, PRTD_no_serial
  6704.                 push    hl
  6705.                 ld      (bas_ERRSP), sp
  6706.  
  6707.                 ;rst    8               ; somehow jumps to pushed address (loc_A28E)
  6708.                 ;db     #31
  6709.                  call PRTD_no_serial
  6710.  
  6711.                 ld      hl, #C
  6712.                 ld      (word_5CC3), hl
  6713.                 ld      a, #39 ; '9'
  6714.                 ld      (baudrate_NUM), a
  6715.                 pop     af
  6716.                 ld      a, 4            ; serial printer bit
  6717.                  ret ;jr        loc_A28F
  6718.  
  6719. ; ---------------------------------------------------------------------------
  6720.  
  6721. PRTD_no_serial:                         ; DATA XREF: PRT_DETECT+4
  6722.                 xor     a
  6723.  
  6724. loc_A28F:                               ; CODE XREF: PRT_DETECT+1C
  6725.                 ld      hl, CFG_BITS
  6726.                 ld      (hl), a
  6727.                 ld      b, 0
  6728.  
  6729. PRTD_detect_zxprt:                      ; CODE XREF: PRT_DETECT+2A
  6730.                 ld a,0xff;in    a, (#FB)
  6731.                 and     #40 ; '@'       ; D6=0 -- zx printer is present
  6732.                 ret     nz
  6733.                 djnz    PRTD_detect_zxprt
  6734.  
  6735.                 set     3, (hl)         ; zx printer bit
  6736.                 ret
  6737.  
  6738. ; End of function PRT_DETECT
  6739.  
  6740. ; ---------------------------------------------------------------------------
  6741. ; START OF FUNCTION CHUNK FOR sub_8C20
  6742.  
  6743. loc_A29F:                               ; CODE XREF: sub_8C20-863
  6744.                                         ; sub_8C20+16FA ...
  6745.                 call    sub_9571
  6746.  
  6747.                 ld      a, #FF
  6748.                 ld      (NEED_SCR2BUF), a
  6749.                 ld      a, (SEL_SCRorBUF)
  6750.                 or      a
  6751.                 call    z, sub_95C5
  6752.  
  6753.                 ld      a, (CFG_BITS)
  6754.                 and     #C
  6755.                 jp      z, loc_82EB
  6756.  
  6757.                 ld      de, #1000
  6758.                 ld      hl, aZZxPrinterPSer ; " Z-ZX PRINTER    P-SERIAL"
  6759.                 call    sub_9F42
  6760.  
  6761.                 ld      a, (CFG_BITS)
  6762.                 ld      c, a
  6763.                 ld      hl, #1000
  6764.                 bit     0, c
  6765.                 call    sub_A3C3
  6766.  
  6767.                 ld      l, #10
  6768.                 bit     1, c
  6769.                 call    sub_A3C3
  6770.  
  6771.                 ld      hl, #1200
  6772.                 bit     4, c
  6773.                 call    sub_A3C3
  6774.  
  6775.  
  6776. loc_A2DA:                               ; CODE XREF: sub_8C20+16E9
  6777.                                         ; sub_8C20+16F5 ...
  6778.                 call    sub_907E
  6779.  
  6780.                 jp      c, loc_82EB
  6781.  
  6782.                 res     5, a
  6783.                 ld      hl, CFG_BITS
  6784.                 cp      #5A ; 'Z'
  6785.                 jp      z, loc_A318
  6786.  
  6787.                 cp      #50 ; 'P'
  6788.                 jp      z, loc_A325
  6789.  
  6790.                 cp      #4F ; 'O'
  6791.                 jp      z, loc_A35A
  6792.  
  6793.                 cp      #47 ; 'G'
  6794.                 jp      z, loc_A33C
  6795.  
  6796.                 cp      #42 ; 'B'
  6797.                 jp      z, loc_A306
  6798.  
  6799.                 cp      #43 ; 'C'
  6800.                 jp      z, loc_A34D
  6801.  
  6802.                 jp      loc_82EB
  6803.  
  6804. ; ---------------------------------------------------------------------------
  6805.  
  6806. loc_A306:                               ; CODE XREF: sub_8C20+16DB
  6807.                 ld      a, (hl)
  6808.                 and     3
  6809.                 jr      z, loc_A2DA
  6810.  
  6811.                 set     5, (hl)
  6812.                 call    sub_94C9
  6813.  
  6814.                 ld      hl, CFG_BITS
  6815.                 res     5, (hl)
  6816.                 jp      loc_A2DA
  6817.  
  6818. ; ---------------------------------------------------------------------------
  6819.  
  6820. loc_A318:                               ; CODE XREF: sub_8C20+16C7
  6821.                 bit     3, (hl)
  6822.                 jp      z, loc_A29F
  6823.  
  6824.                 ld      a, (hl)
  6825.                 and     #FD ; 'э'
  6826.                 xor     1
  6827.                 ld      (hl), a
  6828.                 jr      loc_A330
  6829.  
  6830. ; ---------------------------------------------------------------------------
  6831.  
  6832. loc_A325:                               ; CODE XREF: sub_8C20+16CC
  6833.                 bit     2, (hl)
  6834.                 jp      z, loc_A29F
  6835.  
  6836.                 ld      a, (hl)
  6837.                 and     #FE ; 'ю'
  6838.                 xor     2
  6839.                 ld      (hl), a
  6840.  
  6841.  
  6842. loc_A330:                               ; CODE XREF: sub_8C20+1703
  6843.                 and     3
  6844.                 jp      nz, loc_A29F
  6845.  
  6846.                 ld      a, (hl)
  6847.                 and     #CF ; 'П'
  6848.                 ld      (hl), a
  6849.                 jp      loc_A29F
  6850.  
  6851. ; ---------------------------------------------------------------------------
  6852.  
  6853. loc_A33C:                               ; CODE XREF: sub_8C20+16D6
  6854.                 ld      a, (hl)
  6855.                 and     3
  6856.                 jr      z, loc_A2DA
  6857.  
  6858.                 set     5, (hl)
  6859.                 ld      hl, (word_D0F7)
  6860.                 inc     hl
  6861.                 ld      (word_D0F7), hl
  6862.                 jp      loc_8A32
  6863.  
  6864. ; ---------------------------------------------------------------------------
  6865.  
  6866. loc_A34D:                               ; CODE XREF: sub_8C20+16E0
  6867.                 ld      a, (hl)
  6868.                 and     3
  6869.                 jp      z, loc_A29F
  6870.  
  6871.                 ld      a, (hl)
  6872.                 xor     #10
  6873.                 ld      (hl), a
  6874.                 jp      loc_A29F
  6875.  
  6876. ; ---------------------------------------------------------------------------
  6877.  
  6878. loc_A35A:                               ; CODE XREF: sub_8C20+16D1
  6879.                                         ; sub_8C20+1777 ...
  6880.                 ld      hl, aSelectBaudRate ; "SELECT BAUD RATE:-"
  6881.                 ld      de, #1000
  6882.                 call    sub_9F42
  6883.  
  6884.                 ld      a, (CFG_BITS)
  6885.                 ld      hl,#140B
  6886.                 and     #40 ; '@'
  6887.                 call    sub_A3C3
  6888.  
  6889.                 ld      hl, #1014
  6890.                 ld      (scr_XY), hl
  6891.                 ld      a, (baudrate_NUM)
  6892.                 call    PRINT_LETTER
  6893.  
  6894.                 call    sub_907E
  6895.  
  6896.                 jp      c, loc_A29F
  6897.  
  6898.                 cp      #31 ; '1'
  6899.                 jp      c, loc_A29F
  6900.  
  6901.                 cp      #3A ; ':'
  6902.                 jr      c, loc_A399
  6903.  
  6904.                 res     5, a
  6905.                 cp      #43 ; 'C'
  6906.                 jp      nz, loc_A29F
  6907.  
  6908.                 ld      hl, CFG_BITS
  6909.                 ld      a, (hl)
  6910.                 xor     #40 ; '@'
  6911.                 ld      (hl), a
  6912.                 jr      loc_A35A
  6913.  
  6914. ; ---------------------------------------------------------------------------
  6915.  
  6916. loc_A399:                               ; CODE XREF: sub_8C20+1767
  6917.                 ld      (baudrate_NUM), a
  6918.                 sub     #31 ; '1'
  6919.                 add     a, a
  6920.                 ld      hl, baud_rates
  6921.                 add     a, l
  6922.                 ld      l, a
  6923.                 jr      nc, loc_A3A7
  6924.  
  6925.                 inc     h
  6926.  
  6927.  
  6928. loc_A3A7:                               ; CODE XREF: sub_8C20+1784
  6929.                 ld      e, (hl)
  6930.                 inc     hl
  6931.                 ld      d, (hl)
  6932.                 ld      (word_5CC3), de
  6933.                 jp      loc_A35A
  6934.  
  6935. ; END OF FUNCTION CHUNK FOR sub_8C20
  6936. ; ---------------------------------------------------------------------------
  6937. baud_rates:     dw #A82         ; DATA XREF: sub_8C20+177F
  6938.                 dw #4C5
  6939.                 dw #1BE
  6940.                 dw #DE
  6941.                 dw #6E
  6942.                 dw #36
  6943.                 dw #1A
  6944.                 dw #C
  6945.                 dw 5
  6946.  
  6947. ; =============== S U B R O U T I N E =======================================
  6948.  
  6949.  
  6950. sub_A3C3:                               ; CODE XREF: sub_8C20+16A8
  6951.                                         ; sub_8C20+16AF ...
  6952.                 ld      (scr_XY), hl
  6953.                 ld      a, #20 ; ' '
  6954.                 jr      z, loc_A3CC
  6955.  
  6956.                 ld      a, #2A ; '*'
  6957.  
  6958.  
  6959. loc_A3CC:                               ; CODE XREF: sub_A3C3+5
  6960.                 call    PRINT_LETTER
  6961.  
  6962.                 ret
  6963.  
  6964. ; End of function sub_A3C3
  6965.  
  6966.  
  6967. ; =============== S U B R O U T I N E =======================================
  6968.  
  6969.  
  6970. sub_A3D0:                               ; CODE XREF: sub_9FB2+3F
  6971.                 call    sub_A4C2
  6972.  
  6973.                 ret     nc
  6974.                 ld      c, 6
  6975.                 call    sub_A164
  6976.  
  6977.                 jr      c, loc_A3E0
  6978.  
  6979.                 ld      c, #10
  6980.                 jp      loc_A437
  6981.  
  6982. ; ---------------------------------------------------------------------------
  6983.  
  6984. loc_A3E0:                               ; CODE XREF: sub_A3D0+9
  6985.                 ld      a, (byte_D049) ;move #
  6986.                 ld      b, a
  6987.                 ld      a, (byte_D0B4)
  6988.                 bit     5, a
  6989.                 jr      z, loc_A3F2
  6990.  
  6991.                 ld      a, (byte_D0BF)
  6992.                 rra
  6993.                 jr      nc, loc_A3F2
  6994.  
  6995.                 dec     b
  6996.  
  6997.  
  6998. loc_A3F2:                               ; CODE XREF: sub_A3D0+19 sub_A3D0+1F
  6999.                 push    bc
  7000.                 ld      a, b
  7001.                 ld      bc, #3000
  7002.  
  7003.  
  7004. loc_A3F7:                               ; CODE XREF: sub_A3D0+2F
  7005.                 cp      #64 ; 'd'
  7006.                 jr      c, loc_A401
  7007.  
  7008.                 inc     b
  7009.                 inc     c
  7010.                 sub     #64 ; 'd'
  7011.                 jr      loc_A3F7
  7012.  
  7013. ; ---------------------------------------------------------------------------
  7014.  
  7015. loc_A401:                               ; CODE XREF: sub_A3D0+29
  7016.                 ex      af, af' ;'
  7017.                 ld      a, b
  7018.                 cp      #30 ; '0'
  7019.                 jr      nz, loc_A40F
  7020.  
  7021.                 ld      a, c
  7022.                 or      a
  7023.                 ld      a, #30 ; '0'
  7024.                 jr      nz, loc_A40F
  7025.  
  7026.                 ld      a, #20 ; ' '
  7027.  
  7028.  
  7029. loc_A40F:                               ; CODE XREF: sub_A3D0+35 sub_A3D0+3B
  7030.                 call    loc_A476
  7031.  
  7032.                 ex      af, af' ;'
  7033.                 ld      b, #30 ; '0'
  7034.  
  7035.  
  7036. loc_A415:                               ; CODE XREF: sub_A3D0+4D
  7037.                 cp      #A
  7038.                 jr      c, loc_A41F
  7039.  
  7040.                 inc     b
  7041.                 inc     c
  7042.                 sub     #A
  7043.                 jr      loc_A415
  7044.  
  7045. ; ---------------------------------------------------------------------------
  7046.  
  7047. loc_A41F:                               ; CODE XREF: sub_A3D0+47
  7048.                 ex      af, af' ;'
  7049.                 ld      a, b
  7050.                 cp      #30 ; '0'
  7051.                 jr      nz, loc_A42D
  7052.  
  7053.                 ld      a, c
  7054.                 or      a
  7055.                 ld      a, #30 ; '0'
  7056.                 jr      nz, loc_A42D
  7057.  
  7058.                 ld      a, #20 ; ' '
  7059.  
  7060.  
  7061. loc_A42D:                               ; CODE XREF: sub_A3D0+53 sub_A3D0+59
  7062.                 call    loc_A476
  7063.  
  7064.                 ex      af, af' ;'
  7065.                 add     a, #30 ; '0'
  7066.                 call    loc_A476
  7067.  
  7068.                 pop     bc
  7069.  
  7070.  
  7071. loc_A437:                               ; CODE XREF: sub_A3D0+D
  7072.                 call    sub_A454
  7073.  
  7074.                 jr      sub_A43C
  7075.  
  7076. ; End of function sub_A3D0
  7077.  
  7078.  
  7079. ; =============== S U B R O U T I N E =======================================
  7080.  
  7081.  
  7082. sub_A43C:                               ; CODE XREF: sub_8C20-B48
  7083.                                         ; sub_8C20-B3A ...
  7084.                 ld      a, #D
  7085.                 call    loc_A476
  7086.  
  7087.                 xor     a
  7088.                 ld      (byte_D0E1), a
  7089.                 ld      a, (CFG_BITS)
  7090.                 bit     6, a
  7091.                 ret     z
  7092.                 bit     0, a
  7093.                 ld      a, #A
  7094.                 ret     nz
  7095.                 call    loc_A476
  7096.  
  7097.                 ret
  7098.  
  7099. ; End of function sub_A43C
  7100.  
  7101.  
  7102. ; =============== S U B R O U T I N E =======================================
  7103.  
  7104.  
  7105. sub_A454:                               ; CODE XREF: sub_A3D0:loc_A437
  7106.                 call    sub_A466
  7107.  
  7108.                 ld      hl, buf_10bytes
  7109.  
  7110. ; End of function sub_A454
  7111.  
  7112.  
  7113. ; =============== S U B R O U T I N E =======================================
  7114.  
  7115.  
  7116. sub_A45A:                               ; CODE XREF: sub_8C20-72 sub_A45A+9
  7117.                 ld      a, (hl)
  7118.                 and     #7F ; ''
  7119.                 call    loc_A476
  7120.  
  7121.                 bit     7, (hl)
  7122.                 inc     hl
  7123.                 jr      z, sub_A45A
  7124.  
  7125.                 ret
  7126.  
  7127. ; End of function sub_A45A
  7128.  
  7129.  
  7130. ; =============== S U B R O U T I N E =======================================
  7131.  
  7132.  
  7133. sub_A466:                               ; CODE XREF: sub_A454
  7134.                 call    sub_A4C2
  7135.  
  7136.                 ret     nc
  7137.  
  7138.  
  7139. loc_A46A:                               ; CODE XREF: sub_A466+E
  7140.                 ld      a, (byte_D0E1)
  7141.                 cp      c
  7142.                 ret     z
  7143.                 ld      a, #20 ; ' '
  7144.                 call    loc_A476
  7145.  
  7146.                 jr      loc_A46A
  7147.  
  7148. ; End of function sub_A466
  7149.  
  7150. ; ---------------------------------------------------------------------------
  7151.  
  7152. loc_A476:                               ; CODE XREF: sub_8C20-B40
  7153.                                         ; sub_94C9+21   ...
  7154.                 call    sub_A4C2
  7155.  
  7156.                 ret     nc
  7157.                 push    bc
  7158.                 push    de
  7159.                 push    hl
  7160.                 ld      hl, byte_D0E1
  7161.                 inc     (hl)
  7162.                 exx
  7163.                 push    bc
  7164.                 push    de
  7165.                 push    hl
  7166.                 push    ix
  7167.                 push    iy
  7168.                 ex      af, af' ;'
  7169.                 push    af
  7170.                 ex      af, af' ;'
  7171.                 ld      hl, loc_A4A7
  7172.                 push    hl
  7173.                 ld      (bas_ERRSP), sp
  7174.                 ld      iy, #5C3A
  7175.                 ld      hl, CFG_BITS
  7176.                 bit     0, (hl)
  7177.                 ;jr     nz, loc_A4A3
  7178.  
  7179.                 ;rst    8 ;to printer?
  7180.                 ;db     #1E,#18,#01
  7181.                 ds 4
  7182.  
  7183. loc_A4A3:                               ; CODE XREF: RAM:A49D
  7184.                 call rst10 ;rst #10 ;to screen
  7185.  
  7186.                 pop     hl
  7187.                 jr      loc_A4B1
  7188.  
  7189. ; ---------------------------------------------------------------------------
  7190.  
  7191. loc_A4A7:                               ; DATA XREF: RAM:A48C
  7192.                 ld      a, (CFG_BITS)
  7193.                 res     4, a
  7194.                 res     5, a
  7195.                 ld      (CFG_BITS), a
  7196.  
  7197.  
  7198. loc_A4B1:                               ; CODE XREF: RAM:A4A5
  7199.                 call    SET_BRD_COLOR
  7200.  
  7201.                 pop     af
  7202.                 ex      af, af' ;'
  7203.                 pop     iy
  7204.                 pop     ix
  7205.                 pop     hl
  7206.                 pop     de
  7207.                 pop     bc
  7208.                 exx
  7209.                 pop     hl
  7210.                 pop     de
  7211.                 pop     bc
  7212.                 ret
  7213.  
  7214.  
  7215. ; =============== S U B R O U T I N E =======================================
  7216.  
  7217.  
  7218. sub_A4C2:                               ; CODE XREF: sub_A3D0   sub_A466 ...
  7219.                 push    af
  7220.                 push    de
  7221.                 push    hl
  7222.                 ld      a, (CFG_BITS)
  7223.                 and     #30 ; '0'
  7224.                 jr      z, loc_A4EA
  7225.  
  7226.                 ld      a, (byte_D0B4)
  7227.                 bit     5, a
  7228.                 jr      nz, loc_A4EF
  7229.  
  7230.                 ld      hl, (word_D09F)
  7231.                 ld      a, h
  7232.                 or      l
  7233.                 jr      z, loc_A4EF
  7234.  
  7235.                 ld      de, (word_D0F7)
  7236.                 or      a
  7237.                 sbc     hl, de
  7238.                 jr      z, loc_A4EF
  7239.  
  7240.                 ld      a, (CFG_BITS)
  7241.                 bit     5, a
  7242.                 jr      nz, loc_A4EF
  7243.  
  7244.  
  7245. loc_A4EA:                               ; CODE XREF: sub_A4C2+8
  7246.                 pop     hl
  7247.                 pop     de
  7248.                 pop     af
  7249.                 or      a
  7250.                 ret
  7251.  
  7252. ; ---------------------------------------------------------------------------
  7253.  
  7254. loc_A4EF:                               ; CODE XREF: sub_A4C2+F sub_A4C2+16     ...
  7255.                 pop     hl
  7256.                 pop     de
  7257.                 pop     af
  7258.                 scf
  7259.                 ret
  7260.  
  7261. ; End of function sub_A4C2
  7262.  
  7263. ; ---------------------------------------------------------------------------
  7264. ; START OF FUNCTION CHUNK FOR sub_8C20
  7265.  
  7266. loc_A4F4:                               ; CODE XREF: sub_8C20-868
  7267.                 call    sub_9571
  7268.  
  7269.                 ld      a, #FF
  7270.                 ld      (NEED_SCR2BUF), a
  7271.                 ld      a, (SEL_SCRorBUF)
  7272.                 or      a
  7273.                 call    z, sub_95C5
  7274.  
  7275.                 ld      de, #1000
  7276.                 ld      hl, aSSaveRecordLLo ; "S- Save record   L- Load record"
  7277.                 call    sub_9F42
  7278.  
  7279.                 ld      hl, loc_A671
  7280.                 push    hl
  7281.                 ld      (bas_ERRSP), sp
  7282.                 call    sub_907E
  7283.  
  7284.                 jr      c, loc_A525
  7285.  
  7286.                 and     #5F ; '_'
  7287.                 cp      #4C ; 'L'
  7288.                 jp      z, loc_A5D9 ;Load
  7289.  
  7290.                 cp      #53 ; 'S'
  7291.                 jp      z, loc_A596 ;Save
  7292.  
  7293.  
  7294. loc_A525:                               ; CODE XREF: sub_8C20+18F7
  7295.                 pop     hl
  7296.                 jp      loc_82EB
  7297.  
  7298. ; END OF FUNCTION CHUNK FOR sub_8C20
  7299.  
  7300. ; =============== S U B R O U T I N E =======================================
  7301.  
  7302.  
  7303. SAVE_RECORD:                            ; CODE XREF: sub_8C20+197F
  7304.                                         ; sub_8C20:fool_name
  7305.                 ld      a, #FF
  7306.                 ld      (SEL_SCRorBUF), a
  7307.                 ld      hl, #1305
  7308.                 ld      (scr_XY), hl
  7309.                 ld      hl,  TAPE_header+#10
  7310.                 ld      b, #10
  7311.  
  7312.  
  7313. loc_A539:                               ; CODE XREF: SAVE_RECORD+13
  7314.                 ld      (hl), #20 ; ' '
  7315.                 dec     hl
  7316.                 djnz    loc_A539
  7317.  
  7318.                 ld      (hl), 9
  7319.  
  7320.  
  7321. loc_A540:                               ; CODE XREF: SAVE_RECORD+28
  7322.                                         ; SAVE_RECORD+42 ...
  7323.                 call    sub_907E
  7324.  
  7325.                 ret     c
  7326.                 cp      #D
  7327.                 jr      z, loc_A56E
  7328.  
  7329.                 cp      #C
  7330.                 jr      nz, loc_A57B
  7331.  
  7332.                 ld      a, (scr_XY)
  7333.                 sub     5
  7334.                 jr      z, loc_A540
  7335.  
  7336.                 ld      hl,  TAPE_header+1
  7337.                 add     a, l
  7338.                 ld      l, a
  7339.                 jr      nc, loc_A55B
  7340.  
  7341.                 inc     h
  7342.  
  7343.  
  7344. loc_A55B:                               ; CODE XREF: SAVE_RECORD+2F
  7345.                 dec     hl
  7346.                 ld      (hl), #20 ; ' '
  7347.                 ld      hl, scr_XY
  7348.                 dec     (hl)
  7349.                 ld      a, #20 ; ' '
  7350.                 call    PRINT_LETTER
  7351.  
  7352.                 ld      hl, scr_XY
  7353.                 dec     (hl)
  7354.                 jp      loc_A540
  7355.  
  7356. ; ---------------------------------------------------------------------------
  7357.  
  7358. loc_A56E:                               ; CODE XREF: SAVE_RECORD+1D
  7359.                 ld      a, (scr_XY)
  7360.                 cp      5
  7361.                 ret     nz
  7362.                 ld      hl,  TAPE_header+1
  7363.                 ld      (hl), #FF
  7364.                 or      a
  7365.                 ret
  7366.  
  7367. ; ---------------------------------------------------------------------------
  7368.  
  7369. loc_A57B:                               ; CODE XREF: SAVE_RECORD+21
  7370.                 ld      e, a
  7371.                 ld      a, (scr_XY)
  7372.                 cp      #F
  7373.                 jp      nc, loc_A540
  7374.  
  7375.                 ld      hl,  TAPE_header+1
  7376.                 sub     5
  7377.                 add     a, l
  7378.                 ld      l, a
  7379.                 jr      nc, loc_A58E
  7380.  
  7381.                 inc     h
  7382.  
  7383.  
  7384. loc_A58E:                               ; CODE XREF: SAVE_RECORD+62
  7385.                 ld      (hl), e
  7386.                 ld      a, e
  7387.                 call    PRINT_LETTER
  7388.  
  7389.                 jp      loc_A540
  7390.  
  7391. ; End of function SAVE_RECORD
  7392.  
  7393. ; ---------------------------------------------------------------------------
  7394. ; START OF FUNCTION CHUNK FOR sub_8C20
  7395.  
  7396. loc_A596:                               ; CODE XREF: sub_8C20+1902
  7397. ;Save
  7398.                 ld      de, #1000
  7399.                 ld      hl, aSaveTheGameRec ; "      SAVE THE GAME RECORD"
  7400.                 call    sub_9F42
  7401.  
  7402.                 call    SAVE_RECORD
  7403.  
  7404.                 jr      c, loc_A5D2
  7405.  
  7406.                 ld      hl, #1500
  7407.                 ld      (scr_XY), hl
  7408.                 ld      hl, aStartTapeAndPr ; "  START TAPE AND PRESS ANY KE"
  7409.                 call    PRINT_STR_FF
  7410.  
  7411.                 call    sub_907E
  7412.  
  7413.                 jr      c, loc_A5D2
  7414.  
  7415.                 ld      ix, TAPE_header
  7416.                 ld      de, #11
  7417.                 xor     a
  7418.                 call    ROM_START+#4C2
  7419.  
  7420.                 ld      a, #32 ; '2'
  7421.  
  7422.  
  7423. loc_A5C2:                               ; CODE XREF: sub_8C20+19A4
  7424.                 halt
  7425.                 dec     a
  7426.                 jr      nz, loc_A5C2
  7427.  
  7428.                 ld      ix, BRD_88_0
  7429.                 ld      de, #3FF
  7430.                 ld      a, #FF
  7431.                 call    ROM_START+#4C2
  7432.  
  7433.  
  7434. loc_A5D2:                               ; CODE XREF: sub_8C20+1982
  7435.                                         ; sub_8C20+1993 ...
  7436.                 pop     hl
  7437.                 call    SET_BRD_COLOR
  7438.  
  7439.                 jp      loc_82EB
  7440.  
  7441. ; ---------------------------------------------------------------------------
  7442.  
  7443. loc_A5D9:                               ; CODE XREF: sub_8C20+18FD
  7444. ;Load
  7445.                 ld      de, #1000
  7446.                 ld      hl, aLoadAGameRecor ; "      LOAD A GAME RECORD"
  7447.                 call    sub_9F42
  7448.  
  7449.  
  7450. fool_name:
  7451.                 call    SAVE_RECORD
  7452.  
  7453.                 jr      c, loc_A5D2
  7454.  
  7455.                 ld      hl, #1500
  7456.                 ld      (scr_XY), hl
  7457.                 ld      hl, #9D53
  7458.                 call    PRINT_STR_FF
  7459.  
  7460.                 call    sub_907E
  7461.  
  7462.                 jr      c, loc_A5D2
  7463.  
  7464.  
  7465. loc_A5F8:                               ; CODE XREF: sub_8C20+19E4
  7466.                                         ; sub_8C20+1A2C
  7467.                 ld      ix, #63B5
  7468.                 ld      de, #11
  7469.                 xor     a
  7470.                 scf
  7471.                 call    ROM_START+#556
  7472.  
  7473.                 jp      nc, loc_A5F8
  7474.  
  7475.                 ld      hl, #1300
  7476.                 ld      (scr_XY), hl
  7477.                 ld      hl, a_32spaces  ; "                        "
  7478.                 call    PRINT_STR_FF
  7479.  
  7480.                 ld      hl, #1300
  7481.                 ld      (scr_XY), hl
  7482.                 ld      a, (byte_63B5)
  7483.                 ld      hl,  aGameRecord
  7484.                 cp      9
  7485.                 jr      z, loc_A626
  7486.  
  7487.                 ld      hl, aNotAGameRecord ; "NOT A GAME RECORD :"
  7488.  
  7489.  
  7490. loc_A626:                               ; CODE XREF: sub_8C20+1A01
  7491.                 call    PRINT_STR_FF
  7492.  
  7493.                 ld      a, (byte_63B6)
  7494.                 inc     a
  7495.                 jr      z, loc_A640
  7496.  
  7497.                 ld      hl, unk_63BF
  7498.                 set     7, (hl)
  7499.                 ld      hl, byte_63B6
  7500.                 call    PRINT_STR_FF
  7501.  
  7502.                 ld      a, (TAPE_header+1)
  7503.                 inc     a
  7504.                 jr      z, loc_A652
  7505.  
  7506.  
  7507. loc_A640:                               ; CODE XREF: sub_8C20+1A0D
  7508.                 ld      de,  TAPE_header+1
  7509.                 ld      hl, byte_63B6
  7510.                 ld      b, #A
  7511.  
  7512.  
  7513. loc_A648:                               ; CODE XREF: sub_8C20+1A30
  7514.                 ld      a, (de)
  7515.                 res     7, (hl)
  7516.                 cp      (hl)
  7517.                 jr      nz, loc_A5F8
  7518.  
  7519.                 inc     hl
  7520.                 inc     de
  7521.                 djnz    loc_A648
  7522.  
  7523.  
  7524. loc_A652:                               ; CODE XREF: sub_8C20+1A1E
  7525.                 ld      ix, RAM_END_D800
  7526.                 ld      de, #3FF
  7527.                 ld      a, #FF
  7528.                 scf
  7529.                 call    ROM_START+#556
  7530.  
  7531.                 jp      nc, loc_A670
  7532.  
  7533.                 ld      hl, RAM_END_D800
  7534.                 ld      de, BRD_88_0
  7535.                 ld      bc, #3FF
  7536.                 ldir
  7537.                 call    INIT_PRINT_CLOCKS
  7538.  
  7539.  
  7540. loc_A670:                               ; CODE XREF: sub_8C20+1A3F
  7541.                 pop     hl
  7542.  
  7543.  
  7544. loc_A671:                               ; DATA XREF: sub_8C20+18EC
  7545.                 ld      hl, (word_D0F7)
  7546.                 inc     hl
  7547.                 ld      (word_D0F7), hl
  7548.                 call    SET_BRD_COLOR
  7549.  
  7550.                 call    sub_9EE6
  7551.  
  7552.                 call    PRINT_CLOCKS_SWAP
  7553.  
  7554.                 jp      loc_8A32
  7555.  
  7556. ; END OF FUNCTION CHUNK FOR sub_8C20
  7557.  
  7558. ; =============== S U B R O U T I N E =======================================
  7559.  
  7560.  
  7561. sub_A684:                               ; CODE XREF: sub_8C20-A43
  7562.                                         ; sub_8DE9+55   ...
  7563.                 ld      a, (byte_D0B4)
  7564.                 bit     5, a
  7565.                 ret     nz
  7566.                 ld      a, (byte_D0DF)
  7567.                 rra
  7568.                 ret     c
  7569.                 push    bc
  7570.                 push    de
  7571.                 push    hl
  7572.                 push    ix
  7573.                 push    iy
  7574.                 exx
  7575.                 push    bc
  7576.                 push    de
  7577.                 push    hl
  7578.                 ld      a, #FF
  7579.                 ld      (NEED_SCR2BUF), a
  7580.                 ld      hl, #D08
  7581.                 ld      (scr_XY), hl
  7582.                 ld      b, 7
  7583.                 ld      hl, byte_D258
  7584.  
  7585.  
  7586. loc_A6AA:                               ; CODE XREF: sub_A684+48
  7587.                 ld      a, (hl)
  7588.                 cp      #FF
  7589.                 jr      z, loc_A6D0
  7590.  
  7591.                 push    bc
  7592.                 push    hl
  7593.                 ld      hl,  a_8spaces+5
  7594.                 call    PRINT_STR_FF
  7595.  
  7596.                 pop     hl
  7597.                 push    hl
  7598.                 ld      a, (hl)
  7599.                 call    sub_A021
  7600.  
  7601.                 ld      a, #2D ; '-'
  7602.                 call    PRINT_LETTER
  7603.  
  7604.                 pop     hl
  7605.                 inc     hl
  7606.                 push    hl
  7607.                 ld      a, (hl)
  7608.                 call    sub_A021
  7609.  
  7610.                 pop     hl
  7611.                 inc     hl
  7612.                 pop     bc
  7613.                 djnz    loc_A6AA
  7614.  
  7615.                 jr      loc_A6D8
  7616.  
  7617. ; ---------------------------------------------------------------------------
  7618.  
  7619. loc_A6D0:                               ; CODE XREF: sub_A684+29 sub_A684+52
  7620.                 ld      hl, a_8spaces   ; "       "
  7621.                 call    PRINT_STR_FF
  7622.  
  7623.                 djnz    loc_A6D0
  7624.  
  7625.  
  7626. loc_A6D8:                               ; CODE XREF: sub_A684+4A sub_A6F7+3E
  7627.                 pop     hl
  7628.                 pop     de
  7629.                 pop     bc
  7630.                 exx
  7631.                 pop     iy
  7632.                 pop     ix
  7633.                 pop     hl
  7634.                 pop     de
  7635.                 pop     bc
  7636.                 ret
  7637.  
  7638. ; End of function sub_A684
  7639.  
  7640.  
  7641. ; =============== S U B R O U T I N E =======================================
  7642.  
  7643.  
  7644. sub_A6E4:                               ; CODE XREF: sub_8C20-92D
  7645.                                         ; sub_8C20-829 ...
  7646.                 ld      hl, #D08
  7647.                 ld      (scr_XY), hl
  7648.                 ld      hl,  a_32spaces+8
  7649.                 call    PRINT_STR_FF
  7650.  
  7651.                 ld      hl, a_32spaces  ; "                        "
  7652.                 call    PRINT_STR_FF
  7653.  
  7654.                 ret
  7655.  
  7656. ; End of function sub_A6E4
  7657.  
  7658.  
  7659. ; =============== S U B R O U T I N E =======================================
  7660.  
  7661.  
  7662. sub_A6F7:                               ; CODE XREF: sub_AFC5+C7
  7663.                 ld      a, (byte_D0B4)
  7664.                 bit     5, a
  7665.                 ret     nz
  7666.                 push    bc
  7667.                 push    de
  7668.                 push    hl
  7669.                 push    ix
  7670.                 push    iy
  7671.                 exx
  7672.                 push    bc
  7673.                 push    de
  7674.                 push    hl
  7675.                 exx
  7676.                 ld      de, #F00
  7677.                 ld      (scr_XY), de
  7678.                 ld      a, #FF
  7679.                 ld      (NEED_SCR2BUF), a
  7680.                 ld      a, (hl)
  7681.                 cp      #FE ; 'ю'
  7682.                 jr      c, loc_A725
  7683.  
  7684.                 ld      hl,  a_8spaces+5
  7685.                 call    PRINT_STR_FF
  7686.  
  7687.                 ld      hl,  aNoMateIn+3
  7688.                 jr      loc_A728
  7689.  
  7690. ; ---------------------------------------------------------------------------
  7691.  
  7692. loc_A725:                               ; CODE XREF: sub_A6F7+21
  7693.                 ld      hl, aNoMateIn   ; "NO MATE IN"
  7694.  
  7695.  
  7696. loc_A728:                               ; CODE XREF: sub_A6F7+2C
  7697.                 call    PRINT_STR_FF
  7698.  
  7699.                 ld      a, (byte_D098)
  7700.                 srl     a
  7701.                 add     a, #31 ; '1'
  7702.                 call    PRINT_LETTER
  7703.  
  7704.                 jp      loc_A6D8
  7705.  
  7706. ; End of function sub_A6F7
  7707.  
  7708. ; ---------------------------------------------------------------------------
  7709.  
  7710.  
  7711.         ;cyrus logo, 128 bytes.
  7712.         ;no alignment
  7713.  
  7714. CYRUS_LOGO_spr: db  #00,#00,#00,#00,#00,#00,#00,#00
  7715.                 db  #00,#00,#00,#00,#00,#00,#00,#00
  7716.                 db  #3E,#7D,#F7,#E3,#DE,#3C,#1F,#FC
  7717.                 db  #7F,#7D,#F7,#F3,#DE,#7E,#1F,#FC
  7718.                 db  #F7,#B8,#E3,#39,#8C,#E7,#06,#30
  7719.                 db  #E3,#9D,#C3,#39,#8C,#E7,#06,#30
  7720.                 db  #C0,#0D,#83,#39,#8C,#E0,#06,#30
  7721.                 db  #C0,#0F,#83,#F1,#8C,#FE,#06,#30
  7722.                 db  #C0,#07,#03,#E1,#8C,#7F,#06,#30
  7723.                 db  #C0,#07,#03,#71,#8C,#07,#06,#30
  7724.                 db  #E3,#87,#03,#39,#8C,#E7,#06,#30
  7725.                 db  #F7,#87,#03,#19,#DC,#E7,#06,#30
  7726.                 db  #7F,#0F,#87,#BC,#F8,#7E,#1F,#FC
  7727.                 db  #3E,#0F,#87,#BC,#70,#3C,#1F,#FC
  7728.                 db  #00,#00,#00,#00,#00,#00,#00,#00
  7729.                 db  #00,#00,#00,#00,#00,#00,#00,#00
  7730.  
  7731.  
  7732.  
  7733. ; =============== S U B R O U T I N E =======================================
  7734.  
  7735. ; show CYRUS II logo in upper left part of screen or scrbuf
  7736.  
  7737. SHOW_LOGO:                              ; CODE XREF: sub_A177
  7738.                 push    hl
  7739.                 push    de
  7740.                 push    bc
  7741.                 ld      hl, SCREEN
  7742.                 ld      a, (SEL_SCRorBUF)
  7743.                 or      a
  7744.                 jr      z, loc_A7C8
  7745.  
  7746.                 ld      de, #2400
  7747.                 add     hl, de          ; step to SCR_BUF_6400
  7748.  
  7749.  
  7750. loc_A7C8:                               ; CODE XREF: SHOW_LOGO+A
  7751.                 push    hl
  7752.                 ld      de, CYRUS_LOGO_spr
  7753.                 ld      b, 8
  7754.  
  7755.  
  7756. loc_A7CE:                               ; CODE XREF: SHOW_LOGO+22
  7757.                 ld      c, 8
  7758.                 push    hl
  7759.  
  7760.  
  7761. loc_A7D1:                               ; CODE XREF: SHOW_LOGO+1E
  7762.                 ld      a, (de)
  7763.                 ld      (hl), a
  7764.                 inc     hl
  7765.                 inc     de
  7766.                 dec     c
  7767.                 jr      nz, loc_A7D1
  7768.  
  7769.                 pop     hl
  7770.                 inc     h
  7771.                 djnz    loc_A7CE
  7772.  
  7773.                 pop     hl
  7774.                 ld      a, #20 ; ' '
  7775.                 add     a, l
  7776.                 ld      l, a
  7777.                 ld      b, 8
  7778.  
  7779.  
  7780. loc_A7E3:                               ; CODE XREF: SHOW_LOGO+37
  7781.                 ld      c, 8
  7782.                 push    hl
  7783.  
  7784.  
  7785. loc_A7E6:                               ; CODE XREF: SHOW_LOGO+33
  7786.                 ld      a, (de)
  7787.                 ld      (hl), a
  7788.                 inc     hl
  7789.                 inc     de
  7790.                 dec     c
  7791.                 jr      nz, loc_A7E6
  7792.  
  7793.                 pop     hl
  7794.                 inc     h
  7795.                 djnz    loc_A7E3
  7796.  
  7797.                 pop     bc
  7798.                 pop     de
  7799.                 pop     hl
  7800.                 ret
  7801.  
  7802. ; End of function SHOW_LOGO
  7803.  
  7804. ; ---------------------------------------------------------------------------
  7805.  
  7806.        if !FIX
  7807.         ;unneeded space???
  7808.                 ds      267
  7809.        endif
  7810.  
  7811.  
  7812.  
  7813.  
  7814.  
  7815.  
  7816.  
  7817.  
  7818.  
  7819.         ;following jump table is unneeded???
  7820.  
  7821. sub_A900:
  7822.                 jp      sub_AFC5
  7823. sub_A903:
  7824.                 jp      loc_A961
  7825. sub_A906:
  7826.                 jp      sub_AD40
  7827. sub_A909:
  7828.                 jp      sub_AF81
  7829. sub_A90C:
  7830.                 jp      sub_AC59
  7831. sub_A90F:
  7832.                 jp      sub_AB4C
  7833. loc_A912:
  7834.                 jp      loc_AF68
  7835. sub_A915:
  7836.                 jp      sub_B8B2
  7837.  
  7838.  
  7839.  
  7840.  
  7841.  
  7842. ; ---------------------------------------------------------------------------
  7843.        if FIX
  7844.                 align 8
  7845.        endif
  7846.  
  7847.                 ;must be inside 256b page
  7848. byte_A918:      db #0E,#12,#1F,#21,#F2,#EE,#E1,#DF ;8 bytes ;knight moves?
  7849.  
  7850. byte_A920:      db #0F                  ; DATA XREF: sub_A94F+42 ;sub_AAF8:loc_AAFA ... ;8 bytes ;bishop moves (then rook moves)
  7851.                 db #11
  7852.                 db #EF
  7853.                 db #F1
  7854. byte_A924:      db #01                  ; DATA XREF: sub_AAC9:loc_AACB ;4 bytes ;rook moves?
  7855.                 db #FF
  7856.                 db #10
  7857.                 db #F0                 
  7858.  
  7859. byte_A928: ; DATA XREF: sub_AFC5:loc_B00D
  7860. ;any place?
  7861.                 db #80
  7862.                 db #00
  7863.                 db #34
  7864.                 db #02
  7865.                 db #28
  7866.                 db #06
  7867.                 db #19
  7868.                 db #0E
  7869.                 db #00
  7870.                 db #1E
  7871.  
  7872. ; =============== S U B R O U T I N E =======================================
  7873.  
  7874.  
  7875. sub_A932:                               ; CODE XREF: sub_AFC5+30 sub_AFC5+36
  7876.                 ld      c, 0
  7877.                 ld      b, #F
  7878. loc_A936:                               ; CODE XREF: sub_A932+1A
  7879.                 bit     7, (hl)
  7880.                 jr      nz, loc_A948
  7881.  
  7882.                 inc     l
  7883.                 ld      a, (hl)
  7884.                 and     #F
  7885.                 cp      1
  7886.                 jr      nz, loc_A945
  7887.                 ld      (byte_D04C), a
  7888. loc_A945:                               ; CODE XREF: sub_A932+E
  7889.                 add     a, c
  7890.                 ld      c, a
  7891.                 dec     l
  7892.  
  7893. loc_A948:                               ; CODE XREF: sub_A932+6
  7894.                 ld      a, 8
  7895.                 add     a, l
  7896.                 ld      l, a
  7897.                 djnz    loc_A936
  7898.  
  7899.                 ret
  7900.  
  7901. ; End of function sub_A932
  7902.  
  7903.  
  7904. ; =============== S U B R O U T I N E =======================================
  7905.  
  7906.  
  7907. sub_A94F:                               ; CODE XREF: sub_AFC5+4 sub_B47F-77
  7908.                 call    sub_8F4D
  7909.  
  7910.                 ld      a, (ix+2)
  7911.                 and     #C9
  7912.                 jr      z, loc_A961
  7913.  
  7914.                 ld      hl,  word_D00D+1
  7915.                 jp      p, loc_A960
  7916.                 inc     (hl)
  7917. loc_A960:                               ; CODE XREF: sub_A94F+D
  7918.                 inc     (hl)
  7919. loc_A961:                               ; CODE XREF: sub_A903   sub_A94F+8
  7920.                 ld      hl, byte_D097
  7921.                 ld      a, (hl)
  7922.                 add     a, a
  7923.                 add     a, l
  7924.                 ld      l, a
  7925.                 ld      e, (hl)
  7926.                 inc     l
  7927.                 ld      d, (hl)
  7928.                 inc     l
  7929.                 inc     de
  7930.                 push    de
  7931.                 inc     de
  7932.                 inc     de
  7933.                 push    hl
  7934.                 ld      h, BRD_88_0/256
  7935.                 ld      iy, word_D100
  7936.                 ld      a, (byte_D02D)
  7937.                 exx
  7938.                 rrca
  7939.                 ld      c, a
  7940.                 exx
  7941.                 jr      nc, loc_A984
  7942.                 ld      iy, word_D180
  7943. loc_A984:                               ; CODE XREF: sub_A94F+2F
  7944.                 ld      b, (iy+0)
  7945.                 bit     4, (iy+1)
  7946.                 call    z, sub_AB0A ;проверяем и пишем рокировки в список ходов?
  7947.  
  7948.                 ld      c, #88
  7949.                 exx
  7950.                 ld      de, byte_A920 ;bishop moves (then rook moves)
  7951.                 call    sub_AAA7 ;8 moves (queen?)
  7952.  
  7953.                 ld      a, (iy+8)
  7954.                 or      a
  7955.                 call    p, sub_AB00 ;составляем список ходов от поля A для ферзя?
  7956.  
  7957.                 ld      a, (iy+#10)
  7958.                 or      a
  7959.                 call    p, sub_AAC9 ;составляем список ходов от поля A для ладьи
  7960.  
  7961.                 ld      a, (iy+#18)
  7962.                 or      a
  7963.                 call    p, sub_AAC9 ;составляем список ходов от поля A для ладьи
  7964.  
  7965.                 ld      a, (iy+#20)
  7966.                 or      a
  7967.                 call    p, sub_AAF8 ;составляем список ходов от поля A для слона?
  7968.  
  7969.                 ld      a, (iy+#28)
  7970.                 or      a
  7971.                 call    p, sub_AAF8 ;составляем список ходов от поля A для слона?
  7972.  
  7973.                 ld      a, (iy+#30)
  7974.                 ld      c, #88
  7975.                 or      a
  7976.                 call    p, sub_AAA2 ;составляем список ходов от поля A для коня?
  7977.  
  7978.                 ld      a, (iy+#38)
  7979.                 or      a
  7980.                 call    p, sub_AAA2 ;составляем список ходов от поля A для коня?
  7981.  
  7982.                 ld      c, #11
  7983.                 exx
  7984.                 ld      hl, unk_D140
  7985.                 bit     7, c
  7986.                 jr      z, loc_A9DA
  7987.  
  7988.                 ld      l, #C0  ; word_D1C0&255
  7989.                 exx
  7990.                 ld      c, #F1
  7991.                 exx
  7992.  
  7993. loc_A9DA:                               ; CODE XREF: sub_A94F+83 sub_A94F+F2
  7994.                 ld      a, (hl)
  7995.                 rla
  7996.                 jr      c, loc_AA3B
  7997.  
  7998.                 inc     l
  7999.                 ld      a, (hl)
  8000.                 dec     l
  8001.                 and     #E
  8002.                 ld      a, (hl)
  8003.                 exx
  8004.                 ld      b, a
  8005.                 jr      nz, loc_AA54
  8006.  
  8007.                 add     a, c
  8008.                 ld      l, a
  8009.                 xor     a
  8010.                 or      (hl) ;впереди справа?
  8011.                 jp      z, loc_A9F6
  8012.  
  8013.                 exx
  8014.                 xor     c
  8015.                 exx
  8016.                 call    m, sub_AB41 ;пишем ход B-L, флаги A=8=съедение
  8017.                 xor     a
  8018.  
  8019. loc_A9F6:                               ; CODE XREF: sub_A94F+9D
  8020.                 dec     l
  8021.                 dec     l
  8022.                 or      (hl) ;впереди слева?
  8023.                 jp      z, loc_AA03
  8024.  
  8025.                 exx
  8026.                 xor     c
  8027.                 exx
  8028.                 call    m, sub_AB41 ;пишем ход B-L, флаги A=8=съедение
  8029.                 xor     a
  8030.  
  8031. loc_AA03:                               ; CODE XREF: sub_A94F+AA
  8032.                 inc     l
  8033.                 or      (hl)
  8034.                 jr      nz, loc_AA33
  8035.  
  8036.                 ex      de, hl
  8037.                 ld      (hl), b ;откуда
  8038.                 inc     hl
  8039.                 ld      (hl), e ;куда
  8040.                 inc     hl
  8041.                 ld      (hl), a ;флаги=0
  8042.                 inc     hl
  8043.                 ex      de, hl
  8044.                 ld      a, b
  8045.                 add     a, #20 ; ' '
  8046.                 bit     6, a
  8047.                 jr      nz, loc_AA33
  8048.  
  8049.                 ld      a, c
  8050.                 dec     a
  8051.                 add     a, l
  8052.                 jp      m, loc_AA3A
  8053.  
  8054.                 ld      l, a
  8055.                 xor     a
  8056.                 or      (hl)
  8057.                 jr      nz, loc_AA3A
  8058.  
  8059.                 call    sub_AB43 ;пишем ход B-L, флаги A=0
  8060.  
  8061.                 dec     l
  8062.                 or      (hl)
  8063.                 call    nz, sub_AA8B
  8064.  
  8065.                 inc     l
  8066.                 inc     l
  8067.                 ld      a, (hl)
  8068.                 or      a
  8069.                 call    nz, sub_AA8B
  8070.  
  8071.                 jp      loc_AA3A
  8072.  
  8073. ; ---------------------------------------------------------------------------
  8074.  
  8075. loc_AA33:                               ; CODE XREF: sub_A94F+B6 sub_A94F+C5
  8076.                 bit     5, (ix+2)
  8077.                 call    nz, sub_AA71
  8078.  
  8079. loc_AA3A:                               ; CODE XREF: sub_A94F+CA sub_A94F+D0 ...
  8080.                 exx
  8081.  
  8082. loc_AA3B:                               ; CODE XREF: sub_A94F+8D
  8083.                 ld      a, 8
  8084.                 add     a, l
  8085.                 ld      l, a
  8086.                 bit     6, a
  8087.                 jp      nz, loc_A9DA
  8088.  
  8089.                 exx
  8090.                 ld      a, #FF
  8091.                 ld      (de), a
  8092.                 pop     hl
  8093.                 ld      (hl), e
  8094.                 inc     l
  8095.                 ld      (hl), d
  8096.                 pop     hl
  8097.                 ld      (hl), a
  8098.                 inc     hl
  8099.                 ld      a, (ix+2)
  8100.                 ld      (hl), a
  8101.                 ret
  8102.  
  8103. ; ---------------------------------------------------------------------------
  8104.  
  8105. loc_AA54:                               ; CODE XREF: sub_A94F+97
  8106.                 push    bc
  8107.                 ld      c, #88
  8108.                 exx
  8109.                 inc     l
  8110.                 ld      a, (hl)
  8111.                 dec     l
  8112.                 ld      de, byte_AA6D
  8113.                 push    de
  8114.                 or      a
  8115.                 jp      m, loc_AAFA
  8116.  
  8117.                 rra
  8118.                 rra
  8119.                 jr      c, loc_AAA4
  8120.  
  8121.                 rra
  8122.                 jr      c, loc_AACB
  8123.  
  8124.                 jp      loc_AB02
  8125.  
  8126. ; End of function sub_A94F
  8127.  
  8128. ; ---------------------------------------------------------------------------
  8129. byte_AA6D:      db  #C1,#D9,#18,#CA ; DATA      XREF: sub_A94F+10C
  8130.  
  8131. ; =============== S U B R O U T I N E =======================================
  8132.  
  8133.  
  8134. sub_AA71:                               ; CODE XREF: sub_A94F+E8
  8135.                 bit     3, (ix+2)
  8136.                 ret     nz
  8137.                 ld      a, (ix+1)
  8138.                 and     #7F
  8139.                 inc     a
  8140.                 cp      b
  8141.                 jr      z, loc_AA85
  8142.  
  8143.                 dec     a
  8144.                 dec     a
  8145.                 cp      b
  8146.                 ret     nz
  8147.                 inc     l
  8148.                 inc     l
  8149.  
  8150.  
  8151. loc_AA85:                               ; CODE XREF: sub_AA71+C
  8152.                 dec     l
  8153.                 ld      a, #28
  8154.                 jp      sub_AB43 ;пишем ход B-L, флаги A
  8155.  
  8156. ; End of function sub_AA71
  8157.  
  8158.  
  8159. ; =============== S U B R O U T I N E =======================================
  8160.  
  8161.  
  8162. sub_AA8B:                               ; CODE XREF: sub_A94F+D7 sub_A94F+DE
  8163.                 exx
  8164.                 xor     c
  8165.                 exx
  8166.                 ret     p
  8167.                 ld      a, (hl)
  8168.                 exx
  8169.                 ld      b, l
  8170.                 sub     3
  8171.                 ld      l, a
  8172.                 ld      a, (hl)
  8173.                 ld      l, b
  8174.                 exx
  8175.                 and     #F
  8176.                 dec     a
  8177.                 ret     nz
  8178.                 ld      a, #20 ; ' '
  8179.                 dec     de
  8180.                 ld      (de), a
  8181.                 inc     de
  8182.                 ret
  8183.  
  8184. ; End of function sub_AA8B
  8185.  
  8186.  
  8187. ; =============== S U B R O U T I N E =======================================
  8188.  
  8189.  
  8190. sub_AAA2:                               ; CODE XREF: sub_A94F+71 sub_A94F+78
  8191.                 ld      b, a
  8192.                 exx
  8193.  
  8194.  
  8195. loc_AAA4:                               ; CODE XREF: sub_A94F+116
  8196.                 ld      de, byte_A918 ;knight moves?
  8197.  
  8198. ; End of function sub_AAA2
  8199.  
  8200.  
  8201. ; =============== S U B R O U T I N E =======================================
  8202.  
  8203.  
  8204. sub_AAA7:                               ; CODE XREF: sub_A94F+45
  8205.                 ld      b, 8
  8206.  
  8207. loc_AAA9:                               ; CODE XREF: sub_AAA7:loc_AAC5
  8208.                 ld      a, (de) ;сдвиг фигуры
  8209.                 inc     e
  8210.                 exx
  8211.                 add     a, b ;+откуда
  8212.                 ld      l, a ;куда
  8213.                 and     c
  8214.                 jr      nz, loc_AAC4
  8215.  
  8216.                 or      (hl)
  8217.                 jr      z, loc_AABC
  8218.  
  8219.                 exx
  8220.                 xor     c
  8221.                 jp      p, loc_AAC5 ;не можем съесть свою фигуру
  8222.                 exx
  8223.                 ld      a, 8 ;съедение?
  8224.  
  8225. loc_AABC:                               ; CODE XREF: sub_AAA7+B
  8226.                 ex      de, hl
  8227.                 ld      (hl), b ;откуда
  8228.                 inc     hl
  8229.                 ld      (hl), e ;куда
  8230.                 inc     hl
  8231.                 ld      (hl), a ;флаги=0/8
  8232.                 inc     hl
  8233.                 ex      de, hl
  8234.  
  8235. loc_AAC4:                               ; CODE XREF: sub_AAA7+8
  8236.                 exx
  8237.  
  8238. loc_AAC5:                               ; CODE XREF: sub_AAA7+F
  8239.                 djnz    loc_AAA9
  8240.  
  8241.                 exx
  8242.                 ret
  8243.  
  8244. ; End of function sub_AAA7
  8245.  
  8246.  
  8247. ; =============== S U B R O U T I N E =======================================
  8248.  
  8249.  
  8250. sub_AAC9:                               ; CODE XREF: sub_A94F+53 sub_A94F+5A
  8251. ;составляем список ходов от поля A для ладьи
  8252.                 ld      b, a
  8253.                 exx
  8254.  
  8255. loc_AACB:                               ; CODE XREF: sub_A94F+119
  8256.                 ld      de, byte_A924 ;rook moves?
  8257.  
  8258. loc_AACE:                               ; CODE XREF: sub_AAF8+5
  8259.                 ld      b, 4
  8260.  
  8261. loc_AAD0:                               ; CODE XREF: sub_AAC9:loc_AAF4
  8262.                                         ; sub_AB00+7
  8263.                 ld      a, (de)
  8264.                 inc     e
  8265.                 exx
  8266.                 ld      c, a
  8267.                 ld      l, b ;откуда
  8268.  
  8269. loc_AAD5:                               ; CODE XREF: sub_AAC9+1E
  8270.                 ld      a, l
  8271.                 add     a, c
  8272.                 ld      l, a ;куда
  8273.                 and     #88
  8274.                 jr      nz, loc_AAF3 ;вышли за пределы доски
  8275.  
  8276.                 or      (hl)
  8277.                 jr      nz, loc_AAEA ;на занятое поле
  8278.  
  8279.                 ex      de, hl
  8280.                 ld      (hl), b ;откуда
  8281.                 inc     hl
  8282.                 ld      (hl), e ;куда
  8283.                 inc     hl
  8284.                 ld      (hl), a ;флаги=0
  8285.                 inc     hl
  8286.                 ex      de, hl
  8287.                 jp      loc_AAD5
  8288.  
  8289. ; ---------------------------------------------------------------------------
  8290.  
  8291. loc_AAEA:                               ; CODE XREF: sub_AAC9+14
  8292.                 exx
  8293.                 xor     c
  8294.                 jp      p, loc_AAF4 ;не можем съесть свою фигуру
  8295.                 exx
  8296.  
  8297.                 call    sub_AB41 ;пишем ход B-L, флаги A=8=съедение
  8298. loc_AAF3:                               ; CODE XREF: sub_AAC9+11
  8299.  
  8300.                 exx
  8301. loc_AAF4:                               ; CODE XREF: sub_AAC9+23
  8302.                 djnz    loc_AAD0
  8303.                 exx
  8304.                 ret
  8305.  
  8306. ; End of function sub_AAC9
  8307.  
  8308.  
  8309. ; =============== S U B R O U T I N E =======================================
  8310.  
  8311.  
  8312. sub_AAF8:                               ; CODE XREF: sub_A94F+61 sub_A94F+68
  8313.                 ld      b, a
  8314.                 exx
  8315. loc_AAFA:                               ; CODE XREF: sub_A94F+111
  8316.                 ld      de, byte_A920 ;bishop moves (then rook moves)
  8317.                 jp      loc_AACE ;4 moves (bishop)
  8318.  
  8319. ; End of function sub_AAF8
  8320.  
  8321.  
  8322. ; =============== S U B R O U T I N E =======================================
  8323.  
  8324.  
  8325. sub_AB00:                               ; CODE XREF: sub_A94F+4C
  8326.                 ld      b, a
  8327.                 exx
  8328.  
  8329. loc_AB02:                               ; CODE XREF: sub_A94F+11B
  8330.                 ld      de, byte_A920 ;bishop moves (then rook moves)
  8331.                 ld      b, 8
  8332.                 jp      loc_AAD0
  8333.  
  8334. ; End of function sub_AB00
  8335.  
  8336.  
  8337. ; =============== S U B R O U T I N E =======================================
  8338.  
  8339.  
  8340. sub_AB0A:                               ; CODE XREF: sub_A94F+3C
  8341. ;проверяем и пишем рокировки в список ходов?
  8342.         if FIX
  8343.         ret ;TODO
  8344.         endif
  8345.                 bit     7, (ix+2)
  8346.                 ret     nz ;король уже ходил? или это шах?
  8347.                 bit     4, (iy+#19)
  8348.                 jr      nz, gencastlingRfail;loc_AB26 ;ладья уже ходила?
  8349.                 bit     7, (iy+#18)
  8350.                 jr      nz, gencastlingRfail;loc_AB26 ;ладья мертва?
  8351.  
  8352.        if FIX
  8353. ;в Chess960 проверять сколько надо полей (от короля или Е (смотря что левее) вплоть до края доски, кроме короля и самой ладьи)
  8354.         ld a,b
  8355.         and 7
  8356.         cp 4 ;E
  8357.         jr c,$+4 ;король левее E
  8358.          ld a,4 ;E
  8359.         xor b
  8360.         and 7
  8361.         xor b
  8362.         ld l,a ;от короля или Е (смотря что левее)
  8363.        
  8364. gencastlingR0
  8365.         ld a,(hl)
  8366.         or a
  8367.         jr z,gencastlingR0ok
  8368.         and 0x38
  8369.         cp _K&0x38
  8370.         jr z,gencastlingR0ok
  8371.         ld a,(hl)
  8372.         and 0x30
  8373.         cp _R&0x30
  8374.         jr nz,gencastlingRfail
  8375. gencastlingR0ok
  8376.         inc l
  8377.         bit 3,l
  8378.         jr z,gencastlingR0
  8379.        
  8380.         ld a,b
  8381.         and 0xf8
  8382.         or 6
  8383.         ld l,a
  8384.         call sub_AB3C ;пишем ход B-L, флаги A=#10=рокировка
  8385.  
  8386.        else
  8387.                 xor     a
  8388.                 ld      l, b
  8389.                 inc     l
  8390.                 or      (hl) ;справа пусто?
  8391.                 jr      nz, gencastlingRfail;loc_AB26
  8392.  
  8393.                 inc     l
  8394.                 or      (hl) ;ещё правее пусто?
  8395.                 call    z, sub_AB3C ;пишем ход B-L, флаги A=#10=рокировка
  8396.        endif
  8397.  
  8398. gencastlingRfail;loc_AB26:                              ; CODE XREF: sub_AB0A+9 sub_AB0A+F ...
  8399.  
  8400.                 bit     4, (iy+#11)
  8401.                 ret     nz ;ладья уже ходила?
  8402.                 bit     7, (iy+#10)
  8403.                 ret     nz ;ладья мертва?
  8404.                 ld      l, b
  8405.                 xor     a
  8406.                 dec     l
  8407.                 or      (hl) ;слева пусто?
  8408.                 ret     nz
  8409.                 dec     l
  8410.                 or      (hl) ;ещё левее пусто?
  8411.                 ret     nz
  8412.                 dec     l
  8413.                 or      (hl) ;ещё левее пусто? TODO в Chess960 проверять сколько надо полей (от короля или Е (смотря что правее) вплоть до левого края доски, кроме короля и самой ладьи)
  8414.                 ret     nz
  8415.                 inc     l
  8416. ;пишем ход B-L, флаги A=#10=рокировка?
  8417. ; =============== S U B R O U T I N E =======================================
  8418. sub_AB3C:                               ; CODE XREF: sub_AB0A+19
  8419.                 ld      a, #10 ;рокировка?
  8420.                 jp      sub_AB43 ;пишем ход B-L, флаги A
  8421. ; =============== S U B R O U T I N E =======================================
  8422. sub_AB41:                               ; CODE XREF: sub_A94F+A3 sub_A94F+B0 ...
  8423.                 ld      a, 8 ;съедение
  8424. ; =============== S U B R O U T I N E =======================================
  8425. sub_AB43:                               ; CODE XREF: sub_A94F+D2 sub_AA71+17 ...
  8426.                 ex      de, hl
  8427.                 ld      (hl), b ;откуда
  8428.                 inc     hl
  8429.                 ld      (hl), e ;куда
  8430.                 inc     hl
  8431.                 ld      (hl), a ;флаги
  8432.                 inc     hl
  8433.                 ex      de, hl
  8434.                 ret
  8435.  
  8436. ; End of function sub_AB43
  8437.  
  8438.  
  8439. ; =============== S U B R O U T I N E =======================================
  8440.  
  8441.  
  8442. sub_AB4C:                               ; CODE XREF: sub_A90F   sub_AFC5+66
  8443.                 ld      de, XOR_A
  8444. ; End of function sub_AB4C
  8445.  
  8446.                 ld      (JP_ADDR), de
  8447.  
  8448.  
  8449. ; =============== S U B R O U T I N E =======================================
  8450.  
  8451.  
  8452. sub_AB53:                               ; CODE XREF: sub_B47F-4C
  8453.                 ld      a, (hl)
  8454.                 ld      (byte_D01D), a
  8455.                 inc     hl
  8456.                 push    hl
  8457.                 pop     ix
  8458.                 ld      (word_D04A), hl
  8459.                 ld      (word_D069), hl
  8460.                 xor     a
  8461.                 ld      hl, unk_D0E6
  8462.                 ld      b, #A
  8463.  
  8464.  
  8465. loc_AB67:                               ; CODE XREF: sub_AB53+16
  8466.                 ld      (hl), a
  8467.                 inc     hl
  8468.                 djnz    loc_AB67
  8469.  
  8470.                 ld      (byte_D04E), a
  8471.                 jp      loc_ABC6
  8472.  
  8473. ; ---------------------------------------------------------------------------
  8474.  
  8475. loc_AB71:                               ; CODE XREF: sub_AB53+77
  8476.                 inc     a
  8477.                 jr      z, loc_AB81
  8478.  
  8479.                 ld      a, (ix+1)
  8480.                 inc     a
  8481.                 jr      z, loc_ABC1
  8482.  
  8483.                 ld      a, 1
  8484.                 ld      (byte_D04E), a
  8485.                 jr      loc_ABC1
  8486.  
  8487. ; ---------------------------------------------------------------------------
  8488.  
  8489. loc_AB81:                               ; CODE XREF: sub_AB53+1F
  8490.                 xor     a
  8491.                 ld      (word_D04A+1), a
  8492.                 ld      a, (byte_D0EF)
  8493.                 ld      hl, (word_D069)
  8494.                 or      a
  8495.                 jr      nz, loc_ABA6
  8496.  
  8497.                 ld      a, (byte_D04E)
  8498.                 or      a
  8499.                 jr      z, loc_ABA6
  8500.  
  8501.                 cp      1
  8502.                 jr      z, loc_ABA6
  8503.  
  8504.                 ld      de, (word_D086)
  8505.                 ld      b, 3
  8506.  
  8507.  
  8508. loc_AB9E:                               ; CODE XREF: sub_AB53+4F
  8509.                 ld      a, (de)
  8510.                 ld      (hl), a
  8511.                 inc     de
  8512.                 inc     hl
  8513.                 djnz    loc_AB9E
  8514.  
  8515.                 ld      a, 6
  8516.  
  8517.  
  8518. loc_ABA6:                               ; CODE XREF: sub_AB53+39 sub_AB53+3F ...
  8519.                 ld      (hl), #FF
  8520.                 or      a
  8521.                 ret
  8522.  
  8523. ; ---------------------------------------------------------------------------
  8524.  
  8525. loc_ABAA:                               ; CODE XREF: sub_AB53+89
  8526.                 ld      a, 0
  8527.                 ld      (word_D04A+1), a
  8528.                 ret
  8529.  
  8530. ; ---------------------------------------------------------------------------
  8531.  
  8532. loc_ABB0:                               ; CODE XREF: sub_AB53+8B
  8533.                 ld      a, (byte_D04E)
  8534.                 cp      c
  8535.                 jr      nc, loc_ABC1
  8536.  
  8537.                 dec     a
  8538.                 jr      z, loc_ABC1
  8539.  
  8540.                 ld      a, c
  8541.                 ld      (byte_D04E), a
  8542.                 ld      (word_D086), ix
  8543.  
  8544.  
  8545. loc_ABC1:                               ; CODE XREF: sub_AB53+25 sub_AB53+2C ...
  8546.                 ld      de, 3
  8547.                 add     ix, de
  8548.  
  8549.  
  8550. loc_ABC6:                               ; CODE XREF: sub_AB53+1B
  8551.                 ld      a, (ix+0)
  8552.                 rlca
  8553.                 jr      c, loc_AB71
  8554.  
  8555.                 call    sub_AD40
  8556.  
  8557.                 call    sub_BC00
  8558.  
  8559.                 call    sub_AF81
  8560.  
  8561.                 ld      a, c
  8562.                 or      a
  8563.                 jr      z, loc_ABC1
  8564.  
  8565.                 call    sub_B79D
  8566.  
  8567.                 jr      c, loc_ABAA
  8568.  
  8569.                 jr      nz, loc_ABB0
  8570.  
  8571.                 ld      a, (ix+2)
  8572.                 and     #88 ; '?'
  8573.                 ld      a, c
  8574.                 jr      z, loc_ABEF
  8575.  
  8576.                 add     a, 4
  8577.                 jr      nc, loc_ABEE
  8578.  
  8579.                 ld      a, #FF
  8580.  
  8581.  
  8582. loc_ABEE:                               ; CODE XREF: sub_AB53+97
  8583.                 ld      c, a
  8584.  
  8585.  
  8586. loc_ABEF:                               ; CODE XREF: sub_AB53+93
  8587.                 ld      hl, unk_D0E6
  8588.                 cp      (hl)
  8589.                 jr      nc, loc_AC0F
  8590.  
  8591.                 ld      hl, (word_D069)
  8592.                 ld      a, (ix+0)
  8593.                 ld      (hl), a
  8594.                 inc     hl
  8595.                 ld      a, (ix+1)
  8596.                 ld      (hl), a
  8597.                 inc     hl
  8598.                 ld      a, (ix+2)
  8599.                 res     6, a
  8600.                 ld      (hl), a
  8601.                 inc     hl
  8602.                 ld      (word_D069), hl
  8603.                 jp      loc_ABC1
  8604.  
  8605. ; ---------------------------------------------------------------------------
  8606.  
  8607. loc_AC0F:                               ; CODE XREF: sub_AB53+A0
  8608.                 ld      b, 9
  8609.                 ld      d, h
  8610.                 ld      e, l
  8611.                 jp      loc_AC19
  8612.  
  8613. ; ---------------------------------------------------------------------------
  8614.  
  8615. loc_AC16:                               ; CODE XREF: sub_AB53+C9
  8616.                 ld      (de), a
  8617.                 inc     e
  8618.                 dec     b
  8619.  
  8620.  
  8621. loc_AC19:                               ; CODE XREF: sub_AB53+C0
  8622.                 inc     l
  8623.                 ld      a, (hl)
  8624.                 cp      c
  8625.                 jr      c, loc_AC16
  8626.  
  8627.                 ld      a, c
  8628.                 ld      (de), a
  8629.                 ld      de, (word_D04A)
  8630.                 ld      hl, (word_D069)
  8631.                 ld      a, b
  8632.                 add     a, a
  8633.                 add     a, b
  8634.                 sbc     hl, de
  8635.                 ld      c, a
  8636.                 ld      b, 0
  8637.                 sbc     hl, bc
  8638.                 ld      b, h
  8639.                 ld      c, l
  8640.                 ld      a, (ix+0)
  8641.                 ld      d, (ix+1)
  8642.                 ld      e, (ix+2)
  8643.                 push    de
  8644.                 ld      hl, (word_D069)
  8645.                 ld      d, h
  8646.                 ld      e, l
  8647.                 dec     hl
  8648.                 inc     de
  8649.                 inc     de
  8650.                 inc     de
  8651.                 ld      (word_D069), de
  8652.                 dec     de
  8653.                 jr      z, loc_AC4F
  8654.  
  8655.                 lddr
  8656.  
  8657.  
  8658. loc_AC4F:                               ; CODE XREF: sub_AB53+F8
  8659.                 inc     hl
  8660.                 ld      (hl), a
  8661.                 pop     de
  8662.                 inc     hl
  8663.                 ld      (hl), d
  8664.                 inc     hl
  8665.                 ld      (hl), e
  8666.                 jp      loc_ABC1
  8667.  
  8668. ; End of function sub_AB53
  8669.  
  8670.  
  8671. ; =============== S U B R O U T I N E =======================================
  8672.  
  8673.  
  8674. sub_AC59:                               ; CODE XREF: sub_A90C
  8675.                 ld      bc, 3
  8676.  
  8677.  
  8678. loc_AC5C:                               ; CODE XREF: sub_AC5D+5 sub_AC5D+F
  8679.                 add     hl, bc
  8680.  
  8681. ; End of function sub_AC59
  8682.  
  8683.  
  8684. ; =============== S U B R O U T I N E =======================================
  8685.  
  8686.  
  8687. sub_AC5D:                               ; CODE XREF: sub_B36B+48 sub_B36B+52
  8688.                 ld      a, (hl)
  8689.                 cp      d
  8690.                 jr      z, loc_AC67
  8691.  
  8692.                 inc     a
  8693.                 jp      nz, loc_AC5C
  8694.  
  8695.                 scf
  8696.                 ret
  8697.  
  8698. ; ---------------------------------------------------------------------------
  8699.  
  8700. loc_AC67:                               ; CODE XREF: sub_AC5D+2
  8701.                 inc     hl
  8702.                 ld      a, (hl)
  8703.                 dec     hl
  8704.                 cp      e
  8705.                 ret     z
  8706.                 jp      loc_AC5C
  8707.  
  8708. ; End of function sub_AC5D
  8709.  
  8710. ; ---------------------------------------------------------------------------
  8711. ; START OF FUNCTION CHUNK FOR sub_AC74
  8712.  
  8713. loc_AC6F:                               ; CODE XREF: sub_AC74+37
  8714.                 ld      a, #FF ;end of opening?
  8715.                 ld      (byte_D09E), a
  8716.  
  8717. ; END OF FUNCTION CHUNK FOR sub_AC74
  8718.  
  8719. ; =============== S U B R O U T I N E =======================================
  8720.  
  8721.  
  8722. sub_AC74:                               ; CODE XREF: sub_AFC5+B
  8723.  
  8724. ; FUNCTION CHUNK AT AC6F SIZE 00000005 BYTES
  8725.  
  8726.                 ld      a, (byte_D09E)
  8727.                 or      a
  8728.                 ret     nz ;end of opening?
  8729.                 ld      a, (byte_D20C) ;oldmove #?
  8730.                 dec     a
  8731.                 ret     nz
  8732.                 call    GEN_RANDBYTE ;b=rnd
  8733.  
  8734.                 ld      hl, #FFFF
  8735.  
  8736.  
  8737. loc_AC84:                               ; CODE XREF: sub_AC74+33
  8738.                 inc     hl ;hl=opening chunk
  8739.                 ld      a, (word_D0F7)
  8740.                 ld      c, a
  8741.                 ld      a, (byte_D09E)
  8742.                 inc     a
  8743.                 ld      (byte_D09E), a
  8744.                 dec     a
  8745.                 cp      c
  8746.                 jr      z, loc_ACB2
  8747.  
  8748.                 ld      bc, stk_1bvalue
  8749.                 add     a, c
  8750.                 ld      c, a
  8751.                 jr      nc, loc_AC9C
  8752.  
  8753.                 inc     b
  8754.  
  8755.  
  8756. loc_AC9C:                               ; CODE XREF: sub_AC74+25
  8757.                 ld      a, (bc)
  8758.                 and     #7F ; ''
  8759.                 ld      c, a
  8760.                 call    sub_AD01
  8761.  
  8762.  
  8763. loc_ACA3:                               ; CODE XREF: sub_AC74+3C
  8764.                 ld      b, a
  8765.                 res     6, a
  8766.                 cp      c
  8767.                 jr      z, loc_AC84
  8768.  
  8769.                 bit     6, b
  8770.                 jr      z, loc_AC6F ;end of opening?
  8771.  
  8772.                 call    sub_ACF6 ;find opening in loop
  8773.  
  8774.                 jr      loc_ACA3
  8775.  
  8776. ; ---------------------------------------------------------------------------
  8777.  
  8778. loc_ACB2:                               ; CODE XREF: sub_AC74+1E
  8779.                 call    GEN_RANDBYTE ;b=rnd
  8780.  
  8781.                 call    sub_AD01
  8782.  
  8783.                 ld      c, a
  8784.                 bit     6, a
  8785.                 jr      z, loc_ACDD
  8786.  
  8787.                 ld      a, 1
  8788.                 rla
  8789.                 and     b
  8790.                 jr      nz, loc_ACDD
  8791.  
  8792.  
  8793. loc_ACC3:                               ; CODE XREF: sub_AC74+60
  8794.                 push    hl
  8795.                 call    GEN_RANDBYTE ;b=rnd
  8796.  
  8797.                 call    sub_ACF6 ;find opening in loop
  8798.  
  8799.                 jr      c, loc_ACD8
  8800.  
  8801.                 pop     de
  8802.                 ld      c, a
  8803.                 bit     6, a
  8804.                 jr      z, loc_ACDD
  8805.  
  8806.                 rr      b
  8807.                 jr      c, loc_ACC3
  8808.  
  8809.                 jr      loc_ACDD
  8810.  
  8811. ; ---------------------------------------------------------------------------
  8812.  
  8813. loc_ACD8:                               ; CODE XREF: sub_AC74+56
  8814.                 pop     hl
  8815.                 call    sub_AD01
  8816.  
  8817.                 ld      c, a
  8818.  
  8819.  
  8820. loc_ACDD:                               ; CODE XREF: sub_AC74+47 sub_AC74+4D ...
  8821.                 ld      a, c
  8822.                 and     #3F ; '?'
  8823.                 ld      d, a
  8824.                 rla
  8825.                 add     a, d
  8826.                 ld      e, a
  8827.                 ld      d, 0
  8828.                 ld      ix, tbl_D803
  8829.                 add     ix, de
  8830.                 xor     a
  8831.                 bit     7, c
  8832.                 jr      nz, loc_ACF4
  8833.  
  8834.                 ld      (byte_D09E), a
  8835.  
  8836.  
  8837. loc_ACF4:                               ; CODE XREF: sub_AC74+7B
  8838.                 xor     a
  8839.                 ret
  8840.  
  8841. ; End of function sub_AC74
  8842.  
  8843.  
  8844. ; =============== S U B R O U T I N E =======================================
  8845.  
  8846.  
  8847. sub_ACF6:                               ; CODE XREF: sub_AC74+39 sub_AC74+53
  8848. ;hl=opening chunk
  8849.                 ld      de, #FFFF
  8850.  
  8851.  
  8852. loc_ACF9:                               ; CODE XREF: sub_ACF6+9
  8853. ;hl=opening chunk
  8854.                 call    sub_AD01
  8855.  
  8856.                 inc     hl
  8857.                 bit     7, d
  8858.                 jr      z, loc_ACF9
  8859.  
  8860. ; End of function sub_ACF6
  8861.  
  8862.  
  8863. ; =============== S U B R O U T I N E =======================================
  8864.  
  8865.  
  8866. sub_AD01:                               ; CODE XREF: sub_AC74+2C sub_AC74+41 ...
  8867. ;hl=opening chunk
  8868.                 call    OPENING_SEARCH
  8869.  
  8870.                 bit     7, a
  8871.                 jr      z, loc_AD09
  8872.  
  8873.                 dec     de
  8874.  
  8875.  
  8876. loc_AD09:                               ; CODE XREF: sub_AD01+5
  8877.                 bit     6, a
  8878.                 ret     z
  8879.                 inc     de
  8880.                 ret
  8881.  
  8882. ; End of function sub_AD01
  8883.  
  8884.  
  8885. ; =============== S U B R O U T I N E =======================================
  8886.  
  8887.  
  8888. OPENING_SEARCH:
  8889.                 push    bc              ; get any 8 bits from 9-byte chunks? HL=index into them, 0..63 into first chunk, 64..127 into next, etc.
  8890.                 push    hl
  8891.                 ld      a, l
  8892.                 srl     h
  8893.                 rra
  8894.                 srl     h
  8895.                 rra
  8896.                 srl     h
  8897.                 rra
  8898.                 ld      b, h
  8899.                 ld      c, a            ; BC=HL/8
  8900.                 pop     hl
  8901.                 push    hl
  8902.                 ld      a, 7
  8903.                 and     l
  8904.                 add     hl, bc          ; HL=HL*1.125
  8905.                 ld      bc, Openings
  8906.                 add     hl, bc
  8907.                 ld      b, a
  8908.                 inc     b
  8909.                 ld      a, (hl)
  8910.                 inc     hl
  8911.                 ld      c, (hl)
  8912.  
  8913.  
  8914. loc_AD2B:
  8915.                 rl      c
  8916.                 rla
  8917.                 djnz    loc_AD2B
  8918.  
  8919.                 pop     hl
  8920.                 pop     bc              ; output is A (8 bits from a word) + CY (9th bit)
  8921.                 ret
  8922.  
  8923. ; End of function OPENING_SEARCH
  8924.  
  8925.  
  8926. ; =============== S U B R O U T I N E =======================================
  8927.  
  8928. GEN_RANDBYTE:                           ; CODE XREF: sub_AC74+A
  8929.                                         ; sub_AC74:loc_ACB2 ...
  8930.                 ld      a, r
  8931.                 ld      b, a
  8932.                 ld      a, (RAND_SEED)
  8933.                 xor     b
  8934.                 rra
  8935.                 ld      (RAND_SEED), a
  8936.                 ld      b, a
  8937.                 ret ;b=rnd
  8938.  
  8939. ; End of function GEN_RANDBYTE
  8940.  
  8941.  
  8942. ; =============== S U B R O U T I N E =======================================
  8943.  
  8944.  
  8945. sub_AD40:                               ; CODE XREF: sub_A906   sub_AB53+79 ...
  8946.                 pop     hl
  8947.                 exx
  8948.                 ld      hl, (word_D00D)
  8949.                 push    hl
  8950.                 ld      hl, byte_D03B
  8951.                 res     7, (hl)
  8952.                 ld      hl,  word_D240+1
  8953.                 ld      a, (byte_D097)
  8954.                 add     a, a
  8955.                 add     a, l
  8956.                 ld      l, a
  8957.                 ld      c, (ix+1)
  8958.                 res     7, c
  8959.                 ld      (hl), c
  8960.                 ld      (word_D03D), hl
  8961.                 dec     l
  8962.                 ld      b, (ix+0)
  8963.                 res     7, b
  8964.                 ld      (hl), b
  8965.                 dec     l
  8966.                 bit     7, (hl)
  8967.                 jr      nz, loc_ADA9
  8968.  
  8969.                 dec     l
  8970.                 dec     l
  8971.                 ld      a, (hl)
  8972.                 and     #F7
  8973.                 cp      b
  8974.                 jr      nz, loc_ADA9
  8975.  
  8976.                 dec     l
  8977.                 ld      a, (hl)
  8978.                 and     #77
  8979.                 cp      c
  8980.                 jr      nz, loc_ADA9
  8981.  
  8982.                 dec     l
  8983.                 ld      a, (hl)
  8984.                 and     #F7
  8985.                 jp      m, loc_ADA2
  8986.  
  8987.                 push    bc
  8988.                 ld      b, a
  8989.                 dec     l
  8990.                 ld      a, (hl)
  8991.                 and     #77
  8992.                 ld      c, a
  8993.                 inc     l
  8994.                 inc     l
  8995.                 inc     l
  8996.                 inc     l
  8997.                 ld      a, (hl)
  8998.                 and     #77
  8999.                 cp      b
  9000.                 jr      nz, loc_ADA1
  9001.  
  9002.                 inc     l
  9003.                 ld      a, (hl)
  9004.                 and     #77
  9005.                 cp      c
  9006.                 jr      nz, loc_ADA1
  9007.  
  9008.                 ld      hl, byte_D03B
  9009.                 set     7, (hl)
  9010.                 set     6, (hl)
  9011.                 pop     bc
  9012.                 jr      loc_ADA9
  9013.  
  9014. ; ---------------------------------------------------------------------------
  9015.  
  9016. loc_ADA1:                               ; CODE XREF: sub_AD40+4E sub_AD40+55
  9017.                 pop     bc
  9018.  
  9019.  
  9020. loc_ADA2:                               ; CODE XREF: sub_AD40+3C
  9021.                 ld      hl, byte_D03B
  9022.                 set     7, (hl)
  9023.                 res     6, (hl)
  9024.  
  9025.  
  9026. loc_ADA9:                               ; CODE XREF: sub_AD40+27 sub_AD40+2F ...
  9027.                 ld      h, BRD_88_0/256
  9028.                 ld      l, b
  9029.                 ld      e, (hl)
  9030.                 ld      d, l
  9031.                 push    de
  9032.                 ld      (hl), 0
  9033.                 ld      l, c
  9034.                 ld      c, (hl)
  9035.                 ld      (hl), e ;переместили короля при рокировке?
  9036.                 ld      b, l
  9037.                 inc     h               ; word_D100
  9038.                 res     2, e
  9039.                 ld      l, e
  9040.                 ld      (hl), b
  9041.                 inc     l
  9042.                 ld      e, d
  9043.                 ld      d, (hl)
  9044.                 ld      a, #F
  9045.                 and     d
  9046.                 jp      z, loc_AF1F
  9047.  
  9048.                 dec     a
  9049.                 jr      z, loc_ADF5
  9050.  
  9051.                 set     4, (hl)
  9052.                 dec     c
  9053.                 inc     c
  9054.                 jr      nz, loc_ADD1
  9055.  
  9056.  
  9057. loc_ADCC:                               ; CODE XREF: sub_AD40+1E7
  9058.                 ld      e, #80
  9059.                 push    de
  9060.                 exx
  9061.                 jp      (hl)
  9062.  
  9063. ; ---------------------------------------------------------------------------
  9064.  
  9065. loc_ADD1:                               ; CODE XREF: sub_AD40+8A
  9066.                                         ; sub_AD40+1BD ...
  9067.                 ld      e, 0
  9068. loc_ADD3:                               ; CODE XREF: sub_AD40+1AE
  9069.                                         ; sub_AD40+1D2
  9070.                 push    bc
  9071.                 res     2, c
  9072.                 ld      l, c
  9073.                 set     7, (hl)
  9074.                 inc     l
  9075.                 ld      a, #F
  9076.                 and     (hl)
  9077.                 bit     7, l
  9078.                 jr      z, loc_ADE3
  9079.  
  9080.                 neg
  9081.  
  9082. loc_ADE3:                               ; CODE XREF: sub_AD40+9F
  9083.                 ld      hl, word_D00D
  9084.                 add     a, (hl)
  9085.                 ld      (hl), a
  9086.                 ld      hl, byte_D03B
  9087.                 res     7, (hl)
  9088.                 ld      hl, (word_D03D)
  9089.                 set     7, (hl)
  9090.                 push    de
  9091.                 exx
  9092.                 jp      (hl)
  9093.  
  9094. ; ---------------------------------------------------------------------------
  9095.  
  9096. loc_ADF5:                               ; CODE XREF: sub_AD40+84
  9097.                 ld      a, b
  9098.                 cp      e
  9099.                 jr      c, loc_AE66
  9100.  
  9101.                 rla
  9102.                 rla
  9103.                 jr      nc, loc_AE45
  9104.  
  9105.                 rl      a
  9106.                 jr      c, loc_AE4D
  9107.  
  9108.                 jp      m, loc_AE2D
  9109.  
  9110.                 ld      (hl), #21 ; '!'
  9111.                 ld      e, l
  9112.                 dec     h
  9113.                 ld      a, b
  9114.                 add     a, #10
  9115.                 ld      l, a
  9116.                 ld      a, (hl)
  9117.                 cp      #C0
  9118.                 jr      nc, loc_AE59
  9119.  
  9120.                 ld      a, l
  9121.                 add     a, #F
  9122.                 ld      l, a
  9123.                 ld      a, (hl)
  9124.                 cp      #C0
  9125.                 jr      nc, loc_AE59
  9126.  
  9127.                 inc     l
  9128.                 ld      a, (hl)
  9129.                 cp      #C0
  9130.                 jr      nc, loc_AE59
  9131.  
  9132.                 inc     l
  9133.                 ld      a, (hl)
  9134.                 cp      #C0
  9135.                 jr      nc, loc_AE59
  9136.  
  9137.                 ld      l, e
  9138.                 inc     h
  9139.                 ld      (hl), #51 ; 'Q'
  9140.                 jp      loc_AEF3
  9141.  
  9142. ; ---------------------------------------------------------------------------
  9143.  
  9144. loc_AE2D:                               ; CODE XREF: sub_AD40+C1
  9145.                 ld      (hl), #41 ; 'A'
  9146.                 ld      e, l
  9147.                 dec     h
  9148.                 ld      a, b
  9149.                 add     a, #10
  9150.                 ld      l, a
  9151.                 ld      a, (hl)
  9152.                 cp      #C0 ; 'А'
  9153.                 jr      nc, loc_AE59
  9154.  
  9155.                 ld      l, e
  9156.                 inc     h
  9157.                 ld      (hl), #71 ; 'q'
  9158.                 set     0, (ix+2)
  9159.                 jp      loc_AEF3
  9160.  
  9161. ; ---------------------------------------------------------------------------
  9162.  
  9163. loc_AE45:                               ; CODE XREF: sub_AD40+BB
  9164.                 cp      #C0 ; 'А'
  9165.                 jp      nc, loc_AEF1
  9166.  
  9167.                 jp      loc_AEF3
  9168.  
  9169. ; ---------------------------------------------------------------------------
  9170.  
  9171. loc_AE4D:                               ; CODE XREF: sub_AD40+BF
  9172.                 jp      m, loc_AECF
  9173.  
  9174.                 ld      (hl), #A1 ; 'Ў'
  9175.                 set     0, (ix+2)
  9176.                 jp      loc_AEF3
  9177.  
  9178. ; ---------------------------------------------------------------------------
  9179.  
  9180. loc_AE59:                               ; CODE XREF: sub_AD40+CF sub_AD40+D8 ...
  9181.                 ld      a, (ix+2)
  9182.                 bit     3, a
  9183.                 jp      z, loc_AF15
  9184.  
  9185.                 ld      l, e
  9186.                 inc     h
  9187.                 jp      loc_AEFB
  9188.  
  9189. ; ---------------------------------------------------------------------------
  9190.  
  9191. loc_AE66:                               ; CODE XREF: sub_AD40+B7
  9192.                 rla
  9193.                 rla
  9194.                 jr      c, loc_AEBC
  9195.  
  9196.                 rl      a
  9197.                 jr      nc, loc_AEC3
  9198.  
  9199.                 jp      p, loc_AEA2
  9200.  
  9201.                 ld      (hl), #21 ; '!'
  9202.                 ld      e, l
  9203.                 dec     h
  9204.                 ld      a, b
  9205.                 sub     #10
  9206.                 ld      l, a
  9207.                 ld      a, (hl)
  9208.                 and     #C0 ; 'А'
  9209.                 cp      #40 ; '@'
  9210.                 jr      nc, loc_AE59
  9211.  
  9212.                 ld      a, l
  9213.                 sub     #11
  9214.                 ld      l, a
  9215.                 ld      a, (hl)
  9216.                 and     #C0 ; 'А'
  9217.                 cp      #40 ; '@'
  9218.                 jr      z, loc_AE59
  9219.  
  9220.                 inc     l
  9221.                 ld      a, (hl)
  9222.                 and     #C0 ; 'А'
  9223.                 cp      #40 ; '@'
  9224.                 jr      z, loc_AE59
  9225.  
  9226.                 inc     l
  9227.                 ld      a, (hl)
  9228.                 and     #C0 ; 'А'
  9229.                 cp      #40 ; '@'
  9230.                 jr      z, loc_AE59
  9231.  
  9232.                 ld      l, e
  9233.                 inc     h
  9234.                 ld      (hl), #51 ; 'Q'
  9235.                 jp      loc_AEF3
  9236.  
  9237. ; ---------------------------------------------------------------------------
  9238.  
  9239. loc_AEA2:                               ; CODE XREF: sub_AD40+12E
  9240.                 ld      (hl), #41 ; 'A'
  9241.                 ld      e, l
  9242.                 dec     h
  9243.                 ld      a, b
  9244.                 sub     #10
  9245.                 ld      l, a
  9246.                 ld      a, (hl)
  9247.                 and     #C0 ; 'А'
  9248.                 cp      #40 ; '@'
  9249.                 jr      z, loc_AE59
  9250.  
  9251.                 ld      l, e
  9252.                 inc     h
  9253.                 ld      (hl), #71 ; 'q'
  9254.                 set     0, (ix+2)
  9255.                 jp      loc_AEF3
  9256.  
  9257. ; ---------------------------------------------------------------------------
  9258.  
  9259. loc_AEBC:                               ; CODE XREF: sub_AD40+128
  9260.                 and     #C0 ; 'А'
  9261.                 jr      z, loc_AEF1
  9262.  
  9263.                 jp      loc_AEF3
  9264.  
  9265. ; ---------------------------------------------------------------------------
  9266.  
  9267. loc_AEC3:                               ; CODE XREF: sub_AD40+12C
  9268.                 jp      p, loc_AECF
  9269.  
  9270.                 ld      (hl), #A1 ; 'Ў'
  9271.                 set     0, (ix+2)
  9272.                 jp      loc_AEF3
  9273.  
  9274. ; ---------------------------------------------------------------------------
  9275.  
  9276. loc_AECF:                               ; CODE XREF: sub_AD40:loc_AE4D
  9277.                                         ; sub_AD40:loc_AEC3
  9278.                 set     6, (ix+2)
  9279.                 ld      (hl), #19
  9280.                 ld      a, (word_D00D)
  9281.                 bit     7, l
  9282.                 jr      z, loc_AEDE
  9283.  
  9284.                 add     a, #10
  9285.  
  9286.  
  9287. loc_AEDE:                               ; CODE XREF: sub_AD40+19A
  9288.                 sub     8
  9289.                 ld      (word_D00D), a
  9290.                 ld      e, #84 ; '"'
  9291.                 bit     3, (ix+2)
  9292.                 jp      z, loc_AF17
  9293.  
  9294.                 ld      e, 4
  9295.                 jp      loc_ADD3
  9296.  
  9297. ; ---------------------------------------------------------------------------
  9298.  
  9299. loc_AEF1:                               ; CODE XREF: sub_AD40+107
  9300.                                         ; sub_AD40+17E
  9301.                 ld      (hl), #11
  9302.  
  9303.  
  9304. loc_AEF3:                               ; CODE XREF: sub_AD40+EA
  9305.                                         ; sub_AD40+102 ...
  9306.                 ld      a, (ix+2)
  9307.                 bit     3, a
  9308.                 jp      z, loc_AF15
  9309.  
  9310.  
  9311. loc_AEFB:                               ; CODE XREF: sub_AD40+123
  9312.                 bit     5, a
  9313.                 jp      z, loc_ADD1
  9314.  
  9315.                 ld      a, b
  9316.                 bit     7, l
  9317.                 jr      z, loc_AF07
  9318.  
  9319.                 add     a, #20 ; ' '
  9320.  
  9321.  
  9322. loc_AF07:                               ; CODE XREF: sub_AD40+1C3
  9323.                 sub     #10
  9324.                 dec     h
  9325.                 ld      l, a
  9326.                 ld      c, (hl)
  9327.                 ld      (hl), 0
  9328.                 inc     h
  9329.                 ld      b, l
  9330.                 ld      e, 1
  9331.                 jp      loc_ADD3
  9332.  
  9333. ; ---------------------------------------------------------------------------
  9334.  
  9335. loc_AF15:                               ; CODE XREF: sub_AD40+11E
  9336.                                         ; sub_AD40+1B8
  9337.                 ld      e, #80
  9338.  
  9339.  
  9340. loc_AF17:                               ; CODE XREF: sub_AD40+1A9
  9341.                 push    de
  9342.                 ld      hl, (word_D03D)
  9343.                 set     7, (hl)
  9344.                 exx
  9345.                 jp      (hl)
  9346.  
  9347. ; ---------------------------------------------------------------------------
  9348.  
  9349. loc_AF1F:                               ; CODE XREF: sub_AD40+80
  9350.                 call    sub_AF65
  9351.  
  9352.                 ld      a, (ix+2)
  9353.                 and     #18
  9354.                 jp      z, loc_ADCC
  9355.  
  9356.                 and     8
  9357.                 jp      nz, loc_ADD1
  9358.  
  9359.                 set     5, (hl)
  9360.                 dec     h
  9361.                 bit     2, b ;b=позиция короля после рокировки
  9362.                 jr      z, loc_AF40
  9363. ;ладья при рокировке вправо?
  9364.                if FIX ;TODO Chess960 найти позицию ладьи до рокировки (самая правая фигура, не считая короля, но король мог её затереть!!!)
  9365.                 ld l,b ;b=позиция короля после рокировки
  9366.                 ;inc l ;TODO
  9367.                 ld      c,0x9c
  9368.                 ld a,l
  9369.                 cp b
  9370.                 jr z,$+4 ;король затёр ладью
  9371.                 ld      (hl), 0 ;снимаем ладью
  9372.                else
  9373.                 inc     b
  9374.                 ld      l, b
  9375.                 ld      c,(hl)
  9376.                 ld      (hl), 0 ;снимаем ладью
  9377.                endif
  9378.                if FIX
  9379.                ld l,b ;b=позиция короля после рокировки
  9380.                dec l
  9381.                else
  9382.                 dec     l
  9383.                 dec     l
  9384.                endif
  9385.                 jp      loc_AF49
  9386.  
  9387. ; ---------------------------------------------------------------------------
  9388.  
  9389. loc_AF40:                               ; CODE XREF: sub_AD40+1F4
  9390. ;ладья при рокировке влево?
  9391.                if FIX ;TODO Chess960 найти позицию ладьи до рокировки (самая левая фигура, не считая короля, но король мог её затереть!!!)
  9392.                 ld l,b ;b=позиция короля после рокировки
  9393.                 ;dec l
  9394.                 ;dec l ;TODO
  9395.                 ld      c,0x94; (hl)
  9396.                 ld a,l
  9397.                 cp b
  9398.                 jr z,$+4 ;король затёр ладью
  9399.                 ld      (hl), 0 ;снимаем ладью
  9400.                else
  9401.                 dec     b
  9402.                 dec     b
  9403.                 ld      l, b
  9404.                 ld      c, (hl)
  9405.                 ld      (hl), 0 ;снимаем ладью
  9406.                endif
  9407.                if FIX
  9408.                ld l,b ;b=позиция короля после рокировки
  9409.                inc l
  9410.                else
  9411.                 inc     l
  9412.                 inc     l
  9413.                 inc     l
  9414.                endif
  9415.  
  9416. loc_AF49:                               ; CODE XREF: sub_AD40+1FD
  9417.                 ld      (hl), c ;ставим ладью на новое место?
  9418.                 ld      a, (word_D04A+1)
  9419.                 or      a
  9420.                 jr      z, loc_AF54
  9421.  
  9422.                 ld      a, #84
  9423.                 and     c
  9424.                 ld      (hl), a
  9425.  
  9426.  
  9427. loc_AF54:                               ; CODE XREF: sub_AD40+20E
  9428.                 push    bc
  9429.                 res     2, c
  9430.                 ld      b, word_D100/256
  9431.                 ld      a, l
  9432.                 ld      (bc), a
  9433.                 ld      e, #40
  9434.                 ld      hl, (word_D03D)
  9435.                 set     7, (hl)
  9436.                 push    de
  9437.                 exx
  9438.                 jp      (hl)
  9439.  
  9440. ; End of function sub_AD40
  9441.  
  9442.  
  9443. ; =============== S U B R O U T I N E =======================================
  9444.  
  9445.  
  9446. sub_AF65:                               ; CODE XREF: sub_AD40:loc_AF1F
  9447.                 ld      a, d
  9448.                 or      #10
  9449.  
  9450.  
  9451. loc_AF68:                               ; CODE XREF: sub_884D:loc_A912
  9452.                 and     #3F ; '?'
  9453.                 ld      e, #11
  9454.  
  9455.  
  9456. loc_AF6C:                               ; CODE XREF: sub_AF65+19
  9457.                 ld      (hl), a
  9458.                 ld      a, b
  9459.                 add     a, e
  9460.                 and     #88
  9461.                 ret     nz
  9462.                 ld      a, b
  9463.                 sub     e
  9464.                 and     #88
  9465.                 ret     nz
  9466.                 ld      a, #11
  9467.                 add     a, e
  9468.                 ld      e, a
  9469.                 ld      a, #40
  9470.                 add     a, (hl)
  9471.                 jp      loc_AF6C
  9472.  
  9473. ; End of function sub_AF65
  9474.  
  9475.  
  9476. ; =============== S U B R O U T I N E =======================================
  9477.  
  9478.  
  9479. sub_AF81:                               ; CODE XREF: sub_A909   sub_AB53+7F ...
  9480.                 pop     hl
  9481.                 exx
  9482.                 pop     af
  9483.                 pop     hl
  9484.                 ld      c, a
  9485.                 ld      a, 0
  9486.                 ld      d, BRD_88_0/256
  9487.                 jp      m, loc_AF9A
  9488.  
  9489.                 jr      z, loc_AFB6
  9490.  
  9491.                 jr      c, loc_AFAF
  9492.  
  9493.                 ld      b, l
  9494.  
  9495.  
  9496. loc_AF92:                               ; CODE XREF: sub_AF81+32
  9497.                 res     2, l
  9498.                 ld      h, word_D100/256
  9499.                 res     7, (hl)
  9500.                 ld      a, b
  9501.  
  9502.  
  9503. loc_AF99:                               ; CODE XREF: sub_AF81+41
  9504.                 pop     hl
  9505.  
  9506.  
  9507. loc_AF9A:                               ; CODE XREF: sub_AF81+9
  9508.                 ld      e, h
  9509.                 ex      de, hl
  9510.                 ld      (hl), e
  9511.                 ex      de, hl
  9512.                 res     2, l
  9513.                 ld      h, word_D100/256
  9514.                 ld      b, (hl)
  9515.                 ld      (hl), e
  9516.                 inc     l
  9517.                 ld      (hl), c
  9518.                 ld      l, b
  9519.                 dec     h               ; BRD_88_0/256
  9520.                 ld      (hl), a ;вернули ход назад?
  9521.                 pop     hl
  9522.                 ld      (word_D00D), hl
  9523.                 exx
  9524.                 jp      (hl)
  9525.  
  9526. ; ---------------------------------------------------------------------------
  9527.  
  9528. loc_AFAF:                               ; CODE XREF: sub_AF81+E
  9529.                 ld      e, h
  9530.                 ld      b, a
  9531.                 ld      a, l
  9532.                 ld      (de), a
  9533.                 jp      loc_AF92
  9534.  
  9535. ; ---------------------------------------------------------------------------
  9536.  
  9537. loc_AFB6:                               ; CODE XREF: sub_AF81+C
  9538.                 ld      e, h ;???
  9539.                 ld      a, l ;???
  9540.                 ld      (de), a
  9541.                 res     2, l
  9542.                 ld      h, word_D100/256
  9543.                 ld      b, (hl) ;???
  9544.                 ld      (hl), e
  9545.                 xor     a
  9546.                 ld      e, b
  9547.                 ld      (de), a ;стираем ладью при отмене рокировки?
  9548.                 jp      loc_AF99
  9549.  
  9550. ; End of function sub_AF81
  9551.  
  9552.  
  9553. ; =============== S U B R O U T I N E =======================================
  9554.  
  9555.  
  9556. sub_AFC5:                               ; CODE XREF: sub_A900
  9557.                 ld      ix, word_D059
  9558.                 call    sub_A94F
  9559.  
  9560.                 dec     hl
  9561.                 dec     hl
  9562.                 ld      (hl), #FF
  9563.                 call    sub_AC74
  9564.  
  9565.                 jp      z, loc_B0B7
  9566.  
  9567.                 ld      a, (byte_D0B4)
  9568.                 bit     5, a
  9569.                 jr      z, loc_AFE0
  9570.  
  9571.                 call    nz, sub_B2E2
  9572.  
  9573.  
  9574. loc_AFE0:                               ; CODE XREF: sub_AFC5+16
  9575.                 call    sub_B2D1
  9576.  
  9577.                 call    sub_B2F1
  9578.  
  9579.                 call    sub_B1EB
  9580.  
  9581.                 ld      hl, byte_D0B3 ;d3=swap board
  9582.                 res     5, (hl)
  9583.                 ld      hl, byte_D108
  9584.                 xor     a
  9585.                 ld      (byte_D04C), a
  9586.                 call    sub_A932
  9587.  
  9588.                 ld      e, c
  9589.                 ld      l, #88 ; '?'
  9590.                 call    sub_A932
  9591.  
  9592.                 ld      a, c
  9593.                 sub     e
  9594.                 ld      (byte_D02E), a
  9595.                 ld      a, (byte_D049) ;move #
  9596.                 cp      8
  9597.                 cpl
  9598.                 jr      c, loc_B00D
  9599.  
  9600.                 ld      a, c
  9601.                 add     a, e
  9602.  
  9603.  
  9604. loc_B00D:                               ; CODE XREF: sub_AFC5+44
  9605.                 ld      hl, byte_A928-1
  9606.  
  9607.  
  9608. loc_B010:                               ; CODE XREF: sub_AFC5+4E
  9609.                 inc     hl
  9610.                 cp      (hl)
  9611.                 inc     hl
  9612.                 jr      c, loc_B010
  9613.  
  9614.                 ld      b, (hl)
  9615.                 ld      hl, byte_D02D
  9616.                 ld      a, (hl)
  9617.                 and     1
  9618.                 or      b
  9619.                 ld      (hl), a
  9620.                 xor     a
  9621.                 ld      (word_D00D), a
  9622.                 ld      a, #FE  ; 'ю'
  9623.                 ld      (byte_D098), a
  9624.                 call    sub_B2B9
  9625.  
  9626.                 push    hl
  9627.                 call    sub_AB4C
  9628.  
  9629.                 pop     ix
  9630.                 scf
  9631.                 ret     z
  9632.                 ld      a, (byte_D0EF)
  9633.                 ld      (byte_D08B), a
  9634.                 inc     ix
  9635.                 xor     a
  9636.                 ld      (word_D00D+1), a
  9637.                 inc     a
  9638.                 ld      (byte_D03B), a
  9639.                 ld      a, (byte_D0B1)
  9640.                 cp      #B
  9641.                 call    nc, sub_B8B2
  9642.  
  9643.                 ld      a, (byte_D0F1)
  9644.                 ld      (byte_D0F2), a
  9645.  
  9646.  
  9647. loc_B050:                               ; CODE XREF: sub_AFC5+EF
  9648.                 call    sub_8F4D
  9649.  
  9650.                 call    loc_B819
  9651.  
  9652.                 jr      c, loc_B0B7
  9653.  
  9654.                 push    ix
  9655.                 call    sub_B19C
  9656.  
  9657.  
  9658. loc_B05D:                               ; CODE XREF: sub_AFC5:loc_B182
  9659.                 ld      a, (byte_D0B1)
  9660.                 cp      #C
  9661.                 jr      nz, loc_B07A
  9662.  
  9663.                 xor     a
  9664.                 ld      (byte_D08A), a
  9665.                 ld      (byte_D08C), a
  9666.                 ld      (byte_D00B), a
  9667.                 ld      (byte_D01C), a
  9668.                 inc     a
  9669.                 ld      (byte_D08B), a
  9670.                 ld      a, #80
  9671.                 ld      (byte_D019), a
  9672.  
  9673.  
  9674. loc_B07A:                               ; CODE XREF: sub_AFC5+9D
  9675.                 call    sub_B47F
  9676.  
  9677.                 call    sub_B2D1
  9678.  
  9679.                 ld      hl, byte_D08B
  9680.                 pop     ix
  9681.                 ld      a, (byte_D0B1)
  9682.                 cp      #C
  9683.                 jr      nz, loc_B091
  9684.  
  9685.                 call    sub_A6F7
  9686.  
  9687.                 jr      loc_B097
  9688.  
  9689. ; ---------------------------------------------------------------------------
  9690.  
  9691. loc_B091:                               ; CODE XREF: sub_AFC5+C5
  9692.                 ld      a, (ix+3)
  9693.                 inc     a
  9694.                 jr      z, loc_B09C
  9695.  
  9696.  
  9697. loc_B097:                               ; CODE XREF: sub_AFC5+CA
  9698.                 ld      a, (hl)
  9699.                 cp      #FE
  9700.                 jr      c, loc_B0A3
  9701.  
  9702.  
  9703. loc_B09C:                               ; CODE XREF: sub_AFC5+D0
  9704.                 ld      a, (byte_D0B4)
  9705.                 bit     5, a
  9706.                 jr      z, loc_B0B7
  9707.  
  9708.  
  9709. loc_B0A3:                               ; CODE XREF: sub_AFC5+D5
  9710.                 ld      a, (byte_D0B4)
  9711.                 rla
  9712.                 jr      c, loc_B0B7
  9713.  
  9714.                 push    ix
  9715.                 ld      a, (byte_D00B)
  9716.                 cp      (hl)
  9717.                 jp      z, loc_B175
  9718.  
  9719.                 pop     ix
  9720.                 jp      loc_B050
  9721.  
  9722. ; ---------------------------------------------------------------------------
  9723.  
  9724. loc_B0B7:                               ; CODE XREF: sub_AFC5+E sub_AFC5+91     ...
  9725.                 ld      a, (byte_D0B4)
  9726.                 bit     5, a
  9727.                 jp      nz, loc_B164
  9728.  
  9729.                 ld      bc, (INC_SECONDS)
  9730.                 ld      hl, (word_D088)
  9731.                 add     hl, bc
  9732.                 ld      (word_D088), hl
  9733.                 ld      a, (byte_D049) ;move #
  9734.                 cp      9
  9735.                 jp      c, loc_B164
  9736.  
  9737.                 ld      h, b
  9738.                 ld      l, c
  9739.                 ld      a, (byte_D03C)
  9740.                 cp      4
  9741.                 jr      nc, loc_B0E9
  9742.  
  9743.                 push    af
  9744.                 ld      a, (byte_D0B3) ;d3=swap board
  9745.                 bit     5, a
  9746.                 jr      nz, loc_B0E8
  9747.  
  9748.                 ld      bc, (word_D02B)
  9749.                 add     hl, bc
  9750.  
  9751.  
  9752. loc_B0E8:                               ; CODE XREF: sub_AFC5+11C
  9753.                 pop     af
  9754.  
  9755.  
  9756. loc_B0E9:                               ; CODE XREF: sub_AFC5+114
  9757.                 cp      6
  9758.                 ld      a, (byte_D02A)
  9759.                 ld      c, a
  9760.                 ld      b, 0
  9761.                 jr      c, loc_B0FE
  9762.  
  9763.                 ld      a, c
  9764.                 rra
  9765.                 rra
  9766.                 and     #3F ; '?'
  9767.                 add     a, c
  9768.                 ld      c, a
  9769.                 ld      a, 0
  9770.                 adc     a, b
  9771.                 ld      b, a
  9772.  
  9773.  
  9774. loc_B0FE:                               ; CODE XREF: sub_AFC5+12C
  9775.                 ld      a, 4
  9776.  
  9777.  
  9778. loc_B100:                               ; CODE XREF: sub_AFC5+140
  9779.                 dec     a
  9780.                 jr      z, loc_B107
  9781.  
  9782.                 sbc     hl, bc
  9783.                 jr      nc, loc_B100
  9784.  
  9785.  
  9786. loc_B107:                               ; CODE XREF: sub_AFC5+13C
  9787.                 sub     2
  9788.                 jr      z, loc_B120
  9789.  
  9790.                 jr      c, loc_B11D
  9791.  
  9792.                 ld      a, (byte_D03C)
  9793.                 cp      3
  9794.                 jr      nc, loc_B11B
  9795.  
  9796.                 ld      a, (byte_D0B3) ;d3=swap board
  9797.                 bit     5, a
  9798.                 jr      nz, loc_B120
  9799.  
  9800.  
  9801. loc_B11B:                               ; CODE XREF: sub_AFC5+14D
  9802.                 ld      a, 1
  9803.  
  9804.  
  9805. loc_B11D:                               ; CODE XREF: sub_AFC5+146
  9806.                 call    sub_B185
  9807.  
  9808.  
  9809. loc_B120:                               ; CODE XREF: sub_AFC5+144
  9810.                                         ; sub_AFC5+154
  9811.                 ld      a, (byte_D0B1)
  9812.                 cp      #A
  9813.                 jr      z, loc_B14F
  9814.  
  9815.                 ld      a, (byte_D02D)
  9816.                 bit     2, a
  9817.                 jr      nz, loc_B14F
  9818.  
  9819.                 ld      a, (byte_D0F4)
  9820.                 cp      #9B ; '>'
  9821.                 jr      c, loc_B164
  9822.  
  9823.                 ld      a, (byte_D0B1)
  9824.                 add     a, a
  9825.                 ld      hl, tbl_B8DD-2
  9826.                 add     a, l
  9827.                 ld      l, a
  9828.                 ld      a, 0
  9829.                 adc     a, h
  9830.                 ld      h, a
  9831.                 ld      a, (byte_D0F1)
  9832.                 sub     3
  9833.                 sub     (hl)
  9834.                 neg
  9835.                 call    m, sub_B185
  9836.  
  9837.                 jr      loc_B164
  9838.  
  9839. ; ---------------------------------------------------------------------------
  9840.  
  9841. loc_B14F:                               ; CODE XREF: sub_AFC5+160
  9842.                                         ; sub_AFC5+167
  9843.                 ld      a, (byte_D0F1)
  9844.                 add     a, 4
  9845.                 ld      hl, byte_D0F2
  9846.                 cp      (hl)
  9847.                 ld      a, 2
  9848.                 jr      nc, loc_B164
  9849.  
  9850.                 ld      hl, byte_D0B3 ;d3=swap board
  9851.                 bit     5, (hl)
  9852.                 call    z, sub_B185
  9853.  
  9854.  
  9855. loc_B164:                               ; CODE XREF: sub_AFC5+F7
  9856.                                         ; sub_AFC5+10A ...
  9857.                 xor     a
  9858.                 ret
  9859.  
  9860. ; ---------------------------------------------------------------------------
  9861.  
  9862. loc_B166:                               ; CODE XREF: sub_B47F+CA
  9863.                 xor     a
  9864.                 ld      (byte_D08A), a
  9865.                 ld      (byte_D08C), a
  9866.                 ld      a, (byte_D00B)
  9867.                 ld      (byte_D08B), a
  9868.                 jr      loc_B182
  9869.  
  9870. ; ---------------------------------------------------------------------------
  9871.  
  9872. loc_B175:                               ; CODE XREF: sub_AFC5+EA
  9873.                 ld      a, (byte_D08A)
  9874.                 ld      (byte_D08C), a
  9875.                 xor     a
  9876.                 ld      (byte_D00B), a
  9877.                 ld      (byte_D08B), a
  9878.  
  9879.  
  9880. loc_B182:                               ; CODE XREF: sub_AFC5+1AE
  9881.                 jp      loc_B05D
  9882.  
  9883. ; End of function sub_AFC5
  9884.  
  9885.  
  9886. ; =============== S U B R O U T I N E =======================================
  9887.  
  9888.  
  9889. sub_B185:                               ; CODE XREF: sub_AFC5:loc_B11D
  9890.                                         ; sub_AFC5+185 ...
  9891.                 ld      d, a
  9892.                 ld      a, (byte_D0F1)
  9893.                 add     a, d
  9894.                 ld      d, a
  9895.                 and     #F0 ; 'р'
  9896.                 jr      nz, loc_B191
  9897.  
  9898.                 ld      d, #10
  9899.  
  9900.  
  9901. loc_B191:                               ; CODE XREF: sub_B185+8
  9902.                 cp      #50 ; 'P'
  9903.                 jr      c, loc_B197
  9904.  
  9905.                 ld      d, #4F ; 'O'
  9906.  
  9907.  
  9908. loc_B197:                               ; CODE XREF: sub_B185+E
  9909.                 ld      a, d
  9910.                 ld      (byte_D0F1), a
  9911.                 ret
  9912.  
  9913. ; End of function sub_B185
  9914.  
  9915.  
  9916. ; =============== S U B R O U T I N E =======================================
  9917.  
  9918.  
  9919. sub_B19C:                               ; CODE XREF: sub_AFC5+95
  9920.                 ld      a, (byte_D08B)
  9921.                 ld      c, a
  9922.                 add     a, #84 ; '"'
  9923.                 sra     a
  9924.                 sra     a
  9925.                 sra     a
  9926.                 ld      b, a
  9927.                 ld      a, (byte_D0B2)
  9928.                 or      a
  9929.                 ld      a, b
  9930.                 jr      nz, loc_B1B2
  9931.  
  9932.                 neg
  9933.  
  9934.  
  9935. loc_B1B2:                               ; CODE XREF: sub_B19C+12
  9936.                 ld      hl, word_D00D
  9937.                 add     a, (hl)
  9938.                 ld      (hl), a
  9939.                 neg
  9940.                 ld      hl, byte_D02E
  9941.                 add     a, (hl)
  9942.                 cp      #F
  9943.                 jr      c, loc_B1CC
  9944.  
  9945.                 cp      #F2 ; 'т'
  9946.                 jr      nc, loc_B1CC
  9947.  
  9948.                 rla
  9949.                 ld      a, #E
  9950.                 jr      nc, loc_B1CC
  9951.  
  9952.                 ld      a, #F2  ; 'т'
  9953.  
  9954.  
  9955. loc_B1CC:                               ; CODE XREF: sub_B19C+23 sub_B19C+27 ...
  9956.                 add     a, a
  9957.                 add     a, a
  9958.                 add     a, a
  9959.                 ld      (byte_D01E), a
  9960.                 ld      a, b
  9961.                 add     a, a
  9962.                 add     a, a
  9963.                 add     a, a
  9964.                 neg
  9965.                 add     a, c
  9966.                 sub     8
  9967.                 ld      (byte_D00B), a
  9968.                 ld      (byte_D08B), a
  9969.                 ld      (byte_D08A), a
  9970.                 ld      (byte_D08C), a
  9971.                 ret
  9972.  
  9973. ; End of function sub_B19C
  9974.  
  9975. ; ---------------------------------------------------------------------------
  9976. ; START OF FUNCTION CHUNK FOR sub_B1EB
  9977.  
  9978. loc_B1E8:                               ; CODE XREF: sub_B1EB+46
  9979.                 call    sub_B8B2
  9980.  
  9981. ; END OF FUNCTION CHUNK FOR sub_B1EB
  9982.  
  9983. ; =============== S U B R O U T I N E =======================================
  9984.  
  9985.  
  9986. sub_B1EB:                               ; CODE XREF: sub_AFC5+21
  9987.  
  9988. ; FUNCTION CHUNK AT B1E8 SIZE 00000003 BYTES
  9989.  
  9990.                 ld      a, (byte_D0B1)
  9991.                 cp      #A
  9992.                 ld      a, (byte_D0F4)
  9993.                 jr      nz, loc_B205
  9994.  
  9995.                 or      a
  9996.                 ld      (byte_D0F3), a
  9997.                 rr      a
  9998.                 inc     a
  9999.                 ld      (byte_D02A), a
  10000.                 ld      a, #A
  10001.                 ld      (byte_D03C), a
  10002.                 ret
  10003.  
  10004. ; ---------------------------------------------------------------------------
  10005.  
  10006. loc_B205:                               ; CODE XREF: sub_B1EB+8
  10007.                 ld      e, a
  10008.                 xor     a
  10009.                 ld      d, a
  10010.                 ld      b, #A
  10011.                 ld      hl, 0
  10012.  
  10013.  
  10014. loc_B20D:                               ; CODE XREF: sub_B1EB+24
  10015.                 adc     hl, de          ; mul E by 10, why ADC???
  10016.                 djnz    loc_B20D
  10017.  
  10018.                 ld      a, (byte_D049) ;move #
  10019.                 dec     a
  10020.                 ld      b, 0
  10021.                 ld      c, #A
  10022.  
  10023.  
  10024. loc_B219:                               ; CODE XREF: sub_B1EB+30
  10025.                 inc     b
  10026.                 sub     c
  10027.                 jr      nc, loc_B219
  10028.  
  10029.                 neg
  10030.                 ld      d, h
  10031.                 ld      e, l
  10032.                 or      a
  10033.                 jr      loc_B226
  10034.  
  10035. ; ---------------------------------------------------------------------------
  10036.  
  10037. loc_B224:                               ; CODE XREF: sub_B1EB:loc_B226
  10038.                 adc     hl, de          ; E*10*floor(byte_D049/10)
  10039.  
  10040.  
  10041. loc_B226:                               ; CODE XREF: sub_B1EB+37
  10042.                 djnz    loc_B224
  10043.  
  10044.                 ld      de, (word_D088)
  10045.                 or      a
  10046.                 sbc     hl, de
  10047.                 bit     7, h
  10048.                 jr      nz, loc_B1E8
  10049.  
  10050.                 ld      c, a
  10051.                 push    hl
  10052.                 ld      a, (byte_D0F4)
  10053.                 ld      d, 0
  10054.                 ld      e, a
  10055.                 xor     a
  10056.                 ld      (byte_D03C), a
  10057.                 dec     a
  10058.  
  10059.  
  10060. loc_B240:                               ; CODE XREF: sub_B1EB+58
  10061.                 inc     a
  10062.                 sbc     hl, de
  10063.                 jr      nc, loc_B240
  10064.  
  10065.                 sub     c
  10066.                 jr      c, loc_B24B
  10067.  
  10068.                 ld      (byte_D03C), a
  10069.  
  10070.  
  10071. loc_B24B:                               ; CODE XREF: sub_B1EB+5B
  10072.                 pop     hl
  10073.                 ld      a, #FE  ; 'ю'
  10074.                 ld      (byte_D0F3), a
  10075.                 ld      (byte_D02A), a
  10076.                 ld      a, h
  10077.                 srl     a
  10078.                 jr      nz, loc_B26A
  10079.  
  10080.                 ld      a, l
  10081.                 rra
  10082.                 dec     c
  10083.                 jr      z, loc_B260
  10084.  
  10085.                 srl     a
  10086.  
  10087.  
  10088. loc_B260:                               ; CODE XREF: sub_B1EB+71
  10089.                 inc     c
  10090.                 sub     2
  10091.                 jr      nc, loc_B266
  10092.  
  10093.                 xor     a
  10094.  
  10095.  
  10096. loc_B266:                               ; CODE XREF: sub_B1EB+78
  10097.                 inc     a
  10098.                 ld      (byte_D0F3), a
  10099.  
  10100.  
  10101. loc_B26A:                               ; CODE XREF: sub_B1EB+6C
  10102.                 xor     a               ; HL=HL/C ?
  10103.                 ld      b, #11
  10104.  
  10105.  
  10106. loc_B26D:                               ; CODE XREF: sub_B1EB+8C
  10107.                 rl      l               ; ADC HL,HL?
  10108.                 rl      h
  10109.                 rla
  10110.                 cp      c
  10111.                 jr      c, loc_B276
  10112.  
  10113.                 sub     c
  10114.  
  10115.  
  10116. loc_B276:                               ; CODE XREF: sub_B1EB+88
  10117.                 ccf
  10118.                 djnz    loc_B26D
  10119.  
  10120.                 ld      a, h
  10121.                 srl     a
  10122.                 jr      nz, loc_B29C
  10123.  
  10124.                 ld      a, l
  10125.                 rra
  10126.                 or      a
  10127.                 jr      nz, loc_B284
  10128.  
  10129.                 inc     a
  10130.  
  10131.  
  10132. loc_B284:                               ; CODE XREF: sub_B1EB+96
  10133.                 ld      (byte_D02A), a
  10134.                 rla
  10135.                 jr      c, loc_B29C
  10136.  
  10137.                 ld      a, (byte_D0F4)
  10138.                 cp      l
  10139.                 jr      c, loc_B29F
  10140.  
  10141.                 ld      a, (byte_D0B4)
  10142.                 bit     5, a
  10143.                 jr      nz, loc_B29C
  10144.  
  10145.                 ld      a, #FF
  10146.                 call    sub_B185
  10147.  
  10148.  
  10149. loc_B29C:                               ; CODE XREF: sub_B1EB+91 sub_B1EB+9D ...
  10150.                 ld      a, (byte_D0F4)
  10151.  
  10152.  
  10153. loc_B29F:                               ; CODE XREF: sub_B1EB+A3
  10154.                 ld      hl, byte_D02A
  10155.                 cp      (hl)
  10156.                 jr      nc, loc_B2A6
  10157.  
  10158.                 ld      (hl), a
  10159.  
  10160.  
  10161. loc_B2A6:                               ; CODE XREF: sub_B1EB+B8
  10162.                 ld      a, (byte_D02A)
  10163.                 ld      b, a
  10164.                 add     a, a
  10165.                 ret     c
  10166.                 add     a, b
  10167.                 ret     c
  10168.                 ld      b, a
  10169.                 ld      a, (byte_D0F3)
  10170.                 cp      b
  10171.                 ret     c
  10172.                 ld      a, b
  10173.                 ld      (byte_D0F3), a
  10174.                 ret
  10175.  
  10176. ; End of function sub_B1EB
  10177.  
  10178.  
  10179. ; =============== S U B R O U T I N E =======================================
  10180.  
  10181.  
  10182. sub_B2B9:                               ; CODE XREF: sub_AFC5+62 sub_B47F-50 ...
  10183.                 ld      hl, byte_D097
  10184.                 ld      a, (hl)
  10185.                 add     a, a
  10186.                 add     a, l
  10187.                 ld      l, a
  10188.                 ld      e, (hl)
  10189.                 inc     l
  10190.                 ld      d, (hl)
  10191.                 ex      de, hl
  10192.                 inc     hl
  10193.                 inc     hl
  10194.                 ret
  10195.  
  10196. ; End of function sub_B2B9
  10197.  
  10198. ; ---------------------------------------------------------------------------
  10199.  
  10200.                 ; no alignment
  10201.  
  10202.                 ; low parts of addresses in D2xx region
  10203. tbl_B2C7:       db #58
  10204.                 db #66
  10205.                 db #72
  10206.                 db #7C
  10207.                 db #84
  10208.                 db #8A
  10209.                 db #8E
  10210.                 db #90
  10211.                 db #90
  10212.                 db #8E
  10213.  
  10214. ; =============== S U B R O U T I N E =======================================
  10215.  
  10216.  
  10217. sub_B2D1:                               ; CODE XREF: sub_AFC5:loc_AFE0
  10218.                                         ; sub_AFC5+B8
  10219.                 ld      hl, byte_D258
  10220.                 ld      de, byte_D20D
  10221.                 ld      b, #E
  10222.  
  10223.  
  10224. loc_B2D9:                               ; CODE XREF: sub_B2D1+E
  10225.                 ld      a, (hl)
  10226.                 and     #77 ; 'w'
  10227.                 ld      (de), a
  10228.                 inc     e
  10229.                 inc     l
  10230.                 djnz    loc_B2D9
  10231.  
  10232.                 ret
  10233.  
  10234. ; End of function sub_B2D1
  10235.  
  10236.  
  10237. ; =============== S U B R O U T I N E =======================================
  10238.  
  10239.  
  10240. sub_B2E2:                               ; CODE XREF: sub_AFC5+18
  10241.                 ld      hl, byte_D25C
  10242.                 ld      de, byte_D258
  10243.                 ld      b, #A
  10244.  
  10245.  
  10246. loc_B2EA:                               ; CODE XREF: sub_B2E2+C
  10247.                 ld      a, (hl)
  10248.                 ld      (de), a
  10249.                 inc     e
  10250.                 inc     l
  10251.                 djnz    loc_B2EA
  10252.  
  10253.                 ret
  10254.  
  10255. ; End of function sub_B2E2
  10256.  
  10257.  
  10258. ; =============== S U B R O U T I N E =======================================
  10259.  
  10260.  
  10261. sub_B2F1:                               ; CODE XREF: sub_AFC5+1E
  10262.                                         ; sub_B47F:loc_B405 ...
  10263.                 ld      a, (byte_D097)
  10264.                 cp      7
  10265.                 ret     nc              ; only 0..6
  10266.                 ld      e, a
  10267.                 ld      hl, tbl_B2C7
  10268.                 ld      d, 0
  10269.                 add     hl, de
  10270.                 ld      e, (hl)
  10271.                 inc     hl
  10272.                 ld      l, (hl)
  10273.                 ld      h, array_D200/256
  10274.                 ld      d, h
  10275.                 ld      a, #FF
  10276.                 ld      (hl), a
  10277.                 ld      (de), a
  10278.                 ret
  10279.  
  10280. ; End of function sub_B2F1
  10281.  
  10282.  
  10283. ; =============== S U B R O U T I N E =======================================
  10284.  
  10285.  
  10286. sub_B309:                               ; CODE XREF: sub_B47F+9D
  10287.                                         ; sub_B47F+228 ...
  10288.                 ld      a, (byte_D097)
  10289.                 ld      e, a
  10290.                 sub     8
  10291.                 jr      nc, sub_B34B
  10292.  
  10293.                 cpl
  10294.                 ld      b, a
  10295.                 ld      hl, tbl_B2C7-1
  10296.                 ld      d, 0
  10297.                 add     hl, de
  10298.                 ld      e, (hl)
  10299.                 inc     hl
  10300.                 ld      l, (hl)
  10301.                 ld      h, array_D200/256
  10302.                 ld      d, h
  10303.                 ld      a, (ix+0)
  10304.                 ld      (de), a
  10305.                 inc     e
  10306.                 ld      a, (ix+1)
  10307.                 ld      (de), a
  10308.                 dec     b
  10309.                 jp      m, loc_B337
  10310.  
  10311.                 inc     b
  10312.  
  10313.  
  10314. loc_B32D:                               ; CODE XREF: sub_B309+2C
  10315.                 inc     e
  10316.                 ld      a, (hl)
  10317.                 ld      (de), a
  10318.                 inc     l
  10319.                 inc     e
  10320.                 ld      a, (hl)
  10321.                 ld      (de), a
  10322.                 inc     l
  10323.                 djnz    loc_B32D
  10324.  
  10325.  
  10326. loc_B337:                               ; CODE XREF: sub_B309+20
  10327.                 ld      hl, byte_D0B6
  10328.                 bit     0, (hl)
  10329.                 jr      z, sub_B34B
  10330.  
  10331.                 ld      a, (byte_D097)
  10332.                 dec     a
  10333.                 jr      nz, loc_B346
  10334.  
  10335.                 set     2, (hl)
  10336.  
  10337.  
  10338. loc_B346:                               ; CODE XREF: sub_B309+39
  10339.                 bit     2, (hl)
  10340.                 call    nz, sub_A684
  10341.  
  10342. ; End of function sub_B309
  10343.  
  10344.  
  10345. ; =============== S U B R O U T I N E =======================================
  10346.  
  10347.  
  10348. sub_B34B:                               ; CODE XREF: sub_B309+6 sub_B309+33     ...
  10349.                 ld      c, (ix+1)
  10350.                 bit     7, c
  10351.                 ret     nz
  10352.                 ld      hl, unk_D20B    ; D20D-2 ?
  10353.                 ld      a, (byte_D097)
  10354.                 add     a, a
  10355.                 add     a, l
  10356.                 ld      l, a
  10357.                 ld      a, (ix+0)
  10358.                 and     #77 ; 'w'
  10359.                 ld      (hl), a
  10360.                 inc     l
  10361.                 ld      (hl), c
  10362.                 bit     3, (ix+2)
  10363.                 ret     z
  10364.                 dec     l
  10365.                 set     7, (hl)
  10366.                 ret
  10367.  
  10368. ; End of function sub_B34B
  10369.  
  10370.  
  10371. ; =============== S U B R O U T I N E =======================================
  10372.  
  10373.  
  10374. sub_B36B:                               ; CODE XREF: sub_B47F-71
  10375.                 inc     hl
  10376.                 inc     hl
  10377.                 inc     hl
  10378.                 push    hl
  10379.                 ld      a, (ix+2)
  10380.                 and     6
  10381.                 jp      z, loc_B39E
  10382.  
  10383.                 ld      b, (ix+1)
  10384.                 and     4
  10385.                 jr      nz, loc_B385
  10386.  
  10387.                 ld      a, (byte_D07A)
  10388.                 ld      b, a
  10389.                 rla
  10390.                 jr      c, loc_B39E
  10391.  
  10392.  
  10393. loc_B385:                               ; CODE XREF: sub_B36B+11
  10394.                 ex      de, hl
  10395.                 inc     hl
  10396.                 ld      de, #FFFD       ; -3
  10397.                 res     7, b
  10398.  
  10399.  
  10400. loc_B38C:                               ; CODE XREF: sub_B36B+27
  10401.                 add     hl, de
  10402.                 ld      a, (hl)
  10403.                 cp      b
  10404.                 jr      z, loc_B397
  10405.  
  10406.                 inc     a
  10407.                 jp      nz, loc_B38C
  10408.  
  10409.                 jr      loc_B39E
  10410.  
  10411. ; ---------------------------------------------------------------------------
  10412.  
  10413. loc_B397:                               ; CODE XREF: sub_B36B+24
  10414.                 pop     de
  10415.                 dec     hl
  10416.                 call    sub_B3CA
  10417.  
  10418.                 inc     de
  10419.                 push    de
  10420.  
  10421.  
  10422. loc_B39E:                               ; CODE XREF: sub_B36B+9 sub_B36B+18     ...
  10423.                 ld      hl, unk_D20B    ; D20D-2 ?
  10424.                 ld      a, (byte_D097)
  10425.                 add     a, a
  10426.                 add     a, l
  10427.                 ld      l, a
  10428.                 ld      d, (hl)
  10429.                 inc     l
  10430.                 ld      e, (hl)
  10431.                 ld      bc, 3
  10432.                 pop     hl
  10433.                 push    hl
  10434.                 bit     7, d
  10435.                 jr      nz, loc_B3BB
  10436.  
  10437.                 call    sub_AC5D
  10438.  
  10439.  
  10440. loc_B3B6:                               ; CODE XREF: sub_B36B+5B
  10441.                 pop     de
  10442.                 call    nc, sub_B3CA
  10443.  
  10444.                 ret
  10445.  
  10446. ; ---------------------------------------------------------------------------
  10447.  
  10448. loc_B3BB:                               ; CODE XREF: sub_B36B+46
  10449.                 res     7, d
  10450.                 call    sub_AC5D
  10451.  
  10452.                 inc     hl
  10453.                 inc     hl
  10454.                 bit     3, (hl)
  10455.                 dec     hl
  10456.                 dec     hl
  10457.                 jr      nz, loc_B3B6
  10458.  
  10459.                 pop     de
  10460.                 ret
  10461.  
  10462. ; End of function sub_B36B
  10463.  
  10464.  
  10465. ; =============== S U B R O U T I N E =======================================
  10466.  
  10467.  
  10468. sub_B3CA:                               ; CODE XREF: sub_B36B+2E sub_B36B+4C
  10469.                 ld      c, (hl)
  10470.                 ld      a, (de)
  10471.                 ld      (hl), a
  10472.                 ld      a, c
  10473.                 or      #80 ; '?'
  10474.                 ld      (de), a
  10475.                 inc     de
  10476.                 inc     hl
  10477.                 ld      c, (hl)
  10478.                 ld      a, (de)
  10479.                 ld      (hl), a
  10480.                 ld      a, c
  10481.                 or      #80 ; '?'
  10482.                 ld      (de), a
  10483.                 inc     de
  10484.                 inc     hl
  10485.                 ld      c, (hl)
  10486.                 ld      a, (de)
  10487.                 ld      (hl), a
  10488.                 ld      a, c
  10489.                 ld      (de), a
  10490.                 ret
  10491.  
  10492. ; End of function sub_B3CA
  10493.  
  10494.  
  10495. ; =============== S U B R O U T I N E =======================================
  10496.  
  10497.  
  10498. sub_B3E2:                               ; CODE XREF: sub_B47F+A7 sub_B47F+C2
  10499.                 push    ix
  10500.                 pop     hl
  10501.                 ld      a, (hl)
  10502.                 ld      d, h
  10503.                 ld      e, l
  10504.                 inc     hl
  10505.                 ld      b, (hl)
  10506.                 inc     hl
  10507.                 ld      c, (hl)
  10508.                 ex      af, af'
  10509.  
  10510.  
  10511. loc_B3ED:                               ; CODE XREF: sub_B3E2+18
  10512.                 dec     de
  10513.                 ld      a, (de)
  10514.                 ld      (hl), a
  10515.                 dec     de
  10516.                 dec     hl
  10517.                 ld      a, (de)
  10518.                 ld      (hl), a
  10519.                 dec     de
  10520.                 dec     hl
  10521.                 ld      a, (de)
  10522.                 ld      (hl), a
  10523.                 dec     hl
  10524.                 inc     a
  10525.                 jp      nz, loc_B3ED
  10526.  
  10527.                 inc     hl
  10528.                 ex      af, af'
  10529.                 ld      (hl), a
  10530.                 inc     hl
  10531.                 ld      (hl), b
  10532.                 inc     hl
  10533.                 ld      (hl), c
  10534.                 ret
  10535.  
  10536. ; End of function sub_B3E2
  10537.  
  10538. ; ---------------------------------------------------------------------------
  10539. ; START OF FUNCTION CHUNK FOR sub_B47F
  10540.  
  10541. loc_B405:                               ; CODE XREF: sub_B47F+3D
  10542.                 call    sub_B2F1
  10543.  
  10544.                 call    sub_A94F
  10545.  
  10546.                 dec     hl
  10547.                 dec     hl
  10548.                 push    hl
  10549.                 call    sub_B36B
  10550.  
  10551.                 pop     ix
  10552.  
  10553.  
  10554. loc_B413:                               ; CODE XREF: sub_B47F+96 sub_B47F+99 ...
  10555.                 ld      a, (byte_D098)
  10556.                 inc     a
  10557.                 ld      d, a
  10558.                 ld      a, (byte_D097)
  10559.                 cp      d
  10560.                 jp      nc, loc_B5A3
  10561.  
  10562.                 bit     7, (ix+0)
  10563.                 jp      z, loc_B47A
  10564.  
  10565.                 call    sub_B75A
  10566.  
  10567.  
  10568. loc_B429:                               ; CODE XREF: sub_B47F-12 sub_B47F-7
  10569.                 bit     7, (ix+3)
  10570.                 jr      nz, loc_B442
  10571.  
  10572.                 call    sub_B2B9
  10573.  
  10574.                 push    hl
  10575.                 call    sub_AB53
  10576.  
  10577.                 jp      c, loc_B531
  10578.  
  10579.                 pop     ix
  10580.                 jp      z, loc_B571
  10581.  
  10582.                 inc     ix
  10583.                 jr      sub_B47F
  10584.  
  10585. ; ---------------------------------------------------------------------------
  10586.  
  10587. loc_B442:                               ; CODE XREF: sub_B47F-52
  10588.                 ld      de, 3
  10589.                 add     ix, de
  10590.                 ld      a, (ix+0)
  10591.                 inc     a
  10592.                 jp      z, loc_B4E7
  10593.  
  10594.                 call    sub_B2B9
  10595.  
  10596.                 ld      a, (hl)
  10597.                 ld      (byte_D01D), a
  10598.                 push    ix
  10599.                 call    sub_AD40
  10600.  
  10601.                 call    sub_BC00
  10602.  
  10603.                 or      a
  10604.                 jr      z, loc_B46F
  10605.  
  10606.                 call    sub_B79D
  10607.  
  10608.                 jp      c, loc_B535
  10609.  
  10610.                 jr      z, loc_B4A6
  10611.  
  10612.                 call    sub_AF81
  10613.  
  10614.                 pop     ix
  10615.                 jr      loc_B429
  10616.  
  10617. ; ---------------------------------------------------------------------------
  10618.  
  10619. loc_B46F:                               ; CODE XREF: sub_B47F-21
  10620.                 ld      (ix+1), #FF
  10621.                 call    sub_AF81
  10622.  
  10623.                 pop     ix
  10624.                 jr      loc_B429
  10625.  
  10626. ; ---------------------------------------------------------------------------
  10627.  
  10628. loc_B47A:                               ; CODE XREF: sub_B47F-5C
  10629.                 ld      de, 3
  10630.                 add     ix, de
  10631.  
  10632. ; END OF FUNCTION CHUNK FOR sub_B47F
  10633.  
  10634. ; =============== S U B R O U T I N E =======================================
  10635.  
  10636.  
  10637. sub_B47F:                               ; CODE XREF: sub_AFC5:loc_B07A
  10638.                                         ; sub_B47F-3F
  10639.  
  10640. ; FUNCTION CHUNK AT B405 SIZE 0000007A BYTES
  10641. ; FUNCTION CHUNK AT B5D1 SIZE 00000189 BYTES
  10642.  
  10643.                 ld      a, #FF
  10644.                 ld      (byte_D07A), a
  10645.                 ld      a, (ix+0)
  10646.                 inc     a
  10647.                 jr      z, loc_B4E7
  10648.  
  10649.                 push    ix
  10650.                 call    sub_AD40
  10651.  
  10652.                 call    sub_B96D
  10653.  
  10654.                 jp      c, loc_B4A6
  10655.  
  10656.                 ld      b, 0
  10657.                 ld      hl, byte_D097
  10658.                 inc     (hl)
  10659.                 ld      a, (byte_D02D)
  10660.                 xor     1
  10661.                 ld      (byte_D02D), a
  10662.                 jp      loc_B576
  10663.  
  10664. ; ---------------------------------------------------------------------------
  10665.  
  10666. loc_B4A6:                               ; CODE XREF: sub_B47F-19 sub_B47F+13 ...
  10667.                 ld      a, (byte_D02D)
  10668.                 xor     1
  10669.                 ld      (byte_D02D), a
  10670.                 ld      hl, byte_D097
  10671.                 ld      a, (hl)
  10672.                 inc     (hl)
  10673.                 ld      hl,  word_D088+1
  10674.                 add     a, l
  10675.                 ld      l, a
  10676.                 ld      a, (hl)
  10677.                 inc     l
  10678.                 inc     l
  10679.                 ld      (hl), a
  10680.                 jp      loc_B405
  10681.  
  10682. ; ---------------------------------------------------------------------------
  10683.  
  10684. loc_B4BF:                               ; CODE XREF: sub_B47F+54
  10685.                 ld      hl, byte_D097
  10686.                 dec     (hl)
  10687.                 ld      a, (byte_D02D)
  10688.                 xor     1
  10689.                 ld      (byte_D02D), a
  10690.                 jp      loc_B535
  10691.  
  10692. ; ---------------------------------------------------------------------------
  10693.  
  10694. loc_B4CE:                               ; CODE XREF: sub_B47F+261
  10695.                 rra
  10696.                 jp      c, loc_B4D5
  10697.  
  10698.                 rra
  10699.                 jr      nc, loc_B4BF
  10700.  
  10701.  
  10702. loc_B4D5:                               ; CODE XREF: sub_B47F+50
  10703.                                         ; sub_B47F+15B ...
  10704.                 ld      de, #FFFD       ; -3
  10705.  
  10706.  
  10707. loc_B4D8:                               ; CODE XREF: sub_B47F+66
  10708.                 add     ix, de
  10709.                 ld      a, (ix+0)
  10710.                 inc     a
  10711.                 jp      z, loc_B563
  10712.  
  10713.                 ld      a, (ix+1)
  10714.                 inc     a
  10715.                 jr      z, loc_B4D8
  10716.  
  10717.  
  10718. loc_B4E7:                               ; CODE XREF: sub_B47F-34 sub_B47F+9     ...
  10719.                 ld      a, (byte_D097)
  10720.                 dec     a
  10721.                 ret     z
  10722.                 ld      (byte_D097), a
  10723.                 call    sub_AF81
  10724.  
  10725.                 pop     ix
  10726.  
  10727.  
  10728. loc_B4F4:                               ; CODE XREF: sub_B47F+111
  10729.                 ld      a, (byte_D02D)
  10730.                 xor     1
  10731.                 ld      (byte_D02D), a
  10732.                 ld      a, (byte_D0B4)
  10733.                 and     #90
  10734.                 jr      nz, loc_B4E7
  10735.  
  10736.                 ld      a, (byte_D097)
  10737.                 ld      hl, byte_D08B
  10738.                 add     a, l
  10739.                 ld      l, a
  10740.                 ld      a, (hl)
  10741.                 dec     a
  10742.                 dec     l
  10743.                 dec     l
  10744.                 cp      (hl)
  10745.                 jr      c, loc_B53A
  10746.  
  10747.                 cpl
  10748.                 inc     l
  10749.                 cp      (hl)
  10750.                 jp      c, loc_B413
  10751.  
  10752.                 jp      z, loc_B413
  10753.  
  10754.                 ld      (hl), a
  10755.                 call    sub_B309
  10756.  
  10757.                 ld      a, (byte_D097)
  10758.                 dec     a
  10759.                 jp      nz, loc_B413
  10760.  
  10761.                 call    sub_B3E2
  10762.  
  10763.                 ld      a, (byte_D08B)
  10764.                 inc     a
  10765.                 ret     z
  10766.                 jp      loc_B413
  10767.  
  10768. ; ---------------------------------------------------------------------------
  10769.  
  10770. loc_B531:                               ; CODE XREF: sub_B47F-49
  10771.                 pop     hl
  10772.                 jp      loc_B53A
  10773.  
  10774. ; ---------------------------------------------------------------------------
  10775.  
  10776. loc_B535:                               ; CODE XREF: sub_B47F-1C sub_B47F+4C ...
  10777.                 call    sub_AF81
  10778.  
  10779.                 pop     ix
  10780.  
  10781.  
  10782. loc_B53A:                               ; CODE XREF: sub_B47F+91 sub_B47F+B3
  10783.                 ld      a, (byte_D097)
  10784.                 dec     a
  10785.                 jp      nz, loc_B54C
  10786.  
  10787.                 call    sub_B3E2
  10788.  
  10789.                 pop     hl
  10790.                 pop     ix
  10791.                 push    ix
  10792.                 jp      loc_B166
  10793.  
  10794. ; ---------------------------------------------------------------------------
  10795.  
  10796. loc_B54C:                               ; CODE XREF: sub_B47F+BF
  10797.                 call    sub_B34B
  10798.  
  10799.                 call    sub_AF81
  10800.  
  10801.                 pop     ix
  10802.                 ld      hl, byte_D097
  10803.                 dec     (hl)
  10804.                 ld      a, (byte_D02D)
  10805.                 xor     1
  10806.                 ld      (byte_D02D), a
  10807.                 jp      loc_B413
  10808.  
  10809. ; ---------------------------------------------------------------------------
  10810.  
  10811. loc_B563:                               ; CODE XREF: sub_B47F+5F
  10812.                 ld      b, (ix+2)
  10813.                 ld      a, (byte_D0B1)
  10814.                 cp      #C
  10815.                 jr      z, loc_B574
  10816.  
  10817.                 ld      c, 2
  10818.                 jr      loc_B576
  10819.  
  10820. ; ---------------------------------------------------------------------------
  10821.  
  10822. loc_B571:                               ; CODE XREF: sub_B47F-44
  10823.                 ld      b, (ix+0)
  10824.  
  10825.  
  10826. loc_B574:                               ; CODE XREF: sub_B47F+EC
  10827.                 ld      c, 1
  10828.  
  10829.  
  10830. loc_B576:                               ; CODE XREF: sub_B47F+24 sub_B47F+F0
  10831.                 ld      hl, byte_D08A
  10832.                 ld      a, (byte_D097)
  10833.                 add     a, l
  10834.                 ld      l, a
  10835.                 bit     7, b
  10836.                 jr      z, loc_B593
  10837.  
  10838.                 ld      (hl), c
  10839.                 ld      hl, byte_D097
  10840.                 dec     (hl)
  10841.                 call    sub_AF81
  10842.  
  10843.                 pop     ix
  10844.                 ld      (ix+3), #FF
  10845.                 jp      loc_B4F4
  10846.  
  10847. ; ---------------------------------------------------------------------------
  10848.  
  10849. loc_B593:                               ; CODE XREF: sub_B47F+101
  10850.                 ld      a, (byte_D02D)
  10851.                 rra
  10852.                 ld      a, (byte_D01E)
  10853.                 jr      nc, loc_B59D
  10854.  
  10855.                 cpl
  10856.  
  10857.  
  10858. loc_B59D:                               ; CODE XREF: sub_B47F+11B
  10859.                 add     a, #84 ; '"'
  10860.                 ld      (hl), a
  10861.                 jp      loc_B4E7
  10862.  
  10863. ; ---------------------------------------------------------------------------
  10864.  
  10865. loc_B5A3:                               ; CODE XREF: sub_B47F-63
  10866.                 call    sub_B2B9
  10867.  
  10868.                 ld      a, (hl)
  10869.                 ld      (byte_D01D), a
  10870.                 ld      a, (byte_D097)
  10871.                 ld      e, a
  10872.                 ld      hl,  word_D088+1
  10873.                 add     a, l
  10874.                 ld      l, a
  10875.                 ld      (word_D06D), hl
  10876.                 ld      a, (byte_D098)
  10877.                 add     a, 2
  10878.                 sub     e
  10879.                 jp      m, loc_B72D
  10880.  
  10881.                 jp      z, loc_B6D4
  10882.  
  10883.                 ld      (byte_D03B), a
  10884.                 jp      loc_B5D1
  10885.  
  10886. ; ---------------------------------------------------------------------------
  10887.  
  10888. loc_B5C8:                               ; CODE XREF: sub_B47F+167
  10889.                 ld      (ix+1), #FF
  10890.  
  10891.  
  10892. loc_B5CC:                               ; CODE XREF: sub_B47F+1DF
  10893.                                         ; sub_B47F+1F2 ...
  10894.                 call    sub_AF81
  10895.  
  10896.                 pop     ix
  10897.  
  10898. ; End of function sub_B47F
  10899.  
  10900. ; START OF FUNCTION CHUNK FOR sub_B47F
  10901.  
  10902. loc_B5D1:                               ; CODE XREF: sub_B47F+146
  10903.                 ld      de, 3
  10904.                 add     ix, de
  10905.                 ld      a, (ix+0)
  10906.                 inc     a
  10907.                 jp      z, loc_B4D5
  10908.  
  10909.                 push    ix
  10910.                 call    sub_AD40
  10911.  
  10912.                 call    sub_BC00
  10913.  
  10914.                 or      a
  10915.                 jr      z, loc_B5C8
  10916.  
  10917.                 cpl
  10918.                 ld      hl, (word_D06D)
  10919.                 cp      (hl)
  10920.                 jp      nc, loc_B645
  10921.  
  10922.                 ld      a, (byte_D01D)
  10923.                 and     #CD
  10924.                 jp      z, loc_B535
  10925.  
  10926.                 cp      8
  10927.                 jr      z, loc_B620
  10928.  
  10929.                 ld      a, (byte_D097)
  10930.                 ld      d, a
  10931.                 ld      a, (word_D00D+1)
  10932.                 add     a, a
  10933.                 cp      d
  10934.                 jr      c, loc_B620
  10935.  
  10936.                 ld      a, (byte_D019)
  10937.                 and     #7F
  10938.                 jp      z, loc_B535
  10939.  
  10940.                 bit     3, a
  10941.                 jp      nz, loc_B4A6
  10942.  
  10943.                 bit     2, a
  10944.                 jr      z, loc_B623
  10945.  
  10946.                 ld      hl, byte_D03B
  10947.                 ld      (hl), 0
  10948.                 jp      loc_B4A6
  10949.  
  10950. ; ---------------------------------------------------------------------------
  10951.  
  10952. loc_B620:                               ; CODE XREF: sub_B47F+17B
  10953.                                         ; sub_B47F+186
  10954.                 ld      a, (byte_D019)
  10955. loc_B623:                               ; CODE XREF: sub_B47F+197
  10956.                 and     3
  10957.                 jp      z, loc_B535
  10958.  
  10959.                 ld      d, 6
  10960.                 rra
  10961.                 jp      c, loc_B630
  10962.                 ld      d, #C
  10963. loc_B630:                               ; CODE XREF: sub_B47F+1AC
  10964.                 ld      a, (byte_D01D)
  10965.                 and     #8D
  10966.                 jp      z, loc_B535
  10967.  
  10968.                 rla
  10969.                 jr      c, loc_B63D
  10970.                 sra     d
  10971. loc_B63D:                               ; CODE XREF: sub_B47F+1BA
  10972.                 ld      a, d
  10973.                 sub     c
  10974.                 jr      nc, loc_B645
  10975.                 cp      (hl)
  10976.                 jp      c, loc_B535
  10977. loc_B645:                               ; CODE XREF: sub_B47F+16E
  10978.                                         ; sub_B47F+1C0
  10979.                 inc     l
  10980.                 ld      a, (ix+2)
  10981.                 ld      d, a
  10982.                 rla
  10983.                 jp      nc, loc_B65B
  10984.  
  10985.                 bit     2, d
  10986.                 jp      z, loc_B4A6
  10987.  
  10988.                 ld      a, (byte_D0B1)
  10989.                 cp      #C
  10990.                 jp      z, loc_B4A6
  10991.  
  10992.  
  10993. loc_B65B:                               ; CODE XREF: sub_B47F+1CC
  10994.                 ld      a, b
  10995.                 dec     b
  10996.                 cp      (hl)
  10997.                 jp      c, loc_B5CC
  10998.  
  10999.                 ld      a, (byte_D01C)
  11000.                 or      a
  11001.                 jr      z, loc_B69B
  11002.  
  11003.                 jp      m, loc_B4A6
  11004.  
  11005.                 bit     2, a
  11006.                 jr      nz, loc_B6AD
  11007.  
  11008.                 ld      e, a
  11009.                 ld      a, c
  11010.                 cp      (hl)
  11011.                 jp      c, loc_B5CC
  11012.  
  11013.                 jp      z, loc_B5CC
  11014.  
  11015.                 bit     6, e
  11016.                 jp      nz, loc_B4A6
  11017.  
  11018.                 ld      a, d
  11019.                 and     #CB
  11020.                 jr      nz, loc_B688
  11021.  
  11022.                 ld      a, (byte_D01D)
  11023.                 and     #C9
  11024.                 jr      z, loc_B6A3
  11025.  
  11026. loc_B688:                               ; CODE XREF: sub_B47F+200
  11027.                 bit     1, e
  11028.                 jp      nz, loc_B4A6
  11029.  
  11030.                 ld      a, (byte_D097)
  11031.                 ld      d, a
  11032.                 ld      a, (word_D00D+1)
  11033.                 add     a, a
  11034.                 cp      d
  11035.                 jr      c, loc_B6A3
  11036.  
  11037.                 jp      loc_B4A6
  11038.  
  11039. ; ---------------------------------------------------------------------------
  11040.  
  11041. loc_B69B:                               ; CODE XREF: sub_B47F+1E6
  11042.                 ld      a, c
  11043.                 cp      (hl)
  11044.                 jp      c, loc_B5CC
  11045.  
  11046.                 jp      z, loc_B5CC
  11047.  
  11048.  
  11049. loc_B6A3:                               ; CODE XREF: sub_B47F+207
  11050.                                         ; sub_B47F+217
  11051.                 ld      (hl), c
  11052.                 call    sub_B2F1
  11053.  
  11054.                 call    sub_B309
  11055.  
  11056.                 jp      loc_B5CC
  11057.  
  11058. ; ---------------------------------------------------------------------------
  11059.  
  11060. loc_B6AD:                               ; CODE XREF: sub_B47F+1ED
  11061.                 ld      a, c
  11062.                 cp      (hl)
  11063.                 jr      c, loc_B6B4
  11064.  
  11065.                 jp      nz, loc_B4A6
  11066.  
  11067.  
  11068. loc_B6B4:                               ; CODE XREF: sub_B47F+230
  11069.                 ld      a, (byte_D097)
  11070.                 ld      d, a
  11071.                 ld      a, (word_D00D+1)
  11072.                 add     a, a
  11073.                 cp      d
  11074.                 jp      nc, loc_B4A6
  11075.  
  11076.                 jp      loc_B5CC
  11077.  
  11078. ; ---------------------------------------------------------------------------
  11079.  
  11080. loc_B6C3:                               ; CODE XREF: sub_B47F+265
  11081.                 bit     3, (ix+2)
  11082.                 jr      z, loc_B6D4
  11083.  
  11084.                 jr      loc_B6E6
  11085.  
  11086. ; ---------------------------------------------------------------------------
  11087.  
  11088. loc_B6CB:                               ; CODE XREF: sub_B47F+270
  11089.                 ld      (ix+1), #FF
  11090.  
  11091.  
  11092. loc_B6CF:                               ; CODE XREF: sub_B47F+29B
  11093.                 call    sub_AF81
  11094.  
  11095.                 pop     ix
  11096.  
  11097.  
  11098. loc_B6D4:                               ; CODE XREF: sub_B47F+140
  11099.                                         ; sub_B47F+248
  11100.                 ld      de, 3
  11101.                 add     ix, de
  11102.                 ld      a, (ix+0)
  11103.                 inc     a
  11104.                 ld      a, (byte_D03B)
  11105.                 jp      z, loc_B4CE
  11106.  
  11107.                 rra
  11108.                 jr      nc, loc_B6C3
  11109.  
  11110.  
  11111. loc_B6E6:                               ; CODE XREF: sub_B47F+24A
  11112.                 push    ix
  11113.                 call    sub_AD40
  11114.  
  11115.                 call    sub_BC00
  11116.  
  11117.                 or      a
  11118.                 jr      z, loc_B6CB
  11119.  
  11120.                 ld      a, (byte_D019)
  11121.                 and     #83
  11122.                 jp      m, loc_B535
  11123.  
  11124.                 sub     c
  11125.                 ld      hl, (word_D06D)
  11126.                 cp      (hl)
  11127.                 jp      c, loc_B535
  11128.  
  11129.                 ld      a, (ix+2)
  11130.                 ld      d, a
  11131.                 and     #C0
  11132.                 jr      z, loc_B711
  11133.  
  11134.                 bit     3, d
  11135.                 jr      nz, loc_B71C
  11136.  
  11137.                 bit     2, d
  11138.                 jr      z, loc_B71C
  11139.  
  11140.  
  11141. loc_B711:                               ; CODE XREF: sub_B47F+288
  11142.                 inc     l
  11143.                 ld      a, (byte_D01A)
  11144.                 add     a, a
  11145.                 add     a, b
  11146.                 jr      c, loc_B71C
  11147.  
  11148.                 cp      (hl)
  11149.                 jr      c, loc_B6CF
  11150.  
  11151.  
  11152. loc_B71C:                               ; CODE XREF: sub_B47F+28C
  11153.                                         ; sub_B47F+290 ...
  11154.                 ld      hl, byte_D03B
  11155.                 set     1, (hl)
  11156.                 jp      loc_B4A6
  11157.  
  11158. ; ---------------------------------------------------------------------------
  11159.  
  11160. loc_B724:                               ; CODE XREF: sub_B47F+2C3
  11161.                 ld      (ix+1), #FF
  11162.  
  11163.  
  11164. loc_B728:                               ; CODE XREF: sub_B47F+2D0
  11165.                                         ; sub_B47F+2D2 ...
  11166.                 call    sub_AF81
  11167.  
  11168.                 pop     ix
  11169.  
  11170.  
  11171. loc_B72D:                               ; CODE XREF: sub_B47F+13D
  11172.                 ld      de, 3
  11173.                 add     ix, de
  11174.                 ld      a, (ix+0)
  11175.                 inc     a
  11176.                 jp      z, loc_B4D5
  11177.  
  11178.                 push    ix
  11179.                 call    sub_AD40
  11180.  
  11181.                 call    sub_BC00
  11182.  
  11183.                 or      a
  11184.                 jr      z, loc_B724
  11185.  
  11186.                 cpl
  11187.                 ld      hl, (word_D06D)
  11188.                 cp      (hl)
  11189.                 jp      c, loc_B535
  11190.  
  11191.                 inc     l
  11192.                 ld      a, c
  11193.                 cp      (hl)
  11194.                 jr      c, loc_B728
  11195.  
  11196.                 jr      z, loc_B728
  11197.  
  11198.                 ld      (hl), a
  11199.                 call    sub_B309
  11200.  
  11201.                 jp      loc_B728
  11202.  
  11203. ; END OF FUNCTION CHUNK FOR sub_B47F
  11204.  
  11205. ; =============== S U B R O U T I N E =======================================
  11206.  
  11207.  
  11208. sub_B75A:                               ; CODE XREF: sub_B47F-59
  11209.                 ld      a, (byte_D097)
  11210.                 ld      e, a
  11211.                 ld      hl,  word_D088+1
  11212.                 add     a, l
  11213.                 ld      l, a
  11214.                 ld      (word_D06D), hl
  11215.                 ld      a, (byte_D0B1)
  11216.                 cp      #C
  11217.                 jr      z, loc_B796
  11218.  
  11219.                 ld      a, e
  11220.                 inc     a
  11221.                 ld      hl, byte_D098
  11222.                 sub     (hl)
  11223.                 jr      c, loc_B78B
  11224.  
  11225.                 ld      hl, byte_D01A
  11226.                 ld      a, (word_D00D+1)
  11227.                 add     a, (hl)
  11228.                 bit     0, e
  11229.                 jr      nz, loc_B781
  11230.  
  11231.                 add     a, (hl)
  11232.  
  11233.  
  11234. loc_B781:                               ; CODE XREF: sub_B75A+24
  11235.                 ld      (byte_D009), a
  11236.                 ld      hl, loc_B7A1
  11237.                 ld      (JP_ADDR), hl
  11238.                 ret
  11239.  
  11240. ; ---------------------------------------------------------------------------
  11241.  
  11242. loc_B78B:                               ; CODE XREF: sub_B75A+19
  11243.                 ld      hl, loc_B7CA
  11244.                 add     a, 2
  11245.                 jr      nc, loc_B796
  11246.  
  11247.                 ld      (JP_ADDR), hl
  11248.                 ret
  11249.  
  11250. ; ---------------------------------------------------------------------------
  11251.  
  11252. loc_B796:                               ; CODE XREF: sub_B75A+11 sub_B75A+36
  11253.                 ld      hl, XOR_A
  11254.                 ld      (JP_ADDR), hl
  11255.                 ret
  11256.  
  11257. ; End of function sub_B75A
  11258.  
  11259.  
  11260. ; =============== S U B R O U T I N E =======================================
  11261.  
  11262.  
  11263. sub_B79D:                               ; CODE XREF: sub_AB53+86 sub_B47F-1F
  11264.                 ld      hl, (JP_ADDR)
  11265.                 jp      (hl)
  11266.  
  11267. ; End of function sub_B79D
  11268.  
  11269. ; ---------------------------------------------------------------------------
  11270.  
  11271. loc_B7A1:                               ; DATA XREF: sub_B75A+2A
  11272.                 ld      a, (byte_D097)
  11273.                 rra
  11274.                 ld      hl, (word_D06D)
  11275.                 jr      c, loc_B7F1
  11276.  
  11277.                 ld      a, (byte_D009)
  11278.                 sub     c
  11279.                 jr      nc, loc_B7F1
  11280.  
  11281.                 cp      (hl)
  11282.                 jr      nc, loc_B7F1
  11283.  
  11284.                 ld      a, (byte_D01D)
  11285.                 ld      d, a
  11286.                 ld      a, (byte_D01B)
  11287.                 and     d
  11288.                 scf
  11289.                 ret     z
  11290.                 and     #C
  11291.                 cp      #C
  11292.                 jr      z, loc_B7F1
  11293.  
  11294.                 bit     2, a
  11295.                 scf
  11296.                 ret     nz
  11297.                 jp      loc_B7F1
  11298.  
  11299. ; ---------------------------------------------------------------------------
  11300.  
  11301. loc_B7CA:                               ; DATA XREF: sub_B75A:loc_B78B
  11302.                 ld      hl, (word_D06D)
  11303.                 ld      a, (byte_D03B)
  11304.                 rla
  11305.                 call    c, sub_B80F ;может выходить отсюда
  11306.  
  11307.                 bit     2, (ix+2)
  11308.                 jr      z, loc_B7E5
  11309.  
  11310.                 ld      a, #17
  11311.  
  11312. loc_B7DC:                               ; CODE XREF: RAM:B805
  11313.                 add     a, c
  11314.  
  11315. loc_B7DD:                               ; CODE XREF: RAM:B80C
  11316.                 jr      c, loc_B7E5
  11317.  
  11318.                 inc     l
  11319.                 cp      (hl)
  11320.                 jr      c, loc_B7E7
  11321.  
  11322.                 jr      z, loc_B7E7
  11323.  
  11324. loc_B7E5:                               ; CODE XREF: RAM:B7D8   RAM:loc_B7DD ...
  11325.                 xor     a
  11326.                 ret
  11327.  
  11328. ; ---------------------------------------------------------------------------
  11329.  
  11330. loc_B7E7:                               ; CODE XREF: RAM:B7E1   RAM:B7E3
  11331.                 ld      a, (ix+2)
  11332.                 and     #C9
  11333.                 jr      nz, loc_B7E5
  11334.  
  11335.                 ld      a, c
  11336.                 or      a
  11337.                 ret
  11338.  
  11339. ; ---------------------------------------------------------------------------
  11340.  
  11341. loc_B7F1:                               ; CODE XREF: RAM:B7A8   RAM:B7AE ...
  11342.                 ld      a, (byte_D03B)
  11343.                 rla
  11344.                 call    c, sub_B80F ;может выходить отсюда
  11345.  
  11346.                 ld      a, (byte_D009)
  11347.                 bit     2, (ix+2)
  11348.                 jr      z, loc_B809
  11349.  
  11350.                 bit     3, (ix+2)
  11351.                 jr      z, loc_B7DC
  11352.  
  11353.                 xor     a
  11354.                 ret
  11355.  
  11356. ; ---------------------------------------------------------------------------
  11357.  
  11358. loc_B809:                               ; CODE XREF: RAM:B7FF
  11359.                 add     a, #F
  11360.                 add     a, c
  11361.                 jp      loc_B7DD
  11362.  
  11363.  
  11364. ; =============== S U B R O U T I N E =======================================
  11365.  
  11366.  
  11367. sub_B80F:                               ; CODE XREF: RAM:B7D1   RAM:B7F5
  11368.                 inc     l
  11369.                 ld      a, c
  11370.                 cp      (hl)
  11371.                 dec     l
  11372.                 ret     nc
  11373.                 pop     hl
  11374.                 or      a
  11375.                 ret
  11376.  
  11377. ; End of function sub_B80F
  11378.  
  11379. ; ---------------------------------------------------------------------------
  11380.  
  11381. XOR_A:                                  ; DATA XREF: sub_AB4C
  11382.                                         ; sub_B75A:loc_B796
  11383.                 xor     a
  11384.                 ret
  11385.  
  11386. ; ---------------------------------------------------------------------------
  11387.  
  11388. loc_B819:                               ; CODE XREF: sub_AFC5+8E
  11389.                 ld      a, (byte_D098)
  11390.                 ld      c, a
  11391.                 or      a
  11392.                 jp      p, loc_B841
  11393.  
  11394.                 ld      b, 2
  11395.                 ld      a, (byte_D0B1)
  11396.                 cp      #C
  11397.                 jp      z, loc_B8A0
  11398.  
  11399.                 ld      b, #C
  11400.                 dec     a
  11401.                 jr      z, loc_B8A0
  11402.  
  11403.                 ld      a, (byte_D0F2)
  11404.                 and     #F
  11405.                 cp      9
  11406.                 ld      b, a
  11407.                 jr      nc, loc_B8A0
  11408.  
  11409.                 ld      hl, byte_D098
  11410.                 inc     (hl)
  11411.                 inc     (hl)
  11412.                 jr      loc_B8A0
  11413.  
  11414. ; ---------------------------------------------------------------------------
  11415.  
  11416. loc_B841:                               ; CODE XREF: RAM:B81E
  11417.                 ld      a, (byte_D0B1)
  11418.                 dec     a
  11419.                 jr      z, loc_B877
  11420.  
  11421.                 ld      a, (byte_D0F1)
  11422.                 rra
  11423.                 rra
  11424.                 rra
  11425.                 and     #1E
  11426.                 jr      z, loc_B877
  11427.  
  11428.                 inc     c
  11429.                 cp      c
  11430.                 ld      a, (byte_D0F2)
  11431.                 ld      b, a
  11432.                 jr      nc, loc_B8A0
  11433.  
  11434.                 ld      hl, (INC_SECONDS)
  11435.                 ld      de, (word_D02B)
  11436.                 add     hl, de
  11437.                 ld      a, h
  11438.                 or      a
  11439.                 jr      nz, loc_B877
  11440.  
  11441.                 ld      a, (byte_D02A)
  11442.                 srl     a
  11443.                 srl     a
  11444.                 cp      l
  11445.                 jr      c, loc_B877
  11446.  
  11447.                 ld      a, (byte_D02A)
  11448.                 ld      (byte_D0F3), a
  11449.                 jr      loc_B88A
  11450.  
  11451. ; ---------------------------------------------------------------------------
  11452.  
  11453. loc_B877:                               ; CODE XREF: RAM:B845   RAM:B84F ...
  11454.                 ld      a, (byte_D0B1)
  11455.                 cp      #B
  11456.                 jr      z, loc_B88A
  11457.  
  11458.                 ld      a, (byte_D0B4)
  11459.                 bit     5, a
  11460.                 scf
  11461.                 ret     z
  11462.                 ld      hl, byte_D0B3 ;d3=swap board
  11463.                 set     5, (hl)
  11464.  
  11465. loc_B88A:                               ; CODE XREF: RAM:B875   RAM:B87C
  11466.                 ld      a, (byte_D0F2)
  11467.                 push    af
  11468.                 and     #F0
  11469.                 ld      b, a
  11470.                 pop     af
  11471.                 add     a, 7
  11472.                 ld      (byte_D0F2), a
  11473.                 and     #F0
  11474.                 cp      b
  11475.                 jr      z, loc_B8AD
  11476.  
  11477.                 ld      (byte_D0F2), a
  11478.                 ld      b, a
  11479.  
  11480.  
  11481. loc_B8A0:                               ; CODE XREF: RAM:B828   RAM:B82E ...
  11482.                 ld      hl, byte_D098
  11483.                 ld      a, (hl)
  11484.                 cp      8
  11485.                 ld      a, #F
  11486.                 jr      z, loc_B8AD
  11487.  
  11488.                 inc     (hl)
  11489.                 inc     (hl)
  11490.                 ld      a, b
  11491.  
  11492. loc_B8AD:                               ; CODE XREF: RAM:B89A   RAM:B8A8
  11493.                 call    sub_B943 ;берёт [a] из таблицы по 3 байта и раскладывает в byte_D019..C
  11494.  
  11495.                 or      a
  11496.                 ret
  11497.  
  11498.  
  11499. ; =============== S U B R O U T I N E =======================================
  11500.  
  11501.  
  11502. sub_B8B2:                               ; CODE XREF: sub_A915   sub_AFC5+82 ...
  11503.                 ld      a, (byte_D0B1)
  11504.                 add     a, a
  11505.                 ld      hl, tbl_B8DD-2
  11506.                 add     a, l
  11507.                 ld      l, a
  11508.                 jr      nc, loc_B8BE
  11509.  
  11510.                 inc     h
  11511.  
  11512.  
  11513. loc_B8BE:                               ; CODE XREF: sub_B8B2+9
  11514.                 ld      a, (hl)
  11515.                 ld      (byte_D0F1), a
  11516.                 inc     hl
  11517.                 ld      a, (hl)
  11518.                 ld      (byte_D0F4), a
  11519.                 ld      e, a
  11520.                 ld      d, 0
  11521.                 ld      hl, 0
  11522.                 ld      a, (byte_D049) ;move #
  11523.                 dec     a
  11524.                 jr      z, loc_B8D9
  11525.  
  11526.                 ld      b, a
  11527.                 sbc     hl, de
  11528.  
  11529.  
  11530. loc_B8D6:                               ; CODE XREF: sub_B8B2+25
  11531.                 add     hl, de
  11532.                 djnz    loc_B8D6
  11533.  
  11534. ; End of function sub_B8B2
  11535.  
  11536.  
  11537. loc_B8D9:                               ; CODE XREF: sub_B8B2+1F
  11538.                 ld      (word_D088), hl
  11539.                 ret
  11540.  
  11541. ; ---------------------------------------------------------------------------
  11542.  
  11543.                 ; no alignment
  11544. tbl_B8DD:       db  #0C, #02
  11545.                 db  #11, #06
  11546.                 db  #16, #0F
  11547.                 db  #1A, #1E
  11548.                 db  #1F, #2D
  11549.                 db  #20, #3C
  11550.                 db  #24, #6E
  11551.                 db  #28, #AA
  11552.                 db  #2C, #D2
  11553.                 db  #16, #0F
  11554.                 db  #4F, #FF
  11555.                 db  #42, #FF
  11556.                 db  #34, #F6
  11557.                 db  #07, #97
  11558.                 db  #27, #96
  11559.                 db  #76, #86
  11560.                 db  #47, #94
  11561.                 db  #E6, #47
  11562.                 db  #56, #C6
  11563.                 db  #C6, #96
  11564.                 db  #76, #56
  11565.                 db  #E6, #47
  11566.                 db  #35, #F6
  11567.                 db  #66, #47
  11568.                 db  #77, #16
  11569.                 db  #27, #56
  11570.                 db  #83, #33
  11571.  
  11572.  
  11573.                 ; no alignment
  11574. tbl_B913:       db  #00, #85, #00
  11575.                 db  #02, #85, #00
  11576.                 db  #41, #85, #03
  11577.                 db  #42, #85, #03
  11578.                 db  #42, #8D, #03
  11579.                 db  #42, #85, #01
  11580.                 db  #43, #8D, #01
  11581.                 db  #84, #89, #01
  11582.                 db  #83, #8D, #40
  11583.                 db  #83, #89, #40
  11584.                 db  #94, #89, #40
  11585.                 db  #93, #89, #07
  11586.                 db  #94, #C9, #07
  11587.                 db  #A5, #C9, #07
  11588.                 db  #A5, #C9, #80
  11589.                 db  #A6, #C9, #80
  11590.  
  11591. ; =============== S U B R O U T I N E =======================================
  11592.  
  11593.  
  11594. sub_B943:                               ; CODE XREF: RAM:loc_B8AD
  11595. ;a=?
  11596.                 and     #F
  11597.                 ld      hl, tbl_B913
  11598.                 ld      c, a
  11599.                 add     a, a ;*2
  11600.                 add     a, c ;*3
  11601.                 add     a, l
  11602.                 ld      l, a
  11603.                 jr      nc, loc_B950
  11604.                 inc     h
  11605. loc_B950:                               ; CODE XREF: sub_B943+A
  11606.                 ld      a, (hl)
  11607.                 ld      c, a
  11608.                 and     #F
  11609.                 ld      (byte_D01A), a
  11610.                 ld      a, c
  11611.                 rra
  11612.                 rra
  11613.                 rra
  11614.                 rra
  11615.                 and     #F
  11616.                 ld      (byte_D019), a
  11617.                 inc     hl
  11618.                 ld      a, (hl)
  11619.                 ld      (byte_D01B), a
  11620.                 inc     hl
  11621.                 ld      a, (hl)
  11622.                 ld      (byte_D01C), a
  11623.                 or      a
  11624.                 ret
  11625.  
  11626. ; End of function sub_B943
  11627.  
  11628.  
  11629. ; =============== S U B R O U T I N E =======================================
  11630.  
  11631.  
  11632. sub_B96D:                               ; CODE XREF: sub_B47F+10
  11633.                 ld      a, (byte_D097)
  11634.                 add     a, a
  11635.                 ld      hl,  word_D240+1
  11636.                 add     a, l
  11637.                 ld      l, a
  11638.  
  11639. ; End of function sub_B96D
  11640.  
  11641.  
  11642. ; =============== S U B R O U T I N E =======================================
  11643.  
  11644.  
  11645. sub_B976:                               ; CODE XREF: sub_8C20-B13
  11646.                 ld      e, l
  11647.                 ld      b, #B
  11648.  
  11649. loc_B979:                               ; CODE XREF: sub_B976+1B
  11650.                 bit     7, (hl)
  11651.                 jr      nz, loc_B994
  11652.  
  11653.                 dec     l
  11654.                 ld      a, (hl)
  11655.                 and     #77
  11656.                 or      #80
  11657.                 ld      (hl), a
  11658.                 dec     l
  11659.                 dec     b
  11660.                 bit     7, (hl)
  11661.                 jr      nz, loc_B994
  11662.  
  11663.                 dec     l
  11664.                 ld      a, (hl)
  11665.                 and     #77
  11666.                 ld      (hl), a
  11667.                 dec     l
  11668.                 dec     b
  11669.                 jp      p, loc_B979
  11670.  
  11671. loc_B994:                               ; CODE XREF: sub_B976+5 sub_B976+12
  11672.                 ld      a, #C
  11673.                 sub     b
  11674.                 cp      5
  11675.                 ret     c
  11676.                 ld      d, a
  11677.  
  11678. loc_B99B:                               ; CODE XREF: sub_B976+58 sub_B976+74 ...
  11679.                 ld      l, e
  11680.                 scf
  11681.  
  11682. loc_B99D:                               ; CODE XREF: sub_B976+33
  11683.                 ld      b, d
  11684.                 dec     d
  11685.                 ret     z
  11686.                 ld      c, (hl)
  11687.                 dec     l
  11688.                 ld      a, (hl)
  11689.                 dec     l
  11690.                 bit     3, a
  11691.                 jr      z, loc_B9AD
  11692.  
  11693.                 rla
  11694.                 jp      c, loc_B99D
  11695.  
  11696.                 ret
  11697.  
  11698. ; ---------------------------------------------------------------------------
  11699.  
  11700. loc_B9AD:                               ; CODE XREF: sub_B976+30
  11701.                 ld      e, l
  11702.                 sra     b
  11703.                 push    de
  11704.                 and     #77
  11705.                 ld      e, a
  11706.                 ld      a, c
  11707.                 and     #77
  11708.                 ld      c, a
  11709.                 ld      d, 0
  11710.  
  11711.  
  11712. loc_B9BA:                               ; CODE XREF: sub_B976+52 sub_B976+71
  11713.                 dec     l
  11714.                 set     7, (hl)
  11715.                 dec     l
  11716.                 ld      a, (hl)
  11717.                 dec     l
  11718.                 and     #77
  11719.                 cp      e
  11720.                 jr      z, loc_B9D1
  11721.  
  11722.                 set     7, (hl)
  11723.  
  11724. loc_B9C7:                               ; CODE XREF: sub_B976+66
  11725.                 dec     l
  11726.                 djnz    loc_B9BA
  11727.  
  11728.                 scf
  11729.                 dec     d
  11730.                 pop     de
  11731.                 ret     m
  11732.                 jp      loc_B99B
  11733.  
  11734. ; ---------------------------------------------------------------------------
  11735.  
  11736. loc_B9D1:                               ; CODE XREF: sub_B976+4D
  11737.                 set     3, (hl)
  11738.                 ld      a, (hl)
  11739.                 and     #77
  11740.                 cp      c
  11741.                 jr      z, loc_B9F7
  11742.  
  11743.                 set     7, (hl)
  11744.                 ld      e, a
  11745.                 jp      loc_B9C7
  11746.  
  11747. ; ---------------------------------------------------------------------------
  11748.  
  11749. loc_B9DF:                               ; CODE XREF: sub_B976+7F
  11750.                 ld      a, (hl)
  11751.                 or      #88
  11752.                 ld      (hl), a
  11753.                 and     #77
  11754.                 ld      e, a
  11755.                 dec     l
  11756.                 djnz    loc_B9BA
  11757.  
  11758.                 pop     de
  11759.                 jp      loc_B99B
  11760.  
  11761. ; ---------------------------------------------------------------------------
  11762.  
  11763. loc_B9ED:                               ; CODE XREF: sub_B976+82
  11764.                 inc     d
  11765.                 dec     l
  11766.                 dec     l
  11767.                 ld      a, (hl)
  11768.                 and     #77
  11769.                 dec     l
  11770.                 cp      c
  11771.                 jr      z, loc_B9DF
  11772.  
  11773. loc_B9F7:                               ; CODE XREF: sub_B976+61
  11774.                 dec     l
  11775.                 djnz    loc_B9ED
  11776.  
  11777.                 pop     de
  11778.                 jp      loc_B99B
  11779.  
  11780. ; End of function sub_B976
  11781.  
  11782. ; ---------------------------------------------------------------------------
  11783.                 db    0 ;unused?
  11784.                 db    0 ;unused?
  11785.  
  11786.  
  11787.         align 256
  11788.                 ;must be 256-aligned ;какие-то константы для оценки позиции?
  11789. tbl_BA00:       db    0,   1,   1,  #D,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11790.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11791.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11792.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11793.                 db    9,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11794.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11795.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11796.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11797.                 db    9,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11798.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11799.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11800.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11801.                 db    9,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11802.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11803.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11804.                 db    5,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1,   3,   1,   1,   1
  11805.                 ;must be after tbl_BA00
  11806. tbl_BB00:       db    0,   0,   1,   0,   0,   4,   5,   6,   4,   8,   9,  #A,   8,  #C,  #D,  #E
  11807.                 db    0, #10, #11, #12, #10, #14, #15, #16, #14, #18, #19, #1A, #18, #1C, #1D, #1E
  11808.                 db  #10, #20, #21, #22, #20, #24, #25, #26, #24, #28, #29, #2A, #28, #2C, #2D, #2E
  11809.                 db  #20, #30, #31, #32, #30, #34, #35, #36, #34, #38, #39, #3A, #38, #3C, #3D, #3E
  11810.                 db    0, #40, #41, #42, #40, #44, #45, #46, #44, #48, #49, #4A, #48, #4C, #4D, #4E
  11811.                 db  #40, #50, #51, #52, #50, #54, #55, #56, #54, #58, #59, #5A, #58, #5C, #5D, #5E
  11812.                 db  #50, #60, #61, #62, #60, #64, #65, #66, #64, #68, #69, #6A, #68, #6C, #6D, #6E
  11813.                 db  #60, #70, #71, #72, #70, #74, #75, #76, #74, #78, #79, #7A, #78, #7C, #7D, #7E
  11814.                 db  #40, #80, #81, #82, #80, #84, #85, #86, #84, #88, #89, #8A, #88, #8C, #8D, #8E
  11815.                 db  #80, #90, #91, #92, #90, #94, #95, #96, #94, #98, #99, #9A, #98, #9C, #9D, #9E
  11816.                 db  #90, #A0, #A1, #A2, #A0, #A4, #A5, #A6, #A4, #A8, #A9, #AA, #A8, #AC, #AD, #AE
  11817.                 db  #A0, #B0, #B1, #B2, #B0, #B4, #B5, #B6, #B4, #B8, #B9, #BA, #B8, #BC, #BD, #BE
  11818.                 db  #80, #C0, #C1, #C2, #C0, #C4, #C5, #C6, #C4, #C8, #C9, #CA, #C8, #CC, #CD, #CE
  11819.                 db  #C0, #D0, #D1, #D2, #D0, #D4, #D5, #D6, #D4, #D8, #D9, #DA, #D8, #DC, #DD, #DE
  11820.                 db  #D0, #E0, #E1, #E2, #E0, #E4, #E5, #E6, #E4, #E8, #E9, #EA, #E8, #EC, #ED, #EE
  11821.                 db  #E0, #F0, #F1, #F2, #F0, #F4, #F5, #F6, #F4, #F8, #F9, #FA, #F8, #FC, #FD, #FE
  11822.  
  11823. ; =============== S U B R O U T I N E =======================================
  11824.  
  11825.  
  11826. sub_BC00:                               ; CODE XREF: sub_8C20-9FD
  11827.                                         ; sub_8C20-77C ...
  11828.  
  11829. ; FUNCTION CHUNK AT C0A0 SIZE 000000AA BYTES
  11830.  
  11831.                 call    sub_8F4D
  11832.  
  11833.                 ld      (word_D03D), sp
  11834.                 xor     a
  11835.                 ld      e, a
  11836.                 ex      af, af' ;'
  11837.                 ld      h, BRD_88_0/256
  11838.                 exx
  11839.                 ld      h, word_D100/256
  11840.                 ld      a, (byte_D02D)
  11841.                 rrca
  11842.                 ld      iy, loc_C313
  11843.                 bit     1, a
  11844.                 jr      z, loc_BC27
  11845.  
  11846.                 ld      iy, loc_C303
  11847.                 bit     2, a
  11848.                 jr      z, loc_BC27
  11849.  
  11850.                 ld      iy, loc_C2A6
  11851.  
  11852.  
  11853. loc_BC27:                               ; CODE XREF: sub_BC00+19 sub_BC00+21
  11854.                 add     a, #80
  11855.                 ld      b, a
  11856.                 exx
  11857.                 jp      c, loc_C0AE
  11858.  
  11859.  
  11860. loc_BC2E:                               ; CODE XREF: sub_BC00+547
  11861.                 ld      d, #88
  11862.                 ld      a, (byte_D188)
  11863.                 or      a
  11864.                 call    p, sub_C48D ;проверяем поля по ходу ферзя?
  11865.  
  11866.                 ld      a, (byte_D190)
  11867.                 or      a
  11868.                 call    p, sub_C498 ;что-то делаем и проверяем поля по ходу ладьи?
  11869.  
  11870.                 ld      a, (byte_D198)
  11871.                 or      a
  11872.                 call    p, sub_C498 ;что-то делаем и проверяем поля по ходу ладьи?
  11873.  
  11874.                 ld      a, (byte_D1A0)
  11875.                 or      a
  11876.                 call    p, sub_C5CF ;что-то делаем и проверяем поля по ходу слона
  11877.  
  11878.                 ld      a, (byte_D1A8)
  11879.                 or      a
  11880.                 call    p, sub_C5CF ;что-то делаем и проверяем поля по ходу слона
  11881.  
  11882.                 ld      a, (byte_D1B0)
  11883.                 or      a
  11884.                 call    p, sub_C505 ;что-то делаем и проверяем поля по ходу коня
  11885.  
  11886.                 ld      a, (byte_D1B8)
  11887.                 or      a
  11888.                 call    p, sub_C505 ;что-то делаем и проверяем поля по ходу коня
  11889.  
  11890.                 ld      d, #F1
  11891.                 ld      b, array_D200/256
  11892.                 ld      hl, (word_D1C0)
  11893.                 bit     7, l
  11894.                 call    z, sub_C2F2
  11895.  
  11896.                 ld      hl, (word_D1C8)
  11897.                 bit     7, l
  11898.                 call    z, sub_C2F2
  11899.  
  11900.                 ld      hl, (word_D1D0)
  11901.                 bit     7, l
  11902.                 call    z, sub_C2F2
  11903.  
  11904.                 ld      hl, (word_D1D8)
  11905.                 bit     7, l
  11906.                 call    z, sub_C2EA
  11907.  
  11908.                 ld      hl, (word_D1E0)
  11909.                 bit     7, l
  11910.                 call    z, sub_C2EA
  11911.  
  11912.                 ld      hl, (word_D1E8)
  11913.                 bit     7, l
  11914.                 call    z, sub_C2F2
  11915.  
  11916.                 ld      hl, (word_D1F0)
  11917.                 bit     7, l
  11918.                 call    z, sub_C2F2
  11919.  
  11920.                 ld      hl, (word_D1F8)
  11921.                 bit     7, l
  11922.                 call    z, sub_C2F2
  11923.  
  11924.                 call    sub_C06D
  11925.  
  11926.                 exx
  11927.                 bit     4, b
  11928.                 jp      z, loc_C0A0
  11929.  
  11930.  
  11931. loc_BCAE:                               ; CODE XREF: sub_BC00+541
  11932.                 bit     6, b
  11933.                 jr      nz, loc_BCC1
  11934.  
  11935.                 ld      l, (ix+1)
  11936.                 res     7, l
  11937.                 dec     h
  11938.                 ld      l, (hl)
  11939.                 inc     h
  11940.                 bit     2, l
  11941.                 jr      z, loc_BCC1
  11942.  
  11943.                 inc     l
  11944.                 set     1, (hl)
  11945.  
  11946.  
  11947. loc_BCC1:                               ; CODE XREF: sub_BC00+B0 sub_BC00+BC
  11948.                 bit     3, b
  11949.                 jp      z, loc_BCD2
  11950.  
  11951.                 exx
  11952.                 ld      a, (byte_D04C)
  11953.                 or      a
  11954.                 jr      nz, loc_BCCF
  11955.  
  11956.                 sra     e
  11957.  
  11958.  
  11959. loc_BCCF:                               ; CODE XREF: sub_BC00+CB
  11960.                 sra     e
  11961.                 exx
  11962.  
  11963.  
  11964. loc_BCD2:                               ; CODE XREF: sub_BC00+C3
  11965.                 bit     5, b
  11966.                 exx
  11967.                 call    nz, sub_C6C4
  11968.  
  11969.                 ex      af, af' ;'
  11970.                 sra     a
  11971.                 sra     a
  11972.                 add     a, e
  11973.                 ld      e, a
  11974.                 ld      hl, 0
  11975.                 ld      (word_D039), hl
  11976.                 ld      hl, (word_D18A)
  11977.                 ld      a, h
  11978.                 or      l
  11979.                 jr      z, loc_BCF8
  11980.  
  11981.                 ld      bc, (word_D18C)
  11982.                 ld      a, 9
  11983.                 call    sub_C3A3
  11984.  
  11985.                 ld      (word_D18A), hl
  11986.  
  11987.  
  11988. loc_BCF8:                               ; CODE XREF: sub_BC00+EA
  11989.                 ld      (word_D18C), hl
  11990.                 ld      hl, (word_D192)
  11991.                 ld      a, h
  11992.                 or      l
  11993.                 jr      z, loc_BD0E
  11994.  
  11995.                 ld      bc, (word_D194)
  11996.                 ld      a, 5
  11997.                 call    sub_C3A3
  11998.  
  11999.                 ld      (word_D192), hl
  12000.  
  12001.  
  12002. loc_BD0E:                               ; CODE XREF: sub_BC00+100
  12003.                 ld      (word_D194), hl
  12004.                 ld      hl, (word_D19A)
  12005.                 ld      a, h
  12006.                 or      l
  12007.                 jr      z, loc_BD24
  12008.  
  12009.                 ld      bc, (word_D19C)
  12010.                 ld      a, 5
  12011.                 call    sub_C3A3
  12012.  
  12013.                 ld      (word_D19A), hl
  12014.  
  12015.  
  12016. loc_BD24:                               ; CODE XREF: sub_BC00+116
  12017.                 ld      (word_D19C), hl
  12018.                 ld      hl, (word_D1A2)
  12019.                 ld      a, h
  12020.                 or      l
  12021.                 jr      z, loc_BD3A
  12022.  
  12023.                 ld      bc, (word_D1A4)
  12024.                 ld      a, 3
  12025.                 call    sub_C3A3
  12026.  
  12027.                 ld      (word_D1A2), hl
  12028.  
  12029.  
  12030. loc_BD3A:                               ; CODE XREF: sub_BC00+12C
  12031.                 ld      (word_D1A4), hl
  12032.                 ld      hl, (word_D1AA)
  12033.                 ld      a, h
  12034.                 or      l
  12035.                 jr      z, loc_BD50
  12036.  
  12037.                 ld      bc, (word_D1AC)
  12038.                 ld      a, 3
  12039.                 call    sub_C3A3
  12040.  
  12041.                 ld      (word_D1AA), hl
  12042.  
  12043.  
  12044. loc_BD50:                               ; CODE XREF: sub_BC00+142
  12045.                 ld      (word_D1AC), hl
  12046.                 ld      hl, (word_D1B2)
  12047.                 ld      a, h
  12048.                 or      l
  12049.                 jr      z, loc_BD66
  12050.  
  12051.                 ld      bc, (word_D1B4)
  12052.                 ld      a, 3
  12053.                 call    sub_C3A3
  12054.  
  12055.                 ld      (word_D1B2), hl
  12056.  
  12057.  
  12058. loc_BD66:                               ; CODE XREF: sub_BC00+158
  12059.                 ld      (word_D1B4), hl
  12060.                 ld      hl, (word_D1BA)
  12061.                 ld      a, h
  12062.                 or      l
  12063.                 jr      z, loc_BD7C
  12064.  
  12065.                 ld      bc, (word_D1BC)
  12066.                 ld      a, 3
  12067.                 call    sub_C3A3
  12068.  
  12069.                 ld      (word_D1BA), hl
  12070.  
  12071.  
  12072. loc_BD7C:                               ; CODE XREF: sub_BC00+16E
  12073.                 ld      (word_D1BC), hl
  12074.                 ld      hl, (word_D1C2)
  12075.                 ld      a, h
  12076.                 or      l
  12077.                 jr      z, loc_BD93
  12078.  
  12079.                 ld      bc, (word_D1C4)
  12080.                 ld      a, (word_D1C0+1)
  12081.                 call    sub_C3A1
  12082.  
  12083.                 ld      (word_D1C2), hl
  12084.  
  12085.  
  12086. loc_BD93:                               ; CODE XREF: sub_BC00+184
  12087.                 ld      (word_D1C4), hl
  12088.                 ld      hl, (word_D1CA)
  12089.                 ld      a, h
  12090.                 or      l
  12091.                 jr      z, loc_BDAA
  12092.  
  12093.                 ld      bc, (word_D1CC)
  12094.                 ld      a, (word_D1C8+1)
  12095.                 call    sub_C3A1
  12096.  
  12097.                 ld      (word_D1CA), hl
  12098.  
  12099.  
  12100. loc_BDAA:                               ; CODE XREF: sub_BC00+19B
  12101.                 ld      (word_D1CC), hl
  12102.                 ld      hl, (word_D1D2)
  12103.                 ld      a, h
  12104.                 or      l
  12105.                 jr      z, loc_BDC1
  12106.  
  12107.                 ld      bc, (word_D1D4)
  12108.                 ld      a, (word_D1D0+1)
  12109.                 call    sub_C3A1
  12110.  
  12111.                 ld      (word_D1D2), hl
  12112.  
  12113.  
  12114. loc_BDC1:                               ; CODE XREF: sub_BC00+1B2
  12115.                 ld      (word_D1D4), hl
  12116.                 ld      hl, (word_D1DA)
  12117.                 ld      a, h
  12118.                 or      l
  12119.                 jr      z, loc_BDD8
  12120.  
  12121.                 ld      bc, (word_D1DC)
  12122.                 ld      a, (word_D1D8+1)
  12123.                 call    sub_C3A1
  12124.  
  12125.                 ld      (word_D1DA), hl
  12126.  
  12127.  
  12128. loc_BDD8:                               ; CODE XREF: sub_BC00+1C9
  12129.                 ld      (word_D1DC), hl
  12130.                 ld      hl, (word_D1E2)
  12131.                 ld      a, h
  12132.                 or      l
  12133.                 jr      z, loc_BDEF
  12134.  
  12135.                 ld      bc, (word_D1E4)
  12136.                 ld      a, (word_D1E0+1)
  12137.                 call    sub_C3A1
  12138.  
  12139.                 ld      (word_D1E2), hl
  12140.  
  12141.  
  12142. loc_BDEF:                               ; CODE XREF: sub_BC00+1E0
  12143.                 ld      (word_D1E4), hl
  12144.                 ld      hl, (word_D1EA)
  12145.                 ld      a, h
  12146.                 or      l
  12147.                 jr      z, loc_BE06
  12148.  
  12149.                 ld      bc, (word_D1EC)
  12150.                 ld      a, (word_D1E8+1)
  12151.                 call    sub_C3A1
  12152.  
  12153.                 ld      (word_D1EA), hl
  12154.  
  12155.  
  12156. loc_BE06:                               ; CODE XREF: sub_BC00+1F7
  12157.                 ld      (word_D1EC), hl
  12158.                 ld      hl, (word_D1F2)
  12159.                 ld      a, h
  12160.                 or      l
  12161.                 jr      z, loc_BE1D
  12162.  
  12163.                 ld      bc, (word_D1F4)
  12164.                 ld      a, (word_D1F0+1)
  12165.                 call    sub_C3A1
  12166.  
  12167.                 ld      (word_D1F2), hl
  12168.  
  12169.  
  12170. loc_BE1D:                               ; CODE XREF: sub_BC00+20E
  12171.                 ld      (word_D1F4), hl
  12172.                 ld      hl, (word_D1FA)
  12173.                 ld      a, h
  12174.                 or      l
  12175.                 jr      z, loc_BE34
  12176.  
  12177.                 ld      bc, (word_D1FC)
  12178.                 ld      a, (word_D1F8+1)
  12179.                 call    sub_C3A1
  12180.  
  12181.                 ld      (word_D1FA), hl
  12182.  
  12183.  
  12184. loc_BE34:                               ; CODE XREF: sub_BC00+225
  12185.                 ld      (word_D1FC), hl
  12186.                 xor     a
  12187.                 sub     e
  12188.                 ld      e, a
  12189.                 ld      hl, (word_D039)
  12190.                 push    hl
  12191.                 ld      hl, 0
  12192.                 ld      (word_D039), hl
  12193.                 ld      hl, (word_D10A)
  12194.                 ld      a, h
  12195.                 or      l
  12196.                 jr      z, loc_BE57
  12197.  
  12198.                 ld      bc, (word_D10C)
  12199.                 ld      a, 9
  12200.                 call    sub_C3A3
  12201.  
  12202.                 ld      (word_D10A), hl
  12203.  
  12204.  
  12205. loc_BE57:                               ; CODE XREF: sub_BC00+249
  12206.                 ld      (word_D10C), hl
  12207.                 ld      hl, (word_D112)
  12208.                 ld      a, h
  12209.                 or      l
  12210.                 jr      z, loc_BE6D
  12211.  
  12212.                 ld      bc, (word_D114)
  12213.                 ld      a, 5
  12214.                 call    sub_C3A3
  12215.  
  12216.                 ld      (word_D112), hl
  12217.  
  12218.  
  12219. loc_BE6D:                               ; CODE XREF: sub_BC00+25F
  12220.                 ld      (word_D114), hl
  12221.                 ld      hl, (word_D11A)
  12222.                 ld      a, h
  12223.                 or      l
  12224.                 jr      z, loc_BE83
  12225.  
  12226.                 ld      bc, (word_D11C)
  12227.                 ld      a, 5
  12228.                 call    sub_C3A3
  12229.  
  12230.                 ld      (word_D11A), hl
  12231.  
  12232.  
  12233. loc_BE83:                               ; CODE XREF: sub_BC00+275
  12234.                 ld      (word_D11C), hl
  12235.                 ld      hl, (word_D122)
  12236.                 ld      a, h
  12237.                 or      l
  12238.                 jr      z, loc_BE99
  12239.  
  12240.                 ld      bc, (word_D124)
  12241.                 ld      a, 3
  12242.                 call    sub_C3A3
  12243.  
  12244.                 ld      (word_D122), hl
  12245.  
  12246.  
  12247. loc_BE99:                               ; CODE XREF: sub_BC00+28B
  12248.                 ld      (word_D124), hl
  12249.                 ld      hl, (word_D12A)
  12250.                 ld      a, h
  12251.                 or      l
  12252.                 jr      z, loc_BEAF
  12253.  
  12254.                 ld      bc, (word_D12C)
  12255.                 ld      a, 3
  12256.                 call    sub_C3A3
  12257.  
  12258.                 ld      (word_D12A), hl
  12259.  
  12260.  
  12261. loc_BEAF:                               ; CODE XREF: sub_BC00+2A1
  12262.                 ld      (word_D12C), hl
  12263.                 ld      hl, (word_D132)
  12264.                 ld      a, h
  12265.                 or      l
  12266.                 jr      z, loc_BEC5
  12267.  
  12268.                 ld      bc, (word_D134)
  12269.                 ld      a, 3
  12270.                 call    sub_C3A3
  12271.  
  12272.                 ld      (word_D132), hl
  12273.  
  12274.  
  12275. loc_BEC5:                               ; CODE XREF: sub_BC00+2B7
  12276.                 ld      (word_D134), hl
  12277.                 ld      hl, (word_D13A)
  12278.                 ld      a, h
  12279.                 or      l
  12280.                 jr      z, loc_BEDB
  12281.  
  12282.                 ld      bc, (word_D13C)
  12283.                 ld      a, 3
  12284.                 call    sub_C3A3
  12285.  
  12286.                 ld      (word_D13A), hl
  12287.  
  12288.  
  12289. loc_BEDB:                               ; CODE XREF: sub_BC00+2CD
  12290.                 ld      (word_D13C), hl
  12291.                 ld      hl, (word_D142)
  12292.                 ld      a, h
  12293.                 or      l
  12294.                 jr      z, loc_BEF2
  12295.  
  12296.                 ld      bc, (word_D144)
  12297.                 ld      a, (byte_D141)
  12298.                 call    sub_C3A1
  12299.  
  12300.                 ld      (word_D142), hl
  12301.  
  12302.  
  12303. loc_BEF2:                               ; CODE XREF: sub_BC00+2E3
  12304.                 ld      (word_D144), hl
  12305.                 ld      hl, (word_D14A)
  12306.                 ld      a, h
  12307.                 or      l
  12308.                 jr      z, loc_BF09
  12309.  
  12310.                 ld      bc, (word_D14C)
  12311.                 ld      a, (byte_D149)
  12312.                 call    sub_C3A1
  12313.  
  12314.                 ld      (word_D14A), hl
  12315.  
  12316.  
  12317. loc_BF09:                               ; CODE XREF: sub_BC00+2FA
  12318.                 ld      (word_D14C), hl
  12319.                 ld      hl, (word_D152)
  12320.                 ld      a, h
  12321.                 or      l
  12322.                 jr      z, loc_BF20
  12323.  
  12324.                 ld      bc, (word_D154)
  12325.                 ld      a, (byte_D151)
  12326.                 call    sub_C3A1
  12327.  
  12328.                 ld      (word_D152), hl
  12329.  
  12330.  
  12331. loc_BF20:                               ; CODE XREF: sub_BC00+311
  12332.                 ld      (word_D154), hl
  12333.                 ld      hl, (word_D15A)
  12334.                 ld      a, h
  12335.                 or      l
  12336.                 jr      z, loc_BF37
  12337.  
  12338.                 ld      bc, (word_D15C)
  12339.                 ld      a, (byte_D159)
  12340.                 call    sub_C3A1
  12341.  
  12342.                 ld      (word_D15A), hl
  12343.  
  12344.  
  12345. loc_BF37:                               ; CODE XREF: sub_BC00+328
  12346.                 ld      (word_D15C), hl
  12347.                 ld      hl, (word_D162)
  12348.                 ld      a, h
  12349.                 or      l
  12350.                 jr      z, loc_BF4E
  12351.  
  12352.                 ld      bc, (word_D164)
  12353.                 ld      a, (byte_D161)
  12354.                 call    sub_C3A1
  12355.  
  12356.                 ld      (word_D162), hl
  12357.  
  12358.  
  12359. loc_BF4E:                               ; CODE XREF: sub_BC00+33F
  12360.                 ld      (word_D164), hl
  12361.                 ld      hl, (word_D16A)
  12362.                 ld      a, h
  12363.                 or      l
  12364.                 jr      z, loc_BF65
  12365.  
  12366.                 ld      bc, (word_D16C)
  12367.                 ld      a, (byte_D169)
  12368.                 call    sub_C3A1
  12369.  
  12370.                 ld      (word_D16A), hl
  12371.  
  12372.  
  12373. loc_BF65:                               ; CODE XREF: sub_BC00+356
  12374.                 ld      (word_D16C), hl
  12375.                 ld      hl, (word_D172)
  12376.                 ld      a, h
  12377.                 or      l
  12378.                 jr      z, loc_BF7C
  12379.  
  12380.                 ld      bc, (word_D174)
  12381.                 ld      a, (byte_D171)
  12382.                 call    sub_C3A1
  12383.  
  12384.                 ld      (word_D172), hl
  12385.  
  12386.  
  12387. loc_BF7C:                               ; CODE XREF: sub_BC00+36D
  12388.                 ld      (word_D174), hl
  12389.                 ld      hl, (word_D17A)
  12390.                 ld      a, h
  12391.                 or      l
  12392.                 jr      z, loc_BF93
  12393.  
  12394.                 ld      bc, (word_D17C)
  12395.                 ld      a, (byte_D179)
  12396.                 call    sub_C3A1
  12397.  
  12398.                 ld      (word_D17A), hl
  12399.  
  12400.  
  12401. loc_BF93:                               ; CODE XREF: sub_BC00+384
  12402.                 ld      (word_D17C), hl
  12403.                 ld      b, e
  12404.                 pop     de
  12405.                 ld      hl, (word_D039)
  12406.                 ld      a, (byte_D02D)
  12407.                 rra
  12408.                 jr      nc, loc_BFAB
  12409.  
  12410.                 xor     a
  12411.                 sub     b
  12412.                 ld      b, a
  12413.                 ex      de, hl
  12414.                 ld      a, (word_D00D)
  12415.                 jp      loc_BFB0
  12416.  
  12417. ; ---------------------------------------------------------------------------
  12418.  
  12419. loc_BFAB:                               ; CODE XREF: sub_BC00+39F
  12420.                 ld      a, (word_D00D)
  12421.                 neg
  12422.  
  12423.  
  12424. loc_BFB0:                               ; CODE XREF: sub_BC00+3A8
  12425.                 sub     l
  12426.                 add     a, a
  12427.                 dec     l
  12428.                 jp      m, loc_BFD4
  12429.  
  12430.                 set     1, (ix+2)
  12431.                 ex      af, af' ;'
  12432.                 ld      a, l
  12433.                 inc     a
  12434.                 sub     e
  12435.                 jp      m, loc_BFCC
  12436.  
  12437.                 ld      a, (byte_D07A)
  12438.                 sub     2
  12439.                 push    hl
  12440.                 ld      l, a
  12441.                 ld      h, word_D100/256
  12442.                 ld      a, (hl)
  12443.                 pop     hl
  12444.  
  12445.  
  12446. loc_BFCC:                               ; CODE XREF: sub_BC00+3BE
  12447.                 ld      (byte_D07A), a
  12448.                 ex      af, af' ;'
  12449.                 jr      z, loc_BFD3
  12450.  
  12451.                 dec     a
  12452.  
  12453.  
  12454. loc_BFD3:                               ; CODE XREF: sub_BC00+3D0
  12455.                 sub     h
  12456.  
  12457.  
  12458. loc_BFD4:                               ; CODE XREF: sub_BC00+3B3
  12459.                 inc     l
  12460.                 dec     e
  12461.                 jp      m, loc_C002
  12462.  
  12463.                 ex      af, af' ;'
  12464.                 ld      a, (byte_D01D)
  12465.                 bit     1, a
  12466.                 jr      nz, loc_BFE5
  12467.  
  12468.                 set     6, (ix+2)
  12469.  
  12470.  
  12471. loc_BFE5:                               ; CODE XREF: sub_BC00+3DF
  12472.                 bit     2, (ix+2)
  12473.                 jr      nz, loc_C001
  12474.  
  12475.                 inc     b
  12476.                 inc     b
  12477.                 dec     d
  12478.                 jp      m, loc_C001
  12479.  
  12480.                 and     #C9 ; 'Й'
  12481.                 jr      z, loc_BFF9
  12482.  
  12483.                 set     6, (ix+2)
  12484.  
  12485.  
  12486. loc_BFF9:                               ; CODE XREF: sub_BC00+3F3
  12487.                 inc     b
  12488.                 inc     b
  12489.                 dec     d
  12490.                 jp      m, loc_C001
  12491.  
  12492.                 inc     b
  12493.                 inc     b
  12494.  
  12495.  
  12496. loc_C001:                               ; CODE XREF: sub_BC00+3E9
  12497.                                         ; sub_BC00+3EE ...
  12498.                 ex      af, af' ;'
  12499.  
  12500.  
  12501. loc_C002:                               ; CODE XREF: sub_BC00+3D6
  12502.                 cp      #18
  12503.                 jr      c, loc_C016
  12504.  
  12505.                 cp      #E9 ; 'й'
  12506.                 jp      nc, loc_C016
  12507.  
  12508.                 rla
  12509.                 ld      a, 3
  12510.                 ld      b, a
  12511.                 ld      c, a
  12512.                 ret     c
  12513.                 ld      a, #FC  ; 'ь'
  12514.                 ld      b, a
  12515.                 ld      c, a
  12516.                 ret
  12517.  
  12518. ; ---------------------------------------------------------------------------
  12519.  
  12520. loc_C016:                               ; CODE XREF: sub_BC00+404
  12521.                                         ; sub_BC00+408
  12522.                 add     a, a
  12523.                 add     a, a
  12524.                 ld      c, a
  12525.                 ld      a, b
  12526.                 sra     a
  12527.                 cp      #22 ; '"'
  12528.                 jr      c, loc_C02B
  12529.  
  12530.                 cp      #DF ; 'Я'
  12531.                 jr      nc, loc_C02B
  12532.  
  12533.                 rla
  12534.                 ld      a, #21 ; '!'
  12535.                 jr      nc, loc_C02B
  12536.  
  12537.                 ld      a, #DF  ; 'Я'
  12538.  
  12539.  
  12540. loc_C02B:                               ; CODE XREF: sub_BC00+41E
  12541.                                         ; sub_BC00+422 ...
  12542.                 add     a, c
  12543.                 add     a, #80 ; '?'
  12544.                 ld      c, a
  12545.                 ld      b, a
  12546.                 ld      a, (byte_D03B)
  12547.                 rla
  12548.                 jr      c, loc_C049
  12549.  
  12550.  
  12551. loc_C036:                               ; CODE XREF: sub_BC00+459
  12552.                 ld      a, c
  12553.                 bit     6, (ix+2)
  12554.                 ret     z
  12555.                 inc     e
  12556.                 ret     z
  12557.                 rlc     e
  12558.                 rl      e
  12559.                 add     a, e
  12560.                 ld      b, a
  12561.                 ld      a, c
  12562.                 ret     nc
  12563.                 ld      b, #FE  ; 'ю'
  12564.                 ret
  12565.  
  12566. ; ---------------------------------------------------------------------------
  12567.  
  12568. loc_C049:                               ; CODE XREF: sub_BC00+434
  12569.                 rla
  12570.                 ld      a, (byte_D02D)
  12571.                 jr      c, loc_C062
  12572.  
  12573.                 rra
  12574.                 ld      a, (byte_D01E)
  12575.                 jr      nc, loc_C056
  12576.  
  12577.                 cpl
  12578.  
  12579.  
  12580. loc_C056:                               ; CODE XREF: sub_BC00+453
  12581.                 adc     a, #80 ; '?'
  12582.                 cp      c
  12583.                 jr      nc, loc_C036
  12584.  
  12585.  
  12586. loc_C05B:                               ; CODE XREF: sub_BC00+46B
  12587.                 ld      c, a
  12588.                 ld      b, a
  12589.                 res     6, (ix+2)
  12590.                 ret
  12591.  
  12592. ; ---------------------------------------------------------------------------
  12593.  
  12594. loc_C062:                               ; CODE XREF: sub_BC00+44D
  12595.                 rra
  12596.                 ld      a, (byte_D01E)
  12597.                 jr      nc, loc_C069
  12598.  
  12599.                 cpl
  12600.  
  12601.  
  12602. loc_C069:                               ; CODE XREF: sub_BC00+466
  12603.                 adc     a, #80 ; '?'
  12604.                 jr      loc_C05B
  12605.  
  12606. ; End of function sub_BC00
  12607.  
  12608.  
  12609. ; =============== S U B R O U T I N E =======================================
  12610.  
  12611.  
  12612. sub_C06D:                               ; CODE XREF: sub_BC00+A5
  12613.                                         ; sub_BC00+525
  12614.                 ld      hl, array_D200
  12615.                 xor     a
  12616.                 ld      c, a
  12617.  
  12618.  
  12619. loc_C072:                               ; CODE XREF: sub_C06D+7 sub_C06D+27     ...
  12620.                 inc     l
  12621.                 or      (hl)
  12622.                 jr      z, loc_C072
  12623.  
  12624.                 ret     m
  12625.                 ld      (hl), c
  12626.  
  12627.  
  12628. loc_C078:                               ; CODE XREF: sub_C06D+12
  12629.                 dec     a
  12630.                 jp      z, loc_C082
  12631.  
  12632.                 dec     e
  12633.                 dec     e
  12634.                 dec     e
  12635.                 jp      loc_C078
  12636.  
  12637. ; ---------------------------------------------------------------------------
  12638.  
  12639. loc_C082:                               ; CODE XREF: sub_C06D+C
  12640.                 inc     l
  12641.                 or      (hl)
  12642.                 jr      z, loc_C09A
  12643.  
  12644.                 ret     m
  12645.  
  12646.  
  12647. loc_C087:                               ; CODE XREF: sub_C06D+29
  12648.                 ld      (hl), c
  12649.  
  12650.  
  12651. loc_C088:                               ; CODE XREF: sub_C06D+22
  12652.                 dec     a
  12653.                 jp      z, loc_C092
  12654.  
  12655.                 dec     e
  12656.                 dec     e
  12657.                 dec     e
  12658.                 jp      loc_C088
  12659.  
  12660. ; ---------------------------------------------------------------------------
  12661.  
  12662. loc_C092:                               ; CODE XREF: sub_C06D+1C
  12663.                 inc     l
  12664.                 or      (hl)
  12665.                 jr      z, loc_C072
  12666.  
  12667.                 jp      p, loc_C087
  12668.  
  12669.                 ret
  12670.  
  12671. ; ---------------------------------------------------------------------------
  12672.  
  12673. loc_C09A:                               ; CODE XREF: sub_C06D+17
  12674.                 dec     e
  12675.                 dec     e
  12676.                 dec     e
  12677.                 jp      loc_C072
  12678.  
  12679. ; End of function sub_C06D
  12680.  
  12681. ; ---------------------------------------------------------------------------
  12682. ; START OF FUNCTION CHUNK FOR sub_BC00
  12683.  
  12684. loc_C0A0:                               ; CODE XREF: sub_BC00+AB
  12685.                 ld      a, #90 ; '?'
  12686.                 add     a, b
  12687.                 ld      b, a
  12688.                 exx
  12689.                 xor     a
  12690.                 sub     e
  12691.                 ld      e, a
  12692.                 ld      h, BRD_88_0/256
  12693.                 ex      af, af' ;'
  12694.                 neg
  12695.                 ex      af, af' ;'
  12696.  
  12697.  
  12698. loc_C0AE:                               ; CODE XREF: sub_BC00+2B
  12699.                 ld      a, (byte_D108)
  12700.                 ld      d, #88
  12701.                 or      a
  12702.                 call    p, sub_C48D ;проверяем поля по ходу ферзя?
  12703.  
  12704.                 ld      a, (byte_D110)
  12705.                 or      a
  12706.                 call    p, sub_C498 ;что-то делаем и проверяем поля по ходу ладьи?
  12707.  
  12708.                 ld      a, (byte_D118)
  12709.                 or      a
  12710.                 call    p, sub_C498 ;что-то делаем и проверяем поля по ходу ладьи?
  12711.  
  12712.                 ld      a, (byte_D120)
  12713.                 or      a
  12714.                 call    p, sub_C5C4 ;что-то делаем и проверяем поля по ходу слона?
  12715.  
  12716.                 ld      a, (byte_D128)
  12717.                 or      a
  12718.                 call    p, sub_C5C4 ;что-то делаем и проверяем поля по ходу слона?
  12719.  
  12720.                 ld      a, (byte_D130)
  12721.                 or      a
  12722.                 call    p, sub_C512 ;что-то делаем и проверяем поля по ходу коня
  12723.  
  12724.                 ld      a, (byte_D138)
  12725.                 or      a
  12726.                 call    p, sub_C512 ;что-то делаем и проверяем поля по ходу коня
  12727.  
  12728.                 ld      d, #11
  12729.                 ld      b, array_D200/256
  12730.                 ld      hl, (unk_D140)
  12731.                 bit     7, l
  12732.                 call    z, sub_C2F2
  12733.  
  12734.                 ld      hl, (unk_D148)
  12735.                 bit     7, l
  12736.                 call    z, sub_C2F2
  12737.  
  12738.                 ld      hl, (unk_D150)
  12739.                 bit     7, l
  12740.                 call    z, sub_C2F2
  12741.  
  12742.                 ld      hl, (unk_D158)
  12743.                 bit     7, l
  12744.                 call    z, sub_C2EA
  12745.  
  12746.                 ld      hl, (unk_D160)
  12747.                 bit     7, l
  12748.                 call    z, sub_C2EA
  12749.  
  12750.                 ld      hl, (unk_D168)
  12751.                 bit     7, l
  12752.                 call    z, sub_C2F2
  12753.  
  12754.                 ld      hl, (unk_D170)
  12755.                 bit     7, l
  12756.                 call    z, sub_C2F2
  12757.  
  12758.                 ld      hl, (unk_D178)
  12759.                 bit     7, l
  12760.                 call    z, sub_C2F2
  12761.  
  12762.                 call    sub_C06D
  12763.  
  12764.                 ld      hl, (word_D100)
  12765.                 call    sub_C1EF ;что-то делаем и проверяем поля вокруг ;out: Z=пусто, A' прибавляет 12 на каждом занятом
  12766.  
  12767.                 ex      af, af' ;'
  12768.                 neg
  12769.                 ex      af, af' ;'
  12770.                 xor     a
  12771.                 sub     e
  12772.                 ld      e, a
  12773.                 ld      hl, (word_D180)
  12774.                 exx
  12775.                 set     7, b
  12776.                 call    sub_C1F4 ;что-то делаем и проверяем поля вокруг ;out: Z=пусто, A' прибавляет 12 на каждом занятом
  12777.  
  12778.                 exx
  12779.                 bit     4, b
  12780.                 jp      nz, loc_BCAE
  12781.  
  12782.                 set     4, b
  12783.                 exx
  12784.                 jp      loc_BC2E
  12785.  
  12786. ; END OF FUNCTION CHUNK FOR sub_BC00
  12787. ; ---------------------------------------------------------------------------
  12788. ; START OF FUNCTION CHUNK FOR sub_C1F4
  12789.  
  12790. loc_C14A:                               ; CODE XREF: sub_C1F4-1B
  12791.                 or      a
  12792.                 jp      nz, loc_C1E6
  12793.  
  12794.                 ld      a, d
  12795.                 or      a
  12796.                 jr      nz, loc_C155
  12797.  
  12798.                 sub     #A
  12799.                 ld      d, a
  12800.  
  12801.  
  12802. loc_C155:                               ; CODE XREF: sub_C1F4-A4
  12803.                 ld      a, 7
  12804.                 and     l
  12805.                 inc     a
  12806.                 rra
  12807.                 cp      2
  12808.                 jr      z, loc_C169
  12809.  
  12810.                 ld      a, #70 ; 'p'
  12811.                 and     l
  12812.                 cp      #30 ; '0'
  12813.                 jr      z, loc_C169
  12814.  
  12815.                 cp      #40 ; '@'
  12816.                 jr      nz, loc_C16F
  12817.  
  12818.  
  12819. loc_C169:                               ; CODE XREF: sub_C1F4-98 sub_C1F4-91
  12820.                 ex      af, af' ;'
  12821.                 add     a, #10
  12822.                 jp      loc_C1E7
  12823.  
  12824. ; ---------------------------------------------------------------------------
  12825.  
  12826. loc_C16F:                               ; CODE XREF: sub_C1F4-8D
  12827.                 ld      a, 7
  12828.                 and     l
  12829.                 cp      2
  12830.                 jr      z, loc_C185
  12831.  
  12832.                 cp      5
  12833.                 jr      z, loc_C185
  12834.  
  12835.                 ld      a, #70 ; 'p'
  12836.                 and     l
  12837.                 cp      #20 ; ' '
  12838.                 jr      z, loc_C185
  12839.  
  12840.                 cp      #50 ; 'P'
  12841.                 jr      nz, loc_C1E6
  12842.  
  12843.  
  12844. loc_C185:                               ; CODE XREF: sub_C1F4-80 sub_C1F4-7C ...
  12845.                 ex      af, af' ;'
  12846.                 add     a, 8
  12847.                 jp      loc_C1E7
  12848.  
  12849. ; END OF FUNCTION CHUNK FOR sub_C1F4
  12850. ; ---------------------------------------------------------------------------
  12851. ; START OF FUNCTION CHUNK FOR sub_C1EF
  12852.  
  12853. loc_C18B:                               ; CODE XREF: sub_C1EF+3
  12854. ;что-то делаем и проверяем поля вокруг ;out: Z=пусто, A' прибавляет 12 на каждом занятом
  12855.                 ld      a, (byte_D049) ;move #
  12856.                 cpl
  12857.                 add     a, #B
  12858.                 exx
  12859.                 ld      c, a
  12860.                 ld      a, (byte_D189)
  12861.                 bit     4, a
  12862.                 jr      z, loc_C1A4
  12863.  
  12864.                 ld      a, (byte_D188)
  12865.                 or      a
  12866.                 jp      m, loc_C1A4
  12867.  
  12868.                 ld      a, e
  12869.                 add     a, c
  12870.                 ld      e, a
  12871.  
  12872.  
  12873. loc_C1A4:                               ; CODE XREF: sub_C1EF-57 sub_C1EF-51
  12874.                 ld      a, (byte_D109)
  12875.                 bit     4, a
  12876.                 jr      z, loc_C1B5
  12877.  
  12878.                 ld      a, (byte_D108)
  12879.                 or      a
  12880.                 jp      m, loc_C1B5
  12881.  
  12882.                 ld      a, e
  12883.                 sub     c
  12884.                 ld      e, a
  12885.  
  12886.  
  12887. loc_C1B5:                               ; CODE XREF: sub_C1EF-46 sub_C1EF-40
  12888.                 exx
  12889.                 jp      sub_C1F4 ;что-то делаем и проверяем поля вокруг ;out: Z=пусто, A' прибавляет 12 на каждом занятом
  12890.  
  12891. ; END OF FUNCTION CHUNK FOR sub_C1EF
  12892. ; ---------------------------------------------------------------------------
  12893. ; START OF FUNCTION CHUNK FOR sub_C1F4
  12894.  
  12895. loc_C1B9:                               ; CODE XREF: sub_C1F4+4
  12896.                 bit     3, a
  12897.                 jr      nz, loc_C1C5
  12898.  
  12899.                 ld      h, BRD_88_0/256
  12900.                 ld      b, l
  12901.                 ld      c, 8
  12902.                 jp      loc_C21E ;проверяем поля вокруг
  12903.  
  12904. ; ---------------------------------------------------------------------------
  12905.  
  12906. loc_C1C5:                               ; CODE XREF: sub_C1F4-39
  12907.                 ld      b, a
  12908.                 ld      c, 4
  12909.                 ld      a, #C0  ; 'А'
  12910.                 and     h
  12911.                 rra
  12912.                 rra
  12913.                 rra
  12914.                 ld      d, a
  12915.                 ld      a, (byte_D01E)
  12916.                 or      a
  12917.                 jr      z, loc_C1DC
  12918.  
  12919.                 xor     b
  12920.                 ld      a, (byte_D04C)
  12921.                 jp      p, loc_C14A
  12922.  
  12923.  
  12924. loc_C1DC:                               ; CODE XREF: sub_C1F4-21
  12925.                 rr      d
  12926.                 or      a
  12927.                 jr      nz, loc_C1E6
  12928.  
  12929.                 ld      a, #C0  ; 'А'
  12930.                 and     h
  12931.                 jr      nz, loc_C185
  12932.  
  12933.  
  12934. loc_C1E6:                               ; CODE XREF: sub_C1F4-A9 sub_C1F4-71 ...
  12935.                 ex      af, af' ;'
  12936.  
  12937.  
  12938. loc_C1E7:                               ; CODE XREF: sub_C1F4-88 sub_C1F4-6C
  12939.                 add     a, d
  12940.                 ex      af, af' ;'
  12941.                 ld      h, BRD_88_0/256
  12942.                 ld      b, l
  12943.                 jp      loc_C21E ;проверяем поля вокруг
  12944.  
  12945. ; END OF FUNCTION CHUNK FOR sub_C1F4
  12946.  
  12947. ; =============== S U B R O U T I N E =======================================
  12948.  
  12949.  
  12950. sub_C1EF:                               ; CODE XREF: sub_BC00+52B
  12951.  
  12952. ; FUNCTION CHUNK AT C18B SIZE 0000002E BYTES
  12953.  
  12954.                 exx
  12955.                 bit     0, b
  12956.                 jr      z, loc_C18B ;что-то делаем и проверяем поля вокруг ;out: Z=пусто, A' прибавляет 12 на каждом занятом
  12957.  
  12958. ; End of function sub_C1EF
  12959.  
  12960.  
  12961. ; =============== S U B R O U T I N E =======================================
  12962.  
  12963.  
  12964. sub_C1F4:                               ; CODE XREF: sub_BC00+53B
  12965.                                         ; sub_C1EF-39
  12966. ;L' = поле
  12967. ;B = ?
  12968. ; FUNCTION CHUNK AT C14A SIZE 00000041 BYTES
  12969. ; FUNCTION CHUNK AT C1B9 SIZE 00000036 BYTES
  12970. ; FUNCTION CHUNK AT C26D SIZE 0000001F BYTES
  12971. ; FUNCTION CHUNK AT C28F SIZE 00000006 BYTES
  12972. ; FUNCTION CHUNK AT C298 SIZE 0000000E BYTES
  12973.  
  12974.                 ld      a, b
  12975.                 exx
  12976.                 bit     2, a
  12977.                 jr      nz, loc_C1B9
  12978.  
  12979.                 bit     5, h
  12980.                 jp      z, loc_C27F
  12981.  
  12982.                 ld      a, #C0  ; 'А'
  12983.                 and     h
  12984.                 jr      nz, loc_C26D
  12985.  
  12986.                 ld      c, #C
  12987.                 ld      b, l
  12988.                 ld      h, BRD_88_0/256
  12989.                 ld      a, #1F
  12990.                 add     a, b
  12991.                 jp      p, loc_C211
  12992.  
  12993.                 sub     #40 ; '@'
  12994.  
  12995.  
  12996. loc_C211:                               ; CODE XREF: sub_C1F4+18
  12997.                 ld      l, a
  12998.                 ld      a, (hl)
  12999.                 inc     l
  13000.                 or      (hl)
  13001.                 inc     l
  13002.                 or      (hl)
  13003.                 bit     6, a
  13004.                 jr      nz, loc_C21D
  13005.  
  13006.                 dec     e
  13007.                 dec     e
  13008.  
  13009.  
  13010. loc_C21D:                               ; CODE XREF: sub_C1F4+25
  13011.                 ld      l, b
  13012.  
  13013.  
  13014. loc_C21E:                               ; CODE XREF: sub_C1F4-32 sub_C1F4-8     ...
  13015. ;проверяем поля вокруг ;out: Z=пусто, A' прибавляет C на каждом занятом
  13016.                 dec     l
  13017.                 xor     a
  13018.                 or      (hl) ;левее
  13019.                 call    nz, sub_C254
  13020.  
  13021.                 inc     l
  13022.                 inc     l
  13023.                 or      (hl) ;правее
  13024.                 call    nz, sub_C254
  13025.  
  13026.                 ld      a, #10
  13027.                 add     a, b
  13028.                 jp      m, loc_C241 ;не смотрим ниже
  13029.  
  13030.                 ld      l, a
  13031.                 xor     a
  13032.                 or      (hl) ;ниже?
  13033.                 call    nz, sub_C254
  13034.  
  13035.                 inc     l
  13036.                 or      (hl) ;ниже правее?
  13037.                 call    nz, sub_C254
  13038.  
  13039.                 dec     l
  13040.                 dec     l
  13041.                 or      (hl) ;ниже левее?
  13042.                 call    nz, sub_C254
  13043.  
  13044.  
  13045. loc_C241:                               ; CODE XREF: sub_C1F4+39
  13046.                 ld      a, #F0  ; 'р'
  13047.                 add     a, b
  13048.                 ret     m ;не смотрим выше
  13049.                 ld      l, a
  13050.                 xor     a
  13051.                 or      (hl) ;выше?
  13052.                 call    nz, sub_C254
  13053.  
  13054.                 inc     l
  13055.                 or      (hl) ;выше левее?
  13056.                 call    nz, sub_C254
  13057.  
  13058.                 dec     l
  13059.                 dec     l
  13060.                 or      (hl) ;выше правее?
  13061.                 ret     z
  13062.  
  13063. ; End of function sub_C1F4
  13064.  
  13065.  
  13066. ; =============== S U B R O U T I N E =======================================
  13067.  
  13068.  
  13069. sub_C254:                               ; CODE XREF: sub_C1F4+2D sub_C1F4+33 ...
  13070.  
  13071. ; FUNCTION CHUNK AT C471 SIZE 0000001C BYTES
  13072.  
  13073.                 exx
  13074.                 ld      l, a ;код найденной фигуры?
  13075.                 inc     l
  13076.                 xor     b ;цвет фигур?
  13077.                 jp      p, loc_C263
  13078.  
  13079.                 ld      a, #78 ; 'x'
  13080.                 and     l
  13081.                 jp      z, loc_C471
  13082.  
  13083.                 dec     l
  13084.                 dec     l
  13085.  
  13086.  
  13087. loc_C263:                               ; CODE XREF: sub_C254+4
  13088.                 inc     (hl)
  13089.                 xor     a
  13090.                 bit     6, l
  13091.                 exx
  13092.                 ret     z
  13093.                 ex      af, af' ;'
  13094.                 add     a, c  ;0/4/8/12
  13095.                 ex      af, af' ;'
  13096.                 ret
  13097.  
  13098. ; End of function sub_C254
  13099.  
  13100. ; ---------------------------------------------------------------------------
  13101. ; START OF FUNCTION CHUNK FOR sub_C1F4
  13102.  
  13103. loc_C26D:                               ; CODE XREF: sub_C1F4+E sub_C1F4+AA
  13104.                 ld      c, 4
  13105.                 bit     7, h
  13106.                 jp      z, loc_C276
  13107.  
  13108.                 dec     e
  13109.                 dec     e
  13110.  
  13111.  
  13112. loc_C276:                               ; CODE XREF: sub_C1F4+7D
  13113.                 dec     e
  13114.                 dec     e
  13115.                 dec     e
  13116.                 ld      b, l
  13117.                 ld      h, BRD_88_0/256
  13118.                 jp      loc_C21E ;проверяем поля вокруг
  13119.  
  13120. ; ---------------------------------------------------------------------------
  13121.  
  13122. loc_C27F:                               ; CODE XREF: sub_C1F4+8
  13123.                 bit     4, h
  13124.                 jr      nz, loc_C28F
  13125.  
  13126.                 ld      h, BRD_88_0/256
  13127.                 ld      b, l
  13128.                 ld      c, 0
  13129.                 inc     e
  13130.                 jp      loc_C21E ;проверяем поля вокруг
  13131.                
  13132.  
  13133. ; END OF FUNCTION CHUNK FOR sub_C1F4
  13134. ; ---------------------------------------------------------------------------
  13135.                 rra                     ; dead code???
  13136.                 jr      nc, loc_C295
  13137.  
  13138. ; START OF FUNCTION CHUNK FOR sub_C1F4
  13139.  
  13140. loc_C28F:                               ; CODE XREF: sub_C1F4+8D
  13141.                 ld      a, e
  13142.                 sub     #C
  13143.                 jp      loc_C298        ;  jr???
  13144.  
  13145. ; END OF FUNCTION CHUNK FOR sub_C1F4
  13146. ; ---------------------------------------------------------------------------
  13147.  
  13148. loc_C295:                               ; CODE XREF: RAM:C28D
  13149.                 ld      a, e
  13150.                 sub     8
  13151.  
  13152. ; START OF FUNCTION CHUNK FOR sub_C1F4
  13153.  
  13154. loc_C298:                               ; CODE XREF: sub_C1F4+9E
  13155.                 ld      e, a
  13156.                 ld      c, 8
  13157.                 ld      a, #C0  ; 'А'
  13158.                 and     h
  13159.                 jr      nz, loc_C26D
  13160.  
  13161.                 ld      h, BRD_88_0/256
  13162.                 ld      b, l
  13163.                 jp      loc_C21E ;проверяем поля вокруг
  13164.  
  13165. ; END OF FUNCTION CHUNK FOR sub_C1F4
  13166. ; ---------------------------------------------------------------------------
  13167.  
  13168. loc_C2A6:                               ; DATA XREF: sub_BC00+23
  13169.                 srl     h
  13170.                 srl     h
  13171.                 ex      af, af' ;'
  13172.                 add     a, h
  13173.                 ex      af, af' ;'
  13174.                 bit     5, h
  13175.                 jp      z, loc_C313
  13176.  
  13177. ; START OF FUNCTION CHUNK FOR sub_C2F2
  13178.  
  13179. loc_C2B2:                               ; CODE XREF: sub_C2F2+1E
  13180.                 ld      h, BRD_88_0/256
  13181.                 dec     l
  13182.                 ld      a, (hl)
  13183.                 inc     l
  13184.                 or      a
  13185.                 jp      nz, loc_C315
  13186.  
  13187.                 set     6, (ix+2)
  13188.                 set     0, (ix+2)
  13189.                 ex      af, af' ;'
  13190.                 exx
  13191.                 bit     4, b
  13192.                 exx
  13193.                 jr      nz, loc_C2CC
  13194.  
  13195.                 add     a, #16
  13196.  
  13197.  
  13198. loc_C2CC:                               ; CODE XREF: sub_C2F2-2A
  13199.                 add     a, #E
  13200.                 ex      af, af' ;'
  13201.                 jp      loc_C315
  13202.  
  13203. ; END OF FUNCTION CHUNK FOR sub_C2F2
  13204. ; ---------------------------------------------------------------------------
  13205. ; START OF FUNCTION CHUNK FOR sub_C2EA
  13206.  
  13207. loc_C2D2:                               ; CODE XREF: sub_C2EA+5
  13208.                 ld      a, #E
  13209.                 and     h
  13210.                 jr      nz, loc_C33E
  13211.  
  13212.                 dec     e
  13213.                 ld      a, d
  13214.                 add     a, l
  13215.                 ld      l, a
  13216.                 dec     l
  13217.                 push    hl
  13218.                 ld      h, BRD_88_0/256
  13219.                 ld      a, (hl)
  13220.                 pop     hl
  13221.                 inc     l
  13222.                 or      a
  13223.                 ld      a, l
  13224.                 jr      z, loc_C2FB
  13225.  
  13226.                 dec     e
  13227.                 dec     e
  13228.                 jr      loc_C2FB
  13229.  
  13230. ; END OF FUNCTION CHUNK FOR sub_C2EA
  13231.  
  13232. ; =============== S U B R O U T I N E =======================================
  13233.  
  13234.  
  13235. sub_C2EA:                               ; CODE XREF: sub_BC00+82 sub_BC00+8A ...
  13236.  
  13237. ; FUNCTION CHUNK AT C2D2 SIZE 00000018 BYTES
  13238.  
  13239.                 ld      a, l
  13240.                 add     a, #20 ; ' '
  13241.                 bit     6, a
  13242.                 jr      z, loc_C2D2
  13243.  
  13244.                 inc     e
  13245.  
  13246. ; End of function sub_C2EA
  13247.  
  13248.  
  13249. ; =============== S U B R O U T I N E =======================================
  13250.  
  13251.  
  13252. sub_C2F2:                               ; CODE XREF: sub_BC00+6A sub_BC00+72 ...
  13253.  
  13254. ; FUNCTION CHUNK AT C2B2 SIZE 00000020 BYTES
  13255. ; FUNCTION CHUNK AT C362 SIZE 0000000C BYTES
  13256. ; FUNCTION CHUNK AT C467 SIZE 0000000A BYTES
  13257.  
  13258.                 inc     e
  13259.                 ld      a, #E
  13260.                 and     h
  13261.                 jr      nz, loc_C33E
  13262.  
  13263.                 ld      a, d
  13264.                 add     a, l
  13265.                 ld      l, a
  13266.  
  13267.  
  13268. loc_C2FB:                               ; CODE XREF: sub_C2EA-6 sub_C2EA-2
  13269.                 and     #F
  13270.                 ld      c, a
  13271.                 ld      a, (bc)
  13272.                 inc     a
  13273.                 ld      (bc), a
  13274.                 jp      (iy)
  13275.  
  13276. ; ---------------------------------------------------------------------------
  13277.  
  13278. loc_C303:                               ; DATA XREF: sub_BC00+1B
  13279.                 srl     h
  13280.                 jr      z, loc_C313
  13281.  
  13282.                 srl     h
  13283.                 srl     h
  13284.                 ex      af, af' ;'
  13285.                 add     a, h
  13286.                 ex      af, af' ;'
  13287.                 bit     4, h
  13288.                 jp      nz, loc_C2B2
  13289.  
  13290.  
  13291. loc_C313:                               ; CODE XREF: RAM:C2AF   sub_C2F2+13
  13292.                                         ; DATA XREF: ...
  13293.                 ld      h, BRD_88_0/256
  13294.  
  13295.  
  13296. loc_C315:                               ; CODE XREF: sub_C2F2-3A sub_C2F2-23
  13297.                 ld      a, (hl)
  13298.                 or      a
  13299.                 jp      z, loc_C32A
  13300.  
  13301.                 exx
  13302.                 ld      l, a
  13303.                 xor     b
  13304.                 jp      p, loc_C327
  13305.  
  13306.                 ld      a, #78 ; 'x'
  13307.                 and     l
  13308.                 jr      z, loc_C362
  13309.  
  13310.                 dec     l
  13311.                 dec     l
  13312.  
  13313.  
  13314. loc_C327:                               ; CODE XREF: sub_C2F2+2B
  13315.                 inc     (hl)
  13316.                 exx
  13317.                 xor     a
  13318.  
  13319.  
  13320. loc_C32A:                               ; CODE XREF: sub_C2F2+25
  13321.                 dec     l
  13322.                 dec     l
  13323.                 or      (hl)
  13324.                 ret     z
  13325.                 exx
  13326.                 ld      l, a
  13327.                 xor     b
  13328.                 jp      p, loc_C33B
  13329.  
  13330.                 ld      a, #78 ; 'x'
  13331.                 and     l
  13332.                 jr      z, loc_C362
  13333.  
  13334.                 dec     l
  13335.                 dec     l
  13336.  
  13337.  
  13338. loc_C33B:                               ; CODE XREF: sub_C2F2+3F
  13339.                 inc     (hl)
  13340.                 exx
  13341.                 ret
  13342.  
  13343. ; ---------------------------------------------------------------------------
  13344.  
  13345. loc_C33E:                               ; CODE XREF: sub_C2EA-15 sub_C2F2+4
  13346.                 push    bc
  13347.                 push    de
  13348.                 ld      bc, ret_C35D
  13349.                 push    bc
  13350.                 ld      c, h
  13351.                 ld      h, BRD_88_0/256
  13352.                 ld      d, #88
  13353.                 ld      a, l
  13354.                 bit     3, c
  13355.                 jp      nz, sub_C48D ;проверяем поля по ходу ферзя?
  13356.  
  13357.                 bit     2, c
  13358.                 jp      nz, sub_C498 ;что-то делаем и проверяем поля по ходу ладьи?
  13359.  
  13360.                 bit     7, c
  13361.                 ld      b, a
  13362.                 jp      nz, loc_C5D5
  13363.  
  13364.                 jp      loc_C517
  13365.  
  13366. ; End of function sub_C2F2
  13367.  
  13368. ; ---------------------------------------------------------------------------
  13369.  
  13370. ret_C35D:                               ; DATA XREF: sub_C2F2+4E
  13371.                 ld      l, e
  13372.                 pop     de
  13373.                 ld      e, l
  13374.                 pop     bc
  13375.                 ret
  13376.  
  13377. ; ---------------------------------------------------------------------------
  13378. ; START OF FUNCTION CHUNK FOR sub_C2F2
  13379.  
  13380. loc_C362:                               ; CODE XREF: sub_C2F2+31 sub_C2F2+45
  13381.                 bit     4, b
  13382.                 jp      z, loc_C467
  13383.  
  13384.                 set     7, (ix+2)
  13385.                 exx
  13386.                 inc     e
  13387.                 ret
  13388.  
  13389. ; END OF FUNCTION CHUNK FOR sub_C2F2
  13390. ; ---------------------------------------------------------------------------
  13391. ; START OF FUNCTION CHUNK FOR sub_C3A3
  13392.  
  13393. loc_C36E:                               ; CODE XREF: sub_C3A3+A
  13394.                 ld      a, b
  13395.                 and     #FD ; 'э'
  13396.                 jr      nz, loc_C377
  13397.  
  13398.                 ex      af, af' ;'
  13399.                 jp      loc_C432
  13400.  
  13401. ; ---------------------------------------------------------------------------
  13402.  
  13403. loc_C377:                               ; CODE XREF: sub_C3A3-32
  13404.                 ld      a, b
  13405.                 ld      d, a
  13406.                 and     3
  13407.                 ld      b, a
  13408.                 ld      a, d
  13409.                 and     #FC ; 'ь'
  13410.                 jr      nz, loc_C3AF
  13411.  
  13412.                 dec     e
  13413.                 res     0, b
  13414.                 ld      a, 3
  13415.                 jp      loc_C3AF
  13416.  
  13417. ; ---------------------------------------------------------------------------
  13418.  
  13419. loc_C389:                               ; CODE XREF: sub_C3A3+3
  13420.                 bit     0, h
  13421.                 jr      nz, loc_C390
  13422.  
  13423.                 ld      h, 0
  13424.                 ret
  13425.  
  13426. ; ---------------------------------------------------------------------------
  13427.  
  13428. loc_C390:                               ; CODE XREF: sub_C3A3-18
  13429.                 ld      a, h
  13430.                 ld      d, h
  13431.                 and     3
  13432.                 ld      h, a
  13433.                 ld      a, d
  13434.                 and     #FC ; 'ь'
  13435.                 jr      nz, loc_C3A8
  13436.  
  13437.                 ld      a, 3
  13438.                 res     0, h
  13439.                 jp      loc_C3A8
  13440.  
  13441. ; END OF FUNCTION CHUNK FOR sub_C3A3
  13442.  
  13443. ; =============== S U B R O U T I N E =======================================
  13444.  
  13445.  
  13446. sub_C3A1:                               ; CODE XREF: sub_BC00+18D
  13447.                                         ; sub_BC00+1A4 ...
  13448.                 and     #F
  13449.  
  13450. ; End of function sub_C3A1
  13451.  
  13452.  
  13453. ; =============== S U B R O U T I N E =======================================
  13454. ;a=0..15 (реально 9,5,3)? попадёт в max?
  13455. ;l=? попадёт в индекс таблицы для вычитания
  13456. ;c=? попадёт в индекс таблицы для сложения
  13457. ;b=?
  13458. ;h=?
  13459. ;out: hl в том же формате, что bc
  13460.  
  13461. sub_C3A3:                               ; CODE XREF: sub_BC00+F2
  13462.                                         ; sub_BC00+108 ...
  13463.  
  13464. ; FUNCTION CHUNK AT C36E SIZE 00000033 BYTES
  13465.  
  13466.                 ex      af, af' ;'
  13467.                 ld      a, l
  13468.                 or      a
  13469.                 jr      z, loc_C389
  13470.  
  13471. loc_C3A8:                               ; CODE XREF: sub_C3A3-B sub_C3A3-5
  13472.                 exx
  13473.                 ld      b, a
  13474.                 exx
  13475.                 ld      a, c
  13476.                 or      a
  13477.                 jr      z, loc_C36E
  13478.  
  13479. loc_C3AF:                               ; CODE XREF: sub_C3A3-24 sub_C3A3-1D
  13480.                 exx
  13481.                 ld      c, a
  13482.                 ex      af, af' ;'
  13483.                 ld      d, a ;max?
  13484.                 ld      e, #FF ;min?
  13485.                 ld      h, tbl_BA00/256 ;какие-то константы для оценки позиции?
  13486.  
  13487. loc_C3B7:                               ; CODE XREF: sub_C3A3+36 sub_C3A3+49 ...
  13488.                 ld      l, b
  13489.                 sub     (hl)
  13490.                 cp      e
  13491.                 jp      m, loc_C3C2 ;value<max?
  13492.                 cp      d
  13493.                 jp      p, loc_C420 ;value>min?
  13494. ;max<=value<=min???
  13495.                 ld      e, a ;new max?
  13496. loc_C3C2:                               ; CODE XREF: sub_C3A3+17
  13497.                 inc     h               ; tbl_BB00
  13498.                 ld      b, (hl)
  13499.                 inc     b
  13500.                 dec     b
  13501.                 jr      z, loc_C3FD
  13502.  
  13503. loc_C3C8:                               ; CODE XREF: sub_C3A3+6A sub_C3A3+79
  13504.                 dec     h
  13505.                 ld      l, c
  13506.                 add     a, (hl)
  13507.                 cp      d
  13508.                 jp      p, loc_C3D4 ;value>min?
  13509.                 cp      e
  13510.                 jp      m, loc_C42A ;value<max?
  13511. ;max<=value<=min???
  13512.                 ld      d, a ;new min?
  13513. loc_C3D4:                               ; CODE XREF: sub_C3A3+29
  13514.                 inc     h
  13515.                 ld      c, (hl)
  13516.                 dec     h
  13517.                 inc     c
  13518.                 dec     c
  13519.                 jp      nz, loc_C3B7
  13520.  
  13521.                 exx
  13522.                 ex      af, af' ;'
  13523.                 ld      a, b ;изначально передано в процедуру в b
  13524.                 and     #FC ; 'ь'
  13525.                 jr      z, loc_C3EF
  13526.  
  13527.                 ld      d, a
  13528.                 ld      a, b
  13529.                 and     3
  13530.                 ld      b, a
  13531.                 ld      a, d
  13532.                 exx
  13533.                 ld      c, a
  13534.                 ex      af, af' ;'
  13535.                 jp      loc_C3B7
  13536.  
  13537. ; ---------------------------------------------------------------------------
  13538.  
  13539. loc_C3EF:                               ; CODE XREF: sub_C3A3+3E
  13540.                 bit     0, b
  13541.                 jr      z, loc_C41F
  13542.  
  13543.                 res     0, b
  13544.                 ld      a, 3
  13545.                 exx
  13546.                 ld      c, a
  13547.                 ex      af, af' ;'
  13548.                 jp      loc_C3B7
  13549.  
  13550. ; ---------------------------------------------------------------------------
  13551.  
  13552. loc_C3FD:                               ; CODE XREF: sub_C3A3+23
  13553.                 exx
  13554.                 ex      af, af' ;'
  13555.                 ld      a, h
  13556.                 and     #FC ; 'ь'
  13557.                 jr      z, loc_C410
  13558.  
  13559.                 ld      d, a
  13560.                 ld      a, h
  13561.                 and     3
  13562.                 ld      h, a
  13563.                 ld      a, d
  13564.                 exx
  13565.                 ld      b, a
  13566.                 ex      af, af' ;'
  13567.                 jp      loc_C3C8
  13568.  
  13569. ; ---------------------------------------------------------------------------
  13570.  
  13571. loc_C410:                               ; CODE XREF: sub_C3A3+5F
  13572.                 bit     0, h
  13573.                 jr      z, loc_C429
  13574.  
  13575.                 res     0, h
  13576.                 ld      a, 3
  13577.                 dec     e
  13578.                 exx
  13579.                 ld      b, a
  13580.                 ex      af, af' ;'
  13581.                 jp      loc_C3C8
  13582.  
  13583. ; ---------------------------------------------------------------------------
  13584.  
  13585. loc_C41F:                               ; CODE XREF: sub_C3A3+4E
  13586.                 exx
  13587.  
  13588.  
  13589. loc_C420:                               ; CODE XREF: sub_C3A3+1B
  13590.                 ld      a, d
  13591.                 or      a
  13592.                 exx
  13593.                 jp      p, loc_C430
  13594.  
  13595.                 jp      loc_C459
  13596.  
  13597. ; ---------------------------------------------------------------------------
  13598.  
  13599. loc_C429:                               ; CODE XREF: sub_C3A3+6F
  13600.                 exx
  13601.  
  13602.  
  13603. loc_C42A:                               ; CODE XREF: sub_C3A3+2D
  13604.                 ld      a, e
  13605.                 or      a
  13606.                 exx
  13607.                 jp      m, loc_C459
  13608.  
  13609.  
  13610. loc_C430:                               ; CODE XREF: sub_C3A3+80
  13611.                 jr      z, loc_C454
  13612.  
  13613.  
  13614. loc_C432:                               ; CODE XREF: sub_C3A3-2F
  13615.                 ld      hl, word_D039
  13616.                 cp      (hl)
  13617.                 jr      c, loc_C44F
  13618.  
  13619.                 ld      c, a
  13620.                 ld      d, (hl)
  13621.                 ld      (hl), c
  13622.                 pop     iy
  13623.                 push    iy
  13624.                 ld      a, (byte_D02D)
  13625.                 rrca
  13626.                 ld      c, (iy+1)
  13627.                 xor     c
  13628.                 jp      m, loc_C44E
  13629.  
  13630.                 ld      a, c
  13631.                 ld      (byte_D07A), a
  13632.  
  13633.  
  13634. loc_C44E:                               ; CODE XREF: sub_C3A3+A4
  13635.                 ld      a, d
  13636.  
  13637.  
  13638. loc_C44F:                               ; CODE XREF: sub_C3A3+93
  13639.                 inc     l
  13640.                 cp      (hl)
  13641.                 jr      c, loc_C454
  13642.  
  13643.                 ld      (hl), a
  13644.  
  13645.  
  13646. loc_C454:                               ; CODE XREF: sub_C3A3:loc_C430
  13647.                                         ; sub_C3A3+AE
  13648.                 dec     e
  13649.                 bit     1, b
  13650.                 jr      nz, loc_C45D
  13651.  
  13652.  
  13653. loc_C459:                               ; CODE XREF: sub_C3A3+83 sub_C3A3+8A
  13654.                 ld      hl, 0
  13655.                 ret
  13656.  
  13657. ; ---------------------------------------------------------------------------
  13658.  
  13659. loc_C45D:                               ; CODE XREF: sub_C3A3+B4
  13660.                 set     2, (ix+2)
  13661.                 ld      hl, 0
  13662.                 dec     e
  13663.                 dec     e
  13664.                 ret
  13665.  
  13666. ; End of function sub_C3A3
  13667.  
  13668. ; ---------------------------------------------------------------------------
  13669. ; START OF FUNCTION CHUNK FOR sub_C2F2
  13670.  
  13671. loc_C467:                               ; CODE XREF: sub_C2F2+72
  13672.                 xor     a
  13673.                 ld      b, 8
  13674.                 ld      hl,  array_D200+1
  13675.  
  13676.  
  13677. loc_C46D:                               ; CODE XREF: sub_C2F2+17D
  13678.                 ld      (hl), a
  13679.                 inc     l
  13680.                 djnz    loc_C46D
  13681.  
  13682. ; END OF FUNCTION CHUNK FOR sub_C2F2
  13683. ; START OF FUNCTION CHUNK FOR sub_C254
  13684.  
  13685. loc_C471:                               ; CODE XREF: sub_C254+A sub_C563+17     ...
  13686.                 xor     a
  13687.                 ld      (byte_D079), a
  13688.                 ld      b, #1F
  13689.                 ld      de, 5
  13690.                 ld      hl, word_D10A
  13691.  
  13692.  
  13693. loc_C47D:                               ; CODE XREF: sub_C254+231
  13694.                 ld      (hl), a
  13695.                 inc     l
  13696.                 ld      (hl), a
  13697.                 inc     l
  13698.                 ld      (hl), a
  13699.                 inc     l
  13700.                 ld      (hl), a
  13701.                 add     hl, de
  13702.                 djnz    loc_C47D
  13703.  
  13704.                 ld      c, a
  13705.                 ld      sp, (word_D03D)
  13706.                 ret
  13707.  
  13708. ; END OF FUNCTION CHUNK FOR sub_C254
  13709.  
  13710. ; =============== S U B R O U T I N E =======================================
  13711.  
  13712.  
  13713. sub_C48D:                               ; CODE XREF: sub_BC00+34
  13714.                                         ; sub_BC00+4B4 ...
  13715. ;проверяем поля по ходу ферзя?
  13716.                 ld      b, a
  13717.                 exx
  13718.                 ld      c, #40
  13719.                 call    sub_C49C ;проверяем поля по ходу ладьи?
  13720.  
  13721.                 exx
  13722.                 jp      loc_C5D9 ;проверяем поля по ходу слона
  13723.  
  13724. ; End of function sub_C48D
  13725.  
  13726.  
  13727. ; =============== S U B R O U T I N E =======================================
  13728.  
  13729.  
  13730. sub_C498:                               ; CODE XREF: sub_BC00+3B sub_BC00+42 ...
  13731.                 ld      b, a
  13732.                 exx
  13733.                 ld      c, #10
  13734.  
  13735. ; End of function sub_C498
  13736.  
  13737.  
  13738. ; =============== S U B R O U T I N E =======================================
  13739.  
  13740.  
  13741. sub_C49C:                               ; CODE XREF: sub_C48D+4
  13742. ;проверяем поля по ходу ладьи?
  13743.                 ld      e, 8
  13744.                 exx
  13745.                 ld      l, b
  13746.                 xor     a
  13747. loc_C4A1:                               ; CODE XREF: sub_C49C+B
  13748.                 inc     l
  13749.                 bit     3, l
  13750.                 jr      nz, loc_C4AF
  13751.                 or      (hl)
  13752.                 jr      z, loc_C4A1
  13753.  
  13754.                 ld      c, 1
  13755.                 call    sub_C4E2 ;проверяем поля справа?
  13756.                 xor     a
  13757.  
  13758. loc_C4AF:                               ; CODE XREF: sub_C49C+8
  13759.                 ld      l, b
  13760.  
  13761.  
  13762. loc_C4B0:                               ; CODE XREF: sub_C49C+1A
  13763.                 dec     l
  13764.                 bit     3, l
  13765.                 jr      nz, loc_C4BD
  13766.  
  13767.                 or      (hl)
  13768.                 jr      z, loc_C4B0
  13769.  
  13770.                 ld      c, #FF
  13771.                 call    sub_C4E2 ;проверяем поля слева?
  13772.  
  13773.  
  13774. loc_C4BD:                               ; CODE XREF: sub_C49C+17
  13775.                 ld      c, #10
  13776.                 ld      a, b
  13777.                 add     a, c
  13778.                 call    p, sub_C4CA ;проверяем поля снизу?
  13779.  
  13780.                 ld      c, #F0  ; 'р'
  13781.                 ld      l, b
  13782.                                     ;проверяем поля сверху?
  13783.  
  13784. loc_C4C7:                               ; CODE XREF: sub_C4CA+4
  13785.                 ld      a, l
  13786.                 add     a, c
  13787.                 ret     m
  13788.  
  13789. ; End of function sub_C49C
  13790.  
  13791.  
  13792. ; =============== S U B R O U T I N E =======================================
  13793.  
  13794.  
  13795. sub_C4CA:                               ; CODE XREF: sub_C49C+25
  13796.                 ld      l, a
  13797.                 inc     e
  13798.                 xor     a
  13799.                 or      (hl)
  13800.                 jr      z, loc_C4C7
  13801.  
  13802.                 exx
  13803.                 ld      l, a
  13804.                 xor     b
  13805.                 jp      m, loc_C609
  13806.  
  13807.                 ld      a, c
  13808.                 add     a, (hl)
  13809.                 ld      (hl), a
  13810.                 set     1, l
  13811.                 ld      a, (hl)
  13812.                 and     e
  13813.                 exx
  13814.                 ret     z
  13815.                 jp      loc_C648
  13816.  
  13817. ; End of function sub_C4CA
  13818.  
  13819.  
  13820. ; =============== S U B R O U T I N E =======================================
  13821.  
  13822.  
  13823. sub_C4E2:                               ; CODE XREF: sub_C49C+F sub_C49C+1E
  13824.                 exx
  13825.                 ld      l, a
  13826.                 xor     b
  13827.                 jp      m, loc_C609
  13828.  
  13829.                 ld      a, c
  13830.                 add     a, (hl)
  13831.                 ld      (hl), a
  13832.                 set     1, l
  13833.                 ld      a, (hl)
  13834.                 and     e
  13835.                 exx
  13836.                 ret     z
  13837.  
  13838.  
  13839. loc_C4F1:                               ; CODE XREF: sub_C4E2+15
  13840.                 ld      a, l
  13841.                 add     a, c
  13842.                 ld      l, a
  13843.                 and     d
  13844.                 ret     nz
  13845.                 or      (hl)
  13846.                 jr      z, loc_C4F1
  13847.  
  13848.                 exx
  13849.                 ld      l, a
  13850.                 xor     b
  13851.                 jp      m, loc_C657
  13852.  
  13853.                 inc     l
  13854.                 ld      a, c
  13855.                 add     a, (hl)
  13856.                 ld      (hl), a
  13857.                 exx
  13858.                 ret
  13859.  
  13860. ; End of function sub_C4E2
  13861.  
  13862.  
  13863. ; =============== S U B R O U T I N E =======================================
  13864.  
  13865.  
  13866. sub_C505:                               ; CODE XREF: sub_BC00+57 sub_BC00+5E
  13867.                 ld      b, a
  13868.                 or      #70 ; 'p'
  13869.                 cp      b
  13870.                 jp      nz, loc_C517
  13871.  
  13872.  
  13873. loc_C50C:                               ; CODE XREF: sub_C512+3
  13874.                 ld      a, e
  13875.                 sub     6
  13876.                 jp      loc_C51A
  13877.  
  13878. ; End of function sub_C505
  13879.  
  13880.  
  13881. ; =============== S U B R O U T I N E =======================================
  13882.  
  13883.  
  13884. sub_C512:                               ; CODE XREF: sub_BC00+4D7
  13885.                                         ; sub_BC00+4DE
  13886.                 ld      b, a
  13887.                 and     #70 ; 'p'
  13888.                 jr      z, loc_C50C
  13889.  
  13890.  
  13891. loc_C517:                               ; CODE XREF: sub_C2F2+68 sub_C505+4
  13892.                 ld      a, e
  13893.                 sub     5
  13894.  
  13895.  
  13896. loc_C51A:                               ; CODE XREF: sub_C505+A
  13897.                 ld      e, a
  13898.                 exx
  13899.                 ld      c, 4
  13900.                 exx
  13901.  
  13902.  
  13903. loc_C51F:                               ; CODE XREF: sub_C6C4+5E
  13904. ;проверяем поля по ходу коня
  13905.                 ld      a, #E
  13906.                 add     a, b
  13907.                 jp      m, loc_C542
  13908.  
  13909.                 ld      l, a
  13910.                 and     d
  13911.                 call    z, sub_C563
  13912.  
  13913.                 ld      a, #12
  13914.                 add     a, b
  13915.                 ld      l, a
  13916.                 and     d
  13917.                 call    z, sub_C563
  13918.  
  13919.                 ld      a, #1F
  13920.                 add     a, b
  13921.                 ld      l, a
  13922.                 and     d
  13923.                 call    z, sub_C562
  13924.  
  13925.                 ld      a, #21 ; '!'
  13926.                 add     a, b
  13927.                 ld      l, a
  13928.                 and     d
  13929.                 call    z, sub_C562
  13930.  
  13931.  
  13932. loc_C542:                               ; CODE XREF: sub_C512+10
  13933.                 ld      a, #F2  ; 'т'
  13934.                 add     a, b
  13935.                 ret     m
  13936.                 ld      l, a
  13937.                 and     d
  13938.                 call    z, sub_C563
  13939.  
  13940.                 ld      a, #EE  ; 'о'
  13941.                 add     a, b
  13942.                 ld      l, a
  13943.                 and     d
  13944.                 call    z, sub_C563
  13945.  
  13946.                 ld      a, #E1  ; 'б'
  13947.                 add     a, b
  13948.                 ret     m
  13949.                 ld      l, a
  13950.                 and     d
  13951.                 call    z, sub_C562
  13952.  
  13953.                 ld      a, #DF  ; 'Я'
  13954.                 add     a, b
  13955.                 ld      l, a
  13956.                 and     d
  13957.                 ret     nz
  13958.  
  13959. ; End of function sub_C512
  13960.  
  13961.  
  13962. ; =============== S U B R O U T I N E =======================================
  13963.  
  13964.  
  13965. sub_C562:                               ; CODE XREF: sub_C512+25 sub_C512+2D ...
  13966.                 inc     e
  13967.  
  13968. ; End of function sub_C562
  13969.  
  13970.  
  13971. ; =============== S U B R O U T I N E =======================================
  13972.  
  13973.  
  13974. sub_C563:                               ; CODE XREF: sub_C512+15 sub_C512+1D ...
  13975.                 inc     e
  13976.                 or      (hl)
  13977.                 ret     z
  13978.                 exx
  13979.                 ld      l, a
  13980.                 xor     b
  13981.                 jp      p, loc_C573
  13982.  
  13983.                 ld      a, #78 ; 'x'
  13984.                 and     l
  13985.                 jr      z, loc_C578
  13986.  
  13987.                 dec     l
  13988.                 dec     l
  13989.  
  13990.  
  13991. loc_C573:                               ; CODE XREF: sub_C563+6
  13992.                 ld      a, c
  13993.                 add     a, (hl)
  13994.                 ld      (hl), a
  13995.                 exx
  13996.                 ret
  13997.  
  13998. ; ---------------------------------------------------------------------------
  13999.  
  14000. loc_C578:                               ; CODE XREF: sub_C563+C
  14001.                 bit     4, b
  14002.                 jp      z, loc_C471
  14003.  
  14004.                 set     7, (ix+2)
  14005.                 bit     6, b
  14006.                 set     6, b
  14007.                 exx
  14008.                 jr      nz, loc_C592
  14009.  
  14010.                 ld      l, b
  14011.                 ld      l, (hl)
  14012.                 inc     l
  14013.                 inc     h
  14014.                 set     1, (hl)
  14015.                 dec     h
  14016.                 inc     e
  14017.                 inc     e
  14018.                 ret
  14019.  
  14020. ; ---------------------------------------------------------------------------
  14021.  
  14022. loc_C592:                               ; CODE XREF: sub_C563+23
  14023.                 set     6, (ix+2)
  14024.                 ex      af, af' ;'
  14025.                 add     a, #14
  14026.                 ex      af, af' ;'
  14027.                 ret
  14028.  
  14029. ; End of function sub_C563
  14030.  
  14031. ; ---------------------------------------------------------------------------
  14032. ; START OF FUNCTION CHUNK FOR sub_C5FF
  14033.  
  14034. loc_C59B:                               ; CODE XREF: sub_C5FF+D
  14035.                 bit     4, b
  14036.                 jp      z, loc_C471
  14037.  
  14038.                 set     7, (ix+2)
  14039.                 bit     6, b
  14040.                 set     6, b
  14041.                 exx
  14042.                 jr      nz, loc_C5B9
  14043.  
  14044.                 ld      a, l
  14045.                 ld      l, b
  14046.                 ld      l, (hl)
  14047.                 inc     l
  14048.                 inc     h
  14049.                 set     1, (hl)
  14050.                 dec     h
  14051.                 ld      l, a
  14052.                 inc     e
  14053.                 inc     e
  14054.                 jp      loc_C5FA ;проверяем поля по какому-то направлению C
  14055.  
  14056. ; ---------------------------------------------------------------------------
  14057.  
  14058. loc_C5B9:                               ; CODE XREF: sub_C5FF-56
  14059.                 set     6, (ix+2)
  14060.                 ex      af, af' ;'
  14061.                 add     a, #14
  14062.                 ex      af, af' ;'
  14063.                 jp      loc_C5FA ;проверяем поля по какому-то направлению C
  14064.  
  14065. ; END OF FUNCTION CHUNK FOR sub_C5FF
  14066.  
  14067. ; =============== S U B R O U T I N E =======================================
  14068.  
  14069.  
  14070. sub_C5C4:                               ; CODE XREF: sub_BC00+4C9
  14071.                                         ; sub_BC00+4D0
  14072.                 ld      b, a
  14073.                 and     #70 ; 'p'
  14074.                 jp      nz, loc_C5D5
  14075.  
  14076.  
  14077. loc_C5CA:                               ; CODE XREF: sub_C5CF+4
  14078.                 dec     e
  14079.                 dec     e
  14080.                 jp      loc_C5D6
  14081.  
  14082. ; End of function sub_C5C4
  14083.  
  14084.  
  14085. ; =============== S U B R O U T I N E =======================================
  14086.  
  14087.  
  14088. sub_C5CF:                               ; CODE XREF: sub_BC00+49 sub_BC00+50
  14089.                 ld      b, a
  14090.                 or      #70 ; 'p'
  14091.                 cp      b
  14092.                 jr      z, loc_C5CA
  14093.  
  14094.  
  14095. loc_C5D5:                               ; CODE XREF: sub_C2F2+65 sub_C5C4+3
  14096.                 inc     e
  14097.  
  14098.  
  14099. loc_C5D6:                               ; CODE XREF: sub_C5C4+8
  14100.                 exx
  14101.                 ld      c, 4
  14102.  
  14103.  
  14104. loc_C5D9:                               ; CODE XREF: sub_C48D+8
  14105. ;проверяем поля по ходу слона
  14106.                 ld      e, #C4  ; 'Д'
  14107.                 exx
  14108.                 ld      c, #F
  14109.                 ld      a, b
  14110.                 add     a, c
  14111.                 ld      l, a ;ниже левее? (и далее по этому направлению)
  14112.                 and     d
  14113.                 call    z, sub_C5FF
  14114.  
  14115.                 ld      c, #11
  14116.                 ld      a, b
  14117.                 add     a, c
  14118.                 ld      l, a ;ниже правее? (и далее по этому направлению)
  14119.                 and     d
  14120.                 call    z, sub_C5FF
  14121.  
  14122.                 ld      c, #EF  ; 'п'
  14123.                 ld      a, b
  14124.                 add     a, c
  14125.                 ld      l, a ;выше левее? (и далее по этому направлению)
  14126.                 and     d
  14127.                 call    z, sub_C5FF
  14128.  
  14129.                 ld      c, #F1  ; 'с'
  14130.                 ld      l, b
  14131.                              ;выше правее? (и далее по этому направлению)
  14132.  
  14133. loc_C5FA:                               ; CODE XREF: sub_C5FF-49 sub_C5FF-3E ...
  14134. ;проверяем поля по какому-то направлению C
  14135.                 ld      a, l
  14136.                 add     a, c
  14137.                 ld      l, a
  14138.                 and     d
  14139.                 ret     nz
  14140.  
  14141. ; End of function sub_C5CF
  14142.  
  14143.  
  14144. ; =============== S U B R O U T I N E =======================================
  14145.  
  14146.  
  14147. sub_C5FF:                               ; CODE XREF: sub_C5CF+13 sub_C5CF+1C ...
  14148.  
  14149. ; FUNCTION CHUNK AT C59B SIZE 00000029 BYTES
  14150.  
  14151.                 inc     e
  14152.                 or      (hl)
  14153.                 jr      z, loc_C5FA ;проверяем поля по какому-то направлению C
  14154.  
  14155.                 exx
  14156.                 ld      l, a
  14157.                 xor     b
  14158.                 jp      p, loc_C63C
  14159.  
  14160.  
  14161. loc_C609:                               ; CODE XREF: sub_C4CA+9 sub_C4E2+3
  14162.                 ld      a, #78 ; 'x'
  14163.                 and     l
  14164.                 jr      z, loc_C59B
  14165.  
  14166.                 dec     l
  14167.                 dec     l
  14168.                 ld      a, c
  14169.                 add     a, (hl)
  14170.                 ld      (hl), a
  14171.                 set     2, l
  14172.                 ld      a, (hl)
  14173.                 and     e
  14174.                 jr      z, loc_C669
  14175.  
  14176.                 jp      m, loc_C669
  14177.  
  14178.                 exx
  14179.  
  14180.  
  14181. loc_C61D:                               ; CODE XREF: sub_C5FF+24
  14182.                 ld      a, l
  14183.                 add     a, c
  14184.                 ld      l, a
  14185.                 and     d
  14186.                 ret     nz
  14187.                 or      (hl)
  14188.                 jr      z, loc_C61D
  14189.  
  14190.                 exx
  14191.                 ld      d, l
  14192.                 ld      l, a
  14193.                 xor     b
  14194.                 jp      p, loc_C665
  14195.  
  14196.                 dec     l
  14197.                 ld      a, c
  14198.                 add     a, (hl)
  14199.                 ld      (hl), a
  14200.                 inc     l
  14201.  
  14202.  
  14203. loc_C631:                               ; CODE XREF: sub_C5FF+77
  14204.                 inc     l
  14205.                 inc     l
  14206.                 ld      a, (hl)
  14207.                 rra
  14208.                 jr      c, loc_C67F
  14209.  
  14210.                 rra
  14211.                 jr      c, loc_C67B
  14212.  
  14213.                 exx
  14214.                 ret
  14215.  
  14216. ; ---------------------------------------------------------------------------
  14217.  
  14218. loc_C63C:                               ; CODE XREF: sub_C5FF+7
  14219.                 ld      a, c
  14220.                 add     a, (hl)
  14221.                 ld      (hl), a
  14222.  
  14223.  
  14224. loc_C63F:                               ; CODE XREF: sub_C5FF+63
  14225.                 set     1, l
  14226.                 ld      a, (hl)
  14227.                 and     e
  14228.                 exx
  14229.                 ret     z
  14230.                 jp      m, loc_C6AC
  14231.  
  14232.  
  14233. loc_C648:                               ; CODE XREF: sub_C4CA+15 sub_C5FF+50
  14234.                 ld      a, l
  14235.                 add     a, c
  14236.                 ld      l, a
  14237.                 and     d
  14238.                 ret     nz
  14239.                 inc     e
  14240.                 or      (hl)
  14241.                 jr      z, loc_C648
  14242.  
  14243.                 exx
  14244.                 ld      l, a
  14245.                 xor     b
  14246.                 jp      p, loc_C65D
  14247.  
  14248.  
  14249. loc_C657:                               ; CODE XREF: sub_C4E2+1A
  14250.                 dec     l
  14251.  
  14252.  
  14253. loc_C658:                               ; CODE XREF: sub_C5FF+67
  14254.                 ld      a, c
  14255.                 add     a, (hl)
  14256.                 ld      (hl), a
  14257.                 exx
  14258.                 ret
  14259.  
  14260. ; ---------------------------------------------------------------------------
  14261.  
  14262. loc_C65D:                               ; CODE XREF: sub_C5FF+55
  14263.                 inc     l
  14264.                 ld      a, c
  14265.                 add     a, (hl)
  14266.                 ld      (hl), a
  14267.                 dec     l
  14268.                 jp      loc_C63F
  14269.  
  14270. ; ---------------------------------------------------------------------------
  14271.  
  14272. loc_C665:                               ; CODE XREF: sub_C5FF+2A
  14273.                 inc     l
  14274.                 jp      loc_C658
  14275.  
  14276. ; ---------------------------------------------------------------------------
  14277.  
  14278. loc_C669:                               ; CODE XREF: sub_C5FF+18 sub_C5FF+1A
  14279.                 exx
  14280.  
  14281.  
  14282. loc_C66A:                               ; CODE XREF: sub_C5FF+71
  14283.                 ld      a, l
  14284.                 add     a, c
  14285.                 ld      l, a
  14286.                 and     d
  14287.                 ret     nz
  14288.                 or      (hl)
  14289.                 jr      z, loc_C66A
  14290.  
  14291.                 exx
  14292.                 ld      d, l
  14293.                 ld      l, a
  14294.                 xor     b
  14295.                 jp      m, loc_C631
  14296.  
  14297.                 exx
  14298.                 ret
  14299.  
  14300. ; ---------------------------------------------------------------------------
  14301.  
  14302. loc_C67B:                               ; CODE XREF: sub_C5FF+39
  14303.                 bit     6, c
  14304.                 jr      nz, loc_C6A8
  14305.  
  14306.  
  14307. loc_C67F:                               ; CODE XREF: sub_C5FF+36
  14308.                 res     1, d
  14309.                 res     2, d
  14310.                 ld      hl, byte_D079
  14311.  
  14312.  
  14313. loc_C686:                               ; CODE XREF: sub_C5FF+8E
  14314.                 ld      a, (hl)
  14315.                 or      a
  14316.                 jr      z, loc_C697
  14317.  
  14318.                 inc     l
  14319.                 inc     l
  14320.                 cp      d
  14321.                 jp      nz, loc_C686
  14322.  
  14323.                 dec     l
  14324.                 ld      (hl), 0
  14325.                 inc     h
  14326.                 exx
  14327.                 inc     e
  14328.                 ret
  14329.  
  14330. ; ---------------------------------------------------------------------------
  14331.  
  14332. loc_C697:                               ; CODE XREF: sub_C5FF+89
  14333.                 ld      a, l
  14334.                 cp      #84 ; '"'
  14335.                 jr      nc, loc_C6A7
  14336.  
  14337.                 ld      (hl), d
  14338.                 inc     l
  14339.                 exx
  14340.                 ld      a, c
  14341.                 exx
  14342.                 ld      (hl), a
  14343.                 inc     l
  14344.                 ld      (hl), 0
  14345.                 set     5, b
  14346.  
  14347.  
  14348. loc_C6A7:                               ; CODE XREF: sub_C5FF+9B
  14349.                 inc     h
  14350.  
  14351.  
  14352. loc_C6A8:                               ; CODE XREF: sub_C5FF+7E
  14353.                 exx
  14354.                 inc     e
  14355.                 inc     e
  14356.                 ret
  14357.  
  14358. ; ---------------------------------------------------------------------------
  14359.  
  14360. loc_C6AC:                               ; CODE XREF: sub_C5FF+46
  14361.                 rla
  14362.                 xor     c
  14363.                 ret     p
  14364.                 ld      a, l
  14365.                 add     a, c
  14366.                 ld      l, a
  14367.                 and     d
  14368.                 ret     nz
  14369.                 or      (hl)
  14370.                 ret     z
  14371.                 exx
  14372.                 ld      l, a
  14373.                 inc     l
  14374.                 xor     b
  14375.                 jp      p, loc_C6BF
  14376.  
  14377.                 dec     l
  14378.                 dec     l
  14379.  
  14380.  
  14381. loc_C6BF:                               ; CODE XREF: sub_C5FF+BB
  14382.                 ld      a, c
  14383.                 add     a, (hl)
  14384.                 ld      (hl), a
  14385.                 exx
  14386.                 ret
  14387.  
  14388. ; End of function sub_C5FF
  14389.  
  14390.  
  14391. ; =============== S U B R O U T I N E =======================================
  14392.  
  14393.  
  14394. sub_C6C4:                               ; CODE XREF: sub_BC00+D5
  14395.  
  14396. ; FUNCTION CHUNK AT C719 SIZE 0000000E BYTES
  14397. ; FUNCTION CHUNK AT C734 SIZE 00000010 BYTES
  14398.  
  14399.                 ld      iy, byte_D079
  14400.                 push    de
  14401.                 ld      h, BRD_88_0/256
  14402.                 exx
  14403.                 ld      l, (iy+0)
  14404.  
  14405.  
  14406. loc_C6CF:                               ; CODE XREF: RAM:C777
  14407.                 ld      bc, loc_C76B
  14408.                 push    bc
  14409.                 ld      a, l
  14410.                 and     #80 ; '?'
  14411.                 ld      b, a
  14412.                 ld      e, (hl)
  14413.                 inc     l
  14414.                 ld      a, (hl)
  14415.                 and     #8E ; '?'
  14416.                 jr      z, loc_C6EF
  14417.  
  14418.                 jp      m, loc_C734
  14419.  
  14420.                 cp      4
  14421.                 jr      c, loc_C719
  14422.  
  14423.                 jr      z, loc_C725
  14424.  
  14425.                 ld      c, #C0  ; 'А'
  14426.                 call    sub_C727
  14427.  
  14428.                 jp      loc_C73D
  14429.  
  14430. ; ---------------------------------------------------------------------------
  14431.  
  14432. loc_C6EF:                               ; CODE XREF: sub_C6C4+18 sub_C6C4+72
  14433.                 bit     7, b
  14434.                 ld      a, e
  14435.                 exx
  14436.                 ld      b, a
  14437.                 ld      c, #F
  14438.                 jr      z, loc_C6FA
  14439.  
  14440.                 ld      c, #EF  ; 'п'
  14441.  
  14442.  
  14443. loc_C6FA:                               ; CODE XREF: sub_C6C4+32
  14444.                 call    sub_C6FF
  14445.  
  14446.                 inc     c
  14447.                 inc     c
  14448.  
  14449. ; End of function sub_C6C4
  14450.  
  14451.  
  14452. ; =============== S U B R O U T I N E =======================================
  14453.  
  14454.  
  14455. sub_C6FF:                               ; CODE XREF: sub_C6C4:loc_C6FA
  14456.                 ld      a, (iy+1)
  14457.                 cp      c
  14458.                 ret     z
  14459.                 neg
  14460.                 cp      c
  14461.                 ret     z
  14462.                 ld      a, c
  14463.                 add     a, b
  14464.                 ld      l, a
  14465.                 xor     a
  14466.                 or      (hl)
  14467.                 ret     z
  14468.                 exx
  14469.                 ld      l, a
  14470.                 xor     b
  14471.                 jp      p, loc_C716
  14472.  
  14473.                 dec     l
  14474.                 dec     l
  14475.  
  14476.  
  14477. loc_C716:                               ; CODE XREF: sub_C6FF+12
  14478.                 dec     (hl)
  14479.                 exx
  14480.                 ret
  14481.  
  14482. ; End of function sub_C6FF
  14483.  
  14484. ; ---------------------------------------------------------------------------
  14485. ; START OF FUNCTION CHUNK FOR sub_C6C4
  14486.  
  14487. loc_C719:                               ; CODE XREF: sub_C6C4+1F
  14488.                 ld      c, #FC
  14489.                 set     4, b
  14490.                 ld      a, e
  14491.                 exx
  14492.                 ld      d, #88
  14493.                 ld      b, a
  14494.                 jp      loc_C51F ;проверяем поля по ходу коня
  14495.  
  14496. ; ---------------------------------------------------------------------------
  14497.  
  14498. loc_C725:                               ; CODE XREF: sub_C6C4+21
  14499.                 ld      c, #F0
  14500.  
  14501. ; END OF FUNCTION CHUNK FOR sub_C6C4
  14502.  
  14503. ; =============== S U B R O U T I N E =======================================
  14504.  
  14505.  
  14506. sub_C727:                               ; CODE XREF: sub_C6C4+25
  14507.                 ld      a, e
  14508.                 exx
  14509.                 ld      c, 1
  14510.                 ld      b, a
  14511.                 call    sub_C744
  14512.  
  14513.                 ld      c, #10
  14514.                 jp      sub_C744
  14515.  
  14516. ; End of function sub_C727
  14517.  
  14518. ; ---------------------------------------------------------------------------
  14519. ; START OF FUNCTION CHUNK FOR sub_C6C4
  14520.  
  14521. loc_C734:                               ; CODE XREF: sub_C6C4+1A
  14522.                 and     2
  14523.                 jr      z, loc_C6EF
  14524.  
  14525.                 ld      c, #FC  ; 'ь'
  14526.                 ld      a, e
  14527.                 exx
  14528.                 ld      b, a
  14529.  
  14530.  
  14531. loc_C73D:                               ; CODE XREF: sub_C6C4+28
  14532.                 ld      c, #F
  14533.                 call    sub_C744
  14534.  
  14535.                 ld      c, #11
  14536.  
  14537. ; END OF FUNCTION CHUNK FOR sub_C6C4
  14538.  
  14539. ; =============== S U B R O U T I N E =======================================
  14540.  
  14541.  
  14542. sub_C744:                               ; CODE XREF: sub_C727+5 sub_C727+A ...
  14543.                 ld      a, (iy+1)
  14544.                 cp      c
  14545.                 ret     z
  14546.                 neg
  14547.                 cp      c
  14548.                 ret     z
  14549.                 ld      d, #88 ; '?'
  14550.                 call    sub_C755
  14551.  
  14552.                 xor     a
  14553.                 sub     c
  14554.                 ld      c, a
  14555.  
  14556. ; End of function sub_C744
  14557.  
  14558.  
  14559. ; =============== S U B R O U T I N E =======================================
  14560.  
  14561.  
  14562. sub_C755:                               ; CODE XREF: sub_C744+B
  14563.                 ld      l, b
  14564.  
  14565.  
  14566. loc_C756:                               ; CODE XREF: sub_C755+7
  14567.                 ld      a, l
  14568.                 add     a, c
  14569.                 ld      l, a
  14570.                 and     d
  14571.                 ret     nz
  14572.                 or      (hl)
  14573.                 jr      z, loc_C756
  14574.  
  14575.                 exx
  14576.                 ld      l, a
  14577.                 xor     b
  14578.                 jp      p, loc_C766
  14579.  
  14580.                 dec     l
  14581.                 dec     l
  14582.  
  14583.  
  14584. loc_C766:                               ; CODE XREF: sub_C755+C
  14585.                 ld      a, c
  14586.                 add     a, (hl)
  14587.                 ld      (hl), a
  14588.                 exx
  14589.                 ret
  14590.  
  14591. ; End of function sub_C755
  14592.  
  14593. ; ---------------------------------------------------------------------------
  14594.  
  14595. loc_C76B:                               ; DATA XREF: sub_C6C4:loc_C6CF
  14596.                 ld      a, (iy+2)
  14597.                 or      a
  14598.                 jr      z, loc_C77A
  14599.  
  14600.                 inc     iy
  14601.                 inc     iy
  14602.                 exx
  14603.                 ld      l, a
  14604.                 jp      loc_C6CF
  14605.  
  14606. ; ---------------------------------------------------------------------------
  14607.  
  14608. loc_C77A:                               ; CODE XREF: RAM:C76F
  14609.                 pop     de
  14610.                 ld      (byte_D079), a
  14611.                 ret
  14612.  
  14613. ; ---------------------------------------------------------------------------
  14614.        if !FIX
  14615.                 db    0 ;unneeded???
  14616.        endif
  14617.  
  14618.  
  14619.                 ;might be at any address
  14620. Openings:      
  14621.                 db #26,#92,#69,#C4,#CA,#B0,#4C,#2E,#0D
  14622.                 db #0A,#16,#49,#E8,#91,#32,#30,#B6,#4B
  14623.                 db #05,#94,#90,#02,#84,#01,#3D,#17,#26
  14624.                 db #05,#88,#82,#81,#00,#40,#A0,#34,#21
  14625.                 db #08,#08,#C0,#C1,#C4,#00,#50,#9A,#18
  14626.                 db #15,#A2,#89,#E9,#92,#5A,#64,#CC,#99
  14627.                 db #08,#86,#02,#41,#50,#02,#2C,#0C,#4A
  14628.                 db #40,#13,#13,#00,#50,#68,#15,#00,#44
  14629.                 db #AB,#03,#C2,#E4,#90,#A1,#4C,#9A,#1C
  14630.                 db #04,#15,#D0,#00,#A4,#01,#44,#39,#4E
  14631.                 db #45,#14,#91,#40,#04,#50,#3C,#3A,#5A
  14632.                 db #50,#86,#51,#C5,#52,#E9,#28,#3E,#8B
  14633.                 db #2D,#03,#D3,#70,#90,#E2,#04,#BE,#93
  14634.                 db #A7,#A2,#A4,#E1,#B4,#A0,#58,#BA,#59
  14635.                 db #28,#26,#83,#09,#48,#E8,#71,#13,#59
  14636.                 db #45,#56,#91,#55,#B4,#55,#71,#37,#1F
  14637.                 db #49,#94,#4B,#41,#A5,#14,#50,#2E,#5F
  14638.                 db #49,#92,#D2,#E4,#C4,#E0,#3D,#2C,#55
  14639.                 db #31,#11,#01,#A8,#F0,#58,#51,#2A,#14
  14640.                 db #02,#02,#C1,#E5,#44,#21,#88,#22,#28
  14641.                 db #08,#1A,#D2,#61,#34,#79,#A0,#00,#06
  14642.                 db #4C,#1A,#53,#05,#C4,#00,#48,#00,#68
  14643.                 db #4B,#91,#53,#00,#04,#C0,#48,#B4,#56
  14644.                 db #0D,#82,#C1,#44,#64,#94,#15,#27,#19
  14645.                 db #11,#24,#2B,#81,#30,#A2,#2A,#B2,#1B
  14646.                 db #04,#A2,#EB,#01,#40,#92,#26,#AC,#94
  14647.                 db #8B,#A2,#C0,#C4,#92,#68,#20,#3A,#0A
  14648.                 db #0B,#A1,#CB,#84,#A0,#6A,#42,#1A,#0C
  14649.                 db #08,#A0,#20,#69,#52,#89,#00,#22,#15
  14650.                 db #07,#01,#D2,#A4,#C0,#80,#00,#1A,#11
  14651.                 db #43,#83,#4A,#20,#00,#70,#28,#0C,#94
  14652.                 db #27,#00,#02,#41,#24,#69,#48,#00,#07
  14653.                 db #05,#24,#40,#20,#D0,#58,#59,#29,#55
  14654.                 db #0C,#12,#D0,#C4,#44,#E1,#04,#20,#07
  14655.                 db #40,#13,#41,#E0,#E4,#A0,#48,#0A,#19
  14656.                 db #0B,#25,#A8,#09,#8A,#08,#54,#28,#00
  14657.                 db #09,#06,#52,#54,#70,#90,#24,#2E,#06
  14658.                 db #47,#C2,#C1,#84,#84,#88,#31,#30,#4E
  14659.                 db #0B,#04,#C2,#E5,#00,#A5,#24,#3A,#14
  14660.                 db #02,#05,#44,#C1,#20,#D8,#38,#32,#05
  14661.                 db #52,#85,#89,#E9,#33,#32,#4E,#50,#8C
  14662.                 db #27,#06,#83,#40,#E2,#D2,#34,#1C,#89
  14663.                 db #09,#15,#00,#28,#F2,#7A,#3A,#44,#10
  14664.                 db #0A,#22,#A0,#E1,#30,#2A,#60,#94,#04
  14665.                 db #2E,#05,#81,#60,#40,#B2,#5C,#36,#12
  14666.                 db #09,#86,#81,#01,#50,#F2,#5C,#A6,#45
  14667.                 db #0C,#01,#82,#E1,#14,#F8,#34,#30,#06
  14668.                 db #0B,#88,#83,#29,#82,#C8,#38,#1E,#95
  14669.                 db #8B,#02,#C3,#A0,#B0,#D0,#10,#42,#91
  14670.                 db #26,#D3,#89,#64,#62,#9D,#18,#A6,#40
  14671.                 db #22,#80,#C2,#E0,#62,#C0,#4C,#00,#59
  14672.                 db #26,#22,#0A,#A9,#82,#42,#5E,#20,#98
  14673.                 db #0B,#02,#8B,#C9,#01,#02,#26,#8C,#13
  14674.                 db #4E,#40,#0A,#C9,#82,#90,#14,#AE,#8D
  14675.                 db #86,#A3,#C2,#61,#70,#A9,#5D,#22,#1F
  14676.                 db #0A,#A7,#0A,#41,#42,#E8,#2C,#3E,#1A
  14677.                 db #06,#90,#52,#61,#A4,#99,#81,#0D,#08
  14678.                 db #40,#86,#08,#C9,#48,#8A,#1C,#90,#13
  14679.                 db #09,#A4,#4A,#C5,#A0,#00,#14,#3A,#12
  14680.                 db #2A,#A4,#40,#C9,#88,#90,#11,#45,#49
  14681.                 db #02,#92,#52,#80,#00,#B8,#15,#31,#03
  14682.                 db #0B,#82,#D1,#05,#82,#99,#24,#2E,#97
  14683.                 db #8E,#86,#11,#85,#60,#D0,#39,#24,#48
  14684.                 db #09,#85,#12,#E5,#40,#60,#69,#19,#00
  14685.                 db #06,#05,#92,#44,#92,#00,#64,#22,#8E
  14686.                 db #09,#87,#41,#08,#2A,#D8,#58,#36,#21
  14687.                 db #45,#45,#C0,#C0,#D0,#BA,#64,#18,#53
  14688.                 db #20,#11,#C2,#49,#E2,#F8,#49,#1B,#11
  14689.                 db #0A,#0A,#42,#60,#34,#39,#4D,#28,#54
  14690.                 db #0E,#81,#D1,#20,#60,#F8,#59,#35,#10
  14691.                 db #0A,#05,#10,#E5,#60,#D8,#20,#AC,#1B
  14692.                 db #0F,#25,#A4,#69,#B2,#68,#48,#2A,#00
  14693.                 db #08,#82,#01,#E4,#14,#B0,#19,#2C,#48
  14694.                 db #2C,#05,#80,#00,#00,#CA,#22,#26,#13
  14695.                 db #05,#21,#2A,#20,#00,#80,#60,#0E,#01
  14696.                 db #4C,#46,#43,#41,#91,#00,#48,#00,#97
  14697.                 db #22,#92,#0B,#44,#20,#E8,#34,#00,#95
  14698.                 db #2B,#07,#43,#C2,#74,#3C,#70,#3A,#1F
  14699.                 db #13,#A3,#8B,#61,#60,#A0,#78,#18,#A5
  14700.                 db #A0,#05,#83,#20,#90,#D2,#26,#32,#07
  14701.                 db #0D,#02,#43,#A9,#40,#89,#50,#B0,#1E
  14702.                 db #09,#03,#43,#A2,#01,#09,#31,#4C,#44
  14703.                 db #45,#C2,#54,#D0,#60,#88,#08,#14,#8A
  14704.                 db #2E,#06,#48,#05,#00,#32,#78,#0C,#22
  14705.                 db #4E,#19,#83,#01,#34,#BD,#7C,#30,#24
  14706.                 db #41,#47,#82,#24,#74,#08,#65,#01,#0F
  14707.                 db #43,#15,#83,#25,#72,#10,#69,#2A,#52
  14708.                 db #0A,#01,#C3,#E9,#52,#40,#28,#06,#22
  14709.                 db #50,#01,#02,#E0,#A4,#79,#38,#10,#1F
  14710.                 db #09,#88,#13,#11,#E2,#C8,#60,#30,#14
  14711.                 db #44,#96,#04,#40,#81,#02,#74,#34,#0F
  14712.                 db #4C,#12,#02,#25,#84,#38,#1D,#16,#13
  14713.                 db #2C,#00,#C3,#21,#94,#68,#44,#2E,#19
  14714.                 db #11,#03,#83,#E9,#D2,#69,#58,#AE,#20
  14715.                 db #06,#01,#43,#82,#90,#D1,#79,#20,#63
  14716.                 db #48,#46,#D1,#F0,#C0,#60,#70,#34,#0F
  14717.                 db #40,#13,#8A,#A1,#00,#81,#58,#3C,#0C
  14718.                 db #47,#00,#40,#41,#64,#C4,#30,#02,#01
  14719.                 db #05,#05,#05,#49,#A8,#28,#30,#1E,#13
  14720.                 db #0D,#25,#8A,#A1,#62,#68,#35,#24,#51
  14721.                 db #08,#82,#C1,#C0,#40,#02,#02,#38,#0D
  14722.                 db #0C,#87,#CB,#40,#74,#00,#6C,#0E,#A1
  14723.                 db #AC,#03,#80,#61,#C0,#F8,#58,#3A,#8E
  14724.                 db #8B,#05,#C3,#E0,#12,#10,#34,#18,#11
  14725.                 db #50,#88,#82,#C1,#50,#DA,#78,#94,#4D
  14726.                 db #0D,#05,#83,#61,#42,#A0,#38,#32,#80
  14727.                 db #A1,#85,#42,#A9,#A8,#C8,#58,#28,#9C
  14728.                 db #05,#92,#02,#21,#C0,#38,#30,#3C,#11
  14729.                 db #45,#46,#81,#01,#A0,#F0,#68,#10,#13
  14730.                 db #4C,#11,#C1,#A1,#A0,#B8,#74,#AC,#24
  14731.                 db #07,#88,#10,#90,#C0,#38,#4C,#36,#83
  14732.                 db #2B,#05,#C9,#00,#B0,#21,#48,#A6,#98
  14733.                 db #2D,#01,#C2,#28,#09,#28,#48,#26,#9D
  14734.                 db #C4,#C7,#50,#31,#80,#38,#3C,#22,#54
  14735.                 db #4F,#06,#03,#C1,#74,#41,#30,#AC,#16
  14736.                 db #29,#16,#43,#21,#B2,#48,#50,#2C,#92
  14737.                 db #09,#07,#40,#89,#72,#90,#64,#24,#07
  14738.                 db #0B,#07,#51,#85,#02,#88,#58,#2E,#16
  14739.                 db #05,#21,#C2,#C1,#D0,#D8,#20,#2A,#A8
  14740.                 db #0D,#03,#82,#81,#80,#CA,#28,#A6,#4C
  14741.                 db #2F,#87,#03,#84,#E0,#C1,#41,#2E,#03
  14742.                 db #0B,#A4,#09,#E2,#02,#C0,#11,#24,#19
  14743.                 db #0D,#A5,#83,#41,#F4,#B9,#3C,#38,#1F
  14744.                 db #06,#02,#52,#A5,#B0,#58,#60,#2C,#04
  14745.                 db #48,#52,#43,#A0,#30,#50,#01,#53,#5E
  14746.                 db #0F,#00,#D0,#74,#40,#A8,#3C,#0E,#04
  14747.                 db #44,#C6,#03,#A1,#20,#88,#35,#24,#52
  14748.                 db #26,#11,#C4,#A1,#32,#92,#0E,#56,#92
  14749.                 db #25,#09,#04,#00,#E4,#60,#68,#34,#09
  14750.                 db #08,#A3,#A4,#01,#21,#08,#58,#3C,#8D
  14751.                 db #8D,#05,#42,#81,#80,#CA,#28,#BE,#19
  14752.                 db #2E,#04,#03,#20,#32,#72,#5A,#1E,#9B
  14753.                 db #2B,#86,#00,#A1,#30,#4A,#84,#88,#10
  14754.                 db #10,#05,#44,#88,#F0,#F0,#44,#32,#0F
  14755.                 db #07,#29,#A3,#C1,#B0,#70,#50,#B2,#8F
  14756.                 db #0D,#A3,#22,#A1,#60,#68,#48,#32,#1A
  14757.                 db #0B,#A7,#C9,#05,#60,#61,#4C,#28,#15
  14758.                 db #25,#05,#02,#26,#44,#D8,#41,#2E,#4D
  14759.                 db #2E,#02,#42,#49,#30,#80,#24,#36,#93
  14760.                 db #07,#96,#0A,#A1,#04,#80,#60,#26,#8C
  14761.                 db #0A,#03,#93,#25,#E0,#A1,#74,#1C,#13
  14762.                 db #47,#03,#91,#A5,#F0,#41,#38,#10,#88
  14763.                 db #0A,#86,#51,#B1,#24,#A1,#28,#18,#12
  14764.                 db #04,#A7,#2A,#80,#C0,#B8,#50,#26,#91
  14765.                 db #87,#23,#08,#45,#70,#19,#58,#1E,#57
  14766.                 db #03,#02,#C1,#A0,#04,#F4,#3C,#20,#0E
  14767.                 db #4A,#15,#01,#05,#50,#51,#84,#26,#1D
  14768.                 db #4A,#87,#82,#A8,#C0,#98,#0C,#1A,#0F
  14769.                 db #09,#24,#41,#40,#52,#9A,#2C,#20,#8B
  14770.                 db #85,#03,#C3,#48,#F2,#58,#5C,#98,#56
  14771.                 db #06,#87,#4A,#2A,#20,#80,#5C,#12,#8E
  14772.                 db #04,#01,#40,#E0,#70,#C0,#21,#14,#83
  14773.                 db #20,#85,#89,#A1,#30,#A2,#80,#1E,#1E
  14774.                 db #06,#03,#83,#49,#9A,#80,#58,#00,#13
  14775.                 db #08,#18,#82,#E9,#D2,#D0,#19,#18,#10
  14776.                 db #08,#20,#E1,#41,#60,#50,#4C,#34,#5A
  14777.                 db #04,#23,#09,#40,#81,#20,#01,#0C,#62
  14778.                 db #04,#06,#08,#09,#E0,#DA,#78,#98,#08
  14779.                 db #44,#04,#01,#01,#F0,#00,#11,#0E,#4B
  14780.                 db #25,#D4,#8A,#25,#40,#A0,#3C,#1C,#0D
  14781.                 db #07,#02,#93,#64,#C0,#68,#48,#30,#5D
  14782.                 db #0C,#88,#52,#41,#80,#58,#71,#42,#0F
  14783.                 db #06,#83,#4B,#21,#D4,#78,#60,#30,#0B
  14784.                 db #0E,#28,#49,#44,#C2,#70,#28,#20,#1D
  14785.                 db #48,#05,#02,#E0,#A0,#18,#44,#32,#91
  14786.                 db #27,#81,#C8,#60,#70,#D0,#4C,#2C,#8F
  14787.                 db #2C,#02,#02,#60,#D0,#6A,#58,#34,#9A
  14788.                 db #CA,#14,#E9,#E4,#D0,#C8,#6C,#18,#1C
  14789.                 db #00,#25,#C9,#E1,#A0,#48,#40,#2E,#00
  14790.                 db #4A,#C4,#82,#A1,#50,#D0,#08,#2C,#97
  14791.                 db #26,#05,#83,#01,#90,#A2,#4A,#AC,#17
  14792.                 db #0C,#08,#52,#31,#50,#B8,#38,#40,#21
  14793.                 db #49,#05,#29,#85,#20,#51,#1C,#3C,#00
  14794.                 db #0E,#A2,#81,#81,#E0,#A8,#89,#36,#19
  14795.                 db #0B,#86,#C2,#41,#40,#F0,#69,#1A,#14
  14796.                 db #0D,#83,#02,#C8,#92,#60,#2C,#2E,#17
  14797.                 db #04,#06,#43,#C0,#E4,#B0,#24,#16,#07
  14798.                 db #24,#95,#02,#60,#C0,#90,#65,#38,#44
  14799.                 db #07,#8A,#02,#00,#E4,#98,#6C,#1C,#1A
  14800.                 db #09,#08,#D2,#84,#60,#62,#5C,#AA,#0C
  14801.                 db #49,#96,#91,#81,#60,#62,#60,#84,#52
  14802.                 db #28,#53,#08,#C5,#82,#B1,#39,#0C,#15
  14803.                 db #23,#A3,#C0,#C9,#12,#00,#38,#30,#1D
  14804.                 db #0D,#00,#0B,#48,#D0,#78,#71,#18,#59
  14805.                 db #2A,#86,#42,#28,#E0,#70,#34,#3A,#8B
  14806.                 db #27,#05,#43,#A1,#14,#80,#6D,#30,#53
  14807.                 db #03,#84,#08,#01,#54,#91,#48,#2A,#96
  14808.                 db #07,#85,#51,#24,#A0,#F0,#38,#36,#98
  14809.                 db #20,#86,#43,#A8,#02,#92,#64,#84,#19
  14810.                 db #0B,#A3,#83,#41,#B0,#9A,#3E,#28,#18
  14811.                 db #0A,#14,#41,#48,#70,#C8,#50,#30,#1C
  14812.                 db #2E,#A3,#8C,#88,#E0,#9A,#38,#1F,#51
  14813.                 db #24,#80,#C3,#E8,#A0,#E0,#0C,#18,#0A
  14814.                 db #00,#20,#00,#C0,#70,#18,#64,#00,#0C
  14815.                 db #44,#94,#89,#84,#12,#D0,#4C,#B4,#00
  14816.                 db #07,#87,#28,#04,#E0,#F0,#40,#A6,#9A
  14817.                 db #2E,#24,#02,#89,#30,#60,#79,#10,#61
  14818.                 db #4B,#48,#13,#65,#10,#00,#2C,#B2,#22
  14819.                 db #4E,#87,#41,#89,#D3,#10,#00,#16,#5C
  14820.                 db #2D,#26,#44,#49,#92,#68,#69,#2E,#18
  14821.                 db #4A,#08,#C0,#01,#80,#C9,#35,#36,#1E
  14822.                 db #4D,#C4,#82,#61,#F0,#00,#35,#16,#11
  14823.                 db #2B,#83,#C3,#01,#00,#D8,#2C,#2A,#00
  14824.                 db #0E,#96,#50,#05,#34,#00,#09,#00,#52
  14825.                 db #04,#90,#83,#80,#54,#01,#75,#00,#0A
  14826.                 db #40,#12,#41,#22,#04,#00,#28,#1E,#0E
  14827.                 db #07,#04,#91,#34,#F4,#0C,#69,#02,#4D
  14828.                 db #0A,#94,#01,#A1,#40,#C8,#50,#B0,#1C
  14829.                 db #2E,#A3,#8C,#88,#E0,#9A,#38,#36,#1C
  14830.                 db #06,#A3,#81,#C1,#20,#78,#38,#1E,#18
  14831.                 db #43,#C4,#42,#A4,#D4,#98,#30,#26,#0C
  14832.                 db #48,#52,#41,#E0,#70,#49,#50,#26,#0C
  14833.                 db #09,#06,#53,#85,#B0,#70,#68,#24,#23
  14834.                 db #4A,#01,#01,#E2,#80,#80,#39,#27,#4C
  14835.                 db #28,#21,#89,#E8,#60,#6A,#66,#0C,#05
  14836.                 db #04,#06,#02,#61,#80,#88,#28,#24,#81
  14837.                 db #A4,#85,#09,#80,#A0,#C2,#54,#1C,#17
  14838.                 db #0A,#27,#A1,#E5,#20,#18,#68,#22,#0B
  14839.                 db #02,#05,#C0,#00,#04,#B0,#24,#06,#87
  14840.                 db #24,#93,#40,#64,#D2,#51,#24,#B0,#07
  14841.                 db #05,#07,#42,#00,#B0,#2A,#78,#2C,#07
  14842.                 db #00,#80,#02,#88,#48,#B8,#34,#22,#16
  14843.                 db #0C,#26,#82,#C5,#60,#88,#50,#08,#9B
  14844.                 db #23,#01,#00,#01,#20,#18,#01,#36,#13
  14845.                 db #46,#05,#49,#49,#C0,#B0,#45,#08,#49
  14846.                 db #23,#01,#40,#80,#50,#A0,#4C,#2C,#95
  14847.                 db #01,#81,#02,#A1,#50,#20,#10,#24,#12
  14848.                 db #02,#21,#00,#40,#30,#80,#4C,#A8,#19
  14849.                 db #07,#06,#42,#60,#B4,#70,#58,#38,#1B
  14850.                 db #0D,#05,#C2,#08,#32,#19,#2C,#1A,#54
  14851.                 db #08,#82,#C2,#A0,#E0,#60,#10,#16,#A3
  14852.                 db #28,#83,#41,#A0,#24,#4C,#4D,#0A,#42
  14853.                 db #09,#04,#80,#20,#10,#00,#00,#22,#12
  14854.                 db #04,#27,#21,#25,#24,#68,#29,#1B,#46
  14855.                 db #26,#80,#11,#60,#B0,#02,#2E,#1E,#0B
  14856.                 db #22,#02,#C2,#28,#70,#68,#2C,#1E,#87
  14857.                 db #22,#16,#0C,#26,#82,#C5,#60,#88,#50
  14858.                 db #08,#9B,#23,#01,#00,#01,#20,#18,#01
  14859.                 db #36,#13,#46,#05,#49,#49,#C0,#B0,#45
  14860.                 db #08,#49,#23,#01,#40,#80,#50,#A0,#4C
  14861.                 db #2C,#95,#01,#81,#02,#A1,#50,#20,#10
  14862.                 db #24,#12,#02,#21,#00,#40,#30
  14863.  
  14864.                 ;^^^ that table ends exactly at #CFFF !!!!
  14865. end
  14866.  
  14867.  
  14868.                 ; below is only data memory (tables and variables), zeroed at start
  14869.  
  14870.                 ds 0xD000-$
  14871.  
  14872. BRD_88_0:       ds 8            ; DATA XREF: START_POINT+6B
  14873.                                         ; sub_8C20-71D ...
  14874.                 db    0
  14875. byte_D009:      db 0                    ; DATA XREF: sub_B75A:loc_B781
  14876.                                         ; RAM:B7AA ...
  14877. byte_D00A:      db 0                    ; DATA XREF: sub_8C20:loc_8142
  14878.                                         ; sub_8C20:loc_8253 ...
  14879. byte_D00B:      db 0                    ; DATA XREF: sub_AFC5+A6 sub_AFC5+E6 ...
  14880.                 db    0
  14881. word_D00D:      dw 0                    ; DATA XREF: sub_8C20-574 sub_AD40+2 ...
  14882.                 db    0
  14883. BRD_88_1:       ds 8
  14884.                 db    0
  14885. byte_D019:      db 0                    ; DATA XREF: sub_AFC5+B2
  14886.                                         ; sub_B47F+188 ...
  14887. byte_D01A:      db 0                    ; DATA XREF: sub_B47F+293
  14888.                                         ; sub_B75A+1B   ...
  14889. byte_D01B:      db 0                    ; DATA XREF: RAM:B7B7   sub_B943+20
  14890. byte_D01C:      db 0                    ; DATA XREF: sub_AFC5+A9
  14891.                                         ; sub_B47F+1E2 ...
  14892. byte_D01D:      db 0                    ; DATA XREF: sub_AB53+1 sub_B47F-2D     ...
  14893. byte_D01E:      db 0                    ; DATA XREF: sub_B19C+33
  14894.                                         ; sub_B47F+118 ...
  14895.                 db    0
  14896. BRD_88_2:       ds 8
  14897.                 db    0
  14898. byte_D029:      db 0                    ; DATA XREF: sub_8C20-9C9
  14899.                                         ; sub_8C20-6C8
  14900. byte_D02A:      db 0                    ; DATA XREF: sub_AFC5+126
  14901.                                         ; sub_B1EB+11   ...
  14902. word_D02B:      dw 0                    ; DATA XREF: sub_8C20-AB0
  14903.                                         ; sub_8DE9+6E   ...
  14904. byte_D02D:      db 0                    ; DATA XREF: sub_8C20-AD6
  14905.                                         ; sub_8C20:loc_82D7 ...
  14906. byte_D02E:      db 0                    ; DATA XREF: sub_AFC5+3B sub_B19C+1D
  14907.                 db    0
  14908. BRD_88_3:       ds 8
  14909.                 db    0
  14910. word_D039:      dw 0                    ; DATA XREF: sub_BC00+E2
  14911.                                         ; sub_BC00+23A ...
  14912. byte_D03B:      db 0                    ; DATA XREF: sub_AD40+6 sub_AD40+57     ...
  14913. byte_D03C:      db 0                    ; DATA XREF: sub_AFC5+10F
  14914.                                         ; sub_AFC5+148 ...
  14915. word_D03D:      dw 0                    ; DATA XREF: sub_AD40+1A sub_AD40+AD ...
  14916.                 db    0
  14917. BRD_88_4:       ds 8
  14918.                 db    0
  14919. byte_D049:      db 0                    ; DATA XREF: sub_8C20-B62 ;move # (1..N)
  14920.                                         ; sub_8C20-B37 ...
  14921. word_D04A:      dw 0                    ; DATA XREF: sub_AB53+8 sub_AB53+CD     ...
  14922. byte_D04C:      db 0                    ; DATA XREF: sub_A932+10 sub_AFC5+2D ...
  14923. byte_D04D:      db 0                    ; DATA XREF: sub_8C20-B24
  14924.                                         ; sub_8C20-654 ...
  14925. byte_D04E:      db 0                    ; DATA XREF: sub_AB53+18 sub_AB53+29 ...
  14926.                 db    0
  14927. BRD_88_5:       ds 8
  14928.                 db    0
  14929. word_D059:      dw 0                    ; DATA XREF: sub_8C20-A8E
  14930.                                         ; sub_8C20-A35 ...
  14931. byte_D05B:      db 0                    ; DATA XREF: sub_8C20-6CB
  14932.                                         ; sub_8C20-1C8 ...
  14933. word_D05C:      dw 0                    ; DATA XREF: sub_8C20-8B2
  14934.                                         ; sub_8C20-6D4 ...
  14935. byte_D05E:      db 0                    ; DATA XREF: sub_8C20-6D1 sub_8B66+9
  14936.                 db    0
  14937. BRD_88_6:       ds 8
  14938.                 db    0
  14939. word_D069:      dw 0                    ; DATA XREF: sub_AB53+B sub_AB53+35     ...
  14940. JP_ADDR:        dw 0                    ; DATA XREF: RAM:AB4F   sub_B75A+2D ...
  14941. word_D06D:      dw 0                    ; DATA XREF: sub_B47F+134
  14942.                                         ; sub_B47F+16A ...
  14943.                 db    0
  14944. BRD_88_7:       ds 8
  14945.                 db    0
  14946. byte_D079:      db 0                    ; DATA XREF: sub_C254+21E
  14947.                                         ; sub_C5FF+84   ...
  14948. byte_D07A:      db 0                    ; DATA XREF: sub_B36B+13 sub_B47F+2     ...
  14949.                 db    0
  14950.                 db    0
  14951.                 db    0
  14952.                 db    0
  14953.                 db    0
  14954. unk_D080:       db    0                 ; DATA XREF: InitBoard_ClearMoves+18
  14955.                 db    0
  14956.                 db    0
  14957.                 db    0
  14958.                 db    0
  14959.                 db    0
  14960. word_D086:      dw 0                    ; DATA XREF: sub_AB53+45 sub_AB53+6A
  14961. word_D088:      dw 0                    ; DATA XREF: sub_8C20-1FB
  14962.                                         ; sub_8C20:loc_8A2F ...
  14963. byte_D08A:      db 0                    ; DATA XREF: sub_AFC5+A0
  14964.                                         ; sub_AFC5+1A2 ...
  14965. byte_D08B:      db 0                    ; DATA XREF: sub_AFC5+70 sub_AFC5+AD ...
  14966. byte_D08C:      db 0                    ; DATA XREF: sub_AFC5+A3
  14967.                                         ; sub_AFC5+1A5 ...
  14968. byte_D08D:      db 0                    ; DATA XREF: sub_8C20-657
  14969.                                         ; sub_8C20-634 ...
  14970. byte_D08E:      db 0                    ; DATA XREF: sub_8C20-661
  14971.                 db    0
  14972.                 db    0
  14973.                 db    0
  14974.                 db    0
  14975. RAND_SEED:      db 0                    ; DATA XREF: GEN_RANDBYTE+3
  14976.                                         ; GEN_RANDBYTE+8
  14977.                 db    0
  14978.                 db    0
  14979.                 db    0
  14980. byte_D097:      db 0                    ; DATA XREF: InitBoard_ClearMoves+49
  14981.                                         ; sub_A94F:loc_A961 ...
  14982. byte_D098:      db 0                    ; DATA XREF: sub_A6F7+34 sub_AFC5+5F ...
  14983. word_D099:      dw 0                    ; DATA XREF: InitBoard_ClearMoves+58
  14984.                 db    0
  14985.                 db    0
  14986.                 db    0
  14987. byte_D09E:      db 0                    ; DATA XREF: sub_8C20-A4E ;end of opening?
  14988.                                         ; sub_8C20-90D ...
  14989. word_D09F:      dw 0                    ; DATA XREF: sub_8C20-B58
  14990.                                         ; sub_8C20:loc_811C ...
  14991.                 db    0
  14992.                 db    0
  14993.                 db    0
  14994.                 db    0
  14995.                 db    0
  14996.                 db    0
  14997.                 db    0
  14998.                 db    0
  14999.                 db    0
  15000.                 db    0
  15001.                 db    0
  15002.                 db    0
  15003.                 db    0
  15004.                 db    0
  15005.                 db    0
  15006.                 db    0
  15007. byte_D0B1:      db 0                    ; DATA XREF: START_POINT+8F
  15008.                                         ; sub_8C20:loc_8515 ...
  15009. byte_D0B2:      db 0                    ; DATA XREF: sub_8C20-ACD
  15010.                                         ; sub_8C20-5A5 ...
  15011. byte_D0B3:      db 0                    ; DATA XREF: sub_8C20-B66
  15012.                                         ; sub_8C20-8DF ...
  15013.                                         ; bit 3 -- swap clocks ;d3=swap board
  15014. byte_D0B4:      db 0                    ; DATA XREF: sub_92D7-123C ;d5=invisible board?
  15015.                                         ; sub_8C20-AEE ...
  15016.                 db    0
  15017. byte_D0B6:      db 0                    ; DATA XREF: sub_8C20:loc_81A1
  15018.                                         ; sub_8C20-A48 ...
  15019. byte_D0B7:      db 0                    ; DATA XREF: sub_8C20-68A
  15020.                                         ; sub_A08D:loc_A0AF ...
  15021. byte_D0B8:      db 0                    ; DATA XREF: sub_8C20-885
  15022.                                         ; sub_8C20-873 ...
  15023.                 db    0
  15024.                 db    0
  15025. word_D0BB:      dw 0                    ; DATA XREF: sub_8C20-895
  15026.                                         ; sub_8C20-7C0 ...
  15027. byte_D0BD:      db 0                    ; DATA XREF: KEY_SCAN+9
  15028.                                         ; KEY_SCAN:loc_90D1 ...
  15029. SEL_SCRorBUF:   db 0                    ; DATA XREF: START_POINT+81
  15030.                                         ; sub_8D9E:loc_8DB0 ...
  15031. byte_D0BF:      db 0                    ; DATA XREF: sub_8C20-AD1
  15032.                                         ; sub_8C20-942 ...
  15033. byte_D0C0:      db 0                    ; DATA XREF: sub_96A6+14 sub_9FB2+D     ...
  15034.                 db    0
  15035. byte_D0C2:      db 0                    ; DATA XREF: sub_8C20-A0F
  15036.                                         ; sub_8C20-78E ...
  15037. byte_D0C3:      db 0                    ; DATA XREF: sub_8C20-A03
  15038.                                         ; sub_8C20-782 ...
  15039. byte_D0C4:      db 0                    ; DATA XREF: sub_8C20-A15
  15040.                                         ; sub_8C20-794 ...
  15041. byte_D0C5:      db 0                    ; DATA XREF: sub_8C20-A09
  15042.                                         ; sub_8C20-788 ...
  15043. word_D0C6:      dw 0                    ; DATA XREF: sub_8D9E+27 sub_8D9E+36 ...
  15044. word_D0C8:      dw 0                    ; DATA XREF: sub_8D9E+33 sub_8DE9+10
  15045. BRD_COLOR:      db 0                    ; DATA XREF: SET_BRD_COLOR:loc_9655
  15046.                                         ; BEEP_routine+15
  15047. byte_D0CB:      db 0                    ; DATA XREF: sub_8E81+1E
  15048.                                         ; sub_8EA7:loc_8EE5
  15049. byte_D0CC:      db 0                    ; DATA XREF: sub_8EA7:loc_8EA8
  15050.                                         ; sub_8EA7+26
  15051. byte_D0CD:      db 0                    ; DATA XREF: sub_8C20-892
  15052. scr_XY:         dw 0                    ; DATA XREF: sub_842C+8
  15053.                                         ; sub_8C20:loc_85B4 ...
  15054. scr_pix_addr:   dw 0                    ; DATA XREF: sub_8EFB+B sub_8EFB+25     ...
  15055. scr_attr_addr:  dw 0                    ; DATA XREF: sub_8EFB+14 sub_8EFB+2E ...
  15056. NEED_SCR2BUF:   db 0                    ; DATA XREF: sub_8D2C+A
  15057.                                         ; PRINT_STR_FF:PRINT_STR_A ...
  15058. word_D0D5:      dw 0                    ; DATA XREF: sub_965C+4 sub_9F42 ...
  15059. TMP_BOARD_PTR:  dw 0                    ; DATA XREF: sub_93A4:loc_93A7
  15060.                                         ; sub_93A4:loc_93FC ...
  15061. curkey_D0D9:    db 0                    ; DATA XREF: sub_8C20-697
  15062.                                         ; HotKeys:HotKeys_keepkey_pop_ret
  15063. word_D0DA:      dw 0                    ; DATA XREF: sub_8C20-8CF
  15064.                                         ; sub_9128+EE
  15065. byte_D0DC:      db 0                    ; DATA XREF: sub_8C20:loc_835C
  15066.                                         ; sub_8C20-76D ...
  15067. DECREMENT_50HZ: db 0                    ; DATA XREF: INT_PROC+4 sub_8D9E+46     ...
  15068.                 db    0
  15069. byte_D0DF:      db 0                    ; DATA XREF: sub_8C20-AA9
  15070.                                         ; sub_8C20:loc_81AA ...
  15071. CFG_BITS:       db 0                    ; DATA XREF: sub_8C20-B4F
  15072.                                         ; sub_8C20-AFC ...
  15073.                                         ; bit2=1 -- there is serial printer
  15074.                                         ; bit3=1 -- there is zx printer
  15075. byte_D0E1:      db 0                    ; DATA XREF: sub_A0F7+4 PRT_DETECT+1 ...
  15076. baudrate_NUM:   db 0                    ; DATA XREF: PRT_DETECT+16
  15077.                                         ; sub_8C20+1754 ...
  15078. byte_D0E3:      db 0                    ; DATA XREF: sub_8C20-ABC
  15079. INC_SECONDS:    dw 0                    ; DATA XREF: sub_8C20-AB3
  15080.                                         ; sub_8C20-910 ...
  15081. unk_D0E6:       db    0                 ; DATA XREF: sub_AB53+F
  15082.                                         ; sub_AB53:loc_ABEF
  15083.                 db    0
  15084.                 db    0
  15085.                 db    0
  15086.                 db    0
  15087.                 db    0
  15088.                 db    0
  15089.                 db    0
  15090.                 db    0
  15091. byte_D0EF:      db 0                    ; DATA XREF: sub_AB53+32 sub_AFC5+6D
  15092. byte_D0F0:      db 0                    ; DATA XREF: START_POINT+97
  15093. byte_D0F1:      db 0                    ; DATA XREF: sub_8F4D+3C sub_AFC5+85 ...
  15094. byte_D0F2:      db 0                    ; DATA XREF: sub_AFC5+88
  15095.                                         ; sub_AFC5+18F ...
  15096. byte_D0F3:      db 0                    ; DATA XREF: sub_8C20-AB9
  15097.                                         ; sub_8F4D+28   ...
  15098. byte_D0F4:      db 0                    ; DATA XREF: sub_8C20-201
  15099.                                         ; sub_8C20-179 ...
  15100. ptr_stk_1bvalue:dw 0                    ; DATA XREF: sub_8C20-9D7
  15101.                                         ; sub_8C20-9D2 ...
  15102. word_D0F7:      dw 0                    ; DATA XREF: sub_8C20-B1F
  15103.                                         ; sub_8C20-9E4 ...
  15104.                 db    0
  15105.                 db    0
  15106.                 db    0
  15107.                 db    0
  15108.                 db    0
  15109.                 db    0
  15110. byte_D0FF:      db 0                    ; DATA XREF: InitBoard_ClearMoves+1
  15111. word_D100:      dw 0                    ; DATA XREF: sub_8C20-532
  15112.                                         ; InitBoard_ClearMoves+24       ...
  15113.                 db    0
  15114.                 db    0
  15115.                 db    0
  15116.                 db    0
  15117.                 db    0
  15118.                 db    0
  15119. byte_D108:      db 0                    ; DATA XREF: sub_AFC5+29
  15120.                                         ; sub_BC00:loc_C0AE ...
  15121. byte_D109:      db 0                    ; DATA XREF: sub_C1EF:loc_C1A4
  15122. word_D10A:      dw 0                    ; DATA XREF: sub_BC00+244
  15123.                                         ; sub_BC00+254 ...
  15124. word_D10C:      dw 0                    ; DATA XREF: sub_BC00+24B
  15125.                                         ; sub_BC00:loc_BE57
  15126.                 db    0
  15127.                 db    0
  15128. byte_D110:      db 0                    ; DATA XREF: sub_BC00+4B7
  15129.                 db    0
  15130. word_D112:      dw 0                    ; DATA XREF: sub_BC00+25A
  15131.                                         ; sub_BC00+26A
  15132. word_D114:      dw 0                    ; DATA XREF: sub_BC00+261
  15133.                                         ; sub_BC00:loc_BE6D
  15134.                 db    0
  15135.                 db    0
  15136. byte_D118:      db 0                    ; DATA XREF: sub_BC00+4BE
  15137.                 db    0
  15138. word_D11A:      dw 0                    ; DATA XREF: sub_BC00+270
  15139.                                         ; sub_BC00+280
  15140. word_D11C:      dw 0                    ; DATA XREF: sub_BC00+277
  15141.                                         ; sub_BC00:loc_BE83
  15142.                 db    0
  15143.                 db    0
  15144. byte_D120:      db 0                    ; DATA XREF: sub_BC00+4C5
  15145.                 db    0
  15146. word_D122:      dw 0                    ; DATA XREF: sub_BC00+286
  15147.                                         ; sub_BC00+296
  15148. word_D124:      dw 0                    ; DATA XREF: sub_BC00+28D
  15149.                                         ; sub_BC00:loc_BE99
  15150.                 db    0
  15151.                 db    0
  15152. byte_D128:      db 0                    ; DATA XREF: sub_BC00+4CC
  15153.                 db    0
  15154. word_D12A:      dw 0                    ; DATA XREF: sub_BC00+29C
  15155.                                         ; sub_BC00+2AC
  15156. word_D12C:      dw 0                    ; DATA XREF: sub_BC00+2A3
  15157.                                         ; sub_BC00:loc_BEAF
  15158.                 db    0
  15159.                 db    0
  15160. byte_D130:      db 0                    ; DATA XREF: sub_BC00+4D3
  15161.                 db    0
  15162. word_D132:      dw 0                    ; DATA XREF: sub_BC00+2B2
  15163.                                         ; sub_BC00+2C2
  15164. word_D134:      dw 0                    ; DATA XREF: sub_BC00+2B9
  15165.                                         ; sub_BC00:loc_BEC5
  15166.                 db    0
  15167.                 db    0
  15168. byte_D138:      db 0                    ; DATA XREF: sub_BC00+4DA
  15169.                 db    0
  15170. word_D13A:      dw 0                    ; DATA XREF: sub_BC00+2C8
  15171.                                         ; sub_BC00+2D8
  15172. word_D13C:      dw 0                    ; DATA XREF: sub_BC00+2CF
  15173.                                         ; sub_BC00:loc_BEDB
  15174.                 db    0
  15175.                 db    0
  15176. unk_D140:       db    0                 ; DATA XREF: sub_881D   sub_A94F+7E ...
  15177. byte_D141:      db 0                    ; DATA XREF: sub_BC00+2E9
  15178. word_D142:      dw 0                    ; DATA XREF: sub_BC00+2DE
  15179.                                         ; sub_BC00+2EF
  15180. word_D144:      dw 0                    ; DATA XREF: sub_BC00+2E5
  15181.                                         ; sub_BC00:loc_BEF2
  15182.                 db    0
  15183.                 db    0
  15184. unk_D148:       db    0                 ; DATA XREF: sub_BC00+4ED
  15185. byte_D149:      db 0                    ; DATA XREF: sub_BC00+300
  15186. word_D14A:      dw 0                    ; DATA XREF: sub_BC00+2F5
  15187.                                         ; sub_BC00+306
  15188. word_D14C:      dw 0                    ; DATA XREF: sub_BC00+2FC
  15189.                                         ; sub_BC00:loc_BF09
  15190.                 db    0
  15191.                 db    0
  15192. unk_D150:       db    0                 ; DATA XREF: sub_BC00+4F5
  15193. byte_D151:      db 0                    ; DATA XREF: sub_BC00+317
  15194. word_D152:      dw 0                    ; DATA XREF: sub_BC00+30C
  15195.                                         ; sub_BC00+31D
  15196. word_D154:      dw 0                    ; DATA XREF: sub_BC00+313
  15197.                                         ; sub_BC00:loc_BF20
  15198.                 db    0
  15199.                 db    0
  15200. unk_D158:       db    0                 ; DATA XREF: sub_BC00+4FD
  15201. byte_D159:      db 0                    ; DATA XREF: sub_BC00+32E
  15202. word_D15A:      dw 0                    ; DATA XREF: sub_BC00+323
  15203.                                         ; sub_BC00+334
  15204. word_D15C:      dw 0                    ; DATA XREF: sub_BC00+32A
  15205.                                         ; sub_BC00:loc_BF37
  15206.                 db    0
  15207.                 db    0
  15208. unk_D160:       db    0                 ; DATA XREF: sub_BC00+505
  15209. byte_D161:      db 0                    ; DATA XREF: sub_BC00+345
  15210. word_D162:      dw 0                    ; DATA XREF: sub_BC00+33A
  15211.                                         ; sub_BC00+34B
  15212. word_D164:      dw 0                    ; DATA XREF: sub_BC00+341
  15213.                                         ; sub_BC00:loc_BF4E
  15214.                 db    0
  15215.                 db    0
  15216. unk_D168:       db    0                 ; DATA XREF: sub_BC00+50D
  15217. byte_D169:      db 0                    ; DATA XREF: sub_BC00+35C
  15218. word_D16A:      dw 0                    ; DATA XREF: sub_BC00+351
  15219.                                         ; sub_BC00+362
  15220. word_D16C:      dw 0                    ; DATA XREF: sub_BC00+358
  15221.                                         ; sub_BC00:loc_BF65
  15222.                 db    0
  15223.                 db    0
  15224. unk_D170:       db    0                 ; DATA XREF: sub_BC00+515
  15225. byte_D171:      db 0                    ; DATA XREF: sub_BC00+373
  15226. word_D172:      dw 0                    ; DATA XREF: sub_BC00+368
  15227.                                         ; sub_BC00+379
  15228. word_D174:      dw 0                    ; DATA XREF: sub_BC00+36F
  15229.                                         ; sub_BC00:loc_BF7C
  15230.                 db    0
  15231.                 db    0
  15232. unk_D178:       db    0                 ; DATA XREF: sub_BC00+51D
  15233. byte_D179:      db 0                    ; DATA XREF: sub_BC00+38A
  15234. word_D17A:      dw 0                    ; DATA XREF: sub_BC00+37F
  15235.                                         ; sub_BC00+390
  15236. word_D17C:      dw 0                    ; DATA XREF: sub_BC00+386
  15237.                                         ; sub_BC00:loc_BF93
  15238.                 db    0
  15239.                 db    0
  15240. word_D180:      dw 0                    ; DATA XREF: sub_A94F+31
  15241.                                         ; sub_BC00+535
  15242.                 db    0
  15243.                 db    0
  15244.                 db    0
  15245.                 db    0
  15246.                 db    0
  15247.                 db    0
  15248. byte_D188:      db 0                    ; DATA XREF: sub_BC00+30 sub_C1EF-55
  15249. byte_D189:      db 0                    ; DATA XREF: sub_C1EF-5C
  15250. word_D18A:      dw 0                    ; DATA XREF: sub_BC00+E5 sub_BC00+F5
  15251. word_D18C:      dw 0                    ; DATA XREF: sub_BC00+EC
  15252.                                         ; sub_BC00:loc_BCF8
  15253.                 db    0
  15254.                 db    0
  15255. byte_D190:      db 0                    ; DATA XREF: sub_BC00+37
  15256.                 db    0
  15257. word_D192:      dw 0                    ; DATA XREF: sub_BC00+FB
  15258.                                         ; sub_BC00+10B
  15259. word_D194:      dw 0                    ; DATA XREF: sub_BC00+102
  15260.                                         ; sub_BC00:loc_BD0E
  15261.                 db    0
  15262.                 db    0
  15263. byte_D198:      db 0                    ; DATA XREF: sub_BC00+3E
  15264.                 db    0
  15265. word_D19A:      dw 0                    ; DATA XREF: sub_BC00+111
  15266.                                         ; sub_BC00+121
  15267. word_D19C:      dw 0                    ; DATA XREF: sub_BC00+118
  15268.                                         ; sub_BC00:loc_BD24
  15269.                 db    0
  15270.                 db    0
  15271. byte_D1A0:      db 0                    ; DATA XREF: sub_BC00+45
  15272.                 db    0
  15273. word_D1A2:      dw 0                    ; DATA XREF: sub_BC00+127
  15274.                                         ; sub_BC00+137
  15275. word_D1A4:      dw 0                    ; DATA XREF: sub_BC00+12E
  15276.                                         ; sub_BC00:loc_BD3A
  15277.                 db    0
  15278.                 db    0
  15279. byte_D1A8:      db 0                    ; DATA XREF: sub_BC00+4C
  15280.                 db    0
  15281. word_D1AA:      dw 0                    ; DATA XREF: sub_BC00+13D
  15282.                                         ; sub_BC00+14D
  15283. word_D1AC:      dw 0                    ; DATA XREF: sub_BC00+144
  15284.                                         ; sub_BC00:loc_BD50
  15285.                 db    0
  15286.                 db    0
  15287. byte_D1B0:      db 0                    ; DATA XREF: sub_BC00+53
  15288.                 db    0
  15289. word_D1B2:      dw 0                    ; DATA XREF: sub_BC00+153
  15290.                                         ; sub_BC00+163
  15291. word_D1B4:      dw 0                    ; DATA XREF: sub_BC00+15A
  15292.                                         ; sub_BC00:loc_BD66
  15293.                 db    0
  15294.                 db    0
  15295. byte_D1B8:      db 0                    ; DATA XREF: sub_BC00+5A
  15296.                 db    0
  15297. word_D1BA:      dw 0                    ; DATA XREF: sub_BC00+169
  15298.                                         ; sub_BC00+179
  15299. word_D1BC:      dw 0                    ; DATA XREF: sub_BC00+170
  15300.                                         ; sub_BC00:loc_BD7C
  15301.                 db    0
  15302.                 db    0
  15303. ;block 0
  15304. word_D1C0:      dw 0                    ; DATA XREF: sub_BC00+65
  15305.                                         ; sub_BC00+18A
  15306. word_D1C2:      dw 0                    ; DATA XREF: sub_BC00+17F
  15307.                                         ; sub_BC00+190
  15308. word_D1C4:      dw 0                    ; DATA XREF: sub_BC00+186
  15309.                                         ; sub_BC00:loc_BD93
  15310.                 db    0
  15311.                 db    0
  15312. ;block 1
  15313. word_D1C8:      dw 0                    ; DATA XREF: sub_BC00+6D
  15314.                                         ; sub_BC00+1A1
  15315. word_D1CA:      dw 0                    ; DATA XREF: sub_BC00+196
  15316.                                         ; sub_BC00+1A7
  15317. word_D1CC:      dw 0                    ; DATA XREF: sub_BC00+19D
  15318.                                         ; sub_BC00:loc_BDAA
  15319.                 db    0
  15320.                 db    0
  15321. ;block 2
  15322. word_D1D0:      dw 0                    ; DATA XREF: sub_BC00+75
  15323.                                         ; sub_BC00+1B8
  15324. word_D1D2:      dw 0                    ; DATA XREF: sub_BC00+1AD
  15325.                                         ; sub_BC00+1BE
  15326. word_D1D4:      dw 0                    ; DATA XREF: sub_BC00+1B4
  15327.                                         ; sub_BC00:loc_BDC1
  15328.                 db    0
  15329.                 db    0
  15330. ;block 3
  15331. word_D1D8:      dw 0                    ; DATA XREF: sub_BC00+7D
  15332.                                         ; sub_BC00+1CF
  15333. word_D1DA:      dw 0                    ; DATA XREF: sub_BC00+1C4
  15334.                                         ; sub_BC00+1D5
  15335. word_D1DC:      dw 0                    ; DATA XREF: sub_BC00+1CB
  15336.                                         ; sub_BC00:loc_BDD8
  15337.                 db    0
  15338.                 db    0
  15339. ;block 4
  15340. word_D1E0:      dw 0                    ; DATA XREF: sub_BC00+85
  15341.                                         ; sub_BC00+1E6
  15342. word_D1E2:      dw 0                    ; DATA XREF: sub_BC00+1DB
  15343.                                         ; sub_BC00+1EC
  15344. word_D1E4:      dw 0                    ; DATA XREF: sub_BC00+1E2
  15345.                                         ; sub_BC00:loc_BDEF
  15346.                 db    0
  15347.                 db    0
  15348. ;block 5
  15349. word_D1E8:      dw 0                    ; DATA XREF: sub_BC00+8D
  15350.                                         ; sub_BC00+1FD
  15351. word_D1EA:      dw 0                    ; DATA XREF: sub_BC00+1F2
  15352.                                         ; sub_BC00+203
  15353. word_D1EC:      dw 0                    ; DATA XREF: sub_BC00+1F9
  15354.                                         ; sub_BC00:loc_BE06
  15355.                 db    0
  15356.                 db    0
  15357. ;block 6
  15358. word_D1F0:      dw 0                    ; DATA XREF: sub_BC00+95
  15359.                                         ; sub_BC00+214
  15360. word_D1F2:      dw 0                    ; DATA XREF: sub_BC00+209
  15361.                                         ; sub_BC00+21A
  15362. word_D1F4:      dw 0                    ; DATA XREF: sub_BC00+210
  15363.                                         ; sub_BC00:loc_BE1D
  15364.                 db    0
  15365.                 db    0
  15366. ;block 7
  15367. word_D1F8:      dw 0                    ; DATA XREF: sub_BC00+9D
  15368.                                         ; sub_BC00+22B
  15369. word_D1FA:      dw 0                    ; DATA XREF: sub_BC00+220
  15370.                                         ; sub_BC00+231
  15371. word_D1FC:      dw 0                    ; DATA XREF: sub_BC00+227
  15372.                                         ; sub_BC00:loc_BE34
  15373.                 db    0
  15374.                 db    0
  15375.  
  15376. array_D200:     db    0,   0,   0,   0,   0,   0,   0,   0 ; DATA XREF: InitBoard_ClearMoves+4
  15377.                                         ; InitBoard_ClearMoves+11       ...
  15378.                 ds 1                    ; still
  15379.                 ds 1                    ; array
  15380.                 ds 1                    ; D200
  15381. unk_D20B:       ds 1                    ; DATA XREF: sub_B34B+6
  15382.                                         ; sub_B36B:loc_B39E
  15383. byte_D20C:      ds 1                    ; DATA XREF: sub_8C20-B72 ;oldmove #?
  15384.                                         ; sub_8C20-535 ...
  15385. byte_D20D:      ds #E                   ; DATA XREF: sub_B2D1+3
  15386.                                         ; array of 14 bytes
  15387.                 ds 1
  15388.                 ds 1
  15389.                 ds 1
  15390.                 ds 1
  15391.                 ds 1
  15392.                 ds 1
  15393.                 ds 1
  15394.                 ds 1
  15395.                 ds 1
  15396.                 ds 1
  15397.                 ds 1
  15398.                 ds 1
  15399.                 ds 1
  15400.                 ds 1
  15401. unk_D229:       ds 1                    ; DATA XREF: sub_8B66+1E
  15402.                 ds 1
  15403. unk_D22B:       ds 1                    ; DATA XREF: sub_8B66+1B
  15404.                 ds 1
  15405.                 ds 1
  15406.                 ds 1
  15407.                 ds 1
  15408.                 ds 1
  15409.                 ds 1
  15410.                 ds 1
  15411.                 ds 1
  15412.                 ds 1
  15413.                 ds 1
  15414.                 ds 1
  15415.                 ds 1
  15416.                 ds 1
  15417.                 ds 1
  15418.                 ds 1
  15419.                 ds 1
  15420.                 ds 1
  15421.                 ds 1
  15422.                 ds 1
  15423.                 ds 1
  15424. word_D240:      ds 2                    ; DATA XREF: sub_8C20-B28
  15425.                                         ; sub_8C20-6C2 ...
  15426.                 ds 1
  15427.                 ds 1
  15428.                 ds 1
  15429.                 ds 1
  15430.                 ds 1
  15431.                 ds 1
  15432.                 ds 1
  15433.                 ds 1
  15434.                 ds 1
  15435.                 ds 1
  15436.                 ds 1
  15437.                 ds 1
  15438.                 ds 1
  15439.                 ds 1
  15440.                 ds 1
  15441.                 ds 1
  15442.                 ds 1
  15443.                 ds 1
  15444.                 ds 1
  15445.                 ds 1
  15446.                 ds 1
  15447.                 ds 1
  15448. byte_D258:      ds 1                    ; DATA XREF: sub_A684+23 sub_B2D1 ...
  15449.                                         ; array of 14 bytes
  15450.                 ds 1
  15451. word_D25A:      ds 2                    ; DATA XREF: sub_8C20-B19
  15452.                                         ; sub_8C20-901 ...
  15453. byte_D25C:      ds #A                   ; DATA XREF: sub_B2E2
  15454.  
  15455.  
  15456.  
  15457.  
  15458.                 ds 0xD300-$
  15459.  
  15460. byte_D300:      ds 1                    ; DATA XREF: sub_8C20-541
  15461.                                         ; sub_8C20-1D1
  15462. byte_D301:      ds 1                    ; DATA XREF: sub_8C20-547
  15463.                                         ; sub_8C20-1CB
  15464. byte_D302:      ds 1                    ; DATA XREF: sub_8C20-53B
  15465.                                         ; sub_8C20-1BA
  15466. array_64bytes:  ds #40                  ; DATA XREF: sub_8C20-52F
  15467.                                         ; sub_8C20-1D4
  15468. stk_1bvalue:    ds 1                    ; DATA XREF: START_POINT+94
  15469.                                         ; sub_8C20-B6A ...
  15470.  
  15471.  
  15472.  
  15473.  
  15474.  
  15475.                 ds 0xD800-$
  15476.                 ;stack is upwards
  15477. RAM_END_D800:                           ; DATA XREF: START_POINT:loc_8067
  15478.                                         ; START_POINT+70 ...
  15479.                    
  15480.                 ds 0xD803-$
  15481. tbl_D803:                               ; DATA XREF: sub_8C20:loc_8365
  15482.                                         ; sub_8446 ...
  15483.                                         ; some 3byte structs, #FF -- end mark
  15484.                                         ; sized kilobyte or more
  15485.  
  15486.  
  15487.  
  15488.  
  15489.                 ds 0xF000-$
  15490. unk_F000:                               ; DATA XREF: sub_8446+3 sub_92A0 ...
  15491.                        
  15492.  
  15493.  
  15494.                 ds 0xF300-$
  15495.  
  15496.                 ds 1
  15497.  
  15498. BOARD:          ds #40                  ; DATA XREF: sub_8C20-976 sub_8C6B+E ...
  15499.                
  15500.                 ds 6
  15501.  
  15502. BOARD2:         ds #40                  ; DATA XREF: sub_8C20-979
  15503.                                         ; sub_8DE9+58   ...
  15504.                 ds 6
  15505.  
  15506. save_SP:        ds 2                    ; DATA XREF: START_POINT+33
  15507. save_HLtick:    ds 2                    ; DATA XREF: START_POINT+38
  15508. save_ERRSP:     ds 2                    ; DATA XREF: RAM:803E
  15509.  
  15510.  
  15511.  
  15512.  
  15513.                 ds 0xFEFF-$
  15514. INT_VEC:        ds 2
  15515.  
  15516.  
  15517.  
  15518.  
  15519.                 ;savebin "cyrus2_compilable.bin",#8000,#5000
  15520.                 ;labelslist "cyrus2_compilable.lab"
  15521.                 ;end
  15522.        if FIX
  15523.         savebin "cyrus960.com",begin,end-begin
  15524.        else
  15525.         savebin "cyrus2.com",begin,end-begin
  15526.        endif
  15527.         LABELSLIST "../../../us/user.l",1
  15528.