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

This commit is contained in:
Nicolas Hordé 2007-03-23 16:52:46 +00:00
parent 85ea3e1514
commit c83c7cf1fe
1 changed files with 63 additions and 68 deletions

View File

@ -1,82 +1,77 @@
.model tiny
.486
smart
.code
model tiny,stdcall
p586N
locals
jumps
codeseg
option procalign:byte
include "..\include\mem.h"
include "..\include\divers.h"
org 0h
include ..\include\mem.h
include ..\include\divers.h
start:
header exe <,1,0,,,offset imports,,>
header exe <"CE",1,0,0,,offset imports,,offset realstart>
realstart:
push offset msg
call [print]
xor cx,cx
call [cs:print],offset msg
xor ebx,ebx
xor cx,cx
listmcb:
mov ah,4
int 49h
jc fino
inc cx
;placement mémoire
mov dx,gs
inc dx
inc dx
push edx
call [cs:mbget],cx
jc fino
dec ax
dec ax
mov gs,ax
inc cx
mov dx,gs
push edx ;Emplacement memoire hex 2
;parent
cmp gs:[MB.Reference],0
je next
mov dx,gs:[MB.Reference]
dec dx
dec dx
push dx
push offset MB.Names
jmp suitemn
cmp [gs:mb.reference],0
jne next
push cs
push offset none ;parent lstr0 2x2
add bx,[gs:mb.sizes]
jmp suitemn
next:
push cs
push offset none
mov dx,[gs:mb.reference]
dec dx
dec dx
push dx ;parent lstr0 2x2
push offset (mb).names
suitemn:
;Resident
cmp gs:[MB.IsResident],true
jne notresident
push offset resident
jmp suitelistmcb
cmp [gs: mb.isresident],true
jne notresident
push offset resident ;resident str0 2
jmp suitelistmcb
notresident:
push offset nonresident
push offset nonresident ;resident str0 2
suitelistmcb:
;taille memoire
xor edx,edx
mov dx,gs:[MB.Sizes]
shl edx,4
push 6
push edx
;nom
push gs
push offset MB.Names
push offset line
call [print]
jmp listmcb
xor edx,edx
mov dx,[gs: mb.sizes]
shl edx,4
push 6 ;decimal 4 + type 2
push edx
push gs ;nom lstr0 2x2
push offset (mb).names
push offset line2 ;ligne
call [cs:print]
jmp listmcb
fino:
db 0CBh
resident db "oui",0
nonresident db "non",0
line db "%0P\h15%w\h24%0\h30%0P\h46%hW\l",0
msg db "Memory manager V1.5\lNom Taille Res Parent Mem\l",0
none db ".",0
shl ebx,4
push ebx
push offset fin
call [cs:print]
retf
resident db "oui",0
nonresident db "non",0
line2 db "%0P\h15|%w\h25|%0\h30|%0P\h46|%hW\l",0
fin db "\l\l\c02%u octets de memoire disponible\l\c07",0
msg db "Plan de la memoire\l\lNom | Taille |Res |Parent |Mem\l",0
none db ".",0
imports:
db "VIDEO.LIB::print",0
print dd 0
dw 0
end start
importing
use VIDEO.LIB,print
use SYSTEME,mbget
endi