Small operating system made in assembly language
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

117 lines
2.6 KiB

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