Top secrets sources NedoPC pentevo

Rev

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


;LAST UPDATE: 12.09.2022 savelij

;Žˆ‘€’…‹œ ŽŠ€ (€„…‘ ‚ IX)
;+00 X ŠŽŽ„ˆ€’€
;+01 Y ŠŽŽ„ˆ€’€
;+02 V ‚›‘Ž’€
;+03 H ˜ˆˆ€
;+04 C –‚…’
;+05 C –‚…’ Š“‘Ž€
;+06 F ”‹€ƒŽ‚›‰
;+07 N ŽŒ… “Š’€ ‚ ŽŠ…
;  ˆ’ 7-0=€‰’› 8-9 ’…Š“™ˆ‰ “Š’ Œ…ž,
;        1=€‰’› 8-9 €„…‘ •€…ˆŸ
;+08 | ’…Š“™ˆ‰
;+09 | “Š’ Œ…ž
;+0A : ŠŽ‹ˆ—…‘’‚Ž
;+0B : “Š’Ž‚ Œ…ž
;+0C | €„…‘
;+0D | ’…Š‘’€
;+0E : ‘ˆ‘ŽŠ €„…‘Ž‚
;+0F : Ž„Žƒ€ŒŒ
;+10 | €„…‘ ‘ˆ‘Š€ €Š’ˆ‚›•
;+11 | ‡Ž „‹Ÿ Œ›˜ˆ
;+12 : €„…‘ ‘ˆ‘Š€
;+13 : ƒŽŸ—ˆ• Š‹€‚ˆ˜

;”ŽŒ€’ ”‹€ƒŽ‚ŽƒŽ €‰’€ ŽŠ€
;IX+6
;7-0-…’, 1-…‘’œ ˆ†ˆ‰ ‡€ƒŽ‹Ž‚ŽŠ
;6-0-‘ €ŒŠŽ‰,1-…‡ €ŒŠˆ
;5-0-…’, 1-…‘’œ ‚…•ˆ‰ ‡€ƒŽ‹Ž‚ŽŠ
;4-0-…’, 1-…‘’œ ’…Š‘’
;3
;2-
;1-
;0-

;€‘Š‹€„Š€ €‰’ ‚›„…‹…ˆ‰
;+0 ”‹€ƒŽ‚›‰
;    7 ˆ €Š’ˆ‚Ž‘’ˆ “‘’€Ž‚‹…
;    6 “‘’€Ž‚‹…, … ‚›„…‹Ÿ…’‘Ÿ
;    5 “‘’€Ž‚‹…, ‚›‡Ž‚ ‚…Š’Ž€
;    4
;    3 \
;    2  } ”ŽŒ€ Š“‘Ž€
;    1  } ˆ Ž€„€ˆˆ
;    0 /
;+1 X ŠŽŽ„ˆ€’€
;+2 Y ŠŽŽ„ˆ€’€
;+3 V ‚›‘Ž’€
;+4 H ˜ˆˆ€
;+5 K ŠŽ„ Š‹€‚ˆ˜ˆ

;[ƒ……€–ˆŸ ’€‹ˆ–› €„…‘Ž‚ ‹ˆˆ‰ ZX Š€€]
ADRTSC          LD B,0X18
                LD DE,0X4000
                LD HL,BUFTSC
ADRTSC2         LD C,8
ADRTSC1         LD (HL),E
                INC HL
                LD (HL),D
                INC HL
                INC D
                DEC C
                JR NZ,ADRTSC1
                LD A,0X20
                ADD A,E
                LD E,A
                JR C,ADRTSC3
                LD A,D
                SUB 8
                LD D,A
ADRTSC3         DJNZ ADRTSC2
                RET

;[CLS]
CLS             LD HL,0
                LD D,H
                LD E,L
                ADD HL,SP
                LD B,0X60
                LD SP,0X5800
CLS1            REPT 0X20
                PUSH DE
                ENDM
                DJNZ CLS1
                LD SP,HL
CLSSCR          LD HL,0
                LD D,A
                LD E,A
                ADD HL,SP
                LD SP,0X5B00
                LD B,12
