Top secrets sources NedoPC pentevo

Rev

Rev 838 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?


; LAST UPDATE: 09.11.2022 savelij

ITSELECTOR      LD HL,FLAGS
                RES B_MOUSE_PRESENT,(HL)        ;ˆ“„ˆ’…‹œŽ… Ž’Š‹ž—…ˆ… Œ›˜ˆ „‹Ÿ ’…Š‘’ŒŽ„€
                SET B_VIDEO_MODE,(HL)           ;Œ…ž ’…Š‘’Ž‚ŽƒŽ ‚ˆ„…Ž…†ˆŒ€
                LD HL,KEYBOARDS
                LD (ADR_INT),HL                 ;Ž …›‚€ˆŸŒ “„…’ ŽŽ‘ Š‹€‚ˆ€’“›
                LD (OLD_STACK),SP
                JR SELECTOR

ISELECTOR       LD HL,FLAGS
                RES B_VIDEO_MODE,(HL)
                CALL DETECTMOUSE
                LD (OLD_STACK),SP
SELECTOR        EI     
                LD A,(FLAGS)
                AND M_MOUSE_PRESENT                     ;Ž‚…Š€ €‹ˆ—ˆŸ Œ›˜ˆ
                JR Z,_RULNMO
;FIX ŠŽ‹…‘Ž Œ›˜ˆ
MKEYPR          EI
                LD A,0XFA
                IN A,(0XDF)
                CPL
                AND 7
                JR NZ,MKEYPR
_RULNMO         CALL SAVE2X2                    ;…‘‹ˆ Œ…ž €…—€’€‹ˆ Ž‚…• ‘’…‹Šˆ
                CALL SET_ADR_ATR                ;“‘’€Ž‚Š€ Ž‚ŽƒŽ €„…‘€ „‹Ÿ –‚…’Ž‰ Ž‹Ž‘Šˆ
                LD HL,FLAGS_KEY
                RES 5,(HL)                      ;€ Š‹€‚ˆ€’“… ˆ—…ƒŽ … €†€’Ž
                JR MAINLOP

;€†€’€ ‘’…‹Š€ ‚‚…•
UP              CALL CURSOR_UP                  ;‘Œ…ˆ‹ˆ ’…Š“™ˆ‰ “Š’ € -1
                JR SET_POS1                    

;€†€’€ ‘’…‹Š€ ‚€‚Ž
RIGHT           BIT 1,(IX+6)                    ;Ž‚…Š€ Ž‘’Ž Œ…ž ˆ‹ˆ ”€‰‹Ž‚Ž…
                PUSH AF                         ;‘Ž•€ˆ‹ˆ …‡“‹œ’€’ Ž‚…Šˆ
                CALL NZ,PAGEDN                  ;…‘‹ˆ ”€‰‹Ž‚Ž…, ’Ž ‹ˆ‘’€ˆ… ‘’€ˆ—Ž…
                POP AF                          ;‚Ž‘‘’€Ž‚ˆ‹ˆ …‡“‹œ’€’ Ž‚…Šˆ
                JR NZ,SET_POS1                  ;…‘‹ˆ ”€‰‹Ž‚Ž… Ž„Ž‹†€…Œ
                LD A,(IX+0X0A)
                AND A
                JR Z,SET_POS
                DEC A                           ;ˆ€—… ……•Ž„ Š“‘Ž€ € Ž‘‹…„ˆ‰ “Š’
                JR SET_POS                      ;ˆ‡Œ…Ÿ…Œ Ž‹Ž†…ˆ… Š“‘Ž€ ˆ Ž„Ž‹†€…Œ

;€†€’€ ‘’…‹Š€ ‚ˆ‡
DOWN            CALL CURSOR_DOWN                ;‘Œ…ˆ‹ˆ ’…Š“™ˆ‰ “Š’ € +1
                JR SET_POS1

