Top secrets sources NedoPC pentevo

Rev

Rev 588 | Rev 605 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?


;LAST UPDATE: 05.01.2013 savelij

;Ž‘‹…„Ž‚€’…‹œŽ‘’œ „‹Ÿ RST 8
;‘’€›‰ ‘’…Š    HL AF BC RF ADR_RET DE  ->
;-> Ž‚›‰ ‘’…Š  HL(ŽŒ… €ƒˆ ˆ Ž’ BF) DE(RAMNROM ˆ DOS7FFD) BC' DE' HL' IX IY AF' ->
;-> —’…ˆ… ŠŽ”ˆƒ€

CODE_NMIRST
                PHASE ADR_SEL_ROM
                OUT (C),A                       ;……Š‹ž—…ˆ… ‘’€ˆ– „‹Ÿ ……•Ž„Ž‚
                NOP
FOR_RET         NOP
                JP RAMSEL1

OUT_NMI         OUT (0XBE),A
                RETN

                DUPL 0X0038-$,0XFF
IM_EI_RET       EI
                RET

                DUPL 0X0066-$,0XFF
                NOP
ADR_MAGIC       JP NMI_SERVICE
ADR_NMI_JUMP    EQU $-2

                PHASE $+CPU2
;‘—ˆ’€€Ÿ ŠŽ”ˆƒ“€–ˆŸ Ž’Ž‚ „‹Ÿ RST 8
R_BF            DB 0XFF
R_77            DB 0XFF
R_EFF7          DB 0XFF
R_7FFD          DB 0XFF
R_DOS7FFD       DB 0XFF
R_RAMNROM       DB 0XFF
R_1WINA3        DB 0XFF
R_1WINA2        DB 0XFF
R_1WINA1        DB 0XFF
R_1WINA0        DB 0XFF
R_0WINA3        DB 0XFF
R_0WINA2        DB 0XFF
R_0WINA1        DB 0XFF
R_0WINA0        DB 0XFF

;‘—ˆ’€€Ÿ ŠŽ”ˆƒ“€–ˆŸ Ž’Ž‚ „‹Ÿ NMI
N_BF            DB 0XFF
N_77            DB 0XFF
N_EFF7          DB 0XFF
N_7FFD          DB 0XFF
N_DOS7FFD       DB 0XFF
N_RAMNROM       DB 0XFF
N_1WINA3        DB 0XFF
N_1WINA2        DB 0XFF
N_1WINA1        DB 0XFF
N_1WINA0        DB 0XFF
N_0WINA3        DB 0XFF
N_0WINA2        DB 0XFF
N_0WINA1        DB 0XFF
N_0WINA0        DB 0XFF
N_TEK_PALS      DUPL 0X10,0XFF

;‘Ž•€…›… …ƒˆ‘’› ˆ ‚›‡Ž‚… RST 8
RREG_FI         DB 0XFF
RREG_I          DB 0XFF                         ;IF
RREG_FF         DB 0XFF
RREG_AA         DB 0XFF                         ;AF'
RREG_IYL        DB 0XFF
RREG_IYH        DB 0XFF                         ;IY
RREG_IXL        DB 0XFF
RREG_IXH        DB 0XFF                         ;IX
RREG_LL         DB 0XFF
RREG_HH         DB 0XFF                         ;HL'
RREG_EE         DB 0XFF
RREG_DD         DB 0XFF                         ;DE'
RREG_CC         DB 0XFF
RREG_BB         DB 0XFF                         ;BC'
RDOS7FFD        DB 0XFF                         ;ˆ’› DOS7FFD ……„ ‚›‡Ž‚ŽŒ
RRAMNROM        DB 0XFF                         ;ˆ’› RAMNROM ……„ ‚›‡Ž‚ŽŒ
RPBF_CALL       DB 0XFF                         ;‘Ž„…†ˆŒŽ… Ž’€ BF ……„ ‚›‡Ž‚ŽŒ
RPAGE_CALL      DB 0XFF                         ;ŽŒ… ‘’€ˆ–› Ž’Š“„€ ˆ˜‹ˆ
RREG_E          DB 0XFF
RREG_D          DB 0XFF                         ;DE
RADRRET_L       DB 0XFF
RADRRET_H       DB 0XFF                         ;ADR_RET
REI_DI          DB 0XFF
R_R             DB 0XFF                         ;RF
RREG_C          DB 0XFF
RREG_B          DB 0XFF                         ;BC
RREG_F          DB 0XFF
RREG_A          DB 0XFF                         ;AF
RREG_L          DB 0XFF
RREG_H          DB 0XFF                         ;HL
RST8_SAVE_SP    DW 0XFF