CLS2            REPT 0X20
                PUSH DE
                ENDM
                DJNZ CLS2
                LD SP,HL
                RRCA
                RRCA
                RRCA
                AND 7
                OUT (0XFE),A
                RET

;[‘‹…„“ž™€Ÿ ‘’ŽŠ€ ZX Š€€]
INC_H           INC H
                LD A,H
                AND 7
                RET NZ
                LD A,L
                ADD A,0X20
                LD L,A
                RET C
UMEHL1          LD A,H
                SUB 8
                LD H,A
                RET    

;[…„›„“™€Ÿ ‘’ŽŠ€ ZX Š€€]
DEC_H           DEC H
                LD A,H
                AND 7
                CP 7
                RET NZ
                LD A,L
                SUB 0X20
                LD L,A
                RET C
UVEHL1          LD A,H
                ADD A,8
                LD H,A
                RET

UVEHL           LD A,0X20
                ADD A,L
                LD L,A
                RET NC
                JR UVEHL1

UMEHL           LD A,L
                SUB 0X20
                LD L,A
                RET NC
                JR UMEHL1

;[ˆ‘Ž‚€ˆ… ŽŠ€ (GLUK)]
DRAWWIN         LD C,(IX+_X_COORD)              ;X
                LD B,(IX+_Y_COORD)              ;Y
                EX DE,HL
                LD A,C
                ADD A,A
                ADD A,A
                ADD A,A
                LD C,A
                LD A,B
                ADD A,A
                ADD A,A
                ADD A,A
                CALL 0X22B0
                EX DE,HL
                PUSH IX
                POP HL
                INC HL
                INC HL
                INC HL
                LD B,(HL)               ;˜ˆˆ€-1
                INC HL
                DEC B
                LD A,(HL)
                INC HL
                LD (COL_SYM),A          ;–‚…’ ŽŠ€
                PUSH DE
                LD C,B
                CALL PR32
                DEC C
                JR NZ,$-4
                CALL PR3232
                POP DE
                PUSH DE
                CALL NXCOLLN    ;C=0
                CALL PRTX
                INC HL
                PUSH BC
                CALL PR32
                DJNZ $-3
                POP BC
                LD A,C                  ;€…—€’€Ž ‘’ŽŠ
                ADD A,A
                ADD A,A
                ADD A,A
                ADD A,6+8
                LD D,A
                LD A,B
                ADD A,A
                ADD A,A
                ADD A,A
                ADD A,0X10*WIDE+0X0D-0X10
                LD E,A
                POP HL
                INC H
                LD C,0X40
                PUSH BC
                PUSH HL
                LD B,E
                CALL HORLN
                LD B,D
                CALL VERLN
                POP HL
                POP BC
                LD B,D
                CALL VERLN
                LD B,E
HORLN           LD A,(HL)
HORLN0          OR C
                RRC C
                JR NC,$+5
                LD (HL),A
                INC L
                LD A,(HL)
                DJNZ HORLN0
                OR C
                LD (HL),A
                RET
       
VERLN0          CALL INC_H
VERLN           LD A,(HL)
                OR C
                LD (HL),A
                DJNZ VERLN0
                RET
       
NXCOLLN         LD A,E
                ADD A,0X20
                LD E,A
                RET NC
                LD A,D
                ADD A,8
                LD D,A
                RET
       
PRSP0           LD A,(HL)
                INC HL
                PUSH DE
                PUSH HL
                LD H,(HL)
                LD L,A
                CALL PRT_HL_
                POP HL
                POP DE
                INC HL
                CALL NXCOLLN
                DJNZ PRSP0
                RET    

;[…—€’œ ‚ HEX 16-ƒŽ —ˆ‘‹€]
PRT_HL_         LD A,H
                CALL PRT_A_
                LD A,L
;[…—€’œ ‚ HEX 8-ƒŽ —ˆ‘‹€]
PRT_A_          PUSH AF
                RRCA
                RRCA
                RRCA
                RRCA
                CALL $+4
                POP AF
                AND 0X0F
                CP 0X0A
                CCF
                ADC A,"0"
                DAA
