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,94 +1,100 @@
.model tiny model tiny,stdcall
.486 p586N
smart locals
.code jumps
codeseg
option procalign:byte
include "..\include\mem.h"
include "..\include\fat.h"
include "..\include\divers.h"
include "..\include\graphic.h"
org 0h org 0h
include ..\include\mem.h
include ..\include\fat.h
start: start:
header exe <,1,0,,,offset imports,,> header exe <"CE",1,0,0,,offset imports,,offset realstart>
realstart: realstart:
push offset msg1 call [saveparamto],offset infos
call [print] call [print],offset msg1
call [initdrive]
mov ah,3 xor bp,bp
int 48h call [findfirstfile],offset bufferentry
xor bp,bp jc nofiles
mov di,offset bufferentry
mov ah,7
int 48h
jc nofiles
go: go:
push word ptr [di+Entries.FileAttr] push [word bufferentry.result.fileattr]
push dword ptr [di+Entries.FileSize] push [bufferentry.result.filesize]
push word ptr [di+Entries.FileTime] push [bufferentry.result.filetime]
push word ptr [di+Entries.FileDate] push [bufferentry.result.filedate]
push word ptr [di+Entries.FileTimeCrea] push [bufferentry.result.filetimecrea]
push word ptr [di+Entries.FileDateCrea] push [bufferentry.result.filedatecrea]
push di mov bx,offset bufferentry.result.filename
push offset line push bx
call [print] push offset line
inc bp call [print]
mov ah,8
int 48h
jnc go
nofiles:
push offset menu
call [print]
mov xx,1
mov xxold,2
call Select
endof:
mov ax,0
int 16h
cmp ah,50h
jne tre1
cmp xx,bp
ja endof
inc xx
call select
jmp endof
tre1:
cmp ah,48h
jne tre2
cmp xx,1
je endof
dec xx
call select
jmp endof
tre2:
cmp al,0Dh
jne tre3
tre3:
cmp ah,59
jne tre4
jmp realstart
tre4:
cmp ah,67
jne endof
retf
;selectionne la ligne xx call [findnextfile],offset bufferentry
Select: jc nofiles
push ax di inc bp
mov di,xxold jmp go
mov al,7 nofiles:
add di,3 call [print],offset menu
mov ah,32 mov [xx],1
int 47h call changelineattr,[xx],112
mov ax,xx endof:
mov xxold,ax mov ax,0
mov di,xx int 16h
mov ah,32 cmp ah,50h
mov al,112 jne tre1
add di,3 cmp [xx],bp
int 47h ja endof
pop di ax 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 ret
endp changelineattr
xx dw 1 xx dw 1
xxold dw 0 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 ' msg1 db '\e\g00,00\c70 Gestionnaire de fichier Version 1.5 '
db '\g00,01\c07--------------------------------------------------------------------------------' db '\g00,01\c07--------------------------------------------------------------------------------'
db '\g00,02Nom Ext. Date creation Date modification Taille Attributs' 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 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