Browse Source

feat: mise à jour du code pour compilation sur LZASM en stdcall

feature/test
Nicolas Hordé 17 years ago
parent
commit
1f1e1628b1
  1. 180
      programs/gestion.asm

180
programs/gestion.asm

@ -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

Loading…
Cancel
Save