PRSN            AND 0X7F
PRSYM           CP 0X20
                JR NC,PRSYM1
                CP 0X80
                JR C,PRSYM1
                LD A,"."
PRSYM1          PUSH DE
                PUSH BC
                PUSH HL
                ADD A,A
                LD L,A
                LD H,0X0F
                ADD HL,HL
                ADD HL,HL
                LD B,4
PRSN0           LD A,(HL)
                RRCA
                OR (HL)
                INC L
                EX DE,HL
                LD (HL),A
                INC H
                EX DE,HL
                LD A,(HL)
                RRCA
                OR (HL)
                INC L
                EX DE,HL
                LD (HL),A
                INC H
                EX DE,HL
                DJNZ PRSN0
                POP HL
PR32Q           POP BC
                LD A,D
                RRCA
                RRCA
                RRCA
                ADD A,0X4F
                LD D,A
                LD A,7
COL_SYM         EQU $-1         ;–‚…’ ‘ˆŒ‚Ž‹€
                LD (DE),A
                POP DE
                INC E
                RET NZ
                LD A,D
                ADD A,8
                LD D,A
                RET

PR3232          CALL PR32
PR32            PUSH DE
                PUSH BC
                XOR A
                REPT 4
                LD (DE),A
                INC D
                LD (DE),A
                INC D
                ENDM
                JR PR32Q

PRCR            CALL PR3232
PRCRDE          LD DE,0
                CALL NXCOLLN
                INC C
PRTX            LD (PRCRDE+1),DE
                CALL PR3232
PRTX0           LD A,(HL)
                CP 0XFF
                RET Z
                CALL PRSN
                BIT 7,(HL)
                INC HL
                JR Z,PRTX0
                JR PRCR

;[…—€’œ ’…Š‘’€]
PRINT_MSG       PUSH HL
                LD A,D
                CALL 0X0E9E             ;HL=ADRLN,D:=A
                LD A,E
                ADD A,L
                LD L,A
                EX DE,HL
                POP HL
PRTXT           LD A,(HL)
                INC HL
                CP 0XFF
                RET Z
                CALL PRSN
                JR PRTXT

REST_COLOR      LD DE,(COL_CURSOR)
                LD HL,COLBUF
                LD C,(IX+_H_SIZE)
                BIT 2,(IY+55)           ;”€‰‹Ž‚ Ž‹œ˜… ‚›‘Ž’› ŽŠ€?
                JR Z,RESTCOL1
                DEC C                   ;–‚…’€Ÿ Ž‹Ž‘Š€ € 1 ŠŽŽ—…
RESTCOL1        LD B,0
                LDIR
                RET

REST_COLCURS    LD DE,(COL_CURSOR)
                LD HL,COLBUF
                LD C,(IX+_H_SIZE)
                LD B,0
                LDIR
                RET

;[ˆ‘Ž‚€‹Š€ –‚…’Ž‰ Ž‹Ž‘Šˆ ‚ Œ…ž]
COLOR_CURSOR    LD DE,0
COL_CURSOR      EQU $-2
                LD HL,COLBUF
                LD C,(IX+_H_SIZE)
COLCURS1        LD B,0
                LDIR
SET_ADR_ATR     LD A,(IX+_NUM_PKT)
                LD B,A
                LD H,(IX)
                LD L,(IX+_Y_COORD)
                ADD A,L
                LD L,A
                INC L
                CALL ADRDIS
                EX DE,HL
                LD (COL_CURSOR),HL      ;Ž‹Ž†ˆ‹ˆ €„…‘ „‹Ÿ ‚Ž‘‘’€Ž‚‹…ˆŸ –‚…’€
                LD DE,COLBUF
                LD B,(IX+_H_SIZE)
COLCURS2        LD C,(IX+_COLOR_CUR)
                LD A,(HL)
                LD (DE),A
                LD (HL),C
                INC L
                INC E
                DJNZ $-5
                RET