;‘Ž•€…›… …ƒˆ‘’› ˆ ‚›‡Ž‚… NMI
;ADR_RET AF' IY IX BC' DE' HL' BC DE RF IF AF HL
NADRRET_L       DB 0XFF                         ;ADR RET
NADRRET_H       DB 0XFF                        
NREG_FF         DB 0XFF                         ;AF'
NREG_AA         DB 0XFF
NREG_IYL        DB 0XFF                         ;IY
NREG_IYH        DB 0XFF
NREG_IXL        DB 0XFF                         ;IX
NREG_IXH        DB 0XFF
NREG_CC         DB 0XFF                         ;BC'
NREG_BB         DB 0XFF                
NREG_EE         DB 0XFF                         ;DE'
NREG_DD         DB 0XFF
NREG_LL         DB 0XFF                         ;HL'
NREG_HH         DB 0XFF
NREG_C          DB 0XFF                         ;BC
NREG_B          DB 0XFF
NREG_E          DB 0XFF                         ;DE
NREG_D          DB 0XFF
NREG_EI_DI_2    DB 0XFF                         ;RF
NREG_R          DB 0XFF
NREG_EI_DI_1    DB 0XFF                         ;IF
NREG_I          DB 0XFF
NREG_F          DB 0XFF                         ;AF
NREG_A          DB 0XFF
NREG_L          DB 0XFF                         ;HL
NREG_H          DB 0XFF
NMI_SAVE_SP     DW 0XFF                         ;€„…‘ ‘Ž•€…ˆŸ ‘’…Š€ Žƒ€ŒŒ› …‚€Ž‰ Ž NMI
INTERNAL_SP     DW 0XFF                         ;€„…‘ •€…ˆŸ ‘’…Š€ ˆ €Ž’… ‘…‚ˆ‘Ž‚

B0_CPU0         DB 0XFF                         ;€‰’ „‹Ÿ Ž’€ 0 ŽŠ€ 0 Œ€…€
P0_CPU0         DB 0XFF                         ;‘’€˜ˆ‰ €‰’ €„…‘€ Ž’€ Ž’€ „‹Ÿ 0 ŽŠ€ 0 Œ€…€
B0_CPU1         DB 0XFF                         ;€‰’ „‹Ÿ Ž’€ 1 ŽŠ€ 0 Œ€…€
P0_CPU1         DB 0XFF                         ;‘’€˜ˆ‰ €‰’ €„…‘€ Ž’€ Ž’€ „‹Ÿ 1 ŽŠ€ 0 Œ€…€
B0_CPU2         DB 0XFF                         ;€‰’ „‹Ÿ Ž’€ 2 ŽŠ€ 0 Œ€…€                    
P0_CPU2         DB 0XFF                         ;‘’€˜ˆ‰ €‰’ €„…‘€ Ž’€ Ž’€ „‹Ÿ 2 ŽŠ€ 0 Œ€…€
B0_CPU3         DB 0XFF                         ;€‰’ „‹Ÿ Ž’€ 3 ŽŠ€ 0 Œ€…€                    
P0_CPU3         DB 0XFF                         ;‘’€˜ˆ‰ €‰’ €„…‘€ Ž’€ Ž’€ „‹Ÿ 3 ŽŠ€ 0 Œ€…€
B1_CPU0         DB 0XFF                         ;€‰’ „‹Ÿ Ž’€ 0 ŽŠ€ 0 Œ€…€                    
P1_CPU0         DB 0XFF                         ;‘’€˜ˆ‰ €‰’ €„…‘€ Ž’€ Ž’€ „‹Ÿ 0 ŽŠ€ 0 Œ€…€
B1_CPU1         DB 0XFF                         ;€‰’ „‹Ÿ Ž’€ 1 ŽŠ€ 0 Œ€…€                    
P1_CPU1         DB 0XFF                         ;‘’€˜ˆ‰ €‰’ €„…‘€ Ž’€ Ž’€ „‹Ÿ 1 ŽŠ€ 0 Œ€…€
B1_CPU2         DB 0XFF                         ;€‰’ „‹Ÿ Ž’€ 2 ŽŠ€ 0 Œ€…€                    
P1_CPU2         DB 0XFF                         ;‘’€˜ˆ‰ €‰’ €„…‘€ Ž’€ Ž’€ „‹Ÿ 2 ŽŠ€ 0 Œ€…€
B1_CPU3         DB 0XFF                         ;€‰’ „‹Ÿ Ž’€ 3 ŽŠ€ 0 Œ€…€                    
P1_CPU3         DB 0XFF                         ;‘’€˜ˆ‰ €‰’ €„…‘€ Ž’€ Ž’€ „‹Ÿ 3 ŽŠ€ 0 Œ€…€
B_PORT77        DB 0XFF                         ;€‰’ „‹Ÿ ‚›‚Ž„€ ‚ Ž’ ••77
P_PORT77        DB 0XFF                         ;‘’€˜ˆ‰ €‰’ €„…‘€ Ž’€ ••77

F_INTEXT_DRV    DB 0XFF                         ;”‹€ƒˆ ˆ ‚…˜ˆ•/‚“’…ˆ• ‚›‡Ž‚€• „€‰‚…Ž‚

                PHASE $-CPU2
                DUPL HIGH ($)*0X100+0XFF-$,0XFF
                DW IM_EI_RET

                DUPL HIGH ($)*0X100+0X80-$,0XFF
