Top secrets sources NedoPC pentevo

Rev

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


; LAST UPDATE: 08.09.2022 savelij

X4DUMP          EQU 0X0C
Y4DUMP          EQU 0X05

EDIT_CMOS       DI
                LD A,%01001111
                CALL CLEAR_TXTSCR
                LD H,CMOS_BYTE_00
                CALL READCMOS
                AND M_TYPE_FONT
                LD (TYPEFONT),A
                LD DE,0
                LD BC,0X5019
                CALL RAMKA4TXTSCR
                LD DE,0X2201
                LD HL,TXT_EDITCMOS2
                CALL PRTT_MSG
                LD DE,0X1217
                LD HL,TXT_EDITCMOS1
                CALL PRTT_MSG
                LD IX,0
                CALL INVERS_CUR
EC02            CALL LOAD_CMOS
                CALL PRINT_DUMP
                CALL HELP_REG
                CALL TXTMODE_ON
EC01            EI
                HALT
                LD H,0X0C
                CALL READCMOS
                BIT 4,A
                CALL NZ,PRINT0STROKA
                BIT 5,(IY+1)
                JP Z,EC01
                RES 5,(IY+1)
                LD A,(0X5C08)
                CP "l"
                JR Z,EC02
                CP "x"
                JR Z,EC06
                CP "s"
                JR NZ,EC03
                CALL SAVE_CMOS
                JR EC01

EC03            CP 9
                CALL Z,CUR_RIGHT
                CP 8
                CALL Z,CUR_LEFT
                CP 0X0B
                CALL Z,CUR_UP
                CP 0X0A
                CALL Z,CUR_DOWN
                CP "0"
                JR C,EC01
                CP ":"
                JR C,EC05
                RES 5,A
EC04            CP "A"
                JR C,EC01
                CP "G"
                JR NC,EC01
EC05            CALL INPUT_HALFBYTE
                JR EC01

EC06            CALL TXTMODE_OFF
                LD A,0X10
                CALL SET_7FFD
                JP RESTART

;ˆ‘Ž‚€ˆ… „‚Ž‰Ž‰ €ŒŠˆ ŽŠ€ ‚ ’…Š‘’ŒŽ„…
;D-X E-Y B-H C-V
RAMKA4TXTSCR    DEC B
                DEC B
                DEC C
                DEC C
                PUSH DE
                PUSH BC
                LD A,"É"
                CALL PRTSYMTXTMODE
R4TXTS1         LD A,"Í"
                CALL PRTSYMTXTMODE
                DJNZ R4TXTS1
                LD A,"»"
                CALL PRTSYMTXTMODE
                DEC D
                INC E
R4TXTS2         LD A,"º"
                CALL PRTSYMTXTMODE
                DEC D
                INC E
                DEC C
                JR NZ,R4TXTS2
                POP BC
                POP DE
                INC E
R4TXTS3         LD A,"º"
                CALL PRTSYMTXTMODE
                DEC D
                INC E
                DEC C
                JR NZ,R4TXTS3
                LD A,"È"
                CALL PRTSYMTXTMODE
R4TXTS4         LD A,"Í"
                CALL PRTSYMTXTMODE
                DJNZ R4TXTS4
                LD A,"¼"
                JP PRTSYMTXTMODE

INPUT_HALFBYTE  SUB "0"
                CP 0X0A
                JR C,IHB1
                SUB 7
IHB1            LD E,A
                LD A,IXH
                LD L,A
                LD H,0XC0
                LD A,IXL
                AND A
                JR NZ,LOW_HALF
                LD A,(HL)
                AND 0X0F
                LD D,A
                LD A,E
                RRCA
                RRCA
                RRCA
                RRCA
                OR D
                JR LOW_HALF1

LOW_HALF        LD A,(HL)
                AND 0XF0
                OR E
LOW_HALF1       LD (HL),A
                LD A,L
                PUSH AF
                LD D,A
                LD E,(HL)
                EX DE,HL
                CALL WRITECMOS
                POP AF
                CALL PRINT_STROKA
                JP CUR_RIGHT