;[…—€’œ ‘ˆŒ‚Ž‹€]
PRT_SYM         PUSH HL
                PUSH DE
                EX DE,HL
                CALL ADRDIS
                EX DE,HL
                ADD A,A
                LD L,A
                LD H,0X0F
                ADD HL,HL
                ADD HL,HL
                REPT 8
                LD A,(HL)
                RRCA
                OR (HL)
                LD (DE),A
                INC L
                INC D
                ENDM
                POP DE
                POP HL
                INC D
                RET

PRTSPECSYM      PUSH HL
                PUSH DE
                EX DE,HL
                CALL ADRDIS
                EX DE,HL
                LD L,A
                LD H,0
                ADD HL,HL
                ADD HL,HL
                ADD HL,HL
                LD A,L
                ADD A,LOW (ICON)
                LD L,A
                ADC A,HIGH (ICON)
                SUB L
                LD H,A
                REPT 8
                LD A,(HL)
                LD (DE),A
                INC HL
                INC D
                ENDM
                POP DE
                POP HL
                INC D
                RET

;[CURSOR_UP]
CURSOR_UP       LD C,(IX+_TEK_PKT_L)
                LD B,(IX+_TEK_PKT_H)
                LD A,B
                OR C
                RET Z
                DEC BC
                LD (IX+_TEK_PKT_L),C
                LD (IX+_TEK_PKT_H),B
                LD A,(IX+_NUM_PKT)
                AND A
                JR Z,CURSOR_UP1
                DEC (IX+_NUM_PKT)
                JP COLOR_CURSOR

CURSOR_UP1      CALL REST2X2
;               CALL REST_COLCURS
;               LD A,1
                XOR A
                RST8 _SCROLL_DOWN
;               CALL SET_ADR_ATR
                LD E,(IX+_Y_COORD)
                INC E
DOWN1           LD D,(IX+_X_COORD)
                INC D
                INC D
                LD HL,ERS_FLAGS
                BIT B_RUN_FAT,(HL)
                LD L,(IX+_TEK_PKT_L)
                LD H,(IX+_TEK_PKT_H)
                JR NZ,DOWN3
                LD BC,ADR_CAT
                ADD HL,HL
                ADD HL,HL
                ADD HL,HL
                ADD HL,HL
                ADD HL,BC
DOWN4           CALL FILENAME8_3
                LD A,(ERS_FLAGS)
                AND M_MOUSE_ON                  ;Ž‚…Š€ €‹ˆ—ˆŸ Œ›˜ˆ
                RET Z
                JP DRAW_MOUSE

DOWN3           LD BC,ADR_CAT_FAT
                DEC D
                ADD HL,HL
                ADD HL,BC
                LD C,(HL)
                INC HL
                LD B,(HL)
                PUSH DE
                LD A,6
                RST8 _COM_FAT,_POS_FILES
                LD HL,BUF_FILEITEM
                RST8 _COM_FAT,_READ_DIR
                LD BC,0X0B
                ADD HL,BC
                LD A,(HL)
                SBC HL,BC
                AND 0X10
                LD A,0
                JR NZ,DOWN5
                LD A,1
DOWN5           POP DE
                CALL PRTSPECSYM
                LD HL,OUT_NAME_FILET
                RST8 _COM_FAT,_GET_LONGNAME
                LD (LONG_NAME),A
                JR DOWN4

;[CURSOR_DOWN]
CURSOR_DOWN     LD C,(IX+_TEK_PKT_L)
                LD B,(IX+_TEK_PKT_H)
                LD L,(IX+_NUM_KOL_L)
                LD H,(IX+_NUM_KOL_H)
                LD A,H
                OR L
                RET Z
                SCF
                SBC HL,BC
                RET Z
                INC BC
                LD (IX+_TEK_PKT_L),C
                LD (IX+_TEK_PKT_H),B
                LD A,(IX+_V_SIZE)
                SUB 3
                CP (IX+_NUM_PKT)
                JR Z,CURSOR_DOWN1
                INC (IX+_NUM_PKT)
                JP COLOR_CURSOR

CURSOR_DOWN1    CALL REST2X2
;               CALL REST_COLCURS
;               LD A,1
                XOR A
                RST8 _SCROLL_UP