STACK_RST

                DUPL (HIGH ($)+1)*0X100-$,0XFF
STACK_NMI

                JP NMI_EXIT_DBG

RAMSEL1        
                LD (RST8_SAVE_SP-CPU2),SP       ;‘Ž•€ˆ‹ˆ ‘’€›‰ ‘’…Š
                LD SP,RREG_E-CPU2
                PUSH HL                         ;ŽŒ… ‘’€ˆ–› Ž’Š“„€ ˆ˜‹ˆ ˆ ‘Ž„…†ˆŒŽ… Ž’€ BF
                PUSH DE                         ;ˆ’› RAMNROM+DOS7FFD
                EXX
                PUSH BC                         ;BC'
                PUSH DE                         ;DE'
                PUSH HL                         ;HL'
                EXX
                PUSH IX                         ;IX
                PUSH IY                         ;IY
                EX AF,AF'
                PUSH AF                         ;AF'

                LD A,I
                PUSH AF                         ;IF
                LD HL,OUT_NMI
                LD (ADR_NMI_JUMP),HL
                LD A,0XC9
                LD (FOR_RET),A
                XOR A
                LD I,A
                LD HL,(RST8_SAVE_SP-CPU2)
                LD DE,RREG_E-CPU2
                LD BC,RREG_H-RPAGE_CALL
                LDIR
                LD HL,R_77-CPU2
                LD BC,RD_77
                INIR
                INI
                LD HL,(RDOS7FFD-CPU2)
                LD (R_DOS7FFD-CPU2),HL
                LD SP,STACK_RST
                LD A,(R_77-CPU2)
                AND 7
                OR 0XA8
                LD BC,0XFF77
                OUT (C),A
                PEC_OFF SHADOW_BF
                LD BC,PENT_CONF
                OUT (C),A
                PEC_ON SHADOW_BF
                LD A,(R_7FFD-CPU2)
                AND 0X10
                LD HL,R_0WINA0-CPU2
                JR Z,RAMSEL3
                LD HL,R_1WINA0-CPU2
RAMSEL3         LD A,(RPAGE_CALL-CPU2)
                LD (HL),A

;               LD HL,R_0WINA3-CPU2
;               JR Z,RAMSEL4
;               LD HL,R_1WINA3-CPU2
;RAMSEL4                LD A,(HL)
;               AND 0X3F
;               OR 0X40
                LD BC,WIN_A3
                LD A,0X40
                OUT (C),A

                LD BC,WIN_P2
                XOR A
                OUT (C),A
                LD BC,WIN_A0
                LD A,P_RST8
                LD HL,CPU2
                ADD HL,SP
                LD SP,HL
                LD HL,CONT_RST8                 ;€„…‘ Ž„Ž‹†…ˆŸ Ž€Ž’Šˆ RST 8
                PUSH HL
                JP ADR_SEL_ROM

P4_EXIT_RST8    LD HL,NMI_SERVICE
                LD (ADR_NMI_JUMP),HL
                XOR A
                LD (FOR_RET),A
                PEC_OFF SHADOW_BF
                LD BC,PENT_CONF
                LD A,(R_EFF7-CPU2)
                OUT (C),A
                PEC_ON SHADOW_BF
                LD C,LOW (WIN_A1)
                LD HL,B1_CPU1-CPU2
                LD A,3
RENS12          EX AF,AF'
                LD E,(HL)                       ;€‰’ „‹Ÿ ‡€ˆ‘ˆ ‚ Ž’
                INC HL
                LD D,(HL)                       ;‘’€˜ˆ‰ €‰’ €„…‘€ Ž’€
                INC HL
                LD A,D
                OR 0X3F
                LD B,A
                BIT 3,D
                JR NZ,RENS14
                LD A,D
                AND 3
                RRCA
                RRCA
                OUT (C),A
                RES 3,B
RENS14          OUT (C),E
                EX AF,AF'

                DEC A
                JR NZ,RENS12
                LD HL,RST8_SAVE_SP-(RREG_H-RPAGE_CALL)-CPU2
                LD DE,(RST8_SAVE_SP-CPU2)
                LD BC,RREG_H-RPAGE_CALL
                LDIR
                LD BC,(B_PORT77-CPU2)
                LD A,C
                LD C,0X77
                OUT (C),A
                LD SP,RREG_FI-CPU2
                POP AF
                LD I,A
                POP AF
                EX AF,AF'
                POP IY
                POP IX
                POP HL
                POP DE
                POP BC
                EXX
                POP DE
                POP HL
                LD SP,(RST8_SAVE_SP-CPU2)       ;‚Ž‘‘’€Ž‚ˆ‹ˆ ‘’…Š ‚›‡‚€˜…‰ Žƒ€ŒŒ›
                LD BC,ADR_RST8END               ;€„…‘ ‚Ž‡‚€’€
                PUSH BC
                LD A,(R_7FFD-CPU2)
                AND 0X10
                LD DE,(B0_CPU0-CPU2)
                JR Z,RENS13
                LD DE,(B1_CPU0-CPU2)
