feat: mise à jour du code pour compilation sur LZASM en stdcall
This commit is contained in:
parent
1d17c0fc92
commit
1f1e1628b1
|
@ -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
|
||||
xor bp,bp
|
||||
mov di,offset bufferentry
|
||||
mov ah,7
|
||||
int 48h
|
||||
jc nofiles
|
||||
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
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue