Top secrets sources NedoPC pentevo

Rev

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


; LAST UPDATE: 25.11.2022 savelij

_VERS_CORE      EQU 12
_VERS_3         EQU 40
_VERS_4         EQU 108
_VERS_5         EQU 124

_BFOFFBITS      EQU 0X0A                        ;4
_BCSIZE         EQU 0X0E                        ;4
_BCWIDTH        EQU 0X12
_BCHEIGTH_CORE  EQU 0X14
_BCHEIGTH_345   EQU 0X16
_BCBITCOUNT_COR EQU 0X18
_BCBITCOUNT_345 EQU 0X1C

BUF_COLORS      EQU 0XB800

;[BMPVIEW]
BMPVIEW         CALL REST_COLCURS               ;‘’ˆ€ˆ… Š“‘Ž€
                PEC_ON M_SHADOW_BF
               
                CALL LOAD_BMP
                CALL CMP_BMPFORMAT              ;Ž‚…Š€ ”ŽŒ€’€ BMP ”€‰‹€
                JR C,BMPVIEW1                   ;… Ž„„…†ˆ‚€…’‘Ÿ, … ‚›‚Ž„ˆŒ ˆ‡Ž€†…ˆ…
                CALL CREATE_PAL                 ;‘Ž‡„€ˆ… €‹ˆ’›
                CALL SET_COLORS                 ;ƒ……€–ˆŸ ’€‹ˆ–› –‚…’Ž‚ „‹Ÿ ‡€Œ…›
                LD A,1
                LD HL,SCR_PAL
                RST8 _SETUP_PAL                 ;“‘’€Ž‚Š€ ‘Ž‡„€Ž‰ €‹ˆ’›
;               CALL CONV_BMP
                CALL OUT_SCREEN                 ;‡€ƒ“‡Š€ ˆ‡Ž€†…ˆŸ
                XOR A
                RST8 _SETUP_PAL                 ;“‘’€Ž‚Š€ SPECTRUM €‹ˆ’›

BMPVIEW1        LD BC,WIN_A1
                LD A,0X7A
                OUT (C),A
                LD BC,0XFF77
                LD A,0XA3
                OUT (C),A
                CALL SET_7FFD_0
                PEC_OFF M_SHADOW_BF
                LD SP,(LD_FILE_SP)
                POP IY
                POP IX
                POP HL
                JP _RULILKA                     ;Ž„Ž‹†…ˆ… Ž‘ŒŽ’€

;300/40=C 1024/64 0000001100000000/01000000
;CONV_BMP       LD HL,(VERT_SIZE)
;               DEC HL
;               LD C,L
;               ADD HL,HL
;               ADD HL,HL
               
;               RET

;[‚›‚Ž„ € Š€ ˆ‡Ž€†…ˆŸ ˆ‡ ‡€ƒ“†…ŽƒŽ BMP ”€‰‹€]
OUT_SCREEN      LD BC,CONF_128
                LD A,0X19
                OUT (C),A
                LD A,RAM_FLASHER
                CALL SET_CPU1
                LD BC,0XFF77
                LD A,0XA0
                OUT (C),A                       ;‚Š‹ž—…ˆ… Š€€ EGA 320x200x16c
                LD HL,CPU3+40*199               ;€„…‘ €—€‹€ Ž‘‹…„…‰ ‘’ŽŠˆ Š€€
                LD D,HIGH (BUF_COLORS)
                LD BC,-80
                EXX
                LD BC,CONF_128
                LD DE,CPU1
                LD HL,(CPU1+_BFOFFBITS)         ;‘Œ…™…ˆ… „Ž ˆŠ‘…‹…‰ ˆ‡Ž€†…ˆŸ
                ADD HL,DE
                LD DE,0X1B1F
                LD IXL,200                      ;‚›‘Ž’€ Š€€