RENS13          LD A,D
                OR 0X3F
                LD B,A
                BIT 3,D
                JR NZ,RENS15
                SET 3,B
                LD A,E
                AND 3
                RRCA
                RRCA
                OUT (C),A
                RES 3,B
RENS15          LD A,E                          ;‘’€ˆ–€ ROM Š“„€ ‚Ž‡‚€™€’œ‘Ÿ
                LD C,LOW (WIN_A0)
                JP ADR_SEL_ROM

NMI_SERVICE     LD (NMI_SAVE_SP-CPU2),SP        ;‘Ž•€…ˆ… ‘’…Š€
                LD SP,NMI_SAVE_SP-CPU2          ;Ž‚›‰ ‘’…Š
                PUSH HL                         ;‘Ž•€ˆ‹ˆ HL
                PUSH AF                         ;‘Ž•€ˆ‹ˆ AF
                LD A,I
                PUSH AF                         ;‘Ž•€ˆ‹ˆ I, ”‹€ƒˆ ˆ …†ˆŒ …›‚€ˆ‰
                LD A,R
                PUSH AF                         ;‘Ž•€ˆ‹ˆ R
                PUSH DE                         ;‘Ž•€ˆ‹ˆ DE
                PUSH BC                         ;‘Ž•€ˆ‹ˆ BC
                EXX
                PUSH HL                         ;‘Ž•€ˆ‹ˆ €‹œ’ HL
                PUSH DE                         ;‘Ž•€ˆ‹ˆ €‹œ’ DE
                PUSH BC                         ;‘Ž•€ˆ‹ˆ €‹œ’ BC
                PUSH IX                         ;‘Ž•€ˆ‹ˆ IX
                PUSH IY                         ;‘Ž•€ˆ‹ˆ IY
                EX AF,AF'

                PUSH AF                         ;‘Ž•€ˆ‹ˆ €‹œ’ AF
                LD HL,(NMI_SAVE_SP-CPU2)
                LD E,(HL)
                INC HL
                LD D,(HL)
                PUSH DE
                LD SP,STACK_NMI
                LD HL,OUT_NMI
                LD (ADR_NMI_JUMP),HL
                LD A,0XC9
                LD (FOR_RET),A                  ;RET „‹Ÿ ……Š‹ž—…ˆŸ ‘’€ˆ– ROM/RAM
                LD A,0X80-0X0C
                LD HL,NREG_R-CPU2
                SLA (HL)
                RLA
                ADD A,(HL)
                RRCA
                LD (HL),A
                LD HL,N_BF-CPU2                 ;€„…‘ ‘Ž•€…ˆŸ Ž—ˆ’€›• …ƒˆ‘’Ž‚ ŠŽ”ˆƒ“€–ˆˆ
                IN A,(PEVO_CONF)
                LD (HL),A
                INC HL
                LD BC,RD_77
NMISERV002      INIR
                INI
                XOR A
                LD I,A                          ;Ž€Ž’—ˆŠ …›‚€ˆŸ ……‘’€‚ˆ‹ˆˆ „‹Ÿ €„…‘€ 00FF
                PEC_ON SHADOW_BF

;               LD DE,0XA70F                    ;„€‹œ˜… ‘Ž•€Ÿ…Œ ’…Š“™“ž €‹ˆ’“
;               LD BC,0XBD77
;               OUT (C),D                       ;‚Š‹ž—…ˆ… ’…Š‘’ŒŽ„€
;               LD (ADR_PALITRA),HL
;               LD BC,RD_PALITRA
;               EI
;               HALT
;               DI
;NMISERV003     LD A,E
;               BIT 3,E
;               OUT (0XFE),A
;               JR Z,NMISERV004
;               OUT (0XF6),A
;NMISERV004     IN A,(C)
;               LD (HL),A
;               INC HL
;               DEC E
;               JP P,NMISERV003                 ;€‹ˆ’“ ‘Ž•€ˆ‹ˆ
;               LD HL,MAGIC_PAL
;               LD E,0X0F
;SETPAL1                LD A,E
;               BIT 3,E
;               OUT (0XFE),A
;               JR Z,$+4
;               OUT (0XF6),A
;               LD A,(HL)
;               INC HL
;               OR %00001100
;               OUT (0XFF),A
;               DEC E
;               JP P,SETPAL1
;               LD BC,0XFF77
;               OUT (C),D

                LD BC,WIN_P2
                XOR A
                OUT (C),A                       ;‚Š‹ž—ˆ‹ˆ Ž‘‹…„žž ‘’€ˆ–“ Ž‡“
                LD B,HIGH (WIN_A3)
                LD A,0X40
                OUT (C),A                       ;‘Ÿ‹ˆ ‡€‚ˆ‘ˆŒŽ‘’œ 3 ŽŠ€ Ž’ Ž’€ 7FFD
                LD DE,CPU2
                ADD HL,DE
                LD (ADR_PALITRA),HL
                LD HL,CPU2
                ADD HL,SP
                LD SP,HL
                LD B,HIGH (WIN_A0)
                LD A,P_RST8
                OUT (C),A
