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 |