;€†€’€ ‘’…‹Š€ ‚‹…‚Ž
LEFT            BIT 1,(IX+6)                    ;Ž‚…Š€ Ž‘’Ž Œ…ž ˆ‹ˆ ”€‰‹Ž‚Ž…
                PUSH AF                         ;‘Ž•€ˆ‹ˆ …‡“‹œ’€’ Ž‚…Šˆ
                CALL NZ,PAGEUP                  ;…‘‹ˆ ”€‰‹Ž‚Ž…, ’Ž ‹ˆ‘’€ˆ… ‘’€ˆ—Ž…
                POP AF                          ;‚Ž‘‘’€Ž‚ˆ‹ˆ …‡“‹œ’€’ Ž‚…Šˆ
                JR NZ,SET_POS1                  ;…‘‹ˆ ”€‰‹Ž‚Ž… Ž„Ž‹†€…Œ
                XOR A                           ;ˆ€—… ……•Ž„ Š“‘Ž€ € …‚›‰ “Š’
SET_POS         BIT 7,(IX+7)
                JR Z,SET_POS3
                LD L,(IX+8)
                LD H,(IX+9)
                LD (HL),A
                INC HL
                LD (HL),A
                INC HL
                LD (HL),0
                JR SET_POS1

SET_POS3        LD (IX+7),A                     ;ˆ‡Œ…ˆ‹ˆ Ž‡ˆ–ˆž Š“‘Ž€
                LD (IX+8),A
                LD (IX+9),0                     ;ˆ‡Œ…ˆ‹ˆ ŽŒ… ‚›€ŽƒŽ “Š’€
SET_POS1        CALL COLOR_CURSOR               ;……ˆ‘Ž‚Š€ –‚…’Ž‰ Ž‹Ž‘Šˆ Œ…ž
MAINLOP         LD HL,FLAGS_KEY
                RES 5,(HL)                      ;‘Ž‘ €†€’›• ŠŽŽŠ
                LD A,(FLAGS)
                AND M_MOUSE_PRESENT             ;Ž‚…Š€ €‹ˆ—ˆŸ Œ›˜ˆ
                JP Z,MAINNMO
                LD HL,(ARXY)                    ;‘’€€Ÿ ŠŽŽ„ˆ€’€ Œ›˜ˆ
                PUSH HL
                CALL MOUSE                      ;ŽŽ‘ Ž’Ž‚ Œ›˜ˆ
                POP BC
                AND A
                SBC HL,BC
                JR Z,NO_SELECT                  ;… ›‹Ž „‚ˆ†…ˆŸ Œ›˜ˆ
                CALL MOUOPT                     ;Ž‚…Š€ €‚…„…ˆŸ Œ›˜ˆ € ‡€„€Ž… ŽŠŽ
NO_SELECT       LD BC,0XFADF
                IN A,(C)                        ;ŽŽ‘ €†€’ˆŸ ŠŽŽŠ Œ›˜ˆ
                AND 7
                CP 6
                JR Z,PRESS_MOUSE                ;…‘‹ˆ €†€’€ ‹…‚€Ÿ ŠŽŠ€ Œ›˜ˆ
                CP 5
                JP Z,RESTART                    ;…‘‹ˆ €†€’€ €‚€Ÿ ŠŽŠ€ Œ›˜ˆ
                CALL PRINTTIME                  ;ŽŽ‚ˆ‹ˆ ‚…ŒŸ …‘‹ˆ ˆ‡Œ…ˆ‹Ž‘œ
                EI
                CALL REST2X2                    ;‚Ž‘‘’€Ž‚ˆ‹ˆ Š“‘ŽŠ Š€€ Ž„ Œ›˜œž
                CALL DRAW_MOUSE                 ;€ˆ‘Ž‚€‹ˆ Š“‘Ž Œ›˜ˆ
                JR MAINQMO                      ;Ž„Ž‹†…ˆ… ŽŽ‘€

PRESS_MOUSE     CALL OPMSPL
                AND A
                JR Z,CP_MOUSE4
                LD (LAST_K),A
                CALL TIMELP
                JR SELECT_KEY