;               CALL SET_ADR_ATR
                LD A,(IX+_Y_COORD)
                ADD A,(IX+_V_SIZE)
                SUB 2
                LD E,A
                JP DOWN1

GET_XY          LD E,(IX+_NUM_KOL_L)
                LD D,(IX+_NUM_KOL_H)    ;ŠŽ‹-‚Ž
                LD L,(IX+_TEK_PKT_L)
                LD H,(IX+_TEK_PKT_H)    ;ŽŒ…
                LD A,(IX+_V_SIZE)
                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           LD (IX+_NUM_PKT),A
                LD (IX+_TEK_PKT_L),E
                LD (IX+_TEK_PKT_H),D
                CALL REST2X2
                CALL OUT_TEK_DIR
                LD A,(ERS_FLAGS)
                AND M_MOUSE_ON                  ;Ž‚…Š€ €‹ˆ—ˆŸ Œ›˜ˆ
                RET Z
                JP DRAW_MOUSE

;[‚›—ˆ‘‹…ˆ… €„…‘€ ‚ ZX Š€…]
;H-X, L-Y
ADRDIS          LD (ASD+1),A
                LD A,L
                AND 0X18
                OR 0X40
                EX AF,AF'
                LD A,L
                AND 7
                RRCA
                RRCA
                RRCA
                ADD A,H
                LD L,A
                EX AF,AF'

                LD H,A
                LD E,L
ADRATR          LD A,H
                RRCA
                RRCA
                RRCA
                AND 3
                OR 0X58
                LD D,A
ASD             LD A,0
                RET

;[“‘’€Ž‚Š€ €„…‘€ ˆ‘Ž‚€ˆŸ ˆ„ˆŠ€’ŽŽ‰ Ž‹Ž‘Šˆ]
SETWIN_INDICAT  PUSH HL
                PUSH DE
                LD H,(IX+_X_COORD)
                INC H
                ADD A,(IX+_Y_COORD)
                LD L,A
                CALL ADRDIS
                LD (ADRSTARTIND),DE
                POP DE
                POP HL
                RET

;[ˆ‘Ž‚€ˆ… ‘‹…„“ž™…ƒŽ –‚…’ŽƒŽ Š‚€„€’ˆŠ€]
INC_INDICAT     PUSH HL
                LD HL,0
ADRSTARTIND     EQU $-2
                LD (HL),0X39
                INC HL
                LD (ADRSTARTIND),HL
                POP HL
                RET

;[‚Ž‘‘’€Ž‚‹…ˆ… —€‘’ˆ Š€€ Ž„ ŽŠŽŒ]
WIN_RESTORE
;               BIT 3,(IX-1)
;               RET Z
;               RES 3,(IX-1)
                LD A,2
                JR RESAV

;[‘Ž•€…ˆ… —€‘’ˆ Š€€ Ž„ ŽŠŽŒ]
WIN_STORE
;               BIT 3,(IX-1)
;               RET NZ
;               SET 3,(IX-1)
                LD A,1
RESAV           EX AF,AF'
                LD A,0X16;P_WINS
                CALL SET_7FFD;PAGE_128
;               LD HL,PAGE_128_RET
;               PUSH HL
                EX AF,AF'

                LD (NSOH+1),A
                RRCA
                CALL WSOHR
                LD HL,0X127E
                JR C,SOH7
                LD HL,0X771A
SOH7            LD (SOH4),HL
                LD (SOH1),HL
                LD L,(IX+_Y_COORD)
                LD H,(IX+_X_COORD)
                CALL ADRDIS_
                PUSH HL
                CALL ADRATR_
                EX (SP),HL
                LD B,(IX+_V_SIZE)
SOH3            PUSH BC
                LD B,8
                PUSH HL
SOH2            PUSH HL
                LD C,(IX+_H_SIZE)
SOH1            LD A,(HL)
                LD (DE),A
                INC DE
                INC HL
                DEC C
                JR NZ,SOH1
                POP HL
                INC H
                DJNZ SOH2
                POP HL
                CALL UVEHL_
                POP BC
                DJNZ SOH3
                POP HL
                LD A,(NSOH+1)
                AND A
                JR Z,SOH6_0
                BIT 6,(IX+_FLAGS)
                JR Z,SOH6_0
                INC (IX+_V_SIZE)
                INC (IX+_H_SIZE)