;PEREHVAT       DUPL 3,0
;               LD A,(DEBUG_ONOFF)
;               AND A
;               JR NZ,IN_DEBUG
                LD HL,CONTINUE_MAGIC
                PUSH HL
                JP OUT_NMI

;IN_DEBUG       XOR A
;               IN A,(0XFE)
;               CPL
;               AND 0X1F
;               JR NZ,IN_DEBUG
;               LD B,HIGH (WIN_P0)
;               LD A,PAGE_STS
;               OUT (C),A
;               LD HL,DEBUGGER
;               PUSH HL
;               JP OUT_NMI

;‚›•Ž„ ˆ‡ Œ€ƒˆŠ€
EXITNMISERVICE  LD HL,ADR_MAGIC
                LD (HL),0XC9                    ;‡€ƒ‹“˜Š€ € MAGIC
                IN A,(PEVO_CONF)
                OR NMI_BF;SET 3,A
                OUT (PEVO_CONF),A
                AND NMI_BF!0XFF;RES 3,A
                OUT (PEVO_CONF),A
                HALT                            ;†„…Œ ‘€€’›‚€ˆŸ MAGIC
FALSE_NMI       LD HL,ADR_MAGIC
                LD (HL),0XC3                    ;€‡…˜…ˆ… Ž€Ž’—ˆŠ€ MAGIC ……„ ‚›•Ž„ŽŒ

;               LD HL,0
;ADR_PALITRA    EQU $-2
;               LD A,(N_77-CPU2)
;               LD E,0X0F
;               AND E
;               OR 0XA0
;               LD D,A
;               LD BC,0XBD77                    ;„Ž‘’“ Š €‹ˆ’…
;               OUT (C),D                       ;¢ª«.PAL
;SETPAL0                LD A,E
;               BIT 3,E
;               OUT (0XFE),A
;               JR Z,$+4
;               OUT (0XF6),A
;               LD A,(HL)
;               INC HL
;               OR %00001100
;               OUT (0XFF),A
;               DEC E
;               JP P,SETPAL0
;               LD BC,0XFF77
;               OUT (C),D

                LD C,LOW (WIN_A0)
                LD A,(N_7FFD-CPU2)
                AND 0X10
                LD HL,B0_CPU0-CPU2
                JR Z,ENS11
                LD HL,B1_CPU0-CPU2
ENS11           LD A,4
ENS12           EX AF,AF'
                LD E,(HL)                       ;€‰’ „‹Ÿ ‡€ˆ‘ˆ ‚ Ž’
                INC HL
                LD D,(HL)                       ;‘’€˜ˆ‰ €‰’ €„…‘€ Ž’€
                INC HL
                LD A,D
                OR 0X3F
                LD B,A
                BIT 3,D
                JR NZ,ENS15
                LD A,D
                AND 3
                RRCA
                RRCA
                OUT (C),A
                RES 3,B
ENS15           OUT (C),E
                EX AF,AF'

                DEC A
                JR NZ,ENS12
                PEC_OFF SHADOW_BF
                LD BC,PENT_CONF
                LD A,(N_EFF7-CPU2)
                OUT (C),A
                PEC_ON SHADOW_BF
                LD BC,(B_PORT77-CPU2)
                LD A,C
                LD C,0X77
                OUT (C),A
                LD A,(N_BF-CPU2)
                OUT (PEVO_CONF),A
                LD BC,CONF_128;0X7FFD
                LD A,(N_7FFD-CPU2)
                OUT (C),A
                LD HL,NMI_SERVICE
                LD (ADR_NMI_JUMP),HL
                XOR A
                LD (FOR_RET),A
                LD SP,NADRRET_L-CPU2
                POP AF                          ;‘Ž‘ €„…‘€ ‚Ž‡‚€’€
                POP AF
                EX AF,AF'
                POP IY
                POP IX
                POP BC
                POP DE
                POP HL
                EXX
                POP BC
                POP DE
;               EI
;               HALT
;               DI
                POP AF
                JP PO,ENMISERV1
                EI
ENMISERV1       LD A,0X80-0X0A-1
                LD HL,NREG_R-CPU2
                SLA (HL)
                RLA
                ADD A,(HL)
                RRCA
                LD R,A
                POP AF
                LD I,A
                POP AF
                POP HL
                LD SP,(NMI_SAVE_SP-CPU2)
                OUT (0XBE),A
                RETN

;MAGIC_PAL      DB 0X0C,0X2D,0X4E,0X6F,0X9C,0XBD,0XDE,0XFF
;               DB 0XEC,0XED,0XEE,0XEF,0XFC,0XFD,0XFE,0XFF

