Subversion Repositories pentevo

Rev

Rev 792 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 792 Rev 1186
Line 1... Line 1...
1
 
1
 
2
;LAST UPDATE: 12.11.2018 savelij
2
; LAST UPDATE: 11.02.2025 savelij
3
 
3
 
4
SUPPORT_EXT     DB "TRDSCLFDITAPSPG$C FNTBMPROM",0
4
SUPPORT_EXT     DB "TRD"
-
 
5
                DB "SCL"
-
 
6
                DB "FDI"
-
 
7
                DB "TAP"
-
 
8
                DB "SPG"
-
 
9
                DB "$C "
-
 
10
                DB "FNT"
-
 
11
                DB "BMP"
-
 
12
                DB "ROM"
-
 
13
                DB 0
5
 
14
 
-
 
15
SYMS4SORT       DB ".!#$%&'()-0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`{}~",0x7F
-
 
16
                DB "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯЁ",0
-
 
17
 
6
;[СОРТИРОВКА СПИСКА НАЙДЕННЫХ ДИРЕКТОРИЙ/ФАЙЛОВ]
18
; сортировка списка найденных директорий/файлов
7
SORT_FINDFILES  LD HL,(KOL_FOUNDED)
19
SORT_FINDFILES  LD HL,(KOL_FOUNDED)
8
                LD A,H
20
                LD A,H
9
                OR L
21
                OR L
10
                RET Z                           ;ВЫХОД ЕСЛИ НИЧЕГО НЕ НАЙДЕНО
22
                RET Z                           ; выход если ничего не найдено
11
                DEC HL
23
                DEC HL
12
                LD A,H
24
                LD A,H
13
                OR L
25
                OR L
14
                RET Z                           ;ВЫХОД ЕСЛИ ДИРЕКТОРИЯ/ФАЙЛ ТОЛЬКО 1
26
                RET Z                           ; выход если директория/файл только 1
15
                EVOPORT WIN_P3,RAM_TEMP2
27
        EVOPORT WIN_P3,RAM_SORTFILES
16
                LD HL,CPU3+0X1000               ;АДРЕС ПЕРВЫХ СИМВОЛОВ
28
                LD HL,CPU3+0x1000               ; адрес первых символов
17
                LD DE,0X1000
29
                LD DE,0x1000
18
                LD BC,SYMS4SORT
30
                LD BC,SYMS4SORT
19
                EXX
31
                EXX
20
                LD HL,CPU3+0X2000               ;АДРЕС КУДА СКЛАДИРОВАТЬ СОРТИРОВАННОЕ
32
                LD HL,CPU3+0x2000               ; адрес куда складировать сортированное
21
                LD BC,(KOLFIND)
33
                LD BC,(FATVAR.KOLFIND)
22
                EXX
34
                EXX
23
;ПЕРВЫЙ ПРОХОД ДЛЯ ДИРЕКТОРИЙ
35
; первый проход для директорий
24
SORTIR03        LD A,(HL)
36
SORTIR03        LD A,(HL)
25
                AND 0X10
37
                AND M_DIR_Directory
26
                JR Z,SORTIR01
38
                JR Z,SORTIR01
27
                INC HL
39
                INC HL
28
                LD A,(BC)
40
                LD A,(BC)
29
                CP (HL)
41
                CP (HL)
30
                DEC HL
42
                DEC HL
31
                JR NZ,SORTIR01
43
                JR NZ,SORTIR01
32
                SBC HL,DE                       ;ПЕРЕХОД К НОМЕРАМ
44
                SBC HL,DE                       ; переход к номерам
33
                LD A,(HL)
45
                LD A,(HL)
34
                INC HL
46
                INC HL
35
                EXX
47
                EXX
36
                LD (HL),A
48
                LD (HL),A
37
                INC HL
49
                INC HL
Line 43... Line 55...
43
                INC HL
55
                INC HL
44
                DEC BC
56
                DEC BC
45
                LD A,B
57
                LD A,B
46
                OR C
58
                OR C
47
                EXX
59
                EXX
48
                JR Z,SORTIR05                   ;ЕСЛИ КОНЧИЛОСЬ ТО ТОЖЕ САМОЕ ДЛЯ ФАЙЛОВ
60
                JR Z,SORTIR05                   ; если кончилось то тоже самое для файлов
49
                ADD HL,DE                       ;ВОЗВРАТ К ФЛАГАМ И ИМЕНАМ
61
                ADD HL,DE                       ; возврат к флагам и именам
50
                JR SORTIR03
62
                JR SORTIR03
51
 
63
 
52
;НЕ ДИРЕКТОРИЯ, СЛЕДУЮЩАЯ ПАРА
64
; не директория, следующая пара
53
SORTIR01        INC HL
65
SORTIR01        INC HL
54
                INC HL
66
                INC HL
55
                EXX
67
                EXX
56
                DEC BC
68
                DEC BC
57
                LD A,B
69
                LD A,B
58
                OR C
70
                OR C
59
                EXX
71
                EXX
60
                JR NZ,SORTIR03
72
                JR NZ,SORTIR03
61
SORTIR05        EXX
73
SORTIR05        EXX
62
                LD BC,(KOLFIND)
74
                LD BC,(FATVAR.KOLFIND)
63
                EXX
75
                EXX
64
                LD HL,CPU3+0X1000
76
                LD HL,CPU3+0x1000
65
                INC BC
77
                INC BC
66
                LD A,(BC)
78
                LD A,(BC)
67
                AND A
79
                AND A
68
                JR NZ,SORTIR03
80
                JR NZ,SORTIR03
69
                LD BC,SYMS4SORT
81
                LD BC,SYMS4SORT
70
                LD HL,CPU3+0X1000
82
                LD HL,CPU3+0x1000
71
;ВТОРОЙ ПРОХОД ДЛЯ ФАЙЛОВ
83
; второй проход для файлов
72
SORTIR02        LD A,(HL)
84
SORTIR02        LD A,(HL)
73
                AND 0X10
85
                AND M_DIR_Directory
74
                JR NZ,SORTIR04
86
                JR NZ,SORTIR04
75
                INC HL
87
                INC HL
76
                LD A,(BC)
88
                LD A,(BC)
77
                CP (HL)
89
                CP (HL)
78
                DEC HL
90
                DEC HL
Line 104... Line 116...
104
                LD A,B
116
                LD A,B
105
                OR C
117
                OR C
106
                EXX
118
                EXX
107
                JR NZ,SORTIR02
119
                JR NZ,SORTIR02
108
SORTIR07        EXX
120
SORTIR07        EXX
109
                LD BC,(KOLFIND)
121
                LD BC,(FATVAR.KOLFIND)
110
                EXX
122
                EXX
111
                LD HL,CPU3+0X1000
123
                LD HL,CPU3+0x1000
112
                INC BC
124
                INC BC
113
                LD A,(BC)
125
                LD A,(BC)
114
                AND A
126
                AND A
115
                JR NZ,SORTIR02
127
                JR NZ,SORTIR02
116
                LD HL,CPU3+0X2000
128
                LD HL,CPU3+0x2000
117
                LD DE,CPU3
129
                LD DE,CPU3
118
                LD BC,0X1000
130
                LD BC,0x1000
119
                LDIR
131
                LDIR
120
                RET
132
                RET