|
|
|
@ -1,94 +1,100 @@
|
|
|
|
|
.model tiny |
|
|
|
|
.486 |
|
|
|
|
smart |
|
|
|
|
.code |
|
|
|
|
model tiny,stdcall |
|
|
|
|
p586N |
|
|
|
|
locals |
|
|
|
|
jumps |
|
|
|
|
codeseg |
|
|
|
|
option procalign:byte |
|
|
|
|
|
|
|
|
|
org 0h |
|
|
|
|
include "..\include\mem.h" |
|
|
|
|
include "..\include\fat.h" |
|
|
|
|
include "..\include\divers.h" |
|
|
|
|
include "..\include\graphic.h" |
|
|
|
|
|
|
|
|
|
include ..\include\mem.h |
|
|
|
|
include ..\include\fat.h |
|
|
|
|
org 0h |
|
|
|
|
|
|
|
|
|
start: |
|
|
|
|
header exe <,1,0,,,offset imports,,> |
|
|
|
|
header exe <"CE",1,0,0,,offset imports,,offset realstart> |
|
|
|
|
|
|
|
|
|
realstart: |
|
|
|
|
push offset msg1 |
|
|
|
|
call [print] |
|
|
|
|
|
|
|
|
|
mov ah,3 |
|
|
|
|
int 48h |
|
|
|
|
xor bp,bp |
|
|
|
|
mov di,offset bufferentry |
|
|
|
|
mov ah,7 |
|
|
|
|
int 48h |
|
|
|
|
jc nofiles |
|
|
|
|
realstart: |
|
|
|
|
call [saveparamto],offset infos |
|
|
|
|
call [print],offset msg1 |
|
|
|
|
call [initdrive] |
|
|
|
|
xor bp,bp |
|
|
|
|
call [findfirstfile],offset bufferentry |
|
|
|
|
jc nofiles |
|
|
|
|
go: |
|
|
|
|
push word ptr [di+Entries.FileAttr] |
|
|
|
|
push dword ptr [di+Entries.FileSize] |
|
|
|
|
push word ptr [di+Entries.FileTime] |
|
|
|
|
push word ptr [di+Entries.FileDate] |
|
|
|
|
push word ptr [di+Entries.FileTimeCrea] |
|
|
|
|
push word ptr [di+Entries.FileDateCrea] |
|
|
|
|
push di |
|
|
|
|
push offset line |
|
|
|
|
call [print] |
|
|
|
|
inc bp |
|
|
|
|
mov ah,8 |
|
|
|
|
int 48h |
|
|
|
|
jnc go |
|
|
|
|
push [word bufferentry.result.fileattr] |
|
|
|
|
push [bufferentry.result.filesize] |
|
|
|
|
push [bufferentry.result.filetime] |
|
|
|
|
push [bufferentry.result.filedate] |
|
|
|
|
push [bufferentry.result.filetimecrea] |
|
|
|
|
push [bufferentry.result.filedatecrea] |
|
|
|
|
mov bx,offset bufferentry.result.filename |
|
|
|
|
push bx |
|
|
|
|
push offset line |
|
|
|
|
call [print] |
|
|
|
|
|
|
|
|
|
call [findnextfile],offset bufferentry |
|
|
|
|
jc nofiles |
|
|
|
|
inc bp |
|
|
|
|
jmp go |
|
|
|
|
nofiles: |
|
|
|
|
push offset menu |
|
|
|
|
call [print] |
|
|
|
|
mov xx,1 |
|
|
|
|
mov xxold,2 |
|
|
|
|
call Select |
|
|
|
|
call [print],offset menu |
|
|
|
|
mov [xx],1 |
|
|
|
|
call changelineattr,[xx],112 |
|
|
|
|
endof: |
|
|
|
|
mov ax,0 |
|
|
|
|
int 16h |
|
|
|
|
cmp ah,50h |
|
|
|
|
jne tre1 |
|
|
|
|
cmp xx,bp |
|
|
|
|
ja endof |
|
|
|
|
inc xx |
|
|
|
|
call select |
|
|
|
|
jmp endof |
|
|
|
|
mov ax,0 |
|
|
|
|
int 16h |
|
|
|
|
cmp ah,50h |
|
|
|
|
jne tre1 |
|
|
|
|
cmp [xx],bp |
|
|
|
|
ja endof |
|
|
|
|
call changelineattr,[xx],7 |
|
|
|
|
inc [xx] |
|
|
|
|
call changelineattr,[xx],112 |
|
|
|
|
jmp endof |
|
|
|
|
tre1: |
|
|
|
|
cmp ah,48h |
|
|
|
|
jne tre2 |
|
|
|
|
cmp xx,1 |
|
|
|
|
je endof |
|
|
|
|
dec xx |
|
|
|
|
call select |
|
|
|
|
jmp endof |
|
|
|
|
cmp ah,48h |
|
|
|
|
jne tre2 |
|
|
|
|
cmp [xx],1 |
|
|
|
|
je endof |
|
|
|
|
call changelineattr,[xx],7 |
|
|
|
|
dec [xx] |
|
|
|
|
call changelineattr,[xx],112 |
|
|
|
|
jmp endof |
|
|
|
|
tre2: |
|
|
|
|
cmp al,0Dh |
|
|
|
|
jne tre3 |
|
|
|
|
cmp al,0Dh |
|
|
|
|
jne tre3 |
|
|
|
|
tre3: |
|
|
|
|
cmp ah,59 |
|
|
|
|
jne tre4 |
|
|
|
|
jmp realstart |
|
|
|
|
cmp ah,59 |
|
|
|
|
jne tre4 |
|
|
|
|
jmp realstart |
|
|
|
|
tre4: |
|
|
|
|
cmp ah,67 |
|
|
|
|
jne endof |
|
|
|
|
retf |
|
|
|
|
cmp ah,67 |
|
|
|
|
jne endof |
|
|
|
|
retf |
|
|
|
|
|
|
|
|
|
;selectionne la ligne xx |
|
|
|
|
Select: |
|
|
|
|
push ax di |
|
|
|
|
mov di,xxold |
|
|
|
|
mov al,7 |
|
|
|
|
add di,3 |
|
|
|
|
mov ah,32 |
|
|
|
|
int 47h |
|
|
|
|
mov ax,xx |
|
|
|
|
mov xxold,ax |
|
|
|
|
mov di,xx |
|
|
|
|
mov ah,32 |
|
|
|
|
mov al,112 |
|
|
|
|
add di,3 |
|
|
|
|
int 47h |
|
|
|
|
pop di ax |
|
|
|
|
ret |
|
|
|
|
;couleur al pour ligne %0 en %1 |
|
|
|
|
PROC changelineattr near |
|
|
|
|
USES ax,bx,di,es |
|
|
|
|
ARG @line:word,@attr:word |
|
|
|
|
mov ax,0B800h |
|
|
|
|
mov es,ax |
|
|
|
|
mov ax,[@line] |
|
|
|
|
add ax,3 |
|
|
|
|
mul [cs:infos.columns] |
|
|
|
|
mov di,ax |
|
|
|
|
shl di,1 |
|
|
|
|
mov al,[cs:infos.columns] |
|
|
|
|
inc di |
|
|
|
|
mov bx,[@attr] |
|
|
|
|
@@popep: |
|
|
|
|
mov [es:di],bl |
|
|
|
|
add di,2 |
|
|
|
|
dec al |
|
|
|
|
jnz @@popep |
|
|
|
|
ret |
|
|
|
|
endp changelineattr |
|
|
|
|
|
|
|
|
|
xx dw 1 |
|
|
|
|
xxold dw 0 |
|
|
|
@ -96,14 +102,16 @@ menu db '\c70 [F1] Lire disque [F9] Quitter
|
|
|
|
|
msg1 db '\e\g00,00\c70 Gestionnaire de fichier Version 1.5 ' |
|
|
|
|
db '\g00,01\c07--------------------------------------------------------------------------------' |
|
|
|
|
db '\g00,02Nom Ext. Date creation Date modification Taille Attributs' |
|
|
|
|
db '\g00,03--------------------------------------------------------------------------------\l',0 |
|
|
|
|
db '\g00,03-------------------------------------------------------------------------------\l',0 |
|
|
|
|
line db '\c07%n %d %t %d %t %z %a\l',0 |
|
|
|
|
bufferentry db 512 dup (0) |
|
|
|
|
|
|
|
|
|
bufferentry find <> |
|
|
|
|
infos vgainf <> |
|
|
|
|
|
|
|
|
|
imports: |
|
|
|
|
db "VIDEO.LIB::print",0 |
|
|
|
|
print dd 0 |
|
|
|
|
dw 0 |
|
|
|
|
importing |
|
|
|
|
use VIDEO.LIB,print |
|
|
|
|
use VIDEO,saveparamto |
|
|
|
|
use DISQUE,initdrive |
|
|
|
|
use DISQUE,findfirstfile |
|
|
|
|
use DISQUE,findnextfile |
|
|
|
|
endi |
|
|
|
|
|
|
|
|
|
end start |
|
|
|
|