CP_MOUSE4       CALL MOUOPT                     ;Ž‚…Š€ Ž€„€ˆŸ Œ›˜ˆ ‚ …„…‹› ’…Š“™…ƒŽ ŽŠ€
                JR C,MAINNMO                    ;… Ž€‹ˆ ˆ …„…Œ „€‹……
                LD E,(IX+7)                     ;‚‡Ÿ‹ˆ ŽŒ… “Š’€ Š“„€ Ž€‹ˆ Œ›˜œž
                BIT 7,E
                JR Z,CP_MOUSE5
                LD L,(IX+8)
                LD H,(IX+9)
                LD E,(HL)
CP_MOUSE5       LD D,0
                LD HL,(PRESSEDKEY)              ;€„…‘ ‘ˆ‘Š€ •Ž’Š……‚ ’…Š“™…ƒŽ ŽŠ€
                ADD HL,DE                       ;€„…‘ •Ž’Š…Ÿ ‚›€ŽƒŽ “Š’€
                LD DE,LAST_K
                LDI                             ;ˆŒˆ’€–ˆŸ €†€’ˆŸ ‡€„€Ž‰ ŠŽŠˆ
                JR ENTER
               
MAINNMO         CALL PRINTTIME                  ;ŽŽ‚‹…ˆ… ‚…Œ…ˆ, …‘‹ˆ ‚ ŽŽ ŽŽ‚ˆ‹Ž‘œ
                EI
                HALT
MAINQMO         LD A,(FLAGS_KEY)
                BIT 5,A                         ;Ž‚…Š€ €†€’ˆŸ ŠŽŽŠ Š‹€‚ˆ€’“›
                JP Z,MAINLOP                    ;Ž„Ž‹†€…Œ ŽŽ‘ “€‚‹…ˆŸ
                ROMCALL BREAK_KEY,ROM_RST82     ;Ž‚…Š€ € BREAK
                JR C,SELECT_KEY                 ;…‘‹ˆ BREAK … €†€’ Ž„Ž‹†€…Œ
RESTART         DI
                CALL TRESTORE_CLINE
                LD A,1
                RET

SELECT_KEY      DI
                LD HL,SET_POS1
                PUSH HL
                LD HL,LAST_K
                LD A,(HL)                       ;‚‡Ÿ‹ˆ €†€’“ž Š‹€‚ˆ˜“
                LD B,0
                LD HL,MAIN_KEYS
                LD C,(HL)                       ;ŠŽ‹ˆ—…‘’‚Ž „Ž‘’“›• ŠŽŽŠ
                LD D,C
                INC HL
                CPIR
                JR NZ,NOMAINKEYS                ;ˆ—…ƒŽ … €˜‹ˆ, „€‹…… ‘ŒŽ’ˆŒ ŠŽŠˆ ’…Š“™…ƒŽ ŽŠ€
                                                ;€†€’Ž —’Ž-’Ž ˆ‡ ƒ‹€‚›• ŠŽŽŠ, „Ž‘’“›• ‚‘…ƒ„€
                LD HL,ADREXEKEYS
                LD A,D                          ;ŠŽ‹ˆ—…‘’‚Ž ŠŽŽŠ ‚ ’€‹ˆ–… -1
                SUB C                           ;Ž‹“—ˆ‹ˆ ‚›€›‰ ŽŒ…
                DEC A
                ADD A,A
                ADD A,L
                LD L,A
                ADC A,H
                SUB L
                LD H,A
                LD A,(HL)
                INC HL
                LD H,(HL)
                LD L,A
                JP (HL)

;Ž‚…Š€ •Ž’Š……‚ ‚ ’…Š“™…Œ ŽŠ…
NOMAINKEYS      LD L,(IX+0X12)
                LD H,(IX+0X13)                  ;€„…‘ ‘ˆ‘Š€ €†€’›• ŠŽŽŠ ’…Š“™…ƒŽ ŽŠ€
                LD C,A
                LD A,H
                OR L
                JP Z,MAINLOP                    ;…‘‹ˆ ‘ˆ‘Š€ …’, Ž„Ž‹†€…Œ ŽŽ‘
                LD A,C
                LD C,(IX+2)
                LD E,(HL)
                INC HL
                DEC C                           ;ŠŽ‹ˆ—…‘’‚Ž ŠŽŽŠ
                DEC C                           ;‚›‘Ž’€ ŽŠ€ -2
                LD D,C
                LD B,0
                CPIR                            ;‘Š€ˆŽ‚€ˆ… ‘ˆ‘Š€ ‡€„€›• Š‹€‚ˆ˜
                JR NZ,OSTAT_KEYS
                LD A,D                          ;‚›‘Ž’€ ŽŠ€
                SUB C
                DEC A                           ;Ž‹“—ˆ‹ˆ ŽŒ… €†€’Ž‰ ŠŽŠˆ ˆ -1
                BIT 7,(IX+7)
                JR Z,ENTER1
                LD L,(IX+8)
                LD H,(IX+9)
                LD (HL),A
                INC HL
                LD (HL),A
                JR ENTER