CUR_UP          PUSH AF
                CALL INVERS_CUR
                LD A,IXH
                SUB 0X10
                CP 0XF0
                JR C,CUR_UP1
                AND 0X0F
                OR 0XE0
CUR_UP1         LD IXH,A
                JR ECUR_RIGHT

CUR_DOWN        PUSH AF
                CALL INVERS_CUR
                LD A,IXH
                ADD A,0X10
                CP 0XF0
                JR C,CUR_DOWN1
                AND 0X0F
CUR_DOWN1       LD IXH,A
                JR ECUR_RIGHT

CUR_RIGHT       PUSH AF
                CALL INVERS_CUR
                INC IXL
                LD A,IXL
                CP 2
                JR C,ECUR_RIGHT
                INC IXH
                LD A,IXH
                CP 0XF0
                JR C,CUR_RIGHT1
                LD IXH,0
CUR_RIGHT1      LD IXL,0
ECUR_RIGHT      CALL HELP_REG
                CALL INVERS_CUR
                POP AF
                RET

CUR_LEFT        PUSH AF
                CALL INVERS_CUR
                DEC IXL
                JP P,ECUR_RIGHT
                LD IXL,1
                DEC IXH
                LD A,IXH
                CP 0XF0
                JR C,ECUR_RIGHT
                LD IX,CRCCMOSHIGH*0X100+1
                JR ECUR_RIGHT

HELP_REG        LD A,IXH
                LD HL,EMPTY_STROKA
                CP 0X12
                JR NC,HELP_REG1
                LD L,A
                LD H,0
                ADD HL,HL
                ADD HL,HL
                ADD HL,HL
                ADD HL,HL
                ADD HL,HL
                LD DE,TXT_HELPREG
                ADD HL,DE
HELP_REG1       LD DE,0X1203
                JP PRTT_MSG

INVERS_CUR      LD A,0X1B
                CALL SET_7FFD
                LD A,IXH
                AND 0XF0
                RRCA
                RRCA
                RRCA
                RRCA
                ADD A,Y4DUMP
                LD L,A
                LD H,0
                LD D,H
                REPT 6
                ADD HL,HL
                ENDM
                LD A,IXH
                AND 0X0F
                LD E,A
                ADD A,A
                ADD A,E
                LD E,A
                LD A,IXL
                ADD A,X4DUMP+7
                ADD A,E
                LD E,A
                SRL E
                ADD HL,DE
                AND 1
                RRCA
                RRCA
                RRCA
                OR 0XC1
                LD D,A
                LD E,0XC0
                ADD HL,DE
                LD A,(HL)
                XOR %00000100
                LD (HL),A
                LD A,0X1F
                JP SET_7FFD

;Ž—ˆ‘’Š€ ’…Š‘’ŒŽ„ŽƒŽ Š€€
CLEAR_TXTSCR    PUSH AF
                LD A,0X1F
                CALL SET_7FFD
                LD HL,0XC1C0
                LD A," "
                CALL CLS_TXTSCR
                LD HL,0XE1C0
                CALL CLS_TXTSCR
                LD A,0X1B
                CALL SET_7FFD
                LD HL,0XC1C0
                POP AF
                CALL CLS_TXTSCR
                LD HL,0XE1C0
                CALL CLS_TXTSCR
                LD A,0X1F
                JP SET_7FFD

;Ž—ˆ‘’Š€ Š“‘Ž—Š€ ’…Š‘’ŒŽ„ŽƒŽ Š€€
CLS_TXTSCR      LD D,H
                LD E,L
                LD BC,0X63F
                LD (HL),A
                INC DE
                LDIR
                RET

;…—€’œ ’…Š‘’Ž‚Ž‰ ‘’ŽŠˆ € ’…‘’ŒŽ„ŽŒ Š€…
PRTT_MSG        LD A,(HL)
                INC HL
                AND A
                RET Z
                CALL PRTSYMTXTMODE
                JR PRTT_MSG