COPYPIC2        LD IXH,40                       ;˜ˆˆ€ Š€€
COPYPIC1        LD A,(HL)       ;0
                INC HL
                OUT (C),D
                EXX
                LD E,A
                LD A,(DE)
                LD (HL),A       ;7 6
                EXX
                LD A,(HL)       ;1
                INC HL
                OUT (C),E
                EXX
                LD E,A
                LD A,(DE)
                LD (HL),A       ;5 4
                LD A,%00100000
                XOR H
                LD H,A
                EXX
                BIT 7,H
                JP Z,COPYPIC4
                LD HL,CPU1
                LD A,RAM_FLASHER+1
                CALL SET_CPU1
COPYPIC4        LD A,(HL)       ;2
                INC HL
                OUT (C),D
                EXX
                LD E,A
                LD A,(DE)
                LD (HL),A       ;3 2
                EXX
                LD A,(HL)       ;3
                INC HL
                OUT (C),E
                EXX
                LD E,A
                LD A,(DE)
                LD (HL),A       ;1 0
                LD A,%00100000
                XOR H
                LD H,A
                INC HL
                EXX
                DEC IXH
                JP NZ,COPYPIC1
                EXX
                ADD HL,BC
                EXX
                DEC IXL
                JP NZ,COPYPIC2
                XOR A
                IN A,(0XFE)
                CPL
                AND 0X1F
                JR Z,$-6
                XOR A
                IN A,(0XFE)
                CPL
                AND 0X1F
                JR NZ,$-6
                LD BC,CONF_128
                LD A,0X1B
                OUT (C),A
                CALL CLEAREGA1
                LD BC,CONF_128
                LD A,0X1F
                OUT (C),A
CLEAREGA1       XOR A
                LD D,A
                LD E,A
                LD H,A
                LD L,A
                ADD HL,SP
                LD SP,0
CLEAREGA2       REPT 0X20
                PUSH DE
                ENDM
                DEC A
                JP NZ,CLEAREGA2
                LD SP,HL
                RET

SCR_PAL         DUPL 0X10,0                     ;‘Ž‡„€€Ÿ €‹ˆ’€ ˆ‡ ”€‰‹€

BLUE_3          DB 0, M_B_L, M_B_H, M_B_L | M_B_H
GREEN_3         DB 0, M_G_L, M_G_H, M_G_L | M_G_H
RED_3           DB 0, M_R_L, M_R_H, M_R_L | M_R_H

;[ƒ……€’Ž –‚…’€ ‚ ”ŽŒ€’… ATM VGA Š€€ „‹Ÿ ‡€Œ…› €‰’Ž‚ ˆ‘•Ž„ŽƒŽ ˆ‡Ž€†…ˆŸ]
SET_COLORS      LD HL,BUF_COLORS
SETCOLORS1      LD E,L
                LD A,E
                AND 7
                RLCA
                RLCA
                RLCA
                LD D,A
                LD A,E
                AND 8
                RLCA
                RLCA
                RLCA
                RLCA
                OR D
                LD D,A
                LD A,E
                AND 0X70
                RRCA
                RRCA
                RRCA
                RRCA
                OR D
                LD D,A
                LD A,E
                AND 0X80
                RRCA
                OR D
                LD (HL),A
                INC L
                JR NZ,SETCOLORS1
                RET

;[ŠŽ‚…’Ž €‹ˆ’› BMP ”€‰‹€ ‚ ”ŽŒ€’ €‹ˆ’› ATM]
CREATE_PAL      LD HL,CPU1+_BCSIZE+1
                LD D,(HL)
                DEC HL
                LD E,(HL)
                ADD HL,DE
                EX DE,HL                        ;DE=‘Œ…™…ˆ… „Ž €‹ˆ’› BMP ”€‰‹€
                LD HL,SCR_PAL+0X0F              ;“”… ‘Ž‡„€‚€…ŒŽ‰ €‹ˆ’›
                LD A,0X10
                EXX
                LD D,0
                EXX