LDIR__BYTES     LD HL,CPU2
                ADD HL,SP
                LD SP,HL
                LD A,(R_7FFD-CPU2)
                AND 0X10
                LD HL,B0_CPU1-CPU2
                JR Z,LDIR_BYTES5
                LD HL,B1_CPU1-CPU2
LDIR_BYTES5     LD C,LOW (WIN_A0)
                LD A,3
LDIR_BYTES3     EX AF,AF'

                LD E,(HL)                       ;€‰’ „‹Ÿ ‡€ˆ‘ˆ ‚ Ž’
                INC HL
                LD D,(HL)                       ;‘’€˜ˆ‰ €‰’ €„…‘€ Ž’€
                INC HL
                LD A,D
                OR 0X3F
                LD B,A
                BIT 3,D
                JR NZ,LDIR_BYTES4
                LD A,D
                AND 3
                RRCA
                RRCA
                OUT (C),A
                RES 3,B
LDIR_BYTES4     OUT (C),E
                EX AF,AF'
                DEC A
                JR NZ,LDIR_BYTES3
                EXX
                LDIR
                LD BC,WIN_P2
                XOR A
                OUT (C),A
                LD HL,CPU2
                ADD HL,SP
                LD SP,HL
                LD BC,WIN_A0
                LD A,P_RST8
                JP ADR_SEL_ROM

                PHASE $+CPU2
;‚›‡Ž‚ Ž„Žƒ€ŒŒ ˆ‡ „“ƒˆ• ‘’€ˆ–
CALL2PAGE       EX (SP),HL
                PUSH BC
                PUSH AF
                LD C,(HL)
                INC HL
                LD B,(HL)
                INC HL
                LD (ADRCALL),BC
                LD BC,RD_7FFD
                IN A,(C)
                AND 0X10
                LD BC,RD_0WINA0
                JR Z,CALL2PAGE1
                LD BC,RD_1WINA0
CALL2PAGE1      IN A,(C)
                AND 0X3F
                LD BC,STEK_PAGES
TEKPAGE         EQU $-2
                LD (BC),A
                INC BC
                LD (TEKPAGE),BC
                LD A,(HL)
                INC HL
                LD BC,WIN_A0
                OUT (C),A
                POP AF
                POP BC
                EX (SP),HL
                CALL 0
ADRCALL         EQU $-2
                PUSH BC
                PUSH AF
                LD BC,(TEKPAGE)
                DEC BC
                LD A,(BC)
                LD (TEKPAGE),BC
                LD BC,WIN_A0
                OUT (C),A
                POP AF
                POP BC
                RET

;‚•Ž„ ‚ Ž’‹€„—ˆŠ
DEBUGGER        DI
                LD HL,CPU2+DEBUG_ONOFF
                BIT 7,(HL)
                JR Z,DEBUGGER1
;ˆ“„ˆ’…‹œ›‰ ‚•Ž„ ‚ Ž’‹€„—ˆŠ ‘ ‚Ž‡‚€’ŽŒ ‚ Ž‘Ž‚Ž… Œ…ž NMI
                LD HL,JMP2MAINMENU
                PUSH HL
                JR DEBUGGER2

;‚•Ž„ ‚ Ž’‹€„—ˆŠ ˆ‡ Ž‘Ž‚ŽƒŽ Œ…ž NMI
DEBUGGER1       LD HL,RESTART_MAIN
                PUSH HL
                LD HL,EXIT_DEBUG
                PUSH HL
                LD HL,CPU2+DEBUG_ONOFF
                SET 7,(HL)
DEBUGGER2       LD HL,CONTINUE_PROG
                LD DE,NADRRET_L
                LD BC,WIN_P0
                LD A,PAGE_STS
                OUT (C),A
                LD BC,N_BF
                LD A,NO_EXIT_DEBUG-EXIT_DEBUG
                JP START_STS

;ŽŒ€‹œ›‰ ‚›•Ž„ ˆ‡ Ž’‹€„—ˆŠ€
EXIT_DEBUG      LD HL,CPU2+DEBUG_ONOFF
                RES 7,(HL)
;‚›•Ž„ ˆ‡ Ž’‹€„—ˆŠ€ Œˆ“Ÿ Ž‘Ž‚Ž… Œ…ž NMI
NO_EXIT_DEBUG   LD BC,WIN_A0
                LD A,P_ADDONS
                OUT (C),A
                LD HL,CPU2+DEBUG_ONOFF
                LD A,TRACE_DBG
                AND (HL)
                RET Z
                LD HL,TRACER_DBG
                EX (SP),HL
                RET

;‚•Ž„ ‚ Ž’‹€„—ˆŠ Œˆ“Ÿ Ž‘Ž‚Ž… Œ…ž NMI
JMP2MAINMENU    LD HL,CPU2+DEBUG_ONOFF
                RES 7,(HL)
                LD BC,WIN_A0
                LD A,P_RST8
                OUT (C),A
                LD HL,CPU2+DEBUG_ONOFF
                LD A,TRACE_DBG
                AND (HL)
                JP NZ,CONTMAGIC3
                JP RESTART_NMI