PRINT0STROKA    LD H,0
                CALL READCMOS
                LD (0XC000),A
                LD H,2
                CALL READCMOS
                LD (0XC002),A
                LD H,4
                CALL READCMOS
                LD (0XC004),A
                XOR A
                LD L,A
                PUSH IX
                LD IX,0
                CALL PRINT_STROKA1
                POP IX
                RET

PRINT_STROKA    LD A,IXH
                AND 0XF0
                LD L,A
PRINT_STROKA1   LD B,1
                LD H,0
                RRCA
                RRCA
                RRCA
                RRCA
                ADD A,Y4DUMP
                LD E,A
                LD D,X4DUMP
                JR PRINT1STROKA

PRINT_DUMP     
;               LD DE,(X4DUMP+6)*0X100+Y4DUMP-2
;               XOR A
;               LD B,0X10
;PRT_ADRB       PUSH AF
;               CALL PRTT_A_
;               LD A," "
;               CALL PRTSYMTXTMODE
;               POP AF
;               DJNZ PRT_ADRB
                LD B,0X0F
                LD DE,X4DUMP*0X100+Y4DUMP
                LD HL,0
PRINT1STROKA    CALL PRTT_SMESH
                LD A,0XC0
                OR H
                LD H,A
                CALL PRTT_STROKA
                LD A,H
                AND 0X3F
                LD H,A
                INC E
                LD D,X4DUMP
                DJNZ PRINT1STROKA
                RET

PRTT_STROKA     LD C,0X10
PRTT_STROKA1    LD A,(HL)
                INC HL
                CALL PRTT_A_
                LD A," "
                CALL PRTSYMTXTMODE
                DEC C
                JR NZ,PRTT_STROKA1
                RET

PRTT_SMESH      CALL PRTT_HL_
                LD A,":"
                CALL PRTSYMTXTMODE
                LD A," "
                JR PRTSYMTXTMODE

PRTT_HL_        LD A,H
                CALL PRTT_A_
                LD A,L
PRTT_A_         PUSH AF
                RRCA
                RRCA
                RRCA
                RRCA
                CALL PRTT_A_1
                POP AF
PRTT_A_1        AND 0X0F
                CP 0X0A
                CCF
                ADC A,"0"
                DAA
                AND 0X7F
;…—€’œ ‘ˆŒ‚Ž‹€ € ’…Š‘’ŒŽ„ŽŒ Š€…
;D-X E-Y
PRTSYMTXTMODE   PUSH DE
                PUSH HL
                LD L,A
                LD A,0
TYPEFONT        EQU $-1
                AND A
                LD A,L
                JR NZ,.LOOP
                CP 0X80
                JR C,.LOOP
                LD HL,CONV_CP866_ATM
                PUSH BC
                RES 7,A
                LD B,0
                LD C,A
                ADD HL,BC
                LD A,(HL)
                POP BC
.LOOP           PUSH AF
                LD L,E
                LD A,D
                LD H,0
                LD D,H
                ADD HL,HL
                ADD HL,HL
                ADD HL,HL
                ADD HL,HL
                ADD HL,HL
                ADD HL,HL
                LD E,A
                SRL E
                ADD HL,DE
                AND 1
                RRCA
                RRCA
                RRCA
                OR 0XC1
                LD D,A
                LD E,0XC0
                ADD HL,DE
                POP AF
                LD (HL),A
                POP HL
                POP DE
                INC D
                RET

SET_C_A         OUT (C),A
                RET

LOAD_CMOS       LD HL,0XC000
                LD D,0
EDITCMOS1       EX DE,HL
                CALL READCMOS
                EX DE,HL
                LD (HL),E
                INC HL
                INC D
                LD A,0XF0
                CP D
                JR NZ,EDITCMOS1
                RET

SAVE_CMOS       LD HL,0XC000
                LD D,0