SETPAL1         EX AF,AF'
                LD A,(DE)
                AND 0XC0
                RLCA
                RLCA
                EXX
                LD HL,BLUE_3
                LD E,A
                ADD HL,DE
                LD A,(HL)
                EXX
                LD B,A          ;BLUE
                INC DE
                LD A,(DE)
                AND 0XC0
                RLCA
                RLCA
                EXX
                LD HL,GREEN_3
                LD E,A
                ADD HL,DE
                LD A,(HL)
                EXX
                OR B
                LD B,A          ;GREEN
                INC DE
                LD A,(DE)
                AND 0XC0
                RLCA
                RLCA
                EXX
                LD HL,RED_3
                LD E,A
                ADD HL,DE
                LD A,(HL)
                EXX
                OR B            ;RED
                CPL
                LD (HL),A
                DEC HL
                INC DE
                INC DE
                EX AF,AF'

                DEC A
                JP NZ,SETPAL1
                RET

;[Ž‚…Š€ ”ŽŒ€’€ BMP ”€‰‹€ € …„Œ…’ Ž„„…†Šˆ (Ž„„…†ˆ‚€…’‘Ÿ ’Ž‹œŠŽ 16 –‚…’›… BMP)]
CMP_BMPFORMAT   LD A,(CPU1+_BCSIZE)
                CP _VERS_CORE
                LD B,1
                JR Z,CMPBMPFORM1
                CP _VERS_3
                LD B,2
                JR Z,CMPBMPFORM1
                CP _VERS_4
                LD B,3
                JR Z,CMPBMPFORM1
                CP _VERS_5
                LD B,4
                JR Z,CMPBMPFORM1
                SCF
                RET

CMPBMPFORM1     LD HL,CPU1+_BCWIDTH
                LD E,(HL)
                INC HL
                LD D,(HL)
                LD (HORIZ_SIZE),DE              ;˜ˆˆ€ ‡€ƒ“†…ŽƒŽ ˆ‡Ž€†…ˆŸ
                INC HL
                LD A,B
                DEC A
                JR Z,CMPBMPFORM2
                LD A,(HL)
                INC HL
                OR (HL)
                SCF
                RET NZ
CMPBMPFORM2     LD HL,320                       ;„‹Ÿ ˜ˆˆ› … Ž‹…… 320 ’Ž—…Š
                AND A
                SBC HL,DE
                SCF
                RET NZ
                LD HL,CPU1
                LD A,B
                DEC A
                LD DE,_BCHEIGTH_CORE
                JR Z,CMPBMPFORM4
                LD DE,_BCHEIGTH_345
CMPBMPFORM4     ADD HL,DE
                LD E,(HL)
                INC HL
                LD D,(HL)
                LD (VERT_SIZE),DE               ;‚›‘Ž’€ ‡€ƒ“†…ŽƒŽ ˆ‡Ž€†…ˆŸ
                INC HL
                LD A,B
                DEC A
                JR Z,CMPBMPFORM3
                LD A,(HL)
                INC HL
                OR (HL)
                SCF
                RET NZ
CMPBMPFORM3     LD HL,200                       ;„‹Ÿ ‚›‘Ž’› … Ž‹…… 200 ’Ž—…Š
                AND A
                SBC HL,DE
                SCF
                RET NZ
                LD HL,CPU1
                LD A,B
                DEC A
                LD DE,_BCBITCOUNT_COR
                JR Z,CMPBMPFORM5
                LD DE,_BCBITCOUNT_345
CMPBMPFORM5     ADD HL,DE
                LD A,(HL)
                CP 4
                RET Z
                SCF
                RET

;[LOAD_16K]
LOAD_16K        LD HL,CPU1
                LD A,0X20
                RST8 _COM_FAT,_READ_FILE
                RET

;[LOAD_BMP]
LOAD_BMP        LD A,RAM_FLASHER
LOADBMP2        CALL SET_CPU1
                PUSH AF
                CALL LOAD_16K
                JR C,LOADBMP1
                POP AF
                INC A
                JR LOADBMP2

LOADBMP1        POP AF
                LD A,RAM_FLASHER
SET_CPU1        PUSH BC
                LD BC,WIN_P1
                OUT (C),A
                POP BC
                RET

HORIZ_SIZE      DW 0
VERT_SIZE       DW 0