"КакиетоДиззиИЭксолон.trd МояСупериграНаБейсике128.trd ХзЧёЕщёНеСмотрел001.trd" - вот это явно ненормальные именаVBI wrote:нормальные имена фалов
Полностью согласен.VBI wrote:Дим, вот свежий пример: placebo-hb_sveta.trd. получше, чем placeb~1.trd.
VBI wrote:много придётся переделать, если из 32байт на запись сделать, например, 48 или 64?
например, 48:
/* File status structure (FILINFO) */
typedef struct {
DWORD fsize; /* File size */
WORD fdate; /* Last modified date */
WORD ftime; /* Last modified time */
BYTE fattrib; /* Attribute */
TCHAR fname[13]; /* Short file name (8.3 format) */
#if _USE_LFN
TCHAR* lfname; /* Pointer to the LFN buffer */
UINT lfsize; /* Size of LFN buffer in TCHAR */
#endif
} FILINFO;
/* FILE STATUS STRUCTURE (FILINFO) */
STRUCT FILINFO
FSIZE DWORD ;/* FILE SIZE */
FDATE WORD ;/* LAST MODIFIED DATE */
FTIME WORD ;/* LAST MODIFIED TIME */
FATTRIB BYTE ;/* ATTRIBUTE */
FNAME BLOCK 16,0 ;/* SHORT FILE NAME (8.3 FORMAT) */
MARK byte ;marking
NEXT WORD
NEXTP BYTE
PREV WORD
PREVP BYTE
;RESERV dw
ENDS
readfnos
ld a,mem.fat_p
ld bc,mem.b1
out (c),a
WIN_GETPAGES a
ld (.num),a
ld b,high mem.b2
out (c),a
ld de,0xc000
ld (ix+txt.FWIN.fno_1),de
ld (ix+txt.FWIN.p_fno_1),a
MEM_SET 0x8000,0,0x20
ld a,(ix+txt.FWIN.drive):add a,0x30:ld (curdir),a
ld de,dir
ld bc,curdir
F_OPDIR
.l2 ld bc,0x8000
.l1 ld de,dir
F_RDIR
push bc:pop iy
ld a,FILINFO.FNAME:add c:ld c,a
LD A,(BC):or a:ret z
dec c
sub 0x2e:or (iy+FILINFO.FNAME+1)
jr z,.l2 ;пропускаем точку
ld a,(bc):and 0x10:jr nz,.cat
ld a,0x20
.cat ld (bc),a
ld d,b,e,c
push bc
call fno_sort
pop bc
ADDBC8 0x18
bit 6,b:jr z,.l1
ld hl,.num:inc (hl)
ld bc,mem.b2:ld a,(hl)
out (c),a
ld bc,0x8000
jr .l1
.num word 0
fno_sort
xor a:ld hl,0x8008:sbc hl,de:jp z,.first
ld a,(ix+txt.FWIN.p_fno_1)
ld bc,mem.b3
out (c),a
ld (.num),a
ld a,(ix+txt.FWIN.fno_1):ld h,(ix+txt.FWIN.fno_1+1)
add FILINFO.FATTRIB:ld l,a
.l3 ld a,(de):cp (hl):jr .cat
.l2 inc l,e
ld a,(de):or (hl):jr z,.prev
ld a,(de):cp (hl)
.cat jr z,.l2
jr c,.prev
ld a,l
and %11100000:or FILINFO.NEXT:ld l,a ;get fno
ld c,(hl):inc hl:ld b,(hl):inc hl:ld a,(hl)
or a:jr z,.new
ld hl,FILINFO.FNAME-1 ; -4000+9
add hl,bc
ld bc,mem.b3:out (c),a
ld (.num),a
ld a,e:and %11100000
or FILINFO.FATTRIB:ld e,a ;взад на имя
jr .l3
.new ;добавим после текущего
ld a,l:and %11100000:ld l,a ;смещение в ноль
push hl:ex (sp),ix ;в индексный
push iy:pop de:set 6,d
xor a
ld (iy+FILINFO.NEXTP),a ;устанавливаем следующий фно zero
ld a,(.num)
ld (iy+FILINFO.PREVP),a ;устанавливаем предыдущий
ld (iy+FILINFO.PREV),hl
ld (ix+FILINFO.NEXT),de ;устанавливаем следующий
ld a,(readfnos.num)
ld (ix+FILINFO.NEXTP),a
pop ix:ret
.prev ;вставим перед текущим
ld a,l:and %11100000:ld l,a ;смещение в ноль
push hl:ex (sp),ix ;в индексный
push iy:pop de:set 6,d
ld a,(.num)
ld (iy+FILINFO.NEXTP),a
ld (iy+FILINFO.NEXT),hl ;устанавливаем следующий фно
ld hl,(ix+FILINFO.PREV) ;берём предыдущий фно
ld (iy+FILINFO.PREV),hl ;устанавливаем предыдущий
ld (ix+FILINFO.PREV),de ;устанавливаем предыдущий
ld a,(readfnos.num):ld b,a
ld a,(ix+FILINFO.PREVP)
ld (ix+FILINFO.PREVP),b
ld (iy+FILINFO.PREVP),a
pop ix
or a:jr z,.firstfno ;если ноль то первый элемент списка
ld bc,mem.b3:out (c),a
push hl:pop iy
ld (iy+FILINFO.NEXT),de ;установим следующим
ld a,(readfnos.num)
ld (iy+FILINFO.NEXTP),a
ret
.first
push iy:pop de:set 6,d
xor a
ld (iy+FILINFO.PREVP),a
ld (iy+FILINFO.NEXTP),a
.firstfno
ld (ix+txt.FWIN.fno_1),de ;запомним первый элемент списка
ld a,(readfnos.num)
ld (ix+txt.FWIN.p_fno_1),a
ret
Koshi wrote:.добавлены параметры панелей в INI файл (изменена версия такового)
Black_Cat wrote:Нельзя ли пересобрать на базе твоего Wild Commander максимально упрощённую и урезанную в функционале Lite версию?
VBI wrote:если это возможно, добавь в плаг варианты загрузки: оригинальный (по времени), турбо (как сейчас), и мгновенный (насколько возможно)
VBI wrote:и что делает вклюение кеш-а?
Users browsing this forum: No registered users and 1 guest