SAVECMOS1       LD E,(HL)
                EX DE,HL
                CALL WRITECMOS
                EX DE,HL
                INC HL
                INC D
                LD A,0XF0
                CP D
                JR NZ,SAVECMOS1
                RET

;€ ‚•Ž„…: H-€„…‘ Ÿ—…‰Šˆ
;          L-Ž—ˆ’€Ž… ‡€—…ˆ…
READCMOS        DI
                PUSH BC
                LD BC,PENT_CONF
                LD A,CMOS_ON                    ;€‡…˜…ˆ… „Ž‘’“€ Š ŠŒŽ‘“
                OUT (C),A
                LD B,HIGH (CMOS_SET_ADR)
                OUT (C),H
                LD B,HIGH (CMOS_RD_WR)
                IN L,(C)
                LD A,CMOS_OFF                   ;‡€…’ „Ž‘’“€ Š ŠŒŽ‘“
                LD B,HIGH (PENT_CONF)
                OUT (C),A
                POP BC
                LD A,L
                AND A
                RET

;€ ‚•Ž„…: H-€„…‘ Ÿ—…‰Šˆ
;          L-—’Ž ’“„€ ‡€ˆ‘€’œ
WRITECMOS
        RST8 _CMOS_RW,_WRITE_CMOS
                RET

;—’…ˆ… ‚…‘ˆˆ FPGA ˆ‹ˆ BOOTLOADER, …‘‹ˆ ’Ž …’…‚€
GET_VERS_EVO    LD C,L
                LD H,0XF0
                CALL WRITECMOS                  ;ˆ˜…Œ ‚ €„…‘ 0XF0 „‹Ÿ Ž‹“—…ˆŸ ‚…‘ˆˆ
                CALL READCMOS                   ;—ˆ’€…Œ Ž’‚…’
                CP C                            ;‘Ž‚€‹Ž ‘ ’…Œ —’Ž ‡€ˆ‘€Ž, … Ž„„…†ˆ‚€…’‘Ÿ
                RET Z                           ;ˆ ’Ž … …’…‚€ (ˆ‹ˆ ‚…‘ˆŸ FPGA ‘’€€Ÿ). ‚›•Ž„ˆŒ
                INC A                           ;ˆ˜…‹ 0XFF, ‡€—ˆ’ —€‘Ž‚ …’“
                RET Z                           ;‚›•Ž„ˆŒ
                DI
                DEC A                           ;‚Ž‡‚€™€…Œ ‘—ˆ’€Ž… ‡€—…ˆ…
                PUSH DE
                LD (DE),A                       ;Ž‹Ž†ˆ‹ˆ ‚ “”… “†… Ž—ˆ’€›‰ €‰’
                INC DE
                LD B,0X0F                       ;Ž‘’€‹Ž‘œ Ž—ˆ’€’œ Ž‘’€‹œ›… …™… 15 €‰’
GVE1            INC H
                CALL READCMOS                   ;—ˆ’€…Œ €‰’
                LD (DE),A
                INC DE
                DJNZ GVE1                       ;—ˆ’€…Œ ŽŠ€ ‚‘… €‰’› … ŠŽ—€’‘Ÿ
                POP DE                          ;Ž‚…ŸŒ ‚ “”…… 12 €‰’ ’…Š‘’€
                LD H,D
                LD L,E
                LD B,0X0C                       ;…‘‹ˆ ’…Š‘’ ŠŽŽ—… ˆ™…Œ €‰’ 0 (ˆ‡€Š ŠŽ–€ ’…Š‘’€)
GVE2            LD A,(DE)
                AND A
                JR Z,GVE3
                INC DE
                DJNZ GVE2
GVE3            LD BC,0X0C                      ;‡€€‹ˆ ˆ‡ “”…€ 2 €‰’€ „€’› ‚ ‘…–”ŽŒ€’…
                ADD HL,BC
                LD C,(HL)
                INC HL
                LD B,(HL)
                EX DE,HL
                LD (HL)," "                     ;„Ž€‚‹Ÿ…Œ Š ’…Š‘’“ Ž…‹-€‡„…‹ˆ’…‹œ
                INC HL