ENTER1          LD (IX+7),A                     ;ŽŒ… “Š’€ ‚ ŽŠ…
                LD (IX+8),A                     ;ŽŒ… €†€’Ž‰ Š‹€‚ˆ˜ˆ Ž “Š€‡€ŽŒ“ ‘ˆ‘Š“
ENTER           LD A,(FLAGS)
                AND M_MOUSE_PRESENT
                CALL NZ,TIMELP                  ;ŽŽ‚‹…ˆ… ‚…Œ…ˆ …‘‹ˆ ŽŽ ˆ‡Œ…ˆ‹Ž‘œ
                CALL REST2X2                    ;‘’…‹ˆ Š“‘Ž Œ›˜ˆ
                LD A,(IX+7)                     ;ŽŒ… ˆ‡ ‘ˆ‘Š€ ŠŽ’Ž›‰ ‚›‡‚€’œ
                BIT 7,A
                JR Z,JUMP2HL1
                LD L,(IX+8)
                LD H,(IX+9)
                LD A,(HL)
JUMP2HL1        LD L,(IX+0X0E)
                LD H,(IX+0X0F)                  ;‚‡Ÿ‹ˆ ‘ˆ‘ŽŠ €„…‘Ž‚ 1 ˆ‡ ŠŽ’Ž›• “„…Œ ‚›‡›‚€’œ
JUMP2HL         ADD A,A
                ADD A,L
                LD L,A
                ADC A,H
                SUB L
                LD H,A
                LD A,(HL)
                INC HL
                LD H,(HL)
                LD L,A
                JP (HL)

OSTAT_KEYS      EX AF,AF'
                LD A,E
                SUB D
                JP Z,MAINLOP
                LD C,A
                EX AF,AF'

                CPIR
                JP NZ,MAINLOP
                LD A,E
                SUB C
                DEC A
                JR JUMP2HL1

TIMELP          CALL PRINTTIME
                LD A,0XFA
                IN A,(0XDF)                     ;ŠŽŠˆ Œ›˜ˆ
                CPL
                AND 7
                JR NZ,TIMELP                    ;ŽŠ€ … Ž’“‘’Ÿ’
                RET

CURSOR_UP       LD C,(IX+8)
                LD B,(IX+9)
                BIT 7,(IX+7)
                JR Z,CURSOR_UP3
                LD L,(IX+8)
                LD H,(IX+9)
                INC HL
                LD C,(HL)
                INC HL
                LD B,(HL)
CURSOR_UP3      LD A,B
                OR C
                RET Z
                DEC BC
                BIT 7,(IX+7)
                JR Z,CURSOR_UP2
                LD (HL),B
                DEC HL
                LD (HL),C
                DEC HL
                LD A,(HL)
                AND A
                JR Z,CURSOR_UP1
                DEC (HL)
                RET

CURSOR_UP2      LD (IX+8),C
                LD (IX+9),B
                LD A,(IX+7)
                AND A
                JR Z,CURSOR_UP1
                DEC (IX+7)
                RET

CURSOR_UP1      CALL REST2X2
                CALL RESTORE_CLINE
                CALL SCRDN
                LD E,(IX+1)
                INC E
DOWN1           LD D,(IX+0)
                INC D
                INC D
                EVOPORT WIN_P3,RAM_TEMP2
                LD L,(IX+8)
                LD H,(IX+9)
                BIT 7,(IX+7)
                JR Z,DOWN3
                DEC D
                INC HL
                LD A,(HL)
                INC HL
                LD H,(HL)
                LD L,A
