Metropoli BBS
VIEWER: printf.asm MODE: TEXT (ASCII)
include qlib.inc  ;setup
include dos.inc
include string.inc
include conio.inc
include stdio.inc

.code
align 4
fprintf proc,dev:byte,str1:dword,argv:vararg
  lea eax,argv
  callp vfprintf,dev,str1,eax
  ret
fprintf endp

vfprintf proc,dev:byte,str1:dword,argv:dword
  local siz:dword
  pushad
  callp _vprintf_siz,str1,argv
  mov siz,eax
  sub esp,eax
  mov edi,esp
  callp vsprintf,edi,str1,argv
  callp fprint,dev,esp   ;esp will be pushed before dec by 4 (not on 8086)
  add esp,siz
  popad
  xor eax,eax
  ret
vfprintf endp

printf proc,str1:dword,argv:vararg
  lea eax,argv
  callp vfprintf,stdout,str1,eax
  ret
printf endp

vprintf proc,str1:dword,argv:dword
  callp vfprintf,stdout,str1,argv
  ret
vprintf endp

end
[ RETURN TO DIRECTORY ]