;‚Ž‡‚€’ ˆ‡ NMI „‹Ÿ Ž’‹€„—ˆŠ€. … ‚Ž‘‘’€€‚‹ˆ‚€…’‘Ÿ:
;€‹ˆ’€, ”Ž’, ‚ˆ„…Ž…†ˆŒ
NMI_EXIT_DBG    LD BC,WIN_A0
                LD A,P_ADDONS
                OUT (C),A
                PCALL RESTORE_AY,P_ADDON1       ;‚Ž‘‘’€Ž‚‹…ˆ… €ƒˆ‘’Ž‚ AY
                LD HL,ADR_MAGIC
                LD (HL),0XC9                    ;‡€ƒ‹“˜Š€ € MAGIC
                IN A,(PEVO_CONF)
                OR NMI_BF
                OUT (PEVO_CONF),A
                AND NMI_BF!0XFF
                OUT (PEVO_CONF),A
                HALT                            ;†„…Œ ‘€€’›‚€ˆŸ MAGIC
                LD HL,ADR_MAGIC
                LD (HL),0XC3                    ;€‡…˜…ˆ… Ž€Ž’—ˆŠ€ MAGIC ……„ ‚›•Ž„ŽŒ
                LD C,LOW (WIN_A0)
                LD A,(N_7FFD-CPU2)
                AND 0X10
                LD HL,B0_CPU0-CPU2
                JR Z,ENSDBG11
                LD HL,B1_CPU0-CPU2
ENSDBG11        LD A,4
ENSDBG12        EX AF,AF'

                LD E,(HL)                       ;€‰’ „‹Ÿ ‡€ˆ‘ˆ ‚ Ž’
                INC HL
                LD D,(HL)                       ;‘’€˜ˆ‰ €‰’ €„…‘€ Ž’€
                INC HL
                LD A,D
                OR 0X3F
                LD B,A
                BIT 3,D
                JR NZ,ENSDBG15
                LD A,D
                AND 3
                RRCA
                RRCA
                OUT (C),A
                RES 3,B
ENSDBG15        OUT (C),E
                EX AF,AF'
                DEC A
                JR NZ,ENSDBG12
                PEC_OFF SHADOW_BF
                LD BC,PENT_CONF
                LD A,(N_EFF7-CPU2)
                OUT (C),A
                PEC_ON SHADOW_BF
;               LD BC,(B_PORT77-CPU2)
;               LD A,C
;               LD C,0X77
;               OUT (C),A
                LD A,(N_BF-CPU2)
                OUT (PEVO_CONF),A
                LD BC,CONF_128;0X7FFD
                LD A,(N_7FFD-CPU2)
                OUT (C),A
                LD HL,NMI_SERVICE
                LD (ADR_NMI_JUMP),HL
                XOR A
                LD (FOR_RET),A
                LD SP,NADRRET_L-CPU2
                POP AF                          ;‘Ž‘ €„…‘€ ‚Ž‡‚€’€
                POP AF
                EX AF,AF'

                POP IY
                POP IX
                POP BC
                POP DE
                POP HL
                EXX
                POP BC
                POP DE
;               EI
;               HALT
;               DI
                POP AF
                JP PO,ENMIDBGSERV1
                EI
ENMIDBGSERV1    LD A,0X80-0X0A
                LD HL,NREG_R-CPU2
                SLA (HL)
                RLA
                ADD A,(HL)
                RRCA
                LD R,A
                POP AF
                LD I,A
                POP AF
                POP HL
                LD SP,(NMI_SAVE_SP-CPU2)
                OUT (0XBE),A
                RETN

SET_CPU3        PUSH BC
                LD BC,WIN_A3
                EX AF,AF'
                LD A,0X40
                OUT (C),A
                EX AF,AF'

                LD B,HIGH (WIN_P3)
                OUT (C),A
                POP BC
                RET