DOWN3           LD BC,CPU3
                ADD HL,HL
                ADD HL,BC
                LD C,(HL)
                INC HL
                LD B,(HL)
                PUSH DE
                ROMCALL POSTF06,ROM_RST83
                ROMCALL READ_DIR,ROM_RST83
                LD DE,FILES_EXT
                ROMCALL CP_EXT,ROM_RST83
                EX AF,AF'
                LD BC,0X0B
                ADD HL,BC
                LD A,(HL)
                SBC HL,BC
                AND 0X10
                LD A,BLUE<<3+WHITE+BR_INK
                LD (OUT_NAME_FILE+1),A          ;…‘‹ˆ „ˆ…Š’ŽˆŸ ’Ž –‚…’ …‹›‰
                JR NZ,DOWN7
                EX AF,AF'

                LD L,A
                INC A
                JR Z,DOWN6
                LD A,L
DOWN6           LD HL,COLOR_EXT
                ADD A,L
                LD L,A
                ADC A,H
                SUB L
                LD A,(HL)
                ADD A,BLUE<<3+BR_INK
                LD (OUT_NAME_FILE+1),A
DOWN7           LD HL,BUF_256
                ROMCALL GET_LONGNAME,ROM_RST83
                POP DE
                CALL FILENAME8_3
                JP SET_ADR_ATR

CURSOR_DOWN     LD L,(IX+0X0A)
                LD H,(IX+0X0B)                  ;ŠŽ‹ˆ—…‘’‚Ž “Š’Ž‚
                BIT 6,(IX+7)
                JR Z,CURSOR_DOWN6
                LD L,(IX+8)                     ;Ž‹“—…ˆ… ŠŽ‹ˆ—…‘’‚€ “Š’Ž‚          
                LD H,(IX+9)                     ;ˆ‡ “Š€‡€ŽƒŽ €„…‘€
                INC HL
                INC HL
                INC HL
                LD A,(HL)
                INC HL
                LD H,(HL)
                LD L,A                          ;ŠŽ‹ˆ—…‘’‚Ž “Š’Ž‚ ‚ ’ŽŒ Œ…ž
CURSOR_DOWN6    LD A,H
                OR L
                RET Z
                BIT 7,(IX+7)
                JR Z,CURSOR_DOWN2
                LD E,(IX+8)
                LD D,(IX+9)                     ;’…Š“™ˆ‰ ŽŒ…
                EX DE,HL
                INC HL
                LD C,(HL)
                INC HL
                LD B,(HL)
                EX DE,HL
                JR CURSOR_DOWN3

CURSOR_DOWN2    LD C,(IX+8)
                LD B,(IX+9)
CURSOR_DOWN3    SCF
                SBC HL,BC
                RET Z
                INC BC
                BIT 7,(IX+7)
                JR Z,CURSOR_DOWN4
                EX DE,HL
                LD (HL),B
                DEC HL
                LD (HL),C
                DEC HL
                LD A,(IX+2)
                SUB 3
                CP (HL)
                JR Z,CURSOR_DOWN1
                INC (HL)
                RET

CURSOR_DOWN4    LD (IX+8),C
                LD (IX+9),B
                LD A,(IX+2)
                SUB 3
                CP (IX+7)
                JR Z,CURSOR_DOWN1
                INC (IX+7)
                RET

CURSOR_DOWN1    CALL REST2X2
                CALL RESTORE_CLINE
                CALL SCRUP
                LD A,(IX+1)
                ADD A,(IX+2)
                SUB 2
                LD E,A
                JP DOWN1

GET_XY          LD L,(IX+8)
                LD H,(IX+9)             ;’…Š“™ˆ‰ ŽŒ…
                BIT 7,(IX+7)
                JR Z,GETXY1
;Ž‹“—…ˆ… ŽŒ…€ ’…Š“™…ƒŽ “Š’€ ˆ‡ “Š€‡€’…‹Ÿ
                INC HL
                LD E,(HL)
                INC HL
                LD D,(HL)               ;’…Š“™ˆ‰ ŽŒ… ˆ‡ “Š€‡€ŽƒŽ €„…‘€
                EX DE,HL
                BIT 6,(IX+7)
                JR Z,GETXY1