;€‘€ŠŽ‚™ˆŠ „€’›
UNVERS          LD A,C
                AND 0X1F                        ;“†› 5 ˆ’-—ˆ‘‹Ž Œ…‘Ÿ–€
                CALL A2TXT                      ;ŠŽ‚…‘ˆŸ ˆ “Š‹€„Š€ „€’›
                SRL B
                RR C                            ;‘„‚ˆ“‹ˆ „‹Ÿ –…‹Ž‘’Ž‘’ˆ ŽŒ…€ Œ…‘Ÿ–€
                LD A,C                          ;‚‡Ÿ‹ˆ ˆ’› Œ…‘Ÿ–€
                RRCA
                RRCA
                RRCA
                RRCA                            ;‘„‚ˆ“‹ˆ ‚ Œ‹€„˜ˆ… ˆ’›
                AND 0X0F                        ;€Œ “†› ’Ž‹œŠŽ 4 ˆ’€ Œ…‘Ÿ–€
                LD (HL),"."                     ;€‡„…‹ˆ’…‹œ€Ÿ ’Ž—Š€
                INC HL
                CALL A2TXT                      ;ŠŽ‚…‘ˆŸ ˆ “Š‹€„Š€ Œ…‘Ÿ–€
                LD (HL),"."                     ;€‡„…‹ˆ’…‹œ€Ÿ ’Ž—Š€
                INC HL
                LD (HL),"2"
                INC HL
                LD (HL),"0"                     ;„Ž€‚ˆ‹ˆ Š ƒŽ„“ „‚… –ˆ”…Šˆ
                INC HL
                LD A,B                          ;‚‡Ÿ‹ˆ ŽŒ… ƒŽ„€
                AND 0X3F                        ;“†› ’Ž‹œŠŽ 6 ˆ’
                CALL A2TXT                      ;ŠŽ‚…‘ˆŸ ˆ “Š‹€„Š€ ƒŽ„€
                BIT 6,B                         ;…‘‹ˆ ˆ’ 6 (‘„‚ˆ“’›‰ ˆ’ 7) “‘’€Ž‚‹…
                RET NZ  ;JR NZ,GVE4             ;’Ž ‡€‚…˜€…Œ ‘’ŽŠ“
                EX DE,HL                        ;ˆ€—… ‚…‘ˆŸ …’€, Ž —…Œ „Ž€‚‹Ÿ…Œ ’…Š‘’ ‚ “”…
                LD HL,TXT_BETA
                LD BC,5
                LDIR
                EX DE,HL
                RET