STEK_PAGES      DUPL 0X10,0XFF                  ;10
RST_FLAGS       DB 0XFF                         ;1
TXT_COLOR       DB 0XFF                         ;1
COORD_XY        DW 0XFF                         ;2
COLBUF          DUPL 0X50,0XFF                  ;50 “”… ‘Ž•€…ˆŸ ‘’ŽŠˆ –‚…’€ ‘ Š€€
MOUSE_BUFF      DUPL 0X10,0XFF                  ;10 “”… ‘Ž•€…ˆŸ —€‘’ˆ Š€€ Ž„ Š“‘ŽŽŒ Œ›˜ˆ
PRESSEDKEY      DW 0XFFFF                       ;2 €„…‘ ‘ˆ‘Š€ ƒŽŸ—ˆ• Š‹€‚ˆ˜ Ž‘‹… ‚›‚Ž„€ ŽŠ€
FLAGS           DB 0XFF                         ;1 ‘ˆ‘’…Œ›… ”‹€ƒˆ
                                                ;BIT 7-=1-TXT, =0-ZX SCREEN MODE
                                                ;BIT 6
                                                ;BIT 5
                                                ;BIT 4-=1-‚…˜…… ŽŠŽ, =0-‚“’…… ŽŠŽ
                                                ;BIT 3-=1-‡€“‘Š ‘ ”€’€, =0-‡€“‘Š ‘ „ˆ‘Š…’›
                                                ;BIT 2-=1-—€‘› €‰„…›, =0-…’
                                                ;BIT 1-=1-Œ›˜œ …‘’œ, =0-…’
                                                ;BIT 0-Š€ŠŽ‰ Š“‘Ž ˆ‘Ž‚€’œ, „‹Ÿ Œˆƒ€ˆŸ
NEXTBYTERST8    DB 0XFF                         ;1 ‘‹…„“ž™ˆ‰ €‰’ Ž‘‹… ‚›‡Ž‚€ RST 8, ŠŽ„ „‹Ÿ ‚›‡Ž‚€ „€‰‚…€
ADR_INT         DW 0XFFFF                       ;2
ADR_PALITRA     DW 0XFFFF                       ;2
XNEW            DB 0XFF                         ;1
ADRSTR_Y        DB 0XFF                         ;1
ADRSTR_X        DB 0XFF                         ;1
TXNEW           DB 0XFF                         ;1
TADRSTR_Y       DB 0XFF                         ;1
TADRSTR_X       DB 0XFF                         ;1
NO_INW          DB 0XFF                         ;1
COLOR4SYM       DB 0XFF                         ;1
PAGE4READ       DB 0XFF                         ;1
PAGE4SCR        DB 0XFF                         ;1
DAT_MAIN_MENU   DUPL 3,0                        ;3
DAT_SETUP_MENU  DUPL 3,0                        ;3
DAT_FILEBROWS   DUPL 5,0                        ;5
DAT_MOUNT       DUPL 3,0                        ;3
WIN_DEV         DUPL 0X30,0                     ;30
COL_CURSOR      DW 0XFFFF                       ;2
_MORG           DB 0XFF                         ;1
ARXY            DW 0XFFFF                       ;2
ADR_REST        DW 0XFFFF                       ;2
MOUPOS          DW 0XFFFF                       ;2
TEK_MODES       DB 0XFF                         ;1
BUFF4TXT        DUPL 0X2B,0XFF                  ;2B
EXT4FOUND       DUPL 0X10*3+1,0XFF              ;10*3+1
CMOS4CRC16      DUPL ECMOS_DEFAULT-CMOS_DEFAULT,0XFF
KSTATE0         DB 0XFF                         ;1 |
KSTATE1         DB 0                            ;1 |
KSTATE2         DB 0                            ;1 |
KSTATE3         DB 0                            ;1 |
KSTATE4         DB 0XFF                         ;1 |    €€‹Žƒ
KSTATE5         DB 0                            ;1 |    BASIC
KSTATE6         DB 0                            ;1 |    ……Œ…›•
KSTATE7         DB 0                            ;1 |    ŽŽ‘€
LAST_K          DB 0                            ;1 |    Š‹€‚ˆ€’“›
REPDEL          DB 0X10                         ;1 |
REPPER          DB 1                            ;1 |
FLAGS_KEY       DB 0                            ;1 |
FLAGS_KEY1      DB 0X10                         ;1 |
MOUNT_SYM       DB 0XFF                         ;1
EXT_TYPE        DB 0XFF                         ;1
OST_HWOST       DW 0XFFFF                       ;2
KUDA_HWOST      DW 0XFFFF                       ;2
NEXT4PAGE       DW 0XFFFF                       ;2
OSTAT_SECT      DW 0XFFFF                       ;2
NACH_SECT       DW 0XFFFF                       ;2
START_DATA      DW 0XFFFF                       ;2
AY_REGS         DUPL 0X0E,0XFF                  ;D
TEKBUFTSC       DW 0XFFFF                       ;2
TEK_TEXT        DW 0XFFFF                       ;2
TURBO_MODE      DUPL 5,0XFF                     ;5
MEMORY_MODE     DUPL 4,0XFF                     ;3
BUFF_TIME       DB 0X16,0X00,0X48,0X17,CYAN<<3+BLUE+0XC0
TXT_TIME        DB "00:00:00",0X16,0X01,0X48
TXT_DATA        DB "00.00.00",0X17,0XFF,0
EBUFF_TIME
OUT_NAME_FILE   DB 0X17,0XFF,0X16,0,0,0
OUT_NAME_FILET  EQU $-3
BUF_FILEITEM    DUPL 0X20,0XFF
EXTERN_PAL      DUPL 0X10,0XFF
ENMI_SERVICE

                DEPHASE
                PHASE $-CPU2