;Ž‹“—…ˆ… ŠŽ‹ˆ—…‘’‚€ “Š’Ž‚ ˆ‡ “ŠŠ€‡€’…‹Ÿ
                EX DE,HL
                INC HL
                LD A,(HL)
                INC HL
                LD H,(HL)
                LD L,A                  ;ŠŽ‹ˆ—…‘’‚Ž “Š’Ž‚ ˆ‡ “Š€‡€ŽƒŽ €„…‘€
                EX DE,HL
                JR GETXY2

GETXY1          LD E,(IX+0X0A)
                LD D,(IX+0X0B)          ;ŠŽ‹-‚Ž “Š’Ž‚
GETXY2          LD A,(IX+2)
                SUB 3
                LD C,A                  ;ŠŽ‹ˆ—…‘’‚Ž “Š’Ž‚ ‚ ‚›‘Ž’… ŽŠ€
                LD B,0
                LD A,D
                OR E
                LD A,C
                RET

;……Œ…™…ˆ… € ‘’€ˆ–“ ‚‚…•
PAGEUP          CALL GET_XY
                RET Z
                XOR A
                SBC HL,BC
                EX DE,HL
                JR NC,PDUN0
PDU0            LD D,A
                LD E,A
                JR PDUN0

;……Œ…™…ˆ… € ‘’€ˆ–“ ‚ˆ‡
PAGEDN          CALL GET_XY
                RET Z
                EX DE,HL
                AND A
                SBC HL,BC
                ADD HL,BC
                EX DE,HL
                JR NC,PDN00
                DEC DE
                LD A,E
                JR PDUN0

PDN00           ADD HL,BC
                EX DE,HL
                SBC HL,DE
                ADD HL,DE
                JR Z,PDUN1
                JR NC,PDUN0
PDUN1           EX DE,HL
                DEC DE
PDUN0           BIT 7,(IX+7)
                JR Z,PDUN2
                LD L,(IX+8)
                LD H,(IX+9)
                LD (HL),A
                INC HL
                LD (HL),E
                INC HL
                LD (HL),D
                JR PDUN3

PDUN2           LD (IX+7),A
                LD (IX+8),E
                LD (IX+9),D
PDUN3           CALL RESTORE_CLINE
                JP OUT_TEK_DIR

PRINTTIME       DI
                LD H,0X0C
                CALL READCMOS
                AND 0X10
                RET Z                           ;…‘‹ˆ ‚…ŒŸ …™… … ŽŽ‚ˆ‹Ž‘œ, ‚›•Ž„ˆŒ ˆ—…ƒŽ … ‚›‚Ž„Ÿ
                LD BC,TXT_TIME                  ;—’…ˆ… ˆ …Ž€‡Ž‚€ˆ… ‚…Œ…ˆ
                LD H,4
                CALL READCMOS                   ;Ž—ˆ’€‹ˆ —€‘›
                CALL BYTE2TXT                   ;‘ŠŽ‚…’ˆ‹ˆ —€‘› ‘ “Š‹€„ŠŽ‰ ‚ “”…
                LD A,(BC)
                XOR 0X1A                        ;ŠŽ‚…‘ˆŸ Œˆƒ€ž™…ƒŽ „‚Ž…’Ž—ˆŸ
                LD (BC),A
                INC BC
                LD H,2
                CALL READCMOS                   ;Ž—ˆ’€‹ˆ Œˆ“’›
                CALL BYTE2TXT                   ;‘ŠŽ‚…’ˆ‹ˆ —€‘› ‘ “Š‹€„ŠŽ‰ ‚ “”…
                LD A,(BC)
                XOR ':'-' '                     ;ŠŽ‚…‘ˆŸ Œˆƒ€ž™…ƒŽ „‚Ž…’Ž—ˆŸ
                LD (BC),A
                INC BC
                LD H,0
                CALL READCMOS                   ;Ž—ˆ’€‹ˆ ‘…Š“„›
                CALL BYTE2TXT
                LD BC,TXT_DATA                  ;„€‹…… —’…ˆ… ˆ …Ž€‡Ž‚€ˆ… „€’›
                LD H,7
                CALL READCMOS
                CALL BYTE2TXT
                INC BC
                LD H,8
                CALL READCMOS
                CALL BYTE2TXT
                INC BC
                LD H,9
                CALL READCMOS
                CALL BYTE2TXT
                LD HL,BUFF_TIME                 ;…—€’€…Œ ‚…ŒŸ ˆ‡ “”…€
                JP ITPRINT_MESSAGE

