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 |