SOH6_0          LD C,(IX+_V_SIZE)
SOH6            PUSH HL
                LD B,(IX+_H_SIZE)
SOH4            LD A,(HL)
                LD (DE),A
                INC HL
                INC DE
                DJNZ SOH4
                POP HL
                LD A,0X20
                ADD A,L
                LD L,A
                JR NC,SOH4_0
                INC H
SOH4_0          DEC C
                JR NZ,SOH6
NSOH            LD A,0
                AND A
                RET Z
                CP 1
                JR NZ,NSOH1
                LD (BUFHR+1),DE
NSOH1           BIT 6,(IX+_FLAGS)
                JR Z,ADRWEK
                DEC (IX+_V_SIZE)
                DEC (IX+_H_SIZE)
ADRWEK          LD HL,0
                RRCA
                JR NC,ADRWK1
                INC HL
                INC HL
                LD D,IXH
                LD E,IXL
                LD (HL),E
                INC HL
                LD (HL),D
                RET

ADRWK1          LD A,(BUFHR1+1)
                AND A
                RET Z
                DEC HL
                DEC HL
                DEC HL
                DEC HL
                DEC HL
                LD D,(HL)
                DEC HL
                LD E,(HL)
ADRWK2          LD IXH,D
                LD IXL,E
                RET

WSOHR           PUSH AF
                PUSH HL
BUFHR           LD DE,0XC000
                EX AF,AF'
                LD HL,TABSS
BUFHR1          LD A,0
                AND A
                JR NZ,BUFHR4
                LD DE,0XC000
BUFHR4          PUSH AF
                PUSH AF
                ADD A,A
                ADD A,A
                ADD A,L
                LD L,A
                JR NC,BUFHR4_0
                INC H
BUFHR4_0        LD (ADRWEK+1),HL
                POP AF
                EX AF,AF'

                JR NC,NWOS
                LD (HL),E
                INC HL
                LD (HL),D
                POP AF
                INC A
                JR BUFHR3

NWOS            DEC HL
                DEC HL
                DEC HL
                LD D,(HL)
                DEC HL
                LD E,(HL)
                LD (BUFHR+1),DE
                POP AF
                DEC A
                RET C
BUFHR3          LD (BUFHR1+1),A
                POP HL
                POP AF
                RET

TABSS           DUPL 0X20,0

ADRDIS_         PUSH AF
                LD A,L
                AND 0X18
                OR 0X40
                EX AF,AF'
                LD A,L
                AND 7
                RRCA
                RRCA
                RRCA
                ADD A,H
                LD L,A
                EX AF,AF'

                LD H,A
                POP AF
                RET

ADRATR_         LD A,H
                RRCA
                RRCA
                RRCA
                AND 3
                OR 0X58
                LD H,A
                RET

UVEHL_          LD A,0X20
                ADD A,L
                LD L,A
                RET NC
                LD A,H
                ADD A,8
                LD H,A
                RET

DRAW_PROGRESS   PUSH AF
                PUSH HL
                LD L,A
                LD H,0
                ADD HL,HL       ; *2
                ADD HL,HL       ; *4
                ADD HL,HL       ; *8
                ADD HL,HL       ; *16
                LD C,L
                LD B,H
                LD DE,(FILESIZE_BLOCKS)
                CALL DIVIDE16
                INC C
                LD L,(IX + _Y_COORD)
                INC L
                INC L
                INC L
                LD H,0
                ADD HL,HL       ; *2
                ADD HL,HL       ; *4
                ADD HL,HL       ; *8
                ADD HL,HL       ; *16
                ADD HL,HL       ; *32
                LD A,(IX + _X_COORD)
                INC A
                ADD A,L
                LD L,A
                LD A,0x58
                ADD A,H
                LD H,A
                LD A,%00111000
.L1             LD (HL),A
                INC L
                DEC C
                JR NZ,.L1
                POP HL
                POP AF
                RET