;……‚Ž„ "A" ‚ „…‘Ÿ’ˆ—Š“ ˆ ‚ ’…Š‘’
A2TXT           PUSH HL
                LD L,A
                LD H,0
                LD DE,10
                XOR A
                DEC A
                INC A
                SBC HL,DE
                JR NC,$-3
                ADD HL,DE
                ADD A,"0"
                LD D,A
                LD A,L
                ADD A,"0"
                POP HL
                LD (HL),D
                INC HL
                LD (HL),A
                INC HL
                RET

BYTE2TXT        LD L,A
                LD H,"0"
                RRCA
                RRCA
                RRCA
                RRCA
                AND 0X0F
                ADD A,H
                LD (BC),A
                INC BC
                LD A,L
                AND 0X0F
                ADD A,H
                LD (BC),A
                INC BC
                RET

;‚›•Ž„ ˆ‡ MAGIC
CONTINUE_PROG   DI
                LD SP,(OLD_STACK)
                XOR A
                RET

;……‡€“‘Š MAGIC Œ…ž ‘ Ž‹Ž‰ ……ˆ‘Ž‚ŠŽ‰ Š€€
RESTART_MAIN    DI
                LD SP,(OLD_STACK)
                LD A,1
                RET

;‚›•Ž„ ˆ‡ Ž’‹€„—ˆŠ€
TRACER_DBG      DI
                LD SP,(OLD_STACK)
                LD A,2
                RET

SETUP           LD IX,SETUP_MENU
                CALL ITWINW
                JP SET_ADR_ATR

;……Ž TURBO …†ˆŒŽ‚ ‘ ‡€ˆ‘œž ‚ CMOS ˆ ˆ‡Œ……ˆ…Œ Ž‘‹… ‚›•Ž„€ ˆ‡ NMI
;0-7MHZ 1-3,5MHZ 2-14,0MHZ
SET_TURBO       DI
                LD H,CMOS_BYTE_01
                CALL READCMOS
                LD E,L                          ;TURBO AND MEMORY MODE
                LD H,CMOS_BYTE_00
                CALL READCMOS
                LD D,L                          ;TURBO 14
                RLCA
                LD C,A
                LD A,E
                RLCA
                LD A,C
                RLA
                AND 3
                INC A                           ;‘Œ…ˆ‹ˆ TURBO …†ˆŒ
                CP 3
                JR C,SETTURBO1
                XOR A                           ;…‘‹ˆ ……˜‹ˆ —……‡ 0, ’Ž ‚›‘’€‚ˆ‹ˆ …†ˆŒ 14MHZ
SETTURBO1       LD C,A
                PUSH BC
                AND A
                RES 7,E                         ;TURBO 7        0
                RES 7,D                         ;TURBO 14=7MHZ  0
                JR Z,SETTURBO3
                DEC A
                SET 7,E                         ;TURBO 7        1
                RES 7,D                         ;TURBO 14=3,5   0
                JR Z,SETTURBO3
                RES 7,E                         ;TURBO 7        0
                SET 7,D                         ;TURBO 14=14    1
SETTURBO3       LD H,CMOS_BYTE_00
                LD L,D
                PUSH DE
                CALL IWRITECMOS
                POP DE
                LD H,CMOS_BYTE_01
                LD L,E
                CALL IWRITECMOS
                POP BC
                LD A,C
                AND A
                LD DE,%0000000000000000         ;7MHZ
                JR Z,SETTURBO4
                DEC A
                LD DE,%0001000000000000         ;3,5MHZ
                JR Z,SETTURBO4
                LD DE,%0000000000001000         ;14MHZ
