118 lines
2.6 KiB
NASM
118 lines
2.6 KiB
NASM
model tiny,stdcall
|
|
p586N
|
|
locals
|
|
jumps
|
|
codeseg
|
|
option procalign:byte
|
|
|
|
include "..\include\mem.h"
|
|
include "..\include\fat.h"
|
|
include "..\include\divers.h"
|
|
include "..\include\graphic.h"
|
|
|
|
org 0h
|
|
|
|
start:
|
|
header exe <"CE",1,0,0,,offset imports,,offset realstart>
|
|
|
|
realstart:
|
|
call [saveparamto],offset infos
|
|
call [print],offset msg1
|
|
call [initdrive]
|
|
xor bp,bp
|
|
call [findfirstfile],offset bufferentry
|
|
jc nofiles
|
|
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:
|
|
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
|
|
call changelineattr,[xx],7
|
|
inc [xx]
|
|
call changelineattr,[xx],112
|
|
jmp endof
|
|
tre1:
|
|
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
|
|
tre3:
|
|
cmp ah,59
|
|
jne tre4
|
|
jmp realstart
|
|
tre4:
|
|
cmp ah,67
|
|
jne endof
|
|
retf
|
|
|
|
;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
|
|
menu db '\c70 [F1] Lire disque [F9] Quitter \c07',0
|
|
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
|
|
line db '\c07%n %d %t %d %t %z %a\l',0
|
|
bufferentry find <>
|
|
infos vgainf <>
|
|
|
|
importing
|
|
use VIDEO.LIB,print
|
|
use VIDEO,saveparamto
|
|
use DISQUE,initdrive
|
|
use DISQUE,findfirstfile
|
|
use DISQUE,findnextfile
|
|
endi
|
|
|