;€‘…—€’Š€ € Š€… ‚…Œ…ˆ, „€’› ˆ „Ÿ …„…‹ˆ
PRINTTIME       LD A,(ERS_FLAGS)
                AND M_CLOCK_ON
                RET Z                           ;—€‘› … Ž€“†…›, ‚›•Ž„ˆŒ ˆ—…ƒŽ … ‚›‚Ž„Ÿ
                LD H,0X0C
                CALL READCMOS
                AND 0X10
                RET Z                           ;…‘‹ˆ ‚…ŒŸ …™… … ŽŽ‚ˆ‹Ž‘œ, ‚›•Ž„ˆŒ ˆ—…ƒŽ … ‚›‚Ž„Ÿ
                LD H,CMOS_BYTE_01
                CALL READCMOS
                AND M_CLOCK_VIEW
                JR NZ,VIDEOMODE                 ;Ž’Ž€†…ˆ… ‚›Š‹ž—…Ž, ‚›•Ž„ˆŒ ˆ—…ƒŽ … ‚›‚Ž„Ÿ
                DI
                EXX
                LD BC,TXT_TIME                  ;—’…ˆ… ˆ …Ž€‡Ž‚€ˆ… ‚…Œ…ˆ
                LD H,4
                CALL READCMOS                   ;Ž—ˆ’€‹ˆ —€‘›
                LD (SCRSAV.CURR+2),A
                CALL BYTE2TXT                   ;‘ŠŽ‚…’ˆ‹ˆ —€‘› ‘ “Š‹€„ŠŽ‰ ‚ “”…
                LD A,(BC)
                XOR ':'-' '                     ;ŠŽ‚…‘ˆŸ Œˆƒ€ž™…ƒŽ „‚Ž…’Ž—ˆŸ
                LD (BC),A
                INC BC
                LD H,2
                CALL READCMOS                   ;Ž—ˆ’€‹ˆ Œˆ“’›
                LD (SCRSAV.CURR+1),A
                CALL BYTE2TXT                   ;‘ŠŽ‚…’ˆ‹ˆ —€‘› ‘ “Š‹€„ŠŽ‰ ‚ “”…
                LD A,(BC)
                XOR ':'-' '                     ;ŠŽ‚…‘ˆŸ Œˆƒ€ž™…ƒŽ „‚Ž…’Ž—ˆŸ
                LD (BC),A
                INC BC
                LD H,0
                CALL READCMOS                   ;Ž—ˆ’€‹ˆ ‘…Š“„›
                LD (SCRSAV.CURR),A
                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                 ;…—€’…Œ ‚…ŒŸ ˆ‡ “”…€
        RST8 _PRINT_MESSAGE
                EXX

VIDEOMODE       DI
                LD HL,0XF003
                LD BC,PENT_CONF
                LD A,CMOS_ON                    ;€‡…˜…ˆ… „Ž‘’“€ Š ŠŒŽ‘“
                OUT (C),A
                LD B,HIGH (CMOS_SET_ADR)
                OUT (C),H
                LD B,HIGH (CMOS_RD_WR)
                OUT (C),L
                LD A,CMOS_OFF                   ;‡€…’ „Ž‘’“€ Š ŠŒŽ‘“
                LD B,HIGH (PENT_CONF)
                OUT (C),A
                CALL READCMOS
                LD DE,TV_VGA
                PUSH AF
                AND %00110000
                RRCA
                RRCA
                LD C,A
                LD B,0
                LD HL,TXT_HZ
                ADD HL,BC
                LDI
                LDI
                LDI
                LDI
                INC DE
                POP AF
                BIT 0,A
                LD HL,TXT_TVVGA
                JR Z,VMODE1
                INC HL
                INC HL
                INC HL
VMODE1          LDI
                LDI
                LDI
                LD HL,TXT_VMODE                 ;…—€’…Œ ’…Š“™ˆ‰ ‚ˆ„…Ž …†ˆŒ
        RST8 _PRINT_MESSAGE
                RET

;……‚Ž„ "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

TXTMODE_ON
        PEC_ON M_SHADOW_BF
                LD BC,0XFF77
                LD A,0XA6
                CALL SET_C_A
        PEC_OFF M_SHADOW_BF
                RET

TXTMODE_OFF
        PEC_ON M_SHADOW_BF
                LD BC,0XFF77
                LD A,0XA3
                CALL SET_C_A
        PEC_OFF M_SHADOW_BF
                RET

CHECK_SCREENSAVER
                LD A,(SCRSAV.TIMEOUT)
                AND A
                RET Z
                PUSH AF
                LD HL,SCRSAV.CURR
                LD DE,(SCRSAV.START)
                LD BC,(SCRSAV.START+2)
                CALL BCDEHLM
                POP AF
                CP D
                RET NZ
                LD A,B
                OR E
                RET NZ
                CALL START_SONGLN

RESET_SCREENSAVER
                LD DE,SCRSAV.START
                LD H,0
                CALL READCMOS
                LD (DE),A
                INC DE
                LD H,2
                CALL READCMOS
                LD (DE),A
                INC DE
                LD H,4
                CALL READCMOS
                LD (DE),A
                INC DE
                XOR A
                LD (DE),A
                RET