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

This commit is contained in:
Nicolas Hordé 2007-03-25 00:12:18 +00:00
parent 1d17c0fc92
commit 1f1e1628b1
1 changed files with 94 additions and 86 deletions

View File

@ -1,64 +1,66 @@
.model tiny
.486
smart
.code
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
include ..\include\mem.h
include ..\include\fat.h
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
call [saveparamto],offset infos
call [print],offset msg1
call [initdrive]
xor bp,bp
mov di,offset bufferentry
mov ah,7
int 48h
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 [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
mov ah,8
int 48h
jnc go
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
cmp [xx],bp
ja endof
inc xx
call select
call changelineattr,[xx],7
inc [xx]
call changelineattr,[xx],112
jmp endof
tre1:
cmp ah,48h
jne tre2
cmp xx,1
cmp [xx],1
je endof
dec xx
call select
call changelineattr,[xx],7
dec [xx]
call changelineattr,[xx],112
jmp endof
tre2:
cmp al,0Dh
@ -72,23 +74,27 @@ tre4:
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
;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 <>
importing
use VIDEO.LIB,print
use VIDEO,saveparamto
use DISQUE,initdrive
use DISQUE,findfirstfile
use DISQUE,findnextfile
endi
imports:
db "VIDEO.LIB::print",0
print dd 0
dw 0
end start