SETTURBO4       LD A,(B_PORT77)
                AND %11110111
                OR E
                LD (B_PORT77),A
                LD A,(N_EFF7)
                AND %11101111
                OR D
                LD (N_EFF7),A
SETANDPRINT     CALL SETUP4SEL
                LD HL,TXT_SETUPMENU
                JP ITPRINT_MESSAGE

;……Ž …†ˆŒŽ‚ €ŒŸ’ˆ ‘ ‡€ˆ‘œž ‚ CMOS ˆ ˆ‡Œ……ˆ…Œ Ž‘‹… ‚›•Ž„€ ˆ‡ NMI
SET_MEMORY      DI
                LD H,CMOS_BYTE_01
                CALL READCMOS
                AND 3
                INC A
                CP 3
                JR C,SETMEMORY1
                XOR A
SETMEMORY1      LD C,A
                LD A,L
                AND %11111100
                OR C
                LD L,A
                CALL IWRITECMOS
                JR SETANDPRINT

;‚Š‹ž—…ˆ…/‚›Š‹ž—…ˆ… …‡ˆ„…’€ HONEY COMANDER
SET_REZIDENT    DI
                LD H,CMOS_BYTE_01
                CALL READCMOS
                XOR M_REZIDENT
                LD L,A
                CALL IWRITECMOS
                JR SETANDPRINT

KILL_REZID      DI
                LD H,CMOS_BYTE_03
                CALL READCMOS
                XOR M_KILL_REZIDENT
                LD L,A
                CALL IWRITECMOS
                JR SETANDPRINT

;ˆ‡Œ……ˆ… ’…Š‘’€ ‚ Œ…ž
SETUP4SEL       DI
                LD H,CMOS_BYTE_01
                CALL READCMOS
                LD E,L                          ;TURBO AND MEMORY MODE
                LD H,CMOS_BYTE_00
                CALL READCMOS
                LD D,L                          ;TURBO 14
                RLCA
                LD C,A
                LD A,E
                RLCA
                LD A,C
                RLA
                AND 3
                CP 3
                JR C,SETUP4SEL1
                DEC A
SETUP4SEL1      ADD A,A
                ADD A,A
                LD HL,TXT_TURBO
                LD C,A
                LD B,0
                ADD HL,BC
                PUSH DE
                LD DE,TURBO_MODE
                LDI
                LDI
                LDI
                LDI
                EX DE,HL
                LD (HL),2
                POP DE
                PUSH DE
                LD A,E
                AND 3
                LD C,A
                LD B,0
                LD HL,TXT_MEMORY
                ADD HL,BC
                ADD HL,BC
                ADD HL,BC
                LD DE,MEMORY_MODE
                LDI
                LDI
                LDI
                EX DE,HL
                LD (HL),2
                POP DE
;„‹Ÿ …‡ˆ„…’€ HONEY COMANDER
                LD A,E
                AND M_REZIDENT
                LD HL,TXT_ONOFF
                JR NZ,.ON
                LD HL,TXT_ONOFF+3
.ON             LD DE,REZIDENT_MODE
                LDI
                LDI
                LDI
                EX DE,HL
                LD (HL),2
                LD H,CMOS_BYTE_03
                CALL READCMOS
                AND M_KILL_REZIDENT
                LD HL,TXT_ONOFF
                JR NZ,.ON1
                LD HL,TXT_ONOFF+3
.ON1            LD DE,TXT_KILLREZID
                LDI
                LDI
                LDI
                EX DE,HL
                LD (HL),2
                RET

;Ž†ˆ„€ˆ… €†€’ˆŸ ˆ Ž’“‘Š€ˆŸ ‹žŽ‰ Š‹€‚ˆ˜ˆ
ANY_KEYS        XOR A
                IN A,(0XFE)
                CPL
                AND 0X1F
                JR Z,ANY_KEYS
ANYKEYS1        XOR A
                IN A,(0XFE)
                CPL
                AND 0X1F
                JR NZ,ANYKEYS1
                RET